Diff
Modified: trunk/LayoutTests/ChangeLog (143201 => 143202)
--- trunk/LayoutTests/ChangeLog 2013-02-18 13:21:53 UTC (rev 143201)
+++ trunk/LayoutTests/ChangeLog 2013-02-18 13:26:29 UTC (rev 143202)
@@ -1,3 +1,14 @@
+2013-02-18 Vsevolod Vlasov <vse...@chromium.org>
+
+ Web Inspector: Create separate project for each domain for UISourceCode based on browser resources.
+ https://bugs.webkit.org/show_bug.cgi?id=109691
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/debugger/live-edit-breakpoints-expected.txt:
+ * inspector/debugger/live-edit-breakpoints.html:
+ * inspector/uisourcecode-revisions.html:
+
2013-02-18 Zoltan Arvai <zar...@inf.u-szeged.hu>
[Qt] Unreviewed gardening.
Modified: trunk/LayoutTests/inspector/debugger/live-edit-breakpoints-expected.txt (143201 => 143202)
--- trunk/LayoutTests/inspector/debugger/live-edit-breakpoints-expected.txt 2013-02-18 13:21:53 UTC (rev 143201)
+++ trunk/LayoutTests/inspector/debugger/live-edit-breakpoints-expected.txt 2013-02-18 13:26:29 UTC (rev 143202)
@@ -9,7 +9,7 @@
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: network
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: network, project id: file://
Editing source:
TextEditor.removeBreakpoint(lineNumber = 2)
TextEditor.addBreakpoint(lineNumber = 2, disabled = true)
@@ -17,7 +17,7 @@
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: debugger
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: debugger, project id: debugger:file://
Undoing source editing:
OriginalTextEditor.removeBreakpoint(lineNumber = 2)
TextEditor.removeBreakpoint(lineNumber = 2)
@@ -26,7 +26,7 @@
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: network
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: network, project id: file://
Finally removing breakpoint:
TextEditor.removeBreakpoint(lineNumber = 2)
Dumping breakpoint storage
@@ -38,7 +38,7 @@
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: network
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: network, project id: file://
Editing source:
OriginalTextEditor.addBreakpoint(lineNumber = 2, disabled = false)
TextEditor.removeBreakpoint(lineNumber = 2)
@@ -46,7 +46,7 @@
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: debugger
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: debugger, project id: debugger:file://
Committing edited source:
OriginalTextEditor.removeBreakpoint(lineNumber = 2)
TextEditor.removeBreakpoint(lineNumber = 2)
@@ -55,7 +55,7 @@
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: network
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: network, project id: file://
Finally removing breakpoint:
TextEditor.removeBreakpoint(lineNumber = 2)
Dumping breakpoint storage
@@ -67,7 +67,7 @@
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: network
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: network, project id: file://
Editing source:
OriginalTextEditor.addBreakpoint(lineNumber = 2, disabled = false)
TextEditor.removeBreakpoint(lineNumber = 2)
@@ -75,17 +75,17 @@
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: debugger
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: debugger, project id: debugger:file://
Committing edited source:
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: debugger
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: debugger, project id: debugger:file://
Editing source again so that live edit could succeed:
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: debugger
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: debugger, project id: debugger:file://
Committing edited source again:
OriginalTextEditor.removeBreakpoint(lineNumber = 2)
TextEditor.removeBreakpoint(lineNumber = 2)
@@ -94,7 +94,7 @@
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: network
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: network, project id: file://
Finally removing breakpoint:
TextEditor.removeBreakpoint(lineNumber = 2)
Dumping breakpoint storage
@@ -106,7 +106,7 @@
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: network
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: network, project id: file://
Editing source:
OriginalTextEditor.addBreakpoint(lineNumber = 2, disabled = false)
TextEditor.removeBreakpoint(lineNumber = 2)
@@ -114,17 +114,17 @@
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: debugger
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: debugger, project id: debugger:file://
Committing edited source:
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: debugger
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: debugger, project id: debugger:file://
Undoing source editing:
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: debugger
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: debugger, project id: debugger:file://
Committing edited source again:
OriginalTextEditor.removeBreakpoint(lineNumber = 2)
TextEditor.removeBreakpoint(lineNumber = 2)
@@ -133,7 +133,7 @@
Dumping breakpoint storage
edit-me-breakpoints.js:2, enabled:true
Dumping breakpoint locations
- url: edit-me-breakpoints.js, lineNumber: 2, project name: network
+ url: edit-me-breakpoints.js, lineNumber: 2, project type: network, project id: file://
Finally removing breakpoint:
TextEditor.removeBreakpoint(lineNumber = 2)
Dumping breakpoint storage
@@ -148,15 +148,15 @@
TextEditor.addBreakpoint(lineNumber = 2, disabled = false)
Dumping breakpoint storage
Dumping breakpoint locations
- url: , lineNumber: 2, project name: debugger
+ url: , lineNumber: 2, project type: debugger, project id: debugger:
Editing source:
Dumping breakpoint storage
Dumping breakpoint locations
- url: , lineNumber: 2, project name: debugger
+ url: , lineNumber: 2, project type: debugger, project id: debugger:
Undoing source editing:
Dumping breakpoint storage
Dumping breakpoint locations
- url: , lineNumber: 2, project name: debugger
+ url: , lineNumber: 2, project type: debugger, project id: debugger:
Finally removing breakpoint:
TextEditor.removeBreakpoint(lineNumber = 2)
Dumping breakpoint storage
@@ -171,15 +171,15 @@
TextEditor.addBreakpoint(lineNumber = 2, disabled = false)
Dumping breakpoint storage
Dumping breakpoint locations
- url: , lineNumber: 2, project name: debugger
+ url: , lineNumber: 2, project type: debugger, project id: debugger:
Editing source:
Dumping breakpoint storage
Dumping breakpoint locations
- url: , lineNumber: 2, project name: debugger
+ url: , lineNumber: 2, project type: debugger, project id: debugger:
Undoing source editing:
Dumping breakpoint storage
Dumping breakpoint locations
- url: , lineNumber: 2, project name: debugger
+ url: , lineNumber: 2, project type: debugger, project id: debugger:
Finally removing breakpoint:
TextEditor.removeBreakpoint(lineNumber = 2)
Dumping breakpoint storage
Modified: trunk/LayoutTests/inspector/debugger/live-edit-breakpoints.html (143201 => 143202)
--- trunk/LayoutTests/inspector/debugger/live-edit-breakpoints.html 2013-02-18 13:21:53 UTC (rev 143201)
+++ trunk/LayoutTests/inspector/debugger/live-edit-breakpoints.html 2013-02-18 13:26:29 UTC (rev 143202)
@@ -39,8 +39,8 @@
for (var i = 0; i < locations.length; ++i) {
var uiLocation = locations[i].uiLocation;
var uiSourceCode = uiLocation.uiSourceCode;
- var project = WebInspector.workspace.projectForUISourceCode(uiSourceCode);
- InspectorTest.addResult(" url: " + pathToFileName(uiSourceCode.originURL()) + ", lineNumber: " + uiLocation.lineNumber + ", project name: " + project.id());
+ var project = uiSourceCode.project();
+ InspectorTest.addResult(" url: " + pathToFileName(uiSourceCode.originURL()) + ", lineNumber: " + uiLocation.lineNumber + ", project type: " + project.type() + ", project id: " + project.id());
}
}
Modified: trunk/LayoutTests/inspector/uisourcecode-revisions.html (143201 => 143202)
--- trunk/LayoutTests/inspector/uisourcecode-revisions.html 2013-02-18 13:21:53 UTC (rev 143201)
+++ trunk/LayoutTests/inspector/uisourcecode-revisions.html 2013-02-18 13:26:29 UTC (rev 143202)
@@ -9,7 +9,7 @@
function createMockProject()
{
var workspace = new WebInspector.Workspace();
- var projectDelegate = new WebInspector.SimpleProjectDelegate(WebInspector.projectTypes.Network);
+ var projectDelegate = new WebInspector.SimpleProjectDelegate("", WebInspector.projectTypes.Network);
var project = workspace.addProject(projectDelegate);
project.requestFileContent = function(uri, callback)
{
Modified: trunk/Source/WebCore/ChangeLog (143201 => 143202)
--- trunk/Source/WebCore/ChangeLog 2013-02-18 13:21:53 UTC (rev 143201)
+++ trunk/Source/WebCore/ChangeLog 2013-02-18 13:26:29 UTC (rev 143202)
@@ -1,3 +1,48 @@
+2013-02-18 Vsevolod Vlasov <vse...@chromium.org>
+
+ Web Inspector: Create separate project for each domain for UISourceCode based on browser resources.
+ https://bugs.webkit.org/show_bug.cgi?id=109691
+
+ Reviewed by Pavel Feldman.
+
+ Separate project of certain type is now created for each domain.
+ UISourceCode path represents a path in the project now.
+ UISourceCode uri is now calculated based on project id and path.
+ It is also possible to calculate path based on projectId and URI, which is used for uiSourceCodeForURI() methods.
+
+ * inspector/front-end/FileSystemProjectDelegate.js:
+ (WebInspector.FileSystemProjectDelegate.prototype._filePathForPath):
+ (WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
+ (WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
+ (WebInspector.FileSystemProjectDelegate.prototype._populate):
+ (WebInspector.FileSystemProjectDelegate.prototype._removeFile):
+ * inspector/front-end/ScriptSnippetModel.js:
+ (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
+ * inspector/front-end/SimpleWorkspaceProvider.js:
+ (WebInspector.SimpleProjectDelegate):
+ (WebInspector.SimpleProjectDelegate.projectId):
+ (WebInspector.SimpleProjectDelegate.prototype.id):
+ (WebInspector.SimpleProjectDelegate.prototype.displayName):
+ (WebInspector.SimpleProjectDelegate.prototype.addFile):
+ (WebInspector.SimpleWorkspaceProvider):
+ (WebInspector.SimpleWorkspaceProvider.splitURL):
+ (WebInspector.SimpleWorkspaceProvider._pathForSplittedURL):
+ (WebInspector.SimpleWorkspaceProvider.uriForURL):
+ (WebInspector.SimpleWorkspaceProvider.prototype._projectDelegate):
+ (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
+ (WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
+ (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFile):
+ (WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
+ (WebInspector.SimpleWorkspaceProvider.prototype.reset):
+ * inspector/front-end/UISourceCode.js:
+ (WebInspector.UISourceCode.uri):
+ (WebInspector.UISourceCode.path):
+ (WebInspector.UISourceCode.prototype.uri):
+ * inspector/front-end/Workspace.js:
+ (WebInspector.Project.prototype._fileAdded):
+ (WebInspector.Project.prototype._fileRemoved):
+ (WebInspector.Project.prototype.uiSourceCodeForURI):
+
2013-02-18 Gyuyoung Kim <gyuyoung....@samsung.com>
[EFL] Rebaseline failure media tests after r142947
Modified: trunk/Source/WebCore/inspector/front-end/FileSystemProjectDelegate.js (143201 => 143202)
--- trunk/Source/WebCore/inspector/front-end/FileSystemProjectDelegate.js 2013-02-18 13:21:53 UTC (rev 143201)
+++ trunk/Source/WebCore/inspector/front-end/FileSystemProjectDelegate.js 2013-02-18 13:26:29 UTC (rev 143202)
@@ -68,21 +68,21 @@
},
/**
- * @param {string} uri
+ * @param {string} path
* @return {string}
*/
- _filePathForURI: function(uri)
+ _filePathForPath: function(path)
{
- return uri.substr(uri.indexOf("/") + 1);
+ return "/" + path;
},
/**
- * @param {string} uri
+ * @param {string} path
* @param {function(?string,boolean,string)} callback
*/
- requestFileContent: function(uri, callback)
+ requestFileContent: function(path, callback)
{
- var filePath = this._filePathForURI(uri);
+ var filePath = this._filePathForPath(path);
this._fileSystem.requestFileContent(filePath, innerCallback.bind(this));
/**
@@ -96,26 +96,26 @@
},
/**
- * @param {string} uri
+ * @param {string} path
* @param {string} newContent
* @param {function(?string)} callback
*/
- setFileContent: function(uri, newContent, callback)
+ setFileContent: function(path, newContent, callback)
{
- var filePath = this._filePathForURI(uri);
+ var filePath = this._filePathForPath(path);
this._fileSystem.setFileContent(filePath, newContent, callback.bind(this, ""));
},
/**
- * @param {string} uri
+ * @param {string} path
* @param {string} query
* @param {boolean} caseSensitive
* @param {boolean} isRegex
* @param {function(Array.<WebInspector.ContentProvider.SearchMatch>)} callback
*/
- searchInFileContent: function(uri, query, caseSensitive, isRegex, callback)
+ searchInFileContent: function(path, query, caseSensitive, isRegex, callback)
{
- this.requestFileContent(uri, contentCallback.bind(this));
+ this.requestFileContent(path, contentCallback.bind(this));
/**
* @param {?string} content
@@ -160,10 +160,12 @@
function filesLoaded(files)
{
for (var i = 0; i < files.length; ++i) {
- var uri = this.id() + files[i];
+ var path = files[i].substr(1);
+ // FIXME: FileSystemProject delegate should know nothing about UISourceCode.
+ var uri = WebInspector.UISourceCode.uri(this.id(), path);
var contentType = this._contentTypeForPath(files[i]);
var url = ""
- var fileDescriptor = new WebInspector.FileDescriptor(uri, "file://" + this._fileSystem.path() + files[i], url, contentType, true);
+ var fileDescriptor = new WebInspector.FileDescriptor(path, "file://" + this._fileSystem.path() + files[i], url, contentType, true);
this._addFile(fileDescriptor);
}
}
@@ -178,11 +180,11 @@
},
/**
- * @param {string} uri
+ * @param {string} path
*/
- _removeFile: function(uri)
+ _removeFile: function(path)
{
- this.dispatchEventToListeners(WebInspector.ProjectDelegate.Events.FileRemoved, uri);
+ this.dispatchEventToListeners(WebInspector.ProjectDelegate.Events.FileRemoved, path);
},
reset: function()
Modified: trunk/Source/WebCore/inspector/front-end/ScriptSnippetModel.js (143201 => 143202)
--- trunk/Source/WebCore/inspector/front-end/ScriptSnippetModel.js 2013-02-18 13:21:53 UTC (rev 143201)
+++ trunk/Source/WebCore/inspector/front-end/ScriptSnippetModel.js 2013-02-18 13:26:29 UTC (rev 143202)
@@ -82,7 +82,7 @@
*/
_addScriptSnippet: function(snippet)
{
- var uiSourceCode = this._workspaceProvider.addFileForURL(snippet.name, new WebInspector.SnippetContentProvider(snippet), true);
+ var uiSourceCode = this._workspaceProvider.addFileByName("", snippet.name, new WebInspector.SnippetContentProvider(snippet), true);
var scriptFile = new WebInspector.SnippetScriptFile(this, uiSourceCode);
uiSourceCode.setScriptFile(scriptFile);
this._snippetIdForUISourceCode.put(uiSourceCode, snippet.id);
@@ -103,7 +103,7 @@
this._releaseSnippetScript(uiSourceCode);
delete this._uiSourceCodeForSnippetId[snippet.id];
this._snippetIdForUISourceCode.remove(uiSourceCode);
- this._workspaceProvider.removeFile(snippet.name);
+ this._workspaceProvider.removeFileByName("", snippet.name);
},
/**
Modified: trunk/Source/WebCore/inspector/front-end/SimpleWorkspaceProvider.js (143201 => 143202)
--- trunk/Source/WebCore/inspector/front-end/SimpleWorkspaceProvider.js 2013-02-18 13:21:53 UTC (rev 143201)
+++ trunk/Source/WebCore/inspector/front-end/SimpleWorkspaceProvider.js 2013-02-18 13:26:29 UTC (rev 143202)
@@ -33,21 +33,28 @@
* @implements {WebInspector.ProjectDelegate}
* @extends {WebInspector.Object}
*/
-WebInspector.SimpleProjectDelegate = function(type)
+WebInspector.SimpleProjectDelegate = function(name, type)
{
+ this._name = name;
this._type = type;
/** @type {Object.<string, WebInspector.ContentProvider>} */
this._contentProviders = {};
this._lastUniqueSuffix = 0;
}
+WebInspector.SimpleProjectDelegate.projectId = function(name, type)
+{
+ var typePrefix = type !== WebInspector.projectTypes.Network ? (type + ":") : "";
+ return typePrefix + name;
+}
+
WebInspector.SimpleProjectDelegate.prototype = {
/**
* @return {string}
*/
id: function()
{
- return this._type;
+ return WebInspector.SimpleProjectDelegate.projectId(this._name, this._type);
},
/**
@@ -63,7 +70,18 @@
*/
displayName: function()
{
- return "";
+ if (typeof this._displayName !== "undefined")
+ return this._displayName;
+ if (!this._name) {
+ this._displayName = "";
+ return this._displayName;
+ }
+ var parsedURL = new WebInspector.ParsedURL(this._name);
+ if (parsedURL.isValid)
+ this._displayName = parsedURL.host + (parsedURL.port ? (":" + parsedURL.port) : "");
+ else
+ this._displayName = this._name;
+ return this._displayName;
},
/**
@@ -87,6 +105,7 @@
},
/**
+ * @param {string} path
* @param {string} query
* @param {boolean} caseSensitive
* @param {boolean} isRegex
@@ -104,12 +123,12 @@
* @param {WebInspector.ContentProvider} contentProvider
* @param {boolean} isEditable
* @param {boolean=} isContentScript
+ * @return {string}
*/
addFile: function(path, forceUniquePath, url, contentProvider, isEditable, isContentScript)
{
if (forceUniquePath)
path = this._uniquePath(path);
- console.assert(!this._contentProviders[path]);
var fileDescriptor = new WebInspector.FileDescriptor(path, url, url, contentProvider.contentType(), isEditable, isContentScript);
this._contentProviders[path] = contentProvider;
this.dispatchEventToListeners(WebInspector.ProjectDelegate.Events.FileAdded, fileDescriptor);
@@ -156,27 +175,84 @@
{
this._workspace = workspace;
this._type = type;
- this._simpleProjectDelegate = new WebInspector.SimpleProjectDelegate(this._type);
- this._workspace.addProject(this._simpleProjectDelegate);
+ this._simpleProjectDelegates = {};
}
/**
* @param {string} url
+ * @return {Array.<string>}
+ */
+WebInspector.SimpleWorkspaceProvider.splitURL = function(url)
+{
+ var parsedURL = new WebInspector.ParsedURL(url);
+ var origin;
+ var folderPath;
+ var name;
+ if (parsedURL.isValid) {
+ origin = parsedURL.scheme + "://" + parsedURL.host;
+ if (parsedURL.port)
+ origin += ":" + parsedURL.port;
+ folderPath = parsedURL.folderPathComponents;
+ name = parsedURL.lastPathComponent;
+ if (parsedURL.queryParams)
+ name += "?" + parsedURL.queryParams;
+ } else {
+ origin = "";
+ folderPath = "";
+ name = url;
+ }
+ var result = [origin];
+ var splittedPath = folderPath.split("/");
+ for (var i = 1; i < splittedPath.length; ++i)
+ result.push(splittedPath[i]);
+ result.push(name);
+ return result;
+}
+
+/**
+ * @param {Array.<string>} splittedURL
* @return {string}
*/
-WebInspector.SimpleWorkspaceProvider.uriForURL = function(url, type)
-{
- var uriTypePrefix = type !== WebInspector.projectTypes.Network ? (type + ":") : "";
- var uri = uriTypePrefix + url;
- return uri;
+WebInspector.SimpleWorkspaceProvider._pathForSplittedURL = function(splittedURL)
+{
+ splittedURL.shift();
+ return splittedURL.join("/");
}
+/**
+ * @param {string} url
+ * @param {string} type
+ * @return {string}
+ */
+WebInspector.SimpleWorkspaceProvider.uriForURL = function(url, type)
+{
+ var splittedURL = WebInspector.SimpleWorkspaceProvider.splitURL(url);
+ var projectId = WebInspector.SimpleProjectDelegate.projectId(splittedURL[0], type);
+ var path = WebInspector.SimpleWorkspaceProvider._pathForSplittedURL(splittedURL);
+ return WebInspector.UISourceCode.uri(projectId, path);
+ }
+
WebInspector.SimpleWorkspaceProvider.prototype = {
/**
+ * @param {string} projectName
+ * @return {WebInspector.ProjectDelegate}
+ */
+ _projectDelegate: function(projectName)
+ {
+ if (this._simpleProjectDelegates[projectName])
+ return this._simpleProjectDelegates[projectName];
+ var simpleProjectDelegate = new WebInspector.SimpleProjectDelegate(projectName, this._type);
+ this._simpleProjectDelegates[projectName] = simpleProjectDelegate;
+ this._workspace.addProject(simpleProjectDelegate);
+ return simpleProjectDelegate;
+ },
+
+ /**
* @param {string} url
* @param {WebInspector.ContentProvider} contentProvider
* @param {boolean} isEditable
* @param {boolean=} isContentScript
+ * @return {WebInspector.UISourceCode}
*/
addFileForURL: function(url, contentProvider, isEditable, isContentScript)
{
@@ -188,6 +264,7 @@
* @param {WebInspector.ContentProvider} contentProvider
* @param {boolean} isEditable
* @param {boolean=} isContentScript
+ * @return {WebInspector.UISourceCode}
*/
addUniqueFileForURL: function(url, contentProvider, isEditable, isContentScript)
{
@@ -198,27 +275,62 @@
* @param {string} url
* @param {WebInspector.ContentProvider} contentProvider
* @param {boolean} isEditable
+ * @param {boolean} forceUnique
* @param {boolean=} isContentScript
+ * @return {WebInspector.UISourceCode}
*/
_innerAddFileForURL: function(url, contentProvider, isEditable, forceUnique, isContentScript)
{
- var path = WebInspector.SimpleWorkspaceProvider.uriForURL(url, this._type);
- path = this._simpleProjectDelegate.addFile(path, forceUnique, url, contentProvider, isEditable, isContentScript);
- return this._workspace.uiSourceCode(this._simpleProjectDelegate.id(), path);
+ var splittedURL = WebInspector.SimpleWorkspaceProvider.splitURL(url);
+ var projectName = splittedURL[0];
+ var path = WebInspector.SimpleWorkspaceProvider._pathForSplittedURL(splittedURL);
+ return this._innerAddFile(projectName, path, url, contentProvider, isEditable, forceUnique, isContentScript);
},
/**
- * @param {string} url
+ * @param {string} projectName
+ * @param {string} name
+ * @param {WebInspector.ContentProvider} contentProvider
+ * @param {boolean} isEditable
+ * @param {boolean=} isContentScript
+ * @return {WebInspector.UISourceCode}
*/
- removeFile: function(url)
+ addFileByName: function(projectName, name, contentProvider, isEditable, isContentScript)
{
- var path = WebInspector.SimpleWorkspaceProvider.uriForURL(url, this._type);
- this._simpleProjectDelegate.removeFile(path);
+ return this._innerAddFile("", name, name, contentProvider, isEditable, false, isContentScript);
},
+ /**
+ * @param {string} projectName
+ * @param {string} path
+ * @param {WebInspector.ContentProvider} contentProvider
+ * @param {boolean} isEditable
+ * @param {boolean} forceUnique
+ * @param {boolean=} isContentScript
+ * @return {WebInspector.UISourceCode}
+ */
+ _innerAddFile: function(projectName, path, url, contentProvider, isEditable, forceUnique, isContentScript)
+ {
+ var projectDelegate = this._projectDelegate(projectName);
+ path = projectDelegate.addFile(path, forceUnique, url, contentProvider, isEditable, isContentScript);
+ return this._workspace.uiSourceCode(projectDelegate.id(), path);
+ },
+
+ /**
+ * @param {string} projectName
+ * @param {string} path
+ */
+ removeFileByName: function(projectName, path)
+ {
+ var projectDelegate = this._projectDelegate(projectName);
+ projectDelegate.removeFile(path);
+ },
+
reset: function()
{
- this._simpleProjectDelegate.reset();
+ for (var projectName in this._simpleProjectDelegates)
+ this._simpleProjectDelegates[projectName].reset();
+ this._simpleProjectDelegates = {};
},
__proto__: WebInspector.Object.prototype
Modified: trunk/Source/WebCore/inspector/front-end/UISourceCode.js (143201 => 143202)
--- trunk/Source/WebCore/inspector/front-end/UISourceCode.js 2013-02-18 13:21:53 UTC (rev 143201)
+++ trunk/Source/WebCore/inspector/front-end/UISourceCode.js 2013-02-18 13:26:29 UTC (rev 143202)
@@ -81,6 +81,37 @@
SourceMappingChanged: "SourceMappingChanged",
}
+/**
+ * @param {string} projectId
+ * @param {string} path
+ * @return {string}
+ */
+WebInspector.UISourceCode.uri = function(projectId, path)
+{
+ if (!projectId)
+ return path;
+ if (!path)
+ return projectId;
+ return projectId + "/" + path;
+}
+
+/**
+ * @param {string} projectId
+ * @param {string} uri
+ * @return {?string}
+ */
+WebInspector.UISourceCode.path = function(projectId, uri)
+{
+ if (!projectId)
+ return uri;
+ if (!uri.startsWith(projectId))
+ return null;
+ var path = uri.substr(projectId.length);
+ if (path.length && path[0] === "/")
+ path = path.substr(1);
+ return path;
+}
+
WebInspector.UISourceCode.prototype = {
/**
* @return {string}
@@ -103,7 +134,7 @@
*/
uri: function()
{
- return this._path;
+ return WebInspector.UISourceCode.uri(this._project.id(), this._path);
},
/**
Modified: trunk/Source/WebCore/inspector/front-end/Workspace.js (143201 => 143202)
--- trunk/Source/WebCore/inspector/front-end/Workspace.js 2013-02-18 13:21:53 UTC (rev 143201)
+++ trunk/Source/WebCore/inspector/front-end/Workspace.js 2013-02-18 13:26:29 UTC (rev 143202)
@@ -187,7 +187,7 @@
_fileAdded: function(event)
{
var fileDescriptor = /** @type {WebInspector.FileDescriptor} */ (event.data);
- var uiSourceCode = this.uiSourceCodeForURI(fileDescriptor.path);
+ var uiSourceCode = this.uiSourceCode(fileDescriptor.path);
if (uiSourceCode) {
// FIXME: Implement
return;
@@ -201,7 +201,7 @@
_fileRemoved: function(event)
{
var path = /** @type {string} */ (event.data);
- var uiSourceCode = this.uiSourceCodeForURI(path);
+ var uiSourceCode = this.uiSourceCode(path);
if (!uiSourceCode)
return;
delete this._uiSourceCodes[uiSourceCode.path()];
@@ -243,7 +243,10 @@
*/
uiSourceCodeForURI: function(uri)
{
- return this.uiSourceCode(uri);
+ var path = WebInspector.UISourceCode.path(this.id(), uri);
+ if (typeof path !== "string")
+ return null;
+ return this._uiSourceCodes[path];
},
/**
@@ -295,7 +298,6 @@
WebInspector.projectTypes = {
Debugger: "debugger",
LiveEdit: "liveedit",
- Compiler: "compiler",
Network: "network",
Snippets: "snippets",
FileSystem: "filesystem"
@@ -441,19 +443,6 @@
return result;
},
- /**
- * @return {?WebInspector.Project}
- */
- projectForUISourceCode: function(uiSourceCode)
- {
- for (var projectId in this._projects) {
- var project = this._projects[projectId];
- if (project.uiSourceCodeForURI(uiSourceCode.uri()))
- return project;
- }
- return null;
- },
-
__proto__: WebInspector.Object.prototype
}