From 6e951163fa2da3a41a03dc3924f5ab3cd5f6935e Mon Sep 17 00:00:00 2001 From: Maksim Chemerisiuk Date: Thu, 4 Mar 2021 12:33:40 +0300 Subject: [PATCH 1/3] Use prefix for custom event names --- src/js/utils/events.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/utils/events.js b/src/js/utils/events.js index 287129f1d..53a27c0be 100644 --- a/src/js/utils/events.js +++ b/src/js/utils/events.js @@ -88,7 +88,7 @@ export function triggerEvent(element, type = '', bubbles = false, detail = {}) { } // Create and dispatch the event - const event = new CustomEvent(type, { + const event = new CustomEvent('plyr:' + type, { bubbles, detail: { ...detail, plyr: this }, }); From ddf8332b0ebbd6b458c62eb75d2088eeed8eeeca Mon Sep 17 00:00:00 2001 From: Maksim Chemerisiuk Date: Tue, 30 Mar 2021 13:52:26 +0300 Subject: [PATCH 2/3] Fix error handling in fetch wrapper --- src/js/utils/fetch.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/utils/fetch.js b/src/js/utils/fetch.js index ef695193a..d3c9f3768 100644 --- a/src/js/utils/fetch.js +++ b/src/js/utils/fetch.js @@ -26,7 +26,7 @@ export default function fetch(url, responseType = 'text') { }); request.addEventListener('error', () => { - throw new Error(request.status); + reject(new Error(request.status)); }); request.open('GET', url, true); From 383c550566da45d03fc0184282ae12d0a6f6a570 Mon Sep 17 00:00:00 2001 From: Maksim Chemerisiuk Date: Fri, 21 May 2021 10:49:34 +0300 Subject: [PATCH 3/3] Drop custom event prefix, make error event not to bubble --- src/js/utils/events.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/js/utils/events.js b/src/js/utils/events.js index 53a27c0be..95d7e1f6f 100644 --- a/src/js/utils/events.js +++ b/src/js/utils/events.js @@ -86,9 +86,14 @@ export function triggerEvent(element, type = '', bubbles = false, detail = {}) { if (!is.element(element) || is.empty(type)) { return; } + // error event should not bubble and break error tracking tools + // https://developer.mozilla.org/en-US/docs/Web/API/Element/error_event + if (type === 'error') { + bubbles = false; + } // Create and dispatch the event - const event = new CustomEvent('plyr:' + type, { + const event = new CustomEvent(type, { bubbles, detail: { ...detail, plyr: this }, });