From a3bdc3242ffc675db5320eb1e3ca5bd92d020158 Mon Sep 17 00:00:00 2001 From: Rick Byers Date: Thu, 7 Apr 2016 17:25:03 -0400 Subject: [PATCH 1/3] Make all event listeners passive where supported See [the passive event listener explainer](https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md). In practice we believe changing just this one script will have a measurable scroll performance improvement on the web. --- src/tracker/engaged_time.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/tracker/engaged_time.js b/src/tracker/engaged_time.js index ab60971..10dc977 100644 --- a/src/tracker/engaged_time.js +++ b/src/tracker/engaged_time.js @@ -85,9 +85,17 @@ limitations under the License. root.focused = false; }); + var supportsPassive = false; + try { + addEventListener("test", null, { get capture() { supportsPassive = true; } }); + } catch(e) {} + var optionsOrCapture = false; + if (supportsPassive) + optionsOrCapture = {passive:true, capture:false} + var _buildListener = function(event_name, callback) { if (window.addEventListener) { - window.addEventListener(event_name, callback, false); + window.addEventListener(event_name, callback, optionsOrCapture); } else { document.attachEvent("on" + event_name, callback); } From 7464608a06a9ff4df5e4c99043814b2d39326c72 Mon Sep 17 00:00:00 2001 From: Rick Byers Date: Thu, 7 Apr 2016 19:26:38 -0400 Subject: [PATCH 2/3] Update engaged_time.js --- src/tracker/engaged_time.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tracker/engaged_time.js b/src/tracker/engaged_time.js index 10dc977..8edd50a 100644 --- a/src/tracker/engaged_time.js +++ b/src/tracker/engaged_time.js @@ -87,7 +87,7 @@ limitations under the License. var supportsPassive = false; try { - addEventListener("test", null, { get capture() { supportsPassive = true; } }); + addEventListener("test", null, { get passive() { supportsPassive = true; } }); } catch(e) {} var optionsOrCapture = false; if (supportsPassive) From 3820123e17a630383ad1847d6c578c60a62ff311 Mon Sep 17 00:00:00 2001 From: Rick Byers Date: Fri, 8 Apr 2016 12:14:14 -0400 Subject: [PATCH 3/3] Update engaged_time.js --- src/tracker/engaged_time.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/tracker/engaged_time.js b/src/tracker/engaged_time.js index 8edd50a..1da622b 100644 --- a/src/tracker/engaged_time.js +++ b/src/tracker/engaged_time.js @@ -87,7 +87,9 @@ limitations under the License. var supportsPassive = false; try { - addEventListener("test", null, { get passive() { supportsPassive = true; } }); + addEventListener("test", null, Object.defineProperty({}, 'passive', {get: function () { + supportsPassive = true; + }})); } catch(e) {} var optionsOrCapture = false; if (supportsPassive)