| Index: src/inspector/v8-debugger-agent-impl.cc
|
| diff --git a/src/inspector/v8-debugger-agent-impl.cc b/src/inspector/v8-debugger-agent-impl.cc
|
| index 606a4d4c64ae66c07ead9e74ac718de5f087e422..3e1174e8a1ed394730e35c822f26b12ea5b6c301 100644
|
| --- a/src/inspector/v8-debugger-agent-impl.cc
|
| +++ b/src/inspector/v8-debugger-agent-impl.cc
|
| @@ -74,14 +74,14 @@ static String16 breakpointIdSuffix(
|
| }
|
|
|
| static String16 generateBreakpointId(
|
| - const String16& scriptId, int lineNumber, int columnNumber,
|
| + const ScriptBreakpoint& breakpoint,
|
| V8DebuggerAgentImpl::BreakpointSource source) {
|
| String16Builder builder;
|
| - builder.append(scriptId);
|
| + builder.append(breakpoint.script_id);
|
| builder.append(':');
|
| - builder.appendNumber(lineNumber);
|
| + builder.appendNumber(breakpoint.line_number);
|
| builder.append(':');
|
| - builder.appendNumber(columnNumber);
|
| + builder.appendNumber(breakpoint.column_number);
|
| builder.append(breakpointIdSuffix(source));
|
| return builder.toString();
|
| }
|
| @@ -291,12 +291,13 @@ Response V8DebuggerAgentImpl::setBreakpointByUrl(
|
| breakpointId, buildObjectForBreakpointCookie(
|
| url, lineNumber, columnNumber, condition, isRegex));
|
|
|
| - ScriptBreakpoint breakpoint(lineNumber, columnNumber, condition);
|
| + ScriptBreakpoint breakpoint(String16(), lineNumber, columnNumber, condition);
|
| for (const auto& script : m_scripts) {
|
| if (!matches(m_inspector, script.second->sourceURL(), url, isRegex))
|
| continue;
|
| - std::unique_ptr<protocol::Debugger::Location> location = resolveBreakpoint(
|
| - breakpointId, script.first, breakpoint, UserBreakpointSource);
|
| + breakpoint.script_id = script.first;
|
| + std::unique_ptr<protocol::Debugger::Location> location =
|
| + resolveBreakpoint(breakpointId, breakpoint, UserBreakpointSource);
|
| if (location) (*locations)->addItem(std::move(location));
|
| }
|
|
|
| @@ -308,21 +309,18 @@ Response V8DebuggerAgentImpl::setBreakpoint(
|
| std::unique_ptr<protocol::Debugger::Location> location,
|
| Maybe<String16> optionalCondition, String16* outBreakpointId,
|
| std::unique_ptr<protocol::Debugger::Location>* actualLocation) {
|
| - String16 scriptId = location->getScriptId();
|
| - int lineNumber = location->getLineNumber();
|
| - int columnNumber = location->getColumnNumber(0);
|
| + ScriptBreakpoint breakpoint(
|
| + location->getScriptId(), location->getLineNumber(),
|
| + location->getColumnNumber(0), optionalCondition.fromMaybe(String16()));
|
|
|
| - String16 condition = optionalCondition.fromMaybe("");
|
| -
|
| - String16 breakpointId = generateBreakpointId(
|
| - scriptId, lineNumber, columnNumber, UserBreakpointSource);
|
| + String16 breakpointId =
|
| + generateBreakpointId(breakpoint, UserBreakpointSource);
|
| if (m_breakpointIdToDebuggerBreakpointIds.find(breakpointId) !=
|
| m_breakpointIdToDebuggerBreakpointIds.end()) {
|
| return Response::Error("Breakpoint at specified location already exists.");
|
| }
|
| - ScriptBreakpoint breakpoint(lineNumber, columnNumber, condition);
|
| - *actualLocation = resolveBreakpoint(breakpointId, scriptId, breakpoint,
|
| - UserBreakpointSource);
|
| + *actualLocation =
|
| + resolveBreakpoint(breakpointId, breakpoint, UserBreakpointSource);
|
| if (!*actualLocation) return Response::Error("Could not resolve breakpoint");
|
| *outBreakpointId = breakpointId;
|
| return Response::OK();
|
| @@ -405,13 +403,13 @@ Response V8DebuggerAgentImpl::continueToLocation(
|
| m_continueToLocationBreakpointId = "";
|
| }
|
|
|
| - String16 scriptId = location->getScriptId();
|
| - int lineNumber = location->getLineNumber();
|
| - int columnNumber = location->getColumnNumber(0);
|
| + ScriptBreakpoint breakpoint(location->getScriptId(),
|
| + location->getLineNumber(),
|
| + location->getColumnNumber(0), String16());
|
|
|
| - ScriptBreakpoint breakpoint(lineNumber, columnNumber, "");
|
| m_continueToLocationBreakpointId = m_debugger->setBreakpoint(
|
| - scriptId, breakpoint, &lineNumber, &columnNumber);
|
| + breakpoint, &breakpoint.line_number, &breakpoint.column_number);
|
| + // TODO(kozyatinskiy): Return actual line and column number.
|
| return resume();
|
| }
|
|
|
| @@ -493,23 +491,22 @@ V8DebuggerAgentImpl::SkipPauseRequest V8DebuggerAgentImpl::shouldSkipStepPause(
|
|
|
| std::unique_ptr<protocol::Debugger::Location>
|
| V8DebuggerAgentImpl::resolveBreakpoint(const String16& breakpointId,
|
| - const String16& scriptId,
|
| const ScriptBreakpoint& breakpoint,
|
| BreakpointSource source) {
|
| DCHECK(enabled());
|
| // FIXME: remove these checks once crbug.com/520702 is resolved.
|
| CHECK(!breakpointId.isEmpty());
|
| - CHECK(!scriptId.isEmpty());
|
| - ScriptsMap::iterator scriptIterator = m_scripts.find(scriptId);
|
| + CHECK(!breakpoint.script_id.isEmpty());
|
| + ScriptsMap::iterator scriptIterator = m_scripts.find(breakpoint.script_id);
|
| if (scriptIterator == m_scripts.end()) return nullptr;
|
| - if (breakpoint.lineNumber < scriptIterator->second->startLine() ||
|
| - scriptIterator->second->endLine() < breakpoint.lineNumber)
|
| + if (breakpoint.line_number < scriptIterator->second->startLine() ||
|
| + scriptIterator->second->endLine() < breakpoint.line_number)
|
| return nullptr;
|
|
|
| int actualLineNumber;
|
| int actualColumnNumber;
|
| String16 debuggerBreakpointId = m_debugger->setBreakpoint(
|
| - scriptId, breakpoint, &actualLineNumber, &actualColumnNumber);
|
| + breakpoint, &actualLineNumber, &actualColumnNumber);
|
| if (debuggerBreakpointId.isEmpty()) return nullptr;
|
|
|
| m_serverBreakpoints[debuggerBreakpointId] =
|
| @@ -518,7 +515,8 @@ V8DebuggerAgentImpl::resolveBreakpoint(const String16& breakpointId,
|
|
|
| m_breakpointIdToDebuggerBreakpointIds[breakpointId].push_back(
|
| debuggerBreakpointId);
|
| - return buildProtocolLocation(scriptId, actualLineNumber, actualColumnNumber);
|
| + return buildProtocolLocation(breakpoint.script_id, actualLineNumber,
|
| + actualColumnNumber);
|
| }
|
|
|
| Response V8DebuggerAgentImpl::searchInContent(
|
| @@ -1075,14 +1073,15 @@ void V8DebuggerAgentImpl::didParseSource(
|
| breakpointObject->getString(DebuggerAgentState::url, &url);
|
| if (!matches(m_inspector, scriptURL, url, isRegex)) continue;
|
| ScriptBreakpoint breakpoint;
|
| + breakpoint.script_id = scriptId;
|
| breakpointObject->getInteger(DebuggerAgentState::lineNumber,
|
| - &breakpoint.lineNumber);
|
| + &breakpoint.line_number);
|
| breakpointObject->getInteger(DebuggerAgentState::columnNumber,
|
| - &breakpoint.columnNumber);
|
| + &breakpoint.column_number);
|
| breakpointObject->getString(DebuggerAgentState::condition,
|
| &breakpoint.condition);
|
| - std::unique_ptr<protocol::Debugger::Location> location = resolveBreakpoint(
|
| - cookie.first, scriptId, breakpoint, UserBreakpointSource);
|
| + std::unique_ptr<protocol::Debugger::Location> location =
|
| + resolveBreakpoint(cookie.first, breakpoint, UserBreakpointSource);
|
| if (location)
|
| m_frontend.breakpointResolved(cookie.first, std::move(location));
|
| }
|
| @@ -1221,17 +1220,17 @@ void V8DebuggerAgentImpl::setBreakpointAt(const String16& scriptId,
|
| int lineNumber, int columnNumber,
|
| BreakpointSource source,
|
| const String16& condition) {
|
| - String16 breakpointId =
|
| - generateBreakpointId(scriptId, lineNumber, columnNumber, source);
|
| - ScriptBreakpoint breakpoint(lineNumber, columnNumber, condition);
|
| - resolveBreakpoint(breakpointId, scriptId, breakpoint, source);
|
| + ScriptBreakpoint breakpoint(scriptId, lineNumber, columnNumber, condition);
|
| + String16 breakpointId = generateBreakpointId(breakpoint, source);
|
| + resolveBreakpoint(breakpointId, breakpoint, source);
|
| }
|
|
|
| void V8DebuggerAgentImpl::removeBreakpointAt(const String16& scriptId,
|
| int lineNumber, int columnNumber,
|
| BreakpointSource source) {
|
| - removeBreakpointImpl(
|
| - generateBreakpointId(scriptId, lineNumber, columnNumber, source));
|
| + removeBreakpointImpl(generateBreakpointId(
|
| + ScriptBreakpoint(scriptId, lineNumber, columnNumber, String16()),
|
| + source));
|
| }
|
|
|
| void V8DebuggerAgentImpl::reset() {
|
|
|