Skip to content

Commit 02a38be

Browse files
committed
Remove an outdate check for {passive: true}
According to https://caniuse.com/?search=passive, all browsers released after 2016 do support passive event listeners, so no need to check for its presence.
1 parent 79ec6ef commit 02a38be

File tree

2 files changed

+12
-31
lines changed

2 files changed

+12
-31
lines changed

internal/ui/static/js/dom_helper.js

-19
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,4 @@ class DomHelper {
2525
const elements = document.querySelectorAll(selector);
2626
return [...elements].filter((element) => this.isVisible(element));
2727
}
28-
29-
static hasPassiveEventListenerOption() {
30-
var passiveSupported = false;
31-
32-
try {
33-
var options = Object.defineProperty({}, "passive", {
34-
get: function() {
35-
passiveSupported = true;
36-
}
37-
});
38-
39-
window.addEventListener("test", options, options);
40-
window.removeEventListener("test", options, options);
41-
} catch(err) {
42-
passiveSupported = false;
43-
}
44-
45-
return passiveSupported;
46-
}
4728
}

internal/ui/static/js/touch_handler.js

+12-12
Original file line numberDiff line numberDiff line change
@@ -158,26 +158,26 @@ class TouchHandler {
158158
}
159159

160160
listen() {
161-
const hasPassiveOption = DomHelper.hasPassiveEventListenerOption();
161+
const p = { passive: true };
162162

163163
document.querySelectorAll(".entry-swipe").forEach((element) => {
164-
element.addEventListener("touchstart", (e) => this.onItemTouchStart(e), hasPassiveOption ? { passive: true } : false);
165-
element.addEventListener("touchmove", (e) => this.onItemTouchMove(e), hasPassiveOption ? { passive: false } : false);
166-
element.addEventListener("touchend", (e) => this.onItemTouchEnd(e), hasPassiveOption ? { passive: true } : false);
167-
element.addEventListener("touchcancel", () => this.reset(), hasPassiveOption ? { passive: true } : false);
164+
element.addEventListener("touchstart", (e) => this.onItemTouchStart(e), p);
165+
element.addEventListener("touchmove", (e) => this.onItemTouchMove(e));
166+
element.addEventListener("touchend", (e) => this.onItemTouchEnd(e), p);
167+
element.addEventListener("touchcancel", () => this.reset(), p);
168168
});
169169

170170
const element = document.querySelector(".entry-content");
171171
if (element) {
172172
if (element.classList.contains("gesture-nav-tap")) {
173-
element.addEventListener("touchend", (e) => this.onTapEnd(e), hasPassiveOption ? { passive: true } : false);
174-
element.addEventListener("touchmove", () => this.reset(), hasPassiveOption ? { passive: true } : false);
175-
element.addEventListener("touchcancel", () => this.reset(), hasPassiveOption ? { passive: true } : false);
173+
element.addEventListener("touchend", (e) => this.onTapEnd(e), p);
174+
element.addEventListener("touchmove", () => this.reset(), p);
175+
element.addEventListener("touchcancel", () => this.reset(), p);
176176
} else if (element.classList.contains("gesture-nav-swipe")) {
177-
element.addEventListener("touchstart", (e) => this.onContentTouchStart(e), hasPassiveOption ? { passive: true } : false);
178-
element.addEventListener("touchmove", (e) => this.onContentTouchMove(e), hasPassiveOption ? { passive: true } : false);
179-
element.addEventListener("touchend", (e) => this.onContentTouchEnd(e), hasPassiveOption ? { passive: true } : false);
180-
element.addEventListener("touchcancel", () => this.reset(), hasPassiveOption ? { passive: true } : false);
177+
element.addEventListener("touchstart", (e) => this.onContentTouchStart(e), p);
178+
element.addEventListener("touchmove", (e) => this.onContentTouchMove(e), p);
179+
element.addEventListener("touchend", (e) => this.onContentTouchEnd(e), p);
180+
element.addEventListener("touchcancel", () => this.reset(), p);
181181
}
182182
}
183183
}

0 commit comments

Comments
 (0)