Commit b215364a authored by Jinsuk Kim's avatar Jinsuk Kim Committed by Commit Bot

PreviewTab: Move EphemeralTabCoordiator to TabbedRootUiCoordiator

This CL moves EphemeralTabCoordinator field from ChromeActivity
to TabbedRootUiCoordinator since it is UI a component for tabbed
mode only. This aims to make the code structure better by
slimming down ChromeActivity (no more getter for the object),
hence one less usage of Tab.getActivity() in
TabContextMenuItemDelegate, replaced with an injection of a
dependency through the constructor.

Bug: 1051184
Change-Id: I5856cb27030f3b7e7e17efd93a001d2e84335a71
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2102029
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Cr-Commit-Position: refs/heads/master@{#751583}
parent ac4cdd10
...@@ -58,7 +58,6 @@ import org.chromium.chrome.browser.bookmarks.BookmarkBridge; ...@@ -58,7 +58,6 @@ import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
import org.chromium.chrome.browser.bookmarks.BookmarkModel; import org.chromium.chrome.browser.bookmarks.BookmarkModel;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManager; import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
...@@ -262,7 +261,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -262,7 +261,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
protected ReaderModeManager mReaderModeManager; protected ReaderModeManager mReaderModeManager;
private SnackbarManager mSnackbarManager; private SnackbarManager mSnackbarManager;
private EphemeralTabCoordinator mEphemeralTabCoordinator;
private UpdateNotificationController mUpdateNotificationController; private UpdateNotificationController mUpdateNotificationController;
private StatusBarColorController mStatusBarColorController; private StatusBarColorController mStatusBarColorController;
...@@ -1340,12 +1338,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -1340,12 +1338,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
findViewById(R.id.keyboard_accessory_stub), findViewById(R.id.keyboard_accessory_stub),
findViewById(R.id.keyboard_accessory_sheet_stub)); findViewById(R.id.keyboard_accessory_sheet_stub));
if (EphemeralTabCoordinator.isSupported()) {
mEphemeralTabCoordinator = new EphemeralTabCoordinator(this, getWindowAndroid(),
getWindow().getDecorView(), getActivityTabProvider(),
this::getCurrentTabCreator, getBottomSheetController(), () -> !isCustomTab());
}
if (ChromeFeatureList.isEnabled(ChromeFeatureList.ANDROID_NIGHT_MODE_TAB_REPARENTING)) { if (ChromeFeatureList.isEnabled(ChromeFeatureList.ANDROID_NIGHT_MODE_TAB_REPARENTING)) {
mNightModeReparentingController = new NightModeReparentingController( mNightModeReparentingController = new NightModeReparentingController(
ReparentingDelegateFactory.createNightModeReparentingControllerDelegate( ReparentingDelegateFactory.createNightModeReparentingControllerDelegate(
...@@ -1506,8 +1498,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -1506,8 +1498,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
} }
public TabDelegateFactory getTabDelegateFactory() { public TabDelegateFactory getTabDelegateFactory() {
return new TabbedModeTabDelegateFactory( return new TabbedModeTabDelegateFactory(this,
this, new ComposedBrowserControlsVisibilityDelegate(), getShareDelegateSupplier()); new ComposedBrowserControlsVisibilityDelegate(), getShareDelegateSupplier(), null);
} }
/** /**
...@@ -1642,13 +1634,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -1642,13 +1634,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return mContextualSearchManager; return mContextualSearchManager;
} }
/**
* @return The {@code EphemeralTabCoordinator}.
*/
public EphemeralTabCoordinator getEphemeralTabCoordinator() {
return mEphemeralTabCoordinator;
}
/** /**
* @return The {@code ReaderModeManager} or {@code null} if none; * @return The {@code ReaderModeManager} or {@code null} if none;
*/ */
......
...@@ -54,6 +54,7 @@ import org.chromium.chrome.browser.IntentHandler.TabOpenType; ...@@ -54,6 +54,7 @@ import org.chromium.chrome.browser.IntentHandler.TabOpenType;
import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout; import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver; import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver;
import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManager; import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
...@@ -282,6 +283,9 @@ public class ChromeTabbedActivity ...@@ -282,6 +283,9 @@ public class ChromeTabbedActivity
private OverviewModeBehavior.OverviewModeObserver mOverviewModeObserver; private OverviewModeBehavior.OverviewModeObserver mOverviewModeObserver;
private ObservableSupplierImpl<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier =
new ObservableSupplierImpl<>();
private final IncognitoTabHost mIncognitoTabHost = new IncognitoTabHost() { private final IncognitoTabHost mIncognitoTabHost = new IncognitoTabHost() {
@Override @Override
...@@ -1481,7 +1485,8 @@ public class ChromeTabbedActivity ...@@ -1481,7 +1485,8 @@ public class ChromeTabbedActivity
@Override @Override
protected RootUiCoordinator createRootUiCoordinator() { protected RootUiCoordinator createRootUiCoordinator() {
return new TabbedRootUiCoordinator(this, this::onOmniboxFocusChanged, mIntentWithEffect, return new TabbedRootUiCoordinator(this, this::onOmniboxFocusChanged, mIntentWithEffect,
getShareDelegateSupplier(), getActivityTabProvider()); getShareDelegateSupplier(), getActivityTabProvider(),
mEphemeralTabCoordinatorSupplier);
} }
@Override @Override
...@@ -1579,8 +1584,8 @@ public class ChromeTabbedActivity ...@@ -1579,8 +1584,8 @@ public class ChromeTabbedActivity
@Override @Override
protected Pair<ChromeTabCreator, ChromeTabCreator> createTabCreators() { protected Pair<ChromeTabCreator, ChromeTabCreator> createTabCreators() {
Supplier<TabDelegateFactory> tabDelegateFactorySupplier = () -> { Supplier<TabDelegateFactory> tabDelegateFactorySupplier = () -> {
return new TabbedModeTabDelegateFactory( return new TabbedModeTabDelegateFactory(this, getAppBrowserControlsVisibilityDelegate(),
this, getAppBrowserControlsVisibilityDelegate(), getShareDelegateSupplier()); getShareDelegateSupplier(), mEphemeralTabCoordinatorSupplier);
}; };
ChromeTabCreator.OverviewNTPCreator overviewNTPCreator = null; ChromeTabCreator.OverviewNTPCreator overviewNTPCreator = null;
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
package org.chromium.chrome.browser; package org.chromium.chrome.browser;
import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator; import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator;
import org.chromium.chrome.browser.contextmenu.ContextMenuPopulator; import org.chromium.chrome.browser.contextmenu.ContextMenuPopulator;
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils; import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
...@@ -28,13 +29,16 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { ...@@ -28,13 +29,16 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
private final ChromeActivity mActivity; private final ChromeActivity mActivity;
private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate; private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate;
private final Supplier<ShareDelegate> mShareDelegateSupplier; private final Supplier<ShareDelegate> mShareDelegateSupplier;
private final Supplier<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier;
public TabbedModeTabDelegateFactory(ChromeActivity activity, public TabbedModeTabDelegateFactory(ChromeActivity activity,
BrowserControlsVisibilityDelegate appBrowserControlsVisibilityDelegate, BrowserControlsVisibilityDelegate appBrowserControlsVisibilityDelegate,
Supplier<ShareDelegate> shareDelegateSupplier) { Supplier<ShareDelegate> shareDelegateSupplier,
Supplier<EphemeralTabCoordinator> ephemeralTabCoordinatorSupplier) {
mActivity = activity; mActivity = activity;
mAppBrowserControlsVisibilityDelegate = appBrowserControlsVisibilityDelegate; mAppBrowserControlsVisibilityDelegate = appBrowserControlsVisibilityDelegate;
mShareDelegateSupplier = shareDelegateSupplier; mShareDelegateSupplier = shareDelegateSupplier;
mEphemeralTabCoordinatorSupplier = ephemeralTabCoordinatorSupplier;
} }
@Override @Override
...@@ -49,7 +53,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { ...@@ -49,7 +53,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
@Override @Override
public ContextMenuPopulator createContextMenuPopulator(Tab tab) { public ContextMenuPopulator createContextMenuPopulator(Tab tab) {
return new ChromeContextMenuPopulator(new TabContextMenuItemDelegate(tab), return new ChromeContextMenuPopulator(
new TabContextMenuItemDelegate(tab, mEphemeralTabCoordinatorSupplier),
mShareDelegateSupplier, ChromeContextMenuPopulator.ContextMenuMode.NORMAL, mShareDelegateSupplier, ChromeContextMenuPopulator.ContextMenuMode.NORMAL,
ExternalAuthUtils.getInstance()); ExternalAuthUtils.getInstance());
} }
......
...@@ -479,7 +479,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { ...@@ -479,7 +479,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory {
int contextMenuMode = getContextMenuMode(mActivityType); int contextMenuMode = getContextMenuMode(mActivityType);
Supplier<ShareDelegate> shareDelegateSupplier = Supplier<ShareDelegate> shareDelegateSupplier =
mActivity == null ? null : mActivity.getShareDelegateSupplier(); mActivity == null ? null : mActivity.getShareDelegateSupplier();
return new ChromeContextMenuPopulator(new TabContextMenuItemDelegate(tab), return new ChromeContextMenuPopulator(new TabContextMenuItemDelegate(tab, null),
shareDelegateSupplier, contextMenuMode, ExternalAuthUtils.getInstance()); shareDelegateSupplier, contextMenuMode, ExternalAuthUtils.getInstance());
} }
......
...@@ -3,6 +3,7 @@ include_rules = [ ...@@ -3,6 +3,7 @@ include_rules = [
"+chrome/android/java/src/org/chromium/chrome/browser/ActivityTabProvider.java", "+chrome/android/java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
"+chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java", "+chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java",
"+chrome/android/java/src/org/chromium/chrome/browser/TabHidingType.java", "+chrome/android/java/src/org/chromium/chrome/browser/TabHidingType.java",
"+chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator.java",
"+chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoUtils.java", "+chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoUtils.java",
"+chrome/android/java/src/org/chromium/chrome/browser/paint_preview/PaintPreviewTabHelper.java", "+chrome/android/java/src/org/chromium/chrome/browser/paint_preview/PaintPreviewTabHelper.java",
"+chrome/android/java/src/org/chromium/chrome/browser/previews/Previews.java", "+chrome/android/java/src/org/chromium/chrome/browser/previews/Previews.java",
......
...@@ -17,12 +17,13 @@ import org.chromium.base.ContextUtils; ...@@ -17,12 +17,13 @@ import org.chromium.base.ContextUtils;
import org.chromium.base.IntentUtils; import org.chromium.base.IntentUtils;
import org.chromium.base.PackageManagerUtils; import org.chromium.base.PackageManagerUtils;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.DefaultBrowserInfo;
import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
import org.chromium.chrome.browser.contextmenu.ContextMenuItemDelegate; import org.chromium.chrome.browser.contextmenu.ContextMenuItemDelegate;
import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.chrome.browser.document.ChromeLauncherActivity;
import org.chromium.chrome.browser.download.ChromeDownloadDelegate; import org.chromium.chrome.browser.download.ChromeDownloadDelegate;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.incognito.IncognitoUtils; import org.chromium.chrome.browser.incognito.IncognitoUtils;
import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
...@@ -46,12 +47,16 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { ...@@ -46,12 +47,16 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
private final TabImpl mTab; private final TabImpl mTab;
private boolean mLoadOriginalImageRequestedForPageLoad; private boolean mLoadOriginalImageRequestedForPageLoad;
private EmptyTabObserver mDataReductionProxyContextMenuTabObserver; private EmptyTabObserver mDataReductionProxyContextMenuTabObserver;
private final Supplier<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier;
/** /**
* Builds a {@link TabContextMenuItemDelegate} instance. * Builds a {@link TabContextMenuItemDelegate} instance.
*/ */
public TabContextMenuItemDelegate(Tab tab) { public TabContextMenuItemDelegate(
Tab tab, Supplier<EphemeralTabCoordinator> ephemeralTabCoordinatorSupplier) {
mTab = (TabImpl) tab; mTab = (TabImpl) tab;
mEphemeralTabCoordinatorSupplier = ephemeralTabCoordinatorSupplier;
mDataReductionProxyContextMenuTabObserver = new EmptyTabObserver() { mDataReductionProxyContextMenuTabObserver = new EmptyTabObserver() {
@Override @Override
public void onPageLoadStarted(Tab tab, String url) { public void onPageLoadStarted(Tab tab, String url) {
...@@ -236,10 +241,11 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { ...@@ -236,10 +241,11 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@Override @Override
public void onOpenInEphemeralTab(String url, String title) { public void onOpenInEphemeralTab(String url, String title) {
if (ChromeFeatureList.isEnabled(ChromeFeatureList.EPHEMERAL_TAB_USING_BOTTOM_SHEET)) { if (mEphemeralTabCoordinatorSupplier == null
mTab.getActivity().getEphemeralTabCoordinator().requestOpenSheet( || mEphemeralTabCoordinatorSupplier.get() == null) {
url, title, mTab.isIncognito()); return;
} }
mEphemeralTabCoordinatorSupplier.get().requestOpenSheet(url, title, mTab.isIncognito());
} }
@Override @Override
......
...@@ -13,12 +13,14 @@ import org.chromium.base.ApiCompatibilityUtils; ...@@ -13,12 +13,14 @@ import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.TraceEvent; import org.chromium.base.TraceEvent;
import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.ObservableSupplierImpl;
import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.Supplier;
import org.chromium.base.task.PostTask; import org.chromium.base.task.PostTask;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.AppHooks; import org.chromium.chrome.browser.AppHooks;
import org.chromium.chrome.browser.ChromeActivity; import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
import org.chromium.chrome.browser.compositor.layouts.LayoutManager; import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
import org.chromium.chrome.browser.datareduction.DataReductionPromoScreen; import org.chromium.chrome.browser.datareduction.DataReductionPromoScreen;
import org.chromium.chrome.browser.firstrun.FirstRunStatus; import org.chromium.chrome.browser.firstrun.FirstRunStatus;
...@@ -65,6 +67,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native ...@@ -65,6 +67,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
private ConnectivityDetector mConnectivityDetector; private ConnectivityDetector mConnectivityDetector;
private @Nullable ToolbarButtonInProductHelpController mToolbarButtonInProductHelpController; private @Nullable ToolbarButtonInProductHelpController mToolbarButtonInProductHelpController;
private boolean mIntentWithEffect; private boolean mIntentWithEffect;
private ObservableSupplierImpl<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier;
/** /**
* Construct a new TabbedRootUiCoordinator. * Construct a new TabbedRootUiCoordinator.
...@@ -79,9 +82,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native ...@@ -79,9 +82,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
public TabbedRootUiCoordinator(ChromeActivity activity, public TabbedRootUiCoordinator(ChromeActivity activity,
Callback<Boolean> onOmniboxFocusChangedListener, boolean intentWithEffect, Callback<Boolean> onOmniboxFocusChangedListener, boolean intentWithEffect,
ObservableSupplier<ShareDelegate> shareDelegateSupplier, ObservableSupplier<ShareDelegate> shareDelegateSupplier,
ActivityTabProvider tabProvider) { ActivityTabProvider tabProvider,
ObservableSupplierImpl<EphemeralTabCoordinator> ephemeralTabCoordinatorSupplier) {
super(activity, onOmniboxFocusChangedListener, shareDelegateSupplier, tabProvider); super(activity, onOmniboxFocusChangedListener, shareDelegateSupplier, tabProvider);
mIntentWithEffect = intentWithEffect; mIntentWithEffect = intentWithEffect;
mEphemeralTabCoordinatorSupplier = ephemeralTabCoordinatorSupplier;
} }
@Override @Override
...@@ -118,6 +123,15 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native ...@@ -118,6 +123,15 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
} }
} }
@Override
protected void onFindToolbarShown() {
super.onFindToolbarShown();
if (mEphemeralTabCoordinatorSupplier != null
&& mEphemeralTabCoordinatorSupplier.get().isOpened()) {
mEphemeralTabCoordinatorSupplier.get().close();
}
}
/** /**
* @return The toolbar button IPH controller for the tabbed UI this coordinator controls. * @return The toolbar button IPH controller for the tabbed UI this coordinator controls.
* TODO(pnoland, https://crbug.com/865801): remove this in favor of wiring it directly. * TODO(pnoland, https://crbug.com/865801): remove this in favor of wiring it directly.
...@@ -139,6 +153,13 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native ...@@ -139,6 +153,13 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
mEmptyBackgroundViewWrapper.initialize(); mEmptyBackgroundViewWrapper.initialize();
} }
if (EphemeralTabCoordinator.isSupported()) {
mEphemeralTabCoordinatorSupplier.set(new EphemeralTabCoordinator(mActivity,
mActivity.getWindowAndroid(), mActivity.getWindow().getDecorView(),
mActivity.getActivityTabProvider(), mActivity::getCurrentTabCreator,
mActivity.getBottomSheetController(), () -> !mActivity.isCustomTab()));
}
PostTask.postTask(UiThreadTaskTraits.DEFAULT, this::initializeIPH); PostTask.postTask(UiThreadTaskTraits.DEFAULT, this::initializeIPH);
} }
......
...@@ -485,14 +485,7 @@ public class RootUiCoordinator ...@@ -485,14 +485,7 @@ public class RootUiCoordinator
mFindToolbarObserver = new FindToolbarObserver() { mFindToolbarObserver = new FindToolbarObserver() {
@Override @Override
public void onFindToolbarShown() { public void onFindToolbarShown() {
if (mActivity.getContextualSearchManager() != null) { RootUiCoordinator.this.onFindToolbarShown();
mActivity.getContextualSearchManager().hideContextualSearch(
OverlayPanel.StateChangeReason.UNKNOWN);
}
if (mActivity.getEphemeralTabCoordinator() != null
&& mActivity.getEphemeralTabCoordinator().isOpened()) {
mActivity.getEphemeralTabCoordinator().close();
}
} }
@Override @Override
...@@ -504,6 +497,17 @@ public class RootUiCoordinator ...@@ -504,6 +497,17 @@ public class RootUiCoordinator
mActivity.getToolbarManager().setFindToolbarManager(mFindToolbarManager); mActivity.getToolbarManager().setFindToolbarManager(mFindToolbarManager);
} }
/**
* Called when the find in page toolbar is shown. Sub-classes may override to manage
* cross-feature interaction, e.g. hide other features when this feature is shown.
*/
protected void onFindToolbarShown() {
if (mActivity.getContextualSearchManager() != null) {
mActivity.getContextualSearchManager().hideContextualSearch(
OverlayPanel.StateChangeReason.UNKNOWN);
}
}
/** /**
* Initialize the {@link BottomSheetController}. The view for this component is not created * Initialize the {@link BottomSheetController}. The view for this component is not created
* until content is requested in the sheet. * until content is requested in the sheet.
......
...@@ -76,7 +76,7 @@ public class TabUmaTest { ...@@ -76,7 +76,7 @@ public class TabUmaTest {
BrowserControlsVisibilityDelegate visibilityDelegate = BrowserControlsVisibilityDelegate visibilityDelegate =
new BrowserControlsVisibilityDelegate(BrowserControlsState.BOTH) {}; new BrowserControlsVisibilityDelegate(BrowserControlsState.BOTH) {};
return new TabbedModeTabDelegateFactory(mActivityTestRule.getActivity(), visibilityDelegate, return new TabbedModeTabDelegateFactory(mActivityTestRule.getActivity(), visibilityDelegate,
new ObservableSupplierImpl<ShareDelegate>()); new ObservableSupplierImpl<ShareDelegate>(), null);
} }
private Tab createLazilyLoadedTab(boolean show) throws ExecutionException { private Tab createLazilyLoadedTab(boolean show) throws ExecutionException {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment