[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:27:03 UTC 2010


The following commit has been merged in the webkit-1.1 branch:
commit e8c22a7b19484edc719d11f966f316c9648fb26f
Author: pfeldman at chromium.org <pfeldman at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Jan 25 10:58:01 2010 +0000

    2010-01-24  Pavel Feldman  <pfeldman at chromium.org>
    
            Reviewed by Timothy Hatcher.
    
            Web Inspector: Add support for addMessage/clearMessages to SourceFrame2.
    
            https://bugs.webkit.org/show_bug.cgi?id=33904
    
            * WebCore.gypi:
            * WebCore.vcproj/WebCore.vcproj:
            * inspector/front-end/SourceFrame2.js:
            (WebInspector.SourceFrame2):
            (WebInspector.SourceFrame2.prototype.addMessage):
            (WebInspector.SourceFrame2.prototype.clearMessages):
            (WebInspector.SourceFrame2.prototype._incrementMessageRepeatCount):
            (WebInspector.SourceFrame2.prototype._addExistingMessagesToSource):
            (WebInspector.SourceFrame2.prototype._addMessageToSource):
            (WebInspector.SourceFrame2.prototype.resize):
            * inspector/front-end/TextEditor.js:
            (WebInspector.TextEditor):
            (WebInspector.TextEditor.prototype.setDivDecoration):
            (WebInspector.TextEditor.prototype._lineHeight):
            (WebInspector.TextEditor.prototype._highlightChanged):
            (WebInspector.TextEditor.prototype.packAndRepaintAll):
            (WebInspector.TextEditor.prototype._updateSize):
            (WebInspector.TextEditor.prototype._repaintAll):
            (WebInspector.TextEditor.prototype._paint):
            (WebInspector.TextEditor.prototype._paintLinesContinuation):
            (WebInspector.TextEditor.prototype._mouseOut):
            (WebInspector.TextEditor.prototype._updateDivDecorations):
            (WebInspector.TextEditor.prototype._positionDivDecoration):
            (WebInspector.TextEditor.prototype._paintSelection):
            (WebInspector.TextEditor.prototype._replaceSelectionWith):
            * inspector/front-end/TextEditorHighlighter.js:
            (WebInspector.TextEditorHighlighter.prototype.updateHighlight):
            * inspector/front-end/WebKit.qrc:
            * inspector/front-end/inspector.css:
            * inspector/front-end/inspector.html:
            * inspector/front-end/textEditor.css: Added.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53795 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index a9ab892..d5c8773 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -2,6 +2,46 @@
 
         Reviewed by Timothy Hatcher.
 
+        Web Inspector: Add support for addMessage/clearMessages to SourceFrame2.
+
+        https://bugs.webkit.org/show_bug.cgi?id=33904
+
+        * WebCore.gypi:
+        * WebCore.vcproj/WebCore.vcproj:
+        * inspector/front-end/SourceFrame2.js:
+        (WebInspector.SourceFrame2):
+        (WebInspector.SourceFrame2.prototype.addMessage):
+        (WebInspector.SourceFrame2.prototype.clearMessages):
+        (WebInspector.SourceFrame2.prototype._incrementMessageRepeatCount):
+        (WebInspector.SourceFrame2.prototype._addExistingMessagesToSource):
+        (WebInspector.SourceFrame2.prototype._addMessageToSource):
+        (WebInspector.SourceFrame2.prototype.resize):
+        * inspector/front-end/TextEditor.js:
+        (WebInspector.TextEditor):
+        (WebInspector.TextEditor.prototype.setDivDecoration):
+        (WebInspector.TextEditor.prototype._lineHeight):
+        (WebInspector.TextEditor.prototype._highlightChanged):
+        (WebInspector.TextEditor.prototype.packAndRepaintAll):
+        (WebInspector.TextEditor.prototype._updateSize):
+        (WebInspector.TextEditor.prototype._repaintAll):
+        (WebInspector.TextEditor.prototype._paint):
+        (WebInspector.TextEditor.prototype._paintLinesContinuation):
+        (WebInspector.TextEditor.prototype._mouseOut):
+        (WebInspector.TextEditor.prototype._updateDivDecorations):
+        (WebInspector.TextEditor.prototype._positionDivDecoration):
+        (WebInspector.TextEditor.prototype._paintSelection):
+        (WebInspector.TextEditor.prototype._replaceSelectionWith):
+        * inspector/front-end/TextEditorHighlighter.js:
+        (WebInspector.TextEditorHighlighter.prototype.updateHighlight):
+        * inspector/front-end/WebKit.qrc:
+        * inspector/front-end/inspector.css:
+        * inspector/front-end/inspector.html:
+        * inspector/front-end/textEditor.css: Added.
+
+2010-01-24  Pavel Feldman  <pfeldman at chromium.org>
+
+        Reviewed by Timothy Hatcher.
+
         Web Inspector: Replace split pane with tabbed pane in resource
         contents view.
 
@@ -74355,8 +74395,6 @@ form controls that have different validity states.
          * platform/qt/RenderThemeQt.cpp:
          (WebCore::RenderThemeQt::adjustButtonStyle):
 
-=== End merge of nitro-extreme branch 2009-07-30 ===
-
 2009-05-11  Geoffrey Garen  <ggaren at apple.com>
 
         Reviewed by Sam Weinig.
@@ -74369,8 +74407,6 @@ form controls that have different validity states.
         * bindings/scripts/CodeGeneratorJS.pm:
         * bridge/c/c_instance.cpp:
 
-=== Start merge of nitro-extreme branch 2009-07-30 ===
-
 2009-07-30  Dean McNamee  <deanm at chromium.org>
 
         Reviewed by Dimitri Glazkov.
diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi
index d9cc87d..cbbdceb 100644
--- a/WebCore/WebCore.gypi
+++ b/WebCore/WebCore.gypi
@@ -3760,6 +3760,7 @@
             'inspector/front-end/audits.css',
             'inspector/front-end/inspector.css',
             'inspector/front-end/inspectorSyntaxHighlight.css',
+            'inspector/front-end/textEditor.css',
         ],
         'webinspector_image_files': [
 
diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
index 29582fe..872509b 100644
--- a/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -43076,6 +43076,10 @@
 					>
 				</File>
 				<File
+					RelativePath="..\inspector\front-end\textEditor.css"
+					>
+				</File>
+				<File
 					RelativePath="..\inspector\front-end\TextPrompt.js"
 					>
 				</File>
diff --git a/WebCore/inspector/front-end/SourceFrame2.js b/WebCore/inspector/front-end/SourceFrame2.js
index 93792f8..f8bbef1 100644
--- a/WebCore/inspector/front-end/SourceFrame2.js
+++ b/WebCore/inspector/front-end/SourceFrame2.js
@@ -35,6 +35,9 @@ WebInspector.SourceFrame2 = function()
     this._editor.lineNumberDecorator = new WebInspector.BreakpointLineNumberDecorator(this);
     this._editor.lineDecorator = new WebInspector.ExecutionLineDecorator(this);
     this._editor.readOnly = true;
+    this._messages = [];
+    this._rowMessages = {};
+    this._messageBubbles = {};
     this.element = this._editor.element;
 }
 
