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

Side by Side Diff: Source/core/inspector/InspectorDebuggerAgent.cpp

Issue 323523004: DevTools: Add scripts sourceURL plumbing from v8. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Comments addressed Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
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 1157 matching lines...) Expand 10 before | Expand all | Expand 10 after
1168 RefPtrWillBeRawPtr<ScriptAsyncCallStack> result = nullptr; 1168 RefPtrWillBeRawPtr<ScriptAsyncCallStack> result = nullptr;
1169 for (AsyncCallStackTracker::AsyncCallStackVector::const_reverse_iterator it = callStacks.rbegin(); it != callStacks.rend(); ++it) { 1169 for (AsyncCallStackTracker::AsyncCallStackVector::const_reverse_iterator it = callStacks.rbegin(); it != callStacks.rend(); ++it) {
1170 RefPtrWillBeRawPtr<JavaScriptCallFrame> callFrame = ScriptDebugServer::t oJavaScriptCallFrame((*it)->callFrames()); 1170 RefPtrWillBeRawPtr<JavaScriptCallFrame> callFrame = ScriptDebugServer::t oJavaScriptCallFrame((*it)->callFrames());
1171 if (!callFrame) 1171 if (!callFrame)
1172 break; 1172 break;
1173 result = ScriptAsyncCallStack::create((*it)->description(), toScriptCall Stack(callFrame.get()), result.release()); 1173 result = ScriptAsyncCallStack::create((*it)->description(), toScriptCall Stack(callFrame.get()), result.release());
1174 } 1174 }
1175 return result.release(); 1175 return result.release();
1176 } 1176 }
1177 1177
1178 String InspectorDebuggerAgent::sourceMapURLForScript(const Script& script) 1178 String InspectorDebuggerAgent::sourceMapURLForScript(const Script& script, Compi leResult compileResult)
1179 { 1179 {
1180 bool deprecated; 1180 bool hasSyntaxError = compileResult != CompileSuccess;
1181 String sourceMapURL = ContentSearchUtils::findSourceMapURL(script.source, Co ntentSearchUtils::JavaScriptMagicComment, &deprecated); 1181 if (hasSyntaxError) {
1182 if (!sourceMapURL.isEmpty()) { 1182 bool deprecated;
1183 // FIXME: add deprecated console message here. 1183 String sourceMapURL = ContentSearchUtils::findSourceMapURL(script.source , ContentSearchUtils::JavaScriptMagicComment, &deprecated);
1184 return sourceMapURL; 1184 if (!sourceMapURL.isEmpty())
1185 return sourceMapURL;
1185 } 1186 }
1186 1187
1188 if (!script.sourceMappingURL.isEmpty())
1189 return script.sourceMappingURL;
1190
1187 if (script.url.isEmpty()) 1191 if (script.url.isEmpty())
1188 return String(); 1192 return String();
1189 1193
1190 InspectorPageAgent* pageAgent = m_instrumentingAgents->inspectorPageAgent(); 1194 InspectorPageAgent* pageAgent = m_instrumentingAgents->inspectorPageAgent();
1191 if (!pageAgent) 1195 if (!pageAgent)
1192 return String(); 1196 return String();
1193 return pageAgent->resourceSourceMapURL(script.url); 1197 return pageAgent->resourceSourceMapURL(script.url);
1194 } 1198 }
1195 1199
1196 // JavaScriptDebugListener functions 1200 // ScriptDebugListener functions
1197 1201
1198 void InspectorDebuggerAgent::didParseSource(const String& scriptId, const Script & script, CompileResult compileResult) 1202 void InspectorDebuggerAgent::didParseSource(const String& scriptId, const Script & parsedScript, CompileResult compileResult)
1199 { 1203 {
1200 // Don't send script content to the front end until it's really needed. 1204 Script script = parsedScript;
1201 const bool* isContentScript = script.isContentScript ? &script.isContentScri pt : 0; 1205 const bool* isContentScript = script.isContentScript ? &script.isContentScri pt : 0;
1202 String sourceMapURL = sourceMapURLForScript(script); 1206
1207 bool hasSyntaxError = compileResult != CompileSuccess;
1208 if (!script.startLine && !script.startColumn) {
1209 if (hasSyntaxError) {
1210 bool deprecated;
1211 script.sourceURL = ContentSearchUtils::findSourceURL(script.source, ContentSearchUtils::JavaScriptMagicComment, &deprecated);
1212 }
1213 } else {
1214 script.sourceURL = String();
1215 }
1216
1217 bool hasSourceURL = !script.sourceURL.isEmpty();
1218 String scriptURL = hasSourceURL ? script.sourceURL : script.url;
1219
1220 String sourceMapURL = sourceMapURLForScript(script, compileResult);
1203 String* sourceMapURLParam = sourceMapURL.isNull() ? 0 : &sourceMapURL; 1221 String* sourceMapURLParam = sourceMapURL.isNull() ? 0 : &sourceMapURL;
1204 String sourceURL; 1222
1205 if (!script.startLine && !script.startColumn) {
1206 bool deprecated;
1207 sourceURL = ContentSearchUtils::findSourceURL(script.source, ContentSear chUtils::JavaScriptMagicComment, &deprecated);
1208 // FIXME: add deprecated console message here.
1209 }
1210 bool hasSourceURL = !sourceURL.isEmpty();
1211 String scriptURL = hasSourceURL ? sourceURL : script.url;
1212 bool* hasSourceURLParam = hasSourceURL ? &hasSourceURL : 0; 1223 bool* hasSourceURLParam = hasSourceURL ? &hasSourceURL : 0;
1213 bool hasSyntaxError = compileResult != CompileSuccess;
1214 if (!hasSyntaxError) 1224 if (!hasSyntaxError)
1215 m_frontend->scriptParsed(scriptId, scriptURL, script.startLine, script.s tartColumn, script.endLine, script.endColumn, isContentScript, sourceMapURLParam , hasSourceURLParam); 1225 m_frontend->scriptParsed(scriptId, scriptURL, script.startLine, script.s tartColumn, script.endLine, script.endColumn, isContentScript, sourceMapURLParam , hasSourceURLParam);
1216 else 1226 else
1217 m_frontend->scriptFailedToParse(scriptId, scriptURL, script.startLine, s cript.startColumn, script.endLine, script.endColumn, isContentScript, sourceMapU RLParam, hasSourceURLParam); 1227 m_frontend->scriptFailedToParse(scriptId, scriptURL, script.startLine, s cript.startColumn, script.endLine, script.endColumn, isContentScript, sourceMapU RLParam, hasSourceURLParam);
1218 1228
1219 m_scripts.set(scriptId, script); 1229 m_scripts.set(scriptId, script);
1220 1230
1221 if (scriptURL.isEmpty() || hasSyntaxError) 1231 if (scriptURL.isEmpty() || hasSyntaxError)
1222 return; 1232 return;
1223 1233
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
1379 { 1389 {
1380 m_scripts.clear(); 1390 m_scripts.clear();
1381 m_breakpointIdToDebugServerBreakpointIds.clear(); 1391 m_breakpointIdToDebugServerBreakpointIds.clear();
1382 m_asyncCallStackTracker.clear(); 1392 m_asyncCallStackTracker.clear();
1383 if (m_frontend) 1393 if (m_frontend)
1384 m_frontend->globalObjectCleared(); 1394 m_frontend->globalObjectCleared();
1385 } 1395 }
1386 1396
1387 } // namespace WebCore 1397 } // namespace WebCore
1388 1398
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorDebuggerAgent.h ('k') | Source/core/inspector/ScriptDebugListener.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698