Chromium Code Reviews| Index: Source/core/fetch/ResourceFetcher.cpp |
| diff --git a/Source/core/fetch/ResourceFetcher.cpp b/Source/core/fetch/ResourceFetcher.cpp |
| index 8b03bb6589ec488ce49110e97efdd8acfd7653de..f57e95b5216c817d8d770f9fbfc41ed5646299ea 100644 |
| --- a/Source/core/fetch/ResourceFetcher.cpp |
| +++ b/Source/core/fetch/ResourceFetcher.cpp |
| @@ -27,6 +27,7 @@ |
| #include "config.h" |
| #include "core/fetch/ResourceFetcher.h" |
| +#include "RuntimeEnabledFeatures.h" |
| #include "bindings/v8/ScriptController.h" |
| #include "core/dom/Document.h" |
| #include "core/fetch/CSSStyleSheetResource.h" |
| @@ -89,6 +90,7 @@ static Resource* createResource(Resource::Type type, const ResourceRequest& requ |
| case Resource::MainResource: |
| return new RawResource(request, type); |
| case Resource::XSLStyleSheet: |
| + ASSERT(RuntimeEnabledFeatures::xsltEnabled()); |
| return new XSLStyleSheetResource(request); |
| case Resource::LinkPrefetch: |
| return new Resource(request, Resource::LinkPrefetch); |
| @@ -125,6 +127,7 @@ static ResourceLoadPriority loadPriority(Resource::Type type, const FetchRequest |
| case Resource::Image: |
| return request.forPreload() ? ResourceLoadPriorityVeryLow : ResourceLoadPriorityLow; |
| case Resource::XSLStyleSheet: |
| + ASSERT(RuntimeEnabledFeatures::xsltEnabled()); |
| return ResourceLoadPriorityHigh; |
| case Resource::SVGDocument: |
| return ResourceLoadPriorityLow; |
| @@ -298,6 +301,7 @@ ResourcePtr<ScriptResource> ResourceFetcher::fetchScript(FetchRequest& request) |
| ResourcePtr<XSLStyleSheetResource> ResourceFetcher::fetchXSLStyleSheet(FetchRequest& request) |
| { |
| + ASSERT(RuntimeEnabledFeatures::xsltEnabled()); |
| return static_cast<XSLStyleSheetResource*>(requestResource(Resource::XSLStyleSheet, request).get()); |
| } |
| @@ -328,12 +332,16 @@ bool ResourceFetcher::checkInsecureContent(Resource::Type type, const KURL& url, |
| if (treatment == TreatAsDefaultForType) { |
| switch (type) { |
| case Resource::Script: |
| - case Resource::XSLStyleSheet: |
| case Resource::SVGDocument: |
| case Resource::CSSStyleSheet: |
| case Resource::ImportResource: |
| - // These resource can inject script into the current document (Script, |
| - // XSL) or exfiltrate the content of the current document (CSS). |
| + // These resource can inject script into the current document (Script) |
| + // or exfiltrate the content of the current document (CSS). |
| + treatment = TreatAsActiveContent; |
| + break; |
| + |
| + case Resource::XSLStyleSheet: |
| + ASSERT(RuntimeEnabledFeatures::xsltEnabled()); |
|
abarth-chromium
2013/10/01 15:06:09
I'm not sure this ASSERT is worth messing up the c
vivekg__
2013/10/02 14:18:23
Done.
|
| treatment = TreatAsActiveContent; |
| break; |
| @@ -406,7 +414,13 @@ bool ResourceFetcher::canRequest(Resource::Type type, const KURL& url, const Res |
| } |
| break; |
| case Resource::SVGDocument: |
| + if (!m_document->securityOrigin()->canRequest(url)) { |
| + printAccessDeniedMessage(url); |
| + return false; |
| + } |
| + break; |
| case Resource::XSLStyleSheet: |
| + ASSERT(RuntimeEnabledFeatures::xsltEnabled()); |
|
abarth-chromium
2013/10/01 15:06:09
You can do this with less duplicated code by putti
vivekg__
2013/10/02 14:18:23
Done.
|
| if (!m_document->securityOrigin()->canRequest(url)) { |
| printAccessDeniedMessage(url); |
| return false; |
| @@ -416,6 +430,7 @@ bool ResourceFetcher::canRequest(Resource::Type type, const KURL& url, const Res |
| switch (type) { |
| case Resource::XSLStyleSheet: |
| + ASSERT(RuntimeEnabledFeatures::xsltEnabled()); |
| if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentSecurityPolicy()->allowScriptFromSource(url)) |
| return false; |
| break; |
| @@ -620,7 +635,10 @@ void ResourceFetcher::determineTargetType(ResourceRequest& request, Resource::Ty |
| targetType = ResourceRequest::TargetIsMainFrame; |
| break; |
| case Resource::CSSStyleSheet: |
| + targetType = ResourceRequest::TargetIsStyleSheet; |
| + break; |
| case Resource::XSLStyleSheet: |
| + ASSERT(RuntimeEnabledFeatures::xsltEnabled()); |
|
abarth-chromium
2013/10/01 15:06:09
Same here.
vivekg__
2013/10/02 14:18:23
Done.
|
| targetType = ResourceRequest::TargetIsStyleSheet; |
| break; |
| case Resource::Script: |