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

Side by Side Diff: Source/core/fetch/ResourceFetcher.cpp

Issue 114123005: Show media and VTT text tracks in the devtools. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Updated broken test Created 7 years 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
« no previous file with comments | « Source/core/fetch/ResourceFetcher.h ('k') | Source/core/inspector/InspectorPageAgent.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de)
3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) 3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org)
4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org)
5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
6 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ 6 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/
7 7
8 This library is free software; you can redistribute it and/or 8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Library General Public 9 modify it under the terms of the GNU Library General Public
10 License as published by the Free Software Foundation; either 10 License as published by the Free Software Foundation; either
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 return new CSSStyleSheetResource(request, charset); 80 return new CSSStyleSheetResource(request, charset);
81 case Resource::Script: 81 case Resource::Script:
82 return new ScriptResource(request, charset); 82 return new ScriptResource(request, charset);
83 case Resource::SVGDocument: 83 case Resource::SVGDocument:
84 return new DocumentResource(request, Resource::SVGDocument); 84 return new DocumentResource(request, Resource::SVGDocument);
85 case Resource::Font: 85 case Resource::Font:
86 return new FontResource(request); 86 return new FontResource(request);
87 case Resource::MainResource: 87 case Resource::MainResource:
88 case Resource::Raw: 88 case Resource::Raw:
89 case Resource::TextTrack: 89 case Resource::TextTrack:
90 case Resource::Media:
90 return new RawResource(request, type); 91 return new RawResource(request, type);
91 case Resource::XSLStyleSheet: 92 case Resource::XSLStyleSheet:
92 return new XSLStyleSheetResource(request); 93 return new XSLStyleSheetResource(request);
93 case Resource::LinkPrefetch: 94 case Resource::LinkPrefetch:
94 return new Resource(request, Resource::LinkPrefetch); 95 return new Resource(request, Resource::LinkPrefetch);
95 case Resource::LinkSubresource: 96 case Resource::LinkSubresource:
96 return new Resource(request, Resource::LinkSubresource); 97 return new Resource(request, Resource::LinkSubresource);
97 case Resource::Shader: 98 case Resource::Shader:
98 return new ShaderResource(request); 99 return new ShaderResource(request);
99 case Resource::ImportResource: 100 case Resource::ImportResource:
(...skipping 17 matching lines...) Expand all
117 case Resource::Raw: 118 case Resource::Raw:
118 return request.options().synchronousPolicy == RequestSynchronously ? Res ourceLoadPriorityVeryHigh : ResourceLoadPriorityMedium; 119 return request.options().synchronousPolicy == RequestSynchronously ? Res ourceLoadPriorityVeryHigh : ResourceLoadPriorityMedium;
119 case Resource::Script: 120 case Resource::Script:
120 case Resource::Font: 121 case Resource::Font:
121 case Resource::ImportResource: 122 case Resource::ImportResource:
122 return ResourceLoadPriorityMedium; 123 return ResourceLoadPriorityMedium;
123 case Resource::Image: 124 case Resource::Image:
124 // We'll default images to VeryLow, and promote whatever is visible. Thi s improves 125 // We'll default images to VeryLow, and promote whatever is visible. Thi s improves
125 // speed-index by ~5% on average, ~14% at the 99th percentile. 126 // speed-index by ~5% on average, ~14% at the 99th percentile.
126 return ResourceLoadPriorityVeryLow; 127 return ResourceLoadPriorityVeryLow;
128 case Resource::Media:
129 return ResourceLoadPriorityVeryLow;
127 case Resource::XSLStyleSheet: 130 case Resource::XSLStyleSheet:
128 ASSERT(RuntimeEnabledFeatures::xsltEnabled()); 131 ASSERT(RuntimeEnabledFeatures::xsltEnabled());
129 return ResourceLoadPriorityHigh; 132 return ResourceLoadPriorityHigh;
130 case Resource::SVGDocument: 133 case Resource::SVGDocument:
131 return ResourceLoadPriorityLow; 134 return ResourceLoadPriorityLow;
132 case Resource::LinkPrefetch: 135 case Resource::LinkPrefetch:
133 return ResourceLoadPriorityVeryLow; 136 return ResourceLoadPriorityVeryLow;
134 case Resource::LinkSubresource: 137 case Resource::LinkSubresource:
135 return ResourceLoadPriorityLow; 138 return ResourceLoadPriorityLow;
136 case Resource::TextTrack: 139 case Resource::TextTrack:
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 case Resource::ImportResource: 205 case Resource::ImportResource:
203 return ResourceRequest::TargetIsSubresource; 206 return ResourceRequest::TargetIsSubresource;
204 case Resource::LinkPrefetch: 207 case Resource::LinkPrefetch:
205 return ResourceRequest::TargetIsPrefetch; 208 return ResourceRequest::TargetIsPrefetch;
206 case Resource::LinkSubresource: 209 case Resource::LinkSubresource:
207 return ResourceRequest::TargetIsSubresource; 210 return ResourceRequest::TargetIsSubresource;
208 case Resource::TextTrack: 211 case Resource::TextTrack:
209 return ResourceRequest::TargetIsTextTrack; 212 return ResourceRequest::TargetIsTextTrack;
210 case Resource::SVGDocument: 213 case Resource::SVGDocument:
211 return ResourceRequest::TargetIsImage; 214 return ResourceRequest::TargetIsImage;
215 case Resource::Media:
216 return ResourceRequest::TargetIsMedia;
212 } 217 }
213 ASSERT_NOT_REACHED(); 218 ASSERT_NOT_REACHED();
214 return ResourceRequest::TargetIsSubresource; 219 return ResourceRequest::TargetIsSubresource;
215 } 220 }
216 221
217 ResourceFetcher::ResourceFetcher(DocumentLoader* documentLoader) 222 ResourceFetcher::ResourceFetcher(DocumentLoader* documentLoader)
218 : m_document(0) 223 : m_document(0)
219 , m_documentLoader(documentLoader) 224 , m_documentLoader(documentLoader)
220 , m_requestCount(0) 225 , m_requestCount(0)
221 , m_garbageCollectDocumentResourcesTimer(this, &ResourceFetcher::garbageColl ectDocumentResourcesTimerFired) 226 , m_garbageCollectDocumentResourcesTimer(this, &ResourceFetcher::garbageColl ectDocumentResourcesTimerFired)
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 ResourcePtr<RawResource> ResourceFetcher::fetchRawResource(FetchRequest& request ) 369 ResourcePtr<RawResource> ResourceFetcher::fetchRawResource(FetchRequest& request )
365 { 370 {
366 return toRawResource(requestResource(Resource::Raw, request)); 371 return toRawResource(requestResource(Resource::Raw, request));
367 } 372 }
368 373
369 ResourcePtr<RawResource> ResourceFetcher::fetchMainResource(FetchRequest& reques t) 374 ResourcePtr<RawResource> ResourceFetcher::fetchMainResource(FetchRequest& reques t)
370 { 375 {
371 return toRawResource(requestResource(Resource::MainResource, request)); 376 return toRawResource(requestResource(Resource::MainResource, request));
372 } 377 }
373 378
379 ResourcePtr<RawResource> ResourceFetcher::fetchMedia(FetchRequest& request)
380 {
381 return toRawResource(requestResource(Resource::Media, request));
382 }
383
384 ResourcePtr<RawResource> ResourceFetcher::fetchTextTrack(FetchRequest& request)
385 {
386 return toRawResource(requestResource(Resource::TextTrack, request));
387 }
388
389
374 bool ResourceFetcher::checkInsecureContent(Resource::Type type, const KURL& url, MixedContentBlockingTreatment treatment) const 390 bool ResourceFetcher::checkInsecureContent(Resource::Type type, const KURL& url, MixedContentBlockingTreatment treatment) const
375 { 391 {
376 if (treatment == TreatAsDefaultForType) { 392 if (treatment == TreatAsDefaultForType) {
377 switch (type) { 393 switch (type) {
378 case Resource::XSLStyleSheet: 394 case Resource::XSLStyleSheet:
379 ASSERT(RuntimeEnabledFeatures::xsltEnabled()); 395 ASSERT(RuntimeEnabledFeatures::xsltEnabled());
380 case Resource::Script: 396 case Resource::Script:
381 case Resource::SVGDocument: 397 case Resource::SVGDocument:
382 case Resource::CSSStyleSheet: 398 case Resource::CSSStyleSheet:
383 case Resource::ImportResource: 399 case Resource::ImportResource:
384 // These resource can inject script into the current document (Scrip t, 400 // These resource can inject script into the current document (Scrip t,
385 // XSL) or exfiltrate the content of the current document (CSS). 401 // XSL) or exfiltrate the content of the current document (CSS).
386 treatment = TreatAsActiveContent; 402 treatment = TreatAsActiveContent;
387 break; 403 break;
388 404
389 case Resource::TextTrack: 405 case Resource::TextTrack:
390 case Resource::Shader: 406 case Resource::Shader:
391 case Resource::Raw: 407 case Resource::Raw:
392 case Resource::Image: 408 case Resource::Image:
393 case Resource::Font: 409 case Resource::Font:
410 case Resource::Media:
394 // These resources can corrupt only the frame's pixels. 411 // These resources can corrupt only the frame's pixels.
395 treatment = TreatAsPassiveContent; 412 treatment = TreatAsPassiveContent;
396 break; 413 break;
397 414
398 case Resource::MainResource: 415 case Resource::MainResource:
399 case Resource::LinkPrefetch: 416 case Resource::LinkPrefetch:
400 case Resource::LinkSubresource: 417 case Resource::LinkSubresource:
401 // These cannot affect the current document. 418 // These cannot affect the current document.
402 treatment = TreatAsAlwaysAllowedContent; 419 treatment = TreatAsAlwaysAllowedContent;
403 break; 420 break;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 case Resource::Image: 464 case Resource::Image:
448 case Resource::CSSStyleSheet: 465 case Resource::CSSStyleSheet:
449 case Resource::Script: 466 case Resource::Script:
450 case Resource::Font: 467 case Resource::Font:
451 case Resource::Raw: 468 case Resource::Raw:
452 case Resource::LinkPrefetch: 469 case Resource::LinkPrefetch:
453 case Resource::LinkSubresource: 470 case Resource::LinkSubresource:
454 case Resource::TextTrack: 471 case Resource::TextTrack:
455 case Resource::Shader: 472 case Resource::Shader:
456 case Resource::ImportResource: 473 case Resource::ImportResource:
474 case Resource::Media:
457 // By default these types of resources can be loaded from any origin. 475 // By default these types of resources can be loaded from any origin.
458 // FIXME: Are we sure about Resource::Font? 476 // FIXME: Are we sure about Resource::Font?
459 if (originRestriction == FetchRequest::RestrictToSameOrigin && !security Origin->canRequest(url)) { 477 if (originRestriction == FetchRequest::RestrictToSameOrigin && !security Origin->canRequest(url)) {
460 printAccessDeniedMessage(url); 478 printAccessDeniedMessage(url);
461 return false; 479 return false;
462 } 480 }
463 break; 481 break;
464 case Resource::XSLStyleSheet: 482 case Resource::XSLStyleSheet:
465 ASSERT(RuntimeEnabledFeatures::xsltEnabled()); 483 ASSERT(RuntimeEnabledFeatures::xsltEnabled());
466 case Resource::SVGDocument: 484 case Resource::SVGDocument:
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 case Resource::Font: { 522 case Resource::Font: {
505 if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentS ecurityPolicy()->allowFontFromSource(url)) 523 if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentS ecurityPolicy()->allowFontFromSource(url))
506 return false; 524 return false;
507 break; 525 break;
508 } 526 }
509 case Resource::MainResource: 527 case Resource::MainResource:
510 case Resource::Raw: 528 case Resource::Raw:
511 case Resource::LinkPrefetch: 529 case Resource::LinkPrefetch:
512 case Resource::LinkSubresource: 530 case Resource::LinkSubresource:
513 break; 531 break;
532 case Resource::Media:
514 case Resource::TextTrack: 533 case Resource::TextTrack:
515 if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentS ecurityPolicy()->allowMediaFromSource(url)) 534 if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentS ecurityPolicy()->allowMediaFromSource(url))
516 return false; 535 return false;
517 break; 536 break;
518 } 537 }
519 538
520 // Last of all, check for insecure content. We do this last so that when 539 // Last of all, check for insecure content. We do this last so that when
521 // folks block insecure content with a CSP policy, they don't get a warning. 540 // folks block insecure content with a CSP policy, they don't get a warning.
522 // They'll still get a warning in the console about CSP blocking the load. 541 // They'll still get a warning in the console about CSP blocking the load.
523 542
(...skipping 799 matching lines...) Expand 10 before | Expand all | Expand 10 after
1323 } 1342 }
1324 #endif 1343 #endif
1325 1344
1326 const ResourceLoaderOptions& ResourceFetcher::defaultResourceOptions() 1345 const ResourceLoaderOptions& ResourceFetcher::defaultResourceOptions()
1327 { 1346 {
1328 DEFINE_STATIC_LOCAL(ResourceLoaderOptions, options, (SniffContent, BufferDat a, AllowStoredCredentials, ClientRequestedCredentials, AskClientForCrossOriginCr edentials, DoSecurityCheck, CheckContentSecurityPolicy, DocumentContext)); 1347 DEFINE_STATIC_LOCAL(ResourceLoaderOptions, options, (SniffContent, BufferDat a, AllowStoredCredentials, ClientRequestedCredentials, AskClientForCrossOriginCr edentials, DoSecurityCheck, CheckContentSecurityPolicy, DocumentContext));
1329 return options; 1348 return options;
1330 } 1349 }
1331 1350
1332 } 1351 }
OLDNEW
« no previous file with comments | « Source/core/fetch/ResourceFetcher.h ('k') | Source/core/inspector/InspectorPageAgent.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698