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

Side by Side Diff: Source/devtools/front_end/sources/JavaScriptSourceFrame.js

Issue 352953002: DevTools: properly support targets in LiveEditSupport (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address vsevik's comments Created 6 years, 6 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) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 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 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 var selection = this.textEditor.copyRange(textSelection); 273 var selection = this.textEditor.copyRange(textSelection);
274 var addToWatchLabel = WebInspector.UIString(WebInspector.useLowerCas eMenuTitles() ? "Add to watch" : "Add to Watch"); 274 var addToWatchLabel = WebInspector.UIString(WebInspector.useLowerCas eMenuTitles() ? "Add to watch" : "Add to Watch");
275 contextMenu.appendItem(addToWatchLabel, this._innerAddToWatch.bind(t his, selection)); 275 contextMenu.appendItem(addToWatchLabel, this._innerAddToWatch.bind(t his, selection));
276 var evaluateLabel = WebInspector.UIString(WebInspector.useLowerCaseM enuTitles() ? "Evaluate in console" : "Evaluate in Console"); 276 var evaluateLabel = WebInspector.UIString(WebInspector.useLowerCaseM enuTitles() ? "Evaluate in console" : "Evaluate in Console");
277 contextMenu.appendItem(evaluateLabel, this._evaluateInConsole.bind(t his, selection)); 277 contextMenu.appendItem(evaluateLabel, this._evaluateInConsole.bind(t his, selection));
278 contextMenu.appendSeparator(); 278 contextMenu.appendSeparator();
279 } else if (this._uiSourceCode.project().type() === WebInspector.projectT ypes.Debugger) { 279 } else if (this._uiSourceCode.project().type() === WebInspector.projectT ypes.Debugger) {
280 // FIXME: Change condition above to explicitly check that current ui SourceCode is created by default debugger mapping 280 // FIXME: Change condition above to explicitly check that current ui SourceCode is created by default debugger mapping
281 // and move the code adding this menu item to generic context menu p rovider for UISourceCode. 281 // and move the code adding this menu item to generic context menu p rovider for UISourceCode.
282 var liveEditLabel = WebInspector.UIString(WebInspector.useLowerCaseM enuTitles() ? "Live edit" : "Live Edit"); 282 var liveEditLabel = WebInspector.UIString(WebInspector.useLowerCaseM enuTitles() ? "Live edit" : "Live Edit");
283 contextMenu.appendItem(liveEditLabel, liveEdit.bind(this)); 283 var projectId = this._uiSourceCode.project().id();
vsevik 2014/06/26 14:16:19 Let's make this static method in LiveEditSupport
sergeyv 2014/06/26 14:38:35 Done.
284 var target;
285 var targets = WebInspector.targetManager.targets();
286 for (var i = 0; i < targets.length; ++i) {
287 if (projectId === WebInspector.DefaultScriptMapping.projectIdFor Target(targets[i])) {
288 target = targets[i];
289 break;
290 }
291 }
292 if (!target)
293 return;
294
295 contextMenu.appendItem(liveEditLabel, liveEdit.bind(this, target.liv eEditSupport));
284 contextMenu.appendSeparator(); 296 contextMenu.appendSeparator();
285 } 297 }
286 298
287 /** 299 /**
288 * @this {WebInspector.JavaScriptSourceFrame} 300 * @this {WebInspector.JavaScriptSourceFrame}
301 * @param {!WebInspector.LiveEditSupport} liveEditSupport
289 */ 302 */
290 function liveEdit() 303 function liveEdit(liveEditSupport)
291 { 304 {
292 var liveEditUISourceCode = WebInspector.liveEditSupport.uiSourceCode ForLiveEdit(this._uiSourceCode); 305 var liveEditUISourceCode = liveEditSupport.uiSourceCodeForLiveEdit(t his._uiSourceCode);
293 WebInspector.Revealer.reveal(liveEditUISourceCode.uiLocation(lineNum ber)); 306 WebInspector.Revealer.reveal(liveEditUISourceCode.uiLocation(lineNum ber));
294 } 307 }
295 308
296 WebInspector.UISourceCodeFrame.prototype.populateTextAreaContextMenu.cal l(this, contextMenu, lineNumber); 309 WebInspector.UISourceCodeFrame.prototype.populateTextAreaContextMenu.cal l(this, contextMenu, lineNumber);
297 }, 310 },
298 311
299 _workingCopyChanged: function(event) 312 _workingCopyChanged: function(event)
300 { 313 {
301 if (this._supportsEnabledBreakpointsWhileEditing() || this._scriptFileFo rTarget.size()) 314 if (this._supportsEnabledBreakpointsWhileEditing() || this._scriptFileFo rTarget.size())
302 return; 315 return;
303 316
304 if (this._uiSourceCode.isDirty()) 317 if (this._uiSourceCode.isDirty())
305 this._muteBreakpointsWhileEditing(); 318 this._muteBreakpointsWhileEditing();
306 else 319 else
307 this._restoreBreakpointsAfterEditing(); 320 this._restoreBreakpointsAfterEditing();
308 }, 321 },
309 322
310 _workingCopyCommitted: function(event) 323 _workingCopyCommitted: function(event)
311 { 324 {
325
326 var callbackCount;
vsevik 2014/06/26 14:16:19 redundant
sergeyv 2014/06/26 14:38:35 Done.
327 var liveEditError;
328 var liveEditErrorData;
329 var contextScript;
330 var succeededEdits = 0;
331 var failedEdits = 0;
332
333 /**
334 * @param {?string} error
335 * @param {!DebuggerAgent.SetScriptSourceError=} errorData
336 * @param {!WebInspector.Script=} script
337 */
338 function liveEditCallback(error, errorData, script)
339 {
340 if (error) {
341 liveEditError = error;
342 liveEditErrorData = errorData;
343 contextScript = script;
344 failedEdits--;
vsevik 2014/06/26 14:16:19 ++
sergeyv 2014/06/26 14:38:35 Done.
345 } else
346 succeededEdits++;
347
348 if (succeededEdits + failedEdits !== callbackCount)
349 return;
350
351 if (succeededEdits === callbackCount)
vsevik 2014/06/26 14:16:19 failedEdits === 0
sergeyv 2014/06/26 14:38:35 Done.
352 WebInspector.LiveEditSupport.logSuccess();
353 else
354 WebInspector.LiveEditSupport.logDetailedError(liveEditError, liv eEditErrorData, contextScript)
355
356 }
357
312 if (this._supportsEnabledBreakpointsWhileEditing()) 358 if (this._supportsEnabledBreakpointsWhileEditing())
313 return; 359 return;
314 if (this._scriptFileForTarget.size()) { 360 if (this._scriptFileForTarget.size()) {
315 this._hasCommittedLiveEdit = true; 361 this._hasCommittedLiveEdit = true;
316 var scriptFiles = this._scriptFileForTarget.values(); 362 var scriptFiles = this._scriptFileForTarget.values();
363 callbackCount = scriptFiles.length;
317 for (var i = 0; i < scriptFiles.length; ++i) 364 for (var i = 0; i < scriptFiles.length; ++i)
318 scriptFiles[i].commitLiveEdit(); 365 scriptFiles[i].commitLiveEdit(liveEditCallback);
319 return; 366 return;
320 } 367 }
321 this._restoreBreakpointsAfterEditing(); 368 this._restoreBreakpointsAfterEditing();
322 }, 369 },
323 370
324 _didMergeToVM: function() 371 _didMergeToVM: function()
325 { 372 {
326 if (this._supportsEnabledBreakpointsWhileEditing()) 373 if (this._supportsEnabledBreakpointsWhileEditing())
327 return; 374 return;
328 this._updateDivergedInfobar(); 375 this._updateDivergedInfobar();
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events. ConsoleMessageRemoved, this._consoleMessageRemoved, this); 883 this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events. ConsoleMessageRemoved, this._consoleMessageRemoved, this);
837 this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events. ConsoleMessagesCleared, this._consoleMessagesCleared, this); 884 this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events. ConsoleMessagesCleared, this._consoleMessagesCleared, this);
838 this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events. SourceMappingChanged, this._onSourceMappingChanged, this); 885 this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events. SourceMappingChanged, this._onSourceMappingChanged, this);
839 this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events. WorkingCopyChanged, this._workingCopyChanged, this); 886 this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events. WorkingCopyChanged, this._workingCopyChanged, this);
840 this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events. WorkingCopyCommitted, this._workingCopyCommitted, this); 887 this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events. WorkingCopyCommitted, this._workingCopyCommitted, this);
841 WebInspector.UISourceCodeFrame.prototype.dispose.call(this); 888 WebInspector.UISourceCodeFrame.prototype.dispose.call(this);
842 }, 889 },
843 890
844 __proto__: WebInspector.UISourceCodeFrame.prototype 891 __proto__: WebInspector.UISourceCodeFrame.prototype
845 } 892 }
OLDNEW
« Source/devtools/front_end/sdk/Target.js ('K') | « Source/devtools/front_end/sdk/Target.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698