From f089d166bc7de54674d72451a8b7783d1fda8b99 Mon Sep 17 00:00:00 2001 From: petosorus Date: Tue, 1 Oct 2019 23:28:35 +0200 Subject: [PATCH 1/2] XMLHttpRequest.responseXML returns null when a network error occurs --- components/script/dom/xmlhttprequest.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index df2d0ed47c1..51a10298cda 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -1292,12 +1292,17 @@ impl XMLHttpRequest { // https://xhr.spec.whatwg.org/#document-response fn document_response(&self) -> Option> { - // Step 1 + // Caching: if we have existing response xml, redirect it directly let response = self.response_xml.get(); if response.is_some() { return self.response_xml.get(); } + // Step 1 + if self.response_status.get().is_err() { + return None; + } + let mime_type = self.final_mime_type(); // TODO: prescan the response to determine encoding if final charset is null let charset = self.final_charset().unwrap_or(UTF_8); From bb26527e9826cf648323c8aee748e19121a758be Mon Sep 17 00:00:00 2001 From: Thomas Graviou Date: Wed, 2 Oct 2019 10:22:52 +0200 Subject: [PATCH 2/2] remove unneeded fail expectations --- .../metadata/xhr/abort-after-send.any.js.ini | 6 ------ .../xhr/send-redirect-to-cors.htm.ini | 21 ------------------- .../xmlhttprequest-network-error-sync.htm.ini | 5 ----- .../xhr/xmlhttprequest-network-error.htm.ini | 5 ----- 4 files changed, 37 deletions(-) delete mode 100644 tests/wpt/metadata/xhr/abort-after-send.any.js.ini delete mode 100644 tests/wpt/metadata/xhr/xmlhttprequest-network-error-sync.htm.ini delete mode 100644 tests/wpt/metadata/xhr/xmlhttprequest-network-error.htm.ini diff --git a/tests/wpt/metadata/xhr/abort-after-send.any.js.ini b/tests/wpt/metadata/xhr/abort-after-send.any.js.ini deleted file mode 100644 index c4fd610ae29..00000000000 --- a/tests/wpt/metadata/xhr/abort-after-send.any.js.ini +++ /dev/null @@ -1,6 +0,0 @@ -[abort-after-send.any.html] - [XMLHttpRequest: abort() after send()] - expected: FAIL - - -[abort-after-send.any.worker.html] diff --git a/tests/wpt/metadata/xhr/send-redirect-to-cors.htm.ini b/tests/wpt/metadata/xhr/send-redirect-to-cors.htm.ini index e39165bccfa..d978e878a65 100644 --- a/tests/wpt/metadata/xhr/send-redirect-to-cors.htm.ini +++ b/tests/wpt/metadata/xhr/send-redirect-to-cors.htm.ini @@ -6,27 +6,6 @@ [XMLHttpRequest: send() - Redirect to CORS-enabled resource (307 post with typed array)] expected: FAIL - [XMLHttpRequest: send() - Redirect to CORS-enabled resource (301 GET with explicit Content-Type)] - expected: FAIL - - [XMLHttpRequest: send() - Redirect to CORS-enabled resource (301 POST with string and explicit Content-Type)] - expected: FAIL - - [XMLHttpRequest: send() - Redirect to CORS-enabled resource (302 POST with string and explicit Content-Type)] - expected: FAIL - - [XMLHttpRequest: send() - Redirect to CORS-enabled resource (307 POST with string and explicit Content-Type)] - expected: FAIL - - [XMLHttpRequest: send() - Redirect to CORS-enabled resource (307 FOO with string and explicit Content-Type)] - expected: FAIL - - [XMLHttpRequest: send() - Redirect to CORS-enabled resource (308 POST with string and explicit Content-Type)] - expected: FAIL - - [XMLHttpRequest: send() - Redirect to CORS-enabled resource (308 FOO with string and explicit Content-Type)] - expected: FAIL - [XMLHttpRequest: send() - Redirect to CORS-enabled resource (308 FOO with string and explicit Content-Type text/plain)] expected: FAIL diff --git a/tests/wpt/metadata/xhr/xmlhttprequest-network-error-sync.htm.ini b/tests/wpt/metadata/xhr/xmlhttprequest-network-error-sync.htm.ini deleted file mode 100644 index 8115118f405..00000000000 --- a/tests/wpt/metadata/xhr/xmlhttprequest-network-error-sync.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[xmlhttprequest-network-error-sync.htm] - type: testharness - [XMLHttpRequest: members during network errors (sync)] - expected: FAIL - diff --git a/tests/wpt/metadata/xhr/xmlhttprequest-network-error.htm.ini b/tests/wpt/metadata/xhr/xmlhttprequest-network-error.htm.ini deleted file mode 100644 index b1eacace2f8..00000000000 --- a/tests/wpt/metadata/xhr/xmlhttprequest-network-error.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[xmlhttprequest-network-error.htm] - type: testharness - [XMLHttpRequest: members during network errors] - expected: FAIL -