OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/inspector/v8-debugger-agent-impl.h" | 5 #include "src/inspector/v8-debugger-agent-impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "src/debug/debug-interface.h" | 9 #include "src/debug/debug-interface.h" |
10 #include "src/inspector/injected-script.h" | 10 #include "src/inspector/injected-script.h" |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 // m_inspector->addListener may result in reporting all parsed scripts to | 145 // m_inspector->addListener may result in reporting all parsed scripts to |
146 // the agent so it should already be in enabled state by then. | 146 // the agent so it should already be in enabled state by then. |
147 m_enabled = true; | 147 m_enabled = true; |
148 m_state->setBoolean(DebuggerAgentState::debuggerEnabled, true); | 148 m_state->setBoolean(DebuggerAgentState::debuggerEnabled, true); |
149 m_debugger->enable(); | 149 m_debugger->enable(); |
150 | 150 |
151 std::vector<std::unique_ptr<V8DebuggerScript>> compiledScripts; | 151 std::vector<std::unique_ptr<V8DebuggerScript>> compiledScripts; |
152 m_debugger->getCompiledScripts(m_session->contextGroupId(), compiledScripts); | 152 m_debugger->getCompiledScripts(m_session->contextGroupId(), compiledScripts); |
153 for (size_t i = 0; i < compiledScripts.size(); i++) | 153 for (size_t i = 0; i < compiledScripts.size(); i++) |
154 didParseSource(std::move(compiledScripts[i]), true); | 154 didParseSource(std::move(compiledScripts[i]), true); |
| 155 m_debugger->reportExistingModules(); |
155 | 156 |
156 // FIXME(WK44513): breakpoints activated flag should be synchronized between | 157 // FIXME(WK44513): breakpoints activated flag should be synchronized between |
157 // all front-ends | 158 // all front-ends |
158 m_debugger->setBreakpointsActivated(true); | 159 m_debugger->setBreakpointsActivated(true); |
159 } | 160 } |
160 | 161 |
161 bool V8DebuggerAgentImpl::enabled() { return m_enabled; } | 162 bool V8DebuggerAgentImpl::enabled() { return m_enabled; } |
162 | 163 |
163 Response V8DebuggerAgentImpl::enable() { | 164 Response V8DebuggerAgentImpl::enable() { |
164 if (enabled()) return Response::OK(); | 165 if (enabled()) return Response::OK(); |
(...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1052 &breakpoint.column_number); | 1053 &breakpoint.column_number); |
1053 breakpointObject->getString(DebuggerAgentState::condition, | 1054 breakpointObject->getString(DebuggerAgentState::condition, |
1054 &breakpoint.condition); | 1055 &breakpoint.condition); |
1055 std::unique_ptr<protocol::Debugger::Location> location = | 1056 std::unique_ptr<protocol::Debugger::Location> location = |
1056 resolveBreakpoint(cookie.first, breakpoint, UserBreakpointSource); | 1057 resolveBreakpoint(cookie.first, breakpoint, UserBreakpointSource); |
1057 if (location) | 1058 if (location) |
1058 m_frontend.breakpointResolved(cookie.first, std::move(location)); | 1059 m_frontend.breakpointResolved(cookie.first, std::move(location)); |
1059 } | 1060 } |
1060 } | 1061 } |
1061 | 1062 |
| 1063 void V8DebuggerAgentImpl::moduleResolved(const String16& refererId, |
| 1064 const String16& requestedId, |
| 1065 const String16& specifier) { |
| 1066 if (m_scripts.find(refererId) == m_scripts.end()) return; |
| 1067 if (m_scripts.find(requestedId) == m_scripts.end()) return; |
| 1068 m_frontend.moduleResolved(refererId, requestedId, specifier); |
| 1069 } |
| 1070 |
1062 bool V8DebuggerAgentImpl::didPause(v8::Local<v8::Context> context, | 1071 bool V8DebuggerAgentImpl::didPause(v8::Local<v8::Context> context, |
1063 v8::Local<v8::Value> exception, | 1072 v8::Local<v8::Value> exception, |
1064 const std::vector<String16>& hitBreakpoints, | 1073 const std::vector<String16>& hitBreakpoints, |
1065 bool isPromiseRejection, bool isUncaught, | 1074 bool isPromiseRejection, bool isUncaught, |
1066 bool isOOMBreak) { | 1075 bool isOOMBreak) { |
1067 if (!isOOMBreak) { | 1076 if (!isOOMBreak) { |
1068 if (m_skipAllPauses) return false; | 1077 if (m_skipAllPauses) return false; |
1069 JavaScriptCallFrames callFrames = m_debugger->currentCallFrames(1); | 1078 JavaScriptCallFrames callFrames = m_debugger->currentCallFrames(1); |
1070 JavaScriptCallFrame* topCallFrame = | 1079 JavaScriptCallFrame* topCallFrame = |
1071 !callFrames.empty() ? callFrames.begin()->get() : nullptr; | 1080 !callFrames.empty() ? callFrames.begin()->get() : nullptr; |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1189 void V8DebuggerAgentImpl::reset() { | 1198 void V8DebuggerAgentImpl::reset() { |
1190 if (!enabled()) return; | 1199 if (!enabled()) return; |
1191 m_scheduledDebuggerStep = NoStep; | 1200 m_scheduledDebuggerStep = NoStep; |
1192 m_blackboxedPositions.clear(); | 1201 m_blackboxedPositions.clear(); |
1193 resetBlackboxedStateCache(); | 1202 resetBlackboxedStateCache(); |
1194 m_scripts.clear(); | 1203 m_scripts.clear(); |
1195 m_breakpointIdToDebuggerBreakpointIds.clear(); | 1204 m_breakpointIdToDebuggerBreakpointIds.clear(); |
1196 } | 1205 } |
1197 | 1206 |
1198 } // namespace v8_inspector | 1207 } // namespace v8_inspector |
OLD | NEW |