[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

eric at webkit.org eric at webkit.org
Thu Apr 8 01:02:53 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 661b03601496c62528af4e64a9c986354b3687ee
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Jan 12 23:34:20 2010 +0000

    2010-01-12  Alexander Pavlov  <apavlov at chromium.org>
    
            Reviewed by Timothy Hatcher.
    
            Optimize WebInspector.TimelineGrid.prototype.updateDividers()
    
            DOM element property access and modification are slow and should be done as lazily as possible.
            https://bugs.webkit.org/show_bug.cgi?id=33536
    
            * inspector/front-end/TimelineGrid.js:
            (WebInspector.TimelineGrid.prototype.updateDividers):
            (WebInspector.TimelineGrid.prototype._setDividerAndBarLeft):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53167 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 977371c..8ca60ef 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,16 @@
+2010-01-12  Alexander Pavlov  <apavlov at chromium.org>
+
+        Reviewed by Timothy Hatcher.
+
+        Optimize WebInspector.TimelineGrid.prototype.updateDividers()
+
+        DOM element property access and modification are slow and should be done as lazily as possible.
+        https://bugs.webkit.org/show_bug.cgi?id=33536
+
+        * inspector/front-end/TimelineGrid.js:
+        (WebInspector.TimelineGrid.prototype.updateDividers):
+        (WebInspector.TimelineGrid.prototype._setDividerAndBarLeft):
+
 2010-01-12  Beth Dakin  <bdakin at apple.com>
 
         Reviewed by Sam Weinig.
diff --git a/WebCore/inspector/front-end/TimelineGrid.js b/WebCore/inspector/front-end/TimelineGrid.js
index 2866ecd..db9cc1e 100644
--- a/WebCore/inspector/front-end/TimelineGrid.js
+++ b/WebCore/inspector/front-end/TimelineGrid.js
@@ -62,7 +62,7 @@ WebInspector.TimelineGrid.prototype = {
         if (!force && this._currentDividerSlice === slice)
             return false;
 
-        if (!(typeof paddingLeft === "number"))
+        if (typeof paddingLeft !== "number")
             paddingLeft = 0;
         this._currentDividerSlice = slice;
 
@@ -71,7 +71,8 @@ WebInspector.TimelineGrid.prototype = {
         var divider = this._dividersElement.firstChild;
         var dividerLabelBar = this._dividersLabelBarElement.firstChild;
 
-        var clientWidth = this._dividersLabelBarElement.clientWidth - paddingLeft;
+        var dividersLabelBarElementClientWidth = this._dividersLabelBarElement.clientWidth;
+        var clientWidth = dividersLabelBarElementClientWidth - paddingLeft;
         for (var i = paddingLeft ? 0 : 1; i <= dividerCount; ++i) {
             if (!divider) {
                 divider = document.createElement("div");
@@ -85,6 +86,7 @@ WebInspector.TimelineGrid.prototype = {
                 dividerLabelBar._labelElement = label;
                 dividerLabelBar.appendChild(label);
                 this._dividersLabelBarElement.appendChild(dividerLabelBar);
+                dividersLabelBarElementClientWidth = this._dividersLabelBarElement.clientWidth;
             }
 
             if (i === dividerCount)
@@ -93,9 +95,8 @@ WebInspector.TimelineGrid.prototype = {
                 divider.removeStyleClass("last");
 
             var left = paddingLeft + clientWidth * (i / dividerCount);
-            var percentLeft = 100 * left / this._dividersLabelBarElement.clientWidth + "%";
-            divider.style.left = percentLeft;
-            dividerLabelBar.style.left = percentLeft;
+            var percentLeft = 100 * left / dividersLabelBarElementClientWidth;
+            this._setDividerAndBarLeft(divider, dividerLabelBar, percentLeft);
 
             if (!isNaN(slice))
                 dividerLabelBar._labelElement.textContent = calculator.formatValue(slice * i);
@@ -118,6 +119,15 @@ WebInspector.TimelineGrid.prototype = {
         return true;
     },
 
+    _setDividerAndBarLeft: function(divider, dividerLabelBar, percentLeft)
+    {
+        var percentStyleLeft = parseFloat(divider.style.left);
+        if (!isNaN(percentStyleLeft) && Math.abs(percentStyleLeft - percentLeft) < 0.1)
+            return;
+        divider.style.left = percentLeft + "%";
+        dividerLabelBar.style.left = percentLeft + "%";
+    },
+
     addEventDivider: function(divider)
     {
         this._eventDividersElement.appendChild(divider);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list