Commit 5e3879cd authored by skuhne's avatar skuhne Committed by Commit bot

Move MemoryPressureObserverChromeOS instantiation from Chrome to Content

There are several proposed content CLs which are making use of the MemoryPressureObserverChromeOS::GetCurrentPressureLevel() call to adapt dynamically to the current memory pressure. Examples: The |OomPriorityManager|, the |RendererFrameManager|, ...

BUG=440556
TEST=-

Review URL: https://codereview.chromium.org/800603002

Cr-Commit-Position: refs/heads/master@{#308459}
parent c515c08b
......@@ -11,7 +11,6 @@
#include "ash/shell.h"
#include "base/bind.h"
#include "base/callback.h"
#include "base/chromeos/memory_pressure_observer_chromeos.h"
#include "base/command_line.h"
#include "base/files/file_util.h"
#include "base/lazy_instance.h"
......@@ -333,12 +332,6 @@ void ChromeBrowserMainPartsChromeos::PreMainMessageLoopStart() {
}
void ChromeBrowserMainPartsChromeos::PostMainMessageLoopStart() {
// Instantiate the MemoryPressureObserver.
if (CommandLine::ForCurrentProcess()->HasSwitch(
switches::kUseMemoryPressureSystemChromeOS)) {
memory_pressure_observer_.reset(new base::MemoryPressureObserverChromeOS);
}
base::FilePath user_data_dir;
if (!base::SysInfo::IsRunningOnChromeOS() &&
PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)) {
......@@ -708,9 +701,6 @@ void ChromeBrowserMainPartsChromeos::PostBrowserStart() {
void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() {
BootTimesLoader::Get()->AddLogoutTimeMarker("UIMessageLoopEnded", true);
// Remove the MemoryPressureObserver since it is not needed anymore.
memory_pressure_observer_.reset();
g_browser_process->platform_part()->oom_priority_manager()->Stop();
// Early wake-up of HID device service.
......
......@@ -11,10 +11,6 @@
#include "chrome/browser/chromeos/external_metrics.h"
#include "chromeos/system/version_loader.h"
namespace base {
class MemoryPressureObserverChromeOS;
}
namespace content {
class PowerSaveBlocker;
}
......@@ -90,8 +86,6 @@ class ChromeBrowserMainPartsChromeos : public ChromeBrowserMainPartsLinux {
scoped_refptr<chromeos::ExternalMetrics> external_metrics_;
scoped_ptr<base::MemoryPressureObserverChromeOS> memory_pressure_observer_;
bool use_new_network_change_notifier_;
DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainPartsChromeos);
......
......@@ -100,6 +100,11 @@
#include "ui/base/l10n/l10n_util_win.h"
#endif
#if defined(OS_CHROMEOS)
#include "base/chromeos/memory_pressure_observer_chromeos.h"
#include "chromeos/chromeos_switches.h"
#endif
#if defined(USE_GLIB)
#include <glib-object.h>
#endif
......@@ -475,7 +480,12 @@ void BrowserMainLoop::MainMessageLoopStart() {
l10n_util::OverrideLocaleWithUILanguageList();
}
#endif
#if defined(OS_CHROMEOS)
if (CommandLine::ForCurrentProcess()->HasSwitch(
chromeos::switches::kUseMemoryPressureSystemChromeOS)) {
memory_pressure_observer_.reset(new base::MemoryPressureObserverChromeOS);
}
#endif
// Create a MessageLoop if one does not already exist for the current thread.
if (!base::MessageLoop::current())
main_message_loop_.reset(new base::MessageLoopForUI);
......@@ -823,6 +833,10 @@ void BrowserMainLoop::ShutdownThreadsAndCleanUp() {
resource_dispatcher_host_.get()->Shutdown();
}
#if defined(OS_CHROMEOS)
memory_pressure_observer_.reset();
#endif
#if defined(OS_MACOSX)
BrowserCompositorMac::DisableRecyclingForShutdown();
#endif
......
......@@ -20,6 +20,9 @@ class HighResolutionTimerManager;
class MessageLoop;
class PowerMonitor;
class SystemMonitor;
#if defined(OS_CHROMEOS)
class MemoryPressureObserverChromeOS;
#endif
namespace debug {
class TraceMemoryController;
class TraceEventSystemStatsMonitor;
......@@ -115,6 +118,12 @@ class CONTENT_EXPORT BrowserMainLoop {
return device_monitor_mac_.get();
}
#endif
#if defined(OS_CHROMEOS)
// Return the MemoryPressureObserver which might be NULL.
base::MemoryPressureObserverChromeOS* memory_pressure_observer() {
return memory_pressure_observer_.get();
}
#endif
private:
class MemoryObserver;
......@@ -171,6 +180,9 @@ class CONTENT_EXPORT BrowserMainLoop {
#if defined(OS_ANDROID)
// Android implementation of ScreenOrientationDelegate
scoped_ptr<ScreenOrientationDelegate> screen_orientation_delegate_;
#endif
#if defined(OS_CHROMEOS)
scoped_ptr<base::MemoryPressureObserverChromeOS> memory_pressure_observer_;
#endif
// The startup task runner is created by CreateStartupTasks()
scoped_ptr<StartupTaskRunner> startup_task_runner_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment