Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable internal translate engine #10453

Merged
merged 35 commits into from Oct 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
4cf0829
Move the buildflags
atuchin-m Oct 7, 2021
18f67b1
Remove dummy TranslateURLFetcher
atuchin-m Oct 7, 2021
0bdf436
Add runtime switching between extension and brave-translate-go
atuchin-m Oct 8, 2021
9983141
Fix buildflags in network redirects
atuchin-m Oct 8, 2021
3eab1e6
Update patches
atuchin-m Oct 11, 2021
77e3d4c
Change translate-security-origin
atuchin-m Oct 11, 2021
871317b
Fix lint
atuchin-m Oct 12, 2021
1e1ff22
Fix deps
atuchin-m Oct 12, 2021
a1f83cb
More lint
atuchin-m Oct 12, 2021
6754da2
Remove network redirection code
atuchin-m Oct 12, 2021
7fdc63d
Fix formatting
atuchin-m Oct 12, 2021
5edc3ec
Adjust CSP policy
atuchin-m Oct 12, 2021
0f9fd6f
Use js requests redirection
atuchin-m Oct 12, 2021
a212a4e
Adjust DEPS
atuchin-m Oct 12, 2021
24dc5a7
Fix !enable_extensions platforms
atuchin-m Oct 12, 2021
7702b2d
Fix comment
atuchin-m Oct 12, 2021
8623a6c
Improve js redirections, cleanup, fix tests
atuchin-m Oct 13, 2021
7972ee1
Change a function name
atuchin-m Oct 13, 2021
c5ad629
Remove NOLINT
atuchin-m Oct 13, 2021
6b5c0fc
Remove logs
atuchin-m Oct 13, 2021
ebc9fba
Review fixes
atuchin-m Oct 14, 2021
61724dd
Remove C++ translate network redirections completely
atuchin-m Oct 14, 2021
8459043
More review fixes
atuchin-m Oct 14, 2021
5379131
Add browsertests
atuchin-m Oct 18, 2021
26cf301
Fix footers
atuchin-m Oct 18, 2021
411bb68
Add comments
atuchin-m Oct 18, 2021
68ddead
Fix test
atuchin-m Oct 18, 2021
cbb43f4
Remove the icon
atuchin-m Oct 18, 2021
49fe1de
Use base::MockCallback
atuchin-m Oct 18, 2021
9b667d2
Fix lint
atuchin-m Oct 18, 2021
05a0402
Improve the test
atuchin-m Oct 18, 2021
2c6a5e8
Fix comments
atuchin-m Oct 19, 2021
56591d2
Move code to common
atuchin-m Oct 20, 2021
b6d485e
Add a test switch for the google endpoint
atuchin-m Oct 20, 2021
b0b2088
Update urls and add a switch
atuchin-m Oct 20, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
23 changes: 22 additions & 1 deletion browser/about_flags.cc
Expand Up @@ -22,6 +22,8 @@
#include "brave/components/ntp_background_images/browser/features.h"
#include "brave/components/sidebar/buildflags/buildflags.h"
#include "brave/components/speedreader/buildflags.h"
#include "brave/components/translate/core/common/brave_translate_features.h"
#include "brave/components/translate/core/common/buildflags.h"
#include "net/base/features.h"

#if BUILDFLAG(ENABLE_BRAVE_VPN) && !defined(OS_ANDROID)
Expand Down Expand Up @@ -217,6 +219,13 @@ constexpr char kUseDevUpdaterUrlDescription[] =
"Use the dev url for the component updater. "
"This is for internal testing only.";

constexpr char kBraveTranslateGoName[] =
"Enable internal translate engine (brave-translate-go)";
constexpr char kBraveTranslateGoDescription[] =
"Enable internal translate engine, which are build on top of client engine "
"and brave translation backed. Also disables suggestions to install google "
"translate extension.";

} // namespace

} // namespace flag_descriptions
Expand Down Expand Up @@ -300,6 +309,17 @@ constexpr char kUseDevUpdaterUrlDescription[] =
#define BRAVE_DECENTRALIZED_DNS_FEATURE_ENTRIES
#endif

