[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.19-706-ge5415e9

pfeldman at chromium.org pfeldman at chromium.org
Thu Feb 4 21:32:02 UTC 2010


The following commit has been merged in the webkit-1.1 branch:
commit e6adfffd10868ab678644d11e3cf3c58aa698db6
Author: pfeldman at chromium.org <pfeldman at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Jan 29 10:38:15 2010 +0000

    2010-01-29  Pavel Feldman  <pfeldman at chromium.org>
    
            Reviewed by Timothy Hatcher.
    
            Web Inspector: No need to render background sources
            when performing search.
    
            https://bugs.webkit.org/show_bug.cgi?id=34263
    
            * inspector/front-end/ScriptView.js:
            (WebInspector.ScriptView):
            (WebInspector.ScriptView.prototype.show):
            * inspector/front-end/SourceFrame.js:
            (WebInspector.SourceFrame):
            (WebInspector.SourceFrame.prototype.set visible):
            (WebInspector.SourceFrame.prototype.set executionLine):
            (WebInspector.SourceFrame.prototype.revealLine):
            (WebInspector.SourceFrame.prototype.clearMessages):
            (WebInspector.SourceFrame.prototype.sizeToFitContentHeight):
            (WebInspector.SourceFrame.prototype.setContent):
            (WebInspector.SourceFrame.prototype._createEditorIfNeeded):
            (WebInspector.SourceFrame.prototype.setSelection):
            (WebInspector.SourceFrame.prototype.clearSelection):
            (WebInspector.SourceFrame.prototype._contextMenu.addConditionalBreakpoint):
            (WebInspector.SourceFrame.prototype._contextMenu):
            (WebInspector.SourceFrame.prototype._toggleBreakpoint):
            (WebInspector.SourceFrame.prototype.resize):
            (WebInspector.BreakpointLineNumberDecorator):
            * inspector/front-end/SourceView.js:
            (WebInspector.SourceView):
            (WebInspector.SourceView.prototype.show):
            (WebInspector.SourceView.prototype.hide):
            (WebInspector.SourceView.prototype.resize):
            * inspector/front-end/TextEditor.js:
            (WebInspector.TextEditor):
            * inspector/front-end/TextEditorHighlighter.js:
            (WebInspector.TextEditorHighlighter):
            * inspector/front-end/TextEditorModel.js:
            (WebInspector.TextEditorModel):
            (WebInspector.TextEditorModel.prototype.set changeListener):
            (WebInspector.TextEditorModel.prototype.setText):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54052 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 4ad3354..7490832 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,45 @@
+2010-01-29  Pavel Feldman  <pfeldman at chromium.org>
+
+        Reviewed by Timothy Hatcher.
+
+        Web Inspector: No need to render background sources
+        when performing search.
+
+        https://bugs.webkit.org/show_bug.cgi?id=34263
+
+        * inspector/front-end/ScriptView.js:
+        (WebInspector.ScriptView):
+        (WebInspector.ScriptView.prototype.show):
+        * inspector/front-end/SourceFrame.js:
+        (WebInspector.SourceFrame):
+        (WebInspector.SourceFrame.prototype.set visible):
+        (WebInspector.SourceFrame.prototype.set executionLine):
+        (WebInspector.SourceFrame.prototype.revealLine):
+        (WebInspector.SourceFrame.prototype.clearMessages):
+        (WebInspector.SourceFrame.prototype.sizeToFitContentHeight):
+        (WebInspector.SourceFrame.prototype.setContent):
+        (WebInspector.SourceFrame.prototype._createEditorIfNeeded):
+        (WebInspector.SourceFrame.prototype.setSelection):
+        (WebInspector.SourceFrame.prototype.clearSelection):
+        (WebInspector.SourceFrame.prototype._contextMenu.addConditionalBreakpoint):
+        (WebInspector.SourceFrame.prototype._contextMenu):
+        (WebInspector.SourceFrame.prototype._toggleBreakpoint):
+        (WebInspector.SourceFrame.prototype.resize):
+        (WebInspector.BreakpointLineNumberDecorator):
+        * inspector/front-end/SourceView.js:
+        (WebInspector.SourceView):
+        (WebInspector.SourceView.prototype.show):
+        (WebInspector.SourceView.prototype.hide):
+        (WebInspector.SourceView.prototype.resize):
+        * inspector/front-end/TextEditor.js:
+        (WebInspector.TextEditor):
+        * inspector/front-end/TextEditorHighlighter.js:
+        (WebInspector.TextEditorHighlighter):
+        * inspector/front-end/TextEditorModel.js:
+        (WebInspector.TextEditorModel):
+        (WebInspector.TextEditorModel.prototype.set changeListener):
+        (WebInspector.TextEditorModel.prototype.setText):
+
 2010-01-29  Yury Semikhatsky  <yurys at chromium.org>
 
         Reviewed by Adam Barth.
diff --git a/WebCore/inspector/front-end/Drawer.js b/WebCore/inspector/front-end/Drawer.js
index 0426a39..8bf707e 100644
--- a/WebCore/inspector/front-end/Drawer.js
+++ b/WebCore/inspector/front-end/Drawer.js
@@ -160,6 +160,7 @@ WebInspector.Drawer.prototype = {
 
         function animationFinished()
         {
+            WebInspector.currentPanel.resize();
             var mainStatusBar = document.getElementById("main-status-bar");
             mainStatusBar.insertBefore(anchoredItems, mainStatusBar.firstChild);
             mainStatusBar.style.removeProperty("padding-left");
diff --git a/WebCore/inspector/front-end/ScriptView.js b/WebCore/inspector/front-end/ScriptView.js
index 57f77a2..cf7f1b1 100644
--- a/WebCore/inspector/front-end/ScriptView.js
+++ b/WebCore/inspector/front-end/ScriptView.js
@@ -33,9 +33,7 @@ WebInspector.ScriptView = function(script)
 
     this._frameNeedsSetup = true;
     this._sourceFrameSetup = false;
-    this.sourceFrame = new WebInspector.SourceFrame(this._addBreakpoint.bind(this));
-
-    this.element.appendChild(this.sourceFrame.element);
+    this.sourceFrame = new WebInspector.SourceFrame(this.element, this._addBreakpoint.bind(this));
 }
 
 WebInspector.ScriptView.prototype = {
@@ -43,6 +41,7 @@ WebInspector.ScriptView.prototype = {
     {
         WebInspector.View.prototype.show.call(this, parentElement);
         this.setupSourceFrameIfNeeded();
+        this.sourceFrame.visible = true;
         this.resize();
     },
 
diff --git a/WebCore/inspector/front-end/SourceFrame.js b/WebCore/inspector/front-end/SourceFrame.js
index 8508722..ff823cd 100644
--- a/WebCore/inspector/front-end/SourceFrame.js
+++ b/WebCore/inspector/front-end/SourceFrame.js
@@ -28,27 +28,31 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-WebInspector.SourceFrame = function(addBreakpointDelegate)
+WebInspector.SourceFrame = function(parentElement, addBreakpointDelegate)
 {
-    this._editor = new WebInspector.TextEditor(WebInspector.platform);
-    this._textModel = this._editor.textModel;
-    this._editor.lineNumberDecorator = new WebInspector.BreakpointLineNumberDecorator(this);
-    this._editor.lineDecorator = new WebInspector.ExecutionLineDecorator(this);
-    this._editor.readOnly = true;
+    this._parentElement = parentElement;
+
+    this._textModel = new WebInspector.TextEditorModel();
+
     this._messages = [];
     this._rowMessages = {};
     this._messageBubbles = {};
     this.breakpoints = [];
     this._shortcuts = {};
-    this.element = this._editor.element;
-    this.element.addEventListener("keydown", this._keyDown.bind(this), true);
+
     this._loaded = false;
 
-    this.addBreakpointDelegate = addBreakpointDelegate;
+    this._addBreakpointDelegate = addBreakpointDelegate;
 }
 
 WebInspector.SourceFrame.prototype = {
 
+    set visible(visible)
+    {
+        this._visible = visible;
+        this._createEditorIfNeeded();
+    },
+
     get executionLine()
     {
         return this._executionLine;
@@ -59,15 +63,16 @@ WebInspector.SourceFrame.prototype = {
         if (this._executionLine === x)
             return;
         this._executionLine = x;
-        this._editor.repaintAll();
+        if (this._editor)
+            this._editor.repaintAll();
     },
 
     revealLine: function(lineNumber)
     {
-        if (!this._loaded)
-            this._lineNumberToReveal = lineNumber;
-        else
+        if (this._editor)
             this._editor.reveal(lineNumber - 1, 0);
+        else
+            this._lineNumberToReveal = lineNumber;
     },
 
     addBreakpoint: function(breakpoint)
@@ -93,8 +98,9 @@ WebInspector.SourceFrame.prototype = {
         // Don't add the message if there is no message or valid line or if the msg isn't an error or warning.
         if (!msg.message || msg.line <= 0 || !msg.isErrorOrWarning())
             return;
-        this._messages.push(msg);
-        this._addMessageToSource(msg);
+        this._messages.push(msg)
+        if (this._editor)
+            this._addMessageToSource(msg);
     },
 
     clearMessages: function()
@@ -107,22 +113,46 @@ WebInspector.SourceFrame.prototype = {
         this._messages = [];
         this._rowMessages = {};
         this._messageBubbles = {};
-        this._editor.packAndRepaintAll();
+        if (this._editor)
+            this._editor.packAndRepaintAll();
     },
 
     sizeToFitContentHeight: function()
     {
-        this._editor.packAndRepaintAll();
+        if (this._editor)
+            this._editor.packAndRepaintAll();
     },
 
     setContent: function(mimeType, content)
     {
         this._loaded = true;
-        this._editor.mimeType = mimeType;
-        this._editor.text = content;
+        this._textModel.setText(null, content);
+        this._mimeType = mimeType;
+        this._createEditorIfNeeded();
+    },
+
+    _createEditorIfNeeded: function()
+    {
+        if (!this._visible || !this._loaded || this._editor)
+            return;
+
+        this._editor = new WebInspector.TextEditor(this._textModel, WebInspector.platform);
+        this._editor.lineNumberDecorator = new WebInspector.BreakpointLineNumberDecorator(this, this._editor.textModel);
+        this._editor.lineDecorator = new WebInspector.ExecutionLineDecorator(this);
+        this._editor.readOnly = true;
+        this._element = this._editor.element;
+        this._element.addEventListener("keydown", this._keyDown.bind(this), true);
+        this._parentElement.appendChild(this._element);
+
+        this._editor.mimeType = this._mimeType;
 
         this._addExistingMessagesToSource();
         this._addExistingBreakpointsToSource();
+
+        this._editor.setCoalescingUpdate(true);
+        this._editor.updateCanvasSize();
+        this._editor.packAndRepaintAll();
+
         if (this._executionLine)
             this.revealLine(this._executionLine);
 
@@ -130,9 +160,12 @@ WebInspector.SourceFrame.prototype = {
             this.revealLine(this._lineNumberToReveal);
             delete this._lineNumberToReveal;
         }
-        this._editor.setCoalescingUpdate(true);
-        this._editor.updateCanvasSize();
-        this._editor.packAndRepaintAll();
+
+        if (this._pendingSelectionRange) {
+            var range = this._pendingSelectionRange;
+            this._editor.setSelection(range.startLine, range.startColumn, range.endLine, range.endColumn);
+            delete this._pendingSelectionRange;
+        }
         this._editor.setCoalescingUpdate(false);
     },
 
@@ -180,13 +213,19 @@ WebInspector.SourceFrame.prototype = {
 
     setSelection: function(range)
     {
-        this._editor.setSelection(range.startLine, range.startColumn, range.endLine, range.endColumn);
+        if (this._editor)
+            this._editor.setSelection(range.startLine, range.startColumn, range.endLine, range.endColumn);
+        else
+            this._pendingSelectionRange = range;
     },
 
     clearSelection: function()
     {
-        var range = this._editor.selection;
-        this._editor.setSelection(range.endLine, range.endColumn, range.endLine, range.endColumn);
+        if (this._editor) {
+            var range = this._editor.selection;
+            this._editor.setSelection(range.endLine, range.endColumn, range.endLine, range.endColumn);
+        } else
+            delete this._pendingSelectionRange;
     },
 
     _incrementMessageRepeatCount: function(msg, repeatDelta)
@@ -289,7 +328,7 @@ WebInspector.SourceFrame.prototype = {
 
     _contextMenu: function(lineNumber, event)
     {
-        if (!this.addBreakpointDelegate)
+        if (!this._addBreakpointDelegate)
             return;
 
         var contextMenu = new WebInspector.ContextMenu();
@@ -297,11 +336,11 @@ WebInspector.SourceFrame.prototype = {
         var breakpoint = this._textModel.getAttribute(lineNumber, "breakpoint");
         if (!breakpoint) {
             // This row doesn't have a breakpoint: We want to show Add Breakpoint and Add and Edit Breakpoint.
-            contextMenu.appendItem(WebInspector.UIString("Add Breakpoint"), this.addBreakpointDelegate.bind(this, lineNumber + 1));
+            contextMenu.appendItem(WebInspector.UIString("Add Breakpoint"), this._addBreakpointDelegate.bind(this, lineNumber + 1));
 
             function addConditionalBreakpoint() 
             {
-                this.addBreakpointDelegate(lineNumber + 1);
+                this._addBreakpointDelegate(lineNumber + 1);
                 var breakpoint = this._textModel.getAttribute(lineNumber, "breakpoint");
                 if (breakpoint)
                     this._editBreakpointCondition(breakpoint);
@@ -327,8 +366,8 @@ WebInspector.SourceFrame.prototype = {
         var breakpoint = this._textModel.getAttribute(lineNumber, "breakpoint");
         if (breakpoint)
             WebInspector.panels.scripts.removeBreakpoint(breakpoint);
-        else if (this.addBreakpointDelegate)
-            this.addBreakpointDelegate(lineNumber + 1);
+        else if (this._addBreakpointDelegate)
+            this._addBreakpointDelegate(lineNumber + 1);
         event.preventDefault();
     },
 
@@ -421,16 +460,17 @@ WebInspector.SourceFrame.prototype = {
 
     resize: function()
     {
-        this._editor.updateCanvasSize();
+        if (this._editor)
+            this._editor.updateCanvasSize();
     }
 }
 
 WebInspector.SourceFrame.prototype.__proto__ = WebInspector.Object.prototype;
 
-WebInspector.BreakpointLineNumberDecorator = function(sourceFrame)
+WebInspector.BreakpointLineNumberDecorator = function(sourceFrame, textModel)
 {
     this._sourceFrame = sourceFrame;
-    this._textModel = sourceFrame._editor.textModel;
+    this._textModel = textModel;
 }
 
 WebInspector.BreakpointLineNumberDecorator.prototype = {
diff --git a/WebCore/inspector/front-end/SourceView.js b/WebCore/inspector/front-end/SourceView.js
index 3dd6e0b..292b8af 100644
--- a/WebCore/inspector/front-end/SourceView.js
+++ b/WebCore/inspector/front-end/SourceView.js
@@ -30,19 +30,11 @@ WebInspector.SourceView = function(resource)
 {
     WebInspector.ResourceView.call(this, resource);
 
-    this.sourceFrame = new WebInspector.SourceFrame(this._addBreakpoint.bind(this));
-
-    resource.addEventListener("finished", this._resourceLoadingFinished, this);
-
     this.element.addStyleClass("source");
 
+    this.sourceFrame = new WebInspector.SourceFrame(this.contentElement, this._addBreakpoint.bind(this));
+    resource.addEventListener("finished", this._resourceLoadingFinished, this);
     this._frameNeedsSetup = true;
-
-    this.contentElement.appendChild(this.sourceFrame.element);
-
-    var gutterElement = document.createElement("div");
-    gutterElement.className = "webkit-line-gutter-backdrop";
-    this.contentElement.appendChild(gutterElement);
 }
 
 WebInspector.SourceView.prototype = {
@@ -50,18 +42,20 @@ WebInspector.SourceView.prototype = {
     {
         WebInspector.ResourceView.prototype.show.call(this, parentElement);
         this.setupSourceFrameIfNeeded();
+        this.sourceFrame.visible = true;
         this.resize();
     },
 
     hide: function()
     {
         WebInspector.View.prototype.hide.call(this);
+        this.sourceFrame.visible = false;
         this._currentSearchResultIndex = -1;
     },
 
     resize: function()
     {
-        if (this._sourceFrameSetup)
+        if (this.sourceFrame)
             this.sourceFrame.resize();
     },
 
diff --git a/WebCore/inspector/front-end/TextEditor.js b/WebCore/inspector/front-end/TextEditor.js
index dd430c4..aef5d9a 100644
--- a/WebCore/inspector/front-end/TextEditor.js
+++ b/WebCore/inspector/front-end/TextEditor.js
@@ -28,9 +28,10 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-WebInspector.TextEditor = function(platform)
+WebInspector.TextEditor = function(textModel, platform)
 {
-    this._textModel = new WebInspector.TextEditorModel(this._textChanged.bind(this));
+    this._textModel = textModel;
+    this._textModel.changeListener = this._textChanged.bind(this);
     this._highlighter = new WebInspector.TextEditorHighlighter(this._textModel, this._highlightChanged.bind(this));
 
     this.element = document.createElement("div");
diff --git a/WebCore/inspector/front-end/TextEditorHighlighter.js b/WebCore/inspector/front-end/TextEditorHighlighter.js
index ea0ed3b..853b666 100644
--- a/WebCore/inspector/front-end/TextEditorHighlighter.js
+++ b/WebCore/inspector/front-end/TextEditorHighlighter.js
@@ -62,7 +62,8 @@ WebInspector.TextEditorHighlighter = function(textModel, damageCallback)
     this._tokenizerConstructors = {
         "text/css": WebInspector.SourceCSSTokenizer,
         "text/html": WebInspector.SourceHTMLTokenizer,
-        "text/javascript": WebInspector.SourceJavaScriptTokenizer
+        "text/javascript": WebInspector.SourceJavaScriptTokenizer,
+        "application/x-javascript": WebInspector.SourceJavaScriptTokenizer
     };
 
     this.mimeType = "text/html";
diff --git a/WebCore/inspector/front-end/TextEditorModel.js b/WebCore/inspector/front-end/TextEditorModel.js
index c5f52b7..fc56026 100644
--- a/WebCore/inspector/front-end/TextEditorModel.js
+++ b/WebCore/inspector/front-end/TextEditorModel.js
@@ -53,9 +53,8 @@ WebInspector.TextRange.prototype = {
     }
 }
 
-WebInspector.TextEditorModel = function(changeListener)
+WebInspector.TextEditorModel = function()
 {
-    this._changeListener = changeListener;
     this._lines = [""];
     this._attributes = [];
     this._undoStack = [];
@@ -63,6 +62,10 @@ WebInspector.TextEditorModel = function(changeListener)
 }
 
 WebInspector.TextEditorModel.prototype = {
+    set changeListener(changeListener)
+    {
+        this._changeListener = changeListener;
+    },
 
     get linesCount()
     {
@@ -89,7 +92,8 @@ WebInspector.TextEditorModel.prototype = {
         var newRange = this._innerSetText(range, text);
         command.range = newRange.clone();
 
-        this._changeListener(range, newRange, command.text, text);
+        if (this._changeListener)
+            this._changeListener(range, newRange, command.text, text);
         return newRange;
     },
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list