From df5417c942a475e8d3d3f38e28a32bcffd4b2ea1 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 7 Sep 2026 21:23:41 +0000 Subject: [PATCH] docs: describe both detection paths for the IE11 upload workaround The previous wording claimed affected browsers are detected by checking whether xhr.upload is usable "not by sniffing the user agent", but Edge and the PlayStation 4 browser are still matched by user agent regex. Both mechanisms exist and for different reasons: feature detection only sees a missing xhr.upload object, while those two expose the object and simply never fire its events. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01S1bUKsok59shM69PwLMMRM --- doc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc.md b/doc.md index 42f9ac6..ddd1a73 100755 --- a/doc.md +++ b/doc.md @@ -732,7 +732,7 @@ To keep track of the amount of transferred data, the XHR Level 2 `upload.onprogr This test has a couple of complications: -* Some browsers don't have a working `upload.onprogress` event. For this, we use a small blobs instead of a large one and we keep track of progress using the `onload` event. This is referred to as IE11 Workaround (the same bug was also found in some versions of Edge and in the PlayStation 4 browser). Affected browsers are detected by checking whether `xhr.upload` is usable, not by sniffing the user agent. Safari is __not__ affected and uses the regular, more accurate upload test +* Some browsers don't have a working `upload.onprogress` event. For this, we use a small blobs instead of a large one and we keep track of progress using the `onload` event. This is referred to as IE11 Workaround. Browsers that expose no usable `xhr.upload` object, such as IE11, select it automatically through feature detection. Some versions of Edge and the PlayStation 4 browser do have an `xhr.upload` object whose events never fire, which feature detection cannot see, so those two are still matched by user agent. Safari is __not__ affected and uses the regular, more accurate upload test * When `mpot` is set to `true`, an empty request must first be sent in order to load the CORS headers before the test can start See the code for more implementation details.