WebKitPerfMonitor: Tooltips cannot be pinned after using browser's back button
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Apr 2014 16:36:18 +0000 (16:36 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Apr 2014 16:36:18 +0000 (16:36 +0000)
https://bugs.webkit.org/show_bug.cgi?id=131155

Reviewed by Andreas Kling.

The bug was caused by Chart.attach binding event listeners on plot container on each call.
This resulted in the click event handler toggling the visiblity of the tooltip twice upon
click when attach() has been called even number of times, keeping the tooltip invisible.

Fixed the bug by extracting the code to bind event listeners outside of Chart.attach as
a separate function, bindPlotEventHandlers, and calling it exactly once when Chart.attach
is called for the first time.

* public/index.html:
(Chart.attach):
(Chart..bindPlotEventHandlers):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@166723 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Websites/perf.webkit.org/ChangeLog
Websites/perf.webkit.org/public/index.html

index f4d3bdfc71319930719545a80f74aa82946305c8..b4b2cb0a8d3ec230d4d5fa7e5276ec8235562fa3 100644 (file)
@@ -1,3 +1,22 @@
+2014-04-03  Ryosuke Niwa  <rniwa@webkit.org>
+
+        WebKitPerfMonitor: Tooltips cannot be pinned after using browser's back button
+        https://bugs.webkit.org/show_bug.cgi?id=131155
+
+        Reviewed by Andreas Kling.
+
+        The bug was caused by Chart.attach binding event listeners on plot container on each call.
+        This resulted in the click event handler toggling the visiblity of the tooltip twice upon
+        click when attach() has been called even number of times, keeping the tooltip invisible.
+
+        Fixed the bug by extracting the code to bind event listeners outside of Chart.attach as
+        a separate function, bindPlotEventHandlers, and calling it exactly once when Chart.attach
+        is called for the first time.
+
+        * public/index.html:
+        (Chart.attach):
+        (Chart..bindPlotEventHandlers):
+
 2014-04-03  Ryosuke Niwa  <rniwa@webkit.org>
 
         WebKitPerfMonitor: Tooltips can be cut off at the top
index f758dcbdc41492e44c799a793d241001566a0606..ea4be80ff40fa1edb8600be63c07b86cb2b3f3f9 100644 (file)
@@ -739,12 +739,16 @@ td, th {
             else
                 this.attachMainPlot(minTime);
 
-            var self = this;
+            if (bindPlotEventHandlers)
+                bindPlotEventHandlers(this);
+            bindPlotEventHandlers = null;
+        };
 
+        function bindPlotEventHandlers(chart) {
             // FIXME: Crosshair should stay where it was between charts.
             $(plotContainer).bind("plothover", function (event, pos, item) {
                 for (var i = 0; i < charts.length; i++) {
-                    if (charts[i] !== self) {
+                    if (charts[i] !== chart) {
                         charts[i].setCrosshair(pos);
                         charts[i].hideTooltip();
                     }
@@ -782,8 +786,8 @@ td, th {
                         toggleClickTooltip(tooltip.currentItem.dataIndex, tooltip.currentItem.pageX, tooltip.currentItem.pageY);
                 });
             }
-        };
-        
+        }
+
         charts.push(this);
     }