Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2553)

Unified Diff: Source/web/WebSharedWorkerImpl.cpp

Issue 1190133002: Remove WorkerScriptLoaderClient and inheritances (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: review #6 and #7 Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/web/WebSharedWorkerImpl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/web/WebSharedWorkerImpl.cpp
diff --git a/Source/web/WebSharedWorkerImpl.cpp b/Source/web/WebSharedWorkerImpl.cpp
index cb10bb6558f0df79fe8e281d57e775543e4da416..4481e1766bc38fa667a305f91cd7ceae84576926 100644
--- a/Source/web/WebSharedWorkerImpl.cpp
+++ b/Source/web/WebSharedWorkerImpl.cpp
@@ -79,68 +79,6 @@ namespace blink {
// TODO(toyoshim): Share implementation with WebEmbeddedWorkerImpl as much as
// possible.
-// A thin wrapper for one-off script loading.
-class WebSharedWorkerImpl::Loader : public WorkerScriptLoaderClient {
-public:
- static PassOwnPtr<Loader> create()
- {
- return adoptPtr(new Loader());
- }
-
- virtual ~Loader()
- {
- m_scriptLoader->setClient(0);
- }
-
- void load(ExecutionContext* loadingContext, const KURL& scriptURL, PassOwnPtr<Closure> receiveResponseCallback, PassOwnPtr<Closure> finishCallback)
- {
- ASSERT(loadingContext);
- m_receiveResponseCallback = receiveResponseCallback;
- m_finishCallback = finishCallback;
- m_scriptLoader->setRequestContext(WebURLRequest::RequestContextSharedWorker);
- m_scriptLoader->loadAsynchronously(
- *loadingContext, scriptURL, DenyCrossOriginRequests, this);
- }
-
- void didReceiveResponse(unsigned long identifier, const ResourceResponse& response) override
- {
- m_identifier = identifier;
- m_appCacheID = response.appCacheID();
- (*m_receiveResponseCallback)();
- }
-
- virtual void notifyFinished() override
- {
- (*m_finishCallback)();
- }
-
- void cancel()
- {
- m_scriptLoader->cancel();
- }
-
- bool failed() const { return m_scriptLoader->failed(); }
- const KURL& url() const { return m_scriptLoader->responseURL(); }
- String script() const { return m_scriptLoader->script(); }
- unsigned long identifier() const { return m_identifier; }
- long long appCacheID() const { return m_appCacheID; }
- PassRefPtr<ContentSecurityPolicy> contentSecurityPolicy() { return m_scriptLoader->contentSecurityPolicy(); }
-
-private:
- Loader()
- : m_scriptLoader(WorkerScriptLoader::create())
- , m_identifier(0)
- , m_appCacheID(0)
- {
- m_scriptLoader->setContentSecurityPolicy(ContentSecurityPolicy::create());
- }
-
- RefPtr<WorkerScriptLoader> m_scriptLoader;
- unsigned long m_identifier;
- long long m_appCacheID;
- OwnPtr<Closure> m_receiveResponseCallback;
- OwnPtr<Closure> m_finishCallback;
-};
// This function is called on the main thread to force to initialize some static
// values used in WebKit before any worker thread is started. This is because in
@@ -253,11 +191,13 @@ void WebSharedWorkerImpl::didFinishDocumentLoad(WebLocalFrame* frame)
ASSERT(!m_loadingDocument);
ASSERT(!m_mainScriptLoader);
m_networkProvider = adoptPtr(m_client->createServiceWorkerNetworkProvider(frame->dataSource()));
- m_mainScriptLoader = Loader::create();
+ m_mainScriptLoader = adoptPtr(new WorkerScriptLoader());
+ m_mainScriptLoader->setRequestContext(WebURLRequest::RequestContextSharedWorker);
m_loadingDocument = toWebLocalFrameImpl(frame)->frame()->document();
- m_mainScriptLoader->load(
- m_loadingDocument.get(),
+ m_mainScriptLoader->loadAsynchronously(
+ *m_loadingDocument.get(),
m_url,
+ DenyCrossOriginRequests,
bind(&WebSharedWorkerImpl::didReceiveScriptLoaderResponse, this),
bind(&WebSharedWorkerImpl::onScriptLoaderFinished, this));
}
@@ -411,13 +351,14 @@ void WebSharedWorkerImpl::onScriptLoaderFinished()
provideLocalFileSystemToWorker(workerClients.get(), LocalFileSystemClient::create());
WebSecurityOrigin webSecurityOrigin(m_loadingDocument->securityOrigin());
provideContentSettingsClientToWorker(workerClients.get(), adoptPtr(m_client->createWorkerContentSettingsClientProxy(webSecurityOrigin)));
+ RefPtr<ContentSecurityPolicy> contentSecurityPolicy = m_mainScriptLoader->releaseContentSecurityPolicy();
OwnPtr<WorkerThreadStartupData> startupData = WorkerThreadStartupData::create(
m_url,
m_loadingDocument->userAgent(m_url),
m_mainScriptLoader->script(),
nullptr,
startMode,
- m_mainScriptLoader->contentSecurityPolicy()->headers(),
+ contentSecurityPolicy ? contentSecurityPolicy->headers() : nullptr,
starterOrigin,
workerClients.release());
m_loaderProxy = WorkerLoaderProxy::create(this);
« no previous file with comments | « Source/web/WebSharedWorkerImpl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698