| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2013 Google Inc. All rights reserved. | 2  * Copyright (C) 2013 Google Inc. All rights reserved. | 
| 3  * | 3  * | 
| 4  * Redistribution and use in source and binary forms, with or without | 4  * Redistribution and use in source and binary forms, with or without | 
| 5  * modification, are permitted provided that the following conditions are | 5  * modification, are permitted provided that the following conditions are | 
| 6  * met: | 6  * met: | 
| 7  * | 7  * | 
| 8  *     * Redistributions of source code must retain the above copyright | 8  *     * Redistributions of source code must retain the above copyright | 
| 9  * notice, this list of conditions and the following disclaimer. | 9  * notice, this list of conditions and the following disclaimer. | 
| 10  *     * Redistributions in binary form must reproduce the above | 10  *     * Redistributions in binary form must reproduce the above | 
| (...skipping 25 matching lines...) Expand all  Loading... | 
| 36 #include "WebEmbeddedWorkerStartData.h" | 36 #include "WebEmbeddedWorkerStartData.h" | 
| 37 #include "WebFrameClient.h" | 37 #include "WebFrameClient.h" | 
| 38 | 38 | 
| 39 namespace WebCore { | 39 namespace WebCore { | 
| 40 class WorkerScriptLoader; | 40 class WorkerScriptLoader; | 
| 41 class WorkerThread; | 41 class WorkerThread; | 
| 42 } | 42 } | 
| 43 | 43 | 
| 44 namespace blink { | 44 namespace blink { | 
| 45 | 45 | 
|  | 46 class ServiceWorkerGlobalScopeProxy; | 
| 46 class WebView; | 47 class WebView; | 
| 47 | 48 | 
| 48 class WebEmbeddedWorkerImpl : | 49 class WebEmbeddedWorkerImpl : | 
| 49     public WebEmbeddedWorker, | 50     public WebEmbeddedWorker, | 
| 50     public WebFrameClient { | 51     public WebFrameClient { | 
|  | 52     WTF_MAKE_NONCOPYABLE(WebEmbeddedWorkerImpl); | 
| 51 public: | 53 public: | 
| 52     WebEmbeddedWorkerImpl( | 54     WebEmbeddedWorkerImpl( | 
| 53         PassOwnPtr<WebServiceWorkerContextClient>, | 55         PassOwnPtr<WebServiceWorkerContextClient>, | 
| 54         PassOwnPtr<WebWorkerPermissionClientProxy>); | 56         PassOwnPtr<WebWorkerPermissionClientProxy>); | 
| 55     virtual ~WebEmbeddedWorkerImpl(); | 57     virtual ~WebEmbeddedWorkerImpl(); | 
| 56 | 58 | 
| 57     // WebEmbeddedWorker overrides. | 59     // WebEmbeddedWorker overrides. | 
| 58     virtual void startWorkerContext(const WebEmbeddedWorkerStartData&) OVERRIDE; | 60     virtual void startWorkerContext(const WebEmbeddedWorkerStartData&) OVERRIDE; | 
| 59     virtual void terminateWorkerContext() OVERRIDE; | 61     virtual void terminateWorkerContext() OVERRIDE; | 
| 60 | 62 | 
| 61 private: | 63 private: | 
| 62     class Loader; | 64     class Loader; | 
|  | 65     class LoaderProxy; | 
| 63 | 66 | 
| 64     void prepareShadowPageForLoader(); | 67     void prepareShadowPageForLoader(); | 
| 65     void onScriptLoaderFinished(); | 68     void onScriptLoaderFinished(); | 
| 66 | 69 | 
| 67     // WebFrameClient overrides, for 'shadow page' loading. | 70     // WebFrameClient overrides, for 'shadow page' loading. | 
| 68     virtual void didCreateDataSource(WebFrame*, WebDataSource*) OVERRIDE; | 71     virtual void didCreateDataSource(WebFrame*, WebDataSource*) OVERRIDE; | 
| 69 | 72 | 
| 70     WebEmbeddedWorkerStartData m_workerStartData; | 73     WebEmbeddedWorkerStartData m_workerStartData; | 
| 71 | 74 | 
| 72     // These are kept until startWorkerContext is called, and then passed on | 75     // These are kept until startWorkerContext is called, and then passed on | 
| 73     // to WorkerContext. | 76     // to WorkerContext. | 
| 74     OwnPtr<WebServiceWorkerContextClient> m_workerContextClient; | 77     OwnPtr<WebServiceWorkerContextClient> m_workerContextClient; | 
| 75     OwnPtr<WebWorkerPermissionClientProxy> m_permissionClient; | 78     OwnPtr<WebWorkerPermissionClientProxy> m_permissionClient; | 
| 76 | 79 | 
| 77     // Kept around only while main script loading is ongoing. | 80     // Kept around only while main script loading is ongoing. | 
| 78     OwnPtr<Loader> m_mainScriptLoader; | 81     OwnPtr<Loader> m_mainScriptLoader; | 
| 79 | 82 | 
| 80     RefPtr<WebCore::WorkerThread> m_workerThread; | 83     RefPtr<WebCore::WorkerThread> m_workerThread; | 
|  | 84     OwnPtr<LoaderProxy> m_loaderProxy; | 
|  | 85     OwnPtr<ServiceWorkerGlobalScopeProxy> m_workerGlobalScopeProxy; | 
| 81 | 86 | 
| 82     // 'shadow page' - created to proxy loading requests from the worker. | 87     // 'shadow page' - created to proxy loading requests from the worker. | 
| 83     // Both WebView and WebFrame objects are close()'ed (where they're | 88     // Both WebView and WebFrame objects are close()'ed (where they're | 
| 84     // deref'ed) when this EmbeddedWorkerImpl is destructed, therefore they | 89     // deref'ed) when this EmbeddedWorkerImpl is destructed, therefore they | 
| 85     // are guaranteed to exist while this object is around. | 90     // are guaranteed to exist while this object is around. | 
| 86     WebView* m_webView; | 91     WebView* m_webView; | 
| 87     WebFrame* m_mainFrame; | 92     WebFrame* m_mainFrame; | 
| 88     RefPtr<WebCore::ExecutionContext> m_loadingContext; | 93     RefPtr<WebCore::ExecutionContext> m_loadingContext; | 
| 89 | 94 | 
| 90     bool m_askedToTerminate; | 95     bool m_askedToTerminate; | 
| 91 }; | 96 }; | 
| 92 | 97 | 
| 93 } // namespace blink | 98 } // namespace blink | 
| 94 | 99 | 
| 95 #endif // WebEmbeddedWorkerImpl_h | 100 #endif // WebEmbeddedWorkerImpl_h | 
| OLD | NEW | 
|---|