Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(204)

Side by Side Diff: third_party/WebKit/Source/core/fetch/Resource.h

Issue 2249373002: Make Resource MemoryCoordinatorClient. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added comment Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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.
11 11
12 This library is distributed in the hope that it will be useful, 12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Library General Public License for more details. 15 Library General Public License for more details.
16 16
17 You should have received a copy of the GNU Library General Public License 17 You should have received a copy of the GNU Library General Public License
18 along with this library; see the file COPYING.LIB. If not, write to 18 along with this library; see the file COPYING.LIB. If not, write to
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 Boston, MA 02110-1301, USA. 20 Boston, MA 02110-1301, USA.
21 */ 21 */
22 22
23 #ifndef Resource_h 23 #ifndef Resource_h
24 #define Resource_h 24 #define Resource_h
25 25
26 #include "core/CoreExport.h" 26 #include "core/CoreExport.h"
27 #include "core/fetch/CachedMetadataHandler.h" 27 #include "core/fetch/CachedMetadataHandler.h"
28 #include "core/fetch/ResourceLoaderOptions.h" 28 #include "core/fetch/ResourceLoaderOptions.h"
29 #include "platform/MemoryCoordinator.h"
29 #include "platform/SharedBuffer.h" 30 #include "platform/SharedBuffer.h"
30 #include "platform/Timer.h" 31 #include "platform/Timer.h"
31 #include "platform/network/ResourceError.h" 32 #include "platform/network/ResourceError.h"
32 #include "platform/network/ResourceLoadPriority.h" 33 #include "platform/network/ResourceLoadPriority.h"
33 #include "platform/network/ResourceRequest.h" 34 #include "platform/network/ResourceRequest.h"
34 #include "platform/network/ResourceResponse.h" 35 #include "platform/network/ResourceResponse.h"
35 #include "platform/scheduler/CancellableTaskFactory.h" 36 #include "platform/scheduler/CancellableTaskFactory.h"
36 #include "platform/web_process_memory_dump.h" 37 #include "platform/web_process_memory_dump.h"
37 #include "public/platform/WebDataConsumerHandle.h" 38 #include "public/platform/WebDataConsumerHandle.h"
38 #include "wtf/Allocator.h" 39 #include "wtf/Allocator.h"
39 #include "wtf/HashCountedSet.h" 40 #include "wtf/HashCountedSet.h"
40 #include "wtf/HashSet.h" 41 #include "wtf/HashSet.h"
41 #include "wtf/text/WTFString.h" 42 #include "wtf/text/WTFString.h"
42 #include <memory> 43 #include <memory>
43 44
44 namespace blink { 45 namespace blink {
45 46
46 struct FetchInitiatorInfo; 47 struct FetchInitiatorInfo;
47 class CachedMetadata; 48 class CachedMetadata;
48 class FetchRequest; 49 class FetchRequest;
49 class ResourceClient; 50 class ResourceClient;
50 class ResourceTimingInfo; 51 class ResourceTimingInfo;
51 class ResourceLoader; 52 class ResourceLoader;
52 class SecurityOrigin; 53 class SecurityOrigin;
53 54
54 // A resource that is held in the cache. Classes who want to use this object sho uld derive 55 // A resource that is held in the cache. Classes who want to use this object sho uld derive
55 // from ResourceClient, to get the function calls in case the requested data has arrived. 56 // from ResourceClient, to get the function calls in case the requested data has arrived.
56 // This class also does the actual communication with the loader to obtain the r esource from the network. 57 // This class also does the actual communication with the loader to obtain the r esource from the network.
57 class CORE_EXPORT Resource : public GarbageCollectedFinalized<Resource> { 58 class CORE_EXPORT Resource : public GarbageCollectedFinalized<Resource>, public MemoryCoordinatorClient {
59 USING_GARBAGE_COLLECTED_MIXIN(Resource);
58 WTF_MAKE_NONCOPYABLE(Resource); 60 WTF_MAKE_NONCOPYABLE(Resource);
59 public: 61 public:
60 // |Type| enum values are used in UMAs, so do not change the values of 62 // |Type| enum values are used in UMAs, so do not change the values of
61 // existing |Type|. When adding a new |Type|, append it at the end and 63 // existing |Type|. When adding a new |Type|, append it at the end and
62 // update |kLastResourceType|. 64 // update |kLastResourceType|.
63 enum Type { 65 enum Type {
64 MainResource, 66 MainResource,
65 Image, 67 Image,
66 CSSStyleSheet, 68 CSSStyleSheet,
67 Script, 69 Script,
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 301
300 void cancelTimerFired(TimerBase*); 302 void cancelTimerFired(TimerBase*);
301 303
302 void revalidationSucceeded(const ResourceResponse&); 304 void revalidationSucceeded(const ResourceResponse&);
303 void revalidationFailed(); 305 void revalidationFailed();
304 306
305 size_t calculateOverheadSize() const; 307 size_t calculateOverheadSize() const;
306 308
307 String reasonNotDeletable() const; 309 String reasonNotDeletable() const;
308 310
311 // MemoryCoordinatorClient overrides:
312 void prepareToSuspend() override;
313
309 Member<CachedMetadataHandlerImpl> m_cacheHandler; 314 Member<CachedMetadataHandlerImpl> m_cacheHandler;
310 RefPtr<SecurityOrigin> m_fetcherSecurityOrigin; 315 RefPtr<SecurityOrigin> m_fetcherSecurityOrigin;
311 316
312 ResourceError m_error; 317 ResourceError m_error;
313 318
314 double m_loadFinishTime; 319 double m_loadFinishTime;
315 320
316 unsigned long m_identifier; 321 unsigned long m_identifier;
317 322
318 size_t m_encodedSize; 323 size_t m_encodedSize;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 374
370 Resource::Type m_type; 375 Resource::Type m_type;
371 }; 376 };
372 377
373 #define DEFINE_RESOURCE_TYPE_CASTS(typeName) \ 378 #define DEFINE_RESOURCE_TYPE_CASTS(typeName) \
374 DEFINE_TYPE_CASTS(typeName##Resource, Resource, resource, resource->getType( ) == Resource::typeName, resource.getType() == Resource::typeName); 379 DEFINE_TYPE_CASTS(typeName##Resource, Resource, resource, resource->getType( ) == Resource::typeName, resource.getType() == Resource::typeName);
375 380
376 } // namespace blink 381 } // namespace blink
377 382
378 #endif 383 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698