Commit afd6d11e authored by Hector Carmona's avatar Hector Carmona Committed by Commit Bot

Navi: Delete entry point for showing chrome://welcome-win10

Bug: 956680
Change-Id: I1cee8ba11e6ce7481066b4602a78c6469580bf35
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1657356
Commit-Queue: Hector Carmona <hcarmona@chromium.org>
Reviewed-by: default avatarGreg Thompson <grt@chromium.org>
Reviewed-by: default avatarEsmael El-Moslimany <aee@chromium.org>
Reviewed-by: default avatarTommy Martino <tmartino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#671792}
parent 5024350f
......@@ -449,10 +449,8 @@ bool ShouldShowWelcomePage() {
}
bool IsOnWelcomePage(content::WebContents* contents) {
const GURL welcome_page(chrome::kChromeUIWelcomeURL);
const GURL welcome_page_win10(chrome::kChromeUIWelcomeWin10URL);
const GURL current = contents->GetURL().GetWithEmptyPath();
return current == welcome_page || current == welcome_page_win10;
return contents->GetURL().GetWithEmptyPath() ==
GURL(chrome::kChromeUIWelcomeURL);
}
void SetShouldDoPersonalDataManagerFirstRun() {
......
......@@ -33,6 +33,7 @@ class StartupBrowserCreator {
#if defined(OS_WIN)
// chrome://welcome-win10/ if Chrome's default browser UX may be shown;
// otherwise, see kWelcomeStandard.
// TODO(hcarmona): deprecate this enum.
kWelcomeWin10,
#endif
// chrome://welcome/ if sign-in is allowed; otherwise, none.
......
......@@ -132,6 +132,7 @@ void DisableWelcomePages(const std::vector<Profile*>& profiles) {
profile->GetPrefs()->SetBoolean(prefs::kHasSeenWelcomePage, true);
#if defined(OS_WIN)
// TODO(hcarmona): deprecate this pref.
g_browser_process->local_state()->SetBoolean(prefs::kHasSeenWin10PromoPage,
true);
#endif
......@@ -1263,23 +1264,6 @@ IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorFirstRunTest, WelcomePages) {
TabStripModel* tab_strip = browser->tab_strip_model();
// Windows 10 has its own Welcome page; the standard Welcome page does not
// appear until second run. However, if NuxOnboarding is enabled, the
// standard welcome URL should still be used.
bool is_navi_enabled = false;
#if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
is_navi_enabled = nux::IsNuxOnboardingEnabled(profile1_ptr);
#endif
if (IsWindows10OrNewer() && !is_navi_enabled) {
ASSERT_EQ(1, tab_strip->count());
EXPECT_EQ(chrome::kChromeUIWelcomeWin10URL,
tab_strip->GetWebContentsAt(0)->GetURL().possibly_invalid_spec());
browser = CloseBrowserAndOpenNew(browser, profile1_ptr);
ASSERT_TRUE(browser);
tab_strip = browser->tab_strip_model();
}
// Ensure that the standard Welcome page appears on second run on Win 10, and
// on first run on all other platforms.
ASSERT_EQ(1, tab_strip->count());
......@@ -1434,8 +1418,8 @@ IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorWelcomeBackTest,
WelcomeBackWin10NoPolicy) {
ASSERT_NO_FATAL_FAILURE(StartBrowser(
StartupBrowserCreator::WelcomeBackPage::kWelcomeWin10, PolicyVariant()));
ExpectUrlInBrowserAtPosition(
StartupTabProviderImpl::GetWin10WelcomePageUrl(false), 0);
ExpectUrlInBrowserAtPosition(StartupTabProviderImpl::GetWelcomePageUrl(false),
0);
}
IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorWelcomeBackTest,
......
......@@ -34,19 +34,6 @@
namespace {
#if defined(OS_WIN)
// Returns false if the in-product default browser UX is suppressed by install
// mode (e.g., Chrome Canary) or by policy.
bool SetDefaultBrowserAllowed(PrefService* local_state) {
if (!shell_integration::CanSetAsDefaultBrowser())
return false;
return !local_state ||
!local_state->IsManagedPreference(
prefs::kDefaultBrowserSettingEnabled) ||
local_state->GetBoolean(prefs::kDefaultBrowserSettingEnabled);
}
#endif // defined(OS_WIN)
// Attempts to find an existing, non-empty tabbed browser for this profile.
bool ProfileHasOtherTabbedBrowser(Profile* profile) {
BrowserList* browser_list = BrowserList::GetInstance();
......@@ -80,33 +67,6 @@ StartupTabs StartupTabProviderImpl::GetOnboardingTabs(Profile* profile) const {
standard_params.is_supervised_user = profile->IsSupervised();
standard_params.is_force_signin_enabled = signin_util::IsForceSigninEnabled();
#if defined(OS_WIN)
// Windows 10 has unique onboarding policies and content. However, if
// NuxOnboarding is enabled, the standard welcome URL should still
// be used.
bool is_navi_enabled = false;
#if defined(GOOGLE_CHROME_BUILD)
is_navi_enabled = nux::IsNuxOnboardingEnabled(profile);
#endif
if (base::win::GetVersion() >= base::win::Version::WIN10 &&
!is_navi_enabled) {
Win10OnboardingTabsParams win10_params;
PrefService* local_state = g_browser_process->local_state();
const shell_integration::DefaultWebClientState web_client_state =
g_browser_process->CachedDefaultWebClientState();
win10_params.has_seen_win10_promo =
local_state && local_state->GetBoolean(prefs::kHasSeenWin10PromoPage);
win10_params.set_default_browser_allowed =
SetDefaultBrowserAllowed(local_state);
// Do not welcome if this Chrome or another side-by-side install was the
// default browser at startup.
win10_params.is_default_browser =
web_client_state == shell_integration::IS_DEFAULT ||
web_client_state == shell_integration::OTHER_MODE_IS_DEFAULT;
return GetWin10OnboardingTabsForState(standard_params, win10_params);
}
#endif // defined(OS_WIN)
return GetStandardOnboardingTabsForState(standard_params);
#endif // defined(OS_CHROMEOS)
}
......@@ -123,12 +83,7 @@ StartupTabs StartupTabProviderImpl::GetWelcomeBackTabs(
break;
#if defined(OS_WIN)
case StartupBrowserCreator::WelcomeBackPage::kWelcomeWin10:
if (CanShowWin10Welcome(
SetDefaultBrowserAllowed(g_browser_process->local_state()),
profile->IsSupervised())) {
tabs.emplace_back(GetWin10WelcomePageUrl(false), false);
break;
}
// TODO(hcarmona): delete kWelcomeWin10.
FALLTHROUGH;
#endif // defined(OS_WIN)
case StartupBrowserCreator::WelcomeBackPage::kWelcomeStandard:
......@@ -216,37 +171,6 @@ StartupTabs StartupTabProviderImpl::GetStandardOnboardingTabsForState(
return tabs;
}
#if defined(OS_WIN)
// static
bool StartupTabProviderImpl::CanShowWin10Welcome(
bool set_default_browser_allowed,
bool is_supervised_user) {
return set_default_browser_allowed && !is_supervised_user;
}
// static
bool StartupTabProviderImpl::ShouldShowWin10WelcomeForOnboarding(
bool has_seen_win10_promo,
bool is_default_browser) {
return !has_seen_win10_promo && !is_default_browser;
}
// static
StartupTabs StartupTabProviderImpl::GetWin10OnboardingTabsForState(
const StandardOnboardingTabsParams& standard_params,
const Win10OnboardingTabsParams& win10_params) {
if (CanShowWin10Welcome(win10_params.set_default_browser_allowed,
standard_params.is_supervised_user) &&
ShouldShowWin10WelcomeForOnboarding(win10_params.has_seen_win10_promo,
win10_params.is_default_browser)) {
return {StartupTab(GetWin10WelcomePageUrl(!standard_params.is_first_run),
false)};
}
return GetStandardOnboardingTabsForState(standard_params);
}
#endif // defined(OS_WIN)
// static
StartupTabs StartupTabProviderImpl::GetMasterPrefsTabsForState(
bool is_first_run,
......@@ -319,7 +243,7 @@ StartupTabs StartupTabProviderImpl::GetPostCrashTabsForState(
#if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
if (has_incompatible_applications)
tabs.emplace_back(GetIncompatibleApplicationsUrl(), false);
#endif
#endif // defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
return tabs;
}
......@@ -331,27 +255,14 @@ GURL StartupTabProviderImpl::GetWelcomePageUrl(bool use_later_run_variant) {
: url;
}
#if defined(OS_WIN)
// static
GURL StartupTabProviderImpl::GetWin10WelcomePageUrl(
bool use_later_run_variant) {
// Record that the Welcome page was added to the startup url list.
UMA_HISTOGRAM_BOOLEAN("Welcome.Win10.NewPromoPageAdded", true);
GURL url(chrome::kChromeUIWelcomeWin10URL);
return use_later_run_variant
? net::AppendQueryParameter(url, "text", "faster")
: url;
}
#if defined(GOOGLE_CHROME_BUILD)
#if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
// static
GURL StartupTabProviderImpl::GetIncompatibleApplicationsUrl() {
UMA_HISTOGRAM_BOOLEAN("IncompatibleApplicationsPage.AddedPostCrash", true);
GURL url(chrome::kChromeUISettingsURL);
return url.Resolve("incompatibleApplications");
}
#endif // defined(GOOGLE_CHROME_BUILD)
#endif // defined(OS_WIN)
#endif // defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
// static
GURL StartupTabProviderImpl::GetTriggeredResetSettingsUrl() {
......
......@@ -73,12 +73,6 @@ class StartupTabProviderImpl : public StartupTabProvider {
bool is_force_signin_enabled = false;
};
struct Win10OnboardingTabsParams {
bool has_seen_win10_promo = false;
bool set_default_browser_allowed = false;
bool is_default_browser = false;
};
StartupTabProviderImpl() = default;
// The static helper methods below implement the policies relevant to the
......@@ -101,23 +95,6 @@ class StartupTabProviderImpl : public StartupTabProvider {
static StartupTabs GetStandardOnboardingTabsForState(
const StandardOnboardingTabsParams& params);
#if defined(OS_WIN)
// returns true if showing the Windows 10 welcome page is permissible.
static bool CanShowWin10Welcome(bool set_default_browser_allowed,
bool is_supervised_user);
// Returns true if the Windows 10 welcome page should be shown in a tab. This
// should only be used following a positive result from CanShowWin10Welcome.
static bool ShouldShowWin10WelcomeForOnboarding(bool has_seen_win10_promo,
bool is_default_browser);
// Determines which tabs should be shown according to onboarding/first run
// policy, including promo content specific to Windows 10.
static StartupTabs GetWin10OnboardingTabsForState(
const StandardOnboardingTabsParams& standard_params,
const Win10OnboardingTabsParams& win10_params);
#endif // defined(OS_WIN)
// Processes first run URLs specified in Master Preferences file, replacing
// any "magic word" URL hosts with appropriate URLs.
static StartupTabs GetMasterPrefsTabsForState(
......@@ -158,18 +135,11 @@ class StartupTabProviderImpl : public StartupTabProvider {
// additional profile).
static GURL GetWelcomePageUrl(bool use_later_run_variant);
#if defined(OS_WIN)
// Gets the URL for the Windows 10 Welcome page. If |use_later_run_variant| is
// true, a URL parameter will be appended so as to access the variant page
// used when onboarding occurs after the first Chrome execution.
static GURL GetWin10WelcomePageUrl(bool use_later_run_variant);
#if defined(GOOGLE_CHROME_BUILD)
#if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
// Gets the URL for the Incompatible Applications subpage of the Chrome
// settings.
static GURL GetIncompatibleApplicationsUrl();
#endif // defined(GOOGLE_CHROME_BUILD)
#endif // defined(OS_WIN)
#endif // defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
// Gets the URL for the page which offers to reset the user's profile
// settings.
......
......@@ -12,17 +12,8 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
#if defined(OS_WIN)
#include "base/win/windows_version.h"
#if defined(GOOGLE_CHROME_BUILD)
#include "chrome/browser/ui/webui/welcome/nux/constants.h"
#endif // defined(GOOGLE_CHROME_BUILD)
#endif // defined(OS_WIN)
using StandardOnboardingTabsParams =
StartupTabProviderImpl::StandardOnboardingTabsParams;
using Win10OnboardingTabsParams =
StartupTabProviderImpl::Win10OnboardingTabsParams;
TEST(StartupTabProviderTest, GetStandardOnboardingTabsForState) {
{
......@@ -103,208 +94,6 @@ TEST(StartupTabProviderTest, GetStandardOnboardingTabsForState_Negative) {
}
}
#if defined(OS_WIN)
TEST(StartupTabProviderTest, GetWin10OnboardingTabsForState) {
{
// Show Win 10 Welcome page if it has not been seen, but the standard page
// has.
StandardOnboardingTabsParams standard_params;
standard_params.is_first_run = true;
standard_params.has_seen_welcome_page = true;
standard_params.is_signin_allowed = true;
Win10OnboardingTabsParams win10_params;
win10_params.set_default_browser_allowed = true;
StartupTabs output = StartupTabProviderImpl::GetWin10OnboardingTabsForState(
standard_params, win10_params);
ASSERT_EQ(1U, output.size());
EXPECT_EQ(StartupTabProviderImpl::GetWin10WelcomePageUrl(false),
output[0].url);
EXPECT_FALSE(output[0].is_pinned);
}
{
// Show standard Welcome page if the Win 10 Welcome page has been seen, but
// the standard page has not.
StandardOnboardingTabsParams standard_params;
standard_params.is_first_run = true;
standard_params.is_signin_allowed = true;
Win10OnboardingTabsParams win10_params;
win10_params.has_seen_win10_promo = true;
win10_params.set_default_browser_allowed = true;
StartupTabs output = StartupTabProviderImpl::GetWin10OnboardingTabsForState(
standard_params, win10_params);
ASSERT_EQ(1U, output.size());
EXPECT_EQ(StartupTabProviderImpl::GetWelcomePageUrl(false), output[0].url);
EXPECT_FALSE(output[0].is_pinned);
}
{
// If neither page has been seen, the Win 10 Welcome page takes precedence
// this launch.
StandardOnboardingTabsParams standard_params;
standard_params.is_first_run = true;
standard_params.is_signin_allowed = true;
Win10OnboardingTabsParams win10_params;
win10_params.set_default_browser_allowed = true;
StartupTabs output = StartupTabProviderImpl::GetWin10OnboardingTabsForState(
standard_params, win10_params);
ASSERT_EQ(1U, output.size());
EXPECT_EQ(StartupTabProviderImpl::GetWin10WelcomePageUrl(false),
output[0].url);
EXPECT_FALSE(output[0].is_pinned);
}
}
TEST(StartupTabProviderTest, GetWin10OnboardingTabsForState_LaterRunVariant) {
StandardOnboardingTabsParams standard_params;
standard_params.is_signin_allowed = true;
{
// Show a variant of the Win 10 Welcome page after first run, if it has not
// been seen.
Win10OnboardingTabsParams win10_params;
win10_params.set_default_browser_allowed = true;
StartupTabs output = StartupTabProviderImpl::GetWin10OnboardingTabsForState(
standard_params, win10_params);
ASSERT_EQ(1U, output.size());
EXPECT_EQ(StartupTabProviderImpl::GetWin10WelcomePageUrl(true),
output[0].url);
EXPECT_FALSE(output[0].is_pinned);
}
{
// Show a variant of the standard Welcome page after first run, if the Win
// 10 Welcome page has already been seen but the standard has not.
Win10OnboardingTabsParams win10_params;
win10_params.has_seen_win10_promo = true;
win10_params.set_default_browser_allowed = true;
StartupTabs output = StartupTabProviderImpl::GetWin10OnboardingTabsForState(
standard_params, win10_params);
ASSERT_EQ(1U, output.size());
EXPECT_EQ(StartupTabProviderImpl::GetWelcomePageUrl(true), output[0].url);
EXPECT_FALSE(output[0].is_pinned);
}
}
TEST(StartupTabProviderTest, GetWin10OnboardingTabsForState_Negative) {
{
// Do not show either page if it has already been shown.
StandardOnboardingTabsParams standard_params;
standard_params.is_first_run = true;
standard_params.has_seen_welcome_page = true;
standard_params.is_signin_allowed = true;
Win10OnboardingTabsParams win10_params;
win10_params.has_seen_win10_promo = true;
win10_params.set_default_browser_allowed = true;
StartupTabs output = StartupTabProviderImpl::GetWin10OnboardingTabsForState(
standard_params, win10_params);
EXPECT_TRUE(output.empty());
}
{
// Do not show either page to supervised users.
StandardOnboardingTabsParams standard_params;
standard_params.is_first_run = true;
standard_params.is_signin_allowed = true;
standard_params.is_supervised_user = true;
Win10OnboardingTabsParams win10_params;
win10_params.set_default_browser_allowed = true;
StartupTabs output = StartupTabProviderImpl::GetWin10OnboardingTabsForState(
standard_params, win10_params);
EXPECT_TRUE(output.empty());
}
{
// If Chrome is already the default browser, don't show the Win 10 Welcome
// page, and don't preempt the standard Welcome page.
StandardOnboardingTabsParams standard_params;
standard_params.is_first_run = true;
standard_params.is_signin_allowed = true;
Win10OnboardingTabsParams win10_params;
win10_params.set_default_browser_allowed = true;
win10_params.is_default_browser = true;
StartupTabs output = StartupTabProviderImpl::GetWin10OnboardingTabsForState(
standard_params, win10_params);
ASSERT_EQ(1U, output.size());
EXPECT_EQ(StartupTabProviderImpl::GetWelcomePageUrl(false), output[0].url);
EXPECT_FALSE(output[0].is_pinned);
}
{
// If the user is signed in, block showing the standard Welcome page.
StandardOnboardingTabsParams standard_params;
standard_params.is_first_run = true;
standard_params.is_signin_allowed = true;
standard_params.is_signed_in = true;
Win10OnboardingTabsParams win10_params;
win10_params.has_seen_win10_promo = true;
win10_params.set_default_browser_allowed = true;
StartupTabs output = StartupTabProviderImpl::GetWin10OnboardingTabsForState(
standard_params, win10_params);
EXPECT_TRUE(output.empty());
}
{
// If sign-in is disabled, block showing the standard Welcome page.
StandardOnboardingTabsParams standard_params;
standard_params.is_first_run = true;
Win10OnboardingTabsParams win10_params;
win10_params.has_seen_win10_promo = true;
win10_params.set_default_browser_allowed = true;
StartupTabs output = StartupTabProviderImpl::GetWin10OnboardingTabsForState(
standard_params, win10_params);
EXPECT_TRUE(output.empty());
}
}
TEST(StartupTabProviderTest,
GetWin10OnboardingTabsForState_SetDefaultBrowserNotAllowed) {
{
// Skip the Win 10 promo if setting the default browser is not allowed.
StandardOnboardingTabsParams standard_params;
standard_params.is_first_run = true;
standard_params.is_signin_allowed = true;
StartupTabs output = StartupTabProviderImpl::GetWin10OnboardingTabsForState(
standard_params, Win10OnboardingTabsParams());
ASSERT_EQ(1U, output.size());
EXPECT_EQ(StartupTabProviderImpl::GetWelcomePageUrl(false), output[0].url);
}
{
// After first run, no onboarding content is displayed when setting the
// default browser is not allowed.
StandardOnboardingTabsParams standard_params;
standard_params.is_first_run = true;
standard_params.has_seen_welcome_page = true;
standard_params.is_signin_allowed = true;
StartupTabs output = StartupTabProviderImpl::GetWin10OnboardingTabsForState(
standard_params, Win10OnboardingTabsParams());
EXPECT_TRUE(output.empty());
}
}
#endif // defined(OS_WIN)
TEST(StartupTabProviderTest, GetMasterPrefsTabsForState) {
std::vector<GURL> input = {GURL(base::ASCIIToUTF16("https://new_tab_page")),
GURL(base::ASCIIToUTF16("https://www.google.com")),
......@@ -454,15 +243,5 @@ TEST(StartupTabProviderTest, IncognitoProfile) {
TestingProfile profile;
Profile* incognito = profile.GetOffTheRecordProfile();
StartupTabs output = StartupTabProviderImpl().GetOnboardingTabs(incognito);
#if defined(OS_WIN)
if (base::win::GetVersion() >= base::win::Version::WIN10) {
ASSERT_EQ(1U, output.size());
EXPECT_EQ(StartupTabProviderImpl::GetWin10WelcomePageUrl(false),
output[0].url.GetOrigin());
} else {
EXPECT_TRUE(output.empty());
}
#else
EXPECT_TRUE(output.empty());
#endif
}
......@@ -203,7 +203,6 @@
#if defined(OS_WIN)
#include "chrome/browser/ui/webui/conflicts/conflicts_ui.h"
#include "chrome/browser/ui/webui/set_as_default_browser_ui_win.h"
#include "chrome/browser/ui/webui/welcome/welcome_win10_ui.h"
#endif
#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
......@@ -313,13 +312,6 @@ WebUIController* NewWebUI<WelcomeUI>(WebUI* web_ui, const GURL& url) {
}
#endif // !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
#if defined(OS_WIN)
template <>
WebUIController* NewWebUI<WelcomeWin10UI>(WebUI* web_ui, const GURL& url) {
return new WelcomeWin10UI(web_ui, url);
}
#endif // defined(OS_WIN)
bool IsAboutUI(const GURL& url) {
return (url.host_piece() == chrome::kChromeUIChromeURLsHost ||
url.host_piece() == chrome::kChromeUICreditsHost
......@@ -616,10 +608,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
if (url.host_piece() == chrome::kChromeUIWelcomeHost)
return &NewWebUI<WelcomeUI>;
#endif
#if defined(OS_WIN)
if (url.host_piece() == chrome::kChromeUIWelcomeWin10Host)
return &NewWebUI<WelcomeWin10UI>;
#endif // defined(OS_WIN)
/****************************************************************************
* Other #defines and special logics.
......
......@@ -166,8 +166,6 @@ const char kChromeUIVersionHost[] = "version";
const char kChromeUIVersionURL[] = "chrome://version/";
const char kChromeUIWelcomeHost[] = "welcome";
const char kChromeUIWelcomeURL[] = "chrome://welcome/";
const char kChromeUIWelcomeWin10Host[] = "welcome-win10";
const char kChromeUIWelcomeWin10URL[] = "chrome://welcome-win10/";
#if defined(OS_ANDROID)
const char kChromeUIExploreSitesInternalsHost[] = "explore-sites-internals";
......
......@@ -168,8 +168,6 @@ extern const char kChromeUIVersionHost[];
extern const char kChromeUIVersionURL[];
extern const char kChromeUIWelcomeHost[];
extern const char kChromeUIWelcomeURL[];
extern const char kChromeUIWelcomeWin10Host[];
extern const char kChromeUIWelcomeWin10URL[];
#if defined(OS_ANDROID)
extern const char kChromeUIExploreSitesInternalsHost[];
......
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