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

Unified Diff: chromeos/memory/low_memory_listener.h

Issue 14727005: Moves LowMemoryObserver into chromeos and renames (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 35? Created 7 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chromeos/memory/low_memory_listener.h
diff --git a/chrome/browser/chromeos/memory/low_memory_observer.h b/chromeos/memory/low_memory_listener.h
similarity index 36%
rename from chrome/browser/chromeos/memory/low_memory_observer.h
rename to chromeos/memory/low_memory_listener.h
index 65f0235ff36198fd2ae9731afaee3e29d016904d..9d1fe4c5b40f898a4229fa9da318d4839b5feb17 100644
--- a/chrome/browser/chromeos/memory/low_memory_observer.h
+++ b/chromeos/memory/low_memory_listener.h
@@ -2,44 +2,47 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_CHROMEOS_MEMORY_LOW_MEMORY_OBSERVER_H_
-#define CHROME_BROWSER_CHROMEOS_MEMORY_LOW_MEMORY_OBSERVER_H_
+#ifndef CHROMEOS_MEMORY_LOW_MEMORY_LISTENER_H_
+#define CHROMEOS_MEMORY_LOW_MEMORY_LISTENER_H_
#include "base/memory/ref_counted.h"
+#include "base/memory/weak_ptr.h"
+#include "chromeos/memory/chromeos_memory_export.h"
namespace chromeos {
-class LowMemoryObserverImpl;
+class LowMemoryListenerDelegate;
+class LowMemoryListenerImpl;
////////////////////////////////////////////////////////////////////////////////
-// LowMemoryObserver
+// LowMemoryListener
//
// Class to handle observation of low memory device for changes so that we
-// can get a signal from the kernel about low memory conditions and discard tabs
-// when that happens, instead of waiting for the OOM killer to kill renderers
-// (which is more drastic, but still necessary and possible).
+// can get a signal from the kernel about low memory conditions and notify
+// our delegate, who can take actions such as discarding tabs.
//
-// This object starts and stops the observation, and can be created or deleted
-// from any thread, but the observation occurs on the FILE thread, and tabs are
-// discarded on the UI thread.
-class LowMemoryObserver {
+// This object is intended to be created and used on the UI thread. All
+// notifications are dispatched on the UI thread.
+class CHROMEOS_MEMORY_EXPORT LowMemoryListener {
public:
- LowMemoryObserver();
- ~LowMemoryObserver();
+ explicit LowMemoryListener(LowMemoryListenerDelegate* delegate);
+ ~LowMemoryListener();
void Start();
void Stop();
- // Sets the threshold level of the low memory notifier in megabytes. Setting
- // to -1 will turn off the low memory notifier.
- static void SetLowMemoryMargin(int64 margin_mb);
-
private:
- scoped_refptr<LowMemoryObserverImpl> observer_;
+ // Callback from LowMemoryListenerImpl when memory is low. Called on the UI
+ // thread.
+ void OnMemoryLow();
+
+ scoped_refptr<LowMemoryListenerImpl> observer_;
+ LowMemoryListenerDelegate* delegate_;
+ base::WeakPtrFactory<LowMemoryListener> weak_factory_;
- DISALLOW_COPY_AND_ASSIGN(LowMemoryObserver);
+ DISALLOW_COPY_AND_ASSIGN(LowMemoryListener);
};
} // namespace chromeos
-#endif // CHROME_BROWSER_CHROMEOS_MEMORY_LOW_MEMORY_OBSERVER_H_
+#endif // CHROMEOS_MEMORY_LOW_MEMORY_LISTENER_H_

Powered by Google App Engine
This is Rietveld 408576698