Index: Source/web/WebSharedWorkerImpl.cpp |
diff --git a/Source/web/WebSharedWorkerImpl.cpp b/Source/web/WebSharedWorkerImpl.cpp |
index d6feba91590d5643f2027242c8cbfc27fe5c0e4f..cd8bbfe2dfb91c56b4f567e78c5f03bbfecd722d 100644 |
--- a/Source/web/WebSharedWorkerImpl.cpp |
+++ b/Source/web/WebSharedWorkerImpl.cpp |
@@ -44,6 +44,7 @@ |
#include "WebSharedWorkerClient.h" |
#include "WebView.h" |
#include "WorkerFileSystemClient.h" |
+#include "WorkerPermissionClient.h" |
#include "core/dom/CrossThreadTask.h" |
#include "core/dom/Document.h" |
#include "core/dom/ExecutionContext.h" |
@@ -64,6 +65,7 @@ |
#include "core/workers/WorkerThread.h" |
#include "core/workers/WorkerThreadStartupData.h" |
#include "modules/webdatabase/DatabaseTask.h" |
+#include "public/web/WebWorkerPermissionClientProxy.h" |
#include "weborigin/KURL.h" |
#include "weborigin/SecurityOrigin.h" |
@@ -285,6 +287,8 @@ void WebSharedWorkerImpl::startWorkerContext(const WebURL& url, const WebString& |
WorkerThreadStartMode startMode = m_pauseWorkerContextOnStart ? PauseWorkerGlobalScopeOnStart : DontPauseWorkerGlobalScopeOnStart; |
OwnPtr<WorkerClients> workerClients = WorkerClients::create(); |
provideLocalFileSystemToWorker(workerClients.get(), WorkerFileSystemClient::create()); |
+ WebSecurityOrigin webSecurityOrigin(m_loadingDocument->securityOrigin()); |
+ providePermissionClientToWorker(workerClients.get(), adoptPtr(m_client->createWorkerPermissionClientProxy(webSecurityOrigin))); |
OwnPtr<WorkerThreadStartupData> startupData = WorkerThreadStartupData::create(url, userAgent, sourceCode, startMode, contentSecurityPolicy, static_cast<WebCore::ContentSecurityPolicy::HeaderType>(policyType), workerClients.release()); |
setWorkerThread(SharedWorkerThread::create(name, *this, *this, startupData.release())); |