diff options
author | samuong <samuong@chromium.org> | 2016-01-15 16:50:27 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-16 00:51:33 +0000 |
commit | 9c44829b387dee90ccb64b1dccebce206bb2aae0 (patch) | |
tree | 4ea51f5d3a7775911b42554244599c0f400da23b /third_party/WebKit/Source | |
parent | cb3a909ff4878d3f491c881b1913e85e94308d64 (diff) | |
download | chromium_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')
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 |