@@ -44,6 +47,107 @@ WebInspector.SourceFrame2.prototype = {
         this._editor.text = text;
     },
 
+    addMessage: function(msg)
+    {
+        // 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);
+    },
+
+    clearMessages: function()
+    {
+        for (var line in this._messageBubbles) {
+            var bubble = this._messageBubbles[line];
+            bubble.parentNode.removeChild(bubble);
+        }
+
+        this._messages = [];
+        this._rowMessages = {};
+        this._messageBubbles = {};
+        this._editor.packAndRepaintAll();
+    },
+
+    _incrementMessageRepeatCount: function(msg, repeatDelta)
+    {
+        if (!msg._resourceMessageLineElement)
+            return;
+
+        if (!msg._resourceMessageRepeatCountElement) {
+            var repeatedElement = document.createElement("span");
+            msg._resourceMessageLineElement.appendChild(repeatedElement);
+            msg._resourceMessageRepeatCountElement = repeatedElement;
+        }
+
+        msg.repeatCount += repeatDelta;
+        msg._resourceMessageRepeatCountElement.textContent = WebInspector.UIString(" (repeated %d times)", msg.repeatCount);
+    },
+
+    _addExistingMessagesToSource: function()
+    {
+        var length = this._messages.length;
+        for (var i = 0; i < length; ++i)
+            this._addMessageToSource(this._messages[i]);
+    },
+
+    _addMessageToSource: function(msg)
+    {
+        if (msg.line >= this._textModel.linesCount)
+            return;
+
+        var messageBubbleElement = this._messageBubbles[msg.line];
+        if (!messageBubbleElement || messageBubbleElement.nodeType !== Node.ELEMENT_NODE || !messageBubbleElement.hasStyleClass("webkit-html-message-bubble")) {
+            messageBubbleElement = document.createElement("div");
+            messageBubbleElement.className = "webkit-html-message-bubble";
+            this._messageBubbles[msg.line] = messageBubbleElement;
+            this._editor.setDivDecoration(msg.line, messageBubbleElement);
+        }
+
+        var rowMessages = this._rowMessages[msg.line];
+        if (!rowMessages) {
+            rowMessages = [];
+            this._rowMessages[msg.line] = rowMessages;
+        }
+
+        for (var i = 0; i < rowMessages.length; ++i) {
+            if (rowMessages[i].isEqual(msg, true)) {
+                this._incrementMessageRepeatCount(rowMessages[i], msg.repeatDelta);
+                this._editor.packAndRepaintAll();
+                return;
+            }
+        }
+
+        rowMessages.push(msg);
+
+        var imageURL;
+        switch (msg.level) {
+            case WebInspector.ConsoleMessage.MessageLevel.Error:
+                messageBubbleElement.addStyleClass("webkit-html-error-message");
+                imageURL = "Images/errorIcon.png";
+                break;
+            case WebInspector.ConsoleMessage.MessageLevel.Warning:
+                messageBubbleElement.addStyleClass("webkit-html-warning-message");
+                imageURL = "Images/warningIcon.png";
+                break;
+        }
+
+        var messageLineElement = document.createElement("div");
+        messageLineElement.className = "webkit-html-message-line";
+        messageBubbleElement.appendChild(messageLineElement);
+
+        // Create the image element in the Inspector's document so we can use relative image URLs.
+        var image = document.createElement("img");
+        image.src = imageURL;
+        image.className = "webkit-html-message-icon";
+        messageLineElement.appendChild(image);
+        messageLineElement.appendChild(document.createTextNode(msg.message));
+
+        msg._resourceMessageLineElement = messageLineElement;
+
+        this._editor.packAndRepaintAll();
+    },
+
     get executionLine()
     {
         return this._executionLine;
@@ -70,7 +174,7 @@ WebInspector.SourceFrame2.prototype = {
 
     resize: function()
     {
-        this._editor.updateCanvasSize();
+        this._editor.packAndRepaintAll();
     }
 }
 
diff --git a/WebCore/inspector/front-end/TextEditor.js b/WebCore/inspector/front-end/TextEditor.js
index 81055b7..7fa2716 100644
--- a/WebCore/inspector/front-end/TextEditor.js
+++ b/WebCore/inspector/front-end/TextEditor.js
@@ -58,20 +58,20 @@ WebInspector.TextEditor = function(platform)
     this._container.appendChild(cursorElement);
     this._cursor = new WebInspector.TextCursor(cursorElement);
 
-    this._container.addEventListener("scroll", this._scroll.bind(this));
-    this._sheet.addEventListener("mouseup", this._mouseUp.bind(this));
-    this._sheet.addEventListener("mousedown", this._mouseDown.bind(this));
-    this._sheet.addEventListener("mousemove", this._mouseMove.bind(this));
-    this._sheet.addEventListener("mouseout", this._mouseOut.bind(this));
-    this._sheet.addEventListener("dblclick", this._dblClick.bind(this));
-    this.element.addEventListener("keydown", this._keyDown.bind(this));
-    this.element.addEventListener("textInput", this._textInput.bind(this));
-    this.element.addEventListener("beforecopy", this._beforeCopy.bind(this));
-    this.element.addEventListener("copy", this._copy.bind(this));
-    this.element.addEventListener("beforecut", this._beforeCut.bind(this));
-    this.element.addEventListener("cut", this._cut.bind(this));
-    this.element.addEventListener("beforepaste", this._beforePaste.bind(this));
-    this.element.addEventListener("paste", this._paste.bind(this));
+    this._container.addEventListener("scroll", this._scroll.bind(this), false);
+    this._sheet.addEventListener("mouseup", this._mouseUp.bind(this), false);
+    this._sheet.addEventListener("mousedown", this._mouseDown.bind(this), false);
+    this._sheet.addEventListener("mousemove", this._mouseMove.bind(this), false);
+    this._sheet.addEventListener("mouseout", this._mouseOut.bind(this), false);
+    this._sheet.addEventListener("dblclick", this._dblClick.bind(this), false);
+    this.element.addEventListener("keydown", this._keyDown.bind(this), false);
+    this.element.addEventListener("textInput", this._textInput.bind(this), false);
+    this.element.addEventListener("beforecopy", this._beforeCopy.bind(this), false);
+    this.element.addEventListener("copy", this._copy.bind(this), false);
+    this.element.addEventListener("beforecut", this._beforeCut.bind(this), false);
+    this.element.addEventListener("cut", this._cut.bind(this), false);
+    this.element.addEventListener("beforepaste", this._beforePaste.bind(this), false);
+    this.element.addEventListener("paste", this._paste.bind(this), false);
 
     this._desiredCaretColumn = 0;
     this._scrollLeft = 0;
@@ -137,6 +137,19 @@ WebInspector.TextEditor.prototype = {
         this._setSelectionEnd(endLine, endColumn);
     },
 
+    setDivDecoration: function(lineNumber, element)
+    {
+        var divDecoration = this._textModel.getAttribute(lineNumber, "div-decoration");
+        if (divDecoration && divDecoration.element && divDecoration.element.parentNode)
+            divDecoration.element.parentNode.removeChild(divDecoration.element);
+
+        divDecoration = { element: element };
+        this.element.appendChild(element);
+
+        this._textModel.setAttribute(lineNumber, "div-decoration", divDecoration);
+        this.packAndRepaintAll();
+    },
+
     _offsetToLine: function(offset)
     {
         if (offset > this._lineOffsetsCache[this._lineOffsetsCache.length - 1]) {
@@ -179,7 +192,10 @@ WebInspector.TextEditor.prototype = {
 
     _lineHeight: function(lineNumber)
     {
-        return this._debugMode ? this._textLineHeight * (1 + lineNumber % 3) : this._textLineHeight;
+        var divDecoration = this._textModel.getAttribute(lineNumber, "div-decoration");
+        if (divDecoration)
+            return 2 * this._textLineHeight + divDecoration.element.clientHeight;
+        return this._textLineHeight;
     },
 
     reveal: function(line, column) {
@@ -239,12 +255,25 @@ WebInspector.TextEditor.prototype = {
 
     _highlightChanged: function(fromLine, toLine)
     {
+        if (this._muteHighlightListener)
+            return;
+
         this._invalidateLines(fromLine, toLine);
         this._paint();
     },
 
+    packAndRepaintAll: function()
+    {
+        this._setCoalescingUpdate(true);
+        this._lineOffsetsCache = [0];
+        this._updateSize(0, this._textModel.linesCount);
+        this._repaintAll();
+        this._setCoalescingUpdate(false);
+    },
+
     _updateSize: function(startLine, endLine)
     {
+        this._setCoalescingUpdate(true);
         var guardedEndLine = Math.min(this._textModel.linesCount, endLine + 1);
         var newMaximum = false;
         for (var i = startLine; i < guardedEndLine; ++i) {
@@ -280,9 +309,10 @@ WebInspector.TextEditor.prototype = {
             this._lineNumberDigits = newLineNumberDigits;
             this._repaintAll();
         }
-        
+
         // Changes to size can change the client area (scrollers can appear/disappear)
         this.updateCanvasSize();
+        this._setCoalescingUpdate(false);
     },
 
     updateCanvasSize: function()
@@ -297,9 +327,7 @@ WebInspector.TextEditor.prototype = {
     _repaintAll: function()
     {
         this._invalidateLines(0, this._textModel.linesCount);
-        this.paintLineNumbers();
         this._paint();
-        this._updateCursor(this._selection.endLine, this._selection.endColumn);
     },
 
     _invalidateLines: function(startLine, endLine)
@@ -324,9 +352,14 @@ WebInspector.TextEditor.prototype = {
         if (this._paintCoalescingLevel)
             return;
 
+        this.paintLineNumbers();
+
         for (var i = 0; this._damage && i < this._damage.length; ++i)
             this._paintLines(this._damage[i].startLine, this._damage[i].endLine);
         delete this._damage;
+
+        this._updateDivDecorations();
+        this._updateCursor(this._selection.endLine, this._selection.endColumn);
     },
 
     _paintLines: function(firstLine, lastLine)
@@ -374,9 +407,11 @@ WebInspector.TextEditor.prototype = {
 
         this._paintSelection(firstLine, lastLine);
 
-        if (this._highlightingEnabled)
+        if (this._highlightingEnabled) {
+            this._muteHighlightListener = true;
             this._highlighter.highlight(lastLine);
-
+            delete this._muteHighlightListener;
+        }
         for (var i = firstLine; i < lastLine; ++i) {
             var line = this._textModel.line(i);
             var lineOffset = this._lineToOffset(i) - this._scrollTop;
@@ -384,6 +419,10 @@ WebInspector.TextEditor.prototype = {
             if (this._lineDecorator)
                 this._lineDecorator.decorate(i, this._ctx, this._lineNumberWidth - 1, lineOffset, this._canvas.width - this._lineNumberWidth + 1, this._lineHeight(i), this._textLineHeight);
 
+            var divDecoration = this._textModel.getAttribute(i, "div-decoration");
+            if (divDecoration)
+                this._positionDivDecoration(i, divDecoration, true);
+
             if (!this._highlightingEnabled) {
                 this._ctx.fillStyle = "rgb(0,0,0)";
                 this._ctx.fillText(line, this._lineNumberWidth - this._scrollLeft, lineOffset + this._textLineHeight);
@@ -494,7 +533,6 @@ WebInspector.TextEditor.prototype = {
 
     _mouseOut: function(e)
     {
-        this._isDragging = false;
     },
 
     _dblClick: function(e)
@@ -678,6 +716,27 @@ WebInspector.TextEditor.prototype = {
         this._updateCursor(end.line, end.column);
     },
 
+    _updateDivDecorations: function()
+    {
+        var firstLine = this._offsetToLine(this._scrollTop) - 1;
+        var lastLine = this._offsetToLine(this._scrollTop + this._canvas.height) + 1;
+
+        var linesCount = this._textModel.linesCount;
+        for (var i = 0; i < linesCount; ++i) {
+            var divDecoration = this._textModel.getAttribute(i, "div-decoration");
+            if (divDecoration)
+                this._positionDivDecoration(i, divDecoration, i > firstLine && i < lastLine);
+        }
+    },
+
+    _positionDivDecoration: function(lineNumber, divDecoration, visible)
+    {
+        divDecoration.element.style.position = "absolute";
+        divDecoration.element.style.top = this._lineToOffset(lineNumber) - this._scrollTop + this._textLineHeight + "px";
+        divDecoration.element.style.left = this._lineNumberWidth + "px";
+        divDecoration.element.style.setProperty("max-width", (this._canvas.width - 200) + "px");
+    },
+
     _updateCursor: function(line, column)
     {
         if (line >= this._textModel.linesCount)
@@ -723,7 +782,7 @@ WebInspector.TextEditor.prototype = {
             } else
                 to = this._canvas.width;
 
-            this._ctx.fillRect(from, this._lineToOffset(i) - this._scrollTop, to - from, this._textLineHeight);
+            this._ctx.fillRect(from, this._lineToOffset(i) - this._scrollTop, to - from, this._lineHeight(i));
         }
         this._ctx.fillStyle = "rgb(0, 0, 0)";
     },
@@ -780,7 +839,6 @@ WebInspector.TextEditor.prototype = {
     _replaceSelectionWith: function(newText, overrideRange)
     {
         var range = overrideRange || this._selection.range();
-
         this._setCoalescingUpdate(true);
         var newRange = this._textModel.setText(range, newText);
         this._setCaretLocation(newRange.endLine, newRange.endColumn);
diff --git a/WebCore/inspector/front-end/TextEditorHighlighter.js b/WebCore/inspector/front-end/TextEditorHighlighter.js
index 064ed0c..0b9190d 100644
--- a/WebCore/inspector/front-end/TextEditorHighlighter.js
+++ b/WebCore/inspector/front-end/TextEditorHighlighter.js
@@ -106,10 +106,12 @@ WebInspector.TextEditorHighlighter.prototype = {
     updateHighlight: function(startLine, endLine)
     {
         // Start line was edited, we should highlight everything until endLine synchronously.
-        var state = this._textModel.getAttribute(startLine, "highlighter-state");
-        if (!state || state.outOfDate) {
-            // Highlighter did not reach this point yet, nothing to update. It will reach it on subsequent timer tick and do the job.
-            return;
+        if (startLine) {
+            var state = this._textModel.getAttribute(startLine - 1, "highlighter-state");
+            if (!state || state.outOfDate) {
+                // Highlighter did not reach this point yet, nothing to update. It will reach it on subsequent timer tick and do the job.
+                return;
+            }
         }
 
         var restored = this._highlightLines(startLine, endLine);
diff --git a/WebCore/inspector/front-end/WebKit.qrc b/WebCore/inspector/front-end/WebKit.qrc
index ed92a2f..700cdae 100644
--- a/WebCore/inspector/front-end/WebKit.qrc
+++ b/WebCore/inspector/front-end/WebKit.qrc
@@ -89,6 +89,7 @@
     <file>audits.css</file>
     <file>inspector.css</file>
     <file>inspectorSyntaxHighlight.css</file>
+    <file>textEditor.css</file>
     <file>Images/back.png</file>
     <file>Images/checker.png</file>
     <file>Images/clearConsoleButtonGlyph.png</file>
diff --git a/WebCore/inspector/front-end/inspector.css b/WebCore/inspector/front-end/inspector.css
index c050324..da9cdcd 100644
--- a/WebCore/inspector/front-end/inspector.css
+++ b/WebCore/inspector/front-end/inspector.css
@@ -3817,8 +3817,12 @@ ol.breakpoint-list {
     overflow: auto;
 }
 
-.text-editor-sheet, .text-editor-clip {
+.text-editor-clip {
     opacity: 0;
+    position: absolute;
+    top:0;
+    left:0;
+    pointer-events: none;
 }
 
 .text-editor-cursor {
diff --git a/WebCore/inspector/front-end/inspector.html b/WebCore/inspector/front-end/inspector.html
index e34bd09..7788fbd 100644
--- a/WebCore/inspector/front-end/inspector.html
+++ b/WebCore/inspector/front-end/inspector.html
@@ -30,6 +30,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 <head>
     <meta http-equiv="content-type" content="text/html; charset=utf-8">
     <link rel="stylesheet" type="text/css" href="audits.css">
+    <link rel="stylesheet" type="text/css" href="textEditor.css">
     <link rel="stylesheet" type="text/css" href="inspector.css">
     <link rel="stylesheet" type="text/css" href="inspectorSyntaxHighlight.css">
     <script type="text/javascript" src="utilities.js"></script>
diff --git a/WebCore/inspector/front-end/textEditor.css b/WebCore/inspector/front-end/textEditor.css
new file mode 100644
index 0000000..e060a80
--- /dev/null
+++ b/WebCore/inspector/front-end/textEditor.css
@@ -0,0 +1,40 @@
+.webkit-html-message-bubble {
+    -webkit-box-shadow: black 0px 2px 5px;
+    -webkit-border-radius: 9px;
+    -webkit-border-fit: lines;
+    font-size: 10px;
+    font-family: Lucida Grande, sans-serif;
+    font-weight: bold;
+    margin: 6px 25px;
+    padding: 0 7px 1px;
+    z-index:20;
+}
+
+.webkit-html-warning-message {
+    background-color: rgb(100%, 62%, 42%);
+    border: 2px solid rgb(100%, 52%, 21%);
+}
+
+.webkit-html-error-message {
+    background-color: rgb(100%, 42%, 42%);
+    border: 2px solid rgb(100%, 31%, 31%);
+}
+
+.webkit-html-message-line {
+    padding-left: 23px;
+    text-indent: -20px;
+}
+
+.webkit-html-message-line-hover {
+    padding-left: 23px;
+    text-indent: -20px;
+    white-space: auto;
+    text-overflow: auto;
+    overflow: auto;
+}
+
+.webkit-html-message-icon {
+    position: relative;
+    top: 2px;
+    margin: 0 4px;
+}

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list