From: Your Name Date: Wed, 12 Oct 2022 16:03:16 +0000 Subject: WIN ADDTO Timezone customization --- chrome/app/settings_strings.grdp | 19 ++++++++++++++++ chrome/browser/resources/settings/icons.html | 2 ++ .../settings/privacy_page/privacy_page.html | 22 +++++++++++++++++++ chrome/browser/resources/settings/route.ts | 1 + chrome/browser/resources/settings/router.ts | 1 + .../site_settings/category_default_setting.ts | 1 + .../settings/site_settings/constants.ts | 1 + .../settings_category_default_radio_group.ts | 1 + .../settings/site_settings/site_details.html | 5 +++++ .../site_settings_page/site_settings_page.ts | 9 ++++++++ .../site_settings_page_util.ts | 2 ++ .../views/page_info/page_info_view_factory.cc | 3 +++ .../settings_localized_strings_provider.cc | 7 ++++++ .../ui/webui/settings/site_settings_helper.cc | 1 + .../core/browser/content_settings_registry.cc | 2 +- 15 files changed, 76 insertions(+), 1 deletion(-) diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp @@ -4259,6 +4259,25 @@ Not allowed to Javascript JIT + + Timezone override + + + Enable the Timezone override + + + System Timezone + + + Random Timezone + + + System Timezone override + + + Random Timezone override + + diff --git a/chrome/browser/resources/settings/icons.html b/chrome/browser/resources/settings/icons.html --- a/chrome/browser/resources/settings/icons.html +++ b/chrome/browser/resources/settings/icons.html @@ -193,6 +193,8 @@ NOTE: Chrome OS icons go in ./chromeos/os_icons.html. + + diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html @@ -1147,4 +1147,26 @@ + diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts @@ -116,6 +116,7 @@ function addPrivacyChildRoutes(r: Partial) { r.SITE_SETTINGS_LOCAL_FONTS = r.SITE_SETTINGS.createChild('localFonts'); r.SITE_SETTINGS_AUTOPLAY = r.SITE_SETTINGS.createChild('autoplay'); r.SITE_SETTINGS_JAVASCRIPT_JIT = r.SITE_SETTINGS.createChild('javascript-jit'); + r.SITE_SETTINGS_TIMEZONE_OVERRIDE = r.SITE_SETTINGS.createChild('timezone-override'); } /** diff --git a/chrome/browser/resources/settings/router.ts b/chrome/browser/resources/settings/router.ts --- a/chrome/browser/resources/settings/router.ts +++ b/chrome/browser/resources/settings/router.ts @@ -103,6 +103,7 @@ export interface SettingsRoutes { TRIGGERED_RESET_DIALOG: Route; SITE_SETTINGS_AUTOPLAY: Route; SITE_SETTINGS_JAVASCRIPT_JIT: Route; + SITE_SETTINGS_TIMEZONE_OVERRIDE: Route; } /** Class for navigable routes. */ diff --git a/chrome/browser/resources/settings/site_settings/category_default_setting.ts b/chrome/browser/resources/settings/site_settings/category_default_setting.ts --- a/chrome/browser/resources/settings/site_settings/category_default_setting.ts +++ b/chrome/browser/resources/settings/site_settings/category_default_setting.ts @@ -197,6 +197,7 @@ export class CategoryDefaultSettingElement extends case ContentSettingsTypes.SOUND: case ContentSettingsTypes.AUTOPLAY: case ContentSettingsTypes.JAVASCRIPT_JIT: + case ContentSettingsTypes.TIMEZONE_OVERRIDE: // "Allowed" vs "Blocked". this.browserProxy.setDefaultValueForContentType( this.category, diff --git a/chrome/browser/resources/settings/site_settings/constants.ts b/chrome/browser/resources/settings/site_settings/constants.ts --- a/chrome/browser/resources/settings/site_settings/constants.ts +++ b/chrome/browser/resources/settings/site_settings/constants.ts @@ -48,6 +48,7 @@ export enum ContentSettingsTypes { ZOOM_LEVELS = 'zoom-levels', AUTOPLAY = 'autoplay', JAVASCRIPT_JIT = 'javascript-jit', + TIMEZONE_OVERRIDE = 'timezone-override', // The following items are not in the C++ kContentSettingsTypeGroupNames, but // are used everywhere where ContentSettingsTypes is used in JS. diff --git a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts --- a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts +++ b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts @@ -141,6 +141,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends case ContentSettingsTypes.SOUND: case ContentSettingsTypes.AUTOPLAY: case ContentSettingsTypes.JAVASCRIPT_JIT: + case ContentSettingsTypes.TIMEZONE_OVERRIDE: // "Allowed" vs "Blocked". return ContentSetting.ALLOW; case ContentSettingsTypes.AR: diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html @@ -276,4 +276,9 @@ icon="settings:javascript-jit" label="$i18n{siteSettingsJavascriptJIT}"> + + diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts --- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts +++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts @@ -350,6 +350,14 @@ function getCategoryItemMap(): Map { enabledLabel: 'siteSettingsJavascriptJITAllowed', disabledLabel: 'siteSettingsJavascriptJITBlocked', }, + { + route: routes.SITE_SETTINGS_TIMEZONE_OVERRIDE, + id: Id.TIMEZONE_OVERRIDE, + label: 'siteSettingsTimezoneOverride', + icon: 'settings:timezone-override', + enabledLabel: 'siteSettingsTimezoneOverrideAllowed', + disabledLabel: 'siteSettingsTimezoneOverrideBlocked', + }, ]; categoryItemMap = new Map(categoryList.map(item => [item.id, item])); @@ -445,6 +453,7 @@ export class SettingsSiteSettingsPageElement extends Id.SITE_DATA, Id.AUTOPLAY, Id.JAVASCRIPT_JIT, + Id.TIMEZONE_OVERRIDE, ]), }; }, diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page_util.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page_util.ts --- a/chrome/browser/resources/settings/site_settings_page/site_settings_page_util.ts +++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page_util.ts @@ -81,6 +81,8 @@ export function getLocalizationStringForContentType( return 'siteSettingsAutoplayMidSentence'; case ContentSettingsTypes.JAVASCRIPT_JIT: return 'siteSettingsJavascriptJITMidSentence'; + case ContentSettingsTypes.TIMEZONE_OVERRIDE: + return 'siteSettingsTimezoneOverrideMidSentence'; // The following members do not have a mid-sentence localization. case ContentSettingsTypes.ANTI_ABUSE: case ContentSettingsTypes.PDF_DOCUMENTS: diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrome/browser/ui/views/page_info/page_info_view_factory.cc --- a/chrome/browser/ui/views/page_info/page_info_view_factory.cc +++ b/chrome/browser/ui/views/page_info/page_info_view_factory.cc @@ -344,6 +344,9 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( case ContentSettingsType::JAVASCRIPT_JIT: icon = &vector_icons::kCodeIcon; break; + case ContentSettingsType::TIMEZONE_OVERRIDE: + icon = &vector_icons::kAccountCircleIcon; + break; default: // All other |ContentSettingsType|s do not have icons on desktop or are // not shown in the Page Info bubble. diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc @@ -2434,6 +2434,13 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source, {"siteSettingsJavascriptJITAllowedExceptions",IDS_SETTINGS_SITE_SETTINGS_JAVASCRIPT_JIT_ALLOWED_EXCEPTIONS}, {"siteSettingsJavascriptJITBlockedExceptions", IDS_SETTINGS_SITE_SETTINGS_JAVASCRIPT_JIT_BLOCKED_EXCEPTIONS}, {"siteSettingsJavascriptJITMidSentence", IDS_SITE_SETTINGS_TYPE_JAVASCRIPT_JIT}, + {"siteSettingsTimezoneOverride", IDS_SITE_SETTINGS_TIMEZONE_OVERRIDE_TITLE}, + {"siteSettingsTimezoneOverrideDescription", IDS_SETTINGS_SITE_SETTINGS_TIMEZONE_OVERRIDE_DESCRIPTION}, + {"siteSettingsTimezoneOverrideAllowed", IDS_SETTINGS_SITE_SETTINGS_TIMEZONE_OVERRIDE_ALLOWED}, + {"siteSettingsTimezoneOverrideBlocked", IDS_SETTINGS_SITE_SETTINGS_TIMEZONE_OVERRIDE_BLOCKED}, + {"siteSettingsTimezoneOverrideAllowedExceptions",IDS_SETTINGS_SITE_SETTINGS_TIMEZONE_OVERRIDE_ALLOWED_EXCEPTIONS}, + {"siteSettingsTimezoneOverrideBlockedExceptions", IDS_SETTINGS_SITE_SETTINGS_TIMEZONE_OVERRIDE_BLOCKED_EXCEPTIONS}, + {"siteSettingsTimezoneOverrideMidSentence", IDS_SITE_SETTINGS_TIMEZONE_OVERRIDE_TITLE}, {"addSite", IDS_SETTINGS_ADD_SITE}, {"addSiteTitle", IDS_SETTINGS_ADD_SITE_TITLE}, #if BUILDFLAG(IS_CHROMEOS_ASH) diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc --- a/chrome/browser/ui/webui/settings/site_settings_helper.cc +++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc @@ -127,6 +127,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { {ContentSettingsType::ANTI_ABUSE, "anti-abuse"}, {ContentSettingsType::AUTOPLAY, "autoplay"}, {ContentSettingsType::JAVASCRIPT_JIT, "javascript-jit"}, + {ContentSettingsType::TIMEZONE_OVERRIDE, "timezone-override"}, // Add new content settings here if a corresponding Javascript string // representation for it is not required, for example if the content setting diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc @@ -570,7 +570,7 @@ void ContentSettingsRegistry::Init() { CONTENT_SETTING_ASK, // custom timezone, default UTC CONTENT_SETTING_BLOCK}, // random WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, - WebsiteSettingsRegistry::PLATFORM_ANDROID, + WebsiteSettingsRegistry::ALL_PLATFORMS, ContentSettingsInfo::INHERIT_IN_INCOGNITO, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS); -- 2.25.1