Title: [230781] trunk
Revision
230781
Author
you...@apple.com
Date
2018-04-18 14:21:17 -0700 (Wed, 18 Apr 2018)

Log Message

MediaResourceLoader should set its fetch destination
https://bugs.webkit.org/show_bug.cgi?id=184746

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-resources.https.html:
* web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html:
* web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-worker.js:

Source/WebCore:

Covered by updated test.

* loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::requestResource):

Modified Paths

Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (230780 => 230781)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2018-04-18 21:17:37 UTC (rev 230780)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2018-04-18 21:21:17 UTC (rev 230781)
@@ -1,3 +1,15 @@
+2018-04-18  Youenn Fablet  <you...@apple.com>
+
+        MediaResourceLoader should set its fetch destination
+        https://bugs.webkit.org/show_bug.cgi?id=184746
+
+        Reviewed by Eric Carlson.
+
+        * web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt:
+        * web-platform-tests/service-workers/service-worker/fetch-request-resources.https.html:
+        * web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html:
+        * web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-worker.js:
+
 2018-04-18  Ms2ger  <ms2...@igalia.com>
 
         Test gardening.

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt (230780 => 230781)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt	2018-04-18 21:17:37 UTC (rev 230780)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt	2018-04-18 21:21:17 UTC (rev 230781)
@@ -56,4 +56,10 @@
 PASS Audio load (url:https://127.0.0.1:9443/service-workers/service-worker/resources/dummy?test54 cross_origin:) 
 PASS Audio load (url:https://127.0.0.1:9443/service-workers/service-worker/resources/dummy?test55 cross_origin:anonymous) 
 PASS Audio load (url:https://127.0.0.1:9443/service-workers/service-worker/resources/dummy?test56 cross_origin:use-credentials) 
+PASS Video load (url:https://localhost:9443/service-workers/service-worker/resources/dummy?test57 cross_origin:) 
+PASS Video load (url:https://localhost:9443/service-workers/service-worker/resources/dummy?test58 cross_origin:anonymous) 
+PASS Video load (url:https://localhost:9443/service-workers/service-worker/resources/dummy?test59 cross_origin:use-credentials) 
+PASS Video load (url:https://127.0.0.1:9443/service-workers/service-worker/resources/dummy?test60 cross_origin:) 
+PASS Video load (url:https://127.0.0.1:9443/service-workers/service-worker/resources/dummy?test61 cross_origin:anonymous) 
+PASS Video load (url:https://127.0.0.1:9443/service-workers/service-worker/resources/dummy?test62 cross_origin:use-credentials) 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-resources.https.html (230780 => 230781)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-resources.https.html	2018-04-18 21:17:37 UTC (rev 230780)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-resources.https.html	2018-04-18 21:21:17 UTC (rev 230781)
@@ -26,6 +26,7 @@
       credentials: expected_credentials,
       redirect: 'follow',
       integrity: '',
+      destination: 'image',
       message: 'Image load (url:' +
                actual_url + ' cross_origin:' + cross_origin + ')'
     };
@@ -42,6 +43,7 @@
       credentials: expected_credentials,
       redirect: 'follow',
       integrity: '',
+      destination: 'script',
       message: 'Script load (url:' +
                actual_url + ' cross_origin:' + cross_origin + ')'
     };
@@ -58,6 +60,7 @@
       credentials: expected_credentials,
       redirect: 'follow',
       integrity: '',
+      destination: 'style',
       message: 'CSS load (url:' +
                actual_url + ' cross_origin:' + cross_origin + ')'
     };
@@ -73,6 +76,7 @@
       credentials: expected_credentials,
       redirect: 'follow',
       integrity: '',
+      destination: 'font',
       message: 'FontFace load (url:' + actual_url + ')'
     };
   frame.contentWindow.load_font(actual_url);
@@ -87,6 +91,7 @@
       credentials: 'include',
       redirect: 'follow',
       integrity: expected_integrity,
+      destination: 'script',
       message: 'Script load (url:' + actual_url + ')'
     };
   frame.contentWindow.load_script_with_integrity(actual_url, integrity);
@@ -101,6 +106,7 @@
       credentials: 'include',
       redirect: 'follow',
       integrity: expected_integrity,
+      destination: 'style',
       message: 'CSS load (url:' + actual_url + ')'
     };
   frame.contentWindow.load_css_with_integrity(actual_url, integrity);
@@ -115,6 +121,7 @@
       credentials: expected_credentials,
       redirect: 'follow',
       integrity: '',
+      destination: '',
       message: 'fetch (url:' + actual_url + ' mode:' + mode + ' credentials:' +
                credentials + ')'
     };
@@ -132,6 +139,7 @@
       credentials: expected_credentials,
       redirect: 'follow',
       integrity: '',
+      destination: 'audio',
       message: 'Audio load (url:' + actual_url + ' cross_origin:' +
                cross_origin + ')'
     };
@@ -139,6 +147,23 @@
   return add_promise_to_test(actual_url);
 }
 
