Commit be3c2cdd authored by Alexey Kozyatinskiy's avatar Alexey Kozyatinskiy Committed by Commit Bot

[inspector] do not capture hint if there is no break location

If we have several scripts with the same url (see many <script> tags in
one page), then we try to set breakpoint only in script with given
lineNumber inside and ignore all other scripts. We should follow the
same logic when we capture hint for later breakpoint restore.

R=yangguo@chromium.org

Bug: none
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I44a332ac64f62ec9a0d24d5fe4688f8ced125e39
Reviewed-on: https://chromium-review.googlesource.com/821053
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50019}
parent 4bc48c21
...@@ -553,7 +553,7 @@ Response V8DebuggerAgentImpl::setBreakpointByUrl( ...@@ -553,7 +553,7 @@ Response V8DebuggerAgentImpl::setBreakpointByUrl(
} }
std::unique_ptr<protocol::Debugger::Location> location = setBreakpointImpl( std::unique_ptr<protocol::Debugger::Location> location = setBreakpointImpl(
breakpointId, script.first, condition, lineNumber, columnNumber); breakpointId, script.first, condition, lineNumber, columnNumber);
if (type != BreakpointType::kByUrlRegex) { if (location && type != BreakpointType::kByUrlRegex) {
hint = breakpointHint(*script.second, lineNumber, columnNumber); hint = breakpointHint(*script.second, lineNumber, columnNumber);
} }
if (location) (*locations)->addItem(std::move(location)); if (location) (*locations)->addItem(std::move(location));
......
Tests breakpoint when two scripts have the same url.
{
breakpointId : <breakpointId>
locations : [
[0] : {
columnNumber : 2
lineNumber : 2
scriptId : <scriptId>
}
]
}
// Copyright 2017 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
let {session, contextGroup, Protocol} = InspectorTest.start(
'Tests breakpoint when two scripts have the same url.');
// Order of addScript is important!
contextGroup.addScript(`
function boo() {
return 42;
}
function foo() {}
`, 0, 0, 'test.js');
contextGroup.addScript(`function foo() {}`, 15, 0, 'test.js');
(async function test() {
await Protocol.Debugger.enable();
let {result} = await Protocol.Debugger.setBreakpointByUrl({
url: 'test.js',
lineNumber: 2,
columnNumber: 2
});
InspectorTest.logMessage(result);
InspectorTest.completeTest();
})();
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment