Skip to content

Commit

Permalink
Merge pull request #2442 from brave/override_ua
Browse files Browse the repository at this point in the history
Customize UA strings
  • Loading branch information
simonhong authored May 20, 2019
2 parents 7f958f8 + 32ad82c commit f5a2264
Show file tree
Hide file tree
Showing 25 changed files with 120 additions and 571 deletions.
1 change: 1 addition & 0 deletions browser/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ source_set("browser_process") {
"//components/unified_consent",
"//components/update_client:patch_impl",
"//components/update_client:unzip_impl",
"//components/version_info",
"//content/public/browser",
"//content/public/common",
"//extensions/buildflags",
Expand Down
11 changes: 11 additions & 0 deletions browser/brave_content_browser_client.cc
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include "brave/browser/renderer_host/brave_navigation_ui_data.h"
#include "brave/browser/tor/buildflags.h"
#include "brave/common/brave_cookie_blocking.h"
#include "brave/common/brave_switches.h"
#include "brave/common/tor/switches.h"
#include "brave/common/tor/tor_launcher.mojom.h"
#include "brave/common/webui_url_constants.h"
Expand All @@ -38,6 +39,7 @@
#include "chrome/common/url_constants.h"
#include "components/content_settings/core/browser/cookie_settings.h"
#include "components/services/heap_profiling/public/mojom/heap_profiling_client.mojom.h"
#include "components/version_info/version_info.h"
#include "content/browser/frame_host/render_frame_host_impl.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_task_traits.h"
Expand Down Expand Up @@ -347,3 +349,12 @@ GURL BraveContentBrowserClient::GetEffectiveURL(
return url;
#endif
}

std::string BraveContentBrowserClient::GetUserAgent() const {
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDisableOverrideUA))
return ChromeContentBrowserClient::GetUserAgent();

return ChromeContentBrowserClient::GetUserAgent() +
" Brave/" + version_info::GetMajorVersionNumber();
}
2 changes: 2 additions & 0 deletions browser/brave_content_browser_client.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ class BraveContentBrowserClient : public ChromeContentBrowserClient {
GURL GetEffectiveURL(content::BrowserContext* browser_context,
const GURL& url) override;

std::string GetUserAgent() const override;

private:
bool AllowAccessCookie(const GURL& url, const GURL& first_party,
content::ResourceContext* context, int render_process_id,
Expand Down
28 changes: 28 additions & 0 deletions browser/brave_content_browser_client_browsertest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include "base/strings/utf_string_conversions.h"
#include "brave/browser/brave_content_browser_client.h"
#include "brave/common/brave_paths.h"
#include "brave/common/brave_switches.h"
#include "brave/common/extensions/extension_constants.h"
#include "brave/common/pref_names.h"
#include "brave/components/brave_rewards/browser/buildflags/buildflags.h"
Expand All @@ -26,6 +27,7 @@
#include "chrome/test/base/ui_test_utils.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "components/prefs/pref_service.h"
#include "components/version_info/version_info.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/test_navigation_observer.h"
Expand Down Expand Up @@ -528,3 +530,29 @@ IN_PROC_BROWSER_TEST_F(BraveContentBrowserClientReferrerTest,
&referrer);
EXPECT_EQ(referrer.url, kDocumentUrl);
}

IN_PROC_BROWSER_TEST_F(BraveContentBrowserClientTest, OverrideUATest) {
const std::string appended_ua =
GetUserAgent() + " Brave/" + version_info::GetMajorVersionNumber();
content::EvalJsResult js_result =
EvalJs(browser()->tab_strip_model()->GetActiveWebContents(),
"navigator.userAgent");
EXPECT_EQ(js_result.ExtractString(), appended_ua);
}

class BraveContentBrowserClientWithoutUAOverride
: public BraveContentBrowserClientTest {
public:
void SetUpDefaultCommandLine(base::CommandLine* command_line) override {
BraveContentBrowserClientTest::SetUpDefaultCommandLine(command_line);
command_line->AppendSwitch(switches::kDisableOverrideUA);
}
};

IN_PROC_BROWSER_TEST_F(BraveContentBrowserClientWithoutUAOverride,
DisableOverrideUATest) {
content::EvalJsResult js_result =
EvalJs(browser()->tab_strip_model()->GetActiveWebContents(),
"navigator.userAgent");
EXPECT_EQ(js_result.ExtractString(), GetUserAgent());
}
12 changes: 0 additions & 12 deletions browser/net/BUILD.gn
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import("//brave/browser/tor/buildflags/buildflags.gni")
import("//brave/components/brave_referrals/buildflags/buildflags.gni")
import("//brave/components/brave_webtorrent/browser/buildflags/buildflags.gni")
import("//build/config/features.gni")

Expand Down Expand Up @@ -45,17 +44,6 @@ source_set("net") {
]
}

if (enable_brave_referrals) {
sources += [
"brave_referrals_network_delegate_helper.cc",
"brave_referrals_network_delegate_helper.h",
]

deps += [
"//brave/components/brave_referrals/browser",
]
}

