Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / dom / ExecutionContext.h
index 4f320fd..8406980 100644 (file)
@@ -29,7 +29,6 @@
 #define ExecutionContext_h
 
 #include "core/dom/ActiveDOMObject.h"
-#include "core/dom/ExecutionContextClient.h"
 #include "core/dom/SandboxFlags.h"
 #include "core/dom/SecurityContext.h"
 #include "core/fetch/CrossOriginAccessControl.h"
@@ -62,22 +61,22 @@ class ExecutionContext
 public:
     virtual void trace(Visitor*) OVERRIDE;
 
-    // Delegating to ExecutionContextClient
-    bool isDocument() const { return m_client && m_client->isDocument(); }
-    bool isWorkerGlobalScope() const { return m_client && m_client->isWorkerGlobalScope(); }
-    bool isDedicatedWorkerGlobalScope() const { return m_client && m_client->isDedicatedWorkerGlobalScope(); }
-    bool isSharedWorkerGlobalScope() const { return m_client && m_client->isSharedWorkerGlobalScope(); }
-    bool isServiceWorkerGlobalScope() const { return m_client && m_client->isServiceWorkerGlobalScope(); }
-    bool isJSExecutionForbidden() { return m_client && m_client->isJSExecutionForbidden(); }
-    SecurityOrigin* securityOrigin() const;
-    ContentSecurityPolicy* contentSecurityPolicy() const;
+    virtual bool isDocument() const { return false; }
+    virtual bool isWorkerGlobalScope() const { return false; }
+    virtual bool isDedicatedWorkerGlobalScope() const { return false; }
+    virtual bool isSharedWorkerGlobalScope() const { return false; }
+    virtual bool isServiceWorkerGlobalScope() const { return false; }
+    virtual bool isJSExecutionForbidden() const { return false; }
+    SecurityOrigin* securityOrigin();
+    ContentSecurityPolicy* contentSecurityPolicy();
+    virtual void didUpdateSecurityOrigin() = 0;
     const KURL& url() const;
     KURL completeURL(const String& url) const;
-    void disableEval(const String& errorMessage);
-    LocalDOMWindow* executingWindow() const;
-    String userAgent(const KURL&) const;
-    void postTask(PassOwnPtr<ExecutionContextTask>);
-    double timerAlignmentInterval() const;
+    virtual void disableEval(const String& errorMessage) = 0;
+    virtual LocalDOMWindow* executingWindow() { return 0; }
+    virtual String userAgent(const KURL&) const = 0;
+    virtual void postTask(PassOwnPtr<ExecutionContextTask>) = 0; // Executes the task on context's thread asynchronously.
+    virtual double timerAlignmentInterval() const = 0;
 
     virtual void reportBlockedScriptExecutionToInspector(const String& directiveText) = 0;
 
@@ -86,9 +85,10 @@ public:
     KURL contextCompleteURL(const String& url) const { return virtualCompleteURL(url); }
 
     bool shouldSanitizeScriptError(const String& sourceURL, AccessControlStatus);
-    void reportException(PassRefPtrWillBeRawPtr<ErrorEvent>, PassRefPtrWillBeRawPtr<ScriptCallStack>, AccessControlStatus);
+    void reportException(PassRefPtrWillBeRawPtr<ErrorEvent>, int scriptId, PassRefPtrWillBeRawPtr<ScriptCallStack>, AccessControlStatus);
 
-    void addConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>);
+    virtual void addConsoleMessage(PassRefPtrWillBeRawPtr<ConsoleMessage>) = 0;
+    virtual void logExceptionToConsole(const String& errorMessage, int scriptId, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtrWillBeRawPtr<ScriptCallStack>) = 0;
 
     PublicURLManager& publicURLManager();
 
@@ -103,6 +103,8 @@ public:
     virtual void suspendScheduledTasks();
     virtual void resumeScheduledTasks();
     virtual bool tasksNeedSuspension() { return false; }
+    virtual void tasksWereSuspended() { }
+    virtual void tasksWereResumed() { }
 
     bool activeDOMObjectsAreSuspended() const { return m_activeDOMObjectsAreSuspended; }
     bool activeDOMObjectsAreStopped() const { return m_activeDOMObjectsAreStopped; }
@@ -126,14 +128,13 @@ public:
 
     PassOwnPtr<LifecycleNotifier<ExecutionContext> > createLifecycleNotifier();
 
+    virtual EventTarget* errorEventTarget() = 0;
     virtual EventQueue* eventQueue() const = 0;
 
 protected:
     ExecutionContext();
     virtual ~ExecutionContext();
 
-    void setClient(ExecutionContextClient* client) { m_client = client; }
-
     virtual const KURL& virtualURL() const = 0;
     virtual KURL virtualCompleteURL(const String&) const = 0;
 
@@ -154,7 +155,6 @@ private:
     int installNewTimeout(PassOwnPtr<ScheduledAction>, int timeout, bool singleShot);
     void removeTimeoutByID(int timeoutID); // This makes underlying DOMTimer instance destructed.
 
-    ExecutionContextClient* m_client;
     SandboxFlags m_sandboxFlags;
 
     int m_circularSequentialID;