Index: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java |
index 41e9313ee0239853696d0f2d04713c46ae3a7cfe..e42fd89cc1c904842a026ad3cbdc47420493dea4 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java |
@@ -503,8 +503,17 @@ public class CustomTabsConnection { |
// If the API is not enabled, we don't set the post message origin, which will |
// avoid PostMessageHandler initialization and disallow postMessage calls. |
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CCT_POST_MESSAGE_API)) return; |
- mClientManager.initializeWithPostMessageOriginForSession( |
- session, verifyOriginForSession(session, uid, postMessageOrigin)); |
+ |
+ // Attempt to verify origin synchronously. If successful directly initialize |
+ // postMessage channel for session. |
+ Uri verifiedOrigin = verifyOriginForSession(session, uid, postMessageOrigin); |
+ if (verifiedOrigin == null) { |
+ mClientManager.verifyAndInitializeWithPostMessageOriginForSession( |
+ session, postMessageOrigin); |
+ } else { |
+ mClientManager.initializeWithPostMessageOriginForSession( |
+ session, verifiedOrigin); |
+ } |
} |
}); |
return true; |