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() |