+
+function video_test(frame, url, cross_origin,
+                    expected_mode, expected_credentials) {
+  var actual_url = url + (++url_count);
+  expected_results[actual_url] = {
+      mode: expected_mode,
+      credentials: expected_credentials,
+      redirect: 'follow',
+      integrity: '',
+      destination: 'video',
+      message: 'Video load (url:' + actual_url + ' cross_origin:' +
+               cross_origin + ')'
+    };
+  frame.contentWindow.load_video(actual_url, cross_origin);
+  return add_promise_to_test(actual_url);
+}
+
 promise_test(function(t) {
     var SCOPE = 'resources/fetch-request-resources-iframe.https.html';
     var SCRIPT = 'resources/fetch-request-resources-worker.js';
@@ -184,6 +209,10 @@
                     result.integrity, expected.integrity,
                     'integrity of ' + expected.message +  ' must be ' +
                     expected.integrity + '.');
+                  assert_equals(
+                    result.destination, expected.destination,
+                    'destination of ' + expected.message +  ' must be ' +
+                    expected.destination + '.');
                 }, expected.message);
                 expected.resolve();
                 delete expected_results[result.url];
@@ -269,6 +298,13 @@
         await audio_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin');
         await audio_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include');
 
+        await video_test(f, LOCAL_URL, '', 'no-cors', 'include');
+        await video_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin');
+        await video_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include');
+        await video_test(f, REMOTE_URL, '', 'no-cors', 'include');
+        await video_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin');
+        await video_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include');
+
         frame.remove();
         service_worker_unregister(t, SCOPE);
       }).catch(unreached_rejection(t));

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html (230780 => 230781)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html	2018-04-18 21:17:37 UTC (rev 230780)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html	2018-04-18 21:21:17 UTC (rev 230781)
@@ -71,5 +71,14 @@
   audio.src = ""
   document.body.appendChild(audio);
 }
+
+function load_video(url, cross_origin) {
+  var video = document.createElement('video');
+  if (cross_origin != '') {
+    video.crossOrigin = cross_origin;
+  }
+  video.src = ""
+  document.body.appendChild(video);
+}
 </script>
 </body>

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-worker.js (230780 => 230781)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-worker.js	2018-04-18 21:17:37 UTC (rev 230780)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-worker.js	2018-04-18 21:21:17 UTC (rev 230781)
@@ -19,7 +19,8 @@
         mode: event.request.mode,
         redirect: event.request.redirect,
         credentials: event.request.credentials,
-        integrity: event.request.integrity
+        integrity: event.request.integrity,
+        destination: event.request.destination
       });
     event.respondWith(Promise.reject());
   });

Modified: trunk/Source/WebCore/ChangeLog (230780 => 230781)


--- trunk/Source/WebCore/ChangeLog	2018-04-18 21:17:37 UTC (rev 230780)
+++ trunk/Source/WebCore/ChangeLog	2018-04-18 21:21:17 UTC (rev 230781)
@@ -1,3 +1,15 @@
+2018-04-18  Youenn Fablet  <you...@apple.com>
+
+        MediaResourceLoader should set its fetch destination
+        https://bugs.webkit.org/show_bug.cgi?id=184746
+
+        Reviewed by Eric Carlson.
+
+        Covered by updated test.
+
+        * loader/MediaResourceLoader.cpp:
+        (WebCore::MediaResourceLoader::requestResource):
+
 2018-04-18  Jer Noble  <jer.no...@apple.com>
 
         Fix runtime errors in simulator while playing media

Modified: trunk/Source/WebCore/loader/MediaResourceLoader.cpp (230780 => 230781)


--- trunk/Source/WebCore/loader/MediaResourceLoader.cpp	2018-04-18 21:17:37 UTC (rev 230780)
+++ trunk/Source/WebCore/loader/MediaResourceLoader.cpp	2018-04-18 21:21:17 UTC (rev 230781)
@@ -76,7 +76,9 @@
 #endif
 
     ContentSecurityPolicyImposition contentSecurityPolicyImposition = m_mediaElement && m_mediaElement->isInUserAgentShadowTree() ? ContentSecurityPolicyImposition::SkipPolicyCheck : ContentSecurityPolicyImposition::DoPolicyCheck;
-    CachedResourceRequest cacheRequest(WTFMove(request), ResourceLoaderOptions(SendCallbacks, DoNotSniffContent, bufferingPolicy, StoredCredentialsPolicy::Use, ClientCredentialPolicy::MayAskClientForCredentials, FetchOptions::Credentials::Include, DoSecurityCheck, FetchOptions::Mode::NoCors, DoNotIncludeCertificateInfo, contentSecurityPolicyImposition, DefersLoadingPolicy::AllowDefersLoading, cachingPolicy));
+    ResourceLoaderOptions loaderOptions { SendCallbacks, DoNotSniffContent, bufferingPolicy, StoredCredentialsPolicy::Use, ClientCredentialPolicy::MayAskClientForCredentials, FetchOptions::Credentials::Include,  DoSecurityCheck, FetchOptions::Mode::NoCors, DoNotIncludeCertificateInfo, contentSecurityPolicyImposition, DefersLoadingPolicy::AllowDefersLoading, cachingPolicy };
+    loaderOptions.destination = m_mediaElement && !m_mediaElement->isVideo() ? FetchOptions::Destination::Audio : FetchOptions::Destination::Video;
+    CachedResourceRequest cacheRequest { WTFMove(request), WTFMove(loaderOptions) };
     cacheRequest.setAsPotentiallyCrossOrigin(m_crossOriginMode, *m_document);
     if (m_mediaElement)
         cacheRequest.setInitiator(*m_mediaElement.get());
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to