| Index: chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java
|
| index 35ee9f331b78e820911649988543b16b49d3b077..893f2ebc37eb189d6c452f51e18b3c6dd34f2489 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java
|
| @@ -49,7 +49,7 @@ class ClientManager {
|
| /** Per-session values. */
|
| private static class SessionParams {
|
| public final int uid;
|
| - public final Referrer referrer;
|
| + public final String packageName;
|
| public final ICustomTabsCallback callback;
|
| public final IBinder.DeathRecipient deathRecipient;
|
| private ServiceConnection mKeepAliveConnection = null;
|
| @@ -59,16 +59,16 @@ class ClientManager {
|
| public SessionParams(Context context, int uid, ICustomTabsCallback callback,
|
| IBinder.DeathRecipient deathRecipient) {
|
| this.uid = uid;
|
| - referrer = constructReferrer(context, uid);
|
| + packageName = getPackageName(context, uid);
|
| this.callback = callback;
|
| this.deathRecipient = deathRecipient;
|
| }
|
|
|
| - private static Referrer constructReferrer(Context context, int uid) {
|
| + private static String getPackageName(Context context, int uid) {
|
| PackageManager packageManager = context.getPackageManager();
|
| String[] packageList = packageManager.getPackagesForUid(uid);
|
| if (packageList.length != 1 || TextUtils.isEmpty(packageList[0])) return null;
|
| - return IntentHandler.constructValidReferrerForAuthority(packageList[0]);
|
| + return packageList[0];
|
| }
|
|
|
| public ServiceConnection getKeepAliveConnection() {
|
| @@ -219,7 +219,17 @@ class ClientManager {
|
| */
|
| public synchronized Referrer getReferrerForSession(IBinder session) {
|
| SessionParams params = mSessionParams.get(session);
|
| - return params != null ? params.referrer : null;
|
| + if (params == null) return null;
|
| + final String packageName = params.packageName;
|
| + return IntentHandler.constructValidReferrerForAuthority(packageName);
|
| + }
|
| +
|
| + /**
|
| + * @return The package name associated with the client owning the given session.
|
| + */
|
| + public synchronized String getClientPackageNameForSession(IBinder session) {
|
| + SessionParams params = mSessionParams.get(session);
|
| + return params == null ? null : params.packageName;
|
| }
|
|
|
| /**
|
|
|