Create AutocompleteMediator super class instead of patching, for capturing Android URL events in P3A
This commit is contained in:
@@ -541,6 +541,10 @@
|
||||
public <init>(...);
|
||||
}
|
||||
|
||||
-keep class org.chromium.chrome.browser.omnibox.suggestions.BraveAutocompleteMediatorBase {
|
||||
public <init>(...);
|
||||
}
|
||||
|
||||
-keep class org.chromium.chrome.browser.notifications.permissions.NotificationPermissionRationaleDialogController {
|
||||
*** wrapDialogDismissalCallback(...);
|
||||
public <init>(...);
|
||||
|
||||
-17
@@ -13,7 +13,6 @@ import androidx.annotation.Nullable;
|
||||
|
||||
import org.chromium.base.Callback;
|
||||
import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.chrome.browser.app.BraveActivity;
|
||||
import org.chromium.chrome.browser.omnibox.LocationBarDataProvider;
|
||||
import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider;
|
||||
import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState;
|
||||
@@ -24,13 +23,10 @@ import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
import org.chromium.chrome.browser.share.ShareDelegate;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tabmodel.TabWindowManager;
|
||||
import org.chromium.components.omnibox.AutocompleteMatch;
|
||||
import org.chromium.components.omnibox.OmniboxSuggestionType;
|
||||
import org.chromium.components.omnibox.action.OmniboxActionDelegate;
|
||||
import org.chromium.components.user_prefs.UserPrefs;
|
||||
import org.chromium.ui.modaldialog.ModalDialogManager;
|
||||
import org.chromium.ui.modelutil.PropertyModel;
|
||||
import org.chromium.url.GURL;
|
||||
|
||||
class BraveAutocompleteMediator extends AutocompleteMediator implements BraveSuggestionHost {
|
||||
private static final String AUTOCOMPLETE_ENABLED = "brave.autocomplete_enabled";
|
||||
@@ -78,19 +74,6 @@ class BraveAutocompleteMediator extends AutocompleteMediator implements BraveSug
|
||||
super.onUrlFocusChange(hasFocus);
|
||||
}
|
||||
|
||||
@Override
|
||||
void loadUrlForOmniboxMatch(int matchIndex, @NonNull AutocompleteMatch suggestion,
|
||||
@NonNull GURL url, long inputStart, boolean inVisibleSuggestionList) {
|
||||
super.loadUrlForOmniboxMatch(
|
||||
matchIndex, suggestion, url, inputStart, inVisibleSuggestionList);
|
||||
if (suggestion.getType() == OmniboxSuggestionType.SEARCH_WHAT_YOU_TYPED
|
||||
|| suggestion.getType() == OmniboxSuggestionType.SEARCH_SUGGEST) {
|
||||
if (mContext != null && mContext instanceof BraveActivity) {
|
||||
((BraveActivity) mContext).getMiscAndroidMetrics().recordLocationBarQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeBraveSearchSuggestion() {
|
||||
if (mDropdownViewInfoListManager instanceof BraveDropdownItemViewInfoListManager) {
|
||||
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
/* Copyright (c) 2023 The Brave Authors. All rights reserved.
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package org.chromium.chrome.browser.omnibox.suggestions;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import org.chromium.base.BraveReflectionUtil;
|
||||
import org.chromium.chrome.browser.app.BraveActivity;
|
||||
import org.chromium.components.omnibox.AutocompleteMatch;
|
||||
import org.chromium.components.omnibox.OmniboxSuggestionType;
|
||||
import org.chromium.url.GURL;
|
||||
|
||||
class BraveAutocompleteMediatorBase {
|
||||
void loadUrlForOmniboxMatch(int matchIndex, @NonNull AutocompleteMatch suggestion,
|
||||
@NonNull GURL url, long inputStart, boolean inVisibleSuggestionList) {
|
||||
BraveReflectionUtil.InvokeMethod(AutocompleteMediator.class, this, "loadUrlForOmniboxMatch",
|
||||
int.class, matchIndex, AutocompleteMatch.class, suggestion, GURL.class, url,
|
||||
long.class, inputStart, boolean.class, inVisibleSuggestionList);
|
||||
if (suggestion.getType() == OmniboxSuggestionType.SEARCH_WHAT_YOU_TYPED
|
||||
|| suggestion.getType() == OmniboxSuggestionType.SEARCH_SUGGEST) {
|
||||
Context context = (Context) BraveReflectionUtil.getField(
|
||||
AutocompleteMediator.class, "mContext", this);
|
||||
if (context != null && context instanceof BraveActivity) {
|
||||
((BraveActivity) context).getMiscAndroidMetrics().recordLocationBarQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,11 @@
|
||||
*** createViewProvider(...);
|
||||
}
|
||||
|
||||
-keep class org.chromium.chrome.browser.omnibox.suggestions.AutocompleteMediator {
|
||||
*** mContext;
|
||||
*** loadUrlForOmniboxMatch(...);
|
||||
}
|
||||
|
||||
-keep class org.chromium.components.browser_ui.site_settings.ContentSettingsResources {
|
||||
*** getResourceItem(...);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user