| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 } | 152 } |
| 153 } | 153 } |
| 154 } | 154 } |
| 155 | 155 |
| 156 static void preconnectIfNeeded(const LinkRelAttribute& relAttribute, const KURL&
href, Document& document, const CrossOriginAttributeValue crossOrigin, const Ne
tworkHintsInterface& networkHintsInterface, LinkCaller caller) | 156 static void preconnectIfNeeded(const LinkRelAttribute& relAttribute, const KURL&
href, Document& document, const CrossOriginAttributeValue crossOrigin, const Ne
tworkHintsInterface& networkHintsInterface, LinkCaller caller) |
| 157 { | 157 { |
| 158 if (relAttribute.isPreconnect() && href.isValid() && href.protocolIsInHTTPFa
mily()) { | 158 if (relAttribute.isPreconnect() && href.isValid() && href.protocolIsInHTTPFa
mily()) { |
| 159 UseCounter::count(document, UseCounter::LinkRelPreconnect); | 159 UseCounter::count(document, UseCounter::LinkRelPreconnect); |
| 160 if (caller == LinkCalledFromHeader) | 160 if (caller == LinkCalledFromHeader) |
| 161 UseCounter::count(document, UseCounter::LinkHeaderPreconnect); | 161 UseCounter::count(document, UseCounter::LinkHeaderPreconnect); |
| 162 ASSERT(RuntimeEnabledFeatures::linkPreconnectEnabled()); | |
| 163 Settings* settings = document.settings(); | 162 Settings* settings = document.settings(); |
| 164 if (settings && settings->logDnsPrefetchAndPreconnect()) { | 163 if (settings && settings->logDnsPrefetchAndPreconnect()) { |
| 165 document.addConsoleMessage(ConsoleMessage::create(OtherMessageSource
, DebugMessageLevel, String("Preconnect triggered for ") + href.getString())); | 164 document.addConsoleMessage(ConsoleMessage::create(OtherMessageSource
, DebugMessageLevel, String("Preconnect triggered for ") + href.getString())); |
| 166 if (crossOrigin != CrossOriginAttributeNotSet) { | 165 if (crossOrigin != CrossOriginAttributeNotSet) { |
| 167 document.addConsoleMessage(ConsoleMessage::create(OtherMessageSo
urce, DebugMessageLevel, | 166 document.addConsoleMessage(ConsoleMessage::create(OtherMessageSo
urce, DebugMessageLevel, |
| 168 String("Preconnect CORS setting is ") + String((crossOrigin
== CrossOriginAttributeAnonymous) ? "anonymous" : "use-credentials"))); | 167 String("Preconnect CORS setting is ") + String((crossOrigin
== CrossOriginAttributeAnonymous) ? "anonymous" : "use-credentials"))); |
| 169 } | 168 } |
| 170 } | 169 } |
| 171 networkHintsInterface.preconnectHost(href, crossOrigin); | 170 networkHintsInterface.preconnectHost(href, crossOrigin); |
| 172 } | 171 } |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 | 312 |
| 314 LinkRelAttribute relAttribute(header.rel()); | 313 LinkRelAttribute relAttribute(header.rel()); |
| 315 KURL url(baseURL, header.url()); | 314 KURL url(baseURL, header.url()); |
| 316 // Sanity check to avoid re-entrancy here. | 315 // Sanity check to avoid re-entrancy here. |
| 317 if (url == baseURL) | 316 if (url == baseURL) |
| 318 continue; | 317 continue; |
| 319 if (canLoadResources != OnlyLoadResources) { | 318 if (canLoadResources != OnlyLoadResources) { |
| 320 if (RuntimeEnabledFeatures::linkHeaderEnabled()) | 319 if (RuntimeEnabledFeatures::linkHeaderEnabled()) |
| 321 dnsPrefetchIfNeeded(relAttribute, url, *document, networkHintsIn
terface, LinkCalledFromHeader); | 320 dnsPrefetchIfNeeded(relAttribute, url, *document, networkHintsIn
terface, LinkCalledFromHeader); |
| 322 | 321 |
| 323 if (RuntimeEnabledFeatures::linkPreconnectEnabled()) | 322 preconnectIfNeeded(relAttribute, url, *document, crossOriginAttribut
eValue(header.crossOrigin()), networkHintsInterface, LinkCalledFromHeader); |
| 324 preconnectIfNeeded(relAttribute, url, *document, crossOriginAttr
ibuteValue(header.crossOrigin()), networkHintsInterface, LinkCalledFromHeader); | |
| 325 } | 323 } |
| 326 if (canLoadResources != DoNotLoadResources) { | 324 if (canLoadResources != DoNotLoadResources) { |
| 327 bool errorOccurred = false; | 325 bool errorOccurred = false; |
| 328 if (RuntimeEnabledFeatures::linkPreloadEnabled()) { | 326 if (RuntimeEnabledFeatures::linkPreloadEnabled()) { |
| 329 ViewportDescription* viewportDescription = (viewportDescriptionW
rapper && viewportDescriptionWrapper->set) ? &(viewportDescriptionWrapper->descr
iption) : nullptr; | 327 ViewportDescription* viewportDescription = (viewportDescriptionW
rapper && viewportDescriptionWrapper->set) ? &(viewportDescriptionWrapper->descr
iption) : nullptr; |
| 330 preloadIfNeeded(relAttribute, url, *document, header.as(), heade
r.mimeType(), header.media(), crossOriginAttributeValue(header.crossOrigin()), L
inkCalledFromHeader, errorOccurred, viewportDescription); | 328 preloadIfNeeded(relAttribute, url, *document, header.as(), heade
r.mimeType(), header.media(), crossOriginAttributeValue(header.crossOrigin()), L
inkCalledFromHeader, errorOccurred, viewportDescription); |
| 331 } | 329 } |
| 332 } | 330 } |
| 333 // TODO(yoav): Add more supported headers as needed. | 331 // TODO(yoav): Add more supported headers as needed. |
| 334 } | 332 } |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 DEFINE_TRACE(LinkLoader) | 394 DEFINE_TRACE(LinkLoader) |
| 397 { | 395 { |
| 398 visitor->trace(m_client); | 396 visitor->trace(m_client); |
| 399 visitor->trace(m_prerender); | 397 visitor->trace(m_prerender); |
| 400 visitor->trace(m_linkPreloadResourceClient); | 398 visitor->trace(m_linkPreloadResourceClient); |
| 401 ResourceOwner<Resource, ResourceClient>::trace(visitor); | 399 ResourceOwner<Resource, ResourceClient>::trace(visitor); |
| 402 PrerenderClient::trace(visitor); | 400 PrerenderClient::trace(visitor); |
| 403 } | 401 } |
| 404 | 402 |
| 405 } // namespace blink | 403 } // namespace blink |
| OLD | NEW |