Index: chrome/browser/chromeos/arc/process/arc_process_service.cc |
diff --git a/chrome/browser/chromeos/arc/process/arc_process_service.cc b/chrome/browser/chromeos/arc/process/arc_process_service.cc |
index c91e741d8ccfd142901713a65d932b4fe8f4deb4..71d729ff148408ad1963cb33df21f60063676557 100644 |
--- a/chrome/browser/chromeos/arc/process/arc_process_service.cc |
+++ b/chrome/browser/chromeos/arc/process/arc_process_service.cc |
@@ -227,11 +227,6 @@ ArcProcessService* ArcProcessService::Get() { |
return g_arc_process_service; |
} |
-void ArcProcessService::OnInstanceReady() { |
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
- GetTaskRunner()->PostTask(FROM_HERE, base::Bind(&Reset, nspid_to_pid_)); |
-} |
- |
void ArcProcessService::RequestSystemProcessList( |
RequestProcessListCallback callback) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
@@ -245,12 +240,19 @@ bool ArcProcessService::RequestAppProcessList( |
RequestProcessListCallback callback) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
+ // Since several services call this class to get information about the ARC |
+ // process list, it can produce a lot of logspam when the board is ARC-ready |
+ // but the user has not opted into ARC. This redundant check avoids that |
+ // logspam. |
+ if (!instance_ready_) |
+ return false; |
Yusuke Sato
2016/11/30 23:29:39
I think this would also remove legit logs when the
Luis Héctor Chávez
2016/11/30 23:45:08
ArcBridgeService::GetEnabled() unfortunately does
Yusuke Sato
2016/11/30 23:59:30
The DCHECK in ~ObserverList<> is actually an optio
Yusuke Sato
2016/12/01 02:29:21
Chatted with Luis offline. Let's keep the member v
|
+ |
mojom::ProcessInstance* process_instance = |
arc_bridge_service()->process()->GetInstanceForMethod( |
"RequestProcessList"); |
- if (!process_instance) { |
+ if (!process_instance) |
return false; |
- } |
+ |
process_instance->RequestProcessList( |
base::Bind(&ArcProcessService::OnReceiveProcessList, |
weak_ptr_factory_.GetWeakPtr(), callback)); |
@@ -273,6 +275,17 @@ scoped_refptr<base::SingleThreadTaskRunner> ArcProcessService::GetTaskRunner() { |
return heavy_task_thread_.task_runner(); |
} |
+void ArcProcessService::OnInstanceReady() { |
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
+ GetTaskRunner()->PostTask(FROM_HERE, base::Bind(&Reset, nspid_to_pid_)); |
+ instance_ready_ = true; |
+} |
+ |
+void ArcProcessService::OnInstanceClosed() { |
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
+ instance_ready_ = false; |
+} |
+ |
inline ArcProcessService::NSPidToPidMap::NSPidToPidMap() {} |
inline ArcProcessService::NSPidToPidMap::~NSPidToPidMap() {} |