From 7e846c0a561e0377708090bd0b8264210beb8d46 Mon Sep 17 00:00:00 2001 From: "vsevik@chromium.org" Date: Tue, 3 Jul 2012 16:29:06 +0000 Subject: [PATCH] Web Inspector: Introduce Workspace make it UISourceCode provider for ScriptsPanel. https://bugs.webkit.org/show_bug.cgi?id=90466 Reviewed by Pavel Feldman. Introduced WebInspector.Workspace as a model (UISourceCode provider) behind ScriptsPanel. * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/compile-front-end.py: * inspector/front-end/ScriptsPanel.js: * inspector/front-end/WebKit.qrc: * inspector/front-end/Workspace.js: Added. (WebInspector.CompositeUISourceCodeProvider): (WebInspector.CompositeUISourceCodeProvider.prototype._registerUISourceCodeProvider): (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeAdded): (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeReplaced): (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeRemoved): (WebInspector.CompositeUISourceCodeProvider.prototype.uiSourceCodes): (WebInspector.Workspace): (WebInspector.Workspace.prototype.registerUISourceCodeProvider): * inspector/front-end/inspector.html: * inspector/front-end/inspector.js: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121778 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- Source/WebCore/ChangeLog | 26 +++++ Source/WebCore/WebCore.gypi | 1 + Source/WebCore/WebCore.vcproj/WebCore.vcproj | 4 + Source/WebCore/inspector/compile-front-end.py | 1 + Source/WebCore/inspector/front-end/ScriptsPanel.js | 82 +------------- Source/WebCore/inspector/front-end/WebKit.qrc | 1 + Source/WebCore/inspector/front-end/Workspace.js | 125 +++++++++++++++++++++ Source/WebCore/inspector/front-end/inspector.html | 1 + Source/WebCore/inspector/front-end/inspector.js | 2 + 9 files changed, 163 insertions(+), 80 deletions(-) create mode 100644 Source/WebCore/inspector/front-end/Workspace.js diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index f0c39a1..e606ad9 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,29 @@ +2012-07-03 Vsevolod Vlasov + + Web Inspector: Introduce Workspace make it UISourceCode provider for ScriptsPanel. + https://bugs.webkit.org/show_bug.cgi?id=90466 + + Reviewed by Pavel Feldman. + + Introduced WebInspector.Workspace as a model (UISourceCode provider) behind ScriptsPanel. + + * WebCore.gypi: + * WebCore.vcproj/WebCore.vcproj: + * inspector/compile-front-end.py: + * inspector/front-end/ScriptsPanel.js: + * inspector/front-end/WebKit.qrc: + * inspector/front-end/Workspace.js: Added. + (WebInspector.CompositeUISourceCodeProvider): + (WebInspector.CompositeUISourceCodeProvider.prototype._registerUISourceCodeProvider): + (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeAdded): + (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeReplaced): + (WebInspector.CompositeUISourceCodeProvider.prototype._handleUISourceCodeRemoved): + (WebInspector.CompositeUISourceCodeProvider.prototype.uiSourceCodes): + (WebInspector.Workspace): + (WebInspector.Workspace.prototype.registerUISourceCodeProvider): + * inspector/front-end/inspector.html: + * inspector/front-end/inspector.js: + 2012-07-03 Tor Arne Vestbø [Qt] Make use of .qmake.cache for caching features diff --git a/Source/WebCore/WebCore.gypi b/Source/WebCore/WebCore.gypi index 4ca8308..6a077de 100644 --- a/Source/WebCore/WebCore.gypi +++ b/Source/WebCore/WebCore.gypi @@ -6406,6 +6406,7 @@ 'inspector/front-end/WatchExpressionsSidebarPane.js', 'inspector/front-end/WorkerManager.js', 'inspector/front-end/WorkersSidebarPane.js', + 'inspector/front-end/Workspace.js', 'inspector/front-end/dialog.css', 'inspector/front-end/inspector.css', 'inspector/front-end/inspectorSyntaxHighlight.css', diff --git a/Source/WebCore/WebCore.vcproj/WebCore.vcproj b/Source/WebCore/WebCore.vcproj/WebCore.vcproj index e3d7b6c..d3033c5 100755 --- a/Source/WebCore/WebCore.vcproj/WebCore.vcproj +++ b/Source/WebCore/WebCore.vcproj/WebCore.vcproj @@ -75545,6 +75545,10 @@ RelativePath="..\inspector\front-end\WorkersSidebarPane.js" > + + } uiSourceCodeProviders - */ -WebInspector.CompositeUISourceCodeProvider = function(uiSourceCodeProviders) -{ - WebInspector.Object.call(this); - this._uiSourceCodeProviders = []; - for (var i = 0; i < uiSourceCodeProviders.length; ++i) - this._registerUISourceCodeProvider(uiSourceCodeProviders[i]); -} - -WebInspector.CompositeUISourceCodeProvider.prototype = { - /** - * @param {WebInspector.UISourceCodeProvider} uiSourceCodeProvider - */ - _registerUISourceCodeProvider: function(uiSourceCodeProvider) - { - this._uiSourceCodeProviders.push(uiSourceCodeProvider); - uiSourceCodeProvider.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, this._handleUISourceCodeAdded, this); - uiSourceCodeProvider.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeReplaced, this._handleUISourceCodeReplaced, this); - uiSourceCodeProvider.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeRemoved, this._handleUISourceCodeRemoved, this); - }, - - _handleUISourceCodeAdded: function(event) - { - this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, event.data); - }, - - /** - * @param {WebInspector.Event} event - */ - _handleUISourceCodeReplaced: function(event) - { - this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeReplaced, event.data); - }, - - /** - * @param {WebInspector.Event} event - */ - _handleUISourceCodeRemoved: function(event) - { - this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeRemoved, event.data); - }, - - /** - * @return {Array.} - */ - uiSourceCodes: function() - { - var result = []; - for (var i = 0; i < this._uiSourceCodeProviders.length; ++i) { - var uiSourceCodes = this._uiSourceCodeProviders[i].uiSourceCodes(); - for (var j = 0; j < uiSourceCodes.length; ++j) - result.push(uiSourceCodes[j]); - } - return result; - } -} - -WebInspector.CompositeUISourceCodeProvider.prototype.__proto__ = WebInspector.Object.prototype; diff --git a/Source/WebCore/inspector/front-end/WebKit.qrc b/Source/WebCore/inspector/front-end/WebKit.qrc index 83a3a8e..2fdc5b2 100644 --- a/Source/WebCore/inspector/front-end/WebKit.qrc +++ b/Source/WebCore/inspector/front-end/WebKit.qrc @@ -189,6 +189,7 @@ WatchExpressionsSidebarPane.js WorkerManager.js WorkersSidebarPane.js + Workspace.js UglifyJS/parse-js.js auditsPanel.css dataGrid.css diff --git a/Source/WebCore/inspector/front-end/Workspace.js b/Source/WebCore/inspector/front-end/Workspace.js new file mode 100644 index 0000000..e3891cf --- /dev/null +++ b/Source/WebCore/inspector/front-end/Workspace.js @@ -0,0 +1,125 @@ +/* + * Copyright (C) 2012 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @constructor + * @extends {WebInspector.Object} + * @implements {WebInspector.UISourceCodeProvider} + * @param {Array.} uiSourceCodeProviders + */ +WebInspector.CompositeUISourceCodeProvider = function(uiSourceCodeProviders) +{ + WebInspector.Object.call(this); + this._uiSourceCodeProviders = []; + for (var i = 0; i < uiSourceCodeProviders.length; ++i) + this._registerUISourceCodeProvider(uiSourceCodeProviders[i]); +} + +WebInspector.CompositeUISourceCodeProvider.prototype = { + /** + * @param {WebInspector.UISourceCodeProvider} uiSourceCodeProvider + */ + _registerUISourceCodeProvider: function(uiSourceCodeProvider) + { + this._uiSourceCodeProviders.push(uiSourceCodeProvider); + uiSourceCodeProvider.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, this._handleUISourceCodeAdded, this); + uiSourceCodeProvider.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeReplaced, this._handleUISourceCodeReplaced, this); + uiSourceCodeProvider.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeRemoved, this._handleUISourceCodeRemoved, this); + }, + + _handleUISourceCodeAdded: function(event) + { + this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, event.data); + }, + + /** + * @param {WebInspector.Event} event + */ + _handleUISourceCodeReplaced: function(event) + { + this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeReplaced, event.data); + }, + + /** + * @param {WebInspector.Event} event + */ + _handleUISourceCodeRemoved: function(event) + { + this.dispatchEventToListeners(WebInspector.UISourceCodeProvider.Events.UISourceCodeRemoved, event.data); + }, + + /** + * @return {Array.} + */ + uiSourceCodes: function() + { + var result = []; + for (var i = 0; i < this._uiSourceCodeProviders.length; ++i) { + var uiSourceCodes = this._uiSourceCodeProviders[i].uiSourceCodes(); + for (var j = 0; j < uiSourceCodes.length; ++j) + result.push(uiSourceCodes[j]); + } + return result; + } +} + +WebInspector.CompositeUISourceCodeProvider.prototype.__proto__ = WebInspector.Object.prototype; + +/** + * @constructor + * @extends {WebInspector.CompositeUISourceCodeProvider} + */ +WebInspector.Workspace = function() +{ + var scriptMapping = new WebInspector.DebuggerScriptMapping(); + var providers = scriptMapping.uiSourceCodeProviders(); + providers = providers.concat(new WebInspector.StylesUISourceCodeProvider()); + WebInspector.CompositeUISourceCodeProvider.call(this, providers); + + new WebInspector.PresentationConsoleMessageHelper(this); + new WebInspector.DebuggerResourceBinding(this); +} + +WebInspector.Workspace.prototype = { + /** + * @param {WebInspector.UISourceCodeProvider} uiSourceCodeProvider + */ + registerUISourceCodeProvider: function(uiSourceCodeProvider) + { + this._registerUISourceCodeProvider(uiSourceCodeProvider); + } +} + +WebInspector.Workspace.prototype.__proto__ = WebInspector.CompositeUISourceCodeProvider.prototype; + +/** + * @type {?WebInspector.Workspace} + */ +WebInspector.workspace = null; diff --git a/Source/WebCore/inspector/front-end/inspector.html b/Source/WebCore/inspector/front-end/inspector.html index d392df0..4f5cff5 100644 --- a/Source/WebCore/inspector/front-end/inspector.html +++ b/Source/WebCore/inspector/front-end/inspector.html @@ -190,6 +190,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/Source/WebCore/inspector/front-end/inspector.js b/Source/WebCore/inspector/front-end/inspector.js index 93e71b2..c3e74fb 100644 --- a/Source/WebCore/inspector/front-end/inspector.js +++ b/Source/WebCore/inspector/front-end/inspector.js @@ -456,6 +456,8 @@ WebInspector._doLoadedDoneWithCapabilities = function() this.openAnchorLocationRegistry = new WebInspector.HandlerRegistry(openAnchorLocationSetting); this.openAnchorLocationRegistry.registerHandler(autoselectPanel, function() { return false; }); + this.workspace = new WebInspector.Workspace(); + this._createPanels(); this._createGlobalStatusBarItems(); -- 2.7.4