Skip to content
Permalink
Browse files Browse the repository at this point in the history
Merge pull request #7769 from brave/tor-dns-leak
Fix Tor dns leak
  • Loading branch information
darkdh committed Feb 4, 2021
2 parents 57f96ea + a148c43 commit 12fe321
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 13 deletions.
6 changes: 2 additions & 4 deletions browser/net/BUILD.gn
Expand Up @@ -54,11 +54,11 @@ source_set("net") {
"//brave/components/brave_webtorrent/browser/buildflags",
"//brave/components/ipfs/buildflags",
"//brave/extensions:common",
"//components/content_settings/core/browser",
"//components/prefs",
"//components/user_prefs",
"//content/public/browser",
"//content/public/common",
"//components/content_settings/core/browser",
"//extensions/common:common_constants",
"//mojo/public/cpp/bindings",
"//mojo/public/cpp/system",
Expand Down Expand Up @@ -88,9 +88,7 @@ source_set("net") {
"brave_referrals_network_delegate_helper.h",
]

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

if (enable_brave_webtorrent) {
Expand Down
25 changes: 16 additions & 9 deletions browser/net/brave_ad_block_tp_network_delegate_helper.cc
Expand Up @@ -65,26 +65,24 @@ void ShouldBlockAdOnTaskRunner(std::shared_ptr<BraveRequestInfo> ctx,
std::string source_host = ctx->initiator_url.host();

g_brave_browser_process->ad_block_service()->ShouldStartRequest(
ctx->request_url, ctx->resource_type, source_host,
&did_match_rule, &did_match_exception, &did_match_important,
&ctx->mock_data_url);
ctx->request_url, ctx->resource_type, source_host, &did_match_rule,
&did_match_exception, &did_match_important, &ctx->mock_data_url);
if (did_match_important) {
ctx->blocked_by = kAdBlocked;
return;
}

if (canonical_name.has_value() && ctx->request_url.host() != *canonical_name
&& *canonical_name != "") {
if (canonical_name.has_value() &&
ctx->request_url.host() != *canonical_name && *canonical_name != "") {
GURL::Replacements replacements = GURL::Replacements();
replacements.SetHost(
canonical_name->c_str(),
url::Component(0, static_cast<int>(canonical_name->length())));
const GURL canonical_url = ctx->request_url.ReplaceComponents(replacements);

g_brave_browser_process->ad_block_service()->ShouldStartRequest(
ctx->request_url, ctx->resource_type, source_host,
&did_match_rule, &did_match_exception, &did_match_important,
&ctx->mock_data_url);
ctx->request_url, ctx->resource_type, source_host, &did_match_rule,
&did_match_exception, &did_match_important, &ctx->mock_data_url);
}

if (did_match_important || (did_match_rule && !did_match_exception)) {
Expand Down Expand Up @@ -206,7 +204,16 @@ void OnBeforeURLRequestAdBlockTP(const ResponseCallback& next_callback,
scoped_refptr<base::SequencedTaskRunner> task_runner =
g_brave_browser_process->ad_block_service()->GetTaskRunner();

new AdblockCnameResolveHostClient(std::move(next_callback), task_runner, ctx);
DCHECK(ctx->browser_context);
// DoH or standard DNS quries won't be routed through Tor, so we need to skip
// it.
if (ctx->browser_context->IsTor()) {
ShouldBlockAdWithOptionalCname(task_runner, std::move(next_callback), ctx,
base::nullopt);
} else {
new AdblockCnameResolveHostClient(std::move(next_callback), task_runner,
ctx);
}
}

int OnBeforeURLRequest_AdBlockTPPreWork(const ResponseCallback& next_callback,
Expand Down

0 comments on commit 12fe321

Please sign in to comment.