From ec96bb8aec55959c44558859b0f50f514b3e70e3 Mon Sep 17 00:00:00 2001 From: Christoph Reiter <reiter.christoph@gmail.com> Date: Tue, 24 Nov 2020 12:49:52 +0100 Subject: [PATCH] Add a browser check for AbortController It's nice to have to aborting requests and adding timeouts to them. This is in theory supported in all browsers covered by other checks, but Safari 11.x had a broken implementation. Fixes #38 --- packages/common/misc/browser-check.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/common/misc/browser-check.js b/packages/common/misc/browser-check.js index 171e1044..8bd4abc1 100644 --- a/packages/common/misc/browser-check.js +++ b/packages/common/misc/browser-check.js @@ -74,6 +74,13 @@ function supportsEval() { return true; } +// https://caniuse.com/abortcontroller +function supportsAbortController() { + // AbortController in older Safari is broken, so check for the signal property + // as well. + return (!!window.AbortController && Request.prototype.hasOwnProperty('signal')); +} + function isBrowserSupported() { if (!supportsEval()) { console.log("Eval support disabled, skipping browser feature detection."); @@ -110,6 +117,11 @@ function isBrowserSupported() { return false; } + if (!supportsAbortController()) { + console.log("AbortController not supported"); + return false; + } + return true; } -- GitLab