Skip to content

Commit

Permalink
Use temporal AutocompleteClassifier to get proper navigation url
Browse files Browse the repository at this point in the history
To get proper selection navigation url for profile, use tempral
AutocompleteClassfier. We can't use AutocompleteClassifierFactory
for this because AutocompleteClassifierFactory doesn't create service
for otr profile. But we need different navigation url for OTR profile.
  • Loading branch information
simonhong authored and bsclifton committed Apr 28, 2020
1 parent 256f22c commit 345d644
Show file tree
Hide file tree
Showing 10 changed files with 44 additions and 146 deletions.
2 changes: 0 additions & 2 deletions browser/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ source_set("browser_process") {
sources = [
"autocomplete/brave_autocomplete_provider_client.cc",
"autocomplete/brave_autocomplete_provider_client.h",
"autocomplete/brave_autocomplete_provider_client_for_classifier.cc",
"autocomplete/brave_autocomplete_provider_client_for_classifier.h",
"autocomplete/brave_autocomplete_scheme_classifier.cc",
"autocomplete/brave_autocomplete_scheme_classifier.h",
"brave_shields/ad_block_pref_service_factory.cc",
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

8 changes: 2 additions & 6 deletions browser/autocomplete/brave_autocomplete_scheme_classifier.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,10 @@
#include "brave/components/brave_webtorrent/browser/webtorrent_util.h"
#endif

// See the BraveAutocompleteProviderClient why GetOriginalProfile() is fetched.
// All services except TemplateURLService exposed from AutocompleteClassifier
// uses original profile. So, |profile_| should be original profile same as
// base class does.
BraveAutocompleteSchemeClassifier::BraveAutocompleteSchemeClassifier(
Profile* profile)
: ChromeAutocompleteSchemeClassifier(profile->GetOriginalProfile()),
profile_(profile->GetOriginalProfile()) {
: ChromeAutocompleteSchemeClassifier(profile),
profile_(profile) {
}

BraveAutocompleteSchemeClassifier::~BraveAutocompleteSchemeClassifier() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "brave/browser/autocomplete/brave_autocomplete_provider_client_for_classifier.h"
#include "brave/browser/autocomplete/brave_autocomplete_provider_client.h"
#include "brave/browser/autocomplete/brave_autocomplete_scheme_classifier.h"
#include "brave/components/omnibox/browser/brave_autocomplete_controller.h"
#include "components/omnibox/browser/autocomplete_classifier.h"
#include "components/omnibox/browser/autocomplete_controller.h"

#define AutocompleteController BraveAutocompleteController
#define ChromeAutocompleteProviderClient BraveAutocompleteProviderClientForClassifier // NOLINT
#define ChromeAutocompleteProviderClient BraveAutocompleteProviderClient // NOLINT
#define ChromeAutocompleteSchemeClassifier BraveAutocompleteSchemeClassifier
#include "../../../../../chrome/browser/autocomplete/autocomplete_classifier_factory.cc"
#undef ChromeAutocompleteSchemeClassifier
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,14 @@

#include "chrome/browser/renderer_context_menu/render_view_context_menu.h"

#include "brave/browser/autocomplete/brave_autocomplete_provider_client.h"
#include "brave/browser/autocomplete/brave_autocomplete_scheme_classifier.h"
#include "brave/browser/profiles/profile_util.h"
#include "brave/browser/tor/buildflags.h"
#include "brave/browser/translate/buildflags/buildflags.h"
#include "brave/browser/renderer_context_menu/brave_spelling_options_submenu_observer.h"
#include "brave/components/omnibox/browser/brave_autocomplete_controller.h"
#include "components/omnibox/browser/autocomplete_classifier.h"

#if BUILDFLAG(ENABLE_TOR)
#include "brave/browser/tor/tor_profile_service.h"
Expand All @@ -18,6 +22,29 @@
#undef RenderViewContextMenu
#define RenderViewContextMenu RenderViewContextMenu_Chromium

namespace {

GURL GetSelectionNavigationURL(Profile* profile, const base::string16& text) {
AutocompleteMatch match;
AutocompleteClassifier classifier(
std::make_unique<BraveAutocompleteController>(
std::make_unique<BraveAutocompleteProviderClient>(profile),
nullptr, AutocompleteClassifier::DefaultOmniboxProviders()),
std::make_unique<BraveAutocompleteSchemeClassifier>(profile));
classifier.Classify(text, false, false,
metrics::OmniboxEventProto::INVALID_SPEC, &match, NULL);
classifier.Shutdown();
return match.destination_url;
}

} // namespace

#define BRAVE_APPEND_SEARCH_PROVIDER \
selection_navigation_url_ = \
GetSelectionNavigationURL(GetProfile(), params_.selection_text); \
if (!selection_navigation_url_.is_valid()) \
return;

// Use our subclass to initialize SpellingOptionsSubMenuObserver.
#define SpellingOptionsSubMenuObserver BraveSpellingOptionsSubMenuObserver

Expand All @@ -27,6 +54,7 @@

// Make it clear which class we mean here.
#undef RenderViewContextMenu
#undef BRAVE_APPEND_SEARCH_PROVIDER

BraveRenderViewContextMenu::BraveRenderViewContextMenu(
content::RenderFrameHost* render_frame_host,
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
index fd1135cead69374786578e274ad0762801aa0440..3fa2d2c993b54a062dc8756861dee1ea2e2abd5b 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -1649,6 +1649,7 @@ void RenderViewContextMenu::AppendSearchProvider() {
selection_navigation_url_ = match.destination_url;
if (!selection_navigation_url_.is_valid())
return;
+ BRAVE_APPEND_SEARCH_PROVIDER

base::string16 printable_selection_text = PrintableSelectionText();
EscapeAmpersands(&printable_selection_text);
1 change: 0 additions & 1 deletion test/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -574,7 +574,6 @@ test("brave_browser_tests") {
testonly = true
sources = [
"//brave/app/brave_main_delegate_browsertest.cc",
"//brave/browser/autocomplete/brave_autocomplete_provider_client_browsertest.cc",
"//brave/browser/brave_scheme_load_browsertest.cc",
"//brave/browser/autoplay/autoplay_permission_context_browsertest.cc",
"//brave/browser/brave_content_browser_client_browsertest.cc",
Expand Down

0 comments on commit 345d644

Please sign in to comment.