Index: Source/web/WebSharedWorkerImpl.cpp |
diff --git a/Source/web/WebSharedWorkerImpl.cpp b/Source/web/WebSharedWorkerImpl.cpp |
index 240b9108441811afba92ebce1ad30672d2611fa7..63363d33218bb0440e5f35ae317f48ed7976fcc1 100644 |
--- a/Source/web/WebSharedWorkerImpl.cpp |
+++ b/Source/web/WebSharedWorkerImpl.cpp |
@@ -394,11 +394,14 @@ void WebSharedWorkerImpl::onScriptLoaderFinished() |
if (InspectorInstrumentation::shouldPauseDedicatedWorkerOnStart(document)) |
startMode = PauseWorkerGlobalScopeOnStart; |
+ // FIXME: this document's origin is pristine and without any extra privileges. (crbug.com/254993) |
+ SecurityOrigin* starterOrigin = document->securityOrigin(); |
+ |
OwnPtrWillBeRawPtr<WorkerClients> workerClients = WorkerClients::create(); |
provideLocalFileSystemToWorker(workerClients.get(), LocalFileSystemClient::create()); |
WebSecurityOrigin webSecurityOrigin(m_loadingDocument->securityOrigin()); |
providePermissionClientToWorker(workerClients.get(), adoptPtr(client()->createWorkerPermissionClientProxy(webSecurityOrigin))); |
- OwnPtrWillBeRawPtr<WorkerThreadStartupData> startupData = WorkerThreadStartupData::create(m_url, m_loadingDocument->userAgent(m_url), m_mainScriptLoader->script(), startMode, m_contentSecurityPolicy, static_cast<ContentSecurityPolicyHeaderType>(m_policyType), workerClients.release()); |
+ OwnPtrWillBeRawPtr<WorkerThreadStartupData> startupData = WorkerThreadStartupData::create(m_url, m_loadingDocument->userAgent(m_url), m_mainScriptLoader->script(), startMode, m_contentSecurityPolicy, static_cast<ContentSecurityPolicyHeaderType>(m_policyType), starterOrigin, workerClients.release()); |
setWorkerThread(SharedWorkerThread::create(m_name, *this, *this, startupData.release())); |
InspectorInstrumentation::scriptImported(m_loadingDocument.get(), m_mainScriptLoader->identifier(), m_mainScriptLoader->script()); |
m_mainScriptLoader.clear(); |