Chromium Code Reviews| Index: Source/bindings/core/v8/ScriptController.cpp |
| diff --git a/Source/bindings/core/v8/ScriptController.cpp b/Source/bindings/core/v8/ScriptController.cpp |
| index 6a38d7003a977f706b42ef98d375c14c1db87e35..1c826adda7b307331a2eb8fcf29313dd04b9da5f 100644 |
| --- a/Source/bindings/core/v8/ScriptController.cpp |
| +++ b/Source/bindings/core/v8/ScriptController.cpp |
| @@ -101,8 +101,15 @@ ScriptController::ScriptController(LocalFrame* frame) |
| ScriptController::~ScriptController() |
| { |
| - // WindowProxy::clearForClose() must be invoked before destruction starts. |
| - ASSERT(!m_windowProxy->isContextInitialized()); |
| +} |
| + |
| +void ScriptController::trace(Visitor* visitor) |
| +{ |
| +#if ENABLE(OILPAN) |
| + visitor->trace(m_frame); |
| + visitor->trace(m_windowProxy); |
| + visitor->trace(m_isolatedWorlds); |
| +#endif |
| } |
| void ScriptController::clearScriptObjects() |
| @@ -142,7 +149,7 @@ void ScriptController::updateSecurityOrigin(SecurityOrigin* origin) |
| v8::Local<v8::Value> ScriptController::callFunction(v8::Handle<v8::Function> function, v8::Handle<v8::Value> receiver, int argc, v8::Handle<v8::Value> info[]) |
| { |
| // Keep LocalFrame (and therefore ScriptController) alive. |
| - RefPtrWillBeRawPtr<LocalFrame> protect(m_frame); |
| + RefPtrWillBeRawPtr<LocalFrame> protect(m_frame.get()); |
| return ScriptController::callFunction(m_frame->document(), function, receiver, argc, info, m_isolate); |
| } |
| @@ -192,7 +199,7 @@ v8::Local<v8::Value> ScriptController::executeScriptAndReturnValue(v8::Handle<v8 |
| *compilationFinishTime = WTF::monotonicallyIncreasingTime(); |
| } |
| // Keep LocalFrame (and therefore ScriptController) alive. |
| - RefPtrWillBeRawPtr<LocalFrame> protect(m_frame); |
| + RefPtrWillBeRawPtr<LocalFrame> protect(m_frame.get()); |
| result = V8ScriptRunner::runCompiledScript(script, m_frame->document(), m_isolate); |
| ASSERT(!tryCatch.HasCaught() || result.IsEmpty()); |
| } |
| @@ -223,7 +230,7 @@ WindowProxy* ScriptController::existingWindowProxy(DOMWrapperWorld& world) |
| WindowProxy* ScriptController::windowProxy(DOMWrapperWorld& world) |
| { |
| - WindowProxy* windowProxy = 0; |
| + WindowProxy* windowProxy = nullptr; |
| if (world.isMainWorld()) { |
| windowProxy = m_windowProxy.get(); |
| } else { |
| @@ -231,7 +238,7 @@ WindowProxy* ScriptController::windowProxy(DOMWrapperWorld& world) |
| if (iter != m_isolatedWorlds.end()) { |
| windowProxy = iter->value.get(); |
| } else { |
| - OwnPtr<WindowProxy> isolatedWorldWindowProxy = WindowProxy::create(m_frame, world, m_isolate); |
| + OwnPtrWillBeMember<WindowProxy> isolatedWorldWindowProxy = WindowProxy::create(m_frame, world, m_isolate); |
|
haraken
2014/10/05 23:37:26
OwnPtrWillBeRawPtr ?
sof
2014/10/06 07:34:40
Thanks, fixed up.
|
| windowProxy = isolatedWorldWindowProxy.get(); |
| m_isolatedWorlds.set(world.worldId(), isolatedWorldWindowProxy.release()); |
| } |
| @@ -537,7 +544,7 @@ bool ScriptController::executeScriptIfJavaScriptURL(const KURL& url) |
| // We need to hold onto the LocalFrame here because executing script can |
| // destroy the frame. |
| - RefPtrWillBeRawPtr<LocalFrame> protect(m_frame); |
| + RefPtrWillBeRawPtr<LocalFrame> protect(m_frame.get()); |
| RefPtrWillBeRawPtr<Document> ownerDocument(m_frame->document()); |
| const int javascriptSchemeLength = sizeof("javascript:") - 1; |
| @@ -600,7 +607,7 @@ v8::Local<v8::Value> ScriptController::evaluateScriptInMainWorld(const ScriptSou |
| ScriptState* scriptState = ScriptState::from(context); |
| ScriptState::Scope scope(scriptState); |
| - RefPtrWillBeRawPtr<LocalFrame> protect(m_frame); |
| + RefPtrWillBeRawPtr<LocalFrame> protect(m_frame.get()); |
| if (m_frame->loader().stateMachine()->isDisplayingInitialEmptyDocument()) |
| m_frame->loader().didAccessInitialDocument(); |