author | Jose Antonio Olivera Ortega <jaoo@jaoo.es> |
Wed, 10 Jun 2015 10:17:00 +0200 | |
changeset 248296 | c9b583cf608a9c8350a720b992fbb764cc811d2a |
parent 248295 | 0580333b6546d0e2a1925ed7b526805847a62ecb |
child 248297 | 22509b254e09bceab5d80a9f3a1d577cf0a18057 |
push id | 28893 |
push user | kwierso@gmail.com |
push date | Fri, 12 Jun 2015 00:02:58 +0000 |
treeherder | autoland@8cf9d3e497f9 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | baku |
bugs | 1168226 |
milestone | 41.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/dom/workers/ServiceWorkerRegistrar.cpp +++ b/dom/workers/ServiceWorkerRegistrar.cpp @@ -144,22 +144,36 @@ ServiceWorkerRegistrar::RegisterServiceW NS_WARNING("Failed to register a serviceWorker during shutting down."); return; } { MonitorAutoLock lock(mMonitor); MOZ_ASSERT(mDataLoaded); + const mozilla::ipc::PrincipalInfo& newPrincipalInfo = aData.principal(); + MOZ_ASSERT(newPrincipalInfo.type() == + mozilla::ipc::PrincipalInfo::TContentPrincipalInfo); + + const mozilla::ipc::ContentPrincipalInfo& newContentPrincipalInfo = + newPrincipalInfo.get_ContentPrincipalInfo(); + bool found = false; for (uint32_t i = 0, len = mData.Length(); i < len; ++i) { if (mData[i].scope() == aData.scope()) { - mData[i] = aData; - found = true; - break; + const mozilla::ipc::PrincipalInfo& existingPrincipalInfo = + mData[i].principal(); + const mozilla::ipc::ContentPrincipalInfo& existingContentPrincipalInfo = + existingPrincipalInfo.get_ContentPrincipalInfo(); + + if (newContentPrincipalInfo == existingContentPrincipalInfo) { + mData[i] = aData; + found = true; + break; + } } } if (!found) { mData.AppendElement(aData); } }