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

Side by Side Diff: Source/devtools/front_end/bindings/DebuggerWorkspaceBinding.js

Issue 471433004: DevTools: Split out the "workspace" and "bindings" modules from "sdk" (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove marker interfaces and WI.SourceMapping Created 6 years, 4 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @constructor 6 * @constructor
7 * @implements {WebInspector.TargetManager.Observer} 7 * @implements {WebInspector.TargetManager.Observer}
8 * @param {!WebInspector.TargetManager} targetManager 8 * @param {!WebInspector.TargetManager} targetManager
9 * @param {!WebInspector.Workspace} workspace 9 * @param {!WebInspector.Workspace} workspace
10 * @param {!WebInspector.NetworkWorkspaceBinding} networkWorkspaceBinding 10 * @param {!WebInspector.NetworkWorkspaceBinding} networkWorkspaceBinding
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 _uiSourceCodeRemoved: function(event) 46 _uiSourceCodeRemoved: function(event)
47 { 47 {
48 var uiSourceCode = /** @type {!WebInspector.UISourceCode} */ (event.data ); 48 var uiSourceCode = /** @type {!WebInspector.UISourceCode} */ (event.data );
49 var targetDatas = this._targetToData.values(); 49 var targetDatas = this._targetToData.values();
50 for (var i = 0; i < targetDatas.length; ++i) 50 for (var i = 0; i < targetDatas.length; ++i)
51 targetDatas[i]._uiSourceCodeRemoved(uiSourceCode); 51 targetDatas[i]._uiSourceCodeRemoved(uiSourceCode);
52 }, 52 },
53 53
54 /** 54 /**
55 * @param {!WebInspector.Script} script 55 * @param {!WebInspector.Script} script
56 * @param {!WebInspector.SourceMapping} sourceMapping 56 * @param {!WebInspector.DebuggerSourceMapping} sourceMapping
57 */ 57 */
58 pushSourceMapping: function(script, sourceMapping) 58 pushSourceMapping: function(script, sourceMapping)
59 { 59 {
60 var info = this._ensureInfoForScript(script); 60 var info = this._ensureInfoForScript(script);
61 info._pushSourceMapping(sourceMapping); 61 info._pushSourceMapping(sourceMapping);
62 }, 62 },
63 63
64 /** 64 /**
65 * @param {!WebInspector.Script} script 65 * @param {!WebInspector.Script} script
66 * @return {!WebInspector.SourceMapping} 66 * @return {!WebInspector.DebuggerSourceMapping}
67 */ 67 */
68 popSourceMapping: function(script) 68 popSourceMapping: function(script)
69 { 69 {
70 var info = this._infoForScript(script.target(), script.scriptId); 70 var info = this._infoForScript(script.target(), script.scriptId);
71 console.assert(info); 71 console.assert(info);
72 return info._popSourceMapping(); 72 return info._popSourceMapping();
73 }, 73 },
74 74
75 /** 75 /**
76 * @param {!WebInspector.Target} target 76 * @param {!WebInspector.Target} target
77 * @param {!WebInspector.UISourceCode} uiSourceCode 77 * @param {!WebInspector.UISourceCode} uiSourceCode
78 * @param {?WebInspector.SourceMapping} sourceMapping 78 * @param {?WebInspector.DebuggerSourceMapping} sourceMapping
79 */ 79 */
80 setSourceMapping: function(target, uiSourceCode, sourceMapping) 80 setSourceMapping: function(target, uiSourceCode, sourceMapping)
81 { 81 {
82 var data = this._targetToData.get(target); 82 var data = this._targetToData.get(target);
83 if (data) 83 if (data)
84 data._setSourceMapping(uiSourceCode, sourceMapping); 84 data._setSourceMapping(uiSourceCode, sourceMapping);
85 }, 85 },
86 86
87 /** 87 /**
88 * @param {!WebInspector.Script} script 88 * @param {!WebInspector.Script} script
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 uiLocationToRawLocation: function(target, uiSourceCode, lineNumber, columnNu mber) 143 uiLocationToRawLocation: function(target, uiSourceCode, lineNumber, columnNu mber)
144 { 144 {
145 var targetData = this._targetToData.get(target); 145 var targetData = this._targetToData.get(target);
146 return targetData ? /** @type {?WebInspector.DebuggerModel.Location} */ (targetData._uiLocationToRawLocation(uiSourceCode, lineNumber, columnNumber)) : null; 146 return targetData ? /** @type {?WebInspector.DebuggerModel.Location} */ (targetData._uiLocationToRawLocation(uiSourceCode, lineNumber, columnNumber)) : null;
147 }, 147 },
148 148
149 /** 149 /**
150 * @param {!WebInspector.UISourceCode} uiSourceCode 150 * @param {!WebInspector.UISourceCode} uiSourceCode
151 * @param {number} lineNumber 151 * @param {number} lineNumber
152 * @param {number} columnNumber 152 * @param {number} columnNumber
153 * @return {!Array.<!WebInspector.RawLocation>} 153 * @return {!Array.<!WebInspector.DebuggerModel.Location>}
154 */ 154 */
155 uiLocationToRawLocations: function(uiSourceCode, lineNumber, columnNumber) 155 uiLocationToRawLocations: function(uiSourceCode, lineNumber, columnNumber)
156 { 156 {
157 var result = []; 157 var result = [];
158 var targetDatas = this._targetToData.values(); 158 var targetDatas = this._targetToData.values();
159 for (var i = 0; i < targetDatas.length; ++i) { 159 for (var i = 0; i < targetDatas.length; ++i) {
160 var rawLocation = targetDatas[i]._uiLocationToRawLocation(uiSourceCo de, lineNumber, columnNumber); 160 var rawLocation = targetDatas[i]._uiLocationToRawLocation(uiSourceCo de, lineNumber, columnNumber);
161 if (rawLocation) 161 if (rawLocation)
162 result.push(rawLocation); 162 result.push(rawLocation);
163 } 163 }
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 var workspace = debuggerWorkspaceBinding._workspace; 297 var workspace = debuggerWorkspaceBinding._workspace;
298 298
299 this._liveEditSupport = new WebInspector.LiveEditSupport(target, workspace, debuggerWorkspaceBinding); 299 this._liveEditSupport = new WebInspector.LiveEditSupport(target, workspace, debuggerWorkspaceBinding);
300 this._defaultMapping = new WebInspector.DefaultScriptMapping(debuggerModel, workspace, debuggerWorkspaceBinding); 300 this._defaultMapping = new WebInspector.DefaultScriptMapping(debuggerModel, workspace, debuggerWorkspaceBinding);
301 this._resourceMapping = new WebInspector.ResourceScriptMapping(debuggerModel , workspace, debuggerWorkspaceBinding); 301 this._resourceMapping = new WebInspector.ResourceScriptMapping(debuggerModel , workspace, debuggerWorkspaceBinding);
302 this._compilerMapping = new WebInspector.CompilerScriptMapping(debuggerModel , workspace, debuggerWorkspaceBinding._networkWorkspaceBinding, debuggerWorkspac eBinding); 302 this._compilerMapping = new WebInspector.CompilerScriptMapping(debuggerModel , workspace, debuggerWorkspaceBinding._networkWorkspaceBinding, debuggerWorkspac eBinding);
303 303
304 /** @type {!WebInspector.LiveEditSupport} */ 304 /** @type {!WebInspector.LiveEditSupport} */
305 this._liveEditSupport = new WebInspector.LiveEditSupport(target, workspace, debuggerWorkspaceBinding); 305 this._liveEditSupport = new WebInspector.LiveEditSupport(target, workspace, debuggerWorkspaceBinding);
306 306
307 /** @type {!Map.<!WebInspector.UISourceCode, !WebInspector.SourceMapping>} * / 307 /** @type {!Map.<!WebInspector.UISourceCode, !WebInspector.DebuggerSourceMap ping>} */
308 this._uiSourceCodeToSourceMapping = new Map(); 308 this._uiSourceCodeToSourceMapping = new Map();
309 309
310 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedScrip tSource, this._parsedScriptSource, this); 310 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedScrip tSource, this._parsedScriptSource, this);
311 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedToPar seScriptSource, this._parsedScriptSource, this); 311 debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedToPar seScriptSource, this._parsedScriptSource, this);
312 } 312 }
313 313
314 WebInspector.DebuggerWorkspaceBinding.TargetData.prototype = { 314 WebInspector.DebuggerWorkspaceBinding.TargetData.prototype = {
315 /** 315 /**
316 * @param {!WebInspector.Event} event 316 * @param {!WebInspector.Event} event
317 */ 317 */
318 _parsedScriptSource: function(event) 318 _parsedScriptSource: function(event)
319 { 319 {
320 var script = /** @type {!WebInspector.Script} */ (event.data); 320 var script = /** @type {!WebInspector.Script} */ (event.data);
321 this._defaultMapping.addScript(script); 321 this._defaultMapping.addScript(script);
322 322
323 if (script.isSnippet()) { 323 if (script.isSnippet()) {
324 WebInspector.scriptSnippetModel.addScript(script); 324 WebInspector.scriptSnippetModel.addScript(script);
325 return; 325 return;
326 } 326 }
327 327
328 this._resourceMapping.addScript(script); 328 this._resourceMapping.addScript(script);
329 329
330 if (WebInspector.settings.jsSourceMapsEnabled.get()) 330 if (WebInspector.settings.jsSourceMapsEnabled.get())
331 this._compilerMapping.addScript(script); 331 this._compilerMapping.addScript(script);
332 }, 332 },
333 333
334 /** 334 /**
335 * @param {!WebInspector.UISourceCode} uiSourceCode 335 * @param {!WebInspector.UISourceCode} uiSourceCode
336 * @param {?WebInspector.SourceMapping} sourceMapping 336 * @param {?WebInspector.DebuggerSourceMapping} sourceMapping
337 */ 337 */
338 _setSourceMapping: function(uiSourceCode, sourceMapping) 338 _setSourceMapping: function(uiSourceCode, sourceMapping)
339 { 339 {
340 if (this._uiSourceCodeToSourceMapping.get(uiSourceCode) === sourceMappin g) 340 if (this._uiSourceCodeToSourceMapping.get(uiSourceCode) === sourceMappin g)
341 return; 341 return;
342 342
343 if (sourceMapping) 343 if (sourceMapping)
344 this._uiSourceCodeToSourceMapping.put(uiSourceCode, sourceMapping); 344 this._uiSourceCodeToSourceMapping.put(uiSourceCode, sourceMapping);
345 else 345 else
346 this._uiSourceCodeToSourceMapping.remove(uiSourceCode); 346 this._uiSourceCodeToSourceMapping.remove(uiSourceCode);
347 347
348 uiSourceCode.dispatchEventToListeners(WebInspector.UISourceCode.Events.S ourceMappingChanged, {target: this._target, isIdentity: sourceMapping ? sourceMa pping.isIdentity() : false}); 348 uiSourceCode.dispatchEventToListeners(WebInspector.UISourceCode.Events.S ourceMappingChanged, {target: this._target, isIdentity: sourceMapping ? sourceMa pping.isIdentity() : false});
349 }, 349 },
350 350
351 /** 351 /**
352 * @param {!WebInspector.UISourceCode} uiSourceCode 352 * @param {!WebInspector.UISourceCode} uiSourceCode
353 * @param {number} lineNumber 353 * @param {number} lineNumber
354 * @param {number} columnNumber 354 * @param {number} columnNumber
355 * @return {?WebInspector.RawLocation} 355 * @return {?WebInspector.DebuggerModel.Location}
356 */ 356 */
357 _uiLocationToRawLocation: function(uiSourceCode, lineNumber, columnNumber) 357 _uiLocationToRawLocation: function(uiSourceCode, lineNumber, columnNumber)
358 { 358 {
359 var sourceMapping = this._uiSourceCodeToSourceMapping.get(uiSourceCode); 359 var sourceMapping = this._uiSourceCodeToSourceMapping.get(uiSourceCode);
360 return sourceMapping ? sourceMapping.uiLocationToRawLocation(uiSourceCod e, lineNumber, columnNumber) : null; 360 return sourceMapping ? sourceMapping.uiLocationToRawLocation(uiSourceCod e, lineNumber, columnNumber) : null;
361 }, 361 },
362 362
363 /** 363 /**
364 * @param {!WebInspector.UISourceCode} uiSourceCode 364 * @param {!WebInspector.UISourceCode} uiSourceCode
365 * @param {number} lineNumber 365 * @param {number} lineNumber
(...skipping 23 matching lines...) Expand all
389 } 389 }
390 390
391 /** 391 /**
392 * @constructor 392 * @constructor
393 * @param {!WebInspector.Script} script 393 * @param {!WebInspector.Script} script
394 */ 394 */
395 WebInspector.DebuggerWorkspaceBinding.ScriptInfo = function(script) 395 WebInspector.DebuggerWorkspaceBinding.ScriptInfo = function(script)
396 { 396 {
397 this._script = script; 397 this._script = script;
398 398
399 /** @type {!Array.<!WebInspector.SourceMapping>} */ 399 /** @type {!Array.<!WebInspector.DebuggerSourceMapping>} */
400 this._sourceMappings = []; 400 this._sourceMappings = [];
401 401
402 /** @type {!Set.<!WebInspector.LiveLocation>} */ 402 /** @type {!Set.<!WebInspector.LiveLocation>} */
403 this._locations = new Set(); 403 this._locations = new Set();
404 } 404 }
405 405
406 WebInspector.DebuggerWorkspaceBinding.ScriptInfo.prototype = { 406 WebInspector.DebuggerWorkspaceBinding.ScriptInfo.prototype = {
407 /** 407 /**
408 * @param {!WebInspector.SourceMapping} sourceMapping 408 * @param {!WebInspector.DebuggerSourceMapping} sourceMapping
409 */ 409 */
410 _pushSourceMapping: function(sourceMapping) 410 _pushSourceMapping: function(sourceMapping)
411 { 411 {
412 this._sourceMappings.push(sourceMapping); 412 this._sourceMappings.push(sourceMapping);
413 this._updateLocations(); 413 this._updateLocations();
414 }, 414 },
415 415
416 /** 416 /**
417 * @return {!WebInspector.SourceMapping} 417 * @return {!WebInspector.DebuggerSourceMapping}
418 */ 418 */
419 _popSourceMapping: function() 419 _popSourceMapping: function()
420 { 420 {
421 var sourceMapping = this._sourceMappings.pop(); 421 var sourceMapping = this._sourceMappings.pop();
422 this._updateLocations(); 422 this._updateLocations();
423 return sourceMapping; 423 return sourceMapping;
424 }, 424 },
425 425
426 /** 426 /**
427 * @param {!WebInspector.LiveLocation} location 427 * @param {!WebInspector.LiveLocation} location
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 /** 465 /**
466 * @constructor 466 * @constructor
467 * @extends {WebInspector.LiveLocation} 467 * @extends {WebInspector.LiveLocation}
468 * @param {!WebInspector.Script} script 468 * @param {!WebInspector.Script} script
469 * @param {!WebInspector.DebuggerModel.Location} rawLocation 469 * @param {!WebInspector.DebuggerModel.Location} rawLocation
470 * @param {!WebInspector.DebuggerWorkspaceBinding} binding 470 * @param {!WebInspector.DebuggerWorkspaceBinding} binding
471 * @param {function(!WebInspector.UILocation):(boolean|undefined)} updateDelegat e 471 * @param {function(!WebInspector.UILocation):(boolean|undefined)} updateDelegat e
472 */ 472 */
473 WebInspector.DebuggerWorkspaceBinding.Location = function(script, rawLocation, b inding, updateDelegate) 473 WebInspector.DebuggerWorkspaceBinding.Location = function(script, rawLocation, b inding, updateDelegate)
474 { 474 {
475 WebInspector.LiveLocation.call(this, rawLocation, updateDelegate); 475 WebInspector.LiveLocation.call(this, updateDelegate);
476 this._script = script; 476 this._script = script;
477 this._rawLocation = rawLocation;
477 this._binding = binding; 478 this._binding = binding;
478 } 479 }
479 480
480 WebInspector.DebuggerWorkspaceBinding.Location.prototype = { 481 WebInspector.DebuggerWorkspaceBinding.Location.prototype = {
481 /** 482 /**
482 * @return {!WebInspector.UILocation} 483 * @return {!WebInspector.UILocation}
483 */ 484 */
484 uiLocation: function() 485 uiLocation: function()
485 { 486 {
486 var debuggerModelLocation = /** @type {!WebInspector.DebuggerModel.Locat ion} */ (this.rawLocation()); 487 var debuggerModelLocation = this._rawLocation;
487 return this._binding.rawLocationToUILocation(debuggerModelLocation); 488 return this._binding.rawLocationToUILocation(debuggerModelLocation);
488 }, 489 },
489 490
490 dispose: function() 491 dispose: function()
491 { 492 {
492 WebInspector.LiveLocation.prototype.dispose.call(this); 493 WebInspector.LiveLocation.prototype.dispose.call(this);
493 this._binding._removeLiveLocation(this); 494 this._binding._removeLiveLocation(this);
494 }, 495 },
495 496
496 __proto__: WebInspector.LiveLocation.prototype 497 __proto__: WebInspector.LiveLocation.prototype
497 } 498 }
498 499
499 /** 500 /**
501 * @interface
502 */
503 WebInspector.DebuggerSourceMapping = function()
504 {
505 }
506
507 WebInspector.DebuggerSourceMapping.prototype = {
508 /**
509 * @param {!WebInspector.DebuggerModel.Location} rawLocation
510 * @return {?WebInspector.UILocation}
511 */
512 rawLocationToUILocation: function(rawLocation) { },
513
514 /**
515 * @param {!WebInspector.UISourceCode} uiSourceCode
516 * @param {number} lineNumber
517 * @param {number} columnNumber
518 * @return {?WebInspector.DebuggerModel.Location}
519 */
520 uiLocationToRawLocation: function(uiSourceCode, lineNumber, columnNumber) { },
521
522 /**
523 * @return {boolean}
524 */
525 isIdentity: function() { },
526
527 /**
528 * @param {!WebInspector.UISourceCode} uiSourceCode
529 * @param {number} lineNumber
530 * @return {boolean}
531 */
532 uiLineHasMapping: function(uiSourceCode, lineNumber) { }
533 }
534
535 /**
500 * @type {!WebInspector.DebuggerWorkspaceBinding} 536 * @type {!WebInspector.DebuggerWorkspaceBinding}
501 */ 537 */
502 WebInspector.debuggerWorkspaceBinding; 538 WebInspector.debuggerWorkspaceBinding;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698