Modified: trunk/Source/WebCore/ChangeLog (139739 => 139740)
--- trunk/Source/WebCore/ChangeLog 2013-01-15 15:42:55 UTC (rev 139739)
+++ trunk/Source/WebCore/ChangeLog 2013-01-15 15:50:11 UTC (rev 139740)
@@ -1,3 +1,19 @@
+2013-01-15 Andrey Lushnikov <lushni...@chromium.org>
+
+ Web Inspector: refactor DefaultTextEditor's paintLine method
+ https://bugs.webkit.org/show_bug.cgi?id=106893
+
+ Reviewed by Pavel Feldman.
+
+ Move render ranges functionality out of paintLine method into separate subroutine.
+
+ No new tests: no change in behaviour.
+
+ * inspector/front-end/DefaultTextEditor.js:
+ (WebInspector.TextEditorMainPanel.prototype._renderRanges): Added.
+ (WebInspector.TextEditorMainPanel.prototype._paintLine):
+ (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
+
2013-01-15 Elliott Sprehn <espr...@gmail.com>
display:inline's hover behavior is not applied to ::before and ::after pseudo elements
Modified: trunk/Source/WebCore/inspector/front-end/DefaultTextEditor.js (139739 => 139740)
--- trunk/Source/WebCore/inspector/front-end/DefaultTextEditor.js 2013-01-15 15:42:55 UTC (rev 139739)
+++ trunk/Source/WebCore/inspector/front-end/DefaultTextEditor.js 2013-01-15 15:50:11 UTC (rev 139740)
@@ -1865,7 +1865,50 @@
/**
* @param {Element} lineRow
+ * @param {string} line
+ * @param {Array.<{startColumn: number, endColumn: number, cssClass: string}>} ranges
*/
+ _renderRanges: function(lineRow, line, ranges)
+ {
+ var decorationsElement = lineRow.decorationsElement;
+
+ if (!decorationsElement)
+ lineRow.removeChildren();
+ else {
+ while (true) {
+ var child = lineRow.firstChild;
+ if (!child || child === decorationsElement)
+ break;
+ lineRow.removeChild(child);
+ }
+ }
+
+ if (!line)
+ lineRow.insertBefore(document.createElement("br"), decorationsElement);
+
+ var plainTextStart = 0;
+ for(var i = 0; i < ranges.length; i++) {
+ var rangeStart = ranges[i].startColumn;
+ var rangeEnd = ranges[i].endColumn;
+ var cssClass = ranges[i].token ? "webkit-" + ranges[i].token : "";
+
+ if (plainTextStart < rangeStart) {
+ this._insertTextNodeBefore(lineRow, decorationsElement, line.substring(plainTextStart, rangeStart));
+ --this._paintLinesOperationsCredit;
+ }
+ this._insertSpanBefore(lineRow, decorationsElement, line.substring(rangeStart, rangeEnd + 1), cssClass);
+ --this._paintLinesOperationsCredit;
+ plainTextStart = rangeEnd + 1;
+ }
+ if (plainTextStart < line.length) {
+ this._insertTextNodeBefore(lineRow, decorationsElement, line.substring(plainTextStart, line.length));
+ --this._paintLinesOperationsCredit;
+ }
+ },
+
+ /**
+ * @param {Element} lineRow
+ */
_paintLine: function(lineRow)
{
var lineNumber = lineRow.lineNumber;
@@ -1881,42 +1924,9 @@
if (!highlight)
return;
- var decorationsElement = lineRow.decorationsElement;
- if (!decorationsElement)
- lineRow.removeChildren();
- else {
- while (true) {
- var child = lineRow.firstChild;
- if (!child || child === decorationsElement)
- break;
- lineRow.removeChild(child);
- }
- }
-
var line = this._textModel.line(lineNumber);
var ranges = this._highlighter.orderedRangesPerLine(lineNumber);
-
- if (!line)
- lineRow.insertBefore(document.createElement("br"), decorationsElement);
-
- var plainTextStart = 0;
- for(var i = 0; i < ranges.length; i++) {
- var rangeStart = ranges[i].startColumn;
- var rangeEnd = ranges[i].endColumn;
- var rangeToken = ranges[i].token;
-
- if (plainTextStart < rangeStart) {
- this._insertTextNodeBefore(lineRow, decorationsElement, line.substring(plainTextStart, rangeStart));
- --this._paintLinesOperationsCredit;
- }
- this._insertSpanBefore(lineRow, decorationsElement, line.substring(rangeStart, rangeEnd + 1), rangeToken);
- --this._paintLinesOperationsCredit;
- plainTextStart = rangeEnd + 1;
- }
- if (plainTextStart < line.length) {
- this._insertTextNodeBefore(lineRow, decorationsElement, line.substring(plainTextStart, line.length));
- --this._paintLinesOperationsCredit;
- }
+ this._renderRanges(lineRow, line, ranges);
} finally {
if (this._rangeToMark && this._rangeToMark.startLine === lineNumber)
this._markedRangeElement = WebInspector.highlightSearchResult(lineRow, this._rangeToMark.startColumn, this._rangeToMark.endColumn - this._rangeToMark.startColumn);
@@ -2123,7 +2133,7 @@
}
var span = this._cachedSpans.pop() || document.createElement("span");
- span.className = "webkit-" + className;
+ span.className = className;
if (WebInspector.FALSE) // For paint debugging.
span.addStyleClass("debug-fadeout");
span.textContent = content;