| 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;
|
|
|