Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3056)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java

Issue 2929603002: android: No longer record GSA memory footprint. (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/android/java_sources.gni » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java b/chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java
index e11d384295ed43e289fe6b187eafdcfb48e0d374..df66bbfb72ecbf7f450026541974b64bf99a6ecc 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java
@@ -5,14 +5,11 @@
package org.chromium.chrome.browser.gsa;
import android.annotation.SuppressLint;
-import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
-import android.os.AsyncTask;
import android.os.Bundle;
-import android.os.Debug;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
@@ -22,15 +19,10 @@ import android.os.StrictMode;
import android.util.Log;
import org.chromium.base.Callback;
-import org.chromium.base.ContextUtils;
-import org.chromium.base.TraceEvent;
-import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.SuppressFBWarnings;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.browser.AppHooks;
-import java.util.List;
-
/**
* A simple client that connects and talks to the GSAService using Messages.
*/
@@ -41,8 +33,7 @@ public class GSAServiceClient {
* Constants for gsa communication. These should not change without corresponding changes on the
* service side in GSA.
*/
- @VisibleForTesting
- static final String GSA_SERVICE = "com.google.android.ssb.action.SSB_SERVICE";
+ private static final String GSA_SERVICE = "com.google.android.ssb.action.SSB_SERVICE";
public static final int REQUEST_REGISTER_CLIENT = 2;
public static final int RESPONSE_UPDATE_SSB = 3;
@@ -52,16 +43,12 @@ public class GSAServiceClient {
public static final String KEY_GSA_SUPPORTS_BROADCAST =
"ssb_service:chrome_holds_account_update_permission";
- @VisibleForTesting
- static final int INVALID_PSS = -1;
-
static final String ACCOUNT_CHANGE_HISTOGRAM = "Search.GsaAccountChangeNotificationSource";
// For the histogram above. Append-only.
static final int ACCOUNT_CHANGE_SOURCE_SERVICE = 0;
static final int ACCOUNT_CHANGE_SOURCE_BROADCAST = 1;
static final int ACCOUNT_CHANGE_SOURCE_COUNT = 2;
- private static boolean sHasRecordedPss;
/** Messenger to handle incoming messages from the service */
private final Messenger mMessenger;
private final IncomingHandler mHandler;
@@ -72,7 +59,6 @@ public class GSAServiceClient {
/** Messenger for communicating with service. */
private Messenger mService;
- private ComponentName mComponentName;
/**
* Handler of incoming messages from service.
@@ -92,77 +78,9 @@ public class GSAServiceClient {
String account = mGsaHelper.getGSAAccountFromState(bundle.getByteArray(KEY_GSA_STATE));
RecordHistogram.recordEnumeratedHistogram(ACCOUNT_CHANGE_HISTOGRAM,
ACCOUNT_CHANGE_SOURCE_SERVICE, ACCOUNT_CHANGE_SOURCE_COUNT);
- GSAState.getInstance(mContext.getApplicationContext()).setGsaAccount(account);
- if (sHasRecordedPss) {
- if (mOnMessageReceived != null) mOnMessageReceived.onResult(bundle);
- return;
- }
-
- // Getting the PSS for the GSA service process can be long, don't block the UI thread on
- // that. Also, don't process the callback before the PSS is known, since the callback
- // can lead to a service disconnect, which can lead to the framework killing the
- // process. Hence an AsyncTask (long operation), and processing the callback in
- // onPostExecute() (don't disconnect before).
- sHasRecordedPss = true;
- new AsyncTask<Void, Void, Integer>() {
- @Override
- protected Integer doInBackground(Void... params) {
- TraceEvent.begin("GSAServiceClient.getPssForservice");
- try {
- // Looking for the service process is done by component name, which is
- // inefficient. We really want the PID, which is only accessible from within
- // a Binder transaction. Since the service connection is Messenger-based,
- // the calls are not processed from a Binder thread. The alternatives are:
- // 1. Override methods in the framework to append the calling PID to the
- // Message.
- // 2. Usse msg.callingUid to narrow down the search.
- //
- // (1) is dirty (and brittle), and (2) only works on L+, and still requires
- // to get the full list of services from ActivityManager.
- return getPssForService(mComponentName);
- } finally {
- TraceEvent.end("GSAServiceClient.getPssForservice");
- }
- }
-
- @Override
- protected void onPostExecute(Integer pssInKB) {
- if (pssInKB != INVALID_PSS) {
- RecordHistogram.recordMemoryKBHistogram(
- "Search.GsaProcessMemoryPss", pssInKB);
- }
- if (mOnMessageReceived != null) mOnMessageReceived.onResult(bundle);
- }
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
- }
-
- /**
- * Get the PSS used by the process hosting a service.
- *
- * @param packageName Package name of the service to search for.
- * @return the PSS in kB of the process hosting a service, or INVALID_PSS.
- */
- @VisibleForTesting
- static int getPssForService(ComponentName componentName) {
- if (componentName == null) return INVALID_PSS;
- Context context = ContextUtils.getApplicationContext();
- ActivityManager activityManager =
- (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
- List<ActivityManager.RunningServiceInfo> services =
- activityManager.getRunningServices(1000);
- if (services == null) return INVALID_PSS;
- int pid = -1;
- for (ActivityManager.RunningServiceInfo info : services) {
- if (componentName.equals(info.service)) {
- pid = info.pid;
- break;
- }
+ GSAState.getInstance(mContext).setGsaAccount(account);
+ if (mOnMessageReceived != null) mOnMessageReceived.onResult(bundle);
}
- if (pid == -1) return INVALID_PSS;
- Debug.MemoryInfo infos[] = activityManager.getProcessMemoryInfo(new int[] {pid});
- if (infos == null || infos.length == 0) return INVALID_PSS;
- return infos[0].getTotalPss();
}
/**
@@ -236,7 +154,6 @@ public class GSAServiceClient {
if (mContext == null) return;
mService = new Messenger(service);
- mComponentName = name;
try {
Message registerClientMessage = Message.obtain(
null, REQUEST_REGISTER_CLIENT);
« no previous file with comments | « no previous file | chrome/android/java_sources.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698