Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / workers / WorkerGlobalScope.h
index 640d46d..b7cfb50 100644 (file)
 #ifndef WorkerGlobalScope_h
 #define WorkerGlobalScope_h
 
-#include "bindings/v8/ScriptWrappable.h"
-#include "bindings/v8/WorkerScriptController.h"
+#include "bindings/core/v8/WorkerScriptController.h"
 #include "core/dom/ExecutionContext.h"
 #include "core/events/EventListener.h"
 #include "core/events/EventTarget.h"
 #include "core/frame/DOMWindowBase64.h"
+#include "core/frame/UseCounter.h"
 #include "core/frame/csp/ContentSecurityPolicy.h"
-#include "core/workers/WorkerConsole.h"
 #include "core/workers/WorkerEventQueue.h"
 #include "platform/heap/Handle.h"
 #include "platform/network/ContentSecurityPolicyParsers.h"
 #include "wtf/RefPtr.h"
 #include "wtf/text/AtomicStringHash.h"
 
-namespace WebCore {
+namespace blink {
 
-    class Blob;
-    class ExceptionState;
-    class ScheduledAction;
-    class WorkerClients;
-    class WorkerConsole;
-    class WorkerInspectorController;
-    class WorkerLocation;
-    class WorkerNavigator;
-    class WorkerThread;
+class Blob;
+class ConsoleMessage;
+class ConsoleMessageStorage;
+class ExceptionState;
+class ScheduledAction;
+class WorkerClients;
+class WorkerConsole;
+class WorkerInspectorController;
+class WorkerLocation;
+class WorkerNavigator;
+class WorkerThread;
 
-    class WorkerGlobalScope : public RefCountedWillBeRefCountedGarbageCollected<WorkerGlobalScope>, public ScriptWrappable, public SecurityContext, public ExecutionContext, public ExecutionContextClient, public WillBeHeapSupplementable<WorkerGlobalScope>, public EventTargetWithInlineData, public DOMWindowBase64 {
-        WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(WorkerGlobalScope);
-        DEFINE_EVENT_TARGET_REFCOUNTING(RefCountedWillBeRefCountedGarbageCollected<WorkerGlobalScope>);
-    public:
-        virtual ~WorkerGlobalScope();
+class WorkerGlobalScope : public RefCountedWillBeGarbageCollectedFinalized<WorkerGlobalScope>, public SecurityContext, public ExecutionContext, public WillBeHeapSupplementable<WorkerGlobalScope>, public EventTargetWithInlineData, public DOMWindowBase64 {
+    DEFINE_WRAPPERTYPEINFO();
+    REFCOUNTED_EVENT_TARGET(WorkerGlobalScope);
+    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(WorkerGlobalScope);
+public:
+    virtual ~WorkerGlobalScope();
 
-        virtual bool isWorkerGlobalScope() const OVERRIDE FINAL { return true; }
+    virtual bool isWorkerGlobalScope() const override final { return true; }
 
-        virtual ExecutionContext* executionContext() const OVERRIDE FINAL;
+    virtual ExecutionContext* executionContext() const override final;
 
-        virtual bool isSharedWorkerGlobalScope() const { return false; }
-        virtual bool isDedicatedWorkerGlobalScope() const { return false; }
-        virtual bool isServiceWorkerGlobalScope() const { return false; }
+    virtual void countFeature(UseCounter::Feature) const;
+    virtual void countDeprecation(UseCounter::Feature) const;
 
-        const KURL& url() const { return m_url; }
-        KURL completeURL(const String&) const;
+    const KURL& url() const { return m_url; }
+    KURL completeURL(const String&) const;
 
-        virtual String userAgent(const KURL&) const OVERRIDE FINAL;
-        virtual void disableEval(const String& errorMessage) OVERRIDE FINAL;
+    virtual String userAgent(const KURL&) const override final;
+    virtual void disableEval(const String& errorMessage) override final;
 
-        WorkerScriptController* script() { return m_script.get(); }
-        void clearScript() { m_script.clear(); }
-        void clearInspector();
+    WorkerScriptController* script() { return m_script.get(); }
+    void clearScript() { m_script.clear(); }
+    void clearInspector();
 
-        // FIXME: We can remove this interface when we remove openDatabaseSync.
-        class TerminationObserver {
-        public:
-            virtual ~TerminationObserver() { }
-            // The function is probably called in the main thread.
-            virtual void wasRequestedToTerminate() = 0;
-        };
-        void registerTerminationObserver(TerminationObserver*);
-        void unregisterTerminationObserver(TerminationObserver*);
-        void wasRequestedToTerminate();
+    virtual void didEvaluateWorkerScript();
+    void dispose();
 
-        void dispose();
+    WorkerThread* thread() const { return m_thread; }
 
-        WorkerThread* thread() const { return m_thread; }
+    virtual void postTask(PassOwnPtr<ExecutionContextTask>) override final; // Executes the task on context's thread asynchronously.
 
-        virtual void postTask(PassOwnPtr<ExecutionContextTask>) OVERRIDE FINAL; // Executes the task on context's thread asynchronously.
+    // WorkerGlobalScope
+    WorkerGlobalScope* self() { return this; }
+    WorkerConsole* console();
+    WorkerLocation* location() const;
+    void close();
 
-        // WorkerGlobalScope
-        WorkerGlobalScope* self() { return this; }
-        WorkerConsole* console();
-        WorkerLocation* location() const;
-        void close();
+    DEFINE_ATTRIBUTE_EVENT_LISTENER(error);
 
-        DEFINE_ATTRIBUTE_EVENT_LISTENER(error);
+    // WorkerUtils
+    virtual void importScripts(const Vector<String>& urls, ExceptionState&);
+    WorkerNavigator* navigator() const;
 
-        // WorkerUtils
-        virtual void importScripts(const Vector<String>& urls, ExceptionState&);
-        WorkerNavigator* navigator() const;
+    // ExecutionContextClient
+    virtual WorkerEventQueue* eventQueue() const override final;
+    virtual SecurityContext& securityContext() override final { return *this; }
 
-        // ExecutionContextClient
-        virtual WorkerEventQueue* eventQueue() const OVERRIDE FINAL;
-        virtual SecurityContext& securityContext() OVERRIDE FINAL { return *this; }
+    virtual bool isContextThread() const override final;
+    virtual bool isJSExecutionForbidden() const override final;
 
-        virtual bool isContextThread() const OVERRIDE FINAL;
-        virtual bool isJSExecutionForbidden() const OVERRIDE FINAL;
+    virtual double timerAlignmentInterval() const override final;
 
-        virtual double timerAlignmentInterval() const OVERRIDE FINAL;
+    WorkerInspectorController* workerInspectorController() { return m_workerInspectorController.get(); }
 
-        WorkerInspectorController* workerInspectorController() { return m_workerInspectorController.get(); }
-        // These methods are used for GC marking. See JSWorkerGlobalScope::visitChildrenVirtual(SlotVisitor&) in
-        // JSWorkerGlobalScopeCustom.cpp.
-        WorkerConsole* optionalConsole() const { return m_console.get(); }
-        WorkerNavigator* optionalNavigator() const { return m_navigator.get(); }
-        WorkerLocation* optionalLocation() const { return m_location.get(); }
+    bool isClosing() { return m_closing; }
 
-        bool isClosing() { return m_closing; }
+    virtual void stopFetch() { }
 
-        bool idleNotification();
+    bool idleNotification();
 
-        double timeOrigin() const { return m_timeOrigin; }
+    double timeOrigin() const { return m_timeOrigin; }
 
-        WorkerClients* clients() { return m_workerClients.get(); }
+    WorkerClients* clients() { return m_workerClients.get(); }
 
-        using SecurityContext::securityOrigin;
-        using SecurityContext::contentSecurityPolicy;
+    using SecurityContext::securityOrigin;
+    using SecurityContext::contentSecurityPolicy;
 
-        virtual void trace(Visitor*);
+    virtual void addConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>) override final;
+    ConsoleMessageStorage* messageStorage();
 
-    protected:
-        WorkerGlobalScope(const KURL&, const String& userAgent, WorkerThread*, double timeOrigin, PassOwnPtrWillBeRawPtr<WorkerClients>);
-        void applyContentSecurityPolicyFromString(const String& contentSecurityPolicy, ContentSecurityPolicyHeaderType);
+    virtual void trace(Visitor*) override;
 
-        virtual void logExceptionToConsole(const String& errorMessage, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtr<ScriptCallStack>) OVERRIDE;
-        void addMessageToWorkerConsole(MessageSource, MessageLevel, const String& message, const String& sourceURL, unsigned lineNumber, PassRefPtr<ScriptCallStack>, ScriptState*);
+protected:
+    WorkerGlobalScope(const KURL&, const String& userAgent, WorkerThread*, double timeOrigin, const SecurityOrigin*, PassOwnPtrWillBeRawPtr<WorkerClients>);
+    void applyContentSecurityPolicyFromString(const String& contentSecurityPolicy, ContentSecurityPolicyHeaderType);
 
-    private:
-        virtual void refExecutionContext() OVERRIDE FINAL { ref(); }
-        virtual void derefExecutionContext() OVERRIDE FINAL { deref(); }
+    virtual void logExceptionToConsole(const String& errorMessage, int scriptId, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtrWillBeRawPtr<ScriptCallStack>) override;
+    void addMessageToWorkerConsole(PassRefPtrWillBeRawPtr<ConsoleMessage>);
 
-        virtual const KURL& virtualURL() const OVERRIDE FINAL;
-        virtual KURL virtualCompleteURL(const String&) const OVERRIDE FINAL;
+private:
+#if !ENABLE(OILPAN)
+    virtual void refExecutionContext() override final { ref(); }
+    virtual void derefExecutionContext() override final { deref(); }
+#endif
 
-        virtual void reportBlockedScriptExecutionToInspector(const String& directiveText) OVERRIDE FINAL;
-        virtual void addMessage(MessageSource, MessageLevel, const String& message, const String& sourceURL, unsigned lineNumber, ScriptState* = 0) OVERRIDE FINAL;
+    virtual const KURL& virtualURL() const override final;
+    virtual KURL virtualCompleteURL(const String&) const override final;
 
-        virtual EventTarget* errorEventTarget() OVERRIDE FINAL;
-        virtual void didUpdateSecurityOrigin() OVERRIDE FINAL { }
+    virtual void reportBlockedScriptExecutionToInspector(const String& directiveText) override final;
 
-        KURL m_url;
-        String m_userAgent;
+    virtual EventTarget* errorEventTarget() override final;
+    virtual void didUpdateSecurityOrigin() override final { }
 
-        mutable RefPtrWillBeMember<WorkerConsole> m_console;
-        mutable RefPtrWillBeMember<WorkerLocation> m_location;
-        mutable RefPtrWillBeMember<WorkerNavigator> m_navigator;
+    KURL m_url;
+    String m_userAgent;
 
-        OwnPtr<WorkerScriptController> m_script;
-        WorkerThread* m_thread;
+    mutable RefPtrWillBeMember<WorkerConsole> m_console;
+    mutable RefPtrWillBeMember<WorkerLocation> m_location;
+    mutable RefPtrWillBeMember<WorkerNavigator> m_navigator;
 
-        OwnPtr<WorkerInspectorController> m_workerInspectorController;
-        bool m_closing;
+    OwnPtr<WorkerScriptController> m_script;
+    WorkerThread* m_thread;
 
-        OwnPtr<WorkerEventQueue> m_eventQueue;
+    RefPtrWillBeMember<WorkerInspectorController> m_workerInspectorController;
+    bool m_closing;
 
-        OwnPtrWillBeMember<WorkerClients> m_workerClients;
+    OwnPtrWillBeMember<WorkerEventQueue> m_eventQueue;
 
-        double m_timeOrigin;
-        TerminationObserver* m_terminationObserver;
-    };
+    OwnPtrWillBeMember<WorkerClients> m_workerClients;
+
+    double m_timeOrigin;
+
+    OwnPtrWillBeMember<ConsoleMessageStorage> m_messageStorage;
+};
 
 DEFINE_TYPE_CASTS(WorkerGlobalScope, ExecutionContext, context, context->isWorkerGlobalScope(), context.isWorkerGlobalScope());
 
-} // namespace WebCore
+} // namespace blink
 
 #endif // WorkerGlobalScope_h