#if BUILDFLAG(ENABLE_BRAVE_TRANSLATE_GO)
#define BRAVE_TRANSLATE_GO_FEATURE_ENTRIES \
{"brave-translate-go", \
flag_descriptions::kBraveTranslateGoName, \
flag_descriptions::kBraveTranslateGoDescription, \
kOsDesktop, \
FEATURE_VALUE_TYPE(translate::features::kUseBraveTranslateGo)},
#else
#define BRAVE_TRANSLATE_GO_FEATURE_ENTRIES
#endif // BUILDFLAG(ENABLE_BRAVE_TRANSLATE_GO)

#define BRAVE_ABOUT_FLAGS_FEATURE_ENTRIES \
{"use-dev-updater-url", \
flag_descriptions::kUseDevUpdaterUrlName, \
Expand Down Expand Up @@ -391,4 +411,5 @@ constexpr char kUseDevUpdaterUrlDescription[] =
BRAVE_REWARDS_GEMINI_FEATURE_ENTRIES \
BRAVE_VPN_FEATURE_ENTRIES \
SIDEBAR_FEATURE_ENTRIES \
SPEEDREADER_FEATURE_ENTRIES
SPEEDREADER_FEATURE_ENTRIES \
BRAVE_TRANSLATE_GO_FEATURE_ENTRIES
23 changes: 22 additions & 1 deletion browser/brave_browser_main_parts.cc
Expand Up @@ -15,9 +15,13 @@
#include "brave/components/brave_sync/features.h"
#include "brave/components/speedreader/buildflags.h"
#include "brave/components/tor/buildflags/buildflags.h"
#include "brave/components/translate/core/common/brave_translate_constants.h"
#include "brave/components/translate/core/common/brave_translate_features.h"
#include "chrome/common/chrome_features.h"
#include "components/prefs/pref_service.h"
#include "components/sync/driver/sync_driver_switches.h"
#include "components/translate/core/browser/translate_language_list.h"
#include "components/translate/core/common/translate_switches.h"
#include "content/public/browser/render_frame_host.h"
#include "extensions/buildflags/buildflags.h"
#include "media/base/media_switches.h"
Expand Down Expand Up @@ -152,8 +156,8 @@ void BraveBrowserMainParts::PreShutdown() {

void BraveBrowserMainParts::PreProfileInit() {
ChromeBrowserMainParts::PreProfileInit();
#if !defined(OS_ANDROID)
auto* command_line = base::CommandLine::ForCurrentProcess();
#if !defined(OS_ANDROID)
if (!base::FeatureList::IsEnabled(brave_sync::features::kBraveSync)) {
// Disable sync temporarily
if (!command_line->HasSwitch(switches::kDisableSync))
Expand All @@ -164,6 +168,23 @@ void BraveBrowserMainParts::PreProfileInit() {
command_line->RemoveSwitch(switches::kDisableSync);
}
#endif

// Redirect the translate script request to the Brave
// endpoints.
if (!command_line->HasSwitch(translate::switches::kTranslateScriptURL)) {
command_line->AppendSwitchASCII(translate::switches::kTranslateScriptURL,
translate::kBraveTranslateScriptURL);
}

// Redirect the rest native translate requests.
if (!command_line->HasSwitch(translate::switches::kTranslateSecurityOrigin)) {
command_line->AppendSwitchASCII(
translate::switches::kTranslateSecurityOrigin,
translate::kBraveTranslateOrigin);
}

if (!translate::ShouldUpdateLanguagesList())
translate::TranslateLanguageList::DisableUpdate();
}

void BraveBrowserMainParts::PostProfileInit() {
Expand Down
8 changes: 8 additions & 0 deletions browser/brave_content_browser_client.cc
Expand Up @@ -54,6 +54,7 @@
#include "brave/components/speedreader/buildflags.h"
#include "brave/components/speedreader/speedreader_util.h"
#include "brave/components/tor/buildflags/buildflags.h"
#include "brave/components/translate/core/common/brave_translate_switches.h"
#include "brave/grit/brave_generated_resources.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chrome_browser_interface_binders.h"
Expand Down Expand Up @@ -544,6 +545,13 @@ void BraveContentBrowserClient::AppendExtraCommandLineSwitches(
}
command_line->AppendSwitchASCII("brave_session_token",
base::NumberToString(session_token));

// Switches to pass to render processes.
static const char* const kSwitchNames[] = {
translate::switches::kBraveTranslateUseGoogleEndpoint,
};
command_line->CopySwitchesFrom(browser_command_line, kSwitchNames,
base::size(kSwitchNames));
}
}

Expand Down
9 changes: 0 additions & 9 deletions browser/net/BUILD.gn
@@ -1,4 +1,3 @@
import("//brave/browser/translate/buildflags/buildflags.gni")
import("//brave/components/brave_referrals/buildflags/buildflags.gni")
import("//brave/components/brave_wallet/common/buildflags/buildflags.gni")
import("//brave/components/brave_webtorrent/browser/buildflags/buildflags.gni")
Expand Down Expand Up @@ -49,7 +48,6 @@ source_set("net") {
"//base",
"//brave/app:brave_generated_resources_grit",
"//brave/browser/safebrowsing",
"//brave/browser/translate/buildflags",
"//brave/common",
"//brave/components/brave_component_updater/browser",
"//brave/components/brave_referrals/buildflags",
Expand Down Expand Up @@ -111,13 +109,6 @@ source_set("net") {
]
}

if (enable_brave_translate_go) {
sources += [
"brave_translate_redirect_network_delegate_helper.cc",
"brave_translate_redirect_network_delegate_helper.h",
]
}

if (decentralized_dns_enabled && brave_wallet_enabled) {
sources += [
"decentralized_dns_network_delegate_helper.cc",
Expand Down
11 changes: 0 additions & 11 deletions browser/net/brave_request_handler.cc
Expand Up @@ -19,7 +19,6 @@
#include "brave/browser/net/brave_site_hacks_network_delegate_helper.h"
#include "brave/browser/net/brave_stp_util.h"
#include "brave/browser/net/global_privacy_control_network_delegate_helper.h"
#include "brave/browser/translate/buildflags/buildflags.h"
#include "brave/common/pref_names.h"
#include "brave/components/brave_referrals/buildflags/buildflags.h"
#include "brave/components/brave_rewards/browser/net/network_delegate_helper.h"
Expand All @@ -43,10 +42,6 @@
#include "brave/browser/net/brave_torrent_redirect_network_delegate_helper.h"
#endif

#if BUILDFLAG(ENABLE_BRAVE_TRANSLATE_GO)
#include "brave/browser/net/brave_translate_redirect_network_delegate_helper.h"
#endif

#if BUILDFLAG(ENABLE_IPFS)
#include "brave/browser/net/ipfs_redirect_network_delegate_helper.h"
#include "brave/components/ipfs/features.h"
Expand Down Expand Up @@ -93,12 +88,6 @@ void BraveRequestHandler::SetupCallbacks() {
callback = base::BindRepeating(brave_rewards::OnBeforeURLRequest);
before_url_request_callbacks_.push_back(callback);

#if BUILDFLAG(ENABLE_BRAVE_TRANSLATE_GO)
callback =
base::BindRepeating(brave::OnBeforeURLRequest_TranslateRedirectWork);
before_url_request_callbacks_.push_back(callback);
#endif

#if BUILDFLAG(ENABLE_IPFS)
if (base::FeatureList::IsEnabled(ipfs::features::kIpfsFeature)) {
callback = base::BindRepeating(ipfs::OnBeforeURLRequest_IPFSRedirectWork);
Expand Down
24 changes: 0 additions & 24 deletions browser/net/brave_static_redirect_network_delegate_helper.cc
Expand Up @@ -11,9 +11,7 @@
#include <vector>

#include "base/strings/string_piece_forward.h"
#include "brave/browser/translate/buildflags/buildflags.h"
#include "brave/common/network_constants.h"
#include "brave/common/translate_network_constants.h"
#include "extensions/common/url_pattern.h"
#include "net/base/net_errors.h"

Expand Down Expand Up @@ -88,12 +86,6 @@ int OnBeforeURLRequest_StaticRedirectWorkForGURL(
URLPattern::SCHEME_HTTP | URLPattern::SCHEME_HTTPS,
kWidevineGoogleDlPrefix);

#if BUILDFLAG(ENABLE_BRAVE_TRANSLATE_GO)
static URLPattern translate_pattern(URLPattern::SCHEME_HTTPS,
kTranslateElementJSPattern);
static URLPattern translate_language_pattern(URLPattern::SCHEME_HTTPS,
kTranslateLanguagePattern);
#endif
if (geo_pattern.MatchesURL(request_url)) {
*new_url = GURL(GOOGLEAPIS_ENDPOINT GOOGLEAPIS_API_KEY);
return net::OK;
Expand Down Expand Up @@ -179,23 +171,7 @@ int OnBeforeURLRequest_StaticRedirectWorkForGURL(
return net::OK;
}

#if BUILDFLAG(ENABLE_BRAVE_TRANSLATE_GO)
if (translate_pattern.MatchesURL(request_url)) {
replacements.SetQueryStr(request_url.query_piece());
replacements.SetPathStr(request_url.path_piece());
*new_url =
GURL(kBraveTranslateEndpoint).ReplaceComponents(replacements);
return net::OK;
}

if (translate_language_pattern.MatchesURL(request_url)) {
*new_url = GURL(kBraveTranslateLanguageEndpoint);
return net::OK;
}
#endif

return net::OK;
}


} // namespace brave
Expand Up @@ -10,8 +10,6 @@

#include "base/strings/string_util.h"
#include "brave/browser/net/url_context.h"
#include "brave/browser/translate/buildflags/buildflags.h"
#include "brave/common/translate_network_constants.h"
#include "components/component_updater/component_updater_url_constants.h"
#include "net/base/net_errors.h"
#include "testing/gtest/include/gtest/gtest.h"
Expand Down Expand Up @@ -284,35 +282,3 @@ TEST(BraveStaticRedirectNetworkDelegateHelperTest,
EXPECT_EQ(request_info->new_url_spec, expected_url);
EXPECT_EQ(rc, net::OK);
}

#if BUILDFLAG(ENABLE_BRAVE_TRANSLATE_GO)
TEST(BraveStaticRedirectNetworkDelegateHelperTest, RedirectTranslate) {
const std::string query_string(
"?cb=cr.googleTranslate.onTranslateElementLoad&aus=true&"
"clc=cr.googleTranslate.onLoadCSS&"
"jlc=cr.googleTranslate.onLoadJavascript&hl=en&key=DUMMY_KEY");
const std::string path_string("/translate_a/element.js");
const std::string google_host_string("https://translate.googleapis.com");
const GURL url(google_host_string + path_string + query_string);
const GURL expected_url(kBraveTranslateServer + path_string + query_string);

auto request_info = std::make_shared<brave::BraveRequestInfo>(url);
int rc =
OnBeforeURLRequest_StaticRedirectWork(ResponseCallback(), request_info);
EXPECT_EQ(request_info->new_url_spec, expected_url);
EXPECT_EQ(rc, net::OK);
}

TEST(BraveStaticRedirectNetworkDelegateHelperTest, RedirectTranslateLanguage) {
const GURL url(
"https://translate.googleapis.com/translate_a/l?"
"client=chrome&hl=en&key=DUMMY_KEY");
const GURL expected_url(kBraveTranslateLanguageEndpoint);

auto request_info = std::make_shared<brave::BraveRequestInfo>(url);
int rc =
OnBeforeURLRequest_StaticRedirectWork(ResponseCallback(), request_info);
EXPECT_EQ(request_info->new_url_spec, expected_url);
EXPECT_EQ(rc, net::OK);
}
#endif
104 changes: 0 additions & 104 deletions browser/net/brave_translate_redirect_network_delegate_helper.cc

This file was deleted.

20 changes: 0 additions & 20 deletions browser/net/brave_translate_redirect_network_delegate_helper.h

This file was deleted.