| Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
|
| index c37a9d9038f19797b2c9cd91ff04a47924fb9d5c..7885266fb69d53ff38365068d525d1de6b98da51 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
|
| @@ -7,6 +7,7 @@ package org.chromium.chrome.browser.compositor.layouts;
|
| import android.graphics.Point;
|
| import android.graphics.Rect;
|
| import android.graphics.RectF;
|
| +import android.os.Handler;
|
| import android.os.SystemClock;
|
| import android.view.MotionEvent;
|
| import android.view.View;
|
| @@ -30,6 +31,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchManagementDe
|
| import org.chromium.chrome.browser.dom_distiller.ReaderModeManagerDelegate;
|
| import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
|
| import org.chromium.chrome.browser.fullscreen.FullscreenManager;
|
| +import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver;
|
| import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
|
| import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
| import org.chromium.content.browser.SPenSupport;
|
| @@ -245,6 +247,8 @@ public abstract class LayoutManager implements LayoutUpdateHost, LayoutProvider,
|
| mContentContainer = androidContentContainer;
|
|
|
| if (mNextActiveLayout != null) startShowing(mNextActiveLayout, true);
|
| +
|
| + updateLayoutForTabModelSelector();
|
| }
|
|
|
| /**
|
| @@ -525,4 +529,30 @@ public abstract class LayoutManager implements LayoutUpdateHost, LayoutProvider,
|
| return Orientation.PORTRAIT;
|
| }
|
| }
|
| +
|
| + /**
|
| + * Updates the Layout for the state of the {@link TabModelSelector} after initialization.
|
| + * If the TabModelSelector is not yet initialized when this function is called, a
|
| + * {@link TabModelSelectorObserver} is created to listen for when it is ready.
|
| + */
|
| + private void updateLayoutForTabModelSelector() {
|
| + if (mTabModelSelector.isTabStateInitialized() && getActiveLayout() != null) {
|
| + getActiveLayout().onTabStateInitialized();
|
| + } else {
|
| + mTabModelSelector.addObserver(new EmptyTabModelSelectorObserver() {
|
| + @Override
|
| + public void onTabStateInitialized() {
|
| + if (getActiveLayout() != null) getActiveLayout().onTabStateInitialized();
|
| +
|
| + final EmptyTabModelSelectorObserver observer = this;
|
| + new Handler().post(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + mTabModelSelector.removeObserver(observer);
|
| + }
|
| + });
|
| + }
|
| + });
|
| + }
|
| + }
|
| }
|
|
|