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

Unified Diff: third_party/WebKit/Source/core/loader/LinkLoader.cpp

Issue 1987413002: Add link preload as=document support Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: crash fix Created 4 years, 3 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: third_party/WebKit/Source/core/loader/LinkLoader.cpp
diff --git a/third_party/WebKit/Source/core/loader/LinkLoader.cpp b/third_party/WebKit/Source/core/loader/LinkLoader.cpp
index 208b30de570ab9194c954f28b6ee10ccecb8cf34..a4e9894daef421bf9c6d189e7f7b588501689831 100644
--- a/third_party/WebKit/Source/core/loader/LinkLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/LinkLoader.cpp
@@ -186,6 +186,8 @@ bool LinkLoader::getResourceTypeFromAsAttribute(const String& as, Resource::Type
type = Resource::Font;
} else if (as == "track") {
type = Resource::TextTrack;
+ } else if (as == "document") {
+ type = Resource::MainResource;
} else {
type = Resource::Raw;
if (!as.isEmpty())
@@ -211,6 +213,9 @@ void LinkLoader::createLinkPreloadResourceClient(Resource* resource)
case Resource::Font:
m_linkPreloadResourceClient = LinkPreloadFontResourceClient::create(this, toFontResource(resource));
break;
+ case Resource::MainResource:
+ m_linkPreloadResourceClient = LinkPreloadRawResourceClient::create(this, toRawResource(resource));
+ break;
case Resource::Media:
case Resource::TextTrack:
case Resource::Raw:
@@ -239,6 +244,7 @@ static bool isSupportedType(Resource::Type resourceType, const String& mimeType)
case Resource::TextTrack:
return MIMETypeRegistry::isSupportedTextTrackMIMEType(mimeType);
case Resource::Raw:
+ case Resource::MainResource:
return true;
default:
ASSERT_NOT_REACHED();
@@ -283,6 +289,8 @@ static Resource* preloadIfNeeded(const LinkRelAttribute& relAttribute, const KUR
return nullptr;
}
ResourceRequest resourceRequest(document.completeURL(href));
+ if (resourceType == Resource::MainResource)
+ resourceRequest.setFrameType(WebURLRequest::FrameTypePreload);
ResourceFetcher::determineRequestContext(resourceRequest, resourceType, false);
FetchRequest linkRequest(resourceRequest, FetchInitiatorTypeNames::link, document.encodingName());
« no previous file with comments | « third_party/WebKit/Source/core/loader/FrameFetchContext.cpp ('k') | third_party/WebKit/Source/core/loader/LinkLoaderTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698