Commit e28c88c5 authored by Alan Cutter's avatar Alan Cutter Committed by Commit Bot

Weaken DCHECK in ThemeService::UsingAutogeneratedTheme()

ThemeService::UsingAutogeneratedTheme() was DCHECKing that the
ThemeSupplier being autogenerated was 1:1 with having an autogenerated
color pref.

This is not the case for PWA windows which disables user themes.

Bug: 1035187
Change-Id: Ide044833a9863e937645946b59cf221b0c4ab2e6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1974715
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#726291}
parent 00d9071c
......@@ -461,8 +461,11 @@ bool ThemeService::UsingAutogeneratedTheme() const {
bool autogenerated =
get_theme_supplier() && get_theme_supplier()->get_theme_type() ==
CustomThemeSupplier::ThemeType::AUTOGENERATED;
DCHECK_EQ(autogenerated,
profile_->GetPrefs()->HasPrefPath(prefs::kAutogeneratedThemeColor));
// This isn't an equality check because we may access default colors via
// GetDefaultThemeProviderForProfile().
DCHECK(!autogenerated ||
profile_->GetPrefs()->HasPrefPath(prefs::kAutogeneratedThemeColor));
return autogenerated;
}
......
......@@ -4,6 +4,8 @@
#include "base/strings/string_number_conversions.h"
#include "base/test/metrics/histogram_tester.h"
#include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/themes/theme_service_factory.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/web_applications/app_browser_controller.h"
#include "chrome/browser/ui/web_applications/web_app_controller_browsertest.h"
......@@ -61,6 +63,19 @@ IN_PROC_BROWSER_TEST_P(WebAppBrowserTest, ThemeColor) {
}
}
// This tests that we don't crash when launching a PWA window with an
// autogenerated user theme set.
IN_PROC_BROWSER_TEST_P(WebAppBrowserTest, AutoGeneratedUserThemeCrash) {
ThemeServiceFactory::GetForProfile(browser()->profile())
->BuildAutogeneratedThemeFromColor(SK_ColorBLUE);
auto web_app_info = std::make_unique<WebApplicationInfo>();
web_app_info->app_url = GURL(kExampleURL);
AppId app_id = InstallWebApp(std::move(web_app_info));
LaunchWebAppBrowser(app_id);
}
// Flaky. http://crbug.com/1034029
IN_PROC_BROWSER_TEST_P(WebAppBrowserTest, DISABLED_HasMinimalUiButtons) {
int index = 0;
......
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