| Index: chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
|
| index ef07caef7dc1acbc9fad0f17fc60ef0bc26246e6..0ca930c477696d98f07cc68ff7c9f56602c79c9c 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
|
| @@ -191,7 +191,7 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
|
| private GestureStateListener mGestureStateListener;
|
|
|
| /** The parent view of the ContentView and the InfoBarContainer. */
|
| - private TabContentViewParent mContentViewParent;
|
| + private View mContentView;
|
|
|
| /** A list of Tab observers. These are used to broadcast Tab events to listeners. */
|
| private final ObserverList<TabObserver> mObservers = new ObserverList<>();
|
| @@ -814,8 +814,8 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
|
| * @return The {@link View} displaying the current page in the tab. This can be {@code null}, if
|
| * the tab is frozen or being initialized or destroyed.
|
| */
|
| - public TabContentViewParent getView() {
|
| - return mContentViewParent;
|
| + public View getView() {
|
| + return mNativePage != null ? mNativePage.getView() : mContentView;
|
| }
|
|
|
| /**
|
| @@ -1754,19 +1754,7 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
|
| cvc.getContainerView().setOnHierarchyChangeListener(this);
|
| cvc.getContainerView().setOnSystemUiVisibilityChangeListener(this);
|
|
|
| - // Wrap the ContentView in a FrameLayout, which will contain both the ContentView and
|
| - // the InfoBarContainer. The alternative -- placing the InfoBarContainer inside the
|
| - // ContentView -- causes problems since then the ContentView would contain both real
|
| - // views (the infobars) and virtual views (the web page elements), which breaks Android
|
| - // accessibility. http://crbug.com/416663
|
| - if (mContentViewParent != null) {
|
| - assert false;
|
| - mContentViewParent.removeAllViews();
|
| - }
|
| - mContentViewParent = new TabContentViewParent(mThemedApplicationContext, this);
|
| - mContentViewParent.addView(cvc.getContainerView(), 0, new FrameLayout.LayoutParams(
|
| - LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
|
| -
|
| + mContentView = cvc.getContainerView();
|
| mWebContentsDelegate = mDelegateFactory.createWebContentsDelegate(this);
|
| mWebContentsObserver =
|
| new TabWebContentsObserver(mContentViewCore.getWebContents(), this);
|
| @@ -1783,15 +1771,15 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
|
| new TabContextMenuPopulator(
|
| mDelegateFactory.createContextMenuPopulator(this), this));
|
|
|
| + final ViewGroup bottomContainer = (ViewGroup) getActivity()
|
| + .findViewById(R.id.bottom_container);
|
| // In the case where restoring a Tab or showing a prerendered one we already have a
|
| // valid infobar container, no need to recreate one.
|
| if (mInfoBarContainer == null) {
|
| // The InfoBarContainer needs to be created after the ContentView has been natively
|
| // initialized.
|
| - mInfoBarContainer = new InfoBarContainer(
|
| - mThemedApplicationContext, getId(), mContentViewParent, this);
|
| - } else {
|
| - mInfoBarContainer.onParentViewChanged(getId(), mContentViewParent);
|
| + mInfoBarContainer = new InfoBarContainer(mThemedApplicationContext, bottomContainer,
|
| + this);
|
| }
|
| mInfoBarContainer.setContentViewCore(mContentViewCore);
|
|
|
| @@ -2341,7 +2329,7 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
|
| mSwipeRefreshHandler.destroy();
|
| mSwipeRefreshHandler = null;
|
| }
|
| - mContentViewParent = null;
|
| + mContentView = null;
|
| mContentViewCore.destroy();
|
| mContentViewCore = null;
|
|
|
|
|