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

Unified Diff: Source/devtools/front_end/sdk/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 side-by-side diff with in-line comments
Download patch
Index: Source/devtools/front_end/sdk/DebuggerWorkspaceBinding.js
diff --git a/Source/devtools/front_end/sdk/DebuggerWorkspaceBinding.js b/Source/devtools/front_end/sdk/DebuggerWorkspaceBinding.js
deleted file mode 100644
index 48db995466faf388db90845418c7aa8470d726e7..0000000000000000000000000000000000000000
--- a/Source/devtools/front_end/sdk/DebuggerWorkspaceBinding.js
+++ /dev/null
@@ -1,502 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-/**
- * @constructor
- * @implements {WebInspector.TargetManager.Observer}
- * @param {!WebInspector.TargetManager} targetManager
- * @param {!WebInspector.Workspace} workspace
- * @param {!WebInspector.NetworkWorkspaceBinding} networkWorkspaceBinding
- */
-WebInspector.DebuggerWorkspaceBinding = function(targetManager, workspace, networkWorkspaceBinding)
-{
- this._workspace = workspace;
- this._networkWorkspaceBinding = networkWorkspaceBinding;
-
- /** @type {!Map.<!WebInspector.Target, !WebInspector.DebuggerWorkspaceBinding.TargetData>} */
- this._targetToData = new Map();
- targetManager.observeTargets(this);
-
- targetManager.addModelListener(WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.GlobalObjectCleared, this._globalObjectCleared, this);
- targetManager.addModelListener(WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.DebuggerResumed, this._debuggerResumed, this);
- workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeRemoved, this._uiSourceCodeRemoved, this);
-}
-
-WebInspector.DebuggerWorkspaceBinding.prototype = {
- /**
- * @param {!WebInspector.Target} target
- */
- targetAdded: function(target)
- {
- this._targetToData.put(target, new WebInspector.DebuggerWorkspaceBinding.TargetData(target, this));
- },
-
- /**
- * @param {!WebInspector.Target} target
- */
- targetRemoved: function(target)
- {
- this._targetToData.remove(target)._dispose();
- },
-
- /**
- * @param {!WebInspector.Event} event
- */
- _uiSourceCodeRemoved: function(event)
- {
- var uiSourceCode = /** @type {!WebInspector.UISourceCode} */ (event.data);
- var targetDatas = this._targetToData.values();
- for (var i = 0; i < targetDatas.length; ++i)
- targetDatas[i]._uiSourceCodeRemoved(uiSourceCode);
- },
-
- /**
- * @param {!WebInspector.Script} script
- * @param {!WebInspector.SourceMapping} sourceMapping
- */
- pushSourceMapping: function(script, sourceMapping)
- {
- var info = this._ensureInfoForScript(script);
- info._pushSourceMapping(sourceMapping);
- },
-
- /**
- * @param {!WebInspector.Script} script
- * @return {!WebInspector.SourceMapping}
- */
- popSourceMapping: function(script)
- {
- var info = this._infoForScript(script.target(), script.scriptId);
- console.assert(info);
- return info._popSourceMapping();
- },
-
- /**
- * @param {!WebInspector.Target} target
- * @param {!WebInspector.UISourceCode} uiSourceCode
- * @param {?WebInspector.SourceMapping} sourceMapping
- */
- setSourceMapping: function(target, uiSourceCode, sourceMapping)
- {
- var data = this._targetToData.get(target);
- if (data)
- data._setSourceMapping(uiSourceCode, sourceMapping);
- },
-
- /**
- * @param {!WebInspector.Script} script
- */
- updateLocations: function(script)
- {
- var info = this._infoForScript(script.target(), script.scriptId);
- if (info)
- info._updateLocations();
- },
-
- /**
- * @param {!WebInspector.DebuggerModel.Location} rawLocation
- * @param {function(!WebInspector.UILocation):(boolean|undefined)} updateDelegate
- * @return {!WebInspector.DebuggerWorkspaceBinding.Location}
- */
- createLiveLocation: function(rawLocation, updateDelegate)
- {
- var info = this._infoForScript(rawLocation.target(), rawLocation.scriptId);
- console.assert(info);
- var location = new WebInspector.DebuggerWorkspaceBinding.Location(info._script, rawLocation, this, updateDelegate);
- info._addLocation(location);
- return location;
- },
-
- /**
- * @param {!WebInspector.DebuggerModel.CallFrame} callFrame
- * @param {function(!WebInspector.UILocation):(boolean|undefined)} updateDelegate
- * @return {!WebInspector.DebuggerWorkspaceBinding.Location}
- */
- createCallFrameLiveLocation: function(callFrame, updateDelegate)
- {
- var target = callFrame.target();
- this._ensureInfoForScript(callFrame.script)
- var location = this.createLiveLocation(callFrame.location(), updateDelegate);
- this._registerCallFrameLiveLocation(target, location);
- return location;
- },
-
- /**
- * @param {!WebInspector.DebuggerModel.Location} rawLocation
- * @return {!WebInspector.UILocation}
- */
- rawLocationToUILocation: function(rawLocation)
- {
- var info = this._infoForScript(rawLocation.target(), rawLocation.scriptId);
- console.assert(info);
- return info._rawLocationToUILocation(rawLocation);
- },
-
- /**
- * @param {!WebInspector.Target} target
- * @param {!WebInspector.UISourceCode} uiSourceCode
- * @param {number} lineNumber
- * @param {number} columnNumber
- * @return {?WebInspector.DebuggerModel.Location}
- */
- uiLocationToRawLocation: function(target, uiSourceCode, lineNumber, columnNumber)
- {
- var targetData = this._targetToData.get(target);
- return targetData ? /** @type {?WebInspector.DebuggerModel.Location} */ (targetData._uiLocationToRawLocation(uiSourceCode, lineNumber, columnNumber)) : null;
- },
-
- /**
- * @param {!WebInspector.UISourceCode} uiSourceCode
- * @param {number} lineNumber
- * @param {number} columnNumber
- * @return {!Array.<!WebInspector.RawLocation>}
- */
- uiLocationToRawLocations: function(uiSourceCode, lineNumber, columnNumber)
- {
- var result = [];
- var targetDatas = this._targetToData.values();
- for (var i = 0; i < targetDatas.length; ++i) {
- var rawLocation = targetDatas[i]._uiLocationToRawLocation(uiSourceCode, lineNumber, columnNumber);
- if (rawLocation)
- result.push(rawLocation);
- }
- return result;
- },
-
- /**
- * @param {!WebInspector.UISourceCode} uiSourceCode
- * @param {number} lineNumber
- * @return {boolean}
- */
- uiLineHasMapping: function(uiSourceCode, lineNumber)
- {
- var targetDatas = this._targetToData.values();
- for (var i = 0; i < targetDatas.length; ++i) {
- if (!targetDatas[i]._uiLineHasMapping(uiSourceCode, lineNumber))
- return false;
- }
- return true;
- },
-
- /**
- * @param {!WebInspector.Target} target
- * @return {?WebInspector.LiveEditSupport}
- */
- liveEditSupport: function(target)
- {
- var targetData = this._targetToData.get(target);
- return targetData ? targetData._liveEditSupport : null;
- },
-
- /**
- * @param {!WebInspector.UISourceCode} uiSourceCode
- * @param {!WebInspector.Target} target
- * @return {?WebInspector.ResourceScriptFile}
- */
- scriptFile: function(uiSourceCode, target)
- {
- var targetData = this._targetToData.get(target);
- return targetData ? targetData._resourceMapping.scriptFile(uiSourceCode) : null;
- },
-
- /**
- * @param {!WebInspector.Event} event
- */
- _globalObjectCleared: function(event)
- {
- var debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (event.target);
- this._reset(debuggerModel.target());
- },
-
- /**
- * @param {!WebInspector.Target} target
- */
- _reset: function(target)
- {
- var targetData = this._targetToData.get(target);
- targetData.callFrameLocations.values().forEach(function(location) { location.dispose(); });
- targetData.callFrameLocations.clear();
- },
-
- /**
- * @param {!WebInspector.Script} script
- * @return {!WebInspector.DebuggerWorkspaceBinding.ScriptInfo}
- */
- _ensureInfoForScript: function(script)
- {
- var scriptDataMap = this._targetToData.get(script.target()).scriptDataMap;
- var info = scriptDataMap.get(script.scriptId);
- if (!info) {
- info = new WebInspector.DebuggerWorkspaceBinding.ScriptInfo(script);
- scriptDataMap.put(script.scriptId, info);
- }
- return info;
- },
-
-
- /**
- * @param {!WebInspector.Target} target
- * @param {string} scriptId
- * @return {?WebInspector.DebuggerWorkspaceBinding.ScriptInfo}
- */
- _infoForScript: function(target, scriptId)
- {
- var data = this._targetToData.get(target);
- if (!data)
- return null;
- return data.scriptDataMap.get(scriptId) || null;
- },
-
- /**
- * @param {!WebInspector.Target} target
- * @param {!WebInspector.DebuggerWorkspaceBinding.Location} location
- */
- _registerCallFrameLiveLocation: function(target, location)
- {
- var locations = this._targetToData.get(target).callFrameLocations;
- locations.add(location);
- },
-
- /**
- * @param {!WebInspector.DebuggerWorkspaceBinding.Location} location
- */
- _removeLiveLocation: function(location)
- {
- var info = this._infoForScript(location._script.target(), location._script.scriptId);
- if (info)
- info._removeLocation(location);
- },
-
- /**
- * @param {!WebInspector.Event} event
- */
- _debuggerResumed: function(event)
- {
- var debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (event.target);
- this._reset(debuggerModel.target());
- }
-}
-
-/**
- * @constructor
- * @param {!WebInspector.Target} target
- * @param {!WebInspector.DebuggerWorkspaceBinding} debuggerWorkspaceBinding
- */
-WebInspector.DebuggerWorkspaceBinding.TargetData = function(target, debuggerWorkspaceBinding)
-{
- this._target = target;
-
- /** @type {!StringMap.<!WebInspector.DebuggerWorkspaceBinding.ScriptInfo>} */
- this.scriptDataMap = new StringMap();
-
- /** @type {!Set.<!WebInspector.DebuggerWorkspaceBinding.Location>} */
- this.callFrameLocations = new Set();
-
- var debuggerModel = target.debuggerModel;
- var workspace = debuggerWorkspaceBinding._workspace;
-
- this._liveEditSupport = new WebInspector.LiveEditSupport(target, workspace, debuggerWorkspaceBinding);
- this._defaultMapping = new WebInspector.DefaultScriptMapping(debuggerModel, workspace, debuggerWorkspaceBinding);
- this._resourceMapping = new WebInspector.ResourceScriptMapping(debuggerModel, workspace, debuggerWorkspaceBinding);
- this._compilerMapping = new WebInspector.CompilerScriptMapping(debuggerModel, workspace, debuggerWorkspaceBinding._networkWorkspaceBinding, debuggerWorkspaceBinding);
-
- /** @type {!WebInspector.LiveEditSupport} */
- this._liveEditSupport = new WebInspector.LiveEditSupport(target, workspace, debuggerWorkspaceBinding);
-
- /** @type {!Map.<!WebInspector.UISourceCode, !WebInspector.SourceMapping>} */
- this._uiSourceCodeToSourceMapping = new Map();
-
- debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource, this);
- debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedToParseScriptSource, this._parsedScriptSource, this);
-}
-
-WebInspector.DebuggerWorkspaceBinding.TargetData.prototype = {
- /**
- * @param {!WebInspector.Event} event
- */
- _parsedScriptSource: function(event)
- {
- var script = /** @type {!WebInspector.Script} */ (event.data);
- this._defaultMapping.addScript(script);
-
- if (script.isSnippet()) {
- WebInspector.scriptSnippetModel.addScript(script);
- return;
- }
-
- this._resourceMapping.addScript(script);
-
- if (WebInspector.settings.jsSourceMapsEnabled.get())
- this._compilerMapping.addScript(script);
- },
-
- /**
- * @param {!WebInspector.UISourceCode} uiSourceCode
- * @param {?WebInspector.SourceMapping} sourceMapping
- */
- _setSourceMapping: function(uiSourceCode, sourceMapping)
- {
- if (this._uiSourceCodeToSourceMapping.get(uiSourceCode) === sourceMapping)
- return;
-
- if (sourceMapping)
- this._uiSourceCodeToSourceMapping.put(uiSourceCode, sourceMapping);
- else
- this._uiSourceCodeToSourceMapping.remove(uiSourceCode);
-
- uiSourceCode.dispatchEventToListeners(WebInspector.UISourceCode.Events.SourceMappingChanged, {target: this._target, isIdentity: sourceMapping ? sourceMapping.isIdentity() : false});
- },
-
- /**
- * @param {!WebInspector.UISourceCode} uiSourceCode
- * @param {number} lineNumber
- * @param {number} columnNumber
- * @return {?WebInspector.RawLocation}
- */
- _uiLocationToRawLocation: function(uiSourceCode, lineNumber, columnNumber)
- {
- var sourceMapping = this._uiSourceCodeToSourceMapping.get(uiSourceCode);
- return sourceMapping ? sourceMapping.uiLocationToRawLocation(uiSourceCode, lineNumber, columnNumber) : null;
- },
-
- /**
- * @param {!WebInspector.UISourceCode} uiSourceCode
- * @param {number} lineNumber
- * @return {boolean}
- */
- _uiLineHasMapping: function(uiSourceCode, lineNumber)
- {
- var sourceMapping = this._uiSourceCodeToSourceMapping.get(uiSourceCode);
- return sourceMapping ? sourceMapping.uiLineHasMapping(uiSourceCode, lineNumber) : true;
- },
-
- /**
- * @param {!WebInspector.UISourceCode} uiSourceCode
- */
- _uiSourceCodeRemoved: function(uiSourceCode)
- {
- this._uiSourceCodeToSourceMapping.remove(uiSourceCode);
- },
-
- _dispose: function()
- {
- this._compilerMapping.dispose();
- this._resourceMapping.dispose();
- this._defaultMapping.dispose();
- this._uiSourceCodeToSourceMapping.clear();
- }
-}
-
-/**
- * @constructor
- * @param {!WebInspector.Script} script
- */
-WebInspector.DebuggerWorkspaceBinding.ScriptInfo = function(script)
-{
- this._script = script;
-
- /** @type {!Array.<!WebInspector.SourceMapping>} */
- this._sourceMappings = [];
-
- /** @type {!Set.<!WebInspector.LiveLocation>} */
- this._locations = new Set();
-}
-
-WebInspector.DebuggerWorkspaceBinding.ScriptInfo.prototype = {
- /**
- * @param {!WebInspector.SourceMapping} sourceMapping
- */
- _pushSourceMapping: function(sourceMapping)
- {
- this._sourceMappings.push(sourceMapping);
- this._updateLocations();
- },
-
- /**
- * @return {!WebInspector.SourceMapping}
- */
- _popSourceMapping: function()
- {
- var sourceMapping = this._sourceMappings.pop();
- this._updateLocations();
- return sourceMapping;
- },
-
- /**
- * @param {!WebInspector.LiveLocation} location
- */
- _addLocation: function(location)
- {
- this._locations.add(location);
- location.update();
- },
-
- /**
- * @param {!WebInspector.LiveLocation} location
- */
- _removeLocation: function(location)
- {
- this._locations.remove(location);
- },
-
- _updateLocations: function()
- {
- var items = this._locations.values();
- for (var i = 0; i < items.length; ++i)
- items[i].update();
- },
-
- /**
- * @param {!WebInspector.DebuggerModel.Location} rawLocation
- * @return {!WebInspector.UILocation}
- */
- _rawLocationToUILocation: function(rawLocation)
- {
- var uiLocation;
- for (var i = this._sourceMappings.length - 1; !uiLocation && i >= 0; --i)
- uiLocation = this._sourceMappings[i].rawLocationToUILocation(rawLocation);
- console.assert(uiLocation, "Script raw location cannot be mapped to any UI location.");
- return /** @type {!WebInspector.UILocation} */ (uiLocation);
- }
-}
-
-
-/**
- * @constructor
- * @extends {WebInspector.LiveLocation}
- * @param {!WebInspector.Script} script
- * @param {!WebInspector.DebuggerModel.Location} rawLocation
- * @param {!WebInspector.DebuggerWorkspaceBinding} binding
- * @param {function(!WebInspector.UILocation):(boolean|undefined)} updateDelegate
- */
-WebInspector.DebuggerWorkspaceBinding.Location = function(script, rawLocation, binding, updateDelegate)
-{
- WebInspector.LiveLocation.call(this, rawLocation, updateDelegate);
- this._script = script;
- this._binding = binding;
-}
-
-WebInspector.DebuggerWorkspaceBinding.Location.prototype = {
- /**
- * @return {!WebInspector.UILocation}
- */
- uiLocation: function()
- {
- var debuggerModelLocation = /** @type {!WebInspector.DebuggerModel.Location} */ (this.rawLocation());
- return this._binding.rawLocationToUILocation(debuggerModelLocation);
- },
-
- dispose: function()
- {
- WebInspector.LiveLocation.prototype.dispose.call(this);
- this._binding._removeLiveLocation(this);
- },
-
- __proto__: WebInspector.LiveLocation.prototype
-}
-
-/**
- * @type {!WebInspector.DebuggerWorkspaceBinding}
- */
-WebInspector.debuggerWorkspaceBinding;
« no previous file with comments | « Source/devtools/front_end/sdk/DebuggerModel.js ('k') | Source/devtools/front_end/sdk/DefaultScriptMapping.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698