| 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..725c4f3f1192cdf1ebef89e6a40827fd6c4f9222 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,18 +161,22 @@ 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)
|
| {
|
| ResourcePtr<Resource> resource;
|
| + OwnPtr<LinkPreloadResourceClient> resourceClient = nullptr;
|
| switch (type) {
|
| case Resource::Image:
|
| resource = ImageResource::fetch(request, fetcher());
|
| + resourceClient = LinkPreloadImageResourceClient::create(linkLoader, resource.get());
|
| break;
|
| case Resource::Script:
|
| resource = ScriptResource::fetch(request, fetcher());
|
| + resourceClient = LinkPreloadScriptResourceClient::create(linkLoader, resource.get());
|
| break;
|
| case Resource::CSSStyleSheet:
|
| resource = CSSStyleSheetResource::fetch(request, fetcher());
|
| + resourceClient = LinkPreloadStyleResourceClient::create(linkLoader, resource.get());
|
| break;
|
| case Resource::Font:
|
| resource = FontResource::fetch(request, fetcher());
|
| @@ -192,8 +197,12 @@ void DocumentLoader::startPreload(Resource::Type type, FetchRequest& request)
|
| ASSERT_NOT_REACHED();
|
| }
|
|
|
| - if (resource)
|
| - fetcher()->preloadStarted(resource.get());
|
| + if (!resource)
|
| + return;
|
| +
|
| + if (linkLoader)
|
| + linkLoader->setPreloadResourceClient(resourceClient.release());
|
| + fetcher()->preloadStarted(resource.get());
|
| }
|
|
|
| void DocumentLoader::didChangePerformanceTiming()
|
|
|