Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(105)

Side by Side Diff: src/inspector/v8-inspector-impl.cc

Issue 2748503002: [inspector] changed a way of preserving stepping between tasks (Closed)
Patch Set: rebased on tunned stepping at return Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/inspector/v8-inspector-impl.h ('k') | src/inspector/v8-runtime-agent-impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010-2011 Google Inc. All rights reserved. 2 * Copyright (c) 2010-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 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 return agent && agent->enabled() ? agent : nullptr; 83 return agent && agent->enabled() ? agent : nullptr;
84 } 84 }
85 85
86 V8ProfilerAgentImpl* V8InspectorImpl::enabledProfilerAgentForGroup( 86 V8ProfilerAgentImpl* V8InspectorImpl::enabledProfilerAgentForGroup(
87 int contextGroupId) { 87 int contextGroupId) {
88 V8InspectorSessionImpl* session = sessionForContextGroup(contextGroupId); 88 V8InspectorSessionImpl* session = sessionForContextGroup(contextGroupId);
89 V8ProfilerAgentImpl* agent = session ? session->profilerAgent() : nullptr; 89 V8ProfilerAgentImpl* agent = session ? session->profilerAgent() : nullptr;
90 return agent && agent->enabled() ? agent : nullptr; 90 return agent && agent->enabled() ? agent : nullptr;
91 } 91 }
92 92
93 v8::MaybeLocal<v8::Value> V8InspectorImpl::runCompiledScript(
94 v8::Local<v8::Context> context, v8::Local<v8::Script> script) {
95 v8::MicrotasksScope microtasksScope(m_isolate,
96 v8::MicrotasksScope::kRunMicrotasks);
97 int groupId = contextGroupId(context);
98 if (V8DebuggerAgentImpl* agent = enabledDebuggerAgentForGroup(groupId))
99 agent->willExecuteScript(script->GetUnboundScript()->GetId());
100 v8::MaybeLocal<v8::Value> result = script->Run(context);
101 // Get agent from the map again, since it could have detached during script
102 // execution.
103 if (V8DebuggerAgentImpl* agent = enabledDebuggerAgentForGroup(groupId))
104 agent->didExecuteScript();
105 return result;
106 }
107
108 v8::MaybeLocal<v8::Value> V8InspectorImpl::callFunction(
109 v8::Local<v8::Function> function, v8::Local<v8::Context> context,
110 v8::Local<v8::Value> receiver, int argc, v8::Local<v8::Value> info[]) {
111 return callFunction(function, context, receiver, argc, info,
112 v8::MicrotasksScope::kRunMicrotasks);
113 }
114
115 v8::MaybeLocal<v8::Value> V8InspectorImpl::callInternalFunction(
116 v8::Local<v8::Function> function, v8::Local<v8::Context> context,
117 v8::Local<v8::Value> receiver, int argc, v8::Local<v8::Value> info[]) {
118 return callFunction(function, context, receiver, argc, info,
119 v8::MicrotasksScope::kDoNotRunMicrotasks);
120 }
121
122 v8::MaybeLocal<v8::Value> V8InspectorImpl::callFunction(
123 v8::Local<v8::Function> function, v8::Local<v8::Context> context,
124 v8::Local<v8::Value> receiver, int argc, v8::Local<v8::Value> info[],
125 v8::MicrotasksScope::Type runMicrotasks) {
126 v8::MicrotasksScope microtasksScope(m_isolate, runMicrotasks);
127 int groupId = contextGroupId(context);
128 if (V8DebuggerAgentImpl* agent = enabledDebuggerAgentForGroup(groupId))
129 agent->willExecuteScript(function->ScriptId());
130 v8::MaybeLocal<v8::Value> result =
131 function->Call(context, receiver, argc, info);
132 // Get agent from the map again, since it could have detached during script
133 // execution.
134 if (V8DebuggerAgentImpl* agent = enabledDebuggerAgentForGroup(groupId))
135 agent->didExecuteScript();
136 return result;
137 }
138
139 v8::MaybeLocal<v8::Value> V8InspectorImpl::compileAndRunInternalScript( 93 v8::MaybeLocal<v8::Value> V8InspectorImpl::compileAndRunInternalScript(
140 v8::Local<v8::Context> context, v8::Local<v8::String> source) { 94 v8::Local<v8::Context> context, v8::Local<v8::String> source) {
141 v8::Local<v8::UnboundScript> unboundScript; 95 v8::Local<v8::UnboundScript> unboundScript;
142 if (!v8::debug::CompileInspectorScript(m_isolate, source) 96 if (!v8::debug::CompileInspectorScript(m_isolate, source)
143 .ToLocal(&unboundScript)) 97 .ToLocal(&unboundScript))
144 return v8::MaybeLocal<v8::Value>(); 98 return v8::MaybeLocal<v8::Value>();
145 v8::MicrotasksScope microtasksScope(m_isolate, 99 v8::MicrotasksScope microtasksScope(m_isolate,
146 v8::MicrotasksScope::kDoNotRunMicrotasks); 100 v8::MicrotasksScope::kDoNotRunMicrotasks);
147 v8::Context::Scope contextScope(context); 101 v8::Context::Scope contextScope(context);
148 return unboundScript->BindToCurrentContext()->Run(context); 102 return unboundScript->BindToCurrentContext()->Run(context);
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 m_consoleStorageMap.erase(contextGroupId); 234 m_consoleStorageMap.erase(contextGroupId);
281 m_muteExceptionsMap.erase(contextGroupId); 235 m_muteExceptionsMap.erase(contextGroupId);
282 SessionMap::iterator session = m_sessions.find(contextGroupId); 236 SessionMap::iterator session = m_sessions.find(contextGroupId);
283 if (session != m_sessions.end()) session->second->reset(); 237 if (session != m_sessions.end()) session->second->reset();
284 m_contexts.erase(contextGroupId); 238 m_contexts.erase(contextGroupId);
285 m_debugger->wasmTranslation()->Clear(); 239 m_debugger->wasmTranslation()->Clear();
286 } 240 }
287 241
288 void V8InspectorImpl::willExecuteScript(v8::Local<v8::Context> context, 242 void V8InspectorImpl::willExecuteScript(v8::Local<v8::Context> context,
289 int scriptId) { 243 int scriptId) {
290 if (V8DebuggerAgentImpl* agent =
291 enabledDebuggerAgentForGroup(contextGroupId(context))) {
292 agent->willExecuteScript(scriptId);
293 }
294 } 244 }
295 245
296 void V8InspectorImpl::didExecuteScript(v8::Local<v8::Context> context) { 246 void V8InspectorImpl::didExecuteScript(v8::Local<v8::Context> context) {
297 if (V8DebuggerAgentImpl* agent =
298 enabledDebuggerAgentForGroup(contextGroupId(context))) {
299 agent->didExecuteScript();
300 }
301 } 247 }
302 248
303 void V8InspectorImpl::idleStarted() { 249 void V8InspectorImpl::idleStarted() {
304 for (auto it = m_sessions.begin(); it != m_sessions.end(); ++it) { 250 for (auto it = m_sessions.begin(); it != m_sessions.end(); ++it) {
305 if (it->second->profilerAgent()->idleStarted()) return; 251 if (it->second->profilerAgent()->idleStarted()) return;
306 } 252 }
307 } 253 }
308 254
309 void V8InspectorImpl::idleFinished() { 255 void V8InspectorImpl::idleFinished() {
310 for (auto it = m_sessions.begin(); it != m_sessions.end(); ++it) { 256 for (auto it = m_sessions.begin(); it != m_sessions.end(); ++it) {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 } 336 }
391 337
392 V8InspectorSessionImpl* V8InspectorImpl::sessionForContextGroup( 338 V8InspectorSessionImpl* V8InspectorImpl::sessionForContextGroup(
393 int contextGroupId) { 339 int contextGroupId) {
394 if (!contextGroupId) return nullptr; 340 if (!contextGroupId) return nullptr;
395 SessionMap::iterator iter = m_sessions.find(contextGroupId); 341 SessionMap::iterator iter = m_sessions.find(contextGroupId);
396 return iter == m_sessions.end() ? nullptr : iter->second; 342 return iter == m_sessions.end() ? nullptr : iter->second;
397 } 343 }
398 344
399 } // namespace v8_inspector 345 } // namespace v8_inspector
OLDNEW
« no previous file with comments | « src/inspector/v8-inspector-impl.h ('k') | src/inspector/v8-runtime-agent-impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698