diff options
Diffstat (limited to 'WebCore/page/inspector/SourcePanel.js')
-rw-r--r-- | WebCore/page/inspector/SourcePanel.js | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/WebCore/page/inspector/SourcePanel.js b/WebCore/page/inspector/SourcePanel.js deleted file mode 100644 index 9d4139c..0000000 --- a/WebCore/page/inspector/SourcePanel.js +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (C) 2007 Apple 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: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. Neither the name of Apple Computer, Inc. ("Apple") 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 APPLE AND ITS 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 APPLE OR ITS 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. - */ - -WebInspector.SourcePanel = function(resource, views) -{ - var allViews = [{ title: WebInspector.UIString("Source"), name: "source" }]; - if (views) - allViews = allViews.concat(views); - - WebInspector.ResourcePanel.call(this, resource, allViews); - - this.currentView = this.views.source; - - var sourceView = this.views.source; - - sourceView.messages = []; - sourceView.frameNeedsSetup = true; - - sourceView.frameElement = document.createElement("iframe"); - sourceView.frameElement.setAttribute("viewsource", "true"); - sourceView.contentElement.appendChild(sourceView.frameElement); -} - -WebInspector.SourcePanel.prototype = { - show: function() - { - WebInspector.ResourcePanel.prototype.show.call(this); - this.setupSourceFrameIfNeeded(); - }, - - setupSourceFrameIfNeeded: function() - { - if (this.views.source.frameNeedsSetup) { - this.attach(); - - InspectorController.addSourceToFrame(this.resource.identifier, this.views.source.frameElement); - WebInspector.addMainEventListeners(this.views.source.frameElement.contentDocument); - - var length = this.views.source.messages; - for (var i = 0; i < length; ++i) - this._addMessageToSource(this.views.source.messages[i]); - - delete this.views.source.frameNeedsSetup; - } - }, - - sourceRow: function(lineNumber) - { - this.setupSourceFrameIfNeeded(); - - var doc = this.views.source.frameElement.contentDocument; - var rows = doc.getElementsByTagName("table")[0].rows; - - // Line numbers are a 1-based index, but the rows collection is 0-based. - --lineNumber; - if (lineNumber >= rows.length) - lineNumber = rows.length - 1; - - return rows[lineNumber]; - }, - - showSourceLine: function(lineNumber) - { - var row = this.sourceRow(lineNumber); - if (!row) - return; - this.currentView = this.views.source; - row.scrollIntoView(true); - }, - - addMessageToSource: function(msg) - { - this.views.source.messages.push(msg); - if (!this.views.source.frameNeedsSetup) - this._addMessageToSource(msg); - }, - - _addMessageToSource: function(msg) - { - var row = this.sourceRow(msg.line); - if (!row) - return; - - var doc = this.views.source.frameElement.contentDocument; - var cell = row.getElementsByTagName("td")[1]; - - var errorDiv = cell.lastChild; - if (!errorDiv || errorDiv.nodeName.toLowerCase() !== "div" || !errorDiv.hasStyleClass("webkit-html-message-bubble")) { - errorDiv = doc.createElement("div"); - errorDiv.className = "webkit-html-message-bubble"; - cell.appendChild(errorDiv); - } - - var imageURL; - switch (msg.level) { - case WebInspector.ConsoleMessage.MessageLevel.Error: - errorDiv.addStyleClass("webkit-html-error-message"); - imageURL = "Images/errorIcon.png"; - break; - case WebInspector.ConsoleMessage.MessageLevel.Warning: - errorDiv.addStyleClass("webkit-html-warning-message"); - imageURL = "Images/warningIcon.png"; - break; - } - - var lineDiv = doc.createElement("div"); - lineDiv.className = "webkit-html-message-line"; - errorDiv.appendChild(lineDiv); - - var image = doc.createElement("img"); - image.src = imageURL; - image.className = "webkit-html-message-icon"; - lineDiv.appendChild(image); - - lineDiv.appendChild(doc.createTextNode(msg.message)); - } -} - -WebInspector.SourcePanel.prototype.__proto__ = WebInspector.ResourcePanel.prototype; |