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: |