if (enable_tor) {
sources += [
"brave_tor_network_delegate_helper.cc",
Expand Down
30 changes: 1 addition & 29 deletions browser/net/brave_network_delegate_base.cc
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ void RemoveTrackableSecurityHeadersForThirdParty(

BraveNetworkDelegateBase::BraveNetworkDelegateBase(
extensions::EventRouterForwarder* event_router)
: ChromeNetworkDelegate(event_router), referral_headers_list_(nullptr),
: ChromeNetworkDelegate(event_router),
allow_google_auth_(true) {
// Initialize the preference change registrar.
base::PostTaskWithTraits(
Expand All @@ -112,16 +112,6 @@ BraveNetworkDelegateBase::~BraveNetworkDelegateBase() {}

void BraveNetworkDelegateBase::InitPrefChangeRegistrarOnUI() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
PrefService* prefs = g_browser_process->local_state();
pref_change_registrar_.reset(new PrefChangeRegistrar());
pref_change_registrar_->Init(prefs);
pref_change_registrar_->Add(
kReferralHeaders,
base::Bind(&BraveNetworkDelegateBase::OnReferralHeadersChanged,
base::Unretained(this)));
// Retrieve current referral headers, if any.
OnReferralHeadersChanged();

PrefService* user_prefs = ProfileManager::GetActiveUserProfile()->GetPrefs();
user_pref_change_registrar_.reset(new PrefChangeRegistrar());
user_pref_change_registrar_->Init(user_prefs);
Expand All @@ -147,23 +137,6 @@ void BraveNetworkDelegateBase::InitPrefChangeRegistrarOnUI() {
allow_google_auth_ = user_prefs->GetBoolean(kGoogleLoginControlType);
}

void BraveNetworkDelegateBase::OnReferralHeadersChanged() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (const base::ListValue* referral_headers =
g_browser_process->local_state()->GetList(kReferralHeaders)) {
base::PostTaskWithTraits(
FROM_HERE, {BrowserThread::IO},
base::Bind(&BraveNetworkDelegateBase::SetReferralHeaders,
base::Unretained(this), referral_headers->DeepCopy()));
}
}

void BraveNetworkDelegateBase::SetReferralHeaders(
base::ListValue* referral_headers) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
referral_headers_list_.reset(referral_headers);
}

int BraveNetworkDelegateBase::OnBeforeURLRequest(
URLRequest* request,
net::CompletionOnceCallback callback,
Expand Down Expand Up @@ -193,7 +166,6 @@ int BraveNetworkDelegateBase::OnBeforeStartTransaction(
brave::BraveRequestInfo::FillCTXFromRequest(request, ctx);
ctx->event_type = brave::kOnBeforeStartTransaction;
ctx->headers = headers;
ctx->referral_headers_list = referral_headers_list_.get();
callbacks_[request->identifier()] = std::move(callback);
RunNextCallback(request, ctx);
return net::ERR_IO_PENDING;
Expand Down
10 changes: 0 additions & 10 deletions browser/net/brave_network_delegate_base.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,20 +87,10 @@ class BraveNetworkDelegateBase : public ChromeNetworkDelegate {

private:
void InitPrefChangeRegistrarOnUI();
void SetReferralHeaders(base::ListValue* referral_headers);
void OnReferralHeadersChanged();
void OnPreferenceChanged(const std::string& pref_name);
void UpdateAdBlockFromPref(const std::string& pref_name);

// TODO(iefremov): actually, we don't have to keep the list here, since
// it is global for the whole browser and could live a singletonce in the
// rewards service. Eliminating this will also help to avoid using
// PrefChangeRegistrar and corresponding |base::Unretained| usages, that are
// illegal.
std::unique_ptr<base::ListValue> referral_headers_list_;
std::map<uint64_t, net::CompletionOnceCallback> callbacks_;
std::unique_ptr<PrefChangeRegistrar, content::BrowserThread::DeleteOnUIThread>
pref_change_registrar_;
std::unique_ptr<PrefChangeRegistrar, content::BrowserThread::DeleteOnUIThread>
user_pref_change_registrar_;

Expand Down
11 changes: 0 additions & 11 deletions browser/net/brave_profile_network_delegate.cc
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,11 @@
#include "brave/browser/net/brave_translate_redirect_network_delegate_helper.h"
#include "brave/browser/tor/buildflags.h"
#include "brave/common/pref_names.h"
#include "brave/components/brave_referrals/buildflags/buildflags.h"
#include "brave/components/brave_rewards/browser/buildflags/buildflags.h"
#include "brave/components/brave_webtorrent/browser/buildflags/buildflags.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "components/prefs/pref_service.h"

#if BUILDFLAG(ENABLE_BRAVE_REFERRALS)
#include "brave/browser/net/brave_referrals_network_delegate_helper.h"
#endif

#if BUILDFLAG(BRAVE_REWARDS_ENABLED)
#include "brave/components/brave_rewards/browser/net/network_delegate_helper.h"
#endif
Expand Down Expand Up @@ -73,12 +68,6 @@ BraveProfileNetworkDelegate::BraveProfileNetworkDelegate(
base::Bind(brave::OnBeforeStartTransaction_SiteHacksWork);
before_start_transaction_callbacks_.push_back(start_transaction_callback);

#if BUILDFLAG(ENABLE_BRAVE_REFERRALS)
start_transaction_callback =
base::Bind(brave::OnBeforeStartTransaction_ReferralsWork);
before_start_transaction_callbacks_.push_back(start_transaction_callback);
#endif

#if BUILDFLAG(ENABLE_BRAVE_WEBTORRENT)
brave::OnHeadersReceivedCallback headers_received_callback =
base::Bind(
Expand Down
38 changes: 0 additions & 38 deletions browser/net/brave_referrals_network_delegate_helper.cc

This file was deleted.

27 changes: 0 additions & 27 deletions browser/net/brave_referrals_network_delegate_helper.h

This file was deleted.

Loading

0 comments on commit f5a2264

Please sign in to comment.