Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: third_party/WebKit/Source/core/loader/LinkLoader.cpp

Issue 1647813003: Remove support for <link rel=subresource> (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed and deleted tests Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 break; 200 break;
201 case Resource::CSSStyleSheet: 201 case Resource::CSSStyleSheet:
202 m_linkPreloadResourceClient = LinkPreloadStyleResourceClient::create(thi s, toCSSStyleSheetResource(resource.get())); 202 m_linkPreloadResourceClient = LinkPreloadStyleResourceClient::create(thi s, toCSSStyleSheetResource(resource.get()));
203 break; 203 break;
204 case Resource::Font: 204 case Resource::Font:
205 m_linkPreloadResourceClient = LinkPreloadFontResourceClient::create(this , toFontResource(resource.get())); 205 m_linkPreloadResourceClient = LinkPreloadFontResourceClient::create(this , toFontResource(resource.get()));
206 break; 206 break;
207 case Resource::Media: 207 case Resource::Media:
208 case Resource::TextTrack: 208 case Resource::TextTrack:
209 case Resource::Raw: 209 case Resource::Raw:
210 case Resource::LinkSubresource: 210 case Resource::LinkPreload:
211 m_linkPreloadResourceClient = LinkPreloadRawResourceClient::create(this, toRawResource(resource.get())); 211 m_linkPreloadResourceClient = LinkPreloadRawResourceClient::create(this, toRawResource(resource.get()));
212 break; 212 break;
213 default: 213 default:
214 ASSERT_NOT_REACHED(); 214 ASSERT_NOT_REACHED();
215 } 215 }
216 } 216 }
217 217
218 static ResourcePtr<Resource> preloadIfNeeded(const LinkRelAttribute& relAttribut e, const KURL& href, Document& document, const String& as, LinkCaller caller) 218 static ResourcePtr<Resource> preloadIfNeeded(const LinkRelAttribute& relAttribut e, const KURL& href, Document& document, const String& as, LinkCaller caller)
219 { 219 {
220 if (!document.loader() || !relAttribute.isLinkPreload()) 220 if (!document.loader() || !relAttribute.isLinkPreload())
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 279
280 preconnectIfNeeded(relAttribute, href, document, crossOrigin, networkHintsIn terface, LinkCalledFromMarkup); 280 preconnectIfNeeded(relAttribute, href, document, crossOrigin, networkHintsIn terface, LinkCalledFromMarkup);
281 281
282 if (m_client->shouldLoadLink()) 282 if (m_client->shouldLoadLink())
283 createLinkPreloadResourceClient(preloadIfNeeded(relAttribute, href, docu ment, as, LinkCalledFromMarkup)); 283 createLinkPreloadResourceClient(preloadIfNeeded(relAttribute, href, docu ment, as, LinkCalledFromMarkup));
284 284
285 if (href.isEmpty() || !href.isValid()) 285 if (href.isEmpty() || !href.isValid())
286 released(); 286 released();
287 287
288 // FIXME(crbug.com/323096): Should take care of import. 288 // FIXME(crbug.com/323096): Should take care of import.
289 if ((relAttribute.isLinkPrefetch() || relAttribute.isLinkSubresource()) && h ref.isValid() && document.frame()) { 289 if (relAttribute.isLinkPrefetch() && href.isValid() && document.frame()) {
290 if (!m_client->shouldLoadLink()) 290 if (!m_client->shouldLoadLink())
291 return false; 291 return false;
292 Resource::Type type = Resource::LinkPrefetch; 292 UseCounter::count(document, UseCounter::LinkRelPrefetch);
293 if (relAttribute.isLinkSubresource()) {
294 type = Resource::LinkSubresource;
295 UseCounter::count(document, UseCounter::LinkRelSubresource);
296 } else {
297 UseCounter::count(document, UseCounter::LinkRelPrefetch);
298 }
299 293
300 FetchRequest linkRequest(ResourceRequest(document.completeURL(href)), Fe tchInitiatorTypeNames::link); 294 FetchRequest linkRequest(ResourceRequest(document.completeURL(href)), Fe tchInitiatorTypeNames::link);
301 if (crossOrigin != CrossOriginAttributeNotSet) 295 if (crossOrigin != CrossOriginAttributeNotSet)
302 linkRequest.setCrossOriginAccessControl(document.securityOrigin(), c rossOrigin); 296 linkRequest.setCrossOriginAccessControl(document.securityOrigin(), c rossOrigin);
303 setResource(LinkFetchResource::fetch(type, linkRequest, document.fetcher ())); 297 setResource(LinkFetchResource::fetch(Resource::LinkPrefetch, linkRequest , document.fetcher()));
304 } 298 }
305 299
306 if (const unsigned prerenderRelTypes = prerenderRelTypesFromRelAttribute(rel Attribute, document)) { 300 if (const unsigned prerenderRelTypes = prerenderRelTypesFromRelAttribute(rel Attribute, document)) {
307 if (!m_prerender) { 301 if (!m_prerender) {
308 m_prerender = PrerenderHandle::create(document, this, href, prerende rRelTypes); 302 m_prerender = PrerenderHandle::create(document, this, href, prerende rRelTypes);
309 } else if (m_prerender->url() != href) { 303 } else if (m_prerender->url() != href) {
310 m_prerender->cancel(); 304 m_prerender->cancel();
311 m_prerender = PrerenderHandle::create(document, this, href, prerende rRelTypes); 305 m_prerender = PrerenderHandle::create(document, this, href, prerende rRelTypes);
312 } 306 }
313 // TODO(gavinp): Handle changes to rel types of existing prerenders. 307 // TODO(gavinp): Handle changes to rel types of existing prerenders.
(...skipping 18 matching lines...) Expand all
332 326
333 DEFINE_TRACE(LinkLoader) 327 DEFINE_TRACE(LinkLoader)
334 { 328 {
335 visitor->trace(m_client); 329 visitor->trace(m_client);
336 visitor->trace(m_prerender); 330 visitor->trace(m_prerender);
337 visitor->trace(m_linkPreloadResourceClient); 331 visitor->trace(m_linkPreloadResourceClient);
338 ResourceOwner<Resource, ResourceClient>::trace(visitor); 332 ResourceOwner<Resource, ResourceClient>::trace(visitor);
339 } 333 }
340 334
341 } // namespace blink 335 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698