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

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: Removed unregisterClient. 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 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 307
306 void revalidationSucceeded(const ResourceResponse&); 308 void revalidationSucceeded(const ResourceResponse&);
307 void revalidationFailed(); 309 void revalidationFailed();
308 310
309 size_t calculateOverheadSize() const; 311 size_t calculateOverheadSize() const;
310 312
311 bool unlock(); 313 bool unlock();
312 314
313 String reasonNotDeletable() const; 315 String reasonNotDeletable() const;
314 316
317 // MemoryCoordinatorClient overrides:
318 void prepareToSuspend() override;
319
315 Member<CachedMetadataHandlerImpl> m_cacheHandler; 320 Member<CachedMetadataHandlerImpl> m_cacheHandler;
316 RefPtr<SecurityOrigin> m_fetcherSecurityOrigin; 321 RefPtr<SecurityOrigin> m_fetcherSecurityOrigin;
317 322
318 ResourceError m_error; 323 ResourceError m_error;
319 324
320 double m_loadFinishTime; 325 double m_loadFinishTime;
321 326
322 unsigned long m_identifier; 327 unsigned long m_identifier;
323 328
324 size_t m_encodedSize; 329 size_t m_encodedSize;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 380
376 Resource::Type m_type; 381 Resource::Type m_type;
377 }; 382 };
378 383
379 #define DEFINE_RESOURCE_TYPE_CASTS(typeName) \ 384 #define DEFINE_RESOURCE_TYPE_CASTS(typeName) \
380 DEFINE_TYPE_CASTS(typeName##Resource, Resource, resource, resource->getType( ) == Resource::typeName, resource.getType() == Resource::typeName); 385 DEFINE_TYPE_CASTS(typeName##Resource, Resource, resource, resource->getType( ) == Resource::typeName, resource.getType() == Resource::typeName);
381 386
382 } // namespace blink 387 } // namespace blink
383 388
384 #endif 389 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698