summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/Source
diff options
context:
space:
mode:
authorsamuong <samuong@chromium.org>2016-01-15 16:50:27 -0800
committerCommit bot <commit-bot@chromium.org>2016-01-16 00:51:33 +0000
commit9c44829b387dee90ccb64b1dccebce206bb2aae0 (patch)
tree4ea51f5d3a7775911b42554244599c0f400da23b /third_party/WebKit/Source
parentcb3a909ff4878d3f491c881b1913e85e94308d64 (diff)
downloadchromium_src-9c44829b387dee90ccb64b1dccebce206bb2aae0.zip
chromium_src-9c44829b387dee90ccb64b1dccebce206bb2aae0.tar.gz
chromium_src-9c44829b387dee90ccb64b1dccebce206bb2aae0.tar.bz2
Revert of Add <link rel=preload> onload support for scripts and styles (patchset #11 id:200001 of https://codereview.chromium.org/1577073005/ )
Reason for revert: it broke the compile step on the WebKit Linux Oilpan Builder: http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Oilpan%20Builder/builds/451 Original issue's description: > Add <link rel=preload> onload support for scripts and styles > > This CL adds onload support for <link rel=preload> for scripts and styles. > > Support for other resource types will be added in a followup CL. > > BUG=552289 > > Committed: https://crrev.com/f85424718ca7a8ea3f330141ee68b717ae02f2f0 > Cr-Commit-Position: refs/heads/master@{#369892} TBR=japhet@chromium.org,yoav@yoav.ws # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=552289 Review URL: https://codereview.chromium.org/1595793002 Cr-Commit-Position: refs/heads/master@{#369897}
Diffstat (limited to 'third_party/WebKit/Source')
-rw-r--r--third_party/WebKit/Source/core/core.gypi2
-rw-r--r--third_party/WebKit/Source/core/loader/DocumentLoader.cpp3
-rw-r--r--third_party/WebKit/Source/core/loader/DocumentLoader.h2
-rw-r--r--third_party/WebKit/Source/core/loader/LinkLoader.cpp81
-rw-r--r--third_party/WebKit/Source/core/loader/LinkLoader.h5
-rw-r--r--third_party/WebKit/Source/core/loader/LinkPreloadResourceClients.cpp17
-rw-r--r--third_party/WebKit/Source/core/loader/LinkPreloadResourceClients.h84
7 files changed, 27 insertions, 167 deletions
diff --git a/third_party/WebKit/Source/core/core.gypi b/third_party/WebKit/Source/core/core.gypi
index 146d839..4909759 100644
--- a/third_party/WebKit/Source/core/core.gypi
+++ b/third_party/WebKit/Source/core/core.gypi
@@ -1878,8 +1878,6 @@
'loader/LinkLoader.cpp',
'loader/LinkLoader.h',
'loader/LinkLoaderClient.h',
- 'loader/LinkPreloadResourceClients.cpp',
- 'loader/LinkPreloadResourceClients.h',
'loader/MixedContentChecker.cpp',
'loader/MixedContentChecker.h',
'loader/NavigationPolicy.cpp',
diff --git a/third_party/WebKit/Source/core/loader/DocumentLoader.cpp b/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
index 5dafb42..f17bb79 100644
--- a/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
@@ -160,7 +160,7 @@ const KURL& DocumentLoader::url() const
return m_request.url();
}
-ResourcePtr<Resource> DocumentLoader::startPreload(Resource::Type type, FetchRequest& request)
+void DocumentLoader::startPreload(Resource::Type type, FetchRequest& request)
{
ResourcePtr<Resource> resource;
switch (type) {
@@ -194,7 +194,6 @@ ResourcePtr<Resource> DocumentLoader::startPreload(Resource::Type type, FetchReq
if (resource)
fetcher()->preloadStarted(resource.get());
- return resource;
}
void DocumentLoader::didChangePerformanceTiming()
diff --git a/third_party/WebKit/Source/core/loader/DocumentLoader.h b/third_party/WebKit/Source/core/loader/DocumentLoader.h
index a7731d2..ec58033 100644
--- a/third_party/WebKit/Source/core/loader/DocumentLoader.h
+++ b/third_party/WebKit/Source/core/loader/DocumentLoader.h
@@ -146,7 +146,7 @@ public:
bool loadingMultipartContent() const;
- ResourcePtr<Resource> startPreload(Resource::Type, FetchRequest&);
+ void startPreload(Resource::Type, FetchRequest&);
DECLARE_VIRTUAL_TRACE();
diff --git a/third_party/WebKit/Source/core/loader/LinkLoader.cpp b/third_party/WebKit/Source/core/loader/LinkLoader.cpp
index 0b4f466..7db397a 100644
--- a/third_party/WebKit/Source/core/loader/LinkLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/LinkLoader.cpp
@@ -90,19 +90,15 @@ void LinkLoader::linkLoadingErrorTimerFired(Timer<LinkLoader>* timer)
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 @@ Resource::Type LinkLoader::getTypeFromAsAttribute(const String& as, Document* do
return Resource::LinkSubresource;
}
-void LinkLoader::createLinkPreloadResourceClient(ResourcePtr<Resource> resource)
+static void preloadIfNeeded(const LinkRelAttribute& relAttribute, const KURL& href, Document& document, const String& as)
{
- if (!resource)
+ 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;
+ 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);
}
- 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);
}
bool LinkLoader::loadLinkFromHeader(const String& headerValue, Document* document, const NetworkHintsInterface& networkHintsInterface, CanLoadResources canLoadResources)
@@ -278,7 +248,7 @@ bool LinkLoader::loadLink(const LinkRelAttribute& relAttribute, CrossOriginAttri
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 @@ void LinkLoader::released()
DEFINE_TRACE(LinkLoader)
{
visitor->trace(m_prerender);
- visitor->trace(m_linkPreloadResourceClient);
}
}
diff --git a/third_party/WebKit/Source/core/loader/LinkLoader.h b/third_party/WebKit/Source/core/loader/LinkLoader.h
index 2b146b1..bb79b8e 100644
--- a/third_party/WebKit/Source/core/loader/LinkLoader.h
+++ b/third_party/WebKit/Source/core/loader/LinkLoader.h
@@ -36,7 +36,6 @@
#include "core/fetch/ResourceClient.h"
#include "core/fetch/ResourceOwner.h"
#include "core/loader/LinkLoaderClient.h"
-#include "core/loader/LinkPreloadResourceClients.h"
#include "platform/CrossOriginAttributeValue.h"
#include "platform/PrerenderClient.h"
#include "platform/Timer.h"
@@ -67,8 +66,6 @@ public:
void didSendLoadForPrerender() override;
void didSendDOMContentLoadedForPrerender() override;
- void triggerEvents(const Resource*);
-
void released();
bool loadLink(const LinkRelAttribute&, CrossOriginAttributeValue, const String& type, const String& as, const KURL&, Document&, const NetworkHintsInterface&);
enum CanLoadResources { LoadResources, DoNotLoadResources };
@@ -80,7 +77,6 @@ public:
private:
void linkLoadTimerFired(Timer<LinkLoader>*);
void linkLoadingErrorTimerFired(Timer<LinkLoader>*);
- void createLinkPreloadResourceClient(ResourcePtr<Resource>);
LinkLoaderClient* m_client;
@@ -88,7 +84,6 @@ private:
Timer<LinkLoader> m_linkLoadingErrorTimer;
OwnPtrWillBeMember<PrerenderHandle> m_prerender;
- OwnPtrWillBeMember<LinkPreloadResourceClient> m_linkPreloadResourceClient;
};
}
diff --git a/third_party/WebKit/Source/core/loader/LinkPreloadResourceClients.cpp b/third_party/WebKit/Source/core/loader/LinkPreloadResourceClients.cpp
deleted file mode 100644
index 27c4bb4d..0000000
--- a/third_party/WebKit/Source/core/loader/LinkPreloadResourceClients.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "core/loader/LinkPreloadResourceClients.h"
-
-#include "core/loader/LinkLoader.h"
-
-namespace blink {
-
-void LinkPreloadResourceClient::triggerEvents(const Resource* resource) const
-{
- if (m_loader)
- m_loader->triggerEvents(resource);
-}
-
-}
diff --git a/third_party/WebKit/Source/core/loader/LinkPreloadResourceClients.h b/third_party/WebKit/Source/core/loader/LinkPreloadResourceClients.h
deleted file mode 100644
index 187f06c..0000000
--- a/third_party/WebKit/Source/core/loader/LinkPreloadResourceClients.h
+++ /dev/null
@@ -1,84 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef LinkPreloadResourceClients_h
-#define LinkPreloadResourceClients_h
-
-#include "core/fetch/CSSStyleSheetResource.h"
-#include "core/fetch/FontResource.h"
-#include "core/fetch/ImageResourceClient.h"
-#include "core/fetch/ResourceOwner.h"
-#include "core/fetch/ScriptResource.h"
-#include "core/fetch/StyleSheetResourceClient.h"
-
-namespace blink {
-
-class LinkLoader;
-
-class LinkPreloadResourceClient : public NoBaseWillBeGarbageCollectedFinalized<LinkPreloadResourceClient> {
-public:
- virtual ~LinkPreloadResourceClient() { }
-
- void triggerEvents(const Resource*) const;
-
-protected:
- LinkPreloadResourceClient(LinkLoader* loader)
- : m_loader(loader)
- {
- ASSERT(loader);
- }
-
-private:
- LinkLoader* m_loader;
-};
-
-class LinkPreloadScriptResourceClient: public LinkPreloadResourceClient, public ResourceOwner<ScriptResource, ScriptResourceClient> {
-public:
- static PassOwnPtr<LinkPreloadScriptResourceClient> create(LinkLoader* loader, ScriptResource* resource)
- {
- return adoptPtr(new LinkPreloadScriptResourceClient(loader, resource));
- }
-
- virtual String debugName() const { return "LinkPreloadScript"; }
-
- void notifyFinished(Resource* resource) override
- {
- ASSERT(this->resource() == resource);
- triggerEvents(resource);
- }
-
-private:
- LinkPreloadScriptResourceClient(LinkLoader* loader, ScriptResource* resource)
- : LinkPreloadResourceClient(loader)
- {
- setResource(resource);
- }
-};
-
-class LinkPreloadStyleResourceClient: public LinkPreloadResourceClient, public ResourceOwner<CSSStyleSheetResource, StyleSheetResourceClient> {
-public:
- static PassOwnPtr<LinkPreloadStyleResourceClient> create(LinkLoader* loader, CSSStyleSheetResource* resource)
- {
- return adoptPtr(new LinkPreloadStyleResourceClient(loader, resource));
- }
-
- virtual String debugName() const { return "LinkPreloadStyle"; }
-
- void setCSSStyleSheet(const String&, const KURL&, const String&, const CSSStyleSheetResource* resource) override
- {
- ASSERT(this->resource() == resource);
- triggerEvents(static_cast<const Resource*>(resource));
- }
-
-private:
- LinkPreloadStyleResourceClient(LinkLoader* loader, CSSStyleSheetResource* resource)
- : LinkPreloadResourceClient(loader)
- {
- setResource(resource);
- }
-};
-
-}
-
-#endif // LinkPreloadResourceClients_h