Chromium Code Reviews| Index: third_party/WebKit/Source/core/inspector/v8/V8DebuggerAgentImpl.cpp |
| diff --git a/third_party/WebKit/Source/core/inspector/v8/V8DebuggerAgentImpl.cpp b/third_party/WebKit/Source/core/inspector/v8/V8DebuggerAgentImpl.cpp |
| index 2a7121c57f8b7d4e7f6156de1a5e7ed8d8526f1c..6abb021cb69ce6f0848fb9a2877a1b4e6990eb6f 100644 |
| --- a/third_party/WebKit/Source/core/inspector/v8/V8DebuggerAgentImpl.cpp |
| +++ b/third_party/WebKit/Source/core/inspector/v8/V8DebuggerAgentImpl.cpp |
| @@ -109,16 +109,16 @@ static PassRefPtrWillBeRawPtr<ScriptCallStack> toScriptCallStack(JavaScriptCallF |
| return ScriptCallStack::create(frames); |
| } |
| -static PassRefPtr<JavaScriptCallFrame> toJavaScriptCallFrame(v8::Local<v8::Object> value) |
| +static PassRefPtr<JavaScriptCallFrame> toJavaScriptCallFrame(v8::Local<v8::Context> context, v8::Local<v8::Object> value) |
| { |
| if (value.IsEmpty()) |
| return nullptr; |
| - return V8JavaScriptCallFrame::unwrap(value); |
| + return V8JavaScriptCallFrame::unwrap(context, value); |
| } |
| -static PassRefPtrWillBeRawPtr<ScriptCallStack> toScriptCallStack(v8::Local<v8::Object> callFrames) |
| +static PassRefPtrWillBeRawPtr<ScriptCallStack> toScriptCallStack(v8::Local<v8::Context> context, v8::Local<v8::Object> callFrames) |
| { |
| - RefPtr<JavaScriptCallFrame> jsCallFrame = toJavaScriptCallFrame(callFrames); |
| + RefPtr<JavaScriptCallFrame> jsCallFrame = toJavaScriptCallFrame(context, callFrames); |
| return jsCallFrame ? toScriptCallStack(jsCallFrame.get()) : nullptr; |
| } |
| @@ -1108,9 +1108,9 @@ int V8DebuggerAgentImpl::traceAsyncOperationStarting(const String& description) |
| RefPtr<AsyncCallChain> chain; |
| if (callFrames.IsEmpty()) { |
| if (m_currentAsyncCallChain) |
| - chain = AsyncCallChain::create(nullptr, m_currentAsyncCallChain.get(), m_maxAsyncCallStackDepth); |
| + chain = AsyncCallChain::create(m_currentAsyncCallChain.get()->creationContext(m_isolate), nullptr, m_currentAsyncCallChain.get(), m_maxAsyncCallStackDepth); |
| } else { |
| - chain = AsyncCallChain::create(adoptRef(new AsyncCallStack(description, callFrames)), m_currentAsyncCallChain.get(), m_maxAsyncCallStackDepth); |
| + chain = AsyncCallChain::create(debugger().isPaused() ? debugger().pausedContext() : m_isolate->GetCurrentContext(), adoptRef(new AsyncCallStack(description, callFrames)), m_currentAsyncCallChain.get(), m_maxAsyncCallStackDepth); |
|
yurys
2015/11/18 18:35:00
Just m_isolate->GetCurrentContext() should work fo
jochen (gone - plz use gerrit)
2015/11/18 19:02:04
right, but for the cases where it's paused, we're
yurys
2015/11/18 19:11:24
This method should never be called when current co
|
| } |
| do { |
| ++m_lastAsyncOperationId; |
| @@ -1239,7 +1239,7 @@ void V8DebuggerAgentImpl::flushAsyncOperationEvents(ErrorString*) |
| RefPtr<AsyncStackTrace> lastAsyncStackTrace; |
| for (const auto& callStack : callStacks) { |
| v8::HandleScope scope(m_isolate); |
| - RefPtrWillBeRawPtr<ScriptCallStack> scriptCallStack = toScriptCallStack(callStack->callFrames(m_isolate)); |
| + RefPtrWillBeRawPtr<ScriptCallStack> scriptCallStack = toScriptCallStack(chain->creationContext(m_isolate), callStack->callFrames(m_isolate)); |
| if (!scriptCallStack) |
| break; |
| if (!operation) { |
| @@ -1428,7 +1428,7 @@ PassRefPtrWillBeRawPtr<ScriptAsyncCallStack> V8DebuggerAgentImpl::currentAsyncSt |
| RefPtrWillBeRawPtr<ScriptAsyncCallStack> result = nullptr; |
| for (AsyncCallStackVector::const_reverse_iterator it = callStacks.rbegin(); it != callStacks.rend(); ++it) { |
| v8::HandleScope scope(m_isolate); |
| - RefPtr<JavaScriptCallFrame> callFrame = toJavaScriptCallFrame((*it)->callFrames(m_isolate)); |
| + RefPtr<JavaScriptCallFrame> callFrame = toJavaScriptCallFrame(chain->creationContext(m_isolate), (*it)->callFrames(m_isolate)); |
| if (!callFrame) |
| break; |
| result = ScriptAsyncCallStack::create((*it)->description(), toScriptCallStack(callFrame.get()), result.release()); |