summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/resources/settings
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-05-03 13:42:47 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-05-15 10:27:51 +0000
commit8c5c43c7b138c9b4b0bf56d946e61d3bbc111bec (patch)
treed29d987c4d7b173cf853279b79a51598f104b403 /chromium/chrome/browser/resources/settings
parent830c9e163d31a9180fadca926b3e1d7dfffb5021 (diff)
BASELINE: Update Chromium to 66.0.3359.156
Change-Id: I0c9831ad39911a086b6377b16f995ad75a51e441 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'chromium/chrome/browser/resources/settings')
-rw-r--r--chromium/chrome/browser/resources/settings/PRESUBMIT.py24
-rw-r--r--chromium/chrome/browser/resources/settings/a11y_page/a11y_page.html2
-rw-r--r--chromium/chrome/browser/resources/settings/a11y_page/manage_a11y_page.html80
-rw-r--r--chromium/chrome/browser/resources/settings/a11y_page/manage_a11y_page.js33
-rw-r--r--chromium/chrome/browser/resources/settings/about_page/about_page.html25
-rw-r--r--chromium/chrome/browser/resources/settings/about_page/channel_switcher_dialog.html6
-rw-r--r--chromium/chrome/browser/resources/settings/about_page/detailed_build_info.html2
-rw-r--r--chromium/chrome/browser/resources/settings/about_page/update_warning_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/android_apps_page/android_apps_page.html4
-rw-r--r--chromium/chrome/browser/resources/settings/android_apps_page/android_apps_subpage.html6
-rw-r--r--chromium/chrome/browser/resources/settings/android_apps_page/android_settings_element.html2
-rw-r--r--chromium/chrome/browser/resources/settings/appearance_page/appearance_fonts_page.html2
-rw-r--r--chromium/chrome/browser/resources/settings/appearance_page/appearance_page.html12
-rw-r--r--chromium/chrome/browser/resources/settings/basic_page/basic_page.html4
-rw-r--r--chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_device_list_item.html7
-rw-r--r--chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.html6
-rw-r--r--chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_subpage.html8
-rw-r--r--chromium/chrome/browser/resources/settings/change_password_page/change_password_page.html2
-rw-r--r--chromium/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.html8
-rw-r--r--chromium/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js4
-rw-r--r--chromium/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.html22
-rw-r--r--chromium/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.js44
-rw-r--r--chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html334
-rw-r--r--chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.js156
-rw-r--r--chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.html311
-rw-r--r--chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.js367
-rw-r--r--chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/compiled_resources2.gyp1
-rw-r--r--chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/history_deletion_dialog.html2
-rw-r--r--chromium/chrome/browser/resources/settings/compiled_resources2.gyp2
-rw-r--r--chromium/chrome/browser/resources/settings/controls/controlled_button.html2
-rw-r--r--chromium/chrome/browser/resources/settings/controls/controlled_button.js2
-rw-r--r--chromium/chrome/browser/resources/settings/controls/controlled_radio_button.html23
-rw-r--r--chromium/chrome/browser/resources/settings/controls/controlled_radio_button.js9
-rw-r--r--chromium/chrome/browser/resources/settings/controls/extension_controlled_indicator.html4
-rw-r--r--chromium/chrome/browser/resources/settings/controls/important_site_checkbox.html4
-rw-r--r--chromium/chrome/browser/resources/settings/controls/settings_checkbox.html4
-rw-r--r--chromium/chrome/browser/resources/settings/controls/settings_checkbox.js2
-rw-r--r--chromium/chrome/browser/resources/settings/controls/settings_toggle_button.html5
-rw-r--r--chromium/chrome/browser/resources/settings/date_time_page/date_time_page.html4
-rw-r--r--chromium/chrome/browser/resources/settings/default_browser_page/default_browser_page.html2
-rw-r--r--chromium/chrome/browser/resources/settings/device_page/device_page.html12
-rw-r--r--chromium/chrome/browser/resources/settings/device_page/device_page_browser_proxy.js2
-rw-r--r--chromium/chrome/browser/resources/settings/device_page/display.html6
-rw-r--r--chromium/chrome/browser/resources/settings/device_page/display.js31
-rw-r--r--chromium/chrome/browser/resources/settings/device_page/display_layout.html12
-rw-r--r--chromium/chrome/browser/resources/settings/device_page/display_layout.js11
-rw-r--r--chromium/chrome/browser/resources/settings/device_page/display_overscan_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/device_page/drive_cache_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/device_page/keyboard.html4
-rw-r--r--chromium/chrome/browser/resources/settings/device_page/pointers.html2
-rw-r--r--chromium/chrome/browser/resources/settings/device_page/storage.html10
-rw-r--r--chromium/chrome/browser/resources/settings/device_page/stylus.html6
-rw-r--r--chromium/chrome/browser/resources/settings/downloads_page/downloads_page.html4
-rw-r--r--chromium/chrome/browser/resources/settings/google_assistant_page/google_assistant_page.html2
-rw-r--r--chromium/chrome/browser/resources/settings/icons.html5
-rw-r--r--chromium/chrome/browser/resources/settings/images/sync_banner.svg10
-rw-r--r--chromium/chrome/browser/resources/settings/incompatible_applications_page/compiled_resources2.gyp33
-rw-r--r--chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_application_item.html25
-rw-r--r--chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_application_item.js103
-rw-r--r--chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_browser_proxy.html2
-rw-r--r--chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_browser_proxy.js122
-rw-r--r--chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_page.html59
-rw-r--r--chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_page.js138
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_config.html12
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_config.js34
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html18
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js1
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.html20
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_page.html10
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_page.js25
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_subpage.html19
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/internet_subpage.js2
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.html4
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html8
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js20
-rw-r--r--chromium/chrome/browser/resources/settings/internet_page/tether_connection_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/languages_page/add_languages_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/languages_page/edit_dictionary_page.html4
-rw-r--r--chromium/chrome/browser/resources/settings/languages_page/languages_page.html47
-rw-r--r--chromium/chrome/browser/resources/settings/languages_page/languages_page.js4
-rw-r--r--chromium/chrome/browser/resources/settings/on_startup_page/on_startup_page.html6
-rw-r--r--chromium/chrome/browser/resources/settings/on_startup_page/on_startup_page.js24
-rw-r--r--chromium/chrome/browser/resources/settings/on_startup_page/startup_url_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/on_startup_page/startup_url_entry.html7
-rw-r--r--chromium/chrome/browser/resources/settings/on_startup_page/startup_url_entry.js2
-rw-r--r--chromium/chrome/browser/resources/settings/on_startup_page/startup_urls_page.html8
-rw-r--r--chromium/chrome/browser/resources/settings/passwords_and_forms_page/address_edit_dialog.html6
-rw-r--r--chromium/chrome/browser/resources/settings/passwords_and_forms_page/autofill_section.html36
-rw-r--r--chromium/chrome/browser/resources/settings/passwords_and_forms_page/credit_card_edit_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.html8
-rw-r--r--chromium/chrome/browser/resources/settings/passwords_and_forms_page/password_list_item.html6
-rw-r--r--chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_and_forms_page.html4
-rw-r--r--chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.html51
-rw-r--r--chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.js199
-rw-r--r--chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.html40
-rw-r--r--chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js77
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/change_picture.html2
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/change_picture.js8
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/change_picture_browser_proxy.js5
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/compiled_resources2.gyp14
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/easy_unlock_turn_off_dialog.html5
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/fingerprint_list.html6
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/import_data_dialog.html6
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/lock_screen.html10
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/password_prompt_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/people_page.html153
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/people_page.js68
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/pin_keyboard.html1
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/pin_keyboard.js5
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/profile_info_browser_proxy.js11
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.js2
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/setup_pin_dialog.html13
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/sync_account_control.html200
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/sync_account_control.js222
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/sync_browser_proxy.js63
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/sync_page.html8
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/user_list.html2
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/users_add_user_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/users_page.html9
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/users_page.js9
-rw-r--r--chromium/chrome/browser/resources/settings/prefs/pref_util.js2
-rw-r--r--chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog.html40
-rw-r--r--chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog.js7
-rw-r--r--chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog_util.html27
-rw-r--r--chromium/chrome/browser/resources/settings/printing_page/cups_edit_printer_dialog.html8
-rw-r--r--chromium/chrome/browser/resources/settings/printing_page/cups_printer_shared_css.html2
-rw-r--r--chromium/chrome/browser/resources/settings/printing_page/cups_printers.html15
-rw-r--r--chromium/chrome/browser/resources/settings/printing_page/cups_printers.js14
-rw-r--r--chromium/chrome/browser/resources/settings/printing_page/cups_printers_list.html6
-rw-r--r--chromium/chrome/browser/resources/settings/printing_page/cups_set_manufacturer_model_behavior.js16
-rw-r--r--chromium/chrome/browser/resources/settings/printing_page/printing_page.html6
-rw-r--r--chromium/chrome/browser/resources/settings/privacy_page/privacy_page.html43
-rw-r--r--chromium/chrome/browser/resources/settings/privacy_page/privacy_page.js32
-rw-r--r--chromium/chrome/browser/resources/settings/privacy_page/privacy_page_browser_proxy.js5
-rw-r--r--chromium/chrome/browser/resources/settings/reset_page/powerwash_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/reset_page/reset_page.html39
-rw-r--r--chromium/chrome/browser/resources/settings/reset_page/reset_page.js14
-rw-r--r--chromium/chrome/browser/resources/settings/reset_page/reset_profile_banner.html4
-rw-r--r--chromium/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/reset_page/reset_profile_dialog.js2
-rw-r--r--chromium/chrome/browser/resources/settings/route.js7
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/omnibox_extension_entry.html8
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engine_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.html8
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.html2
-rw-r--r--chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.html4
-rw-r--r--chromium/chrome/browser/resources/settings/search_page/search_page.html6
-rw-r--r--chromium/chrome/browser/resources/settings/search_settings.js117
-rw-r--r--chromium/chrome/browser/resources/settings/settings.html3
-rw-r--r--chromium/chrome/browser/resources/settings/settings_main/settings_main.html1
-rw-r--r--chromium/chrome/browser/resources/settings/settings_page/settings_animated_pages.html1
-rw-r--r--chromium/chrome/browser/resources/settings/settings_page/settings_section.html6
-rw-r--r--chromium/chrome/browser/resources/settings/settings_page/settings_subpage.html8
-rw-r--r--chromium/chrome/browser/resources/settings/settings_page/settings_subpage_search.html8
-rw-r--r--chromium/chrome/browser/resources/settings/settings_resources.grd43
-rw-r--r--chromium/chrome/browser/resources/settings/settings_shared_css.html56
-rw-r--r--chromium/chrome/browser/resources/settings/settings_ui/settings_ui.html4
-rw-r--r--chromium/chrome/browser/resources/settings/settings_ui/settings_ui.js2
-rw-r--r--chromium/chrome/browser/resources/settings/settings_vars_css.html6
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/add_site_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/all_sites.html2
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/category_default_setting.js1
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/constants.js3
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/edit_exception_dialog.html4
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/protocol_handlers.html35
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/protocol_handlers.js78
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/site_data.html12
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/site_data_details_subpage.html2
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/site_details.html27
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/site_details.js11
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/site_list.html30
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/site_settings_prefs_browser_proxy.js16
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/usb_devices.html5
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings/zoom_levels.html2
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings_page/site_settings_page.html103
-rw-r--r--chromium/chrome/browser/resources/settings/site_settings_page/site_settings_page.js10
-rw-r--r--chromium/chrome/browser/resources/settings/system_page/system_page.html2
178 files changed, 2774 insertions, 1857 deletions
diff --git a/chromium/chrome/browser/resources/settings/PRESUBMIT.py b/chromium/chrome/browser/resources/settings/PRESUBMIT.py
new file mode 100644
index 00000000000..dcc145b7f91
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/PRESUBMIT.py
@@ -0,0 +1,24 @@
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+def _CheckChangeOnUploadOrCommit(input_api, output_api):
+ import sys
+ old_sys_path, cwd = sys.path[:], input_api.PresubmitLocalPath()
+ src_root = input_api.os_path.join(cwd, '..', '..', '..', '..')
+ try:
+ sys.path += [input_api.os_path.join(src_root, 'tools', 'web_dev_style')]
+ import web_dev_style.presubmit_support
+ finally:
+ sys.path = old_sys_path
+ return web_dev_style.presubmit_support.DisallowIncludes(input_api, output_api,
+ '<include> does not work in settings; use HTML imports instead')
+
+
+def CheckChangeOnUpload(input_api, output_api):
+ return _CheckChangeOnUploadOrCommit(input_api, output_api)
+
+
+def CheckChangeOnCommit(input_api, output_api):
+ return _CheckChangeOnUploadOrCommit(input_api, output_api)
diff --git a/chromium/chrome/browser/resources/settings/a11y_page/a11y_page.html b/chromium/chrome/browser/resources/settings/a11y_page/a11y_page.html
index 8e9979679bd..3714da1774e 100644
--- a/chromium/chrome/browser/resources/settings/a11y_page/a11y_page.html
+++ b/chromium/chrome/browser/resources/settings/a11y_page/a11y_page.html
@@ -24,7 +24,7 @@
pref="{{prefs.settings.a11y.enable_menu}}">
</settings-toggle-button>
<div id="subpage-trigger" class="settings-box two-line"
- on-tap="onManageAccessibilityFeaturesTap_" actionable>
+ on-click="onManageAccessibilityFeaturesTap_" actionable>
<div class="start">
$i18n{manageAccessibilityFeatures}
<div class="secondary" id="themesSecondary">
diff --git a/chromium/chrome/browser/resources/settings/a11y_page/manage_a11y_page.html b/chromium/chrome/browser/resources/settings/a11y_page/manage_a11y_page.html
index 08720eb78c2..59420dcd63f 100644
--- a/chromium/chrome/browser/resources/settings/a11y_page/manage_a11y_page.html
+++ b/chromium/chrome/browser/resources/settings/a11y_page/manage_a11y_page.html
@@ -16,11 +16,7 @@
-webkit-padding-start: var(--settings-box-row-padding);
}
- .list-item settings-dropdown-menu {
- -webkit-margin-start: 16px;
- }
-
- .sub-item > .start {
+ .sub-item {
-webkit-margin-start: var(--settings-indent-width);
}
@@ -50,7 +46,7 @@
</settings-toggle-button>
<iron-collapse opened="[[prefs.settings.accessibility.value]]">
<div class="settings-box"
- on-tap="onChromeVoxSettingsTap_" actionable>
+ on-click="onChromeVoxSettingsTap_" actionable>
<div class="start">$i18n{chromeVoxOptionsLabel}</div>
<button class="icon-external" is="paper-icon-button-light"
aria-label="$i18n{chromeVoxOptionsLabel}"></button>
@@ -63,7 +59,7 @@
</settings-toggle-button>
<iron-collapse opened="[[prefs.settings.a11y.select_to_speak.value]]">
<div class="settings-box"
- on-tap="onSelectToSpeakSettingsTap_" actionable>
+ on-click="onSelectToSpeakSettingsTap_" actionable>
<div class="start">$i18n{selectToSpeakOptionsLabel}</div>
<button class="icon-external" is="paper-icon-button-light"
aria-label="$i18n{selectToSpeakOptionsLabel}"></button>
@@ -77,9 +73,33 @@
</settings-toggle-button>
<settings-toggle-button class="continuation"
pref="{{prefs.settings.a11y.screen_magnifier}}"
- label="$i18n{screenMagnifierLabel}">
+ label="$i18n{screenMagnifierLabel}"
+ disabled="[[prefs.ash.docked_magnifier.enabled.value]]">
</settings-toggle-button>
- <div class="settings-box two-line" on-tap="onDisplayTap_" actionable>
+ <div class="settings-box continuation">
+ <div class="start sub-item">$i18n{screenMagnifierZoomLabel}</div>
+ <settings-dropdown-menu label="$i18n{screenMagnifierZoomLabel}"
+ pref="{{prefs.settings.a11y.screen_magnifier_scale}}"
+ menu-options="[[screenMagnifierZoomOptions_]]"
+ disabled="[[!prefs.settings.a11y.screen_magnifier.value]]">
+ </settings-dropdown-menu>
+ </div>
+ <template is="dom-if" if="[[dockedMagnifierFeatureEnabled_]]" restamp>
+ <settings-toggle-button class="continuation"
+ pref="{{prefs.ash.docked_magnifier.enabled}}"
+ label="$i18n{dockedMagnifierLabel}"
+ disabled="[[prefs.settings.a11y.screen_magnifier.value]]">
+ </settings-toggle-button>
+ <div class="settings-box continuation">
+ <div class="start sub-item">$i18n{dockedMagnifierZoomLabel}</div>
+ <settings-dropdown-menu label="$i18n{dockedMagnifierZoomLabel}"
+ pref="{{prefs.ash.docked_magnifier.scale}}"
+ menu-options="[[screenMagnifierZoomOptions_]]"
+ disabled="[[!prefs.ash.docked_magnifier.enabled.value]]">
+ </settings-dropdown-menu>
+ </div>
+ </template>
+ <div class="settings-box two-line" on-click="onDisplayTap_" actionable>
<div class="start">
$i18n{displaySettingsTitle}
<div class="secondary">$i18n{displaySettingsDescription}</div>
@@ -88,7 +108,7 @@
aria-label="$i18n{displaySettingsTitle}"
aria-describedby="displaySettingsSecondary"></button>
</div>
- <div class="settings-box two-line" on-tap="onAppearanceTap_" actionable>
+ <div class="settings-box two-line" on-click="onAppearanceTap_" actionable>
<div class="start">
$i18n{appearanceSettingsTitle}
<div class="secondary" id="appearanceSettingsSecondary">
@@ -123,13 +143,13 @@
label="$i18n{switchAccessLabel}">
<button is="paper-icon-button-light"
class="icon-settings" slot="more-actions"
- on-tap="onSwitchAccessSettingsTap_"
+ on-click="onSwitchAccessSettingsTap_"
hidden="[[!prefs.settings.a11y.switch_access.value]]"
aria-label="$i18n{selectToSpeakOptionsLabel}">
</button>
</settings-toggle-button>
</template>
- <div class="settings-box two-line" on-tap="onKeyboardTap_" actionable>
+ <div class="settings-box two-line" on-click="onKeyboardTap_" actionable>
<div class="start">
$i18n{keyboardSettingsTitle}
<div class="secondary" id="keyboardSettingsSecondary">
@@ -146,15 +166,13 @@
pref="{{prefs.settings.a11y.autoclick}}"
label="$i18n{clickOnStopLabel}">
</settings-toggle-button>
- <div class="settings-box block first">
- <div class="list-item sub-item">
- <div class="start">$i18n{delayBeforeClickLabel}</div>
- <settings-dropdown-menu label="$i18n{delayBeforeClickLabel}"
- pref="{{prefs.settings.a11y.autoclick_delay_ms}}"
- menu-options="[[autoClickDelayOptions_]]"
- disabled="[[!prefs.settings.a11y.autoclick.value]]">
- </settings-dropdown-menu>
- </div>
+ <div class="settings-box continuation">
+ <div class="start sub-item">$i18n{delayBeforeClickLabel}</div>
+ <settings-dropdown-menu label="$i18n{delayBeforeClickLabel}"
+ pref="{{prefs.settings.a11y.autoclick_delay_ms}}"
+ menu-options="[[autoClickDelayOptions_]]"
+ disabled="[[!prefs.settings.a11y.autoclick.value]]">
+ </settings-dropdown-menu>
</div>
<settings-toggle-button class="continuation"
pref="{{prefs.settings.touchpad.enable_tap_dragging}}"
@@ -164,23 +182,21 @@
pref="{{prefs.settings.a11y.large_cursor_enabled}}"
label="$i18n{largeMouseCursorLabel}">
</settings-toggle-button>
- <div class="settings-box block continuation"
+ <div class="settings-box continuation"
hidden$="[[!prefs.settings.a11y.large_cursor_enabled.value]]">
- <div class="list-item sub-item">
- <div class="start">$i18n{largeMouseCursorSizeLabel}</div>
- <settings-slider
- pref="{{prefs.settings.a11y.large_cursor_dip_size}}"
- min="25" max="64"
- label-min="$i18n{largeMouseCursorSizeDefaultLabel}"
- label-max="$i18n{largeMouseCursorSizeLargeLabel}">
- </settings-slider>
- </div>
+ <div class="start sub-item">$i18n{largeMouseCursorSizeLabel}</div>
+ <settings-slider
+ pref="{{prefs.settings.a11y.large_cursor_dip_size}}"
+ min="25" max="64"
+ label-min="$i18n{largeMouseCursorSizeDefaultLabel}"
+ label-max="$i18n{largeMouseCursorSizeLargeLabel}">
+ </settings-slider>
</div>
<settings-toggle-button class="continuation"
pref="{{prefs.settings.a11y.cursor_highlight}}"
label="$i18n{cursorHighlightLabel}">
</settings-toggle-button>
- <div class="settings-box two-line" on-tap="onMouseTap_" actionable>
+ <div class="settings-box two-line" on-click="onMouseTap_" actionable>
<div class="start">
$i18n{mouseSettingsTitle}
<div class="secondary" id="mouseSettingsSecondary">
diff --git a/chromium/chrome/browser/resources/settings/a11y_page/manage_a11y_page.js b/chromium/chrome/browser/resources/settings/a11y_page/manage_a11y_page.js
index 79e39c1dd0e..090a8a7f74a 100644
--- a/chromium/chrome/browser/resources/settings/a11y_page/manage_a11y_page.js
+++ b/chromium/chrome/browser/resources/settings/a11y_page/manage_a11y_page.js
@@ -19,6 +19,28 @@ Polymer({
notify: true,
},
+ screenMagnifierZoomOptions_: {
+ readOnly: true,
+ type: Array,
+ value: function() {
+ // These values correspond to the i18n values in settings_strings.grdp.
+ // If these values get changed then those strings need to be changed as
+ // well.
+ return [
+ {value: 2, name: loadTimeData.getString('screenMagnifierZoom2x')},
+ {value: 4, name: loadTimeData.getString('screenMagnifierZoom4x')},
+ {value: 6, name: loadTimeData.getString('screenMagnifierZoom6x')},
+ {value: 8, name: loadTimeData.getString('screenMagnifierZoom8x')},
+ {value: 10, name: loadTimeData.getString('screenMagnifierZoom10x')},
+ {value: 12, name: loadTimeData.getString('screenMagnifierZoom12x')},
+ {value: 14, name: loadTimeData.getString('screenMagnifierZoom14x')},
+ {value: 16, name: loadTimeData.getString('screenMagnifierZoom16x')},
+ {value: 18, name: loadTimeData.getString('screenMagnifierZoom18x')},
+ {value: 20, name: loadTimeData.getString('screenMagnifierZoom20x')},
+ ];
+ },
+ },
+
autoClickDelayOptions_: {
readOnly: true,
type: Array,
@@ -56,6 +78,17 @@ Polymer({
},
},
+ /**
+ * Whether the docked magnifier flag is enabled.
+ * @private {boolean}
+ */
+ dockedMagnifierFeatureEnabled_: {
+ type: Boolean,
+ value: function() {
+ return loadTimeData.getBoolean('dockedMagnifierFeatureEnabled');
+ },
+ },
+
/** @private */
isGuest_: {
type: Boolean,
diff --git a/chromium/chrome/browser/resources/settings/about_page/about_page.html b/chromium/chrome/browser/resources/settings/about_page/about_page.html
index 4f2f097bbe7..9053116b11d 100644
--- a/chromium/chrome/browser/resources/settings/about_page/about_page.html
+++ b/chromium/chrome/browser/resources/settings/about_page/about_page.html
@@ -78,7 +78,7 @@
<if expr="_google_chrome and is_macosx">
#promoteUpdater[disabled] {
- @apply(--cr-secondary-text);
+ @apply --cr-secondary-text;
}
</if>
</style>
@@ -88,7 +88,7 @@
focus-config="[[focusConfig_]]">
<neon-animatable route-path="default">
<div class="settings-box two-line">
- <img id="product-logo" on-tap="onProductLogoTap_"
+ <img id="product-logo" on-click="onProductLogoTap_"
srcset="chrome://theme/current-channel-logo@1x 1x,
chrome://theme/current-channel-logo@2x 2x"
alt="$i18n{aboutProductLogoAlt}">
@@ -153,18 +153,18 @@
<div class="separator" hidden="[[!showButtonContainer_]]"></div>
<span id="buttonContainer" hidden="[[!showButtonContainer_]]">
<paper-button id="relaunch" class="secondary-button"
- hidden="[[!showRelaunch_]]" on-tap="onRelaunchTap_">
+ hidden="[[!showRelaunch_]]" on-click="onRelaunchTap_">
$i18n{aboutRelaunch}
</paper-button>
<if expr="chromeos">
<paper-button id="relaunchAndPowerwash" class="secondary-button"
hidden="[[!showRelaunchAndPowerwash_]]"
- on-tap="onRelaunchAndPowerwashTap_">
+ on-click="onRelaunchAndPowerwashTap_">
$i18n{aboutRelaunchAndPowerwash}
</paper-button>
<paper-button id="checkForUpdates" class="secondary-button"
hidden="[[!showCheckUpdates_]]"
- on-tap="onCheckUpdatesTap_">
+ on-click="onCheckUpdatesTap_">
$i18n{aboutCheckForUpdates}
</paper-button>
</if>
@@ -173,13 +173,13 @@
<if expr="chromeos">
<div id="aboutTPMFirmwareUpdate" class="settings-box two-line"
hidden$="[[!showTPMFirmwareUpdateLineItem_]]"
- on-tap="onTPMFirmwareUpdateTap_" actionable>
+ on-click="onTPMFirmwareUpdateTap_" actionable>
<div class="start">
<div>$i18n{aboutTPMFirmwareUpdateTitle}</div>
<div class="secondary">
$i18n{aboutTPMFirmwareUpdateDescription}
<a href="$i18n{aboutTPMFirmwareUpdateLearnMoreURL}"
- target="_blank" on-tap="onLearnMoreTap_">
+ target="_blank" on-click="onLearnMoreTap_">
$i18n{learnMore}
</a>
</div>
@@ -194,12 +194,12 @@
<div id="promoteUpdater" class="settings-box"
disabled$="[[promoteUpdaterStatus_.disabled]]"
actionable$="[[promoteUpdaterStatus_.actionable]]"
- on-tap="onPromoteUpdaterTap_">
+ on-click="onPromoteUpdaterTap_">
<div class="start">
[[promoteUpdaterStatus_.text]]
<a href="https://support.google.com/chrome/answer/95414"
target="_blank" id="updaterLearnMore"
- on-tap="onLearnMoreTap_">
+ on-click="onLearnMoreTap_">
$i18n{learnMore}
</a>
</div>
@@ -211,21 +211,22 @@
</div>
</template>
</if>
- <div id="help" class="settings-box" on-tap="onHelpTap_" actionable>
+ <div id="help" class="settings-box" on-click="onHelpTap_"
+ actionable>
<div class="start">$i18n{aboutGetHelpUsingChrome}</div>
<button class="icon-external" is="paper-icon-button-light"
aria-labelledby="help"></button>
</div>
<if expr="_google_chrome">
<div id="reportIssue" class="settings-box" actionable
- on-tap="onReportIssueTap_">
+ on-click="onReportIssueTap_">
<div class="start">$i18n{aboutReportAnIssue}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-labelledby="reportIssue"></button>
</div>
</if>
<if expr="chromeos">
- <div class="settings-box" on-tap="onDetailedBuildInfoTap_"
+ <div class="settings-box" on-click="onDetailedBuildInfoTap_"
actionable>
<div class="start">$i18n{aboutDetailedBuildInfo}</div>
<button id="detailed-build-info-trigger" class="subpage-arrow"
diff --git a/chromium/chrome/browser/resources/settings/about_page/channel_switcher_dialog.html b/chromium/chrome/browser/resources/settings/about_page/channel_switcher_dialog.html
index 9f58ef3661b..70cbc55efe9 100644
--- a/chromium/chrome/browser/resources/settings/about_page/channel_switcher_dialog.html
+++ b/chromium/chrome/browser/resources/settings/about_page/channel_switcher_dialog.html
@@ -53,15 +53,15 @@
</iron-selector>
</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="onCancelTap_"
+ <paper-button class="cancel-button" on-click="onCancelTap_"
id="cancel">$i18n{cancel}</paper-button>
<paper-button id="changeChannel" class="action-button"
- on-tap="onChangeChannelTap_"
+ on-click="onChangeChannelTap_"
hidden="[[!shouldShowButtons_.changeChannel]]">
$i18n{aboutChangeChannel}
</paper-button>
<paper-button id="changeChannelAndPowerwash" class="action-button"
- on-tap="onChangeChannelAndPowerwashTap_"
+ on-click="onChangeChannelAndPowerwashTap_"
hidden="[[!shouldShowButtons_.changeChannelAndPowerwash]]">
$i18n{aboutChangeChannelAndPowerwash}
</paper-button>
diff --git a/chromium/chrome/browser/resources/settings/about_page/detailed_build_info.html b/chromium/chrome/browser/resources/settings/about_page/detailed_build_info.html
index a1ae3142cd9..08ab773cc7c 100644
--- a/chromium/chrome/browser/resources/settings/about_page/detailed_build_info.html
+++ b/chromium/chrome/browser/resources/settings/about_page/detailed_build_info.html
@@ -39,7 +39,7 @@
<div class="secondary">[[currentlyOnChannelText_]]</div>
</div>
<div class="separator"></div>
- <paper-button on-tap="onChangeChannelTap_"
+ <paper-button on-click="onChangeChannelTap_"
disabled="[[!canChangeChannel_]]">
$i18n{aboutChangeChannel}
</paper-button>
diff --git a/chromium/chrome/browser/resources/settings/about_page/update_warning_dialog.html b/chromium/chrome/browser/resources/settings/about_page/update_warning_dialog.html
index 3a336109f1f..e6dd4ab2540 100644
--- a/chromium/chrome/browser/resources/settings/about_page/update_warning_dialog.html
+++ b/chromium/chrome/browser/resources/settings/about_page/update_warning_dialog.html
@@ -16,9 +16,9 @@
</div>
<div slot="button-container">
<paper-button id="cancel" class="cancel-button"
- on-tap="onCancelTap_">$i18n{cancel}</paper-button>
+ on-click="onCancelTap_">$i18n{cancel}</paper-button>
<paper-button id="continue" class="action-button"
- on-tap="onContinueTap_">
+ on-click="onContinueTap_">
$i18n{aboutUpdateWarningContinue}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/android_apps_page/android_apps_page.html b/chromium/chrome/browser/resources/settings/android_apps_page/android_apps_page.html
index a59514198c0..db780b0d718 100644
--- a/chromium/chrome/browser/resources/settings/android_apps_page/android_apps_page.html
+++ b/chromium/chrome/browser/resources/settings/android_apps_page/android_apps_page.html
@@ -23,7 +23,7 @@
<template is="dom-if" if="[[havePlayStoreApp]]" restamp>
<div id="android-apps" class="settings-box two-line first"
actionable$="[[androidAppsInfo.playStoreEnabled]]"
- on-tap="onSubpageTap_">
+ on-click="onSubpageTap_">
<div class="start">
$i18n{androidAppsPageLabel}
<div class="secondary" id="secondaryText"
@@ -43,7 +43,7 @@
<div class="separator"></div>
<paper-button id="enable" class="secondary-button"
disabled="[[isEnforced_(prefs.arc.enabled)]]"
- on-tap="onEnableTap_"
+ on-click="onEnableTap_"
aria-label="$i18n{androidAppsPageTitle}"
aria-describedby="secondaryText">
$i18n{androidAppsEnable}
diff --git a/chromium/chrome/browser/resources/settings/android_apps_page/android_apps_subpage.html b/chromium/chrome/browser/resources/settings/android_apps_page/android_apps_subpage.html
index 58cc44902e0..771918fe76a 100644
--- a/chromium/chrome/browser/resources/settings/android_apps_page/android_apps_subpage.html
+++ b/chromium/chrome/browser/resources/settings/android_apps_page/android_apps_subpage.html
@@ -21,7 +21,7 @@
</template>
<template is="dom-if" if="[[allowRemove_(prefs.arc.enabled.*)]]">
- <div id="remove" class="settings-box" actionable on-tap="onRemoveTap_">
+ <div id="remove" class="settings-box" actionable on-click="onRemoveTap_">
<div class="start">$i18n{androidAppsRemove}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label="$i18n{androidAppsRemove}">
@@ -37,11 +37,11 @@
<div slot="body" inner-h-t-m-l="[[dialogBody_]]"></div>
<div slot="button-container">
<paper-button class="cancel-button"
- on-tap="onConfirmDisableDialogCancel_">
+ on-click="onConfirmDisableDialogCancel_">
$i18n{cancel}
</paper-button>
<paper-button class="action-button"
- on-tap="onConfirmDisableDialogConfirm_">
+ on-click="onConfirmDisableDialogConfirm_">
$i18n{androidAppsDisableDialogRemove}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/android_apps_page/android_settings_element.html b/chromium/chrome/browser/resources/settings/android_apps_page/android_settings_element.html
index 17b6e861109..eb65859100f 100644
--- a/chromium/chrome/browser/resources/settings/android_apps_page/android_settings_element.html
+++ b/chromium/chrome/browser/resources/settings/android_apps_page/android_settings_element.html
@@ -12,7 +12,7 @@
<style include="settings-shared"></style>
<div id="manageApps" class="settings-box first"
on-keydown="onManageAndroidAppsKeydown_"
- on-tap="onManageAndroidAppsTap_" actionable>
+ on-click="onManageAndroidAppsTap_" actionable>
<div class="start">
<div>$i18n{androidAppsManageApps}</div>
</div>
diff --git a/chromium/chrome/browser/resources/settings/appearance_page/appearance_fonts_page.html b/chromium/chrome/browser/resources/settings/appearance_page/appearance_fonts_page.html
index 3b014cc73a3..d82f8743fac 100644
--- a/chromium/chrome/browser/resources/settings/appearance_page/appearance_fonts_page.html
+++ b/chromium/chrome/browser/resources/settings/appearance_page/appearance_fonts_page.html
@@ -121,7 +121,7 @@
</div>
<template is="dom-if" if="[[!isGuest_]]">
<div class="settings-box two-line" id="advancedButton"
- on-tap="openAdvancedExtension_" actionable>
+ on-click="openAdvancedExtension_" actionable>
<div class="start">
$i18n{advancedFontSettings}
<div class="secondary" id="advancedButtonSublabel">
diff --git a/chromium/chrome/browser/resources/settings/appearance_page/appearance_page.html b/chromium/chrome/browser/resources/settings/appearance_page/appearance_page.html
index 7ac5845998d..6667159ff4e 100644
--- a/chromium/chrome/browser/resources/settings/appearance_page/appearance_page.html
+++ b/chromium/chrome/browser/resources/settings/appearance_page/appearance_page.html
@@ -60,7 +60,7 @@
<button icon-class="icon-external" id="wallpaperButton"
is="cr-link-row"
hidden="[[!pageVisibility.setWallpaper]]"
- on-tap="openWallpaperManager_"
+ on-click="openWallpaperManager_"
label="$i18n{setWallpaper}" sub-label="$i18n{openWallpaperApp}"
disabled="[[isWallpaperPolicyControlled_]]">
<template is="dom-if" if="[[isWallpaperPolicyControlled_]]">
@@ -76,11 +76,11 @@
<button class="first" icon-class="icon-external" is="cr-link-row"
hidden="[[!pageVisibility.setTheme]]"
label="$i18n{themes}" sub-label="[[themeSublabel_]]"
- on-tap="openThemeUrl_"></button>
+ on-click="openThemeUrl_"></button>
<if expr="not is_linux or chromeos">
<template is="dom-if" if="[[prefs.extensions.theme.id.value]]">
<div class="separator"></div>
- <paper-button id="useDefault" on-tap="onUseDefaultTap_"
+ <paper-button id="useDefault" on-click="onUseDefaultTap_"
class="secondary-button">
$i18n{resetToDefaultTheme}
</paper-button>
@@ -94,14 +94,14 @@
<div class="separator"></div>
<template is="dom-if" if="[[showUseClassic_(
prefs.extensions.theme.id.value, useSystemTheme_)]]" restamp>
- <paper-button id="useDefault" on-tap="onUseDefaultTap_"
+ <paper-button id="useDefault" on-click="onUseDefaultTap_"
class="secondary-button">
$i18n{useClassicTheme}
</paper-button>
</template>
<template is="dom-if" if="[[showUseSystem_(
prefs.extensions.theme.id.value, useSystemTheme_)]]" restamp>
- <paper-button id="useSystem" on-tap="onUseSystemTap_"
+ <paper-button id="useSystem" on-click="onUseSystemTap_"
class="secondary-button">
$i18n{useSystemTheme}
</paper-button>
@@ -168,7 +168,7 @@
</div>
<button class="hr" is="cr-link-row"
icon-class="subpage-arrow" id="customize-fonts-subpage-trigger"
- label="$i18n{customizeFonts}" on-tap="onCustomizeFontsTap_">
+ label="$i18n{customizeFonts}" on-click="onCustomizeFontsTap_">
</button>
<div class="settings-box" hidden="[[!pageVisibility.pageZoom]]">
<div id="pageZoom" class="start">$i18n{pageZoom}</div>
diff --git a/chromium/chrome/browser/resources/settings/basic_page/basic_page.html b/chromium/chrome/browser/resources/settings/basic_page/basic_page.html
index 94029ec4769..80ab0b65c36 100644
--- a/chromium/chrome/browser/resources/settings/basic_page/basic_page.html
+++ b/chromium/chrome/browser/resources/settings/basic_page/basic_page.html
@@ -46,7 +46,7 @@
--paper-button: {
text-transform: none;
}
- @apply(--settings-actionable);
+ @apply --settings-actionable;
align-items: center;
display: flex;
margin-bottom: 3px;
@@ -56,7 +56,7 @@
}
#secondaryUserBanner {
- @apply(--shadow-elevation-2dp);
+ @apply --shadow-elevation-2dp;
align-items: center;
background-color: white;
border-radius: 2px;
diff --git a/chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_device_list_item.html b/chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_device_list_item.html
index b7134f661f3..c3ddc427f33 100644
--- a/chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_device_list_item.html
+++ b/chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_device_list_item.html
@@ -33,14 +33,15 @@
<span hidden$="[[!device.connecting]]">$i18n{bluetoothConnecting}</span>
<div hidden$="[[!device.paired]]">
<button is="paper-icon-button-light" class="icon-more-vert"
- on-tap="onMenuButtonTap_" tabindex$="[[tabindex]]"
+ on-click="onMenuButtonTap_" tabindex$="[[tabindex]]"
title="$i18n{moreActions}" on-keydown="ignoreEnterKey_">
</button>
<dialog id="dotsMenu" is="cr-action-menu">
- <button class="dropdown-item" on-tap="onConnectActionTap_">
+ <button slot="item" class="dropdown-item"
+ on-click="onConnectActionTap_">
[[getConnectActionText_(device.connected)]]
</button>
- <button class="dropdown-item" on-tap="onRemoveTap_">
+ <button slot="item" class="dropdown-item" on-click="onRemoveTap_">
$i18n{bluetoothRemove}
</button>
</dialog>
diff --git a/chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.html b/chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.html
index fb27688ce72..1e386deda42 100644
--- a/chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.html
+++ b/chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_page.html
@@ -21,7 +21,7 @@
focus-config="[[focusConfig_]]">
<neon-animatable route-path="default">
<div id="bluetoothDevices"
- class="settings-box two-line" actionable on-tap="onTap_">
+ class="settings-box two-line" actionable on-click="onTap_">
<iron-icon icon="[[getIcon_(bluetoothToggleState_)]]"></iron-icon>
<div class="middle">
$i18n{bluetoothPageTitle}
@@ -36,7 +36,7 @@
</cr-policy-pref-indicator>
<template is="dom-if" if="[[bluetoothToggleState_]]">
<button class="subpage-arrow" is="paper-icon-button-light"
- on-tap="onSubpageArrowTap_"
+ on-click="onSubpageArrowTap_"
aria-label="$i18n{bluetoothPageTitle}"
aria-describedby="bluetoothSecondary">
</button>
@@ -46,7 +46,7 @@
checked="{{bluetoothToggleState_}}"
disabled$=
"[[!isToggleEnabled_(adapterState_, stateChangeInProgress_)]]"
- on-tap="stopTap_"
+ on-click="stopTap_"
aria-label="$i18n{bluetoothToggleA11yLabel}">
</paper-toggle-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_subpage.html b/chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_subpage.html
index 6ca9d1b16fa..018a505ac33 100644
--- a/chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_subpage.html
+++ b/chromium/chrome/browser/resources/settings/bluetooth_page/bluetooth_subpage.html
@@ -15,7 +15,7 @@
<template>
<style include="settings-shared iron-flex">
.container {
- @apply(--settings-list-frame-padding);
+ @apply --settings-list-frame-padding;
display: flex;
flex-direction: column;
min-height: 10px;
@@ -27,7 +27,7 @@
}
paper-spinner-lite {
- @apply(--cr-icon-height-width);
+ @apply --cr-icon-height-width;
}
#onOff {
@@ -39,7 +39,7 @@
}
</style>
- <div class="settings-box first" actionable on-tap="onEnableTap_">
+ <div class="settings-box first" actionable on-click="onEnableTap_">
<div id="onOff" class="start" on$="[[bluetoothToggleState]]">
[[getOnOffString_(bluetoothToggleState,
'$i18nPolymer{deviceOn}', '$i18nPolymer{deviceOff}')]]
@@ -48,7 +48,7 @@
checked="{{bluetoothToggleState}}"
disabled$="[[!isToggleEnabled_(adapterState, stateChangeInProgress)]]"
aria-label="$i18n{bluetoothToggleA11yLabel}"
- on-tap="stopTap_">
+ on-click="stopTap_">
</paper-toggle-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/change_password_page/change_password_page.html b/chromium/chrome/browser/resources/settings/change_password_page/change_password_page.html
index deb22750820..ceaae386226 100644
--- a/chromium/chrome/browser/resources/settings/change_password_page/change_password_page.html
+++ b/chromium/chrome/browser/resources/settings/change_password_page/change_password_page.html
@@ -46,7 +46,7 @@
</div>
<div class="separator"></div>
<paper-button class="primary-button" id="changePassword"
- on-tap="changePassword_">
+ on-click="changePassword_">
$i18n{changePasswordPageButton}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.html b/chromium/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.html
index 245dbdd0765..d0cb57647aa 100644
--- a/chromium/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.html
+++ b/chromium/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.html
@@ -84,11 +84,11 @@
</iron-icon>
</div>
<div class="start">
- <div>[[title_]]</div>
+ <div role="status">[[title_]]</div>
<div hidden="[[!showExplanation_]]">
<span class="secondary">[[explanation_]]</span>
<a id="learn-more" href="$i18n{chromeCleanupLearnMoreUrl}"
- on-tap="learnMore_" target="_blank"
+ on-click="learnMore_" target="_blank"
hidden="[[!showLearnMore_]]">
$i18n{learnMore}
</a>
@@ -97,7 +97,7 @@
<template is="dom-if" if="[[showActionButton_]]">
<div class="separator"></div>
<paper-button id="action-button" class="primary-button"
- on-tap="proceed_">
+ on-click="proceed_">
[[actionButtonLabel_]]
</paper-button>
</template>
@@ -112,7 +112,7 @@
on-settings-boolean-control-change="changeLogsPermission_">
</settings-toggle-button>
<div id="show-items-button" class="settings-box" actionable
- on-tap="toggleExpandButton_" hidden="[[!showItemsToRemove_]]">
+ on-click="toggleExpandButton_" hidden="[[!showItemsToRemove_]]">
<div class="start">[[showItemsLinkLabel_]]</div>
<cr-expand-button expanded="{{itemsToRemoveSectionExpanded_}}"
alt="[[showItemsLinkLabel_]]">
diff --git a/chromium/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js b/chromium/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js
index ec8cc5aa7cc..7a31f0eef1d 100644
--- a/chromium/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js
+++ b/chromium/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js
@@ -767,14 +767,14 @@ Polymer({
},
DISMISS_CLEANUP_SUCCESS: {
- label: this.i18n('chromeCleanupDoneButtonLabel'),
+ label: this.i18n('done'),
doAction: this.dismiss_.bind(
this,
settings.ChromeCleanupDismissSource.CLEANUP_SUCCESS_DONE_BUTTON),
},
DISMISS_CLEANUP_FAILURE: {
- label: this.i18n('chromeCleanupDoneButtonLabel'),
+ label: this.i18n('done'),
doAction: this.dismiss_.bind(
this,
settings.ChromeCleanupDismissSource.CLEANUP_FAILURE_DONE_BUTTON),
diff --git a/chromium/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.html b/chromium/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.html
index 6f8b7eb1f77..21e3bb1cedc 100644
--- a/chromium/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.html
+++ b/chromium/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.html
@@ -20,18 +20,34 @@
color: var(--google-blue-500);
cursor: pointer;
}
+
+ #remaining-list {
+ margin-top: -13px;
+ }
</style>
<div id="title" class="secondary" hidden="[[!titleVisible]]">
[[title]]
</div>
- <ul id="list" class="secondary">
- <template is="dom-repeat" items="[[visibleItems_]]">
+ <ul class="secondary">
+ <template is="dom-repeat" items="[[initialItems_]]">
<li class="visible-item">[[item]]</li>
</template>
- <li id="more-items-link" hidden="[[expanded_]]" on-tap="expandList_">
+ <li id="more-items-link" hidden="[[expanded_]]" on-click="expandList_">
[[moreItemsLinkText_]]
</li>
</ul>
+ <!-- Remaining items are kept in a separate <ul> element so that screen
+ readers don't get confused when the list is expanded. If new items are
+ simply added to the first <ul> element, the first new item (which will
+ replace the "N more" link), will be skipped by the reader. As a
+ consequence, visual impaired users will only have a chance to inspect
+ that item if they move up on the list, which can't be considered an
+ expected action. -->
+ <ul id="remaining-list" hidden="[[!expanded_]]" class="secondary">
+ <template is="dom-repeat" items="[[remainingItems_]]">
+ <li class$="[[remainingItemsClass_(expanded_)]]">[[item]]</li>
+ </template>
+ </ul>
</template>
<script src="items_to_remove_list.js"></script>
</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.js b/chromium/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.js
index e628437c50e..8b9c803fb3b 100644
--- a/chromium/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.js
+++ b/chromium/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.js
@@ -71,11 +71,21 @@ Polymer({
},
/**
- * The list of items to actually present on the card. If |expanded_|, then
- * it's the same as |itemsToShow|.
+ * The items to be shown to the user the first time this component is
+ * rendered. If |initiallyExpanded| is true, then it includes all items
+ * from |itemsToShow|. Otherwise, it contains the first
+ * |CHROME_CLEANUP_DEFAULT_ITEMS_TO_SHOW| items.
* @private {?Array<string>}
*/
- visibleItems_: Array,
+ initialItems_: Array,
+
+ /**
+ * The remaining items to be presented that are not included in
+ * |initialItems_|. Items in this list are only shown to the user if
+ * |expanded_| is true.
+ * @private {?Array<string>}
+ */
+ remainingItems_: Array,
/**
* The text for the "show more" link available if not all files are visible
@@ -93,7 +103,6 @@ Polymer({
/** @private */
expandList_: function() {
this.expanded_ = true;
- this.visibleItems_ = this.itemsToShow;
this.moreItemsLinkText_ = '';
},
@@ -118,25 +127,34 @@ Polymer({
updateVisibleState_: function(itemsToShow, initiallyExpanded) {
// Start expanded if there are less than
// |settings.CHROME_CLEANUP_DEFAULT_ITEMS_TO_SHOW| items to show.
- this.expanded_ = this.initiallyExpanded ||
- this.itemsToShow.length <=
- settings.CHROME_CLEANUP_DEFAULT_ITEMS_TO_SHOW;
+ this.expanded_ = initiallyExpanded ||
+ itemsToShow.length <= settings.CHROME_CLEANUP_DEFAULT_ITEMS_TO_SHOW;
if (this.expanded_) {
- this.visibleItems_ = this.itemsToShow;
+ this.initialItems_ = itemsToShow;
+ this.remainingItems_ = [];
this.moreItemsLinkText_ = '';
return;
}
- this.visibleItems_ = this.itemsToShow.slice(
- 0, settings.CHROME_CLEANUP_DEFAULT_ITEMS_TO_SHOW - 1);
+ this.initialItems_ =
+ itemsToShow.slice(0, settings.CHROME_CLEANUP_DEFAULT_ITEMS_TO_SHOW - 1);
+ this.remainingItems_ =
+ itemsToShow.slice(settings.CHROME_CLEANUP_DEFAULT_ITEMS_TO_SHOW - 1);
const browserProxy = settings.ChromeCleanupProxyImpl.getInstance();
- browserProxy
- .getMoreItemsPluralString(
- this.itemsToShow.length - this.visibleItems_.length)
+ browserProxy.getMoreItemsPluralString(this.remainingItems_.length)
.then(linkText => {
this.moreItemsLinkText_ = linkText;
});
},
+
+ /**
+ * Returns the class for the <li> elements that correspond to the items hidden
+ * in the default view.
+ * @param {boolean} expanded
+ */
+ remainingItemsClass_: function(expanded) {
+ return expanded ? 'visible-item' : 'hidden-item';
+ },
});
diff --git a/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html b/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
index ec3fad23b77..dbbc94a3556 100644
--- a/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
+++ b/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
@@ -2,8 +2,10 @@
<link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html">
<link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-pages/iron-pages.html">
<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
<link rel="import" href="chrome://resources/polymer/v1_0/paper-spinner/paper-spinner-lite.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-tabs/paper-tabs.html">
<link rel="import" href="../i18n_setup.html">
<link rel="import" href="clear_browsing_data_browser_proxy.html">
<link rel="import" href="history_deletion_dialog.html">
@@ -12,12 +14,29 @@
<link rel="import" href="../controls/settings_dropdown_menu.html">
<link rel="import" href="../icons.html">
<link rel="import" href="../settings_shared_css.html">
+<link rel="import" href="../settings_vars_css.html">
-<!-- This file is forked as clear_browsing_data_dialog_tabs.html until the new
- CBD UI is launched. -->
<dom-module id="settings-clear-browsing-data-dialog">
<template>
<style include="settings-shared">
+ :host {
+ /* Fixed height to allow multiple tabs with different height.
+ * The last entry in the advanced tab should show half an entry.
+ * crbug.com/652027 */
+ --body-container-height: 322px;
+ }
+
+ #clearBrowsingDataDialog {
+ --cr-dialog-top-container-min-height: 42px;
+ --cr-dialog-title: {
+ padding-bottom: 8px;
+ };
+ --cr-dialog-body-container: {
+ border-top: 1px solid var(--paper-grey-300);
+ height: var(--body-container-height);
+ };
+ }
+
#clearBrowsingDataDialog:not(.fully-rendered) {
visibility: hidden;
}
@@ -26,6 +45,16 @@
color: var(--paper-grey-600);
}
+ #clearBrowsingDataDialog [slot=body] {
+ padding-top: 8px;
+ }
+
+ #importantSitesDialog {
+ --cr-dialog-body-container: {
+ height: var(--body-container-height);
+ };
+ }
+
.row {
align-items: center;
display: flex;
@@ -43,56 +72,36 @@
--settings-row-two-line-min-height: 48px;
--settings-checkbox-label: {
line-height: 1.25rem;
- };
- }
-
- #generalFooter {
- margin: 0;
- min-height: 18px;
- }
-
- #generalFooter iron-icon {
- height: 18px;
- padding: 1px;
- width: 18px;
- }
-
- #googleFooter {
- margin: 0 0 0.8em 0;
- min-height: 16px;
- }
-
- #googleFooter iron-icon {
- height: 16px;
- padding: 2px;
- width: 16px;
- }
-
- [slot=footer] iron-icon {
- margin: auto;
+ }
}
- .clear-browsing-data-footer {
- -webkit-padding-start: 4px;
- align-items: flex-start;
- display: flex;
- line-height: 1.538em; /* 20px/13px */
+ #basic-tab settings-checkbox + settings-checkbox {
+ --settings-checkbox-margin-top: 12px;
}
- .clear-browsing-data-footer .footer-text {
- -webkit-margin-start: 16px;
+ paper-tabs {
+ --paper-tabs-selection-bar-color: var(--google-blue-500);
+ --paper-tabs: {
+ font-size: 100%;
+ height: 40px;
+ }
}
- .clear-browsing-data-footer iron-icon {
- flex-shrink: 0;
+ paper-tab {
+ --paper-tab-content: {
+ color: var(--google-blue-700);
+ };
+ --paper-tab-content-unselected: {
+ opacity: 1;
+ color: var(--paper-grey-600);
+ };
}
- .clear-browsing-data-footer a {
- text-decoration: none;
+ .time-range-row {
+ margin-bottom: 12px;
}
- #clearFrom {
- -webkit-margin-start: 0.5em;
+ .time-range-select {
/* Adjust for md-select-underline and 1px additional bottom padding
* to keep md-select's text (without the underline) aligned with
* neighboring text that does not have an underline. */
@@ -103,115 +112,153 @@
font-size: calc(13 / 15 * 100%);
padding-top: 8px;
}
-
- /* Cap the height on smaller screens to avoid unfavorable clipping.
- * Replace the bottom margin with padding to avoid the gap between
- * the scrollbar and the bottom separator. */
- @media all and (max-height: 724px) {
- #clearBrowsingDataDialog {
- /* crbug.com/652027: Show four and a *half* items in the list. */
- --cr-dialog-body-container: {
- max-height: 280px;
- };
- }
- }
</style>
<dialog is="cr-dialog" id="clearBrowsingDataDialog"
on-close="onClearBrowsingDataDialogClose_"
- close-text="$i18n{close}" ignore-popstate>
- <div slot="title">$i18n{clearBrowsingData}</div>
+ close-text="$i18n{close}" ignore-popstate has-tabs>
+ <div slot="title">
+ <div>$i18n{clearBrowsingData}</div>
+ </div>
+ <div slot="header">
+ <paper-tabs noink on-selected-changed="recordTabChange_"
+ selected="{{prefs.browser.last_clear_browsing_data_tab.value}}">
+ <paper-tab>$i18n{basicPageTitle}</paper-tab>
+ <paper-tab>$i18n{advancedPageTitle}</paper-tab>
+ </paper-tabs>
+ </div>
<div slot="body">
- <div class="row">
- $i18n{clearFollowingItemsFrom}
- <settings-dropdown-menu id="clearFrom"
- label="$i18n{clearFollowingItemsFrom}"
- pref="{{prefs.browser.clear_data.time_period}}"
- menu-options="[[clearFromOptions_]]">
- </settings-dropdown-menu>
- </div>
- <!-- Note: whether these checkboxes are checked are ignored if deleting
- history is disabled (i.e. supervised users, policy), so it's OK to
- have a hidden checkbox that's also checked (as the C++ accounts for
- whether a user is allowed to delete history independently). -->
- <settings-checkbox id="browsingCheckbox" class="browsing-data-checkbox"
- pref="{{prefs.browser.clear_data.browsing_history}}"
- label="$i18n{clearBrowsingHistory}"
- sub-label="[[counters_.browsing_history]]"
- disabled="[[clearingInProgress_]]"
- hidden="[[isSupervised_]]">
- </settings-checkbox>
- <settings-checkbox id="downloadCheckbox" class="browsing-data-checkbox"
- pref="{{prefs.browser.clear_data.download_history}}"
- label="$i18n{clearDownloadHistory}"
- sub-label="[[counters_.download_history]]"
- disabled="[[clearingInProgress_]]"
- hidden="[[isSupervised_]]">
- </settings-checkbox>
- <settings-checkbox id="cacheCheckbox" class="browsing-data-checkbox"
- pref="{{prefs.browser.clear_data.cache}}"
- label="$i18n{clearCache}"
- sub-label="[[counters_.cache]]"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- <settings-checkbox id="cookiesCheckbox" class="browsing-data-checkbox"
- pref="{{prefs.browser.clear_data.cookies}}"
- label="$i18n{clearCookies}"
- sub-label="$i18n{clearCookiesCounter}"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- <settings-checkbox class="browsing-data-checkbox"
- pref="{{prefs.browser.clear_data.passwords}}"
- label="$i18n{clearPasswords}"
- sub-label="[[counters_.passwords]]"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- <settings-checkbox class="browsing-data-checkbox"
- pref="{{prefs.browser.clear_data.form_data}}"
- label="$i18n{clearFormData}"
- sub-label="[[counters_.form_data]]"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- <settings-checkbox class="browsing-data-checkbox"
- pref="{{prefs.browser.clear_data.hosted_apps_data}}"
- label="$i18n{clearHostedAppData}"
- sub-label="[[counters_.hosted_apps_data]]"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- <settings-checkbox class="browsing-data-checkbox"
- pref="{{prefs.browser.clear_data.media_licenses}}"
- label="$i18n{clearMediaLicenses}"
- sub-label="[[counters_.media_licenses]]"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
+ <iron-pages id="tabs"
+ selected="[[prefs.browser.last_clear_browsing_data_tab.value]]">
+ <div id="basic-tab">
+ <div class="row time-range-row">
+ <span class="time-range-label">
+ $i18n{clearTimeRange}
+ </span>
+ <settings-dropdown-menu id="clearFromBasic"
+ class="time-range-select"
+ label="$i18n{clearTimeRange}"
+ pref="{{prefs.browser.clear_data.time_period_basic}}"
+ menu-options="[[clearFromOptions_]]">
+ </settings-dropdown-menu>
+ </div>
+ <!-- Note: whether these checkboxes are checked are ignored if
+ deleting history is disabled (i.e. supervised users, policy),
+ so it's OK to have a hidden checkbox that's also checked (as
+ the C++ accounts for whether a user is allowed to delete
+ history independently). -->
+ <settings-checkbox id="browsingCheckboxBasic"
+ pref="{{prefs.browser.clear_data.browsing_history_basic}}"
+ label="$i18n{clearBrowsingHistory}"
+ sub-label-html="[[browsingCheckboxLabel_(
+ isSignedIn_, isSyncingHistory_,
+ '$i18nPolymer{clearBrowsingHistorySummary}',
+ '$i18nPolymer{clearBrowsingHistorySummarySignedIn}',
+ '$i18nPolymer{clearBrowsingHistorySummarySynced}')]]"
+ disabled="[[clearingInProgress_]]"
+ hidden="[[isSupervised_]]">
+ </settings-checkbox>
+ <settings-checkbox id="cookiesCheckboxBasic"
+ class="cookies-checkbox"
+ pref="{{prefs.browser.clear_data.cookies_basic}}"
+ label="$i18n{clearCookies}"
+ sub-label="$i18n{clearCookiesSummary}"
+ disabled="[[clearingInProgress_]]">
+ </settings-checkbox>
+ <settings-checkbox id="cacheCheckboxBasic"
+ class="cache-checkbox"
+ pref="{{prefs.browser.clear_data.cache_basic}}"
+ label="$i18n{clearCache}"
+ sub-label="[[counters_.cache_basic]]"
+ disabled="[[clearingInProgress_]]">
+ </settings-checkbox>
+ </div>
+ <div id="advanced-tab">
+ <div class="row time-range-row">
+ <span class="time-range-label">
+ $i18n{clearTimeRange}
+ </span>
+ <settings-dropdown-menu id="clearFrom"
+ class="time-range-select"
+ label="$i18n{clearTimeRange}"
+ pref="{{prefs.browser.clear_data.time_period}}"
+ menu-options="[[clearFromOptions_]]">
+ </settings-dropdown-menu>
+ </div>
+ <settings-checkbox id="browsingCheckbox"
+ pref="{{prefs.browser.clear_data.browsing_history}}"
+ label="$i18n{clearBrowsingHistory}"
+ sub-label="[[counters_.browsing_history]]"
+ disabled="[[clearingInProgress_]]"
+ hidden="[[isSupervised_]]">
+ </settings-checkbox>
+ <settings-checkbox id="downloadCheckbox"
+ pref="{{prefs.browser.clear_data.download_history}}"
+ label="$i18n{clearDownloadHistory}"
+ sub-label="[[counters_.download_history]]"
+ disabled="[[clearingInProgress_]]"
+ hidden="[[isSupervised_]]">
+ </settings-checkbox>
+ <settings-checkbox id="cookiesCheckbox"
+ class="cookies-checkbox"
+ pref="{{prefs.browser.clear_data.cookies}}"
+ label="$i18n{clearCookies}"
+ sub-label="[[counters_.cookies]]"
+ disabled="[[clearingInProgress_]]">
+ </settings-checkbox>
+ <settings-checkbox id="cacheCheckbox"
+ class="cache-checkbox"
+ pref="{{prefs.browser.clear_data.cache}}"
+ label="$i18n{clearCache}"
+ sub-label="[[counters_.cache]]"
+ disabled="[[clearingInProgress_]]">
+ </settings-checkbox>
+ <settings-checkbox
+ pref="{{prefs.browser.clear_data.passwords}}"
+ label="$i18n{clearPasswords}"
+ sub-label="[[counters_.passwords]]"
+ disabled="[[clearingInProgress_]]">
+ </settings-checkbox>
+ <settings-checkbox
+ pref="{{prefs.browser.clear_data.form_data}}"
+ label="$i18n{clearFormData}"
+ sub-label="[[counters_.form_data]]"
+ disabled="[[clearingInProgress_]]">
+ </settings-checkbox>
+ <settings-checkbox
+ pref="{{prefs.browser.clear_data.site_settings}}"
+ label="[[siteSettingsLabel_(
+ '$i18nPolymer{siteSettings}',
+ '$i18nPolymer{contentSettings}')]]"
+ sub-label="[[counters_.site_settings]]"
+ disabled="[[clearingInProgress_]]">
+ </settings-checkbox>
+ <settings-checkbox
+ pref="{{prefs.browser.clear_data.hosted_apps_data}}"
+ label="$i18n{clearHostedAppData}"
+ sub-label="[[counters_.hosted_apps_data]]"
+ disabled="[[clearingInProgress_]]">
+ </settings-checkbox>
+ <settings-checkbox
+ pref="{{prefs.browser.clear_data.media_licenses}}"
+ label="$i18n{clearMediaLicenses}"
+ sub-label="[[counters_.media_licenses]]"
+ disabled="[[clearingInProgress_]]">
+ </settings-checkbox>
+ </div>
+ </iron-pages>
</div>
<div slot="button-container">
<paper-spinner-lite active="[[clearingInProgress_]]">
</paper-spinner-lite>
<paper-button class="cancel-button" disabled="[[clearingInProgress_]]"
- on-tap="onCancelTap_">$i18n{cancel}</paper-button>
+ on-click="onCancelTap_">$i18n{cancel}</paper-button>
<paper-button id="clearBrowsingDataConfirm"
class="action-button" disabled="[[clearingInProgress_]]"
- on-tap="onClearBrowsingDataTap_">
- $i18n{clearBrowsingData}
+ on-click="onClearBrowsingDataTap_">
+ $i18n{clearData}
</paper-button>
</div>
- <div slot="footer">
- <div id="googleFooter" class="clear-browsing-data-footer">
- <iron-icon icon="settings:googleg"></iron-icon>
- <div class="footer-text">$i18nRaw{otherFormsOfBrowsingHistory}</div>
- </div>
- <div id="generalFooter" class="clear-browsing-data-footer">
- <iron-icon icon="settings:info"></iron-icon>
- <div class="footer-text">
- <span id="syncedDataSentence">$i18n{clearsSyncedData}</span>
- <span>$i18n{warnAboutNonClearedData}</span>
- <a id="clear-browser-data-old-learn-more-link"
- href="$i18n{clearBrowsingDataLearnMoreUrl}"
- target="_blank">$i18n{learnMore}</a>
- </div>
- </div>
- </div>
</dialog>
<template is="dom-if" if="[[showImportantSitesDialog_]]">
@@ -220,13 +267,12 @@
<div slot="title">
$i18n{clearBrowsingData}
<div class="secondary">
- <template is="dom-if"
- if="[[!prefs.browser.clear_data.cache.value]]">
+ <span hidden$="[[showImportantSitesCacheSubtitle_]]">
$i18n{importantSitesSubtitleCookies}
- </template>
- <template is="dom-if" if="[[prefs.browser.clear_data.cache.value]]">
+ </span>
+ <span hidden$="[[!showImportantSitesCacheSubtitle_]]">
$i18n{importantSitesSubtitleCookiesAndCache}
- </template>
+ </span>
</div>
</div>
<div slot="body">
@@ -243,10 +289,10 @@
<paper-spinner-lite active="[[clearingInProgress_]]">
</paper-spinner-lite>
<paper-button class="cancel-button" disabled="[[clearingInProgress_]]"
- on-tap="onImportantSitesCancelTap_">$i18n{cancel}</paper-button>
+ on-click="onImportantSitesCancelTap_">$i18n{cancel}</paper-button>
<paper-button id="importantSitesConfirm"
class="action-button" disabled="[[clearingInProgress_]]"
- on-tap="onImportantSitesConfirmTap_">
+ on-click="onImportantSitesConfirmTap_">
$i18n{importantSitesConfirm}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.js b/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.js
index 60ec1ccbf33..97beb3c7906 100644
--- a/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.js
+++ b/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.js
@@ -3,16 +3,13 @@
// found in the LICENSE file.
/**
- * @fileoverview 'settings-clear-browsing-data-dialog' allows the user to delete
- * browsing data that has been cached by Chromium.
- *
- * This file is forked as clear_browsing_data_dialog_tabs.js until the new
- * CBD UI is launched.
+ * @fileoverview 'settings-clear-browsing-data-dialog' allows the user to
+ * delete browsing data that has been cached by Chromium.
*/
Polymer({
is: 'settings-clear-browsing-data-dialog',
- behaviors: [WebUIListenerBehavior],
+ behaviors: [WebUIListenerBehavior, settings.RouteObserverBehavior],
properties: {
/**
@@ -45,11 +42,11 @@ Polymer({
readOnly: true,
type: Array,
value: [
- {value: 0, name: loadTimeData.getString('clearDataHour')},
- {value: 1, name: loadTimeData.getString('clearDataDay')},
- {value: 2, name: loadTimeData.getString('clearDataWeek')},
- {value: 3, name: loadTimeData.getString('clearData4Weeks')},
- {value: 4, name: loadTimeData.getString('clearDataEverything')},
+ {value: 0, name: loadTimeData.getString('clearPeriodHour')},
+ {value: 1, name: loadTimeData.getString('clearPeriod24Hours')},
+ {value: 2, name: loadTimeData.getString('clearPeriod7Days')},
+ {value: 3, name: loadTimeData.getString('clearPeriod4Weeks')},
+ {value: 4, name: loadTimeData.getString('clearPeriodEverything')},
],
},
@@ -73,6 +70,18 @@ Polymer({
value: false,
},
+ /** @private */
+ isSignedIn_: {
+ type: Boolean,
+ value: false,
+ },
+
+ /** @private */
+ isSyncingHistory_: {
+ type: Boolean,
+ value: false,
+ },
+
/** @private {!Array<ImportantSite>} */
importantSites_: {
type: Array,
@@ -90,7 +99,25 @@ Polymer({
},
/** @private */
- showImportantSitesDialog_: {type: Boolean, value: false},
+ showImportantSitesDialog_: {
+ type: Boolean,
+ value: false,
+ },
+
+ /** @private */
+ showImportantSitesCacheSubtitle_: {
+ type: Boolean,
+ value: false,
+ },
+
+ /**
+ * Time in ms, when the dialog was opened.
+ * @private
+ */
+ dialogOpenedTime_: {
+ type: Number,
+ value: 0,
+ }
},
/** @private {settings.ClearBrowsingDataBrowserProxy} */
@@ -98,7 +125,6 @@ Polymer({
/** @override */
ready: function() {
- this.$.clearFrom.menuOptions = this.clearFromOptions_;
this.addWebUIListener(
'update-sync-state', this.updateSyncState_.bind(this));
this.addWebUIListener(
@@ -109,6 +135,7 @@ Polymer({
attached: function() {
this.browserProxy_ =
settings.ClearBrowsingDataBrowserProxyImpl.getInstance();
+ this.dialogOpenedTime_ = Date.now();
this.browserProxy_.initialize().then(() => {
this.$.clearBrowsingDataDialog.showModal();
});
@@ -121,21 +148,67 @@ Polymer({
},
/**
- * Updates the footer to show only those sentences that are relevant to this
- * user.
+ * Record visits to the CBD dialog.
+ *
+ * settings.RouteObserverBehavior
+ * @param {!settings.Route} currentRoute
+ * @protected
+ */
+ currentRouteChanged: function(currentRoute) {
+ if (currentRoute == settings.routes.CLEAR_BROWSER_DATA) {
+ chrome.metricsPrivate.recordUserAction('ClearBrowsingData_DialogCreated');
+ this.dialogOpenedTime_ = Date.now();
+ }
+ },
+
+ /**
+ * Updates the history description to show the relevant information
+ * depending on sync and signin state.
+ *
* @param {boolean} signedIn Whether the user is signed in.
- * @param {boolean} syncing Whether the user is syncing data.
- * @param {boolean} otherFormsOfBrowsingHistory Whether the user has other
- * forms of browsing history in their account.
+ * @param {boolean} syncing Whether the user is syncing history.
* @private
*/
- updateSyncState_: function(signedIn, syncing, otherFormsOfBrowsingHistory) {
- this.$.googleFooter.hidden = !otherFormsOfBrowsingHistory;
- this.$.syncedDataSentence.hidden = !syncing;
+ updateSyncState_: function(signedIn, syncing) {
+ this.isSignedIn_ = signedIn;
+ this.isSyncingHistory_ = syncing;
this.$.clearBrowsingDataDialog.classList.add('fully-rendered');
},
/**
+ * Choose a summary checkbox label.
+ * @param {boolean} isSignedIn
+ * @param {boolean} isSyncingHistory
+ * @param {string} historySummary
+ * @param {string} historySummarySigned
+ * @param {string} historySummarySynced
+ * @return {string}
+ * @private
+ */
+ browsingCheckboxLabel_: function(
+ isSignedIn, isSyncingHistory, historySummary, historySummarySigned,
+ historySummarySynced) {
+ if (isSyncingHistory) {
+ return historySummarySynced;
+ } else if (isSignedIn) {
+ return historySummarySigned;
+ }
+ return historySummary;
+ },
+
+ /**
+ * Choose a content/site settings label.
+ * @param {string} siteSettings
+ * @param {string} contentSettings
+ * @return {string}
+ * @private
+ */
+ siteSettingsLabel_: function(siteSettings, contentSettings) {
+ return loadTimeData.getBoolean('enableSiteSettings') ? siteSettings :
+ contentSettings;
+ },
+
+ /**
* Updates the text of a browsing data counter corresponding to the given
* preference.
* @param {string} prefName Browsing data type deletion preference.
@@ -156,8 +229,10 @@ Polymer({
shouldShowImportantSites_: function() {
if (!this.importantSitesFlagEnabled_)
return false;
- if (!this.$.cookiesCheckbox.checked)
+ const tab = this.$.tabs.selectedItem;
+ if (!tab.querySelector('.cookies-checkbox').checked) {
return false;
+ }
const haveImportantSites = this.importantSites_.length > 0;
chrome.send(
@@ -172,12 +247,13 @@ Polymer({
*/
onClearBrowsingDataTap_: function() {
if (this.shouldShowImportantSites_()) {
+ const tab = this.$.tabs.selectedItem;
this.showImportantSitesDialog_ = true;
+ this.showImportantSitesCacheSubtitle_ =
+ tab.querySelector('.cache-checkbox').checked;
this.$.clearBrowsingDataDialog.close();
// Show important sites dialog after dom-if is applied.
- this.async(function() {
- this.$$('#importantSitesDialog').showModal();
- });
+ this.async(() => this.$$('#importantSitesDialog').showModal());
} else {
this.clearBrowsingData_();
}
@@ -200,21 +276,31 @@ Polymer({
*/
clearBrowsingData_: function() {
this.clearingInProgress_ = true;
+ const tab = this.$.tabs.selectedItem;
- const checkboxes = this.root.querySelectorAll('.browsing-data-checkbox');
+ const checkboxes = tab.querySelectorAll('settings-checkbox');
const dataTypes = [];
checkboxes.forEach((checkbox) => {
if (checkbox.checked)
dataTypes.push(checkbox.pref.key);
});
- const timePeriod = this.$.clearFrom.pref.value;
+ const timePeriod = tab.querySelector('.time-range-select').pref.value;
+
+ if (tab.id == 'basic-tab') {
+ chrome.metricsPrivate.recordUserAction('ClearBrowsingData_BasicTab');
+ } else {
+ chrome.metricsPrivate.recordUserAction('ClearBrowsingData_AdvancedTab');
+ }
this.browserProxy_
.clearBrowsingData(dataTypes, timePeriod, this.importantSites_)
.then(shouldShowNotice => {
this.clearingInProgress_ = false;
this.showHistoryDeletionDialog_ = shouldShowNotice;
+ chrome.metricsPrivate.recordMediumTime(
+ 'History.ClearBrowsingData.TimeSpentInDialog',
+ Date.now() - this.dialogOpenedTime_);
if (!shouldShowNotice)
this.closeDialogs_();
});
@@ -257,4 +343,20 @@ Polymer({
this.showHistoryDeletionDialog_ = false;
this.closeDialogs_();
},
+
+ /**
+ * Records an action when the user changes between the basic and advanced tab.
+ * @param {!Event} event
+ * @private
+ */
+ recordTabChange_: function(event) {
+ if (event.detail.value == 0) {
+ chrome.metricsPrivate.recordUserAction(
+ 'ClearBrowsingData_SwitchTo_BasicTab');
+ } else {
+ chrome.metricsPrivate.recordUserAction(
+ 'ClearBrowsingData_SwitchTo_AdvancedTab');
+ }
+ },
+
});
diff --git a/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.html b/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.html
deleted file mode 100644
index b9118df038f..00000000000
--- a/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.html
+++ /dev/null
@@ -1,311 +0,0 @@
-<link rel="import" href="chrome://resources/html/polymer.html">
-
-<link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html">
-<link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/iron-pages/iron-pages.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/paper-spinner/paper-spinner-lite.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/paper-tabs/paper-tabs.html">
-<link rel="import" href="../i18n_setup.html">
-<link rel="import" href="clear_browsing_data_browser_proxy.html">
-<link rel="import" href="history_deletion_dialog.html">
-<link rel="import" href="../controls/important_site_checkbox.html">
-<link rel="import" href="../controls/settings_checkbox.html">
-<link rel="import" href="../controls/settings_dropdown_menu.html">
-<link rel="import" href="../icons.html">
-<link rel="import" href="../settings_shared_css.html">
-<link rel="import" href="../settings_vars_css.html">
-
-<!-- This file is a fork of clear_browsing_data_dialog.html until the new CBD
- UI is launched. -->
-<dom-module id="settings-clear-browsing-data-dialog-tabs">
- <template>
- <style include="settings-shared">
- :host {
- /* Fixed height to allow multiple tabs with different height.
- * The last entry in the advanced tab should show half an entry.
- * crbug.com/652027 */
- --body-container-height: 322px;
- }
-
- #clearBrowsingDataDialog {
- --cr-dialog-top-container-min-height: 42px;
- --cr-dialog-title: {
- padding-bottom: 8px;
- };
- --cr-dialog-body-container: {
- border-top: 1px solid var(--paper-grey-300);
- height: var(--body-container-height);
- };
- }
-
- #clearBrowsingDataDialog:not(.fully-rendered) {
- visibility: hidden;
- }
-
- #clearBrowsingDataDialog [slot=footer] {
- color: var(--paper-grey-600);
- }
-
- #clearBrowsingDataDialog [slot=body] {
- padding-top: 8px;
- }
-
- #importantSitesDialog {
- --cr-dialog-body-container: {
- height: var(--body-container-height);
- };
- }
-
- .row {
- align-items: center;
- display: flex;
- min-height: 40px;
- }
-
- paper-spinner-lite {
- -webkit-margin-end: 16px;
- margin-bottom: auto;
- margin-top: auto;
- }
-
- settings-checkbox,
- important-site-checkbox {
- --settings-row-two-line-min-height: 48px;
- --settings-checkbox-label: {
- line-height: 1.25rem;
- }
- }
-
- #basic-tab settings-checkbox + settings-checkbox {
- --settings-checkbox-margin-top: 12px;
- }
-
- paper-tabs {
- --paper-tabs-selection-bar-color: var(--google-blue-500);
- --paper-tabs: {
- font-size: 100%;
- height: 40px;
- }
- }
-
- paper-tab {
- --paper-tab-content: {
- color: var(--google-blue-700);
- };
- --paper-tab-content-unselected: {
- opacity: 1;
- color: var(--paper-grey-600);
- };
- }
-
- .time-range-row {
- margin-bottom: 12px;
- }
-
- .time-range-select {
- /* Adjust for md-select-underline and 1px additional bottom padding
- * to keep md-select's text (without the underline) aligned with
- * neighboring text that does not have an underline. */
- margin-top: 3px;
- }
-
- [slot=title] .secondary {
- font-size: calc(13 / 15 * 100%);
- padding-top: 8px;
- }
- </style>
-
- <dialog is="cr-dialog" id="clearBrowsingDataDialog"
- on-close="onClearBrowsingDataDialogClose_"
- close-text="$i18n{close}" ignore-popstate has-tabs>
- <div slot="title">
- <div>$i18n{clearBrowsingData}</div>
- </div>
- <div slot="header">
- <paper-tabs noink on-selected-changed="recordTabChange_"
- selected="{{prefs.browser.last_clear_browsing_data_tab.value}}">
- <paper-tab>$i18n{basicPageTitle}</paper-tab>
- <paper-tab>$i18n{advancedPageTitle}</paper-tab>
- </paper-tabs>
- </div>
- <div slot="body">
- <iron-pages id="tabs"
- selected="[[prefs.browser.last_clear_browsing_data_tab.value]]">
- <div id="basic-tab">
- <div class="row time-range-row">
- <span class="time-range-label">
- $i18n{clearTimeRange}
- </span>
- <settings-dropdown-menu id="clearFromBasic"
- class="time-range-select"
- label="$i18n{clearTimeRange}"
- pref="{{prefs.browser.clear_data.time_period_basic}}"
- menu-options="[[clearFromOptions_]]">
- </settings-dropdown-menu>
- </div>
- <!-- Note: whether these checkboxes are checked are ignored if
- deleting history is disabled (i.e. supervised users, policy),
- so it's OK to have a hidden checkbox that's also checked (as
- the C++ accounts for whether a user is allowed to delete
- history independently). -->
- <settings-checkbox id="browsingCheckboxBasic"
- pref="{{prefs.browser.clear_data.browsing_history_basic}}"
- label="$i18n{clearBrowsingHistory}"
- sub-label-html="[[browsingCheckboxLabel_(
- isSignedIn_, isSyncingHistory_,
- '$i18nPolymer{clearBrowsingHistorySummary}',
- '$i18nPolymer{clearBrowsingHistorySummarySignedIn}',
- '$i18nPolymer{clearBrowsingHistorySummarySynced}')]]"
- disabled="[[clearingInProgress_]]"
- hidden="[[isSupervised_]]">
- </settings-checkbox>
- <settings-checkbox id="cookiesCheckboxBasic"
- class="cookies-checkbox"
- pref="{{prefs.browser.clear_data.cookies_basic}}"
- label="$i18n{clearCookies}"
- sub-label="$i18n{clearCookiesSummary}"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- <settings-checkbox id="cacheCheckboxBasic"
- class="cache-checkbox"
- pref="{{prefs.browser.clear_data.cache_basic}}"
- label="$i18n{clearCache}"
- sub-label="[[counters_.cache_basic]]"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- </div>
- <div id="advanced-tab">
- <div class="row time-range-row">
- <span class="time-range-label">
- $i18n{clearTimeRange}
- </span>
- <settings-dropdown-menu id="clearFrom"
- class="time-range-select"
- label="$i18n{clearTimeRange}"
- pref="{{prefs.browser.clear_data.time_period}}"
- menu-options="[[clearFromOptions_]]">
- </settings-dropdown-menu>
- </div>
- <settings-checkbox id="browsingCheckbox"
- pref="{{prefs.browser.clear_data.browsing_history}}"
- label="$i18n{clearBrowsingHistory}"
- sub-label="[[counters_.browsing_history]]"
- disabled="[[clearingInProgress_]]"
- hidden="[[isSupervised_]]">
- </settings-checkbox>
- <settings-checkbox id="downloadCheckbox"
- pref="{{prefs.browser.clear_data.download_history}}"
- label="$i18n{clearDownloadHistory}"
- sub-label="[[counters_.download_history]]"
- disabled="[[clearingInProgress_]]"
- hidden="[[isSupervised_]]">
- </settings-checkbox>
- <settings-checkbox id="cookiesCheckbox"
- class="cookies-checkbox"
- pref="{{prefs.browser.clear_data.cookies}}"
- label="$i18n{clearCookies}"
- sub-label="[[counters_.cookies]]"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- <settings-checkbox id="cacheCheckbox"
- class="cache-checkbox"
- pref="{{prefs.browser.clear_data.cache}}"
- label="$i18n{clearCache}"
- sub-label="[[counters_.cache]]"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- <settings-checkbox
- pref="{{prefs.browser.clear_data.passwords}}"
- label="$i18n{clearPasswords}"
- sub-label="[[counters_.passwords]]"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- <settings-checkbox
- pref="{{prefs.browser.clear_data.form_data}}"
- label="$i18n{clearFormData}"
- sub-label="[[counters_.form_data]]"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- <settings-checkbox
- pref="{{prefs.browser.clear_data.site_settings}}"
- label="[[siteSettingsLabel_(
- '$i18nPolymer{siteSettings}',
- '$i18nPolymer{contentSettings}')]]"
- sub-label="[[counters_.site_settings]]"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- <settings-checkbox
- pref="{{prefs.browser.clear_data.hosted_apps_data}}"
- label="$i18n{clearHostedAppData}"
- sub-label="[[counters_.hosted_apps_data]]"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- <settings-checkbox
- pref="{{prefs.browser.clear_data.media_licenses}}"
- label="$i18n{clearMediaLicenses}"
- sub-label="[[counters_.media_licenses]]"
- disabled="[[clearingInProgress_]]">
- </settings-checkbox>
- </div>
- </iron-pages>
- </div>
- <div slot="button-container">
- <paper-spinner-lite active="[[clearingInProgress_]]">
- </paper-spinner-lite>
- <paper-button class="cancel-button" disabled="[[clearingInProgress_]]"
- on-tap="onCancelTap_">$i18n{cancel}</paper-button>
- <paper-button id="clearBrowsingDataConfirm"
- class="action-button" disabled="[[clearingInProgress_]]"
- on-tap="onClearBrowsingDataTap_">
- $i18n{clearData}
- </paper-button>
- </div>
- </dialog>
-
- <template is="dom-if" if="[[showImportantSitesDialog_]]">
- <dialog is="cr-dialog" id="importantSitesDialog" close-text="$i18n{close}"
- show-scroll-borders ignore-popstate>
- <div slot="title">
- $i18n{clearBrowsingData}
- <div class="secondary">
- <span hidden$="[[showImportantSitesCacheSubtitle_]]">
- $i18n{importantSitesSubtitleCookies}
- </span>
- <span hidden$="[[!showImportantSitesCacheSubtitle_]]">
- $i18n{importantSitesSubtitleCookiesAndCache}
- </span>
- </div>
- </div>
- <div slot="body">
- <template is="dom-repeat" items="[[importantSites_]]">
- <div class="row">
- <important-site-checkbox
- site="[[item]]"
- disabled="[[clearingInProgress_]]">
- </important-site-checkbox>
- </div>
- </template>
- </div>
- <div slot="button-container">
- <paper-spinner-lite active="[[clearingInProgress_]]">
- </paper-spinner-lite>
- <paper-button class="cancel-button" disabled="[[clearingInProgress_]]"
- on-tap="onImportantSitesCancelTap_">$i18n{cancel}</paper-button>
- <paper-button id="importantSitesConfirm"
- class="action-button" disabled="[[clearingInProgress_]]"
- on-tap="onImportantSitesConfirmTap_">
- $i18n{importantSitesConfirm}
- </paper-button>
- </div>
- </dialog>
- </template>
-
- <template is="dom-if" if="[[showHistoryDeletionDialog_]]" restamp>
- <settings-history-deletion-dialog id="notice"
- on-close="onHistoryDeletionDialogClose_">
- </settings-history-deletion-dialog>
- </template>
- </template>
- <script src="clear_browsing_data_dialog_tabs.js"></script>
-</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.js b/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.js
deleted file mode 100644
index 27f055c5e4b..00000000000
--- a/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.js
+++ /dev/null
@@ -1,367 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-/**
- * @fileoverview 'settings-clear-browsing-data-dialog-tabs' allows the user to
- * delete browsing data that has been cached by Chromium.
- *
- * This file is a fork of clear_browsing_data_dialog.js until the new CBD UI is
- * launched.
- */
-Polymer({
- is: 'settings-clear-browsing-data-dialog-tabs',
-
- behaviors: [WebUIListenerBehavior, settings.RouteObserverBehavior],
-
- properties: {
- /**
- * Preferences state.
- */
- prefs: {
- type: Object,
- notify: true,
- },
-
- /**
- * Results of browsing data counters, keyed by the suffix of
- * the corresponding data type deletion preference, as reported
- * by the C++ side.
- * @private {!Object<string>}
- */
- counters_: {
- type: Object,
- // Will be filled as results are reported.
- value: function() {
- return {};
- }
- },
-
- /**
- * List of options for the dropdown menu.
- * @private {!DropdownMenuOptionList}
- */
- clearFromOptions_: {
- readOnly: true,
- type: Array,
- value: [
- {value: 0, name: loadTimeData.getString('clearPeriodHour')},
- {value: 1, name: loadTimeData.getString('clearPeriod24Hours')},
- {value: 2, name: loadTimeData.getString('clearPeriod7Days')},
- {value: 3, name: loadTimeData.getString('clearPeriod4Weeks')},
- {value: 4, name: loadTimeData.getString('clearPeriodEverything')},
- ],
- },
-
- /** @private */
- clearingInProgress_: {
- type: Boolean,
- value: false,
- },
-
- /** @private */
- isSupervised_: {
- type: Boolean,
- value: function() {
- return loadTimeData.getBoolean('isSupervised');
- },
- },
-
- /** @private */
- showHistoryDeletionDialog_: {
- type: Boolean,
- value: false,
- },
-
- /** @private */
- isSignedIn_: {
- type: Boolean,
- value: false,
- },
-
- /** @private */
- isSyncingHistory_: {
- type: Boolean,
- value: false,
- },
-
- /** @private {!Array<ImportantSite>} */
- importantSites_: {
- type: Array,
- value: function() {
- return [];
- }
- },
-
- /** @private */
- importantSitesFlagEnabled_: {
- type: Boolean,
- value: function() {
- return loadTimeData.getBoolean('importantSitesInCbd');
- },
- },
-
- /** @private */
- showImportantSitesDialog_: {
- type: Boolean,
- value: false,
- },
-
- /** @private */
- showImportantSitesCacheSubtitle_: {
- type: Boolean,
- value: false,
- },
-
- /**
- * Time in ms, when the dialog was opened.
- * @private
- */
- dialogOpenedTime_: {
- type: Number,
- value: 0,
- }
- },
-
- /** @private {settings.ClearBrowsingDataBrowserProxy} */
- browserProxy_: null,
-
- /** @override */
- ready: function() {
- this.addWebUIListener(
- 'update-sync-state', this.updateSyncState_.bind(this));
- this.addWebUIListener(
- 'update-counter-text', this.updateCounterText_.bind(this));
- },
-
- /** @override */
- attached: function() {
- this.browserProxy_ =
- settings.ClearBrowsingDataBrowserProxyImpl.getInstance();
- this.dialogOpenedTime_ = Date.now();
- this.browserProxy_.initialize().then(() => {
- this.$.clearBrowsingDataDialog.showModal();
- });
-
- if (this.importantSitesFlagEnabled_) {
- this.browserProxy_.getImportantSites().then(sites => {
- this.importantSites_ = sites;
- });
- }
- },
-
- /**
- * Record visits to the CBD dialog.
- *
- * settings.RouteObserverBehavior
- * @param {!settings.Route} currentRoute
- * @protected
- */
- currentRouteChanged: function(currentRoute) {
- if (currentRoute == settings.routes.CLEAR_BROWSER_DATA) {
- chrome.metricsPrivate.recordUserAction('ClearBrowsingData_DialogCreated');
- this.dialogOpenedTime_ = Date.now();
- }
- },
-
- /**
- * Updates the history description to show the relevant information
- * depending on sync and signin state.
- *
- * @param {boolean} signedIn Whether the user is signed in.
- * @param {boolean} syncing Whether the user is syncing history.
- * @param {boolean} otherFormsOfBrowsingHistory Whether the user has other
- * forms of browsing history in their account.
- * @private
- */
- updateSyncState_: function(signedIn, syncing, otherFormsOfBrowsingHistory) {
- this.isSignedIn_ = signedIn;
- this.isSyncingHistory_ = syncing;
- this.$.clearBrowsingDataDialog.classList.add('fully-rendered');
- },
-
- /**
- * Choose a summary checkbox label.
- * @param {boolean} isSignedIn
- * @param {boolean} isSyncingHistory
- * @param {string} historySummary
- * @param {string} historySummarySigned
- * @param {string} historySummarySynced
- * @return {string}
- * @private
- */
- browsingCheckboxLabel_: function(
- isSignedIn, isSyncingHistory, historySummary, historySummarySigned,
- historySummarySynced) {
- if (isSyncingHistory) {
- return historySummarySynced;
- } else if (isSignedIn) {
- return historySummarySigned;
- }
- return historySummary;
- },
-
- /**
- * Choose a content/site settings label.
- * @param {string} siteSettings
- * @param {string} contentSettings
- * @return {string}
- * @private
- */
- siteSettingsLabel_: function(siteSettings, contentSettings) {
- return loadTimeData.getBoolean('enableSiteSettings') ? siteSettings :
- contentSettings;
- },
-
- /**
- * Updates the text of a browsing data counter corresponding to the given
- * preference.
- * @param {string} prefName Browsing data type deletion preference.
- * @param {string} text The text with which to update the counter
- * @private
- */
- updateCounterText_: function(prefName, text) {
- // Data type deletion preferences are named "browser.clear_data.<datatype>".
- // Strip the common prefix, i.e. use only "<datatype>".
- const matches = prefName.match(/^browser\.clear_data\.(\w+)$/);
- this.set('counters_.' + assert(matches[1]), text);
- },
-
- /**
- * @return {boolean} Whether the ImportantSites dialog should be shown.
- * @private
- */
- shouldShowImportantSites_: function() {
- if (!this.importantSitesFlagEnabled_)
- return false;
- const tab = this.$.tabs.selectedItem;
- if (!tab.querySelector('.cookies-checkbox').checked) {
- return false;
- }
-
- const haveImportantSites = this.importantSites_.length > 0;
- chrome.send(
- 'metricsHandler:recordBooleanHistogram',
- ['History.ClearBrowsingData.ImportantDialogShown', haveImportantSites]);
- return haveImportantSites;
- },
-
- /**
- * Handles the tap on the Clear Data button.
- * @private
- */
- onClearBrowsingDataTap_: function() {
- if (this.shouldShowImportantSites_()) {
- const tab = this.$.tabs.selectedItem;
- this.showImportantSitesDialog_ = true;
- this.showImportantSitesCacheSubtitle_ =
- tab.querySelector('.cache-checkbox').checked;
- this.$.clearBrowsingDataDialog.close();
- // Show important sites dialog after dom-if is applied.
- this.async(() => this.$$('#importantSitesDialog').showModal());
- } else {
- this.clearBrowsingData_();
- }
- },
-
- /**
- * Handles closing of the clear browsing data dialog. Stops the close
- * event from propagating if another dialog is shown to prevent the
- * privacy-page from closing this dialog.
- * @private
- */
- onClearBrowsingDataDialogClose_: function(event) {
- if (this.showImportantSitesDialog_)
- event.stopPropagation();
- },
-
- /**
- * Clears browsing data and maybe shows a history notice.
- * @private
- */
- clearBrowsingData_: function() {
- this.clearingInProgress_ = true;
- const tab = this.$.tabs.selectedItem;
-
- checkboxes = tab.querySelectorAll('settings-checkbox');
- const dataTypes = [];
- checkboxes.forEach((checkbox) => {
- if (checkbox.checked)
- dataTypes.push(checkbox.pref.key);
- });
-
- const timePeriod = tab.querySelector('.time-range-select').pref.value;
-
- if (tab.id == 'basic-tab') {
- chrome.metricsPrivate.recordUserAction('ClearBrowsingData_BasicTab');
- } else {
- chrome.metricsPrivate.recordUserAction('ClearBrowsingData_AdvancedTab');
- }
-
- this.browserProxy_
- .clearBrowsingData(dataTypes, timePeriod, this.importantSites_)
- .then(shouldShowNotice => {
- this.clearingInProgress_ = false;
- this.showHistoryDeletionDialog_ = shouldShowNotice;
- chrome.metricsPrivate.recordMediumTime(
- 'History.ClearBrowsingData.TimeSpentInDialog',
- Date.now() - this.dialogOpenedTime_);
- if (!shouldShowNotice)
- this.closeDialogs_();
- });
- },
-
- /**
- * Closes the clear browsing data or important site dialog if they are open.
- * @private
- */
- closeDialogs_: function() {
- if (this.$.clearBrowsingDataDialog.open)
- this.$.clearBrowsingDataDialog.close();
- if (this.showImportantSitesDialog_)
- this.$$('#importantSitesDialog').close();
- },
-
- /** @private */
- onCancelTap_: function() {
- this.$.clearBrowsingDataDialog.cancel();
- },
-
- /**
- * Handles the tap confirm button in important sites.
- * @private
- */
- onImportantSitesConfirmTap_: function() {
- this.clearBrowsingData_();
- },
-
- /** @private */
- onImportantSitesCancelTap_: function() {
- /** @type {!CrDialogElement} */ (this.$$('#importantSitesDialog')).cancel();
- },
-
- /**
- * Handles the closing of the notice about other forms of browsing history.
- * @private
- */
- onHistoryDeletionDialogClose_: function() {
- this.showHistoryDeletionDialog_ = false;
- this.closeDialogs_();
- },
-
- /**
- * Records an action when the user changes between the basic and advanced tab.
- * @param {!Event} event
- * @private
- */
- recordTabChange_: function(event) {
- if (event.detail.value == 0) {
- chrome.metricsPrivate.recordUserAction(
- 'ClearBrowsingData_SwitchTo_BasicTab');
- } else {
- chrome.metricsPrivate.recordUserAction(
- 'ClearBrowsingData_SwitchTo_AdvancedTab');
- }
- },
-
-});
diff --git a/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/compiled_resources2.gyp b/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/compiled_resources2.gyp
index 518e48ef804..8660449e98a 100644
--- a/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/compiled_resources2.gyp
+++ b/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/compiled_resources2.gyp
@@ -14,6 +14,7 @@
{
'target_name': 'clear_browsing_data_dialog',
'dependencies': [
+ '<(DEPTH)/third_party/polymer/v1_0/components-chromium/iron-pages/compiled_resources2.gyp:iron-pages-extracted',
'<(DEPTH)/third_party/polymer/v1_0/components-chromium/iron-resizable-behavior/compiled_resources2.gyp:iron-resizable-behavior-extracted',
'<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr',
'<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:load_time_data',
diff --git a/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/history_deletion_dialog.html b/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/history_deletion_dialog.html
index a17572fb569..52429899184 100644
--- a/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/history_deletion_dialog.html
+++ b/chromium/chrome/browser/resources/settings/clear_browsing_data_dialog/history_deletion_dialog.html
@@ -11,7 +11,7 @@
<div slot="title">$i18n{historyDeletionDialogTitle}</div>
<div slot="body">$i18nRaw{historyDeletionDialogBody}</div>
<div slot="button-container">
- <paper-button class="action-button" on-tap="onOkTap_">
+ <paper-button class="action-button" on-click="onOkTap_">
$i18n{historyDeletionDialogOK}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/compiled_resources2.gyp b/chromium/chrome/browser/resources/settings/compiled_resources2.gyp
index a0f14ce056a..f56f7ebe8c4 100644
--- a/chromium/chrome/browser/resources/settings/compiled_resources2.gyp
+++ b/chromium/chrome/browser/resources/settings/compiled_resources2.gyp
@@ -57,6 +57,7 @@
'target_name': 'search_settings',
'dependencies': [
'<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:search_highlight_utils',
],
'includes': ['../../../../third_party/closure_compiler/compile_js2.gypi'],
},
@@ -79,6 +80,7 @@
'default_browser_page/compiled_resources2.gyp:*',
'device_page/compiled_resources2.gyp:*',
'downloads_page/compiled_resources2.gyp:*',
+ 'incompatible_applications_page/compiled_resources2.gyp:*',
'internet_page/compiled_resources2.gyp:*',
'languages_page/compiled_resources2.gyp:*',
'on_startup_page/compiled_resources2.gyp:*',
diff --git a/chromium/chrome/browser/resources/settings/controls/controlled_button.html b/chromium/chrome/browser/resources/settings/controls/controlled_button.html
index e0134790c7d..a5cf488854f 100644
--- a/chromium/chrome/browser/resources/settings/controls/controlled_button.html
+++ b/chromium/chrome/browser/resources/settings/controls/controlled_button.html
@@ -49,7 +49,7 @@
<paper-button disabled="[[enforced_]]">[[label]]</paper-button>
<template is="dom-if" if="[[hasPrefPolicyIndicator(pref.*)]]" restamp>
- <cr-policy-pref-indicator pref="[[pref]]" on-tap="onIndicatorTap_"
+ <cr-policy-pref-indicator pref="[[pref]]" on-click="onIndicatorTap_"
icon-aria-label="[[label]]">
</cr-policy-pref-indicator>
</template>
diff --git a/chromium/chrome/browser/resources/settings/controls/controlled_button.js b/chromium/chrome/browser/resources/settings/controls/controlled_button.js
index 307475678a9..49d46860349 100644
--- a/chromium/chrome/browser/resources/settings/controls/controlled_button.js
+++ b/chromium/chrome/browser/resources/settings/controls/controlled_button.js
@@ -32,7 +32,7 @@ Polymer({
* @private
*/
onIndicatorTap_: function(e) {
- // Disallow <controlled-button on-tap="..."> when controlled.
+ // Disallow <controlled-button on-click="..."> when controlled.
e.preventDefault();
e.stopPropagation();
},
diff --git a/chromium/chrome/browser/resources/settings/controls/controlled_radio_button.html b/chromium/chrome/browser/resources/settings/controls/controlled_radio_button.html
index 10b1bca7fe2..d6fcdf26b06 100644
--- a/chromium/chrome/browser/resources/settings/controls/controlled_radio_button.html
+++ b/chromium/chrome/browser/resources/settings/controls/controlled_radio_button.html
@@ -12,7 +12,7 @@
:host {
--ink-to-circle: calc((var(--paper-radio-button-ink-size) -
var(--paper-radio-button-size)) / 2);
- @apply(--settings-actionable);
+ @apply --settings-actionable;
align-items: center;
display: flex;
outline: none;
@@ -24,7 +24,7 @@
}
#label {
- color: var(--paper-radio-button-label-color, --primary-text-color);
+ color: var(--paper-radio-button-label-color, var(--primary-text-color));
}
.circle,
@@ -53,11 +53,12 @@
.circle {
border: 2px solid var(--paper-radio-button-unchecked-color,
- --primary-text-color);
+ var(--primary-text-color));
}
:host([checked]) .circle {
- border-color: var(--paper-radio-button-checked-color, --primary-color);
+ border-color: var(--paper-radio-button-checked-color,
+ var(--primary-color));
}
.disc {
@@ -69,23 +70,23 @@
:host([checked]) .disc {
background-color: var(--paper-radio-button-checked-color,
- --primary-color);
+ var(--primary-color));
transform: scale(0.5);
}
paper-ripple {
color: var(--paper-radio-button-unchecked-ink-color,
- --primary-text-color);
+ var(--primary-text-color));
opacity: .6;
}
:host([checked]) paper-ripple {
color: var(--paper-radio-button-checked-ink-color,
- --primary-text-color);
+ var(--primary-text-color));
}
:host(:not([controlled_])) {
- @apply(--settings-actionable);
+ @apply --settings-actionable;
}
:host([controlled_]) {
@@ -100,12 +101,12 @@
:host([controlled_]) .circle {
border-color: var(--paper-radio-button-unchecked-color,
- --primary-text-color);
+ var(--primary-text-color));
}
:host([controlled_][checked]) .disc {
background-color: var(--paper-radio-button-unchecked-color,
- --primary-text-color);
+ var(--primary-text-color));
}
:host([controlled_]) #labelWrapper {
@@ -132,7 +133,7 @@
</div>
<template is="dom-if" if="[[showIndicator_(controlled_, name, pref.*)]]">
- <cr-policy-pref-indicator pref="[[pref]]" on-tap="onIndicatorTap_"
+ <cr-policy-pref-indicator pref="[[pref]]" on-click="onIndicatorTap_"
icon-aria-label="[[label]]">
</cr-policy-pref-indicator>
</template>
diff --git a/chromium/chrome/browser/resources/settings/controls/controlled_radio_button.js b/chromium/chrome/browser/resources/settings/controls/controlled_radio_button.js
index ca55d6b2bb1..53bd0505a3c 100644
--- a/chromium/chrome/browser/resources/settings/controls/controlled_radio_button.js
+++ b/chromium/chrome/browser/resources/settings/controls/controlled_radio_button.js
@@ -48,7 +48,6 @@ Polymer({
'blur': 'updatePressed_',
'down': 'updatePressed_',
'focus': 'updatePressed_',
- 'tap': 'onTap_',
'up': 'updatePressed_',
},
@@ -88,17 +87,11 @@ Polymer({
* @private
*/
onIndicatorTap_: function(e) {
- // Disallow <controlled-radio-button on-tap="..."> when controlled.
+ // Disallow <controlled-radio-button on-click="..."> when controlled.
e.preventDefault();
e.stopPropagation();
},
- /** @private */
- onTap_: function() {
- if (!this.controlled_)
- this.checked = true;
- },
-
/**
* @param {!Event} e
* @private
diff --git a/chromium/chrome/browser/resources/settings/controls/extension_controlled_indicator.html b/chromium/chrome/browser/resources/settings/controls/extension_controlled_indicator.html
index ff53538c98f..50e3313c33c 100644
--- a/chromium/chrome/browser/resources/settings/controls/extension_controlled_indicator.html
+++ b/chromium/chrome/browser/resources/settings/controls/extension_controlled_indicator.html
@@ -17,7 +17,7 @@
}
img {
- @apply(--cr-icon-height-width);
+ @apply --cr-icon-height-width;
-webkit-margin-end: 16px;
}
@@ -32,7 +32,7 @@
<img role="presentation" src="chrome://extension-icon/[[extensionId]]/40/1">
<span inner-h-t-m-l="[[getLabel_(extensionId, extensionName)]]"></span>
<template is="dom-if" if="[[extensionCanBeDisabled]]" restamp>
- <paper-button class="secondary-button" on-tap="onDisableTap_">
+ <paper-button class="secondary-button" on-click="onDisableTap_">
$i18n{disable}
</paper-button>
</template>
diff --git a/chromium/chrome/browser/resources/settings/controls/important_site_checkbox.html b/chromium/chrome/browser/resources/settings/controls/important_site_checkbox.html
index 0a0dd1b1937..e70da80b8f5 100644
--- a/chromium/chrome/browser/resources/settings/controls/important_site_checkbox.html
+++ b/chromium/chrome/browser/resources/settings/controls/important_site_checkbox.html
@@ -20,7 +20,7 @@
}
paper-checkbox:not([checked]) .secondary {
- @apply(--settings-secondary-unchecked);
+ @apply --settings-secondary-unchecked;
}
.middot {
@@ -28,7 +28,7 @@
}
.label {
- @apply(--settings-checkbox-label);
+ @apply --settings-checkbox-label;
}
</style>
<div id="outerRow">
diff --git a/chromium/chrome/browser/resources/settings/controls/settings_checkbox.html b/chromium/chrome/browser/resources/settings/controls/settings_checkbox.html
index b46ee716595..0563536cb09 100644
--- a/chromium/chrome/browser/resources/settings/controls/settings_checkbox.html
+++ b/chromium/chrome/browser/resources/settings/controls/settings_checkbox.html
@@ -30,7 +30,7 @@
}
paper-checkbox:not([checked]) .secondary {
- @apply(--settings-secondary-unchecked);
+ @apply --settings-secondary-unchecked;
}
cr-policy-pref-indicator {
@@ -38,7 +38,7 @@
}
.label {
- @apply(--settings-checkbox-label);
+ @apply --settings-checkbox-label;
}
</style>
<div id="outerRow" noSubLabel$="[[!hasSubLabel_(subLabel, subLabelHtml)]]">
diff --git a/chromium/chrome/browser/resources/settings/controls/settings_checkbox.js b/chromium/chrome/browser/resources/settings/controls/settings_checkbox.js
index 3c0e8ded868..c4482b15c39 100644
--- a/chromium/chrome/browser/resources/settings/controls/settings_checkbox.js
+++ b/chromium/chrome/browser/resources/settings/controls/settings_checkbox.js
@@ -33,7 +33,7 @@ Polymer({
subLabelHtmlChanged_: function() {
const links = this.root.querySelectorAll('.secondary.label a');
links.forEach((link) => {
- link.addEventListener('tap', this.stopPropagation);
+ link.addEventListener('click', this.stopPropagation);
});
},
diff --git a/chromium/chrome/browser/resources/settings/controls/settings_toggle_button.html b/chromium/chrome/browser/resources/settings/controls/settings_toggle_button.html
index 7cdb86fdff3..2277abc6f7e 100644
--- a/chromium/chrome/browser/resources/settings/controls/settings_toggle_button.html
+++ b/chromium/chrome/browser/resources/settings/controls/settings_toggle_button.html
@@ -1,5 +1,6 @@
<link rel="import" href="chrome://resources/html/polymer.html">
+<link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html">
<link rel="import" href="chrome://resources/cr_elements/cr_toggle/cr_toggle.html">
<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_pref_indicator.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout-classes.html">
@@ -10,7 +11,7 @@
<template>
<style include="settings-shared iron-flex">
:host {
- @apply(--cr-section);
+ @apply --cr-section;
}
:host(.first),
@@ -29,7 +30,7 @@
}
:host([elide-label]) .label {
- @apply(--settings-text-elide);
+ @apply --cr-text-elide;
}
#outerRow {
diff --git a/chromium/chrome/browser/resources/settings/date_time_page/date_time_page.html b/chromium/chrome/browser/resources/settings/date_time_page/date_time_page.html
index c064fabcbef..20b846cb2e7 100644
--- a/chromium/chrome/browser/resources/settings/date_time_page/date_time_page.html
+++ b/chromium/chrome/browser/resources/settings/date_time_page/date_time_page.html
@@ -45,7 +45,7 @@
if="[[prefs.cros.flags.fine_grained_time_zone_detection_enabled.value]]"
restamp>
<div id="timeZoneSettingsTrigger" class="settings-box first"
- on-tap="onTimeZoneSettings_" actionable>
+ on-click="onTimeZoneSettings_" actionable>
<div id="timeZoneButton" class="two-line">
$i18n{timeZoneButton}
<div class="secondary">
@@ -79,7 +79,7 @@
label="$i18n{use24HourClock}">
</settings-toggle-button>
<div class="settings-box" id="setDateTime" actionable
- on-tap="onSetDateTimeTap_" hidden$="[[!canSetDateTime_]]">
+ on-click="onSetDateTimeTap_" hidden$="[[!canSetDateTime_]]">
<div class="start">$i18n{setDateTime}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label="$i18n{setDateTime}"></button>
diff --git a/chromium/chrome/browser/resources/settings/default_browser_page/default_browser_page.html b/chromium/chrome/browser/resources/settings/default_browser_page/default_browser_page.html
index ee383626bcc..c24783b0bd2 100644
--- a/chromium/chrome/browser/resources/settings/default_browser_page/default_browser_page.html
+++ b/chromium/chrome/browser/resources/settings/default_browser_page/default_browser_page.html
@@ -17,7 +17,7 @@
</div>
<div class="separator"></div>
<paper-button class="secondary-button"
- on-tap="onSetDefaultBrowserTap_">
+ on-click="onSetDefaultBrowserTap_">
$i18n{defaultBrowserMakeDefaultButton}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/device_page/device_page.html b/chromium/chrome/browser/resources/settings/device_page/device_page.html
index 56cc4fcfd76..cf90e9489fb 100644
--- a/chromium/chrome/browser/resources/settings/device_page/device_page.html
+++ b/chromium/chrome/browser/resources/settings/device_page/device_page.html
@@ -24,7 +24,7 @@
focus-config="[[focusConfig_]]">
<neon-animatable id="main" route-path="default">
<div id="pointersRow" class="settings-box first"
- on-tap="onPointersTap_" actionable>
+ on-click="onPointersTap_" actionable>
<div class="start">
[[getPointersTitle_(hasMouse_, hasTouchpad_)]]
</div>
@@ -32,34 +32,34 @@
aria-label$="[[getPointersTitle_(hasMouse_,
hasTouchpad_)]]"></button>
</div>
- <div id="keyboardRow" class="settings-box" on-tap="onKeyboardTap_"
+ <div id="keyboardRow" class="settings-box" on-click="onKeyboardTap_"
actionable>
<div class="start">$i18n{keyboardTitle}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label="$i18n{keyboardTitle}"></button>
</div>
<template is="dom-if" if="[[hasStylus_]]">
- <div id="stylusRow" class="settings-box" on-tap="onStylusTap_"
+ <div id="stylusRow" class="settings-box" on-click="onStylusTap_"
actionable>
<div class="start">$i18n{stylusTitle}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label="$i18n{stylusTitle}"></button>
</div>
</template>
- <div id="displayRow" class="settings-box" on-tap="onDisplayTap_"
+ <div id="displayRow" class="settings-box" on-click="onDisplayTap_"
actionable>
<div class="start">$i18n{displayTitle}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label="$i18n{displayTitle}"></button>
</div>
- <div id="storageRow" class="settings-box" on-tap="onStorageTap_"
+ <div id="storageRow" class="settings-box" on-click="onStorageTap_"
actionable>
<div class="start">$i18n{storageTitle}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label="$i18n{storageTitle}"></button>
</div>
<template is="dom-if" if="[[enablePowerSettings_]]">
- <div id="powerRow" class="settings-box" on-tap="onPowerTap_"
+ <div id="powerRow" class="settings-box" on-click="onPowerTap_"
actionable>
<div class="start">$i18n{powerTitle}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
diff --git a/chromium/chrome/browser/resources/settings/device_page/device_page_browser_proxy.js b/chromium/chrome/browser/resources/settings/device_page/device_page_browser_proxy.js
index 0344e145e0b..ae2fb6d008c 100644
--- a/chromium/chrome/browser/resources/settings/device_page/device_page_browser_proxy.js
+++ b/chromium/chrome/browser/resources/settings/device_page/device_page_browser_proxy.js
@@ -185,7 +185,7 @@ cr.define('settings', function() {
/** override */
handleLinkEvent(e) {
- // Prevent the link from activating its parent element when tapped or
+ // Prevent the link from activating its parent element when clicked or
// when Enter is pressed.
if (e.type != 'keydown' || e.keyCode == 13)
e.stopPropagation();
diff --git a/chromium/chrome/browser/resources/settings/device_page/display.html b/chromium/chrome/browser/resources/settings/device_page/display.html
index 81cf27e5056..0eec56f0f97 100644
--- a/chromium/chrome/browser/resources/settings/device_page/display.html
+++ b/chromium/chrome/browser/resources/settings/device_page/display.html
@@ -82,7 +82,7 @@
restamp>
<div class="secondary self-start">
<paper-checkbox checked="[[isMirrored_(displays)]]"
- on-tap="onMirroredTap_"
+ on-click="onMirroredTap_"
aria-label="[[getDisplayMirrorText_(displays)]]">
<div class="text-area">[[getDisplayMirrorText_(displays)]]</div>
</paper-checkbox>
@@ -188,7 +188,7 @@
<button is="cr-link-row" icon-class="subpage-arrow" class="indented hr"
id="overscan" label="$i18n{displayOverscanPageTitle}"
- sub-label="$i18n{displayOverscanPageText}" on-tap="onOverscanTap_"
+ sub-label="$i18n{displayOverscanPageText}" on-click="onOverscanTap_"
hidden$="[[!showOverscanSetting_(selectedDisplay)]]">
</button>
@@ -198,7 +198,7 @@
</settings-display-overscan-dialog>
<div class="settings-box indented two-line"
- on-tap="onTouchCalibrationTap_"
+ on-click="onTouchCalibrationTap_"
hidden$="[[!showTouchCalibrationSetting_(selectedDisplay)]]"
actionable>
<div class="start">
diff --git a/chromium/chrome/browser/resources/settings/device_page/display.js b/chromium/chrome/browser/resources/settings/device_page/display.js
index c21864b443b..2fcb479af3b 100644
--- a/chromium/chrome/browser/resources/settings/device_page/display.js
+++ b/chromium/chrome/browser/resources/settings/device_page/display.js
@@ -699,25 +699,18 @@ Polymer({
// Blur the control so that when the transition animation completes and the
// UI is focused, the control does not receive focus. crbug.com/785070
event.target.blur();
- let id = '';
- /** @type {!chrome.system.display.DisplayProperties} */
- const properties = {};
- if (this.isMirrored_(this.displays)) {
- id = this.primaryDisplayId;
- properties.mirroringSourceId = '';
- } else {
- // Set the mirroringSourceId of the secondary (first non-primary) display.
- for (let i = 0; i < this.displays.length; ++i) {
- const display = this.displays[i];
- if (display.id != this.primaryDisplayId) {
- id = display.id;
- break;
- }
- }
- properties.mirroringSourceId = this.primaryDisplayId;
- }
- settings.display.systemDisplayApi.setDisplayProperties(
- id, properties, this.setPropertiesCallback_.bind(this));
+
+ /** @type {!chrome.system.display.MirrorModeInfo} */
+ let mirrorModeInfo = {
+ mode: this.isMirrored_(this.displays) ?
+ chrome.system.display.MirrorMode.OFF :
+ chrome.system.display.MirrorMode.NORMAL
+ };
+ settings.display.systemDisplayApi.setMirrorMode(mirrorModeInfo, () => {
+ let error = chrome.runtime.lastError;
+ if (error)
+ console.error('setMirrorMode Error: ' + error.message);
+ });
},
/** @private */
diff --git a/chromium/chrome/browser/resources/settings/device_page/display_layout.html b/chromium/chrome/browser/resources/settings/device_page/display_layout.html
index 289ebf9c8f2..4b138cb2b17 100644
--- a/chromium/chrome/browser/resources/settings/device_page/display_layout.html
+++ b/chromium/chrome/browser/resources/settings/device_page/display_layout.html
@@ -54,7 +54,7 @@
}
.display.elevate {
- @apply(--shadow-elevation-2dp);
+ @apply --shadow-elevation-2dp;
}
</style>
<div id="displayArea" on-iron-resize="calculateVisualScale_">
@@ -67,15 +67,11 @@
</template>
<template is="dom-repeat" items="[[displays]]">
<div id="_[[item.id]]" class="display elevate"
- draggable="[[dragEnabled]]" on-tap="onSelectDisplayTap_"
+ draggable="[[dragEnabled]]" on-click="onSelectDisplayTap_"
style$="[[getDivStyle_(item.id, item.bounds, visualScale)]]"
selected$="[[isSelected_(item, selectedDisplay)]]">
- <div hidden$="[[mirroring]]">
- [[item.name]]
- </div>
- <div hidden$="[[!mirroring]]">
- $i18n{displayMirrorDisplayName}
- </div>
+ [[getDisplayName_(mirroring, item.name,
+ '$i18nPolymer{displayMirrorDisplayName}')]]
</div>
</template>
</div>
diff --git a/chromium/chrome/browser/resources/settings/device_page/display_layout.js b/chromium/chrome/browser/resources/settings/device_page/display_layout.js
index 4b9f4192931..6cd70ca9581 100644
--- a/chromium/chrome/browser/resources/settings/device_page/display_layout.js
+++ b/chromium/chrome/browser/resources/settings/device_page/display_layout.js
@@ -191,6 +191,17 @@ Polymer({
},
/**
+ * @param {boolean} mirroring
+ * @param {string} displayName
+ * @param {string} mirroringName
+ * @return {string}
+ * @private
+ */
+ getDisplayName_: function(mirroring, displayName, mirroringName) {
+ return mirroring ? mirroringName : displayName;
+ },
+
+ /**
* @param {!chrome.system.display.DisplayUnitInfo} display
* @param {!chrome.system.display.DisplayUnitInfo} selectedDisplay
* @return {boolean}
diff --git a/chromium/chrome/browser/resources/settings/device_page/display_overscan_dialog.html b/chromium/chrome/browser/resources/settings/device_page/display_overscan_dialog.html
index 08e263c7738..5c90de1c152 100644
--- a/chromium/chrome/browser/resources/settings/device_page/display_overscan_dialog.html
+++ b/chromium/chrome/browser/resources/settings/device_page/display_overscan_dialog.html
@@ -74,10 +74,10 @@
</div>
</div>
<div slot="button-container">
- <paper-button id="reset" class="cancel-button" on-tap="onResetTap_">
+ <paper-button id="reset" class="cancel-button" on-click="onResetTap_">
$i18n{displayOverscanReset}
</paper-button>
- <paper-button class="action-button" on-tap="onSaveTap_">
+ <paper-button class="action-button" on-click="onSaveTap_">
$i18n{ok}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/device_page/drive_cache_dialog.html b/chromium/chrome/browser/resources/settings/device_page/drive_cache_dialog.html
index 696cbad5190..d111fcf73a3 100644
--- a/chromium/chrome/browser/resources/settings/device_page/drive_cache_dialog.html
+++ b/chromium/chrome/browser/resources/settings/device_page/drive_cache_dialog.html
@@ -17,11 +17,11 @@
</div>
<div slot="button-container">
<paper-button id="cancelButton" class="cancel-button"
- on-tap="onCancelTap_">
+ on-click="onCancelTap_">
$i18n{cancel}
</paper-button>
<paper-button id="deleteButton" class="action-button"
- on-tap="onDeleteTap_">
+ on-click="onDeleteTap_">
$i18n{storageDeleteAllButtonTitle}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/device_page/keyboard.html b/chromium/chrome/browser/resources/settings/device_page/keyboard.html
index cabf3ca8e43..1ec10018922 100644
--- a/chromium/chrome/browser/resources/settings/device_page/keyboard.html
+++ b/chromium/chrome/browser/resources/settings/device_page/keyboard.html
@@ -104,12 +104,12 @@
</div>
</iron-collapse>
<div id="keyboardOverlay" class="settings-box"
- on-tap="onShowKeyboardShortcutsOverlayTap_" actionable>
+ on-click="onShowKeyboardShortcutsOverlayTap_" actionable>
<div class="start">$i18n{showKeyboardShortcutsOverlay}</div>
<button class="icon-external" is="paper-icon-button-light"
aria-label="$i18n{showKeyboardShortcutsOverlay}"></button>
</div>
- <div class="settings-box" on-tap="onShowLanguageInputTap_" actionable>
+ <div class="settings-box" on-click="onShowLanguageInputTap_" actionable>
<div class="start">$i18n{keyboardShowLanguageAndInput}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label="$i18n{keyboardShowLanguageAndInput}"></button>
diff --git a/chromium/chrome/browser/resources/settings/device_page/pointers.html b/chromium/chrome/browser/resources/settings/device_page/pointers.html
index d93db637cf5..0fb133e2933 100644
--- a/chromium/chrome/browser/resources/settings/device_page/pointers.html
+++ b/chromium/chrome/browser/resources/settings/device_page/pointers.html
@@ -85,7 +85,7 @@
<paper-radio-button name="true">
$i18n{naturalScrollLabel}
<a href="$i18n{naturalScrollLearnMoreLink}" target="_blank"
- on-tap="onLearnMoreLinkActivated_"
+ on-click="onLearnMoreLinkActivated_"
on-keydown="onLearnMoreLinkActivated_">
$i18n{naturalScrollLearnMore}
</a>
diff --git a/chromium/chrome/browser/resources/settings/device_page/storage.html b/chromium/chrome/browser/resources/settings/device_page/storage.html
index a10225b2f15..fc8cc1df590 100644
--- a/chromium/chrome/browser/resources/settings/device_page/storage.html
+++ b/chromium/chrome/browser/resources/settings/device_page/storage.html
@@ -195,7 +195,7 @@
</div>
</div>
</div>
- <div class="settings-box two-line" on-tap="onDownloadsTap_" actionable>
+ <div class="settings-box two-line" on-click="onDownloadsTap_" actionable>
<div class="start">
$i18n{storageItemDownloads}
<div id="downloadsSize" class="secondary">
@@ -207,7 +207,7 @@
aria-describedby="downloadsSize"></button>
</div>
<template is="dom-if" if="[[driveEnabled_]]">
- <div class="settings-box two-line" on-tap="onDriveCacheTap_"
+ <div class="settings-box two-line" on-click="onDriveCacheTap_"
actionable$="[[hasDriveCache_]]" >
<div class="start">
$i18n{storageItemDriveCache}
@@ -221,7 +221,7 @@
</button>
</div>
</template>
- <div class="settings-box two-line" on-tap="onBrowsingDataTap_" actionable>
+ <div class="settings-box two-line" on-click="onBrowsingDataTap_" actionable>
<div class="start">
$i18n{storageItemBrowsingData}
<div id="browsingDataSize" class="secondary">
@@ -233,7 +233,7 @@
aria-describedby="browsingDataSize"></button>
</div>
<template is="dom-if" if="[[androidEnabled_]]">
- <div class="settings-box two-line" on-tap="onAndroidTap_" actionable>
+ <div class="settings-box two-line" on-click="onAndroidTap_" actionable>
<div class="start">
$i18n{storageItemAndroid}
<div id="androidSize" class="secondary">
@@ -246,7 +246,7 @@
</div>
</template>
<template is="dom-if" if="[[!isGuest_]]">
- <div class="settings-box two-line" on-tap="onOtherUsersTap_" actionable>
+ <div class="settings-box two-line" on-click="onOtherUsersTap_" actionable>
<div class="start">
$i18n{storageItemOtherUsers}
<div id="otherUsersSize" class="secondary">
diff --git a/chromium/chrome/browser/resources/settings/device_page/stylus.html b/chromium/chrome/browser/resources/settings/device_page/stylus.html
index 9aa157eceab..93252074b04 100644
--- a/chromium/chrome/browser/resources/settings/device_page/stylus.html
+++ b/chromium/chrome/browser/resources/settings/device_page/stylus.html
@@ -19,7 +19,7 @@
paper-spinner-lite {
margin-left: 12px;
- @apply(--cr-icon-height-width);
+ @apply --cr-icon-height-width;
}
cr-policy-indicator {
@@ -77,7 +77,7 @@
<!-- TODO(scottchen): Make a proper a[href].settings-box with
icon-external (see: https://crbug.com/684005)-->
- <div class="settings-box two-line" on-tap="onFindAppsTap_" actionable
+ <div class="settings-box two-line" on-click="onFindAppsTap_" actionable
hidden$="[[!prefs.arc.enabled.value]]">
<div class="start">
$i18n{stylusFindMoreAppsPrimary}
@@ -97,7 +97,7 @@
<div class="settings-box first">
<div id="lock-screen-toggle-label" class="start"
actionable$="[[!disallowedOnLockScreenByPolicy_(selectedApp_)]]"
- on-tap="toggleLockScreenSupport_">
+ on-click="toggleLockScreenSupport_">
$i18n{stylusNoteTakingAppEnabledOnLockScreen}
</div>
<template is="dom-if"
diff --git a/chromium/chrome/browser/resources/settings/downloads_page/downloads_page.html b/chromium/chrome/browser/resources/settings/downloads_page/downloads_page.html
index 2f213e62e6a..ea4a199cb0a 100644
--- a/chromium/chrome/browser/resources/settings/downloads_page/downloads_page.html
+++ b/chromium/chrome/browser/resources/settings/downloads_page/downloads_page.html
@@ -29,7 +29,7 @@
<div class="separator"></div>
<controlled-button class="secondary-button" id="changeDownloadsPath"
label="$i18n{changeDownloadLocation}"
- on-tap="selectDownloadLocation_"
+ on-click="selectDownloadLocation_"
pref="[[prefs.download.default_directory]]"
end-justified>
</controlled-button>
@@ -52,7 +52,7 @@
</div>
<div class="separator"></div>
<paper-button id="resetAutoOpenFileTypes" class="secondary-button"
- on-tap="onClearAutoOpenFileTypesTap_">
+ on-click="onClearAutoOpenFileTypesTap_">
$i18n{clear}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/google_assistant_page/google_assistant_page.html b/chromium/chrome/browser/resources/settings/google_assistant_page/google_assistant_page.html
index b96f029582e..46081160c54 100644
--- a/chromium/chrome/browser/resources/settings/google_assistant_page/google_assistant_page.html
+++ b/chromium/chrome/browser/resources/settings/google_assistant_page/google_assistant_page.html
@@ -30,7 +30,7 @@
on-change="onGoogleAssistantContextEnableChange_">
</settings-toggle-button>
<div id="googleAssistantSettings" class="settings-box"
- on-tap="onGoogleAssistantSettingsTapped_" actionable>
+ on-click="onGoogleAssistantSettingsTapped_" actionable>
<div class="start">
$i18n{googleAssistantSettings}
</div>
diff --git a/chromium/chrome/browser/resources/settings/icons.html b/chromium/chrome/browser/resources/settings/icons.html
index c15dd7ba4a7..bf9a0008176 100644
--- a/chromium/chrome/browser/resources/settings/icons.html
+++ b/chromium/chrome/browser/resources/settings/icons.html
@@ -10,9 +10,7 @@ List icons here rather than importing large sets of (e.g. Polymer) icons.
<defs>
<!-- Ads icon in the Content Settings -->
<g id="ads">
- <path d="M19,3H5C3.89,3,3,3.9,3,5v14c0,1.1,0.89,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M11,15H9.5v-1.5h-2V15H6v-4.5V9h1.5h2H10h1V15z M18,14c0,0.55-0.45,1-1,1h-4V9h4c0.55,0,1,0.45,1,1V14z"></path>
- <rect x="7.5" y="10.5" width="2" height="1.5"></rect>
- <rect x="14.5" y="10.5" width="2" height="3"></rect>
+ <path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.89-2-2-2zm0 14H5V8h14v10z"></path>
</g>
<!-- Cookie SVG obtained from rolfe@ -->
@@ -104,6 +102,7 @@ List icons here rather than importing large sets of (e.g. Polymer) icons.
<g id="refresh"><path d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"></path></g>
<g id="restore"><path d="M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"></path></g>
<g id="rotate-right"><path d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"></path></g>
+ <g id="sensors"><path d="M10 8.5c-0.8 0-1.5 0.7-1.5 1.5s0.7 1.5 1.5 1.5s1.5-0.7 1.5-1.5S10.8 8.5 10 8.5z M7.6 5.8 C6.2 6.7 5.2 8.2 5.2 10c0 1.8 1 3.4 2.4 4.2l0.8-1.4c-1-0.6-1.6-1.6-1.6-2.8c0-1.2 0.6-2.2 1.6-2.8L7.6 5.8z M14.8 10 c0-1.8-1-3.4-2.4-4.2l-0.8 1.4c0.9 0.6 1.6 1.6 1.6 2.8c0 1.2-0.6 2.2-1.6 2.8l0.8 1.4C13.8 13.4 14.8 11.8 14.8 10z M6 3 c-2.4 1.4-4 4-4 7c0 3 1.6 5.6 4 7l0.8-1.4c-1.9-1.1-3.2-3.2-3.2-5.6c0-2.4 1.3-4.5 3.2-5.6L6 3z M13.2 4.4 c1.9 1.1 3.2 3.2 3.2 5.6c0 2.4-1.3 4.5-3.2 5.6L14 17c2.4-1.4 4-4 4-7c0-3-1.6-5.6-4-7L13.2 4.4z"></path></g>
<g id="security"><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z"></path></g>
<if expr="chromeos">
<g id="alert-device-out-of-range" fill="none" fill-rule="evenodd"><path d="M-1-1h20v20H-1z"></path><path fill="#C53929" fill-rule="nonzero" d="M8.167 11.5h1.666v1.667H8.167V11.5zm0-6.667h1.666v5H8.167v-5zM8.992.667C4.392.667.667 4.4.667 9s3.725 8.333 8.325 8.333c4.608 0 8.341-3.733 8.341-8.333S13.6.667 8.992.667zm.008 15A6.665 6.665 0 0 1 2.333 9 6.665 6.665 0 0 1 9 2.333 6.665 6.665 0 0 1 15.667 9 6.665 6.665 0 0 1 9 15.667z"></path></g>
diff --git a/chromium/chrome/browser/resources/settings/images/sync_banner.svg b/chromium/chrome/browser/resources/settings/images/sync_banner.svg
new file mode 100644
index 00000000000..d2ecb8603a7
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/images/sync_banner.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="155px" height="131px" viewBox="0 0 155 131" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <polygon fill="#3874D5" points="0 114.5 154.75 114.5 154.75 0 0 0"></polygon>
+ <g transform="translate(61.000000, 53.250000)">
+ <path d="M59.25,77 L19,77 C17.35,77 16,75.65 16,74 L16,3 C16,1.35 17.35,0 19,0 L59.25,0 C60.9,0 62.25,1.35 62.25,3 L62.25,74 C62.25,75.65 60.9,77 59.25,77" fill="#4285F4"></path>
+ <path d="M31.4473,61.5527 C31.4473,70.0837 24.5313,76.9997 16.0003,76.9997 C7.4683,76.9997 0.5523,70.0837 0.5523,61.5527 C0.5523,53.0207 7.4683,46.1047 16.0003,46.1047 C24.5313,46.1047 31.4473,53.0207 31.4473,61.5527" fill="#FABB05"></path>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/chromium/chrome/browser/resources/settings/incompatible_applications_page/compiled_resources2.gyp b/chromium/chrome/browser/resources/settings/incompatible_applications_page/compiled_resources2.gyp
new file mode 100644
index 00000000000..c73f9ebe50a
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/incompatible_applications_page/compiled_resources2.gyp
@@ -0,0 +1,33 @@
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+{
+ 'targets': [
+ {
+ 'target_name': 'incompatible_applications_browser_proxy',
+ 'dependencies': [
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:cr',
+ ],
+ 'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'],
+ },
+ {
+ 'target_name': 'incompatible_applications_page',
+ 'dependencies': [
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:assert',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:i18n_behavior',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:web_ui_listener_behavior',
+ 'incompatible_applications_browser_proxy',
+ ],
+ 'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'],
+ },
+ {
+ 'target_name': 'incompatible_application_item',
+ 'dependencies': [
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:assert',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:i18n_behavior',
+ 'incompatible_applications_browser_proxy',
+ ],
+ 'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'],
+ },
+ ],
+}
diff --git a/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_application_item.html b/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_application_item.html
new file mode 100644
index 00000000000..1f8027ae747
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_application_item.html
@@ -0,0 +1,25 @@
+<link rel="import" href="chrome://resources/html/polymer.html">
+
+<link rel="import" href="chrome://resources/html/assert.html">
+<link rel="import" href="chrome://resources/html/i18n_behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
+<link rel="import" href="../settings_shared_css.html">
+<link rel="import" href="incompatible_applications_browser_proxy.html">
+
+<dom-module id="incompatible-application-item">
+ <template>
+ <style include="settings-shared">
+ :host {
+ display: block;
+ }
+ </style>
+ <div class="list-item">
+ <div class="start">[[applicationName]]</div>
+ <div class="separator"></div>
+ <paper-button class="primary-button" on-click="onActionTap_">
+ [[getActionName_(actionType)]]
+ </paper-button>
+ </div>
+ </template>
+ <script src="incompatible_application_item.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_application_item.js b/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_application_item.js
new file mode 100644
index 00000000000..72dd7f1941e
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_application_item.js
@@ -0,0 +1,103 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview
+ * 'incompatible-application-item' represents one item in a "list-box" of
+ * incompatible applications, as defined in
+ * chrome/browser/conflicts/problematic_programs_updater_win.h.
+ * This element contains a button that can be used to remove or update the
+ * incompatible application, depending on the value of the action-type property.
+ *
+ * Example usage:
+ *
+ * <div class="list-box">
+ * <incompatible-application-item
+ * application-name="Google Chrome"
+ * action-type="1"
+ * action-url="https://www.google.com/chrome/more-info">
+ * </incompatible-application-item>
+ * </div>
+ *
+ * or
+ *
+ * <div class="list-box">
+ * <template is="dom-repeat" items="[[applications]]" as="application">
+ * <incompatible-application-item
+ * application-name="[[application.name]]"
+ * action-type="[[application.actionType]]"
+ * action-url="[[application.actionUrl]]">
+ * </incompatible-application-item>
+ * </template>
+ * </div>
+ */
+
+Polymer({
+ is: 'incompatible-application-item',
+
+ behaviors: [I18nBehavior],
+
+ properties: {
+ /**
+ * The name of the application to be displayed. Also used for the UNINSTALL
+ * action, where the name is passed to the startProgramUninstallation()
+ * call.
+ */
+ applicationName: String,
+
+ /**
+ * The type of the action to be taken on this incompatible application. Must
+ * be one of BlacklistMessageType in
+ * chrome/browser/conflicts/proto/module_list.proto.
+ * @type {!settings.ActionTypes}
+ */
+ actionType: Number,
+
+ /**
+ * For the actions MORE_INFO and UPGRADE, this is the URL that must be
+ * opened when the action button is tapped.
+ */
+ actionUrl: String,
+ },
+
+ /** @private {settings.IncompatibleApplicationsBrowserProxy} */
+ browserProxy_: null,
+
+ /** @override */
+ created: function() {
+ this.browserProxy_ =
+ settings.IncompatibleApplicationsBrowserProxyImpl.getInstance();
+ },
+
+ /**
+ * Executes the action for this incompatible application, depending on
+ * actionType.
+ * @private
+ */
+ onActionTap_: function() {
+ if (this.actionType === settings.ActionTypes.UNINSTALL) {
+ this.browserProxy_.startProgramUninstallation(this.applicationName);
+ } else if (
+ this.actionType === settings.ActionTypes.MORE_INFO ||
+ this.actionType === settings.ActionTypes.UPGRADE) {
+ this.browserProxy_.openURL(this.actionUrl);
+ } else {
+ assertNotReached();
+ }
+ },
+
+ /**
+ * @return {string} The label that should be applied to the action button.
+ * @private
+ */
+ getActionName_: function(actionType) {
+ if (actionType === settings.ActionTypes.UNINSTALL)
+ return this.i18n('incompatibleApplicationsRemoveButton');
+ if (actionType === settings.ActionTypes.MORE_INFO)
+ return this.i18n('learnMore');
+ if (actionType === settings.ActionTypes.UPGRADE)
+ return this.i18n('incompatibleApplicationsUpdateButton');
+ assertNotReached();
+ },
+});
diff --git a/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_browser_proxy.html b/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_browser_proxy.html
new file mode 100644
index 00000000000..8d55a232daa
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_browser_proxy.html
@@ -0,0 +1,2 @@
+<link rel="import" href="chrome://resources/html/cr.html">
+<script src="incompatible_applications_browser_proxy.js"></script>
diff --git a/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_browser_proxy.js b/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_browser_proxy.js
new file mode 100644
index 00000000000..7017e0a469d
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_browser_proxy.js
@@ -0,0 +1,122 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview A helper object used from the Incompatible Applications section
+ * to interact with the browser.
+ */
+
+cr.exportPath('settings');
+
+/**
+ * All possible actions to take on an incompatible application.
+ *
+ * Must be kept in sync with BlacklistMessageType in
+ * chrome/browser/conflicts/proto/module_list.proto
+ * @readonly
+ * @enum {number}
+ */
+settings.ActionTypes = {
+ UNINSTALL: 0,
+ MORE_INFO: 1,
+ UPGRADE: 2,
+};
+
+/**
+ * @typedef {{
+ * name: string,
+ * actionType: {settings.ActionTypes},
+ * actionUrl: string,
+ * }}
+ */
+settings.IncompatibleApplication;
+
+cr.define('settings', function() {
+ /** @interface */
+ class IncompatibleApplicationsBrowserProxy {
+ /**
+ * Get the list of incompatible applications.
+ * @return {!Promise<!Array<!settings.IncompatibleApplication>>}
+ */
+ requestIncompatibleApplicationsList() {}
+
+ /**
+ * Launches the Apps & Features page that allows uninstalling 'programName'.
+ * @param {string} programName
+ */
+ startProgramUninstallation(programName) {}
+
+ /**
+ * Opens the specified URL in a new tab.
+ * @param {!string} url
+ */
+ openURL(url) {}
+
+ /**
+ * Requests the plural string for the subtitle of the Incompatible
+ * Applications subpage.
+ * @param {number} numApplications
+ * @return {!Promise<string>}
+ */
+ getSubtitlePluralString(numApplications) {}
+
+ /**
+ * Requests the plural string for the subtitle of the Incompatible
+ * Applications subpage, when the user does not have administrator rights.
+ * @param {number} numApplications
+ * @return {!Promise<string>}
+ */
+ getSubtitleNoAdminRightsPluralString(numApplications) {}
+
+ /**
+ * Requests the plural string for the title of the list of Incompatible
+ * Applications.
+ * @param {number} numApplications
+ * @return {!Promise<string>}
+ */
+ getListTitlePluralString(numApplications) {}
+ }
+
+ /** @implements {settings.IncompatibleApplicationsBrowserProxy} */
+ class IncompatibleApplicationsBrowserProxyImpl {
+ /** @override */
+ requestIncompatibleApplicationsList() {
+ return cr.sendWithPromise('requestIncompatibleApplicationsList');
+ }
+
+ /** @override */
+ startProgramUninstallation(programName) {
+ chrome.send('startProgramUninstallation', [programName]);
+ }
+
+ /** @override */
+ openURL(url) {
+ window.open(url);
+ }
+
+ /** @override */
+ getSubtitlePluralString(numApplications) {
+ return cr.sendWithPromise('getSubtitlePluralString', numApplications);
+ }
+
+ /** @override */
+ getSubtitleNoAdminRightsPluralString(numApplications) {
+ return cr.sendWithPromise(
+ 'getSubtitleNoAdminRightsPluralString', numApplications);
+ }
+
+ /** @override */
+ getListTitlePluralString(numApplications) {
+ return cr.sendWithPromise('getListTitlePluralString', numApplications);
+ }
+ }
+
+ cr.addSingletonGetter(IncompatibleApplicationsBrowserProxyImpl);
+
+ return {
+ IncompatibleApplicationsBrowserProxy: IncompatibleApplicationsBrowserProxy,
+ IncompatibleApplicationsBrowserProxyImpl:
+ IncompatibleApplicationsBrowserProxyImpl,
+ };
+});
diff --git a/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_page.html b/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_page.html
new file mode 100644
index 00000000000..9fcccb14ef3
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_page.html
@@ -0,0 +1,59 @@
+<link rel="import" href="chrome://resources/html/polymer.html">
+
+<link rel="import" href="chrome://resources/html/assert.html">
+<link rel="import" href="chrome://resources/html/i18n_behavior.html">
+<link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+<link rel="import" href="../settings_shared_css.html">
+<link rel="import" href="incompatible_application_item.html">
+<link rel="import" href="incompatible_applications_browser_proxy.html">
+
+<dom-module id="settings-incompatible-applications-page">
+ <template>
+ <style include="settings-shared">
+ #is-done-section > iron-icon {
+ --iron-icon-fill-color: var(--google-blue-500);
+ }
+ </style>
+
+ <div hidden$="[[!isDone_]]" id="is-done-section" class="settings-box first">
+ <iron-icon icon="settings:check-circle"></iron-icon>
+ <div class="middle no-min-width">
+ $i18n{incompatibleApplicationsDone}
+ </div>
+ </div>
+
+ <template is="dom-if" if="[[!isDone_]]">
+ <div class="settings-box first two-line">
+ <iron-icon icon="settings:security"></iron-icon>
+ <div class="middle no-min-width">
+ <div hidden$="[[!hasAdminRights_]]">
+ [[subtitleText_]] $i18nRaw{incompatibleApplicationsSubpageLearnHow}
+ </div>
+ <div hidden$="[[hasAdminRights_]]">
+ [[subtitleNoAdminRightsText_]]
+ </div>
+ </div>
+ </div>
+ <div class="settings-box continuation">
+ <div class="secondary">[[listTitleText_]]</div>
+ </div>
+ <div id="incompatible-applications-list" class="list-frame vertical-list">
+ <template is="dom-repeat" items="[[applications_]]" as="application">
+ <incompatible-application-item
+ hidden$="[[!hasAdminRights_]]"
+ class="incompatible-application"
+ application-name="[[application.name]]"
+ action-type="[[application.type]]"
+ action-url="[[application.url]]">
+ </incompatible-application-item>
+ <div hidden$="[[hasAdminRights_]]"
+ class="list-item incompatible-application">
+ [[application.name]]
+ </div>
+ </template>
+ </div>
+ </template>
+ </template>
+ <script src="incompatible_applications_page.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_page.js b/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_page.js
new file mode 100644
index 00000000000..27426d236a8
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_page.js
@@ -0,0 +1,138 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview
+ * 'settings-incompatible-applications-page' is the settings subpage containing
+ * the list of incompatible applications.
+ *
+ * Example:
+ *
+ * <iron-animated-pages>
+ * <settings-incompatible-applications-page">
+ * </settings-incompatible-applications-page>
+ * ... other pages ...
+ * </iron-animated-pages>
+ */
+
+Polymer({
+ is: 'settings-incompatible-applications-page',
+
+ behaviors: [I18nBehavior, WebUIListenerBehavior],
+
+ properties: {
+ /**
+ * Indicates if the current user has administrator rights.
+ * @private
+ */
+ hasAdminRights_: {
+ type: Boolean,
+ value: function() {
+ return loadTimeData.getBoolean('hasAdminRights');
+ },
+ },
+
+ /**
+ * The list of all the incompatible applications.
+ * @private {Array<settings.IncompatibleApplication>}
+ */
+ applications_: Array,
+
+ /**
+ * Determines if the user has finished with this page.
+ * @private
+ */
+ isDone_: {
+ type: Boolean,
+ computed: 'computeIsDone_(applications_.*)',
+ },
+
+ /**
+ * The text for the subtitle of the subpage.
+ * @private
+ */
+ subtitleText_: {
+ type: String,
+ value: '',
+ },
+
+ /**
+ * The text for the subtitle of the subpage, when the user does not have
+ * administrator rights.
+ * @private
+ */
+ subtitleNoAdminRightsText_: {
+ type: String,
+ value: '',
+ },
+
+ /**
+ * The text for the title of the list of incompatible applications.
+ * @private
+ */
+ listTitleText_: {
+ type: String,
+ value: '',
+ },
+ },
+
+ /** @override */
+ ready: function() {
+ this.addWebUIListener(
+ 'incompatible-application-removed',
+ this.onIncompatibleApplicationRemoved_.bind(this));
+
+ settings.IncompatibleApplicationsBrowserProxyImpl.getInstance()
+ .requestIncompatibleApplicationsList()
+ .then(list => {
+ this.applications_ = list;
+ this.updatePluralStrings_();
+ });
+ },
+
+ /**
+ * @return {boolean}
+ * @private
+ */
+ computeIsDone_: function() {
+ return this.applications_.length === 0;
+ },
+
+ /**
+ * Removes a single incompatible application from the |applications_| list.
+ * @private
+ */
+ onIncompatibleApplicationRemoved_: function(applicationName) {
+ // Find the index of the element.
+ let index = this.applications_.findIndex(function(application) {
+ return application.name == applicationName;
+ });
+
+ assert(index !== -1);
+
+ this.splice('applications_', index, 1);
+ },
+
+ /**
+ * Updates the texts of the Incompatible Applications subpage that depends on
+ * the length of |applications_|.
+ * @private
+ */
+ updatePluralStrings_: function() {
+ const browserProxy =
+ settings.IncompatibleApplicationsBrowserProxyImpl.getInstance();
+ const numApplications = this.applications_.length;
+ Promise
+ .all([
+ browserProxy.getSubtitlePluralString(numApplications),
+ browserProxy.getSubtitleNoAdminRightsPluralString(numApplications),
+ browserProxy.getListTitlePluralString(numApplications),
+ ])
+ .then(strings => {
+ this.subtitleText_ = strings[0];
+ this.subtitleNoAdminRightsText_ = strings[1];
+ this.listTitleText_ = strings[2];
+ });
+ },
+});
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_config.html b/chromium/chrome/browser/resources/settings/internet_page/internet_config.html
index 4fa0a79d5e8..fce0c7e3d29 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_config.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_config.html
@@ -32,7 +32,7 @@
share-allow-enable="[[shareAllowEnable_]]"
share-default="[[shareDefault_]]"
error="{{error_}}"
- on-close="close">
+ on-close="onClose_">
</network-config>
</div>
@@ -40,17 +40,17 @@
<template is="dom-if" if="[[error_]]" restamp>
<div class="flex error">[[getError_(error_)]]</div>
</template>
- <paper-button class="cancel-button" on-tap="onCancelTap_">
+ <paper-button class="cancel-button" on-click="onCancelTap_">
$i18n{cancel}
</paper-button>
- <template is="dom-if" if="[[isConfigured_(networkProperties_, guid)]]">
- <paper-button class="action-button" on-tap="onSaveOrConnectTap_"
+ <template is="dom-if" if="[[!showConnect]]">
+ <paper-button class="action-button" on-click="onSaveTap_"
disabled="[[!enableSave_]]">
$i18n{save}
</paper-button>
</template>
- <template is="dom-if" if="[[!isConfigured_(networkProperties_, guid)]]">
- <paper-button class="action-button" on-tap="onSaveOrConnectTap_"
+ <template is="dom-if" if="[[showConnect]]">
+ <paper-button class="action-button" on-click="onConnectTap_"
disabled="[[!enableConnect_]]">
$i18n{networkButtonConnect}
</paper-button>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_config.js b/chromium/chrome/browser/resources/settings/internet_page/internet_config.js
index b6bda81171f..ba7c90de4ab 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_config.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_config.js
@@ -56,6 +56,12 @@ Polymer({
*/
name: String,
+ /**
+ * Set to true to show the 'connect' button instead of 'save'.
+ * @private
+ */
+ showConnect: Boolean,
+
/** @private */
enableConnect_: Boolean,
@@ -103,6 +109,16 @@ Polymer({
},
/**
+ * @param {!Event} event
+ * @private
+ */
+ onClose_: function(event) {
+ this.close();
+ this.fire('networks-changed');
+ event.stopPropagation();
+ },
+
+ /**
* @return {string}
* @private
*/
@@ -124,22 +140,18 @@ Polymer({
return this.i18n('networkErrorUnknown');
},
- /**
- * @return {boolean}
- * @private
- */
- isConfigured_: function() {
- const source = this.networkProperties_.Source;
- return !!this.guid && !!source && source != CrOnc.Source.NONE;
- },
-
/** @private */
onCancelTap_: function() {
this.close();
},
/** @private */
- onSaveOrConnectTap_: function() {
- this.$.networkConfig.saveOrConnect();
+ onSaveTap_: function() {
+ this.$.networkConfig.save();
+ },
+
+ /** @private */
+ onConnectTap_: function() {
+ this.$.networkConfig.connect();
},
});
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html
index e3afc520289..cbee01f9b6e 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.html
@@ -81,30 +81,30 @@
</template>
</div>
<template is="dom-if" if="[[!isSecondaryUser_]]">
- <paper-button on-tap="onForgetTap_"
+ <paper-button on-click="onForgetTap_"
hidden$="[[!showForget_(networkProperties)]]">
$i18n{networkButtonForget}
</paper-button>
- <paper-button on-tap="onViewAccountTap_"
+ <paper-button on-click="onViewAccountTap_"
hidden$="[[!showViewAccount_(networkProperties)]]">
$i18n{networkButtonViewAccount}
</paper-button>
- <paper-button on-tap="onActivateTap_"
+ <paper-button on-click="onActivateTap_"
hidden$="[[!showActivate_(networkProperties)]]">
$i18n{networkButtonActivate}
</paper-button>
- <paper-button on-tap="onConfigureTap_"
+ <paper-button on-click="onConfigureTap_"
hidden$="[[!showConfigure_(networkProperties, globalPolicy)]]">
$i18n{networkButtonConfigure}
</paper-button>
</template>
- <paper-button class="primary-button" on-tap="onConnectTap_"
+ <paper-button class="primary-button" on-click="onConnectTap_"
hidden$="[[!showConnect_(networkProperties, globalPolicy)]]"
disabled="[[!enableConnect_(networkProperties, defaultNetwork,
globalPolicy, networkPropertiesReceived_, outOfRange_)]]">
$i18n{networkButtonConnect}
</paper-button>
- <paper-button class="primary-button" on-tap="onDisconnectTap_"
+ <paper-button class="primary-button" on-click="onDisconnectTap_"
hidden$="[[!showDisconnect_(networkProperties)]]">
$i18n{networkButtonDisconnect}
</paper-button>
@@ -203,7 +203,7 @@
<template is="dom-if" if="[[showAdvanced_(networkProperties)]]">
<!-- Advanced toggle. -->
- <div class="settings-box" actionable on-tap="toggleAdvancedExpanded_">
+ <div class="settings-box" actionable on-click="toggleAdvancedExpanded_">
<div class="flex">$i18n{networkSectionAdvanced}</div>
<cr-expand-button expanded="{{advancedExpanded_}}"
alt="$i18n{networkSectionAdvancedA11yLabel}">
@@ -232,7 +232,7 @@
<template is="dom-if" if="[[hasNetworkSection_(networkProperties)]]">
<!-- Network toggle -->
- <div class="settings-box" actionable on-tap="toggleNetworkExpanded_">
+ <div class="settings-box" actionable on-click="toggleNetworkExpanded_">
<div class="start">$i18n{networkSectionNetwork}</div>
<cr-expand-button expanded="{{networkExpanded_}}"
alt="$i18n{networkSectionNetworkExpandA11yLabel}">
@@ -274,7 +274,7 @@
<template is="dom-if" if="[[hasProxySection_(networkProperties)]]">
<!-- Proxy toggle -->
- <div class="settings-box" actionable on-tap="toggleProxyExpanded_">
+ <div class="settings-box" actionable on-click="toggleProxyExpanded_">
<div class="start">$i18n{networkSectionProxy}</div>
<cr-expand-button expanded="{{proxyExpanded_}}"
alt="$i18n{networkSectionProxyExpandA11yLabel}">
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js
index b8c3480ddcd..c21b36319f5 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_detail_page.js
@@ -630,7 +630,6 @@ Polymer({
this.showTetherDialog_();
return;
}
-
this.fire('network-connect', {networkProperties: this.networkProperties});
},
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.html b/chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.html
index 6d2f1357614..4466b23e664 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_known_networks_page.html
@@ -36,12 +36,12 @@
</cr-policy-indicator>
</template>
<button class="subpage-arrow" is="paper-icon-button-light"
- actionable on-tap="fireShowDetails_" tabindex$="[[tabindex]]"
+ actionable on-click="fireShowDetails_" tabindex$="[[tabindex]]"
aria-label$="[[item.Name]]">
</button>
<div class="separator"></div>
<button is="paper-icon-button-light" class="icon-more-vert"
- preferred tabindex$="[[tabindex]]" on-tap="onMenuButtonTap_"
+ preferred tabindex$="[[tabindex]]" on-click="onMenuButtonTap_"
title="$i18n{moreActions}">
</button>
</div>
@@ -63,12 +63,12 @@
</cr-policy-indicator>
</template>
<button class="subpage-arrow" is="paper-icon-button-light"
- actionable on-tap="fireShowDetails_" tabindex$="[[tabindex]]"
+ actionable on-click="fireShowDetails_" tabindex$="[[tabindex]]"
aria-label$="[[item.Name]]">
</button>
<div class="separator"></div>
<button is="paper-icon-button-light" class="icon-more-vert"
- tabindex$="[[tabindex]]" on-tap="onMenuButtonTap_"
+ tabindex$="[[tabindex]]" on-click="onMenuButtonTap_"
title="$i18n{moreActions}">
</button>
</div>
@@ -76,16 +76,16 @@
</div>
<dialog id="dotsMenu" is="cr-action-menu">
- <button class="dropdown-item" hidden="[[!showAddPreferred_]]"
- on-tap="onAddPreferredTap_">
+ <button slot="item" class="dropdown-item" hidden="[[!showAddPreferred_]]"
+ on-click="onAddPreferredTap_">
$i18n{knownNetworksMenuAddPreferred}
</button>
- <button class="dropdown-item" hidden="[[!showRemovePreferred_]]"
- on-tap="onRemovePreferredTap_">
+ <button slot="item" class="dropdown-item"
+ hidden="[[!showRemovePreferred_]]" on-click="onRemovePreferredTap_">
$i18n{knownNetworksMenuRemovePreferred}
</button>
- <button class="dropdown-item" disabled="[[!enableForget_]]"
- on-tap="onForgetTap_">
+ <button slot="item" class="dropdown-item" disabled="[[!enableForget_]]"
+ on-click="onForgetTap_">
$i18n{knownNetworksMenuForget}
</button>
</dialog>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_page.html b/chromium/chrome/browser/resources/settings/internet_page/internet_page.html
index cd6b2afbadb..0c7cf9c5c72 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_page.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_page.html
@@ -38,7 +38,7 @@
</network-summary>
<template is="dom-if" if="[[allowAddConnection_(globalPolicy_)]]">
<div actionable class="settings-box two-line"
- on-tap="onExpandAddConnectionsTap_">
+ on-click="onExpandAddConnectionsTap_">
<div class="start layout horizontal center">
<div>$i18n{internetAddConnection}</div>
</div>
@@ -50,7 +50,7 @@
<div class="list-frame vertical-list">
<template is="dom-if"
if="[[deviceIsEnabled_(deviceStates.WiFi)]]">
- <div actionable class="list-item" on-tap="onAddWiFiTap_">
+ <div actionable class="list-item" on-click="onAddWiFiTap_">
<div class="start">$i18n{internetAddWiFi}</div>
<button class$="[[getAddNetworkClass_('WiFi')]]"
is="paper-icon-button-light"
@@ -58,7 +58,7 @@
</button>
</div>
</template>
- <div actionable class="list-item" on-tap="onAddVPNTap_">
+ <div actionable class="list-item" on-click="onAddVPNTap_">
<div class="start">$i18n{internetAddVPN}</div>
<button class$="[[getAddNetworkClass_('VPN')]]"
is="paper-icon-button-light"
@@ -67,7 +67,7 @@
</div>
<template is="dom-repeat" items="[[thirdPartyVpnProviders_]]">
<div actionable class="list-item"
- on-tap="onAddThirdPartyVpnTap_" provider="[[item]]">
+ on-click="onAddThirdPartyVpnTap_" provider="[[item]]">
<div class="start">[[getAddThirdPartyVpnLabel_(item)]]</div>
<button class="icon-external" is="paper-icon-button-light"
aria-label$="[[getAddThirdPartyVpnLabel_(item)]]">
@@ -76,7 +76,7 @@
</template>
<template is="dom-if" if="[[arcVpnProviders_.length]]">
<div actionable class="list-item" id="addArcVpn"
- on-tap="onAddArcVpnTap_">
+ on-click="onAddArcVpnTap_">
<div class="start">$i18n{internetAddArcVPN}</div>
<button class="icon-external" is="paper-icon-button-light"
aria-label$="$i18n{internetAddArcVPN}">
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_page.js b/chromium/chrome/browser/resources/settings/internet_page/internet_page.js
index 3b8126607c7..ed1eda816ef 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_page.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_page.js
@@ -272,27 +272,27 @@ Polymer({
*/
onShowConfig_: function(event) {
const properties = event.detail;
+ let configAndConnect = !properties.GUID; // New configuration
this.showConfig_(
- properties.Type, properties.GUID, CrOnc.getNetworkName(properties));
+ configAndConnect, properties.Type, properties.GUID,
+ CrOnc.getNetworkName(properties));
},
/**
+ * @param {boolean} configAndConnect
* @param {string} type
* @param {string=} guid
* @param {string=} name
* @private
*/
- showConfig_: function(type, guid, name) {
- if (!loadTimeData.getBoolean('networkSettingsConfig')) {
- chrome.send('configureNetwork', [guid]);
- return;
- }
+ showConfig_: function(configAndConnect, type, guid, name) {
const configDialog =
/** @type {!InternetConfigElement} */ (this.$.configDialog);
configDialog.type =
/** @type {chrome.networkingPrivate.NetworkType} */ (type);
configDialog.guid = guid || '';
configDialog.name = name || '';
+ configDialog.showConnect = configAndConnect;
configDialog.open();
},
@@ -369,7 +369,7 @@ Polymer({
},
/**
- * Event triggered when the 'Add connections' div is tapped.
+ * Event triggered when the 'Add connections' div is clicked.
* @param {!Event} event
* @private
*/
@@ -382,7 +382,7 @@ Polymer({
/** @private */
onAddWiFiTap_: function() {
if (loadTimeData.getBoolean('networkSettingsConfig'))
- this.showConfig_(CrOnc.Type.WI_FI);
+ this.showConfig_(true /* configAndConnect */, CrOnc.Type.WI_FI);
else
chrome.send('addNetwork', [CrOnc.Type.WI_FI]);
},
@@ -390,7 +390,7 @@ Polymer({
/** @private */
onAddVPNTap_: function() {
if (loadTimeData.getBoolean('networkSettingsConfig'))
- this.showConfig_(CrOnc.Type.VPN);
+ this.showConfig_(true /* configAndConnect */, CrOnc.Type.VPN);
else
chrome.send('addNetwork', [CrOnc.Type.VPN]);
},
@@ -604,7 +604,8 @@ Polymer({
}
if (properties.Connectable === false || properties.ErrorState) {
- this.showConfig_(properties.Type, properties.GUID, name);
+ this.showConfig_(
+ true /* configAndConnect */, properties.Type, properties.GUID, name);
return;
}
@@ -618,7 +619,9 @@ Polymer({
console.error(
'networkingPrivate.startConnect error: ' + message +
' For: ' + properties.GUID);
- this.showConfig_(properties.Type, properties.GUID, name);
+ this.showConfig_(
+ true /* configAndConnect */, properties.Type, properties.GUID,
+ name);
}
});
},
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_subpage.html b/chromium/chrome/browser/resources/settings/internet_page/internet_subpage.html
index 3119ac4ec1c..ad9e3d48712 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_subpage.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_subpage.html
@@ -65,12 +65,12 @@
}
#gmscore-notifications-device-string {
- @apply(--cr-secondary-text);
+ @apply --cr-secondary-text;
margin-top: 5px;
}
#gmscore-notifications-instructions {
- @apply(--cr-secondary-text);
+ @apply --cr-secondary-text;
-webkit-padding-start: 15px;
margin: 0;
}
@@ -86,19 +86,19 @@
<button is="paper-icon-button-light" id="addButton"
hidden$="[[!showAddButton_(deviceState, globalPolicy)]]"
aria-label="$i18n{internetAddWiFi}" class="icon-add-wifi"
- on-tap="onAddButtonTap_" tabindex$="[[tabindex]]">
+ on-click="onAddButtonTap_" tabindex$="[[tabindex]]">
</button>
<paper-toggle-button id="deviceEnabledButton"
aria-label$="[[getToggleA11yString_(deviceState)]]"
checked="[[deviceIsEnabled_(deviceState)]]"
disabled="[[!enableToggleIsEnabled_(deviceState)]]"
- on-tap="onDeviceEnabledTap_">
+ on-click="onDeviceEnabledTap_">
</paper-toggle-button>
</div>
</template>
<template is="dom-if" if="[[knownNetworksIsVisible_(deviceState)]]">
- <div actionable class="settings-box" on-tap="onKnownNetworksTap_">
+ <div actionable class="settings-box" on-click="onKnownNetworksTap_">
<div class="start">$i18n{knownNetworksButton}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label="$i18n{knownNetworksButton}">
@@ -114,7 +114,7 @@
<div class="flex">$i18n{networkVpnBuiltin}</div>
<button is="paper-icon-button-light" class="icon-add-circle"
aria-label="$i18n{internetAddVPN}"
- on-tap="onAddButtonTap_" tabindex$="[[tabindex]]">
+ on-click="onAddButtonTap_" tabindex$="[[tabindex]]">
</button>
</div>
</template>
@@ -143,6 +143,7 @@
<li>$i18n{gmscoreNotificationsFirstStep}</li>
<li>$i18n{gmscoreNotificationsSecondStep}</li>
<li>$i18n{gmscoreNotificationsThirdStep}</li>
+ <li>$i18n{gmscoreNotificationsFourthStep}</li>
</ol>
</div>
</template>
@@ -165,7 +166,7 @@
<div class="flex">[[item.ProviderName]]</div>
<button is="paper-icon-button-light" class="icon-add-circle"
aria-label$="[[getAddThirdPartyVpnA11yString_(item)]]"
- on-tap="onAddThirdPartyVpnTap_" tabindex$="[[tabindex]]">
+ on-click="onAddThirdPartyVpnTap_" tabindex$="[[tabindex]]">
</button>
</div>
<cr-network-list show-buttons
@@ -185,7 +186,7 @@
<div class="flex">[[item.ProviderName]]</div>
<button is="paper-icon-button-light" class="icon-add-circle"
aria-label$="[[getAddArcVpnAllyString_(item)]]"
- on-tap="onAddArcVpnTap_" tabindex$="[[tabindex]]">
+ on-click="onAddArcVpnTap_" tabindex$="[[tabindex]]">
</button>
</div>
<cr-network-list show-buttons
@@ -204,7 +205,7 @@
<template is="dom-if"
if="[[tetherToggleIsVisible_(deviceState, tetherDeviceState)]]">
<div class="settings-box two-line" actionable
- on-tap="onTetherEnabledTap_">
+ on-click="onTetherEnabledTap_">
<div class="start">
$i18n{internetToggleTetherLabel}
<div id="tetherSecondary" class="secondary">
diff --git a/chromium/chrome/browser/resources/settings/internet_page/internet_subpage.js b/chromium/chrome/browser/resources/settings/internet_page/internet_subpage.js
index 2d1c08ee297..c45566055aa 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/internet_subpage.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/internet_subpage.js
@@ -442,7 +442,7 @@ Polymer({
},
/**
- * Event triggered when the known networks button is tapped.
+ * Event triggered when the known networks button is clicked.
* @private
*/
onKnownNetworksTap_: function() {
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.html b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.html
index f5d88e89c41..7aa2e646067 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_proxy_section.html
@@ -90,11 +90,11 @@
</div>
<div slot="button-container">
<paper-button class="cancel-button"
- on-tap="onAllowSharedDialogCancel_">
+ on-click="onAllowSharedDialogCancel_">
$i18n{cancel}
</paper-button>
<paper-button class="action-button"
- on-tap="onAllowSharedDialogConfirm_">
+ on-click="onAllowSharedDialogConfirm_">
$i18n{confirm}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html
index 812bf51fff9..2df92961938 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.html
@@ -34,7 +34,7 @@
font-weight: 400;
}
</style>
- <div actionable class="settings-box two-line" on-tap="onShowDetailsTap_">
+ <div actionable class="settings-box two-line" on-click="onShowDetailsTap_">
<div id="details" no-flex$="[[showSimInfo_(deviceState)]]">
<cr-network-icon network-state="[[activeNetworkState]]"
device-state="[[deviceState]]">
@@ -48,7 +48,7 @@
</div>
<template is="dom-if" if="[[showSimInfo_(deviceState)]]" restamp>
- <network-siminfo editable on-tap="doNothing_"
+ <network-siminfo editable on-click="doNothing_"
network-properties="[[getCellularState_(deviceState)]]"
networking-private="[[networkingPrivate]]">
</network-siminfo>
@@ -57,7 +57,7 @@
<template is="dom-if" if="[[showPolicyIndicator_(activeNetworkState)]]">
<cr-policy-indicator indicator-type="[[getIndicatorTypeForSource(
activeNetworkState.Source)]]"
- on-tap="doNothing_">
+ on-click="doNothing_">
</cr-policy-indicator>
</template>
@@ -75,7 +75,7 @@
aria-label$="[[getToggleA11yString_(deviceState)]]"
checked="[[deviceIsEnabled_(deviceState)]]"
disabled="[[!enableToggleIsEnabled_(deviceState)]]"
- on-tap="onDeviceEnabledTap_">
+ on-click="onDeviceEnabledTap_">
</paper-toggle-button>
</template>
</div>
diff --git a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js
index 65c882d595d..e7a54cb245a 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js
+++ b/chromium/chrome/browser/resources/settings/internet_page/network_summary_item.js
@@ -68,10 +68,9 @@ Polymer({
* @private
*/
getNetworkStateText_: function(activeNetworkState, deviceState) {
- const state = activeNetworkState.ConnectionState;
- const name = CrOnc.getNetworkName(activeNetworkState);
- if (state)
- return this.getConnectionStateText_(state, name);
+ const stateText = this.getConnectionStateText_(activeNetworkState);
+ if (stateText)
+ return stateText;
// No network state, use device state.
if (deviceState) {
// Type specific scanning or initialization states.
@@ -98,12 +97,15 @@ Polymer({
},
/**
- * @param {CrOnc.ConnectionState} state
- * @param {string} name
+ * @param {!CrOnc.NetworkStateProperties} networkState
* @return {string}
* @private
*/
- getConnectionStateText_: function(state, name) {
+ getConnectionStateText_: function(networkState) {
+ const state = networkState.ConnectionState;
+ if (!state)
+ return '';
+ const name = CrOnc.getNetworkName(networkState);
switch (state) {
case CrOnc.ConnectionState.CONNECTED:
return name;
@@ -112,6 +114,10 @@ Polymer({
return CrOncStrings.networkListItemConnectingTo.replace('$1', name);
return CrOncStrings.networkListItemConnecting;
case CrOnc.ConnectionState.NOT_CONNECTED:
+ if (networkState.Type == CrOnc.Type.CELLULAR && networkState.Cellular &&
+ networkState.Cellular.Scanning) {
+ return this.i18n('internetMobileSearching');
+ }
return CrOncStrings.networkListItemNotConnected;
}
assertNotReached();
diff --git a/chromium/chrome/browser/resources/settings/internet_page/tether_connection_dialog.html b/chromium/chrome/browser/resources/settings/internet_page/tether_connection_dialog.html
index 51e02e88fb0..c54c5c1186a 100644
--- a/chromium/chrome/browser/resources/settings/internet_page/tether_connection_dialog.html
+++ b/chromium/chrome/browser/resources/settings/internet_page/tether_connection_dialog.html
@@ -108,11 +108,11 @@
</ul>
</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="onNotNowTap_">
+ <paper-button class="cancel-button" on-click="onNotNowTap_">
$i18n{tetherConnectionNotNowButton}
</paper-button>
<paper-button id="connectButton" class="action-button"
- on-tap="onConnectTap_" disabled="[[outOfRange]]">
+ on-click="onConnectTap_" disabled="[[outOfRange]]">
$i18n{tetherConnectionConnectButton}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/languages_page/add_languages_dialog.html b/chromium/chrome/browser/resources/settings/languages_page/add_languages_dialog.html
index 6a6a1512872..a3f6edd6f54 100644
--- a/chromium/chrome/browser/resources/settings/languages_page/add_languages_dialog.html
+++ b/chromium/chrome/browser/resources/settings/languages_page/add_languages_dialog.html
@@ -59,10 +59,10 @@
</iron-list>
</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="onCancelButtonTap_">
+ <paper-button class="cancel-button" on-click="onCancelButtonTap_">
$i18n{cancel}
</paper-button>
- <paper-button class="action-button" on-tap="onActionButtonTap_"
+ <paper-button class="action-button" on-click="onActionButtonTap_"
disabled="[[disableActionButton_]]">
$i18n{add}
</paper-button>
diff --git a/chromium/chrome/browser/resources/settings/languages_page/edit_dictionary_page.html b/chromium/chrome/browser/resources/settings/languages_page/edit_dictionary_page.html
index d5d0912c66d..ce5c803d292 100644
--- a/chromium/chrome/browser/resources/settings/languages_page/edit_dictionary_page.html
+++ b/chromium/chrome/browser/resources/settings/languages_page/edit_dictionary_page.html
@@ -42,7 +42,7 @@
'$i18nPolymer{addDictionaryWordDuplicateError}',
'$i18nPolymer{addDictionaryWordLengthError}')]]"></paper-input>
</div>
- <paper-button class="secondary-button" on-tap="onAddWordTap_"
+ <paper-button class="secondary-button" on-click="onAddWordTap_"
disabled="[[disableAddButton_(newWordValue_)]]" id="addWord">
$i18n{addDictionaryWordButton}
</paper-button>
@@ -58,7 +58,7 @@
<div class="list-item">
<div class="word text-elide">[[item]]</div>
<button is="paper-icon-button-light" class="icon-clear"
- on-tap="onRemoveWordTap_" tabindex$="[[tabIndex]]">
+ on-click="onRemoveWordTap_" tabindex$="[[tabIndex]]">
</button>
</div>
</template>
diff --git a/chromium/chrome/browser/resources/settings/languages_page/languages_page.html b/chromium/chrome/browser/resources/settings/languages_page/languages_page.html
index 608022db7bb..7b70201c2cb 100644
--- a/chromium/chrome/browser/resources/settings/languages_page/languages_page.html
+++ b/chromium/chrome/browser/resources/settings/languages_page/languages_page.html
@@ -84,7 +84,7 @@
focus-config="[[focusConfig_]]">
<neon-animatable route-path="default">
<div class$="settings-box first [[getLanguageListTwoLine_()]]"
- actionable on-tap="toggleExpandButton_">
+ actionable on-click="toggleExpandButton_">
<div class="start">
<div>$i18n{languagesListTitle}</div>
<if expr="chromeos or is_win">
@@ -127,20 +127,20 @@
<if expr="chromeos or is_win">
<template is="dom-if" if="[[isRestartRequired_(
item.language.code, languages.prospectiveUILanguage)]]">
- <paper-button on-tap="onRestartTap_">
+ <paper-button on-click="onRestartTap_">
$i18n{restart}
</paper-button>
</template>
</if>
<button is="paper-icon-button-light" title="$i18n{moreActions}"
- id="more-[[item.language.code]]" on-tap="onDotsTap_"
+ id="more-[[item.language.code]]" on-click="onDotsTap_"
class="icon-more-vert">
</button>
</div>
</template>
<div class="list-item">
<a is="action-link" class="list-button" id="addLanguages"
- on-tap="onAddLanguagesTap_">
+ on-click="onAddLanguagesTap_">
$i18n{addLanguages}
</a>
</div>
@@ -153,7 +153,7 @@
<if expr="chromeos">
<div id="manageInputMethodsSubpageTrigger"
class="settings-box two-line" actionable
- on-tap="toggleExpandButton_">
+ on-click="toggleExpandButton_">
<div class="start">
<div>$i18n{inputMethodsListTitle}</div>
<div class="secondary">
@@ -171,7 +171,7 @@
items="[[languages.inputMethods.enabled]]">
<div class$="list-item [[getInputMethodItemClass_(
item.id, languages.inputMethods.currentId)]]"
- on-tap="onInputMethodTap_" on-keypress="onInputMethodTap_"
+ on-click="onInputMethodTap_" on-keypress="onInputMethodTap_"
actionable tabindex="0">
<div class="start">
<div>[[item.displayName]]</div>
@@ -182,12 +182,13 @@
</div>
</div>
<button class="icon-external" is="paper-icon-button-light"
- on-tap="onInputMethodOptionsTap_"
+ on-click="onInputMethodOptionsTap_"
hidden="[[!item.hasOptionsPage]]">
</button>
</div>
</template>
- <div class="list-item" on-tap="onManageInputMethodsTap_" actionable>
+ <div class="list-item" on-click="onManageInputMethodsTap_"
+ actionable>
<div class="start" id="manageInputMethods">
$i18n{manageInputMethods}
</div>
@@ -207,7 +208,7 @@
class$="settings-box [[getSpellCheckListTwoLine_(
spellCheckSecondaryText_)]]"
actionable$="[[!spellCheckDisabled_]]"
- on-tap="toggleExpandButton_">
+ on-click="toggleExpandButton_">
<div class="start">
<div>$i18n{spellCheckListTitle}</div>
<div class="secondary">[[spellCheckSecondaryText_]]</div>
@@ -230,7 +231,7 @@
<template is="dom-repeat" items="[[spellCheckLanguages_]]">
<div class="list-item">
<template is="dom-if" if="[[!item.isManaged]]">
- <div class="start" on-tap="onSpellCheckChange_"
+ <div class="start" on-click="onSpellCheckChange_"
actionable$="[[item.language.supportsSpellcheck]]">
[[item.language.displayName]]
</div>
@@ -250,7 +251,7 @@
</template>
</div>
</template>
- <div class="list-item" on-tap="onEditDictionaryTap_" actionable>
+ <div class="list-item" on-click="onEditDictionaryTap_" actionable>
<div class="start" id="customSpelling">
$i18n{manageSpellCheck}
</div>
@@ -265,7 +266,8 @@
<dialog is="cr-action-menu"
class$="[[getMenuClass_(prefs.translate.enabled.value)]]">
<if expr="chromeos or is_win">
- <paper-checkbox id="uiLanguageItem" class="dropdown-item"
+ <paper-checkbox id="uiLanguageItem" slot="item"
+ class="dropdown-item"
checked="[[isProspectiveUILanguage_(
detailLanguage_.language.code,
languages.prospectiveUILanguage)]]"
@@ -275,7 +277,8 @@
$i18n{displayInThisLanguage}
</paper-checkbox>
</if>
- <paper-checkbox id="offerTranslations" class="dropdown-item"
+ <paper-checkbox id="offerTranslations" slot="item"
+ class="dropdown-item"
checked="[[detailLanguage_.translateEnabled]]"
on-change="onTranslateCheckboxChange_"
hidden="[[!prefs.translate.enabled.value]]"
@@ -283,26 +286,26 @@
detailLanguage_.language, languages.translateTarget)]]">
$i18n{offerToTranslateInThisLanguage}
</paper-checkbox>
- <hr>
- <button class="dropdown-item" role="menuitem"
- on-tap="onMoveToTopTap_"
+ <hr slot="item">
+ <button slot="item" class="dropdown-item" role="menuitem"
+ on-click="onMoveToTopTap_"
hidden="[[isNthLanguage_(
0, detailLanguage_, languages.enabled.*)]]">
$i18n{moveToTop}
</button>
- <button class="dropdown-item" role="menuitem"
- on-tap="onMoveUpTap_"
+ <button slot="item" class="dropdown-item" role="menuitem"
+ on-click="onMoveUpTap_"
hidden="[[!showMoveUp_(detailLanguage_, languages.enabled.*)]]">
$i18n{moveUp}
</button>
- <button class="dropdown-item" role="menuitem"
- on-tap="onMoveDownTap_"
+ <button slot="item" class="dropdown-item" role="menuitem"
+ on-click="onMoveDownTap_"
hidden="[[!showMoveDown_(
detailLanguage_, languages.enabled.*)]]">
$i18n{moveDown}
</button>
- <button class="dropdown-item" role="menuitem"
- on-tap="onRemoveLanguageTap_"
+ <button slot="item" class="dropdown-item" role="menuitem"
+ on-click="onRemoveLanguageTap_"
hidden="[[!detailLanguage_.removable]]">
$i18n{removeLanguage}
</button>
diff --git a/chromium/chrome/browser/resources/settings/languages_page/languages_page.js b/chromium/chrome/browser/resources/settings/languages_page/languages_page.js
index 43787f93abb..d9df072708b 100644
--- a/chromium/chrome/browser/resources/settings/languages_page/languages_page.js
+++ b/chromium/chrome/browser/resources/settings/languages_page/languages_page.js
@@ -116,11 +116,13 @@ Polymer({
},
},
+ // <if expr="not is_macosx">
observers: [
'updateSpellcheckLanguages_(languages.enabled.*, ' +
'languages.forcedSpellCheckLanguages.*)',
'updateSpellcheckEnabled_(prefs.browser.enable_spellchecking.*)',
],
+ // </if>
/**
* Stamps and opens the Add Languages dialog, registering a listener to
@@ -628,7 +630,7 @@ Polymer({
/**
* Closes the shared action menu after a short delay, so when a checkbox is
- * tapped it can be seen to change state before disappearing.
+ * clicked it can be seen to change state before disappearing.
* @private
*/
closeMenuSoon_: function() {
diff --git a/chromium/chrome/browser/resources/settings/on_startup_page/on_startup_page.html b/chromium/chrome/browser/resources/settings/on_startup_page/on_startup_page.html
index 40bfadfde9d..f4bdec1ade6 100644
--- a/chromium/chrome/browser/resources/settings/on_startup_page/on_startup_page.html
+++ b/chromium/chrome/browser/resources/settings/on_startup_page/on_startup_page.html
@@ -23,13 +23,11 @@
label="$i18n{onStartupOpenNewTab}"
no-extension-indicator>
</controlled-radio-button>
- <template is="dom-if" if="[[showIndicator_(
- ntpExtension_, prefs.session.restore_on_startup.value)]]">
+ <template is="dom-if" if="[[ntpExtension_]]">
<extension-controlled-indicator
extension-id="[[ntpExtension_.id]]"
extension-name="[[ntpExtension_.name]]"
- extension-can-be-disabled="[[ntpExtension_.canBeDisabled]]"
- on-extension-disable="getNtpExtension_">
+ extension-can-be-disabled="[[ntpExtension_.canBeDisabled]]">
</extension-controlled-indicator>
</template>
<controlled-radio-button name="[[prefValues_.CONTINUE]]"
diff --git a/chromium/chrome/browser/resources/settings/on_startup_page/on_startup_page.js b/chromium/chrome/browser/resources/settings/on_startup_page/on_startup_page.js
index 26484951dcf..aff7303d079 100644
--- a/chromium/chrome/browser/resources/settings/on_startup_page/on_startup_page.js
+++ b/chromium/chrome/browser/resources/settings/on_startup_page/on_startup_page.js
@@ -37,29 +37,13 @@ Polymer({
/** @override */
attached: function() {
- this.getNtpExtension_();
- this.addWebUIListener('update-ntp-extension', ntpExtension => {
+ const updateNtpExtension = ntpExtension => {
// Note that |ntpExtension| is empty if there is no NTP extension.
this.ntpExtension_ = ntpExtension;
- });
- },
-
- /** @private */
- getNtpExtension_: function() {
+ };
settings.OnStartupBrowserProxyImpl.getInstance().getNtpExtension().then(
- function(ntpExtension) {
- this.ntpExtension_ = ntpExtension;
- }.bind(this));
- },
-
- /**
- * @param {?NtpExtension} ntpExtension
- * @param {number} restoreOnStartup Value of prefs.session.restore_on_startup.
- * @return {boolean}
- * @private
- */
- showIndicator_: function(ntpExtension, restoreOnStartup) {
- return !!ntpExtension && restoreOnStartup == this.prefValues_.OPEN_NEW_TAB;
+ updateNtpExtension);
+ this.addWebUIListener('update-ntp-extension', updateNtpExtension);
},
/**
diff --git a/chromium/chrome/browser/resources/settings/on_startup_page/startup_url_dialog.html b/chromium/chrome/browser/resources/settings/on_startup_page/startup_url_dialog.html
index d2139335785..313bdf7aba0 100644
--- a/chromium/chrome/browser/resources/settings/on_startup_page/startup_url_dialog.html
+++ b/chromium/chrome/browser/resources/settings/on_startup_page/startup_url_dialog.html
@@ -21,10 +21,10 @@
</paper-input>
</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="onCancelTap_"
+ <paper-button class="cancel-button" on-click="onCancelTap_"
id="cancel">$i18n{cancel}</paper-button>
<paper-button id="actionButton" class="action-button"
- on-tap="onActionButtonTap_">[[actionButtonText_]]</paper-button>
+ on-click="onActionButtonTap_">[[actionButtonText_]]</paper-button>
</div>
</dialog>
</template>
diff --git a/chromium/chrome/browser/resources/settings/on_startup_page/startup_url_entry.html b/chromium/chrome/browser/resources/settings/on_startup_page/startup_url_entry.html
index cf1a7a9cf81..99699c9a021 100644
--- a/chromium/chrome/browser/resources/settings/on_startup_page/startup_url_entry.html
+++ b/chromium/chrome/browser/resources/settings/on_startup_page/startup_url_entry.html
@@ -25,16 +25,17 @@
<div class="text-elide secondary">[[model.url]]</div>
</div>
<template is="dom-if" if="[[editable]]">
- <button is="paper-icon-button-light" id="dots" on-tap="onDotsTap_"
+ <button is="paper-icon-button-light" id="dots" on-click="onDotsTap_"
title="$i18n{moreActions}" focus-row-control focus-type="menu"
class="icon-more-vert">
</button>
<template is="cr-lazy-render" id="menu">
<dialog is="cr-action-menu">
- <button class="dropdown-item" on-tap="onEditTap_">
+ <button slot="item" class="dropdown-item" on-click="onEditTap_">
$i18n{edit}
</button>
- <button class="dropdown-item" id="remove" on-tap="onRemoveTap_">
+ <button slot="item" class="dropdown-item" id="remove"
+ on-click="onRemoveTap_">
$i18n{onStartupRemove}
</button>
</dialog>
diff --git a/chromium/chrome/browser/resources/settings/on_startup_page/startup_url_entry.js b/chromium/chrome/browser/resources/settings/on_startup_page/startup_url_entry.js
index 8c4460dc865..dd6ac50a045 100644
--- a/chromium/chrome/browser/resources/settings/on_startup_page/startup_url_entry.js
+++ b/chromium/chrome/browser/resources/settings/on_startup_page/startup_url_entry.js
@@ -12,7 +12,7 @@ cr.exportPath('settings');
/**
* The name of the event fired from this element when the "Edit" option is
- * tapped.
+ * clicked.
* @type {string}
*/
settings.EDIT_STARTUP_URL_EVENT = 'edit-startup-url';
diff --git a/chromium/chrome/browser/resources/settings/on_startup_page/startup_urls_page.html b/chromium/chrome/browser/resources/settings/on_startup_page/startup_urls_page.html
index 02b87b2093a..93cd7cd0c94 100644
--- a/chromium/chrome/browser/resources/settings/on_startup_page/startup_urls_page.html
+++ b/chromium/chrome/browser/resources/settings/on_startup_page/startup_urls_page.html
@@ -18,7 +18,7 @@
<template>
<style include="settings-shared action-link iron-flex">
.list-frame {
- @apply(--settings-list-frame-padding);
+ @apply --settings-list-frame-padding;
}
.list-frame > div {
@@ -26,7 +26,7 @@
}
#outer {
- @apply(--settings-list-frame-padding);
+ @apply --settings-list-frame-padding;
max-height: 355px; /** Enough height to show six entries. */
}
@@ -53,13 +53,13 @@
<template is="dom-if" if="[[shouldAllowUrlsEdit_(
prefs.session.startup_urls.enforcement)]]" restamp>
<div class="list-item" id="addPage">
- <a is="action-link" class="list-button" on-tap="onAddPageTap_">
+ <a is="action-link" class="list-button" on-click="onAddPageTap_">
$i18n{onStartupAddNewPage}
</a>
</div>
<div class="list-item" id="useCurrentPages">
<a is="action-link" class="list-button"
- on-tap="onUseCurrentPagesTap_">
+ on-click="onUseCurrentPagesTap_">
$i18n{onStartupUseCurrent}
</a>
</div>
diff --git a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/address_edit_dialog.html b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/address_edit_dialog.html
index 37c189b5231..8d6515df3a8 100644
--- a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/address_edit_dialog.html
+++ b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/address_edit_dialog.html
@@ -51,7 +51,7 @@
transform: scale(0.75);
transform-origin: left;
width: 133%;
- @apply(--paper-input-container-label-floating);
+ @apply --paper-input-container-label-floating;
}
:host-context([dir=rtl]) #select-label {
@@ -144,11 +144,11 @@
</div>
<div slot="button-container">
<paper-button id="cancelButton" class="cancel-button"
- on-tap="onCancelTap_">
+ on-click="onCancelTap_">
$i18n{cancel}
</paper-button>
<paper-button id="saveButton" class="action-button"
- disabled="[[!canSave_]]" on-tap="onSaveButtonTap_">
+ disabled="[[!canSave_]]" on-click="onSaveButtonTap_">
$i18n{save}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/autofill_section.html b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/autofill_section.html
index 4da90c016dc..e5193b1a7d1 100644
--- a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/autofill_section.html
+++ b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/autofill_section.html
@@ -65,9 +65,9 @@
}
</style>
<settings-toggle-button id="autofillToggle"
- class="first primary-toggle"
+ class="first"
aria-label="$i18n{autofill}" no-extension-indicator
- label="[[getOnOffLabel_(prefs.autofill.enabled.value)]]"
+ label="$i18n{autofillFormsLabel}"
pref="{{prefs.autofill.enabled}}">
</settings-toggle-button>
<template is="dom-if" if="[[prefs.autofill.enabled.extensionId]]">
@@ -85,7 +85,7 @@
<h2 class="start">$i18n{addresses}</h2>
<paper-button id="addAddress"
class="secondary-button header-aligned-button"
- on-tap="onAddAddressTap_">
+ on-click="onAddAddressTap_">
$i18n{add}
</paper-button>
</div>
@@ -108,13 +108,13 @@
</div>
<template is="dom-if" if="[[item.metadata.isLocal]]">
<button is="paper-icon-button-light" id="addressMenu"
- class="icon-more-vert" on-tap="onAddressMenuTap_"
+ class="icon-more-vert" on-click="onAddressMenuTap_"
title="$i18n{moreActions}">
</button>
</template>
<template is="dom-if" if="[[!item.metadata.isLocal]]">
<button is="paper-icon-button-light" class="icon-external"
- on-tap="onRemoteEditAddressTap_" actionable></button>
+ on-click="onRemoteEditAddressTap_" actionable></button>
</template>
</div>
</template>
@@ -125,10 +125,10 @@
</div>
</div>
<dialog is="cr-action-menu" id="addressSharedMenu">
- <button id="menuEditAddress" class="dropdown-item"
- on-tap="onMenuEditAddressTap_">$i18n{edit}</button>
- <button id="menuRemoveAddress" class="dropdown-item"
- on-tap="onMenuRemoveAddressTap_">$i18n{removeAddress}</button>
+ <button id="menuEditAddress" slot="item" class="dropdown-item"
+ on-click="onMenuEditAddressTap_">$i18n{edit}</button>
+ <button id="menuRemoveAddress" slot="item" class="dropdown-item"
+ on-click="onMenuRemoveAddressTap_">$i18n{removeAddress}</button>
</dialog>
<template is="dom-if" if="[[showAddressDialog_]]" restamp>
<settings-address-edit-dialog address="[[activeAddress]]"
@@ -139,7 +139,7 @@
<h2 class="start">$i18n{creditCards}</h2>
<paper-button id="addCreditCard"
class="secondary-button header-aligned-button"
- on-tap="onAddCreditCardTap_"
+ on-click="onAddCreditCardTap_"
hidden$="[[isDisabled_(prefs.autofill.credit_card_enabled)]]">
$i18n{add}
</paper-button>
@@ -173,13 +173,13 @@
<template is="dom-if" if="[[showDots_(item.metadata)]]">
<button is="paper-icon-button-light" id="creditCardMenu"
class="icon-more-vert" title="$i18n{moreActions}"
- on-tap="onCreditCardMenuTap_">
+ on-click="onCreditCardMenuTap_">
</button>
</template>
<template is="dom-if" if="[[!showDots_(item.metadata)]]">
<button is="paper-icon-button-light" id="remoteCreditCardLink"
class="icon-external"
- on-tap="onRemoteEditCreditCardTap_" actionable></button>
+ on-click="onRemoteEditCreditCardTap_" actionable></button>
</template>
</div>
</div>
@@ -198,13 +198,13 @@
</div>
</div>
<dialog is="cr-action-menu" id="creditCardSharedMenu">
- <button id="menuEditCreditCard" class="dropdown-item"
- on-tap="onMenuEditCreditCardTap_">$i18n{edit}</button>
- <button id="menuRemoveCreditCard" class="dropdown-item"
+ <button id="menuEditCreditCard" slot="item" class="dropdown-item"
+ on-click="onMenuEditCreditCardTap_">$i18n{edit}</button>
+ <button id="menuRemoveCreditCard" slot="item" class="dropdown-item"
hidden$="[[!activeCreditCard.metadata.isLocal]]"
- on-tap="onMenuRemoveCreditCardTap_">$i18n{removeCreditCard}</button>
- <button id="menuClearCreditCard" class="dropdown-item"
- on-tap="onMenuClearCreditCardTap_"
+ on-click="onMenuRemoveCreditCardTap_">$i18n{removeCreditCard}</button>
+ <button id="menuClearCreditCard" slot="item" class="dropdown-item"
+ on-click="onMenuClearCreditCardTap_"
hidden$="[[!activeCreditCard.metadata.isCached]]">
$i18n{clearCreditCard}
</button>
diff --git a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/credit_card_edit_dialog.html b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/credit_card_edit_dialog.html
index 041413545b9..6465c600227 100644
--- a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/credit_card_edit_dialog.html
+++ b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/credit_card_edit_dialog.html
@@ -89,9 +89,9 @@
</div>
<div slot="button-container">
<paper-button id="cancelButton" class="cancel-button"
- on-tap="onCancelButtonTap_">$i18n{cancel}</paper-button>
+ on-click="onCancelButtonTap_">$i18n{cancel}</paper-button>
<paper-button id="saveButton" class="action-button"
- on-tap="onSaveButtonTap_" disabled>$i18n{save}</paper-button>
+ on-click="onSaveButtonTap_" disabled>$i18n{save}</paper-button>
</div>
</dialog>
</template>
diff --git a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.html b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.html
index 0a0814697a6..ae402835da2 100644
--- a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.html
+++ b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.html
@@ -22,7 +22,7 @@
};
--paper-input-container-label-focus: {
- color: var(--paper-input-container-color, --secondary-text-color);
+ color: var(--secondary-text-color);
};
}
@@ -61,15 +61,15 @@
<button is="paper-icon-button-light" id="showPasswordButton"
class$="[[getIconClass_(item.password)]]"
hidden$="[[item.entry.federationText]]"
- on-tap="onShowPasswordButtonTap_"
+ on-click="onShowPasswordButtonTap_"
title="[[showPasswordTitle_(item.password,
'$i18nPolymer{hidePassword}','$i18nPolymer{showPassword}')]]">
</button>
</div>
</div>
<div slot="button-container">
- <paper-button class="action-button" on-tap="onActionButtonTap_">
- $i18n{passwordsDone}
+ <paper-button class="action-button" on-click="onActionButtonTap_">
+ $i18n{done}
</paper-button>
</div>
</dialog>
diff --git a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/password_list_item.html b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/password_list_item.html
index 85dda982896..59f3d8a1e3c 100644
--- a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/password_list_item.html
+++ b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/password_list_item.html
@@ -48,12 +48,12 @@
<template is="dom-if" if="[[!item.entry.federationText]]">
<input id="password" aria-label=$i18n{editPasswordPasswordLabel}
type="[[getPasswordInputType_(item.password)]]"
- on-tap="onReadonlyInputTap_" class="password-field" readonly
+ on-click="onReadonlyInputTap_" class="password-field" readonly
disabled$="[[!item.password]]"
value="[[getPassword_(item.password)]]">
<button is="paper-icon-button-light" id="showPasswordButton"
class$="[[getIconClass_(item.password)]]"
- on-tap="onShowPasswordButtonTap_"
+ on-click="onShowPasswordButtonTap_"
title="[[showPasswordTitle_(item.password,
'$i18nPolymer{hidePassword}','$i18nPolymer{showPassword}')]]"
focus-row-control focus-type="showPassword">
@@ -66,7 +66,7 @@
</template>
</div>
<button is="paper-icon-button-light" id="passwordMenu"
- class="icon-more-vert" on-tap="onPasswordMenuTap_"
+ class="icon-more-vert" on-click="onPasswordMenuTap_"
title="$i18n{moreActions}" focus-row-control
focus-type="passwordMenu">
</button>
diff --git a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_and_forms_page.html b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_and_forms_page.html
index 55dd3fd8ed6..a994bde577f 100644
--- a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_and_forms_page.html
+++ b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_and_forms_page.html
@@ -25,10 +25,10 @@
<neon-animatable route-path="default">
<button is="cr-link-row" icon-class="subpage-arrow"
id="autofillManagerButton" label="$i18n{autofill}"
- sub-label="$i18n{autofillDetail}" on-tap="onAutofillTap_">
+ sub-label="$i18n{autofillDetail}" on-click="onAutofillTap_">
</button>
<div class="settings-box two-line">
- <div class="start two-line" on-tap="onPasswordsTap_" actionable
+ <div class="start two-line" on-click="onPasswordsTap_" actionable
id="passwordManagerButton">
<div class="flex">
$i18n{passwords}
diff --git a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.html b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.html
index 9353ae7e5fd..2cfe136b936 100644
--- a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.html
+++ b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.html
@@ -8,8 +8,15 @@
<dom-module id="passwords-export-dialog">
<template>
<style include="settings-shared iron-flex">
+ paper-progress {
+ width: 100%;
+ --paper-progress-active-color: var(--google-blue-500);
+ }
+ .action-button {
+ -webkit-margin-start: 8px;
+ }
</style>
- <dialog is="cr-dialog" id="dialog" close-text="$i18n{close}">
+ <dialog is="cr-dialog" id="dialog_start" close-text="$i18n{close}">
<div slot="title">$i18n{exportPasswordsTitle}</div>
<div slot="body">
<div class="layout horizontal center">
@@ -18,15 +25,51 @@
</div>
<div slot="button-container">
<paper-button class="secondary-button header-aligned-button"
- on-tap="onCancelButtonTap_">
+ on-click="onCancelButtonTap_" id="cancelButton">
$i18n{cancel}
</paper-button>
<paper-button class="action-button header-aligned-button"
- on-tap="onExportTap_" id="exportPasswordsButton">
+ on-click="onExportTap_" id="exportPasswordsButton">
$i18n{exportPasswords}
</paper-button>
</div>
</dialog>
+
+ <dialog is="cr-dialog" id="dialog_progress" no-cancel="true">
+ <div slot="title">$i18n{exportingPasswordsTitle}</div>
+ <div slot="body">
+ <paper-progress indeterminate class="blue"></paper-progress>
+ </div>
+ <div slot="button-container">
+ <paper-button id="cancel_progress_button"
+ class="secondary-button header-aligned-button"
+ on-click="onCancelProgressButtonTap_">
+ $i18n{cancel}
+ </paper-button>
+ </div>
+ </dialog>
+
+ <dialog is="cr-dialog" id="dialog_error" close-text="$i18n{close}">
+ <div slot="title">[[exportErrorMessage]]</div>
+ <div slot="body">
+ $i18n{exportPasswordsFailTips}
+ <ul>
+ <li>$i18n{exportPasswordsFailTipsEnoughSpace}</li>
+ <li>$i18n{exportPasswordsFailTipsAnotherFolder}</li>
+ </ul>
+ </div>
+ <div slot="button-container">
+ <paper-button class="secondary-button header-aligned-button"
+ on-click="onCancelButtonTap_" id="cancelErrorButton">
+ $i18n{cancel}
+ </paper-button>
+ <paper-button class="action-button header-aligned-button"
+ on-click="onExportTap_" id="tryAgainButton">
+ $i18n{exportPasswordsTryAgain}
+ </paper-button>
+ </div>
+ </dialog>
+
</template>
<script src="passwords_export_dialog.js"></script>
-</dom-module> \ No newline at end of file
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.js b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.js
index da06563ff1c..737b3f504e4 100644
--- a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.js
+++ b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_export_dialog.js
@@ -10,9 +10,43 @@
(function() {
'use strict';
+/**
+ * The states of the export passwords dialog.
+ * @enum {string}
+ */
+const States = {
+ START: 'START',
+ IN_PROGRESS: 'IN_PROGRESS',
+ ERROR: 'ERROR',
+};
+
+const ProgressStatus = chrome.passwordsPrivate.ExportProgressStatus;
+
+/**
+ * The amount of time (ms) between the start of the export and the moment we
+ * start showing the progress bar.
+ * @type {number}
+ */
+const progressBarDelayMs = 100;
+
+/**
+ * The minimum amount of time (ms) that the progress bar will be visible.
+ * @type {number}
+ */
+const progressBarBlockMs = 1000;
+
Polymer({
is: 'passwords-export-dialog',
+ behaviors: [I18nBehavior],
+
+ properties: {
+ /** The error that occurred while exporting. */
+ exportErrorMessage: String,
+ },
+
+ listeners: {'cancel': 'close'},
+
/**
* The interface for callbacks to the browser.
* Defined in passwords_section.js
@@ -21,16 +55,114 @@ Polymer({
*/
passwordManager_: null,
+ /** @private {function(!PasswordManager.PasswordExportProgress):void} */
+ onPasswordsFileExportProgressListener_: null,
+
+ /**
+ * The task that will display the progress bar, if the export doesn't finish
+ * quickly. This is null, unless the task is currently scheduled.
+ * @private {?number}
+ */
+ progressTaskToken_: null,
+
+ /**
+ * The task that will display the completion of the export, if any. We display
+ * the progress bar for at least |progressBarBlockMs|, therefore, if export
+ * finishes earlier, we cache the result in |delayedProgress_| and this task
+ * will consume it. This is null, unless the task is currently scheduled.
+ * @private {?number}
+ */
+ delayedCompletionToken_: null,
+
+ /**
+ * We display the progress bar for at least |progressBarBlockMs|. If progress
+ * is achieved earlier, we store the update here and consume it later.
+ * @private {?PasswordManager.PasswordExportProgress}
+ */
+ delayedProgress_: null,
+
/** @override */
attached: function() {
- this.$.dialog.showModal();
-
this.passwordManager_ = PasswordManagerImpl.getInstance();
+
+ this.switchToDialog_(States.START);
+
+ this.onPasswordsFileExportProgressListener_ =
+ this.onPasswordsFileExportProgress_.bind(this);
+
+ // If export started on a different tab and is still in progress, display a
+ // busy UI.
+ this.passwordManager_.requestExportProgressStatus(status => {
+ if (status == ProgressStatus.IN_PROGRESS)
+ this.switchToDialog_(States.IN_PROGRESS);
+ });
+
+ this.passwordManager_.addPasswordsFileExportProgressListener(
+ this.onPasswordsFileExportProgressListener_);
+ },
+
+ /**
+ * Handles an export progress event by changing the visible dialog or caching
+ * the event for later consumption.
+ * @param {!PasswordManager.PasswordExportProgress} progress
+ * @private
+ */
+ onPasswordsFileExportProgress_(progress) {
+ // If Chrome has already started displaying the progress bar
+ // (|progressTaskToken_ is null) and hasn't completed its minimum display
+ // time (|delayedCompletionToken_| is not null) progress should be cached
+ // for consumption when the blocking time ends.
+ const progressBlocked =
+ !this.progressTaskToken_ && !!this.delayedCompletionToken_;
+ if (!progressBlocked) {
+ clearTimeout(this.progressTaskToken_);
+ this.progressTaskToken_ = null;
+ this.processProgress_(progress);
+ } else {
+ this.delayedProgress_ = progress;
+ }
+ },
+
+ /**
+ * Displays the progress bar and suspends further UI updates for
+ * |progressBarBlockMs|.
+ * @private
+ */
+ progressTask_() {
+ this.progressTaskToken_ = null;
+ this.switchToDialog_(States.IN_PROGRESS);
+
+ this.delayedCompletionToken_ =
+ setTimeout(this.delayedCompletionTask_.bind(this), progressBarBlockMs);
+ },
+
+ /**
+ * Unblocks progress after showing the progress bar for |progressBarBlock|ms
+ * and processes any progress that was delayed.
+ * @private
+ */
+ delayedCompletionTask_() {
+ this.delayedCompletionToken_ = null;
+ if (this.delayedProgress_) {
+ this.processProgress_(this.delayedProgress_);
+ this.delayedProgress_ = null;
+ }
},
/** Closes the dialog. */
close: function() {
- this.$.dialog.close();
+ clearTimeout(this.progressTaskToken_);
+ clearTimeout(this.delayedCompletionToken_);
+ this.progressTaskToken_ = null;
+ this.delayedCompletionToken_ = null;
+ this.passwordManager_.removePasswordsFileExportProgressListener(
+ this.onPasswordsFileExportProgressListener_);
+ if (this.$.dialog_start.open)
+ this.$.dialog_start.close();
+ if (this.$.dialog_progress.open)
+ this.$.dialog_progress.close();
+ if (this.$.dialog_error.open)
+ this.$.dialog_error.close();
},
/**
@@ -38,7 +170,56 @@ Polymer({
* @private
*/
onExportTap_: function() {
- this.passwordManager_.exportPasswords();
+ this.passwordManager_.exportPasswords(() => {
+ if (chrome.runtime.lastError &&
+ chrome.runtime.lastError.message == 'in-progress') {
+ // Exporting was started by a different call to exportPasswords() and is
+ // is still in progress. This UI needs to be updated to the current
+ // status.
+ this.switchToDialog_(States.IN_PROGRESS);
+ }
+ });
+ },
+
+ /**
+ * Prepares and displays the appropriate view (with delay, if necessary).
+ * @param {!PasswordManager.PasswordExportProgress} progress
+ * @private
+ */
+ processProgress_(progress) {
+ if (progress.status == ProgressStatus.IN_PROGRESS) {
+ this.progressTaskToken_ =
+ setTimeout(this.progressTask_.bind(this), progressBarDelayMs);
+ return;
+ }
+ if (progress.status == ProgressStatus.SUCCEEDED) {
+ this.close();
+ return;
+ }
+ if (progress.status == ProgressStatus.FAILED_WRITE_FAILED) {
+ this.exportErrorMessage =
+ this.i18n('exportPasswordsFailTitle', progress.folderName);
+ this.switchToDialog_(States.ERROR);
+ return;
+ }
+ },
+
+ /**
+ * Opens the specified dialog and hides the others.
+ * @param {!States} state the dialog to open.
+ * @private
+ */
+ switchToDialog_(state) {
+ this.$.dialog_start.open = false;
+ this.$.dialog_error.open = false;
+ this.$.dialog_progress.open = false;
+
+ if (state == States.START)
+ this.$.dialog_start.showModal();
+ if (state == States.ERROR)
+ this.$.dialog_error.showModal();
+ if (state == States.IN_PROGRESS)
+ this.$.dialog_progress.showModal();
},
/**
@@ -48,5 +229,15 @@ Polymer({
onCancelButtonTap_: function() {
this.close();
},
+
+ /**
+ * Handler for tapping the 'cancel' button on the progress dialog. It should
+ * cancel the export and dismiss the dialog.
+ * @private
+ */
+ onCancelProgressButtonTap_: function() {
+ this.passwordManager_.cancelExportPasswords();
+ this.close();
+ },
});
})(); \ No newline at end of file
diff --git a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.html b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.html
index 4b47e458f25..956780bb648 100644
--- a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.html
+++ b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.html
@@ -52,12 +52,16 @@
#undoToast {
z-index: 1;
- }
+ }
+
+ #exportImportMenuButton {
+ -webkit-margin-end: 0;
+ }
</style>
<settings-toggle-button id="passwordToggle"
- class="first primary-toggle"
+ class="first"
aria-label="$i18n{passwords}" no-extension-indicator
- label="[[getOnOffLabel_(prefs.credentials_enable_service.value)]]"
+ label="$i18n{passwordsSavePasswordsLabel}"
pref="{{prefs.credentials_enable_service}}">
</settings-toggle-button>
<template is="dom-if"
@@ -89,7 +93,7 @@
if="[[showImportOrExportPasswords_(
showExportPasswords_, showImportPasswords_)]]">
<button is="paper-icon-button-light" id="exportImportMenuButton"
- class="icon-more-vert" on-tap="onImportExportMenuTap_"
+ class="icon-more-vert" on-click="onImportExportMenuTap_"
title="$i18n{moreActions}" focus-type="exportImportMenuButton">
</button>
</template>
@@ -122,20 +126,20 @@
</div>
</div>
<dialog is="cr-action-menu" id="menu">
- <button id="menuEditPassword" class="dropdown-item"
- on-tap="onMenuEditPasswordTap_">$i18n{passwordViewDetails}</button>
- <button id="menuRemovePassword" class="dropdown-item"
- on-tap="onMenuRemovePasswordTap_">$i18n{removePassword}</button>
+ <button id="menuEditPassword" slot="item" class="dropdown-item"
+ on-click="onMenuEditPasswordTap_">$i18n{passwordViewDetails}</button>
+ <button id="menuRemovePassword" slot="item" class="dropdown-item"
+ on-click="onMenuRemovePasswordTap_">$i18n{removePassword}</button>
</dialog>
<dialog is="cr-action-menu" id="exportImportMenu">
- <template is="dom-if" if="[[showImportPasswords_]]">
- <button id="menuImportPassword" class="dropdown-item"
- on-tap="onImportTap_">$i18n{import}</button>
- </template>
- <template is="dom-if" if="[[showExportPasswords_]]">
- <button id="menuExportPassword" class="dropdown-item"
- on-tap="onExportTap_">$i18n{export}</button>
- </template>
+ <button id="menuImportPassword" slot="item" class="dropdown-item"
+ on-click="onImportTap_" hidden="[[!showImportPasswords_]]">
+ $i18n{import}
+ </button>
+ <button id="menuExportPassword" slot="item" class="dropdown-item"
+ on-click="onExportTap_" hidden="[[!showExportPasswords_]]">
+ $i18n{exportMenuItem}
+ </button>
</dialog>
<template is="dom-if" if="[[showPasswordsExportDialog_]]" restamp>
<passwords-export-dialog on-close="onPasswordsExportDialogClosed_">
@@ -148,7 +152,7 @@
</template>
<cr-toast id="undoToast" duration="[[toastDuration_]]">
<div id="undoLabel">$i18n{passwordDeleted}</div>
- <paper-button id="undoButton" on-tap="onUndoButtonTap_">
+ <paper-button id="undoButton" on-click="onUndoButtonTap_">
$i18n{undoRemovePassword}
</paper-button>
</cr-toast>
@@ -165,7 +169,7 @@
</a>
</div>
<button is="paper-icon-button-light" id="removeExceptionButton"
- class="icon-clear" on-tap="onRemoveExceptionButtonTap_"
+ class="icon-clear" on-click="onRemoveExceptionButtonTap_"
tabindex$="[[tabIndex]]"
title="$i18n{deletePasswordException}">
</button>
diff --git a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js
index d4f0f70ac06..33cb93e78a8 100644
--- a/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js
+++ b/chromium/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js
@@ -10,6 +10,8 @@
/**
* Interface for all callbacks to the password API.
+ * TODO(crbug.com/802352) Move the PasswordManager proxy to a separate
+ * location.
* @interface
*/
class PasswordManager {
@@ -84,8 +86,32 @@ class PasswordManager {
/**
* Triggers the dialogue for exporting passwords.
+ * @param {function():void} callback
*/
- exportPasswords() {}
+ exportPasswords(callback) {}
+
+ /**
+ * Cancels the ongoing export of passwords.
+ */
+ cancelExportPasswords(callback) {}
+
+ /**
+ * Queries the status of any ongoing export.
+ * @param {function(!PasswordManager.ExportProgressStatus):void} callback
+ */
+ requestExportProgressStatus(callback) {}
+
+ /**
+ * Add an observer to the export progress.
+ * @param {function(!PasswordManager.PasswordExportProgress):void} listener
+ */
+ addPasswordsFileExportProgressListener(listener) {}
+
+ /**
+ * Remove an observer from the export progress.
+ * @param {function(!PasswordManager.PasswordExportProgress):void} listener
+ */
+ removePasswordsFileExportProgressListener(listener) {}
}
/** @typedef {chrome.passwordsPrivate.PasswordUiEntry} */
@@ -103,6 +129,12 @@ PasswordManager.PlaintextPasswordEvent;
/** @typedef {{ entry: !PasswordManager.PasswordUiEntry, password: string }} */
PasswordManager.UiEntryWithPassword;
+/** @typedef {chrome.passwordsPrivate.PasswordExportProgress} */
+PasswordManager.PasswordExportProgress;
+
+/** @typedef {chrome.passwordsPrivate.ExportProgressStatus} */
+PasswordManager.ExportProgressStatus;
+
/**
* Implementation that accesses the private API.
* @implements {PasswordManager}
@@ -176,8 +208,29 @@ class PasswordManagerImpl {
}
/** @override */
- exportPasswords() {
- chrome.passwordsPrivate.exportPasswords();
+ exportPasswords(callback) {
+ chrome.passwordsPrivate.exportPasswords(callback);
+ }
+
+ /** @override */
+ cancelExportPasswords() {
+ chrome.passwordsPrivate.cancelExportPasswords();
+ }
+
+ /** @override */
+ requestExportProgressStatus(callback) {
+ chrome.passwordsPrivate.requestExportProgressStatus(callback);
+ }
+
+ /** @override */
+ addPasswordsFileExportProgressListener(listener) {
+ chrome.passwordsPrivate.onPasswordsFileExportProgress.addListener(listener);
+ }
+
+ /** @override */
+ removePasswordsFileExportProgressListener(listener) {
+ chrome.passwordsPrivate.onPasswordsFileExportProgress.removeListener(
+ listener);
}
}
@@ -251,10 +304,7 @@ Polymer({
/** @private */
showExportPasswords_: {
type: Boolean,
- value: function() {
- return loadTimeData.valueExists('showExportPasswords') &&
- loadTimeData.getBoolean('showExportPasswords');
- }
+ computed: 'showExportPasswordsAndReady_(savedPasswords)'
},
/** @private */
@@ -489,6 +539,7 @@ Polymer({
*/
onImportTap_: function() {
this.passwordManager_.importPasswords();
+ this.$.exportImportMenu.close();
},
/**
@@ -503,6 +554,8 @@ Polymer({
/** @private */
onPasswordsExportDialogClosed_: function() {
this.showPasswordsExportDialog_ = false;
+ cr.ui.focusWithoutInk(assert(this.activeDialogAnchor_));
+ this.activeDialogAnchor_ = null;
},
/**
@@ -538,6 +591,16 @@ Polymer({
/**
* @private
+ * @param {!Array<!PasswordManager.PasswordUiEntry>} savedPasswords
+ */
+ showExportPasswordsAndReady_: function(savedPasswords) {
+ return loadTimeData.valueExists('showExportPasswords') &&
+ loadTimeData.getBoolean('showExportPasswords') &&
+ savedPasswords.length > 0;
+ },
+
+ /**
+ * @private
* @param {boolean} showExportPasswords
* @param {boolean} showImportPasswords
* @return {boolean}
diff --git a/chromium/chrome/browser/resources/settings/people_page/change_picture.html b/chromium/chrome/browser/resources/settings/people_page/change_picture.html
index 87ec0b1917d..f14495a8af7 100644
--- a/chromium/chrome/browser/resources/settings/people_page/change_picture.html
+++ b/chromium/chrome/browser/resources/settings/people_page/change_picture.html
@@ -106,7 +106,7 @@
choose-file-label="$i18n{chooseFile}"
old-image-label="$i18n{oldPhoto}"
profile-image-label="$i18n{profilePhoto}"
- take-photo-label="$i18n{takePhoto}">
+ take-photo-label="$i18n{takePhoto}"
capture-video-label="$i18n{captureVideo}">
</cr-picture-list>
</div>
diff --git a/chromium/chrome/browser/resources/settings/people_page/change_picture.js b/chromium/chrome/browser/resources/settings/people_page/change_picture.js
index 48eaa44ed61..eeca32878b8 100644
--- a/chromium/chrome/browser/resources/settings/people_page/change_picture.js
+++ b/chromium/chrome/browser/resources/settings/people_page/change_picture.js
@@ -81,6 +81,9 @@ Polymer({
/** @private {?CrPictureListElement} */
pictureList_: null,
+ /** @private {boolean} */
+ oldImagePending_: false,
+
/** @override */
ready: function() {
this.browserProxy_ = settings.ChangePictureBrowserProxyImpl.getInstance();
@@ -144,6 +147,7 @@ Polymer({
* @private
*/
receiveOldImage_: function(imageInfo) {
+ this.oldImagePending_ = false;
this.pictureList_.setOldImageUrl(imageInfo.url, imageInfo.index);
},
@@ -216,6 +220,7 @@ Polymer({
* @private
*/
onPhotoTaken_: function(event) {
+ this.oldImagePending_ = true;
this.browserProxy_.photoTaken(event.detail.photoDataUrl);
this.pictureList_.setOldImageUrl(event.detail.photoDataUrl);
this.pictureList_.setFocus();
@@ -235,6 +240,9 @@ Polymer({
/** @private */
onDiscardImage_: function() {
+ // Prevent image from being discarded if old image is pending.
+ if (this.oldImagePending_)
+ return;
this.pictureList_.setOldImageUrl(CrPicture.kDefaultImageUrl);
// Revert to profile image as we don't know what last used default image is.
this.browserProxy_.selectProfileImage();
diff --git a/chromium/chrome/browser/resources/settings/people_page/change_picture_browser_proxy.js b/chromium/chrome/browser/resources/settings/people_page/change_picture_browser_proxy.js
index 7295e66f6a0..3cd333e51bd 100644
--- a/chromium/chrome/browser/resources/settings/people_page/change_picture_browser_proxy.js
+++ b/chromium/chrome/browser/resources/settings/people_page/change_picture_browser_proxy.js
@@ -51,8 +51,9 @@ cr.define('settings', function() {
selectProfileImage() {}
/**
- * Provides the taken photo as a data URL to the C++. No response is
- * expected.
+ * Provides the taken photo as a data URL to the C++ and sets the user
+ * image to the 'old' image. As a response, the C++ sends the
+ * 'old-image-changed' WebUIListener event.
* @param {string} photoDataUrl
*/
photoTaken(photoDataUrl) {}
diff --git a/chromium/chrome/browser/resources/settings/people_page/compiled_resources2.gyp b/chromium/chrome/browser/resources/settings/people_page/compiled_resources2.gyp
index 3159cd12ca1..5c15adeb340 100644
--- a/chromium/chrome/browser/resources/settings/people_page/compiled_resources2.gyp
+++ b/chromium/chrome/browser/resources/settings/people_page/compiled_resources2.gyp
@@ -255,5 +255,19 @@
],
'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'],
},
+ {
+ 'target_name': 'sync_account_control',
+ 'dependencies': [
+ '../compiled_resources2.gyp:route',
+ '../prefs/compiled_resources2.gyp:prefs_behavior',
+ '<(DEPTH)/ui/webui/resources/cr_elements/cr_action_menu/compiled_resources2.gyp:cr_action_menu',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:load_time_data',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:icon',
+ '<(DEPTH)/ui/webui/resources/js/compiled_resources2.gyp:web_ui_listener_behavior',
+ 'profile_info_browser_proxy',
+ 'sync_browser_proxy',
+ ],
+ 'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'],
+ },
],
}
diff --git a/chromium/chrome/browser/resources/settings/people_page/easy_unlock_turn_off_dialog.html b/chromium/chrome/browser/resources/settings/people_page/easy_unlock_turn_off_dialog.html
index 211d825ee32..dd65510f60f 100644
--- a/chromium/chrome/browser/resources/settings/people_page/easy_unlock_turn_off_dialog.html
+++ b/chromium/chrome/browser/resources/settings/people_page/easy_unlock_turn_off_dialog.html
@@ -21,11 +21,12 @@
hidden="[[isButtonBarHidden_(status_)]]">
<paper-spinner-lite active="[[isSpinnerActive_(status_)]]">
</paper-spinner-lite>
- <paper-button class="cancel-button" on-tap="onCancelTap_"
+ <paper-button class="cancel-button" on-click="onCancelTap_"
hidden="[[isCancelButtonHidden_(status_)]]">
$i18n{cancel}
</paper-button>
- <paper-button id="turnOff" class="action-button" on-tap="onTurnOffTap_"
+ <paper-button id="turnOff" class="action-button"
+ on-click="onTurnOffTap_"
disabled="[[!isTurnOffButtonEnabled_(status_)]]">
[[getTurnOffButtonText_(status_)]]
</paper-button>
diff --git a/chromium/chrome/browser/resources/settings/people_page/fingerprint_list.html b/chromium/chrome/browser/resources/settings/people_page/fingerprint_list.html
index 6c62e3e44af..c98c91b9c8a 100644
--- a/chromium/chrome/browser/resources/settings/people_page/fingerprint_list.html
+++ b/chromium/chrome/browser/resources/settings/people_page/fingerprint_list.html
@@ -29,7 +29,7 @@
}
.body {
- @apply(--settings-list-frame-padding);
+ @apply --settings-list-frame-padding;
}
.list-item {
@@ -55,14 +55,14 @@
on-change="onFingerprintLabelChanged_">
</paper-input>
<button is="paper-icon-button-light" class="icon-delete-gray"
- on-tap="onFingerprintDeleteTapped_">
+ on-click="onFingerprintDeleteTapped_">
</button>
</div>
</template>
</iron-list>
<div class="continuation">
<paper-button id="addFingerprint" class="add-link action-button"
- on-tap="openAddFingerprintDialog_">
+ on-click="openAddFingerprintDialog_">
$i18n{lockScreenAddFingerprint}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/people_page/import_data_dialog.html b/chromium/chrome/browser/resources/settings/people_page/import_data_dialog.html
index 985a4aec02c..cb07d334450 100644
--- a/chromium/chrome/browser/resources/settings/people_page/import_data_dialog.html
+++ b/chromium/chrome/browser/resources/settings/people_page/import_data_dialog.html
@@ -104,7 +104,7 @@
importStatusEnum_.SUCCEEDED, importStatus_)]]"
disabled="[[hasImportStatus_(
importStatusEnum_.IN_PROGRESS, importStatus_)]]"
- on-tap="closeDialog_">
+ on-click="closeDialog_">
$i18n{cancel}
</paper-button>
<paper-button id="import" class="action-button"
@@ -112,14 +112,14 @@
importStatusEnum_.SUCCEEDED, importStatus_)]]"
disabled="[[shouldDisableImport_(
importStatus_, noImportDataTypeSelected_)]]"
- on-tap="onActionButtonTap_">
+ on-click="onActionButtonTap_">
[[getActionButtonText_(selected_)]]
</paper-button>
<paper-button id="done" class="action-button"
hidden$="[[!hasImportStatus_(
importStatusEnum_.SUCCEEDED, importStatus_)]]"
- on-tap="closeDialog_">$i18n{done}</paper-button>
+ on-click="closeDialog_">$i18n{done}</paper-button>
</div>
</dialog>
</template>
diff --git a/chromium/chrome/browser/resources/settings/people_page/lock_screen.html b/chromium/chrome/browser/resources/settings/people_page/lock_screen.html
index cdaa2505cae..d12222f1f36 100644
--- a/chromium/chrome/browser/resources/settings/people_page/lock_screen.html
+++ b/chromium/chrome/browser/resources/settings/people_page/lock_screen.html
@@ -59,7 +59,7 @@
}
#easyUnlockSettingsCollapsible {
- @apply(--settings-list-frame-padding);
+ @apply --settings-list-frame-padding;
}
.no-padding {
@@ -111,7 +111,7 @@
<div id="pinPasswordSecondaryActionDiv"
class="secondary-action">
<paper-button id="setupPinButton" class="secondary-button"
- on-tap="onConfigurePin_">
+ on-click="onConfigurePin_">
[[getSetupPinText_(hasPin)]]
</paper-button>
</div>
@@ -140,7 +140,7 @@
<div class="separator"></div>
<div class="secondary-action">
<paper-button class="secondary-button"
- on-tap="onEditFingerprints_"
+ on-click="onEditFingerprints_"
aria-label="$i18n{lockScreenEditFingerprints}"
aria-descibedby="lockScreenEditFingerprintsSecondary">
$i18n{lockScreenSetupFingerprintButton}
@@ -167,13 +167,13 @@
<div class="separator"></div>
<template is="dom-if" if="[[!easyUnlockEnabled_]]">
<paper-button id="easyUnlockSetup" class="secondary-button"
- on-tap="onEasyUnlockSetupTap_">
+ on-click="onEasyUnlockSetupTap_">
$i18n{easyUnlockSetupButton}
</paper-button>
</template>
<template is="dom-if" if="[[easyUnlockEnabled_]]">
<paper-button id="easyUnlockTurnOff" class="secondary-button"
- on-tap="onEasyUnlockTurnOffTap_">
+ on-click="onEasyUnlockTurnOffTap_">
$i18n{easyUnlockTurnOffButton}
</paper-button>
</template>
diff --git a/chromium/chrome/browser/resources/settings/people_page/password_prompt_dialog.html b/chromium/chrome/browser/resources/settings/people_page/password_prompt_dialog.html
index 9a7dac7a58c..68056695bfe 100644
--- a/chromium/chrome/browser/resources/settings/people_page/password_prompt_dialog.html
+++ b/chromium/chrome/browser/resources/settings/people_page/password_prompt_dialog.html
@@ -34,11 +34,11 @@
</paper-input>
</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="onCancelTap_">
+ <paper-button class="cancel-button" on-click="onCancelTap_">
$i18n{cancel}
</paper-button>
- <paper-button class="action-button" on-tap="submitPassword_"
+ <paper-button class="action-button" on-click="submitPassword_"
disabled$="[[!enableConfirm_(password_, passwordInvalid_)]]">
$i18n{confirm}
</paper-button>
diff --git a/chromium/chrome/browser/resources/settings/people_page/people_page.html b/chromium/chrome/browser/resources/settings/people_page/people_page.html
index 4ab0dfcd81f..d7b6822e5ec 100644
--- a/chromium/chrome/browser/resources/settings/people_page/people_page.html
+++ b/chromium/chrome/browser/resources/settings/people_page/people_page.html
@@ -33,6 +33,7 @@
<link rel="import" href="users_page.html">
</if>
<if expr="not chromeos">
+<link rel="import" href="sync_account_control.html">
<link rel="import" href="import_data_dialog.html">
<link rel="import" href="manage_profile.html">
</if>
@@ -46,9 +47,7 @@
}
#profile-icon {
- background-position: center;
- background-repeat: no-repeat;
- background-size: cover;
+ background: center / cover no-repeat;
border-radius: 20px;
flex-shrink: 0;
height: 40px;
@@ -102,66 +101,80 @@
<settings-animated-pages id="pages" section="people"
focus-config="[[focusConfig_]]">
<neon-animatable route-path="default">
- <div id="picture-subpage-trigger" class="settings-box first two-line">
- <template is="dom-if" if="[[syncStatus]]">
- <div id="profile-icon" on-tap="onPictureTap_" actionable
- style="background-image: [[getIconImageSet_(profileIconUrl_)]]">
- </div>
<if expr="not chromeos">
- <div class="middle two-line no-min-width"
- on-tap="onProfileNameTap_" actionable>
-</if>
-<if expr="chromeos">
- <div class="middle two-line no-min-width" on-tap="onPictureTap_"
- actionable>
+ <template is="dom-if" if="[[shouldShowSyncAccountControl_(diceEnabled_,
+ syncStatus.syncSystemEnabled, syncStatus.signinAllowed)]]">
+ <settings-sync-account-control
+ promo-label="$i18n{peopleSignInPrompt}"
+ promo-secondary-label="$i18n{peopleSignInPromptSecondary}">
+ </settings-sync-account-control>
+ </template>
+ <template is="dom-if" if="[[!diceEnabled_]]">
</if>
- <div class="flex text-elide">
- <span id="profile-name">[[profileName_]]</span>
- <div class="secondary" hidden="[[!syncStatus.signedIn]]">
- [[syncStatus.signedInUsername]]
- </div>
+ <div id="picture-subpage-trigger" class="settings-box first two-line">
+ <template is="dom-if" if="[[syncStatus]]">
+ <div id="profile-icon" on-click="onProfileTap_" actionable
+ style="background-image: [[getIconImageSet_(
+ profileIconUrl_)]]">
</div>
+ <div class="middle two-line no-min-width" on-click="onProfileTap_"
+ actionable>
+ <div class="flex text-elide">
+ <span id="profile-name">[[profileName_]]</span>
+ <div class="secondary" hidden="[[!syncStatus.signedIn]]">
+ [[syncStatus.signedInUsername]]
+ </div>
+ </div>
<if expr="not chromeos">
- <button class="subpage-arrow" is="paper-icon-button-light"
- aria-label="$i18n{editPerson}"
- aria-describedby="profile-name"></button>
+ <button class="subpage-arrow" is="paper-icon-button-light"
+ aria-label="$i18n{editPerson}"
+ aria-describedby="profile-name"></button>
</if>
<if expr="chromeos">
- <button class="subpage-arrow" is="paper-icon-button-light"
- aria-label="$i18n{changePictureTitle}"
- aria-describedby="profile-name"></button>
+ <button class="subpage-arrow" is="paper-icon-button-light"
+ aria-label="$i18n{changePictureTitle}"
+ aria-describedby="profile-name"></button>
</if>
- </div>
+ </div>
<if expr="not chromeos">
- <template is="dom-if" if="[[showSignin_(syncStatus)]]">
- <div class="separator"></div>
- <paper-button class="primary-button" on-tap="onSigninTap_"
- disabled="[[syncStatus.setupInProgress]]">
- $i18n{syncSignin}
- </paper-button>
- </template>
- <template is="dom-if" if="[[syncStatus.signedIn]]">
- <div class="separator"></div>
- <paper-button id="disconnectButton" class="secondary-button"
- on-tap="onDisconnectTap_"
- disabled="[[syncStatus.setupInProgress]]">
- $i18n{syncDisconnect}
- </paper-button>
+ <template is="dom-if" if="[[showSignin_(syncStatus)]]">
+ <div class="separator"></div>
+ <paper-button class="primary-button" on-click="onSigninTap_"
+ disabled="[[syncStatus.setupInProgress]]">
+ $i18n{syncSignin}
+ </paper-button>
+ </template>
+ <template is="dom-if" if="[[syncStatus.signedIn]]">
+ <div class="separator"></div>
+ <paper-button id="disconnectButton" class="secondary-button"
+ on-click="onDisconnectTap_"
+ disabled="[[syncStatus.setupInProgress]]">
+ $i18n{syncDisconnect}
+ </paper-button>
+ </template>
+</if>
</template>
+ </div>
+<if expr="not chromeos">
+ </template> <!-- if="[[!diceEnabled_]]" -->
</if>
- </template>
- </div>
<template is="dom-if" if="[[!syncStatus.signedIn]]">
- <div class="settings-box two-line"
- hidden="[[!syncStatus.signinAllowed]]">
- <div class="start">
- $i18n{syncOverview}
- <a target="_blank" href="$i18n{syncLearnMoreUrl}">
- $i18n{learnMore}
- </a>
+<if expr="not chromeos">
+ <template is="dom-if" if="[[!diceEnabled_]]">
+</if>
+ <div class="settings-box two-line" id="sync-overview"
+ hidden="[[!syncStatus.signinAllowed]]">
+ <div class="start">
+ $i18n{syncOverview}
+ <a target="_blank" href="$i18n{syncLearnMoreUrl}">
+ $i18n{learnMore}
+ </a>
+ </div>
</div>
- </div>
+<if expr="not chromeos">
+ </template> <!-- if="[[!diceEnabled_]]" -->
+</if>
<div class="settings-box" hidden="[[syncStatus.signinAllowed]]">
$i18n{syncDisabledByAdministrator}
</div>
@@ -182,7 +195,7 @@
<template is="dom-if"
if="[[isAdvancedSyncSettingsVisible_(syncStatus)]]">
- <div class="settings-box two-line" on-tap="onSyncTap_"
+ <div class="settings-box two-line" on-click="onSyncTap_"
id="sync-status" actionable$="[[isSyncStatusActionable_(
syncStatus)]]">
<div class="icon-container">
@@ -202,9 +215,20 @@
</div>
</template>
+<if expr="not chromeos">
+ <template is="dom-if" if="[[diceEnabled_]]">
+ <div class="settings-box" id="edit-profile" on-click="onProfileTap_"
+ actionable>
+ <div class="start">$i18n{profileNameAndPicture}</div>
+ <button class="subpage-arrow" is="paper-icon-button-light"
+ aria-label="$i18n{editPerson}"></button>
+ </div>
+ </template>
+</if>
+
<if expr="chromeos">
<div id="lock-screen-subpage-trigger" class="settings-box two-line"
- actionable on-tap="onConfigureLockTap_">
+ actionable on-click="onConfigureLockTap_">
<div class="start">
$i18n{lockScreenTitle}
<div class="secondary" id="lockScreenSecondary">
@@ -219,14 +243,14 @@
</if>
<div id="manage-other-people-subpage-trigger"
- class="settings-box" on-tap="onManageOtherPeople_" actionable>
+ class="settings-box" on-click="onManageOtherPeople_" actionable>
<div class="start">$i18n{manageOtherPeople}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label="$i18n{manageOtherPeople}"></button>
</div>
<if expr="not chromeos">
- <div class="settings-box" on-tap="onImportDataTap_" actionable>
+ <div class="settings-box" on-click="onImportDataTap_" actionable>
<div class="start">$i18n{importTitle}</div>
<button id="importDataDialogTrigger" class="subpage-arrow"
is="paper-icon-button-light" aria-label="$i18n{importTitle}">
@@ -234,16 +258,6 @@
</div>
</if>
- <template is="dom-if" if="[[profileManagesSupervisedUsers_]]">
- <a id="manageSupervisedUsersContainer"
- class="settings-box inherit-color no-outline" tabindex="-1"
- target="_blank" href="$i18n{supervisedUsersUrl}">
- <div class="start">$i18n{manageSupervisedUsers}</div>
- <button class="icon-external" is="paper-icon-button-light"
- actionable aria-label="$i18n{manageSupervisedUsers}">
- </button>
- </a>
- </template>
</neon-animatable>
<template is="dom-if" route-path="/syncSetup"
no-search$="[[!isAdvancedSyncSettingsVisible_(syncStatus)]]">
@@ -274,10 +288,7 @@
<settings-subpage
associated-control="[[$$('#manage-other-people-subpage-trigger')]]"
page-title="$i18n{manageOtherPeople}">
- <settings-users-page
- prefs="{{prefs}}"
- profile-manages-supervised-users=
- "[[profileManagesSupervisedUsers_]]">
+ <settings-users-page prefs="{{prefs}}">
</settings-users-page>
</settings-subpage>
</template>
@@ -313,16 +324,16 @@
</div>
</div>
<div slot="button-container">
- <paper-button on-tap="onDisconnectCancel_" class="cancel-button">
+ <paper-button on-click="onDisconnectCancel_" class="cancel-button">
$i18n{cancel}
</paper-button>
<paper-button id="disconnectConfirm" class="action-button"
- hidden="[[syncStatus.domain]]" on-tap="onDisconnectConfirm_">
+ hidden="[[syncStatus.domain]]" on-click="onDisconnectConfirm_">
$i18n{syncDisconnect}
</paper-button>
<paper-button id="disconnectManagedProfileConfirm"
class="action-button" hidden="[[!syncStatus.domain]]"
- on-tap="onDisconnectConfirm_">
+ on-click="onDisconnectConfirm_">
$i18n{syncDisconnectConfirm}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/people_page/people_page.js b/chromium/chrome/browser/resources/settings/people_page/people_page.js
index 60555a4e8a4..d1be1d2c850 100644
--- a/chromium/chrome/browser/resources/settings/people_page/people_page.js
+++ b/chromium/chrome/browser/resources/settings/people_page/people_page.js
@@ -25,6 +25,22 @@ Polymer({
notify: true,
},
+ // <if expr="not chromeos">
+ /**
+ * This flag is used to conditionally show a set of new sign-in UIs to the
+ * profiles that have been migrated to be consistent with the web sign-ins.
+ * TODO(scottchen): In the future when all profiles are completely migrated,
+ * this should be removed, and UIs hidden behind it should become default.
+ * @private
+ */
+ diceEnabled_: {
+ type: Boolean,
+ value: function() {
+ return loadTimeData.getBoolean('diceEnabled');
+ },
+ },
+ // </if>
+
/**
* The current sync status, supplied by SyncBrowserProxy.
* @type {?settings.SyncStatus}
@@ -33,33 +49,33 @@ Polymer({
/**
* The currently selected profile icon URL. May be a data URL.
+ * @private
*/
profileIconUrl_: String,
/**
* The current profile name.
+ * @private
*/
profileName_: String,
/**
- * True if the current profile manages supervised users.
- */
- profileManagesSupervisedUsers_: Boolean,
-
- /**
* The profile deletion warning. The message indicates the number of
* profile stats that will be deleted if a non-zero count for the profile
* stats is returned from the browser.
+ * @private
*/
deleteProfileWarning_: String,
/**
* True if the profile deletion warning is visible.
+ * @private
*/
deleteProfileWarningVisible_: Boolean,
/**
* True if the checkbox to delete the profile has been checked.
+ * @private
*/
deleteProfile_: Boolean,
@@ -134,12 +150,6 @@ Polymer({
this.addWebUIListener(
'profile-info-changed', this.handleProfileInfo_.bind(this));
- profileInfoProxy.getProfileManagesSupervisedUsers().then(
- this.handleProfileManagesSupervisedUsers_.bind(this));
- this.addWebUIListener(
- 'profile-manages-supervised-users-changed',
- this.handleProfileManagesSupervisedUsers_.bind(this));
-
this.addWebUIListener(
'profile-stats-count-ready', this.handleProfileStatsCount_.bind(this));
@@ -209,15 +219,6 @@ Polymer({
},
/**
- * Handler for when the profile starts or stops managing supervised users.
- * @private
- * @param {boolean} managesSupervisedUsers
- */
- handleProfileManagesSupervisedUsers_: function(managesSupervisedUsers) {
- this.profileManagesSupervisedUsers_ = managesSupervisedUsers;
- },
-
- /**
* Handler for when the profile stats count is pushed from the browser.
* @param {number} count
* @private
@@ -251,7 +252,7 @@ Polymer({
},
/** @private */
- onPictureTap_: function() {
+ onProfileTap_: function() {
// <if expr="chromeos">
settings.navigateTo(settings.routes.CHANGE_PICTURE);
// </if>
@@ -260,13 +261,6 @@ Polymer({
// </if>
},
- // <if expr="not chromeos">
- /** @private */
- onProfileNameTap_: function() {
- settings.navigateTo(settings.routes.MANAGE_PROFILE);
- },
- // </if>
-
/** @private */
onSigninTap_: function() {
this.syncBrowserProxy_.startSignIn();
@@ -275,7 +269,16 @@ Polymer({
/** @private */
onDisconnectClosed_: function() {
this.showDisconnectDialog_ = false;
+ // <if expr="not chromeos">
+ if (!this.diceEnabled_) {
+ // If DICE-enabled, this button won't exist here.
+ cr.ui.focusWithoutInk(assert(this.$$('#disconnectButton')));
+ }
+ // </if>
+
+ // <if expr="chromeos">
cr.ui.focusWithoutInk(assert(this.$$('#disconnectButton')));
+ // </if>
if (settings.getCurrentRoute() == settings.routes.SIGN_OUT)
settings.navigateToPreviousRoute();
@@ -391,6 +394,15 @@ Polymer({
settings.navigateToPreviousRoute();
cr.ui.focusWithoutInk(assert(this.$.importDataDialogTrigger));
},
+
+ /**
+ * @return {boolean}
+ * @private
+ */
+ shouldShowSyncAccountControl_: function() {
+ return !!this.diceEnabled_ && !!this.syncStatus.syncSystemEnabled &&
+ !!this.syncStatus.signinAllowed;
+ },
// </if>
/**
diff --git a/chromium/chrome/browser/resources/settings/people_page/pin_keyboard.html b/chromium/chrome/browser/resources/settings/people_page/pin_keyboard.html
deleted file mode 100644
index 65056df0516..00000000000
--- a/chromium/chrome/browser/resources/settings/people_page/pin_keyboard.html
+++ /dev/null
@@ -1 +0,0 @@
-<include src="../../chromeos/quick_unlock/pin_keyboard.html">
diff --git a/chromium/chrome/browser/resources/settings/people_page/pin_keyboard.js b/chromium/chrome/browser/resources/settings/people_page/pin_keyboard.js
deleted file mode 100644
index 4cb8d021731..00000000000
--- a/chromium/chrome/browser/resources/settings/people_page/pin_keyboard.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// <include src="../../chromeos/quick_unlock/pin_keyboard.js">
diff --git a/chromium/chrome/browser/resources/settings/people_page/profile_info_browser_proxy.js b/chromium/chrome/browser/resources/settings/people_page/profile_info_browser_proxy.js
index 31f4824fd3b..65808a60de6 100644
--- a/chromium/chrome/browser/resources/settings/people_page/profile_info_browser_proxy.js
+++ b/chromium/chrome/browser/resources/settings/people_page/profile_info_browser_proxy.js
@@ -32,12 +32,6 @@ cr.define('settings', function() {
* 'profile-stats-count-ready' WebUI listener event.
*/
getProfileStatsCount() {}
-
- /**
- * Returns a Promise that's true if the profile manages supervised users.
- * @return {!Promise<boolean>}
- */
- getProfileManagesSupervisedUsers() {}
}
/**
@@ -53,11 +47,6 @@ cr.define('settings', function() {
getProfileStatsCount() {
chrome.send('getProfileStatsCount');
}
-
- /** @override */
- getProfileManagesSupervisedUsers() {
- return cr.sendWithPromise('getProfileManagesSupervisedUsers');
- }
}
cr.addSingletonGetter(ProfileInfoBrowserProxyImpl);
diff --git a/chromium/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.html b/chromium/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.html
index c39f06d3012..7e005111b04 100644
--- a/chromium/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.html
+++ b/chromium/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.html
@@ -72,13 +72,13 @@
</div>
</div>
<div slot="button-container">
- <paper-button id="addAnotherButton" on-tap="onAddAnotherFingerprint_"
+ <paper-button id="addAnotherButton" on-click="onAddAnotherFingerprint_"
hidden$="[[hideAddAnother_(step_)]]">
$i18n{configureFingerprintAddAnotherButton}
</paper-button>
<paper-button id="closeButton"
- class$="[[getCloseButtonClass_(step_)]]" on-tap="onClose_">
+ class$="[[getCloseButtonClass_(step_)]]" on-click="onClose_">
[[getCloseButtonText_(step_)]]
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.js b/chromium/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.js
index 7922b7808ec..4b9ca548d58 100644
--- a/chromium/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.js
+++ b/chromium/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.js
@@ -259,7 +259,7 @@ Polymer({
*/
getCloseButtonText_: function(step) {
if (step == settings.FingerprintSetupStep.READY)
- return this.i18n('configureFingerprintDoneButton');
+ return this.i18n('done');
return this.i18n('cancel');
},
diff --git a/chromium/chrome/browser/resources/settings/people_page/setup_pin_dialog.html b/chromium/chrome/browser/resources/settings/people_page/setup_pin_dialog.html
index d7a74e2a102..7cffa7ec8cb 100644
--- a/chromium/chrome/browser/resources/settings/people_page/setup_pin_dialog.html
+++ b/chromium/chrome/browser/resources/settings/people_page/setup_pin_dialog.html
@@ -1,3 +1,4 @@
+<link rel="import" href="chrome://resources/cr_components/chromeos/quick_unlock/pin_keyboard.html">
<link rel="import" href="chrome://resources/cr_elements/icons.html">
<link rel="import" href="chrome://resources/html/polymer.html">
@@ -6,7 +7,6 @@
<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
<link rel="import" href="../i18n_setup.html">
<link rel="import" href="lock_screen_constants.html">
-<link rel="import" href="pin_keyboard.html">
<link rel="import" href="../settings_shared_css.html">
<dom-module id="settings-setup-pin-dialog">
@@ -28,6 +28,13 @@
--iron-icon-fill-color: var(--paper-grey-700);
}
+ pin-keyboard {
+ --pin-keyboard-digit-button: {
+ font-size: 18px;
+ padding: 15px 21px;
+ };
+ }
+
#pinKeyboardDiv {
justify-content: center;
}
@@ -62,11 +69,11 @@
</div>
</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="onCancelTap_">
+ <paper-button class="cancel-button" on-click="onCancelTap_">
$i18n{cancel}
</paper-button>
- <paper-button class="action-button" on-tap="onPinSubmit_"
+ <paper-button class="action-button" on-click="onPinSubmit_"
disabled$="[[!enableSubmit_]]">
<span>[[getContinueMessage_(isConfirmStep_)]]</span>
</paper-button>
diff --git a/chromium/chrome/browser/resources/settings/people_page/sync_account_control.html b/chromium/chrome/browser/resources/settings/people_page/sync_account_control.html
new file mode 100644
index 00000000000..e59e5f06258
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/people_page/sync_account_control.html
@@ -0,0 +1,200 @@
+<link rel="import" href="chrome://resources/html/polymer.html">
+
+<link rel="import" href="chrome://resources/cr_elements/icons.html">
+<link rel="import" href="chrome://resources/cr_elements/cr_action_menu/cr_action_menu.html">
+<link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/iron-icons/notification-icons.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
+<link rel="import" href="profile_info_browser_proxy.html">
+<link rel="import" href="sync_browser_proxy.html">
+<link rel="import" href="../i18n_setup.html">
+<link rel="import" href="../route.html">
+<link rel="import" href="../settings_shared_css.html">
+
+<dom-module id="settings-sync-account-control">
+ <template>
+ <style include="settings-shared">
+ :host {
+ --sync-icon-size: 16px;
+ --sync-icon-border-size: 2px;
+ --shown-avatar-size: 40px;
+ }
+
+ setting-box.middle {
+ /* Per spec, middle text is indented 20px in this section. */
+ -webkit-margin-start: 20px;
+ }
+
+ .account-icon {
+ border-radius: 20px;
+ flex-shrink: 0;
+ height: var(--shown-avatar-size);
+ width: var(--shown-avatar-size);
+ }
+
+ .account-icon.small {
+ height: 20px;
+ width: 20px;
+ }
+
+ #menu .dropdown-item {
+ padding: 12px;
+ }
+
+ #menu .dropdown-item span {
+ -webkit-margin-start: 8px;
+ }
+
+ .flex {
+ display: flex;
+ flex: 1;
+ flex-direction: column;
+ }
+
+ #avatar-container {
+ position: relative;
+ }
+
+ #sync-icon-container {
+ align-items: center;
+ background: var(--google-blue-500);
+ border: var(--sync-icon-border-size) solid white;
+ border-radius: 50%;
+ display: flex;
+ height: var(--sync-icon-size);
+ position: absolute;
+ right: -6px;
+ top: calc(var(--shown-avatar-size) - var(--sync-icon-size) -
+ var(--sync-icon-border-size));
+ width: var(--sync-icon-size);
+ }
+
+ :host-context([dir='rtl']) #sync-icon-container {
+ left: -6px;
+ right: initial;
+ }
+
+ #sync-icon-container[syncing] {
+ background: green;
+ }
+
+ #sync-icon-container iron-icon {
+ fill: white;
+ height: 12px;
+ margin: auto;
+ width: 12px;
+ }
+
+ #sign-in {
+ min-width: 100px;
+ }
+
+ #banner {
+ background-color: var(--google-blue-500);
+ display: none;
+ }
+
+ #banner img {
+ -webkit-margin-start: 380px;
+ height: 100px;
+ margin-bottom: -12px;
+ margin-top: 32px;
+ }
+
+ :host([showing-promo]) #banner {
+ display: flex;
+ }
+
+ :host([showing-promo]) #promo-headers {
+ line-height: 1.625rem;
+ padding-bottom: 10px;
+ padding-top: 10px;
+ }
+
+ :host([showing-promo]) #promo-headers #promo-title {
+ font-size: 1.1rem;
+ }
+
+ :host([showing-promo]) #promo-headers .secondary {
+ font-size: 0.9rem;
+ }
+
+ :host([showing-promo]) #promo-headers .separator {
+ display: none;
+ }
+ </style>
+ <div class="settings-box" id="banner">
+ <img src="../images/sync_banner.svg" alt="">
+ </div>
+ <div class="settings-box first two-line" id="promo-headers"
+ hidden="[[syncStatus.signedIn]]">
+ <div class="start">
+ <div id="promo-title">[[promoLabel]]</div>
+ <div class="secondary">
+ [[promoSecondaryLabel]]
+ </div>
+ </div>
+ <div class="separator" hidden="[[shouldShowAvatarRow_]]"></div>
+ <paper-button class="action-button" on-click="onSigninTap_"
+ disabled="[[syncStatus.setupInProgress]]" id="sign-in"
+ hidden="[[shouldShowAvatarRow_]]">
+ $i18n{peopleSignIn}
+ </paper-button>
+ </div>
+ <template is="dom-if" if="[[shouldShowAvatarRow_]]">
+ <div class="settings-box first two-line" id="avatar-row">
+ <div id="avatar-container">
+ <img class="account-icon" alt=""
+ src="[[getAccountImageSrc_(shownAccount_.avatarImage)]]">
+ <div id="sync-icon-container" syncing$="[[syncStatus.signedIn]]">
+ <iron-icon icon="notification:sync"></iron-icon>
+ </div>
+ </div>
+ <div class="middle two-line no-min-width">
+ <div class="flex text-elide" id="user-info">
+ <span>
+ [[getNameDisplay_('$i18nPolymer{syncedToName}',
+ shownAccount_.fullName, syncStatus.signedIn)]]
+ </span>
+ <div class="secondary">[[shownAccount_.email]]</div>
+ </div>
+ </div>
+ <button is="paper-icon-button-light" id="dropdown-arrow"
+ on-click="onMenuButtonTap_" title="$i18n{useAnotherAccount}"
+ class="icon-arrow-dropdown" hidden="[[syncStatus.signedIn]]">
+ </button>
+ <div class="separator" hidden="[[syncStatus.signedIn]]"></div>
+ <paper-button class="action-button" on-click="onSyncButtonTap_"
+ hidden="[[syncStatus.signedIn]]"
+ disabled="[[syncStatus.setupInProgress]]">
+ [[getSubstituteLabel_(
+ '$i18nPolymer{syncAsName}', shownAccount_.givenName)]]
+ </paper-button>
+ <paper-button class="secondary-button" on-click="onTurnOffButtonTap_"
+ hidden="[[!syncStatus.signedIn]]"
+ disabled="[[syncStatus.setupInProgress]]">
+ $i18n{turnOffSync}
+ </paper-button>
+ </div>
+ <template is="dom-if" if="[[!syncStatus.signedIn]]" restamp>
+ <dialog is="cr-action-menu" id="menu" auto-reposition>
+ <template is="dom-repeat" items="[[storedAccounts_]]">
+ <button class="dropdown-item" on-click="onAccountTap_" slot="item">
+ <img class="account-icon small" alt=""
+ src="[[getAccountImageSrc_(item.avatarImage)]]">
+ <span>[[item.email]]</span>
+ </button>
+ </template>
+ <button class="dropdown-item" on-click="onSigninTap_" slot="item"
+ disabled="[[syncStatus.setupInProgress]]" id="sign-in-item">
+ <img class="account-icon small" alt=""
+ src="chrome://theme/IDR_PROFILE_AVATAR_PLACEHOLDER_LARGE">
+ <span>$i18n{useAnotherAccount}</span>
+ </button>
+ </dialog>
+ </template>
+ </template>
+ </template>
+ <script src="sync_account_control.js"></script>
+</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/people_page/sync_account_control.js b/chromium/chrome/browser/resources/settings/people_page/sync_account_control.js
new file mode 100644
index 00000000000..8b079fe22ac
--- /dev/null
+++ b/chromium/chrome/browser/resources/settings/people_page/sync_account_control.js
@@ -0,0 +1,222 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+/**
+ * @fileoverview
+ * 'settings-sync-account-section' is the settings page containing sign-in
+ * settings.
+ */
+cr.exportPath('settings');
+
+/** @const {number} */
+settings.MAX_SIGNIN_PROMO_IMPRESSION = 10;
+
+Polymer({
+ is: 'settings-sync-account-control',
+ behaviors: [WebUIListenerBehavior],
+ properties: {
+ /**
+ * The current sync status, supplied by SyncBrowserProxy.
+ * @type {!settings.SyncStatus}
+ */
+ syncStatus: Object,
+
+ /**
+ * Proxy variable for syncStatus.signedIn to shield observer from being
+ * triggered multiple times whenever syncStatus changes.
+ * @private {boolean}
+ */
+ signedIn_: {
+ type: Boolean,
+ computed: 'computeSignedIn_(syncStatus.signedIn)',
+ observer: 'onSignedInChanged_',
+ },
+
+ /** @private {!Array<!settings.StoredAccount>} */
+ storedAccounts_: Object,
+
+ /** @private {?settings.StoredAccount} */
+ shownAccount_: Object,
+
+ showingPromo: {
+ type: Boolean,
+ value: false,
+ reflectToAttribute: true,
+ },
+
+ promoLabel: String,
+
+ promoSecondaryLabel: String,
+
+ /** @private {boolean} */
+ shouldShowAvatarRow_: {
+ type: Boolean,
+ value: false,
+ computed: 'computeShouldShowAvatarRow_(storedAccounts_, syncStatus,' +
+ 'storedAccounts_.length, syncStatus.signedIn)',
+ observer: 'onShouldShowAvatarRowChange_',
+ }
+ },
+
+ observers: [
+ 'onShownAccountShouldChange_(storedAccounts_, syncStatus)',
+ ],
+
+ /** @private {?settings.SyncBrowserProxy} */
+ syncBrowserProxy_: null,
+
+ /** @override */
+ attached: function() {
+ this.syncBrowserProxy_ = settings.SyncBrowserProxyImpl.getInstance();
+ this.syncBrowserProxy_.getSyncStatus().then(
+ this.handleSyncStatus_.bind(this));
+ this.syncBrowserProxy_.getStoredAccounts().then(
+ this.handleStoredAccounts_.bind(this));
+ this.addWebUIListener(
+ 'sync-status-changed', this.handleSyncStatus_.bind(this));
+ this.addWebUIListener(
+ 'stored-accounts-updated', this.handleStoredAccounts_.bind(this));
+ },
+
+ /**
+ * @return {boolean}
+ * @private
+ */
+ computeSignedIn_: function() {
+ return !!this.syncStatus.signedIn;
+ },
+
+ /** @private */
+ onSignedInChanged_: function() {
+ if (!this.showingPromo && !this.syncStatus.signedIn &&
+ this.syncBrowserProxy_.getPromoImpressionCount() <
+ settings.MAX_SIGNIN_PROMO_IMPRESSION) {
+ this.showingPromo = true;
+ this.syncBrowserProxy_.incrementPromoImpressionCount();
+ } else {
+ // Turn off the promo if the user is signed in.
+ this.showingPromo = false;
+ }
+ },
+
+ /**
+ * @param {string} label
+ * @param {string} name
+ * @return {string}
+ * @private
+ */
+ getSubstituteLabel_: function(label, name) {
+ return loadTimeData.substituteString(label, name);
+ },
+
+ /**
+ * @param {string} label
+ * @param {string} name
+ * @return {string}
+ * @private
+ */
+ getNameDisplay_: function(label, name) {
+ return this.syncStatus.signedIn ?
+ loadTimeData.substituteString(label, name) :
+ name;
+ },
+
+ /**
+ * @param {?string} image
+ * @return {string}
+ * @private
+ */
+ getAccountImageSrc_: function(image) {
+ // image can be undefined if the account has not set an avatar photo.
+ return image || 'chrome://theme/IDR_PROFILE_AVATAR_PLACEHOLDER_LARGE';
+ },
+
+ /**
+ * @param {!Array<!settings.StoredAccount>} accounts
+ * @private
+ */
+ handleStoredAccounts_: function(accounts) {
+ this.storedAccounts_ = accounts;
+ },
+
+ /**
+ * Handler for when the sync state is pushed from the browser.
+ * @param {!settings.SyncStatus} syncStatus
+ * @private
+ */
+ handleSyncStatus_: function(syncStatus) {
+ this.syncStatus = syncStatus;
+ },
+
+ /**
+ * @return {boolean}
+ * @private
+ */
+ computeShouldShowAvatarRow_: function() {
+ return this.syncStatus.signedIn || this.storedAccounts_.length > 0;
+ },
+
+ /** @private */
+ onSigninTap_: function() {
+ this.syncBrowserProxy_.startSignIn();
+
+ // Need to close here since one menu item also triggers this function.
+ if (this.$$('#menu')) {
+ /** @type {!CrActionMenuElement} */ (this.$$('#menu')).close();
+ }
+ },
+
+ /** @private */
+ onSyncButtonTap_: function() {
+ assert(this.shownAccount_);
+ this.syncBrowserProxy_.startSyncingWithEmail(this.shownAccount_.email);
+ },
+
+ /** @private */
+ onTurnOffButtonTap_: function() {
+ /* This will route to people_page's disconnect dialog. */
+ settings.navigateTo(settings.routes.SIGN_OUT);
+ },
+
+ /** @private */
+ onMenuButtonTap_: function() {
+ const actionMenu =
+ /** @type {!CrActionMenuElement} */ (this.$$('#menu'));
+ actionMenu.showAt(assert(this.$$('#dropdown-arrow')));
+ },
+
+ /** @private */
+ onShouldShowAvatarRowChange_: function() {
+ // Close dropdown when avatar-row hides, so if it appears again, the menu
+ // won't be open by default.
+ const actionMenu = this.$$('#menu');
+ if (!this.shouldShowAvatarRow_ && actionMenu && actionMenu.open)
+ actionMenu.close();
+ },
+
+ /**
+ * @param {!{model:
+ * !{item: !settings.StoredAccount},
+ * }} e
+ * @private
+ */
+ onAccountTap_: function(e) {
+ this.shownAccount_ = e.model.item;
+ /** @type {!CrActionMenuElement} */ (this.$$('#menu')).close();
+ },
+
+ /** @private */
+ onShownAccountShouldChange_: function() {
+ if (this.syncStatus.signedIn) {
+ for (let i = 0; i < this.storedAccounts_.length; i++) {
+ if (this.storedAccounts_[i].email == this.syncStatus.signedInUsername) {
+ this.shownAccount_ = this.storedAccounts_[i];
+ return;
+ }
+ }
+ } else {
+ this.shownAccount_ =
+ this.storedAccounts_ ? this.storedAccounts_[0] : null;
+ }
+ }
+}); \ No newline at end of file
diff --git a/chromium/chrome/browser/resources/settings/people_page/sync_browser_proxy.js b/chromium/chrome/browser/resources/settings/people_page/sync_browser_proxy.js
index 05f345f3edf..ecb2a43ed3d 100644
--- a/chromium/chrome/browser/resources/settings/people_page/sync_browser_proxy.js
+++ b/chromium/chrome/browser/resources/settings/people_page/sync_browser_proxy.js
@@ -10,12 +10,20 @@
cr.exportPath('settings');
/**
+ * @typedef {{fullName: (string|undefined),
+ * givenName: (string|undefined),
+ * email: string,
+ * avatarImage: (string|undefined)}}
+ * @see chrome/browser/ui/webui/settings/people_handler.cc
+ */
+settings.StoredAccount;
+
+/**
* @typedef {{childUser: (boolean|undefined),
* domain: (string|undefined),
* hasError: (boolean|undefined),
* hasUnrecoverableError: (boolean|undefined),
* managed: (boolean|undefined),
- * setupCompleted: (boolean|undefined),
* setupInProgress: (boolean|undefined),
* signedIn: (boolean|undefined),
* signedInUsername: (string|undefined),
@@ -104,6 +112,12 @@ settings.PageStatus = {
};
cr.define('settings', function() {
+ /**
+ * Key to be used with localStorage.
+ * @type {string}
+ */
+ const PROMO_IMPRESSION_COUNT_KEY = 'signin-promo-count';
+
/** @interface */
class SyncBrowserProxy {
// <if expr="not chromeos">
@@ -124,6 +138,16 @@ cr.define('settings', function() {
*/
manageOtherPeople() {}
+ /**
+ * @return {number} the number of times the sync account promo was shown.
+ */
+ getPromoImpressionCount() {}
+
+ /**
+ * Increment the number of times the sync account promo was shown.
+ */
+ incrementPromoImpressionCount() {}
+
// </if>
// <if expr="chromeos">
@@ -141,6 +165,12 @@ cr.define('settings', function() {
getSyncStatus() {}
/**
+ * Gets a list of stored accounts.
+ * @return {!Promise<!Array<!settings.StoredAccount>>}
+ */
+ getStoredAccounts() {}
+
+ /**
* Function to invoke when the sync page has been navigated to. This
* registers the UI as the "active" sync UI so that if the user tries to
* open another sync UI, this one will be shown instead.
@@ -168,6 +198,12 @@ cr.define('settings', function() {
setSyncEncryption(syncPrefs) {}
/**
+ * Start syncing with an account, specified by its email.
+ * @param {string} email
+ */
+ startSyncingWithEmail(email) {}
+
+ /**
* Opens the Google Activity Controls url in a new tab.
*/
openActivityControlsUrl() {}
@@ -193,13 +229,26 @@ cr.define('settings', function() {
chrome.send('SyncSetupManageOtherPeople');
}
+ /** @override */
+ getPromoImpressionCount() {
+ return parseInt(
+ window.localStorage.getItem(PROMO_IMPRESSION_COUNT_KEY), 10) ||
+ 0;
+ }
+
+ /** @override */
+ incrementPromoImpressionCount() {
+ window.localStorage.setItem(
+ PROMO_IMPRESSION_COUNT_KEY,
+ (this.getPromoImpressionCount() + 1).toString());
+ }
+
// </if>
// <if expr="chromeos">
/** @override */
attemptUserExit() {
return chrome.send('AttemptUserExit');
}
-
// </if>
/** @override */
@@ -208,6 +257,11 @@ cr.define('settings', function() {
}
/** @override */
+ getStoredAccounts() {
+ return cr.sendWithPromise('SyncSetupGetStoredAccounts');
+ }
+
+ /** @override */
didNavigateToSyncPage() {
chrome.send('SyncSetupShowSetupUI');
}
@@ -230,6 +284,11 @@ cr.define('settings', function() {
}
/** @override */
+ startSyncingWithEmail(email) {
+ chrome.send('SyncSetupStartSyncingWithEmail', [email]);
+ }
+
+ /** @override */
openActivityControlsUrl() {
chrome.metricsPrivate.recordUserAction(
'Signin_AccountSettings_GoogleActivityControlsClicked');
diff --git a/chromium/chrome/browser/resources/settings/people_page/sync_page.html b/chromium/chrome/browser/resources/settings/people_page/sync_page.html
index bea84fd3f43..5f9b6a925e1 100644
--- a/chromium/chrome/browser/resources/settings/people_page/sync_page.html
+++ b/chromium/chrome/browser/resources/settings/people_page/sync_page.html
@@ -88,7 +88,7 @@
on-keypress="onSubmitExistingPassphraseTap_">
</paper-input>
<paper-button id="submitExistingPassphrase"
- on-tap="onSubmitExistingPassphraseTap_" class="action-button"
+ on-click="onSubmitExistingPassphraseTap_" class="action-button"
disabled="[[!existingPassphrase_]]">
$i18n{submitPassphraseButton}
</paper-button>
@@ -251,7 +251,7 @@
<a class="settings-box two-line inherit-color no-outline" tabindex="-1"
target="_blank" href="$i18n{activityControlsUrl}"
- on-tap="onActivityControlsTap_">
+ on-click="onActivityControlsTap_">
<div class="start">
$i18n{personalizeGoogleServicesTitle}
<div class="secondary" id="activityControlsSecondary">
@@ -294,7 +294,7 @@
<span>[[syncPrefs.fullEncryptionBody]]</span>
</template>
<template is="dom-if" if="[[!syncPrefs.fullEncryptionBody]]">
- <span on-tap="onLearnMoreTap_">
+ <span on-click="onLearnMoreTap_">
$i18nRaw{encryptWithSyncPassphraseLabel}
</span>
</template>
@@ -323,7 +323,7 @@
error-message="$i18n{mismatchedPassphraseError}">
</paper-input>
<paper-button id="saveNewPassphrase"
- on-tap="onSaveNewPassphraseTap_" class="action-button"
+ on-click="onSaveNewPassphraseTap_" class="action-button"
disabled="[[!isSaveNewPassphraseEnabled_(passphrase_,
confirmation_)]]">
$i18n{save}
diff --git a/chromium/chrome/browser/resources/settings/people_page/user_list.html b/chromium/chrome/browser/resources/settings/people_page/user_list.html
index 0873990c000..4ca878eef14 100644
--- a/chromium/chrome/browser/resources/settings/people_page/user_list.html
+++ b/chromium/chrome/browser/resources/settings/people_page/user_list.html
@@ -46,7 +46,7 @@
</template>
</div>
<button is="paper-icon-button-light" class="icon-clear"
- on-tap="removeUser_"
+ on-click="removeUser_"
hidden="[[shouldHideCloseButton_(disabled, item.isOwner)]]">
</button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/people_page/users_add_user_dialog.html b/chromium/chrome/browser/resources/settings/people_page/users_add_user_dialog.html
index 99850568bff..fe8cd9c784b 100644
--- a/chromium/chrome/browser/resources/settings/people_page/users_add_user_dialog.html
+++ b/chromium/chrome/browser/resources/settings/people_page/users_add_user_dialog.html
@@ -25,10 +25,10 @@
</paper-input>
</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="onCancelTap_">
+ <paper-button class="cancel-button" on-click="onCancelTap_">
$i18n{cancel}
</paper-button>
- <paper-button on-tap="addUser_" class="action-button"
+ <paper-button on-click="addUser_" class="action-button"
disabled$="[[!isValid_]]">
$i18n{add}
</paper-button>
diff --git a/chromium/chrome/browser/resources/settings/people_page/users_page.html b/chromium/chrome/browser/resources/settings/people_page/users_page.html
index ac720c8628e..bd58da4cdd0 100644
--- a/chromium/chrome/browser/resources/settings/people_page/users_page.html
+++ b/chromium/chrome/browser/resources/settings/people_page/users_page.html
@@ -39,13 +39,6 @@
label="$i18n{guestBrowsingLabel}"
disabled="[[isEditingDisabled_(isOwner_, isWhitelistManaged_)]]">
</settings-toggle-button>
- <template is="dom-if" if="[[profileManagesSupervisedUsers]]">
- <settings-toggle-button class="continuation"
- pref="{{prefs.cros.accounts.supervisedUsersEnabled}}"
- label="$i18n{supervisedUsersLabel}"
- disabled="[[isEditingDisabled_(isOwner_, isWhitelistManaged_)]]">
- </settings-toggle-button>
- </template>
<settings-toggle-button class="continuation"
pref="{{prefs.cros.accounts.showUserNamesOnSignIn}}"
label="$i18n{showOnSigninLabel}"
@@ -66,7 +59,7 @@
<div id="add-user-button" class="list-item"
hidden="[[isEditingUsersDisabled_(isOwner_, isWhitelistManaged_,
prefs.cros.accounts.allowGuest.value)]]">
- <a is="action-link" class="list-button" on-tap="openAddUserDialog_">
+ <a is="action-link" class="list-button" on-click="openAddUserDialog_">
$i18n{addUsers}
</a>
</div>
diff --git a/chromium/chrome/browser/resources/settings/people_page/users_page.js b/chromium/chrome/browser/resources/settings/people_page/users_page.js
index 762fb6763f8..2d14833a0dc 100644
--- a/chromium/chrome/browser/resources/settings/people_page/users_page.js
+++ b/chromium/chrome/browser/resources/settings/people_page/users_page.js
@@ -19,15 +19,6 @@ Polymer({
notify: true,
},
- /**
- * True if the current profile manages supervised users.
- * Set in people-page.
- */
- profileManagesSupervisedUsers: {
- type: Boolean,
- value: false,
- },
-
/** @private */
isOwner_: {
type: Boolean,
diff --git a/chromium/chrome/browser/resources/settings/prefs/pref_util.js b/chromium/chrome/browser/resources/settings/prefs/pref_util.js
index f9ce20040b3..fd5a45a3ce8 100644
--- a/chromium/chrome/browser/resources/settings/prefs/pref_util.js
+++ b/chromium/chrome/browser/resources/settings/prefs/pref_util.js
@@ -18,7 +18,7 @@ cr.define('Settings.PrefUtil', function() {
case chrome.settingsPrivate.PrefType.BOOLEAN:
return value == 'true';
case chrome.settingsPrivate.PrefType.NUMBER:
- const n = parseInt(value, 10);
+ const n = parseFloat(value);
if (isNaN(n)) {
console.error(
'Argument to stringToPrefValue for number pref ' +
diff --git a/chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog.html b/chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog.html
index b9cdf9e4628..d8436bfe128 100644
--- a/chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog.html
+++ b/chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog.html
@@ -51,18 +51,18 @@
<div slot="dialog-buttons">
<div> <!-- Left group -->
<paper-button id="manuallyAddPrinterButton" class="secondary-button"
- on-tap="switchToManualAddDialog_">
+ on-click="switchToManualAddDialog_">
$i18n{manuallyAddPrinterButtonText}
</paper-button>
</div>
<div> <!-- Right group -->
<paper-button class="cancel-button secondary-button"
- on-tap="onCancelTap_">
+ on-click="onCancelTap_">
$i18n{cancel}
</paper-button>
<paper-button class="action-button" id="addPrinterButton"
disabled="[[!canAddPrinter_(selectedPrinter)]]"
- on-tap="switchToConfiguringDialog_">
+ on-click="switchToConfiguringDialog_">
$i18n{addPrinterButtonText}
</paper-button>
</div>
@@ -122,8 +122,7 @@
<div class="label">$i18n{printerAddress}</div>
<div class="secondary">
<paper-input no-label-float id="printerAddressInput"
- value="{{newPrinter.printerAddress}}"
- on-input="onAddressChanged_">
+ value="{{newPrinter.printerAddress}}">
</paper-input>
</div>
</div>
@@ -159,32 +158,21 @@
</div>
</div>
</div>
- <div class="search-printer-box" id="searchInProgress" hidden>
- <paper-spinner-lite active></paper-spinner-lite>
- <span class="spinner-comment">$i18n{searchingPrinter}</span>
- </div>
- <div class="search-printer-box printer-not-found"
- id="searchNotFound" hidden>
- <span>$i18n{printerNotFound}</span>
- </div>
- <div class="search-printer-box printer-found" id="searchFound" hidden>
- <span>$i18n{printerFound}</span>
- </div>
</div>
<div slot="dialog-buttons">
<div> <!-- Left group -->
<paper-button class="secondary-button"
- on-tap="switchToDiscoveryDialog_">
+ on-click="switchToDiscoveryDialog_">
$i18n{discoverPrintersButtonText}
</paper-button>
</div>
<div> <!-- Right group -->
<paper-button class="cancel-button secondary-button"
- on-tap="onCancelTap_">
+ on-click="onCancelTap_">
$i18n{cancel}
</paper-button>
<paper-button id="addPrinterButton" class="action-button"
- on-tap="addPressed_"
+ on-click="addPressed_"
disabled="[[!canAddPrinter_(newPrinter.printerName,
newPrinter.printerAddress)]]">
$i18n{addPrinterButtonText}
@@ -233,9 +221,11 @@
<div class="label">$i18n{selectDriver}</div>
<div class="secondary">
<paper-input class="browse-file-input" no-label-float readonly
- value="[[getBaseName_(activePrinter.printerPPDPath)]]">
- <paper-button class="browse-button" suffix
- on-tap="onBrowseFile_">
+ value="[[getBaseName_(activePrinter.printerPPDPath)]]"
+ error-message="$i18n{selectDriverErrorMessage}"
+ invalid="[[invalidPPD]]">
+ <paper-button class="browse-button" slot="suffix"
+ on-click="onBrowseFile_">
$i18n{selectDriverButtonText}
</paper-button>
</paper-input>
@@ -248,14 +238,14 @@
</div>
<div slot="dialog-buttons">
<paper-button class="cancel-button secondary-button"
- on-tap="onCancelTap_">
+ on-click="onCancelTap_">
$i18n{cancel}
</paper-button>
<paper-button class="action-button" id="addPrinterButton"
disabled="[[!canAddPrinter_(activePrinter.ppdManufacturer,
activePrinter.ppdModel,
activePrinter.printerPPDPath)]]"
- on-tap="switchToConfiguringDialog_">
+ on-click="switchToConfiguringDialog_">
$i18n{addPrinterButtonText}
</paper-button>
</div>
@@ -279,7 +269,7 @@
</div>
<div slot="dialog-buttons">
<paper-button class="cancel-button secondary-button"
- on-tap="onCancelConfiguringTap_">
+ on-click="onCancelConfiguringTap_">
$i18n{cancel}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog.js b/chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog.js
index bd6a143ae4d..52ff88a5f5c 100644
--- a/chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog.js
+++ b/chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog.js
@@ -184,13 +184,6 @@ Polymer({
this.fire('open-configuring-printer-dialog');
},
- /** @private */
- onAddressChanged_: function() {
- // TODO(xdai): Check if the printer address exists and then show the
- // corresponding message after the API is ready.
- // The format of address is: ip-address-or-hostname:port-number.
- },
-
/**
* @param {!Event} event
* @private
diff --git a/chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog_util.html b/chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog_util.html
index 797f6fe0f76..3928af6bfcd 100644
--- a/chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog_util.html
+++ b/chromium/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog_util.html
@@ -23,8 +23,8 @@
selected="{{selectedPrinter}}">
</array-selector>
<template is="dom-repeat" items="[[printers]]">
- <button class="list-item" on-tap="onSelect_">
- [[item.printerName]] [[item.printerModel]]
+ <button class="list-item" on-click="onSelect_">
+ [[item.printerName]]
</button>
</template>
</div>
@@ -39,7 +39,11 @@
width: 270px;
}
- iron-dropdown .dropdown-content {
+ iron-dropdown {
+ height: 270px;
+ }
+
+ iron-dropdown [slot='dropdown-content'] {
background-color: white;
box-shadow: 0 2px 6px var(--paper-grey-500);
min-width: 128px;
@@ -56,22 +60,23 @@
background-size: 24px;
}
</style>
- <paper-input-container no-label-float on-tap="onTap_">
+ <paper-input-container no-label-float on-click="onTap_">
<input is="iron-input" type="search" bind-value="{{selectedItem}}"
- on-search="onInputValueChanged_" on-change="onChange_" incremental>
- <button is="paper-icon-button-light" class="icon-search" suffix
- id="searchIcon" hidden>
+ on-search="onInputValueChanged_" on-change="onChange_" incremental
+ slot="input">
+ <button is="paper-icon-button-light" class="icon-search"
+ id="searchIcon" hidden slot="suffix">
</button>
- <button is="paper-icon-button-light" class="icon-arrow-dropdown" suffix
- id="dropdownIcon">
+ <button is="paper-icon-button-light" class="icon-arrow-dropdown"
+ id="dropdownIcon" slot="suffix">
</button>
</paper-input-container>
<iron-dropdown horizontal-align="left" vertical-align="top"
vertical-offset="35">
- <div class="dropdown-content">
+ <div slot="dropdown-content">
<template is="dom-repeat" items="[[items]]"
filter="[[filterItems_(searchTerm_)]]">
- <button class="list-item" on-tap="onSelect_">[[item]]</button>
+ <button class="list-item" on-click="onSelect_">[[item]]</button>
</template>
</div>
</iron-dropdown>
diff --git a/chromium/chrome/browser/resources/settings/printing_page/cups_edit_printer_dialog.html b/chromium/chrome/browser/resources/settings/printing_page/cups_edit_printer_dialog.html
index 63ebb00216d..8f0c517f723 100644
--- a/chromium/chrome/browser/resources/settings/printing_page/cups_edit_printer_dialog.html
+++ b/chromium/chrome/browser/resources/settings/printing_page/cups_edit_printer_dialog.html
@@ -100,8 +100,8 @@
<div class="secondary">
<paper-input class="browse-file-input" no-label-float readonly
value="[[getBaseName_(activePrinter.printerPPDPath)]]">
- <paper-button class="browse-button" suffix
- on-tap="onBrowseFile_">
+ <paper-button class="browse-button" slot="suffix"
+ on-click="onBrowseFile_">
$i18n{selectDriverButtonText}
</paper-button>
</paper-input>
@@ -111,10 +111,10 @@
</div>
<div slot="dialog-buttons">
<paper-button class="cancel-button secondary-button"
- on-tap="onCancelTap_">
+ on-click="onCancelTap_">
$i18n{cancel}
</paper-button>
- <paper-button class="action-button" on-tap="onSaveTap_">
+ <paper-button class="action-button" on-click="onSaveTap_">
$i18n{editPrinterButtonText}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/printing_page/cups_printer_shared_css.html b/chromium/chrome/browser/resources/settings/printing_page/cups_printer_shared_css.html
index 029074eb08d..026ed96e938 100644
--- a/chromium/chrome/browser/resources/settings/printing_page/cups_printer_shared_css.html
+++ b/chromium/chrome/browser/resources/settings/printing_page/cups_printer_shared_css.html
@@ -89,7 +89,7 @@
padding: 0 24px;
text-align: start;
width: 100%;
- @apply(--settings-actionable);
+ @apply --settings-actionable;
}
.list-item:focus {
diff --git a/chromium/chrome/browser/resources/settings/printing_page/cups_printers.html b/chromium/chrome/browser/resources/settings/printing_page/cups_printers.html
index 3df538af0ea..8fe645217ad 100644
--- a/chromium/chrome/browser/resources/settings/printing_page/cups_printers.html
+++ b/chromium/chrome/browser/resources/settings/printing_page/cups_printers.html
@@ -46,6 +46,14 @@
width: 350px;
}
+ #noSearchResultsMessage {
+ color: var(--md-loading-message-color);
+ font-size: 16px;
+ font-weight: 500;
+ margin-top: 80px;
+ text-align: center;
+ }
+
#addPrinterErrorMessage {
display: flex;
justify-content: space-around;
@@ -68,7 +76,7 @@
</div>
</div>
<paper-button class="primary-button" id="addPrinter"
- on-tap="onAddPrinterTap_" disabled="[[!canAddPrinter_]]">
+ on-click="onAddPrinterTap_" disabled="[[!canAddPrinter_]]">
$i18n{addCupsPrinter}
</paper-button>
</div>
@@ -88,6 +96,11 @@
search-term="[[searchTerm]]">
</settings-cups-printers-list>
+ <div id="noSearchResultsMessage"
+ hidden="[[!showNoSearchResultsMessage_(searchTerm)]]">
+ $i18n{noSearchResults}
+ </div>
+
<div id="message">
<div class="center" id="addPrinterDoneMessage" hidden>
$i18n{printerAddedSuccessfulMessage}
diff --git a/chromium/chrome/browser/resources/settings/printing_page/cups_printers.js b/chromium/chrome/browser/resources/settings/printing_page/cups_printers.js
index f5c6e55c690..055f4a807c5 100644
--- a/chromium/chrome/browser/resources/settings/printing_page/cups_printers.js
+++ b/chromium/chrome/browser/resources/settings/printing_page/cups_printers.js
@@ -186,4 +186,18 @@ Polymer({
});
},
+ /**
+ * @param {string} searchTerm
+ * @return {boolean} If the 'no-search-results-found' string should be shown.
+ * @private
+ */
+ showNoSearchResultsMessage_: function(searchTerm) {
+ if (!searchTerm || !this.printers.length)
+ return false;
+ searchTerm = searchTerm.toLowerCase();
+ return !this.printers.some(printer => {
+ return printer.printerName.toLowerCase().includes(searchTerm);
+ });
+ },
+
});
diff --git a/chromium/chrome/browser/resources/settings/printing_page/cups_printers_list.html b/chromium/chrome/browser/resources/settings/printing_page/cups_printers_list.html
index 8c4a1d51ac0..353742c55e2 100644
--- a/chromium/chrome/browser/resources/settings/printing_page/cups_printers_list.html
+++ b/chromium/chrome/browser/resources/settings/printing_page/cups_printers_list.html
@@ -15,10 +15,10 @@
</style>
<dialog is="cr-action-menu">
- <button class="dropdown-item" on-tap="onEditTap_">
+ <button slot="item" class="dropdown-item" on-click="onEditTap_">
$i18n{editPrinter}
</button>
- <button class="dropdown-item" on-tap="onRemoveTap_">
+ <button slot="item" class="dropdown-item" on-click="onRemoveTap_">
$i18n{removePrinter}
</button>
</dialog>
@@ -29,7 +29,7 @@
<div class="printer-name text-elide">[[item.printerName]]</div>
<!--TODO(xdai): Add icon for enterprise CUPS printer. -->
<button is="paper-icon-button-light" class="icon-more-vert"
- on-tap="onOpenActionMenuTap_" title="$i18n{moreActions}">
+ on-click="onOpenActionMenuTap_" title="$i18n{moreActions}">
</button>
</div>
</template>
diff --git a/chromium/chrome/browser/resources/settings/printing_page/cups_set_manufacturer_model_behavior.js b/chromium/chrome/browser/resources/settings/printing_page/cups_set_manufacturer_model_behavior.js
index 84508310b53..43f805bf3f8 100644
--- a/chromium/chrome/browser/resources/settings/printing_page/cups_set_manufacturer_model_behavior.js
+++ b/chromium/chrome/browser/resources/settings/printing_page/cups_set_manufacturer_model_behavior.js
@@ -16,15 +16,16 @@ const SetManufacturerModelBehavior = {
notify: true,
},
- /** @type {?Array<string>} */
- manufacturerList: {
- type: Array,
+ invalidPPD: {
+ type: Boolean,
+ value: false,
},
/** @type {?Array<string>} */
- modelList: {
- type: Array,
- },
+ manufacturerList: Array,
+
+ /** @type {?Array<string>} */
+ modelList: Array,
},
observers: [
@@ -86,11 +87,12 @@ const SetManufacturerModelBehavior = {
},
/**
- * @param {string} path
+ * @param {string} path The full path to the selected PPD file
* @private
*/
printerPPDPathChanged_: function(path) {
this.set('activePrinter.printerPPDPath', path);
+ this.invalidPPD = !path;
},
/**
diff --git a/chromium/chrome/browser/resources/settings/printing_page/printing_page.html b/chromium/chrome/browser/resources/settings/printing_page/printing_page.html
index 90e18fbb2e5..6513b2f9f1a 100644
--- a/chromium/chrome/browser/resources/settings/printing_page/printing_page.html
+++ b/chromium/chrome/browser/resources/settings/printing_page/printing_page.html
@@ -22,7 +22,7 @@
<neon-animatable route-path="default">
<if expr="chromeos">
<div id="cupsPrinters" class="settings-box first"
- on-tap="onTapCupsPrinters_" actionable>
+ on-click="onTapCupsPrinters_" actionable>
<div class="start">$i18n{cupsPrintersTitle}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label="$i18n{cupsPrintersTitle}"></button>
@@ -30,14 +30,14 @@
</if>
<if expr="not chromeos">
<div class="settings-box first"
- on-tap="onTapLocalPrinters_" actionable>
+ on-click="onTapLocalPrinters_" actionable>
<div class="start">$i18n{localPrintersTitle}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label="$i18n{localPrintersTitle}"></button>
</div>
</if>
<div id="cloudPrinters" class="settings-box"
- on-tap="onTapCloudPrinters_" actionable>
+ on-click="onTapCloudPrinters_" actionable>
<div class="start">$i18n{cloudPrintersTitle}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label="$i18n{cloudPrintersTitle}"></button>
diff --git a/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.html
index 1ba4c86e60b..d0bd4cfddfd 100644
--- a/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.html
+++ b/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -9,7 +9,6 @@
<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
<link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button-light.html">
<link rel="import" href="../clear_browsing_data_dialog/clear_browsing_data_dialog.html">
-<link rel="import" href="../clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.html">
<link rel="import" href="../controls/settings_toggle_button.html">
<link rel="import" href="../lifetime_browser_proxy.html">
<link rel="import" href="../route.html">
@@ -40,16 +39,9 @@
<style include="settings-shared">
</style>
<template is="dom-if" if="[[showClearBrowsingDataDialog_]]" restamp>
- <template is="dom-if" if="[[!tabsInCbd_]]" restamp>
- <settings-clear-browsing-data-dialog prefs="{{prefs}}"
- on-close="onDialogClosed_">
- </settings-clear-browsing-data-dialog>
- </template>
- <template is="dom-if" if="[[tabsInCbd_]]" restamp>
- <settings-clear-browsing-data-dialog-tabs prefs="{{prefs}}"
- on-close="onDialogClosed_">
- </settings-clear-browsing-data-dialog-tabs>
- </template>
+ <settings-clear-browsing-data-dialog prefs="{{prefs}}"
+ on-close="onDialogClosed_">
+ </settings-clear-browsing-data-dialog>
</template>
<template id="doNotTrackDialogIf" is="dom-if"
if="[[showDoNotTrackDialog_]]" notify-dom-change>
@@ -60,11 +52,11 @@
<div slot="body">$i18nRaw{doNotTrackDialogMessage}</div>
<div slot="button-container">
<paper-button class="cancel-button"
- on-tap="onDoNotTrackDialogCancel_">
+ on-click="onDoNotTrackDialogCancel_">
$i18n{cancel}
</paper-button>
<paper-button class="action-button"
- on-tap="onDoNotTrackDialogConfirm_">
+ on-click="onDoNotTrackDialogConfirm_">
$i18n{confirm}
</paper-button>
</div>
@@ -141,7 +133,7 @@
</if>
<if expr="use_nss_certs or is_win or is_macosx">
<div id="manageCertificates" class="settings-box two-line"
- actionable on-tap="onManageCertificatesTap_">
+ actionable on-click="onManageCertificatesTap_">
<div class="start">
$i18n{manageCertificates}
<div class="secondary" id="manageCertificatesSecondary">
@@ -162,7 +154,7 @@
</if>
<div id="site-settings-subpage-trigger"
class="settings-box two-line" actionable
- on-tap="onSiteSettingsTap_">
+ on-click="onSiteSettingsTap_">
<div class="start">
[[siteSettingsPageTitle_()]]
<div class="secondary" id="siteSettingsSecondary">
@@ -174,7 +166,7 @@
aria-describedby="siteSettingsSecondary"></button>
</div>
<div class="settings-box two-line" id="clearBrowsingData"
- on-tap="onClearBrowsingDataTap_" actionable>
+ on-click="onClearBrowsingDataTap_" actionable>
<div class="start">
$i18n{clearBrowsingData}
<div class="secondary" id="clearBrowsingDataSecondary">
@@ -265,7 +257,7 @@
label="$i18n{thirdPartyCookie}"
sub-label="$i18n{thirdPartyCookieSublabel}">
</settings-toggle-button>
- <div class="settings-box" actionable on-tap="onSiteDataTap_">
+ <div class="settings-box" actionable on-click="onSiteDataTap_">
<div class="start" id="cookiesLink">
$i18n{siteSettingsCookieLink}
</div>
@@ -375,6 +367,21 @@
</category-setting-exceptions>
</settings-subpage>
</template>
+ <template is="dom-if" if="[[enableSensorsContentSetting_]]" no-search>
+ <template is="dom-if" route-path="/content/sensors" no-search>
+ <settings-subpage page-title="$i18n{siteSettingsSensors}">
+ <category-default-setting
+ toggle-off-label="$i18n{siteSettingsSensorsBlock}"
+ toggle-on-label="$i18n{siteSettingsSensorsAllow}"
+ category="{{ContentSettingsTypes.SENSORS}}">
+ </category-default-setting>
+ <category-setting-exceptions
+ category="{{ContentSettingsTypes.SENSORS}}" read-only-list
+ block-header="$i18n{siteSettingsBlock}">
+ </category-setting-exceptions>
+ </settings-subpage>
+ </template>
+ </template>
<template is="dom-if" route-path="/content/notifications" no-search>
<settings-subpage page-title="$i18n{siteSettingsCategoryNotifications}">
<category-default-setting
@@ -479,7 +486,7 @@
<template is="dom-if" route-path="/cookies/detail" no-search>
<settings-subpage page-title="[[pageTitle]]">
<paper-button slot="subpage-title-extra" class="secondary-button"
- on-tap="onRemoveAllCookiesFromSite_">
+ on-click="onRemoveAllCookiesFromSite_">
$i18n{siteSettingsCookieRemoveAll}
</paper-button>
<site-data-details-subpage page-title="{{pageTitle}}">
diff --git a/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.js b/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.js
index e55ac46515f..abb969d0d3b 100644
--- a/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.js
+++ b/chromium/chrome/browser/resources/settings/privacy_page/privacy_page.js
@@ -80,14 +80,6 @@ Polymer({
showClearBrowsingDataDialog_: Boolean,
/** @private */
- tabsInCbd_: {
- type: Boolean,
- value: function() {
- return loadTimeData.getBoolean('tabsInCbd');
- }
- },
-
- /** @private */
showDoNotTrackDialog_: {
type: Boolean,
value: false,
@@ -128,6 +120,15 @@ Polymer({
}
},
+ /** @private */
+ enableSensorsContentSetting_: {
+ type: Boolean,
+ readOnly: true,
+ value: function() {
+ return loadTimeData.getBoolean('enableSensorsContentSetting');
+ }
+ },
+
/** @private {!Map<string, string>} */
focusConfig_: {
type: Object,
@@ -282,7 +283,7 @@ Polymer({
/** @private */
onDialogClosed_: function() {
- settings.navigateToPreviousRoute();
+ settings.navigateTo(settings.routes.CLEAR_BROWSER_DATA.parent);
cr.ui.focusWithoutInk(assert(this.$.clearBrowsingDataTrigger));
},
@@ -337,16 +338,21 @@ Polymer({
// </if>
/**
- * @param {boolean} enabled Whether reporting is enabled or not.
+ * @param {!SberPrefState} sberPrefState SBER enabled and managed state.
* @private
*/
- setSafeBrowsingExtendedReporting_: function(enabled) {
+ setSafeBrowsingExtendedReporting_: function(sberPrefState) {
// Ignore the next change because it will happen when we set the pref.
- this.safeBrowsingExtendedReportingPref_ = {
+ const pref = {
key: '',
type: chrome.settingsPrivate.PrefType.BOOLEAN,
- value: enabled,
+ value: sberPrefState.enabled,
};
+ if (sberPrefState.managed) {
+ pref.enforcement = chrome.settingsPrivate.Enforcement.ENFORCED;
+ pref.controlledBy = chrome.settingsPrivate.ControlledBy.USER_POLICY;
+ }
+ this.safeBrowsingExtendedReportingPref_ = pref;
},
/**
diff --git a/chromium/chrome/browser/resources/settings/privacy_page/privacy_page_browser_proxy.js b/chromium/chrome/browser/resources/settings/privacy_page/privacy_page_browser_proxy.js
index e5037cfef21..63790dfadb2 100644
--- a/chromium/chrome/browser/resources/settings/privacy_page/privacy_page_browser_proxy.js
+++ b/chromium/chrome/browser/resources/settings/privacy_page/privacy_page_browser_proxy.js
@@ -7,6 +7,9 @@
/** @typedef {{enabled: boolean, managed: boolean}} */
let MetricsReporting;
+/** @typedef {{enabled: boolean, managed: boolean}} */
+let SberPrefState;
+
cr.define('settings', function() {
/** @interface */
class PrivacyPageBrowserProxy {
@@ -25,7 +28,7 @@ cr.define('settings', function() {
// </if>
- /** @return {!Promise<boolean>} */
+ /** @return {!Promise<!SberPrefState>} */
getSafeBrowsingExtendedReporting() {}
/** @param {boolean} enabled */
diff --git a/chromium/chrome/browser/resources/settings/reset_page/powerwash_dialog.html b/chromium/chrome/browser/resources/settings/reset_page/powerwash_dialog.html
index 1459a9afe0e..98a82fd5991 100644
--- a/chromium/chrome/browser/resources/settings/reset_page/powerwash_dialog.html
+++ b/chromium/chrome/browser/resources/settings/reset_page/powerwash_dialog.html
@@ -22,10 +22,10 @@
</span>
</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="onCancelTap_"
+ <paper-button class="cancel-button" on-click="onCancelTap_"
id="cancel">$i18n{cancel}</paper-button>
<paper-button class="action-button" id="powerwash"
- on-tap="onRestartTap_">$i18n{powerwashDialogButton}</paper-button>
+ on-click="onRestartTap_">$i18n{powerwashDialogButton}</paper-button>
</div>
</dialog>
</template>
diff --git a/chromium/chrome/browser/resources/settings/reset_page/reset_page.html b/chromium/chrome/browser/resources/settings/reset_page/reset_page.html
index 82b9c6cf022..d45c9976996 100644
--- a/chromium/chrome/browser/resources/settings/reset_page/reset_page.html
+++ b/chromium/chrome/browser/resources/settings/reset_page/reset_page.html
@@ -17,6 +17,7 @@
<if expr="_google_chrome and is_win">
<link rel="import" href="../chrome_cleanup_page/chrome_cleanup_page.html">
+<link rel="import" href="../incompatible_applications_page/incompatible_applications_page.html">
</if>
<dom-module id="settings-reset-page">
@@ -25,7 +26,7 @@
<settings-animated-pages id="reset-pages" section="reset">
<neon-animatable route-path="default">
<div class="settings-box first two-line" id="resetProfile"
- on-tap="onShowResetProfileDialog_" actionable>
+ on-click="onShowResetProfileDialog_" actionable>
<div class="start">
$i18n{resetTrigger}
<div class="secondary" id="resetProfileSecondary">
@@ -44,7 +45,7 @@
</template>
<if expr="chromeos">
<div class="settings-box two-line" id="powerwash" actionable
- on-tap="onShowPowerwashDialog_" hidden="[[!allowPowerwash_]]">
+ on-click="onShowPowerwashDialog_" hidden="[[!allowPowerwash_]]">
<div class="start">
$i18n{powerwashTitle}
<div class="secondary" id="powerwashSecondary">
@@ -62,20 +63,28 @@
</if>
<if expr="_google_chrome and is_win">
<template is="dom-if" if="[[userInitiatedCleanupsEnabled_]]" restamp>
- <div class="settings-box two-line" id="chromeCleanupSubpageTrigger"
- on-tap="onChromeCleanupTap_" actionable>
- <div class="start">
- $i18n{resetCleanupComputerTrigger}
- <div class="secondary" id="chromeCleanupSecondary">
- $i18n{resetCleanupComputerTriggerDescription}
- </div>
- </div>
+ <div class="settings-box" id="chromeCleanupSubpageTrigger"
+ on-click="onChromeCleanupTap_" actionable>
+ <div class="start">$i18n{resetCleanupComputerTrigger}</div>
<button id="chromeCleanupArrow" is="paper-icon-button-light"
class="subpage-arrow"
aria-label="$i18n{resetCleanupComputerTrigger}"
aria-describedby="chromeCleanupSecondary"></button>
</div>
</template>
+ <template is="dom-if" if="[[showIncompatibleApplications_]]" restamp>
+ <div class="settings-box"
+ id="incompatibleApplicationsSubpageTrigger"
+ on-click="onIncompatibleApplicationsTap_" actionable>
+ <div class="start">
+ $i18n{incompatibleApplicationsResetCardTitle}
+ </div>
+ <button is="paper-icon-button-light"
+ class="subpage-arrow"
+ aria-label="$i18n{incompatibleApplicationsResetCardTitle}"
+ aria-describedby="incompatibleApplicationsSecondary"></button>
+ </div>
+ </template>
</if>
</neon-animatable>
<if expr="_google_chrome and is_win">
@@ -89,6 +98,16 @@
</settings-subpage>
</template>
</template>
+ <template is="dom-if" if="[[showIncompatibleApplications_]]">
+ <template is="dom-if" route-path="/incompatibleApplications">
+ <settings-subpage id="incompatibleApplicationsSubpage"
+ associated-control="[[$$('#incompatibleApplicationsSubpageTrigger')]]"
+ page-title="$i18n{incompatibleApplicationsResetCardTitle}">
+ <settings-incompatible-applications-page>
+ </settings-incompatible-applications-page>
+ </settings-subpage>
+ </template>
+ </template>
</if>
</settings-animated-pages>
</template>
diff --git a/chromium/chrome/browser/resources/settings/reset_page/reset_page.js b/chromium/chrome/browser/resources/settings/reset_page/reset_page.js
index fb5c2229223..10082a0b8f8 100644
--- a/chromium/chrome/browser/resources/settings/reset_page/reset_page.js
+++ b/chromium/chrome/browser/resources/settings/reset_page/reset_page.js
@@ -40,6 +40,14 @@ Polymer({
return loadTimeData.getBoolean('userInitiatedCleanupsEnabled');
},
},
+
+ /** @private */
+ showIncompatibleApplications_: {
+ type: Boolean,
+ value: function() {
+ return loadTimeData.getBoolean('showIncompatibleApplications');
+ },
+ },
// </if>
},
@@ -87,9 +95,15 @@ Polymer({
// </if>
// <if expr="_google_chrome and is_win">
+ /** @private */
onChromeCleanupTap_: function() {
settings.navigateTo(settings.routes.CHROME_CLEANUP);
},
+
+ /** @private */
+ onIncompatibleApplicationsTap_: function() {
+ settings.navigateTo(settings.routes.INCOMPATIBLE_APPLICATIONS);
+ },
// </if>
});
diff --git a/chromium/chrome/browser/resources/settings/reset_page/reset_profile_banner.html b/chromium/chrome/browser/resources/settings/reset_page/reset_profile_banner.html
index 3f49fa4eb03..aed186e6fab 100644
--- a/chromium/chrome/browser/resources/settings/reset_page/reset_profile_banner.html
+++ b/chromium/chrome/browser/resources/settings/reset_page/reset_profile_banner.html
@@ -19,10 +19,10 @@
</span>
</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="onOkTap_" id="ok">
+ <paper-button class="cancel-button" on-click="onOkTap_" id="ok">
$i18n{ok}
</paper-button>
- <paper-button class="action-button" on-tap="onResetTap_" id="reset">
+ <paper-button class="action-button" on-click="onResetTap_" id="reset">
$i18n{resetProfileBannerButton}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html b/chromium/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
index ef12529acb3..be6154e2f30 100644
--- a/chromium/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
+++ b/chromium/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
@@ -35,11 +35,11 @@
<div slot="button-container">
<paper-spinner-lite id="resetSpinner" active="[[clearingInProgress_]]">
</paper-spinner-lite>
- <paper-button class="cancel-button" on-tap="onCancelTap_"
+ <paper-button class="cancel-button" on-click="onCancelTap_"
id="cancel" disabled="[[clearingInProgress_]]">
$i18n{cancel}
</paper-button>
- <paper-button class="action-button" on-tap="onResetTap_"
+ <paper-button class="action-button" on-click="onResetTap_"
id="reset" disabled="[[clearingInProgress_]]">
$i18n{resetPageCommit}
</paper-button>
diff --git a/chromium/chrome/browser/resources/settings/reset_page/reset_profile_dialog.js b/chromium/chrome/browser/resources/settings/reset_page/reset_profile_dialog.js
index 683e2692f9e..22066b37961 100644
--- a/chromium/chrome/browser/resources/settings/reset_page/reset_profile_dialog.js
+++ b/chromium/chrome/browser/resources/settings/reset_page/reset_profile_dialog.js
@@ -77,7 +77,7 @@ Polymer({
});
this.$$('paper-checkbox a')
- .addEventListener('tap', this.onShowReportedSettingsTap_.bind(this));
+ .addEventListener('click', this.onShowReportedSettingsTap_.bind(this));
// Prevent toggling of the checkbox when hitting the "Enter" key on the
// link.
this.$$('paper-checkbox a').addEventListener('keydown', function(e) {
diff --git a/chromium/chrome/browser/resources/settings/route.js b/chromium/chrome/browser/resources/settings/route.js
index de01fd22a9c..68183214b91 100644
--- a/chromium/chrome/browser/resources/settings/route.js
+++ b/chromium/chrome/browser/resources/settings/route.js
@@ -36,6 +36,7 @@
* FONTS: (undefined|!settings.Route),
* GOOGLE_ASSISTANT: (undefined|!settings.Route),
* IMPORT_DATA: (undefined|!settings.Route),
+ * INCOMPATIBLE_APPLICATIONS: (undefined|!settings.Route),
* INPUT_METHODS: (undefined|!settings.Route),
* INTERNET: (undefined|!settings.Route),
* INTERNET_NETWORKS: (undefined|!settings.Route),
@@ -73,6 +74,7 @@
* SITE_SETTINGS_HANDLERS: (undefined|!settings.Route),
* SITE_SETTINGS_IMAGES: (undefined|!settings.Route),
* SITE_SETTINGS_JAVASCRIPT: (undefined|!settings.Route),
+ * SITE_SETTINGS_SENSORS: (undefined|!settings.Route),
* SITE_SETTINGS_SOUND: (undefined|!settings.Route),
* SITE_SETTINGS_LOCATION: (undefined|!settings.Route),
* SITE_SETTINGS_MICROPHONE: (undefined|!settings.Route),
@@ -317,6 +319,7 @@ cr.define('settings', function() {
r.SITE_SETTINGS_IMAGES = r.SITE_SETTINGS.createChild('images');
r.SITE_SETTINGS_JAVASCRIPT = r.SITE_SETTINGS.createChild('javascript');
r.SITE_SETTINGS_SOUND = r.SITE_SETTINGS.createChild('sound');
+ r.SITE_SETTINGS_SENSORS = r.SITE_SETTINGS.createChild('sensors');
r.SITE_SETTINGS_LOCATION = r.SITE_SETTINGS.createChild('location');
r.SITE_SETTINGS_MICROPHONE = r.SITE_SETTINGS.createChild('microphone');
r.SITE_SETTINGS_NOTIFICATIONS =
@@ -388,6 +391,10 @@ cr.define('settings', function() {
if (loadTimeData.getBoolean('userInitiatedCleanupsEnabled')) {
r.CHROME_CLEANUP = r.RESET.createChild('/cleanup');
}
+ if (loadTimeData.getBoolean('showIncompatibleApplications')) {
+ r.INCOMPATIBLE_APPLICATIONS =
+ r.RESET.createChild('/incompatibleApplications');
+ }
// </if>
}
}
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/omnibox_extension_entry.html b/chromium/chrome/browser/resources/settings/search_engines_page/omnibox_extension_entry.html
index aa5677369c5..89475dacb36 100644
--- a/chromium/chrome/browser/resources/settings/search_engines_page/omnibox_extension_entry.html
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/omnibox_extension_entry.html
@@ -35,14 +35,16 @@
</div>
<div class="keyword-column">[[engine.keyword]]</div>
<button is="paper-icon-button-light" class="icon-more-vert"
- on-tap="onDotsTap_" title="$i18n{moreActions}" focus-row-control
+ on-click="onDotsTap_" title="$i18n{moreActions}" focus-row-control
focus-type="menu">
</button>
<dialog is="cr-action-menu">
- <button class="dropdown-item" on-tap="onManageTap_" id="manage">
+ <button slot="item" class="dropdown-item" on-click="onManageTap_"
+ id="manage">
$i18n{searchEnginesManageExtension}
</button>
- <button class="dropdown-item" on-tap="onDisableTap_" id="disable">
+ <button slot="item" class="dropdown-item" on-click="onDisableTap_"
+ id="disable">
$i18n{disable}
</button>
</dialog>
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_dialog.html b/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_dialog.html
index a2788c608ec..a8e0591c515 100644
--- a/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_dialog.html
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_dialog.html
@@ -44,10 +44,10 @@
</paper-input>
</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="cancel_" id="cancel">
+ <paper-button class="cancel-button" on-click="cancel_" id="cancel">
$i18n{cancel}</paper-button>
<paper-button id="actionButton" class="action-button"
- on-tap="onActionButtonTap_">
+ on-click="onActionButtonTap_">
[[actionButtonText_]]
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.html b/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.html
index f4b23582e1c..5f0f410817a 100644
--- a/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.html
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engine_entry.html
@@ -54,19 +54,19 @@
<div id="keyword-column"><div>[[engine.keyword]]</div></div>
<div id="url-column" class="text-elide">[[engine.url]]</div>
<button is="paper-icon-button-light" class="icon-more-vert"
- on-tap="onDotsTap_" title="$i18n{moreActions}" focus-row-control
+ on-click="onDotsTap_" title="$i18n{moreActions}" focus-row-control
focus-type="cr-menu-button">
</button>
<dialog is="cr-action-menu">
- <button class="dropdown-item" on-tap="onMakeDefaultTap_"
+ <button slot="item" class="dropdown-item" on-click="onMakeDefaultTap_"
hidden$="[[!engine.canBeDefault]]" id="makeDefault">
$i18n{searchEnginesMakeDefault}
</button>
- <button class="dropdown-item" on-tap="onEditTap_"
+ <button slot="item" class="dropdown-item" on-click="onEditTap_"
hidden$="[[!engine.canBeEdited]]" id="edit">
$i18n{edit}
</button>
- <button class="dropdown-item" on-tap="onDeleteTap_"
+ <button slot="item" class="dropdown-item" on-click="onDeleteTap_"
hidden$="[[!engine.canBeRemoved]]" id="delete">
$i18n{searchEnginesRemoveFromList}
</button>
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.html b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.html
index 507bf4875ad..1e6af9d9737 100644
--- a/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.html
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_list.html
@@ -23,7 +23,7 @@
}
#outer {
- @apply(--settings-list-frame-padding);
+ @apply --settings-list-frame-padding;
}
settings-search-engine-entry {
diff --git a/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.html b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.html
index eb06d3cd345..44638d4ee43 100644
--- a/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.html
+++ b/chromium/chrome/browser/resources/settings/search_engines_page/search_engines_page.html
@@ -19,7 +19,7 @@
.extension-engines,
#noOtherEngines,
.no-search-results {
- @apply(--settings-list-frame-padding);
+ @apply --settings-list-frame-padding;
}
settings-omnibox-extension-entry {
@@ -43,7 +43,7 @@
<div class="settings-box first">
<h2 class="start">$i18n{searchEnginesOther}</h2>
<paper-button class="secondary-button header-aligned-button"
- on-tap="onAddSearchEngineTap_" id="addSearchEngine">
+ on-click="onAddSearchEngineTap_" id="addSearchEngine">
$i18n{add}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/search_page/search_page.html b/chromium/chrome/browser/resources/settings/search_page/search_page.html
index 1e9f88f1e7c..d32e97c489c 100644
--- a/chromium/chrome/browser/resources/settings/search_page/search_page.html
+++ b/chromium/chrome/browser/resources/settings/search_page/search_page.html
@@ -84,7 +84,7 @@
<!-- Manage search engines -->
<div id="engines-subpage-trigger" class="settings-box"
- on-tap="onManageSearchEnginesTap_" actionable>
+ on-click="onManageSearchEnginesTap_" actionable>
<div class="start">
$i18n{searchEnginesManage}
</div>
@@ -96,7 +96,7 @@
<!-- Google Assistant -->
<template is="dom-if" if="[[voiceInteractionFeatureEnabled_]]">
<div id="assistant-subpage-trigger" class="settings-box two-line"
- on-tap="onGoogleAssistantTap_" actionable>
+ on-click="onGoogleAssistantTap_" actionable>
<div class="start">
$i18n{searchGoogleAssistant}
<div class="secondary">
@@ -111,7 +111,7 @@
<template is="dom-if" if="[[!assistantOn_]]">
<div class="separator"></div>
<paper-button id="enable" class="secondary-button"
- on-tap="onAssistantTurnOnTap_"
+ on-click="onAssistantTurnOnTap_"
aria-label="$i18n{searchPageTitle}"
aria-describedby="secondaryText">
$i18n{assistantTurnOn}
diff --git a/chromium/chrome/browser/resources/settings/search_settings.js b/chromium/chrome/browser/resources/settings/search_settings.js
index 684aed657e9..71971fa8246 100644
--- a/chromium/chrome/browser/resources/settings/search_settings.js
+++ b/chromium/chrome/browser/resources/settings/search_settings.js
@@ -17,18 +17,6 @@ cr.exportPath('settings');
settings.SearchResult;
cr.define('settings', function() {
- /** @type {string} */
- const WRAPPER_CSS_CLASS = 'search-highlight-wrapper';
-
- /** @type {string} */
- const ORIGINAL_CONTENT_CSS_CLASS = 'search-highlight-original-content';
-
- /** @type {string} */
- const HIT_CSS_CLASS = 'search-highlight-hit';
-
- /** @type {string} */
- const SEARCH_BUBBLE_CSS_CLASS = 'search-bubble';
-
/**
* A CSS attribute indicating that a node should be ignored during searching.
* @type {string}
@@ -65,59 +53,8 @@ cr.define('settings', function() {
* @private
*/
function findAndRemoveHighlights_(node) {
- const wrappers = node.querySelectorAll('* /deep/ .' + WRAPPER_CSS_CLASS);
-
- for (let i = 0; i < wrappers.length; i++) {
- const wrapper = wrappers[i];
- const originalNode =
- wrapper.querySelector('.' + ORIGINAL_CONTENT_CSS_CLASS);
- wrapper.parentElement.replaceChild(originalNode.firstChild, wrapper);
- }
-
- const searchBubbles =
- node.querySelectorAll('* /deep/ .' + SEARCH_BUBBLE_CSS_CLASS);
- for (let j = 0; j < searchBubbles.length; j++)
- searchBubbles[j].remove();
- }
-
- /**
- * Applies the highlight UI (yellow rectangle) around all matches in |node|.
- * @param {!Node} node The text node to be highlighted. |node| ends up
- * being removed from the DOM tree.
- * @param {!Array<string>} tokens The string tokens after splitting on the
- * relevant regExp. Even indices hold text that doesn't need highlighting,
- * odd indices hold the text to be highlighted. For example:
- * const r = new RegExp('(foo)', 'i');
- * 'barfoobar foo bar'.split(r) => ['bar', 'foo', 'bar ', 'foo', ' bar']
- * @private
- */
- function highlight_(node, tokens) {
- const wrapper = document.createElement('span');
- wrapper.classList.add(WRAPPER_CSS_CLASS);
- // Use existing node as placeholder to determine where to insert the
- // replacement content.
- node.parentNode.replaceChild(wrapper, node);
-
- // Keep the existing node around for when the highlights are removed. The
- // existing text node might be involved in data-binding and therefore should
- // not be discarded.
- const span = document.createElement('span');
- span.classList.add(ORIGINAL_CONTENT_CSS_CLASS);
- span.style.display = 'none';
- span.appendChild(node);
- wrapper.appendChild(span);
-
- for (let i = 0; i < tokens.length; ++i) {
- if (i % 2 == 0) {
- wrapper.appendChild(document.createTextNode(tokens[i]));
- } else {
- const hitSpan = document.createElement('span');
- hitSpan.classList.add(HIT_CSS_CLASS);
- hitSpan.style.backgroundColor = '#ffeb3b'; // --var(--paper-yellow-500)
- hitSpan.textContent = tokens[i];
- wrapper.appendChild(hitSpan);
- }
- }
+ cr.search_highlight_utils.findAndRemoveHighlights(node);
+ cr.search_highlight_utils.findAndRemoveBubbles(node);
}
/**
@@ -163,8 +100,10 @@ cr.define('settings', function() {
// displayed within an <option>.
// TODO(dpapad): highlight <select> controls with a search bubble
// instead.
- if (node.parentNode.nodeName != 'OPTION')
- highlight_(node, textContent.split(request.regExp));
+ if (node.parentNode.nodeName != 'OPTION') {
+ cr.search_highlight_utils.highlight(
+ node, textContent.split(request.regExp));
+ }
}
// Returning early since TEXT_NODE nodes never have children.
return;
@@ -189,44 +128,6 @@ cr.define('settings', function() {
}
/**
- * Highlights the HTML control that triggers a subpage, by displaying a search
- * bubble.
- * @param {!HTMLElement} element The element to be highlighted.
- * @param {string} rawQuery The search query.
- * @private
- */
- function highlightAssociatedControl_(element, rawQuery) {
- let searchBubble = element.querySelector('.' + SEARCH_BUBBLE_CSS_CLASS);
- // If the associated control has already been highlighted due to another
- // match on the same subpage, there is no need to do anything.
- if (searchBubble)
- return;
-
- searchBubble = document.createElement('div');
- searchBubble.classList.add(SEARCH_BUBBLE_CSS_CLASS);
- const innards = document.createElement('div');
- innards.classList.add('search-bubble-innards', 'text-elide');
- innards.textContent = rawQuery;
- searchBubble.appendChild(innards);
- element.appendChild(searchBubble);
-
- // Dynamically position the bubble at the edge the associated control
- // element.
- const updatePosition = function() {
- searchBubble.style.top = element.offsetTop +
- (innards.classList.contains('above') ? -searchBubble.offsetHeight :
- element.offsetHeight) +
- 'px';
- };
- updatePosition();
-
- searchBubble.addEventListener('mouseover', function() {
- innards.classList.toggle('above');
- updatePosition();
- });
- }
-
- /**
* Finds and makes visible the <settings-section> parent of |node|.
* @param {!Node} node
* @param {string} rawQuery
@@ -253,8 +154,10 @@ cr.define('settings', function() {
// Need to add the search bubble after the parent SETTINGS-SECTION has
// become visible, otherwise |offsetWidth| returns zero.
- if (associatedControl)
- highlightAssociatedControl_(associatedControl, rawQuery);
+ if (associatedControl) {
+ cr.search_highlight_utils.highlightControlWithBubble(
+ associatedControl, rawQuery);
+ }
}
/** @abstract */
diff --git a/chromium/chrome/browser/resources/settings/settings.html b/chromium/chrome/browser/resources/settings/settings.html
index 8732184b614..2f8a74473c8 100644
--- a/chromium/chrome/browser/resources/settings/settings.html
+++ b/chromium/chrome/browser/resources/settings/settings.html
@@ -10,6 +10,8 @@
html {
background-color: #f1f1f1;
overflow: hidden;
+ /* Remove 300ms delay for 'click' event, when using touch interface. */
+ touch-action: manipulation;
}
.loading {
@@ -20,6 +22,7 @@
</head>
<body>
<settings-ui></settings-ui>
+ <link rel="stylesheet" href="chrome://resources/css/md_colors.css">
<link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
<link rel="import" href="chrome://resources/html/polymer.html">
<link rel="import" href="settings_ui/settings_ui.html">
diff --git a/chromium/chrome/browser/resources/settings/settings_main/settings_main.html b/chromium/chrome/browser/resources/settings/settings_main/settings_main.html
index fcbd63786ef..31e3040c21e 100644
--- a/chromium/chrome/browser/resources/settings/settings_main/settings_main.html
+++ b/chromium/chrome/browser/resources/settings/settings_main/settings_main.html
@@ -2,6 +2,7 @@
<link rel="import" href="chrome://resources/cr_elements/hidden_style_css.html">
<link rel="import" href="chrome://resources/cr_elements/icons.html">
+<link rel="import" href="chrome://resources/html/search_highlight_utils.html">
<link rel="import" href="chrome://resources/html/promise_resolver.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-a11y-announcer/iron-a11y-announcer.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
diff --git a/chromium/chrome/browser/resources/settings/settings_page/settings_animated_pages.html b/chromium/chrome/browser/resources/settings/settings_page/settings_animated_pages.html
index 5b3e82131ca..655b3faa8a0 100644
--- a/chromium/chrome/browser/resources/settings/settings_page/settings_animated_pages.html
+++ b/chromium/chrome/browser/resources/settings/settings_page/settings_animated_pages.html
@@ -11,6 +11,7 @@
<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animatable.html">
<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animated-pages.html">
<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/neon-animation-runner-behavior.html">
+<link rel="import" href="chrome://resources/polymer/v1_0/neon-animation/web-animations.html">
<link rel="import" href="../animation/fade_animations.html">
<link rel="import" href="../route.html">
diff --git a/chromium/chrome/browser/resources/settings/settings_page/settings_section.html b/chromium/chrome/browser/resources/settings/settings_page/settings_section.html
index 644879a6d93..3daf5135314 100644
--- a/chromium/chrome/browser/resources/settings/settings_page/settings_section.html
+++ b/chromium/chrome/browser/resources/settings/settings_page/settings_section.html
@@ -20,13 +20,13 @@
}
#header .title {
- @apply(--cr-section-text);
+ @apply --cr-section-text;
margin-bottom: 0;
margin-top: var(--settings-page-vertical-margin);
}
#card {
- @apply(--shadow-elevation-2dp);
+ @apply --shadow-elevation-2dp;
background-color: white;
border-radius: 2px;
flex: 1;
@@ -39,7 +39,7 @@
:host(.expanding) #card,
:host(.collapsing) #card,
:host(.expanded) #card {
- @apply(--shadow-elevation-4dp);
+ @apply --shadow-elevation-4dp;
overflow: hidden;
/* A stacking context constrains sliding sub-pages to the card. */
z-index: 0;
diff --git a/chromium/chrome/browser/resources/settings/settings_page/settings_subpage.html b/chromium/chrome/browser/resources/settings/settings_page/settings_subpage.html
index 12b26d259d6..1021acdcbe8 100644
--- a/chromium/chrome/browser/resources/settings/settings_page/settings_subpage.html
+++ b/chromium/chrome/browser/resources/settings/settings_page/settings_subpage.html
@@ -26,7 +26,7 @@
}
#learnMore {
- @apply(--cr-paper-icon-button-margin);
+ @apply --cr-paper-icon-button-margin;
align-items: center;
display: flex;
height: var(--cr-icon-ripple-size);
@@ -42,12 +42,12 @@
}
paper-spinner-lite {
- @apply(--cr-icon-height-width);
+ @apply --cr-icon-height-width;
}
h1 {
flex: 1; /* Push other items to the end. */
- @apply(--cr-title-text);
+ @apply --cr-title-text;
}
settings-subpage-search {
@@ -56,7 +56,7 @@
}
</style>
<div class="settings-box first" id="headerLine">
- <button is="paper-icon-button-light" on-tap="onTapBack_"
+ <button is="paper-icon-button-light" on-click="onTapBack_"
aria-label="$i18n{back}" class="icon-arrow-back">
</button>
<h1>[[pageTitle]]</h1>
diff --git a/chromium/chrome/browser/resources/settings/settings_page/settings_subpage_search.html b/chromium/chrome/browser/resources/settings/settings_page/settings_subpage_search.html
index 4f4245f7fec..da6272b5834 100644
--- a/chromium/chrome/browser/resources/settings/settings_page/settings_subpage_search.html
+++ b/chromium/chrome/browser/resources/settings/settings_page/settings_subpage_search.html
@@ -71,10 +71,10 @@
<paper-input-container no-label-float>
<input id="searchInput" type="search" on-search="onSearchTermSearch"
on-input="onSearchTermInput" aria-label$="[[label]]" incremental
- autofocus$="[[autofocus]]" placeholder="[[label]]">
- <button suffix is="paper-icon-button-light" id="clearSearch"
- class="icon-cancel" on-tap="onTapClear_" title="[[clearLabel]]"
- hidden$="[[!hasSearchText]]">
+ autofocus$="[[autofocus]]" placeholder="[[label]]" slot="input">
+ <button is="paper-icon-button-light" id="clearSearch"
+ class="icon-cancel" on-click="onTapClear_" title="[[clearLabel]]"
+ hidden$="[[!hasSearchText]]" slot="suffix">
</button>
</paper-input-container>
</template>
diff --git a/chromium/chrome/browser/resources/settings/settings_resources.grd b/chromium/chrome/browser/resources/settings/settings_resources.grd
index 34e3036a3cc..e4122b701b2 100644
--- a/chromium/chrome/browser/resources/settings/settings_resources.grd
+++ b/chromium/chrome/browser/resources/settings/settings_resources.grd
@@ -325,6 +325,26 @@
file="chrome_cleanup_page/items_to_remove_list.js"
type="chrome_html"/>
</if>
+ <if expr="is_win and _google_chrome">
+ <structure name="IDR_SETTINGS_INCOMPATIBLE_APPLICATIONS_PAGE_HTML"
+ file="incompatible_applications_page/incompatible_applications_page.html"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_INCOMPATIBLE_APPLICATIONS_PAGE_JS"
+ file="incompatible_applications_page/incompatible_applications_page.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_INCOMPATIBLE_APPLICATIONS_BROWSER_PROXY_HTML"
+ file="incompatible_applications_page/incompatible_applications_browser_proxy.html"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_INCOMPATIBLE_APPLICATIONS_BROWSER_PROXY_JS"
+ file="incompatible_applications_page/incompatible_applications_browser_proxy.js"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_INCOMPATIBLE_APPLICATIONS_INCOMPATIBLE_APPLICATION_ITEM_HTML"
+ file="incompatible_applications_page/incompatible_application_item.html"
+ type="chrome_html" />
+ <structure name="IDR_SETTINGS_INCOMPATIBLE_APPLICATIONS_INCOMPATIBLE_APPLICATION_ITEM_JS"
+ file="incompatible_applications_page/incompatible_application_item.js"
+ type="chrome_html" />
+ </if>
<structure name="IDR_SETTINGS_CLEAR_BROWSING_DATA_BROWSER_PROXY_HTML"
file="clear_browsing_data_dialog/clear_browsing_data_browser_proxy.html"
type="chrome_html" />
@@ -337,12 +357,6 @@
<structure name="IDR_SETTINGS_CLEAR_BROWSING_DATA_DIALOG_JS"
file="clear_browsing_data_dialog/clear_browsing_data_dialog.js"
type="chrome_html" />
- <structure name="IDR_SETTINGS_CLEAR_BROWSING_DATA_DIALOG_TABS_HTML"
- file="clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.html"
- type="chrome_html" />
- <structure name="IDR_SETTINGS_CLEAR_BROWSING_DATA_DIALOG_TABS_JS"
- file="clear_browsing_data_dialog/clear_browsing_data_dialog_tabs.js"
- type="chrome_html" />
<structure name="IDR_SETTINGS_HISTORY_DELETION_DIALOG_HTML"
file="clear_browsing_data_dialog/history_deletion_dialog.html"
type="chrome_html" />
@@ -707,6 +721,14 @@
preprocess="true"
allowexternalscript="true" />
<if expr="not chromeos">
+ <structure name="IDR_SETTINGS_PEOPLE_PAGE_SYNC_ACCOUNT_CONTROL_HTML"
+ file="people_page/sync_account_control.html"
+ type="chrome_html"
+ flattenhtml="true"
+ allowexternalscript="true" />
+ <structure name="IDR_SETTINGS_PEOPLE_PAGE_SYNC_ACCOUNT_CONTROL_JS"
+ file="people_page/sync_account_control.js"
+ type="chrome_html" />
<structure name="IDR_SETTINGS_PEOPLE_PAGE_IMPORT_DATA_DIALOG_HTML"
file="people_page/import_data_dialog.html"
type="chrome_html" />
@@ -1258,11 +1280,6 @@
type="chrome_html"
preprocess="true"
allowexternalscript="true" />
- <structure name="IDR_SETTINGS_PEOPLE_PIN_KEYBOARD_HTML"
- file="people_page/pin_keyboard.html"
- type="chrome_html"
- preprocess="true"
- allowexternalscript="true"/>
<structure name="IDR_SETTINGS_PEOPLE_LOCK_SCREEN_JS"
file="people_page/lock_screen.js"
type="chrome_html" />
@@ -1319,10 +1336,6 @@
<structure name="IDR_SETTINGS_PEOPLE_FINGERPRINT_BROWSER_PROXY_HTML"
file="people_page/fingerprint_browser_proxy.html"
type="chrome_html" />
- <structure name="IDR_SETTINGS_KEYBOARD_PIN_JS"
- file="people_page/pin_keyboard.js"
- type="chrome_html"
- preprocess="true" />
<structure name="IDR_SETTINGS_USERS_PAGE_ADD_USER_DIALOG_JS"
file="people_page/users_add_user_dialog.js"
type="chrome_html" />
diff --git a/chromium/chrome/browser/resources/settings/settings_shared_css.html b/chromium/chrome/browser/resources/settings/settings_shared_css.html
index 36f43725cd7..2c89c7a5a36 100644
--- a/chromium/chrome/browser/resources/settings/settings_shared_css.html
+++ b/chromium/chrome/browser/resources/settings/settings_shared_css.html
@@ -2,6 +2,7 @@
<link rel="import" href="chrome://resources/cr_elements/paper_checkbox_style_css.html">
<link rel="import" href="chrome://resources/cr_elements/paper_input_style_css.html">
<link rel="import" href="chrome://resources/cr_elements/paper_toggle_style_css.html">
+<link rel="import" href="chrome://resources/cr_elements/search_highlight_style_css.html">
<link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html">
<link rel="import" href="chrome://resources/cr_elements/shared_style_css.html">
<link rel="import" href="settings_icons_css.html">
@@ -11,7 +12,7 @@
<!-- Common styles for Material Design settings. -->
<dom-module id="settings-shared">
<template>
- <style include="settings-icons paper-button-style paper-checkbox-style paper-input-style paper-toggle-style cr-shared-style">
+ <style include="settings-icons paper-button-style paper-checkbox-style paper-input-style paper-toggle-style cr-shared-style search-highlight-style">
/* Prevent action-links from being selected to avoid accidental
* selection when trying to click it. */
a[is=action-link] {
@@ -89,8 +90,9 @@
-webkit-margin-start: 16px;
}
- /* Adjust the margin between the separator and the first button. */
- .separator + paper-button {
+ /* Adjust the margin between the separator and the first button. Exclude
+ * .action-button since it has a background thus is visually different. */
+ .separator + paper-button:not(.action-button) {
-webkit-margin-start: calc(var(--cr-button-edge-spacing) * -1);
}
@@ -105,7 +107,7 @@
}
paper-toggle-button {
- @apply(--settings-actionable);
+ @apply --settings-actionable;
height: var(--settings-row-min-height);
user-select: none; /* Prevents text selection while dragging. */
width: 36px;
@@ -154,7 +156,7 @@
/* See also: .no-min-width below. */
.text-elide {
- @apply(--settings-text-elide);
+ @apply --cr-text-elide;
}
/* By default, flexbox children have min-width calculated to be the width
@@ -174,7 +176,7 @@
* outside of a settings-box. A list-frame is likely to follow a
* settings box. */
.list-frame {
- @apply(--settings-list-frame-padding);
+ @apply --settings-list-frame-padding;
align-items: center;
display: block;
}
@@ -230,7 +232,7 @@
/* A settings-box is a horizontal row of text or controls within a
* setting section (page or subpage). */
.settings-box {
- @apply(--cr-section);
+ @apply --cr-section;
}
.settings-box.two-line {
@@ -273,7 +275,7 @@
/* The lower line of text in a two-line row. */
.secondary {
- @apply(--cr-secondary-text);
+ @apply --cr-secondary-text;
}
/* The |:empty| CSS selector only works when there is no whitespace.
@@ -358,44 +360,6 @@
width: 16px;
}
- .search-bubble {
- /* RGB value matches var(--paper-yellow-500). */
- --search-bubble-color: rgba(255, 235, 59, 0.9);
- position: absolute;
- z-index: 1;
- }
-
- .search-bubble-innards {
- align-items: center;
- background-color: var(--search-bubble-color);
- border-radius: 2px;
- max-width: 100px;
- min-width: 64px;
- padding: 4px 10px;
- text-align: center;
- }
-
- /* Provides the arrow which points at the anchor element. */
- .search-bubble-innards::after {
- background-color: var(--search-bubble-color);
- content: '';
- height: 10px;
- left: calc(50% - 5px);
- position: absolute;
- top: -5px;
- transform: rotate(-45deg);
- width: 10px;
- z-index: -1;
- }
-
- /* Turns the arrow direction downwards, when the bubble is placed above
- * the anchor element */
- .search-bubble-innards.above::after {
- bottom: -5px;
- top: auto;
- transform: rotate(-135deg);
- }
-
.column-header {
color: var(--paper-grey-600);
font-weight: 500;
diff --git a/chromium/chrome/browser/resources/settings/settings_ui/settings_ui.html b/chromium/chrome/browser/resources/settings/settings_ui/settings_ui.html
index 7aca114c1af..9031db844ab 100644
--- a/chromium/chrome/browser/resources/settings/settings_ui/settings_ui.html
+++ b/chromium/chrome/browser/resources/settings/settings_ui/settings_ui.html
@@ -24,7 +24,7 @@
<template>
<style include="settings-shared">
:host {
- @apply(--layout-fit);
+ @apply --layout-fit;
color: var(--primary-text-color);
display: flex;
flex-direction: column;
@@ -38,7 +38,7 @@
}
cr-toolbar {
- @apply(--layout-center);
+ @apply --layout-center;
--iron-icon-fill-color: white;
background-color: var(--google-blue-700);
color: white;
diff --git a/chromium/chrome/browser/resources/settings/settings_ui/settings_ui.js b/chromium/chrome/browser/resources/settings/settings_ui/settings_ui.js
index 097280993a4..4b8c62678ec 100644
--- a/chromium/chrome/browser/resources/settings/settings_ui/settings_ui.js
+++ b/chromium/chrome/browser/resources/settings/settings_ui/settings_ui.js
@@ -118,6 +118,8 @@ Polymer({
loadTimeData.getString('networkListItemConnectingTo'),
networkListItemInitializing:
loadTimeData.getString('networkListItemInitializing'),
+ networkListItemScanning:
+ loadTimeData.getString('networkListItemScanning'),
networkListItemNotConnected:
loadTimeData.getString('networkListItemNotConnected'),
networkListItemNoNetwork:
diff --git a/chromium/chrome/browser/resources/settings/settings_vars_css.html b/chromium/chrome/browser/resources/settings/settings_vars_css.html
index 595e689d955..5e9062ead38 100644
--- a/chromium/chrome/browser/resources/settings/settings_vars_css.html
+++ b/chromium/chrome/browser/resources/settings/settings_vars_css.html
@@ -37,12 +37,6 @@
--settings-row-three-line-min-height:
var(--cr-section-three-line-min-height);
- --settings-text-elide: {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- };
-
--settings-separator-height: var(--cr-separator-height);
--settings-separator-line: var(--cr-separator-line);
diff --git a/chromium/chrome/browser/resources/settings/site_settings/add_site_dialog.html b/chromium/chrome/browser/resources/settings/site_settings/add_site_dialog.html
index 94157bee5f4..3aad9d10c78 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/add_site_dialog.html
+++ b/chromium/chrome/browser/resources/settings/site_settings/add_site_dialog.html
@@ -35,10 +35,10 @@
</paper-checkbox>
</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="onCancelTap_">
+ <paper-button class="cancel-button" on-click="onCancelTap_">
$i18n{cancel}
</paper-button>
- <paper-button class="action-button" id="add" on-tap="onSubmit_"
+ <paper-button class="action-button" id="add" on-click="onSubmit_"
disabled>
$i18n{add}
</paper-button>
diff --git a/chromium/chrome/browser/resources/settings/site_settings/all_sites.html b/chromium/chrome/browser/resources/settings/site_settings/all_sites.html
index 47fa36b5184..2891cc77aa8 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/all_sites.html
+++ b/chromium/chrome/browser/resources/settings/site_settings/all_sites.html
@@ -18,7 +18,7 @@
<div class="list-frame menu-content vertical-list" id="listContainer">
<template is="dom-repeat" items="[[sites]]">
<div class="list-item">
- <div class="layout horizontal center flex" on-tap="onOriginTap_"
+ <div class="layout horizontal center flex" on-click="onOriginTap_"
actionable>
<div class="favicon-image"
style$="[[computeSiteIcon(item.origin)]]">
diff --git a/chromium/chrome/browser/resources/settings/site_settings/category_default_setting.js b/chromium/chrome/browser/resources/settings/site_settings/category_default_setting.js
index 220b76dad6f..9933ccaaabe 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/category_default_setting.js
+++ b/chromium/chrome/browser/resources/settings/site_settings/category_default_setting.js
@@ -97,6 +97,7 @@ Polymer({
case settings.ContentSettingsTypes.IMAGES:
case settings.ContentSettingsTypes.JAVASCRIPT:
case settings.ContentSettingsTypes.SOUND:
+ case settings.ContentSettingsTypes.SENSORS:
case settings.ContentSettingsTypes.POPUPS:
case settings.ContentSettingsTypes.PROTOCOL_HANDLERS:
diff --git a/chromium/chrome/browser/resources/settings/site_settings/constants.js b/chromium/chrome/browser/resources/settings/site_settings/constants.js
index c6a690d271f..f878c560619 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/constants.js
+++ b/chromium/chrome/browser/resources/settings/site_settings/constants.js
@@ -30,9 +30,10 @@ settings.ContentSettingsTypes = {
MIDI_DEVICES: 'midi-sysex',
USB_DEVICES: 'usb-chooser-data',
ZOOM_LEVELS: 'zoom-levels',
- PROTECTED_CONTENT: 'protectedContent',
+ PROTECTED_CONTENT: 'protected-content',
ADS: 'ads',
CLIPBOARD: 'clipboard',
+ SENSORS: 'sensors',
};
/**
diff --git a/chromium/chrome/browser/resources/settings/site_settings/edit_exception_dialog.html b/chromium/chrome/browser/resources/settings/site_settings/edit_exception_dialog.html
index f6ab56fa94a..25da836f905 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/edit_exception_dialog.html
+++ b/chromium/chrome/browser/resources/settings/site_settings/edit_exception_dialog.html
@@ -19,10 +19,10 @@
</paper-input>
</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="onCancelTap_"
+ <paper-button class="cancel-button" on-click="onCancelTap_"
id="cancel">$i18n{cancel}</paper-button>
<paper-button id="actionButton" class="action-button"
- on-tap="onActionButtonTap_" disabled="[[invalid_]]">
+ on-click="onActionButtonTap_" disabled="[[invalid_]]">
$i18n{edit}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/site_settings/protocol_handlers.html b/chromium/chrome/browser/resources/settings/site_settings/protocol_handlers.html
index a37356e6dda..b734faea7df 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/protocol_handlers.html
+++ b/chromium/chrome/browser/resources/settings/site_settings/protocol_handlers.html
@@ -44,34 +44,55 @@
<div class="middle" >
<div class="protocol-host">[[item.host]]</div>
<div class="secondary protocol-default"
- hidden$="[[!isDefault_(index, protocol.default_handler)]]">
+ hidden$="[[!item.is_default]]">
$i18n{handlerIsDefault}
</div>
</div>
- <button is="paper-icon-button-light" on-tap="showMenu_"
+ <button is="paper-icon-button-light" on-click="showMenu_"
class="icon-more-vert" title="$i18n{moreActions}">
</button>
</div>
-
</template>
</div>
</template>
<dialog is="cr-action-menu">
- <button class="dropdown-item" on-tap="onDefaultTap_" id="defaultButton"
- hidden$="[[isModelDefault_(actionMenuModel_)]]">
+ <button slot="item" class="dropdown-item" on-click="onDefaultClick_"
+ id="defaultButton" hidden$="[[actionMenuModel_.is_default]]">
$i18n{handlerSetDefault}
</button>
- <button class="dropdown-item" on-tap="onRemoveTap_" id="removeButton">
+ <button slot="item" class="dropdown-item" on-click="onRemoveClick_"
+ id="removeButton">
$i18n{handlerRemove}
</button>
</dialog>
+ <template is="dom-if" if="[[ignoredProtocols.length]]">
+ <div class="column-header">$i18n{siteSettingsBlocked}</div>
+ <div class="list-frame menu-content vertical-list">
+ <template is="dom-repeat" items="[[ignoredProtocols]]">
+ <div class="list-item">
+ <div class="favicon-image" style$="[[computeSiteIcon(item.host)]]">
+ </div>
+ <div class="middle" >
+ <div class="protocol-host">[[item.host]]</div>
+ <div class="secondary protocol-protocol">[[item.protocol]]</div>
+ </div>
+
+ <button is="paper-icon-button-light" on-click="onRemoveIgnored_"
+ class="icon-clear" title="$i18n{moreActions}"
+ id="removeIgnoredButton">
+ </button>
+ </div>
+ </template>
+ </div>
+ </template>
+
<if expr="chromeos">
<template is="dom-if" if="[[settingsAppAvailable_]]">
<div class="settings-box first"
- on-tap="onManageAndroidAppsTap_" actionable>
+ on-click="onManageAndroidAppsClick_" actionable>
<div class="start">
<div>$i18n{androidAppsManageAppLinks}</div>
</div>
diff --git a/chromium/chrome/browser/resources/settings/site_settings/protocol_handlers.js b/chromium/chrome/browser/resources/settings/site_settings/protocol_handlers.js
index 6ad35cec77e..17667e90278 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/protocol_handlers.js
+++ b/chromium/chrome/browser/resources/settings/site_settings/protocol_handlers.js
@@ -19,16 +19,14 @@ const MenuActions = {
/**
* @typedef {{host: string,
+ * is_default: boolean,
* protocol: string,
* spec: string}}
*/
let HandlerEntry;
/**
- * @typedef {{default_handler: number,
- * handlers: !Array<!HandlerEntry>,
- * has_policy_recommendations: boolean,
- * is_default_handler_set_by_user: boolean,
+ * @typedef {{handlers: !Array<!HandlerEntry>,
* protocol: string}}
*/
let ProtocolEntry;
@@ -52,7 +50,7 @@ Polymer({
/**
* The targetted object for menu operations.
- * @private {?Object}
+ * @private {?HandlerEntry}
*/
actionMenuModel_: Object,
@@ -60,6 +58,12 @@ Polymer({
toggleOffLabel: String,
toggleOnLabel: String,
+ /**
+ * Array of ignored (blocked) protocols.
+ * @type {!Array<!HandlerEntry>}
+ */
+ ignoredProtocols: Array,
+
// <if expr="chromeos">
/** @private */
settingsAppAvailable_: {
@@ -114,17 +118,6 @@ Polymer({
},
/**
- * Returns whether the given index matches the default handler.
- * @param {number} index The index to evaluate.
- * @param {number} defaultHandler The default handler index.
- * @return {boolean} Whether the item is default.
- * @private
- */
- isDefault_: function(index, defaultHandler) {
- return defaultHandler == index;
- },
-
- /**
* Updates the main toggle to set it enabled/disabled.
* @param {boolean} enabled The state to set.
* @private
@@ -144,13 +137,21 @@ Polymer({
/**
* Updates the list of ignored protocol handlers.
- * @param {!Array<!ProtocolEntry>} args The new (ignored) protocol handler
- * list.
+ * @param {!Array<!HandlerEntry>} ignoredProtocols The new (ignored) protocol
+ * handler list.
* @private
*/
- setIgnoredProtocolHandlers_: function(args) {
- // TODO(finnur): Figure this out. Have yet to be able to trigger the C++
- // side to send this.
+ setIgnoredProtocolHandlers_: function(ignoredProtocols) {
+ this.ignoredProtocols = ignoredProtocols;
+ },
+
+ /**
+ * Closes action menu and resets action menu model
+ * @private
+ */
+ closeActionMenu_: function() {
+ this.$$('dialog[is=cr-action-menu]').close();
+ this.actionMenuModel_ = null;
},
/**
@@ -165,45 +166,38 @@ Polymer({
* The handler for when "Set Default" is selected in the action menu.
* @private
*/
- onDefaultTap_: function() {
- const item = this.actionMenuModel_.item;
-
- this.$$('dialog[is=cr-action-menu]').close();
- this.actionMenuModel_ = null;
+ onDefaultClick_: function() {
+ const item = this.actionMenuModel_;
this.browserProxy.setProtocolDefault(item.protocol, item.spec);
+ this.closeActionMenu_();
},
/**
* The handler for when "Remove" is selected in the action menu.
* @private
*/
- onRemoveTap_: function() {
- const item = this.actionMenuModel_.item;
-
- this.$$('dialog[is=cr-action-menu]').close();
- this.actionMenuModel_ = null;
+ onRemoveClick_: function() {
+ const item = this.actionMenuModel_;
this.browserProxy.removeProtocolHandler(item.protocol, item.spec);
+ this.closeActionMenu_();
},
/**
- * Checks whether or not the selected actionMenuModel is the default handler
- * for its protocol.
- * @return {boolean} if actionMenuModel_ is default handler of its protocol.
+ * Handler for removing handlers that were blocked
+ * @private
*/
- isModelDefault_: function() {
- return !!this.actionMenuModel_ &&
- (this.actionMenuModel_.index ==
- this.actionMenuModel_.protocol.default_handler);
+ onRemoveIgnored_: function(event) {
+ const item = event.model.item;
+ this.browserProxy.removeProtocolHandler(item.protocol, item.spec);
},
/**
* A handler to show the action menu next to the clicked menu button.
- * @param {!{model: !{protocol: HandlerEntry, item: ProtocolEntry,
- * index: number}}} event
+ * @param {!{model: !{item: HandlerEntry}}} event
* @private
*/
showMenu_: function(event) {
- this.actionMenuModel_ = event.model;
+ this.actionMenuModel_ = event.model.item;
/** @type {!CrActionMenuElement} */ (this.$$('dialog[is=cr-action-menu]'))
.showAt(
/** @type {!Element} */ (
@@ -215,7 +209,7 @@ Polymer({
* Opens an activity to handle App links (preferred apps).
* @private
*/
- onManageAndroidAppsTap_: function() {
+ onManageAndroidAppsClick_: function() {
this.browserProxy.showAndroidManageAppLinks();
},
// </if>
diff --git a/chromium/chrome/browser/resources/settings/site_settings/site_data.html b/chromium/chrome/browser/resources/settings/site_settings/site_data.html
index c50d94123c3..a92719b376e 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/site_data.html
+++ b/chromium/chrome/browser/resources/settings/site_settings/site_data.html
@@ -25,7 +25,7 @@
}
paper-spinner-lite {
- @apply(--cr-icon-height-width);
+ @apply --cr-icon-height-width;
opacity: 0;
transition-delay: 1s;
}
@@ -46,7 +46,7 @@
<paper-spinner-lite active="[[isLoading_]]"></paper-spinner-lite>
<paper-button class="secondary-button"
disabled$="[[isLoading_]]" id="removeShowingSites"
- on-tap="onRemoveShowingSitesTap_" hidden$="[[!sites.length]]">
+ on-click="onRemoveShowingSitesTap_" hidden$="[[!sites.length]]">
[[computeRemoveLabel_(filter)]]
</paper-button>
</div>
@@ -54,7 +54,7 @@
scroll-target="[[subpageScrollTarget]]">
<template>
<div class="settings-box two-line site-item" first$="[[!index]]"
- on-tap="onSiteTap_" actionable>
+ on-click="onSiteTap_" actionable>
<div class="favicon-image"
style$="background-image: [[favicon_(item.site)]]">
</div>
@@ -67,7 +67,7 @@
<div class="separator"></div>
<button is="paper-icon-button-light" class="icon-delete-gray"
title$="[[i18n('siteSettingsCookieRemoveSite', item.site)]]"
- on-tap="onRemoveSiteTap_">
+ on-click="onRemoveSiteTap_">
</button>
</div>
</template>
@@ -81,10 +81,10 @@
</div>
<div slot="body">$i18n{siteSettingsCookieRemoveMultipleConfirmation}</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="onCloseDialog_">
+ <paper-button class="cancel-button" on-click="onCloseDialog_">
$i18n{cancel}
</paper-button>
- <paper-button class="action-button" on-tap="onConfirmDelete_">
+ <paper-button class="action-button" on-click="onConfirmDelete_">
$i18n{siteSettingsCookiesClearAll}
</paper-button>
</div>
diff --git a/chromium/chrome/browser/resources/settings/site_settings/site_data_details_subpage.html b/chromium/chrome/browser/resources/settings/site_settings/site_data_details_subpage.html
index 958e28f8cb5..aedab0ae6d3 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/site_data_details_subpage.html
+++ b/chromium/chrome/browser/resources/settings/site_settings/site_data_details_subpage.html
@@ -29,7 +29,7 @@
</cr-expand-button>
<div class="separator"></div>
<button is="paper-icon-button-light" data-id-path$="[[item.idPath]]"
- class="icon-clear" on-tap="onRemove_">
+ class="icon-clear" on-click="onRemove_">
</button>
</div>
<iron-collapse class="list-frame vertical-list"
diff --git a/chromium/chrome/browser/resources/settings/site_settings/site_details.html b/chromium/chrome/browser/resources/settings/site_settings/site_details.html
index 9a10a9ebf6b..b7f1908390e 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/site_details.html
+++ b/chromium/chrome/browser/resources/settings/site_settings/site_details.html
@@ -44,10 +44,10 @@
$i18n{siteSettingsSiteResetConfirmation}
</div>
<div slot="button-container">
- <paper-button class="cancel-button" on-tap="onCloseDialog_">
+ <paper-button class="cancel-button" on-click="onCloseDialog_">
$i18n{cancel}
</paper-button>
- <paper-button class="action-button" on-tap="onClearAndReset_">
+ <paper-button class="action-button" on-click="onClearAndReset_">
$i18n{siteSettingsSiteResetAll}
</paper-button>
</div>
@@ -66,7 +66,8 @@
<div class="list-item" id="storage" hidden$="[[!storedData_]]">
<div class="start">[[storedData_]]</div>
<button is="paper-icon-button-light" class="icon-delete-gray"
- on-tap="onConfirmClearStorage_" alt="$i18n{siteSettingsDelete}">
+ on-click="onConfirmClearStorage_"
+ aria-label="$i18n{siteSettingsDelete}">
</button>
</div>
</div>
@@ -89,6 +90,12 @@
icon="settings:mic" id="mic"
label="$i18n{siteSettingsMic}">
</site-details-permission>
+ <site-details-permission
+ category="{{ContentSettingsTypes.SENSORS}}"
+ icon="settings:sensors" id="sensors"
+ label="$i18n{siteSettingsSensors}"
+ hidden$="[[!enableSensorsContentSetting_]]">
+ </site-details-permission>
<site-details-permission category="{{ContentSettingsTypes.NOTIFICATIONS}}"
icon="settings:notifications" id="notifications"
label="$i18n{siteSettingsNotifications}">
@@ -132,12 +139,6 @@
id="midiDevices" label="$i18n{siteSettingsMidiDevices}">
</site-details-permission>
<site-details-permission
- category="{{ContentSettingsTypes.CLIPBOARD}}"
- icon="settings:clipboard" id="clipboard"
- label="$i18n{siteSettingsClipboard}"
- hidden$="[[!enableClipboardContentSetting_]]">
- </site-details-permission>
- <site-details-permission
category="{{ContentSettingsTypes.UNSANDBOXED_PLUGINS}}"
icon="cr:extension" id="unsandboxedPlugins"
label="$i18n{siteSettingsUnsandboxedPlugins}">
@@ -149,10 +150,16 @@
label="$i18n{siteSettingsProtectedContentIdentifiers}">
</site-details-permission>
</if>
+ <site-details-permission
+ category="{{ContentSettingsTypes.CLIPBOARD}}"
+ icon="settings:clipboard" id="clipboard"
+ label="$i18n{siteSettingsClipboard}"
+ hidden$="[[!enableClipboardContentSetting_]]">
+ </site-details-permission>
</div>
<div id="clearAndReset" class="settings-box"
- on-tap="onConfirmClearSettings_" actionable>
+ on-click="onConfirmClearSettings_" actionable>
<div class="start">
$i18n{siteSettingsReset}
</div>
diff --git a/chromium/chrome/browser/resources/settings/site_settings/site_details.js b/chromium/chrome/browser/resources/settings/site_settings/site_details.js
index 6d4f9c7c7db..73bd087ea10 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/site_details.js
+++ b/chromium/chrome/browser/resources/settings/site_settings/site_details.js
@@ -74,6 +74,15 @@ Polymer({
},
},
+ /** @private */
+ enableSensorsContentSetting_: {
+ type: Boolean,
+ readOnly: true,
+ value: function() {
+ return loadTimeData.getBoolean('enableSensorsContentSetting');
+ },
+ },
+
/**
* The type of storage for the origin.
* @private
@@ -236,6 +245,8 @@ Polymer({
onClearAndReset_: function() {
this.browserProxy.setOriginPermissions(
this.origin, this.getCategoryList_(), settings.ContentSetting.DEFAULT);
+ if (this.getCategoryList_().includes(settings.ContentSettingsTypes.PLUGINS))
+ this.browserProxy.clearFlashPref(this.origin);
if (this.storedData_ != '')
this.onClearStorage_();
diff --git a/chromium/chrome/browser/resources/settings/site_settings/site_list.html b/chromium/chrome/browser/resources/settings/site_settings/site_list.html
index 4f0141e4d32..9090d7df259 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/site_list.html
+++ b/chromium/chrome/browser/resources/settings/site_settings/site_list.html
@@ -30,29 +30,31 @@
<h2 class="start">[[categoryHeader]]</h2>
<paper-button id="addSite"
class="secondary-button header-aligned-button"
- hidden="[[readOnlyList]]" on-tap="onAddSiteTap_">
+ hidden="[[readOnlyList]]" on-click="onAddSiteTap_">
$i18n{add}
</paper-button>
</div>
<dialog is="cr-action-menu">
- <button class="dropdown-item" id="allow"
- on-tap="onAllowTap_" hidden$="[[!showAllowAction_]]">
+ <button slot="item" class="dropdown-item" id="allow"
+ on-click="onAllowTap_" hidden$="[[!showAllowAction_]]">
$i18n{siteSettingsActionAllow}
</button>
- <button class="dropdown-item" id="block"
- on-tap="onBlockTap_" hidden$="[[!showBlockAction_]]">
+ <button slot="item" class="dropdown-item" id="block"
+ on-click="onBlockTap_" hidden$="[[!showBlockAction_]]">
$i18n{siteSettingsActionBlock}
</button>
- <button class="dropdown-item" id="sessionOnly"
- on-tap="onSessionOnlyTap_"
+ <button slot="item" class="dropdown-item" id="sessionOnly"
+ on-click="onSessionOnlyTap_"
hidden$="[[!showSessionOnlyActionForSite_(actionMenuSite_)]]">
$i18n{siteSettingsActionSessionOnly}
</button>
- <button class="dropdown-item" id="edit" on-tap="onEditTap_">
+ <button slot="item" class="dropdown-item" id="edit"
+ on-click="onEditTap_">
$i18n{edit}
</button>
- <button class="dropdown-item" id="reset" on-tap="onResetTap_">
+ <button slot="item" class="dropdown-item" id="reset"
+ on-click="onResetTap_">
$i18n{siteSettingsActionReset}
</button>
</dialog>
@@ -64,7 +66,7 @@
<template is="dom-repeat" items="[[sites]]">
<div class="list-item">
<div class="settings-row"
- actionable$="[[enableSiteSettings_]]" on-tap="onOriginTap_">
+ actionable$="[[enableSiteSettings_]]" on-click="onOriginTap_">
<div class="favicon-image"
style$="[[computeSiteIcon(item.origin)]]">
</div>
@@ -76,7 +78,7 @@
id="siteDescription">[[computeSiteDescription_(item)]]</div>
</div>
<template is="dom-if" if="[[enableSiteSettings_]]">
- <div on-tap="onOriginTap_" actionable>
+ <div on-click="onOriginTap_" actionable>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label$="[[item.displayName]]"
aria-describedby="siteDescription"></button>
@@ -90,12 +92,12 @@
</cr-policy-pref-indicator>
</template>
<button is="paper-icon-button-light" id="resetSite"
- class="icon-delete-gray" on-tap="onResetButtonTap_"
+ class="icon-delete-gray" on-click="onResetButtonTap_"
hidden="[[shouldHideResetButton_(item, readOnlyList)]]"
- alt="$i18n{siteSettingsActionReset}">
+ aria-label="$i18n{siteSettingsActionReset}">
</button>
<button is="paper-icon-button-light" id="actionMenuButton"
- class="icon-more-vert" on-tap="onShowActionMenuTap_"
+ class="icon-more-vert" on-click="onShowActionMenuTap_"
hidden="[[shouldHideActionMenu_(item, readOnlyList)]]"
title="$i18n{moreActions}">
</button>
diff --git a/chromium/chrome/browser/resources/settings/site_settings/site_settings_prefs_browser_proxy.js b/chromium/chrome/browser/resources/settings/site_settings/site_settings_prefs_browser_proxy.js
index 81a019ec3c4..7974cfdf2a1 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/site_settings_prefs_browser_proxy.js
+++ b/chromium/chrome/browser/resources/settings/site_settings/site_settings_prefs_browser_proxy.js
@@ -137,6 +137,13 @@ cr.define('settings', function() {
setOriginPermissions(origin, contentTypes, blanketSetting) {}
/**
+ * Clears the flag that's set when the user has changed the Flash permission
+ * for this particular origin.
+ * @param {string} origin The origin to clear the Flash preference for.
+ */
+ clearFlashPref(origin) {}
+
+ /**
* Resets the category permission for a given origin (expressed as primary
* and secondary patterns). Only use this if intending to remove an
* exception - use setOriginPermissions() for origin-scoped settings.
@@ -307,6 +314,11 @@ cr.define('settings', function() {
}
/** @override */
+ clearFlashPref(origin) {
+ chrome.send('clearFlashPref', [origin]);
+ }
+
+ /** @override */
resetCategoryPermissionForPattern(
primaryPattern, secondaryPattern, contentType, incognito) {
chrome.send(
@@ -362,12 +374,12 @@ cr.define('settings', function() {
/** @override */
setProtocolDefault(protocol, url) {
- chrome.send('setDefault', [[protocol, url]]);
+ chrome.send('setDefault', [protocol, url]);
}
/** @override */
removeProtocolHandler(protocol, url) {
- chrome.send('removeHandler', [[protocol, url]]);
+ chrome.send('removeHandler', [protocol, url]);
}
/** @override */
diff --git a/chromium/chrome/browser/resources/settings/site_settings/usb_devices.html b/chromium/chrome/browser/resources/settings/site_settings/usb_devices.html
index 0d49492c635..9b4e5e046d2 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/usb_devices.html
+++ b/chromium/chrome/browser/resources/settings/site_settings/usb_devices.html
@@ -33,7 +33,7 @@
style$="[[computeSiteIcon(item.origin)]]"></div>
<div class="middle">[[item.origin]]</div>
- <button is="paper-icon-button-light" on-tap="showMenu_"
+ <button is="paper-icon-button-light" on-click="showMenu_"
class="icon-more-vert" title="$i18n{moreActions}">
</button>
</div>
@@ -41,7 +41,8 @@
</template>
<dialog is="cr-action-menu">
- <button id="removeButton" class="dropdown-item" on-tap="onRemoveTap_">
+ <button id="removeButton" slot="item" class="dropdown-item"
+ on-click="onRemoveTap_">
$i18n{handlerRemove}
</button>
</dialog>
diff --git a/chromium/chrome/browser/resources/settings/site_settings/zoom_levels.html b/chromium/chrome/browser/resources/settings/site_settings/zoom_levels.html
index e651cd9ad88..facdc237e3e 100644
--- a/chromium/chrome/browser/resources/settings/site_settings/zoom_levels.html
+++ b/chromium/chrome/browser/resources/settings/site_settings/zoom_levels.html
@@ -36,7 +36,7 @@
<div class="zoom-label">[[item.zoom]]</div>
<div>
<button is="paper-icon-button-light" class="icon-clear"
- on-tap="removeZoomLevel_"
+ on-click="removeZoomLevel_"
title="$i18n{siteSettingsRemoveZoomLevel}"></button>
</div>
</div>
diff --git a/chromium/chrome/browser/resources/settings/site_settings_page/site_settings_page.html b/chromium/chrome/browser/resources/settings/site_settings_page/site_settings_page.html
index c523b2f8536..37210d136c7 100644
--- a/chromium/chrome/browser/resources/settings/site_settings_page/site_settings_page.html
+++ b/chromium/chrome/browser/resources/settings/site_settings_page/site_settings_page.html
@@ -18,7 +18,7 @@
</style>
<template is="dom-if" if="[[enableSiteSettings_]]">
<div class="settings-box first" category$="[[ALL_SITES]]"
- data-route="SITE_SETTINGS_ALL" on-tap="onTapNavigate_" actionable>
+ data-route="SITE_SETTINGS_ALL" on-click="onTapNavigate_" actionable>
<iron-icon icon="settings:list"></iron-icon>
<div class="middle">$i18n{siteSettingsCategoryAllSites}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
@@ -29,7 +29,7 @@
</template>
<div id="cookies" class="settings-box two-line first"
category$="[[ContentSettingsTypes.COOKIES]]"
- data-route="SITE_SETTINGS_COOKIES" on-tap="onTapNavigate_" actionable>
+ data-route="SITE_SETTINGS_COOKIES" on-click="onTapNavigate_" actionable>
<iron-icon icon="settings:cookie"></iron-icon>
<div class="middle">
$i18n{siteSettingsCookies}
@@ -47,7 +47,8 @@
</div>
<div id="location" class="settings-box two-line"
category$="[[ContentSettingsTypes.GEOLOCATION]]"
- data-route="SITE_SETTINGS_LOCATION" on-tap="onTapNavigate_" actionable>
+ data-route="SITE_SETTINGS_LOCATION" on-click="onTapNavigate_"
+ actionable>
<iron-icon icon="settings:location-on"></iron-icon>
<div class="middle">
$i18n{siteSettingsLocation}
@@ -65,7 +66,7 @@
<div id="camera" class="settings-box two-line"
category$="[[ContentSettingsTypes.CAMERA]]"
data-route="SITE_SETTINGS_CAMERA"
- on-tap="onTapNavigate_" actionable>
+ on-click="onTapNavigate_" actionable>
<iron-icon icon="settings:videocam"></iron-icon>
<div class="middle">
$i18n{siteSettingsCamera}
@@ -82,7 +83,7 @@
</div>
<div id="microphone" class="settings-box two-line"
category$="[[ContentSettingsTypes.MIC]]"
- data-route="SITE_SETTINGS_MICROPHONE" on-tap="onTapNavigate_"
+ data-route="SITE_SETTINGS_MICROPHONE" on-click="onTapNavigate_"
actionable>
<iron-icon icon="settings:mic"></iron-icon>
<div class="middle">
@@ -98,9 +99,29 @@
aria-label="$i18n{siteSettingsMic}"
aria-describedby="micSecondary"></button>
</div>
+ <template is="dom-if" if="[[enableSensorsContentSetting_]]">
+ <div id="sensors" class="settings-box two-line"
+ category$="[[ContentSettingsTypes.SENSORS]]"
+ data-route="SITE_SETTINGS_SENSORS" on-click="onTapNavigate_"
+ actionable>
+ <iron-icon icon="settings:sensors"></iron-icon>
+ <div class="middle">
+ $i18n{siteSettingsSensors}
+ <div class="secondary" id="sensorsSecondary">
+ [[defaultSettingLabel_(
+ default_.sensors,
+ '$i18nPolymer{siteSettingsSensorsAllow}',
+ '$i18nPolymer{siteSettingsSensorsBlock}')]]
+ </div>
+ </div>
+ <button class="subpage-arrow" is="paper-icon-button-light"
+ aria-label="$i18n{siteSettingsSensors}"
+ aria-describedby="sensorsSecondary"></button>
+ </div>
+ </template>
<div id="notifications" class="settings-box two-line"
category$="[[ContentSettingsTypes.NOTIFICATIONS]]"
- data-route="SITE_SETTINGS_NOTIFICATIONS" on-tap="onTapNavigate_"
+ data-route="SITE_SETTINGS_NOTIFICATIONS" on-click="onTapNavigate_"
actionable>
<iron-icon icon="settings:notifications"></iron-icon>
<div class="middle">
@@ -118,7 +139,7 @@
</div>
<div id="javascript" class="settings-box two-line"
category$="[[ContentSettingsTypes.JAVASCRIPT]]"
- data-route="SITE_SETTINGS_JAVASCRIPT" on-tap="onTapNavigate_"
+ data-route="SITE_SETTINGS_JAVASCRIPT" on-click="onTapNavigate_"
actionable>
<iron-icon icon="settings:code"></iron-icon>
<div class="middle">
@@ -136,7 +157,7 @@
</div>
<div id="flash" class="settings-box two-line"
category$="[[ContentSettingsTypes.PLUGINS]]"
- data-route="SITE_SETTINGS_FLASH" on-tap="onTapNavigate_" actionable>
+ data-route="SITE_SETTINGS_FLASH" on-click="onTapNavigate_" actionable>
<iron-icon icon="cr:extension"></iron-icon>
<div class="middle">
$i18n{siteSettingsFlash}
@@ -153,7 +174,7 @@
</div>
<div id="images" class="settings-box two-line"
category$="[[ContentSettingsTypes.IMAGES]]"
- data-route="SITE_SETTINGS_IMAGES" on-tap="onTapNavigate_" actionable>
+ data-route="SITE_SETTINGS_IMAGES" on-click="onTapNavigate_" actionable>
<iron-icon icon="settings:photo"></iron-icon>
<div class="middle">
$i18n{siteSettingsImages}
@@ -170,7 +191,7 @@
</div>
<div id="popups" category$="[[ContentSettingsTypes.POPUPS]]"
class="settings-box two-line" data-route="SITE_SETTINGS_POPUPS"
- on-tap="onTapNavigate_" actionable>
+ on-click="onTapNavigate_" actionable>
<iron-icon icon="cr:open-in-new"></iron-icon>
<div class="middle">
$i18n{siteSettingsPopups}
@@ -188,7 +209,7 @@
<template is="dom-if" if="[[enableSafeBrowsingSubresourceFilter_]]">
<div id="ads" class="settings-box two-line"
category$="[[ContentSettingsTypes.ADS]]"
- data-route="SITE_SETTINGS_ADS" on-tap="onTapNavigate_"
+ data-route="SITE_SETTINGS_ADS" on-click="onTapNavigate_"
actionable>
<iron-icon icon="settings:ads"></iron-icon>
<div class="middle">
@@ -207,7 +228,7 @@
</template>
<div id="background-sync" class="settings-box two-line"
category$="[[ContentSettingsTypes.BACKGROUND_SYNC]]"
- data-route="SITE_SETTINGS_BACKGROUND_SYNC" on-tap="onTapNavigate_"
+ data-route="SITE_SETTINGS_BACKGROUND_SYNC" on-click="onTapNavigate_"
actionable>
<iron-icon icon="settings:sync"></iron-icon>
<div class="middle">
@@ -226,7 +247,7 @@
<template is="dom-if" if="[[enableSoundContentSetting_]]">
<div id="sound" class="settings-box two-line"
category$="[[ContentSettingsTypes.SOUND]]"
- data-route="SITE_SETTINGS_SOUND" on-tap="onTapNavigate_"
+ data-route="SITE_SETTINGS_SOUND" on-click="onTapNavigate_"
actionable>
<iron-icon icon="settings:volume-up"></iron-icon>
<div class="middle">
@@ -246,7 +267,7 @@
<div id="automatic-downloads" class="settings-box two-line"
category$="[[ContentSettingsTypes.AUTOMATIC_DOWNLOADS]]"
data-route="SITE_SETTINGS_AUTOMATIC_DOWNLOADS"
- on-tap="onTapNavigate_" actionable>
+ on-click="onTapNavigate_" actionable>
<iron-icon icon="cr:file-download"></iron-icon>
<div class="middle">
$i18n{siteSettingsAutomaticDownloads}
@@ -264,7 +285,7 @@
<div id="unsandboxed-plugins" class="settings-box two-line"
category$="[[ContentSettingsTypes.UNSANDBOXED_PLUGINS]]"
data-route="SITE_SETTINGS_UNSANDBOXED_PLUGINS"
- on-tap="onTapNavigate_" actionable>
+ on-click="onTapNavigate_" actionable>
<iron-icon icon="cr:extension"></iron-icon>
<div class="middle">
$i18n{siteSettingsUnsandboxedPlugins}
@@ -283,7 +304,7 @@
<div id="protocol-handlers" class="settings-box two-line"
category$="[[ContentSettingsTypes.PROTOCOL_HANDLERS]]"
data-route="SITE_SETTINGS_HANDLERS"
- on-tap="onTapNavigate_" actionable>
+ on-click="onTapNavigate_" actionable>
<iron-icon icon="settings:protocol-handler"></iron-icon>
<div class="middle">
$i18n{siteSettingsHandlers}
@@ -302,7 +323,7 @@
<div id="midi-devices" class="settings-box two-line"
category$="[[ContentSettingsTypes.MIDI_DEVICES]]"
data-route="SITE_SETTINGS_MIDI_DEVICES"
- on-tap="onTapNavigate_" actionable>
+ on-click="onTapNavigate_" actionable>
<iron-icon icon="settings:midi"></iron-icon>
<div class="middle">
$i18n{siteSettingsMidiDevices}
@@ -317,29 +338,9 @@
aria-label="$i18n{siteSettingsMidiDevices}"
aria-describedby="midiDevicesSecondary"></button>
</div>
- <template is="dom-if" if="[[enableClipboardContentSetting_]]">
- <div id="clipboard" class="settings-box two-line"
- category$="[[ContentSettingsTypes.CLIPBOARD]]"
- data-route="SITE_SETTINGS_CLIPBOARD" on-tap="onTapNavigate_"
- actionable>
- <iron-icon icon="settings:clipboard"></iron-icon>
- <div class="middle">
- $i18n{siteSettingsClipboard}
- <div class="secondary" id="clipboardSecondary">
- [[defaultSettingLabel_(
- default_.clipboard,
- '$i18nPolymer{siteSettingsAskBeforeAccessing}',
- '$i18nPolymer{siteSettingsBlocked}')]]
- </div>
- </div>
- <button class="subpage-arrow" is="paper-icon-button-light"
- aria-label="$i18n{siteSettingsClipboard}"
- aria-describedby="clipboardSecondary"></button>
- </div>
- </template>
<div id="zoom-levels" class="settings-box"
category$="[[ContentSettingsTypes.ZOOM_LEVELS]]"
- data-route="SITE_SETTINGS_ZOOM_LEVELS" on-tap="onTapNavigate_"
+ data-route="SITE_SETTINGS_ZOOM_LEVELS" on-click="onTapNavigate_"
actionable>
<iron-icon icon="settings:zoom-in"></iron-icon>
<div class="middle">$i18n{siteSettingsZoomLevels}</div>
@@ -348,7 +349,7 @@
</div>
<div id="usb-devices" class="settings-box"
category$="[[ContentSettingsTypes.USB_DEVICES]]"
- data-route="SITE_SETTINGS_USB_DEVICES" on-tap="onTapNavigate_"
+ data-route="SITE_SETTINGS_USB_DEVICES" on-click="onTapNavigate_"
actionable>
<iron-icon icon="settings:usb"></iron-icon>
<div class="middle">$i18n{siteSettingsUsbDevices}</div>
@@ -356,7 +357,7 @@
aria-label="$i18n{siteSettingsUsbDevices}"></button>
</div>
<div id="pdf-documents" class="settings-box"
- data-route="SITE_SETTINGS_PDF_DOCUMENTS" on-tap="onTapNavigate_"
+ data-route="SITE_SETTINGS_PDF_DOCUMENTS" on-click="onTapNavigate_"
actionable>
<iron-icon icon="settings:pdf"></iron-icon>
<div class="middle">$i18n{siteSettingsPdfDocuments}</div>
@@ -364,13 +365,33 @@
aria-label="$i18n{siteSettingsPdfDocuments}"></button>
</div>
<div id="protected-content" class="settings-box"
- data-route="SITE_SETTINGS_PROTECTED_CONTENT" on-tap="onTapNavigate_"
+ data-route="SITE_SETTINGS_PROTECTED_CONTENT" on-click="onTapNavigate_"
actionable>
<iron-icon icon="settings:security"></iron-icon>
<div class="middle">$i18n{siteSettingsProtectedContent}</div>
<button class="subpage-arrow" is="paper-icon-button-light"
aria-label="$i18n{siteSettingsProtectedContent}"></button>
</div>
+ <template is="dom-if" if="[[enableClipboardContentSetting_]]">
+ <div id="clipboard" class="settings-box two-line"
+ category$="[[ContentSettingsTypes.CLIPBOARD]]"
+ data-route="SITE_SETTINGS_CLIPBOARD" on-click="onTapNavigate_"
+ actionable>
+ <iron-icon icon="settings:clipboard"></iron-icon>
+ <div class="middle">
+ $i18n{siteSettingsClipboard}
+ <div class="secondary" id="clipboardSecondary">
+ [[defaultSettingLabel_(
+ default_.clipboard,
+ '$i18nPolymer{siteSettingsAskBeforeAccessing}',
+ '$i18nPolymer{siteSettingsBlocked}')]]
+ </div>
+ </div>
+ <button class="subpage-arrow" is="paper-icon-button-light"
+ aria-label="$i18n{siteSettingsClipboard}"
+ aria-describedby="clipboardSecondary"></button>
+ </div>
+ </template>
</template>
<script src="site_settings_page.js"></script>
</dom-module>
diff --git a/chromium/chrome/browser/resources/settings/site_settings_page/site_settings_page.js b/chromium/chrome/browser/resources/settings/site_settings_page/site_settings_page.js
index 0b1ce9dc1de..5a3b98d12af 100644
--- a/chromium/chrome/browser/resources/settings/site_settings_page/site_settings_page.js
+++ b/chromium/chrome/browser/resources/settings/site_settings_page/site_settings_page.js
@@ -67,6 +67,15 @@ Polymer({
}
},
+ /** @private */
+ enableSensorsContentSetting_: {
+ type: Boolean,
+ readOnly: true,
+ value: function() {
+ return loadTimeData.getBoolean('enableSensorsContentSetting');
+ }
+ },
+
/** @type {!Map<string, string>} */
focusConfig: {
type: Object,
@@ -105,6 +114,7 @@ Polymer({
[R.SITE_SETTINGS_PDF_DOCUMENTS, 'pdf-documents'],
[R.SITE_SETTINGS_PROTECTED_CONTENT, 'protected-content'],
[R.SITE_SETTINGS_CLIPBOARD, 'clipboard'],
+ [R.SITE_SETTINGS_SENSORS, 'sensors'],
].forEach(pair => {
const route = pair[0];
const id = pair[1];
diff --git a/chromium/chrome/browser/resources/settings/system_page/system_page.html b/chromium/chrome/browser/resources/settings/system_page/system_page.html
index 77bc47816f3..fb4ed5031ee 100644
--- a/chromium/chrome/browser/resources/settings/system_page/system_page.html
+++ b/chromium/chrome/browser/resources/settings/system_page/system_page.html
@@ -29,7 +29,7 @@
</paper-button>
</template>
</settings-toggle-button>
- <div id="proxy" class="settings-box" on-tap="onProxyTap_"
+ <div id="proxy" class="settings-box" on-click="onProxyTap_"
actionable$="[[!isProxyEnforcedByPolicy_]]">
<div class="start">$i18n{proxySettingsLabel}</div>
<button is="paper-icon-button-light" class="icon-external"