| Index: Source/core/fetch/ResourceFetcher.cpp
|
| diff --git a/Source/core/fetch/ResourceFetcher.cpp b/Source/core/fetch/ResourceFetcher.cpp
|
| index 22ee93f6544fbbfe3ecb10d376d6e1462eb9b5f2..182217d187a1a77e53580b01004ea781f8866121 100644
|
| --- a/Source/core/fetch/ResourceFetcher.cpp
|
| +++ b/Source/core/fetch/ResourceFetcher.cpp
|
| @@ -89,6 +89,7 @@ static Resource* createResource(Resource::Type type, const ResourceRequest& requ
|
| case Resource::MainResource:
|
| case Resource::Raw:
|
| case Resource::TextTrack:
|
| + case Resource::Media:
|
| return new RawResource(request, type);
|
| case Resource::XSLStyleSheet:
|
| return new XSLStyleSheetResource(request);
|
| @@ -126,6 +127,8 @@ static ResourceLoadPriority loadPriority(Resource::Type type, const FetchRequest
|
| // We'll default images to VeryLow, and promote whatever is visible. This improves
|
| // speed-index by ~5% on average, ~14% at the 99th percentile.
|
| return ResourceLoadPriorityVeryLow;
|
| + case Resource::Media:
|
| + return ResourceLoadPriorityLow;
|
| case Resource::XSLStyleSheet:
|
| ASSERT(RuntimeEnabledFeatures::xsltEnabled());
|
| return ResourceLoadPriorityHigh;
|
| @@ -216,6 +219,8 @@ static ResourceRequest::TargetType requestTargetType(const ResourceFetcher* fetc
|
| return ResourceRequest::TargetIsTextTrack;
|
| case Resource::SVGDocument:
|
| return ResourceRequest::TargetIsImage;
|
| + case Resource::Media:
|
| + return ResourceRequest::TargetIsMedia;
|
| }
|
| ASSERT_NOT_REACHED();
|
| return ResourceRequest::TargetIsSubresource;
|
| @@ -377,6 +382,16 @@ ResourcePtr<RawResource> ResourceFetcher::fetchMainResource(FetchRequest& reques
|
| return toRawResource(requestResource(Resource::MainResource, request));
|
| }
|
|
|
| +ResourcePtr<RawResource> ResourceFetcher::fetchMedia(FetchRequest& request)
|
| +{
|
| + return toRawResource(requestResource(Resource::Media, request));
|
| +}
|
| +
|
| +ResourcePtr<RawResource> ResourceFetcher::fetchTextTrack(FetchRequest& request)
|
| +{
|
| + return toRawResource(requestResource(Resource::TextTrack, request));
|
| +}
|
| +
|
| void ResourceFetcher::preCacheSubstituteDataForMainResource(const FetchRequest& request, const SubstituteData& substituteData)
|
| {
|
| const KURL& url = request.url();
|
| @@ -415,6 +430,7 @@ bool ResourceFetcher::checkInsecureContent(Resource::Type type, const KURL& url,
|
| case Resource::Raw:
|
| case Resource::Image:
|
| case Resource::Font:
|
| + case Resource::Media:
|
| // These resources can corrupt only the frame's pixels.
|
| treatment = TreatAsPassiveContent;
|
| break;
|
| @@ -478,6 +494,7 @@ bool ResourceFetcher::canRequest(Resource::Type type, const KURL& url, const Res
|
| case Resource::TextTrack:
|
| case Resource::Shader:
|
| case Resource::ImportResource:
|
| + case Resource::Media:
|
| // By default these types of resources can be loaded from any origin.
|
| // FIXME: Are we sure about Resource::Font?
|
| if (originRestriction == FetchRequest::RestrictToSameOrigin && !securityOrigin->canRequest(url)) {
|
| @@ -535,6 +552,7 @@ bool ResourceFetcher::canRequest(Resource::Type type, const KURL& url, const Res
|
| case Resource::LinkPrefetch:
|
| case Resource::LinkSubresource:
|
| break;
|
| + case Resource::Media:
|
| case Resource::TextTrack:
|
| if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentSecurityPolicy()->allowMediaFromSource(url))
|
| return false;
|
|
|