Modified: trunk/LayoutTests/http/tests/workers/service/resources/tainted-image-fetch.js (226089 => 226090)
--- trunk/LayoutTests/http/tests/workers/service/resources/tainted-image-fetch.js 2017-12-19 01:39:22 UTC (rev 226089)
+++ trunk/LayoutTests/http/tests/workers/service/resources/tainted-image-fetch.js 2017-12-19 01:55:40 UTC (rev 226090)
@@ -8,9 +8,9 @@
canvas.getContext("2d").drawImage(frame.contentWindow.image, 0, 0);
try {
canvas.toDataURL("image/jpeg");
- log("FAIL: Image is not tainted");
+ log("PASS: Image is not tainted");
} catch (e) {
- log("PASS: canvas toDataURL fails with " + e);
+ log("FAIL: canvas toDataURL fails with " + e);
}
finishSWTest();
return;
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt (226089 => 226090)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt 2017-12-19 01:39:22 UTC (rev 226089)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt 2017-12-19 01:55:40 UTC (rev 226090)
@@ -18,22 +18,22 @@
PASS Non-navigation, manual redirect, no-cors mode Request redirected to same-origin with credentials should succeed opaqueredirect interception and response should not be redirected
PASS Non-navigation, manual redirect, no-cors mode Request redirected to no-cors with credentials should succeed interception and response should not be redirected
PASS Non-navigation, manual redirect, no-cors mode Request redirected to cors with credentials should succeed interception and response should not be redirected
-FAIL Non-navigation, follow redirect, cors mode Request redirected to same-origin without credentials should succeed interception and response should be redirected assert_equals: response.redirected expected true but got false
+PASS Non-navigation, follow redirect, cors mode Request redirected to same-origin without credentials should succeed interception and response should be redirected
PASS Non-navigation, follow redirect, cors mode Request redirected to no-cors without credentials should fail interception and response should not be redirected
-FAIL Non-navigation, follow redirect, cors mode Request redirected to cors without credentials should succeed interception and response should be redirected assert_equals: response.type expected "cors" but got "basic"
-FAIL Non-navigation, follow redirect, same-origin mode Request redirected to same-origin without credentials should succeed interception and response should be redirected assert_equals: response.redirected expected true but got false
+PASS Non-navigation, follow redirect, cors mode Request redirected to cors without credentials should succeed interception and response should be redirected
+PASS Non-navigation, follow redirect, same-origin mode Request redirected to same-origin without credentials should succeed interception and response should be redirected
PASS Non-navigation, follow redirect, same-origin mode Request redirected to no-cors without credentials should fail interception and response should not be redirected
PASS Non-navigation, follow redirect, same-origin mode Request redirected to cors without credentials should fail interception and response should not be redirected
-FAIL Non-navigation, follow redirect, no-cors mode Request redirected to same-origin without credentials should succeed interception and response should be redirected assert_equals: response.redirected expected true but got false
+PASS Non-navigation, follow redirect, no-cors mode Request redirected to same-origin without credentials should succeed interception and response should be redirected
PASS Non-navigation, follow redirect, no-cors mode Request redirected to no-cors without credentials should succeed interception and response should not be redirected
PASS Non-navigation, follow redirect, no-cors mode Request redirected to cors without credentials should succeed interception and response should not be redirected
-FAIL Non-navigation, follow redirect, cors mode Request redirected to same-origin with credentials should succeed interception and response should be redirected assert_equals: response.redirected expected true but got false
+PASS Non-navigation, follow redirect, cors mode Request redirected to same-origin with credentials should succeed interception and response should be redirected
PASS Non-navigation, follow redirect, cors mode Request redirected to no-cors with credentials should fail interception and response should not be redirected
FAIL Non-navigation, follow redirect, cors mode Request redirected to cors with credentials should fail interception and response should be redirected promise_test: Unhandled rejection with value: "assert_promise_rejects: Must fail to fetch: url="" Promise did not reject."
-FAIL Non-navigation, follow redirect, same-origin mode Request redirected to same-origin with credentials should succeed interception and response should be redirected assert_equals: response.redirected expected true but got false
+PASS Non-navigation, follow redirect, same-origin mode Request redirected to same-origin with credentials should succeed interception and response should be redirected
PASS Non-navigation, follow redirect, same-origin mode Request redirected to no-cors with credentials should fail interception and response should not be redirected
PASS Non-navigation, follow redirect, same-origin mode Request redirected to cors with credentials should fail interception and response should not be redirected
-FAIL Non-navigation, follow redirect, no-cors mode Request redirected to same-origin with credentials should succeed interception and response should be redirected assert_equals: response.redirected expected true but got false
+PASS Non-navigation, follow redirect, no-cors mode Request redirected to same-origin with credentials should succeed interception and response should be redirected
PASS Non-navigation, follow redirect, no-cors mode Request redirected to no-cors with credentials should succeed interception and response should not be redirected
PASS Non-navigation, follow redirect, no-cors mode Request redirected to cors with credentials should succeed interception and response should not be redirected
PASS Non-navigation, error redirect, cors mode Request redirected to same-origin without credentials should fail interception and response should not be redirected
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-response-taint.https-expected.txt (226089 => 226090)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-response-taint.https-expected.txt 2017-12-19 01:39:22 UTC (rev 226089)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-response-taint.https-expected.txt 2017-12-19 01:55:40 UTC (rev 226090)
@@ -34,12 +34,12 @@
PASS url:"https://127.0.0.1:9443/?url="" mode:"same-origin" credentials:"omit" should fail.
PASS url:"https://127.0.0.1:9443/?url="" mode:"same-origin" credentials:"same-origin" should fail.
PASS url:"https://127.0.0.1:9443/?url="" mode:"same-origin" credentials:"include" should fail.
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"omit" should succeed. assert_equals: response type expected "basic" but got "opaque"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"same-origin" should succeed. assert_equals: response type expected "basic" but got "opaque"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"include" should succeed. assert_equals: response type expected "basic" but got "opaque"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"omit" should succeed. assert_equals: response type expected "basic" but got "cors"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"same-origin" should succeed. assert_equals: response type expected "basic" but got "cors"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"include" should succeed. assert_equals: response type expected "basic" but got "cors"
+PASS fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"omit" should succeed.
+PASS fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"same-origin" should succeed.
+PASS fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"include" should succeed.
+PASS fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"omit" should succeed.
+PASS fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"same-origin" should succeed.
+PASS fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"include" should succeed.
FAIL fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"omit" should succeed. assert_equals: expected "username2s" but got "undefined"
FAIL fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"same-origin" should succeed. assert_equals: expected "username2s" but got "undefined"
FAIL fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"include" should succeed. assert_equals: expected "username2s" but got "undefined"
@@ -52,12 +52,12 @@
PASS url:"https://127.0.0.1:9443/?url="" mode:"same-origin" credentials:"omit" should fail.
PASS url:"https://127.0.0.1:9443/?url="" mode:"same-origin" credentials:"same-origin" should fail.
PASS url:"https://127.0.0.1:9443/?url="" mode:"same-origin" credentials:"include" should fail.
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"omit" should succeed. assert_equals: response type expected "basic" but got "opaque"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"same-origin" should succeed. assert_equals: response type expected "basic" but got "opaque"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"include" should succeed. assert_equals: response type expected "basic" but got "opaque"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"omit" should succeed. assert_equals: response type expected "basic" but got "cors"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"same-origin" should succeed. assert_equals: response type expected "basic" but got "cors"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"include" should succeed. assert_equals: response type expected "basic" but got "cors"
+FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"omit" should succeed. assert_equals: expected "username2s" but got "undefined"
+FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"same-origin" should succeed. assert_equals: expected "username2s" but got "undefined"
+FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"include" should succeed. assert_equals: expected "username2s" but got "undefined"
+FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"omit" should succeed. assert_equals: expected "username2s" but got "undefined"
+FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"same-origin" should succeed. assert_equals: expected "username2s" but got "undefined"
+FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"include" should succeed. assert_equals: expected "username2s" but got "undefined"
PASS url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"omit" should fail.
PASS url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"same-origin" should fail.
PASS url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"include" should fail.
@@ -94,39 +94,39 @@
PASS url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"omit" should fail.
PASS url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"same-origin" should fail.
PASS url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"include" should fail.
-FAIL fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"omit" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"same-origin" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"include" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"no-cors" credentials:"omit" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"no-cors" credentials:"same-origin" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"no-cors" credentials:"include" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"cors" credentials:"omit" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"cors" credentials:"same-origin" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"cors" credentials:"include" should succeed. assert_equals: response type expected "cors" but got "basic"
+PASS fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"omit" should succeed.
+PASS fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"same-origin" should succeed.
+PASS fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"include" should succeed.
+PASS fetching url:"https://localhost:9443/?url="" mode:"no-cors" credentials:"omit" should succeed.
+PASS fetching url:"https://localhost:9443/?url="" mode:"no-cors" credentials:"same-origin" should succeed.
+PASS fetching url:"https://localhost:9443/?url="" mode:"no-cors" credentials:"include" should succeed.
+PASS fetching url:"https://localhost:9443/?url="" mode:"cors" credentials:"omit" should succeed.
+PASS fetching url:"https://localhost:9443/?url="" mode:"cors" credentials:"same-origin" should succeed.
+PASS fetching url:"https://localhost:9443/?url="" mode:"cors" credentials:"include" should succeed.
PASS url:"https://127.0.0.1:9443/?url="" mode:"same-origin" credentials:"omit" should fail.
PASS url:"https://127.0.0.1:9443/?url="" mode:"same-origin" credentials:"same-origin" should fail.
PASS url:"https://127.0.0.1:9443/?url="" mode:"same-origin" credentials:"include" should fail.
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"omit" should succeed. assert_equals: response type expected "cors" but got "opaque"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"same-origin" should succeed. assert_equals: response type expected "cors" but got "opaque"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"include" should succeed. assert_equals: response type expected "cors" but got "opaque"
+PASS fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"omit" should succeed.
+PASS fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"same-origin" should succeed.
+PASS fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"include" should succeed.
PASS fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"omit" should succeed.
PASS fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"same-origin" should succeed.
PASS fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"include" should succeed.
-FAIL fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"omit" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"same-origin" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"include" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"no-cors" credentials:"omit" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"no-cors" credentials:"same-origin" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"no-cors" credentials:"include" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"cors" credentials:"omit" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"cors" credentials:"same-origin" should succeed. assert_equals: response type expected "cors" but got "basic"
-FAIL fetching url:"https://localhost:9443/?url="" mode:"cors" credentials:"include" should succeed. assert_equals: response type expected "cors" but got "basic"
+FAIL fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"omit" should succeed. assert_equals: expected "username1s" but got "undefined"
+FAIL fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"same-origin" should succeed. assert_equals: expected "username1s" but got "undefined"
+FAIL fetching url:"https://localhost:9443/?url="" mode:"same-origin" credentials:"include" should succeed. assert_equals: expected "username1s" but got "undefined"
+FAIL fetching url:"https://localhost:9443/?url="" mode:"no-cors" credentials:"omit" should succeed. assert_equals: expected "username1s" but got "undefined"
+FAIL fetching url:"https://localhost:9443/?url="" mode:"no-cors" credentials:"same-origin" should succeed. assert_equals: expected "username1s" but got "undefined"
+FAIL fetching url:"https://localhost:9443/?url="" mode:"no-cors" credentials:"include" should succeed. assert_equals: expected "username1s" but got "undefined"
+FAIL fetching url:"https://localhost:9443/?url="" mode:"cors" credentials:"omit" should succeed. assert_equals: expected "username1s" but got "undefined"
+FAIL fetching url:"https://localhost:9443/?url="" mode:"cors" credentials:"same-origin" should succeed. assert_equals: expected "username1s" but got "undefined"
+FAIL fetching url:"https://localhost:9443/?url="" mode:"cors" credentials:"include" should succeed. assert_equals: expected "username1s" but got "undefined"
PASS url:"https://127.0.0.1:9443/?url="" mode:"same-origin" credentials:"omit" should fail.
PASS url:"https://127.0.0.1:9443/?url="" mode:"same-origin" credentials:"same-origin" should fail.
PASS url:"https://127.0.0.1:9443/?url="" mode:"same-origin" credentials:"include" should fail.
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"omit" should succeed. assert_equals: response type expected "cors" but got "opaque"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"same-origin" should succeed. assert_equals: response type expected "cors" but got "opaque"
-FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"include" should succeed. assert_equals: response type expected "cors" but got "opaque"
+FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"omit" should succeed. assert_equals: expected "username1s" but got "undefined"
+FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"same-origin" should succeed. assert_equals: expected "username1s" but got "undefined"
+FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"no-cors" credentials:"include" should succeed. assert_equals: expected "username1s" but got "undefined"
FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"omit" should succeed. assert_equals: expected "username1s" but got "undefined"
FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"same-origin" should succeed. assert_equals: expected "username1s" but got "undefined"
FAIL fetching url:"https://127.0.0.1:9443/?url="" mode:"cors" credentials:"include" should succeed. assert_equals: expected "username1s" but got "undefined"
Modified: trunk/Source/WebCore/loader/cache/CachedResource.cpp (226089 => 226090)
--- trunk/Source/WebCore/loader/cache/CachedResource.cpp 2017-12-19 01:39:22 UTC (rev 226089)
+++ trunk/Source/WebCore/loader/cache/CachedResource.cpp 2017-12-19 01:55:40 UTC (rev 226090)
@@ -471,11 +471,17 @@
{
ASSERT(m_response.type() == ResourceResponse::Type::Default);
m_response = response;
+ m_varyingHeaderValues = collectVaryingRequestHeaders(m_resourceRequest, m_response, m_sessionID);
+
+#if ENABLE(SERVICE_WORKER)
+ if (m_response.source() == ResourceResponse::Source::ServiceWorker) {
+ m_responseTainting = m_response.tainting();
+ return;
+ }
+#endif
m_response.setRedirected(m_redirectChainCacheStatus.status != RedirectChainCacheStatus::NoRedirection);
if (m_response.tainting() == ResourceResponse::Tainting::Basic || m_response.tainting() == ResourceResponse::Tainting::Cors)
m_response.setTainting(m_responseTainting);
-
- m_varyingHeaderValues = collectVaryingRequestHeaders(m_resourceRequest, m_response, m_sessionID);
}
void CachedResource::responseReceived(const ResourceResponse& response)