Index: chrome/browser/memory/tab_manager_delegate_chromeos.cc |
diff --git a/chrome/browser/memory/tab_manager_delegate_chromeos.cc b/chrome/browser/memory/tab_manager_delegate_chromeos.cc |
index fb72ebc30880ce217a379b976974619668eadee7..502975615878e1f2284cd9695cbfc7830b535ae0 100644 |
--- a/chrome/browser/memory/tab_manager_delegate_chromeos.cc |
+++ b/chrome/browser/memory/tab_manager_delegate_chromeos.cc |
@@ -63,6 +63,8 @@ const char kArcProcessNamePrefix[] = "org.chromium.arc."; |
// a little while before doing the adjustment. |
const int kFocusedProcessScoreAdjustIntervalMs = 500; |
+const uint32_t kMinVersionForKillProcess = 1; |
+ |
aura::client::ActivationClient* GetActivationClient() { |
if (!ash::Shell::HasInstance()) |
return nullptr; |
@@ -312,8 +314,6 @@ TabManagerDelegate::TabManagerDelegate( |
: tab_manager_(tab_manager), |
focused_process_(new FocusedProcess()), |
mem_stat_(mem_stat), |
- arc_process_instance_(nullptr), |
- arc_process_instance_version_(0), |
uma_(new UmaReporter()), |
weak_ptr_factory_(this) { |
registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CLOSED, |
@@ -322,9 +322,6 @@ TabManagerDelegate::TabManagerDelegate( |
content::NotificationService::AllBrowserContextsAndSources()); |
registrar_.Add(this, content::NOTIFICATION_RENDER_WIDGET_VISIBILITY_CHANGED, |
content::NotificationService::AllBrowserContextsAndSources()); |
- auto* arc_bridge_service = arc::ArcBridgeService::Get(); |
- if (arc_bridge_service) |
- arc_bridge_service->process()->AddObserver(this); |
auto* activation_client = GetActivationClient(); |
if (activation_client) |
activation_client->AddObserver(this); |
@@ -336,9 +333,6 @@ TabManagerDelegate::~TabManagerDelegate() { |
auto* activation_client = GetActivationClient(); |
if (activation_client) |
activation_client->RemoveObserver(this); |
- auto* arc_bridge_service = arc::ArcBridgeService::Get(); |
- if (arc_bridge_service) |
- arc_bridge_service->process()->RemoveObserver(this); |
} |
void TabManagerDelegate::OnBrowserSetLastActive(Browser* browser) { |
@@ -357,21 +351,6 @@ void TabManagerDelegate::OnBrowserSetLastActive(Browser* browser) { |
AdjustFocusedTabScore(pid); |
} |
-void TabManagerDelegate::OnInstanceReady() { |
- auto* arc_bridge_service = arc::ArcBridgeService::Get(); |
- DCHECK(arc_bridge_service); |
- |
- arc_process_instance_ = arc_bridge_service->process()->instance(); |
- arc_process_instance_version_ = arc_bridge_service->process()->version(); |
- |
- DCHECK(arc_process_instance_); |
-} |
- |
-void TabManagerDelegate::OnInstanceClosed() { |
- arc_process_instance_ = nullptr; |
- arc_process_instance_version_ = 0; |
-} |
- |
// TODO(cylee): Remove this function if Android process OOM score settings |
// is moved back to Android. |
// For example, negotiate non-overlapping OOM score ranges so Chrome and Android |
@@ -597,9 +576,17 @@ TabManagerDelegate::GetSortedCandidates( |
} |
bool TabManagerDelegate::KillArcProcess(const int nspid) { |
- if (!arc_process_instance_) |
+ auto* arc_bridge_service = arc::ArcBridgeService::Get(); |
+ if (!arc_bridge_service) |
return false; |
- arc_process_instance_->KillProcess(nspid, "LowMemoryKill"); |
+ |
+ auto* arc_process_instance = |
+ arc_bridge_service->process()->GetInstanceForMethod( |
+ "KillProcess", kMinVersionForKillProcess); |
+ if (!arc_process_instance) |
+ return false; |
+ |
+ arc_process_instance->KillProcess(nspid, "LowMemoryKill"); |
return true; |
} |