| 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 c3d44906522197779a5eea376b5b8b7f6c03e4a2..99b44fa55c61af1a31c21f4cde85833c457b9723 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| @@ -143,6 +143,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;
|
| @@ -221,6 +222,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
| private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListener;
|
|
|
| private ActivityWindowAndroid mWindowAndroid;
|
| + private ViewRoot mViewRoot;
|
|
|
| private ChromeFullscreenManager mFullscreenManager;
|
| private boolean mCreatedFullscreenManager;
|
| @@ -276,6 +278,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;
|
| @@ -645,7 +648,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);
|
| @@ -983,6 +986,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
| mWindowAndroid = null;
|
| }
|
|
|
| + if (mViewRoot != null) {
|
| + mViewRoot.destroy();
|
| + mViewRoot = null;
|
| + }
|
| +
|
| CombinedPolicyProvider.get().removePolicyChangeListener(this);
|
|
|
| if (mTabContentManager != null) {
|
| @@ -1409,6 +1417,13 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
| }
|
|
|
| /**
|
| + * @return A {@link ViewRoot} instance.
|
| + */
|
| + public ViewRoot getViewRoot() {
|
| + return mViewRoot;
|
| + }
|
| +
|
| + /**
|
| * @return A {@link CompositorViewHolder} instance.
|
| */
|
| public CompositorViewHolder getCompositorViewHolder() {
|
|
|