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 f9561882d3c25e7fb7d6c0f5b808ba67ba99a9d2..d5906361251765d3db345bf1c0e4c56fa826952e 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 |
@@ -491,8 +491,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; |