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

Side by Side Diff: third_party/WebKit/Source/core/html/parser/CSSPreloadScanner.cpp

Issue 2780533002: Use Referrer-Policy headers for CSS stylesheets (Closed)
Patch Set: rebase Created 3 years, 8 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) 2008, 2010 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008, 2010 Apple Inc. All Rights Reserved.
3 * Copyright (C) 2009 Torch Mobile, Inc. http://www.torchmobile.com/ 3 * Copyright (C) 2009 Torch Mobile, Inc. http://www.torchmobile.com/
4 * Copyright (C) 2010 Google Inc. All Rights Reserved. 4 * Copyright (C) 2010 Google Inc. All Rights Reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 m_preloader(preloader), 261 m_preloader(preloader),
262 m_resource(toCSSStyleSheetResource(resource)) { 262 m_resource(toCSSStyleSheetResource(resource)) {
263 m_resource->addClient(this, Resource::DontMarkAsReferenced); 263 m_resource->addClient(this, Resource::DontMarkAsReferenced);
264 } 264 }
265 265
266 CSSPreloaderResourceClient::~CSSPreloaderResourceClient() {} 266 CSSPreloaderResourceClient::~CSSPreloaderResourceClient() {}
267 267
268 void CSSPreloaderResourceClient::setCSSStyleSheet( 268 void CSSPreloaderResourceClient::setCSSStyleSheet(
269 const String& href, 269 const String& href,
270 const KURL& baseURL, 270 const KURL& baseURL,
271 ReferrerPolicy referrerPolicy,
271 const String& charset, 272 const String& charset,
272 const CSSStyleSheetResource*) { 273 const CSSStyleSheetResource*) {
273 clearResource(); 274 clearResource();
274 } 275 }
275 276
276 // Only attach for one appendData call, as that's where most imports will likely 277 // Only attach for one appendData call, as that's where most imports will likely
277 // be (according to spec). 278 // be (according to spec).
278 void CSSPreloaderResourceClient::didAppendFirstData( 279 void CSSPreloaderResourceClient::didAppendFirstData(
279 const CSSStyleSheetResource* resource) { 280 const CSSStyleSheetResource* resource) {
280 if (m_preloader) 281 if (m_preloader)
(...skipping 14 matching lines...) Expand all
295 // file/line information. 296 // file/line information.
296 // TODO(csharrison): If this becomes an issue the CSSPreloadScanner may be 297 // TODO(csharrison): If this becomes an issue the CSSPreloadScanner may be
297 // augmented to take care of this case without performing an additional 298 // augmented to take care of this case without performing an additional
298 // copy. 299 // copy.
299 double startTime = monotonicallyIncreasingTimeMS(); 300 double startTime = monotonicallyIncreasingTimeMS();
300 const String& chunk = resource->sheetText(); 301 const String& chunk = resource->sheetText();
301 if (chunk.isNull()) 302 if (chunk.isNull())
302 return; 303 return;
303 CSSPreloadScanner cssPreloadScanner; 304 CSSPreloadScanner cssPreloadScanner;
304 PreloadRequestStream preloads; 305 PreloadRequestStream preloads;
305 cssPreloadScanner.scan(chunk, SegmentedString(), preloads, 306 cssPreloadScanner.scan(chunk, SegmentedString(), preloads,
estark 2017/03/28 11:26:23 I don't know this code very well, so I might be mi
jochen (gone - plz use gerrit) 2017/03/28 13:08:34 Excellent catch! I don't know that code either, s
306 resource->response().url()); 307 resource->response().url());
307 DEFINE_STATIC_LOCAL(CustomCountHistogram, cssScanTimeHistogram, 308 DEFINE_STATIC_LOCAL(CustomCountHistogram, cssScanTimeHistogram,
308 ("PreloadScanner.ExternalCSS.ScanTime", 1, 1000000, 50)); 309 ("PreloadScanner.ExternalCSS.ScanTime", 1, 1000000, 50));
309 cssScanTimeHistogram.count((monotonicallyIncreasingTimeMS() - startTime) * 310 cssScanTimeHistogram.count((monotonicallyIncreasingTimeMS() - startTime) *
310 1000); 311 1000);
311 fetchPreloads(preloads); 312 fetchPreloads(preloads);
312 } 313 }
313 314
314 void CSSPreloaderResourceClient::fetchPreloads(PreloadRequestStream& preloads) { 315 void CSSPreloaderResourceClient::fetchPreloads(PreloadRequestStream& preloads) {
315 if (preloads.size()) { 316 if (preloads.size()) {
(...skipping 30 matching lines...) Expand all
346 m_resource.clear(); 347 m_resource.clear();
347 } 348 }
348 349
349 DEFINE_TRACE(CSSPreloaderResourceClient) { 350 DEFINE_TRACE(CSSPreloaderResourceClient) {
350 visitor->trace(m_preloader); 351 visitor->trace(m_preloader);
351 visitor->trace(m_resource); 352 visitor->trace(m_resource);
352 StyleSheetResourceClient::trace(visitor); 353 StyleSheetResourceClient::trace(visitor);
353 } 354 }
354 355
355 } // namespace blink 356 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698