Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef MemoryPurgeController_h | |
| 6 #define MemoryPurgeController_h | |
| 7 | |
| 8 #include "wtf/HashSet.h" | |
| 9 | |
| 10 namespace blink { | |
| 11 | |
| 12 enum MemoryPurgeMode { | |
| 13 // The tab contains the webview went to background | |
| 14 Inactive, | |
|
dcheng
2015/08/21 15:04:19
Suggestion: we should prefer enum class for both o
bashi
2015/08/25 02:34:23
Done.
| |
| 15 // TODO(bashi): Add more modes as needed. | |
| 16 }; | |
| 17 | |
| 18 enum DeviceKind { | |
|
dcheng
2015/08/21 15:04:19
Ditto: NotSpecified is pretty generic.
bashi
2015/08/25 02:34:23
Done.
| |
| 19 NotSpecified, | |
| 20 LowEnd, | |
| 21 }; | |
| 22 | |
| 23 // TODO(bashi): Make MemoryPurgeEventListener garbage collected. | |
| 24 class MemoryPurgeEventListener { | |
| 25 public: | |
| 26 // MemoryPurgeController invokes this callback when a memory purge event | |
| 27 // has occurred. | |
| 28 virtual void purgeMemory(MemoryPurgeMode, DeviceKind) = 0; | |
| 29 }; | |
| 30 | |
| 31 class MemoryPurgeController { | |
| 32 public: | |
| 33 MemoryPurgeController(); | |
| 34 | |
| 35 void addListener(MemoryPurgeEventListener* listener) { m_listeners.add(liste ner); } | |
| 36 void removeListener(MemoryPurgeEventListener* listener) { m_listeners.remove (listener); } | |
| 37 | |
| 38 // Called several seconds after the tab went to background. | |
| 39 void didBecomeInactive(); | |
| 40 | |
| 41 private: | |
| 42 void purgeMemory(MemoryPurgeMode); | |
| 43 | |
| 44 HashSet<MemoryPurgeEventListener*> m_listeners; | |
| 45 DeviceKind m_deviceKind; | |
| 46 }; | |
| 47 | |
| 48 } // namespace blink | |
| 49 | |
| 50 #endif // MemoryPurgeController_h | |
| 51 | |
| OLD | NEW |