Chromium Code Reviews| Index: third_party/WebKit/Source/core/loader/DocumentLoader.cpp |
| diff --git a/third_party/WebKit/Source/core/loader/DocumentLoader.cpp b/third_party/WebKit/Source/core/loader/DocumentLoader.cpp |
| index f17bb791a94af1a3547f8417069ebef192336a70..d27bff459d171a139a9802ae40a4f470090389c1 100644 |
| --- a/third_party/WebKit/Source/core/loader/DocumentLoader.cpp |
| +++ b/third_party/WebKit/Source/core/loader/DocumentLoader.cpp |
| @@ -56,6 +56,7 @@ |
| #include "core/loader/FrameLoader.h" |
| #include "core/loader/FrameLoaderClient.h" |
| #include "core/loader/LinkLoader.h" |
| +#include "core/loader/LinkPreloadResourceClients.h" |
| #include "core/loader/ProgressTracker.h" |
| #include "core/loader/appcache/ApplicationCacheHost.h" |
| #include "core/page/FrameTree.h" |
| @@ -160,17 +161,23 @@ const KURL& DocumentLoader::url() const |
| return m_request.url(); |
| } |
| -void DocumentLoader::startPreload(Resource::Type type, FetchRequest& request) |
| +void DocumentLoader::startPreload(Resource::Type type, FetchRequest& request, LinkLoader* linkLoader) |
|
Nate Chapin
2016/01/13 23:52:23
It seems like it would be cleaner to change startP
Yoav Weiss
2016/01/14 10:10:02
Returning things to LinkLoader makes the call from
Nate Chapin
2016/01/14 23:10:53
I don't see how HTMLResourcePreload would need to
|
| { |
| ResourcePtr<Resource> resource; |
| switch (type) { |
| case Resource::Image: |
| + if (linkLoader) |
| + linkLoader->setPreloadResourceClient(LinkPreloadImageResourceClient::create(linkLoader)); |
| resource = ImageResource::fetch(request, fetcher()); |
| break; |
| case Resource::Script: |
| resource = ScriptResource::fetch(request, fetcher()); |
| + if (linkLoader) |
| + linkLoader->setPreloadResourceClient(LinkPreloadScriptResourceClient::create(linkLoader)); |
| break; |
| case Resource::CSSStyleSheet: |
| + if (linkLoader) |
| + linkLoader->setPreloadResourceClient(LinkPreloadStyleResourceClient::create(linkLoader)); |
| resource = CSSStyleSheetResource::fetch(request, fetcher()); |
| break; |
| case Resource::Font: |
| @@ -192,8 +199,12 @@ void DocumentLoader::startPreload(Resource::Type type, FetchRequest& request) |
| ASSERT_NOT_REACHED(); |
| } |
| - if (resource) |
| - fetcher()->preloadStarted(resource.get()); |
| + if (!resource) |
| + return; |
| + |
| + if (linkLoader && linkLoader->preloadResourceClient()) |
| + linkLoader->preloadResourceClient()->callSetResource(resource.get()); |
| + fetcher()->preloadStarted(resource.get()); |
| } |
| void DocumentLoader::didChangePerformanceTiming() |