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) 2006 Samuel Weinig (sam.weinig@gmail.com) | 4 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) |
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 | 6 |
7 This library is free software; you can redistribute it and/or | 7 This library is free software; you can redistribute it and/or |
8 modify it under the terms of the GNU Library General Public | 8 modify it under the terms of the GNU Library General Public |
9 License as published by the Free Software Foundation; either | 9 License as published by the Free Software Foundation; either |
10 version 2 of the License, or (at your option) any later version. | 10 version 2 of the License, or (at your option) any later version. |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 | 255 |
256 void finishPendingClients(); | 256 void finishPendingClients(); |
257 | 257 |
258 virtual void didAddClient(ResourceClient*); | 258 virtual void didAddClient(ResourceClient*); |
259 void willAddClientOrObserver(); | 259 void willAddClientOrObserver(); |
260 | 260 |
261 // |this| object may be dead after didRemoveClientOrObserver(). | 261 // |this| object may be dead after didRemoveClientOrObserver(). |
262 void didRemoveClientOrObserver(); | 262 void didRemoveClientOrObserver(); |
263 virtual void allClientsAndObserversRemoved(); | 263 virtual void allClientsAndObserversRemoved(); |
264 | 264 |
265 HashCountedSet<ResourceClient*> m_clients; | |
266 HashCountedSet<ResourceClient*> m_clientsAwaitingCallback; | |
267 HashCountedSet<ResourceClient*> m_finishedClients; | |
268 | |
269 bool hasClient(ResourceClient* client) { return m_clients.contains(client) |
| m_clientsAwaitingCallback.contains(client) || m_finishedClients.contains(clien
t); } | 265 bool hasClient(ResourceClient* client) { return m_clients.contains(client) |
| m_clientsAwaitingCallback.contains(client) || m_finishedClients.contains(clien
t); } |
270 | 266 |
271 struct RedirectPair { | 267 struct RedirectPair { |
272 DISALLOW_NEW_EXCEPT_PLACEMENT_NEW(); | 268 DISALLOW_NEW_EXCEPT_PLACEMENT_NEW(); |
273 public: | 269 public: |
274 explicit RedirectPair(const ResourceRequest& request, const ResourceResp
onse& redirectResponse) | 270 explicit RedirectPair(const ResourceRequest& request, const ResourceResp
onse& redirectResponse) |
275 : m_request(request) | 271 : m_request(request) |
276 , m_redirectResponse(redirectResponse) | 272 , m_redirectResponse(redirectResponse) |
277 { | 273 { |
278 } | 274 } |
279 | 275 |
280 ResourceRequest m_request; | 276 ResourceRequest m_request; |
281 ResourceResponse m_redirectResponse; | 277 ResourceResponse m_redirectResponse; |
282 }; | 278 }; |
283 const Vector<RedirectPair>& redirectChain() const { return m_redirectChain;
} | 279 const Vector<RedirectPair>& redirectChain() const { return m_redirectChain;
} |
284 | 280 |
285 virtual bool isSafeToUnlock() const { return false; } | 281 virtual bool isSafeToUnlock() const { return false; } |
286 virtual void destroyDecodedDataIfPossible() { } | 282 virtual void destroyDecodedDataIfPossible() { } |
287 | 283 |
288 virtual void markClientsAndObserversFinished(); | 284 virtual void markClientsAndObserversFinished(); |
289 | 285 |
290 // Returns the memory dump name used for tracing. See Resource::onMemoryDump
. | 286 // Returns the memory dump name used for tracing. See Resource::onMemoryDump
. |
291 String getMemoryDumpName() const; | 287 String getMemoryDumpName() const; |
292 | 288 |
| 289 const HashCountedSet<ResourceClient*>& clients() const { return m_clients; } |
| 290 DataBufferingPolicy dataBufferingPolicy() const { return m_options.dataBuffe
ringPolicy; } |
| 291 |
293 ResourceRequest m_resourceRequest; | 292 ResourceRequest m_resourceRequest; |
294 Member<ResourceLoader> m_loader; | 293 Member<ResourceLoader> m_loader; |
295 ResourceLoaderOptions m_options; | |
296 | 294 |
297 ResourceResponse m_response; | 295 ResourceResponse m_response; |
298 double m_responseTimestamp; | |
299 | 296 |
300 RefPtr<SharedBuffer> m_data; | 297 RefPtr<SharedBuffer> m_data; |
301 Timer<Resource> m_cancelTimer; | |
302 | 298 |
303 private: | 299 private: |
304 class ResourceCallback; | 300 class ResourceCallback; |
305 class CachedMetadataHandlerImpl; | 301 class CachedMetadataHandlerImpl; |
306 class ServiceWorkerResponseCachedMetadataHandler; | 302 class ServiceWorkerResponseCachedMetadataHandler; |
307 | 303 |
308 void cancelTimerFired(Timer<Resource>*); | 304 void cancelTimerFired(Timer<Resource>*); |
309 | 305 |
310 void revalidationSucceeded(const ResourceResponse&); | 306 void revalidationSucceeded(const ResourceResponse&); |
311 void revalidationFailed(); | 307 void revalidationFailed(); |
(...skipping 29 matching lines...) Expand all Loading... |
341 unsigned m_preloadResult : 2; // PreloadResult | 337 unsigned m_preloadResult : 2; // PreloadResult |
342 unsigned m_type : 4; // Type | 338 unsigned m_type : 4; // Type |
343 unsigned m_status : 3; // Status | 339 unsigned m_status : 3; // Status |
344 | 340 |
345 unsigned m_needsSynchronousCacheHit : 1; | 341 unsigned m_needsSynchronousCacheHit : 1; |
346 unsigned m_linkPreload : 1; | 342 unsigned m_linkPreload : 1; |
347 bool m_isRevalidating : 1; | 343 bool m_isRevalidating : 1; |
348 | 344 |
349 // Ordered list of all redirects followed while fetching this resource. | 345 // Ordered list of all redirects followed while fetching this resource. |
350 Vector<RedirectPair> m_redirectChain; | 346 Vector<RedirectPair> m_redirectChain; |
| 347 |
| 348 HashCountedSet<ResourceClient*> m_clients; |
| 349 HashCountedSet<ResourceClient*> m_clientsAwaitingCallback; |
| 350 HashCountedSet<ResourceClient*> m_finishedClients; |
| 351 |
| 352 ResourceLoaderOptions m_options; |
| 353 |
| 354 double m_responseTimestamp; |
| 355 |
| 356 Timer<Resource> m_cancelTimer; |
351 }; | 357 }; |
352 | 358 |
353 class ResourceFactory { | 359 class ResourceFactory { |
354 STACK_ALLOCATED(); | 360 STACK_ALLOCATED(); |
355 public: | 361 public: |
356 virtual Resource* create(const ResourceRequest&, const ResourceLoaderOptions
&, const String&) const = 0; | 362 virtual Resource* create(const ResourceRequest&, const ResourceLoaderOptions
&, const String&) const = 0; |
357 Resource::Type type() const { return m_type; } | 363 Resource::Type type() const { return m_type; } |
358 | 364 |
359 protected: | 365 protected: |
360 ResourceFactory(Resource::Type type) : m_type(type) { } | 366 ResourceFactory(Resource::Type type) : m_type(type) { } |
361 | 367 |
362 Resource::Type m_type; | 368 Resource::Type m_type; |
363 }; | 369 }; |
364 | 370 |
365 #define DEFINE_RESOURCE_TYPE_CASTS(typeName) \ | 371 #define DEFINE_RESOURCE_TYPE_CASTS(typeName) \ |
366 DEFINE_TYPE_CASTS(typeName##Resource, Resource, resource, resource->getType(
) == Resource::typeName, resource.getType() == Resource::typeName); | 372 DEFINE_TYPE_CASTS(typeName##Resource, Resource, resource, resource->getType(
) == Resource::typeName, resource.getType() == Resource::typeName); |
367 | 373 |
368 } // namespace blink | 374 } // namespace blink |
369 | 375 |
370 #endif | 376 #endif |
OLD | NEW |