Index: chrome/android/shell/java/src/org/chromium/chrome/shell/TabManager.java |
diff --git a/chrome/android/shell/java/src/org/chromium/chrome/shell/TabManager.java b/chrome/android/shell/java/src/org/chromium/chrome/shell/TabManager.java |
index 0032af4c04b743d2e88efc6c8d99d1168d262839..b48a5bd657f56e3aba6ad9d76ed7c1f3d7bddb5d 100644 |
--- a/chrome/android/shell/java/src/org/chromium/chrome/shell/TabManager.java |
+++ b/chrome/android/shell/java/src/org/chromium/chrome/shell/TabManager.java |
@@ -11,7 +11,10 @@ import android.view.ViewGroup; |
import android.widget.FrameLayout; |
import android.widget.LinearLayout; |
+import org.chromium.chrome.browser.EmptyTabObserver; |
+import org.chromium.chrome.browser.Tab; |
import org.chromium.content.browser.ContentVideoViewClient; |
+import org.chromium.content.browser.ContentView; |
import org.chromium.content.browser.ContentViewClient; |
import org.chromium.content.browser.ContentViewRenderView; |
import org.chromium.ui.base.WindowAndroid; |
@@ -33,6 +36,7 @@ public class TabManager extends LinearLayout { |
private ChromeShellTab mCurrentTab; |
private String mStartupUrl = DEFAULT_URL; |
+ private ContentView mCurrentContentView; |
/** |
* @param context The Context the view is running in. |
@@ -122,11 +126,24 @@ public class TabManager extends LinearLayout { |
} |
mCurrentTab = tab; |
+ mCurrentContentView = tab.getContentView(); |
+ |
+ mCurrentTab.addObserver(new EmptyTabObserver() { |
+ @Override |
+ public void onContentChanged(Tab tab) { |
+ mContentViewHolder.removeView(mCurrentContentView); |
+ setupContent(tab); |
+ } |
+ }); |
mToolbar.showTab(mCurrentTab); |
- mContentViewHolder.addView(mCurrentTab.getContentView()); |
- mContentViewRenderView.setCurrentContentViewCore(mCurrentTab.getContentViewCore()); |
- mCurrentTab.getContentView().requestFocus(); |
- mCurrentTab.getContentViewCore().onShow(); |
+ setupContent(mCurrentTab); |
+ } |
+ |
+ private void setupContent(Tab tab) { |
+ mContentViewHolder.addView(tab.getContentView()); |
+ mContentViewRenderView.setCurrentContentViewCore(tab.getContentViewCore()); |
+ tab.getContentView().requestFocus(); |
+ tab.getContentViewCore().onShow(); |
} |
} |