Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1202)

Unified Diff: Source/core/loader/cache/CachedResourceLoader.cpp

Issue 19940002: [HTML Import] Respect Content Security Policy Model (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix mac build failure. Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/loader/cache/CachedResourceLoader.cpp
diff --git a/Source/core/loader/cache/CachedResourceLoader.cpp b/Source/core/loader/cache/CachedResourceLoader.cpp
index 2dd32893ad18c270b28f7f4a5b64dde8331de027..2f711d87cbd16198c43b658dbe4de29173f3da5d 100644
--- a/Source/core/loader/cache/CachedResourceLoader.cpp
+++ b/Source/core/loader/cache/CachedResourceLoader.cpp
@@ -92,7 +92,10 @@ static CachedResource* createResource(CachedResource::Type type, const ResourceR
return new CachedTextTrack(request);
case CachedResource::ShaderResource:
return new CachedShader(request);
+ case CachedResource::ImportResource:
+ return new CachedRawResource(request, type);
}
+
ASSERT_NOT_REACHED();
return 0;
}
@@ -110,6 +113,7 @@ static ResourceLoadPriority loadPriority(CachedResource::Type type, const Cached
case CachedResource::Script:
case CachedResource::FontResource:
case CachedResource::RawResource:
+ case CachedResource::ImportResource:
return ResourceLoadPriorityMedium;
case CachedResource::ImageResource:
return request.forPreload() ? ResourceLoadPriorityVeryLow : ResourceLoadPriorityLow;
@@ -235,6 +239,11 @@ CachedResourceHandle<CachedShader> CachedResourceLoader::requestShader(CachedRes
return static_cast<CachedShader*>(requestResource(CachedResource::ShaderResource, request).get());
}
+CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestImport(CachedResourceRequest& request)
+{
+ return static_cast<CachedRawResource*>(requestResource(CachedResource::ImportResource, request).get());
+}
+
CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestCSSStyleSheet(CachedResourceRequest& request)
{
return static_cast<CachedCSSStyleSheet*>(requestResource(CachedResource::CSSStyleSheet, request).get());
@@ -293,6 +302,7 @@ bool CachedResourceLoader::checkInsecureContent(CachedResource::Type type, const
case CachedResource::XSLStyleSheet:
case CachedResource::SVGDocumentResource:
case CachedResource::CSSStyleSheet:
+ case CachedResource::ImportResource:
// These resource can inject script into the current document (Script,
// XSL) or exfiltrate the content of the current document (CSS).
if (Frame* f = frame())
@@ -369,6 +379,7 @@ bool CachedResourceLoader::canRequest(CachedResource::Type type, const KURL& url
return false;
break;
case CachedResource::Script:
+ case CachedResource::ImportResource:
if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentSecurityPolicy()->allowScriptFromSource(url))
return false;
@@ -429,7 +440,7 @@ bool CachedResourceLoader::canAccess(CachedResource* resource)
String error;
switch (resource->type()) {
case CachedResource::Script:
- case CachedResource::RawResource:
+ case CachedResource::ImportResource:
if (resource->options().requestOriginPolicy == PotentiallyCrossOriginEnabled
&& !m_document->securityOrigin()->canRequest(resource->response().url())
&& !resource->passesAccessControlCheck(m_document->securityOrigin(), error)) {
@@ -566,6 +577,7 @@ void CachedResourceLoader::determineTargetType(ResourceRequest& request, CachedR
break;
case CachedResource::ShaderResource:
case CachedResource::RawResource:
+ case CachedResource::ImportResource:
targetType = ResourceRequest::TargetIsSubresource;
break;
case CachedResource::LinkPrefetch:

Powered by Google App Engine
This is Rietveld 408576698