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

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

Issue 1595793002: Revert of Add <link rel=preload> onload support for scripts and styles (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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 0b4f4663fde719bd71d37f729de9a50fb225628c..7db397a9e10fbb0e983f1319cb5d23ea401af82e 100644
--- a/third_party/WebKit/Source/core/loader/LinkLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/LinkLoader.cpp
@@ -90,19 +90,15 @@
m_client->linkLoadingErrored();
}
-void LinkLoader::triggerEvents(const Resource* resource)
-{
+void LinkLoader::notifyFinished(Resource* resource)
+{
+ ASSERT(this->resource() == resource);
+
if (resource->errorOccurred())
m_linkLoadingErrorTimer.startOneShot(0, BLINK_FROM_HERE);
else
m_linkLoadTimer.startOneShot(0, BLINK_FROM_HERE);
-}
-
-void LinkLoader::notifyFinished(Resource* resource)
-{
- ASSERT(this->resource() == resource);
-
- triggerEvents(resource);
+
clearResource();
}
@@ -188,57 +184,31 @@
return Resource::LinkSubresource;
}
-void LinkLoader::createLinkPreloadResourceClient(ResourcePtr<Resource> resource)
-{
- if (!resource)
+static void preloadIfNeeded(const LinkRelAttribute& relAttribute, const KURL& href, Document& document, const String& as)
+{
+ if (!document.loader())
return;
- switch (resource->type()) {
- case Resource::Image:
- break;
- case Resource::Script:
- m_linkPreloadResourceClient = LinkPreloadScriptResourceClient::create(this, toScriptResource(resource.get()));
- break;
- case Resource::CSSStyleSheet:
- m_linkPreloadResourceClient = LinkPreloadStyleResourceClient::create(this, toCSSStyleSheetResource(resource.get()));
- break;
- // TODO(yoav): add support for everything below.
- case Resource::Font:
- break;
- case Resource::Media:
- break;
- case Resource::TextTrack:
- break;
- case Resource::Raw:
- case Resource::LinkSubresource:
- break;
- default:
- ASSERT_NOT_REACHED();
- }
-}
-
-static ResourcePtr<Resource> preloadIfNeeded(const LinkRelAttribute& relAttribute, const KURL& href, Document& document, const String& as)
-{
- if (!document.loader() || !relAttribute.isLinkPreload())
- return nullptr;
-
- UseCounter::count(document, UseCounter::LinkRelPreload);
- ASSERT(RuntimeEnabledFeatures::linkPreloadEnabled());
- if (!href.isValid() || href.isEmpty()) {
- document.addConsoleMessage(ConsoleMessage::create(OtherMessageSource, WarningMessageLevel, String("<link rel=preload> has an invalid `href` value")));
- return nullptr;
- }
- Resource::Type type = LinkLoader::getTypeFromAsAttribute(as, &document);
- ResourceRequest resourceRequest(document.completeURL(href));
- ResourceFetcher::determineRequestContext(resourceRequest, type, false);
- FetchRequest linkRequest(resourceRequest, FetchInitiatorTypeNames::link);
-
- linkRequest.setPriority(document.fetcher()->loadPriority(type, linkRequest));
- Settings* settings = document.settings();
- if (settings && settings->logPreload())
- document.addConsoleMessage(ConsoleMessage::create(OtherMessageSource, DebugMessageLevel, String("Preload triggered for " + href.host() + href.path())));
- linkRequest.setForPreload(true);
- linkRequest.setAvoidBlockingOnLoad(true);
- return document.loader()->startPreload(type, linkRequest);
+
+ if (relAttribute.isLinkPreload()) {
+ UseCounter::count(document, UseCounter::LinkRelPreload);
+ ASSERT(RuntimeEnabledFeatures::linkPreloadEnabled());
+ if (!href.isValid() || href.isEmpty()) {
+ document.addConsoleMessage(ConsoleMessage::create(OtherMessageSource, WarningMessageLevel, String("<link rel=preload> has an invalid `href` value")));
+ return;
+ }
+ Resource::Type type = LinkLoader::getTypeFromAsAttribute(as, &document);
+ ResourceRequest resourceRequest(document.completeURL(href));
+ ResourceFetcher::determineRequestContext(resourceRequest, type, false);
+ FetchRequest linkRequest(resourceRequest, FetchInitiatorTypeNames::link);
+
+ linkRequest.setPriority(document.fetcher()->loadPriority(type, linkRequest));
+ Settings* settings = document.settings();
+ if (settings && settings->logPreload())
+ document.addConsoleMessage(ConsoleMessage::create(OtherMessageSource, DebugMessageLevel, String("Preload triggered for " + href.host() + href.path())));
+ linkRequest.setForPreload(true);
+ linkRequest.setAvoidBlockingOnLoad(true);
+ document.loader()->startPreload(type, linkRequest);
+ }
}
bool LinkLoader::loadLinkFromHeader(const String& headerValue, Document* document, const NetworkHintsInterface& networkHintsInterface, CanLoadResources canLoadResources)
@@ -278,7 +248,7 @@
preconnectIfNeeded(relAttribute, href, document, crossOrigin, networkHintsInterface, LinkCalledFromMarkup);
if (m_client->shouldLoadLink())
- createLinkPreloadResourceClient(preloadIfNeeded(relAttribute, href, document, as));
+ preloadIfNeeded(relAttribute, href, document, as);
// FIXME(crbug.com/323096): Should take care of import.
if ((relAttribute.isLinkPrefetch() || relAttribute.isLinkSubresource()) && href.isValid() && document.frame()) {
@@ -326,7 +296,6 @@
DEFINE_TRACE(LinkLoader)
{
visitor->trace(m_prerender);
- visitor->trace(m_linkPreloadResourceClient);
-}
-
-}
+}
+
+}
« no previous file with comments | « third_party/WebKit/Source/core/loader/LinkLoader.h ('k') | third_party/WebKit/Source/core/loader/LinkPreloadResourceClients.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698