Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
index ff97c0d5a2e30d0e3360285fbf0184c364026ead..93a35ab95b81069eee83ac2d01809799c25a1d9a 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
@@ -145,6 +145,7 @@ import org.chromium.printing.PrintingControllerImpl; |
import org.chromium.ui.base.ActivityWindowAndroid; |
import org.chromium.ui.base.DeviceFormFactor; |
import org.chromium.ui.base.PageTransition; |
+import org.chromium.ui.base.ViewRoot; |
import org.chromium.ui.base.WindowAndroid; |
import java.util.ArrayList; |
@@ -225,6 +226,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListener; |
private ActivityWindowAndroid mWindowAndroid; |
+ private ViewRoot mViewRoot; |
private ChromeFullscreenManager mFullscreenManager; |
private boolean mCreatedFullscreenManager; |
@@ -281,6 +283,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
getWindow().setBackgroundDrawable(getBackgroundDrawable()); |
mWindowAndroid = new ChromeWindow(this); |
mWindowAndroid.restoreInstanceState(getSavedInstanceState()); |
+ mViewRoot = ViewRoot.create(mWindowAndroid); |
mFullscreenManager = createFullscreenManager(); |
mCreatedFullscreenManager = true; |
@@ -669,7 +672,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
setTabContentManager(new TabContentManager(this, getContentOffsetProvider(), |
DeviceClassManager.enableSnapshots())); |
- mCompositorViewHolder.onNativeLibraryReady(mWindowAndroid, getTabContentManager()); |
+ mCompositorViewHolder.onNativeLibraryReady(mViewRoot, getTabContentManager()); |
if (isContextualSearchAllowed() && ContextualSearchFieldTrial.isEnabled()) { |
mContextualSearchManager = new ContextualSearchManager(this, mWindowAndroid, this); |
@@ -1002,6 +1005,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
if (selector != null) selector.destroy(); |
} |
+ if (mViewRoot != null) { |
+ mViewRoot.destroy(); |
+ mViewRoot = null; |
+ } |
+ |
if (mWindowAndroid != null) { |
mWindowAndroid.destroy(); |
mWindowAndroid = null; |
@@ -1426,6 +1434,13 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
} |
/** |
+ * @return A {@link ViewRoot} instance. |
+ */ |
+ public ViewRoot getViewRoot() { |
+ return mViewRoot; |
+ } |
+ |
+ /** |
* @return A {@link WindowAndroid} instance. |
*/ |
public WindowAndroid getWindowAndroid() { |