| 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;
|
| }
|
|
|
|
|