Index: third_party/WebKit/Source/bindings/core/v8/WindowProxy.h |
diff --git a/third_party/WebKit/Source/bindings/core/v8/WindowProxy.h b/third_party/WebKit/Source/bindings/core/v8/WindowProxy.h |
index 9089f013b83894a81d2d280d5737db54716a7745..61d71d978ac6862931042447fde50f4eb2d54050 100644 |
--- a/third_party/WebKit/Source/bindings/core/v8/WindowProxy.h |
+++ b/third_party/WebKit/Source/bindings/core/v8/WindowProxy.h |
@@ -31,17 +31,16 @@ |
#ifndef WindowProxy_h |
#define WindowProxy_h |
+#include <v8.h> |
#include "bindings/core/v8/DOMWrapperWorld.h" |
#include "bindings/core/v8/ScopedPersistent.h" |
-#include "bindings/core/v8/ScriptState.h" |
+#include "core/CoreExport.h" |
#include "platform/heap/Handle.h" |
#include "wtf/RefPtr.h" |
-#include <v8.h> |
namespace blink { |
class Frame; |
-class ScriptController; |
// WindowProxy represents all the per-global object state for a Frame that |
// persist between navigations. |
@@ -51,15 +50,12 @@ class WindowProxy : public GarbageCollectedFinalized<WindowProxy> { |
DECLARE_TRACE(); |
- v8::Local<v8::Context> contextIfInitialized() const { |
- return m_scriptState ? m_scriptState->context() : v8::Local<v8::Context>(); |
- } |
void initializeIfNeeded(); |
void clearForClose(); |
void clearForNavigation(); |
- v8::Local<v8::Object> globalIfNotDetached(); |
+ CORE_EXPORT v8::Local<v8::Object> globalIfNotDetached(); |
v8::Local<v8::Object> releaseGlobal(); |
void setGlobal(v8::Local<v8::Object>); |
@@ -68,10 +64,6 @@ class WindowProxy : public GarbageCollectedFinalized<WindowProxy> { |
DOMWrapperWorld& world() { return *m_world; } |
protected: |
- // TODO(dcheng): Remove this friend declaration once LocalWindowProxyManager |
- // and ScriptController are merged. |
- friend class ScriptController; |
- |
// A valid transition is from ContextUninitialized to ContextInitialized, |
// and then ContextDetached. Other transitions are forbidden. |
enum class Lifecycle { |
@@ -85,24 +77,24 @@ class WindowProxy : public GarbageCollectedFinalized<WindowProxy> { |
virtual void initialize() = 0; |
enum GlobalDetachmentBehavior { DoNotDetachGlobal, DetachGlobal }; |
- virtual void disposeContext(GlobalDetachmentBehavior); |
- |
- // Associates the window wrapper and its prototype chain with the native |
- // DOMWindow object. Also does some more Window-specific initialization. |
- void setupWindowPrototypeChain(); |
+ virtual void disposeContext(GlobalDetachmentBehavior) = 0; |
v8::Isolate* isolate() const { return m_isolate; } |
Frame* frame() const { return m_frame.get(); } |
- ScriptState* getScriptState() const { return m_scriptState.get(); } |
+ |
+#if DCHECK_IS_ON() |
+ void didAttachGlobalProxy() { m_isGlobalProxyDetached = false; } |
+ void didDetachGlobalProxy() { m_isGlobalProxyDetached = true; } |
+#endif |
private: |
v8::Isolate* const m_isolate; |
const Member<Frame> m_frame; |
+#if DCHECK_IS_ON() |
+ bool m_isGlobalProxyDetached = true; |
haraken
2017/02/16 01:11:19
I'd prefer renaming this to m_isGlobalProxyAttache
dcheng
2017/02/16 03:14:07
It is possible to combine this into Lifecycle as w
|
+#endif |
protected: |
- // TODO(dcheng): Move this to LocalWindowProxy once RemoteWindowProxy uses |
- // remote contexts. |
- RefPtr<ScriptState> m_scriptState; |
// TODO(dcheng): Consider making these private and using getters. |
const RefPtr<DOMWrapperWorld> m_world; |
ScopedPersistent<v8::Object> m_globalProxy; |