From 9b96b146321b9f6cf2391225e3b936e4a68ca5a8 Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Tue, 8 May 2018 19:30:48 +0200 Subject: [PATCH] XHR: reduce try/catch usage This also improves checking for the correct exception by a bit. --- xhr/access-control-basic-denied.htm | 8 ++------ xhr/access-control-basic-get-fail-non-simple.htm | 9 ++------- ...rol-basic-non-cors-safelisted-content-type.htm | 9 ++------- ...post-with-non-cors-safelisted-content-type.htm | 9 ++------- ...ccess-control-preflight-sync-header-denied.htm | 15 +++++---------- ...ccess-control-preflight-sync-method-denied.htm | 15 +++++---------- ...ccess-control-preflight-sync-not-supported.htm | 15 +++++---------- 7 files changed, 23 insertions(+), 57 deletions(-) diff --git a/xhr/access-control-basic-denied.htm b/xhr/access-control-basic-denied.htm index 3bcd2517245f5d..535762d0edafe1 100644 --- a/xhr/access-control-basic-denied.htm +++ b/xhr/access-control-basic-denied.htm @@ -22,12 +22,8 @@ const xhr = new XMLHttpRequest; xhr.open("GET", get_host_info().HTTP_REMOTE_ORIGIN + path, false); - try { - xhr.send(); - assert_unreached("Error should occur here"); - } catch(e) { - assert_equals(xhr.status, 0); - } + assert_throws("NetworkError", () => xhr.send()); + assert_equals(xhr.status, 0); }, "Cross-origin request denied"); diff --git a/xhr/access-control-basic-get-fail-non-simple.htm b/xhr/access-control-basic-get-fail-non-simple.htm index 38f7a34d5a42ef..a4fe23460d12d7 100644 --- a/xhr/access-control-basic-get-fail-non-simple.htm +++ b/xhr/access-control-basic-get-fail-non-simple.htm @@ -18,13 +18,8 @@ xhr.setRequestHeader("x-test", "foobar"); // This fails because the server-side script is not prepared for an OPTIONS request - try { - xhr.send(); - } catch(e) { - assert_equals(xhr.status, 0); - return; - } - assert_unreached("Preflighted request was not denied."); + assert_throws("NetworkError", () => xhr.send()); + assert_equals(xhr.status, 0); }, "Preflighted cross-origin request denied"); diff --git a/xhr/access-control-basic-non-cors-safelisted-content-type.htm b/xhr/access-control-basic-non-cors-safelisted-content-type.htm index b1cf9c8ac076d9..062f8b0bb5b466 100644 --- a/xhr/access-control-basic-non-cors-safelisted-content-type.htm +++ b/xhr/access-control-basic-non-cors-safelisted-content-type.htm @@ -22,13 +22,8 @@ "/xhr/resources/access-control-basic-put-allow.py", false); xhr.setRequestHeader("Content-Type", "application/xml"); - try { - xhr.send("FAIL: PUT data received"); - } catch(e) { - assert_equals(xhr.status, 0, "Cross-domain access was denied in 'send'."); - return; - } - assert_unreached("Cross-domain access was not denied in 'send'."); + assert_throws("NetworkError", () => xhr.send("FAIL: PUT data received")); + assert_equals(xhr.status, 0, "Cross-domain access was denied in 'send'."); }, "Deny cross-origin request with non-CORS-safelisted content type"); diff --git a/xhr/access-control-basic-post-with-non-cors-safelisted-content-type.htm b/xhr/access-control-basic-post-with-non-cors-safelisted-content-type.htm index 9b3bc54af21f38..0a6df932aa44e6 100644 --- a/xhr/access-control-basic-post-with-non-cors-safelisted-content-type.htm +++ b/xhr/access-control-basic-post-with-non-cors-safelisted-content-type.htm @@ -29,13 +29,8 @@ xhr.setRequestHeader("Content-Type", "application/xml"); - try { - xhr.send(); - } catch(e) { - assert_equals(xhr.status, 0, "Cross-domain access was denied in 'send'."); - return; - } - assert_unreached("Cross-domain access was not denied in 'send'."); + assert_throws("NetworkError", () => xhr.send()); + assert_equals(xhr.status, 0, "Cross-domain access was denied in 'send'."); }, "CORS request with non-safelisted content type sends preflight and fails"); diff --git a/xhr/access-control-preflight-sync-header-denied.htm b/xhr/access-control-preflight-sync-header-denied.htm index f400985b6beb8b..7948c18a2efcc6 100644 --- a/xhr/access-control-preflight-sync-header-denied.htm +++ b/xhr/access-control-preflight-sync-header-denied.htm @@ -22,17 +22,12 @@ xhr.open("GET", url + "&command=header", false); xhr.setRequestHeader("x-test", "foo"); - try { - xhr.send(); - } catch(e) { - xhr = new XMLHttpRequest; - xhr.open("GET", url + "&command=complete", false); - xhr.send(); - assert_equals(xhr.responseText, "Request successfully blocked."); - return; - } + assert_throws("NetworkError", () => xhr.send()); - assert_unreached("Cross-domain access with custom header allowed without throwing exception"); + xhr = new XMLHttpRequest; + xhr.open("GET", url + "&command=complete", false); + xhr.send(); + assert_equals(xhr.responseText, "Request successfully blocked."); }, "Sync request denied at preflight"); diff --git a/xhr/access-control-preflight-sync-method-denied.htm b/xhr/access-control-preflight-sync-method-denied.htm index 021f9e37d6eede..a54c308d9f1190 100644 --- a/xhr/access-control-preflight-sync-method-denied.htm +++ b/xhr/access-control-preflight-sync-method-denied.htm @@ -21,17 +21,12 @@ xhr = new XMLHttpRequest; xhr.open("DELETE", url + "&command=method", false); - try { - xhr.send(); - } catch(e) { - xhr = new XMLHttpRequest; - xhr.open("GET", url + "&command=complete", false); - xhr.send(); - assert_equals(xhr.responseText, "Request successfully blocked."); - return; - } + assert_throws("NetworkError", () => xhr.send()); - assert_unreached("Cross-domain access with non-CORS-safelisted method allowed without throwing exception"); + xhr = new XMLHttpRequest; + xhr.open("GET", url + "&command=complete", false); + xhr.send(); + assert_equals(xhr.responseText, "Request successfully blocked."); }); diff --git a/xhr/access-control-preflight-sync-not-supported.htm b/xhr/access-control-preflight-sync-not-supported.htm index c5ff94bc8f6d5c..bb08296304f9ef 100644 --- a/xhr/access-control-preflight-sync-not-supported.htm +++ b/xhr/access-control-preflight-sync-not-supported.htm @@ -21,17 +21,12 @@ xhr = new XMLHttpRequest; xhr.open("PUT", url, false); - try { - xhr.send(""); - } catch(e) { - xhr = new XMLHttpRequest; - xhr.open("GET", url + "&command=complete", false); - xhr.send(); - assert_equals(xhr.responseText, "Request successfully blocked."); - return; - } + assert_throws("NetworkError", () => xhr.send("")); - assert_unreached("Cross-domain access allowed without throwing exception"); + xhr = new XMLHttpRequest; + xhr.open("GET", url + "&command=complete", false); + xhr.send(); + assert_equals(xhr.responseText, "Request successfully blocked."); });