| Index: chrome/android/java_staging/src/org/chromium/chrome/browser/customtabs/ChromeBrowserConnection.java
|
| diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/customtabs/ChromeBrowserConnection.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/customtabs/ChromeBrowserConnection.java
|
| index 153cfdc1eb8e7d3129731a9076b15624e93234e1..b7feeeabb0eb94b5a3cb8eadcb0dc3f6bd40ad44 100644
|
| --- a/chrome/android/java_staging/src/org/chromium/chrome/browser/customtabs/ChromeBrowserConnection.java
|
| +++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/customtabs/ChromeBrowserConnection.java
|
| @@ -266,24 +266,51 @@ class ChromeBrowserConnection extends IBrowserConnectionService.Stub {
|
| return null;
|
| }
|
|
|
| + private IBrowserConnectionCallback getCallbackForSessionIdAlreadyLocked(long sessionId) {
|
| + SessionParams sessionParams = mSessionParams.get(sessionId);
|
| + if (sessionParams == null) return null;
|
| + return mUidToCallback.get(sessionParams.mUid);
|
| + }
|
| +
|
| /**
|
| - * Calls the onUserNavigation callback for a given sessionId.
|
| + * Notifies the application that a page load has started.
|
| *
|
| - * This is non-blocking.
|
| + * Delivers the {@link IBrowserConnectionCallback#onUserNavigationStarted}
|
| + * callback to the aplication.
|
| *
|
| - * @param sessionId Session ID associated with the callback
|
| - * @param url URL the user has navigated to.
|
| - * @param bundle Reserved for future use.
|
| - * @return false if there is no client to deliver the callback to.
|
| + * @param sessionId The session ID.
|
| + * @param url The URL the tab is navigating to.
|
| + * @return true for success.
|
| */
|
| - boolean deliverOnUserNavigationCallback(long sessionId, String url, Bundle extras) {
|
| + boolean notifyPageLoadStarted(long sessionId, String url) {
|
| synchronized (mLock) {
|
| - SessionParams sessionParams = mSessionParams.get(sessionId);
|
| - if (sessionParams == null) return false;
|
| - IBrowserConnectionCallback cb = mUidToCallback.get(sessionParams.mUid);
|
| + IBrowserConnectionCallback cb = getCallbackForSessionIdAlreadyLocked(sessionId);
|
| + if (cb == null) return false;
|
| + try {
|
| + cb.onUserNavigationStarted(sessionId, url, null);
|
| + } catch (RemoteException e) {
|
| + return false;
|
| + }
|
| + }
|
| + return true;
|
| + }
|
| +
|
| + /**
|
| + * Notifies the application that a page load has finished.
|
| + *
|
| + * Delivers the {@link IBrowserConnectionCallback#onUserNavigationFinished}
|
| + * callback to the aplication.
|
| + *
|
| + * @param sessionId The session ID.
|
| + * @param url The URL the tab has navigated to.
|
| + * @return true for success.
|
| + */
|
| + boolean notifyPageLoadFinished(long sessionId, String url) {
|
| + synchronized (mLock) {
|
| + IBrowserConnectionCallback cb = getCallbackForSessionIdAlreadyLocked(sessionId);
|
| if (cb == null) return false;
|
| try {
|
| - cb.onUserNavigation(sessionId, url, extras);
|
| + cb.onUserNavigationFinished(sessionId, url, null);
|
| } catch (RemoteException e) {
|
| return false;
|
| }
|
|
|