0

Improve AutocompleteMediator's annotations for static analysis.

This is just a drive-by cleanup that fixes a few outstanding null
reports in Autocomplete Mediator.

Change-Id: I28bb4ef253be3b40dca2db0dccaa25567670be4b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5393864
Reviewed-by: Gang Wu <gangwu@chromium.org>
Auto-Submit: Tomasz Wiszkowski <ender@google.com>
Commit-Queue: Tomasz Wiszkowski <ender@google.com>
Commit-Queue: Gang Wu <gangwu@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1277883}
This commit is contained in:
Tomasz Wiszkowski
2024-03-25 20:10:49 +00:00
committed by Chromium LUCI CQ
parent 2506505fd4
commit 83fe2572d0
5 changed files with 27 additions and 25 deletions
chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox
components/omnibox/browser/android/java/src/org/chromium/components/omnibox

@@ -4,6 +4,8 @@
package org.chromium.chrome.browser.omnibox; package org.chromium.chrome.browser.omnibox;
import androidx.annotation.NonNull;
/** Provider of editing text state from the UrlBar/Omnibox. */ /** Provider of editing text state from the UrlBar/Omnibox. */
public interface UrlBarEditingTextStateProvider { public interface UrlBarEditingTextStateProvider {
/** Return the starting selection index for the text. */ /** Return the starting selection index for the text. */
@@ -19,8 +21,8 @@ public interface UrlBarEditingTextStateProvider {
public boolean wasLastEditPaste(); public boolean wasLastEditPaste();
/** Return the full text with any inline autocomplete. */ /** Return the full text with any inline autocomplete. */
public String getTextWithAutocomplete(); public @NonNull String getTextWithAutocomplete();
/** Return the text excluding any inline autocomplete. */ /** Return the text excluding any inline autocomplete. */
public String getTextWithoutAutocomplete(); public @NonNull String getTextWithoutAutocomplete();
} }

@@ -46,7 +46,6 @@ public class AutocompleteController {
// Maximum number of voice suggestions to show. // Maximum number of voice suggestions to show.
private static final int MAX_VOICE_SUGGESTION_COUNT = 3; private static final int MAX_VOICE_SUGGESTION_COUNT = 3;
private final @NonNull Profile mProfile;
private final @NonNull Set<OnSuggestionsReceivedListener> mListeners = new HashSet<>(); private final @NonNull Set<OnSuggestionsReceivedListener> mListeners = new HashSet<>();
private long mNativeController; private long mNativeController;
private @NonNull AutocompleteResult mAutocompleteResult = AutocompleteResult.EMPTY_RESULT; private @NonNull AutocompleteResult mAutocompleteResult = AutocompleteResult.EMPTY_RESULT;
@@ -77,7 +76,6 @@ public class AutocompleteController {
*/ */
@CalledByNative @CalledByNative
private AutocompleteController(@NonNull Profile profile, long nativeController) { private AutocompleteController(@NonNull Profile profile, long nativeController) {
mProfile = profile;
mNativeController = nativeController; mNativeController = nativeController;
} }

@@ -81,7 +81,6 @@ class AutocompleteMediator
OmniboxSuggestionsDropdownScrollListener, OmniboxSuggestionsDropdownScrollListener,
TopResumedActivityChangedObserver, TopResumedActivityChangedObserver,
SuggestionHost { SuggestionHost {
private static final int SUGGESTION_NOT_FOUND = -1;
private static final int SCHEDULE_FOR_IMMEDIATE_EXECUTION = -1; private static final int SCHEDULE_FOR_IMMEDIATE_EXECUTION = -1;
// Delay triggering the omnibox results upon key press to allow the location bar to repaint // Delay triggering the omnibox results upon key press to allow the location bar to repaint
@@ -448,8 +447,9 @@ class AutocompleteMediator
} }
/** /**
* @return The current native pointer to the autocomplete results. TODO(crbug.com/1138587): * TODO(crbug.com/1138587): Figure out how to remove this.
* Figure out how to remove this. *
* @return The current native pointer to the autocomplete results.
*/ */
long getCurrentNativeAutocompleteResult() { long getCurrentNativeAutocompleteResult() {
return mAutocompleteResult.getNativeObjectRef(); return mAutocompleteResult.getNativeObjectRef();
@@ -496,8 +496,9 @@ class AutocompleteMediator
return; return;
} }
mNumTouchDownEventForwardedInOmniboxSession++; mNumTouchDownEventForwardedInOmniboxSession++;
WebContents webContents =
mDataProvider.hasTab() ? mDataProvider.getTab().getWebContents() : null; var tab = mDataProvider.getTab();
WebContents webContents = tab != null ? tab.getWebContents() : null;
boolean wasPrefetchStarted = boolean wasPrefetchStarted =
mAutocomplete.onSuggestionTouchDown(suggestion, matchIndex, webContents); mAutocomplete.onSuggestionTouchDown(suggestion, matchIndex, webContents);
if (wasPrefetchStarted) { if (wasPrefetchStarted) {
@@ -518,7 +519,7 @@ class AutocompleteMediator
* @param suggestion The suggestion selected. * @param suggestion The suggestion selected.
*/ */
@Override @Override
public void onRefineSuggestion(AutocompleteMatch suggestion) { public void onRefineSuggestion(@NonNull AutocompleteMatch suggestion) {
stopAutocomplete(false); stopAutocomplete(false);
boolean isSearchSuggestion = suggestion.isSearchSuggestion(); boolean isSearchSuggestion = suggestion.isSearchSuggestion();
boolean isZeroPrefix = boolean isZeroPrefix =
@@ -541,7 +542,7 @@ class AutocompleteMediator
} }
@Override @Override
public void onSwitchToTab(AutocompleteMatch match, int matchIndex) { public void onSwitchToTab(@NonNull AutocompleteMatch match, int matchIndex) {
if (maybeSwitchToTab(match)) { if (maybeSwitchToTab(match)) {
recordMetrics(match, matchIndex, WindowOpenDisposition.SWITCH_TO_TAB); recordMetrics(match, matchIndex, WindowOpenDisposition.SWITCH_TO_TAB);
} else { } else {
@@ -697,10 +698,9 @@ class AutocompleteMediator
* @param cause The cause of dismiss. * @param cause The cause of dismiss.
*/ */
private void dismissDeleteDialog(@DialogDismissalCause int cause) { private void dismissDeleteDialog(@DialogDismissalCause int cause) {
if (mDeleteDialogModel == null) return; var manager = mModalDialogManagerSupplier.get();
if (mDeleteDialogModel == null || manager == null) return;
assert mModalDialogManagerSupplier.hasValue() : "Dialog shown with no registered manager"; manager.dismissDialog(mDeleteDialogModel, cause);
mModalDialogManagerSupplier.get().dismissDialog(mDeleteDialogModel, cause);
} }
/** /**
@@ -709,7 +709,7 @@ class AutocompleteMediator
* @param text The text to be displayed in the Omnibox. * @param text The text to be displayed in the Omnibox.
*/ */
@Override @Override
public void setOmniboxEditingText(String text) { public void setOmniboxEditingText(@NonNull String text) {
if (mIgnoreOmniboxItemSelection) return; if (mIgnoreOmniboxItemSelection) return;
mIgnoreOmniboxItemSelection = true; mIgnoreOmniboxItemSelection = true;
mDelegate.setOmniboxEditingText(text); mDelegate.setOmniboxEditingText(text);
@@ -725,7 +725,7 @@ class AutocompleteMediator
* @param url The URL associated with the suggestion to navigate to. * @param url The URL associated with the suggestion to navigate to.
* @return The url to navigate to. * @return The url to navigate to.
*/ */
private GURL updateSuggestionUrlIfNeeded( private @NonNull GURL updateSuggestionUrlIfNeeded(
@NonNull AutocompleteMatch suggestion, int matchIndex, @NonNull GURL url) { @NonNull AutocompleteMatch suggestion, int matchIndex, @NonNull GURL url) {
if (!mNativeInitialized || mAutocomplete == null) return url; if (!mNativeInitialized || mAutocomplete == null) return url;
// TODO(crbug/1474087): this should exclude TILE variants when horizontal render group is // TODO(crbug/1474087): this should exclude TILE variants when horizontal render group is
@@ -745,7 +745,7 @@ class AutocompleteMediator
* Notifies the autocomplete system that the text has changed that drives autocomplete and the * Notifies the autocomplete system that the text has changed that drives autocomplete and the
* autocomplete suggestions should be updated. * autocomplete suggestions should be updated.
*/ */
public void onTextChanged(String textWithoutAutocomplete) { public void onTextChanged(@NonNull String textWithoutAutocomplete) {
if (mShouldPreventOmniboxAutocomplete) return; if (mShouldPreventOmniboxAutocomplete) return;
mIgnoreOmniboxItemSelection = true; mIgnoreOmniboxItemSelection = true;
@@ -857,7 +857,8 @@ class AutocompleteMediator
* @param openInNewTab Whether the URL will be loaded in a new tab. If {@code true}, the URL * @param openInNewTab Whether the URL will be loaded in a new tab. If {@code true}, the URL
* will be loaded in a new tab. If {@code false}, The URL will be loaded in the current tab. * will be loaded in a new tab. If {@code false}, The URL will be loaded in the current tab.
*/ */
private void findMatchAndLoadUrl(String urlText, long inputStart, boolean openInNewTab) { private void findMatchAndLoadUrl(
@NonNull String urlText, long inputStart, boolean openInNewTab) {
AutocompleteMatch suggestionMatch; AutocompleteMatch suggestionMatch;
if (getSuggestionCount() > 0 if (getSuggestionCount() > 0
@@ -1076,7 +1077,7 @@ class AutocompleteMediator
} }
/** Trigger autocomplete for the given query. */ /** Trigger autocomplete for the given query. */
void startAutocompleteForQuery(String query) { void startAutocompleteForQuery(@NonNull String query) {
if (!mNativeInitialized || mAutocomplete == null) return; if (!mNativeInitialized || mAutocomplete == null) return;
stopAutocomplete(false); stopAutocomplete(false);
if (mDataProvider.hasTab()) { if (mDataProvider.hasTab()) {
@@ -1127,7 +1128,8 @@ class AutocompleteMediator
* @param suggestionLine the index of the suggestion line that holds selected match * @param suggestionLine the index of the suggestion line that holds selected match
* @param disposition the window open disposition * @param disposition the window open disposition
*/ */
private void recordMetrics(AutocompleteMatch match, int suggestionLine, int disposition) { private void recordMetrics(
@NonNull AutocompleteMatch match, int suggestionLine, int disposition) {
OmniboxMetrics.recordUsedSuggestionFromCache(mAutocompleteResult.isFromCachedResult()); OmniboxMetrics.recordUsedSuggestionFromCache(mAutocompleteResult.isFromCachedResult());
OmniboxMetrics.recordTouchDownPrefetchResult(match, mLastPrefetchStartedSuggestion); OmniboxMetrics.recordTouchDownPrefetchResult(match, mLastPrefetchStartedSuggestion);
@@ -1144,8 +1146,8 @@ class AutocompleteMediator
int autocompleteLength = int autocompleteLength =
mUrlBarEditingTextProvider.getTextWithAutocomplete().length() mUrlBarEditingTextProvider.getTextWithAutocomplete().length()
- mUrlBarEditingTextProvider.getTextWithoutAutocomplete().length(); - mUrlBarEditingTextProvider.getTextWithoutAutocomplete().length();
WebContents webContents = var tab = mDataProvider.getTab();
mDataProvider.hasTab() ? mDataProvider.getTab().getWebContents() : null; WebContents webContents = tab != null ? tab.getWebContents() : null;
mAutocomplete.onSuggestionSelected( mAutocomplete.onSuggestionSelected(
match, match,

@@ -349,7 +349,7 @@ public class AutocompleteMatch {
return mFillIntoEdit; return mFillIntoEdit;
} }
public GURL getUrl() { public @NonNull GURL getUrl() {
return mUrl; return mUrl;
} }

@@ -50,7 +50,7 @@ public class AutocompleteResult {
} }
/** An empty, initialized AutocompleteResult object. */ /** An empty, initialized AutocompleteResult object. */
public static final AutocompleteResult EMPTY_RESULT = public static final @NonNull AutocompleteResult EMPTY_RESULT =
new AutocompleteResult(0, Collections.emptyList(), null); new AutocompleteResult(0, Collections.emptyList(), null);
/** A special value indicating that action has no particular index associated. */ /** A special value indicating that action has no particular index associated. */