Index: Source/core/fetch/ResourceFetcher.cpp |
diff --git a/Source/core/fetch/ResourceFetcher.cpp b/Source/core/fetch/ResourceFetcher.cpp |
index 2c18ad2f1539d303d74975e2e1d590c71a9e4eec..2baf25239a4212a4f1cde0d3551085d916be567f 100644 |
--- a/Source/core/fetch/ResourceFetcher.cpp |
+++ b/Source/core/fetch/ResourceFetcher.cpp |
@@ -96,15 +96,14 @@ static Resource* createResource(Resource::Type type, const ResourceRequest& requ |
case Resource::Raw: |
case Resource::TextTrack: |
case Resource::Media: |
+ case Resource::ImportResource: |
return new RawResource(request, type); |
case Resource::XSLStyleSheet: |
return new XSLStyleSheetResource(request, charset); |
case Resource::LinkPrefetch: |
- return new Resource(request, Resource::LinkPrefetch); |
case Resource::LinkSubresource: |
- return new Resource(request, Resource::LinkSubresource); |
- case Resource::ImportResource: |
- return new RawResource(request, type); |
+ case Resource::Manifest: |
+ return new Resource(request, type); |
} |
ASSERT_NOT_REACHED(); |
@@ -126,6 +125,7 @@ static ResourceLoadPriority loadPriority(Resource::Type type, const FetchRequest |
case Resource::Script: |
case Resource::Font: |
case Resource::ImportResource: |
+ case Resource::Manifest: |
return ResourceLoadPriorityMedium; |
case Resource::Image: |
// We'll default images to VeryLow, and promote whatever is visible. This improves |
@@ -218,6 +218,8 @@ static WebURLRequest::RequestContext requestContextFromType(const ResourceFetche |
return WebURLRequest::RequestContextPrefetch; |
case Resource::LinkSubresource: |
return WebURLRequest::RequestContextSubresource; |
+ case Resource::Manifest: |
+ return WebURLRequest::RequestContextManifest; |
case Resource::TextTrack: |
return WebURLRequest::RequestContextTrack; |
case Resource::SVGDocument: |
@@ -413,6 +415,13 @@ ResourcePtr<RawResource> ResourceFetcher::fetchTextTrack(FetchRequest& request) |
return toRawResource(requestResource(Resource::TextTrack, request)); |
} |
+ResourcePtr<Resource> ResourceFetcher::fetchManifest(FetchRequest& request) |
+{ |
+ ASSERT(request.resourceRequest().frameType() == WebURLRequest::FrameTypeNone); |
+ request.mutableResourceRequest().setRequestContext(WebURLRequest::RequestContextManifest); |
+ return requestResource(Resource::Manifest, request); |
+} |
+ |
void ResourceFetcher::preCacheSubstituteDataForMainResource(const FetchRequest& request, const SubstituteData& substituteData) |
{ |
const KURL& url = request.url(); |
@@ -435,6 +444,8 @@ bool ResourceFetcher::checkInsecureContent(Resource::Type type, const KURL& url, |
{ |
if (treatment == TreatAsDefaultForType) { |
switch (type) { |
+ // Blockable content list is defined here: |
+ // http://w3c.github.io/webappsec/specs/mixedcontent/#category-blockable |
case Resource::XSLStyleSheet: |
ASSERT(RuntimeEnabledFeatures::xsltEnabled()); |
case Resource::Script: |
@@ -447,6 +458,7 @@ bool ResourceFetcher::checkInsecureContent(Resource::Type type, const KURL& url, |
break; |
case Resource::Font: |
+ case Resource::Manifest: |
case Resource::TextTrack: |
// These resources are passive, but mixed usage is low enough that we |
// can block them in a mixed context. |
@@ -530,6 +542,7 @@ bool ResourceFetcher::canRequest(Resource::Type type, const KURL& url, const Res |
case Resource::TextTrack: |
case Resource::ImportResource: |
case Resource::Media: |
+ case Resource::Manifest: |
// 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)) { |
@@ -599,6 +612,7 @@ bool ResourceFetcher::canRequest(Resource::Type type, const KURL& url, const Res |
case Resource::Raw: |
case Resource::LinkPrefetch: |
case Resource::LinkSubresource: |
+ case Resource::Manifest: |
break; |
case Resource::Media: |
case Resource::TextTrack: |