Modified: trunk/Source/WebCore/ChangeLog (207189 => 207190)
--- trunk/Source/WebCore/ChangeLog 2016-10-12 05:34:26 UTC (rev 207189)
+++ trunk/Source/WebCore/ChangeLog 2016-10-12 06:26:35 UTC (rev 207190)
@@ -1,3 +1,19 @@
+2016-10-11 Youenn Fablet <[email protected]>
+
+ MediaResourceLoader::requestResource should take a ResourceRequest&& as input
+ https://bugs.webkit.org/show_bug.cgi?id=160397
+
+ Reviewed by Alex Christensen.
+
+ No change in behavior.
+
+ * loader/MediaResourceLoader.cpp:
+ (WebCore::MediaResourceLoader::requestResource): Passing a ResourceRequest&& as input parameter.
+ * loader/MediaResourceLoader.h:
+ * platform/graphics/PlatformMediaResourceLoader.h: Ditto.
+ * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
+ (webKitWebSrcStart): Creating an extra copy since MediaResourceLoader::requestResource expects a Resourcerequest&&.
+
2016-10-11 Chris Dumez <[email protected]>
Update AnimationEvent to stop using legacy [ConstructorTemplate=Event]
Modified: trunk/Source/WebCore/loader/MediaResourceLoader.cpp (207189 => 207190)
--- trunk/Source/WebCore/loader/MediaResourceLoader.cpp 2016-10-12 05:34:26 UTC (rev 207189)
+++ trunk/Source/WebCore/loader/MediaResourceLoader.cpp 2016-10-12 06:26:35 UTC (rev 207190)
@@ -57,7 +57,7 @@
m_document = nullptr;
}
-RefPtr<PlatformMediaResource> MediaResourceLoader::requestResource(const ResourceRequest& request, LoadOptions options)
+RefPtr<PlatformMediaResource> MediaResourceLoader::requestResource(ResourceRequest&& request, LoadOptions options)
{
if (!m_document)
return nullptr;
@@ -65,9 +65,8 @@
DataBufferingPolicy bufferingPolicy = options & LoadOption::BufferData ? WebCore::BufferData : WebCore::DoNotBufferData;
auto cachingPolicy = options & LoadOption::DisallowCaching ? CachingPolicy::DisallowCaching : CachingPolicy::AllowCaching;
- // FIXME: We should try to remove the copy of request when crearing cacheRequest.
- // FIXME: Skip Content Security Policy check if the element that inititated this request is in a user-agent shadow tree. See <https://bugs.webkit.org/show_bug.cgi?id=155505>.
- CachedResourceRequest cacheRequest(ResourceRequest(request), ResourceLoaderOptions(SendCallbacks, DoNotSniffContent, bufferingPolicy, AllowStoredCredentials, ClientCredentialPolicy::MayAskClientForCredentials, FetchOptions::Credentials::Include, DoSecurityCheck, FetchOptions::Mode::NoCors, DoNotIncludeCertificateInfo, ContentSecurityPolicyImposition::DoPolicyCheck, DefersLoadingPolicy::AllowDefersLoading, cachingPolicy));
+ // FIXME: Skip Content Security Policy check if the element that initiated this request is in a user-agent shadow tree. See <https://bugs.webkit.org/show_bug.cgi?id=155505>.
+ CachedResourceRequest cacheRequest(WTFMove(request), ResourceLoaderOptions(SendCallbacks, DoNotSniffContent, bufferingPolicy, AllowStoredCredentials, ClientCredentialPolicy::MayAskClientForCredentials, FetchOptions::Credentials::Include, DoSecurityCheck, FetchOptions::Mode::NoCors, DoNotIncludeCertificateInfo, ContentSecurityPolicyImposition::DoPolicyCheck, DefersLoadingPolicy::AllowDefersLoading, cachingPolicy));
cacheRequest.setAsPotentiallyCrossOrigin(m_crossOriginMode, *m_document);
Modified: trunk/Source/WebCore/loader/MediaResourceLoader.h (207189 => 207190)
--- trunk/Source/WebCore/loader/MediaResourceLoader.h 2016-10-12 05:34:26 UTC (rev 207189)
+++ trunk/Source/WebCore/loader/MediaResourceLoader.h 2016-10-12 06:26:35 UTC (rev 207190)
@@ -46,7 +46,7 @@
WEBCORE_EXPORT MediaResourceLoader(Document&, const String& crossOriginMode);
WEBCORE_EXPORT virtual ~MediaResourceLoader();
- RefPtr<PlatformMediaResource> requestResource(const ResourceRequest&, LoadOptions) override;
+ RefPtr<PlatformMediaResource> requestResource(ResourceRequest&&, LoadOptions) final;
void removeResource(MediaResource&);
Document* document() { return m_document; }
Modified: trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h (207189 => 207190)
--- trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h 2016-10-12 05:34:26 UTC (rev 207189)
+++ trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h 2016-10-12 06:26:35 UTC (rev 207190)
@@ -66,7 +66,7 @@
virtual ~PlatformMediaResourceLoader() { }
- virtual RefPtr<PlatformMediaResource> requestResource(const ResourceRequest&, LoadOptions) = 0;
+ virtual RefPtr<PlatformMediaResource> requestResource(ResourceRequest&&, LoadOptions) = 0;
protected:
PlatformMediaResourceLoader() { }
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp (207189 => 207190)
--- trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2016-10-12 05:34:26 UTC (rev 207189)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2016-10-12 06:26:35 UTC (rev 207190)
@@ -580,7 +580,8 @@
PlatformMediaResourceLoader::LoadOptions loadOptions = 0;
if (request.url().protocolIsBlob())
loadOptions |= PlatformMediaResourceLoader::LoadOption::BufferData;
- priv->resource = priv->loader->requestResource(request, loadOptions);
+ // FIXME: request should be moved for efficiency
+ priv->resource = priv->loader->requestResource(ResourceRequest(request), loadOptions);
if (priv->resource) {
priv->resource->setClient(std::make_unique<CachedResourceStreamingClient>(protector.get()));
GST_DEBUG_OBJECT(protector.get(), "Started request");