| Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
|
| index ff5a20582c9ff3163ef352d2dc295c98d30df9f5..a6a86080c13965624cc6d34473f9fafe8441d4a3 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
|
| @@ -124,13 +124,12 @@ public class CompositorViewHolder extends CoordinatorLayout
|
| // If we've drawn at least one frame.
|
| private boolean mHasDrawnOnce;
|
|
|
| - private ViewRoot mViewRoot;
|
| -
|
| /**
|
| * The information about {@link ContentView} for overlay panel. Used to adjust the backing
|
| * size of the content accordingly.
|
| */
|
| private ContentView mOverlayContentView;
|
| + private ViewRoot mOverlayViewRoot;
|
| private int mOverlayContentWidthMeasureSpec = ContentView.DEFAULT_MEASURE_SPEC;
|
| private int mOverlayContentHeightMeasureSpec = ContentView.DEFAULT_MEASURE_SPEC;
|
|
|
| @@ -252,12 +251,14 @@ public class CompositorViewHolder extends CoordinatorLayout
|
|
|
| /**
|
| * Set the desired size of the overlay content view.
|
| - * @param overlayContentView {@link ContentView} used for overlay panel.
|
| + * @param view {@link ContentView} used for overlay panel.
|
| + * @param root {@link ViewRoot} used for overlay panel.
|
| * @param width The width of the content view in {@link MeasureSpec}.
|
| * @param height The height of the content view in {@link MeasureSpec}.
|
| */
|
| - public void setOverlayContentInfo(ContentView overlayContentView, int width, int height) {
|
| - mOverlayContentView = overlayContentView;
|
| + public void setOverlayContentInfo(ContentView view, ViewRoot root, int width, int height) {
|
| + mOverlayContentView = view;
|
| + mOverlayViewRoot = root;
|
| mOverlayContentWidthMeasureSpec = width;
|
| mOverlayContentHeightMeasureSpec = height;
|
| }
|
| @@ -318,8 +319,6 @@ public class CompositorViewHolder extends CoordinatorLayout
|
| mCompositorView.getResourceManager().getDynamicResourceLoader().registerResource(
|
| R.id.control_container, mControlContainer.getToolbarResourceAdapter());
|
| }
|
| -
|
| - mViewRoot = windowAndroid.getViewRoot();
|
| }
|
|
|
| /**
|
| @@ -430,18 +429,26 @@ public class CompositorViewHolder extends CoordinatorLayout
|
| return mCompositorView;
|
| }
|
|
|
| - private View getActiveView() {
|
| + private Tab getActiveTab() {
|
| if (mLayoutManager == null || mTabModelSelector == null) return null;
|
| - Tab tab = mTabModelSelector.getCurrentTab();
|
| + return mTabModelSelector.getCurrentTab();
|
| + }
|
| +
|
| + private View getActiveView() {
|
| + Tab tab = getActiveTab();
|
| return tab != null ? tab.getContentView() : null;
|
| }
|
|
|
| private ContentViewCore getActiveContent() {
|
| - if (mLayoutManager == null || mTabModelSelector == null) return null;
|
| - Tab tab = mTabModelSelector.getCurrentTab();
|
| + Tab tab = getActiveTab();
|
| return tab != null ? tab.getActiveContentViewCore() : null;
|
| }
|
|
|
| + private ViewRoot getActiveViewRoot() {
|
| + Tab tab = getActiveTab();
|
| + return tab != null ? tab.getViewRoot() : null;
|
| + }
|
| +
|
| @Override
|
| protected void onSizeChanged(int w, int h, int oldw, int oldh) {
|
| super.onSizeChanged(w, h, oldw, oldh);
|
| @@ -952,12 +959,15 @@ public class CompositorViewHolder extends CoordinatorLayout
|
| */
|
| private void adjustPhysicalBackingSize(ContentViewCore contentViewCore, int width, int height) {
|
| ContentView contentView = (ContentView) contentViewCore.getContainerView();
|
| - if (contentView == mOverlayContentView) {
|
| + ViewRoot viewRoot;
|
| + if (contentView != mOverlayContentView) {
|
| + viewRoot = getActiveViewRoot();
|
| + } else {
|
| width = MeasureSpec.getSize(mOverlayContentWidthMeasureSpec);
|
| height = MeasureSpec.getSize(mOverlayContentHeightMeasureSpec);
|
| + viewRoot = mOverlayViewRoot;
|
| }
|
| -
|
| - mViewRoot.onPhysicalBackingSizeChanged(width, height);
|
| + if (viewRoot != null) viewRoot.onPhysicalBackingSizeChanged(width, height);
|
| }
|
|
|
| /**
|
|
|