| Index: chrome/android/java_staging/src/org/chromium/chrome/browser/hosted/HostedTab.java
|
| diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/hosted/HostedTab.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/hosted/HostedTab.java
|
| index 50fb9bcc276e650cb6fca7dc4c1842d201f38d0c..d66421488a369d9b5c854efa27cd9896927ae016 100644
|
| --- a/chrome/android/java_staging/src/org/chromium/chrome/browser/hosted/HostedTab.java
|
| +++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/hosted/HostedTab.java
|
| @@ -13,6 +13,7 @@ import com.google.android.apps.chrome.R;
|
|
|
| import org.chromium.chrome.browser.CompositorChromeActivity;
|
| import org.chromium.chrome.browser.ContentViewUtil;
|
| +import org.chromium.chrome.browser.EmptyTabObserver;
|
| import org.chromium.chrome.browser.Tab;
|
| import org.chromium.chrome.browser.UrlUtilities;
|
| import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator;
|
| @@ -20,6 +21,7 @@ import org.chromium.chrome.browser.contextmenu.ContextMenuParams;
|
| import org.chromium.chrome.browser.contextmenu.ContextMenuPopulator;
|
| import org.chromium.chrome.browser.tab.ChromeTab;
|
| import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
|
| +import org.chromium.content_public.browser.LoadUrlParams;
|
| import org.chromium.content_public.browser.WebContents;
|
| import org.chromium.ui.base.WindowAndroid;
|
|
|
| @@ -27,6 +29,20 @@ import org.chromium.ui.base.WindowAndroid;
|
| * A chrome tab that is only used in hosted mode.
|
| */
|
| public class HostedTab extends ChromeTab {
|
| + private class LoadUrlTabObserver extends EmptyTabObserver {
|
| + private ChromeBrowserConnection mChromeBrowserConnection;
|
| + private long mSessionId;
|
| +
|
| + @Override
|
| + public void onLoadUrl(Tab tab, LoadUrlParams params, int loadType) {
|
| + mChromeBrowserConnection.registerLaunch(mSessionId, params.getUrl());
|
| + }
|
| +
|
| + public LoadUrlTabObserver(ChromeBrowserConnection chromeBrowserConnection, long sessionId) {
|
| + mChromeBrowserConnection = chromeBrowserConnection;
|
| + mSessionId = sessionId;
|
| + }
|
| + }
|
|
|
| private TabChromeContextMenuItemDelegate
|
| mContextMenuDelegate = new TabChromeContextMenuItemDelegate() {
|
| @@ -45,13 +61,15 @@ public class HostedTab extends ChromeTab {
|
| long sessionId, String url, int parentTabId) {
|
| super(Tab.generateValidId(Tab.INVALID_TAB_ID), activity, false, windowAndroid,
|
| TabLaunchType.FROM_EXTERNAL_APP, parentTabId, null, null);
|
| - WebContents webContents = ChromeBrowserConnection.getInstance(activity.getApplication())
|
| - .takePrerenderedUrl(sessionId, url, null);
|
| + ChromeBrowserConnection browserConnection =
|
| + ChromeBrowserConnection.getInstance(activity.getApplication());
|
| + WebContents webContents = browserConnection.takePrerenderedUrl(sessionId, url, null);
|
| if (webContents == null) {
|
| webContents = ContentViewUtil.createWebContents(isIncognito(), false);
|
| }
|
| initialize(webContents, activity.getTabContentManager(), false);
|
| getView().requestFocus();
|
| + addObserver(new LoadUrlTabObserver(browserConnection, sessionId));
|
| }
|
|
|
| @Override
|
|
|