From 3f0a7fe49cb602adf5d121950b24baff3024e557 Mon Sep 17 00:00:00 2001 From: Benjamin VanderSloot Date: Mon, 26 Aug 2024 18:52:45 +0000 Subject: [PATCH] Bug 1873986 - Fix dom/tests/mochitest/fetch/ when by blocking 3pc by default in TCP. r=bvandersloot,necko-reviewers,tschuster,kershaw Depends on D217979 Differential Revision: https://phabricator.services.mozilla.com/D215353 --- build/pgo/certs/cert9.db | Bin 294912 -> 294912 bytes build/pgo/certs/key4.db | Bin 360448 -> 360448 bytes build/pgo/certs/mochitest.client | Bin 2614 -> 2614 bytes build/pgo/server-locations.txt | 2 + dom/tests/mochitest/fetch/mochitest.toml | 3 + dom/tests/mochitest/fetch/test_fetch_cors.js | 214 ++++++++++--------- 6 files changed, 122 insertions(+), 97 deletions(-) diff --git a/build/pgo/certs/cert9.db b/build/pgo/certs/cert9.db index 8fe2affe478e7e1d2f0f01051ca53875ea10945e..365b6c6530ec8ab1c19104521054bcdcb62c8801 100644 GIT binary patch delta 1850 zcmZvdYfuwc6vwl&0m2@&Fj*1}F(OMnkRgnS;6a@s9C?G0Y zie;77PzDeI0Tt>kRYO%A)GE*_6e_k-m}#N)!5|`1$DX~}e)Gdle)s(M?A`1+_kUQ{ zl4UK=y?MiUwlcOkxzf#Cd!P}*jC48vEr7z3wTb=|yk!-O1yg6zs+;<_n1cplNxTE42NzZE2%xm5 z(0f*CCxGK@3fY25FcLr~qo8AJr2?FmP~a{fzyjFHBTwcKCu5Pz!fegbpxMja-`lXnYBA%7=O_Ajdq#Ss&E;IGRLJqForCRw zFa)8bhTEq&xE+={a{UCV1O-ZK zP<}tfD^H3dNP`ZQg90VyR#l;Ko}$U}YSa%ws4}-@7k1&6)uB#)8Bb*Os1soc6x;Bi zM;DMax3vki@-Zc`X+|ZG2$eVdm4_{SV((c;a;6oTg9063NPKby5`)|L#O~?=^12P( z0U6qXyQ@c!d18sa9XUe~I)dhGOdQFy%Fmu^+NdtxJ$`H2q@m6jFVsZXh*dd(BrX z(Zlt<6m3u{uvT&&7LDB6P82Lvq{XJD`EmK3Nc}(ebfVd$yA#<YkHZh^PG6oc+f>z4ns^;CeF>iGI# z>!qhMqjyXUz5LE3#HPNcw`_fnP3esnFN7$^QgnK^Z~VpDi%U&!>PqMvW~IGeB39CI6v9@%liz3xc%-B~{3&6V7oWSsK$ z&z#hS>ahfjfH-y|D~3lk@#{g}&>mn0hL*}1fR=iEpKmD=zmL@PqB<;>fHClG!H8-^ zT=+xuh+~J4Ef@9xeTzX`NsI@PgA7Z+Eeubo80L>g!zw*V7(s*Zd~gk3N$0MPqKo`e zN3zCHASmD-h8&-#e2$JiO{SlsOQ3*@7?cH*yuw}HPi7|RK?652C>Ark0-iz!XOIVW zHs97K%F$<9?CnZBoO(1lKk4L7lN~o>hN35<)RBj`^?_?#*v8pK;%v;19C9)epJy;X zbVz6vMHo8-{Nfx$VelAEZhJh2ZxV}J_?V7V$Khdwr7(pIFHxEdvTXuxnpNQQ>sQ5Dn&60wV;$0*{-5M z3kax}5byyC+M)${T)|gSHj5DiS`{CNpw((c(X>F2Dm^nhP5-EqO!B+;%eixA&Nt_1 zwYFNVZT0v#qo`wKJJTiJ1J(f&gc*rL<=S~X*efo~9yOjnF5s0;NkhbJJSWY z?asrKgL9_|;P1vmf8-KZ0hCjD=#e)}5uo0Mhg;n~&H{K(=Ar9Awv!Rk4`ey=)E1_m zBtVn{4+e`5LhGFcWyFGAywY zV6)Par^@|>76KGVc_@q8VlKdDGagDk7fA#NW_cj5RHg!ineb51q{jlZARclwm&Gi? zW^9h8d5@OaqZJ?2B8(KGErit~S7mufbkIj1uL#u45A>hmrJP&#fV+25jcSgOaVr4HGf zU=|8Ytdg)F`Ft;G<(B2tJrk|Rn1w=I{WH<&U0H&=qAzyKP-AyPZ?LPhFxf_f?X0YvMP*4Os|9VH2M@`GvNDV) zF)rcj*sa@QxBBQL)jm45=m-)sVzHgsd!9~x^{9`LmH6mPis0UFidIdw!8()gV6m6X zFrZMfumYKpOaoGo`vzoAI}FIdBt7L}j5z3FLN11<^|(*}C1ZHm z)S9K8nQN|3+`A5`q+UmQrI}Cbc68=0579YhGLw~|OFyYlC+B3ykVs?t_KJ;FOwxuc zm7VQ(cXeNg7|)T#Ik%jUKCa6)SyOSie4DyGargF-bEPhYvO{+!OiEp({j|OzUE=V- z<4j!8=<2txI-U(lYvUJ_+8b|frcTcvZSPtAQlERb*ZbJ$nB%pTWnQNO^&Nv@2aj4+ z8v0D#ox&W7CJhy<^3ETKwTt_yb>Cyt(D)cND%YIyIq`Su*(imy_pZyWvYSsVlU=iy z)I@8BMotH$g~|-mLR0!4tiN=B|9mI$@#kdU3-p!!dp|1a)FU~mDnT+*avkl!EOZd+ z)PW{495U3e6M2Fwpom@x=|!i&X|CJ$@6N#1<@clz)9iRQFLI(e}fEVfRoy z2Caaa^&m$Uv(RRYryPF78M7>EGu`wX>Vfm2-Ehh_()E#JIp`94(-xiO^uM j1m+m`Gr!@8Qj2691g`<3jKW6=f>MlC7-&H%_QL-F)w+-c diff --git a/build/pgo/certs/key4.db b/build/pgo/certs/key4.db index c7841061c0b5687ae9cb8346ee9e9195b1cf2a00..ace3ab3d69ca7825bfa0ed234e784accde86b670 100644 GIT binary patch literal 360448 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 diff --git a/build/pgo/certs/mochitest.client b/build/pgo/certs/mochitest.client index 1025c7f56bdfcc478332ea7da8b1d8372acbb973..87dce4866c51e028b075597dad44fda6865104df 100644 GIT binary patch delta 2321 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 delta 2321 zcmV+s3GVi`6t)zQYY+uZbi#aW^;Ws1G&zdkE8~%SA%DZ8z`5TTyQ;xV8dM$_ne%{x z1CXP^3BefjM_6xs{SK_28u3~(*h8Hy=OPY=`C2vi$@iJSO`fjrk6AB*l(N);ElVokt^gnpj#ndsQ+cwn?91AJ%B9_i~6ZMZz7=c-q9TzPQ+_NYF*h_;uL3 z8BF18a-%wtVJZ`Pcxmal+XHg#;GQ&xh*Zj#;(u}x_?!;e@<(yKYaV_=Rm{%l)zV_s z6R}<;!E$~x^&!(B55P&vbn z)qkqX)T=lCbZ>+5lN6$}8)soh#4ZY)Yt9D9(M18c?W;lVArMJ%W$v+d3L+P*!fP0xY@SI(Z9S*4vmIh1@iKaG@jj$*KIhkv_umvUJ4XEx7ve<7YAe@Xo$9rRb)+?Y28 zqOXElsLJ?0{(6@_5vUxkK?3OI`yqrgrGfl|-os5E5147!3J_8{W_%52mlh&_b~A<` zfI7|wm$f}XmwYzt8Z=%{or+lX^d2CLL?#1JeYaW^tCx6_L zP*c$e-^7O|mHYHm@+a-~@#9D&0lCW8_;6aAt;)nfP-j=m;*UQ$E3rq9;_YVT{>#Y5 zALP-;!52g+<~+Kre5rmOCUC&d$-Gz zaONyho3G7Fm{1JTswARR>x-@RJR}J_cynNQd`Heg6j-N^g8o~*70G3zNm+jIGfl~-cP@hT=?$1Cnw%PI?Q`x=WDU(11R1hVz+de8+Jz4w_ z(OWC_uSb!4A%Do1(;uB)J8eS|uv@Pvi%|rE1kn9++(Nv4YiMQ#w3zTp!MsruqI)5K zB4V{tc5CDhcH6%&3s@QHvqdVHa5nO9ndIxz2NLg<)Bb_LFYQysv&dm9` z6kl6^R|-6QP?*wP)+%YMQUc6^OvA{Xl8?@y6?hNW=6?wF*Z+Sm8+ACBJ(Akc+PS5Y z+G`B_V!vZgHX3{jCtrM*uggIy9l?3*4eOu@XdA&pxm(FxTsK5)1y2J`zj`N?$oAAl z3q?b#bsUBCux<>wwnjh~4GXS*^XX&9wD-^zPZK3CLM<0%EpC*GRGj%5PAl-3>J>y& z{XvqN$Tic(-}v9tz!N|Kf`Y zJ%S1#05_JaGA6AD1OAKFvQ5WhDca%)=~1WM>VGk3_y6eBw2-ERo&FE{=>baV0S_ES zcx(Q*OXsu@{Mk88(GPqyj@j1bbw{V3RhK86DKQB12jKggx20JVw{j$Axc;Dr`W+rg z_C5PWCL-9$!^?+^fppN4n?c$N1DOpw2$SZXF=B{gosWbCpZ)x7(d#9%!?Rek;nRuF ze}A$c>5R@5xY=8Y{p+O1v`fd&phAkK*rKKlI$xm7y zTnC-!s(ZrDiggq+AT5)nIqR{N&TO)&B7YSYrF>a#3S92-G2Qd*6>r$Jl1`U^KWZbW z|CE%S$v22O;?dW>dd@Muz+%TEf?3x+F>{ku8$nde2Fae1VY9XEuZ8NbI!g-v15b?{ z9uYF074go*m`~Xgehyuf1IV=q{WyTDtznHS12975jh3euzDx?Y#S~7uz%PCf8h;^= z;AVu)pM3B8PT&bzovOt%aFsHGSxOCz{zX%3jDrrwG_6qH-hb%f=E*$GA^ADH22!#Z zMm&09|2@P;i(uVi%}xq7d}Ga3Jc-0S)*aWd@N5n!7JY}G&dccTqwIK>^6zmA#t3M! z9M%pFAvQ@i+Fd4#wJ*VG_k~NtUjujtP{YGwHciWrjZj(n~6tbqO z7niH&pW^>5+|P{4FGEcvmG`J@DL{7k;Uy1TedPs;Uy_|}Wk@CEpoQJN}+CWJHJ8p>s=0v@OI2HHgeHU&hI zpb4nr7d*Nbc+)ulz%%qiA@bFi9It+AEC4w&6xBldmW@`$AmJgOhlv1OpCPPR-J~P> z^cf-%c<0qTq+yGP|I#7yoAt;uj=1VENH8G=2`Yw2hW8Bt2^29D9+SHXO)i1?%^`)O rIvySD-pl)M%vuQoE<^5~a8rdq8L1zEZuSHSq0Mn@`)Q3D0s;sCY884` diff --git a/build/pgo/server-locations.txt b/build/pgo/server-locations.txt index dba4cd1d7bde..7a9372f2adbf 100644 --- a/build/pgo/server-locations.txt +++ b/build/pgo/server-locations.txt @@ -105,9 +105,11 @@ https://example.com:443 privileged https://www.example.com:443 privileged https://test1.example.com:443 privileged https://test2.example.com:443 privileged +https://test3.example.com:443 https://example.org:443 privileged https://test1.example.org:443 privileged https://test2.example.org:443 privileged +https://test3.example.org:443 https://sub1.test1.example.org:443 privileged https://sub1.test2.example.org:443 privileged https://sub2.test1.example.org:443 privileged diff --git a/dom/tests/mochitest/fetch/mochitest.toml b/dom/tests/mochitest/fetch/mochitest.toml index ec4aaf4b1ab2..010e6baaf89a 100644 --- a/dom/tests/mochitest/fetch/mochitest.toml +++ b/dom/tests/mochitest/fetch/mochitest.toml @@ -92,12 +92,14 @@ skip-if = [ ["test_fetch_cached_redirect.html"] ["test_fetch_cors.html"] +scheme = "https" skip-if = [ "http3", "http2", ] ["test_fetch_cors_sw_empty_reroute.html"] +scheme = "https" skip-if = [ "os == 'android'", # Bug 1623134 "http3", @@ -105,6 +107,7 @@ skip-if = [ ] ["test_fetch_cors_sw_reroute.html"] +scheme = "https" skip-if = [ "os == 'android'", # Bug 1623134 "http3", diff --git a/dom/tests/mochitest/fetch/test_fetch_cors.js b/dom/tests/mochitest/fetch/test_fetch_cors.js index 05ce22143530..e03f9c558288 100644 --- a/dom/tests/mochitest/fetch/test_fetch_cors.js +++ b/dom/tests/mochitest/fetch/test_fetch_cors.js @@ -10,7 +10,7 @@ function isOpaqueResponse(response) { function testModeSameOrigin() { // Fetch spec Section 4, step 4, "request's mode is same-origin". - var req = new Request("http://example.com", { mode: "same-origin" }); + var req = new Request("https://example.net", { mode: "same-origin" }); return fetch(req).then( function (res) { ok( @@ -83,7 +83,7 @@ var corsServerPath = function testModeNoCors() { // Fetch spec, section 4, step 4, response tainting should be set opaque, so // that fetching leads to an opaque filtered response in step 8. - var r = new Request("http://example.com" + corsServerPath + "status=200", { + var r = new Request("https://example.net" + corsServerPath + "status=200", { mode: "no-cors", }); return fetch(r).then( @@ -105,7 +105,7 @@ function testSameOriginCredentials() { { // Initialize by setting a cookie. pass: 1, - setCookie: cookieStr, + setCookie: cookieStr + "; Partitioned; Secure; SameSite=None", withCred: "same-origin", }, { @@ -757,8 +757,13 @@ function testModeCors() { }, ]; - var baseURL = "http://example.org" + corsServerPath; - var origin = "http://mochi.test:8888"; + var origin = self.location.origin; + var baseURL = + origin == "https://example.com" + ? "https://example.org" + : "https://example.com"; + baseURL += corsServerPath; + var fetches = []; for (test of tests) { var req = { @@ -937,7 +942,8 @@ function testModeCors() { } function testCrossOriginCredentials() { - var origin = "http://mochi.test:8888"; + var origin = self.location.origin; + var tests = [ { pass: 1, method: "GET", withCred: "include", allowCred: 1 }, { pass: 0, method: "GET", withCred: "include", allowCred: 0 }, @@ -946,7 +952,7 @@ function testCrossOriginCredentials() { { pass: 1, method: "GET", - setCookie: "a=1", + setCookie: "a=1; Partitioned; Secure; SameSite=None", withCred: "include", allowCred: 1, }, @@ -962,7 +968,7 @@ function testCrossOriginCredentials() { { pass: 1, method: "GET", - setCookie: "a=2", + setCookie: "a=2; Partitioned; Secure; SameSite=None", withCred: "omit", allowCred: 1, }, @@ -976,7 +982,7 @@ function testCrossOriginCredentials() { { pass: 1, method: "GET", - setCookie: "a=2", + setCookie: "a=2; Partitioned; Secure; SameSite=None", withCred: "include", allowCred: 1, }, @@ -1010,12 +1016,15 @@ function testCrossOriginCredentials() { // Initialize by setting a cookies for same- and cross- origins. pass: 1, hops: [ - { server: origin, setCookie: escape("a=1") }, { - server: "http://example.com", + server: origin, + setCookie: escape("a=1; Partitioned; Secure; SameSite=None"), + }, + { + server: "https://example.net", allowOrigin: origin, allowCred: 1, - setCookie: escape("a=2"), + setCookie: escape("a=2; Partitioned; Secure; SameSite=None"), }, ], withCred: "include", @@ -1026,7 +1035,7 @@ function testCrossOriginCredentials() { hops: [ { server: origin, cookie: escape("a=1") }, { server: origin, cookie: escape("a=1") }, - { server: "http://example.com", allowOrigin: origin, noCookie: 1 }, + { server: "https://example.net", allowOrigin: origin, noCookie: 1 }, ], withCred: "same-origin", }, @@ -1037,7 +1046,7 @@ function testCrossOriginCredentials() { { server: origin, cookie: escape("a=1") }, { server: origin, cookie: escape("a=1") }, { - server: "http://example.com", + server: "https://example.net", allowOrigin: origin, allowCred: 1, cookie: escape("a=2"), @@ -1051,7 +1060,7 @@ function testCrossOriginCredentials() { hops: [ { server: origin, cookie: escape("a=1") }, { server: origin, cookie: escape("a=1") }, - { server: "http://example.com", allowOrigin: "*", noCookie: 1 }, + { server: "https://example.net", allowOrigin: "*", noCookie: 1 }, ], withCred: "same-origin", }, @@ -1062,7 +1071,7 @@ function testCrossOriginCredentials() { { server: origin, cookie: escape("a=1") }, { server: origin, cookie: escape("a=1") }, { - server: "http://example.com", + server: "https://example.net", allowOrigin: "*", allowCred: 1, cookie: escape("a=2"), @@ -1078,7 +1087,7 @@ function testCrossOriginCredentials() { { server: origin, cookie: escape("a=1") }, { server: origin, cookie: escape("a=1") }, { - server: "http://example.com", + server: "https://example.net", allowOrigin: origin, cookie: escape("a=2"), }, @@ -1091,14 +1100,18 @@ function testCrossOriginCredentials() { hops: [ { server: origin, noCookie: 1 }, { server: origin, noCookie: 1 }, - { server: "http://example.com", allowOrigin: origin, noCookie: 1 }, + { server: "https://example.net", allowOrigin: origin, noCookie: 1 }, ], withCred: "omit", }, ]; - var baseURL = "http://example.org" + corsServerPath; - var origin = "http://mochi.test:8888"; + // Xorigin with https has .org origin, default .com + var baseURL = + origin == "https://example.com" + ? "https://example.org" + : "https://example.com"; + baseURL += corsServerPath; var finalPromiseResolve, finalPromiseReject; var finalPromise = new Promise(function (res, rej) { @@ -1203,7 +1216,7 @@ function testModeNoCorsCredentials() { { // Initialize by setting a cookie. pass: 1, - setCookie: cookieStr, + setCookie: cookieStr + "; Partitioned; Secure; SameSite=None", withCred: "include", }, { @@ -1249,7 +1262,7 @@ function testModeNoCorsCredentials() { function makeRequest(test) { req = { - url: "http://example.org" + corsServerPath + "a+b", + url: "https://example.net" + corsServerPath + "a+b", withCred: test.withCred, }; @@ -1333,118 +1346,125 @@ function testModeNoCorsCredentials() { } function testCORSRedirects() { - var origin = "http://mochi.test:8888"; + var origin = self.location.origin; + + var host = self.location.hostname; + var protocol = self.location.protocol; + var originSubSub1 = protocol + "//sub1.test1." + host; + var originSubSub2 = protocol + "//sub2.test2." + host; + var originSub = protocol + "//test3." + host; + + var foreignHost = host === "example.com" ? "example.org" : "example.com"; + var foreignSub1 = protocol + "//test1." + foreignHost; + var foreignSub2 = protocol + "//test2." + foreignHost; var tests = [ { pass: 1, method: "GET", - hops: [{ server: "http://example.com", allowOrigin: origin }], + hops: [{ server: "https://example.net", allowOrigin: origin }], }, { pass: 0, method: "GET", hops: [ - { server: "http://example.com", allowOrigin: origin }, - { server: "http://mochi.test:8888", allowOrigin: origin }, + { server: "https://example.net", allowOrigin: origin }, + { server: origin, allowOrigin: origin }, ], }, { pass: 1, method: "GET", hops: [ - { server: "http://example.com", allowOrigin: origin }, - { server: "http://mochi.test:8888", allowOrigin: "*" }, + { server: "https://example.net", allowOrigin: origin }, + { server: origin, allowOrigin: "*" }, ], }, { pass: 0, method: "GET", hops: [ - { server: "http://example.com", allowOrigin: origin }, - { server: "http://mochi.test:8888" }, + { server: "https://example.net", allowOrigin: origin }, + { server: origin }, ], }, { pass: 1, method: "GET", hops: [ - { server: "http://mochi.test:8888" }, - { server: "http://mochi.test:8888" }, - { server: "http://example.com", allowOrigin: origin }, + { server: origin }, + { server: origin }, + { server: "https://example.net", allowOrigin: origin }, ], }, { pass: 0, method: "GET", hops: [ - { server: "http://mochi.test:8888" }, - { server: "http://mochi.test:8888" }, - { server: "http://example.com", allowOrigin: origin }, - { server: "http://mochi.test:8888" }, + { server: origin }, + { server: origin }, + { server: "https://example.net", allowOrigin: origin }, + { server: origin }, ], }, { pass: 0, method: "GET", hops: [ - { server: "http://example.com", allowOrigin: origin }, - { server: "http://test2.mochi.test:8888", allowOrigin: origin }, - { - server: "http://sub2.xn--lt-uia.mochi.test:8888", - allowOrigin: origin, - }, - { server: "http://sub1.test1.mochi.test:8888", allowOrigin: origin }, + { server: "https://example.net", allowOrigin: origin }, + { server: originSub, allowOrigin: origin }, + { server: originSubSub1, allowOrigin: origin }, + { server: originSubSub2, allowOrigin: origin }, ], }, { pass: 0, method: "GET", hops: [ - { server: "http://example.com", allowOrigin: origin }, - { server: "http://test2.mochi.test:8888", allowOrigin: origin }, - { server: "http://sub2.xn--lt-uia.mochi.test:8888", allowOrigin: "*" }, - { server: "http://sub1.test1.mochi.test:8888", allowOrigin: "*" }, + { server: "https://example.net", allowOrigin: origin }, + { server: originSub, allowOrigin: origin }, + { server: originSubSub1, allowOrigin: "*" }, + { server: originSubSub2, allowOrigin: "*" }, ], }, { pass: 1, method: "GET", hops: [ - { server: "http://example.com", allowOrigin: origin }, - { server: "http://test2.mochi.test:8888", allowOrigin: "*" }, - { server: "http://sub2.xn--lt-uia.mochi.test:8888", allowOrigin: "*" }, - { server: "http://sub1.test1.mochi.test:8888", allowOrigin: "*" }, + { server: "https://example.net", allowOrigin: origin }, + { server: originSub, allowOrigin: "*" }, + { server: originSubSub1, allowOrigin: "*" }, + { server: originSubSub2, allowOrigin: "*" }, ], }, { pass: 0, method: "GET", hops: [ - { server: "http://example.com", allowOrigin: origin }, - { server: "http://test2.mochi.test:8888", allowOrigin: origin }, - { server: "http://sub2.xn--lt-uia.mochi.test:8888", allowOrigin: "x" }, - { server: "http://sub1.test1.mochi.test:8888", allowOrigin: origin }, + { server: "https://example.net", allowOrigin: origin }, + { server: originSub, allowOrigin: origin }, + { server: originSubSub1, allowOrigin: "x" }, + { server: originSubSub2, allowOrigin: origin }, ], }, { pass: 0, method: "GET", hops: [ - { server: "http://example.com", allowOrigin: origin }, - { server: "http://test2.mochi.test:8888", allowOrigin: origin }, - { server: "http://sub2.xn--lt-uia.mochi.test:8888", allowOrigin: "*" }, - { server: "http://sub1.test1.mochi.test:8888", allowOrigin: origin }, + { server: "https://example.net", allowOrigin: origin }, + { server: originSub, allowOrigin: origin }, + { server: originSubSub1, allowOrigin: "*" }, + { server: originSubSub2, allowOrigin: origin }, ], }, { pass: 0, method: "GET", hops: [ - { server: "http://example.com", allowOrigin: origin }, - { server: "http://test2.mochi.test:8888", allowOrigin: origin }, - { server: "http://sub2.xn--lt-uia.mochi.test:8888", allowOrigin: "*" }, - { server: "http://sub1.test1.mochi.test:8888" }, + { server: "https://example.net", allowOrigin: origin }, + { server: originSub, allowOrigin: origin }, + { server: originSubSub1, allowOrigin: "*" }, + { server: originSubSub2 }, ], }, { @@ -1453,8 +1473,8 @@ function testCORSRedirects() { body: "hi there", headers: { "Content-Type": "text/plain" }, hops: [ - { server: "http://mochi.test:8888" }, - { server: "http://example.com", allowOrigin: origin }, + { server: origin }, + { server: "https://example.net", allowOrigin: origin }, ], }, { @@ -1463,9 +1483,9 @@ function testCORSRedirects() { body: "hi there", headers: { "Content-Type": "text/plain", "my-header": "myValue" }, hops: [ - { server: "http://mochi.test:8888" }, + { server: origin }, { - server: "http://example.com", + server: "https://example.net", allowOrigin: origin, allowHeaders: "my-header", }, @@ -1477,9 +1497,9 @@ function testCORSRedirects() { body: "hi there", headers: { "Content-Type": "text/plain", "my-header": "myValue" }, hops: [ - { server: "http://mochi.test:8888" }, + { server: origin }, { - server: "http://example.com", + server: "https://example.net", allowOrigin: origin, allowHeaders: "my-header", noAllowPreflight: 1, @@ -1492,14 +1512,14 @@ function testCORSRedirects() { body: "hi there", headers: { "Content-Type": "text/plain", "my-header": "myValue" }, hops: [ - { server: "http://mochi.test:8888" }, + { server: origin }, { - server: "http://test1.example.com", + server: foreignSub1, allowOrigin: origin, allowHeaders: "my-header", }, { - server: "http://test2.example.com", + server: foreignSub2, allowOrigin: origin, allowHeaders: "my-header", }, @@ -1509,9 +1529,9 @@ function testCORSRedirects() { pass: 1, method: "DELETE", hops: [ - { server: "http://mochi.test:8888" }, + { server: origin }, { - server: "http://example.com", + server: "https://example.net", allowOrigin: origin, allowMethods: "DELETE", }, @@ -1521,9 +1541,9 @@ function testCORSRedirects() { pass: 0, method: "DELETE", hops: [ - { server: "http://mochi.test:8888" }, + { server: origin }, { - server: "http://example.com", + server: "https://example.net", allowOrigin: origin, allowMethods: "DELETE", noAllowPreflight: 1, @@ -1534,14 +1554,14 @@ function testCORSRedirects() { pass: 0, method: "DELETE", hops: [ - { server: "http://mochi.test:8888" }, + { server: origin }, { - server: "http://test1.example.com", + server: foreignSub1, allowOrigin: origin, allowMethods: "DELETE", }, { - server: "http://test2.example.com", + server: foreignSub2, allowOrigin: origin, allowMethods: "DELETE", }, @@ -1553,8 +1573,8 @@ function testCORSRedirects() { body: "hi there", headers: { "Content-Type": "text/plain", "my-header": "myValue" }, hops: [ - { server: "http://example.com", allowOrigin: origin }, - { server: "http://sub1.test1.mochi.test:8888", allowOrigin: origin }, + { server: "https://example.net", allowOrigin: origin }, + { server: originSubSub1, allowOrigin: origin }, ], }, { @@ -1562,12 +1582,12 @@ function testCORSRedirects() { method: "DELETE", hops: [ { - server: "http://example.com", + server: "https://example.net", allowOrigin: origin, allowMethods: "DELETE", }, { - server: "http://sub1.test1.mochi.test:8888", + server: originSubSub1, allowOrigin: origin, allowMethods: "DELETE", }, @@ -1579,9 +1599,9 @@ function testCORSRedirects() { body: "hi there", headers: { "Content-Type": "text/plain", "my-header": "myValue" }, hops: [ - { server: "http://example.com" }, + { server: "https://example.net" }, { - server: "http://sub1.test1.mochi.test:8888", + server: originSubSub1, allowOrigin: origin, allowHeaders: "my-header", }, @@ -1593,8 +1613,8 @@ function testCORSRedirects() { body: "hi there", headers: { "Content-Type": "text/plain" }, hops: [ - { server: "http://mochi.test:8888" }, - { server: "http://example.com", allowOrigin: origin }, + { server: origin }, + { server: "https://example.net", allowOrigin: origin }, ], }, { @@ -1604,12 +1624,12 @@ function testCORSRedirects() { headers: { "Content-Type": "text/plain", "my-header": "myValue" }, hops: [ { - server: "http://example.com", + server: "https://example.net", allowOrigin: origin, allowHeaders: "my-header", }, { - server: "http://mochi.test:8888", + server: origin, allowOrigin: origin, allowHeaders: "my-header", }, @@ -1708,28 +1728,28 @@ function testCORSRedirects() { } function testNoCORSRedirects() { - var origin = "http://mochi.test:8888"; + var origin = self.location.origin; var tests = [ - { pass: 1, method: "GET", hops: [{ server: "http://example.com" }] }, + { pass: 1, method: "GET", hops: [{ server: "https://example.net" }] }, { pass: 1, method: "GET", - hops: [{ server: origin }, { server: "http://example.com" }], + hops: [{ server: origin }, { server: "https://example.net" }], }, { pass: 1, method: "GET", // Must use a simple header due to no-cors header restrictions. headers: { "accept-language": "en-us" }, - hops: [{ server: origin }, { server: "http://example.com" }], + hops: [{ server: origin }, { server: "https://example.net" }], }, { pass: 1, method: "GET", hops: [ { server: origin }, - { server: "http://example.com" }, + { server: "https://example.net" }, { server: origin }, ], }, @@ -1737,12 +1757,12 @@ function testNoCORSRedirects() { pass: 1, method: "POST", body: "upload body here", - hops: [{ server: origin }, { server: "http://example.com" }], + hops: [{ server: origin }, { server: "https://example.net" }], }, { pass: 0, method: "DELETE", - hops: [{ server: origin }, { server: "http://example.com" }], + hops: [{ server: origin }, { server: "https://example.net" }], }, ];