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

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

Issue 15856002: First step of HTMLImports (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 7 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 841708aac540e126a08e4f74de335ce3a7639c52..e630d225c08c0938cdb075c1a7014025cf859a56 100644
--- a/Source/core/loader/cache/CachedResourceLoader.cpp
+++ b/Source/core/loader/cache/CachedResourceLoader.cpp
@@ -76,6 +76,8 @@ static CachedResource* createResource(CachedResource::Type type, ResourceRequest
return new CachedCSSStyleSheet(request, charset);
case CachedResource::Script:
return new CachedScript(request, charset);
+ case CachedResource::HTMLDocumentResource:
+ return new CachedDocument(request, CachedResource::HTMLDocumentResource);
case CachedResource::SVGDocumentResource:
return new CachedDocument(request, CachedResource::SVGDocumentResource);
case CachedResource::FontResource:
@@ -200,6 +202,11 @@ CachedResourceHandle<CachedDocument> CachedResourceLoader::requestSVGDocument(Ca
return static_cast<CachedDocument*>(requestResource(CachedResource::SVGDocumentResource, request).get());
}
+CachedResourceHandle<CachedDocument> CachedResourceLoader::requestHTMLDocument(CachedResourceRequest& request)
+{
+ return static_cast<CachedDocument*>(requestResource(CachedResource::HTMLDocumentResource, request).get());
+}
+
CachedResourceHandle<CachedResource> CachedResourceLoader::requestLinkResource(CachedResource::Type type, CachedResourceRequest& request)
{
ASSERT(frame());
@@ -223,6 +230,7 @@ bool CachedResourceLoader::checkInsecureContent(CachedResource::Type type, const
case CachedResource::Script:
case CachedResource::XSLStyleSheet:
case CachedResource::SVGDocumentResource:
+ case CachedResource::HTMLDocumentResource:
case CachedResource::CSSStyleSheet:
// These resource can inject script into the current document (Script,
// XSL) or exfiltrate the content of the current document (CSS).
@@ -282,6 +290,7 @@ bool CachedResourceLoader::canRequest(CachedResource::Type type, const KURL& url
// FIXME: Are we sure about CachedResource::FontResource?
break;
case CachedResource::SVGDocumentResource:
+ case CachedResource::HTMLDocumentResource:
case CachedResource::XSLStyleSheet:
if (!m_document->securityOrigin()->canRequest(url)) {
printAccessDeniedMessage(url);
@@ -313,6 +322,10 @@ bool CachedResourceLoader::canRequest(CachedResource::Type type, const KURL& url
if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentSecurityPolicy()->allowStyleFromSource(url))
return false;
break;
+ case CachedResource::HTMLDocumentResource:
+ if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentSecurityPolicy()->allowScriptFromSource(url))
+ return false;
+ break;
case CachedResource::SVGDocumentResource:
case CachedResource::ImageResource:
if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentSecurityPolicy()->allowImageFromSource(url))
@@ -464,6 +477,9 @@ void CachedResourceLoader::determineTargetType(ResourceRequest& request, CachedR
case CachedResource::TextTrackResource:
targetType = ResourceRequest::TargetIsTextTrack;
break;
+ case CachedResource::HTMLDocumentResource:
+ targetType = ResourceRequest::TargetIsSubresource;
+ break;
case CachedResource::SVGDocumentResource:
targetType = ResourceRequest::TargetIsImage;
break;
« Source/core/html/LinkResource.h ('K') | « Source/core/loader/cache/CachedResourceLoader.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698