Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(672)

Unified Diff: Source/core/dom/ExecutionContext.h

Issue 27311002: Introduce ExecutionContextClient (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix clang build error Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/dom/Document.cpp ('k') | Source/core/dom/ExecutionContext.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/ExecutionContext.h
diff --git a/Source/core/dom/ExecutionContext.h b/Source/core/dom/ExecutionContext.h
index d020758188ab0c9df58b8e244def561868b47e07..ee5ef608f092c83d9d7dc2287b0c4c528f160111 100644
--- a/Source/core/dom/ExecutionContext.h
+++ b/Source/core/dom/ExecutionContext.h
@@ -29,6 +29,7 @@
#define ExecutionContext_h
#include "core/dom/ActiveDOMObject.h"
+#include "core/dom/ExecutionContextClient.h"
#include "core/dom/SecurityContext.h"
#include "core/events/ErrorEvent.h"
#include "core/fetch/CrossOriginAccessControl.h"
@@ -63,20 +64,20 @@ public:
ExecutionContext();
virtual ~ExecutionContext();
- virtual bool isDocument() const { return false; }
- virtual bool isWorkerGlobalScope() const { return false; }
-
- virtual bool isJSExecutionForbidden() const = 0;
-
- virtual DOMWindow* executingWindow() { return 0; }
- virtual void userEventWasHandled() { }
-
- const KURL& url() const { return virtualURL(); }
- KURL completeURL(const String& url) const { return virtualCompleteURL(url); }
-
- virtual String userAgent(const KURL&) const = 0;
-
- virtual void disableEval(const String& errorMessage) = 0;
+ // Delegating to ExecutionContextClient
+ void setClient(ExecutionContextClient* client) { m_client = client; }
+ bool isDocument() const { return m_client && m_client->isDocument(); }
+ bool isWorkerGlobalScope() { return m_client && m_client->isWorkerGlobalScope(); }
+ bool isJSExecutionForbidden() { return m_client && m_client->isJSExecutionForbidden(); }
+ EventQueue* eventQueue() const;
+ const KURL& url() const;
+ KURL completeURL(const String& url) const;
+ void userEventWasHandled();
+ void disableEval(const String& errorMessage);
+ DOMWindow* executingWindow() const;
+ String userAgent(const KURL&) const;
+ void postTask(PassOwnPtr<ExecutionContextTask>);
+ double timerAlignmentInterval() const;
bool shouldSanitizeScriptError(const String& sourceURL, AccessControlStatus);
void reportException(PassRefPtr<ErrorEvent>, PassRefPtr<ScriptCallStack>, AccessControlStatus);
@@ -110,15 +111,10 @@ public:
void ref() { refExecutionContext(); }
void deref() { derefExecutionContext(); }
- virtual void postTask(PassOwnPtr<ExecutionContextTask>) = 0; // Executes the task on context's thread asynchronously.
-
// Gets the next id in a circular sequence from 1 to 2^31-1.
int circularSequentialID();
void didChangeTimerAlignmentInterval();
- virtual double timerAlignmentInterval() const;
-
- virtual EventQueue* eventQueue() const = 0;
void setDatabaseContext(DatabaseContext*);
@@ -129,12 +125,6 @@ protected:
private:
friend class DOMTimer; // For installNewTimeout() and removeTimeoutByID() below.
- virtual const KURL& virtualURL() const = 0;
- virtual KURL virtualCompleteURL(const String&) const = 0;
-
- virtual void addMessage(MessageSource, MessageLevel, const String& message, const String& sourceURL, unsigned lineNumber, ScriptState*) = 0;
- virtual EventTarget* errorEventTarget() = 0;
- virtual void logExceptionToConsole(const String& errorMessage, const String& sourceURL, int lineNumber, int columnNumber, PassRefPtr<ScriptCallStack>) = 0;
bool dispatchErrorEvent(PassRefPtr<ErrorEvent>, AccessControlStatus);
void closeMessagePorts();
@@ -147,6 +137,7 @@ private:
int installNewTimeout(PassOwnPtr<ScheduledAction>, int timeout, bool singleShot);
void removeTimeoutByID(int timeoutID); // This makes underlying DOMTimer instance destructed.
+ ExecutionContextClient* m_client;
HashSet<MessagePort*> m_messagePorts;
int m_circularSequentialID;
« no previous file with comments | « Source/core/dom/Document.cpp ('k') | Source/core/dom/ExecutionContext.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698