Commit 30964889 authored by Brandon Wylie's avatar Brandon Wylie Committed by Commit Bot

Revert "Remove ChromeActivity reference from AutoCompleteMediator"

This reverts commit 8315bbca.

Reason for revert: Doesn't support multi-window

Original change's description:
> Remove ChromeActivity reference from AutoCompleteMediator
> 
> ChromeActivity is used in AutocompleteMediator to provide the current
> TabModelSelector. This dependency should instead be acquired through
> direct constructor injection.
> 
> Bug: 1123209,1097292,1113364
> Change-Id: I95c8a58f06f250b6397ec7926b2262b5b2b4298b
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2382958
> Reviewed-by: Patrick Noland <pnoland@chromium.org>
> Reviewed-by: Ted Choc <tedchoc@chromium.org>
> Reviewed-by: Tomasz Wiszkowski <ender@google.com>
> Commit-Queue: Brandon Wylie <wylieb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#804419}

TBR=tedchoc@chromium.org,wylieb@chromium.org,pnoland@chromium.org,ender@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 1123209
Bug: 1097292
Bug: 1113364
Change-Id: Ib990eba5cc00f7b5209c90b5371385dfe5af9283
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2402087Reviewed-by: default avatarBrandon Wylie <wylieb@chromium.org>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Commit-Queue: Brandon Wylie <wylieb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#805543}
parent 37f80928
...@@ -1438,8 +1438,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent ...@@ -1438,8 +1438,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
return new TabbedRootUiCoordinator(this, this::onOmniboxFocusChanged, return new TabbedRootUiCoordinator(this, this::onOmniboxFocusChanged,
mIntentWithEffectSupplier, getShareDelegateSupplier(), getActivityTabProvider(), mIntentWithEffectSupplier, getShareDelegateSupplier(), getActivityTabProvider(),
mEphemeralTabCoordinatorSupplier, mTabModelProfileSupplier, mBookmarkBridgeSupplier, mEphemeralTabCoordinatorSupplier, mTabModelProfileSupplier, mBookmarkBridgeSupplier,
getOverviewModeBehaviorSupplier(), this::getContextualSearchManager, getOverviewModeBehaviorSupplier(), this::getContextualSearchManager);
mTabModelSelectorSupplier);
} }
@Override @Override
......
...@@ -277,6 +277,9 @@ specific_include_rules = { ...@@ -277,6 +277,9 @@ specific_include_rules = {
"UpdateNotificationServiceBridge\.java": [ "UpdateNotificationServiceBridge\.java": [
"+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java", "+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java",
], ],
"AutocompleteMediator\.java": [
"+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java",
],
"PaintPreviewHelper\.java": [ "PaintPreviewHelper\.java": [
"+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java", "+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java",
], ],
......
...@@ -381,8 +381,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -381,8 +381,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
// a recommended pattern. // a recommended pattern.
return new RootUiCoordinator(this, null, getShareDelegateSupplier(), return new RootUiCoordinator(this, null, getShareDelegateSupplier(),
getActivityTabProvider(), mTabModelProfileSupplier, mBookmarkBridgeSupplier, getActivityTabProvider(), mTabModelProfileSupplier, mBookmarkBridgeSupplier,
getOverviewModeBehaviorSupplier(), this::getContextualSearchManager, getOverviewModeBehaviorSupplier(), this::getContextualSearchManager);
mTabModelSelectorSupplier);
} }
private C createComponent() { private C createComponent() {
......
...@@ -150,13 +150,9 @@ public abstract class BaseCustomTabActivity extends ChromeActivity<BaseCustomTab ...@@ -150,13 +150,9 @@ public abstract class BaseCustomTabActivity extends ChromeActivity<BaseCustomTab
@Override @Override
protected RootUiCoordinator createRootUiCoordinator() { protected RootUiCoordinator createRootUiCoordinator() {
return new BaseCustomTabRootUiCoordinator(this, getShareDelegateSupplier(), return new BaseCustomTabRootUiCoordinator(this, getShareDelegateSupplier(),
() () -> mToolbarCoordinator, () -> mNavigationController, getActivityTabProvider(),
-> mToolbarCoordinator, mTabModelProfileSupplier, mBookmarkBridgeSupplier, mOverviewModeBehaviorSupplier,
() this::getContextualSearchManager);
-> mNavigationController,
getActivityTabProvider(), mTabModelProfileSupplier, mBookmarkBridgeSupplier,
mOverviewModeBehaviorSupplier, this::getContextualSearchManager,
mTabModelSelectorSupplier);
} }
@Override @Override
......
...@@ -20,7 +20,6 @@ import org.chromium.chrome.browser.lifecycle.NativeInitObserver; ...@@ -20,7 +20,6 @@ import org.chromium.chrome.browser.lifecycle.NativeInitObserver;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.reengagement.ReengagementNotificationController; import org.chromium.chrome.browser.reengagement.ReengagementNotificationController;
import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.ui.RootUiCoordinator; import org.chromium.chrome.browser.ui.RootUiCoordinator;
import org.chromium.components.feature_engagement.Tracker; import org.chromium.components.feature_engagement.Tracker;
...@@ -39,11 +38,10 @@ public class BaseCustomTabRootUiCoordinator ...@@ -39,11 +38,10 @@ public class BaseCustomTabRootUiCoordinator
ActivityTabProvider tabProvider, ObservableSupplier<Profile> profileSupplier, ActivityTabProvider tabProvider, ObservableSupplier<Profile> profileSupplier,
ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier, ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier,
ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier, ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier,
Supplier<ContextualSearchManager> contextualSearchManagerSupplier, Supplier<ContextualSearchManager> contextualSearchManagerSupplier) {
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
super(activity, null, shareDelegateSupplier, tabProvider, profileSupplier, super(activity, null, shareDelegateSupplier, tabProvider, profileSupplier,
bookmarkBridgeSupplier, overviewModeBehaviorSupplier, bookmarkBridgeSupplier, overviewModeBehaviorSupplier,
contextualSearchManagerSupplier, tabModelSelectorSupplier); contextualSearchManagerSupplier);
mToolbarCoordinator = customTabToolbarCoordinator; mToolbarCoordinator = customTabToolbarCoordinator;
mNavigationController = customTabNavigationController; mNavigationController = customTabNavigationController;
} }
......
...@@ -11,7 +11,6 @@ import android.view.Window; ...@@ -11,7 +11,6 @@ import android.view.Window;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.WindowDelegate; import org.chromium.chrome.browser.WindowDelegate;
...@@ -21,7 +20,6 @@ import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate; ...@@ -21,7 +20,6 @@ import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider; import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.chrome.browser.toolbar.top.Toolbar; import org.chromium.chrome.browser.toolbar.top.Toolbar;
...@@ -144,19 +142,16 @@ public interface LocationBar extends UrlBarDelegate, FakeboxDelegate { ...@@ -144,19 +142,16 @@ public interface LocationBar extends UrlBarDelegate, FakeboxDelegate {
* @param windowAndroid {@link WindowAndroid} that is used by the owning {@link Activity}. * @param windowAndroid {@link WindowAndroid} that is used by the owning {@link Activity}.
* @param activityTabProvider An {@link ActivityTabProvider} to access the activity's current * @param activityTabProvider An {@link ActivityTabProvider} to access the activity's current
* tab. * tab.
* @param tabModelSelectorSupplier Supplies the Activity's TabModelSelector, used to access tabs
* and models.
* @param modalDialogManagerSupplier A supplier for {@link ModalDialogManager} object. * @param modalDialogManagerSupplier A supplier for {@link ModalDialogManager} object.
* @param shareDelegateSupplier A supplier for {@link ShareDelegate} object. * @param shareDelegateSupplier A supplier for {@link ShareDelegate} object.
* @param incognitoStateProvider An {@link IncognitoStateProvider} to access the current * @param incognitoStateProvider An {@link IncognitoStateProvider} to access the current
* incognito state. * incognito state.
*/ */
default void initializeControls(WindowDelegate windowDelegate, WindowAndroid windowAndroid, void initializeControls(WindowDelegate windowDelegate, WindowAndroid windowAndroid,
ActivityTabProvider activityTabProvider, ActivityTabProvider activityTabProvider,
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier,
Supplier<ModalDialogManager> modalDialogManagerSupplier, Supplier<ModalDialogManager> modalDialogManagerSupplier,
Supplier<ShareDelegate> shareDelegateSupplier, Supplier<ShareDelegate> shareDelegateSupplier,
IncognitoStateProvider incognitoStateProvider) {} IncognitoStateProvider incognitoStateProvider);
/** /**
* Triggers the cursor to be visible in the UrlBar without triggering any of the focus animation * Triggers the cursor to be visible in the UrlBar without triggering any of the focus animation
......
...@@ -34,7 +34,6 @@ import org.chromium.base.CommandLine; ...@@ -34,7 +34,6 @@ import org.chromium.base.CommandLine;
import org.chromium.base.ObserverList; import org.chromium.base.ObserverList;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityTabProvider;
...@@ -63,7 +62,6 @@ import org.chromium.chrome.browser.profiles.Profile; ...@@ -63,7 +62,6 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tasks.ReturnToChromeExperimentsUtil; import org.chromium.chrome.browser.tasks.ReturnToChromeExperimentsUtil;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider; import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
...@@ -303,7 +301,6 @@ public class LocationBarLayout extends FrameLayout ...@@ -303,7 +301,6 @@ public class LocationBarLayout extends FrameLayout
@Override @Override
public void initializeControls(WindowDelegate windowDelegate, WindowAndroid windowAndroid, public void initializeControls(WindowDelegate windowDelegate, WindowAndroid windowAndroid,
ActivityTabProvider activityTabProvider, ActivityTabProvider activityTabProvider,
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier,
Supplier<ModalDialogManager> modalDialogManagerSupplier, Supplier<ModalDialogManager> modalDialogManagerSupplier,
Supplier<ShareDelegate> shareDelegateSupplier, Supplier<ShareDelegate> shareDelegateSupplier,
IncognitoStateProvider incognitoStateProvider) { IncognitoStateProvider incognitoStateProvider) {
...@@ -313,7 +310,6 @@ public class LocationBarLayout extends FrameLayout ...@@ -313,7 +310,6 @@ public class LocationBarLayout extends FrameLayout
mUrlCoordinator.setWindowDelegate(windowDelegate); mUrlCoordinator.setWindowDelegate(windowDelegate);
mAutocompleteCoordinator.setWindowAndroid(windowAndroid); mAutocompleteCoordinator.setWindowAndroid(windowAndroid);
mAutocompleteCoordinator.setActivityTabProvider(activityTabProvider); mAutocompleteCoordinator.setActivityTabProvider(activityTabProvider);
mAutocompleteCoordinator.setTabModelSelectorSupplier(tabModelSelectorSupplier);
mAutocompleteCoordinator.setShareDelegateSupplier(shareDelegateSupplier); mAutocompleteCoordinator.setShareDelegateSupplier(shareDelegateSupplier);
mStatusCoordinator.setIncognitoStateProvider(incognitoStateProvider); mStatusCoordinator.setIncognitoStateProvider(incognitoStateProvider);
mStatusCoordinator.setModalDialogManagerSupplier(modalDialogManagerSupplier); mStatusCoordinator.setModalDialogManagerSupplier(modalDialogManagerSupplier);
......
...@@ -8,7 +8,6 @@ import android.view.KeyEvent; ...@@ -8,7 +8,6 @@ import android.view.KeyEvent;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
...@@ -17,7 +16,6 @@ import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; ...@@ -17,7 +16,6 @@ import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener;
import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.base.WindowAndroid;
...@@ -60,11 +58,6 @@ public interface AutocompleteCoordinator extends UrlFocusChangeListener, UrlText ...@@ -60,11 +58,6 @@ public interface AutocompleteCoordinator extends UrlFocusChangeListener, UrlText
*/ */
void setActivityTabProvider(ActivityTabProvider provider); void setActivityTabProvider(ActivityTabProvider provider);
/**
* @param tabModelSelectorSupplier A means of accessing the current Tab/TabModel.
*/
void setTabModelSelectorSupplier(ObservableSupplier<TabModelSelector> tabModelSelectorSupplier);
/** /**
* @param shareDelegateSupplier A means of accessing the sharing feature. * @param shareDelegateSupplier A means of accessing the sharing feature.
*/ */
......
...@@ -17,7 +17,6 @@ import androidx.annotation.VisibleForTesting; ...@@ -17,7 +17,6 @@ import androidx.annotation.VisibleForTesting;
import androidx.core.view.ViewCompat; import androidx.core.view.ViewCompat;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityTabProvider;
...@@ -39,7 +38,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.tail.TailSuggestionViewBi ...@@ -39,7 +38,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.tail.TailSuggestionViewBi
import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.chrome.browser.util.KeyNavigationUtil; import org.chromium.chrome.browser.util.KeyNavigationUtil;
import org.chromium.components.query_tiles.QueryTile; import org.chromium.components.query_tiles.QueryTile;
...@@ -235,12 +233,6 @@ public class AutocompleteCoordinatorImpl implements AutocompleteCoordinator { ...@@ -235,12 +233,6 @@ public class AutocompleteCoordinatorImpl implements AutocompleteCoordinator {
mMediator.setActivityTabProvider(provider); mMediator.setActivityTabProvider(provider);
} }
@Override
public void setTabModelSelectorSupplier(
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
mMediator.setTabModelSelectorSupplier(tabModelSelectorSupplier);
}
@Override @Override
public void setShareDelegateSupplier(Supplier<ShareDelegate> shareDelegateSupplier) { public void setShareDelegateSupplier(Supplier<ShareDelegate> shareDelegateSupplier) {
mMediator.setShareDelegateSupplier(shareDelegateSupplier); mMediator.setShareDelegateSupplier(shareDelegateSupplier);
......
...@@ -27,11 +27,11 @@ import org.chromium.base.IntentUtils; ...@@ -27,11 +27,11 @@ import org.chromium.base.IntentUtils;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.Supplier;
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.ActivityTabProvider.ActivityTabTabObserver; import org.chromium.chrome.browser.ActivityTabProvider.ActivityTabTabObserver;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver; import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
import org.chromium.chrome.browser.document.ChromeIntentUtil; import org.chromium.chrome.browser.document.ChromeIntentUtil;
...@@ -52,7 +52,6 @@ import org.chromium.chrome.browser.query_tiles.QueryTileUtils; ...@@ -52,7 +52,6 @@ import org.chromium.chrome.browser.query_tiles.QueryTileUtils;
import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.chrome.browser.tab.TabSelectionType;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.TabModelUtils; import org.chromium.chrome.browser.tabmodel.TabModelUtils;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.components.embedder_support.util.UrlConstants;
...@@ -147,9 +146,6 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi ...@@ -147,9 +146,6 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi
private WindowAndroid mWindowAndroid; private WindowAndroid mWindowAndroid;
private ActivityLifecycleDispatcher mLifecycleDispatcher; private ActivityLifecycleDispatcher mLifecycleDispatcher;
private ActivityTabTabObserver mTabObserver; private ActivityTabTabObserver mTabObserver;
private ObservableSupplier<TabModelSelector> mTabModelSelectorSupplier;
private final DropdownItemViewInfoListBuilder mDropdownViewInfoListBuilder; private final DropdownItemViewInfoListBuilder mDropdownViewInfoListBuilder;
private final DropdownItemViewInfoListManager mDropdownViewInfoListManager; private final DropdownItemViewInfoListManager mDropdownViewInfoListManager;
...@@ -358,15 +354,6 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi ...@@ -358,15 +354,6 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi
mDropdownViewInfoListBuilder.onNativeInitialized(); mDropdownViewInfoListBuilder.onNativeInitialized();
} }
/**
* @param tabModelSelectorSupplier Supplies the activity TabModelSelector, which is used to
* access the Tab/TabModel.
*/
void setTabModelSelectorSupplier(
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
mTabModelSelectorSupplier = tabModelSelectorSupplier;
}
/** /**
* @param provider A means of accessing the activity tab. * @param provider A means of accessing the activity tab.
*/ */
...@@ -592,8 +579,7 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi ...@@ -592,8 +579,7 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi
@Override @Override
public void onSwitchToTab(OmniboxSuggestion suggestion, int position) { public void onSwitchToTab(OmniboxSuggestion suggestion, int position) {
Tab tab = mAutocomplete.findMatchingTabWithUrl(suggestion.getUrl()); Tab tab = mAutocomplete.findMatchingTabWithUrl(suggestion.getUrl());
if (tab == null || mTabModelSelectorSupplier == null if (tab == null) {
|| mTabModelSelectorSupplier.get() == null) {
onSelection(suggestion, position); onSelection(suggestion, position);
return; return;
} }
...@@ -603,9 +589,14 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi ...@@ -603,9 +589,14 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi
// animation since Android will show the animation for switching apps. // animation since Android will show the animation for switching apps.
if (tab.getWindowAndroid().getActivityState() != ActivityState.STOPPED if (tab.getWindowAndroid().getActivityState() != ActivityState.STOPPED
&& tab.getWindowAndroid().getActivityState() != ActivityState.DESTROYED) { && tab.getWindowAndroid().getActivityState() != ActivityState.DESTROYED) {
// TODO(1097292): Do not use Activity to get TabModelSelector.
assert tab.getWindowAndroid().getActivity().get() instanceof ChromeActivity;
ChromeActivity chromeActivity =
(ChromeActivity) tab.getWindowAndroid().getActivity().get();
int tabIndex = TabModelUtils.getTabIndexById( int tabIndex = TabModelUtils.getTabIndexById(
mTabModelSelectorSupplier.get().getModel(tab.isIncognito()), tab.getId()); chromeActivity.getTabModelSelector().getModel(tab.isIncognito()), tab.getId());
mTabModelSelectorSupplier.get() chromeActivity.getTabModelSelector()
.getModel(tab.isIncognito()) .getModel(tab.isIncognito())
.setIndex(tabIndex, TabSelectionType.FROM_OMNIBOX); .setIndex(tabIndex, TabSelectionType.FROM_OMNIBOX);
} else { } else {
......
...@@ -163,7 +163,7 @@ public class SearchActivity extends AsyncInitializationActivity ...@@ -163,7 +163,7 @@ public class SearchActivity extends AsyncInitializationActivity
mSearchBox.setDelegate(this); mSearchBox.setDelegate(this);
mSearchBox.setToolbarDataProvider(mSearchBoxDataProvider); mSearchBox.setToolbarDataProvider(mSearchBoxDataProvider);
mSearchBox.initializeControls( mSearchBox.initializeControls(
new WindowDelegate(getWindow()), getWindowAndroid(), null, null, null, null, null); new WindowDelegate(getWindow()), getWindowAndroid(), null, null, null, null);
// Kick off everything needed for the user to type into the box. // Kick off everything needed for the user to type into the box.
beginQuery(); beginQuery();
......
...@@ -45,7 +45,6 @@ import org.chromium.chrome.browser.share.ShareDelegate; ...@@ -45,7 +45,6 @@ import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.signin.SigninPromoUtil; import org.chromium.chrome.browser.signin.SigninPromoUtil;
import org.chromium.chrome.browser.status_indicator.StatusIndicatorCoordinator; import org.chromium.chrome.browser.status_indicator.StatusIndicatorCoordinator;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities; import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities;
import org.chromium.chrome.browser.toolbar.ToolbarButtonInProductHelpController; import org.chromium.chrome.browser.toolbar.ToolbarButtonInProductHelpController;
import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration; import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration;
...@@ -104,11 +103,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native ...@@ -104,11 +103,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
ObservableSupplier<Profile> profileSupplier, ObservableSupplier<Profile> profileSupplier,
ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier, ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier,
ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier, ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier,
Supplier<ContextualSearchManager> contextualSearchManagerSupplier, Supplier<ContextualSearchManager> contextualSearchManagerSupplier) {
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
super(activity, onOmniboxFocusChangedListener, shareDelegateSupplier, tabProvider, super(activity, onOmniboxFocusChangedListener, shareDelegateSupplier, tabProvider,
profileSupplier, bookmarkBridgeSupplier, overviewModeBehaviorSupplier, profileSupplier, bookmarkBridgeSupplier, overviewModeBehaviorSupplier,
contextualSearchManagerSupplier, tabModelSelectorSupplier); contextualSearchManagerSupplier);
mIntentWithEffect = intentWithEffect; mIntentWithEffect = intentWithEffect;
mEphemeralTabCoordinatorSupplier = ephemeralTabCoordinatorSupplier; mEphemeralTabCoordinatorSupplier = ephemeralTabCoordinatorSupplier;
mCanAnimateBrowserControls = () -> { mCanAnimateBrowserControls = () -> {
......
...@@ -223,7 +223,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve ...@@ -223,7 +223,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
* TODO(https://crbug.com/1084528): Use OneShotSupplier once it is ready. * TODO(https://crbug.com/1084528): Use OneShotSupplier once it is ready.
* @param overviewModeBehaviorSupplier Supplier of the overview mode manager for the current * @param overviewModeBehaviorSupplier Supplier of the overview mode manager for the current
* profile. * profile.
* @param tabModelSelectorSupplier Supplier of the {@link TabModelSelector}.
*/ */
public ToolbarManager(ChromeActivity activity, BrowserControlsSizer controlsSizer, public ToolbarManager(ChromeActivity activity, BrowserControlsSizer controlsSizer,
FullscreenManager fullscreenManager, ToolbarControlContainer controlContainer, FullscreenManager fullscreenManager, ToolbarControlContainer controlContainer,
...@@ -239,8 +238,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve ...@@ -239,8 +238,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@Nullable Supplier<Boolean> canAnimateNativeBrowserControls, @Nullable Supplier<Boolean> canAnimateNativeBrowserControls,
ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier, ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier,
ObservableSupplier<AppMenuCoordinator> appMenuCoordinatorSupplier, ObservableSupplier<AppMenuCoordinator> appMenuCoordinatorSupplier,
boolean shouldShowUpdateBadge, boolean shouldShowUpdateBadge) {
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
TraceEvent.begin("ToolbarManager.ToolbarManager"); TraceEvent.begin("ToolbarManager.ToolbarManager");
mActivity = activity; mActivity = activity;
mBrowserControlsSizer = controlsSizer; mBrowserControlsSizer = controlsSizer;
...@@ -334,7 +332,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve ...@@ -334,7 +332,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
mLocationBar.setDefaultTextEditActionModeCallback( mLocationBar.setDefaultTextEditActionModeCallback(
mActionModeController.getActionModeCallback()); mActionModeController.getActionModeCallback());
mLocationBar.initializeControls(new WindowDelegate(mActivity.getWindow()), mLocationBar.initializeControls(new WindowDelegate(mActivity.getWindow()),
mActivity.getWindowAndroid(), mActivityTabProvider, tabModelSelectorSupplier, mActivity.getWindowAndroid(), mActivityTabProvider,
mActivity::getModalDialogManager, mActivity.getShareDelegateSupplier(), mActivity::getModalDialogManager, mActivity.getShareDelegateSupplier(),
mIncognitoStateProvider); mIncognitoStateProvider);
Runnable clickDelegate = Runnable clickDelegate =
......
...@@ -41,8 +41,11 @@ import org.chromium.base.ApiCompatibilityUtils; ...@@ -41,8 +41,11 @@ import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
import org.chromium.base.library_loader.LibraryLoader; import org.chromium.base.library_loader.LibraryLoader;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.RecordUserAction;
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.WindowDelegate;
import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.native_page.NativePageFactory; import org.chromium.chrome.browser.native_page.NativePageFactory;
import org.chromium.chrome.browser.ntp.NewTabPage; import org.chromium.chrome.browser.ntp.NewTabPage;
...@@ -56,8 +59,10 @@ import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; ...@@ -56,8 +59,10 @@ import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.page_info.ChromePageInfoControllerDelegate; import org.chromium.chrome.browser.page_info.ChromePageInfoControllerDelegate;
import org.chromium.chrome.browser.page_info.ChromePermissionParamsListBuilderDelegate; import org.chromium.chrome.browser.page_info.ChromePermissionParamsListBuilderDelegate;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TrustedCdn; import org.chromium.chrome.browser.tab.TrustedCdn;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.ToolbarColors; import org.chromium.chrome.browser.toolbar.ToolbarColors;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.chrome.browser.toolbar.ToolbarTabController; import org.chromium.chrome.browser.toolbar.ToolbarTabController;
...@@ -73,7 +78,9 @@ import org.chromium.content_public.common.ContentUrlConstants; ...@@ -73,7 +78,9 @@ import org.chromium.content_public.common.ContentUrlConstants;
import org.chromium.net.GURLUtils; import org.chromium.net.GURLUtils;
import org.chromium.ui.base.Clipboard; import org.chromium.ui.base.Clipboard;
import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.interpolators.BakedBezierInterpolator; import org.chromium.ui.interpolators.BakedBezierInterpolator;
import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.text.SpanApplier; import org.chromium.ui.text.SpanApplier;
import org.chromium.ui.text.SpanApplier.SpanInfo; import org.chromium.ui.text.SpanApplier.SpanInfo;
import org.chromium.ui.util.ColorUtils; import org.chromium.ui.util.ColorUtils;
...@@ -739,6 +746,13 @@ public class CustomTabToolbar extends ToolbarLayout implements View.OnLongClickL ...@@ -739,6 +746,13 @@ public class CustomTabToolbar extends ToolbarLayout implements View.OnLongClickL
} }
} }
@Override
public void initializeControls(WindowDelegate windowDelegate, WindowAndroid windowAndroid,
ActivityTabProvider activityTabProvider,
Supplier<ModalDialogManager> modalDialogManager,
Supplier<ShareDelegate> shareDelegateSupplier,
IncognitoStateProvider incognitoStateProvider) {}
@Override @Override
public void updateStatusIcon() { public void updateStatusIcon() {
if (mState == STATE_TITLE_ONLY) return; if (mState == STATE_TITLE_ONLY) return;
......
...@@ -149,8 +149,6 @@ public class RootUiCoordinator ...@@ -149,8 +149,6 @@ public class RootUiCoordinator
@Nullable @Nullable
private BrowserControlsManager mBrowserControlsManager; private BrowserControlsManager mBrowserControlsManager;
private final ObservableSupplier<TabModelSelector> mTabModelSelectorSupplier;
/** /**
* Create a new {@link RootUiCoordinator} for the given activity. * Create a new {@link RootUiCoordinator} for the given activity.
* @param activity The containing {@link ChromeActivity}. TODO(https://crbug.com/931496): * @param activity The containing {@link ChromeActivity}. TODO(https://crbug.com/931496):
...@@ -164,7 +162,6 @@ public class RootUiCoordinator ...@@ -164,7 +162,6 @@ public class RootUiCoordinator
* @param overviewModeBehaviorSupplier Supplier of the overview mode manager for the current * @param overviewModeBehaviorSupplier Supplier of the overview mode manager for the current
* profile. * profile.
* @param contextualSearchManagerSupplier Supplier of the {@link ContextualSearchManager}. * @param contextualSearchManagerSupplier Supplier of the {@link ContextualSearchManager}.
* @param tabModelSelectorSupplier Supplier of the {@link TabModelSelector}.
*/ */
public RootUiCoordinator(ChromeActivity activity, public RootUiCoordinator(ChromeActivity activity,
@Nullable Callback<Boolean> onOmniboxFocusChangedListener, @Nullable Callback<Boolean> onOmniboxFocusChangedListener,
...@@ -172,8 +169,7 @@ public class RootUiCoordinator ...@@ -172,8 +169,7 @@ public class RootUiCoordinator
ActivityTabProvider tabProvider, ObservableSupplier<Profile> profileSupplier, ActivityTabProvider tabProvider, ObservableSupplier<Profile> profileSupplier,
ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier, ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier,
ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier, ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier,
Supplier<ContextualSearchManager> contextualSearchManagerSupplier, Supplier<ContextualSearchManager> contextualSearchManagerSupplier) {
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
mCallbackController = new CallbackController(); mCallbackController = new CallbackController();
mActivity = activity; mActivity = activity;
mOnOmniboxFocusChangedListener = onOmniboxFocusChangedListener; mOnOmniboxFocusChangedListener = onOmniboxFocusChangedListener;
...@@ -196,8 +192,6 @@ public class RootUiCoordinator ...@@ -196,8 +192,6 @@ public class RootUiCoordinator
mContextualSearchManagerSupplier = contextualSearchManagerSupplier; mContextualSearchManagerSupplier = contextualSearchManagerSupplier;
mActionModeControllerCallback = new ToolbarActionModeCallback(); mActionModeControllerCallback = new ToolbarActionModeCallback();
mTabModelSelectorSupplier = tabModelSelectorSupplier;
mOmniboxFocusStateSupplier.set(false); mOmniboxFocusStateSupplier.set(false);
mOverviewModeBehaviorSupplier = overviewModeBehaviorSupplier; mOverviewModeBehaviorSupplier = overviewModeBehaviorSupplier;
...@@ -315,7 +309,8 @@ public class RootUiCoordinator ...@@ -315,7 +309,8 @@ public class RootUiCoordinator
} }
mChromeActionModeHandler = new ChromeActionModeHandler(mActivity.getActivityTabProvider(), mChromeActionModeHandler = new ChromeActionModeHandler(mActivity.getActivityTabProvider(),
mToolbarManager::onActionBarVisibilityChanged, (searchText) -> { mToolbarManager::onActionBarVisibilityChanged, (searchText) -> {
if (mTabModelSelectorSupplier.get() == null) return; TabModelSelector selector = mActivity.getTabModelSelector();
if (selector == null) return;
String query = ActionModeCallbackHelper.sanitizeQuery( String query = ActionModeCallbackHelper.sanitizeQuery(
searchText, ActionModeCallbackHelper.MAX_SEARCH_QUERY_LENGTH); searchText, ActionModeCallbackHelper.MAX_SEARCH_QUERY_LENGTH);
...@@ -326,8 +321,7 @@ public class RootUiCoordinator ...@@ -326,8 +321,7 @@ public class RootUiCoordinator
.getTrackerForProfile(Profile.fromWebContents(tab.getWebContents())) .getTrackerForProfile(Profile.fromWebContents(tab.getWebContents()))
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED); .notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
mTabModelSelectorSupplier.get().openNewTab( selector.openNewTab(generateUrlParamsForSearch(tab, query),
generateUrlParamsForSearch(tab, query),
TabLaunchType.FROM_LONGPRESS_FOREGROUND, tab, tab.isIncognito()); TabLaunchType.FROM_LONGPRESS_FOREGROUND, tab, tab.isIncognito());
}, mShareDelegateSupplier); }, mShareDelegateSupplier);
mVrModeObserver = new VrModeObserver() { mVrModeObserver = new VrModeObserver() {
...@@ -396,7 +390,7 @@ public class RootUiCoordinator ...@@ -396,7 +390,7 @@ public class RootUiCoordinator
} else if (id == R.id.share_menu_button_id || id == R.id.share_menu_id } else if (id == R.id.share_menu_button_id || id == R.id.share_menu_id
|| id == R.id.direct_share_menu_id) { || id == R.id.direct_share_menu_id) {
onShareMenuItemSelected(id == R.id.direct_share_menu_id, onShareMenuItemSelected(id == R.id.direct_share_menu_id,
mTabModelSelectorSupplier.get().isIncognitoSelected()); mActivity.getTabModelSelector().isIncognitoSelected());
} else if (id == R.id.paint_preview_show_id) { } else if (id == R.id.paint_preview_show_id) {
Tab tab = mActivityTabProvider.get(); Tab tab = mActivityTabProvider.get();
PaintPreviewTabHelper paintPreviewTabHelper = PaintPreviewTabHelper.get(tab); PaintPreviewTabHelper paintPreviewTabHelper = PaintPreviewTabHelper.get(tab);
...@@ -518,7 +512,7 @@ public class RootUiCoordinator ...@@ -518,7 +512,7 @@ public class RootUiCoordinator
mActivityTabProvider, mScrimCoordinator, mActionModeControllerCallback, mActivityTabProvider, mScrimCoordinator, mActionModeControllerCallback,
mFindToolbarManager, mProfileSupplier, mBookmarkBridgeSupplier, mFindToolbarManager, mProfileSupplier, mBookmarkBridgeSupplier,
mCanAnimateBrowserControls, mOverviewModeBehaviorSupplier, mAppMenuSupplier, mCanAnimateBrowserControls, mOverviewModeBehaviorSupplier, mAppMenuSupplier,
shouldShowMenuUpdateBadge(), mTabModelSelectorSupplier); shouldShowMenuUpdateBadge());
if (!mActivity.supportsAppMenu()) { if (!mActivity.supportsAppMenu()) {
mToolbarManager.getToolbar().disableMenuButton(); mToolbarManager.getToolbar().disableMenuButton();
} }
...@@ -615,7 +609,7 @@ public class RootUiCoordinator ...@@ -615,7 +609,7 @@ public class RootUiCoordinator
} }
mFindToolbarManager = new FindToolbarManager( mFindToolbarManager = new FindToolbarManager(
new DeferredViewStubInflationProvider<FindToolbar>(mActivity.findViewById(stubId)), new DeferredViewStubInflationProvider<FindToolbar>(mActivity.findViewById(stubId)),
mTabModelSelectorSupplier.get(), mActivity.getWindowAndroid(), mActivity.getTabModelSelector(), mActivity.getWindowAndroid(),
mActionModeControllerCallback); mActionModeControllerCallback);
mFindToolbarObserver = new FindToolbarObserver() { mFindToolbarObserver = new FindToolbarObserver() {
...@@ -735,8 +729,9 @@ public class RootUiCoordinator ...@@ -735,8 +729,9 @@ public class RootUiCoordinator
private void initDirectActionInitializer() { private void initDirectActionInitializer() {
@ActivityType @ActivityType
int activityType = mActivity.getActivityType(); int activityType = mActivity.getActivityType();
TabModelSelector tabModelSelector = mActivity.getTabModelSelector();
mDirectActionInitializer = new DirectActionInitializer(mActivity, activityType, mActivity, mDirectActionInitializer = new DirectActionInitializer(mActivity, activityType, mActivity,
mActivity::onBackPressed, mTabModelSelectorSupplier.get(), mFindToolbarManager, mActivity::onBackPressed, tabModelSelector, mFindToolbarManager,
getBottomSheetController(), mActivity.getBrowserControlsManager(), getBottomSheetController(), mActivity.getBrowserControlsManager(),
mActivity.getCompositorViewHolder(), mActivity.getActivityTabProvider()); mActivity.getCompositorViewHolder(), mActivity.getActivityTabProvider());
mActivity.getLifecycleDispatcher().register(mDirectActionInitializer); mActivity.getLifecycleDispatcher().register(mDirectActionInitializer);
......
...@@ -170,7 +170,7 @@ public class ShareIntentTest { ...@@ -170,7 +170,7 @@ public class ShareIntentTest {
RootUiCoordinator rootUiCoordinator = TestThreadUtils.runOnUiThreadBlocking(() -> { RootUiCoordinator rootUiCoordinator = TestThreadUtils.runOnUiThreadBlocking(() -> {
return new RootUiCoordinator(mockActivity, null, return new RootUiCoordinator(mockActivity, null,
mockActivity.getShareDelegateSupplier(), mockActivity.getActivityTabProvider(), mockActivity.getShareDelegateSupplier(), mockActivity.getActivityTabProvider(),
null, null, mockActivity.getOverviewModeBehaviorSupplier(), null, null); null, null, mockActivity.getOverviewModeBehaviorSupplier(), null);
}); });
ShareHelper.setLastShareComponentName(new ComponentName("test.package", "test.activity")); ShareHelper.setLastShareComponentName(new ComponentName("test.package", "test.activity"));
// Skips the capture of screenshot and notifies with an empty file. // Skips the capture of screenshot and notifies with an empty file.
......
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