Skip to content

Commit

Permalink
Fix crash on empty URL adblock / TP checks
Browse files Browse the repository at this point in the history
  • Loading branch information
bbondy committed Oct 14, 2018
1 parent 441ea83 commit 74bde58
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
13 changes: 9 additions & 4 deletions browser/net/brave_ad_block_tp_network_delegate_helper.cc
Original file line number Diff line number Diff line change
Expand Up @@ -96,18 +96,19 @@ void OnBeforeURLRequest_AdBlockTPCheckWork(
GURL* new_url,
std::shared_ptr<BraveRequestInfo> ctx) {
// Proper content settings can't be looked up, so do nothing.
GURL url(request->url());
GURL tab_origin = request->site_for_cookies().GetOrigin();
if (tab_origin.is_empty() || !tab_origin.has_host()) {
if (tab_origin.is_empty() || !tab_origin.has_host() || url.is_empty()) {
return;
}
DCHECK(ctx->request_identifier != 0);
if (!g_brave_browser_process->tracking_protection_service()->
ShouldStartRequest(request->url(), ctx->resource_type, tab_origin.host())) {
ShouldStartRequest(url, ctx->resource_type, tab_origin.host())) {
ctx->new_url_spec = GetBlankDataURLForResourceType(ctx->resource_type).spec();
} else if (!g_brave_browser_process->ad_block_service()->ShouldStartRequest(
request->url(), ctx->resource_type, tab_origin.host()) ||
url, ctx->resource_type, tab_origin.host()) ||
!g_brave_browser_process->ad_block_regional_service()
->ShouldStartRequest(request->url(), ctx->resource_type,
->ShouldStartRequest(url, ctx->resource_type,
tab_origin.host())) {
ctx->new_url_spec = GetBlankDataURLForResourceType(ctx->resource_type).spec();
}
Expand Down Expand Up @@ -139,6 +140,10 @@ int OnBeforeURLRequest_AdBlockTPWork(
const GURL& url = request->url();
GURL tab_origin = request->site_for_cookies().GetOrigin();

if (request->url().is_empty()) {
return net::OK;
}

// Get global shields, adblock, and TP settings for the tab_origin
bool allow_brave_shields = brave_shields::IsAllowContentSettingFromIO(
request, tab_origin, tab_origin, CONTENT_SETTINGS_TYPE_PLUGINS,
Expand Down
17 changes: 17 additions & 0 deletions browser/net/brave_ad_block_tp_network_delegate_helper_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,23 @@ TEST_F(BraveAdBlockTPNetworkDelegateHelperTest, NoChangeURL) {
EXPECT_EQ(ret, net::OK);
}

TEST_F(BraveAdBlockTPNetworkDelegateHelperTest, EmptyRequestURL) {
net::TestDelegate test_delegate;
std::unique_ptr<net::URLRequest> request =
context()->CreateRequest(GURL(), net::IDLE, &test_delegate,
TRAFFIC_ANNOTATION_FOR_TESTS);
std::shared_ptr<brave::BraveRequestInfo>
brave_request_info(new brave::BraveRequestInfo());
brave::ResponseCallback callback;
GURL new_url;
int ret =
OnBeforeURLRequest_AdBlockTPWork(request.get(), &new_url, callback,
brave_request_info);
EXPECT_TRUE(new_url.is_empty());
EXPECT_EQ(ret, net::OK);
}


TEST_F(BraveAdBlockTPNetworkDelegateHelperTest, RedirectsToEmptyDataURLs) {
std::vector<GURL> urls({
GURL("https://sp1.nypost.com"),
Expand Down

0 comments on commit 74bde58

Please sign in to comment.