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