Chromium Code Reviews| Index: third_party/WebKit/Source/web/WebSharedWorkerImpl.h |
| diff --git a/third_party/WebKit/Source/web/WebSharedWorkerImpl.h b/third_party/WebKit/Source/web/WebSharedWorkerImpl.h |
| index d32b805083aff54781de70d8e7cc339fdb433adf..098323c6ef1b8158c9acda14f383265a8231c6ae 100644 |
| --- a/third_party/WebKit/Source/web/WebSharedWorkerImpl.h |
| +++ b/third_party/WebKit/Source/web/WebSharedWorkerImpl.h |
| @@ -36,13 +36,13 @@ |
| #include <memory> |
| #include "core/dom/ExecutionContext.h" |
| #include "core/workers/WorkerLoaderProxy.h" |
| -#include "core/workers/WorkerReportingProxy.h" |
| #include "core/workers/WorkerThread.h" |
| #include "public/platform/WebAddressSpace.h" |
| #include "public/platform/WebContentSecurityPolicy.h" |
| #include "public/web/WebDevToolsAgentClient.h" |
| #include "public/web/WebFrameClient.h" |
| #include "public/web/WebSharedWorkerClient.h" |
| +#include "web/WebSharedWorkerReportingProxyImpl.h" |
| #include "wtf/RefPtr.h" |
| namespace blink { |
| @@ -60,35 +60,16 @@ class WorkerInspectorProxy; |
| class WorkerScriptLoader; |
| // This class is used by the worker process code to talk to the SharedWorker |
| -// implementation. |
| -// It can't use it directly since it uses WebKit types, so this class converts |
| -// the data types. When the SharedWorker object wants to call |
| -// WorkerReportingProxy, this class will convert to Chrome data types first and |
| -// then call the supplied WebCommonWorkerClient. |
| -class WebSharedWorkerImpl final : public WorkerReportingProxy, |
| - public WebFrameClient, |
| +// implementation. This is basically accessed on the main thread, but some |
| +// methods can be called from a worker thread. Such methods are suffixed with |
| +// *OnWorkerThread or have header comments. |
| +class WebSharedWorkerImpl final : public WebFrameClient, |
| public WebSharedWorker, |
| public WebDevToolsAgentClient, |
| private WorkerLoaderProxyProvider { |
| public: |
| explicit WebSharedWorkerImpl(WebSharedWorkerClient*); |
| - // WorkerReportingProxy methods: |
| - void countFeature(UseCounter::Feature) override; |
| - void countDeprecation(UseCounter::Feature) override; |
| - void reportException(const WTF::String&, |
| - std::unique_ptr<SourceLocation>, |
| - int exceptionId) override; |
| - void reportConsoleMessage(MessageSource, |
| - MessageLevel, |
| - const String& message, |
| - SourceLocation*) override; |
| - void postMessageToPageInspector(const WTF::String&) override; |
| - void didEvaluateWorkerScript(bool success) override {} |
| - void didCloseWorkerGlobalScope() override; |
| - void willDestroyWorkerGlobalScope() override {} |
| - void didTerminateWorkerThread() override; |
| - |
| // WebFrameClient methods to support resource loading thru the 'shadow page'. |
| WebApplicationCacheHost* createApplicationCacheHost( |
| WebApplicationCacheHostClient*) override; |
| @@ -126,6 +107,12 @@ class WebSharedWorkerImpl final : public WorkerReportingProxy, |
| const WebString& method, |
| const WebString& message) override; |
| + // Callback methods for WebSharedWorkerReportingProxyImpl. |
| + void countFeature(UseCounter::Feature); |
| + void postMessageToPageInspector(const String& message); |
| + void didCloseWorkerGlobalScope(); |
| + void didTerminateWorkerThread(); |
| + |
| private: |
| ~WebSharedWorkerImpl() override; |
| @@ -141,15 +128,11 @@ class WebSharedWorkerImpl final : public WorkerReportingProxy, |
| void didReceiveScriptLoaderResponse(); |
| void onScriptLoaderFinished(); |
| - void connectTask(WebMessagePortChannelUniquePtr); |
| - |
| - // Tasks that are run on the main thread. |
| - void didCloseWorkerGlobalScopeOnMainThread(); |
| - void didTerminateWorkerThreadOnMainThread(); |
| - |
| - void postMessageToPageInspectorOnMainThread(const String& message); |
| + void connectTaskOnWorkerThread(WebMessagePortChannelUniquePtr); |
| // WorkerLoaderProxyProvider |
| + // postTaskToLoader() and getLoaderExecutionContext() can be called from a |
|
kinuko
2017/02/28 00:19:16
getLoaderExecutionContext must be called on the ma
nhiroki
2017/02/28 01:09:22
Added DCHECK(isMainThread()) in getLoaderExecution
|
| + // worker thread. |
| void postTaskToLoader(const WebTraceLocation&, |
| std::unique_ptr<WTF::CrossThreadClosure>) override; |
| void postTaskToWorkerGlobalScope( |
| @@ -164,7 +147,6 @@ class WebSharedWorkerImpl final : public WorkerReportingProxy, |
| Persistent<WebLocalFrameImpl> m_mainFrame; |
| bool m_askedToTerminate; |
| - // This one is bound to and used only on the main thread. |
| std::unique_ptr<WebServiceWorkerNetworkProvider> m_networkProvider; |
| Persistent<WorkerInspectorProxy> m_workerInspectorProxy; |
| @@ -172,6 +154,7 @@ class WebSharedWorkerImpl final : public WorkerReportingProxy, |
| // Owned by the main thread, but will be accessed by the worker. |
| CrossThreadPersistent<ParentFrameTaskRunners> m_parentFrameTaskRunners; |
| + Persistent<WebSharedWorkerReportingProxyImpl> m_reportingProxy; |
| std::unique_ptr<WorkerThread> m_workerThread; |
| WebSharedWorkerClient* m_client; |