Index: Source/core/inspector/InspectorDebuggerAgent.cpp |
diff --git a/Source/core/inspector/InspectorDebuggerAgent.cpp b/Source/core/inspector/InspectorDebuggerAgent.cpp |
index 4eeeba1cadc5a51039ae56c0c637f0a13aaa64d0..4a842206e76c2a57fbe42a9d1fdc15608d29e4df 100644 |
--- a/Source/core/inspector/InspectorDebuggerAgent.cpp |
+++ b/Source/core/inspector/InspectorDebuggerAgent.cpp |
@@ -466,6 +466,18 @@ void InspectorDebuggerAgent::getBacktrace(ErrorString* errorString, RefPtr<Array |
asyncStackTrace = currentAsyncStackTrace(); |
} |
+PassRefPtrWillBeRawPtr<JavaScriptCallFrame> InspectorDebuggerAgent::topCallFrameSkipUnknownSources() |
+{ |
+ for (int index = 0; ; ++index) { |
+ RefPtrWillBeRawPtr<JavaScriptCallFrame> frame = scriptDebugServer().callFrameNoScopes(index); |
+ if (!frame) |
+ return nullptr; |
+ String scriptIdString = String::number(frame->sourceID()); |
+ if (m_scripts.contains(scriptIdString)) |
+ return frame.release(); |
+ } |
+} |
+ |
String InspectorDebuggerAgent::scriptURL(JavaScriptCallFrame* frame) |
{ |
String scriptIdString = String::number(frame->sourceID()); |
@@ -482,7 +494,7 @@ ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipExceptio |
// FIXME: Fast return: if (!m_cachedSkipStackRegExp && !has_any_anti_breakpoint) return ScriptDebugListener::NoSkip; |
- RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = scriptDebugServer().topCallFrameNoScopes(); |
+ RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = topCallFrameSkipUnknownSources(); |
if (!topFrame) |
return ScriptDebugListener::NoSkip; |
@@ -535,7 +547,7 @@ ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipStepPaus |
if (!m_cachedSkipStackRegExp || m_steppingFromFramework) |
return ScriptDebugListener::NoSkip; |
- RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = scriptDebugServer().topCallFrameNoScopes(); |
+ RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = topCallFrameSkipUnknownSources(); |
String scriptUrl = scriptURL(topFrame.get()); |
if (scriptUrl.isEmpty() || m_cachedSkipStackRegExp->match(scriptUrl) == -1) |
return ScriptDebugListener::NoSkip; |
@@ -567,7 +579,7 @@ bool InspectorDebuggerAgent::isTopCallFrameInFramework() |
if (!m_cachedSkipStackRegExp) |
return false; |
- RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = scriptDebugServer().topCallFrameNoScopes(); |
+ RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = topCallFrameSkipUnknownSources(); |
if (!topFrame) |
return false; |