| Index: third_party/WebKit/Source/bindings/core/v8/WindowProxy.cpp
|
| diff --git a/third_party/WebKit/Source/bindings/core/v8/WindowProxy.cpp b/third_party/WebKit/Source/bindings/core/v8/WindowProxy.cpp
|
| index 761b4a5c50260087de64d90bd90070998e813310..2247de0f1770fd78d34b804ffd98c6e4ca842da2 100644
|
| --- a/third_party/WebKit/Source/bindings/core/v8/WindowProxy.cpp
|
| +++ b/third_party/WebKit/Source/bindings/core/v8/WindowProxy.cpp
|
| @@ -45,7 +45,7 @@ namespace blink {
|
| WindowProxy::~WindowProxy() {
|
| // clearForClose() or clearForNavigation() must be invoked before destruction
|
| // starts.
|
| - DCHECK(m_lifecycle != Lifecycle::ContextInitialized);
|
| + DCHECK(m_lifecycle != Lifecycle::ContextIsInitialized);
|
| }
|
|
|
| DEFINE_TRACE(WindowProxy) {
|
| @@ -59,7 +59,7 @@ WindowProxy::WindowProxy(v8::Isolate* isolate,
|
| m_frame(frame),
|
|
|
| m_world(std::move(world)),
|
| - m_lifecycle(Lifecycle::ContextUninitialized) {}
|
| + m_lifecycle(Lifecycle::ContextIsUninitialized) {}
|
|
|
| void WindowProxy::clearForClose() {
|
| disposeContext(DoNotDetachGlobal);
|
| @@ -70,7 +70,7 @@ void WindowProxy::clearForNavigation() {
|
| }
|
|
|
| v8::Local<v8::Object> WindowProxy::globalIfNotDetached() {
|
| - if (m_lifecycle == Lifecycle::ContextInitialized) {
|
| + if (m_lifecycle == Lifecycle::ContextIsInitialized) {
|
| DLOG_IF(FATAL, !m_isGlobalObjectAttached)
|
| << "Context is initialized but global object is detached!";
|
| return m_globalProxy.newLocal(m_isolate);
|
| @@ -79,7 +79,7 @@ v8::Local<v8::Object> WindowProxy::globalIfNotDetached() {
|
| }
|
|
|
| v8::Local<v8::Object> WindowProxy::releaseGlobal() {
|
| - DCHECK(m_lifecycle != Lifecycle::ContextInitialized);
|
| + DCHECK(m_lifecycle != Lifecycle::ContextIsInitialized);
|
|
|
| // Make sure the global object was detached from the proxy by calling
|
| // clearForNavigation().
|
| @@ -140,9 +140,8 @@ void WindowProxy::setGlobal(v8::Local<v8::Object> global) {
|
| // If there are JS code holds a closure to the old inner window,
|
| // it won't be able to reach the outer window via its global object.
|
| void WindowProxy::initializeIfNeeded() {
|
| - // TODO(haraken): It is wrong to re-initialize an already detached window
|
| - // proxy. This must be 'if(m_lifecycle == Lifecycle::ContextUninitialized)'.
|
| - if (m_lifecycle != Lifecycle::ContextInitialized) {
|
| + if (m_lifecycle == Lifecycle::ContextIsUninitialized ||
|
| + m_lifecycle == Lifecycle::GlobalObjectIsDetached) {
|
| initialize();
|
| }
|
| }
|
|
|