Chromium Code Reviews| 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) |