Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / workers / WorkerMessagingProxy.h
index fb565ce..ace2374 100644 (file)
 #include "wtf/RefPtr.h"
 #include "wtf/Vector.h"
 
-namespace WebCore {
-
-    class WorkerObjectProxy;
-    class DedicatedWorkerThread;
-    class ExecutionContext;
-    class Worker;
-    class WorkerClients;
-
-    class WorkerMessagingProxy FINAL : public WorkerGlobalScopeProxy, public WorkerLoaderProxy {
-        WTF_MAKE_NONCOPYABLE(WorkerMessagingProxy); WTF_MAKE_FAST_ALLOCATED;
-    public:
-        WorkerMessagingProxy(Worker*, PassOwnPtrWillBeRawPtr<WorkerClients>);
-
-        // Implementations of WorkerGlobalScopeProxy.
-        // (Only use these methods in the worker object thread.)
-        virtual void startWorkerGlobalScope(const KURL& scriptURL, const String& userAgent, const String& sourceCode, WorkerThreadStartMode) OVERRIDE;
-        virtual void terminateWorkerGlobalScope() OVERRIDE;
-        virtual void postMessageToWorkerGlobalScope(PassRefPtr<SerializedScriptValue>, PassOwnPtr<MessagePortChannelArray>) OVERRIDE;
-        virtual bool hasPendingActivity() const OVERRIDE;
-        virtual void workerObjectDestroyed() OVERRIDE;
-        virtual void connectToInspector(WorkerGlobalScopeProxy::PageInspector*) OVERRIDE;
-        virtual void disconnectFromInspector() OVERRIDE;
-        virtual void sendMessageToInspector(const String&) OVERRIDE;
-
-        // These methods come from worker context thread via WorkerObjectProxy
-        // and are called on the worker object thread (e.g. main thread).
-        void postMessageToWorkerObject(PassRefPtr<SerializedScriptValue>, PassOwnPtr<MessagePortChannelArray>);
-        void reportException(const String& errorMessage, int lineNumber, int columnNumber, const String& sourceURL);
-        void reportConsoleMessage(MessageSource, MessageLevel, const String& message, int lineNumber, const String& sourceURL);
-        void postMessageToPageInspector(const String&);
-        void confirmMessageFromWorkerObject(bool hasPendingActivity);
-        void reportPendingActivity(bool hasPendingActivity);
-        void workerGlobalScopeClosed();
-        void workerGlobalScopeDestroyed();
-
-        // Implementation of WorkerLoaderProxy.
-        // These methods are called on different threads to schedule loading
-        // requests and to send callbacks back to WorkerGlobalScope.
-        virtual void postTaskToLoader(PassOwnPtr<ExecutionContextTask>) OVERRIDE;
-        virtual bool postTaskToWorkerGlobalScope(PassOwnPtr<ExecutionContextTask>) OVERRIDE;
-
-        void workerThreadCreated(PassRefPtr<DedicatedWorkerThread>);
-
-    protected:
-        virtual ~WorkerMessagingProxy();
-
-    private:
-        static void workerObjectDestroyedInternal(ExecutionContext*, WorkerMessagingProxy*);
-
-        RefPtrWillBePersistent<ExecutionContext> m_executionContext;
-        OwnPtr<WorkerObjectProxy> m_workerObjectProxy;
-        Worker* m_workerObject;
-        bool m_mayBeDestroyed;
-        RefPtr<DedicatedWorkerThread> m_workerThread;
-
-        unsigned m_unconfirmedMessageCount; // Unconfirmed messages from worker object to worker thread.
-        bool m_workerThreadHadPendingActivity; // The latest confirmation from worker thread reported that it was still active.
-
-        bool m_askedToTerminate;
-
-        Vector<OwnPtr<ExecutionContextTask> > m_queuedEarlyTasks; // Tasks are queued here until there's a thread object created.
-        WorkerGlobalScopeProxy::PageInspector* m_pageInspector;
-
-        OwnPtrWillBePersistent<WorkerClients> m_workerClients;
-    };
-
-} // namespace WebCore
+namespace blink {
+
+class WorkerObjectProxy;
+class DedicatedWorkerThread;
+class ExecutionContext;
+class Worker;
+class WorkerClients;
+
+class WorkerMessagingProxy FINAL : public WorkerGlobalScopeProxy, public WorkerLoaderProxy {
+    WTF_MAKE_NONCOPYABLE(WorkerMessagingProxy); WTF_MAKE_FAST_ALLOCATED;
+public:
+    WorkerMessagingProxy(Worker*, PassOwnPtrWillBeRawPtr<WorkerClients>);
+
+    // Implementations of WorkerGlobalScopeProxy.
+    // (Only use these methods in the worker object thread.)
+    virtual void startWorkerGlobalScope(const KURL& scriptURL, const String& userAgent, const String& sourceCode, WorkerThreadStartMode) OVERRIDE;
+    virtual void terminateWorkerGlobalScope() OVERRIDE;
+    virtual void postMessageToWorkerGlobalScope(PassRefPtr<SerializedScriptValue>, PassOwnPtr<MessagePortChannelArray>) OVERRIDE;
+    virtual bool hasPendingActivity() const OVERRIDE;
+    virtual void workerObjectDestroyed() OVERRIDE;
+    virtual void connectToInspector(WorkerGlobalScopeProxy::PageInspector*) OVERRIDE;
+    virtual void disconnectFromInspector() OVERRIDE;
+    virtual void sendMessageToInspector(const String&) OVERRIDE;
+    virtual void writeTimelineStartedEvent(const String& sessionId) OVERRIDE;
+
+    // These methods come from worker context thread via WorkerObjectProxy
+    // and are called on the worker object thread (e.g. main thread).
+    void postMessageToWorkerObject(PassRefPtr<SerializedScriptValue>, PassOwnPtr<MessagePortChannelArray>);
+    void reportException(const String& errorMessage, int lineNumber, int columnNumber, const String& sourceURL);
+    void reportConsoleMessage(MessageSource, MessageLevel, const String& message, int lineNumber, const String& sourceURL);
+    void postMessageToPageInspector(const String&);
+    void confirmMessageFromWorkerObject(bool hasPendingActivity);
+    void reportPendingActivity(bool hasPendingActivity);
+    void workerGlobalScopeClosed();
+    void workerThreadTerminated();
+
+    // Implementation of WorkerLoaderProxy.
+    // These methods are called on different threads to schedule loading
+    // requests and to send callbacks back to WorkerGlobalScope.
+    virtual void postTaskToLoader(PassOwnPtr<ExecutionContextTask>) OVERRIDE;
+    virtual bool postTaskToWorkerGlobalScope(PassOwnPtr<ExecutionContextTask>) OVERRIDE;
+
+    void workerThreadCreated(PassRefPtr<DedicatedWorkerThread>);
+
+protected:
+    virtual ~WorkerMessagingProxy();
+
+private:
+    static void workerObjectDestroyedInternal(ExecutionContext*, WorkerMessagingProxy*);
+    void terminateInternally();
+
+    RefPtrWillBePersistent<ExecutionContext> m_executionContext;
+    OwnPtr<WorkerObjectProxy> m_workerObjectProxy;
+    Worker* m_workerObject;
+    bool m_mayBeDestroyed;
+    RefPtr<DedicatedWorkerThread> m_workerThread;
+
+    unsigned m_unconfirmedMessageCount; // Unconfirmed messages from worker object to worker thread.
+    bool m_workerThreadHadPendingActivity; // The latest confirmation from worker thread reported that it was still active.
+
+    bool m_askedToTerminate;
+
+    Vector<OwnPtr<ExecutionContextTask> > m_queuedEarlyTasks; // Tasks are queued here until there's a thread object created.
+    WorkerGlobalScopeProxy::PageInspector* m_pageInspector;
+
+    OwnPtrWillBePersistent<WorkerClients> m_workerClients;
+};
+
+} // namespace blink
 
 #endif // WorkerMessagingProxy_h