| 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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 return new CachedScript(request, charset); | 76 return new CachedScript(request, charset); |
| 77 #if ENABLE(SVG) | 77 #if ENABLE(SVG) |
| 78 case CachedResource::SVGDocumentResource: | 78 case CachedResource::SVGDocumentResource: |
| 79 return new CachedSVGDocument(request); | 79 return new CachedSVGDocument(request); |
| 80 #endif | 80 #endif |
| 81 case CachedResource::FontResource: | 81 case CachedResource::FontResource: |
| 82 return new CachedFont(request); | 82 return new CachedFont(request); |
| 83 case CachedResource::RawResource: | 83 case CachedResource::RawResource: |
| 84 case CachedResource::MainResource: | 84 case CachedResource::MainResource: |
| 85 return new CachedRawResource(request, type); | 85 return new CachedRawResource(request, type); |
| 86 #if ENABLE(XSLT) | |
| 87 case CachedResource::XSLStyleSheet: | 86 case CachedResource::XSLStyleSheet: |
| 88 return new CachedXSLStyleSheet(request); | 87 return new CachedXSLStyleSheet(request); |
| 89 #endif | |
| 90 case CachedResource::LinkPrefetch: | 88 case CachedResource::LinkPrefetch: |
| 91 return new CachedResource(request, CachedResource::LinkPrefetch); | 89 return new CachedResource(request, CachedResource::LinkPrefetch); |
| 92 case CachedResource::LinkSubresource: | 90 case CachedResource::LinkSubresource: |
| 93 return new CachedResource(request, CachedResource::LinkSubresource); | 91 return new CachedResource(request, CachedResource::LinkSubresource); |
| 94 case CachedResource::TextTrackResource: | 92 case CachedResource::TextTrackResource: |
| 95 return new CachedTextTrack(request); | 93 return new CachedTextTrack(request); |
| 96 case CachedResource::ShaderResource: | 94 case CachedResource::ShaderResource: |
| 97 return new CachedShader(request); | 95 return new CachedShader(request); |
| 98 } | 96 } |
| 99 ASSERT_NOT_REACHED(); | 97 ASSERT_NOT_REACHED(); |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 userSheet->load(this, ResourceLoaderOptions(DoNotSendCallbacks, SniffContent
, BufferData, AllowStoredCredentials, AskClientForCrossOriginCredentials, SkipSe
curityCheck)); | 194 userSheet->load(this, ResourceLoaderOptions(DoNotSendCallbacks, SniffContent
, BufferData, AllowStoredCredentials, AskClientForCrossOriginCredentials, SkipSe
curityCheck)); |
| 197 | 195 |
| 198 return userSheet; | 196 return userSheet; |
| 199 } | 197 } |
| 200 | 198 |
| 201 CachedResourceHandle<CachedScript> CachedResourceLoader::requestScript(CachedRes
ourceRequest& request) | 199 CachedResourceHandle<CachedScript> CachedResourceLoader::requestScript(CachedRes
ourceRequest& request) |
| 202 { | 200 { |
| 203 return static_cast<CachedScript*>(requestResource(CachedResource::Script, re
quest).get()); | 201 return static_cast<CachedScript*>(requestResource(CachedResource::Script, re
quest).get()); |
| 204 } | 202 } |
| 205 | 203 |
| 206 #if ENABLE(XSLT) | |
| 207 CachedResourceHandle<CachedXSLStyleSheet> CachedResourceLoader::requestXSLStyleS
heet(CachedResourceRequest& request) | 204 CachedResourceHandle<CachedXSLStyleSheet> CachedResourceLoader::requestXSLStyleS
heet(CachedResourceRequest& request) |
| 208 { | 205 { |
| 209 return static_cast<CachedXSLStyleSheet*>(requestResource(CachedResource::XSL
StyleSheet, request).get()); | 206 return static_cast<CachedXSLStyleSheet*>(requestResource(CachedResource::XSL
StyleSheet, request).get()); |
| 210 } | 207 } |
| 211 #endif | |
| 212 | 208 |
| 213 #if ENABLE(SVG) | 209 #if ENABLE(SVG) |
| 214 CachedResourceHandle<CachedSVGDocument> CachedResourceLoader::requestSVGDocument
(CachedResourceRequest& request) | 210 CachedResourceHandle<CachedSVGDocument> CachedResourceLoader::requestSVGDocument
(CachedResourceRequest& request) |
| 215 { | 211 { |
| 216 return static_cast<CachedSVGDocument*>(requestResource(CachedResource::SVGDo
cumentResource, request).get()); | 212 return static_cast<CachedSVGDocument*>(requestResource(CachedResource::SVGDo
cumentResource, request).get()); |
| 217 } | 213 } |
| 218 #endif | 214 #endif |
| 219 | 215 |
| 220 CachedResourceHandle<CachedResource> CachedResourceLoader::requestLinkResource(C
achedResource::Type type, CachedResourceRequest& request) | 216 CachedResourceHandle<CachedResource> CachedResourceLoader::requestLinkResource(C
achedResource::Type type, CachedResourceRequest& request) |
| 221 { | 217 { |
| 222 ASSERT(frame()); | 218 ASSERT(frame()); |
| 223 ASSERT(type == CachedResource::LinkPrefetch || type == CachedResource::LinkS
ubresource); | 219 ASSERT(type == CachedResource::LinkPrefetch || type == CachedResource::LinkS
ubresource); |
| 224 return requestResource(type, request); | 220 return requestResource(type, request); |
| 225 } | 221 } |
| 226 | 222 |
| 227 CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestRawResource
(CachedResourceRequest& request) | 223 CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestRawResource
(CachedResourceRequest& request) |
| 228 { | 224 { |
| 229 return static_cast<CachedRawResource*>(requestResource(CachedResource::RawRe
source, request).get()); | 225 return static_cast<CachedRawResource*>(requestResource(CachedResource::RawRe
source, request).get()); |
| 230 } | 226 } |
| 231 | 227 |
| 232 CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestMainResourc
e(CachedResourceRequest& request) | 228 CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestMainResourc
e(CachedResourceRequest& request) |
| 233 { | 229 { |
| 234 return static_cast<CachedRawResource*>(requestResource(CachedResource::MainR
esource, request).get()); | 230 return static_cast<CachedRawResource*>(requestResource(CachedResource::MainR
esource, request).get()); |
| 235 } | 231 } |
| 236 | 232 |
| 237 bool CachedResourceLoader::checkInsecureContent(CachedResource::Type type, const
KURL& url) const | 233 bool CachedResourceLoader::checkInsecureContent(CachedResource::Type type, const
KURL& url) const |
| 238 { | 234 { |
| 239 switch (type) { | 235 switch (type) { |
| 240 case CachedResource::Script: | 236 case CachedResource::Script: |
| 241 #if ENABLE(XSLT) | |
| 242 case CachedResource::XSLStyleSheet: | 237 case CachedResource::XSLStyleSheet: |
| 243 #endif | |
| 244 #if ENABLE(SVG) | 238 #if ENABLE(SVG) |
| 245 case CachedResource::SVGDocumentResource: | 239 case CachedResource::SVGDocumentResource: |
| 246 #endif | 240 #endif |
| 247 case CachedResource::CSSStyleSheet: | 241 case CachedResource::CSSStyleSheet: |
| 248 // These resource can inject script into the current document (Script, | 242 // These resource can inject script into the current document (Script, |
| 249 // XSL) or exfiltrate the content of the current document (CSS). | 243 // XSL) or exfiltrate the content of the current document (CSS). |
| 250 if (Frame* f = frame()) | 244 if (Frame* f = frame()) |
| 251 if (!f->loader()->mixedContentChecker()->canRunInsecureContent(m_doc
ument->securityOrigin(), url)) | 245 if (!f->loader()->mixedContentChecker()->canRunInsecureContent(m_doc
ument->securityOrigin(), url)) |
| 252 return false; | 246 return false; |
| 253 break; | 247 break; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 298 case CachedResource::LinkPrefetch: | 292 case CachedResource::LinkPrefetch: |
| 299 case CachedResource::LinkSubresource: | 293 case CachedResource::LinkSubresource: |
| 300 case CachedResource::TextTrackResource: | 294 case CachedResource::TextTrackResource: |
| 301 case CachedResource::ShaderResource: | 295 case CachedResource::ShaderResource: |
| 302 // These types of resources can be loaded from any origin. | 296 // These types of resources can be loaded from any origin. |
| 303 // FIXME: Are we sure about CachedResource::FontResource? | 297 // FIXME: Are we sure about CachedResource::FontResource? |
| 304 break; | 298 break; |
| 305 #if ENABLE(SVG) | 299 #if ENABLE(SVG) |
| 306 case CachedResource::SVGDocumentResource: | 300 case CachedResource::SVGDocumentResource: |
| 307 #endif | 301 #endif |
| 308 #if ENABLE(XSLT) | |
| 309 case CachedResource::XSLStyleSheet: | 302 case CachedResource::XSLStyleSheet: |
| 310 if (!m_document->securityOrigin()->canRequest(url)) { | 303 if (!m_document->securityOrigin()->canRequest(url)) { |
| 311 printAccessDeniedMessage(url); | 304 printAccessDeniedMessage(url); |
| 312 return false; | 305 return false; |
| 313 } | 306 } |
| 314 #endif | |
| 315 break; | 307 break; |
| 316 } | 308 } |
| 317 | 309 |
| 318 switch (type) { | 310 switch (type) { |
| 319 #if ENABLE(XSLT) | |
| 320 case CachedResource::XSLStyleSheet: | 311 case CachedResource::XSLStyleSheet: |
| 321 if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentS
ecurityPolicy()->allowScriptFromSource(url)) | 312 if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentS
ecurityPolicy()->allowScriptFromSource(url)) |
| 322 return false; | 313 return false; |
| 323 break; | 314 break; |
| 324 #endif | |
| 325 case CachedResource::Script: | 315 case CachedResource::Script: |
| 326 if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentS
ecurityPolicy()->allowScriptFromSource(url)) | 316 if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentS
ecurityPolicy()->allowScriptFromSource(url)) |
| 327 return false; | 317 return false; |
| 328 | 318 |
| 329 if (frame()) { | 319 if (frame()) { |
| 330 Settings* settings = frame()->settings(); | 320 Settings* settings = frame()->settings(); |
| 331 if (!frame()->loader()->client()->allowScriptFromSource(!settings ||
settings->isScriptEnabled(), url)) { | 321 if (!frame()->loader()->client()->allowScriptFromSource(!settings ||
settings->isScriptEnabled(), url)) { |
| 332 frame()->loader()->client()->didNotAllowScript(); | 322 frame()->loader()->client()->didNotAllowScript(); |
| 333 return false; | 323 return false; |
| 334 } | 324 } |
| (...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 936 info.ignoreMember(m_initiatorMap); | 926 info.ignoreMember(m_initiatorMap); |
| 937 } | 927 } |
| 938 | 928 |
| 939 const ResourceLoaderOptions& CachedResourceLoader::defaultCachedResourceOptions(
) | 929 const ResourceLoaderOptions& CachedResourceLoader::defaultCachedResourceOptions(
) |
| 940 { | 930 { |
| 941 static ResourceLoaderOptions options(SendCallbacks, SniffContent, BufferData
, AllowStoredCredentials, AskClientForCrossOriginCredentials, DoSecurityCheck); | 931 static ResourceLoaderOptions options(SendCallbacks, SniffContent, BufferData
, AllowStoredCredentials, AskClientForCrossOriginCredentials, DoSecurityCheck); |
| 942 return options; | 932 return options; |
| 943 } | 933 } |
| 944 | 934 |
| 945 } | 935 } |
| OLD | NEW |