Index: Source/modules/serviceworkers/ServiceWorkerContainer.cpp |
diff --git a/Source/modules/serviceworkers/ServiceWorkerContainer.cpp b/Source/modules/serviceworkers/ServiceWorkerContainer.cpp |
index 5bbf765d400c68d6259cd439aba44e8680e1c863..b5c8e935843f45403b42cc580bb826e11eb628c2 100644 |
--- a/Source/modules/serviceworkers/ServiceWorkerContainer.cpp |
+++ b/Source/modules/serviceworkers/ServiceWorkerContainer.cpp |
@@ -120,7 +120,7 @@ ScriptPromise ServiceWorkerContainer::registerServiceWorker(ScriptState* scriptS |
// FIXME: This should use the container's execution context, not |
dominicc (has gone to gerrit)
2015/01/19 03:19:08
This FIXME is essentially what you're fixing here,
|
// the callers. |
ExecutionContext* executionContext = scriptState->executionContext(); |
- RefPtr<SecurityOrigin> documentOrigin = executionContext->securityOrigin(); |
+ RefPtr<SecurityOrigin> documentOrigin = m_executionContext->securityOrigin(); |
String errorMessage; |
if (!documentOrigin->canAccessFeatureRequiringSecureOrigin(errorMessage)) { |
resolver->reject(DOMException::create(NotSupportedError, errorMessage)); |
@@ -134,6 +134,7 @@ ScriptPromise ServiceWorkerContainer::registerServiceWorker(ScriptState* scriptS |
} |
KURL patternURL = executionContext->completeURL(options.scope()); |
+ |
patternURL.removeFragmentIdentifier(); |
if (!documentOrigin->canRequest(patternURL)) { |
resolver->reject(DOMException::create(SecurityError, "The scope must match the current origin.")); |
@@ -141,6 +142,7 @@ ScriptPromise ServiceWorkerContainer::registerServiceWorker(ScriptState* scriptS |
} |
KURL scriptURL = executionContext->completeURL(url); |
+ |
scriptURL.removeFragmentIdentifier(); |
if (!documentOrigin->canRequest(scriptURL)) { |
resolver->reject(DOMException::create(SecurityError, "The origin of the script must match the current origin.")); |
@@ -184,7 +186,7 @@ ScriptPromise ServiceWorkerContainer::getRegistration(ScriptState* scriptState, |
// FIXME: This should use the container's execution context, not |
// the callers. |
ExecutionContext* executionContext = scriptState->executionContext(); |
- RefPtr<SecurityOrigin> documentOrigin = executionContext->securityOrigin(); |
+ RefPtr<SecurityOrigin> documentOrigin = m_executionContext->securityOrigin(); |
String errorMessage; |
if (!documentOrigin->canAccessFeatureRequiringSecureOrigin(errorMessage)) { |
resolver->reject(DOMException::create(NotSupportedError, errorMessage)); |
@@ -304,6 +306,7 @@ bool ServiceWorkerContainer::getClientInfo(WebServiceWorkerClientInfo* info) |
ServiceWorkerContainer::ServiceWorkerContainer(ExecutionContext* executionContext) |
: ContextLifecycleObserver(executionContext) |
, m_provider(0) |
+ , m_executionContext(executionContext) |
{ |
if (!executionContext) |