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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java

Issue 2767333006: Add Digital Asset Links verification for postMessage API (Closed)
Patch Set: destructor Created 3 years, 8 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/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java » ('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/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 86c7219a3508ac89ba69fac1d4d3714875467eaf..1487e1fc0e1ee71dc3aa8b3d39346c7a17cc69d0 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
@@ -12,6 +12,7 @@ import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.IBinder;
import android.os.SystemClock;
+import android.support.annotation.NonNull;
import android.support.customtabs.CustomTabsCallback;
import android.support.customtabs.CustomTabsService;
import android.support.customtabs.CustomTabsSessionToken;
@@ -139,6 +140,7 @@ class ClientManager {
packageName = getPackageName(context, uid);
disconnectCallback = callback;
this.postMessageHandler = postMessageHandler;
+ if (postMessageHandler != null) this.postMessageHandler.setPackageName(packageName);
this.mSpeculationMode = CustomTabsConnection.SpeculationParams.PRERENDER;
}
@@ -211,7 +213,7 @@ class ClientManager {
* @return true for success.
*/
public boolean newSession(CustomTabsSessionToken session, int uid,
- DisconnectCallback onDisconnect, PostMessageHandler postMessageHandler) {
+ DisconnectCallback onDisconnect, @NonNull PostMessageHandler postMessageHandler) {
if (session == null) return false;
SessionParams params = new SessionParams(mContext, uid, onDisconnect, postMessageHandler);
synchronized (this) {
@@ -341,6 +343,26 @@ class ClientManager {
}
/**
+ * See {@link PostMessageHandler#verifyAndInitializeWithOrigin(Uri)}.
+ */
+ public synchronized void verifyAndInitializeWithPostMessageOriginForSession(
+ CustomTabsSessionToken session, Uri origin) {
+ SessionParams params = mSessionParams.get(session);
+ if (params == null) return;
+ params.postMessageHandler.verifyAndInitializeWithOrigin(origin);
+ }
+
+ /**
+ * @return The postMessage origin for the given session.
+ */
+ @VisibleForTesting
+ synchronized Uri getPostMessageOriginForSessionForTesting(CustomTabsSessionToken session) {
+ SessionParams params = mSessionParams.get(session);
+ if (params == null) return null;
+ return params.postMessageHandler.getOriginForTesting();
+ }
+
+ /**
* See {@link PostMessageHandler#reset(WebContents)}.
*/
public synchronized void resetPostMessageHandlerForSession(
@@ -543,7 +565,7 @@ class ClientManager {
if (params == null) return;
mSessionParams.remove(session);
if (params.postMessageHandler != null) {
- params.postMessageHandler.unbindFromContext(mContext);
+ params.postMessageHandler.cleanup(mContext);
}
if (params.disconnectCallback != null) params.disconnectCallback.run(session);
mUidHasCalledWarmup.delete(params.uid);
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698