Chromium Code Reviews| Index: third_party/WebKit/Source/platform/network/NetworkHints.cpp |
| diff --git a/third_party/WebKit/Source/platform/network/NetworkHints.cpp b/third_party/WebKit/Source/platform/network/NetworkHints.cpp |
| index c2c99f7c232bf9945552c288d0cd6cb31acfedc8..f780329c63b9c5b859466000510ef3e61eddc5c9 100644 |
| --- a/third_party/WebKit/Source/platform/network/NetworkHints.cpp |
| +++ b/third_party/WebKit/Source/platform/network/NetworkHints.cpp |
| @@ -27,11 +27,12 @@ |
| #include "platform/network/NetworkHints.h" |
| #include "public/platform/Platform.h" |
| +#include "public/platform/ServiceRegistry.h" |
| #include "public/platform/WebPrescientNetworking.h" |
| namespace blink { |
| -void prefetchDNS(const String& hostname) |
| +void speculativePrefetchDNS(const String& hostname) |
| { |
| if (WebPrescientNetworking* prescientNetworking = Platform::current()->prescientNetworking()) |
| prescientNetworking->prefetchDNS(hostname); |
| @@ -39,10 +40,36 @@ void prefetchDNS(const String& hostname) |
| void preconnect(const KURL& url, const CrossOriginAttributeValue crossOrigin) |
| { |
| - if (WebPrescientNetworking* prescientNetworking = Platform::current()->prescientNetworking()) { |
| - bool allowCredentials = (crossOrigin != CrossOriginAttributeAnonymous); |
| - prescientNetworking->preconnect(url, allowCredentials); |
| - } |
| + ResourceHintsDispatcher::instance().preconnect(url, crossOrigin, 1); |
| +} |
| + |
| +void prefetchDNS(const KURL& url) |
| +{ |
| + ResourceHintsDispatcher::instance().preresolve(url); |
| +} |
| + |
| +// static |
| +ResourceHintsDispatcher& ResourceHintsDispatcher::instance() |
| +{ |
| + DEFINE_STATIC_LOCAL(ResourceHintsDispatcher, dispatcher, ()); |
|
kinuko
2016/06/09 07:09:19
For platform-level mojo calls I'm still not fully
Charlie Harrison
2016/06/10 14:20:00
Good idea. This will make testing simpler too (I t
|
| + return dispatcher; |
| +} |
| + |
| +void ResourceHintsDispatcher::preconnect(const KURL& url, CrossOriginAttributeValue crossOrigin, int numConnections) |
| +{ |
| + bool credentialsFlag = (crossOrigin != CrossOriginAttributeAnonymous); |
| + m_host->DispatchPreconnect(url, credentialsFlag, numConnections); |
| +} |
| + |
| +void ResourceHintsDispatcher::preresolve(const KURL& url) |
| +{ |
| + m_host->DispatchPreresolve(url); |
| +} |
| + |
| +ResourceHintsDispatcher::ResourceHintsDispatcher() |
| +{ |
| + DCHECK(!m_host.is_bound()); |
|
yzshen1
2016/06/08 17:40:53
nit: this DCHECK is not very useful because defaul
Charlie Harrison
2016/06/10 14:20:00
Done.
|
| + Platform::current()->serviceRegistry()->connectToRemoteService(mojo::GetProxy(&m_host)); |
| } |
| } // namespace blink |