From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sun, 19 Jun 2022 12:57:56 +0200 Subject: Remove voice recognition integration License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../start_surface/StartSurfaceMediator.java | 22 +----- .../features/tasks/TasksSurfaceMediator.java | 7 -- .../browser/metrics/UmaSessionStats.java | 19 ----- .../chrome/browser/ntp/NewTabPage.java | 43 +---------- .../browser/ntp/search/SearchBoxMediator.java | 1 - .../browser/searchwidget/SearchActivity.java | 6 +- .../SearchActivityLocationBarLayout.java | 44 +---------- .../browser/toolbar/ToolbarManager.java | 5 -- .../chrome/browser/ui/RootUiCoordinator.java | 23 +----- chrome/browser/ui/android/omnibox/BUILD.gn | 1 - .../chrome/browser/omnibox/LocationBar.java | 6 -- .../omnibox/LocationBarCoordinator.java | 13 ---- .../browser/omnibox/LocationBarMediator.java | 77 +------------------ .../chrome/browser/omnibox/OmniboxStub.java | 9 --- .../suggestions/AutocompleteController.java | 25 ------ .../suggestions/AutocompleteCoordinator.java | 8 -- .../suggestions/AutocompleteMediator.java | 9 --- 17 files changed, 10 insertions(+), 308 deletions(-) diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java @@ -77,7 +77,6 @@ import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.OmniboxStub; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.preferences.Pref; @@ -604,8 +603,7 @@ class StartSurfaceMediator // Initialize. // Note that isVoiceSearchEnabled will return false in incognito mode. mPropertyModel.set( - IS_VOICE_RECOGNITION_BUTTON_VISIBLE, - mOmniboxStub.getVoiceRecognitionHandler().isVoiceSearchEnabled()); + IS_VOICE_RECOGNITION_BUTTON_VISIBLE, false); updateLensVisibility(); // This is for Instant Start when overview is already visible while the omnibox, Feed @@ -647,17 +645,6 @@ class StartSurfaceMediator mPropertyModel.set( VOICE_SEARCH_BUTTON_CLICK_LISTENER, v -> { - FeedReliabilityLogger feedReliabilityLogger = - getFeedReliabilityLogger(); - if (feedReliabilityLogger != null) { - feedReliabilityLogger.onVoiceSearch(); - } - mOmniboxStub - .getVoiceRecognitionHandler() - .startVoiceRecognition( - VoiceRecognitionHandler.VoiceInteractionSource - .TASKS_SURFACE); - RecordUserAction.record("TasksSurface.FakeBox.VoiceSearch"); }); mPropertyModel.set( @@ -1562,13 +1549,6 @@ class StartSurfaceMediator ThreadUtils.postOnUiThread( () -> { if (mOmniboxStub != null) { - if (mOmniboxStub.getVoiceRecognitionHandler() != null) { - mPropertyModel.set( - IS_VOICE_RECOGNITION_BUTTON_VISIBLE, - mOmniboxStub - .getVoiceRecognitionHandler() - .isVoiceSearchEnabled()); - } mPropertyModel.set( IS_LENS_BUTTON_VISIBLE, mOmniboxStub.isLensEnabled(LensEntryPoint.TASKS_SURFACE)); diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceMediator.java +++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/TasksSurfaceMediator.java @@ -32,7 +32,6 @@ import org.chromium.chrome.browser.lens.LensMetrics; import org.chromium.chrome.browser.ntp.IncognitoCookieControlsManager; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.OmniboxStub; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.tasks.tab_management.TabSwitcher.TabSwitcherViewObserver; import org.chromium.components.content_settings.CookieControlsEnforcement; import org.chromium.ui.modelutil.PropertyModel; @@ -111,12 +110,6 @@ class TasksSurfaceMediator implements TabSwitcherViewObserver { if (feedReliabilityLogger != null) { feedReliabilityLogger.onVoiceSearch(); } - mOmniboxStub - .getVoiceRecognitionHandler() - .startVoiceRecognition( - VoiceRecognitionHandler.VoiceInteractionSource - .TASKS_SURFACE); - RecordUserAction.record("TasksSurface.FakeBox.VoiceSearch"); } }); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java --- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java @@ -17,7 +17,6 @@ import org.chromium.base.ApplicationStatus; import org.chromium.base.Log; import org.chromium.base.metrics.RecordHistogram; import org.chromium.chrome.browser.DefaultBrowserInfo; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler.AudioPermissionState; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tabmodel.TabModel; @@ -131,24 +130,6 @@ public class UmaSessionStats { updatePreferences(); updateMetricsServiceState(); DefaultBrowserInfo.logDefaultBrowserStats(); - if (permissionDelegate != null) { - recordAudioPermissionState(permissionDelegate); - } - } - - private void recordAudioPermissionState(AndroidPermissionDelegate permissionDelegate) { - @AudioPermissionState int permissionState; - if (permissionDelegate.hasPermission(Manifest.permission.RECORD_AUDIO)) { - permissionState = AudioPermissionState.GRANTED; - } else if (permissionDelegate.canRequestPermission(Manifest.permission.RECORD_AUDIO)) { - permissionState = AudioPermissionState.DENIED_CAN_ASK_AGAIN; - } else { - permissionState = AudioPermissionState.DENIED_CANNOT_ASK_AGAIN; - } - RecordHistogram.recordEnumeratedHistogram( - "VoiceInteraction.AudioPermissionEvent.SessionStart", - permissionState, - AudioPermissionState.NUM_ENTRIES); } private static void ensureNativeInitialized() { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java @@ -69,7 +69,6 @@ import org.chromium.chrome.browser.native_page.ContextMenuManager; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.OmniboxStub; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteControllerProvider; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; @@ -128,7 +127,6 @@ public class NewTabPage TemplateUrlServiceObserver, BrowserControlsStateProvider.Observer, FeedSurfaceDelegate, - VoiceRecognitionHandler.Observer, ModuleDelegateHost { private static final String TAG = "NewTabPage"; @@ -158,7 +156,6 @@ public class NewTabPage protected boolean mSearchProviderHasLogo; protected OmniboxStub mOmniboxStub; - private VoiceRecognitionHandler mVoiceRecognitionHandler; // The timestamp at which the constructor was called. protected final long mConstructedTimeNs; @@ -260,8 +257,7 @@ public class NewTabPage @Override public boolean isVoiceSearchEnabled() { - return mVoiceRecognitionHandler != null - && mVoiceRecognitionHandler.isVoiceSearchEnabled(); + return false; } @Override @@ -269,24 +265,6 @@ public class NewTabPage if (mIsDestroyed) return; FeedReliabilityLogger feedReliabilityLogger = mFeedSurfaceProvider.getReliabilityLogger(); - if (mVoiceRecognitionHandler != null && beginVoiceSearch) { - if (feedReliabilityLogger != null) { - feedReliabilityLogger.onVoiceSearch(); - } - mVoiceRecognitionHandler.startVoiceRecognition( - VoiceRecognitionHandler.VoiceInteractionSource.NTP); - mTracker.notifyEvent(EventConstants.NTP_VOICE_SEARCH_BUTTON_CLICKED); - } else if (mOmniboxStub != null) { - if (feedReliabilityLogger != null) { - feedReliabilityLogger.onOmniboxFocused(); - } - mOmniboxStub.setUrlBarFocus( - true, - pastedText, - pastedText == null - ? OmniboxFocusReason.FAKE_BOX_TAP - : OmniboxFocusReason.FAKE_BOX_LONG_PRESS); - } } @Override @@ -869,12 +847,6 @@ public class NewTabPage mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger); } } - - mVoiceRecognitionHandler = mOmniboxStub.getVoiceRecognitionHandler(); - if (mVoiceRecognitionHandler != null) { - mVoiceRecognitionHandler.addObserver(this); - mNewTabPageLayout.updateActionButtonVisibility(); - } } @Override @@ -885,11 +857,6 @@ public class NewTabPage } } - @Override - public void onVoiceAvailabilityImpacted() { - mNewTabPageLayout.updateActionButtonVisibility(); - } - /** Adds an observer to be notified on most visited tile clicks. */ public void addMostVisitedTileClickObserver(MostVisitedTileClickObserver observer) { mMostVisitedTileClickObservers.addObserver(observer); @@ -909,10 +876,6 @@ public class NewTabPage RecordUserAction.record("MobileNTPShown"); mJankTracker.startTrackingScenario(JankScenario.NEW_TAB_PAGE); SuggestionsMetrics.recordSurfaceVisible(); - - FeatureNotificationUtils.registerIPHCallback( - FeatureType.VOICE_SEARCH, - mNewTabPageLayout::maybeShowFeatureNotificationVoiceSearchIPH); } /** Records UMA for the NTP being hidden and the time spent on it. */ @@ -922,7 +885,6 @@ public class NewTabPage "NewTabPage.TimeSpent", (System.nanoTime() - mLastShownTimeNs) / TimeUtils.NANOSECONDS_PER_MILLISECOND); SuggestionsMetrics.recordSurfaceHidden(); - FeatureNotificationUtils.unregisterIPHCallback(FeatureType.VOICE_SEARCH); } /** @@ -1006,9 +968,6 @@ public class NewTabPage } mFeedSurfaceProvider.destroy(); mTab.getWindowAndroid().removeContextMenuCloseListener(mContextMenuManager); - if (mVoiceRecognitionHandler != null) { - mVoiceRecognitionHandler.removeObserver(this); - } if (mSearchResumptionModuleCoordinator != null) { mSearchResumptionModuleCoordinator.destroy(); } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java @@ -90,7 +90,6 @@ class SearchBoxMediator implements DestroyObserver, NativeInitObserver { mContext, R.color.default_icon_color_accent1_container_tint_list) : ThemeUtils.getThemedToolbarIconTint( mContext, BrandedColorScheme.APP_DEFAULT); - mModel.set(SearchBoxProperties.VOICE_SEARCH_COLOR_STATE_LIST, colorStateList); } /** Called to set a click listener for the search box. */ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java @@ -57,7 +57,6 @@ import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; import org.chromium.chrome.browser.omnibox.suggestions.history_clusters.HistoryClustersProcessor.OpenHistoryClustersDelegate; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; @@ -489,13 +488,11 @@ public class SearchActivity extends AsyncInitializationActivity // will navigate to Tabbed mode. Investigate whether this can inflate // the tabbed mode layout in the background instead of CCTs. CustomTabsConnection.getInstance().warmup(0); - VoiceRecognitionHandler voiceRecognitionHandler = - mLocationBarCoordinator.getVoiceRecognitionHandler(); @SearchType int searchType = getSearchType(getIntent().getAction()); if (isFromQuickActionSearchWidget()) { recordQuickActionSearchType(searchType); } - mSearchBox.onDeferredStartup(searchType, voiceRecognitionHandler, getWindowAndroid()); + mSearchBox.onDeferredStartup(searchType, getWindowAndroid()); RecordUserAction.record("SearchWidget.WidgetSelected"); getActivityDelegate().onFinishDeferredInitialization(); @@ -598,7 +595,6 @@ public class SearchActivity extends AsyncInitializationActivity mSearchBox.beginQuery( searchType, getOptionalIntentQuery(), - mLocationBarCoordinator.getVoiceRecognitionHandler(), getWindowAndroid()); } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java @@ -28,7 +28,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarCoordinator.SelectionState; import org.chromium.chrome.browser.omnibox.UrlBarData; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.toolbar.top.ToolbarPhone; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager; import org.chromium.components.browser_ui.styles.ChromeColors; @@ -100,7 +99,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { /** Called when the SearchActivity has finished initialization. */ void onDeferredStartup( @SearchType int searchType, - @NonNull VoiceRecognitionHandler voiceRecognitionHandler, @NonNull WindowAndroid windowAndroid) { SearchActivityPreferencesManager.updateFeatureAvailability(getContext(), windowAndroid); assert !LocaleManager.getInstance().needToCheckForSearchEnginePromo(); @@ -111,7 +109,7 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { mAutocompleteCoordinator.onTextChanged(mUrlCoordinator.getTextWithoutAutocomplete()); if (mPendingBeginQuery) { - beginQueryInternal(searchType, voiceRecognitionHandler, windowAndroid); + beginQueryInternal(searchType, windowAndroid); mPendingBeginQuery = false; } } @@ -121,14 +119,12 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { * * @param searchType The type of search to invoke. * @param optionalText Prepopulate with a query, this may be null. - * @param voiceRecognitionHandler Handler responsible for managing voice searches. * @param windowAndroid WindowAndroid context. */ @VisibleForTesting public void beginQuery( @SearchType int searchType, @Nullable String optionalText, - @NonNull VoiceRecognitionHandler voiceRecognitionHandler, @NonNull WindowAndroid windowAndroid) { // Clear the text regardless of the promo decision. This allows the user to enter text // before native has been initialized and have it not be cleared one the delayed beginQuery @@ -143,12 +139,11 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { return; } - beginQueryInternal(searchType, voiceRecognitionHandler, windowAndroid); + beginQueryInternal(searchType, windowAndroid); } private void beginQueryInternal( @SearchType int searchType, - @NonNull VoiceRecognitionHandler voiceRecognitionHandler, @NonNull WindowAndroid windowAndroid) { assert !mPendingSearchPromoDecision; @@ -158,7 +153,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { } if (searchType == SearchType.VOICE) { - runVoiceSearch(voiceRecognitionHandler); } else if (searchType == SearchType.LENS) { runGoogleLens(windowAndroid); } else { @@ -166,35 +160,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { } } - /** - * Begins a new Voice query. - * - * @param voiceRecognitionHandler Handler responsible for managing voice searches. - */ - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) - void runVoiceSearch(@NonNull VoiceRecognitionHandler voiceRecognitionHandler) { - assert mNativeInitialized; - // Run Voice before focusing the Omnibox. Voice search may trigger omnibox focus as part of - // its own flow in the event where the input is ambiguous. Focusing the Omnibox early may - // affect this flow. - // - // Note that the Voice search will call us back in the event of any failure via - // notifyVoiceRecognitionCanceled() call, giving us the opportunity to focus the Omnibox. - if (voiceRecognitionHandler.isVoiceSearchEnabled()) { - voiceRecognitionHandler.startVoiceRecognition( - VoiceRecognitionHandler.VoiceInteractionSource.SEARCH_WIDGET); - return; - } - - // Voice recognition is not available. Fall back to regular text search. - Toast.makeText( - getContext(), - R.string.quick_action_search_widget_message_no_voice_search, - Toast.LENGTH_LONG) - .show(); - focusTextBox(); - } - /** * Begins a new Lens query. * @@ -250,9 +215,4 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { mAutocompleteCoordinator.startCachedZeroSuggest(); }); } - - @Override - public void notifyVoiceRecognitionCanceled() { - focusTextBox(); - } } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java @@ -92,7 +92,6 @@ import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegate; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; import org.chromium.chrome.browser.omnibox.suggestions.history_clusters.HistoryClustersProcessor.OpenHistoryClustersDelegate; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.page_info.ChromePageInfo; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; @@ -2533,10 +2532,6 @@ public class ToolbarManager return mLocationBar.getOmniboxStub(); } - public @Nullable VoiceRecognitionHandler getVoiceRecognitionHandler() { - return mLocationBar.getVoiceRecognitionHandler(); - } - /** Returns the app menu coordinator. */ public @Nullable MenuButtonCoordinator getOverviewModeMenuButtonCoordinator() { return mOverviewModeMenuButtonCoordinator; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java @@ -94,8 +94,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; import org.chromium.chrome.browser.omnibox.suggestions.history_clusters.HistoryClustersProcessor.OpenHistoryClustersDelegate; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler.VoiceInteractionSource; import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; @@ -292,7 +290,6 @@ public class RootUiCoordinator protected OneshotSupplier mIntentMetadataOneshotSupplier; protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>(); protected Supplier mStartSurfaceParentTabSupplier; - @Nullable private VoiceRecognitionHandler.Observer mMicStateObserver; private MediaCaptureOverlayController mCaptureController; private @Nullable ScrollCaptureManager mScrollCaptureManager; protected final ActivityLifecycleDispatcher mActivityLifecycleDispatcher; @@ -643,9 +640,6 @@ public class RootUiCoordinator } if (mToolbarManager != null) { - if (mMicStateObserver != null && mToolbarManager.getVoiceRecognitionHandler() != null) { - mToolbarManager.getVoiceRecognitionHandler().removeObserver(mMicStateObserver); - } mToolbarManager.destroy(); mToolbarManager = null; } @@ -1286,19 +1280,11 @@ public class RootUiCoordinator new VoiceToolbarButtonController.VoiceSearchDelegate() { @Override public boolean isVoiceSearchEnabled() { - VoiceRecognitionHandler voiceRecognitionHandler = - mToolbarManager.getVoiceRecognitionHandler(); - if (voiceRecognitionHandler == null) return false; - return voiceRecognitionHandler.isVoiceSearchEnabled(); + return false; } @Override public void startVoiceRecognition() { - VoiceRecognitionHandler voiceRecognitionHandler = - mToolbarManager.getVoiceRecognitionHandler(); - if (voiceRecognitionHandler == null) return; - voiceRecognitionHandler.startVoiceRecognition( - VoiceInteractionSource.TOOLBAR); } }; TranslateToolbarButtonController translateToolbarButtonController = @@ -1464,13 +1450,6 @@ public class RootUiCoordinator if (!mSupportsAppMenuSupplier.getAsBoolean()) { mToolbarManager.getToolbar().disableMenuButton(); } - - VoiceRecognitionHandler voiceRecognitionHandler = - mToolbarManager.getVoiceRecognitionHandler(); - if (voiceRecognitionHandler != null) { - mMicStateObserver = voiceToolbarButtonController::updateMicButtonState; - voiceRecognitionHandler.addObserver(mMicStateObserver); - } mToolbarManagerOneshotSupplier.set(mToolbarManager); } } diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn @@ -143,7 +143,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionView.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewProperties.java", - "java/src/org/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler.java", ] public_deps = [ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java @@ -10,7 +10,6 @@ import android.view.ViewGroup; import androidx.annotation.Nullable; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.tab.Tab; /** Container that holds the {@link UrlBar} and SSL state related with the current {@link Tab}. */ @@ -82,11 +81,6 @@ public interface LocationBar { */ View getSecurityIconView(); - /** Returns the {@link VoiceRecognitionHandler} associated with this LocationBar. */ - default @Nullable VoiceRecognitionHandler getVoiceRecognitionHandler() { - return null; - } - /** * Returns a (@link OmniboxStub}. * diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java @@ -41,7 +41,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; import org.chromium.chrome.browser.omnibox.suggestions.history_clusters.HistoryClustersProcessor.OpenHistoryClustersDelegate; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManager; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; @@ -460,13 +459,6 @@ public class LocationBarCoordinator return mLocationBarLayout.getSecurityIconView(); } - /** Returns the {@link VoiceRecognitionHandler} associated with this LocationBar. */ - @Nullable - @Override - public VoiceRecognitionHandler getVoiceRecognitionHandler() { - return mLocationBarMediator.getVoiceRecognitionHandler(); - } - @Nullable @Override public OmniboxStub getOmniboxStub() { @@ -762,11 +754,6 @@ public class LocationBarCoordinator // End tablet-specific methods. - public void setVoiceRecognitionHandlerForTesting( - VoiceRecognitionHandler voiceRecognitionHandler) { - mLocationBarMediator.setVoiceRecognitionHandlerForTesting(voiceRecognitionHandler); - } - public void onUrlChangedForTesting() { mLocationBarMediator.onUrlChanged(); } diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java @@ -52,7 +52,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManager; @@ -92,8 +91,6 @@ import java.util.function.BooleanSupplier; class LocationBarMediator implements LocationBarDataProvider.Observer, OmniboxStub, - VoiceRecognitionHandler.Delegate, - VoiceRecognitionHandler.Observer, UrlBarDelegate, OnKeyListener, ComponentCallbacks, @@ -157,7 +154,6 @@ class LocationBarMediator }; private final LocationBarLayout mLocationBarLayout; - private VoiceRecognitionHandler mVoiceRecognitionHandler; private final LocationBarDataProvider mLocationBarDataProvider; private StatusCoordinator mStatusCoordinator; private AutocompleteCoordinator mAutocompleteCoordinator; @@ -231,8 +227,6 @@ class LocationBarMediator mLocationBarDataProvider.addObserver(this); mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate; mLocaleManager = localeManager; - mVoiceRecognitionHandler = new VoiceRecognitionHandler(this, profileSupplier); - mVoiceRecognitionHandler.addObserver(this); mProfileSupplier = profileSupplier; mProfileSupplier.addObserver(mCallbackController.makeCancelable(this::setProfile)); mPrivacyPreferencesManager = privacyPreferencesManager; @@ -277,8 +271,6 @@ class LocationBarMediator mAutocompleteCoordinator = null; mUrlCoordinator = null; mPrivacyPreferencesManager = null; - mVoiceRecognitionHandler.removeObserver(this); - mVoiceRecognitionHandler = null; mLocationBarDataProvider.removeObserver(this); mDeferredNativeRunnables.clear(); mUrlFocusChangeListeners.clear(); @@ -407,11 +399,6 @@ class LocationBarMediator mLocationBarLayout.setUnfocusedWidth(unfocusedWidth); } - /* package */ void setVoiceRecognitionHandlerForTesting( - VoiceRecognitionHandler voiceRecognitionHandler) { - mVoiceRecognitionHandler = voiceRecognitionHandler; - } - /* package */ void setLensControllerForTesting(LensController lensController) { mLensController = lensController; } @@ -662,8 +649,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(false, false); RecordUserAction.record("MobileOmniboxVoiceSearch"); - mVoiceRecognitionHandler.startVoiceRecognition( - VoiceRecognitionHandler.VoiceInteractionSource.OMNIBOX); } /** package */ @@ -1132,9 +1117,7 @@ class LocationBarMediator private boolean shouldShowMicButton() { if (shouldShowDeleteButton()) return false; - if (!mNativeInitialized - || mVoiceRecognitionHandler == null - || !mVoiceRecognitionHandler.isVoiceSearchEnabled()) { + if ((true)) { return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); @@ -1151,6 +1134,7 @@ class LocationBarMediator } private boolean shouldShowLensButton() { + if ((true)) return false; if (shouldShowDeleteButton()) return false; // When this method is called on UI inflation, return false as the native is not ready. @@ -1158,15 +1142,6 @@ class LocationBarMediator return false; } - // Never show Lens in the old search widget page context. - // This widget must guarantee consistent feature set regardless of search engine choice or - // other aspects that may not be met by Lens. - LocationBarDataProvider dataProvider = getLocationBarDataProvider(); - if (dataProvider.getPageClassification(dataProvider.isIncognito(), /* isPrefetch= */ false) - == PageClassification.ANDROID_SEARCH_WIDGET_VALUE) { - return false; - } - // When this method is called after native initialized, check omnibox conditions and Lens // eligibility. if (mIsTablet && mShouldShowButtonsWhenUnfocused) { @@ -1371,16 +1346,6 @@ class LocationBarMediator } } - @Override - public @Nullable VoiceRecognitionHandler getVoiceRecognitionHandler() { - // TODO(crbug.com/1140333): StartSurfaceMediator can call this method after destroy(). - if (mLocationBarLayout == null) { - return null; - } - - return mVoiceRecognitionHandler; - } - @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); @@ -1396,33 +1361,13 @@ class LocationBarMediator return mUrlHasFocus; } - @Override + // @Override public void clearOmniboxFocus() { setUrlBarFocus( /* shouldBeFocused= */ false, /* pastedText= */ null, OmniboxFocusReason.UNFOCUS); } - @Override - public void notifyVoiceRecognitionCanceled() { - mLocationBarLayout.notifyVoiceRecognitionCanceled(); - } - - // VoiceRecognitionHandler.Delegate implementation. - - @Override - public void loadUrlFromVoice(String url) { - loadUrl( - new OmniboxLoadUrlParams.Builder(url, PageTransition.TYPED) - .setOpenInNewTab(false) - .build()); - } - - @Override - public void onVoiceAvailabilityImpacted() { - updateButtonVisibility(); - } - - @Override + // @Override public void setSearchQuery(String query) { if (TextUtils.isEmpty(query)) return; @@ -1445,20 +1390,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } - @Override - public LocationBarDataProvider getLocationBarDataProvider() { - return mLocationBarDataProvider; - } - - @Override - public AutocompleteCoordinator getAutocompleteCoordinator() { - return mAutocompleteCoordinator; - } - - @Override - public WindowAndroid getWindowAndroid() { - return mWindowAndroid; - } // UrlBarDelegate implementation. diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxStub.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxStub.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxStub.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxStub.java @@ -7,7 +7,6 @@ package org.chromium.chrome.browser.omnibox; import androidx.annotation.Nullable; import org.chromium.chrome.browser.lens.LensEntryPoint; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import java.util.List; @@ -42,14 +41,6 @@ public interface OmniboxStub { */ boolean isUrlBarFocused(); - /** - * Get the {@link VoiceRecognitionHandler}. - * - * @return the {@link VoiceRecognitionHandler} - */ - @Nullable - VoiceRecognitionHandler getVoiceRecognitionHandler(); - /** * Adds a URL focus change listener that will be notified when the URL gains or loses focus. * diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java @@ -14,7 +14,6 @@ import org.jni_zero.NativeMethods; import org.chromium.base.lifetime.Destroyable; import org.chromium.chrome.browser.omnibox.OmniboxFeatures; import org.chromium.chrome.browser.omnibox.OmniboxMetrics; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler.VoiceResult; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; import org.chromium.components.omnibox.AutocompleteMatch; @@ -345,25 +344,6 @@ public class AutocompleteController implements Destroyable { mNativeController, match.getNativeObjectRef(), matchIndex, webContents); } - /** - * Pass the voice provider a list representing the results of a voice recognition. - * - * @param results A list containing the results of a voice recognition. - */ - void onVoiceResults(@Nullable List results) { - if (mNativeController == 0) return; - if (results == null || results.size() == 0) return; - final int count = Math.min(results.size(), MAX_VOICE_SUGGESTION_COUNT); - String[] voiceMatches = new String[count]; - float[] confidenceScores = new float[count]; - for (int i = 0; i < count; i++) { - voiceMatches[i] = results.get(i).getMatch(); - confidenceScores[i] = results.get(i).getConfidence(); - } - AutocompleteControllerJni.get() - .setVoiceMatches(mNativeController, voiceMatches, confidenceScores); - } - /** * Updates searchbox stats parameters on the selected match that we will navigate to and * returns the updated URL. @@ -457,11 +437,6 @@ public class AutocompleteController implements Destroyable { Tab getMatchingTabForSuggestion( long nativeAutocompleteControllerAndroid, long nativeAutocompleteMatch); - void setVoiceMatches( - long nativeAutocompleteControllerAndroid, - String[] matches, - float[] confidenceScores); - // Destroy supplied instance of the AutocompleteControllerAndroid. // The instance cannot be used after this call completes. void destroy(long nativeAutocompleteControllerAndroid); diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java @@ -45,7 +45,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.header.HeaderViewBinder; import org.chromium.chrome.browser.omnibox.suggestions.history_clusters.HistoryClustersProcessor.OpenHistoryClustersDelegate; import org.chromium.chrome.browser.omnibox.suggestions.tail.TailSuggestionView; import org.chromium.chrome.browser.omnibox.suggestions.tail.TailSuggestionViewBinder; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; @@ -344,13 +343,6 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC mRecycledViewPool.onNativeInitialized(); } - /** - * @see AutocompleteController#onVoiceResults(List) - */ - public void onVoiceResults(@Nullable List results) { - mMediator.onVoiceResults(results); - } - /** * @return The current native pointer to the autocomplete results. TODO(ender): Figure out how * to remove this. diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java @@ -38,7 +38,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionFactoryImpl; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; import org.chromium.chrome.browser.omnibox.suggestions.history_clusters.HistoryClustersProcessor.OpenHistoryClustersDelegate; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.share.ShareDelegate; @@ -430,14 +429,6 @@ class AutocompleteMediator mShouldPreventOmniboxAutocomplete = prevent; } - /** - * @see AutocompleteController#onVoiceResults(List) - */ - void onVoiceResults(@Nullable List results) { - if (!mNativeInitialized || mAutocomplete == null) return; - mAutocomplete.onVoiceResults(results); - } - /** * @return The current native pointer to the autocomplete results. TODO(crbug.com/1138587): * Figure out how to remove this. --