OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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).get()); | |
382 } | |
383 | |
384 ResourcePtr<RawResource> ResourceFetcher::fetchTextTrack(FetchRequest& request) | |
385 { | |
386 return toRawResource(requestResource(Resource::TextTrack, request).get()); | |
387 } | |
388 | |
389 | |
apavlov
2013/12/19 09:31:52
extra blank line
pwnall-personal
2013/12/24 17:52:18
Done.
| |
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 Loading... | |
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 Loading... | |
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 814 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1338 } | 1357 } |
1339 #endif | 1358 #endif |
1340 | 1359 |
1341 const ResourceLoaderOptions& ResourceFetcher::defaultResourceOptions() | 1360 const ResourceLoaderOptions& ResourceFetcher::defaultResourceOptions() |
1342 { | 1361 { |
1343 DEFINE_STATIC_LOCAL(ResourceLoaderOptions, options, (SendCallbacks, SniffCon tent, BufferData, AllowStoredCredentials, ClientRequestedCredentials, AskClientF orCrossOriginCredentials, DoSecurityCheck, CheckContentSecurityPolicy, DocumentC ontext)); | 1362 DEFINE_STATIC_LOCAL(ResourceLoaderOptions, options, (SendCallbacks, SniffCon tent, BufferData, AllowStoredCredentials, ClientRequestedCredentials, AskClientF orCrossOriginCredentials, DoSecurityCheck, CheckContentSecurityPolicy, DocumentC ontext)); |
1344 return options; | 1363 return options; |
1345 } | 1364 } |
1346 | 1365 |
1347 } | 1366 } |
OLD | NEW |