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 |