| 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 162d1fa3d260bacf4d5b0edd52bc7e306bf99bb9..c4adf509e3ea95b487f473471618826161d6fa0f 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| @@ -205,6 +205,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
| private ActivityWindowAndroid mWindowAndroid;
|
| private ChromeFullscreenManager mFullscreenManager;
|
| private CompositorViewHolder mCompositorViewHolder;
|
| + private InsetObserverView mInsetObserverView;
|
| private ContextualSearchManager mContextualSearchManager;
|
| private ReaderModeManager mReaderModeManager;
|
| private SnackbarManager mSnackbarManager;
|
| @@ -352,8 +353,18 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
| // black status bar
|
| ApiCompatibilityUtils.setStatusBarColor(getWindow(), Color.BLACK);
|
|
|
| + ViewGroup rootView = (ViewGroup) getWindow().getDecorView().getRootView();
|
| mCompositorViewHolder = (CompositorViewHolder) findViewById(R.id.compositor_view_holder);
|
| - mCompositorViewHolder.setRootView(getWindow().getDecorView().getRootView());
|
| + mCompositorViewHolder.setRootView(rootView);
|
| +
|
| + // Setting fitsSystemWindows to false ensures that the root view doesn't consume the insets.
|
| + rootView.setFitsSystemWindows(false);
|
| +
|
| + // Add a custom view right after the root view that stores the insets to access later.
|
| + // ContentViewCore needs the insets to determine the portion of the screen obscured by
|
| + // non-content displaying things such as the OSK.
|
| + mInsetObserverView = InsetObserverView.create(this);
|
| + rootView.addView(mInsetObserverView, 0);
|
| }
|
|
|
| /**
|
| @@ -1059,6 +1070,15 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
| return mTabModelSelector;
|
| }
|
|
|
| + /**
|
| + * Returns the {@link InsetObserverView} that has the current system window
|
| + * insets information.
|
| + * @return The {@link InsetObserverView}, possibly null.
|
| + */
|
| + public InsetObserverView getInsetObserverView() {
|
| + return mInsetObserverView;
|
| + }
|
| +
|
| @Override
|
| public TabCreatorManager.TabCreator getTabCreator(boolean incognito) {
|
| return incognito ? mIncognitoTabCreator : mRegularTabCreator;
|
|
|