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 19 matching lines...) Expand all Loading... |
30 #include "bindings/v8/ScriptController.h" | 30 #include "bindings/v8/ScriptController.h" |
31 #include "core/dom/Document.h" | 31 #include "core/dom/Document.h" |
32 #include "core/fetch/CSSStyleSheetResource.h" | 32 #include "core/fetch/CSSStyleSheetResource.h" |
33 #include "core/fetch/DocumentResource.h" | 33 #include "core/fetch/DocumentResource.h" |
34 #include "core/fetch/FetchContext.h" | 34 #include "core/fetch/FetchContext.h" |
35 #include "core/fetch/FetchRequest.h" | 35 #include "core/fetch/FetchRequest.h" |
36 #include "core/fetch/FontResource.h" | 36 #include "core/fetch/FontResource.h" |
37 #include "core/fetch/ImageResource.h" | 37 #include "core/fetch/ImageResource.h" |
38 #include "core/fetch/MemoryCache.h" | 38 #include "core/fetch/MemoryCache.h" |
39 #include "core/fetch/RawResource.h" | 39 #include "core/fetch/RawResource.h" |
| 40 #include "core/fetch/ResourceLoader.h" |
40 #include "core/fetch/ResourceLoaderSet.h" | 41 #include "core/fetch/ResourceLoaderSet.h" |
41 #include "core/fetch/ScriptResource.h" | 42 #include "core/fetch/ScriptResource.h" |
42 #include "core/fetch/ShaderResource.h" | 43 #include "core/fetch/ShaderResource.h" |
43 #include "core/fetch/TextTrackResource.h" | 44 #include "core/fetch/TextTrackResource.h" |
44 #include "core/fetch/XSLStyleSheetResource.h" | 45 #include "core/fetch/XSLStyleSheetResource.h" |
45 #include "core/html/HTMLElement.h" | 46 #include "core/html/HTMLElement.h" |
46 #include "core/html/HTMLFrameOwnerElement.h" | 47 #include "core/html/HTMLFrameOwnerElement.h" |
47 #include "core/html/HTMLImport.h" | 48 #include "core/html/HTMLImport.h" |
48 #include "core/inspector/InspectorInstrumentation.h" | 49 #include "core/inspector/InspectorInstrumentation.h" |
49 #include "core/loader/DocumentLoader.h" | 50 #include "core/loader/DocumentLoader.h" |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 return 0; | 204 return 0; |
204 } | 205 } |
205 | 206 |
206 FetchContext& ResourceFetcher::context() const | 207 FetchContext& ResourceFetcher::context() const |
207 { | 208 { |
208 if (Frame* frame = this->frame()) | 209 if (Frame* frame = this->frame()) |
209 return frame->fetchContext(); | 210 return frame->fetchContext(); |
210 return FetchContext::nullInstance(); | 211 return FetchContext::nullInstance(); |
211 } | 212 } |
212 | 213 |
| 214 unsigned long ResourceFetcher::fetchSynchronously(const ResourceRequest& passedR
equest, StoredCredentials storedCredentials, ResourceError& error, ResourceRespo
nse& response, Vector<char>& data) |
| 215 { |
| 216 ASSERT(document()); |
| 217 ResourceRequest request(passedRequest); |
| 218 request.setTimeoutInterval(10); |
| 219 addAdditionalRequestHeaders(request, Resource::Raw); |
| 220 |
| 221 unsigned long identifier = createUniqueIdentifier(); |
| 222 context().dispatchWillSendRequest(m_documentLoader, identifier, request, Res
ourceResponse()); |
| 223 documentLoader()->applicationCacheHost()->willStartLoadingSynchronously(requ
est); |
| 224 ResourceLoader::loadResourceSynchronously(request, storedCredentials, error,
response, data); |
| 225 int encodedDataLength = response.resourceLoadInfo() ? static_cast<int>(respo
nse.resourceLoadInfo()->encodedDataLength) : -1; |
| 226 context().sendRemainingDelegateMessages(m_documentLoader, identifier, respon
se, data.data(), data.size(), encodedDataLength, error); |
| 227 return identifier; |
| 228 } |
| 229 |
213 ResourcePtr<ImageResource> ResourceFetcher::fetchImage(FetchRequest& request) | 230 ResourcePtr<ImageResource> ResourceFetcher::fetchImage(FetchRequest& request) |
214 { | 231 { |
215 if (Frame* f = frame()) { | 232 if (Frame* f = frame()) { |
216 if (f->document()->pageDismissalEventBeingDispatched() != Document::NoDi
smissal) { | 233 if (f->document()->pageDismissalEventBeingDispatched() != Document::NoDi
smissal) { |
217 KURL requestURL = request.resourceRequest().url(); | 234 KURL requestURL = request.resourceRequest().url(); |
218 if (requestURL.isValid() && canRequest(Resource::Image, requestURL,
request.options(), request.forPreload())) | 235 if (requestURL.isValid() && canRequest(Resource::Image, requestURL,
request.options(), request.forPreload())) |
219 PingLoader::loadImage(f, requestURL); | 236 PingLoader::loadImage(f, requestURL); |
220 return 0; | 237 return 0; |
221 } | 238 } |
222 } | 239 } |
(...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
973 m_documentResources.remove(*it); | 990 m_documentResources.remove(*it); |
974 } | 991 } |
975 | 992 |
976 void ResourceFetcher::performPostLoadActions() | 993 void ResourceFetcher::performPostLoadActions() |
977 { | 994 { |
978 checkForPendingPreloads(); | 995 checkForPendingPreloads(); |
979 } | 996 } |
980 | 997 |
981 void ResourceFetcher::notifyLoadedFromMemoryCache(Resource* resource) | 998 void ResourceFetcher::notifyLoadedFromMemoryCache(Resource* resource) |
982 { | 999 { |
983 if (!frame() || resource->status() != Resource::Cached || m_validatedURLs.co
ntains(resource->url())) | 1000 if (!frame() || !frame()->page() || resource->status() != Resource::Cached |
| m_validatedURLs.contains(resource->url())) |
| 1001 return; |
| 1002 if (!resource->shouldSendResourceLoadCallbacks()) |
984 return; | 1003 return; |
985 | 1004 |
986 // FIXME: If the WebKit client changes or cancels the request, WebCore does
not respect this and continues the load. | 1005 ResourceRequest request(resource->url()); |
987 frame()->loader()->loadedResourceFromMemoryCache(resource); | 1006 unsigned long identifier = createUniqueIdentifier(); |
| 1007 context().dispatchDidLoadResourceFromMemoryCache(request, resource->response
()); |
| 1008 // FIXME: If willSendRequest changes the request, we don't respect it. |
| 1009 willSendRequest(resource, request, ResourceResponse(), resource->options()); |
| 1010 InspectorInstrumentation::markResourceAsCached(frame()->page(), identifier); |
| 1011 context().sendRemainingDelegateMessages(m_documentLoader, identifier, resour
ce->response(), 0, resource->encodedSize(), 0, ResourceError()); |
988 } | 1012 } |
989 | 1013 |
990 void ResourceFetcher::incrementRequestCount(const Resource* res) | 1014 void ResourceFetcher::incrementRequestCount(const Resource* res) |
991 { | 1015 { |
992 if (res->ignoreForRequestCount()) | 1016 if (res->ignoreForRequestCount()) |
993 return; | 1017 return; |
994 | 1018 |
995 ++m_requestCount; | 1019 ++m_requestCount; |
996 } | 1020 } |
997 | 1021 |
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1286 } | 1310 } |
1287 #endif | 1311 #endif |
1288 | 1312 |
1289 const ResourceLoaderOptions& ResourceFetcher::defaultResourceOptions() | 1313 const ResourceLoaderOptions& ResourceFetcher::defaultResourceOptions() |
1290 { | 1314 { |
1291 DEFINE_STATIC_LOCAL(ResourceLoaderOptions, options, (SendCallbacks, SniffCon
tent, BufferData, AllowStoredCredentials, ClientRequestedCredentials, AskClientF
orCrossOriginCredentials, DoSecurityCheck, CheckContentSecurityPolicy, UseDefaul
tOriginRestrictionsForType, DocumentContext)); | 1315 DEFINE_STATIC_LOCAL(ResourceLoaderOptions, options, (SendCallbacks, SniffCon
tent, BufferData, AllowStoredCredentials, ClientRequestedCredentials, AskClientF
orCrossOriginCredentials, DoSecurityCheck, CheckContentSecurityPolicy, UseDefaul
tOriginRestrictionsForType, DocumentContext)); |
1292 return options; | 1316 return options; |
1293 } | 1317 } |
1294 | 1318 |
1295 } | 1319 } |
OLD | NEW |