| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008, 2009, 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009, 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 // willReleaseScriptContext callback, so all disposing should happen after | 75 // willReleaseScriptContext callback, so all disposing should happen after |
| 76 // it returns. | 76 // it returns. |
| 77 frame()->loader().client()->willReleaseScriptContext(context, | 77 frame()->loader().client()->willReleaseScriptContext(context, |
| 78 m_world->worldId()); | 78 m_world->worldId()); |
| 79 MainThreadDebugger::instance()->contextWillBeDestroyed(m_scriptState.get()); | 79 MainThreadDebugger::instance()->contextWillBeDestroyed(m_scriptState.get()); |
| 80 | 80 |
| 81 if (behavior == DetachGlobal) { | 81 if (behavior == DetachGlobal) { |
| 82 v8::Local<v8::Context> context = m_scriptState->context(); | 82 v8::Local<v8::Context> context = m_scriptState->context(); |
| 83 // Clean up state on the global proxy, which will be reused. | 83 // Clean up state on the global proxy, which will be reused. |
| 84 if (!m_globalProxy.isEmpty()) { | 84 if (!m_globalProxy.isEmpty()) { |
| 85 // TODO(yukishiino): This DCHECK failed on Canary (M57) and Dev (M56). | 85 CHECK(m_globalProxy == context->Global()); |
| 86 // We need to figure out why m_globalProxy != context->Global(). | 86 CHECK_EQ(toScriptWrappable(context->Global()), |
| 87 DCHECK(m_globalProxy == context->Global()); | 87 toScriptWrappable( |
| 88 DCHECK_EQ(toScriptWrappable(context->Global()), | 88 context->Global()->GetPrototype().As<v8::Object>())); |
| 89 toScriptWrappable( | |
| 90 context->Global()->GetPrototype().As<v8::Object>())); | |
| 91 m_globalProxy.get().SetWrapperClassId(0); | 89 m_globalProxy.get().SetWrapperClassId(0); |
| 92 } | 90 } |
| 93 V8DOMWrapper::clearNativeInfo(isolate(), context->Global()); | 91 V8DOMWrapper::clearNativeInfo(isolate(), context->Global()); |
| 94 m_scriptState->detachGlobalObject(); | 92 m_scriptState->detachGlobalObject(); |
| 95 | 93 |
| 96 #if DCHECK_IS_ON() | 94 #if DCHECK_IS_ON() |
| 97 didDetachGlobalObject(); | 95 didDetachGlobalObject(); |
| 98 #endif | 96 #endif |
| 99 } | 97 } |
| 100 | 98 |
| (...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 | 437 |
| 440 setSecurityToken(origin); | 438 setSecurityToken(origin); |
| 441 } | 439 } |
| 442 | 440 |
| 443 LocalWindowProxy::LocalWindowProxy(v8::Isolate* isolate, | 441 LocalWindowProxy::LocalWindowProxy(v8::Isolate* isolate, |
| 444 LocalFrame& frame, | 442 LocalFrame& frame, |
| 445 RefPtr<DOMWrapperWorld> world) | 443 RefPtr<DOMWrapperWorld> world) |
| 446 : WindowProxy(isolate, frame, std::move(world)) {} | 444 : WindowProxy(isolate, frame, std::move(world)) {} |
| 447 | 445 |
| 448 } // namespace blink | 446 } // namespace blink |
| OLD | NEW |