Commit 47f5d328 authored by Mustafa Emre Acer's avatar Mustafa Emre Acer Committed by Commit Bot

Lookalikes: Add a console message pointing to the appeals bug template

Bug: 1119460
Change-Id: I43a2b33c5977e187d4d17e3bc666431d51d1eae4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2364759
Auto-Submit: Mustafa Emre Acer <meacer@chromium.org>
Reviewed-by: default avatarLivvie Lin <livvielin@chromium.org>
Reviewed-by: default avatarJoe DeBlasio <jdeblasio@chromium.org>
Commit-Queue: Livvie Lin <livvielin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#800232}
parent cbb0256b
...@@ -56,7 +56,8 @@ void LookalikeUrlBlockingPage::PopulateInterstitialStrings( ...@@ -56,7 +56,8 @@ void LookalikeUrlBlockingPage::PopulateInterstitialStrings(
base::DictionaryValue* load_time_data) { base::DictionaryValue* load_time_data) {
CHECK(load_time_data); CHECK(load_time_data);
PopulateLookalikeUrlBlockingPageStrings(load_time_data, safe_url_); PopulateLookalikeUrlBlockingPageStrings(load_time_data, safe_url_,
request_url());
} }
void LookalikeUrlBlockingPage::OnInterstitialClosing() { void LookalikeUrlBlockingPage::OnInterstitialClosing() {
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
// found in the LICENSE file. // found in the LICENSE file.
#include "base/bind.h" #include "base/bind.h"
#include "base/strings/pattern.h"
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "base/test/metrics/histogram_tester.h" #include "base/test/metrics/histogram_tester.h"
...@@ -55,6 +56,9 @@ const char kInterstitialDecisionMetric[] = "interstitial.lookalike.decision"; ...@@ -55,6 +56,9 @@ const char kInterstitialDecisionMetric[] = "interstitial.lookalike.decision";
const char kInterstitialInteractionMetric[] = const char kInterstitialInteractionMetric[] =
"interstitial.lookalike.interaction"; "interstitial.lookalike.interaction";
const char kConsoleMessage[] =
"Chrome has determined that * could be fake or fraudulent*";
static std::unique_ptr<net::test_server::HttpResponse> static std::unique_ptr<net::test_server::HttpResponse>
NetworkErrorResponseHandler(const net::test_server::HttpRequest& request) { NetworkErrorResponseHandler(const net::test_server::HttpRequest& request) {
return std::unique_ptr<net::test_server::HttpResponse>( return std::unique_ptr<net::test_server::HttpResponse>(
...@@ -92,23 +96,21 @@ bool IsUrlShowing(Browser* browser) { ...@@ -92,23 +96,21 @@ bool IsUrlShowing(Browser* browser) {
return !browser->location_bar_model()->GetFormattedFullURL().empty(); return !browser->location_bar_model()->GetFormattedFullURL().empty();
} }
// Navigate to |url| and wait for the load to complete before returning.
// Simulates a link click navigation. We don't use // Simulates a link click navigation. We don't use
// ui_test_utils::NavigateToURL(const GURL&) because it simulates the user // ui_test_utils::NavigateToURL(const GURL&) because it simulates the user
// typing the URL, causing the site to have a site engagement score of at // typing the URL, causing the site to have a site engagement score of at
// least LOW. // least LOW.
void NavigateToURL(Browser* browser, const GURL& url) { void NavigateToURLSync(Browser* browser, const GURL& url) {
content::TestNavigationObserver navigation_observer(
browser->tab_strip_model()->GetActiveWebContents(), 1);
NavigateParams params(browser, url, ui::PAGE_TRANSITION_LINK); NavigateParams params(browser, url, ui::PAGE_TRANSITION_LINK);
params.initiator_origin = url::Origin::Create(GURL("about:blank")); params.initiator_origin = url::Origin::Create(GURL("about:blank"));
params.disposition = WindowOpenDisposition::CURRENT_TAB; params.disposition = WindowOpenDisposition::CURRENT_TAB;
params.is_renderer_initiated = true; params.is_renderer_initiated = true;
ui_test_utils::NavigateToURL(&params); ui_test_utils::NavigateToURL(&params);
}
// Same as NavigateToUrl, but wait for the load to complete before returning.
void NavigateToURLSync(Browser* browser, const GURL& url) {
content::TestNavigationObserver navigation_observer(
browser->tab_strip_model()->GetActiveWebContents(), 1);
NavigateToURL(browser, url);
navigation_observer.Wait(); navigation_observer.Wait();
} }
...@@ -116,6 +118,8 @@ void NavigateToURLSync(Browser* browser, const GURL& url) { ...@@ -116,6 +118,8 @@ void NavigateToURLSync(Browser* browser, const GURL& url) {
void LoadAndCheckInterstitialAt(Browser* browser, const GURL& url) { void LoadAndCheckInterstitialAt(Browser* browser, const GURL& url) {
content::WebContents* web_contents = content::WebContents* web_contents =
browser->tab_strip_model()->GetActiveWebContents(); browser->tab_strip_model()->GetActiveWebContents();
content::WebContentsConsoleObserver console_observer(web_contents);
console_observer.SetPattern(kConsoleMessage);
EXPECT_EQ(nullptr, GetCurrentInterstitial(web_contents)); EXPECT_EQ(nullptr, GetCurrentInterstitial(web_contents));
...@@ -123,6 +127,10 @@ void LoadAndCheckInterstitialAt(Browser* browser, const GURL& url) { ...@@ -123,6 +127,10 @@ void LoadAndCheckInterstitialAt(Browser* browser, const GURL& url) {
EXPECT_EQ(LookalikeUrlBlockingPage::kTypeForTesting, EXPECT_EQ(LookalikeUrlBlockingPage::kTypeForTesting,
GetInterstitialType(web_contents)); GetInterstitialType(web_contents));
EXPECT_FALSE(IsUrlShowing(browser)); EXPECT_FALSE(IsUrlShowing(browser));
console_observer.Wait();
EXPECT_TRUE(
base::MatchPattern(console_observer.GetMessageAt(0u), kConsoleMessage));
} }
void SendInterstitialCommand(content::WebContents* web_contents, void SendInterstitialCommand(content::WebContents* web_contents,
......
...@@ -39,7 +39,8 @@ void ReportUkmForLookalikeUrlBlockingPageIfNeeded( ...@@ -39,7 +39,8 @@ void ReportUkmForLookalikeUrlBlockingPageIfNeeded(
void PopulateLookalikeUrlBlockingPageStrings( void PopulateLookalikeUrlBlockingPageStrings(
base::DictionaryValue* load_time_data, base::DictionaryValue* load_time_data,
const GURL& safe_url) { const GURL& safe_url,
const GURL& request_url) {
CHECK(load_time_data); CHECK(load_time_data);
PopulateStringsForSharedHTML(load_time_data); PopulateStringsForSharedHTML(load_time_data);
...@@ -94,6 +95,7 @@ void PopulateLookalikeUrlBlockingPageStrings( ...@@ -94,6 +95,7 @@ void PopulateLookalikeUrlBlockingPageStrings(
} }
#endif #endif
} }
load_time_data->SetString("lookalikeRequestHostname", request_url.host());
} }
void PopulateStringsForSharedHTML(base::DictionaryValue* load_time_data) { void PopulateStringsForSharedHTML(base::DictionaryValue* load_time_data) {
......
...@@ -27,7 +27,8 @@ void ReportUkmForLookalikeUrlBlockingPageIfNeeded( ...@@ -27,7 +27,8 @@ void ReportUkmForLookalikeUrlBlockingPageIfNeeded(
// Populates |load_time_data| for interstitial HTML. // Populates |load_time_data| for interstitial HTML.
void PopulateLookalikeUrlBlockingPageStrings( void PopulateLookalikeUrlBlockingPageStrings(
base::DictionaryValue* load_time_data, base::DictionaryValue* load_time_data,
const GURL& safe_url); const GURL& safe_url,
const GURL& request_url);
// Values added to get shared interstitial HTML to play nice. // Values added to get shared interstitial HTML to play nice.
void PopulateStringsForSharedHTML(base::DictionaryValue* load_time_data); void PopulateStringsForSharedHTML(base::DictionaryValue* load_time_data);
......
...@@ -228,6 +228,16 @@ function setupEvents() { ...@@ -228,6 +228,16 @@ function setupEvents() {
}); });
} }
if (lookalike) {
console.log(
'Chrome has determined that ' +
loadTimeData.getString('lookalikeRequestHostname') +
' could be fake or fraudulent.\n\n' +
'If you believe this is shown in error please visit ' +
'https://bugs.chromium.org/p/chromium/issues/entry?' +
'template=Safety+Tips+Appeals');
}
preventDefaultOnPoundLinkClicks(); preventDefaultOnPoundLinkClicks();
setupExtendedReportingCheckbox(); setupExtendedReportingCheckbox();
setupSSLDebuggingInfo(); setupSSLDebuggingInfo();
......
...@@ -66,7 +66,8 @@ void LookalikeUrlBlockingPage::PopulateInterstitialStrings( ...@@ -66,7 +66,8 @@ void LookalikeUrlBlockingPage::PopulateInterstitialStrings(
load_time_data->SetBoolean("cant_go_back", true); load_time_data->SetBoolean("cant_go_back", true);
} }
PopulateLookalikeUrlBlockingPageStrings(load_time_data, safe_url_); PopulateLookalikeUrlBlockingPageStrings(load_time_data, safe_url_,
request_url());
} }
void LookalikeUrlBlockingPage::HandleScriptCommand( void LookalikeUrlBlockingPage::HandleScriptCommand(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment