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

Unified Diff: chrome/browser/chromeos/memory/oom_priority_manager.cc

Issue 1045433002: Migrate ChromeOS to base::MemoryPressureMonitor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments Created 5 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
« no previous file with comments | « base/chromeos/memory_pressure_observer_chromeos_unittest.cc ('k') | chromeos/chromeos_switches.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/memory/oom_priority_manager.cc
diff --git a/chrome/browser/chromeos/memory/oom_priority_manager.cc b/chrome/browser/chromeos/memory/oom_priority_manager.cc
index 3f0ed21b0628a39203ae5e3dd2f16f09ba70c480..38e2dafe2a4968774e77588de12890ed2601ac4d 100644
--- a/chrome/browser/chromeos/memory/oom_priority_manager.cc
+++ b/chrome/browser/chromeos/memory/oom_priority_manager.cc
@@ -13,8 +13,8 @@
#include "ash/shell.h"
#include "base/bind.h"
#include "base/bind_helpers.h"
-#include "base/chromeos/memory_pressure_observer_chromeos.h"
#include "base/command_line.h"
+#include "base/memory/memory_pressure_monitor.h"
#include "base/metrics/field_trial.h"
#include "base/metrics/histogram.h"
#include "base/process/process.h"
@@ -41,7 +41,6 @@
#include "chrome/common/url_constants.h"
#include "chromeos/chromeos_switches.h"
#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/memory_pressure_observer.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_types.h"
#include "content/public/browser/render_process_host.h"
@@ -105,11 +104,6 @@ void RecordLinearHistogram(const std::string& name,
counter->Add(sample);
}
-// Gets the MemoryPressureObserver - if it exists.
-base::MemoryPressureObserverChromeOS* GetMemoryPressureObserver() {
- return content::GetMemoryPressureObserver();
-}
-
} // namespace
////////////////////////////////////////////////////////////////////////////////
@@ -181,9 +175,8 @@ OomPriorityManager::OomPriorityManager()
: focused_tab_process_info_(std::make_pair(0, 0)),
discard_count_(0),
recent_tab_discard_(false) {
- // Use the old |LowMemoryObserver| when there is no
- // |MemoryPressureObserverChromeOS|.
- if (!GetMemoryPressureObserver())
+ // Use the old |LowMemoryObserver| when there is no |MemoryPressureMonitor|.
+ if (!base::MemoryPressureMonitor::Get())
low_memory_observer_.reset(new LowMemoryObserver);
registrar_.Add(this,
@@ -218,17 +211,16 @@ void OomPriorityManager::Start() {
start_time_ = TimeTicks::Now();
// If a |LowMemoryObserver| exists we use the old system, otherwise we create
// a |MemoryPressureListener| to listen for memory events.
- if (low_memory_observer_.get()) {
+ if (low_memory_observer_) {
low_memory_observer_->Start();
} else {
- base::MemoryPressureObserverChromeOS* observer =
- GetMemoryPressureObserver();
- if (observer) {
+ base::MemoryPressureMonitor* monitor = base::MemoryPressureMonitor::Get();
+ if (monitor) {
memory_pressure_listener_.reset(new base::MemoryPressureListener(
base::Bind(&OomPriorityManager::OnMemoryPressure,
base::Unretained(this))));
base::MemoryPressureListener::MemoryPressureLevel level =
- observer->GetCurrentPressureLevel();
+ monitor->GetCurrentPressureLevel();
if (level ==
base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL) {
OnMemoryPressure(level);
@@ -240,7 +232,7 @@ void OomPriorityManager::Start() {
void OomPriorityManager::Stop() {
timer_.Stop();
recent_tab_discard_timer_.Stop();
- if (low_memory_observer_.get())
+ if (low_memory_observer_)
low_memory_observer_->Stop();
else
memory_pressure_listener_.reset();
@@ -510,20 +502,21 @@ void OomPriorityManager::Observe(int type,
content::RenderProcessHost* host =
content::Source<content::RenderProcessHost>(source).ptr();
oom_score_map_.erase(host->GetID());
- if (!low_memory_observer_.get()) {
+ if (!low_memory_observer_) {
// Coming here we know that a renderer was just killed and memory should
// come back into the pool. However - the memory pressure observer did
// not yet update its status and therefore we ask it to redo the
// measurement, calling us again if we have to release more.
// Note: We do not only accelerate the discarding speed by doing another
// check in short succession - we also accelerate it because the timer
- // driven MemoryPressureObserver will continue to produce timed events
- // on top. So as longer as the cleanup phase takes, as more tabs will
+ // driven MemoryPressureMonitor will continue to produce timed events
+ // on top. So the longer the cleanup phase takes, the more tabs will
// get discarded in parallel.
- base::MemoryPressureObserverChromeOS* observer =
- GetMemoryPressureObserver();
- if (observer)
- observer->ScheduleEarlyCheck();
+ base::MemoryPressureMonitorChromeOS* monitor =
+ static_cast<base::MemoryPressureMonitorChromeOS*>(
+ base::MemoryPressureMonitor::Get());
+ if (monitor)
+ monitor->ScheduleEarlyCheck();
}
break;
}
« no previous file with comments | « base/chromeos/memory_pressure_observer_chromeos_unittest.cc ('k') | chromeos/chromeos_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698