| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2010 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2013 Google Inc. All rights reserved. | 3 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 297 RefPtr<JSONObject> breakpointObject = JSONObject::create(); | 297 RefPtr<JSONObject> breakpointObject = JSONObject::create(); |
| 298 breakpointObject->setString(DebuggerAgentState::url, url); | 298 breakpointObject->setString(DebuggerAgentState::url, url); |
| 299 breakpointObject->setNumber(DebuggerAgentState::lineNumber, lineNumber); | 299 breakpointObject->setNumber(DebuggerAgentState::lineNumber, lineNumber); |
| 300 breakpointObject->setNumber(DebuggerAgentState::columnNumber, columnNumber); | 300 breakpointObject->setNumber(DebuggerAgentState::columnNumber, columnNumber); |
| 301 breakpointObject->setString(DebuggerAgentState::condition, condition); | 301 breakpointObject->setString(DebuggerAgentState::condition, condition); |
| 302 breakpointObject->setBoolean(DebuggerAgentState::isRegex, isRegex); | 302 breakpointObject->setBoolean(DebuggerAgentState::isRegex, isRegex); |
| 303 breakpointObject->setBoolean(DebuggerAgentState::isAnti, isAnti); | 303 breakpointObject->setBoolean(DebuggerAgentState::isAnti, isAnti); |
| 304 return breakpointObject; | 304 return breakpointObject; |
| 305 } | 305 } |
| 306 | 306 |
| 307 static String scriptSourceURL(const ScriptDebugListener::Script& script) |
| 308 { |
| 309 bool hasSourceURL = !script.sourceURL.isEmpty(); |
| 310 return hasSourceURL ? script.sourceURL : script.url; |
| 311 } |
| 312 |
| 307 static bool matches(const String& url, const String& pattern, bool isRegex) | 313 static bool matches(const String& url, const String& pattern, bool isRegex) |
| 308 { | 314 { |
| 309 if (isRegex) { | 315 if (isRegex) { |
| 310 ScriptRegexp regex(pattern, TextCaseSensitive); | 316 ScriptRegexp regex(pattern, TextCaseSensitive); |
| 311 return regex.match(url) != -1; | 317 return regex.match(url) != -1; |
| 312 } | 318 } |
| 313 return url == pattern; | 319 return url == pattern; |
| 314 } | 320 } |
| 315 | 321 |
| 316 void InspectorDebuggerAgent::setBreakpointByUrl(ErrorString* errorString, int li
neNumber, const String* const optionalURL, const String* const optionalURLRegex,
const int* const optionalColumnNumber, const String* const optionalCondition, c
onst bool* isAntiBreakpoint, BreakpointId* outBreakpointId, RefPtr<Array<TypeBui
lder::Debugger::Location> >& locations) | 322 void InspectorDebuggerAgent::setBreakpointByUrl(ErrorString* errorString, int li
neNumber, const String* const optionalURL, const String* const optionalURLRegex,
const int* const optionalColumnNumber, const String* const optionalCondition, c
onst bool* isAntiBreakpoint, BreakpointId* outBreakpointId, RefPtr<Array<TypeBui
lder::Debugger::Location> >& locations) |
| (...skipping 26 matching lines...) Expand all Loading... |
| 343 *errorString = "Breakpoint at specified location already exists."; | 349 *errorString = "Breakpoint at specified location already exists."; |
| 344 return; | 350 return; |
| 345 } | 351 } |
| 346 | 352 |
| 347 breakpointsCookie->setObject(breakpointId, buildObjectForBreakpointCookie(ur
l, lineNumber, columnNumber, condition, isRegex, isAntiBreakpointValue)); | 353 breakpointsCookie->setObject(breakpointId, buildObjectForBreakpointCookie(ur
l, lineNumber, columnNumber, condition, isRegex, isAntiBreakpointValue)); |
| 348 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, breakpointsCoo
kie); | 354 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, breakpointsCoo
kie); |
| 349 | 355 |
| 350 if (!isAntiBreakpointValue) { | 356 if (!isAntiBreakpointValue) { |
| 351 ScriptBreakpoint breakpoint(lineNumber, columnNumber, condition); | 357 ScriptBreakpoint breakpoint(lineNumber, columnNumber, condition); |
| 352 for (ScriptsMap::iterator it = m_scripts.begin(); it != m_scripts.end();
++it) { | 358 for (ScriptsMap::iterator it = m_scripts.begin(); it != m_scripts.end();
++it) { |
| 353 if (!matches(it->value.url, url, isRegex)) | 359 if (!matches(scriptSourceURL(it->value), url, isRegex)) |
| 354 continue; | 360 continue; |
| 355 RefPtr<TypeBuilder::Debugger::Location> location = resolveBreakpoint
(breakpointId, it->key, breakpoint, UserBreakpointSource); | 361 RefPtr<TypeBuilder::Debugger::Location> location = resolveBreakpoint
(breakpointId, it->key, breakpoint, UserBreakpointSource); |
| 356 if (location) | 362 if (location) |
| 357 locations->addItem(location); | 363 locations->addItem(location); |
| 358 } | 364 } |
| 359 } | 365 } |
| 360 *outBreakpointId = breakpointId; | 366 *outBreakpointId = breakpointId; |
| 361 } | 367 } |
| 362 | 368 |
| 363 static bool parseLocation(ErrorString* errorString, PassRefPtr<JSONObject> locat
ion, String* scriptId, int* lineNumber, int* columnNumber) | 369 static bool parseLocation(ErrorString* errorString, PassRefPtr<JSONObject> locat
ion, String* scriptId, int* lineNumber, int* columnNumber) |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 479 return frame.release(); | 485 return frame.release(); |
| 480 } | 486 } |
| 481 } | 487 } |
| 482 | 488 |
| 483 String InspectorDebuggerAgent::scriptURL(JavaScriptCallFrame* frame) | 489 String InspectorDebuggerAgent::scriptURL(JavaScriptCallFrame* frame) |
| 484 { | 490 { |
| 485 String scriptIdString = String::number(frame->sourceID()); | 491 String scriptIdString = String::number(frame->sourceID()); |
| 486 ScriptsMap::iterator it = m_scripts.find(scriptIdString); | 492 ScriptsMap::iterator it = m_scripts.find(scriptIdString); |
| 487 if (it == m_scripts.end()) | 493 if (it == m_scripts.end()) |
| 488 return String(); | 494 return String(); |
| 489 return it->value.url; | 495 return scriptSourceURL(it->value); |
| 490 } | 496 } |
| 491 | 497 |
| 492 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipExceptio
nPause() | 498 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipExceptio
nPause() |
| 493 { | 499 { |
| 494 if (m_steppingFromFramework) | 500 if (m_steppingFromFramework) |
| 495 return ScriptDebugListener::NoSkip; | 501 return ScriptDebugListener::NoSkip; |
| 496 | 502 |
| 497 // FIXME: Fast return: if (!m_cachedSkipStackRegExp && !has_any_anti_breakpo
int) return ScriptDebugListener::NoSkip; | 503 // FIXME: Fast return: if (!m_cachedSkipStackRegExp && !has_any_anti_breakpo
int) return ScriptDebugListener::NoSkip; |
| 498 | 504 |
| 499 RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = topCallFrameSkipUnknownSo
urces(); | 505 RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = topCallFrameSkipUnknownSo
urces(); |
| (...skipping 949 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1449 void InspectorDebuggerAgent::trace(Visitor* visitor) | 1455 void InspectorDebuggerAgent::trace(Visitor* visitor) |
| 1450 { | 1456 { |
| 1451 visitor->trace(m_injectedScriptManager); | 1457 visitor->trace(m_injectedScriptManager); |
| 1452 visitor->trace(m_listener); | 1458 visitor->trace(m_listener); |
| 1453 visitor->trace(m_asyncCallStackTracker); | 1459 visitor->trace(m_asyncCallStackTracker); |
| 1454 InspectorBaseAgent::trace(visitor); | 1460 InspectorBaseAgent::trace(visitor); |
| 1455 } | 1461 } |
| 1456 | 1462 |
| 1457 } // namespace blink | 1463 } // namespace blink |
| 1458 | 1464 |
| OLD | NEW |