summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/ui
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-02-02 12:21:57 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2022-02-12 08:13:00 +0000
commit606d85f2a5386472314d39923da28c70c60dc8e7 (patch)
treea8f4d7bf997f349f45605e6058259fba0630e4d7 /chromium/chrome/browser/ui
parent5786336dda477d04fb98483dca1a5426eebde2d7 (diff)
BASELINE: Update Chromium to 96.0.4664.181
Change-Id: I762cd1da89d73aa6313b4a753fe126c34833f046 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/chrome/browser/ui')
-rw-r--r--chromium/chrome/browser/ui/BUILD.gn390
-rw-r--r--chromium/chrome/browser/ui/android/appmenu/BUILD.gn10
-rw-r--r--chromium/chrome/browser/ui/android/appmenu/internal/BUILD.gn6
-rw-r--r--chromium/chrome/browser/ui/android/appmenu/test/BUILD.gn1
-rw-r--r--chromium/chrome/browser/ui/android/autofill/internal/BUILD.gn42
-rw-r--r--chromium/chrome/browser/ui/android/management/BUILD.gn38
-rw-r--r--chromium/chrome/browser/ui/android/multiwindow/BUILD.gn8
-rw-r--r--chromium/chrome/browser/ui/android/night_mode/BUILD.gn61
-rw-r--r--chromium/chrome/browser/ui/android/omnibox/BUILD.gn44
-rw-r--r--chromium/chrome/browser/ui/android/quickactionsearchwidget/BUILD.gn10
-rw-r--r--chromium/chrome/browser/ui/android/searchactivityutils/BUILD.gn39
-rw-r--r--chromium/chrome/browser/ui/android/strings/android_chrome_strings.grd389
-rw-r--r--chromium/chrome/browser/ui/android/toolbar/BUILD.gn3
-rw-r--r--chromium/chrome/browser/ui/android/webid/BUILD.gn2
-rw-r--r--chromium/chrome/browser/ui/android/webid/internal/BUILD.gn6
-rw-r--r--chromium/chrome/browser/ui/app_list/search/ranking/BUILD.gn13
-rw-r--r--chromium/chrome/browser/ui/color/BUILD.gn54
-rw-r--r--chromium/chrome/browser/ui/webui/DEPS1
-rw-r--r--chromium/chrome/browser/ui/webui/about_ui.cc24
-rw-r--r--chromium/chrome/browser/ui/webui/about_ui.h15
-rw-r--r--chromium/chrome/browser/ui/webui/about_ui_unittest.cc19
-rw-r--r--chromium/chrome/browser/ui/webui/app_launcher_page_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/app_launcher_page_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/app_management/OWNERS4
-rw-r--r--chromium/chrome/browser/ui/webui/app_management/app_management.mojom43
-rw-r--r--chromium/chrome/browser/ui/webui/app_management/app_management_page_handler.cc130
-rw-r--r--chromium/chrome/browser/ui/webui/app_management/app_management_page_handler.h10
-rw-r--r--chromium/chrome/browser/ui/webui/app_management/app_management_shelf_delegate_chromeos.cc11
-rw-r--r--chromium/chrome/browser/ui/webui/app_management/app_management_shelf_delegate_chromeos.h7
-rw-r--r--chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals.mojom16
-rw-r--r--chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals_page_handler_impl.cc47
-rw-r--r--chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals_page_handler_impl.h1
-rw-r--r--chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui_browsertest.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/internals_ui_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/internals_ui_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/password_manager_internals_ui.h8
-rw-r--r--chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/password_manager_internals_ui_browsertest.cc3
-rw-r--r--chromium/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/bookmarks/bookmarks_browsertest.h7
-rw-r--r--chromium/chrome/browser/ui/webui/bookmarks/bookmarks_message_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/bookmarks/bookmarks_message_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/bookmarks/bookmarks_ui.h8
-rw-r--r--chromium/chrome/browser/ui/webui/browser_command/README (renamed from chromium/chrome/browser/ui/webui/new_tab_page/promo_browser_command/README)4
-rw-r--r--chromium/chrome/browser/ui/webui/browser_command/browser_command_handler.cc (renamed from chromium/chrome/browser/ui/webui/new_tab_page/promo_browser_command/promo_browser_command_handler.cc)42
-rw-r--r--chromium/chrome/browser/ui/webui/browser_command/browser_command_handler.h (renamed from chromium/chrome/browser/ui/webui/new_tab_page/promo_browser_command/promo_browser_command_handler.h)33
-rw-r--r--chromium/chrome/browser/ui/webui/browser_command/browser_command_handler_unittest.cc (renamed from chromium/chrome/browser/ui/webui/new_tab_page/promo_browser_command/promo_browser_command_handler_unittest.cc)59
-rw-r--r--chromium/chrome/browser/ui/webui/browser_switch/browser_switch_ui.cc34
-rw-r--r--chromium/chrome/browser/ui/webui/browser_switch/browser_switch_ui.h4
-rw-r--r--chromium/chrome/browser/ui/webui/certificate_provisioning_ui_handler.cc18
-rw-r--r--chromium/chrome/browser/ui/webui/certificate_provisioning_ui_handler_unittest.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/certificate_viewer_ui.cc3
-rw-r--r--chromium/chrome/browser/ui/webui/certificate_viewer_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/certificate_viewer_webui.cc14
-rw-r--r--chromium/chrome/browser/ui/webui/certificate_viewer_webui.h13
-rw-r--r--chromium/chrome/browser/ui/webui/certificates_handler.cc53
-rw-r--r--chromium/chrome/browser/ui/webui/certificates_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chrome_untrusted_web_ui_controller_factory.cc24
-rw-r--r--chromium/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc34
-rw-r--r--chromium/chrome/browser/ui/webui/chrome_web_contents_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc132
-rw-r--r--chromium/chrome/browser/ui/webui/chrome_web_ui_controller_factory.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_error_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_dialog.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_ui.h5
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_dialog.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_ui.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler_utils.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder_browsertest.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui.h11
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui_browsertest.cc21
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/OWNERS (renamed from chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/OWNER)0
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.cc76
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.h15
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler_unittest.cc55
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_ui.h4
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.cc21
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.h2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_ui.h11
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_utils.cc96
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_utils.h8
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog.cc97
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog.h55
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog_browsertest-inl.h5
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/bluetooth_shared_load_time_data_provider.cc68
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/cellular_setup/cellular_setup_localized_strings_provider.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_dialog.h8
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_ui.cc32
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_ui.h12
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/certificate_manager_dialog_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/crostini_installer/BUILD.gn2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_page_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.cc3
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_dialog_browsertest.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_page_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/cryptohome_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/cryptohome_web_ui_handler.cc34
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/cryptohome_web_ui_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/diagnostics_dialog.cc28
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/diagnostics_dialog.h19
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc40
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.h4
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_chromeos.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_chromeos.h1
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_unittest.cc22
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/COMMON_METADATA3
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/DIR_METADATA4
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_browsertest.cc13
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_chromeos.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/emoji/emoji_page_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/emoji/emoji_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.cc61
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/image_source.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/confirm_password_change_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/confirm_password_change_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_network_ui.cc21
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_reauth_handler.cc32
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_reauth_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_dialogs.h26
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_handler.h5
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_ui.h23
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/internet_config_dialog.h11
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/internet_detail_dialog.h11
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/launcher_internals/launcher_internals.mojom3
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/launcher_internals/launcher_internals_handler.cc1
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/active_directory_login_screen_handler.cc1
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/active_directory_password_change_screen_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/app_downloading_screen_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/app_downloading_screen_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.cc22
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.h12
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.h23
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/assistant_optin_flow_screen_handler.cc118
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/assistant_optin_flow_screen_handler.h27
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/auto_enrollment_check_screen_handler.h9
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/base_screen_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/base_webui_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/base_webui_handler.h14
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/consolidated_consent_screen_handler.cc161
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/consolidated_consent_screen_handler.h116
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/cookie_waiter.cc3
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc9
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/demo_preferences_screen_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/demo_setup_screen_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/device_disabled_screen_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/enable_adb_sideloading_screen_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/enable_debugging_screen_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.cc41
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h20
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/error_screen_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/eula_screen_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h9
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/fake_update_required_screen_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/fingerprint_setup_screen_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc118
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h13
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/guest_tos_screen_handler.cc71
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/guest_tos_screen_handler.h67
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/hid_detection_screen_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/js_calls_container_test_api.h5
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/kiosk_autolaunch_screen_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/kiosk_enable_screen_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/l10n_util.cc30
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/l10n_util.h9
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/l10n_util_test_util.h10
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/l10n_util_unittest.cc16
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.cc17
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.h19
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/multidevice_setup_screen_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/network_screen_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/online_login_helper.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser_browsertest.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser_unittest.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc198
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/oobe_ui.h12
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/os_install_screen_handler.cc55
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/os_install_screen_handler.h21
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/os_trial_screen_handler.cc63
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/os_trial_screen_handler.h70
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/pin_setup_screen_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/recommend_apps_screen_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/recommend_apps_screen_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/reset_screen_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.h3
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc75
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h20
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/signin_userlist_unittest.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/sync_consent_screen_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_browsertest.cc26
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_handler.cc22
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/tpm_error_screen_handler.cc25
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/tpm_error_screen_handler.h9
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/update_required_screen_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/update_screen_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/welcome_screen_handler.cc30
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/welcome_screen_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/wrong_hwid_screen_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_logs_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_phone_hub_handler.cc105
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_phone_hub_handler.h1
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.h11
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_handler.cc9
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/network_logs_message_handler.cc16
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/network_ui.cc81
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/network_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/onc_import_message_handler.cc9
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/parent_access/BUILD.gn9
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/parent_access/DIR_METADATA3
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/parent_access/OWNERS6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_dialog.cc70
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_dialog.h42
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.cc110
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.h49
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.mojom18
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui_handler_impl.cc71
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui_handler_impl.h61
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/power_ui.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/power_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/set_time_ui.cc20
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/set_time_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/slow_trace_ui.h10
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/slow_ui.cc13
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/slow_ui.h4
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_credentials_dialog.h11
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.cc46
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_share_dialog.h11
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/sync/os_sync_handler.cc14
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/sync/os_sync_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_message_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_message_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/system_web_dialog_browsertest.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/user_image_source.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/user_image_source.h7
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/video_source.h6
-rw-r--r--chromium/chrome/browser/ui/webui/commander/commander_handler.cc16
-rw-r--r--chromium/chrome/browser/ui/webui/commander/commander_ui.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/commander/commander_ui_browsertest.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/components/components_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/components/components_handler_unittest.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/components/components_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/conflicts/DIR_METADATA1
-rw-r--r--chromium/chrome/browser/ui/webui/conflicts/conflicts_data_fetcher.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/conflicts/conflicts_data_fetcher.h5
-rw-r--r--chromium/chrome/browser/ui/webui/conflicts/conflicts_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/conflicts/conflicts_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/conflicts/conflicts_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/connectors_internals/BUILD.gn10
-rw-r--r--chromium/chrome/browser/ui/webui/connectors_internals/OWNERS4
-rw-r--r--chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals.mojom20
-rw-r--r--chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_page_handler.cc58
-rw-r--r--chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_page_handler.h50
-rw-r--r--chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.cc55
-rw-r--r--chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h41
-rw-r--r--chromium/chrome/browser/ui/webui/connectors_internals/zero_trust_utils.cc116
-rw-r--r--chromium/chrome/browser/ui/webui/connectors_internals/zero_trust_utils.h24
-rw-r--r--chromium/chrome/browser/ui/webui/constrained_web_dialog_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/constrained_web_dialog_ui_browsertest.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/cookies_tree_model_util.cc185
-rw-r--r--chromium/chrome/browser/ui/webui/cookies_tree_model_util.h10
-rw-r--r--chromium/chrome/browser/ui/webui/cr_components/most_visited/most_visited_handler.cc3
-rw-r--r--chromium/chrome/browser/ui/webui/crashes_ui.cc26
-rw-r--r--chromium/chrome/browser/ui/webui/crashes_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/customize_themes/DIR_METADATA1
-rw-r--r--chromium/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler_unittest.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/device_log_ui.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/device_log_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/devtools_ui.h5
-rw-r--r--chromium/chrome/browser/ui/webui/devtools_ui_data_source.cc18
-rw-r--r--chromium/chrome/browser/ui/webui/devtools_ui_data_source.h10
-rw-r--r--chromium/chrome/browser/ui/webui/devtools_ui_data_source_unittest.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/discards/discards_ui.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/discards/discards_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/discards/graph_dump_impl.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/discards/graph_dump_impl.h6
-rw-r--r--chromium/chrome/browser/ui/webui/domain_reliability_internals_ui.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/domain_reliability_internals_ui.h15
-rw-r--r--chromium/chrome/browser/ui/webui/download_internals/download_internals_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/download_shelf/COMMON_METADATA3
-rw-r--r--chromium/chrome/browser/ui/webui/download_shelf/DIR_METADATA4
-rw-r--r--chromium/chrome/browser/ui/webui/download_shelf/download_mojom_traits.h5
-rw-r--r--chromium/chrome/browser/ui/webui/download_shelf/download_shelf.mojom2
-rw-r--r--chromium/chrome/browser/ui/webui/download_shelf/download_shelf_ui.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/downloads/downloads.mojom2
-rw-r--r--chromium/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/downloads/downloads_dom_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker.h6
-rw-r--r--chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker_unittest.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/downloads/downloads_ui.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/downloads/downloads_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/engagement/site_engagement_ui.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/engagement/site_engagement_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/explore_sites_internals/explore_sites_internals_page_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/explore_sites_internals/explore_sites_internals_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.cc18
-rw-r--r--chromium/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/extensions/extension_icon_source.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/extensions/extension_icon_source.h6
-rw-r--r--chromium/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/extensions/extension_settings_browsertest.h8
-rw-r--r--chromium/chrome/browser/ui/webui/extensions/extensions_internals_browsertest.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/extensions/extensions_ui.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_message_handler.cc24
-rw-r--r--chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_message_handler.h9
-rw-r--r--chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_ui.h8
-rw-r--r--chromium/chrome/browser/ui/webui/favicon_source.h5
-rw-r--r--chromium/chrome/browser/ui/webui/federated_learning/DIR_METADATA1
-rw-r--r--chromium/chrome/browser/ui/webui/feed_internals/feed_internals.mojom50
-rw-r--r--chromium/chrome/browser/ui/webui/feed_internals/feed_internals_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/feed_internals/feed_internals_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/feed_internals/feedv2_internals_page_handler.cc34
-rw-r--r--chromium/chrome/browser/ui/webui/feed_internals/feedv2_internals_page_handler.h9
-rw-r--r--chromium/chrome/browser/ui/webui/feedback/feedback_dialog.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/feedback/feedback_dialog.h6
-rw-r--r--chromium/chrome/browser/ui/webui/feedback/feedback_handler.cc18
-rw-r--r--chromium/chrome/browser/ui/webui/feedback/feedback_handler.h4
-rw-r--r--chromium/chrome/browser/ui/webui/feedback/feedback_ui.cc1
-rw-r--r--chromium/chrome/browser/ui/webui/fileicon_source.h6
-rw-r--r--chromium/chrome/browser/ui/webui/fileicon_source_unittest.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/flags/flags_ui.h12
-rw-r--r--chromium/chrome/browser/ui/webui/flags/flags_ui_handler.cc16
-rw-r--r--chromium/chrome/browser/ui/webui/flags/flags_ui_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/gcm_internals_ui.cc15
-rw-r--r--chromium/chrome/browser/ui/webui/gcm_internals_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/help/test_version_updater.h6
-rw-r--r--chromium/chrome/browser/ui/webui/help/version_updater_basic.h6
-rw-r--r--chromium/chrome/browser/ui/webui/help/version_updater_chromeos.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/help/version_updater_chromeos.h5
-rw-r--r--chromium/chrome/browser/ui/webui/help/version_updater_chromeos_unittest.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/help/version_updater_mac.h23
-rw-r--r--chromium/chrome/browser/ui/webui/help/version_updater_mac.mm158
-rw-r--r--chromium/chrome/browser/ui/webui/help/version_updater_win.h6
-rw-r--r--chromium/chrome/browser/ui/webui/history/DIR_METADATA4
-rw-r--r--chromium/chrome/browser/ui/webui/history/browsing_history_handler.cc15
-rw-r--r--chromium/chrome/browser/ui/webui/history/browsing_history_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/history/browsing_history_handler_unittest.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/history/foreign_session_handler.cc16
-rw-r--r--chromium/chrome/browser/ui/webui/history/foreign_session_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/history/history_login_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/history/history_login_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/history/history_ui.cc49
-rw-r--r--chromium/chrome/browser/ui/webui/history/history_ui.h8
-rw-r--r--chromium/chrome/browser/ui/webui/history/navigation_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/history/navigation_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/history_clusters/DIR_METADATA1
-rw-r--r--chromium/chrome/browser/ui/webui/history_clusters/history_clusters.mojom11
-rw-r--r--chromium/chrome/browser/ui/webui/history_clusters/history_clusters_handler.cc483
-rw-r--r--chromium/chrome/browser/ui/webui/history_clusters/history_clusters_handler.h40
-rw-r--r--chromium/chrome/browser/ui/webui/identity_internals_ui.cc13
-rw-r--r--chromium/chrome/browser/ui/webui/identity_internals_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/identity_internals_ui_browsertest.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/identity_internals_ui_browsertest.h8
-rw-r--r--chromium/chrome/browser/ui/webui/image_editor/editor_untrusted_source.cc107
-rw-r--r--chromium/chrome/browser/ui/webui/image_editor/editor_untrusted_source.h44
-rw-r--r--chromium/chrome/browser/ui/webui/image_editor/image_editor_ui.cc15
-rw-r--r--chromium/chrome/browser/ui/webui/image_editor/image_editor_ui.h5
-rw-r--r--chromium/chrome/browser/ui/webui/inspect_ui.cc40
-rw-r--r--chromium/chrome/browser/ui/webui/inspect_ui.h3
-rw-r--r--chromium/chrome/browser/ui/webui/inspect_ui_browsertest.cc20
-rw-r--r--chromium/chrome/browser/ui/webui/internals/lens/lens_internals_ui_message_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/internals/notifications/DIR_METADATA1
-rw-r--r--chromium/chrome/browser/ui/webui/internals/notifications/notifications_internals_ui_message_handler.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/internals/query_tiles/DIR_METADATA1
-rw-r--r--chromium/chrome/browser/ui/webui/internals/query_tiles/query_tiles_internals_ui_message_handler.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/internals/user_education/DIR_METADATA1
-rw-r--r--chromium/chrome/browser/ui/webui/internals/user_education/user_education_internals_page_handler_impl.cc35
-rw-r--r--chromium/chrome/browser/ui/webui/internals/user_education/user_education_internals_page_handler_impl.h6
-rw-r--r--chromium/chrome/browser/ui/webui/interstitials/DIR_METADATA1
-rw-r--r--chromium/chrome/browser/ui/webui/interstitials/interstitial_ui.cc42
-rw-r--r--chromium/chrome/browser/ui/webui/interstitials/interstitial_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/interstitials/interstitial_ui_browsertest.cc19
-rw-r--r--chromium/chrome/browser/ui/webui/invalidations/invalidations_message_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/invalidations/invalidations_message_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/invalidations/invalidations_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/local_state/local_state_ui.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/local_state/local_state_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/log_web_ui_url_browsertest.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/managed_ui_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/managed_ui_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/management/management_a11y_browsertest.h1
-rw-r--r--chromium/chrome/browser/ui/webui/management/management_ui.cc28
-rw-r--r--chromium/chrome/browser/ui/webui/management/management_ui.h9
-rw-r--r--chromium/chrome/browser/ui/webui/management/management_ui_browsertest.cc9
-rw-r--r--chromium/chrome/browser/ui/webui/management/management_ui_handler.cc65
-rw-r--r--chromium/chrome/browser/ui/webui/management/management_ui_handler.h19
-rw-r--r--chromium/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc87
-rw-r--r--chromium/chrome/browser/ui/webui/media/media_engagement_ui.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/media/media_engagement_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/media/webrtc_logs_ui.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/media/webrtc_logs_ui.h4
-rw-r--r--chromium/chrome/browser/ui/webui/media_router/cast_feedback_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/media_router/media_router_internals_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/media_router/media_router_internals_webui_message_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/memory_internals_ui.cc105
-rw-r--r--chromium/chrome/browser/ui/webui/memory_internals_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/metrics_handler.cc18
-rw-r--r--chromium/chrome/browser/ui/webui/metrics_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/nacl_ui.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/nacl_ui.h4
-rw-r--r--chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_contact_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_http_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_logs_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_prefs_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_ui_trigger_handler.cc26
-rw-r--r--chromium/chrome/browser/ui/webui/nearby_internals/quick_pair/quick_pair_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.cc44
-rw-r--r--chromium/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui_browsertest.cc101
-rw-r--r--chromium/chrome/browser/ui/webui/nearby_share/public/mojom/nearby_share_settings.mojom24
-rw-r--r--chromium/chrome/browser/ui/webui/net_export_ui.cc26
-rw-r--r--chromium/chrome/browser/ui/webui/net_export_ui.h4
-rw-r--r--chromium/chrome/browser/ui/webui/net_internals/net_internals_ui.cc33
-rw-r--r--chromium/chrome/browser/ui/webui/net_internals/net_internals_ui.h4
-rw-r--r--chromium/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc18
-rw-r--r--chromium/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.h6
-rw-r--r--chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom2
-rw-r--r--chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc11
-rw-r--r--chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc104
-rw-r--r--chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h28
-rw-r--r--chromium/chrome/browser/ui/webui/new_tab_page/webui_ntp_browsertest.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/ntp/app_icon_webui_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/ntp/app_icon_webui_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/ntp/app_launcher_handler.cc82
-rw-r--r--chromium/chrome/browser/ui/webui/ntp/app_launcher_handler.h12
-rw-r--r--chromium/chrome/browser/ui/webui/ntp/cookie_controls_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/ntp/cookie_controls_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/ntp/core_app_launcher_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/ntp/core_app_launcher_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/ntp/new_tab_ui.h12
-rw-r--r--chromium/chrome/browser/ui/webui/ntp/new_tab_ui_browsertest.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc40
-rw-r--r--chromium/chrome/browser/ui/webui/ntp/ntp_resource_cache.h6
-rw-r--r--chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc22
-rw-r--r--chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/offline/offline_internals_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/offline/offline_internals_ui_message_handler.cc40
-rw-r--r--chromium/chrome/browser/ui/webui/offline/offline_internals_ui_message_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/omnibox/DIR_METADATA1
-rw-r--r--chromium/chrome/browser/ui/webui/omnibox/omnibox_page_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/omnibox/omnibox_popup_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/omnibox/omnibox_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/omnibox/omnibox_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/page_not_available_for_guest/page_not_available_for_guest_ui.h5
-rw-r--r--chromium/chrome/browser/ui/webui/plural_string_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/plural_string_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/policy/policy_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/policy/policy_ui_browsertest.cc41
-rw-r--r--chromium/chrome/browser/ui/webui/policy/policy_ui_handler.cc90
-rw-r--r--chromium/chrome/browser/ui/webui/policy/policy_ui_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/predictors/DIR_METADATA1
-rw-r--r--chromium/chrome/browser/ui/webui/predictors/predictors_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/predictors/predictors_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/predictors/predictors_ui.h4
-rw-r--r--chromium/chrome/browser/ui/webui/prefs_internals_browsertest.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/prefs_internals_source.h6
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/cloud_print_signin.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/data_request_filter.cc102
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/data_request_filter.h40
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/data_request_filter_unittest.cc28
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/extension_printer_handler.h5
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/extension_printer_handler_unittest.cc22
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc70
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default.h7
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default_unittest.cc45
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler.h5
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler_win_unittest.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/policy_settings.h6
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/print_preview_handler.cc64
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_chromeos.cc20
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_unittest.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/print_preview_metrics.cc13
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/print_preview_metrics.h3
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/print_preview_ui.cc118
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/print_preview_ui.h30
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_browsertest.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_unittest.cc20
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_untrusted.cc40
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_untrusted.h37
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/print_preview_utils.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/profile_info_watcher.h6
-rw-r--r--chromium/chrome/browser/ui/webui/quota_internals/quota_internals_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/quota_internals/quota_internals_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.cc18
-rw-r--r--chromium/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h5
-rw-r--r--chromium/chrome/browser/ui/webui/quota_internals/quota_internals_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/quota_internals/quota_internals_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/read_later/read_later.mojom3
-rw-r--r--chromium/chrome/browser/ui/webui/read_later/read_later_page_handler.cc28
-rw-r--r--chromium/chrome/browser/ui/webui/read_later/read_later_page_handler.h3
-rw-r--r--chromium/chrome/browser/ui/webui/read_later/read_later_page_handler_unittest.cc73
-rw-r--r--chromium/chrome/browser/ui/webui/read_later/read_later_ui.cc20
-rw-r--r--chromium/chrome/browser/ui/webui/read_later/side_panel/bookmarks_page_handler.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/realbox/realbox.mojom21
-rw-r--r--chromium/chrome/browser/ui/webui/realbox/realbox_handler.cc97
-rw-r--r--chromium/chrome/browser/ui/webui/realbox/realbox_handler.h26
-rw-r--r--chromium/chrome/browser/ui/webui/realbox/realbox_handler_unittest.cc14
-rw-r--r--chromium/chrome/browser/ui/webui/reset_password/reset_password_ui.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/reset_password/reset_password_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/sandbox/DIR_METADATA5
-rw-r--r--chromium/chrome/browser/ui/webui/sandbox/sandbox_handler.cc22
-rw-r--r--chromium/chrome/browser/ui/webui/sandbox/sandbox_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/DIR_METADATA4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/about_handler.cc54
-rw-r--r--chromium/chrome/browser/ui/webui/settings/about_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/accessibility_main_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/appearance_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/appearance_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/captions_handler.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chrome_cleanup_handler_win.cc29
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chrome_cleanup_handler_win.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/DEPS6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/DIR_METADATA4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/about_section.cc38
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc136
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.h21
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler_browsertest.cc113
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_section.cc45
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler.cc33
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler_browsertest.cc25
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.cc86
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.h14
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler_unittest.cc114
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/app_management/DIR_METADATA6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/app_management/OWNERS4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.h8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_uma.h3
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/apps_section.cc41
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/bluetooth_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/bluetooth_section.cc72
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc55
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.h16
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/constants/BUILD.gn2
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/constants/routes_util.cc1
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/constants/setting.mojom3
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/crostini_handler.cc52
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/crostini_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/crostini_section.cc35
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/crostini_section.h1
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc86
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h13
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_display_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.h10
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler_unittest.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler.h13
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler_unittest.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc15
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.h12
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler_browsertest.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_section.cc15
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler_unittest.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc31
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc16
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/guest_os_handler.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc22
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler_unittest.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.cc24
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.h5
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/languages_section.cc14
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/main_section.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.cc91
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.h10
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler_unittest.cc37
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_section.cc91
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_section.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler.cc104
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler.h11
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler_unittest.cc196
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/mojom/app_notification_handler.mojom12
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_factory.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_unittest.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section.h12
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section_unittest.cc64
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_sections.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/parental_controls_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/parental_controls_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/people_section.cc13
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/peripheral_data_access_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/privacy_section.cc1
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/quick_unlock_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker_unittest.cc34
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/search_section.cc3
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/settings_user_action_tracker.h1
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/switch_access_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/tts_handler.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/tts_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/wallpaper_handler.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/settings/chromeos/wallpaper_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/custom_home_pages_table_model.h7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/downloads_handler.cc14
-rw-r--r--chromium/chrome/browser/ui/webui/settings/downloads_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/downloads_handler_unittest.cc3
-rw-r--r--chromium/chrome/browser/ui/webui/settings/extension_control_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/settings/extension_control_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/font_handler.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/settings/font_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/hats_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/hats_handler.h4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/hats_handler_unittest.cc56
-rw-r--r--chromium/chrome/browser/ui/webui/settings/import_data_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/import_data_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.h8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/languages_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/languages_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/native_certificates_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/settings/native_certificates_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/on_startup_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/on_startup_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/people_handler.cc76
-rw-r--r--chromium/chrome/browser/ui/webui/settings/people_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/people_handler_unittest.cc11
-rw-r--r--chromium/chrome/browser/ui/webui/settings/privacy_sandbox_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/privacy_sandbox_handler.h1
-rw-r--r--chromium/chrome/browser/ui/webui/settings/profile_info_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/profile_info_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.cc178
-rw-r--r--chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.h62
-rw-r--r--chromium/chrome/browser/ui/webui/settings/recent_site_settings_helper_unittest.cc32
-rw-r--r--chromium/chrome/browser/ui/webui/settings/reset_settings_handler.cc23
-rw-r--r--chromium/chrome/browser/ui/webui/settings/reset_settings_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/reset_settings_handler_unittest.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/safety_check_handler.cc22
-rw-r--r--chromium/chrome/browser/ui/webui/settings/safety_check_handler_unittest.cc18
-rw-r--r--chromium/chrome/browser/ui/webui/settings/search_engines_handler.cc39
-rw-r--r--chromium/chrome/browser/ui/webui/settings/search_engines_handler.h10
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.cc20
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc428
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc22
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler_unittest.cc53
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_page_ui_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler_browsertest.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_security_key_handler.cc74
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_ui.cc99
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_ui_browsertest.cc16
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_utils.h2
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_utils_linux.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/settings/settings_utils_win.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.cc17
-rw-r--r--chromium/chrome/browser/ui/webui/settings/site_settings_handler.cc139
-rw-r--r--chromium/chrome/browser/ui/webui/settings/site_settings_handler.h14
-rw-r--r--chromium/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc563
-rw-r--r--chromium/chrome/browser/ui/webui/settings/site_settings_helper.cc18
-rw-r--r--chromium/chrome/browser/ui/webui/settings/site_settings_helper.h1
-rw-r--r--chromium/chrome/browser/ui/webui/settings/site_settings_helper_unittest.cc25
-rw-r--r--chromium/chrome/browser/ui/webui/settings/system_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/settings/system_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/settings/url_handlers_handler.cc16
-rw-r--r--chromium/chrome/browser/ui/webui/settings/url_handlers_handler.h16
-rw-r--r--chromium/chrome/browser/ui/webui/settings/url_handlers_handler_unittest.cc28
-rw-r--r--chromium/chrome/browser/ui/webui/signin/DIR_METADATA4
-rw-r--r--chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc66
-rw-r--r--chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h17
-rw-r--r--chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.h8
-rw-r--r--chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_unittest.cc44
-rw-r--r--chromium/chrome/browser/ui/webui/signin/dice_web_signin_intercept_handler.cc21
-rw-r--r--chromium/chrome/browser/ui/webui/signin/enterprise_profile_welcome_handler.cc30
-rw-r--r--chromium/chrome/browser/ui/webui/signin/enterprise_profile_welcome_handler.h1
-rw-r--r--chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.h6
-rw-r--r--chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos_onboarding.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/signin/inline_login_handler.cc11
-rw-r--r--chromium/chrome/browser/ui/webui/signin/inline_login_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.h6
-rw-r--r--chromium/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/signin/inline_login_handler_impl.h12
-rw-r--r--chromium/chrome/browser/ui/webui/signin/inline_login_handler_modal_delegate.h8
-rw-r--r--chromium/chrome/browser/ui/webui/signin/inline_login_ui.cc9
-rw-r--r--chromium/chrome/browser/ui/webui/signin/inline_login_ui.h5
-rw-r--r--chromium/chrome/browser/ui/webui/signin/login_ui_service.h6
-rw-r--r--chromium/chrome/browser/ui/webui/signin/login_ui_service_factory.h5
-rw-r--r--chromium/chrome/browser/ui/webui/signin/login_ui_service_unittest.cc14
-rw-r--r--chromium/chrome/browser/ui/webui/signin/login_ui_test_utils.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/signin/login_ui_test_utils.h3
-rw-r--r--chromium/chrome/browser/ui/webui/signin/profile_creation_customize_themes_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/signin/profile_customization_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/signin/profile_picker_handler.cc100
-rw-r--r--chromium/chrome/browser/ui/webui/signin/profile_picker_handler.h13
-rw-r--r--chromium/chrome/browser/ui/webui/signin/profile_picker_ui.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_dialog.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_dialog.h6
-rw-r--r--chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_ui.h8
-rw-r--r--chromium/chrome/browser/ui/webui/signin/signin_error_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/signin/signin_error_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/signin/signin_error_handler_unittest.cc11
-rw-r--r--chromium/chrome/browser/ui/webui/signin/signin_error_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/signin/signin_helper_chromeos.cc11
-rw-r--r--chromium/chrome/browser/ui/webui/signin/signin_reauth_handler.cc8
-rw-r--r--chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler_unittest.cc14
-rw-r--r--chromium/chrome/browser/ui/webui/signin/sync_confirmation_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/signin_internals_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/support_tool_ui.cc34
-rw-r--r--chromium/chrome/browser/ui/webui/support_tool_ui.h22
-rw-r--r--chromium/chrome/browser/ui/webui/support_tool_ui_browsertest.cc31
-rw-r--r--chromium/chrome/browser/ui/webui/sync_file_system_internals/dump_database_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/sync_file_system_internals/dump_database_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_handler.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_ui.h8
-rw-r--r--chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.cc34
-rw-r--r--chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler_unittest.cc30
-rw-r--r--chromium/chrome/browser/ui/webui/sync_internals/sync_internals_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/sync_internals/sync_internals_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/system_info_ui.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/system_info_ui.h4
-rw-r--r--chromium/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc16
-rw-r--r--chromium/chrome/browser/ui/webui/tab_search/tab_search_page_handler.h8
-rw-r--r--chromium/chrome/browser/ui/webui/tab_strip/chrome_content_browser_client_tab_strip_part.h9
-rw-r--r--chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.cc21
-rw-r--r--chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.h1
-rw-r--r--chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler_unittest.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui.h5
-rw-r--r--chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_browsertest.cc14
-rw-r--r--chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_embedder.h4
-rw-r--r--chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_metrics.cc3
-rw-r--r--chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_util.cc40
-rw-r--r--chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_util.h15
-rw-r--r--chromium/chrome/browser/ui/webui/tab_strip/thumbnail_tracker.cc5
-rw-r--r--chromium/chrome/browser/ui/webui/test_data_source.cc18
-rw-r--r--chromium/chrome/browser/ui/webui/test_data_source.h6
-rw-r--r--chromium/chrome/browser/ui/webui/theme_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/theme_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/theme_source.h6
-rw-r--r--chromium/chrome/browser/ui/webui/translate_internals/chrome_translate_internals_handler.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/translate_internals/chrome_translate_internals_handler.h13
-rw-r--r--chromium/chrome/browser/ui/webui/translate_internals/translate_internals_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/usb_internals/usb_internals_page_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/usb_internals/usb_internals_ui.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/usb_internals/usb_internals_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/user_actions/user_actions_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/user_actions/user_actions_ui_handler.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/user_actions/user_actions_ui_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/version/version_handler.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/version/version_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/version/version_handler_chromeos.h6
-rw-r--r--chromium/chrome/browser/ui/webui/version/version_handler_win.h6
-rw-r--r--chromium/chrome/browser/ui/webui/version/version_ui.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/version/version_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/video_tutorials/DIR_METADATA5
-rw-r--r--chromium/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.cc58
-rw-r--r--chromium/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.h3
-rw-r--r--chromium/chrome/browser/ui/webui/web_dialog_web_contents_delegate_unittest.cc7
-rw-r--r--chromium/chrome/browser/ui/webui/web_ui_test_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/webapks/webapks_handler.cc4
-rw-r--r--chromium/chrome/browser/ui/webui/webapks/webapks_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/webapks/webapks_ui.h7
-rw-r--r--chromium/chrome/browser/ui/webui/webui_load_timer.cc3
-rw-r--r--chromium/chrome/browser/ui/webui/webui_load_timer.h6
-rw-r--r--chromium/chrome/browser/ui/webui/webui_load_timer_browsertest.cc2
-rw-r--r--chromium/chrome/browser/ui/webui/webui_webview_browsertest.cc63
-rw-r--r--chromium/chrome/browser/ui/webui/welcome/bookmark_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/welcome/bookmark_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/welcome/google_apps_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/welcome/google_apps_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/welcome/ntp_background_fetcher.h6
-rw-r--r--chromium/chrome/browser/ui/webui/welcome/ntp_background_handler.cc32
-rw-r--r--chromium/chrome/browser/ui/webui/welcome/ntp_background_handler.h7
-rw-r--r--chromium/chrome/browser/ui/webui/welcome/set_as_default_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/welcome/welcome_handler.cc6
-rw-r--r--chromium/chrome/browser/ui/webui/welcome/welcome_handler.h6
-rw-r--r--chromium/chrome/browser/ui/webui/welcome/welcome_ui.cc1
-rw-r--r--chromium/chrome/browser/ui/webui/welcome/welcome_ui.h6
-rw-r--r--chromium/chrome/browser/ui/webui/whats_new/whats_new_handler.cc104
-rw-r--r--chromium/chrome/browser/ui/webui/whats_new/whats_new_handler.h3
-rw-r--r--chromium/chrome/browser/ui/webui/whats_new/whats_new_ui.cc15
-rw-r--r--chromium/chrome/browser/ui/webui/whats_new/whats_new_ui.h20
-rw-r--r--chromium/chrome/browser/ui/webui/whats_new/whats_new_util.cc12
-rw-r--r--chromium/chrome/browser/ui/webui/whats_new/whats_new_util.h14
855 files changed, 10864 insertions, 6300 deletions
diff --git a/chromium/chrome/browser/ui/BUILD.gn b/chromium/chrome/browser/ui/BUILD.gn
index bd9a9f7eeee..7a4cce3c457 100644
--- a/chromium/chrome/browser/ui/BUILD.gn
+++ b/chromium/chrome/browser/ui/BUILD.gn
@@ -22,6 +22,7 @@ import("//components/offline_pages/buildflags/features.gni")
import("//components/signin/features.gni")
import("//device/vr/buildflags/buildflags.gni")
import("//extensions/buildflags/buildflags.gni")
+import("//pdf/features.gni")
import("//ppapi/buildflags/buildflags.gni")
import("//printing/buildflags/buildflags.gni")
import("//rlz/buildflags/buildflags.gni")
@@ -54,6 +55,18 @@ static_library("ui") {
"autofill/payments/autofill_error_dialog_controller_impl.cc",
"autofill/payments/autofill_error_dialog_controller_impl.h",
"autofill/payments/autofill_error_dialog_view.h",
+ "autofill/payments/autofill_progress_dialog_controller.h",
+ "autofill/payments/autofill_progress_dialog_controller_impl.cc",
+ "autofill/payments/autofill_progress_dialog_controller_impl.h",
+ "autofill/payments/autofill_progress_dialog_view.h",
+ "autofill/payments/card_unmask_authentication_selection_dialog_controller.h",
+ "autofill/payments/card_unmask_authentication_selection_dialog_controller_impl.cc",
+ "autofill/payments/card_unmask_authentication_selection_dialog_controller_impl.h",
+ "autofill/payments/card_unmask_authentication_selection_dialog_view.h",
+ "autofill/payments/card_unmask_otp_input_dialog_controller.h",
+ "autofill/payments/card_unmask_otp_input_dialog_controller_impl.cc",
+ "autofill/payments/card_unmask_otp_input_dialog_controller_impl.h",
+ "autofill/payments/card_unmask_otp_input_dialog_view.h",
"autofill/payments/create_card_unmask_prompt_view.h",
"autofill/payments/credit_card_scanner_controller.cc",
"autofill/payments/credit_card_scanner_controller.h",
@@ -295,6 +308,8 @@ static_library("ui") {
"webui/quota_internals/quota_internals_ui.h",
"webui/signin_internals_ui.cc",
"webui/signin_internals_ui.h",
+ "webui/support_tool_ui.cc",
+ "webui/support_tool_ui.h",
"webui/sync_internals/sync_internals_message_handler.cc",
"webui/sync_internals/sync_internals_message_handler.h",
"webui/sync_internals/sync_internals_ui.cc",
@@ -321,6 +336,10 @@ static_library("ui") {
"webui/webui_load_timer.h",
"webui/webui_util.cc",
"webui/webui_util.h",
+ "zoom/chrome_zoom_level_otr_delegate.cc",
+ "zoom/chrome_zoom_level_otr_delegate.h",
+ "zoom/chrome_zoom_level_prefs.cc",
+ "zoom/chrome_zoom_level_prefs.h",
]
if (enable_session_service) {
@@ -381,6 +400,8 @@ static_library("ui") {
"//chrome/browser:buildflags",
"//chrome/browser:dev_ui_browser_resources",
"//chrome/browser:resource_prefetch_predictor_proto",
+ "//chrome/browser/commerce:feature_list",
+ "//chrome/browser/commerce/shopping_list",
"//chrome/browser/devtools",
"//chrome/browser/image_decoder",
"//chrome/browser/media:mojo_bindings",
@@ -395,6 +416,7 @@ static_library("ui") {
"//chrome/browser/resources/net_internals:resources",
"//chrome/browser/resources/omnibox:resources",
"//chrome/browser/resources/quota_internals:resources",
+ "//chrome/browser/resources/support_tool:resources",
"//chrome/browser/resources/usb_internals:resources",
"//chrome/browser/safe_browsing",
"//chrome/browser/ui/webui/bluetooth_internals",
@@ -498,7 +520,6 @@ static_library("ui") {
"//components/payments/content:utils",
"//components/payments/content/icon",
"//components/payments/core:error_strings",
- "//components/pdf/browser",
"//components/performance_manager",
"//components/permissions",
"//components/policy/core/browser",
@@ -512,6 +533,7 @@ static_library("ui") {
"//components/renderer_context_menu",
"//components/resources",
"//components/safe_browsing/content/browser",
+ "//components/safe_browsing/content/browser:client_side_detection",
"//components/safe_browsing/content/browser/password_protection",
"//components/safe_browsing/content/browser/web_ui",
"//components/safe_browsing/core/browser/db:database_manager",
@@ -568,6 +590,7 @@ static_library("ui") {
"//components/web_resource",
"//components/webapps/browser",
"//components/webrtc_logging/browser",
+ "//components/zoom",
"//content/app/resources",
"//content/browser/webrtc/resources",
"//content/public/common",
@@ -642,6 +665,23 @@ static_library("ui") {
]
}
+ if (is_win || is_linux || is_mac || is_chromeos_ash) {
+ sources += [
+ "webui/connectors_internals/connectors_internals_page_handler.cc",
+ "webui/connectors_internals/connectors_internals_page_handler.h",
+ "webui/connectors_internals/connectors_internals_ui.cc",
+ "webui/connectors_internals/connectors_internals_ui.h",
+ "webui/connectors_internals/zero_trust_utils.cc",
+ "webui/connectors_internals/zero_trust_utils.h",
+ ]
+
+ deps += [
+ "//chrome/browser/enterprise/connectors/device_trust:features",
+ "//chrome/browser/enterprise/connectors/device_trust/attestation/common:types",
+ "//chrome/browser/ui/webui/connectors_internals:mojo_bindings",
+ ]
+ }
+
if (!is_fuchsia) {
deps += [ "//components/crash/core/app" ]
}
@@ -650,6 +690,8 @@ static_library("ui") {
sources += [
"android/android_about_app_info.cc",
"android/android_about_app_info.h",
+ "android/autofill/authenticator_selection_dialog_view_android.cc",
+ "android/autofill/authenticator_selection_dialog_view_android.h",
"android/autofill/autofill_error_dialog_view_android.cc",
"android/autofill/autofill_error_dialog_view_android.h",
"android/autofill/autofill_keyboard_accessory_view.cc",
@@ -658,6 +700,8 @@ static_library("ui") {
"android/autofill/autofill_logger_android.h",
"android/autofill/autofill_popup_view_android.cc",
"android/autofill/autofill_popup_view_android.h",
+ "android/autofill/autofill_progress_dialog_view_android.cc",
+ "android/autofill/autofill_progress_dialog_view_android.h",
"android/autofill/card_expiration_date_fix_flow_view_android.cc",
"android/autofill/card_expiration_date_fix_flow_view_android.h",
"android/autofill/card_name_fix_flow_view_android.cc",
@@ -666,6 +710,8 @@ static_library("ui") {
"android/autofill/card_unmask_prompt_view_android.h",
"android/autofill/credit_card_scanner_view_android.cc",
"android/autofill/credit_card_scanner_view_android.h",
+ "android/autofill/otp_verification_dialog_view_android.cc",
+ "android/autofill/otp_verification_dialog_view_android.h",
"android/autofill/save_card_controller_metrics_android.cc",
"android/autofill/save_card_controller_metrics_android.h",
"android/autofill/save_card_message_confirm_controller.cc",
@@ -824,6 +870,7 @@ static_library("ui") {
"//chrome/browser/ui/webui/explore_sites_internals:mojo_bindings",
"//chrome/browser/ui/webui/feed_internals:mojo_bindings",
"//components/browser_ui/client_certificate/android",
+ "//components/browser_ui/share/android",
"//components/browser_ui/util/android",
"//components/embedder_support/android:context_menu",
"//components/embedder_support/android:web_contents_delegate",
@@ -934,7 +981,6 @@ static_library("ui") {
"browser_window.h",
"browser_window_state.cc",
"browser_window_state.h",
- "caption_bubble_controller.h",
"chrome_pages.cc",
"chrome_pages.h",
"chrome_web_modal_dialog_manager_delegate.cc",
@@ -1017,24 +1063,15 @@ static_library("ui") {
"global_media_controls/cast_media_notification_producer.h",
"global_media_controls/cast_media_session_controller.cc",
"global_media_controls/cast_media_session_controller.h",
- "global_media_controls/media_dialog_delegate.cc",
- "global_media_controls/media_dialog_delegate.h",
- "global_media_controls/media_items_manager.h",
- "global_media_controls/media_notification_container_impl.h",
- "global_media_controls/media_notification_container_observer.h",
- "global_media_controls/media_notification_container_observer_set.cc",
- "global_media_controls/media_notification_container_observer_set.h",
"global_media_controls/media_notification_device_monitor.cc",
"global_media_controls/media_notification_device_monitor.h",
"global_media_controls/media_notification_device_provider.h",
"global_media_controls/media_notification_device_provider_impl.cc",
"global_media_controls/media_notification_device_provider_impl.h",
- "global_media_controls/media_notification_producer.h",
"global_media_controls/media_notification_service.cc",
"global_media_controls/media_notification_service.h",
"global_media_controls/media_notification_service_factory.cc",
"global_media_controls/media_notification_service_factory.h",
- "global_media_controls/media_notification_service_observer.h",
"global_media_controls/media_session_notification_item.cc",
"global_media_controls/media_session_notification_item.h",
"global_media_controls/media_session_notification_producer.cc",
@@ -1044,10 +1081,6 @@ static_library("ui") {
"global_media_controls/media_toolbar_button_controller_delegate.cc",
"global_media_controls/media_toolbar_button_controller_delegate.h",
"global_media_controls/media_toolbar_button_observer.h",
- "global_media_controls/overlay_media_notification.h",
- "global_media_controls/overlay_media_notifications_manager.h",
- "global_media_controls/overlay_media_notifications_manager_impl.cc",
- "global_media_controls/overlay_media_notifications_manager_impl.h",
"global_media_controls/presentation_request_notification_item.cc",
"global_media_controls/presentation_request_notification_item.h",
"global_media_controls/presentation_request_notification_producer.cc",
@@ -1326,18 +1359,14 @@ static_library("ui") {
"unload_controller.h",
"user_education/active_tab_tracker.cc",
"user_education/active_tab_tracker.h",
+ "user_education/feature_promo_bubble_params.cc",
+ "user_education/feature_promo_bubble_params.h",
"user_education/feature_promo_controller.cc",
"user_education/feature_promo_controller.h",
"user_education/feature_promo_snooze_service.cc",
"user_education/feature_promo_snooze_service.h",
"user_education/feature_promo_text_replacements.cc",
"user_education/feature_promo_text_replacements.h",
- "user_education/feature_tutorial_service.cc",
- "user_education/feature_tutorial_service.h",
- "user_education/feature_tutorial_service_factory.cc",
- "user_education/feature_tutorial_service_factory.h",
- "user_education/feature_tutorials.cc",
- "user_education/feature_tutorials.h",
"user_education/reopen_tab_in_product_help.cc",
"user_education/reopen_tab_in_product_help.h",
"user_education/reopen_tab_in_product_help_factory.cc",
@@ -1346,6 +1375,23 @@ static_library("ui") {
"user_education/reopen_tab_in_product_help_trigger.h",
"user_education/scoped_new_badge_tracker.cc",
"user_education/scoped_new_badge_tracker.h",
+ "user_education/tutorial/browser_tutorial_service_factory.h",
+ "user_education/tutorial/tutorial.cc",
+ "user_education/tutorial/tutorial.h",
+ "user_education/tutorial/tutorial_bubble.h",
+ "user_education/tutorial/tutorial_bubble_factory.cc",
+ "user_education/tutorial/tutorial_bubble_factory.h",
+ "user_education/tutorial/tutorial_bubble_factory_registry.cc",
+ "user_education/tutorial/tutorial_bubble_factory_registry.h",
+ "user_education/tutorial/tutorial_description.cc",
+ "user_education/tutorial/tutorial_description.h",
+ "user_education/tutorial/tutorial_identifier.h",
+ "user_education/tutorial/tutorial_registry.cc",
+ "user_education/tutorial/tutorial_registry.h",
+ "user_education/tutorial/tutorial_service.cc",
+ "user_education/tutorial/tutorial_service.h",
+ "user_education/tutorial/tutorial_service_manager.cc",
+ "user_education/tutorial/tutorial_service_manager.h",
"views/eye_dropper/eye_dropper.cc",
"views/eye_dropper/eye_dropper.h",
"views/eye_dropper/eye_dropper_view.cc",
@@ -1362,6 +1408,8 @@ static_library("ui") {
"webui/bookmarks/bookmarks_message_handler.h",
"webui/bookmarks/bookmarks_ui.cc",
"webui/bookmarks/bookmarks_ui.h",
+ "webui/browser_command/browser_command_handler.cc",
+ "webui/browser_command/browser_command_handler.h",
"webui/chrome_web_contents_handler.cc",
"webui/chrome_web_contents_handler.h",
"webui/commander/commander_handler.cc",
@@ -1417,6 +1465,8 @@ static_library("ui") {
"webui/history_clusters/history_clusters_handler.h",
"webui/identity_internals_ui.cc",
"webui/identity_internals_ui.h",
+ "webui/image_editor/editor_untrusted_source.cc",
+ "webui/image_editor/editor_untrusted_source.h",
"webui/image_editor/image_editor_ui.cc",
"webui/image_editor/image_editor_ui.h",
"webui/inspect_ui.cc",
@@ -1440,8 +1490,6 @@ static_library("ui") {
"webui/new_tab_page/new_tab_page_ui.h",
"webui/new_tab_page/ntp_pref_names.cc",
"webui/new_tab_page/ntp_pref_names.h",
- "webui/new_tab_page/promo_browser_command/promo_browser_command_handler.cc",
- "webui/new_tab_page/promo_browser_command/promo_browser_command_handler.h",
"webui/new_tab_page/untrusted_source.cc",
"webui/new_tab_page/untrusted_source.h",
"webui/new_tab_page_third_party/new_tab_page_third_party_handler.cc",
@@ -1594,10 +1642,6 @@ static_library("ui") {
"webui/whats_new/whats_new_util.h",
"window_sizer/window_sizer.cc",
"window_sizer/window_sizer.h",
- "zoom/chrome_zoom_level_otr_delegate.cc",
- "zoom/chrome_zoom_level_otr_delegate.h",
- "zoom/chrome_zoom_level_prefs.cc",
- "zoom/chrome_zoom_level_prefs.h",
]
if (is_chrome_branded) {
sources += [
@@ -1615,16 +1659,15 @@ static_library("ui") {
"//chrome/browser/cart:mojo_bindings",
"//chrome/browser/image_editor",
"//chrome/browser/media/router",
+ "//chrome/browser/new_tab_page/chrome_colors:generate_chrome_colors_info",
"//chrome/browser/new_tab_page/modules/drive:mojo_bindings",
"//chrome/browser/new_tab_page/modules/photos:mojo_bindings",
"//chrome/browser/new_tab_page/modules/task_module:mojo_bindings",
"//chrome/browser/profile_resetter:profile_reset_report_proto",
- "//chrome/browser/promo_browser_command:mojo_bindings",
"//chrome/browser/resource_coordinator:tab_metrics_event_proto",
"//chrome/browser/resource_coordinator/tab_ranker",
"//chrome/browser/safe_browsing:advanced_protection",
"//chrome/browser/ui/color:color_headers",
- "//chrome/browser/ui/color:mixers",
"//chrome/browser/ui/commander:fuzzy_finder",
"//chrome/browser/ui/webui/app_management:mojo_bindings",
"//chrome/browser/ui/webui/app_service_internals:mojo_bindings",
@@ -1633,7 +1676,6 @@ static_library("ui") {
"//chrome/browser/web_applications",
"//chrome/common:buildflags",
"//chrome/common:version_header",
- "//chrome/common/search:generate_chrome_colors_info",
"//chrome/common/search:mojo_bindings",
"//chrome/common/themes:autogenerated_theme_util",
"//components/enterprise/common:download_item_reroute_info",
@@ -1642,6 +1684,7 @@ static_library("ui") {
"//components/media_router/common/mojom:media_router",
"//components/network_session_configurator/common",
"//components/page_load_metrics/browser",
+ "//components/paint_preview/buildflags",
"//components/performance_manager:site_data_proto",
"//components/reading_list/features:flags",
"//components/safe_browsing/core/common:safe_browsing_policy_handler",
@@ -1656,7 +1699,6 @@ static_library("ui") {
"//components/vector_icons",
"//components/web_modal",
"//components/webauthn/content/browser",
- "//components/zoom",
"//device/bluetooth",
"//device/bluetooth/strings:strings_grit",
"//device/fido",
@@ -1671,6 +1713,7 @@ static_library("ui") {
"//ui/base/dragdrop:types",
"//ui/base/dragdrop/mojom",
"//ui/events",
+ "//ui/webui/resources/js/browser_command:mojo_bindings",
]
public_deps += [
"//build:branding_buildflags",
@@ -1722,7 +1765,10 @@ static_library("ui") {
"webui/family_link_user_internals/family_link_user_internals_ui.cc",
"webui/family_link_user_internals/family_link_user_internals_ui.h",
]
- deps += [ "//chrome/browser/supervised_user/supervised_user_error_page" ]
+ deps += [
+ "//chrome/browser/supervised_user/supervised_user_error_page",
+ "//chrome/browser/supervised_user/supervised_user_features",
+ ]
}
if (is_chromeos_ash) {
@@ -1819,16 +1865,16 @@ static_library("ui") {
"app_list/page_break_app_item.h",
"app_list/page_break_constants.cc",
"app_list/page_break_constants.h",
+ "app_list/reorder/app_list_reorder_delegate.cc",
+ "app_list/reorder/app_list_reorder_delegate.h",
+ "app_list/reorder/app_list_reorder_util.cc",
+ "app_list/reorder/app_list_reorder_util.h",
"app_list/search/app_result.cc",
"app_list/search/app_result.h",
"app_list/search/app_search_provider.cc",
"app_list/search/app_search_provider.h",
"app_list/search/app_service_app_result.cc",
"app_list/search/app_service_app_result.h",
- "app_list/search/arc/arc_app_data_search_provider.cc",
- "app_list/search/arc/arc_app_data_search_provider.h",
- "app_list/search/arc/arc_app_data_search_result.cc",
- "app_list/search/arc/arc_app_data_search_result.h",
"app_list/search/arc/arc_app_reinstall_app_result.cc",
"app_list/search/arc/arc_app_reinstall_app_result.h",
"app_list/search/arc/arc_app_reinstall_search_provider.cc",
@@ -1848,12 +1894,12 @@ static_library("ui") {
"app_list/search/arc/recommend_apps_fetcher_delegate.h",
"app_list/search/arc/recommend_apps_fetcher_impl.cc",
"app_list/search/arc/recommend_apps_fetcher_impl.h",
- "app_list/search/assistant_search_provider.cc",
- "app_list/search/assistant_search_provider.h",
"app_list/search/assistant_text_search_provider.cc",
"app_list/search/assistant_text_search_provider.h",
"app_list/search/chrome_search_result.cc",
"app_list/search/chrome_search_result.h",
+ "app_list/search/common/string_util.cc",
+ "app_list/search/common/string_util.h",
"app_list/search/common/types_util.cc",
"app_list/search/common/types_util.h",
"app_list/search/common/url_icon_source.cc",
@@ -1884,26 +1930,31 @@ static_library("ui") {
"app_list/search/omnibox_result.h",
"app_list/search/os_settings_provider.cc",
"app_list/search/os_settings_provider.h",
- "app_list/search/ranking/category_ranker.cc",
- "app_list/search/ranking/category_ranker.h",
+ "app_list/search/ranking/category_item_ranker.cc",
+ "app_list/search/ranking/category_item_ranker.h",
+ "app_list/search/ranking/category_usage_ranker.cc",
+ "app_list/search/ranking/category_usage_ranker.h",
"app_list/search/ranking/constants.h",
"app_list/search/ranking/filtering_ranker.cc",
"app_list/search/ranking/filtering_ranker.h",
"app_list/search/ranking/launch_data.cc",
"app_list/search/ranking/launch_data.h",
+ "app_list/search/ranking/mrfu_cache.cc",
+ "app_list/search/ranking/mrfu_cache.h",
+ "app_list/search/ranking/persistent_proto.h",
"app_list/search/ranking/ranker.h",
"app_list/search/ranking/ranker_delegate.cc",
"app_list/search/ranking/ranker_delegate.h",
+ "app_list/search/ranking/score_normalizer.cc",
+ "app_list/search/ranking/score_normalizer.h",
"app_list/search/ranking/score_normalizing_ranker.cc",
"app_list/search/ranking/score_normalizing_ranker.h",
"app_list/search/ranking/top_match_ranker.cc",
"app_list/search/ranking/top_match_ranker.h",
+ "app_list/search/ranking/types.cc",
+ "app_list/search/ranking/types.h",
"app_list/search/ranking/util.cc",
"app_list/search/ranking/util.h",
- "app_list/search/score_normalizer/balanced_reservoir.cc",
- "app_list/search/score_normalizer/balanced_reservoir.h",
- "app_list/search/score_normalizer/score_normalizer.cc",
- "app_list/search/score_normalizer/score_normalizer.h",
"app_list/search/search_controller.h",
"app_list/search/search_controller_factory.cc",
"app_list/search/search_controller_factory.h",
@@ -1963,10 +2014,6 @@ static_library("ui") {
"ash/assistant/assistant_web_view_factory_impl.h",
"ash/assistant/assistant_web_view_impl.cc",
"ash/assistant/assistant_web_view_impl.h",
- "ash/assistant/conversation_starters_client_impl.cc",
- "ash/assistant/conversation_starters_client_impl.h",
- "ash/assistant/conversation_starters_parser.cc",
- "ash/assistant/conversation_starters_parser.h",
"ash/assistant/device_actions.cc",
"ash/assistant/device_actions.h",
"ash/assistant/device_actions_delegate.h",
@@ -1982,20 +2029,20 @@ static_library("ui") {
"ash/calendar/calendar_keyed_service.h",
"ash/calendar/calendar_keyed_service_factory.cc",
"ash/calendar/calendar_keyed_service_factory.h",
+ "ash/capture_mode/chrome_capture_mode_delegate.cc",
+ "ash/capture_mode/chrome_capture_mode_delegate.h",
+ "ash/capture_mode/recording_overlay_view_impl.cc",
+ "ash/capture_mode/recording_overlay_view_impl.h",
"ash/cast_config_controller_media_router.cc",
"ash/cast_config_controller_media_router.h",
"ash/chrome_accessibility_delegate.cc",
"ash/chrome_accessibility_delegate.h",
"ash/chrome_browser_main_extra_parts_ash.cc",
"ash/chrome_browser_main_extra_parts_ash.h",
- "ash/chrome_capture_mode_delegate.cc",
- "ash/chrome_capture_mode_delegate.h",
"ash/chrome_new_window_client.cc",
"ash/chrome_new_window_client.h",
"ash/chrome_new_window_delegate_provider.cc",
"ash/chrome_new_window_delegate_provider.h",
- "ash/chrome_shelf_prefs.cc",
- "ash/chrome_shelf_prefs.h",
"ash/chrome_shell_delegate.cc",
"ash/chrome_shell_delegate.h",
"ash/clipboard_image_model_factory_impl.cc",
@@ -2077,6 +2124,8 @@ static_library("ui") {
"ash/network/tether_notification_presenter.h",
"ash/notification_badge_color_cache.cc",
"ash/notification_badge_color_cache.h",
+ "ash/projector/projector_app_client_impl.cc",
+ "ash/projector/projector_app_client_impl.h",
"ash/projector/projector_client_impl.cc",
"ash/projector/projector_client_impl.h",
"ash/quick_answers/quick_answers_browser_client_impl.cc",
@@ -2139,10 +2188,10 @@ static_library("ui") {
"ash/shelf/arc_playstore_shortcut_shelf_item_controller.h",
"ash/shelf/arc_shelf_spinner_item_controller.cc",
"ash/shelf/arc_shelf_spinner_item_controller.h",
- "ash/shelf/browser_app_status_observer.cc",
- "ash/shelf/browser_app_status_observer.h",
- "ash/shelf/browser_apps_tracker.cc",
- "ash/shelf/browser_apps_tracker.h",
+ "ash/shelf/browser_app_shelf_controller.cc",
+ "ash/shelf/browser_app_shelf_controller.h",
+ "ash/shelf/browser_app_shelf_item_controller.cc",
+ "ash/shelf/browser_app_shelf_item_controller.h",
"ash/shelf/browser_shortcut_shelf_item_controller.cc",
"ash/shelf/browser_shortcut_shelf_item_controller.h",
"ash/shelf/browser_status_monitor.cc",
@@ -2151,6 +2200,10 @@ static_library("ui") {
"ash/shelf/chrome_shelf_controller.h",
"ash/shelf/chrome_shelf_controller_util.cc",
"ash/shelf/chrome_shelf_controller_util.h",
+ "ash/shelf/chrome_shelf_item_factory.cc",
+ "ash/shelf/chrome_shelf_item_factory.h",
+ "ash/shelf/chrome_shelf_prefs.cc",
+ "ash/shelf/chrome_shelf_prefs.h",
"ash/shelf/crostini_app_display.cc",
"ash/shelf/crostini_app_display.h",
"ash/shelf/crostini_app_window.cc",
@@ -2175,6 +2228,10 @@ static_library("ui") {
"ash/shelf/shelf_spinner_controller.h",
"ash/shelf/shelf_spinner_item_controller.cc",
"ash/shelf/shelf_spinner_item_controller.h",
+ "ash/shelf/standalone_browser_extension_app_context_menu.cc",
+ "ash/shelf/standalone_browser_extension_app_context_menu.h",
+ "ash/shelf/standalone_browser_extension_app_shelf_item_controller.cc",
+ "ash/shelf/standalone_browser_extension_app_shelf_item_controller.h",
"ash/system_tray_client_impl.cc",
"ash/system_tray_client_impl.h",
"ash/tab_cluster_ui_client.cc",
@@ -2191,6 +2248,8 @@ static_library("ui") {
"ash/vpn_list_forwarder.h",
"ash/wallpaper_controller_client_impl.cc",
"ash/wallpaper_controller_client_impl.h",
+ "ash/window_pin_util.cc",
+ "ash/window_pin_util.h",
"ash/window_properties.cc",
"ash/window_properties.h",
"browser_commands_chromeos.cc",
@@ -2221,6 +2280,8 @@ static_library("ui") {
"views/crostini/crostini_ansible_software_config_view.h",
"views/crostini/crostini_app_restart_dialog.cc",
"views/crostini/crostini_app_restart_dialog.h",
+ "views/crostini/crostini_expired_container_warning_view.cc",
+ "views/crostini/crostini_expired_container_warning_view.h",
"views/crostini/crostini_force_close_view.cc",
"views/crostini/crostini_force_close_view.h",
"views/crostini/crostini_package_install_failure_view.cc",
@@ -2248,12 +2309,6 @@ static_library("ui") {
"views/profiles/profile_indicator_icon.h",
"views/relaunch_notification/relaunch_notification_controller_platform_impl_chromeos.cc",
"views/relaunch_notification/relaunch_notification_controller_platform_impl_chromeos.h",
- "web_applications/file_stream_data_pipe_getter.cc",
- "web_applications/file_stream_data_pipe_getter.h",
-
- # On chromeos, file manager extension handles the file open/save dialog.
- "tabs/existing_window_sub_menu_model_chromeos.cc",
- "tabs/existing_window_sub_menu_model_chromeos.h",
"views/select_file_dialog_extension.cc",
"views/select_file_dialog_extension.h",
"views/select_file_dialog_extension_factory.cc",
@@ -2266,6 +2321,12 @@ static_library("ui") {
"views/touch_selection_menu_chromeos.h",
"views/touch_selection_menu_runner_chromeos.cc",
"views/touch_selection_menu_runner_chromeos.h",
+ "views/web_apps/frame_toolbar/terminal_system_app_menu_button_chromeos.cc",
+ "views/web_apps/frame_toolbar/terminal_system_app_menu_button_chromeos.h",
+ "web_applications/file_stream_data_pipe_getter.cc",
+ "web_applications/file_stream_data_pipe_getter.h",
+ "web_applications/terminal_system_app_menu_model_chromeos.cc",
+ "web_applications/terminal_system_app_menu_model_chromeos.h",
"webui/app_management/app_management_shelf_delegate_chromeos.cc",
"webui/app_management/app_management_shelf_delegate_chromeos.h",
"webui/certificate_provisioning_ui_handler.cc",
@@ -2407,6 +2468,8 @@ static_library("ui") {
"webui/chromeos/login/base_screen_handler.h",
"webui/chromeos/login/base_webui_handler.cc",
"webui/chromeos/login/base_webui_handler.h",
+ "webui/chromeos/login/consolidated_consent_screen_handler.cc",
+ "webui/chromeos/login/consolidated_consent_screen_handler.h",
"webui/chromeos/login/cookie_waiter.cc",
"webui/chromeos/login/cookie_waiter.h",
"webui/chromeos/login/core_oobe_handler.cc",
@@ -2441,6 +2504,8 @@ static_library("ui") {
"webui/chromeos/login/gaia_screen_handler.h",
"webui/chromeos/login/gesture_navigation_screen_handler.cc",
"webui/chromeos/login/gesture_navigation_screen_handler.h",
+ "webui/chromeos/login/guest_tos_screen_handler.cc",
+ "webui/chromeos/login/guest_tos_screen_handler.h",
"webui/chromeos/login/hid_detection_screen_handler.cc",
"webui/chromeos/login/hid_detection_screen_handler.h",
"webui/chromeos/login/js_calls_container.cc",
@@ -2477,6 +2542,8 @@ static_library("ui") {
"webui/chromeos/login/oobe_ui.h",
"webui/chromeos/login/os_install_screen_handler.cc",
"webui/chromeos/login/os_install_screen_handler.h",
+ "webui/chromeos/login/os_trial_screen_handler.cc",
+ "webui/chromeos/login/os_trial_screen_handler.h",
"webui/chromeos/login/packaged_license_screen_handler.cc",
"webui/chromeos/login/packaged_license_screen_handler.h",
"webui/chromeos/login/parental_handoff_screen_handler.cc",
@@ -2531,6 +2598,12 @@ static_library("ui") {
"webui/chromeos/network_ui.h",
"webui/chromeos/onc_import_message_handler.cc",
"webui/chromeos/onc_import_message_handler.h",
+ "webui/chromeos/parent_access/parent_access_dialog.cc",
+ "webui/chromeos/parent_access/parent_access_dialog.h",
+ "webui/chromeos/parent_access/parent_access_ui.cc",
+ "webui/chromeos/parent_access/parent_access_ui.h",
+ "webui/chromeos/parent_access/parent_access_ui_handler_impl.cc",
+ "webui/chromeos/parent_access/parent_access_ui_handler_impl.h",
"webui/chromeos/power_ui.cc",
"webui/chromeos/power_ui.h",
"webui/chromeos/projector/selfie_cam_bubble_manager.cc",
@@ -2746,7 +2819,10 @@ static_library("ui") {
"//ash/assistant/util",
"//ash/components/account_manager",
"//ash/components/audio",
+ "//ash/components/drivefs",
+ "//ash/components/drivefs/mojom:mojom",
"//ash/components/pcie_peripheral",
+ "//ash/components/quick_answers",
"//ash/constants",
"//ash/keyboard/ui",
"//ash/public/cpp",
@@ -2758,7 +2834,12 @@ static_library("ui") {
"//ash/shortcut_viewer",
"//ash/webui/diagnostics_ui",
"//ash/webui/file_manager:file_manager_ui",
+ "//ash/webui/file_manager:file_manager_untrusted_ui",
+ "//ash/webui/help_app_ui",
+ "//ash/webui/help_app_ui/search:mojo_bindings",
+ "//ash/webui/media_app_ui",
"//ash/webui/os_feedback_ui",
+ "//ash/webui/print_management",
"//ash/webui/scanning",
"//ash/webui/shimless_rma",
"//ash/webui/shortcut_customization_ui",
@@ -2781,6 +2862,7 @@ static_library("ui") {
"//chrome/browser/resources:internet_detail_dialog_resources",
"//chrome/browser/resources/chromeos:multidevice_setup_resources",
"//chrome/browser/ui/app_list/search/cros_action_history:cros_action_proto",
+ "//chrome/browser/ui/app_list/search/ranking:proto",
"//chrome/browser/ui/app_list/search/search_result_ranker:app_launch_event_logger_proto",
"//chrome/browser/ui/app_list/search/search_result_ranker:app_launch_predictor_proto",
"//chrome/browser/ui/app_list/search/search_result_ranker:recurrence_ranker_proto",
@@ -2790,10 +2872,10 @@ static_library("ui") {
"//chrome/browser/ui/webui/chromeos/crostini_upgrader:mojo_bindings",
"//chrome/browser/ui/webui/chromeos/enterprise_casting:mojo_bindings",
"//chrome/browser/ui/webui/chromeos/launcher_internals:mojo_bindings",
+ "//chrome/browser/ui/webui/chromeos/parent_access:mojo_bindings",
"//chrome/browser/ui/webui/chromeos/vm:mojo_bindings",
"//chrome/browser/ui/webui/nearby_share:mojom",
"//chrome/browser/ui/webui/nearby_share/public/mojom",
- "//chrome/browser/ui/webui/settings/chromeos/constants:mojom",
"//chrome/browser/ui/webui/settings/chromeos/os_apps_page/mojom",
"//chrome/browser/ui/webui/settings/chromeos/search:mojo_bindings",
"//chrome/browser/web_applications",
@@ -2802,14 +2884,9 @@ static_library("ui") {
"//chromeos/assistant:buildflags",
"//chromeos/components/camera_app_ui",
"//chromeos/components/connectivity_diagnostics",
- "//chromeos/components/drivefs",
- "//chromeos/components/drivefs/mojom:mojom",
"//chromeos/components/eche_app_ui",
- "//chromeos/components/help_app_ui",
- "//chromeos/components/help_app_ui/search:mojo_bindings",
"//chromeos/components/local_search_service/public/cpp",
"//chromeos/components/local_search_service/public/mojom",
- "//chromeos/components/media_app_ui",
"//chromeos/components/multidevice",
"//chromeos/components/multidevice/debug_webui",
"//chromeos/components/multidevice/logging",
@@ -2820,10 +2897,8 @@ static_library("ui") {
"//chromeos/components/personalization_app/proto",
"//chromeos/components/phonehub",
"//chromeos/components/phonehub:debug",
- "//chromeos/components/print_management",
"//chromeos/components/projector_app",
"//chromeos/components/proximity_auth",
- "//chromeos/components/quick_answers",
"//chromeos/components/string_matching",
"//chromeos/components/tether",
"//chromeos/components/web_applications",
@@ -2858,6 +2933,8 @@ static_library("ui") {
"//chromeos/services/assistant/public/mojom",
"//chromeos/services/assistant/public/proto",
"//chromeos/services/assistant/public/shared",
+ "//chromeos/services/bluetooth_config",
+ "//chromeos/services/bluetooth_config/public/mojom",
"//chromeos/services/cellular_setup",
"//chromeos/services/cellular_setup/public/mojom",
"//chromeos/services/multidevice_setup",
@@ -2873,6 +2950,8 @@ static_library("ui") {
"//chromeos/ui/base",
"//chromeos/ui/frame",
"//chromeos/ui/vector_icons",
+ "//chromeos/ui/wm",
+ "//components/app_restore",
"//components/arc",
"//components/assist_ranker",
"//components/assist_ranker/proto",
@@ -2881,7 +2960,6 @@ static_library("ui") {
"//components/desks_storage",
"//components/digital_asset_links",
"//components/exo",
- "//components/full_restore",
"//components/login",
"//components/metrics/structured:structured_events",
"//components/services/app_service/public/cpp:app_file_handling",
@@ -2906,7 +2984,7 @@ static_library("ui") {
"//services/device/public/mojom",
"//services/media_session/public/mojom",
"//services/preferences/public/mojom",
- "//ui/base/ime/chromeos",
+ "//ui/base/ime/ash",
"//ui/chromeos",
"//ui/chromeos/events",
"//ui/chromeos/strings:strings_provider",
@@ -2936,9 +3014,9 @@ static_library("ui") {
]
}
deps += [
+ "//ash/webui/demo_mode_app_ui",
"//ash/webui/sample_system_web_app_ui",
- "//chromeos/components/demo_mode_app_ui",
- "//chromeos/components/telemetry_extension_ui",
+ "//ash/webui/telemetry_extension_ui",
]
}
@@ -2957,6 +3035,8 @@ static_library("ui") {
if (is_chromeos) {
sources += [
"platform_keys_certificate_selector_chromeos.h",
+ "tabs/existing_window_sub_menu_model_chromeos.cc",
+ "tabs/existing_window_sub_menu_model_chromeos.h",
"views/extensions/print_job_confirmation_dialog_view.cc",
"views/extensions/print_job_confirmation_dialog_view.h",
"views/frame/browser_frame_header_chromeos.cc",
@@ -2972,6 +3052,7 @@ static_library("ui") {
"views/platform_keys_certificate_selector_chromeos.h",
]
deps += [
+ "//chrome/app:generated_resources",
"//chromeos/strings",
"//components/account_manager_core:account_manager_core",
]
@@ -2995,9 +3076,14 @@ static_library("ui") {
"//chromeos/lacros",
"//chromeos/ui/base",
"//chromeos/ui/frame",
+ "//chromeos/ui/wm",
]
}
+ if (is_chromeos_ash || is_chromeos_lacros) {
+ deps += [ "//chrome/browser/ui/webui/settings/chromeos/constants:mojom" ]
+ }
+
if (is_win || is_mac || is_linux || is_chromeos || is_fuchsia) {
sources += [
"autofill/payments/virtual_card_selection_dialog_controller.h",
@@ -3018,8 +3104,8 @@ static_library("ui") {
"signin_view_controller.h",
"signin_view_controller_delegate.cc",
"signin_view_controller_delegate.h",
- "startup/web_app_protocol_handling_startup_utils.cc",
- "startup/web_app_protocol_handling_startup_utils.h",
+ "startup/web_app_startup_utils.cc",
+ "startup/web_app_startup_utils.h",
"tab_contents/chrome_web_contents_menu_helper.cc",
"tab_contents/chrome_web_contents_menu_helper.h",
"tab_contents/chrome_web_contents_view_handle_drop.cc",
@@ -3037,8 +3123,6 @@ static_library("ui") {
"views/hats/hats_next_web_dialog.h",
"views/profiles/incognito_menu_view.cc",
"views/profiles/incognito_menu_view.h",
- "views/profiles/profile_menu_view.cc",
- "views/profiles/profile_menu_view.h",
"views/profiles/profile_menu_view_base.cc",
"views/profiles/profile_menu_view_base.h",
"views/profiles/signin_view_controller_delegate_views.cc",
@@ -3076,6 +3160,15 @@ static_library("ui") {
]
}
+ if (is_win || is_mac || is_fuchsia || is_linux) {
+ sources += [
+ "webui/app_launcher_page_ui.cc",
+ "webui/app_launcher_page_ui.h",
+ "webui/browser_switch/browser_switch_ui.cc",
+ "webui/browser_switch/browser_switch_ui.h",
+ ]
+ }
+
if (is_win || is_mac || is_fuchsia || (is_linux || is_chromeos_lacros)) {
sources += [
"profile_picker.cc",
@@ -3088,21 +3181,19 @@ static_library("ui") {
"startup/default_browser_prompt.h",
"views/profiles/badged_profile_photo.cc",
"views/profiles/badged_profile_photo.h",
+ "views/profiles/profile_menu_view.cc",
+ "views/profiles/profile_menu_view.h",
"views/profiles/profile_picker_force_signin_dialog_delegate.cc",
"views/profiles/profile_picker_force_signin_dialog_delegate.h",
"views/profiles/profile_picker_force_signin_dialog_host.cc",
"views/profiles/profile_picker_force_signin_dialog_host.h",
- "views/profiles/profile_picker_sign_in_flow_controller.cc",
- "views/profiles/profile_picker_sign_in_flow_controller.h",
+ "views/profiles/profile_picker_signed_in_flow_controller.cc",
+ "views/profiles/profile_picker_signed_in_flow_controller.h",
"views/profiles/profile_picker_turn_sync_on_delegate.cc",
"views/profiles/profile_picker_turn_sync_on_delegate.h",
"views/profiles/profile_picker_view.cc",
"views/profiles/profile_picker_view.h",
"views/profiles/profile_picker_web_contents_host.h",
- "webui/app_launcher_page_ui.cc",
- "webui/app_launcher_page_ui.h",
- "webui/browser_switch/browser_switch_ui.cc",
- "webui/browser_switch/browser_switch_ui.h",
"webui/profile_helper.cc",
"webui/profile_helper.h",
"webui/settings/settings_default_browser_handler.cc",
@@ -3111,6 +3202,10 @@ static_library("ui") {
"webui/settings/settings_manage_profile_handler.h",
"webui/settings/system_handler.cc",
"webui/settings/system_handler.h",
+ "webui/signin/dice_turn_sync_on_helper.cc",
+ "webui/signin/dice_turn_sync_on_helper.h",
+ "webui/signin/dice_turn_sync_on_helper_delegate_impl.cc",
+ "webui/signin/dice_turn_sync_on_helper_delegate_impl.h",
"webui/signin/enterprise_profile_welcome_handler.cc",
"webui/signin/enterprise_profile_welcome_handler.h",
"webui/signin/enterprise_profile_welcome_ui.cc",
@@ -3160,7 +3255,7 @@ static_library("ui") {
]
deps += [
- "//chrome/common/search:generate_colors_info",
+ "//chrome/browser/new_tab_page/chrome_colors:generate_colors_info",
"//components/country_codes",
]
@@ -3179,14 +3274,14 @@ static_library("ui") {
"views/profiles/profile_customization_bubble_sync_controller.h",
"views/profiles/profile_customization_bubble_view.cc",
"views/profiles/profile_customization_bubble_view.h",
+ "views/profiles/profile_picker_dice_sign_in_provider.cc",
+ "views/profiles/profile_picker_dice_sign_in_provider.h",
+ "views/profiles/profile_picker_dice_sign_in_toolbar.cc",
+ "views/profiles/profile_picker_dice_sign_in_toolbar.h",
"views/sync/dice_bubble_sync_promo_view.cc",
"views/sync/dice_bubble_sync_promo_view.h",
"views/sync/dice_signin_button_view.cc",
"views/sync/dice_signin_button_view.h",
- "webui/signin/dice_turn_sync_on_helper.cc",
- "webui/signin/dice_turn_sync_on_helper.h",
- "webui/signin/dice_turn_sync_on_helper_delegate_impl.cc",
- "webui/signin/dice_turn_sync_on_helper_delegate_impl.h",
"webui/signin/dice_web_signin_intercept_handler.cc",
"webui/signin/dice_web_signin_intercept_handler.h",
"webui/signin/dice_web_signin_intercept_ui.cc",
@@ -3305,24 +3400,6 @@ static_library("ui") {
"cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm",
"cocoa/scoped_menu_bar_lock.h",
"cocoa/scoped_menu_bar_lock.mm",
- "cocoa/screentime/fake_webpage_controller.h",
- "cocoa/screentime/fake_webpage_controller.mm",
- "cocoa/screentime/history_bridge.h",
- "cocoa/screentime/history_bridge.mm",
- "cocoa/screentime/history_bridge_factory.h",
- "cocoa/screentime/history_bridge_factory.mm",
- "cocoa/screentime/history_deleter.h",
- "cocoa/screentime/history_deleter_impl.h",
- "cocoa/screentime/history_deleter_impl.mm",
- "cocoa/screentime/screentime_features.cc",
- "cocoa/screentime/screentime_features.h",
- "cocoa/screentime/screentime_policy.cc",
- "cocoa/screentime/screentime_policy.h",
- "cocoa/screentime/tab_helper.h",
- "cocoa/screentime/tab_helper.mm",
- "cocoa/screentime/webpage_controller.h",
- "cocoa/screentime/webpage_controller_impl.h",
- "cocoa/screentime/webpage_controller_impl.mm",
"cocoa/share_menu_controller.h",
"cocoa/share_menu_controller.mm",
"cocoa/simple_message_box_cocoa.h",
@@ -3389,7 +3466,6 @@ static_library("ui") {
"Carbon.framework",
"Quartz.framework",
]
- weak_frameworks = [ "ScreenTime.framework" ]
if (enable_chromium_updater) {
deps += [
@@ -3581,7 +3657,8 @@ static_library("ui") {
]
}
- if (use_dbus && (use_x11 || ozone_platform_x11)) {
+ # TODO(1239521): ozone_platform_x11 should not be leaked outside ozone.
+ if (use_dbus && ozone_platform_x11) {
sources += [
"views/frame/dbus_appmenu.cc",
"views/frame/dbus_appmenu.h",
@@ -3698,8 +3775,8 @@ static_library("ui") {
# This test header is included because it contains forward declarations
# needed for "friend" statements for use in tests.
"translate/translate_bubble_test_utils.h",
- "views/accessibility/caption_bubble_controller_views.cc",
- "views/accessibility/caption_bubble_controller_views.h",
+ "views/accessibility/caption_bubble_context_views.cc",
+ "views/accessibility/caption_bubble_context_views.h",
"views/accessibility/caret_browsing_dialog_delegate.cc",
"views/accessibility/caret_browsing_dialog_delegate.h",
"views/accessibility/non_accessible_image_view.cc",
@@ -3742,6 +3819,12 @@ static_library("ui") {
"views/autofill/edit_address_profile_view.h",
"views/autofill/payments/autofill_error_dialog_view_native_views.cc",
"views/autofill/payments/autofill_error_dialog_view_native_views.h",
+ "views/autofill/payments/autofill_progress_dialog_views.cc",
+ "views/autofill/payments/autofill_progress_dialog_views.h",
+ "views/autofill/payments/card_unmask_authentication_selection_dialog_views.cc",
+ "views/autofill/payments/card_unmask_authentication_selection_dialog_views.h",
+ "views/autofill/payments/card_unmask_otp_input_dialog_views.cc",
+ "views/autofill/payments/card_unmask_otp_input_dialog_views.h",
"views/autofill/payments/card_unmask_prompt_views.cc",
"views/autofill/payments/card_unmask_prompt_views.h",
"views/autofill/payments/dialog_view_ids.h",
@@ -3761,6 +3844,8 @@ static_library("ui") {
"views/autofill/payments/offer_notification_icon_view.h",
"views/autofill/payments/payments_view_util.cc",
"views/autofill/payments/payments_view_util.h",
+ "views/autofill/payments/promo_code_label_button.cc",
+ "views/autofill/payments/promo_code_label_button.h",
"views/autofill/payments/save_card_bubble_views.cc",
"views/autofill/payments/save_card_bubble_views.h",
"views/autofill/payments/save_card_failure_bubble_views.cc",
@@ -3911,6 +3996,8 @@ static_library("ui") {
"views/extensions/extensions_toolbar_button.h",
"views/extensions/extensions_toolbar_container.cc",
"views/extensions/extensions_toolbar_container.h",
+ "views/extensions/extensions_toolbar_controls.cc",
+ "views/extensions/extensions_toolbar_controls.h",
"views/file_system_access/file_system_access_icon_view.cc",
"views/file_system_access/file_system_access_icon_view.h",
"views/file_system_access/file_system_access_permission_view.cc",
@@ -3997,8 +4084,6 @@ static_library("ui") {
"views/global_media_controls/media_notification_list_view.h",
"views/global_media_controls/media_toolbar_button_view.cc",
"views/global_media_controls/media_toolbar_button_view.h",
- "views/global_media_controls/overlay_media_notification_view.cc",
- "views/global_media_controls/overlay_media_notification_view.h",
"views/hover_button.cc",
"views/hover_button.h",
"views/hover_button_controller.cc",
@@ -4229,8 +4314,6 @@ static_library("ui") {
"views/payments/error_message_view_controller.h",
"views/payments/order_summary_view_controller.cc",
"views/payments/order_summary_view_controller.h",
- "views/payments/payment_credential_enrollment_dialog_view.cc",
- "views/payments/payment_credential_enrollment_dialog_view.h",
"views/payments/payment_handler_modal_dialog_manager_delegate.cc",
"views/payments/payment_handler_modal_dialog_manager_delegate.h",
"views/payments/payment_handler_web_flow_view_controller.cc",
@@ -4328,6 +4411,8 @@ static_library("ui") {
"views/sharing_hub/screenshot/screenshot_captured_bubble.h",
"views/sharing_hub/sharing_hub_bubble_action_button.cc",
"views/sharing_hub/sharing_hub_bubble_action_button.h",
+ "views/sharing_hub/sharing_hub_bubble_util.cc",
+ "views/sharing_hub/sharing_hub_bubble_util.h",
"views/sharing_hub/sharing_hub_bubble_view_impl.cc",
"views/sharing_hub/sharing_hub_bubble_view_impl.h",
"views/sharing_hub/sharing_hub_icon_view.cc",
@@ -4473,14 +4558,11 @@ static_library("ui") {
"views/translate/translate_icon_view.h",
"views/update_recommended_message_box.cc",
"views/update_recommended_message_box.h",
+ "views/user_education/browser_tutorial_service_factory.cc",
"views/user_education/feature_promo_bubble_owner.cc",
"views/user_education/feature_promo_bubble_owner.h",
"views/user_education/feature_promo_bubble_owner_impl.cc",
"views/user_education/feature_promo_bubble_owner_impl.h",
- "views/user_education/feature_promo_bubble_params.cc",
- "views/user_education/feature_promo_bubble_params.h",
- "views/user_education/feature_promo_bubble_timeout.cc",
- "views/user_education/feature_promo_bubble_timeout.h",
"views/user_education/feature_promo_bubble_view.cc",
"views/user_education/feature_promo_bubble_view.h",
"views/user_education/feature_promo_colors.cc",
@@ -4489,16 +4571,12 @@ static_library("ui") {
"views/user_education/feature_promo_controller_views.h",
"views/user_education/feature_promo_registry.cc",
"views/user_education/feature_promo_registry.h",
- "views/user_education/feature_tutorial_description.cc",
- "views/user_education/feature_tutorial_description.h",
- "views/user_education/feature_tutorial_registry.cc",
- "views/user_education/feature_tutorial_registry.h",
- "views/user_education/feature_tutorial_service_views.cc",
- "views/user_education/feature_tutorial_service_views.h",
"views/user_education/new_badge_label.cc",
"views/user_education/new_badge_label.h",
"views/user_education/tip_marquee_view.cc",
"views/user_education/tip_marquee_view.h",
+ "views/user_education/tutorial_bubble_factory_views.cc",
+ "views/user_education/tutorial_bubble_factory_views.h",
"views/web_apps/frame_toolbar/web_app_content_settings_container.cc",
"views/web_apps/frame_toolbar/web_app_content_settings_container.h",
"views/web_apps/frame_toolbar/web_app_frame_toolbar_utils.cc",
@@ -4586,6 +4664,7 @@ static_library("ui") {
"//components/constrained_window",
"//components/content_settings/browser/ui",
"//components/fullscreen_control",
+ "//components/global_media_controls",
"//components/live_caption",
"//components/media_message_center",
"//components/page_info",
@@ -4650,6 +4729,13 @@ static_library("ui") {
]
}
+ if (is_win || is_linux) {
+ sources += [
+ "views/bluetooth_device_credentials_view.cc",
+ "views/bluetooth_device_credentials_view.h",
+ ]
+ }
+
if (is_mac) {
sources += [
"views/apps/app_window_native_widget_mac.h",
@@ -4746,7 +4832,24 @@ static_library("ui") {
deps += [ "//ui/views/window/vector_icons" ]
}
+ if (is_chromeos_ash) {
+ deps += [
+ "//components/metrics/structured:neutrino_logging",
+ "//components/metrics/structured:neutrino_logging_util",
+ ]
+ }
+
if (is_chrome_branded) {
+ sources += [
+ "lens/lens_side_panel_helper.h",
+ "views/lens/lens_region_search_instructions_view.cc",
+ "views/lens/lens_region_search_instructions_view.h",
+ "views/lens/lens_side_panel_controller.cc",
+ "views/lens/lens_side_panel_controller.h",
+ "views/lens/lens_side_panel_helper.cc",
+ "views/lens/lens_side_panel_view.cc",
+ "views/lens/lens_side_panel_view.h",
+ ]
deps += [ "//chrome/browser/ui/media_router/internal/vector_icons" ]
}
}
@@ -4938,6 +5041,10 @@ static_library("ui") {
deps += [ "//components/nacl/browser" ]
}
+ if (enable_pdf) {
+ deps += [ "//components/pdf/browser" ]
+ }
+
if (enable_plugins) {
sources += [
"hung_plugin_tab_helper.cc",
@@ -4951,14 +5058,13 @@ static_library("ui") {
"//components/printing/browser",
"//printing",
]
- if (use_cups) {
- configs += [ "//printing:cups" ]
- }
}
if (enable_print_preview) {
sources += [
"webui/print_preview/cloud_print_signin.cc",
"webui/print_preview/cloud_print_signin.h",
+ "webui/print_preview/data_request_filter.cc",
+ "webui/print_preview/data_request_filter.h",
"webui/print_preview/extension_printer_handler.cc",
"webui/print_preview/extension_printer_handler.h",
"webui/print_preview/pdf_printer_handler.cc",
@@ -4971,6 +5077,8 @@ static_library("ui") {
"webui/print_preview/print_preview_metrics.h",
"webui/print_preview/print_preview_ui.cc",
"webui/print_preview/print_preview_ui.h",
+ "webui/print_preview/print_preview_ui_untrusted.cc",
+ "webui/print_preview/print_preview_ui_untrusted.h",
"webui/print_preview/print_preview_utils.cc",
"webui/print_preview/print_preview_utils.h",
"webui/print_preview/printer_handler.cc",
@@ -4981,6 +5089,8 @@ static_library("ui") {
"//chrome/services/printing/public/mojom",
"//components/printing/common:mojo_interfaces",
"//components/services/print_compositor/public/mojom",
+ "//printing/backend",
+ "//printing/buildflags",
"//printing/mojom",
"//services/device/public/cpp/usb",
"//services/device/public/mojom:usb",
@@ -5092,6 +5202,23 @@ static_library("ui") {
"webui/tab_strip/thumbnail_tracker.h",
]
}
+
+ if (enable_side_search) {
+ sources += [
+ "side_search/side_search_metrics.cc",
+ "side_search/side_search_metrics.h",
+ "side_search/side_search_prefs.cc",
+ "side_search/side_search_prefs.h",
+ "side_search/side_search_side_contents_helper.cc",
+ "side_search/side_search_side_contents_helper.h",
+ "side_search/side_search_tab_contents_helper.cc",
+ "side_search/side_search_tab_contents_helper.h",
+ "side_search/side_search_utils.cc",
+ "side_search/side_search_utils.h",
+ "views/side_search/side_search_browser_controller.cc",
+ "views/side_search/side_search_browser_controller.h",
+ ]
+ }
}
# In GYP this is part of test_support_common.
@@ -5124,6 +5251,7 @@ static_library("test_support") {
"//components/permissions",
"//components/sessions",
"//components/translate/content/browser",
+ "//components/zoom",
"//content/public/browser",
"//content/public/common",
"//content/test:test_support",
@@ -5210,7 +5338,6 @@ static_library("test_support") {
"//components/signin/core/browser",
"//components/signin/public/identity_manager",
"//components/ukm:test_support",
- "//components/zoom",
"//services/metrics/public/mojom",
]
}
@@ -5219,6 +5346,8 @@ static_library("test_support") {
sources += [
"ash/ash_test_util.cc",
"ash/ash_test_util.h",
+ "ash/shelf/chrome_shelf_controller_test_util.cc",
+ "ash/shelf/chrome_shelf_controller_test_util.h",
"ash/test_login_screen.cc",
"ash/test_login_screen.h",
"ash/test_login_screen_model.cc",
@@ -5261,4 +5390,7 @@ if (is_android) {
java_cpp_enum("tab_model_enums_java") {
sources = [ "android/tab_model/tab_model.h" ]
}
+ java_cpp_enum("duplicate_download_enums_java") {
+ sources = [ "android/infobars/duplicate_download_infobar.h" ]
+ }
}
diff --git a/chromium/chrome/browser/ui/android/appmenu/BUILD.gn b/chromium/chrome/browser/ui/android/appmenu/BUILD.gn
index 77e1eeec46b..828dd525990 100644
--- a/chromium/chrome/browser/ui/android/appmenu/BUILD.gn
+++ b/chromium/chrome/browser/ui/android/appmenu/BUILD.gn
@@ -13,14 +13,19 @@ android_library("java") {
"java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuCoordinator.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuDelegate.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandler.java",
+ "java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuItemProperties.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuObserver.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuPropertiesDelegate.java",
+ "java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuUtil.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/CustomViewBinder.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/MenuButtonDelegate.java",
]
deps = [
+ ":java_resources",
+ "//base:base_java",
"//chrome/browser/android/lifecycle:java",
"//third_party/androidx:androidx_annotation_annotation_java",
+ "//ui/android:ui_java",
]
resources_package = "org.chromium.chrome.browser.ui.appmenu"
}
@@ -38,7 +43,10 @@ android_library_factory("factory_java") {
}
android_resources("java_resources") {
- sources = [ "java/res/values/styles.xml" ]
+ sources = [
+ "java/res/values/ids.xml",
+ "java/res/values/styles.xml",
+ ]
deps = [
"//components/browser_ui/styles/android:java_resources",
"//ui/android:ui_java_resources",
diff --git a/chromium/chrome/browser/ui/android/appmenu/internal/BUILD.gn b/chromium/chrome/browser/ui/android/appmenu/internal/BUILD.gn
index c6e18f19c14..3a8362a6175 100644
--- a/chromium/chrome/browser/ui/android/appmenu/internal/BUILD.gn
+++ b/chromium/chrome/browser/ui/android/appmenu/internal/BUILD.gn
@@ -13,13 +13,13 @@ android_library("java") {
sources = [
"java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java",
- "java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuAdapter.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuButtonHelperImpl.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuCoordinatorFactory.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuCoordinatorImpl.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuDragHelper.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuItemIcon.java",
+ "java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuItemViewBinder.java",
]
deps = [
@@ -45,7 +45,6 @@ android_resources("java_resources") {
"java/res/layout/menu_item_start_with_icon.xml",
"java/res/layout/title_button_menu_item.xml",
"java/res/values/dimens.xml",
- "java/res/values/ids.xml",
]
# Include resource dependencies needed by :java so that resources may
@@ -61,8 +60,7 @@ android_library("javatests") {
resources_package = "org.chromium.chrome.browser.ui.appmenu.test"
sources = [
- "java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuAdapterRenderTest.java",
- "java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuAdapterTest.java",
+ "java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuItemViewBinderTest.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuTest.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/TestAppMenuDelegate.java",
"java/src/org/chromium/chrome/browser/ui/appmenu/TestAppMenuPropertiesDelegate.java",
diff --git a/chromium/chrome/browser/ui/android/appmenu/test/BUILD.gn b/chromium/chrome/browser/ui/android/appmenu/test/BUILD.gn
index 4e07f816be4..33992e39c8d 100644
--- a/chromium/chrome/browser/ui/android/appmenu/test/BUILD.gn
+++ b/chromium/chrome/browser/ui/android/appmenu/test/BUILD.gn
@@ -16,5 +16,6 @@ android_library("test_support_java") {
"//base:base_java_test_support",
"//chrome/browser/ui/android/appmenu:java",
"//chrome/browser/ui/android/appmenu/internal:java",
+ "//ui/android:ui_no_recycler_view_java",
]
}
diff --git a/chromium/chrome/browser/ui/android/autofill/internal/BUILD.gn b/chromium/chrome/browser/ui/android/autofill/internal/BUILD.gn
index 655e5340a1d..533010e88a2 100644
--- a/chromium/chrome/browser/ui/android/autofill/internal/BUILD.gn
+++ b/chromium/chrome/browser/ui/android/autofill/internal/BUILD.gn
@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
android_library("java") {
@@ -9,13 +10,25 @@ android_library("java") {
":*",
"//chrome/android:chrome_all_java",
]
- sources = [ "java/src/org/chromium/chrome/browser/ui/autofill/AutofillErrorDialogBridge.java" ]
+ sources = [
+ "java/src/org/chromium/chrome/browser/ui/autofill/AuthenticatorOptionsAdapter.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/AuthenticatorSelectionDialog.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/AuthenticatorSelectionDialogBridge.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/AutofillErrorDialogBridge.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/AutofillProgressDialogBridge.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/OtpVerificationDialog.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/OtpVerificationDialogBridge.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/data/AuthenticatorOption.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/data/CardUnmaskChallengeOptionType.java",
+ ]
deps = [
":java_resources",
":jni_headers",
"//base:base_java",
"//base:jni_java",
+ "//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_core_core_java",
+ "//third_party/androidx:androidx_recyclerview_recyclerview_java",
"//ui/android:ui_java",
]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
@@ -27,22 +40,35 @@ generate_jni("jni_headers") {
":*",
"//chrome/browser/ui:ui",
]
- sources = [ "java/src/org/chromium/chrome/browser/ui/autofill/AutofillErrorDialogBridge.java" ]
+ sources = [
+ "java/src/org/chromium/chrome/browser/ui/autofill/AuthenticatorSelectionDialogBridge.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/AutofillErrorDialogBridge.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/AutofillProgressDialogBridge.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/OtpVerificationDialogBridge.java",
+ ]
}
android_library("junit") {
# Skip platform checks since Robolectric depends on requires_android targets.
bypass_platform_checks = true
testonly = true
- sources = [ "java/src/org/chromium/chrome/browser/ui/autofill/AutofillErrorDialogBridgeTest.java" ]
+ sources = [
+ "java/src/org/chromium/chrome/browser/ui/autofill/AuthenticatorSelectionDialogBridgeTest.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/AuthenticatorSelectionDialogTest.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/AutofillErrorDialogBridgeTest.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/AutofillProgressDialogBridgeTest.java",
+ "java/src/org/chromium/chrome/browser/ui/autofill/OtpVerificationDialogTest.java",
+ ]
deps = [
":java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
"//base/test:test_support_java",
+ "//third_party/androidx:androidx_recyclerview_recyclerview_java",
"//third_party/androidx:androidx_test_core_java",
"//third_party/androidx:androidx_test_runner_java",
+ "//third_party/google-truth:google_truth_java",
"//third_party/junit:junit",
"//third_party/mockito:mockito_java",
"//ui/android:ui_full_java",
@@ -50,7 +76,15 @@ android_library("junit") {
}
android_resources("java_resources") {
- sources = [ "java/res/layout/autofill_error_dialog.xml" ]
+ sources = [
+ "java/res/layout/authenticator_option.xml",
+ "java/res/layout/authenticator_selection_dialog.xml",
+ "java/res/layout/autofill_error_dialog.xml",
+ "java/res/layout/autofill_progress_dialog.xml",
+ "java/res/layout/otp_verification_dialog.xml",
+ "java/res/layout/progress_bar.xml",
+ "java/res/values/dimens.xml",
+ ]
deps = [
"//chrome/android:chrome_app_java_resources",
"//components/browser_ui/styles/android:java_resources",
diff --git a/chromium/chrome/browser/ui/android/management/BUILD.gn b/chromium/chrome/browser/ui/android/management/BUILD.gn
new file mode 100644
index 00000000000..73bcb88c950
--- /dev/null
+++ b/chromium/chrome/browser/ui/android/management/BUILD.gn
@@ -0,0 +1,38 @@
+# Copyright 2021 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.
+
+import("//build/config/android/rules.gni")
+
+android_library("java") {
+ sources = [
+ "java/src/org/chromium/chrome/browser/management/ManagementCoordinator.java",
+ "java/src/org/chromium/chrome/browser/management/ManagementPage.java",
+ "java/src/org/chromium/chrome/browser/management/ManagementProperties.java",
+ "java/src/org/chromium/chrome/browser/management/ManagementView.java",
+ "java/src/org/chromium/chrome/browser/management/ManagementViewBinder.java",
+ ]
+ deps = [
+ ":java_resources",
+ "//base:base_java",
+ "//chrome/browser/enterprise/util:java",
+ "//chrome/browser/profiles/android:java",
+ "//chrome/browser/tab:java",
+ "//chrome/browser/ui/android/native_page:java",
+ "//components/embedder_support/android:util_java",
+ "//third_party/androidx:androidx_annotation_annotation_java",
+ "//ui/android:ui_no_recycler_view_java",
+ ]
+ resources_package = "org.chromium.chrome.browser.management"
+}
+
+android_resources("java_resources") {
+ sources = [
+ "java/res/drawable/enterprise_icon.xml",
+ "java/res/layout/enterprise_management.xml",
+ ]
+ deps = [
+ "//chrome/browser/ui/android/strings:ui_strings_grd",
+ "//components/browser_ui/styles/android:java_resources",
+ ]
+}
diff --git a/chromium/chrome/browser/ui/android/multiwindow/BUILD.gn b/chromium/chrome/browser/ui/android/multiwindow/BUILD.gn
index 94909b5ea9e..f700e497631 100644
--- a/chromium/chrome/browser/ui/android/multiwindow/BUILD.gn
+++ b/chromium/chrome/browser/ui/android/multiwindow/BUILD.gn
@@ -10,6 +10,7 @@ android_library("java") {
"java/src/org/chromium/chrome/browser/multiwindow/InstanceSwitcherCoordinator.java",
"java/src/org/chromium/chrome/browser/multiwindow/InstanceSwitcherItemProperties.java",
"java/src/org/chromium/chrome/browser/multiwindow/InstanceSwitcherItemViewBinder.java",
+ "java/src/org/chromium/chrome/browser/multiwindow/MultiInstanceIphController.java",
"java/src/org/chromium/chrome/browser/multiwindow/TargetSelectorCoordinator.java",
"java/src/org/chromium/chrome/browser/multiwindow/TargetSelectorItemProperties.java",
"java/src/org/chromium/chrome/browser/multiwindow/TargetSelectorItemViewBinder.java",
@@ -18,12 +19,17 @@ android_library("java") {
deps = [
":java_resources",
"//base:base_java",
+ "//chrome/browser/feature_engagement:java",
+ "//chrome/browser/preferences:java",
"//chrome/browser/profiles/android:java",
+ "//chrome/browser/ui/android/appmenu:java",
"//chrome/browser/ui/android/favicon:java",
+ "//chrome/browser/user_education:java",
"//components/browser_ui/modaldialog/android:java",
"//components/browser_ui/styles/android:java",
"//components/browser_ui/widget/android:java",
"//components/favicon/android:java",
+ "//components/feature_engagement/public:public_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_appcompat_appcompat_resources_java",
"//third_party/androidx:androidx_core_core_java",
@@ -49,6 +55,7 @@ android_resources("java_resources") {
"//chrome/browser/ui/android/favicon:java_resources",
"//chrome/browser/ui/android/strings:ui_strings_grd",
"//chrome/browser/ui/android/toolbar:java_resources",
+ "//components/browser_ui/modaldialog/android:java_resources",
"//components/browser_ui/styles/android:java_resources",
"//components/browser_ui/widget/android:java_resources",
]
@@ -93,6 +100,7 @@ android_library("javatests") {
"//base:base_java",
"//base:base_java_test_support",
"//chrome/browser/flags:java",
+ "//chrome/browser/preferences:java",
"//chrome/test/android:chrome_java_test_support",
"//components/browser_ui/modaldialog/android:java",
"//components/browser_ui/settings/android:java",
diff --git a/chromium/chrome/browser/ui/android/night_mode/BUILD.gn b/chromium/chrome/browser/ui/android/night_mode/BUILD.gn
index ddb258ca5a4..23e5203cc44 100644
--- a/chromium/chrome/browser/ui/android/night_mode/BUILD.gn
+++ b/chromium/chrome/browser/ui/android/night_mode/BUILD.gn
@@ -18,6 +18,7 @@ android_library("java") {
"java/src/org/chromium/chrome/browser/night_mode/SystemNightModeMonitor.java",
"java/src/org/chromium/chrome/browser/night_mode/ThemeType.java",
"java/src/org/chromium/chrome/browser/night_mode/WebContentsDarkModeController.java",
+ "java/src/org/chromium/chrome/browser/night_mode/WebContentsDarkModeMessageController.java",
"java/src/org/chromium/chrome/browser/night_mode/settings/RadioButtonGroupThemePreference.java",
"java/src/org/chromium/chrome/browser/night_mode/settings/ThemeSettingsFragment.java",
]
@@ -25,17 +26,28 @@ android_library("java") {
deps = [
":java_resources",
"//base:base_java",
+ "//chrome/browser/feature_engagement:java",
+ "//chrome/browser/feedback/android:java",
"//chrome/browser/flags:java",
"//chrome/browser/preferences:java",
"//chrome/browser/profiles/android:java",
"//components/browser_ui/settings/android:java",
+ "//components/browser_ui/site_settings/android:java",
+ "//components/browser_ui/strings/android:browser_ui_strings_grd",
"//components/browser_ui/widget/android:java",
+ "//components/content_settings/android:content_settings_enums_java",
+ "//components/feature_engagement/public:public_java",
+ "//components/messages/android:java",
"//components/prefs/android:java",
+ "//components/ukm/android:java",
"//components/user_prefs/android:java",
+ "//content/public/android:content_full_java",
"//third_party/android_deps:android_support_v7_appcompat_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_preference_preference_java",
+ "//ui/android:ui_no_recycler_view_java",
"//ui/android:ui_utils_java",
+ "//url:gurl_java",
]
resources_package = "org.chromium.chrome.browser.night_mode"
}
@@ -76,12 +88,61 @@ android_library("javatests") {
"//chrome/browser/settings:java",
"//chrome/browser/settings:test_support_java",
"//chrome/test/android:chrome_java_test_support",
+ "//components/browser_ui/site_settings/android:java",
"//components/browser_ui/widget/android:java",
+ "//components/content_settings/android:content_settings_enums_java",
+ "//content/public/android:content_full_java",
"//content/public/test/android:content_java_test_support",
"//third_party/androidx:androidx_test_runner_java",
"//third_party/junit",
+ "//third_party/mockito:mockito_java",
"//ui/android:ui_java_test_support",
]
resources_package = "org.chromium.chrome.browser.night_mode"
}
+
+android_library("junit") {
+ # Skip platform checks since Robolectric depends on requires_android targets.
+ bypass_platform_checks = true
+ testonly = true
+ sources = [
+ "java/src/org/chromium/chrome/browser/night_mode/WebContentsDarkModeControllerUnitTest.java",
+ "java/src/org/chromium/chrome/browser/night_mode/WebContentsDarkModeMessageControllerUnitTest.java",
+ ]
+
+ deps = [
+ ":java",
+ ":night_mode_java_test_support",
+ "//base:base_java",
+ "//base:base_java_test_support",
+ "//base:base_junit_test_support",
+ "//chrome/browser/feature_engagement:java",
+ "//chrome/browser/feedback/android:java",
+ "//chrome/browser/flags:java",
+ "//chrome/browser/preferences:java",
+ "//chrome/browser/profiles/android:java",
+ "//chrome/test/android:chrome_java_test_support",
+ "//components/browser_ui/settings/android:java",
+ "//components/browser_ui/site_settings/android:java",
+ "//components/content_settings/android:content_settings_enums_java",
+ "//components/feature_engagement/public:public_java",
+ "//components/messages/android:java",
+ "//components/prefs/android:java",
+ "//components/user_prefs/android:java",
+ "//content/public/android:content_full_java",
+ "//content/public/test/android:content_java_test_support",
+ "//testing/android/junit:junit_test_support",
+ "//third_party/android_deps:robolectric_all_java",
+ "//third_party/androidx:androidx_annotation_annotation_java",
+ "//third_party/androidx:androidx_test_runner_java",
+ "//third_party/junit",
+ "//third_party/mockito:mockito_java",
+ "//ui/android:ui_java_test_support",
+ "//ui/android:ui_junit_test_support",
+ "//ui/android:ui_no_recycler_view_java",
+ "//url:gurl_java",
+ ]
+
+ resources_package = "org.chromium.chrome.browser.night_mode"
+}
diff --git a/chromium/chrome/browser/ui/android/omnibox/BUILD.gn b/chromium/chrome/browser/ui/android/omnibox/BUILD.gn
index 7e97d1aa21f..7c2d169e9b5 100644
--- a/chromium/chrome/browser/ui/android/omnibox/BUILD.gn
+++ b/chromium/chrome/browser/ui/android/omnibox/BUILD.gn
@@ -122,12 +122,16 @@ android_library("java") {
"java/src/org/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler.java",
]
- public_deps = [ ":partner_location_descriptor_proto_java" ]
+ public_deps = [
+ ":partner_location_descriptor_proto_java",
+ ":util_java",
+ ]
deps = [
":java_resources",
"//base:base_java",
"//chrome/browser/android/lifecycle:java",
+ "//chrome/browser/commerce/merchant_viewer/android:java",
"//chrome/browser/feature_engagement:java",
"//chrome/browser/flags:java",
"//chrome/browser/gsa:java",
@@ -147,6 +151,7 @@ android_library("java") {
"//chrome/browser/ui/android/layouts:java",
"//chrome/browser/ui/android/native_page:java",
"//chrome/browser/ui/android/night_mode:java",
+ "//chrome/browser/ui/android/searchactivityutils:java",
"//chrome/browser/ui/android/theme:java",
"//chrome/browser/user_education:java",
"//chrome/browser/util:java",
@@ -188,6 +193,41 @@ android_library("java") {
resources_package = "org.chromium.chrome.browser.omnibox"
}
+android_library("util_java") {
+ sources = [ "java/src/org/chromium/chrome/browser/omnibox/voice/VoiceRecognitionUtil.java" ]
+
+ deps = [
+ "//base:base_java",
+ "//chrome/browser/flags:java",
+ "//chrome/browser/preferences:java",
+ "//chrome/browser/profiles/android:java",
+ "//components/prefs/android:java",
+ "//components/user_prefs/android:java",
+ "//content/public/android:content_java",
+ "//third_party/androidx:androidx_annotation_annotation_java",
+ "//ui/android:ui_no_recycler_view_java",
+ ]
+}
+
+android_library("javatests") {
+ testonly = true
+ sources = [ "java/src/org/chromium/chrome/browser/omnibox/voice/VoiceRecognitionUtilTest.java" ]
+
+ deps = [
+ ":util_java",
+ "//base:base_java",
+ "//base:base_java_test_support",
+ "//base/test:test_support_java",
+ "//chrome/test/android:chrome_java_test_support",
+ "//content/public/test/android:content_java_test_support",
+ "//third_party/android_sdk:android_test_mock_java",
+ "//third_party/android_support_test_runner:runner_java",
+ "//third_party/androidx:androidx_test_runner_java",
+ "//third_party/junit",
+ "//third_party/mockito:mockito_java",
+ ]
+}
+
generate_jni("jni_headers") {
sources = [
"java/src/org/chromium/chrome/browser/omnibox/ChromeAutocompleteProviderClient.java",
@@ -339,6 +379,7 @@ java_library("junit") {
"//chrome/browser/util:java",
"//chrome/test/android:chrome_java_test_support",
"//components/browser_ui/site_settings/android:java",
+ "//components/browser_ui/styles/android:java",
"//components/browser_ui/widget/android:java",
"//components/content_settings/android:content_settings_enums_java",
"//components/embedder_support/android:util_java",
@@ -351,6 +392,7 @@ java_library("junit") {
"//content/public/test/android:content_java_test_support",
"//testing/android/junit:junit_test_support",
"//third_party/android_deps:android_support_v7_appcompat_java",
+ "//third_party/android_deps:material_design_java",
"//third_party/android_deps:robolectric_all_java",
"//third_party/android_support_test_runner:runner_java",
"//third_party/androidx:androidx_annotation_annotation_java",
diff --git a/chromium/chrome/browser/ui/android/quickactionsearchwidget/BUILD.gn b/chromium/chrome/browser/ui/android/quickactionsearchwidget/BUILD.gn
index 47a32aa476a..c2304e479b0 100644
--- a/chromium/chrome/browser/ui/android/quickactionsearchwidget/BUILD.gn
+++ b/chromium/chrome/browser/ui/android/quickactionsearchwidget/BUILD.gn
@@ -5,11 +5,7 @@
import("//build/config/android/rules.gni")
android_library("java") {
- sources = [
- "java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetProviderDelegate.java",
- "java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetReceiverDelegate.java",
- "java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetType.java",
- ]
+ sources = [ "java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetProviderDelegate.java" ]
deps = [
":java_resources",
"//base:base_java",
@@ -30,7 +26,6 @@ android_library("javatests") {
testonly = true
sources = [
"java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetProviderDelegateTest.java",
- "java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetReceiverDelegateTest.java",
"java/src/org/chromium/chrome/browser/ui/quickactionsearchwidget/QuickActionSearchWidgetTestUtils.java",
]
deps = [
@@ -40,6 +35,7 @@ android_library("javatests") {
"//base:base_java_test_support",
"//chrome/android:chrome_app_java_resources",
"//chrome/android:chrome_java",
+ "//chrome/browser/android/browserservices/intents:java",
"//chrome/browser/flags:java",
"//chrome/browser/tab:java",
"//chrome/browser/tabmodel:java",
@@ -50,12 +46,14 @@ android_library("javatests") {
"//third_party/android_support_test_runner:runner_java",
"//third_party/androidx:androidx_test_runner_java",
"//third_party/junit:junit",
+ "//third_party/mockito:mockito_java",
"//url:gurl_java",
]
}
android_resources("java_resources") {
sources = [
+ "java/res/drawable-nodpi/quick_action_search_widget_dino_preview.png",
"java/res/drawable-nodpi/quick_action_search_widget_medium_preview.png",
"java/res/drawable-nodpi/quick_action_search_widget_small_preview.png",
"java/res/drawable/ic_dino.xml",
diff --git a/chromium/chrome/browser/ui/android/searchactivityutils/BUILD.gn b/chromium/chrome/browser/ui/android/searchactivityutils/BUILD.gn
index 902d194551a..b4ac2dcfd49 100644
--- a/chromium/chrome/browser/ui/android/searchactivityutils/BUILD.gn
+++ b/chromium/chrome/browser/ui/android/searchactivityutils/BUILD.gn
@@ -5,5 +5,44 @@
import("//build/config/android/rules.gni")
android_library("java") {
+ sources = [ "java/src/org/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager.java" ]
+ deps = [
+ "//base:base_java",
+ "//chrome/browser/incognito:java",
+ "//chrome/browser/lens:java",
+ "//chrome/browser/preferences:java",
+ "//chrome/browser/search_engines/android:java",
+ "//chrome/browser/ui/android/omnibox:util_java",
+ "//components/search_engines/android:java",
+ "//content/public/android:content_main_dex_java",
+ "//third_party/androidx:androidx_annotation_annotation_java",
+ "//ui/android:ui_no_recycler_view_java",
+ "//url:gurl_java",
+ ]
+
+ public_deps = [ ":constants_java" ]
+}
+
+android_library("constants_java") {
sources = [ "java/src/org/chromium/chrome/browser/ui/searchactivityutils/SearchActivityConstants.java" ]
}
+
+android_library("javatests") {
+ testonly = true
+
+ sources = [ "java/src/org/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManagerTest.java" ]
+
+ deps = [
+ ":java",
+ "//base:base_java",
+ "//base:base_java_test_support",
+ "//chrome/browser/preferences:java",
+ "//chrome/browser/search_engines/android:java",
+ "//components/search_engines/android:java",
+ "//content/public/test/android:content_java_test_support",
+ "//third_party/android_support_test_runner:runner_java",
+ "//third_party/androidx:androidx_test_runner_java",
+ "//third_party/junit",
+ "//third_party/mockito:mockito_java",
+ ]
+}
diff --git a/chromium/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chromium/chrome/browser/ui/android/strings/android_chrome_strings.grd
index 262aaf6a3d6..f36015a7e2f 100644
--- a/chromium/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chromium/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -281,9 +281,6 @@ CHAR_LIMIT guidelines:
<message name="IDS_PREFS_MANAGE_SYNC_SETTINGS_CONTENT_DESCRIPTION" is_accessibility_with_no_ui="true" desc="The accessibility text to read when the 'Manage Sync Settings' page is opened from the sign-in page. This text is attached to the 'Navigate Up' button shown at the top of the screen. The first two sentences describe the screen that is currently shown to the user, while 'Navigate up' is a description for the button this text is attached to. 'Navigate up' should match TC ID 6794660482873516081.">
You are currently customizing your Sync settings. To finish turning on sync, tap the Confirm button near the bottom of the screen. Navigate up
</message>
- <message name="IDS_SIGNIN_PREF_DISALLOWED_TITLE" desc="Title for the signin entry in Settings when signin is disallowed.">
- Not signed in
- </message>
<message name="IDS_SIGNIN_PREF_SUMMARY" desc="Summary for the entry in Settings to sign in to Chrome, explaining benefits of signing in.">
Sync and personalize across devices
</message>
@@ -324,18 +321,21 @@ CHAR_LIMIT guidelines:
<message name="IDS_AUTOCOMPLETE_SEARCHES_AND_URLS_SUMMARY" desc="Summary for a checkbox in Settings that controls URL and search autocompletion and informs the user about the data shared by this feature.">
Sends some cookies and searches from the address bar and search box to your default search engine
</message>
+ <message name ="IDS_SETTINGS_INCOGNITO_TAB_LOCK_TITLE" desc = "Title for a toggle in Settings that allows users to lock their existing Incognito tabs with a device reauthentication mechanism.">
+ Lock Incognito tabs when you leave Chrome
+ </message>
+ <message name ="IDS_SETTINGS_INCOGNITO_TAB_LOCK_SUMMARY_ANDROID_SETTING_ON" desc = "Summary for a toggle in Settings that allows users to lock their existing Incognito tabs with a device reauthentication mechanism. This summary is shown to the user when the screen lock setting is on in the device.">
+ Use screen lock to see open Incognito tabs
+ </message>
+ <message name ="IDS_SETTINGS_INCOGNITO_TAB_LOCK_SUMMARY_ANDROID_SETTING_OFF" desc = "Summary for the Incognito tab lock toggle in Settings which asks the user to turn on screen lock in Android settings if it's off. Clicking on the text takes the user to Android settings.">
+ <ph name="BEGIN_LINK">&lt;link&gt;</ph>Turn on screen lock in Android settings<ph name="END_LINK">&lt;/link&gt;</ph>
+ </message>
<message name="IDS_PRELOAD_PAGES_TITLE" desc="Title for a checkbox in Settings that controls pages preloading and informs the user about the data shared by this feature.">
Preload pages for faster browsing and searching
</message>
<message name="IDS_PRELOAD_PAGES_SUMMARY" desc="Summary for a checkbox in Settings that controls pages preloading and informs the user about the data shared by this feature.">
Preloads pages that Chrome thinks you might visit. To do this, Chrome may use cookies, if you allow cookies, and may encrypt and send pages through Google to hide your identity from sites.
</message>
- <message name="IDS_NAVIGATION_ERROR_SUGGESTIONS_TITLE" desc="Title for a checkbox in Settings that controls pages suggestions on navigation errors and informs the user about the data shared by this feature.">
- Show suggestions for similar pages when a page can't be found
- </message>
- <message name="IDS_NAVIGATION_ERROR_SUGGESTIONS_SUMMARY" desc="Summary for a checkbox in Settings that controls pages suggestions on navigation errors and informs the user about the data shared by this feature.">
- Sends the URL of a page you're trying to reach to Google
- </message>
<message name="IDS_URL_KEYED_ANONYMIZED_DATA_TITLE" desc="Title for a checkbox in Settings that controls non-personalized URL collection and informs the user about the data shared by this feature.">
Make searches and browsing better
</message>
@@ -352,7 +352,7 @@ CHAR_LIMIT guidelines:
For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK">&lt;link&gt;</ph>Google services<ph name="END_LINK">&lt;/link&gt;</ph>
</message>
<message name="IDS_USAGE_AND_CRASH_REPORTS_TITLE" desc="Title for a preference that enables sending usage statistics and crash reports.">
- Help improve Chrome's features and performance
+ Help improve Chrome\u2019s features and performance
</message>
<message name="IDS_USAGE_AND_CRASH_REPORTS_SUMMARY" desc="Description for 'Help improve Chrome's features and performance' preference.">
Automatically sends usage statistics and crash reports to Google
@@ -476,6 +476,24 @@ CHAR_LIMIT guidelines:
<message name="IDS_AUTOFILL_DESCRIBE_LOCAL_COPY" desc="Text label that describes a Wallet credit card which has been copied to the local Chrome instance.">
Copied to Chrome
</message>
+ <message name="IDS_AUTOFILL_PAYMENTS_AUTHENTICATOR_SELECTION_DIALOG_TITLE" desc="Title for the dialog where the user selects an authenticator from a list of options.">
+ Verify your card
+ </message>
+ <message name="IDS_AUTOFILL_PAYMENTS_AUTHENTICATOR_SELECTION_DIALOG_HEADER" desc="Header for the dialog where the user selects an authenticator from a list of options.">
+ Your bank wants to confirm it\u2019s you.
+ </message>
+ <message name="IDS_AUTOFILL_PAYMENTS_AUTHENTICATOR_SELECTION_DIALOG_FOOTER" desc="Footer for the dialog where the user selects an authenticator from a list of options.">
+ Not seeing your current info? Please contact your bank to update it.
+ </message>
+ <message name="IDS_AUTOFILL_PAYMENTS_AUTHENTICATOR_SELECTION_DIALOG_PROGRESS_BAR_MESSAGE" desc="Message shown on the progress bar after the user selects an authenticator from a list of options and proceeds.">
+ Contacting your bank\u2026
+ </message>
+ <message name="IDS_AUTOFILL_PAYMENTS_AUTHENTICATOR_SELECTION_DIALOG_POSITIVE_BUTTON_LABEL" desc="Positive button label for the dialog where the user selects an authenticator from a list of options.">
+ Continue
+ </message>
+ <message name="IDS_AUTOFILL_PAYMENTS_AUTHENTICATOR_SELECTION_DIALOG_NEGATIVE_BUTTON_LABEL" desc="Negative button label for the dialog where the user selects an authenticator from a list of options.">
+ Cancel
+ </message>
<!-- Payment Request section preview strings -->
<message name="IDS_PAYMENT_REQUEST_PAYMENT_METHODS_PREVIEW" desc="This is a snippet of a payment method a user has saved to Chrome, plus an indication of the number of additional payment methods the user has saved.
@@ -539,9 +557,6 @@ CHAR_LIMIT guidelines:
<message name="IDS_MANAGE_PASSWORDS_TEXT" desc="Text for link to manage passwords on Account Central.">
View and manage saved passwords in your <ph name="BEGIN_LINK">&lt;link&gt;</ph>Google Account<ph name="END_LINK">&lt;/link&gt;</ph>
</message>
- <message name="IDS_PHONE_AS_SECURITY_KEY_TEXT" desc="Text for link to use phone as a security key. A 'security key' is physical device used for authentication, usually as part of two-factor security. This option allows a phone to be used in place of a dedicated security key.">
- Use phone as a security key
- </message>
<message name="IDS_SAVED_PASSWORDS_NONE_TEXT" desc="Text when there are no saved passwords/exceptions.">
Saved passwords will appear here.
</message>
@@ -721,7 +736,7 @@ CHAR_LIMIT guidelines:
Turn on dark theme when your device's dark theme or Battery Saver is on
</message>
<message name="IDS_DARKEN_WEBSITES" desc="Title for the Darken websites option. [CHAR_LIMIT=32]">
- Darken websites
+ Apply dark theme to sites, when possible
</message>
<!-- Privacy and security preferences -->
@@ -741,9 +756,21 @@ Tap any word to search. To refine your search, touch &amp; hold to select more o
Touch &amp; hold any word to search. To refine your search, select more or fewer words. To edit your search, open the panel, tap the icon to open in a new tab, and make your changes in the search box.
</message>
+ <message name="IDS_CONTEXTUAL_SEARCH_DESCRIPTION_REVISED" desc="Description for Contextual Search preference">
+ Learn about topics on websites without leaving the page. Select one or more words on the page to search for them.
+ </message>
<message name="IDS_CONTEXTUAL_SEARCH_SHORT_DESCRIPTION" desc="A promo message shown to users with Touch to Search to explain the new behavior and provide an option to opt in or out">
Touch to Search sends the selected word and the current page as context to Google Search. You can turn it off in <ph name="BEGIN_LINK">&lt;link&gt;</ph>Settings<ph name="END_LINK">&lt;/link&gt;</ph>.
</message>
+ <message name="IDS_CONTEXTUAL_SEARCH_PROMO_TITLE" desc="The title of the promo message for the contextual search.">
+ Include surrounding text in Google searches?
+ </message>
+ <message name="IDS_CONTEXTUAL_SEARCH_PROMO_DESCRIPTION" desc="A promo message shown to users with Touch to Search to explain the new behavior and provide an option to opt in or out">
+ By including more of a page’s text, you might see better results when using Touch to Search. You can always visit <ph name="BEGIN_LINK">&lt;link&gt;</ph>settings<ph name="END_LINK">&lt;/link&gt;</ph> to change this.
+ </message>
+ <message name="IDS_CONTEXTUAL_SEARCH_INCLUDE_BUTTON" desc="A button to confirm and dismiss opt in promo">
+ Include
+ </message>
<message name="IDS_CONTEXTUAL_SEARCH_ALLOW_BUTTON" desc="A button to confirm and dismiss opt out promo">
Allow
</message>
@@ -759,6 +786,12 @@ Touch &amp; hold any word to search. To refine your search, select more or fewer
<message name="IDS_CONTEXTUAL_SEARCH_DEFAULT_CAPTION" desc="Summary help text that is shown as a second line in the Contextual Search peeking bottom sheet telling the user that they can tap the text in order to open the sheet and see search results there.">
Tap to see search results
</message>
+ <message name="IDS_CONTEXTUAL_SEARCH_SEE_BETTER_RESULTS_TITLE" desc="Title for the see better results switch in Contextual Search preference.">
+ Include surrounding text in Google searches
+ </message>
+ <message name="IDS_CONTEXTUAL_SEARCH_SEE_BETTER_RESULTS_SUMMARY" desc="Summary for the see better results switch in Contextual Search preference.">
+ By including more of a page’s text, you might see better results
+ </message>
<message name="IDS_DO_NOT_TRACK_TITLE" desc="Title for 'Do Not Track' preference">
“Do Not Track”
</message>
@@ -784,15 +817,6 @@ For example, some websites may respond to this request by showing you ads that a
<message name="IDS_PRIVACY_SANDBOX_DESCRIPTION_TITLE" desc="Title for the description text of 'Privacy Sandbox'.">
About Privacy Sandbox
</message>
- <message name="IDS_PRIVACY_SANDBOX_DESCRIPTION" desc="Description of the 'Privacy Sandbox'.">
- Privacy Sandbox is an ongoing initiative to preserve the open web that will help safeguard you from tracking mechanisms.
-
-Today, websites rely on many technologies, like third-party cookies, for important services like showing relevant ads and measuring a site’s performance.
-
-Privacy Sandbox preserves the vitality of the open web by creating better ways to perform these services – without breaking sites, and while preventing you from being surreptitiously tracked across the web.
-
-Privacy Sandbox is still in active development and is available in selected regions. For now, sites may try out Privacy Sandbox while continuing to use current web technologies like third-party cookies. <ph name="BEGIN_LINK">&lt;link&gt;</ph>Learn more<ph name="END_LINK">&lt;/link&gt;</ph>
- </message>
<message name="IDS_PRIVACY_SANDBOX_DESCRIPTION_TWO" desc="Description of the 'Privacy Sandbox' when phase 2 flag is enabled.">
With <ph name="BEGIN_LINK">&lt;link&gt;</ph>Privacy Sandbox<ph name="END_LINK">&lt;/link&gt;</ph>, Chrome is developing new technologies to safeguard you from cross-site tracking while preserving the open web.
@@ -801,13 +825,6 @@ Privacy Sandbox trials are still in active development and are available in sele
<message name="IDS_PRIVACY_SANDBOX_TOGGLE" desc="Title for the Privacy Sandbox toggle.">
Privacy Sandbox trials
</message>
- <message name="IDS_PRIVACY_SANDBOX_TOGGLE_DESCRIPTION" desc="Description for the Privacy Sandbox toggle.">
- When enabled, sites may use the privacy-preserving techniques shown here to provide their content and services. These include alternatives to cross-site tracking. More trials may be added over time.
-
-<ph name="BEGIN_LIST_ITEM1">&lt;li1&gt;</ph>Advertisers can learn when thousands of users share a similar interest – like a crowd at a concert — and select ads for the crowd, rather than an individual person.<ph name="END_LIST_ITEM1">&lt;/li1&gt;</ph>
-
-<ph name="BEGIN_LIST_ITEM2">&lt;li2&gt;</ph>Advertisers can study the effectiveness of ads in a way that does not track you across sites.<ph name="END_LIST_ITEM2">&lt;/li2&gt;</ph>
- </message>
<message name="IDS_PRIVACY_SANDBOX_TOGGLE_DESCRIPTION_TWO" desc="Description for the Privacy Sandbox toggle when phase 2 flag is enabled.">
When on, sites may use the privacy-preserving techniques shown here to provide their content and services. These include alternatives to cross-site tracking. More trials may be added over time.
@@ -995,6 +1012,14 @@ Your Google account may have other forms of browsing history like searches and a
<ph name="NUMBER_OF_ITEMS">%1$s<ex>3</ex></ph> items deleted
</message>
+ <!-- Privacy Review -->
+ <message name="IDS_PREFS_PRIVACY_REVIEW_TITLE" desc="The title of the privacy review menu item.">
+ Privacy guide
+ </message>
+ <message name="IDS_PREFS_PRIVACY_REVIEW_SUMMARY" desc="The summary of the privacy menu item.">
+ Review privacy and security settings
+ </message>
+
<!-- Safety check -->
<message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]">
Safety check
@@ -1197,21 +1222,6 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_ACCESSIBILITY_CAPTIONS_TITLE" desc="Title of the preference that allows the user to update caption settings.">
Captions
</message>
- <message name="IDS_ACCESSIBILITY_PAGE_ZOOM_TITLE" desc="Title of the preference that allows the user to update the accessibility page zoom feature that applies to the web contents." translateable="false">
- Page Zoom
- </message>
- <message name="IDS_ACCESSIBILITY_PAGE_ZOOM_SUMMARY" desc="Summary of the preference that allows the user to update the accessibility page zoom feature that applies to the web contents." translateable="false">
- Use this setting to increase/decrease the zoom factor for a given page.
- </message>
- <message name="IDS_ACCESSIBILITY_PAGE_ZOOM_DECREASE_ZOOM_BUTTON_TEXT" desc="Accessibility label for button to allow user to decrease page zoom" translateable="false">
- Decrease zoom
- </message>
- <message name="IDS_ACCESSIBILITY_PAGE_ZOOM_INCREASE_ZOOM_BUTTON_TEXT" desc="Accessibility label for button to allow user to increase page zoom" translateable="false">
- Increase zoom
- </message>
- <message name="IDS_ACCESSIBILITY_PAGE_ZOOM_FACTOR" desc="Text description of the current page zoom factor set by the user" translateable="false">
- <ph name="ZOOM_FACTOR">%1$d<ex>100</ex></ph> %%
- </message>
<!-- Language Settings -->
<message name="IDS_LANGUAGE_SETTINGS" desc="Title for the Languages settings screen that allows users to manage their languages preferences. [CHAR_LIMIT=32]">
@@ -1220,8 +1230,8 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_APP_LANGUAGE_TITLE" desc="Title of Language settings section to change Chrome’s user interface language. [CHAR_LIMIT=32]">
<ph name="APP_NAME">%1$s<ex>Chrome</ex></ph>’s language
</message>
- <message name="IDS_DEFAULT_LANG_SUBTITLE" desc="Subtite to use for the device’s default language. [CHAR_LIMIT=42]">
- Default device language
+ <message name="IDS_DEFAULT_LANG_SUBTITLE" desc="Subtitle to use for the device’s current language. [CHAR_LIMIT=42]">
+ Current device language
</message>
<message name="IDS_ADD_LANGUAGE" desc="Title for the screen that allows users to add languages to their preferred language list. [CHAR_LIMIT=32]">
Add language
@@ -1235,7 +1245,7 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_LANGUAGES_SELECT_SUGGESTED" desc="Title appearing above list of languages ordered based on what users in that country might select. [CHAR_LIMIT=32]">
Suggested languages
</message>
- <message name="IDS_LANGUAGES_SELECT_OTHER" desc="Subtite appearing above list of all languages not likely to be selected by users in that country. [CHAR_LIMIT=32]">
+ <message name="IDS_LANGUAGES_SELECT_OTHER" desc="Subtitle appearing above list of all languages not likely to be selected by users in that country. [CHAR_LIMIT=32]">
Other languages
</message>
<message name="IDS_LANGUAGES_CONTENT_TITLE" desc="Title of Language settings section to add or remove preferred content languages. Content languages are selected by the user and tell Chrome what language the user prefers webpage content in. [CHAR_LIMIT=32]">
@@ -1439,10 +1449,24 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_DANGEROUS_DOWNLOAD_DIALOG_TEXT" desc="Warning message shown on a dialog to ask user to validate the download of a dangerous file.">
Do you want to download <ph name="FILE_NAME">%1$s<ex>malware.exe</ex></ph> anyway?
</message>
+ <message name="IDS_DANGEROUS_DOWNLOAD_DIALOG_TEXT_WITH_SIZE" desc="Warning message shown on a dialog to ask user to validate the download of a dangerous file, with size information.">
+ Do you want to download <ph name="FILE_NAME">%1$s<ex>malware.exe</ex></ph> (<ph name="FILE_SIZE">%2$s<ex>100MB</ex></ph>) anyway?
+ </message>
<message name="IDS_DANGEROUS_DOWNLOAD_DIALOG_TITLE" desc="Title of the dialog for asking user to confirm a dangerous download">
File might be harmful
</message>
+ <!-- Mixed content download -->
+ <message name="IDS_MIXED_CONTENT_DOWNLOAD_DIALOG_TITLE" desc="Title of the dialog for asking user to confirm a mixed content download">
+ File can’t be downloaded securely
+ </message>
+ <message name="IDS_MIXED_CONTENT_DOWNLOAD_DIALOG_CONFIRM_TEXT" desc="Text label for the confirm button on the mixed content download dialog for user to confirm the download.">
+ Keep
+ </message>
+ <message name="IDS_MIXED_CONTENT_DOWNLOAD_DIALOG_DISCARD_TEXT" desc="Text label for the cancel button on the mixed content download dialog for user to confirm the download.">
+ Discard
+ </message>
+
<!-- Download later -->
<message name="IDS_DOWNLOAD_LATER_DIALOG_TITLE" desc="Title of the download later dialog that let the user to choose the time to download.">
Download later instead?
@@ -1533,14 +1557,8 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_DOWNLOAD_LOCATION_NO_AVAILABLE_LOCATIONS" desc="Text that indicates to the user that there are no download locations available.">
No available download locations
</message>
- <message name="IDS_DOWNLOAD_SETTINGS_ENABLE_PREFETCH_TITLE" desc="Title for preference that allows the user to enable or disable the prefetching of articles. Please ensure the words 'articles for you' match the 'articles for you' in New Tab Page. ">
- Download articles for you on Wi-Fi
- </message>
- <message name="IDS_DOWNLOAD_SETTINGS_PREFETCH_UNAVAILABLE_DESCRIPTION" desc="Description explaining that the article prefetching feature is disabled because it is unavailable in the user's country.">
- Not available in your location
- </message>
- <message name="IDS_DOWNLOAD_SETTINGS_PREFETCH_MAYBE_UNAVAILABLE_DESCRIPTION" desc="Description explaining that the article prefetching feature is disabled because Chrome has not yet determined whether it is available in the user's country.">
- May not be available in your location
+ <message name="IDS_DOWNLOAD_LOCATION_INCOGNITO_WARNING" desc="Text that indicates to the user that downloaded files in Incognito are still saved on the device and are visible to other users of this device.">
+ Files you download in Incognito mode are still visible to anyone who uses this device.
</message>
<message name="IDS_RENAME" desc="Label for the option to rename items.">
Rename
@@ -1564,6 +1582,20 @@ Your Google account may have other forms of browsing history like searches and a
If you change the file extension, the file may open in a different application and potentially be a hazard to your device.
</message>
+ <!-- Duplicate download -->
+ <message name="IDS_DUPLICATE_DOWNLOAD_DIALOG_CONFIRM_TEXT" desc="Text label for the confirm button on the dangerous download dialog for user to confirm the download.">
+ Download again
+ </message>
+ <message name="IDS_DUPLICATE_DOWNLOAD_DIALOG_TEXT" desc="Warning message shown on a dialog to ask user to confirm the download of a duplicate file.">
+ Do you want to download <ph name="FILE_NAME">^1<ex>malware.exe</ex></ph><ph name="FILE_SIZE">^2<ex> (100MB)</ex></ph> again?
+ </message>
+ <message name="IDS_DUPLICATE_DOWNLOAD_DIALOG_TITLE" desc="Title of the dialog for asking user to confirm a download that has been downloaded before.">
+ Download file again?
+ </message>
+ <message name="IDS_DUPLICATE_PAGE_DOWNLOAD_DIALOG_TITLE" desc="Title of the dialog for asking user to confirm downloading a page that has been downloaded before.">
+ Download page again?
+ </message>
+
<!-- About Chrome preferences -->
<message name="IDS_PREFS_ABOUT_CHROME" desc="Title for the About Chrome page. [CHAR_LIMIT=32]">
About Chrome
@@ -2034,7 +2066,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
See notification for download status
</message>
<message name="IDS_DOWNLOAD_MESSAGE_DOWNLOAD_COMPLETE_DESCRIPTION" desc="Download message description text about downloaded file name and their size.">
- (<ph name="megabytes">%1$s<ex>100 MB</ex></ph>)\n<ph name="url">%2$s<ex>https://...example.com</ex></ph>
+ (<ph name="megabytes">%1$s<ex>100 MB</ex></ph>) <ph name="url">%2$s<ex>https://...example.com</ex></ph>
</message>
<message name="IDS_DOWNLOAD_MESSAGE_MULTIPLE_DOWNLOAD_IN_PROGRESS" desc="Download message text describing that chrome is downloading multiple files.">
{FILE_COUNT, plural,
@@ -2238,7 +2270,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Preview page <ph name="BEGIN_NEW">&lt;new&gt;</ph>New<ph name="END_NEW">&lt;/new&gt;</ph>
</message>
<message name="IDS_CONTEXTMENU_READ_LATER" desc="Context sensitive menu item for marking a link to be read later. We're also labeling it *New* to draw attention to it when first released. [CHAR_LIMIT=30]">
- Read later <ph name="BEGIN_NEW">&lt;new&gt;</ph>New<ph name="END_NEW">&lt;/new&gt;</ph>
+ Add to reading list <ph name="BEGIN_NEW">&lt;new&gt;</ph>New<ph name="END_NEW">&lt;/new&gt;</ph>
</message>
<message name="IDS_CONTEXTMENU_PERFORMANCE_INFO_FAST" desc="This string is shown in the context sensitive menu for links and is shown underneath the link URL. It indicates to the user that the link's target page is fast-loading and responsive. [CHAR_LIMIT=30]">
Fast page
@@ -2330,6 +2362,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_IMAGE_ZOOM_CONTENT_DESCRIPTION" desc="The content description string for the screenshot in the image zoom view.">
Screenshot. Tap to close.
</message>
+ <message name="IDS_IPH_MESSAGE_SHARED_HIGHLIGHTING_TITLE" desc="The title of in-product-help message encouraging users to create highlights.">
+ Create a highlighted link like this one?
+ </message>
+ <message name="IDS_IPH_MESSAGE_SHARED_HIGHLIGHTING_BUTTON" desc="The title of in-product-help message encouraging users to learn more about the Shared Highlighting feature.">
+ Learn More
+ </message>
<!-- Page info popup -->
<message name="IDS_PAGE_INFO_CONNECTION_OFFLINE" desc="Message to display in the page info bubble when viewing and offline page.">
@@ -2654,6 +2692,24 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_SIGNIN_FRE_DISMISS_BUTTON" desc="Text for the dismiss button on the welcome sign-in screen. By clicking this button users will continue without signing in,">
Use without an account
</message>
+ <message name="IDS_SIGNIN_FRE_FOOTER" desc="Text for asking the user to allow sending diagnostic reports">
+ To help improve the app, Chrome sends diagnostic data to Google. <ph name="BEGIN_LINK">&lt;LINK&gt;</ph>Change<ph name="END_LINK">&lt;/LINK&gt;</ph>
+ </message>
+ <message name="IDS_SIGNIN_FRE_UMA_DIALOG_TITLE" desc="Title for the FRE footer dialog">
+ Make Chrome better
+ </message>
+ <message name="IDS_SIGNIN_FRE_UMA_DIALOG_FIRST_SECTION_HEADER" desc="Header for the first section in FRE uma dialog">
+ What you get
+ </message>
+ <message name="IDS_SIGNIN_FRE_UMA_DIALOG_FIRST_SECTION_BODY" desc="Body of the first section in FRE uma dialog">
+ New features and improved performance
+ </message>
+ <message name="IDS_SIGNIN_FRE_UMA_DIALOG_SECOND_SECTION_HEADER" desc="Header for the second section in FRE uma dialog">
+ What you share with Google
+ </message>
+ <message name="IDS_SIGNIN_FRE_UMA_DIALOG_SECOND_SECTION_BODY" desc="Body of the second section in FRE uma dialog">
+ Info about your Chrome usage that can\u2019t be tied to you\n\nRelevant data from rare Chrome crashes, which may include some personal info\n\nIf you turn on sync, metrics may also include info about URLs you visit
+ </message>
<!-- Account Signin Strings -->
<message name="IDS_SIGNIN_ADD_ACCOUNT" desc="Text for adding another Google Account">
@@ -2887,9 +2943,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Discover by Google - off
</message>
<message name="IDS_NTP_FOLLOWING" desc="Title in the feed header for user-customized following feed.">Following</message>
- <message name="IDS_ACCESSIBILITY_NTP_FOLLOWING_UNREAD_CONTENT" desc="Content description for the feed header blue dot for user-customized following feed, which indicates that unread content is available.">
- Unread stories ready
- </message>
<message name="IDS_NTP_FEED_MENU_IPH" desc="In-product help that points at the menu icon for the news feed on Chrome's new tab page. This string instructs the user to open the menu for settings that let them control the content that appears on the feed.">
Control your stories and activity here
</message>
@@ -2899,6 +2952,11 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_ACCESSIBILITY_NTP_FEED_MENU_IPH" desc="In-product help that points at the menu icon for the news feed on Chrome's new tab page. This string instructs the user to open the menu for settings that let them control the content that appears on the feed. Please use the branded term for Discover (TC ID 1799975766543019278).">
Control your stories from the Options for Discover button
</message>
+ <message name="IDS_ACCESSIBILITY_NTP_FOLLOWING_UNREAD_CONTENT" desc="Content description for the feed header blue dot for user-customized following feed, which indicates that unread content is available.">
+ Unread stories ready
+ </message>
+ <message name="IDS_FEED_OPTIONS_DROPDOWN_DESCRIPTION" desc="Content description for an arrow indicating that the item can be clicked again to open an options drawer">Click to open sort options</message>
+ <message name="IDS_FEED_SORT_PUBLISHER" desc="Chip text on feed header that, when clicked, sorts and groups feed content by source - websites. Use the same word for sites as used in TC ID 5814749351757353073">Site</message>
<message name="IDS_DISCOVER_NO_CARDS" desc="Message title for the article feed on the New Tab Page. Shown when the user is connected to the internet but no new feed content could be fetched. Please translate 'stories' to match its use in TC ID 792300740424433300. Also see TC ID 7331961212006720987 for the corresponding message in Discover.">No stories available</message>
<message name="IDS_DISCOVER_NO_CARDS_INSTRUCTIONS" desc="Message body for the article feed on the New Tab Page. Instructs the user to come back later when new feed content is available. Please translate 'stories' to match its use in TC ID 792300740424433300. Also see TC ID 7331961212006720987 for the corresponding message in Discover.">Check back later for new stories</message>
<message name="IDS_DISCOVER_CANT_REFRESH" desc="Message title for the article feed on the New Tab Page. Shown when feed content is not available because there is no internet connection. Please use the branded term for Discover, as listed under Product Names in the Google Glossary Manager (TC ID 1799975766543019278). Also see TC ID 6114827482740570724 for the corresponding message in Discover.">Can't refresh Discover</message>
@@ -2917,6 +2975,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
content.">
To refresh the feed content, pull down the page
</message>
+ <message name="IDS_FEED_BACK_TO_TOP_PROMPT" desc="A prompt for the user to click in order to go back to the top of the feed.">
+ Back to top
+ </message>
<!-- Explore sites strings -->
<message name="IDS_EXPLORE_SITES_TITLE" desc="Title of a section showing different categories, each with a number of popular websites">
@@ -3138,6 +3199,21 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_DOWNLOADS" desc="Menu item for opening the downloads page. [CHAR_LIMIT=27]">
Downloads
</message>
+ <message name="IDS_MENU_ADD_BOOKMARK" desc="Menu item for adding the current page to 'Bookmarks'. Verb. [CHAR_LIMIT=27]">
+ Bookmark
+ </message>
+ <message name="IDS_MENU_EDIT_BOOKMARK" desc="Menu item for editing the content of the bookmark for the current page. [CHAR_LIMIT=27]">
+ Edit Bookmark
+ </message>
+ <message name="IDS_MENU_ADD_TO_READING_LIST" desc="Menu item for adding the current page to the reading list. [CHAR_LIMIT=27]">
+ Add to reading list
+ </message>
+ <message name="IDS_MENU_DELETE_FROM_READING_LIST" desc="Menu item for removing the current page from the reading list. [CHAR_LIMIT=27]">
+ Delete from reading list
+ </message>
+ <message name="IDS_MENU_EDIT_READING_LIST" desc="Menu item for opening and editing the reading list. Shown only when the current page is already on the reading list. [CHAR_LIMIT=27]">
+ Edit reading list
+ </message>
<message name="IDS_MENU_FIND_IN_PAGE" desc="Menu item allowing users to find text within the current page. [CHAR_LIMIT=27]">
Find in page
</message>
@@ -3171,6 +3247,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_REQUEST_DESKTOP_SITE_OFF" desc="Accessibility description for when Request Desktop Site is disabled.">
Turn on Request desktop site
</message>
+ <message name="IDS_MENU_AUTO_DARK_WEB_CONTENTS" desc="Menu item in Chrome's overflow/options menu. When Chrome's browser UI is set to dark theme and this option is checked, sites will have a dark theme automatically applied as well. [CHAR_LIMIT=24]">
+ Dark theme
+ </message>
<message name="IDS_MENU_READER_MODE_PREFS" desc="Menu item to show reader mode preferences pane, which allows users to change the appearance (font size, theme, etc.) of the page. [CHAR_LIMIT=27]">
Appearance
</message>
@@ -3304,6 +3383,21 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_BOOKMARK_MISSING_URL" desc="Error message appearing when a user tries to create a bookmark without a url. [CHAR_LIMIT=32]">
URL required
</message>
+ <message name="IDS_BOOKMARKS_SAVE_FLOW_CONTENT_DESCRIPTION" desc="The content description for the bookmark bottom sheet save flow. Read as accessibility string when tapping on the bottom sheet.">
+ Bookmark save flow
+ </message>
+ <message name="IDS_BOOKMARKS_SAVE_FLOW_OPENED_HALF" desc="The accessibility string read when the bookmark bottom sheet save flow is half opened.">
+ Bookmark save flow opened at half height
+ </message>
+ <message name="IDS_BOOKMARKS_SAVE_FLOW_OPENED_FULL" desc="The accessibility string read when the bookmark bottom sheet save flow is fully opened.">
+ Bookmark save flow folders opened at full height
+ </message>
+ <message name="IDS_BOOKMARKS_SAVE_FLOW_CLOSED_DESCRIPTION" desc="The accessibility string read when the bookmark bottom sheet save flow is closed.">
+ Bookmark save flow closed
+ </message>
+ <message name="IDS_BOOKMARK_PAGE_SAVED_LOCATION" desc="App-based message shown after user adds a new bookmark to specify the location of a bookmark. [CHAR_LIMIT=32]">
+ in <ph name="PRODUCT_NAME">%1$s<ex>Chrome</ex></ph>
+ </message>
<!-- Read later strings -->
<message name="IDS_READING_LIST_TITLE_NEW" desc="The title for the reading list with a new text.">
@@ -3341,7 +3435,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Save this page for later and get a reminder
</message>
<message name="IDS_READING_LIST_SAVE_PAGES_FOR_LATER" desc="The text on the reading list in product help bubble to introduce the feature to the user.">
- Add pages to your Reading List to get a reminder
+ Add pages to your reading list for later
</message>
<message name="IDS_READING_LIST_FIND_IN_BOOKMARKS" desc="The text to inform the user to find the reading list in bookmarks UI.">
Find your reading list in Bookmarks
@@ -3767,6 +3861,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_WEB_FEED_UNFOLLOW_GENERIC_FAILURE_SNACKBAR_MESSAGE" desc="The generic snackbar message after an unsuccessful Web Feed unfollow request.">
Can’t unfollow. Something went wrong.
</message>
+ <message name="IDS_WEB_FEED_OFFLINE_FAILURE_SNACKBAR_MESSAGE" desc="The failure snackbar message after an unsuccessful Web Feed follow or unfollow request due to being offline.">
+ You're offline. Check your internet connection and try again.
+ </message>
<message name="IDS_WEB_FEED_GENERIC_FAILURE_SNACKBAR_ACTION" desc="The snackbar action after an unsuccessful Web Feed follow or unfollow request.">
Try again
</message>
@@ -3871,9 +3968,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_TWA_RUNNING_IN_CHROME_V2" desc="Updated message on a snackbar indicating that the current Activity may use Chrome data (the rest of the app may not be).">
You'll see your <ph name="SITE_NAME">%1$s<ex>www.youtube.com</ex></ph> sign-in status, browsing data, and site data in Chrome
</message>
- <message name="IDS_GOT_IT" desc="Button for the user to accept a disclosure/message">
- Got it
- </message>
<message name="IDS_TWA_CLEAR_DATA_DIALOG_TITLE" desc="Title of the clear data dialog showing after user uninstalls or clears data of an app hosting a Trusted Web Activity">
<ph name="APP_NAME">%1$s<ex>YouTube</ex></ph> also has data in Chrome
</message>
@@ -4075,9 +4169,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_INSTANCE_SWITCHER_CLOSE_CONFIRM_HEADER" desc="The header of multi-instance switcher dialog confirming close operation.">
Close window?
</message>
- <message name="IDS_INSTANCE_SWITCHER_CLOSE_CONFIRM_BUTTON" desc="The button text of multi-instance switcher dialog confirming close operation.">
- Close window
- </message>
<message name="IDS_INSTANCE_SWITCHER_CLOSE_CONFIRM_DELETED_TABS_ZERO" desc="The phrase used in the message when there is a single tab to delete.">
The window will be closed
</message>
@@ -4125,6 +4216,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_IPH_IDENTITY_DISC_TEXT" desc="The in-product-help text prompting the user that tapping identity disc will navigate to 'Sync and Google services' settings page.">
Manage your account
</message>
+ <message name="IDS_IPH_INSTANCE_SWITCHER_TEXT" desc="The in-product-help text prompting the user that app menu has a menu for managing multiple Chrome windows with instance switcher.">
+ Got many windows? You can manage them from here
+ </message>
<message name="IDS_IPH_IDENTITY_DISC_ACCESSIBILITY_TEXT" desc="The in-product-help accessibility text prompting the user that tapping identity disc will navigate to 'Sync and Google services' settings page.">
To manage your Google account, tap the "Manage account" button
</message>
@@ -4209,7 +4303,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
</message>
<!-- Dino Widget -->
- <message name="IDS_DINO_WIDGET_TEXT" desc="Text displayed on the Dino Widget">
+ <message name="IDS_DINO_WIDGET_TEXT" desc="Text displayed on the Dino Widget. One medium-length or two short words max (area for about 10em)">
Chrome Dino
</message>
@@ -4225,12 +4319,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_SEND_TAB_TO_SELF_NOTIFICATION_CONTEXT_TEXT" desc="Text displayed as the second line of a notification indicating the domain and the device the tab is shared from.">
<ph name="DOMAIN">%1$s<ex>www.google.com</ex></ph> - Sent from <ph name="DEVICE_NAME">%2$s<ex>Tanya's Pixel 2XL</ex></ph>
</message>
- <message name="IDS_SEND_TAB_TO_SELF_INFOBAR_MESSAGE" desc="The message text for the infobar when a user receives a shared tab from another device.">
- Tab received
- </message>
- <message name="IDS_SEND_TAB_TO_SELF_INFOBAR_MESSAGE_URL" desc="Clickable text displayed as part of a URL in the inforbar displayed when a user receives a shared tab from another device.">
- Open
- </message>
<message name="IDS_SEND_TAB_TO_SELF_CONTENT_DESCRIPTION" desc="Accessibility string read when the bottom sheet is opened. It describes the bottom sheet where a user can pick a device to share the tab with.">
List of devices to share a tab with.
</message>
@@ -4267,6 +4355,13 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_SEND_TAB_TO_SELF_V2_TOAST" desc="Toast message shown after a device is selected from the device picker.">
Page sent. To see it, open Chrome on your <ph name="device_type">%1$s<ex>phone</ex></ph>
</message>
+ <message name="IDS_SEND_TAB_TO_SELF_MANAGE_DEVICES_LINK" desc="Text with a link to a page where the user can manage the devices they can share a tab to.">
+ <ph name="BEGIN_LINK">&lt;link&gt;</ph>Your devices<ph name="END_LINK">&lt;/link&gt;</ph> · <ph name="EMAIL">%1$s<ex>foo@gmail.com</ex></ph>
+ </message>
+ <message name="IDS_SEND_TAB_TO_SELF_WHEN_SIGNED_IN_UNAVAILABLE" desc="Instructions for the user to enable the feature when it's currently unavailable.">
+ You can send tabs between devices that are signed in with the same Google Account
+ </message>
+
<!-- Sharing -->
<message name="IDS_SHARING_SENDING_NOTIFICATION_TITLE" desc="Title text displayed in a sharing sending notification.">
@@ -4307,6 +4402,18 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_SHARING_HUB_VIDEO_PREVIEW_SUBTITLE" desc="Subtitle shown in the preview of Sharing Hub video file shares.">
video
</message>
+ <message name="IDS_SHARING_HUB_CONTENT_DESCRIPTION" desc="Accessibility string read when the sharing hub is opened. It describes the bottom sheet where a user can pick an option to share web content.">
+ List of sharing options.
+ </message>
+ <message name="IDS_SHARING_HUB_SHEET_HALF_HEIGHT" desc="Accessibility string read when the sharing hub is opened at half height. The sheet will occupy the bottom half the screen.">
+ List of sharing options opened at half height.
+ </message>
+ <message name="IDS_SHARING_HUB_SHEET_FULL_HEIGHT" desc="Accessibility string read when the sharing hub is opened at full height. The sheet will occupy the entire screen.">
+ List of sharing options at full height.
+ </message>
+ <message name="IDS_SHARING_HUB_SHEET_CLOSED" desc="Accessibility string read when the sharing hub is closed.">
+ List of sharing options is closed.
+ </message>
<!-- ClickToCall -->
<message name="IDS_CLICK_TO_CALL_NOTIFICATION_TEXT" desc="Text displayed in a click to call notification to call on a number.">
@@ -4555,6 +4662,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Processing request
</message>
+ <message name="IDS_CABLEV2_SERVERLINK_STATUS_DFM_INSTALL" desc="A small subheader on a screen that is shown when a user is connecting their phone to a desktop or laptop computer in order to sign in with it. This text is shown while Chrome is downloading the component that can complete the connection.">
+ Updating Chrome to connect to other devices
+ </message>
+
<message name="IDS_CABLEV2_ERROR_TITLE" desc="The title of an error screen shown when the user is trying to use their phone to sign into a website on a laptop, but something (probably out of their control) went wrong">
Something went wrong
</message>
@@ -4563,6 +4674,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Can’t connect to your computer. Try another verification option.
</message>
+ <message name="IDS_CABLEV2_ERROR_BLE_PERMISSION" desc="The description of an error shown when the user is trying to use their phone to sign into a website on a laptop, but the user denied Chrome the permission it needs to do this. Below this message is a button that will open the Settings app where the user can grant the permission. 'Nearby devices' is the name of the specific permission in Settings that needs to be granted. It is TC ID 5529147543651181991 and, ideally, the same wording that will appear in Settings would be used here.">
+ <ph name="PRODUCT_NAME">%1$s<ex>Chrome</ex></ph> needs Nearby devices permission in order to connect to your device
+ </message>
+
<message name="IDS_CABLEV2_ERROR_GENERIC" desc="The description of an error shown when the user is trying to use their phone to sign into a website on a laptop, but some generic error occured.">
Try another verification option
</message>
@@ -4587,10 +4702,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Turning on Bluetooth…
</message>
- <message name="IDS_CABLEV2_BLE_ENABLE_BODY" desc="The subheading on a screen that'll appear on a phone when we need to enable Bluetooth on the device. This screen will appear for a couple of seconds to give context, then a prompt will appear to allow the user to confirm that they wish to enable Bluetooth. Bluetooth is a radio technology commonly found in phones. This subheading is informing the user that, if they opt to turn on Bluetooth for this operation, it'll automatically be switched off again afterwards.">
- Bluetooth will turn back off when you're done
- </message>
-
<!-- QR Code -->
<message name="IDS_QR_CODE_SHARE_ICON_LABEL" desc="Icon label for sharing with QR Code activity.">
QR Code
@@ -4644,6 +4755,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Copy image
</message>
+ <message name="IDS_SHARING_LIGHTWEIGHT_REACTIONS" desc="Label for the Add emotion button in sharing hub.">
+ Add emotion
+ </message>
+
<message name="IDS_SHARING_SCREENSHOT" desc="Label for Screenshot button in the sharing hub.">
Screenshot
</message>
@@ -4680,13 +4795,18 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Something went wrong. Try again.
</message>
- <message name="IDS_SHARING_HIGHLIGHTS" desc="Label for Link-to-text button in the sharing hub.">
- Link to highlight
- </message>
-
<message name="IDS_SHARING_WEBNOTES_CREATE_CARD" desc="Label for the button in sharing hub for creating card for the highlight text.">
Create card
</message>
+
+ <message name="IDS_SHARING_WEBNOTES_ACCESSIBILITY_DESCRIPTION" desc="Accessibility description for the button in sharing hub for creating card for the highlight text.">
+ Create stylized card with highlight
+ </message>
+
+ <message name="IDS_SHARING_SAVE_IMAGE" desc="Label for the button in sharing hub for saving an image to device.">
+ Save to device
+ </message>
+
<message name="IDS_SHARING_COPIED" desc="Text shown in the toast notification when Copy is selected in the sharing hub.">
Copied
</message>
@@ -4743,19 +4863,15 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
chrome_qrcode_<ph name="CURRENT_TIMESTAMP_MS">%1$s<ex>1582667748515</ex></ph>
</message>
- <message name="IDS_LINK_TO_TEXT_FAILURE_TOAST_MESSAGE" desc="Toast displayed when link to highlighted text was not possible to create.">
- Can’t create link to highlight. Share link to page.
- </message>
-
<message name="IDS_LINK_TO_TEXT_FAILURE_TOAST_MESSAGE_V2" desc="Toast displayed when link to highlighted text was not possible to create.">
Can’t create link to highlight
</message>
- <message name="IDS_LINK_TO_TEXT_SUCCESS_LINK_TOAST_MESSAGE" desc="Toast displayed when link to highlighted text was not possible to create.">
+ <message name="IDS_LINK_TO_TEXT_SUCCESS_LINK_TOAST_MESSAGE" desc="Toast displayed when link to highlighted text was successfully created and will be shared.">
Include link to highlight
</message>
- <message name="IDS_LINK_TO_TEXT_SUCCESS_TEXT_TOAST_MESSAGE" desc="Toast displayed when link to highlighted text was not possible to create.">
+ <message name="IDS_LINK_TO_TEXT_SUCCESS_TEXT_TOAST_MESSAGE" desc="Toast displayed when link to highlighted text was successfully created but only text will be shared.">
Share text only
</message>
@@ -4763,6 +4879,34 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
New
</message>
+ <message name="IDS_LINK_TOGGLE_IPH" desc="In product help for the Sharing Hub link toggle feature.">
+ Include a link to the page
+ </message>
+
+ <message name="IDS_LINK_TOGGLE_INCLUDE_LINK" desc="Toast displayed when the toggle is clicked for a generic share and a link is included.">
+ Include link
+ </message>
+
+ <message name="IDS_LINK_TOGGLE_SHARE_WEBNOTE_ONLY" desc="Toast displayed when the toggle is clicked for a Webnote share and a link is excluded.">
+ Share card only
+ </message>
+
+ <message name="IDS_LINK_TOGGLE_SHARE_SCREENSHOT_ONLY" desc="Toast displayed when the toggle is clicked for a screenshot share and a link is excluded.">
+ Share screenshot only
+ </message>
+
+ <message name="IDS_LINK_TOGGLE_SHARE_IMAGE_ONLY" desc="Toast displayed when the toggle is clicked for a image share and a link is excluded.">
+ Share image only
+ </message>
+
+ <message name="IDS_LINK_TOGGLE_SHARE_GIF_ONLY" desc="Toast displayed when the toggle is clicked for a GIF share and a link is excluded.">
+ Share GIF only
+ </message>
+
+ <message name="IDS_LINK_TOGGLE_SHARE_CONTENT_ONLY" desc="Fallback toast displayed when the toggle is clicked for a generic share and a link is excluded.">
+ Share content only
+ </message>
+
<!-- Share Screenshot strings -->
<message name="IDS_SCREENSHOT_EDIT_TITLE" desc="The text shown on the share option for screenshots.">
Edit
@@ -4788,6 +4932,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS">%1$s<ex>1582667748515</ex></ph>
</message>
+ <message name="IDS_SAVE_IMAGE_FILENAME_PREFIX" desc="File name prefix for downloaded image that is followed by timestamp.">
+ chrome_image_<ph name="CURRENT_TIMESTAMP_MS">%1$s<ex>1582667748515</ex></ph>
+ </message>
+
<!-- Chime DFM module strings -->
<message name="IDS_CHIME_MODULE_TITLE" desc="Text shown when the chime module is referenced in install start, success, failure UI (e.g. in IDS_MODULE_INSTALL_START_TEXT, which will expand to 'Installing Google Notifications Platform for Chrome…').">
Google Notifications Platform
@@ -4947,12 +5095,16 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
</message>
<!-- WebID Account Selection strings -->
- <message name="IDS_ACCOUNT_SELECTION_SHEET_TITLE_SINGLE" desc="Header for Account Selection sheet where users only have a single account to select." translateable="false">
- Create a <ph name="SITE_NAME">%1$s<ex>airbnb.com</ex></ph> account
+ <message name="IDS_ACCOUNT_SELECTION_SHEET_TITLE_SINGLE" desc="Header for Account Selection sheet where the user only has a single account to sign up with." translateable="false">
+ Sign up for <ph name="SITE_NAME">%1$s<ex>rp.example</ex></ph>
+ </message>
+ <message name="IDS_ACCOUNT_SELECTION_SHEET_TITLE" desc="Header for Account Selection sheet where the user can pick an account to sign up with." translateable="false">
+ Choose an account to sign up for <ph name="SITE_NAME">%1$s<ex>rp.example</ex></ph>
</message>
- <message name="IDS_ACCOUNT_SELECTION_SHEET_TITLE" desc="Header for Account Selection sheet where users can pick an account to select." translateable="false">
- Create a <ph name="SITE_NAME">%1$s<ex>airbnb.com</ex></ph> account…
+ <message name="IDS_ACCOUNT_SELECTION_DATA_SHARING_CONSENT" desc="The consent text shown to the user before sign up." translateable="false">
+ To sign up, <ph name="PROVIDER_NAME">%1$s<ex>provider.example</ex></ph> will share your name, email, address, and profile picture with the site. See <ph name="BEGIN_LINK1">&lt;link1&gt;</ph>Privacy Policy<ph name="END_LINK1">&lt;/link1&gt;</ph> and <ph name="BEGIN_LINK2">&lt;link2&gt;</ph>Terms of service<ph name="END_LINK2">&lt;/link2&gt;</ph>.
</message>
+
<message name="IDS_ACCOUNT_SELECTION_CONTINUE" desc="Title of the button that continues filling with the only available set of credentials." translateable="false">
Continue as <ph name="NAME">%1$s<ex>Albus (or Albus Dumbledore)</ex></ph>
</message>
@@ -4968,6 +5120,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_ACCOUNT_SELECTION_SHEET_CLOSED" desc="Accessibility string read when the Account Selection bottom sheet showing a list of the user's accounts is closed." translateable="false">
List of accounts to be selected is closed.
</message>
+ <message name="IDS_SIGN_IN_SHEET_TITLE" desc="Header for sign in sheet." translateable="false">
+ Signing into <ph name="SITE_NAME">%1$s<ex>rp.example</ex></ph>
+ </message>
<!-- Content Creation strings -->
<message name="IDS_CONTENT_CREATION_NOTE_TITLE_FOR_SHARE" desc="The title of the share sheet when sharing a stylized note. The date will be formatted according to the current locale.">
@@ -4980,7 +5135,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<ph name="TEMPLATE_TITLE">%1$s<ex>Classic</ex> template selected</ph>
</message>
<message name="IDS_CONTENT_CREATION_NOTE_DIALOG_DESCRIPTION" desc="Accessibility information for note template picking dialog.">
- Select a template for your highlight. To return to the main dialog, use an up then down gesture, then tap Next.
+ Select a template for your highlight.
</message>
<message name="IDS_CONTENT_CREATION_NOTE_SHORTENED_MESSAGE" desc="Toast message displayed when highlighted text is too long and is cropped to fit in the note.">
Highlight was shortened
@@ -4999,6 +5154,52 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_SETTINGS_HTTPS_FIRST_MODE_SUMMARY" desc="Secondary, continued explanation of HTTPS-First Mode in settings.">
Upgrade navigations to HTTPS and warn you before loading sites that don’t support it
</message>
+
+ <!-- Auto-darken web content -->
+ <message name="IDS_AUTO_DARK_MESSAGE_TITLE" desc="Message shown that informs the user auto darkening of website contents has been enabled.">
+ Dark theme for sites is on in Chrome
+ </message>
+ <message name="IDS_AUTO_DARK_MESSAGE_BUTTON" desc="The label for the button to enter theme settings.">
+ Open settings
+ </message>
+ <message name="IDS_AUTO_DARK_DIALOG_TITLE" desc="Title of dialog that asks the user to give feedback on auto dark theming.">
+ Share feedback on dark theme for sites?
+ </message>
+ <message name="IDS_AUTO_DARK_DIALOG_MESSAGE" desc="Description of dialog that asks the user to give feedback on auto dark theming.">
+ Tell us about your experience. Or <ph name="BEGIN_LINK">&lt;link&gt;</ph>change your settings<ph name="END_LINK">&lt;/link&gt;</ph>.
+ </message>
+ <message name="IDS_AUTO_DARK_DIALOG_POSITIVE_BUTTON" desc="The label for the button to give feedback.">
+ Share feedback
+ </message>
+ <message name="IDS_AUTO_DARK_DIALOG_NO_FEEDBACK_TITLE" desc="Title of dialog that asks if users want to disable auto dark theming.">
+ Change your dark theme settings?
+ </message>
+ <message name="IDS_AUTO_DARK_DIALOG_NO_FEEDBACK_MESSAGE" desc="Description of dialog that informs the user that auto dark theming can be disabled in theme settings.">
+ You can turn off dark theme for sites in your settings.
+ </message>
+ <message name="IDS_AUTO_DARK_DIALOG_NO_FEEDBACK_POSITIVE_BUTTON" desc="The label for the button to enter theme settings.">
+ Open settings
+ </message>
+
+ <!-- Profile Management strings -->
+ <message name="IDS_MANAGEMENT" desc="Title of the chrome://management page, which shows whether the account is managed.">
+ Management
+ </message>
+ <message name="IDS_MANAGEMENT_SUBTITLE" desc="The title of the chrome://management page when the browser runs in an environment managed by an unknown organization. (e.g. Employer owned device that has a managed Profile)">
+ Your browser is managed by your administrator
+ </message>
+ <message name="IDS_MANAGEMENT_SUBTITLE_MANAGED_BY" desc="The title of the chrome://management page when the browser runs in an environment managed by a known organization. (e.g. Employer owned device enrolled to CBCM)">
+ Your browser is managed by <ph name="DOMAIN">%1$s<ex>google.com</ex></ph>
+ </message>
+ <message name="IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE" desc="The title of the chrome://management page when the browser runs in an environment which is not not managed by any organization. (e.g. A personal device bought at a store)">
+ Your browser is not managed
+ </message>
+ <message name="IDS_MANAGEMENT_BROWSER_NOTICE" desc="The descriptive text on chrome://management page that explains to the user the implications of browsing under a managed environment.">
+ Your administrator can change your browser setup remotely. Activity on this device may also be managed outside of Chrome.
+ </message>
+ <message name="IDS_MANAGEMENT_LEARN_MORE" desc="The learn more link on chrome://management page that provides more information about managed devices.">
+ <ph name="BEGIN_LINK">&lt;a href="$1<ex>https://google.com/</ex>"&gt;</ph>Learn More<ph name="END_LINK">&lt;/a&gt;</ph>
+ </message>
</messages>
</release>
</grit>
diff --git a/chromium/chrome/browser/ui/android/toolbar/BUILD.gn b/chromium/chrome/browser/ui/android/toolbar/BUILD.gn
index 4233b54a771..8d56518bb52 100644
--- a/chromium/chrome/browser/ui/android/toolbar/BUILD.gn
+++ b/chromium/chrome/browser/ui/android/toolbar/BUILD.gn
@@ -106,6 +106,7 @@ android_library("java") {
"//chrome/browser/feature_engagement:java",
"//chrome/browser/flags:java",
"//chrome/browser/fullscreen/android:java",
+ "//chrome/browser/incognito:java",
"//chrome/browser/paint_preview/android:java",
"//chrome/browser/preferences:java",
"//chrome/browser/profiles/android:java",
@@ -178,7 +179,6 @@ android_resources("java_resources") {
"java/res/drawable-hdpi/popup_bg_bottom.9.png",
"java/res/drawable-ldrtl-hdpi-v17/btn_toolbar_reload.png",
"java/res/drawable-ldrtl-mdpi-v17/btn_toolbar_reload.png",
- "java/res/drawable-ldrtl-sw600dp-night-xhdpi/toolbar_background.9.png",
"java/res/drawable-ldrtl-sw600dp-xhdpi-v17/toolbar_background.9.png",
"java/res/drawable-ldrtl-xhdpi-v17/btn_toolbar_reload.png",
"java/res/drawable-ldrtl-xxhdpi-v17/btn_toolbar_reload.png",
@@ -193,7 +193,6 @@ android_resources("java_resources") {
"java/res/drawable-mdpi/incognito_switch.png",
"java/res/drawable-mdpi/modern_location_bar.9.png",
"java/res/drawable-mdpi/popup_bg_bottom.9.png",
- "java/res/drawable-sw600dp-night-xhdpi/toolbar_background.9.png",
"java/res/drawable-sw600dp-xhdpi/toolbar_background.9.png",
"java/res/drawable-v21/ntp_search_box.xml",
"java/res/drawable-xhdpi/badge_update_dark.png",
diff --git a/chromium/chrome/browser/ui/android/webid/BUILD.gn b/chromium/chrome/browser/ui/android/webid/BUILD.gn
index 799f99ed174..87bf53f98d5 100644
--- a/chromium/chrome/browser/ui/android/webid/BUILD.gn
+++ b/chromium/chrome/browser/ui/android/webid/BUILD.gn
@@ -16,6 +16,7 @@ android_library("public_java") {
sources = [
"java/src/org/chromium/chrome/browser/ui/android/webid/AccountSelectionComponent.java",
"java/src/org/chromium/chrome/browser/ui/android/webid/data/Account.java",
+ "java/src/org/chromium/chrome/browser/ui/android/webid/data/ClientIdMetadata.java",
]
}
@@ -23,5 +24,6 @@ generate_jni("jni_headers") {
sources = [
"internal/java/src/org/chromium/chrome/browser/ui/android/webid/AccountSelectionBridge.java",
"java/src/org/chromium/chrome/browser/ui/android/webid/data/Account.java",
+ "java/src/org/chromium/chrome/browser/ui/android/webid/data/ClientIdMetadata.java",
]
}
diff --git a/chromium/chrome/browser/ui/android/webid/internal/BUILD.gn b/chromium/chrome/browser/ui/android/webid/internal/BUILD.gn
index c6392c45ae4..56eff3889e8 100644
--- a/chromium/chrome/browser/ui/android/webid/internal/BUILD.gn
+++ b/chromium/chrome/browser/ui/android/webid/internal/BUILD.gn
@@ -12,8 +12,11 @@ android_library("java") {
":java_resources",
"//base:base_java",
"//base:jni_java",
+ "//chrome/android:chrome_java",
"//chrome/browser/flags:java",
"//chrome/browser/profiles/android:java",
+ "//chrome/browser/tab:java",
+ "//chrome/browser/tabmodel:java",
"//chrome/browser/ui/android/favicon:java",
"//chrome/browser/ui/android/webid:public_java",
"//chrome/browser/util:java",
@@ -53,8 +56,10 @@ android_resources("java_resources") {
sources = [
"java/res/layout/account_selection_account_item.xml",
"java/res/layout/account_selection_continue_button.xml",
+ "java/res/layout/account_selection_data_sharing_consent_item.xml",
"java/res/layout/account_selection_header_item.xml",
"java/res/layout/account_selection_sheet.xml",
+ "java/res/layout/auto_sign_in_cancel_button.xml",
"java/res/values/dimens.xml",
]
}
@@ -106,6 +111,7 @@ android_library("javatests") {
"//chrome/android:chrome_java",
"//chrome/android:chrome_test_java",
"//chrome/browser/flags:java",
+ "//chrome/browser/tab:java",
"//chrome/browser/ui/android/webid:public_java",
"//chrome/test/android:chrome_java_test_support",
"//components/browser_ui/bottomsheet/android:java",
diff --git a/chromium/chrome/browser/ui/app_list/search/ranking/BUILD.gn b/chromium/chrome/browser/ui/app_list/search/ranking/BUILD.gn
new file mode 100644
index 00000000000..3851d557bc1
--- /dev/null
+++ b/chromium/chrome/browser/ui/app_list/search/ranking/BUILD.gn
@@ -0,0 +1,13 @@
+# 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.
+
+import("//third_party/protobuf/proto_library.gni")
+
+proto_library("proto") {
+ sources = [
+ "mrfu_cache.proto",
+ "persistent_proto_test.proto",
+ "score_normalizer.proto",
+ ]
+}
diff --git a/chromium/chrome/browser/ui/color/BUILD.gn b/chromium/chrome/browser/ui/color/BUILD.gn
index 15f7ad86a83..41db63bbb5b 100644
--- a/chromium/chrome/browser/ui/color/BUILD.gn
+++ b/chromium/chrome/browser/ui/color/BUILD.gn
@@ -10,24 +10,12 @@ source_set("color_headers") {
public_deps = [ "//ui/color:color_headers" ]
}
-executable("dump_colors") {
- testonly = true
-
- sources = [ "tools/dump_colors.cc" ]
-
- deps = [
- ":color_headers",
- ":mixers",
- "//ui/color:mixers",
- ]
-}
-
source_set("mixers") {
sources = [
- "chrome_color_mixers.cc",
- "chrome_color_mixers.h",
- "omnibox_color_mixers.cc",
- "omnibox_color_mixers.h",
+ "chrome_color_mixer.cc",
+ "chrome_color_mixer.h",
+ "omnibox_color_mixer.cc",
+ "omnibox_color_mixer.h",
]
deps = [
@@ -36,3 +24,37 @@ source_set("mixers") {
"//ui/color:mixers",
]
}
+
+if (!is_ios && !is_android && !is_chromecast && !is_fuchsia) {
+ executable("dump_colors") {
+ testonly = true
+
+ sources = [ "tools/dump_colors.cc" ]
+
+ deps = [
+ ":color_headers",
+ ":mixers",
+ "//chrome/browser",
+ "//ui/color:mixers",
+ ]
+
+ if (is_mac) {
+ sources += [
+ "//chrome/app/chrome_crash_reporter_client.cc",
+ "//chrome/app/chrome_crash_reporter_client_mac.mm",
+ ]
+
+ deps += [
+ "//chrome/app_shim",
+ "//components/upload_list",
+ ]
+ }
+
+ if (is_win) {
+ deps += [
+ "//chrome/chrome_elf:test_stubs",
+ "//components/crash/core/app:crash_export_thunks",
+ ]
+ }
+ }
+}
diff --git a/chromium/chrome/browser/ui/webui/DEPS b/chromium/chrome/browser/ui/webui/DEPS
index b8ccae7c701..62fff476b9a 100644
--- a/chromium/chrome/browser/ui/webui/DEPS
+++ b/chromium/chrome/browser/ui/webui/DEPS
@@ -2,6 +2,7 @@ include_rules = [
"+ash/components/account_manager",
"+ash/components/audio",
"+ash/webui/os_feedback_ui",
+ "+components/browser_ui/share/android",
"+components/services/app_service/public",
"+device/bluetooth",
"+extensions/strings/grit/extensions_strings.h",
diff --git a/chromium/chrome/browser/ui/webui/about_ui.cc b/chromium/chrome/browser/ui/webui/about_ui.cc
index ee7fb0d0343..7a0c68c3f18 100644
--- a/chromium/chrome/browser/ui/webui/about_ui.cc
+++ b/chromium/chrome/browser/ui/webui/about_ui.cc
@@ -188,6 +188,9 @@ base::FilePath CreateDemoResourcesTermsPath(const base::FilePath& file_path) {
class ChromeOSTermsHandler
: public base::RefCountedThreadSafe<ChromeOSTermsHandler> {
public:
+ ChromeOSTermsHandler(const ChromeOSTermsHandler&) = delete;
+ ChromeOSTermsHandler& operator=(const ChromeOSTermsHandler&) = delete;
+
static void Start(const std::string& path,
content::URLDataSource::GotDataCallback callback) {
scoped_refptr<ChromeOSTermsHandler> handler(
@@ -340,13 +343,14 @@ class ChromeOSTermsHandler
// EULA contents that was loaded from file.
std::string contents_;
-
- DISALLOW_COPY_AND_ASSIGN(ChromeOSTermsHandler);
};
class ChromeOSCreditsHandler
: public base::RefCountedThreadSafe<ChromeOSCreditsHandler> {
public:
+ ChromeOSCreditsHandler(const ChromeOSCreditsHandler&) = delete;
+ ChromeOSCreditsHandler& operator=(const ChromeOSCreditsHandler&) = delete;
+
static void Start(const std::string& path,
content::URLDataSource::GotDataCallback callback) {
scoped_refptr<ChromeOSCreditsHandler> handler(
@@ -407,13 +411,14 @@ class ChromeOSCreditsHandler
// Chrome OS credits contents that was loaded from file.
std::string contents_;
-
- DISALLOW_COPY_AND_ASSIGN(ChromeOSCreditsHandler);
};
class CrostiniCreditsHandler
: public base::RefCountedThreadSafe<CrostiniCreditsHandler> {
public:
+ CrostiniCreditsHandler(const CrostiniCreditsHandler&) = delete;
+ CrostiniCreditsHandler& operator=(const CrostiniCreditsHandler&) = delete;
+
static void Start(Profile* profile,
const std::string& path,
content::URLDataSource::GotDataCallback callback) {
@@ -491,8 +496,6 @@ class CrostiniCreditsHandler
std::string contents_;
Profile* profile_;
-
- DISALLOW_COPY_AND_ASSIGN(CrostiniCreditsHandler);
};
#endif
@@ -687,15 +690,6 @@ bool AboutUIHTMLSource::ShouldAddContentSecurityPolicy() {
return content::URLDataSource::ShouldAddContentSecurityPolicy();
}
-std::string AboutUIHTMLSource::GetContentSecurityPolicy(
- network::mojom::CSPDirectiveName directive) {
- if (source_name_ == chrome::kChromeUICreditsHost &&
- directive == network::mojom::CSPDirectiveName::TrustedTypes) {
- return "trusted-types credits-static;";
- }
- return content::URLDataSource::GetContentSecurityPolicy(directive);
-}
-
std::string AboutUIHTMLSource::GetAccessControlAllowOriginForOrigin(
const std::string& origin) {
#if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chromium/chrome/browser/ui/webui/about_ui.h b/chromium/chrome/browser/ui/webui/about_ui.h
index 43c6f6b91ef..703c35941b0 100644
--- a/chromium/chrome/browser/ui/webui/about_ui.h
+++ b/chromium/chrome/browser/ui/webui/about_ui.h
@@ -20,6 +20,10 @@ class AboutUIHTMLSource : public content::URLDataSource {
public:
// Construct a data source for the specified |source_name|.
AboutUIHTMLSource(const std::string& source_name, Profile* profile);
+
+ AboutUIHTMLSource(const AboutUIHTMLSource&) = delete;
+ AboutUIHTMLSource& operator=(const AboutUIHTMLSource&) = delete;
+
~AboutUIHTMLSource() override;
// content::URLDataSource implementation.
@@ -30,8 +34,6 @@ class AboutUIHTMLSource : public content::URLDataSource {
content::URLDataSource::GotDataCallback callback) override;
std::string GetMimeType(const std::string& path) override;
bool ShouldAddContentSecurityPolicy() override;
- std::string GetContentSecurityPolicy(
- network::mojom::CSPDirectiveName directive) override;
std::string GetAccessControlAllowOriginForOrigin(
const std::string& origin) override;
@@ -44,17 +46,16 @@ class AboutUIHTMLSource : public content::URLDataSource {
private:
std::string source_name_;
Profile* profile_;
-
- DISALLOW_COPY_AND_ASSIGN(AboutUIHTMLSource);
};
class AboutUI : public content::WebUIController {
public:
explicit AboutUI(content::WebUI* web_ui, const std::string& host);
- ~AboutUI() override {}
- private:
- DISALLOW_COPY_AND_ASSIGN(AboutUI);
+ AboutUI(const AboutUI&) = delete;
+ AboutUI& operator=(const AboutUI&) = delete;
+
+ ~AboutUI() override {}
};
namespace about_ui {
diff --git a/chromium/chrome/browser/ui/webui/about_ui_unittest.cc b/chromium/chrome/browser/ui/webui/about_ui_unittest.cc
index b082ad82194..71d9b077c2b 100644
--- a/chromium/chrome/browser/ui/webui/about_ui_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/about_ui_unittest.cc
@@ -39,6 +39,10 @@ namespace {
class TestDataReceiver {
public:
TestDataReceiver() = default;
+
+ TestDataReceiver(const TestDataReceiver&) = delete;
+ TestDataReceiver& operator=(const TestDataReceiver&) = delete;
+
virtual ~TestDataReceiver() = default;
bool data_received() const { return data_received_; }
@@ -60,14 +64,16 @@ class TestDataReceiver {
private:
bool data_received_ = false;
std::string data_;
-
- DISALLOW_COPY_AND_ASSIGN(TestDataReceiver);
};
} // namespace
// Base class for ChromeOS offline terms tests.
class ChromeOSTermsTest : public testing::Test {
+ public:
+ ChromeOSTermsTest(const ChromeOSTermsTest&) = delete;
+ ChromeOSTermsTest& operator=(const ChromeOSTermsTest&) = delete;
+
protected:
ChromeOSTermsTest() {}
~ChromeOSTermsTest() override = default;
@@ -137,8 +143,6 @@ class ChromeOSTermsTest : public testing::Test {
chromeos::system::ScopedFakeStatisticsProvider statistics_provider_;
std::unique_ptr<AboutUIHTMLSource> tested_html_source_;
-
- DISALLOW_COPY_AND_ASSIGN(ChromeOSTermsTest);
};
TEST_F(ChromeOSTermsTest, NoData) {
@@ -160,6 +164,11 @@ TEST_F(ChromeOSTermsTest, NoData) {
// Demo mode ARC++ ToS and privacy policy test.
class DemoModeChromeOSTermsTest : public ChromeOSTermsTest {
+ public:
+ DemoModeChromeOSTermsTest(const DemoModeChromeOSTermsTest&) = delete;
+ DemoModeChromeOSTermsTest& operator=(const DemoModeChromeOSTermsTest&) =
+ delete;
+
protected:
DemoModeChromeOSTermsTest() = default;
~DemoModeChromeOSTermsTest() override = default;
@@ -224,8 +233,6 @@ class DemoModeChromeOSTermsTest : public ChromeOSTermsTest {
private:
std::unique_ptr<ash::FakeLoginDisplayHost> fake_login_display_host_;
-
- DISALLOW_COPY_AND_ASSIGN(DemoModeChromeOSTermsTest);
};
TEST_F(DemoModeChromeOSTermsTest, TermsSimpleRegion) {
diff --git a/chromium/chrome/browser/ui/webui/app_launcher_page_ui.cc b/chromium/chrome/browser/ui/webui/app_launcher_page_ui.cc
index 1d46d62bdf9..a3aa1c937c4 100644
--- a/chromium/chrome/browser/ui/webui/app_launcher_page_ui.cc
+++ b/chromium/chrome/browser/ui/webui/app_launcher_page_ui.cc
@@ -60,7 +60,7 @@ AppLauncherPageUI::AppLauncherPageUI(content::WebUI* web_ui)
extensions::ExtensionService* service =
extensions::ExtensionSystem::Get(GetProfile())->extension_service();
web_app::WebAppProvider* web_app_provider =
- web_app::WebAppProvider::Get(GetProfile());
+ web_app::WebAppProvider::GetForWebApps(GetProfile());
DCHECK(web_app_provider);
DCHECK(service);
// We should not be launched without an ExtensionService or WebAppProvider.
diff --git a/chromium/chrome/browser/ui/webui/app_launcher_page_ui.h b/chromium/chrome/browser/ui/webui/app_launcher_page_ui.h
index a5496005e5c..7a252d1c862 100644
--- a/chromium/chrome/browser/ui/webui/app_launcher_page_ui.h
+++ b/chromium/chrome/browser/ui/webui/app_launcher_page_ui.h
@@ -20,6 +20,10 @@ class RefCountedMemory;
class AppLauncherPageUI : public content::WebUIController {
public:
explicit AppLauncherPageUI(content::WebUI* web_ui);
+
+ AppLauncherPageUI(const AppLauncherPageUI&) = delete;
+ AppLauncherPageUI& operator=(const AppLauncherPageUI&) = delete;
+
~AppLauncherPageUI() override;
static base::RefCountedMemory* GetFaviconResourceBytes(
@@ -30,8 +34,6 @@ class AppLauncherPageUI : public content::WebUIController {
Profile* GetProfile() const;
PrefChangeRegistrar pref_change_registrar_;
-
- DISALLOW_COPY_AND_ASSIGN(AppLauncherPageUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_APP_LAUNCHER_PAGE_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/app_management/OWNERS b/chromium/chrome/browser/ui/webui/app_management/OWNERS
index 3b255369827..3e5930ef597 100644
--- a/chromium/chrome/browser/ui/webui/app_management/OWNERS
+++ b/chromium/chrome/browser/ui/webui/app_management/OWNERS
@@ -1,5 +1,7 @@
per-file *.mojom=set noparent
per-file *.mojom=file://ipc/SECURITY_OWNERS
-dominickn@chromium.org
jshikaram@chromium.org
+
+# For backup
+dominickn@chromium.org
diff --git a/chromium/chrome/browser/ui/webui/app_management/app_management.mojom b/chromium/chrome/browser/ui/webui/app_management/app_management.mojom
index 2a1502c98b6..f9a706408a1 100644
--- a/chromium/chrome/browser/ui/webui/app_management/app_management.mojom
+++ b/chromium/chrome/browser/ui/webui/app_management/app_management.mojom
@@ -20,8 +20,8 @@ struct App {
apps.mojom.OptionalBool is_policy_pinned;
string? version;
string? size;
- map<uint32, apps.mojom.Permission> permissions;
- apps.mojom.InstallSource install_source;
+ map<apps.mojom.PermissionType, apps.mojom.Permission> permissions;
+ apps.mojom.InstallReason install_reason;
bool hide_more_settings;
bool hide_pin_to_shelf;
bool is_preferred_app;
@@ -56,6 +56,9 @@ interface PageHandler {
Uninstall(string app_id);
OpenNativeSettings(string app_id);
SetPreferredApp(string app_id, bool is_preferred_app);
+ // Returns a list of |app_ids| that are currently set as preferred apps
+ // and have overlapping intent filters with |app_id|.
+ GetOverlappingPreferredApps(string app_id) => (array<string> app_ids);
};
// Frontend interface.
@@ -64,39 +67,3 @@ interface Page {
OnAppChanged(App update);
OnAppRemoved(string app_id);
};
-
-// Permission Type Enums for each App Publisher. The App Publishers are
-// required to provide these values so the WebUI can map permission ID to
-// permission value.
-
-// This enum shows the ARC permission values currently supported over the
-// App Service. It should always match the AppPermission enum in
-// app_permissions.mojom
-enum ArcPermissionType {
- CAMERA = 0,
- LOCATION = 1,
- MICROPHONE = 2,
- NOTIFICATIONS = 3,
- CONTACTS = 4,
- STORAGE = 5,
-};
-
-// This enum takes the important permission values from the
-// contents_settings_type.h ContentSettingsType enum.
-enum PwaPermissionType {
- GEOLOCATION = 4,
- NOTIFICATIONS = 5,
- MEDIASTREAM_MIC = 8,
- MEDIASTREAM_CAMERA = 9,
-};
-
-// The Plugin VM app publisher uses this enum directly.
-enum PluginVmPermissionType {
- PRINTING = 0,
- CAMERA = 1,
- MICROPHONE = 2,
-};
-
-enum BorealisPermissionType {
- MICROPHONE = 0,
-};
diff --git a/chromium/chrome/browser/ui/webui/app_management/app_management_page_handler.cc b/chromium/chrome/browser/ui/webui/app_management/app_management_page_handler.cc
index e8f45e36f8d..6e3d540474f 100644
--- a/chromium/chrome/browser/ui/webui/app_management/app_management_page_handler.cc
+++ b/chromium/chrome/browser/ui/webui/app_management/app_management_page_handler.cc
@@ -9,6 +9,7 @@
#include "base/containers/contains.h"
#include "base/containers/flat_map.h"
+#include "base/containers/flat_set.h"
#include "base/strings/utf_string_conversions.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/apps/app_service/app_service_proxy.h"
@@ -17,6 +18,7 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/app_management/app_management.mojom.h"
#include "components/services/app_service/public/cpp/app_registry_cache.h"
+#include "components/services/app_service/public/cpp/intent_constants.h"
#include "components/services/app_service/public/cpp/intent_filter_util.h"
#include "components/services/app_service/public/cpp/preferred_apps_list.h"
#include "components/services/app_service/public/cpp/types_util.h"
@@ -83,6 +85,41 @@ bool ShouldHideStoragePermission(const std::string app_id) {
#endif
}
+// Returns a list of intent filters that support http/https given an app ID.
+std::vector<apps::mojom::IntentFilterPtr> GetSupportedLinkIntentFilters(
+ Profile* profile,
+ const std::string& app_id) {
+ std::vector<apps::mojom::IntentFilterPtr> intent_filters;
+ apps::AppServiceProxyFactory::GetForProfile(profile)
+ ->AppRegistryCache()
+ .ForOneApp(app_id,
+ [&app_id, &intent_filters](const apps::AppUpdate& update) {
+ if (update.Readiness() == apps::mojom::Readiness::kReady) {
+ for (auto& filter : update.IntentFilters()) {
+ if (apps_util::IsSupportedLinkForApp(app_id, filter)) {
+ intent_filters.emplace_back(std::move(filter));
+ }
+ }
+ }
+ });
+ return intent_filters;
+}
+
+// Returns a list of URLs supported by an app given an app ID.
+std::vector<std::string> GetSupportedLinks(Profile* profile,
+ const std::string& app_id) {
+ std::set<std::string> supported_links;
+ auto intent_filters = GetSupportedLinkIntentFilters(profile, app_id);
+ for (auto& filter : intent_filters) {
+ for (const auto& link : apps_util::AppManagementGetSupportedLinks(filter)) {
+ supported_links.insert(link);
+ }
+ }
+
+ return std::vector<std::string>(supported_links.begin(),
+ supported_links.end());
+}
+
} // namespace
AppManagementPageHandler::AppManagementPageHandler(
@@ -199,53 +236,41 @@ void AppManagementPageHandler::OpenNativeSettings(const std::string& app_id) {
void AppManagementPageHandler::SetPreferredApp(const std::string& app_id,
bool is_preferred_app) {
- if (is_preferred_app &&
- !preferred_apps_list_.IsPreferredAppForSupportedLinks(app_id)) {
- // Only deal with overlapping links if we actually changed the permission
- // to true.
- apps::AppServiceProxyFactory::GetForProfile(profile_)
- ->AppRegistryCache()
- .ForOneApp(app_id, [this](const apps::AppUpdate& update) {
- if (update.Readiness() == apps::mojom::Readiness::kReady) {
- for (auto& filter : update.IntentFilters()) {
- if (apps_util::IsSupportedLink(filter)) {
- this->preferred_apps_list_.AddPreferredApp(update.AppId(),
- filter);
- }
- }
- }
- });
- } else if (!is_preferred_app &&
- preferred_apps_list_.IsPreferredAppForSupportedLinks(app_id)) {
- // If changed to false, remove all of the filters for that app.
- // Only deal with overlapping links if we actually changed the permission
- // to true.
- apps::AppServiceProxyFactory::GetForProfile(profile_)
- ->AppRegistryCache()
- .ForOneApp(app_id, [this](const apps::AppUpdate& update) {
- if (update.Readiness() == apps::mojom::Readiness::kReady) {
- for (auto& filter : update.IntentFilters()) {
- if (apps_util::IsSupportedLink(filter)) {
- this->preferred_apps_list_.DeletePreferredApp(update.AppId(),
- filter);
- }
- }
- }
- });
+ bool is_preferred_app_for_supported_links =
+ preferred_apps_list_.IsPreferredAppForSupportedLinks(app_id);
+ auto* proxy = apps::AppServiceProxyFactory::GetForProfile(profile_);
+
+ if (is_preferred_app && !is_preferred_app_for_supported_links) {
+ proxy->SetSupportedLinksPreference(app_id);
+ } else if (!is_preferred_app && is_preferred_app_for_supported_links) {
+ proxy->RemoveSupportedLinksPreference(app_id);
}
}
+void AppManagementPageHandler::GetOverlappingPreferredApps(
+ const std::string& app_id,
+ GetOverlappingPreferredAppsCallback callback) {
+ auto intent_filters = GetSupportedLinkIntentFilters(profile_, app_id);
+ base::flat_set<std::string> app_ids =
+ preferred_apps_list_.FindPreferredAppsForFilters(intent_filters);
+ app_ids.erase(app_id);
+ // Remove the use_browser app ID as it's mainly used inside the intent system and is not an app
+ // in app management. This prevents an overlap dialog from being shown when there are no "real"
+ // apps that overlap.
+ app_ids.erase(apps::kUseBrowserForLink);
+ std::move(callback).Run(std::move(app_ids).extract());
+}
+
app_management::mojom::AppPtr AppManagementPageHandler::CreateUIAppPtr(
const apps::AppUpdate& update) {
- base::flat_map<uint32_t, apps::mojom::PermissionPtr> permissions;
+ base::flat_map<apps::mojom::PermissionType, apps::mojom::PermissionPtr>
+ permissions;
for (const auto& permission : update.Permissions()) {
- if (static_cast<app_management::mojom::ArcPermissionType>(
- permission->permission_id) ==
- app_management::mojom::ArcPermissionType::STORAGE &&
+ if (permission->permission_type == apps::mojom::PermissionType::kStorage &&
ShouldHideStoragePermission(update.AppId())) {
continue;
}
- permissions[permission->permission_id] = permission->Clone();
+ permissions[permission->permission_type] = permission->Clone();
}
auto app = app_management::mojom::App::New();
@@ -253,7 +278,7 @@ app_management::mojom::AppPtr AppManagementPageHandler::CreateUIAppPtr(
app->type = update.AppType();
app->title = update.Name();
app->permissions = std::move(permissions);
- app->install_source = update.InstallSource();
+ app->install_reason = update.InstallReason();
app->description = update.Description();
@@ -277,36 +302,11 @@ app_management::mojom::AppPtr AppManagementPageHandler::CreateUIAppPtr(
update.ShowInShelf() == apps::mojom::OptionalBool::kFalse ||
ShouldHidePinToShelf(app->id);
app->window_mode = update.WindowMode();
- app->supported_links = GetSupportedLinksList(app->id);
+ app->supported_links = GetSupportedLinks(profile_, app->id);
return app;
}
-std::vector<std::string> AppManagementPageHandler::GetSupportedLinksList(
- const std::string& app_id) {
- std::vector<std::string> links;
- apps::AppServiceProxyFactory::GetForProfile(profile_)
- ->AppRegistryCache()
- .ForOneApp(app_id, [&links](const apps::AppUpdate& update) {
- if (update.Readiness() == apps::mojom::Readiness::kReady) {
- std::set<std::string> seen;
- for (const auto& filter : update.IntentFilters()) {
- if (apps_util::IsSupportedLink(filter)) {
- for (const auto& link :
- apps_util::AppManagementGetSupportedLinks(filter)) {
- // Add link to list if it hasn't already been seen.
- if (seen.find(link) == seen.end()) {
- links.emplace_back(link);
- seen.insert(link);
- }
- }
- }
- }
- }
- });
- return links;
-}
-
void AppManagementPageHandler::OnAppUpdate(const apps::AppUpdate& update) {
if (update.ShowInManagementChanged() || update.ReadinessChanged()) {
if (update.ShowInManagement() == apps::mojom::OptionalBool::kTrue &&
diff --git a/chromium/chrome/browser/ui/webui/app_management/app_management_page_handler.h b/chromium/chrome/browser/ui/webui/app_management/app_management_page_handler.h
index 0af57c5d9da..e695a7ed3de 100644
--- a/chromium/chrome/browser/ui/webui/app_management/app_management_page_handler.h
+++ b/chromium/chrome/browser/ui/webui/app_management/app_management_page_handler.h
@@ -27,6 +27,10 @@ class AppManagementPageHandler : public app_management::mojom::PageHandler,
mojo::PendingReceiver<app_management::mojom::PageHandler> receiver,
mojo::PendingRemote<app_management::mojom::Page> page,
Profile* profile);
+
+ AppManagementPageHandler(const AppManagementPageHandler&) = delete;
+ AppManagementPageHandler& operator=(const AppManagementPageHandler&) = delete;
+
~AppManagementPageHandler() override;
void OnPinnedChanged(const std::string& app_id, bool pinned);
@@ -45,10 +49,12 @@ class AppManagementPageHandler : public app_management::mojom::PageHandler,
void OpenNativeSettings(const std::string& app_id) override;
void SetPreferredApp(const std::string& app_id,
bool is_preferred_app) override;
+ void GetOverlappingPreferredApps(
+ const std::string& app_id,
+ GetOverlappingPreferredAppsCallback callback) override;
private:
app_management::mojom::AppPtr CreateUIAppPtr(const apps::AppUpdate& update);
- std::vector<std::string> GetSupportedLinksList(const std::string& app_id);
// apps::AppRegistryCache::Observer overrides:
void OnAppUpdate(const apps::AppUpdate& update) override;
@@ -80,8 +86,6 @@ class AppManagementPageHandler : public app_management::mojom::PageHandler,
base::ScopedObservation<apps::PreferredAppsList,
apps::PreferredAppsList::Observer>
preferred_apps_list_observer_{this};
-
- DISALLOW_COPY_AND_ASSIGN(AppManagementPageHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_APP_MANAGEMENT_APP_MANAGEMENT_PAGE_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/app_management/app_management_shelf_delegate_chromeos.cc b/chromium/chrome/browser/ui/webui/app_management/app_management_shelf_delegate_chromeos.cc
index 35712865b11..5cfad63432f 100644
--- a/chromium/chrome/browser/ui/webui/app_management/app_management_shelf_delegate_chromeos.cc
+++ b/chromium/chrome/browser/ui/webui/app_management/app_management_shelf_delegate_chromeos.cc
@@ -10,7 +10,8 @@
#include "ash/public/cpp/shelf_model.h"
#include "ash/public/cpp/shelf_types.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/ash/chrome_shelf_prefs.h"
+#include "chrome/browser/ui/ash/shelf/chrome_shelf_prefs.h"
+#include "chrome/browser/ui/ash/shelf/app_shortcut_shelf_item_controller.h"
#include "chrome/browser/ui/ash/shelf/chrome_shelf_controller.h"
#include "chrome/browser/ui/ash/shelf/chrome_shelf_controller_util.h"
#include "chrome/browser/ui/ash/shelf/shelf_controller_helper.h"
@@ -74,7 +75,8 @@ bool AppManagementShelfDelegate::IsPolicyPinned(
}
// The app doesn't exist on the shelf - check launcher prefs instead.
std::vector<std::string> policy_pinned_apps =
- GetAppsPinnedByPolicy(shelf_controller_helper_.get());
+ shelf_controller->shelf_prefs()->GetAppsPinnedByPolicy(
+ shelf_controller_helper_.get());
return std::any_of(policy_pinned_apps.begin(), policy_pinned_apps.end(),
[app_id](std::string app) { return app_id == app; });
}
@@ -82,15 +84,14 @@ bool AppManagementShelfDelegate::IsPolicyPinned(
void AppManagementShelfDelegate::SetPinned(const std::string& app_id,
OptionalBool pinned) {
auto* shelf_controller = ChromeShelfController::instance();
-
if (!shelf_controller) {
return;
}
if (pinned == OptionalBool::kTrue) {
- shelf_controller->PinAppWithID(app_id);
+ PinAppWithIDToShelf(app_id);
} else if (pinned == OptionalBool::kFalse) {
- shelf_controller->UnpinAppWithID(app_id);
+ UnpinAppWithIDFromShelf(app_id);
} else {
NOTREACHED();
}
diff --git a/chromium/chrome/browser/ui/webui/app_management/app_management_shelf_delegate_chromeos.h b/chromium/chrome/browser/ui/webui/app_management/app_management_shelf_delegate_chromeos.h
index 7e47bbf0f7f..cc5295cb758 100644
--- a/chromium/chrome/browser/ui/webui/app_management/app_management_shelf_delegate_chromeos.h
+++ b/chromium/chrome/browser/ui/webui/app_management/app_management_shelf_delegate_chromeos.h
@@ -23,6 +23,11 @@ class AppManagementShelfDelegate : public ash::ShelfModelObserver {
public:
explicit AppManagementShelfDelegate(AppManagementPageHandler* page_handler,
Profile* profile);
+
+ AppManagementShelfDelegate(const AppManagementShelfDelegate&) = delete;
+ AppManagementShelfDelegate& operator=(const AppManagementShelfDelegate&) =
+ delete;
+
~AppManagementShelfDelegate() override;
bool IsPinned(const std::string& app_id);
@@ -38,8 +43,6 @@ class AppManagementShelfDelegate : public ash::ShelfModelObserver {
AppManagementPageHandler* page_handler_;
std::unique_ptr<ShelfControllerHelper> shelf_controller_helper_;
-
- DISALLOW_COPY_AND_ASSIGN(AppManagementShelfDelegate);
};
#endif // CHROME_BROWSER_UI_WEBUI_APP_MANAGEMENT_APP_MANAGEMENT_SHELF_DELEGATE_CHROMEOS_H_
diff --git a/chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals.mojom b/chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals.mojom
index 542788d5d89..49431314f2b 100644
--- a/chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals.mojom
+++ b/chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals.mojom
@@ -17,10 +17,26 @@ struct AppInfo {
string debug_info;
};
+// Contains debugging information for the PreferredAppsList data for a single
+// installed app.
+struct PreferredAppInfo {
+ // The unique ID for the app.
+ string id;
+
+ // The app's human-readable name.
+ string name;
+
+ // Preformatted plain-text containing the app's preferred intent filters.
+ string preferred_filters;
+};
+
// Handler providing access to App Service information from the
// chrome://app-service-internals WebUI.
interface AppServiceInternalsPageHandler {
// Returns an array of debug information about every installed app.
GetApps() => (array<AppInfo> app_list);
+
+ // Returns an array of debug information about preferred apps.
+ GetPreferredApps() => (array<PreferredAppInfo> preferred_app_list_);
};
diff --git a/chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals_page_handler_impl.cc b/chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals_page_handler_impl.cc
index ac018b2fc14..0de418eeebf 100644
--- a/chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals_page_handler_impl.cc
+++ b/chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals_page_handler_impl.cc
@@ -4,14 +4,19 @@
#include "chrome/browser/ui/webui/app_service_internals/app_service_internals_page_handler_impl.h"
+#include <algorithm>
#include <sstream>
+#include <string>
#include <utility>
#include <vector>
+#include "base/containers/flat_map.h"
#include "base/template_util.h"
#include "chrome/browser/apps/app_service/app_service_proxy.h"
#include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
#include "components/services/app_service/public/cpp/app_update.h"
+#include "components/services/app_service/public/cpp/intent_constants.h"
+#include "components/services/app_service/public/cpp/intent_filter_util.h"
AppServiceInternalsPageHandlerImpl::AppServiceInternalsPageHandlerImpl(
Profile* profile)
@@ -40,5 +45,47 @@ void AppServiceInternalsPageHandlerImpl::GetApps(GetAppsCallback callback) {
debug_info.str());
});
+ std::sort(result.begin(), result.end(),
+ [](const auto& a, const auto& b) { return a->name < b->name; });
+ std::move(callback).Run(std::move(result));
+}
+
+void AppServiceInternalsPageHandlerImpl::GetPreferredApps(
+ GetPreferredAppsCallback callback) {
+ DCHECK(profile_);
+
+ std::vector<mojom::app_service_internals::PreferredAppInfoPtr> result;
+
+ auto* proxy = apps::AppServiceProxyFactory::GetForProfile(profile_);
+ if (!proxy) {
+ std::move(callback).Run(std::move(result));
+ return;
+ }
+
+ base::flat_map<std::string, std::stringstream> debug_info_map;
+
+ for (const auto& preferred_app : proxy->PreferredApps().GetReference()) {
+ const auto& filter = preferred_app->intent_filter;
+ apps::operator<<(debug_info_map[preferred_app->app_id], filter);
+ debug_info_map[preferred_app->app_id] << std::endl;
+ }
+
+ for (const auto& kv : debug_info_map) {
+ auto ptr = mojom::app_service_internals::PreferredAppInfo::New();
+ ptr->id = kv.first;
+
+ if (ptr->id == apps::kUseBrowserForLink) {
+ ptr->name = ptr->id;
+ } else {
+ proxy->AppRegistryCache().ForOneApp(
+ kv.first,
+ [&ptr](const apps::AppUpdate& update) { ptr->name = update.Name(); });
+ }
+ ptr->preferred_filters = kv.second.str();
+ result.push_back(std::move(ptr));
+ }
+
+ std::sort(result.begin(), result.end(),
+ [](const auto& a, const auto& b) { return a->name < b->name; });
std::move(callback).Run(std::move(result));
}
diff --git a/chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals_page_handler_impl.h b/chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals_page_handler_impl.h
index 810d999b313..fec838d9af5 100644
--- a/chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals_page_handler_impl.h
+++ b/chromium/chrome/browser/ui/webui/app_service_internals/app_service_internals_page_handler_impl.h
@@ -20,6 +20,7 @@ class AppServiceInternalsPageHandlerImpl
// mojom::app_service_internals::AppServiceInternalsPageHandler:
void GetApps(GetAppsCallback callback) override;
+ void GetPreferredApps(GetPreferredAppsCallback callback) override;
private:
Profile* profile_;
diff --git a/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui.h b/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui.h
index 4869bd69573..8584fa2fe43 100644
--- a/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui.h
@@ -15,10 +15,11 @@ class WebUI;
class AutofillInternalsUI : public content::WebUIController {
public:
explicit AutofillInternalsUI(content::WebUI* web_ui);
- ~AutofillInternalsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(AutofillInternalsUI);
+ AutofillInternalsUI(const AutofillInternalsUI&) = delete;
+ AutofillInternalsUI& operator=(const AutofillInternalsUI&) = delete;
+
+ ~AutofillInternalsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_AUTOFILL_AND_PASSWORD_MANAGER_INTERNALS_AUTOFILL_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui_browsertest.cc
index 07c762681d6..ab02ab3d81f 100644
--- a/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui_browsertest.cc
@@ -34,14 +34,14 @@ class AutofillInternalsWebUIBrowserTest : public InProcessBrowserTest {
void SpinRunLoop() {
base::RunLoop run_loop;
base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
- FROM_HERE, run_loop.QuitClosure(),
- base::TimeDelta::FromMilliseconds(20));
+ FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(20));
run_loop.Run();
}
};
IN_PROC_BROWSER_TEST_F(AutofillInternalsWebUIBrowserTest, ResetCache) {
- ui_test_utils::NavigateToURL(browser(), GURL("chrome://autofill-internals"));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(
+ browser(), GURL("chrome://autofill-internals")));
// Wait for reset-fake-button to become visible
constexpr char kGetResetButtonDisplayStyle[] =
diff --git a/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/internals_ui_handler.cc b/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/internals_ui_handler.cc
index 9343af98083..7bdf8cc12a3 100644
--- a/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/internals_ui_handler.cc
+++ b/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/internals_ui_handler.cc
@@ -93,10 +93,10 @@ InternalsUIHandler::~InternalsUIHandler() {
}
void InternalsUIHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"loaded", base::BindRepeating(&InternalsUIHandler::OnLoaded,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"resetCache", base::BindRepeating(&InternalsUIHandler::OnResetCache,
base::Unretained(this)));
}
diff --git a/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/internals_ui_handler.h b/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/internals_ui_handler.h
index a62ad8b2bca..f1c69ddcfa0 100644
--- a/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/internals_ui_handler.h
+++ b/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/internals_ui_handler.h
@@ -64,6 +64,10 @@ class InternalsUIHandler : public content::WebUIMessageHandler,
InternalsUIHandler(std::string call_on_load,
GetLogRouterFunction get_log_router_function);
+
+ InternalsUIHandler(const InternalsUIHandler&) = delete;
+ InternalsUIHandler& operator=(const InternalsUIHandler&) = delete;
+
~InternalsUIHandler() override;
private:
@@ -94,8 +98,6 @@ class InternalsUIHandler : public content::WebUIMessageHandler,
bool registered_with_log_router_ = false;
absl::optional<AutofillCacheResetter> autofill_cache_resetter_;
-
- DISALLOW_COPY_AND_ASSIGN(InternalsUIHandler);
};
} // namespace autofill
diff --git a/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/password_manager_internals_ui.h b/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/password_manager_internals_ui.h
index 3e557ddb78a..ecba6f02775 100644
--- a/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/password_manager_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/password_manager_internals_ui.h
@@ -15,10 +15,12 @@ class WebUI;
class PasswordManagerInternalsUI : public content::WebUIController {
public:
explicit PasswordManagerInternalsUI(content::WebUI* web_ui);
- ~PasswordManagerInternalsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(PasswordManagerInternalsUI);
+ PasswordManagerInternalsUI(const PasswordManagerInternalsUI&) = delete;
+ PasswordManagerInternalsUI& operator=(const PasswordManagerInternalsUI&) =
+ delete;
+
+ ~PasswordManagerInternalsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_AUTOFILL_AND_PASSWORD_MANAGER_INTERNALS_PASSWORD_MANAGER_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/password_manager_internals_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/password_manager_internals_ui_browsertest.cc
index cf9e5e19db5..19c38f761e7 100644
--- a/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/password_manager_internals_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/autofill_and_password_manager_internals/password_manager_internals_ui_browsertest.cc
@@ -147,7 +147,8 @@ IN_PROC_BROWSER_TEST_F(PasswordManagerInternalsWebUIBrowserTest,
browser()->profile());
ASSERT_TRUE(log_router);
log_router->ProcessLog("<script> text for testing");
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIVersionURL));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(),
+ GURL(chrome::kChromeUIVersionURL)));
}
// Test that the description is correct in a non-Incognito tab.
diff --git a/chromium/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_handler.h b/chromium/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_handler.h
index 8f51f96315d..94cbaa9deef 100644
--- a/chromium/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_handler.h
+++ b/chromium/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_handler.h
@@ -26,6 +26,11 @@ class BluetoothInternalsHandler : public mojom::BluetoothInternalsHandler {
public:
explicit BluetoothInternalsHandler(
mojo::PendingReceiver<mojom::BluetoothInternalsHandler> receiver);
+
+ BluetoothInternalsHandler(const BluetoothInternalsHandler&) = delete;
+ BluetoothInternalsHandler& operator=(const BluetoothInternalsHandler&) =
+ delete;
+
~BluetoothInternalsHandler() override;
#if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -51,8 +56,6 @@ class BluetoothInternalsHandler : public mojom::BluetoothInternalsHandler {
#endif
base::WeakPtrFactory<BluetoothInternalsHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(BluetoothInternalsHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_BLUETOOTH_INTERNALS_BLUETOOTH_INTERNALS_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_ui.h b/chromium/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_ui.h
index 8f22cb5e613..73433334ac5 100644
--- a/chromium/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_ui.h
@@ -16,6 +16,10 @@ class BluetoothInternalsHandler;
class BluetoothInternalsUI : public ui::MojoWebUIController {
public:
explicit BluetoothInternalsUI(content::WebUI* web_ui);
+
+ BluetoothInternalsUI(const BluetoothInternalsUI&) = delete;
+ BluetoothInternalsUI& operator=(const BluetoothInternalsUI&) = delete;
+
~BluetoothInternalsUI() override;
// Instantiates the implementor of the mojom::BluetoothInternalsHandler mojo
@@ -27,8 +31,6 @@ class BluetoothInternalsUI : public ui::MojoWebUIController {
std::unique_ptr<BluetoothInternalsHandler> page_handler_;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(BluetoothInternalsUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_BLUETOOTH_INTERNALS_BLUETOOTH_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_browsertest.h b/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_browsertest.h
index 7eee4f07067..3007a80315d 100644
--- a/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_browsertest.h
+++ b/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_browsertest.h
@@ -10,13 +10,14 @@
class BookmarksBrowserTest : public WebUIBrowserTest {
public:
BookmarksBrowserTest();
+
+ BookmarksBrowserTest(const BookmarksBrowserTest&) = delete;
+ BookmarksBrowserTest& operator=(const BookmarksBrowserTest&) = delete;
+
~BookmarksBrowserTest() override;
void SetupExtensionAPITest();
void SetupExtensionAPIEditDisabledTest();
-
- private:
- DISALLOW_COPY_AND_ASSIGN(BookmarksBrowserTest);
};
#endif // CHROME_BROWSER_UI_WEBUI_BOOKMARKS_BOOKMARKS_BROWSERTEST_H_
diff --git a/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_message_handler.cc b/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_message_handler.cc
index 5cdda35448d..b3e08649e0f 100644
--- a/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_message_handler.cc
@@ -17,12 +17,12 @@ BookmarksMessageHandler::BookmarksMessageHandler() {}
BookmarksMessageHandler::~BookmarksMessageHandler() {}
void BookmarksMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getIncognitoAvailability",
base::BindRepeating(
&BookmarksMessageHandler::HandleGetIncognitoAvailability,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getCanEditBookmarks",
base::BindRepeating(&BookmarksMessageHandler::HandleGetCanEditBookmarks,
base::Unretained(this)));
@@ -52,7 +52,7 @@ int BookmarksMessageHandler::GetIncognitoAvailability() {
void BookmarksMessageHandler::HandleGetIncognitoAvailability(
const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
@@ -74,7 +74,7 @@ bool BookmarksMessageHandler::CanEditBookmarks() {
void BookmarksMessageHandler::HandleGetCanEditBookmarks(
const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
diff --git a/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_message_handler.h b/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_message_handler.h
index c0bfa634a6a..5819ecea75d 100644
--- a/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_message_handler.h
+++ b/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_message_handler.h
@@ -15,6 +15,10 @@ class ListValue;
class BookmarksMessageHandler : public content::WebUIMessageHandler {
public:
BookmarksMessageHandler();
+
+ BookmarksMessageHandler(const BookmarksMessageHandler&) = delete;
+ BookmarksMessageHandler& operator=(const BookmarksMessageHandler&) = delete;
+
~BookmarksMessageHandler() override;
private:
@@ -32,8 +36,6 @@ class BookmarksMessageHandler : public content::WebUIMessageHandler {
void OnJavascriptDisallowed() override;
PrefChangeRegistrar pref_change_registrar_;
-
- DISALLOW_COPY_AND_ASSIGN(BookmarksMessageHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_BOOKMARKS_BOOKMARKS_MESSAGE_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_ui.h b/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_ui.h
index 72e9f20ecce..aaf3a725ad2 100644
--- a/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_ui.h
+++ b/chromium/chrome/browser/ui/webui/bookmarks/bookmarks_ui.h
@@ -7,7 +7,7 @@
#include "base/macros.h"
#include "content/public/browser/web_ui_controller.h"
-#include "ui/base/resource/scale_factor.h"
+#include "ui/base/resource/resource_scale_factor.h"
namespace base {
class RefCountedMemory;
@@ -17,11 +17,11 @@ class BookmarksUI : public content::WebUIController {
public:
explicit BookmarksUI(content::WebUI* web_ui);
+ BookmarksUI(const BookmarksUI&) = delete;
+ BookmarksUI& operator=(const BookmarksUI&) = delete;
+
static base::RefCountedMemory* GetFaviconResourceBytes(
ui::ResourceScaleFactor scale_factor);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(BookmarksUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_BOOKMARKS_BOOKMARKS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/new_tab_page/promo_browser_command/README b/chromium/chrome/browser/ui/webui/browser_command/README
index e9d72ebba12..61d19455796 100644
--- a/chromium/chrome/browser/ui/webui/new_tab_page/promo_browser_command/README
+++ b/chromium/chrome/browser/ui/webui/browser_command/README
@@ -1,6 +1,6 @@
-This directory contains the Desktop implementations of the promo browser
+This directory contains the Desktop implementations of the browser
commands located at:
-//chrome/browser/promo_browser_command/promo_browser_command.mojom
+//ui/webui/resources/js/browser_command/browser_command.mojom
Add unit tests for every new handled command.
diff --git a/chromium/chrome/browser/ui/webui/new_tab_page/promo_browser_command/promo_browser_command_handler.cc b/chromium/chrome/browser/ui/webui/browser_command/browser_command_handler.cc
index b05d2c40633..a73d126ef98 100644
--- a/chromium/chrome/browser/ui/webui/new_tab_page/promo_browser_command/promo_browser_command_handler.cc
+++ b/chromium/chrome/browser/ui/webui/browser_command/browser_command_handler.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/ui/webui/new_tab_page/promo_browser_command/promo_browser_command_handler.h"
+#include "chrome/browser/ui/webui/browser_command/browser_command_handler.h"
#include "base/metrics/histogram_functions.h"
#include "base/metrics/user_metrics.h"
@@ -20,18 +20,18 @@
#include "ui/base/page_transition_types.h"
#include "ui/base/window_open_disposition.h"
-using promo_browser_command::mojom::ClickInfoPtr;
-using promo_browser_command::mojom::Command;
-using promo_browser_command::mojom::CommandHandler;
+using browser_command::mojom::ClickInfoPtr;
+using browser_command::mojom::Command;
+using browser_command::mojom::CommandHandler;
// static
-const char PromoBrowserCommandHandler::kPromoBrowserCommandHistogramName[] =
+const char BrowserCommandHandler::kPromoBrowserCommandHistogramName[] =
"NewTabPage.Promos.PromoBrowserCommand";
-PromoBrowserCommandHandler::PromoBrowserCommandHandler(
+BrowserCommandHandler::BrowserCommandHandler(
mojo::PendingReceiver<CommandHandler> pending_page_handler,
Profile* profile,
- std::vector<promo_browser_command::mojom::Command> supported_commands)
+ std::vector<browser_command::mojom::Command> supported_commands)
: profile_(profile),
supported_commands_(supported_commands),
command_updater_(std::make_unique<CommandUpdaterImpl>(this)),
@@ -42,10 +42,10 @@ PromoBrowserCommandHandler::PromoBrowserCommandHandler(
EnableSupportedCommands();
}
-PromoBrowserCommandHandler::~PromoBrowserCommandHandler() = default;
+BrowserCommandHandler::~BrowserCommandHandler() = default;
-void PromoBrowserCommandHandler::CanExecuteCommand(
- promo_browser_command::mojom::Command command_id,
+void BrowserCommandHandler::CanExecuteCommand(
+ browser_command::mojom::Command command_id,
CanExecuteCommandCallback callback) {
if (!base::Contains(supported_commands_, command_id)) {
std::move(callback).Run(false);
@@ -78,10 +78,9 @@ void PromoBrowserCommandHandler::CanExecuteCommand(
std::move(callback).Run(can_execute);
}
-void PromoBrowserCommandHandler::ExecuteCommand(
- Command command_id,
- ClickInfoPtr click_info,
- ExecuteCommandCallback callback) {
+void BrowserCommandHandler::ExecuteCommand(Command command_id,
+ ClickInfoPtr click_info,
+ ExecuteCommandCallback callback) {
if (!base::Contains(supported_commands_, command_id)) {
std::move(callback).Run(false);
return;
@@ -96,7 +95,7 @@ void PromoBrowserCommandHandler::ExecuteCommand(
std::move(callback).Run(command_executed);
}
-void PromoBrowserCommandHandler::ExecuteCommandWithDisposition(
+void BrowserCommandHandler::ExecuteCommandWithDisposition(
int id,
WindowOpenDisposition disposition) {
const auto command = static_cast<Command>(id);
@@ -128,7 +127,7 @@ void PromoBrowserCommandHandler::ExecuteCommandWithDisposition(
}
}
-void PromoBrowserCommandHandler::OpenFeedbackForm() {
+void BrowserCommandHandler::OpenFeedbackForm() {
chrome::ShowFeedbackPage(feedback_settings_.url, profile_,
feedback_settings_.source,
std::string() /* description_template */,
@@ -137,12 +136,12 @@ void PromoBrowserCommandHandler::OpenFeedbackForm() {
std::string() /* extra_diagnostics */);
}
-void PromoBrowserCommandHandler::ConfigureFeedbackCommand(
+void BrowserCommandHandler::ConfigureFeedbackCommand(
FeedbackCommandSettings settings) {
feedback_settings_ = settings;
}
-void PromoBrowserCommandHandler::EnableSupportedCommands() {
+void BrowserCommandHandler::EnableSupportedCommands() {
// Explicitly enable supported commands.
GetCommandUpdater()->UpdateCommandEnabled(
static_cast<int>(Command::kUnknownCommand), true);
@@ -151,13 +150,12 @@ void PromoBrowserCommandHandler::EnableSupportedCommands() {
}
}
-CommandUpdater* PromoBrowserCommandHandler::GetCommandUpdater() {
+CommandUpdater* BrowserCommandHandler::GetCommandUpdater() {
return command_updater_.get();
}
-void PromoBrowserCommandHandler::NavigateToURL(
- const GURL& url,
- WindowOpenDisposition disposition) {
+void BrowserCommandHandler::NavigateToURL(const GURL& url,
+ WindowOpenDisposition disposition) {
NavigateParams params(profile_, url, ui::PAGE_TRANSITION_LINK);
params.disposition = disposition;
Navigate(&params);
diff --git a/chromium/chrome/browser/ui/webui/new_tab_page/promo_browser_command/promo_browser_command_handler.h b/chromium/chrome/browser/ui/webui/browser_command/browser_command_handler.h
index 261f087b26d..ed8e5a5bbe5 100644
--- a/chromium/chrome/browser/ui/webui/new_tab_page/promo_browser_command/promo_browser_command_handler.h
+++ b/chromium/chrome/browser/ui/webui/browser_command/browser_command_handler.h
@@ -2,17 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_UI_WEBUI_NEW_TAB_PAGE_PROMO_BROWSER_COMMAND_PROMO_BROWSER_COMMAND_HANDLER_H_
-#define CHROME_BROWSER_UI_WEBUI_NEW_TAB_PAGE_PROMO_BROWSER_COMMAND_PROMO_BROWSER_COMMAND_HANDLER_H_
+#ifndef CHROME_BROWSER_UI_WEBUI_BROWSER_COMMAND_BROWSER_COMMAND_HANDLER_H_
+#define CHROME_BROWSER_UI_WEBUI_BROWSER_COMMAND_BROWSER_COMMAND_HANDLER_H_
#include <memory>
#include "chrome/browser/command_updater_delegate.h"
-#include "chrome/browser/promo_browser_command/promo_browser_command.mojom.h"
#include "chrome/browser/ui/chrome_pages.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "ui/base/window_open_disposition.h"
+#include "ui/webui/resources/js/browser_command/browser_command.mojom.h"
#include "url/gurl.h"
class CommandUpdater;
@@ -34,24 +34,23 @@ struct FeedbackCommandSettings {
};
// Handles browser commands send from JS.
-class PromoBrowserCommandHandler
- : public CommandUpdaterDelegate,
- public promo_browser_command::mojom::CommandHandler {
+class BrowserCommandHandler : public CommandUpdaterDelegate,
+ public browser_command::mojom::CommandHandler {
public:
static const char kPromoBrowserCommandHistogramName[];
- PromoBrowserCommandHandler(
- mojo::PendingReceiver<promo_browser_command::mojom::CommandHandler>
+ BrowserCommandHandler(
+ mojo::PendingReceiver<browser_command::mojom::CommandHandler>
pending_page_handler,
Profile* profile,
- std::vector<promo_browser_command::mojom::Command> supported_commands);
- ~PromoBrowserCommandHandler() override;
+ std::vector<browser_command::mojom::Command> supported_commands);
+ ~BrowserCommandHandler() override;
- // promo_browser_command::mojom::CommandHandler:
- void CanExecuteCommand(promo_browser_command::mojom::Command command_id,
+ // browser_command::mojom::CommandHandler:
+ void CanExecuteCommand(browser_command::mojom::Command command_id,
CanExecuteCommandCallback callback) override;
- void ExecuteCommand(promo_browser_command::mojom::Command command_id,
- promo_browser_command::mojom::ClickInfoPtr click_info,
+ void ExecuteCommand(browser_command::mojom::Command command_id,
+ browser_command::mojom::ClickInfoPtr click_info,
ExecuteCommandCallback callback) override;
// CommandUpdaterDelegate:
@@ -73,9 +72,9 @@ class PromoBrowserCommandHandler
FeedbackCommandSettings feedback_settings_;
Profile* profile_;
- std::vector<promo_browser_command::mojom::Command> supported_commands_;
+ std::vector<browser_command::mojom::Command> supported_commands_;
std::unique_ptr<CommandUpdater> command_updater_;
- mojo::Receiver<promo_browser_command::mojom::CommandHandler> page_handler_;
+ mojo::Receiver<browser_command::mojom::CommandHandler> page_handler_;
};
-#endif // CHROME_BROWSER_UI_WEBUI_NEW_TAB_PAGE_PROMO_BROWSER_COMMAND_PROMO_BROWSER_COMMAND_HANDLER_H_
+#endif // CHROME_BROWSER_UI_WEBUI_BROWSER_COMMAND_BROWSER_COMMAND_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/new_tab_page/promo_browser_command/promo_browser_command_handler_unittest.cc b/chromium/chrome/browser/ui/webui/browser_command/browser_command_handler_unittest.cc
index 94b46535690..7c79a7298b3 100644
--- a/chromium/chrome/browser/ui/webui/new_tab_page/promo_browser_command/promo_browser_command_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/browser_command/browser_command_handler_unittest.cc
@@ -10,9 +10,8 @@
#include "base/test/scoped_feature_list.h"
#include "chrome/browser/browser_features.h"
#include "chrome/browser/command_updater_impl.h"
-#include "chrome/browser/promo_browser_command/promo_browser_command.mojom.h"
#include "chrome/browser/ui/chrome_pages.h"
-#include "chrome/browser/ui/webui/new_tab_page/promo_browser_command/promo_browser_command_handler.h"
+#include "chrome/browser/ui/webui/browser_command/browser_command_handler.h"
#include "chrome/common/webui_url_constants.h"
#include "chrome/test/base/testing_profile.h"
#include "components/content_settings/core/common/pref_names.h"
@@ -23,11 +22,12 @@
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/window_open_disposition.h"
+#include "ui/webui/resources/js/browser_command/browser_command.mojom.h"
-using promo_browser_command::mojom::ClickInfo;
-using promo_browser_command::mojom::ClickInfoPtr;
-using promo_browser_command::mojom::Command;
-using promo_browser_command::mojom::CommandHandler;
+using browser_command::mojom::ClickInfo;
+using browser_command::mojom::ClickInfoPtr;
+using browser_command::mojom::Command;
+using browser_command::mojom::CommandHandler;
namespace {
@@ -38,12 +38,12 @@ std::vector<Command> supported_commands = {
Command::kOpenFeedbackForm,
};
-class TestCommandHandler : public PromoBrowserCommandHandler {
+class TestCommandHandler : public BrowserCommandHandler {
public:
explicit TestCommandHandler(Profile* profile)
- : PromoBrowserCommandHandler(mojo::PendingReceiver<CommandHandler>(),
- profile,
- supported_commands) {}
+ : BrowserCommandHandler(mojo::PendingReceiver<CommandHandler>(),
+ profile,
+ supported_commands) {}
~TestCommandHandler() override = default;
void NavigateToURL(const GURL&, WindowOpenDisposition) override {
@@ -59,7 +59,7 @@ class TestCommandHandler : public PromoBrowserCommandHandler {
CommandUpdater* GetCommandUpdater() override {
if (command_updater_)
return command_updater_.get();
- return PromoBrowserCommandHandler::GetCommandUpdater();
+ return BrowserCommandHandler::GetCommandUpdater();
}
void SetCommandUpdater(std::unique_ptr<CommandUpdater> command_updater) {
@@ -92,7 +92,7 @@ class MockCommandUpdater : public CommandUpdaterImpl {
};
// Callback used for testing
-// PromoBrowserCommandHandler::CanExecuteCommand().
+// BrowserCommandHandler::CanExecuteCommand().
void CanExecuteCommandCallback(base::OnceClosure quit_closure,
bool* expected_can_show,
bool can_show) {
@@ -100,7 +100,7 @@ void CanExecuteCommandCallback(base::OnceClosure quit_closure,
std::move(quit_closure).Run();
}
-// Callback used for testing PromoBrowserCommandHandler::ExecuteCommand().
+// Callback used for testing BrowserCommandHandler::ExecuteCommand().
void ExecuteCommandCallback(base::OnceClosure quit_closure,
bool* expected_command_executed,
bool command_executed) {
@@ -116,10 +116,10 @@ WindowOpenDisposition DispositionFromClick(const ClickInfo& info) {
} // namespace
-class PromoBrowserCommandHandlerTest : public testing::Test {
+class BrowserCommandHandlerTest : public testing::Test {
public:
- PromoBrowserCommandHandlerTest() = default;
- ~PromoBrowserCommandHandlerTest() override = default;
+ BrowserCommandHandlerTest() = default;
+ ~BrowserCommandHandlerTest() override = default;
void SetUp() override {
command_handler_ = std::make_unique<MockCommandHandler>(&profile_);
@@ -159,7 +159,7 @@ class PromoBrowserCommandHandlerTest : public testing::Test {
std::unique_ptr<MockCommandHandler> command_handler_;
};
-TEST_F(PromoBrowserCommandHandlerTest, SupportedCommands) {
+TEST_F(BrowserCommandHandlerTest, SupportedCommands) {
base::HistogramTester histogram_tester;
// Mock out the command updater to test enabling and disabling commands.
@@ -173,7 +173,7 @@ TEST_F(PromoBrowserCommandHandlerTest, SupportedCommands) {
EXPECT_FALSE(ExecuteCommand(Command::kUnknownCommand, ClickInfo::New()));
histogram_tester.ExpectTotalCount(
- PromoBrowserCommandHandler::kPromoBrowserCommandHistogramName, 0);
+ BrowserCommandHandler::kPromoBrowserCommandHistogramName, 0);
// Disabled commands do not get executed and no histogram is logged.
EXPECT_CALL(*mock_command_updater(),
@@ -185,7 +185,7 @@ TEST_F(PromoBrowserCommandHandlerTest, SupportedCommands) {
EXPECT_FALSE(ExecuteCommand(Command::kUnknownCommand, ClickInfo::New()));
histogram_tester.ExpectTotalCount(
- PromoBrowserCommandHandler::kPromoBrowserCommandHistogramName, 0);
+ BrowserCommandHandler::kPromoBrowserCommandHistogramName, 0);
// Only supported and enabled commands get executed for which a histogram is
// logged.
@@ -198,10 +198,10 @@ TEST_F(PromoBrowserCommandHandlerTest, SupportedCommands) {
EXPECT_TRUE(ExecuteCommand(Command::kUnknownCommand, ClickInfo::New()));
histogram_tester.ExpectBucketCount(
- PromoBrowserCommandHandler::kPromoBrowserCommandHistogramName, 0, 1);
+ BrowserCommandHandler::kPromoBrowserCommandHistogramName, 0, 1);
}
-TEST_F(PromoBrowserCommandHandlerTest, CanExecuteCommand_OpenSafetyCheck) {
+TEST_F(BrowserCommandHandlerTest, CanExecuteCommand_OpenSafetyCheck) {
// By default, showing the Safety Check promo is allowed.
EXPECT_TRUE(
CanExecuteCommand(Command::kOpenSafeBrowsingEnhancedProtectionSettings));
@@ -214,7 +214,7 @@ TEST_F(PromoBrowserCommandHandlerTest, CanExecuteCommand_OpenSafetyCheck) {
EXPECT_FALSE(CanExecuteCommand(Command::kOpenSafetyCheck));
}
-TEST_F(PromoBrowserCommandHandlerTest, OpenSafetyCheckCommand) {
+TEST_F(BrowserCommandHandlerTest, OpenSafetyCheckCommand) {
// The OpenSafetyCheck command opens a new settings window with the Safety
// Check, and the correct disposition.
ClickInfoPtr info = ClickInfo::New();
@@ -227,14 +227,14 @@ TEST_F(PromoBrowserCommandHandlerTest, OpenSafetyCheckCommand) {
EXPECT_TRUE(ExecuteCommand(Command::kOpenSafetyCheck, std::move(info)));
}
-TEST_F(PromoBrowserCommandHandlerTest,
+TEST_F(BrowserCommandHandlerTest,
CanShowSafeBrowsingEnhancedProtectionCommandPromo_NoPolicies) {
EXPECT_TRUE(
CanExecuteCommand(Command::kOpenSafeBrowsingEnhancedProtectionSettings));
}
TEST_F(
- PromoBrowserCommandHandlerTest,
+ BrowserCommandHandlerTest,
CanShowSafeBrowsingEnhancedProtectionCommandPromo_EnhancedProtectionEnabled) {
TestingProfile::Builder builder;
std::unique_ptr<TestingProfile> profile = builder.Build();
@@ -247,7 +247,7 @@ TEST_F(
}
TEST_F(
- PromoBrowserCommandHandlerTest,
+ BrowserCommandHandlerTest,
CanShowSafeBrowsingEnhancedProtectionCommandPromo_HasSafeBrowsingManaged_NoProtection) {
TestingProfile::Builder builder;
std::unique_ptr<TestingProfile> profile = builder.Build();
@@ -262,7 +262,7 @@ TEST_F(
}
TEST_F(
- PromoBrowserCommandHandlerTest,
+ BrowserCommandHandlerTest,
CanShowSafeBrowsingEnhancedProtectionCommandPromo_HasSafeBrowsingManaged_StandardProtection) {
TestingProfile::Builder builder;
std::unique_ptr<TestingProfile> profile = builder.Build();
@@ -277,7 +277,7 @@ TEST_F(
}
TEST_F(
- PromoBrowserCommandHandlerTest,
+ BrowserCommandHandlerTest,
CanShowSafeBrowsingEnhancedProtectionCommandPromo_HasSafeBrowsingManaged_EnhancedProtection) {
TestingProfile::Builder builder;
std::unique_ptr<TestingProfile> profile = builder.Build();
@@ -291,8 +291,7 @@ TEST_F(
CanExecuteCommand(Command::kOpenSafeBrowsingEnhancedProtectionSettings));
}
-TEST_F(PromoBrowserCommandHandlerTest,
- OpenSafeBrowsingEnhancedProtectionCommand) {
+TEST_F(BrowserCommandHandlerTest, OpenSafeBrowsingEnhancedProtectionCommand) {
// The kOpenSafeBrowsingEnhancedProtectionSettings command opens a new
// settings window with the Safe Browsing settings with the Enhanced
// Protection section expanded, and the correct disposition.
@@ -308,7 +307,7 @@ TEST_F(PromoBrowserCommandHandlerTest,
Command::kOpenSafeBrowsingEnhancedProtectionSettings, std::move(info)));
}
-TEST_F(PromoBrowserCommandHandlerTest, OpenFeedbackFormCommand) {
+TEST_F(BrowserCommandHandlerTest, OpenFeedbackFormCommand) {
// Open feedback form command calls open feedback form.
ClickInfoPtr info = ClickInfo::New();
EXPECT_CALL(*command_handler_, OpenFeedbackForm());
diff --git a/chromium/chrome/browser/ui/webui/browser_switch/browser_switch_ui.cc b/chromium/chrome/browser/ui/webui/browser_switch/browser_switch_ui.cc
index 286889efcb0..93542fa9721 100644
--- a/chromium/chrome/browser/ui/webui/browser_switch/browser_switch_ui.cc
+++ b/chromium/chrome/browser/ui/webui/browser_switch/browser_switch_ui.cc
@@ -69,12 +69,12 @@ bool IsLastTab(const Profile* profile) {
std::unique_ptr<base::Value> RuleSetToDict(
const browser_switcher::RuleSet& ruleset) {
auto sitelist = std::make_unique<base::ListValue>();
- for (const std::string& rule : ruleset.sitelist)
- sitelist->Append(rule);
+ for (const auto& rule : ruleset.sitelist)
+ sitelist->Append(rule->ToString());
auto greylist = std::make_unique<base::ListValue>();
- for (const std::string& rule : ruleset.greylist)
- greylist->Append(rule);
+ for (const auto& rule : ruleset.greylist)
+ greylist->Append(rule->ToString());
auto dict = std::make_unique<base::DictionaryValue>();
dict->Set("sitelist", std::move(sitelist));
@@ -156,6 +156,10 @@ content::WebUIDataSource* CreateBrowserSwitchUIHTMLSource(
class BrowserSwitchHandler : public content::WebUIMessageHandler {
public:
BrowserSwitchHandler();
+
+ BrowserSwitchHandler(const BrowserSwitchHandler&) = delete;
+ BrowserSwitchHandler& operator=(const BrowserSwitchHandler&) = delete;
+
~BrowserSwitchHandler() override;
// WebUIMessageHandler
@@ -240,8 +244,6 @@ class BrowserSwitchHandler : public content::WebUIMessageHandler {
base::CallbackListSubscription service_subscription_;
base::WeakPtrFactory<BrowserSwitchHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(BrowserSwitchHandler);
};
BrowserSwitchHandler::BrowserSwitchHandler() {}
@@ -249,32 +251,32 @@ BrowserSwitchHandler::BrowserSwitchHandler() {}
BrowserSwitchHandler::~BrowserSwitchHandler() = default;
void BrowserSwitchHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"launchAlternativeBrowserAndCloseTab",
base::BindRepeating(
&BrowserSwitchHandler::HandleLaunchAlternativeBrowserAndCloseTab,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"gotoNewTabPage",
base::BindRepeating(&BrowserSwitchHandler::HandleGotoNewTabPage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getAllRulesets",
base::BindRepeating(&BrowserSwitchHandler::HandleGetAllRulesets,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getDecision",
base::BindRepeating(&BrowserSwitchHandler::HandleGetDecision,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getTimestamps",
base::BindRepeating(&BrowserSwitchHandler::HandleGetTimestamps,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getRulesetSources",
base::BindRepeating(&BrowserSwitchHandler::HandleGetRulesetSources,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"refreshXml", base::BindRepeating(&BrowserSwitchHandler::HandleRefreshXml,
base::Unretained(this)));
}
@@ -421,9 +423,9 @@ void BrowserSwitchHandler::HandleGetDecision(const base::ListValue* args) {
}
retval.Set("reason", std::make_unique<base::Value>(reason_name));
- if (!decision.matching_rule.empty()) {
- retval.Set("matching_rule",
- std::make_unique<base::Value>(decision.matching_rule));
+ if (decision.matching_rule) {
+ retval.Set("matching_rule", std::make_unique<base::Value>(
+ decision.matching_rule->ToString()));
}
ResolveJavascriptCallback(args->GetList()[0], retval);
diff --git a/chromium/chrome/browser/ui/webui/browser_switch/browser_switch_ui.h b/chromium/chrome/browser/ui/webui/browser_switch/browser_switch_ui.h
index b2e43b62242..8674a7ddefe 100644
--- a/chromium/chrome/browser/ui/webui/browser_switch/browser_switch_ui.h
+++ b/chromium/chrome/browser/ui/webui/browser_switch/browser_switch_ui.h
@@ -13,8 +13,8 @@ class BrowserSwitchUI : public content::WebUIController {
public:
explicit BrowserSwitchUI(content::WebUI* web_ui);
- private:
- DISALLOW_COPY_AND_ASSIGN(BrowserSwitchUI);
+ BrowserSwitchUI(const BrowserSwitchUI&) = delete;
+ BrowserSwitchUI& operator=(const BrowserSwitchUI&) = delete;
};
#endif // CHROME_BROWSER_UI_WEBUI_BROWSER_SWITCH_BROWSER_SWITCH_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/certificate_provisioning_ui_handler.cc b/chromium/chrome/browser/ui/webui/certificate_provisioning_ui_handler.cc
index 37322fb238b..05caf506b9f 100644
--- a/chromium/chrome/browser/ui/webui/certificate_provisioning_ui_handler.cc
+++ b/chromium/chrome/browser/ui/webui/certificate_provisioning_ui_handler.cc
@@ -183,15 +183,16 @@ CertificateProvisioningUiHandler::CertificateProvisioningUiHandler(
CertificateProvisioningUiHandler::~CertificateProvisioningUiHandler() = default;
void CertificateProvisioningUiHandler::RegisterMessages() {
- // Passing base::Unretained(this) to web_ui()->RegisterMessageCallback is fine
- // because in chrome Web UI, web_ui() has acquired ownership of |this| and
- // maintains the life time of |this| accordingly.
- web_ui()->RegisterMessageCallback(
+ // Passing base::Unretained(this) to
+ // web_ui()->RegisterDeprecatedMessageCallback is fine because in chrome Web
+ // UI, web_ui() has acquired ownership of |this| and maintains the life time
+ // of |this| accordingly.
+ web_ui()->RegisterDeprecatedMessageCallback(
"refreshCertificateProvisioningProcessses",
base::BindRepeating(&CertificateProvisioningUiHandler::
HandleRefreshCertificateProvisioningProcesses,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"triggerCertificateProvisioningProcessUpdate",
base::BindRepeating(&CertificateProvisioningUiHandler::
HandleTriggerCertificateProvisioningProcessUpdate,
@@ -208,8 +209,7 @@ void CertificateProvisioningUiHandler::OnVisibleStateChanged() {
update_after_hold_back_ = true;
return;
}
- constexpr base::TimeDelta kTimeToHoldBackUpdates =
- base::TimeDelta::FromMilliseconds(300);
+ constexpr base::TimeDelta kTimeToHoldBackUpdates = base::Milliseconds(300);
hold_back_updates_timer_.Start(
FROM_HERE, kTimeToHoldBackUpdates,
base::BindOnce(
@@ -228,7 +228,7 @@ CertificateProvisioningUiHandler::ReadAndResetUiRefreshCountForTesting() {
void CertificateProvisioningUiHandler::
HandleRefreshCertificateProvisioningProcesses(const base::ListValue* args) {
- CHECK_EQ(0U, args->GetSize());
+ CHECK_EQ(0U, args->GetList().size());
AllowJavascript();
RefreshCertificateProvisioningProcesses();
}
@@ -236,7 +236,7 @@ void CertificateProvisioningUiHandler::
void CertificateProvisioningUiHandler::
HandleTriggerCertificateProvisioningProcessUpdate(
const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
if (!args->is_list())
return;
const base::Value& cert_profile_id = args->GetList()[0];
diff --git a/chromium/chrome/browser/ui/webui/certificate_provisioning_ui_handler_unittest.cc b/chromium/chrome/browser/ui/webui/certificate_provisioning_ui_handler_unittest.cc
index b076461e3d7..fa6123d9bf9 100644
--- a/chromium/chrome/browser/ui/webui/certificate_provisioning_ui_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/certificate_provisioning_ui_handler_unittest.cc
@@ -78,8 +78,7 @@ BA 48 53 4A E2 1C 42 24 EB E5 CD 46 E0 4E 9B 2B
// Test values for creating CertProfile for MockCertProvisioningWorker.
constexpr char kCertProfileVersion[] = "cert_profile_version_1";
-constexpr base::TimeDelta kCertProfileRenewalPeriod =
- base::TimeDelta::FromSeconds(0);
+constexpr base::TimeDelta kCertProfileRenewalPeriod = base::Seconds(0);
constexpr char kDeviceCertProfileId[] = "device_cert_profile_1";
constexpr char kDeviceCertProfileName[] = "Device Certificate Profile 1";
constexpr char kUserCertProfileId[] = "user_cert_profile_1";
@@ -451,11 +450,11 @@ TEST_F(CertificateProvisioningUiHandlerTest, Updates) {
&web_ui_, "certificate-provisioning-processes-changed");
scheduler_observer_for_user_->OnVisibleStateChanged();
// Another update does not trigger a UI update for the holdoff time.
- task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(299));
+ task_environment_.FastForwardBy(base::Milliseconds(299));
EXPECT_EQ(0U, handler_->ReadAndResetUiRefreshCountForTesting());
// When the holdoff time has elapsed, an UI update is triggered.
- task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(2));
+ task_environment_.FastForwardBy(base::Milliseconds(2));
EXPECT_EQ(1U, handler_->ReadAndResetUiRefreshCountForTesting());
result_waiter_2.Wait();
diff --git a/chromium/chrome/browser/ui/webui/certificate_viewer_ui.cc b/chromium/chrome/browser/ui/webui/certificate_viewer_ui.cc
index 5d259226c36..dd638f33dbc 100644
--- a/chromium/chrome/browser/ui/webui/certificate_viewer_ui.cc
+++ b/chromium/chrome/browser/ui/webui/certificate_viewer_ui.cc
@@ -30,7 +30,6 @@ content::WebUIDataSource* GetWebUIDataSource(const std::string& host) {
{"details", IDS_CERT_INFO_DETAILS_TAB_LABEL},
{"close", IDS_CLOSE},
{"export", IDS_CERT_DETAILS_EXPORT_CERTIFICATE},
- {"usages", IDS_CERT_INFO_VERIFIED_USAGES_GROUP},
{"issuedTo", IDS_CERT_INFO_SUBJECT_GROUP},
{"issuedBy", IDS_CERT_INFO_ISSUER_GROUP},
{"cn", IDS_CERT_INFO_COMMON_NAME_LABEL},
@@ -50,7 +49,7 @@ content::WebUIDataSource* GetWebUIDataSource(const std::string& host) {
html_source->OverrideContentSecurityPolicy(
network::mojom::CSPDirectiveName::TrustedTypes,
- "trusted-types cr-ui-tree-js-static certificate-test-script;");
+ "trusted-types static-types certificate-test-script;");
html_source->OverrideContentSecurityPolicy(
network::mojom::CSPDirectiveName::ScriptSrc,
"script-src chrome://resources chrome://test 'self';");
diff --git a/chromium/chrome/browser/ui/webui/certificate_viewer_ui.h b/chromium/chrome/browser/ui/webui/certificate_viewer_ui.h
index b998cd4d7df..52105655fe8 100644
--- a/chromium/chrome/browser/ui/webui/certificate_viewer_ui.h
+++ b/chromium/chrome/browser/ui/webui/certificate_viewer_ui.h
@@ -12,10 +12,11 @@
class CertificateViewerUI : public ConstrainedWebDialogUI {
public:
explicit CertificateViewerUI(content::WebUI* web_ui);
- ~CertificateViewerUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(CertificateViewerUI);
+ CertificateViewerUI(const CertificateViewerUI&) = delete;
+ CertificateViewerUI& operator=(const CertificateViewerUI&) = delete;
+
+ ~CertificateViewerUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_CERTIFICATE_VIEWER_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/certificate_viewer_webui.cc b/chromium/chrome/browser/ui/webui/certificate_viewer_webui.cc
index 8fc21cf70b8..1537e5bf642 100644
--- a/chromium/chrome/browser/ui/webui/certificate_viewer_webui.cc
+++ b/chromium/chrome/browser/ui/webui/certificate_viewer_webui.cc
@@ -50,6 +50,9 @@ class CertNodeBuilder {
// string, then delegates to the other constructor.
explicit CertNodeBuilder(int label_id);
+ CertNodeBuilder(const CertNodeBuilder&) = delete;
+ CertNodeBuilder& operator=(const CertNodeBuilder&) = delete;
+
// Builder methods all return |*this| so that they can be chained in single
// expressions.
@@ -73,8 +76,6 @@ class CertNodeBuilder {
// |built_| is false until Build() is called. Once it is |true|, |node_| and
// |children_| are no longer valid for use.
bool built_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(CertNodeBuilder);
};
CertNodeBuilder::CertNodeBuilder(base::StringPiece label) {
@@ -203,11 +204,6 @@ std::string CertificateViewerDialog::GetDialogArgs() const {
base::DictionaryValue cert_info;
CERTCertificate* cert_hnd = nss_certs_.front().get();
- // Certificate usage.
- std::vector<std::string> usages;
- x509_certificate_model::GetUsageStrings(cert_hnd, &usages);
- cert_info.SetString("general.usages", base::JoinString(usages, "\n"));
-
// Standard certificate details.
const std::string alternative_text =
l10n_util::GetStringUTF8(IDS_CERT_INFO_FIELD_NOT_PRESENT);
@@ -308,12 +304,12 @@ CertificateViewerDialogHandler::~CertificateViewerDialogHandler() {
}
void CertificateViewerDialogHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"exportCertificate",
base::BindRepeating(
&CertificateViewerDialogHandler::HandleExportCertificate,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestCertificateFields",
base::BindRepeating(
&CertificateViewerDialogHandler::HandleRequestCertificateFields,
diff --git a/chromium/chrome/browser/ui/webui/certificate_viewer_webui.h b/chromium/chrome/browser/ui/webui/certificate_viewer_webui.h
index d5cdb430d61..b7034a8ddcc 100644
--- a/chromium/chrome/browser/ui/webui/certificate_viewer_webui.h
+++ b/chromium/chrome/browser/ui/webui/certificate_viewer_webui.h
@@ -34,6 +34,9 @@ class CertificateViewerDialog : public ui::WebDialogDelegate {
content::WebContents* web_contents,
gfx::NativeWindow parent);
+ CertificateViewerDialog(const CertificateViewerDialog&) = delete;
+ CertificateViewerDialog& operator=(const CertificateViewerDialog&) = delete;
+
~CertificateViewerDialog() override;
gfx::NativeWindow GetNativeWebContentsModalDialog();
@@ -68,8 +71,6 @@ class CertificateViewerDialog : public ui::WebDialogDelegate {
content::WebUI* webui_ = nullptr;
ConstrainedWebDialogDelegate* delegate_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(CertificateViewerDialog);
};
// Dialog handler which handles calls from the JS WebUI code to view certificate
@@ -78,6 +79,12 @@ class CertificateViewerDialogHandler : public content::WebUIMessageHandler {
public:
CertificateViewerDialogHandler(CertificateViewerDialog* dialog,
net::ScopedCERTCertificateList cert_chain);
+
+ CertificateViewerDialogHandler(const CertificateViewerDialogHandler&) =
+ delete;
+ CertificateViewerDialogHandler& operator=(
+ const CertificateViewerDialogHandler&) = delete;
+
~CertificateViewerDialogHandler() override;
// Overridden from WebUIMessageHandler
@@ -106,8 +113,6 @@ class CertificateViewerDialogHandler : public content::WebUIMessageHandler {
// The certificate chain.
net::ScopedCERTCertificateList cert_chain_;
-
- DISALLOW_COPY_AND_ASSIGN(CertificateViewerDialogHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_CERTIFICATE_VIEWER_WEBUI_H_
diff --git a/chromium/chrome/browser/ui/webui/certificates_handler.cc b/chromium/chrome/browser/ui/webui/certificates_handler.cc
index e04f448bb5f..dfe80eda52e 100644
--- a/chromium/chrome/browser/ui/webui/certificates_handler.cc
+++ b/chromium/chrome/browser/ui/webui/certificates_handler.cc
@@ -287,70 +287,70 @@ CertificatesHandler::~CertificatesHandler() {
}
void CertificatesHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"viewCertificate",
base::BindRepeating(&CertificatesHandler::HandleViewCertificate,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getCaCertificateTrust",
base::BindRepeating(&CertificatesHandler::HandleGetCATrust,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"editCaCertificateTrust",
base::BindRepeating(&CertificatesHandler::HandleEditCATrust,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"cancelImportExportCertificate",
base::BindRepeating(&CertificatesHandler::HandleCancelImportExportProcess,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"exportPersonalCertificate",
base::BindRepeating(&CertificatesHandler::HandleExportPersonal,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"exportPersonalCertificatePasswordSelected",
base::BindRepeating(
&CertificatesHandler::HandleExportPersonalPasswordSelected,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"importPersonalCertificate",
base::BindRepeating(&CertificatesHandler::HandleImportPersonal,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"importPersonalCertificatePasswordSelected",
base::BindRepeating(
&CertificatesHandler::HandleImportPersonalPasswordSelected,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"importCaCertificate",
base::BindRepeating(&CertificatesHandler::HandleImportCA,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"importCaCertificateTrustSelected",
base::BindRepeating(&CertificatesHandler::HandleImportCATrustSelected,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"importServerCertificate",
base::BindRepeating(&CertificatesHandler::HandleImportServer,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"exportCertificate",
base::BindRepeating(&CertificatesHandler::HandleExportCertificate,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"deleteCertificate",
base::BindRepeating(&CertificatesHandler::HandleDeleteCertificate,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"refreshCertificates",
base::BindRepeating(&CertificatesHandler::HandleRefreshCertificates,
base::Unretained(this)));
@@ -410,7 +410,7 @@ void CertificatesHandler::HandleViewCertificate(const base::ListValue* args) {
}
void CertificatesHandler::AssignWebUICallbackId(const base::ListValue* args) {
- CHECK_LE(1U, args->GetSize());
+ CHECK_LE(1U, args->GetList().size());
CHECK(webui_callback_id_.empty());
CHECK(args->GetString(0, &webui_callback_id_));
}
@@ -418,7 +418,7 @@ void CertificatesHandler::AssignWebUICallbackId(const base::ListValue* args) {
void CertificatesHandler::HandleGetCATrust(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
AssignWebUICallbackId(args);
CertificateManagerModel::CertInfo* cert_info =
@@ -444,7 +444,7 @@ void CertificatesHandler::HandleGetCATrust(const base::ListValue* args) {
}
void CertificatesHandler::HandleEditCATrust(const base::ListValue* args) {
- CHECK_EQ(5U, args->GetSize());
+ CHECK_EQ(5U, args->GetList().size());
AssignWebUICallbackId(args);
CertificateManagerModel::CertInfo* cert_info =
@@ -486,7 +486,7 @@ void CertificatesHandler::HandleEditCATrust(const base::ListValue* args) {
}
void CertificatesHandler::HandleExportPersonal(const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
AssignWebUICallbackId(args);
CertificateManagerModel::CertInfo* cert_info =
@@ -521,7 +521,7 @@ void CertificatesHandler::ExportPersonalFileSelected(
void CertificatesHandler::HandleExportPersonalPasswordSelected(
const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
AssignWebUICallbackId(args);
CHECK(args->GetString(1, &password_));
@@ -584,7 +584,7 @@ void CertificatesHandler::HandleImportPersonal(const base::ListValue* args) {
}
#endif
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
AssignWebUICallbackId(args);
CHECK(args->GetBoolean(1, &use_hardware_backed_));
@@ -665,7 +665,7 @@ void CertificatesHandler::ImportPersonalFileRead(const int* read_errno,
void CertificatesHandler::HandleImportPersonalPasswordSelected(
const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
AssignWebUICallbackId(args);
CHECK(args->GetString(1, &password_));
@@ -745,7 +745,7 @@ void CertificatesHandler::ImportExportCleanup() {
}
void CertificatesHandler::HandleImportServer(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
AssignWebUICallbackId(args);
select_file_dialog_ = ui::SelectFileDialog::Create(
@@ -821,7 +821,7 @@ void CertificatesHandler::HandleImportCA(const base::ListValue* args) {
}
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
AssignWebUICallbackId(args);
select_file_dialog_ = ui::SelectFileDialog::Create(
@@ -879,7 +879,7 @@ void CertificatesHandler::ImportCAFileRead(const int* read_errno,
void CertificatesHandler::HandleImportCATrustSelected(
const base::ListValue* args) {
- CHECK_EQ(4U, args->GetSize());
+ CHECK_EQ(4U, args->GetList().size());
AssignWebUICallbackId(args);
bool trust_ssl = false;
@@ -928,7 +928,7 @@ void CertificatesHandler::HandleExportCertificate(const base::ListValue* args) {
}
void CertificatesHandler::HandleDeleteCertificate(const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
AssignWebUICallbackId(args);
CertificateManagerModel::CertInfo* cert_info =
@@ -1224,8 +1224,9 @@ bool CertificatesHandler::CanEditCertificate(
? CertificateSource::kImported
: CertificateSource::kBuiltIn;
return IsCACertificateManagementAllowedPolicy(source);
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+#else
return true;
+#endif // BUILDFLAG(IS_CHROMEOS_ASH)
}
#if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chromium/chrome/browser/ui/webui/certificates_handler.h b/chromium/chrome/browser/ui/webui/certificates_handler.h
index cabd07f34e6..8d32de9b039 100644
--- a/chromium/chrome/browser/ui/webui/certificates_handler.h
+++ b/chromium/chrome/browser/ui/webui/certificates_handler.h
@@ -62,6 +62,10 @@ class CertificatesHandler : public content::WebUIMessageHandler,
public ui::SelectFileDialog::Listener {
public:
CertificatesHandler();
+
+ CertificatesHandler(const CertificatesHandler&) = delete;
+ CertificatesHandler& operator=(const CertificatesHandler&) = delete;
+
~CertificatesHandler() override;
// content::WebUIMessageHandler.
@@ -244,8 +248,6 @@ class CertificatesHandler : public content::WebUIMessageHandler,
cert_info_id_map_;
base::WeakPtrFactory<CertificatesHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(CertificatesHandler);
friend class ::CertificateHandlerTest;
};
diff --git a/chromium/chrome/browser/ui/webui/chrome_untrusted_web_ui_controller_factory.cc b/chromium/chrome/browser/ui/webui/chrome_untrusted_web_ui_controller_factory.cc
index b18c6fe0659..c09b426f5d0 100644
--- a/chromium/chrome/browser/ui/webui/chrome_untrusted_web_ui_controller_factory.cc
+++ b/chromium/chrome/browser/ui/webui/chrome_untrusted_web_ui_controller_factory.cc
@@ -13,25 +13,31 @@
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_controller.h"
#include "content/public/common/url_constants.h"
+#include "printing/buildflags/buildflags.h"
#include "ui/webui/webui_config.h"
#include "url/gurl.h"
+#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
+#include "chrome/browser/ui/webui/print_preview/print_preview_ui_untrusted.h"
+#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
+
#if defined(OS_ANDROID)
#include "chrome/browser/ui/webui/video_tutorials/video_player_ui.h"
#endif // defined(OS_ANDROID)
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "ash/constants/ash_features.h"
+#include "ash/webui/file_manager/file_manager_untrusted_ui.h"
+#include "ash/webui/help_app_ui/help_app_kids_magazine_untrusted_ui.h"
#include "chrome/browser/ash/web_applications/help_app/help_app_untrusted_ui_config.h"
#include "chrome/browser/ash/web_applications/media_app/media_app_guest_ui_config.h"
#include "chrome/browser/ash/web_applications/terminal_ui.h"
#include "chromeos/components/eche_app_ui/untrusted_eche_app_ui.h"
-#include "chromeos/components/help_app_ui/help_app_kids_magazine_untrusted_ui.h"
#include "chromeos/components/personalization_app/untrusted_personalization_app_ui_config.h"
#include "chromeos/components/projector_app/untrusted_projector_ui_config.h"
#if !defined(OFFICIAL_BUILD)
#include "ash/webui/sample_system_web_app_ui/untrusted_sample_system_web_app_ui.h"
-#include "chromeos/components/telemetry_extension_ui/telemetry_extension_untrusted_ui.h"
+#include "ash/webui/telemetry_extension_ui/telemetry_extension_untrusted_ui.h"
#endif // !defined(OFFICIAL_BUILD)
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -56,6 +62,10 @@ WebUIConfigList CreateConfigs() {
ALLOW_UNUSED_LOCAL(register_config);
// Register WebUIConfigs below.
+#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
+ register_config(std::make_unique<printing::PrintPreviewUIUntrustedConfig>());
+#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
+
#if defined(OS_ANDROID)
register_config(std::make_unique<video_tutorials::VideoPlayerUIConfig>());
#endif // defined(OS_ANDROID)
@@ -67,14 +77,16 @@ WebUIConfigList CreateConfigs() {
register_config(std::make_unique<MediaAppGuestUIConfig>());
register_config(
std::make_unique<chromeos::UntrustedPersonalizationAppUIConfig>());
- register_config(std::make_unique<HelpAppUntrustedUIConfig>());
+ register_config(std::make_unique<ash::HelpAppUntrustedUIConfig>());
register_config(
- std::make_unique<chromeos::HelpAppKidsMagazineUntrustedUIConfig>());
+ std::make_unique<ash::HelpAppKidsMagazineUntrustedUIConfig>());
if (ash::features::IsProjectorEnabled())
register_config(std::make_unique<chromeos::UntrustedProjectorUIConfig>());
+ if (ash::features::IsFileManagerSwaEnabled())
+ register_config(
+ std::make_unique<ash::file_manager::FileManagerUntrustedUIConfig>());
#if !defined(OFFICIAL_BUILD)
- register_config(
- std::make_unique<chromeos::TelemetryExtensionUntrustedUIConfig>());
+ register_config(std::make_unique<ash::TelemetryExtensionUntrustedUIConfig>());
register_config(std::make_unique<ash::UntrustedSampleSystemWebAppUIConfig>());
#endif // !defined(OFFICIAL_BUILD)
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chromium/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc b/chromium/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc
index 07262096cfa..31eef8eabdb 100644
--- a/chromium/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc
@@ -42,10 +42,17 @@ class NavigationObserver : public content::WebContentsObserver {
explicit NavigationObserver(content::WebContents* web_contents)
: WebContentsObserver(web_contents), navigation_result_(NOT_FINISHED) {}
+
+ NavigationObserver(const NavigationObserver&) = delete;
+ NavigationObserver& operator=(const NavigationObserver&) = delete;
+
~NavigationObserver() override = default;
void DidFinishNavigation(
content::NavigationHandle* navigation_handle) override {
+ if (!navigation_handle->IsInPrimaryMainFrame()) {
+ return;
+ }
navigation_result_ =
navigation_handle->IsErrorPage() ? ERROR_PAGE : SUCCESS;
net_error_ = navigation_handle->GetNetErrorCode();
@@ -73,8 +80,6 @@ class NavigationObserver : public content::WebContentsObserver {
net::Error net_error_ = net::OK;
bool got_navigation_ = false;
int http_status_code_ = -1;
-
- DISALLOW_COPY_AND_ASSIGN(NavigationObserver);
};
} // namespace
@@ -93,7 +98,8 @@ class ChromeURLDataManagerTest : public InProcessBrowserTest {
IN_PROC_BROWSER_TEST_F(ChromeURLDataManagerTest, 200) {
NavigationObserver observer(
browser()->tab_strip_model()->GetActiveWebContents());
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUINewTabURL));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(),
+ GURL(chrome::kChromeUINewTabURL)));
EXPECT_TRUE(observer.got_navigation());
EXPECT_EQ(200, observer.http_status_code());
}
@@ -103,15 +109,15 @@ IN_PROC_BROWSER_TEST_F(ChromeURLDataManagerTest, UnknownResource) {
// Known resource
NavigationObserver observer(
browser()->tab_strip_model()->GetActiveWebContents());
- ui_test_utils::NavigateToURL(
- browser(), GURL("chrome://theme/IDR_SETTINGS_FAVICON"));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(
+ browser(), GURL("chrome://theme/IDR_SETTINGS_FAVICON")));
EXPECT_EQ(NavigationObserver::SUCCESS, observer.navigation_result());
EXPECT_EQ(net::OK, observer.net_error());
// Unknown resource
observer.Reset();
- ui_test_utils::NavigateToURL(
- browser(), GURL("chrome://theme/IDR_ASDFGHJKL"));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(
+ browser(), GURL("chrome://theme/IDR_ASDFGHJKL")));
EXPECT_EQ(NavigationObserver::ERROR_PAGE, observer.navigation_result());
// The presence of net error means that navigation did not commit to the
// original url.
@@ -123,15 +129,15 @@ IN_PROC_BROWSER_TEST_F(ChromeURLDataManagerTest, LargeResourceScale) {
// Valid scale
NavigationObserver observer(
browser()->tab_strip_model()->GetActiveWebContents());
- ui_test_utils::NavigateToURL(
- browser(), GURL("chrome://theme/IDR_SETTINGS_FAVICON@2x"));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(
+ browser(), GURL("chrome://theme/IDR_SETTINGS_FAVICON@2x")));
EXPECT_EQ(NavigationObserver::SUCCESS, observer.navigation_result());
EXPECT_EQ(net::OK, observer.net_error());
// Unreasonably large scale
observer.Reset();
- ui_test_utils::NavigateToURL(
- browser(), GURL("chrome://theme/IDR_SETTINGS_FAVICON@99999x"));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(
+ browser(), GURL("chrome://theme/IDR_SETTINGS_FAVICON@99999x")));
EXPECT_EQ(NavigationObserver::ERROR_PAGE, observer.navigation_result());
// The presence of net error means that navigation did not commit to the
// original url.
@@ -162,7 +168,7 @@ class ChromeURLDataManagerWebUITrustedTypesTest
console_observer.SetPattern(message_filter2);
ASSERT_TRUE(embedded_test_server()->Start());
- ui_test_utils::NavigateToURL(browser(), GURL(url));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GURL(url)));
if (url == "chrome://network-error" || url == "chrome://dino") {
// We don't ASSERT_TRUE here because some WebUI pages are
@@ -326,9 +332,11 @@ static constexpr const char* const kChromeUrls[] = {
"chrome://sys-internals",
"chrome-untrusted://terminal",
#endif
-#if !BUILDFLAG(IS_CHROMEOS_ASH)
+#if !defined(OS_CHROMEOS)
"chrome://apps",
"chrome://browser-switch",
+#endif
+#if !BUILDFLAG(IS_CHROMEOS_ASH)
"chrome://signin-email-confirmation",
"chrome://welcome",
#endif
diff --git a/chromium/chrome/browser/ui/webui/chrome_web_contents_handler.h b/chromium/chrome/browser/ui/webui/chrome_web_contents_handler.h
index 1aa083aba2d..a5719c3c8ca 100644
--- a/chromium/chrome/browser/ui/webui/chrome_web_contents_handler.h
+++ b/chromium/chrome/browser/ui/webui/chrome_web_contents_handler.h
@@ -13,6 +13,10 @@ class ChromeWebContentsHandler
: public ui::WebDialogWebContentsDelegate::WebContentsHandler {
public:
ChromeWebContentsHandler();
+
+ ChromeWebContentsHandler(const ChromeWebContentsHandler&) = delete;
+ ChromeWebContentsHandler& operator=(const ChromeWebContentsHandler&) = delete;
+
~ChromeWebContentsHandler() override;
// Overridden from WebDialogWebContentsDelegate::WebContentsHandler:
@@ -30,9 +34,6 @@ class ChromeWebContentsHandler
void RunFileChooser(content::RenderFrameHost* render_frame_host,
scoped_refptr<content::FileSelectListener> listener,
const blink::mojom::FileChooserParams& params) override;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ChromeWebContentsHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_CHROME_WEB_CONTENTS_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chromium/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
index c6ae76bc4ad..7951094ef40 100644
--- a/chromium/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/chromium/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -56,6 +56,7 @@
#include "chrome/browser/ui/webui/predictors/predictors_ui.h"
#include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h"
#include "chrome/browser/ui/webui/signin_internals_ui.h"
+#include "chrome/browser/ui/webui/support_tool_ui.h"
#include "chrome/browser/ui/webui/sync_internals/sync_internals_ui.h"
#include "chrome/browser/ui/webui/translate_internals/translate_internals_ui.h"
#include "chrome/browser/ui/webui/usb_internals/usb_internals_ui.h"
@@ -155,8 +156,14 @@
#include "ash/webui/diagnostics_ui/url_constants.h"
#include "ash/webui/file_manager/file_manager_ui.h"
#include "ash/webui/file_manager/url_constants.h"
+#include "ash/webui/help_app_ui/help_app_ui.h"
+#include "ash/webui/help_app_ui/url_constants.h"
+#include "ash/webui/media_app_ui/media_app_ui.h"
+#include "ash/webui/media_app_ui/url_constants.h"
#include "ash/webui/os_feedback_ui/os_feedback_ui.h"
#include "ash/webui/os_feedback_ui/url_constants.h"
+#include "ash/webui/print_management/print_management_ui.h"
+#include "ash/webui/print_management/url_constants.h"
#include "ash/webui/scanning/scanning_ui.h"
#include "ash/webui/scanning/url_constants.h"
#include "ash/webui/shimless_rma/shimless_rma.h"
@@ -166,24 +173,24 @@
#include "base/system/sys_info.h"
#include "chrome/browser/app_mode/app_mode_utils.h"
#include "chrome/browser/ash/arc/arc_util.h"
+#include "chrome/browser/ash/device_sync/device_sync_client_factory.h"
#include "chrome/browser/ash/login/easy_unlock/easy_unlock_service.h"
#include "chrome/browser/ash/login/easy_unlock/easy_unlock_service_factory.h"
#include "chrome/browser/ash/login/login_pref_names.h"
+#include "chrome/browser/ash/multidevice_setup/multidevice_setup_service_factory.h"
+#include "chrome/browser/ash/net/network_health/network_health_service.h"
+#include "chrome/browser/ash/printing/print_management/printing_manager.h"
+#include "chrome/browser/ash/printing/print_management/printing_manager_factory.h"
#include "chrome/browser/ash/scanning/chrome_scanning_app_delegate.h"
#include "chrome/browser/ash/scanning/scan_service.h"
#include "chrome/browser/ash/scanning/scan_service_factory.h"
+#include "chrome/browser/ash/secure_channel/secure_channel_client_provider.h"
#include "chrome/browser/ash/web_applications/chrome_camera_app_ui_delegate.h"
#include "chrome/browser/ash/web_applications/chrome_file_manager_ui_delegate.h"
#include "chrome/browser/ash/web_applications/help_app/help_app_ui_delegate.h"
#include "chrome/browser/ash/web_applications/media_app/chrome_media_app_ui_delegate.h"
#include "chrome/browser/ash/web_applications/personalization_app/chrome_personalization_app_ui_delegate.h"
-#include "chrome/browser/chromeos/device_sync/device_sync_client_factory.h"
#include "chrome/browser/chromeos/eche_app/eche_app_manager_factory.h"
-#include "chrome/browser/chromeos/multidevice_setup/multidevice_setup_service_factory.h"
-#include "chrome/browser/chromeos/net/network_health/network_health_service.h"
-#include "chrome/browser/chromeos/printing/print_management/printing_manager.h"
-#include "chrome/browser/chromeos/printing/print_management/printing_manager_factory.h"
-#include "chrome/browser/chromeos/secure_channel/secure_channel_client_provider.h"
#include "chrome/browser/feedback/feedback_dialog_utils.h"
#include "chrome/browser/nearby_sharing/nearby_sharing_service_factory.h"
#include "chrome/browser/ui/ash/holding_space/holding_space_keyed_service.h"
@@ -216,6 +223,7 @@
#include "chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_ui.h"
#include "chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.h"
#include "chrome/browser/ui/webui/chromeos/network_ui.h"
+#include "chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.h"
#include "chrome/browser/ui/webui/chromeos/power_ui.h"
#include "chrome/browser/ui/webui/chromeos/set_time_ui.h"
#include "chrome/browser/ui/webui/chromeos/slow_trace_ui.h"
@@ -234,16 +242,10 @@
#include "chromeos/components/eche_app_ui/eche_app_manager.h"
#include "chromeos/components/eche_app_ui/eche_app_ui.h"
#include "chromeos/components/eche_app_ui/url_constants.h"
-#include "chromeos/components/help_app_ui/help_app_ui.h"
-#include "chromeos/components/help_app_ui/url_constants.h"
-#include "chromeos/components/media_app_ui/media_app_ui.h"
-#include "chromeos/components/media_app_ui/url_constants.h"
#include "chromeos/components/multidevice/debug_webui/proximity_auth_ui.h"
#include "chromeos/components/multidevice/debug_webui/url_constants.h"
#include "chromeos/components/personalization_app/personalization_app_ui.h"
#include "chromeos/components/personalization_app/personalization_app_url_constants.h"
-#include "chromeos/components/print_management/print_management_ui.h"
-#include "chromeos/components/print_management/url_constants.h"
#include "chromeos/components/projector_app/projector_app_constants.h"
#include "chromeos/components/projector_app/trusted_projector_ui.h"
#include "chromeos/services/multidevice_setup/multidevice_setup_service.h"
@@ -254,16 +256,16 @@
#endif
#if BUILDFLAG(IS_CHROMEOS_ASH) && !defined(OFFICIAL_BUILD)
+#include "ash/webui/demo_mode_app_ui/demo_mode_app_ui.h"
+#include "ash/webui/demo_mode_app_ui/url_constants.h"
#include "ash/webui/sample_system_web_app_ui/sample_system_web_app_ui.h"
#include "ash/webui/sample_system_web_app_ui/url_constants.h"
+#include "ash/webui/telemetry_extension_ui/telemetry_extension_ui.h"
+#include "ash/webui/telemetry_extension_ui/url_constants.h"
#include "chrome/browser/ui/webui/chromeos/emulator/device_emulator_ui.h"
-#include "chromeos/components/demo_mode_app_ui/demo_mode_app_ui.h"
-#include "chromeos/components/demo_mode_app_ui/url_constants.h"
-#include "chromeos/components/telemetry_extension_ui/telemetry_extension_ui.h"
-#include "chromeos/components/telemetry_extension_ui/url_constants.h"
#endif
-#if !BUILDFLAG(IS_CHROMEOS_ASH)
+#if !defined(OS_CHROMEOS)
#include "chrome/browser/ui/webui/app_launcher_page_ui.h"
#endif
@@ -271,9 +273,12 @@
#include "chrome/browser/ui/webui/webui_js_error/webui_js_error_ui.h"
#endif
+#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
+#include "chrome/browser/ui/webui/browser_switch/browser_switch_ui.h"
+#endif
+
#if !BUILDFLAG(IS_CHROMEOS_ASH) && !defined(OS_ANDROID)
#include "chrome/browser/ui/sync/sync_promo_ui.h"
-#include "chrome/browser/ui/webui/browser_switch/browser_switch_ui.h"
#include "chrome/browser/ui/webui/signin/enterprise_profile_welcome_ui.h"
#include "chrome/browser/ui/webui/signin/profile_customization_ui.h"
#include "chrome/browser/ui/webui/signin/profile_picker_ui.h"
@@ -298,6 +303,11 @@
#include "chrome/browser/ui/webui/sandbox/sandbox_internals_ui.h"
#endif
+#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \
+ BUILDFLAG(IS_CHROMEOS_ASH)
+#include "chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h"
+#endif
+
#if defined(USE_NSS_CERTS) && defined(USE_AURA)
#include "chrome/browser/ui/webui/certificate_viewer_ui.h"
#endif
@@ -379,24 +389,29 @@ WebUIController* NewWebUI<chromeos::OobeUI>(WebUI* web_ui, const GURL& url) {
return new chromeos::OobeUI(web_ui, url);
}
+template <>
+WebUIController* NewWebUI<chromeos::TrustedProjectorUI>(WebUI* web_ui,
+ const GURL& url) {
+ return new chromeos::TrustedProjectorUI(web_ui, url);
+}
+
void BindPrintManagement(
Profile* profile,
mojo::PendingReceiver<
- chromeos::printing::printing_manager::mojom::PrintingMetadataProvider>
+ ash::printing::printing_manager::mojom::PrintingMetadataProvider>
receiver) {
- chromeos::printing::print_management::PrintingManager* handler =
- chromeos::printing::print_management::PrintingManagerFactory::
- GetForProfile(profile);
+ ash::printing::print_management::PrintingManager* handler =
+ ash::printing::print_management::PrintingManagerFactory::GetForProfile(
+ profile);
if (handler)
handler->BindInterface(std::move(receiver));
}
template <>
-WebUIController*
-NewWebUI<chromeos::printing::printing_manager::PrintManagementUI>(
+WebUIController* NewWebUI<ash::printing::printing_manager::PrintManagementUI>(
WebUI* web_ui,
const GURL& url) {
- return new chromeos::printing::printing_manager::PrintManagementUI(
+ return new ash::printing::printing_manager::PrintManagementUI(
web_ui,
base::BindRepeating(&BindPrintManagement, Profile::FromWebUI(web_ui)));
}
@@ -427,6 +442,15 @@ void BindEcheUidGenerator(
}
}
+void BindEcheNotificationGenerator(
+ chromeos::eche_app::EcheAppManager* manager,
+ mojo::PendingReceiver<chromeos::eche_app::mojom::NotificationGenerator>
+ receiver) {
+ if (manager) {
+ manager->BindNotificationGeneratorInterface(std::move(receiver));
+ }
+}
+
template <>
WebUIController* NewWebUI<chromeos::eche_app::EcheAppUI>(WebUI* web_ui,
const GURL& url) {
@@ -436,7 +460,8 @@ WebUIController* NewWebUI<chromeos::eche_app::EcheAppUI>(WebUI* web_ui,
return new chromeos::eche_app::EcheAppUI(
web_ui, base::BindRepeating(&BindEcheSignalingMessageExchanger, manager),
base::BindRepeating(&BindSystemInfoProvider, manager),
- base::BindRepeating(&BindEcheUidGenerator, manager));
+ base::BindRepeating(&BindEcheUidGenerator, manager),
+ base::BindRepeating(&BindEcheNotificationGenerator, manager));
}
void BindScanService(
@@ -491,7 +516,7 @@ WebUIController* NewWebUI<chromeos::multidevice::ProximityAuthUI>(
web_ui->GetWebContents()->GetBrowserContext();
return new chromeos::multidevice::ProximityAuthUI(
web_ui,
- chromeos::device_sync::DeviceSyncClientFactory::GetForProfile(
+ ash::device_sync::DeviceSyncClientFactory::GetForProfile(
Profile::FromBrowserContext(browser_context)),
chromeos::secure_channel::SecureChannelClientProvider::GetInstance()
->GetClient(),
@@ -640,6 +665,9 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<SignInInternalsUI>;
if (url.host_piece() == chrome::kChromeUISupervisedUserPassphrasePageHost)
return &NewWebUI<ConstrainedWebDialogUI>;
+ if (base::FeatureList::IsEnabled(features::kSupportTool) &&
+ url.host_piece() == chrome::kChromeUISupportToolHost)
+ return &NewWebUI<SupportToolUI>;
if (url.host_piece() == chrome::kChromeUISyncInternalsHost)
return &NewWebUI<SyncInternalsUI>;
if (url.host_piece() == chrome::kChromeUITranslateInternalsHost)
@@ -652,14 +680,14 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<VersionUI>;
#if !defined(OS_ANDROID)
-#if !BUILDFLAG(IS_CHROMEOS_ASH)
+#if !defined(OS_CHROMEOS)
// AppLauncherPage is not needed on Android or ChromeOS.
if (url.host_piece() == chrome::kChromeUIAppLauncherPageHost && profile &&
extensions::ExtensionSystem::Get(profile)->extension_service() &&
!profile->IsGuestSession()) {
return &NewWebUI<AppLauncherPageUI>;
}
-#endif // !BUILDFLAG(IS_CHROMEOS_ASH)
+#endif // !defined(OS_CHROMEOS)
if (profile->IsGuestSession() &&
(url.host_piece() == chrome::kChromeUIAppLauncherPageHost ||
url.host_piece() == chrome::kChromeUIBookmarksHost ||
@@ -728,14 +756,14 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
}
if (url.host_piece() == chrome::kChromeUIPasswordChangeHost) {
if (!profile->GetPrefs()->GetBoolean(
- chromeos::prefs::kSamlInSessionPasswordChangeEnabled)) {
+ ash::prefs::kSamlInSessionPasswordChangeEnabled)) {
return nullptr;
}
return &NewWebUI<chromeos::PasswordChangeUI>;
}
if (url.host_piece() == chrome::kChromeUIConfirmPasswordChangeHost) {
if (!profile->GetPrefs()->GetBoolean(
- chromeos::prefs::kSamlInSessionPasswordChangeEnabled)) {
+ ash::prefs::kSamlInSessionPasswordChangeEnabled)) {
return nullptr;
}
return &NewWebUI<chromeos::ConfirmPasswordChangeUI>;
@@ -743,7 +771,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
if (url.host_piece() ==
chrome::kChromeUIUrgentPasswordExpiryNotificationHost) {
if (!profile->GetPrefs()->GetBoolean(
- chromeos::prefs::kSamlInSessionPasswordChangeEnabled)) {
+ ash::prefs::kSamlInSessionPasswordChangeEnabled)) {
return nullptr;
}
return &NewWebUI<chromeos::UrgentPasswordExpiryNotificationUI>;
@@ -775,6 +803,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<chromeos::AccountMigrationWelcomeUI>;
if (url.host_piece() == chrome::kChromeUIAddSupervisionHost)
return &NewWebUI<chromeos::AddSupervisionUI>;
+ if (url.host_piece() == chrome::kChromeUIParentAccessHost)
+ return &NewWebUI<chromeos::ParentAccessUI>;
if (url.host_piece() == chrome::kChromeUIAudioHost &&
base::FeatureList::IsEnabled(chromeos::features::kAudioUrl)) {
return &NewWebUI<chromeos::AudioUI>;
@@ -802,8 +832,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
if (base::FeatureList::IsEnabled(features::kEnterpriseCastingUI) &&
url.host_piece() == chrome::kChromeUIEnterpriseCastingHost)
return &NewWebUI<chromeos::EnterpriseCastingUI>;
- if (url.host_piece() == chromeos::kChromeUIHelpAppHost)
- return &NewComponentUI<chromeos::HelpAppUI, ChromeHelpAppUIDelegate>;
+ if (url.host_piece() == ash::kChromeUIHelpAppHost)
+ return &NewComponentUI<ash::HelpAppUI, ash::ChromeHelpAppUIDelegate>;
if (url.host_piece() == chrome::kChromeUIMobileSetupHost)
return &NewWebUI<chromeos::cellular_setup::MobileSetupUI>;
if (url.host_piece() == chrome::kChromeUIMultiDeviceInternalsHost)
@@ -822,16 +852,16 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
url.host_piece() == ash::kChromeUIDiagnosticsAppHost) {
return &NewWebUI<ash::DiagnosticsDialogUI>;
}
- if (url.host_piece() == chromeos::kChromeUIPrintManagementHost)
- return &NewWebUI<chromeos::printing::printing_manager::PrintManagementUI>;
+ if (url.host_piece() == ash::kChromeUIPrintManagementHost)
+ return &NewWebUI<ash::printing::printing_manager::PrintManagementUI>;
if (url.host_piece() == ash::kChromeUIScanningAppHost)
return &NewWebUI<ash::ScanningUI>;
if (ash::features::IsShimlessRMAFlowEnabled() &&
url.host_piece() == ash::kChromeUIShimlessRMAHost) {
return &NewWebUI<ash::ShimlessRMADialogUI>;
}
- if (url.host_piece() == chromeos::kChromeUIMediaAppHost)
- return &NewComponentUI<chromeos::MediaAppUI, ChromeMediaAppUIDelegate>;
+ if (url.host_piece() == ash::kChromeUIMediaAppHost)
+ return &NewComponentUI<ash::MediaAppUI, ChromeMediaAppUIDelegate>;
if (features::IsShortcutCustomizationAppEnabled()) {
if (url.host_piece() == ash::kChromeUIShortcutCustomizationAppHost)
return &NewWebUI<ash::ShortcutCustomizationAppUI>;
@@ -915,16 +945,16 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<DeviceEmulatorUI>;
}
#endif // !defined(USE_REAL_DBUS_CLIENTS)
- if (url.host_piece() == chromeos::kChromeUIDemoModeAppHost) {
- if (chromeos::features::IsDemoModeSWAEnabled()) {
- return &NewWebUI<chromeos::DemoModeAppUI>;
+ if (url.host_piece() == ash::kChromeUIDemoModeAppHost) {
+ if (ash::features::IsDemoModeSWAEnabled()) {
+ return &NewWebUI<ash::DemoModeAppUI>;
}
}
if (url.host_piece() == ash::kChromeUISampleSystemWebAppHost)
return &NewWebUI<ash::SampleSystemWebAppUI>;
- if (url.host_piece() == chromeos::kChromeUITelemetryExtensionHost) {
- if (base::FeatureList::IsEnabled(chromeos::features::kTelemetryExtension)) {
- return &NewWebUI<chromeos::TelemetryExtensionUI>;
+ if (url.host_piece() == ash::kChromeUITelemetryExtensionHost) {
+ if (base::FeatureList::IsEnabled(ash::features::kTelemetryExtension)) {
+ return &NewWebUI<ash::TelemetryExtensionUI>;
}
}
#endif // !defined(OFFICIAL_BUILD)
@@ -1055,14 +1085,16 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
}
#endif
#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \
+ BUILDFLAG(IS_CHROMEOS_ASH)
+ if (url.host_piece() == chrome::kChromeUIConnectorsInternalsHost)
+ return &NewWebUI<enterprise_connectors::ConnectorsInternalsUI>;
+#endif
+#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \
defined(OS_CHROMEOS)
if (url.host_piece() == chrome::kChromeUIDiscardsHost)
return &NewWebUI<DiscardsUI>;
#endif
-// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
-// of lacros-chrome is complete.
-#if defined(OS_WIN) || defined(OS_MAC) || \
- (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
+#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX)
if (url.host_piece() == chrome::kChromeUIBrowserSwitchHost)
return &NewWebUI<BrowserSwitchUI>;
#endif
@@ -1262,11 +1294,11 @@ base::RefCountedMemory* ChromeWebUIControllerFactory::GetFaviconResourceBytes(
return FlagsUI::GetFaviconResourceBytes(scale_factor);
#if !defined(OS_ANDROID)
-#if !BUILDFLAG(IS_CHROMEOS_ASH)
+#if !defined(OS_CHROMEOS)
// The Apps launcher page is not available on android or ChromeOS.
if (page_url.host_piece() == chrome::kChromeUIAppLauncherPageHost)
return AppLauncherPageUI::GetFaviconResourceBytes(scale_factor);
-#endif // !BUILDFLAG(IS_CHROMEOS_ASH)
+#endif // !defined(OS_CHROMEOS)
if (page_url.host_piece() == chrome::kChromeUINewTabPageHost)
return NewTabPageUI::GetFaviconResourceBytes(scale_factor);
diff --git a/chromium/chrome/browser/ui/webui/chrome_web_ui_controller_factory.h b/chromium/chrome/browser/ui/webui/chrome_web_ui_controller_factory.h
index 35ac723e08a..899080190a7 100644
--- a/chromium/chrome/browser/ui/webui/chrome_web_ui_controller_factory.h
+++ b/chromium/chrome/browser/ui/webui/chrome_web_ui_controller_factory.h
@@ -27,6 +27,10 @@ class Origin;
class ChromeWebUIControllerFactory : public content::WebUIControllerFactory {
public:
+ ChromeWebUIControllerFactory(const ChromeWebUIControllerFactory&) = delete;
+ ChromeWebUIControllerFactory& operator=(const ChromeWebUIControllerFactory&) =
+ delete;
+
static ChromeWebUIControllerFactory* GetInstance();
// http://crbug.com/829412
@@ -67,8 +71,6 @@ class ChromeWebUIControllerFactory : public content::WebUIControllerFactory {
base::RefCountedMemory* GetFaviconResourceBytes(
const GURL& page_url,
ui::ResourceScaleFactor scale_factor) const;
-
- DISALLOW_COPY_AND_ASSIGN(ChromeWebUIControllerFactory);
};
#endif // CHROME_BROWSER_UI_WEBUI_CHROME_WEB_UI_CONTROLLER_FACTORY_H_
diff --git a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_error_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_error_ui.cc
index f1f73d8d105..0a653ddd98c 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_error_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_error_ui.cc
@@ -21,7 +21,7 @@ AccountManagerErrorUI::AccountManagerErrorUI(content::WebUI* web_ui)
content::WebUIDataSource* html_source = content::WebUIDataSource::Create(
chrome::kChromeUIAccountManagerErrorHost);
- web_ui->RegisterMessageCallback(
+ web_ui->RegisterDeprecatedMessageCallback(
"closeDialog", base::BindRepeating(&WebDialogUI::CloseDialog,
weak_factory_.GetWeakPtr()));
diff --git a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_dialog.h b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_dialog.h
index 04c65aa8e4d..727d6f36fb4 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_dialog.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_dialog.h
@@ -14,6 +14,10 @@ namespace chromeos {
class AccountManagerWelcomeDialog : public SystemWebDialogDelegate {
public:
+ AccountManagerWelcomeDialog(const AccountManagerWelcomeDialog&) = delete;
+ AccountManagerWelcomeDialog& operator=(const AccountManagerWelcomeDialog&) =
+ delete;
+
// Displays the Chrome OS Account Manager welcome screen, if it has not been
// shown "too many times" before. Returns true if the screen was displayed,
// false otherwise.
@@ -38,8 +42,6 @@ class AccountManagerWelcomeDialog : public SystemWebDialogDelegate {
private:
static bool ShowIfRequiredInternal();
-
- DISALLOW_COPY_AND_ASSIGN(AccountManagerWelcomeDialog);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_ui.cc
index 111d08ff113..7bacfcf6b7d 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_ui.cc
@@ -23,7 +23,7 @@ AccountManagerWelcomeUI::AccountManagerWelcomeUI(content::WebUI* web_ui)
content::WebUIDataSource* html_source = content::WebUIDataSource::Create(
chrome::kChromeUIAccountManagerWelcomeHost);
- web_ui->RegisterMessageCallback(
+ web_ui->RegisterDeprecatedMessageCallback(
"closeDialog", base::BindRepeating(&WebDialogUI::CloseDialog,
weak_factory_.GetWeakPtr()));
diff --git a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_ui.h b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_ui.h
index 9a68ddc6579..497b175415a 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_manager_welcome_ui.h
@@ -15,11 +15,14 @@ namespace chromeos {
class AccountManagerWelcomeUI : public ui::WebDialogUI {
public:
explicit AccountManagerWelcomeUI(content::WebUI* web_ui);
+
+ AccountManagerWelcomeUI(const AccountManagerWelcomeUI&) = delete;
+ AccountManagerWelcomeUI& operator=(const AccountManagerWelcomeUI&) = delete;
+
~AccountManagerWelcomeUI() override;
private:
base::WeakPtrFactory<AccountManagerWelcomeUI> weak_factory_{this};
- DISALLOW_COPY_AND_ASSIGN(AccountManagerWelcomeUI);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_dialog.h b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_dialog.h
index 6622d961508..c808278d71d 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_dialog.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_dialog.h
@@ -15,6 +15,10 @@ namespace chromeos {
class AccountMigrationWelcomeDialog : public SystemWebDialogDelegate {
public:
+ AccountMigrationWelcomeDialog(const AccountMigrationWelcomeDialog&) = delete;
+ AccountMigrationWelcomeDialog& operator=(
+ const AccountMigrationWelcomeDialog&) = delete;
+
// Displays the migration dialog for the |email|.
static AccountMigrationWelcomeDialog* Show(const std::string& email);
@@ -36,8 +40,6 @@ class AccountMigrationWelcomeDialog : public SystemWebDialogDelegate {
private:
const std::string email_;
const std::string id_;
-
- DISALLOW_COPY_AND_ASSIGN(AccountMigrationWelcomeDialog);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_ui.cc
index 3a059d24f2a..97219cffe9a 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_ui.cc
@@ -11,7 +11,6 @@
#include "base/callback.h"
#include "base/strings/utf_string_conversions.h"
#include "build/branding_buildflags.h"
-#include "chrome/browser/account_manager_facade_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.h"
#include "chrome/browser/ui/webui/webui_util.h"
@@ -20,6 +19,7 @@
#include "chrome/grit/browser_resources.h"
#include "chrome/grit/generated_resources.h"
#include "components/account_manager_core/account_manager_facade.h"
+#include "components/account_manager_core/chromeos/account_manager_facade_factory.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui_data_source.h"
#include "net/base/url_util.h"
@@ -37,16 +37,20 @@ class MigrationMessageHandler : public content::WebUIMessageHandler {
public:
explicit MigrationMessageHandler(base::RepeatingClosure close_dialog_closure)
: close_dialog_closure_(close_dialog_closure) {}
+
+ MigrationMessageHandler(const MigrationMessageHandler&) = delete;
+ MigrationMessageHandler& operator=(const MigrationMessageHandler&) = delete;
+
~MigrationMessageHandler() override = default;
private:
void RegisterMessages() override {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"reauthenticateAccount",
base::BindRepeating(
&MigrationMessageHandler::HandleReauthenticateAccount,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"closeDialog",
base::BindRepeating(&MigrationMessageHandler::HandleCloseDialog,
base::Unretained(this)));
@@ -75,8 +79,6 @@ class MigrationMessageHandler : public content::WebUIMessageHandler {
}
base::RepeatingClosure close_dialog_closure_;
-
- DISALLOW_COPY_AND_ASSIGN(MigrationMessageHandler);
};
} // namespace
diff --git a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_ui.h b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_ui.h
index 3c7ec92e12d..6e71ea0dd86 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/account_manager/account_migration_welcome_ui.h
@@ -16,12 +16,15 @@ namespace chromeos {
class AccountMigrationWelcomeUI : public ui::WebDialogUI {
public:
explicit AccountMigrationWelcomeUI(content::WebUI* web_ui);
+
+ AccountMigrationWelcomeUI(const AccountMigrationWelcomeUI&) = delete;
+ AccountMigrationWelcomeUI& operator=(const AccountMigrationWelcomeUI&) =
+ delete;
+
~AccountMigrationWelcomeUI() override;
private:
base::WeakPtrFactory<AccountMigrationWelcomeUI> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(AccountMigrationWelcomeUI);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler.cc
index 05f434dcf84..1bac5122061 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler.cc
@@ -98,7 +98,7 @@ void AddSupervisionHandler::GetOAuthToken(GetOAuthTokenCallback callback) {
oauth2_access_token_fetcher_ =
identity_manager_->CreateAccessTokenFetcherForAccount(
- identity_manager_->GetPrimaryAccountId(signin::ConsentLevel::kSignin),
+ identity_manager_->GetPrimaryAccountId(signin::ConsentLevel::kSync),
"add_supervision", scopes,
base::BindOnce(&AddSupervisionHandler::OnAccessTokenFetchComplete,
weak_ptr_factory_.GetWeakPtr(), std::move(callback)),
diff --git a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler.h b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler.h
index 1ea2c89485a..35fc95450f3 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler.h
@@ -51,6 +51,10 @@ class AddSupervisionHandler
content::WebUI* web_ui,
signin::IdentityManager* identity_manager,
Delegate* delegate);
+
+ AddSupervisionHandler(const AddSupervisionHandler&) = delete;
+ AddSupervisionHandler& operator=(const AddSupervisionHandler&) = delete;
+
~AddSupervisionHandler() override;
// add_supervision::mojom::AddSupervisionHandler overrides:
@@ -78,8 +82,6 @@ class AddSupervisionHandler
Delegate* delegate_;
base::WeakPtrFactory<AddSupervisionHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(AddSupervisionHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler_utils.cc b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler_utils.cc
index 8bc9b023bb2..274efcaf4c9 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler_utils.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_handler_utils.cc
@@ -14,7 +14,7 @@
bool ShouldIncludeAppUpdate(const apps::AppUpdate& app_update) {
return app_update.AppType() == apps::mojom::AppType::kArc &&
- app_update.InstallSource() != apps::mojom::InstallSource::kSystem;
+ app_update.InstallReason() != apps::mojom::InstallReason::kSystem;
}
void LogOutHelper() {
diff --git a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder.h b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder.h
index 1e20c1eb6c9..0c4daaa781e 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder.h
@@ -36,6 +36,10 @@ class AddSupervisionMetricsRecorder {
kMaxValue = kSwitchedAccounts
};
+ AddSupervisionMetricsRecorder(const AddSupervisionMetricsRecorder&) = delete;
+ AddSupervisionMetricsRecorder& operator=(
+ const AddSupervisionMetricsRecorder&) = delete;
+
static AddSupervisionMetricsRecorder* GetInstance();
// Records UMA metrics for users going through the Add Supervision process.
@@ -57,8 +61,6 @@ class AddSupervisionMetricsRecorder {
// Records when the user initiates the Add Supervision process.
base::TimeTicks start_time_;
-
- DISALLOW_COPY_AND_ASSIGN(AddSupervisionMetricsRecorder);
};
#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_ADD_SUPERVISION_ADD_SUPERVISION_METRICS_RECORDER_H_
diff --git a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder_browsertest.cc b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder_browsertest.cc
index b6b05e91d8a..10b23889d60 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_metrics_recorder_browsertest.cc
@@ -23,6 +23,12 @@ namespace chromeos {
class AddSupervisionMetricsRecorderTest : public InProcessBrowserTest {
public:
AddSupervisionMetricsRecorderTest() = default;
+
+ AddSupervisionMetricsRecorderTest(const AddSupervisionMetricsRecorderTest&) =
+ delete;
+ AddSupervisionMetricsRecorderTest& operator=(
+ const AddSupervisionMetricsRecorderTest&) = delete;
+
~AddSupervisionMetricsRecorderTest() override = default;
void SetUpOnMainThread() override {
@@ -64,8 +70,6 @@ class AddSupervisionMetricsRecorderTest : public InProcessBrowserTest {
}
private:
- DISALLOW_COPY_AND_ASSIGN(AddSupervisionMetricsRecorderTest);
-
std::unique_ptr<signin::IdentityTestEnvironment> identity_test_env_;
content::TestWebUI test_web_ui_;
};
@@ -229,11 +233,11 @@ IN_PROC_BROWSER_TEST_P(AddSupervisionMetricsRecorderTimeTest, UserTimingTest) {
base::MakeRefCounted<base::TestMockTimeTaskRunner>();
AddSupervisionMetricsRecorder::GetInstance()->SetClockForTesting(
task_runner_->GetMockTickClock());
- base::TimeDelta duration(base::TimeDelta::FromSeconds(GetParam()));
+ base::TimeDelta duration(base::Seconds(GetParam()));
// We need to start at some non-zero point in time or else
// DCHECK(!start_time_.is_null()) throws.
- task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+ task_runner_->FastForwardBy(base::Seconds(1));
ShowAddSupervisionDialog();
task_runner_->FastForwardBy(duration);
CloseAddSupervisionDialog();
diff --git a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui.cc
index 644ccb0e3f2..032228bdde1 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui.cc
@@ -204,8 +204,6 @@ void AddSupervisionUI::SetUpResources() {
source->EnableReplaceI18nInJS();
// Forward data to the WebUI.
- source->AddResourcePath("post_message_api.js",
- IDR_ADD_SUPERVISION_POST_MESSAGE_API_JS);
source->AddResourcePath("add_supervision_api_server.js",
IDR_ADD_SUPERVISION_API_SERVER_JS);
source->AddResourcePath("add_supervision_ui.js", IDR_ADD_SUPERVISION_UI_JS);
diff --git a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui.h b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui.h
index 9238359f6e4..c06c5eca2d6 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui.h
@@ -24,6 +24,9 @@ namespace chromeos {
// convert a regular Google account into a Family-Link managed account.
class AddSupervisionDialog : public SystemWebDialogDelegate {
public:
+ AddSupervisionDialog(const AddSupervisionDialog&) = delete;
+ AddSupervisionDialog& operator=(const AddSupervisionDialog&) = delete;
+
// Shows the dialog; if the dialog is already displayed, this function is a
// no-op.
static void Show(gfx::NativeView parent);
@@ -58,8 +61,6 @@ class AddSupervisionDialog : public SystemWebDialogDelegate {
private:
bool should_close_on_escape_ = true;
-
- DISALLOW_COPY_AND_ASSIGN(AddSupervisionDialog);
};
// Controller for chrome://add-supervision
@@ -67,6 +68,10 @@ class AddSupervisionUI : public ui::MojoWebUIController,
public AddSupervisionHandler::Delegate {
public:
explicit AddSupervisionUI(content::WebUI* web_ui);
+
+ AddSupervisionUI(const AddSupervisionUI&) = delete;
+ AddSupervisionUI& operator=(const AddSupervisionUI&) = delete;
+
~AddSupervisionUI() override;
// AddSupervisionHandler::Delegate:
@@ -94,8 +99,6 @@ class AddSupervisionUI : public ui::MojoWebUIController,
bool allow_non_google_url_for_tests_ = false;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(AddSupervisionUI);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui_browsertest.cc
index d968b8accbb..d8da2e5c5c3 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/add_supervision/add_supervision_ui_browsertest.cc
@@ -33,6 +33,11 @@ const char kGetAddSupervisionUIElementJS[] =
class AddSupervisionBrowserTest : public InProcessBrowserTest {
public:
AddSupervisionBrowserTest() = default;
+
+ AddSupervisionBrowserTest(const AddSupervisionBrowserTest&) = delete;
+ AddSupervisionBrowserTest& operator=(const AddSupervisionBrowserTest&) =
+ delete;
+
~AddSupervisionBrowserTest() override = default;
void SetUpOnMainThread() override {
@@ -40,7 +45,7 @@ class AddSupervisionBrowserTest : public InProcessBrowserTest {
// FakeGaia.IssueOAuthToken().
identity_test_env_ = std::make_unique<signin::IdentityTestEnvironment>();
identity_test_env_->MakePrimaryAccountAvailable(
- "example@gmail.com", signin::ConsentLevel::kSignin);
+ "example@gmail.com", signin::ConsentLevel::kSync);
// This makes the identity manager return the string "access_token" for the
// access token.
identity_test_env_->SetAutomaticIssueOfAccessTokens(true);
@@ -80,13 +85,12 @@ class AddSupervisionBrowserTest : public InProcessBrowserTest {
private:
std::unique_ptr<signin::IdentityTestEnvironment> identity_test_env_;
-
- DISALLOW_COPY_AND_ASSIGN(AddSupervisionBrowserTest);
};
IN_PROC_BROWSER_TEST_F(AddSupervisionBrowserTest, URLParameters) {
// Open the Add Supervision URL.
- ui_test_utils::NavigateToURL(browser(), add_supervision_webui_url());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), add_supervision_webui_url()));
EXPECT_TRUE(content::WaitForLoadStop(contents()));
// Get the URL from the embedded webview.
@@ -123,7 +127,8 @@ IN_PROC_BROWSER_TEST_F(AddSupervisionBrowserTest, URLParameters) {
IN_PROC_BROWSER_TEST_F(AddSupervisionBrowserTest, ShowOfflineScreen) {
// Open the Add Supervision URL.
- ui_test_utils::NavigateToURL(browser(), add_supervision_webui_url());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), add_supervision_webui_url()));
EXPECT_TRUE(content::WaitForLoadStop(contents()));
// Webview div should be initially visible.
@@ -157,7 +162,8 @@ IN_PROC_BROWSER_TEST_F(AddSupervisionBrowserTest, ShowOfflineScreen) {
IN_PROC_BROWSER_TEST_F(AddSupervisionBrowserTest, ShowConfirmSignoutDialog) {
// Open the Add Supervision URL.
- ui_test_utils::NavigateToURL(browser(), add_supervision_webui_url());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), add_supervision_webui_url()));
EXPECT_TRUE(content::WaitForLoadStop(contents()));
// Request that the dialog close before supervision has been enabled.
@@ -194,7 +200,8 @@ IN_PROC_BROWSER_TEST_F(AddSupervisionBrowserTest, UMATest) {
0);
// Open the Add Supervision URL.
- ui_test_utils::NavigateToURL(browser(), add_supervision_webui_url());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), add_supervision_webui_url()));
EXPECT_TRUE(content::WaitForLoadStop(contents()));
// Simulate supervision being enabled.
diff --git a/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/OWNER b/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/OWNERS
index f35d9cb92ee..f35d9cb92ee 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/OWNER
+++ b/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/OWNERS
diff --git a/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.cc
index 5f62a5cee83..4573bc161f0 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.cc
@@ -71,8 +71,7 @@ void UpdateStatistics(Action action) {
}
// Maximum interval to display in full mode.
-constexpr base::TimeDelta kMaxIntervalToDisplayInFullMode =
- base::TimeDelta::FromSecondsD(5.0);
+constexpr base::TimeDelta kMaxIntervalToDisplayInFullMode = base::Seconds(5.0);
base::FilePath GetLastTracingModelPath(Profile* profile) {
DCHECK(profile);
@@ -80,29 +79,6 @@ base::FilePath GetLastTracingModelPath(Profile* profile) {
kLastTracingModelName);
}
-base::FilePath GetModelPathFromTitle(Profile* profile,
- const std::string& title) {
- constexpr size_t max_name_size = 32;
- char normalized_name[max_name_size];
- size_t index = 0;
- for (char c : title) {
- c = base::ToLowerASCII(c);
- if (index == max_name_size)
- break;
- if (c == ' ') {
- normalized_name[index++] = '_';
- continue;
- }
- if ((c >= 'a' && c <= 'z') || (c >= '0' && c <= '9'))
- normalized_name[index++] = c;
- }
- normalized_name[index] = 0;
- return file_manager::util::GetDownloadsFolderForProfile(profile).AppendASCII(
- base::StringPrintf("overview_tracing_%s_%" PRId64 ".json",
- normalized_name,
- (base::Time::Now() - base::Time()).InSeconds()));
-}
-
std::pair<base::Value, std::string> MaybeLoadLastGraphicsModel(
const base::FilePath& last_model_path) {
std::string json_content;
@@ -128,15 +104,16 @@ std::pair<base::Value, std::string> MaybeLoadLastGraphicsModel(
class ProcessFilterPassAll : public base::ProcessFilter {
public:
ProcessFilterPassAll() = default;
+
+ ProcessFilterPassAll(const ProcessFilterPassAll&) = delete;
+ ProcessFilterPassAll& operator=(const ProcessFilterPassAll&) = delete;
+
~ProcessFilterPassAll() override = default;
// base::ProcessFilter:
bool Includes(const base::ProcessEntry& process) const override {
return true;
}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ProcessFilterPassAll);
};
// Reads name of thread from /proc/pid/task/tid/status.
@@ -321,6 +298,31 @@ base::trace_event::TraceConfig GetTracingConfig(ArcGraphicsTracingMode mode) {
} // namespace
+// static
+base::FilePath ArcGraphicsTracingHandler::GetModelPathFromTitle(
+ Profile* profile,
+ const std::string& title) {
+ constexpr size_t kMaxNameSize = 32;
+ char normalized_name[kMaxNameSize];
+ size_t index = 0;
+ for (char c : title) {
+ if (index == kMaxNameSize - 1)
+ break;
+ c = base::ToLowerASCII(c);
+ if (c == ' ') {
+ normalized_name[index++] = '_';
+ continue;
+ }
+ if ((c >= 'a' && c <= 'z') || (c >= '0' && c <= '9'))
+ normalized_name[index++] = c;
+ }
+ normalized_name[index] = 0;
+ return file_manager::util::GetDownloadsFolderForProfile(profile).AppendASCII(
+ base::StringPrintf("overview_tracing_%s_%" PRId64 ".json",
+ normalized_name,
+ (base::Time::Now() - base::Time()).InSeconds()));
+}
+
ArcGraphicsTracingHandler::ArcGraphicsTracingHandler(
ArcGraphicsTracingMode mode)
: wm_helper_(exo::WMHelper::HasInstance() ? exo::WMHelper::GetInstance()
@@ -347,22 +349,22 @@ ArcGraphicsTracingHandler::~ArcGraphicsTracingHandler() {
}
void ArcGraphicsTracingHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"ready", base::BindRepeating(&ArcGraphicsTracingHandler::HandleReady,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"loadFromText",
base::BindRepeating(&ArcGraphicsTracingHandler::HandleLoadFromText,
base::Unretained(this)));
switch (mode_) {
case ArcGraphicsTracingMode::kFull:
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setStopOnJank",
base::BindRepeating(&ArcGraphicsTracingHandler::HandleSetStopOnJank,
base::Unretained(this)));
break;
case ArcGraphicsTracingMode::kOverview:
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setMaxTime",
base::BindRepeating(&ArcGraphicsTracingHandler::HandleSetMaxTime,
base::Unretained(this)));
@@ -612,7 +614,7 @@ void ArcGraphicsTracingHandler::HandleReady(const base::ListValue* args) {
void ArcGraphicsTracingHandler::HandleSetStopOnJank(
const base::ListValue* args) {
- DCHECK_EQ(1U, args->GetSize());
+ DCHECK_EQ(1U, args->GetList().size());
DCHECK_EQ(ArcGraphicsTracingMode::kFull, mode_);
if (!args->GetList()[0].is_bool()) {
LOG(ERROR) << "Invalid input";
@@ -622,20 +624,20 @@ void ArcGraphicsTracingHandler::HandleSetStopOnJank(
}
void ArcGraphicsTracingHandler::HandleSetMaxTime(const base::ListValue* args) {
- DCHECK_EQ(1U, args->GetSize());
+ DCHECK_EQ(1U, args->GetList().size());
DCHECK_EQ(ArcGraphicsTracingMode::kOverview, mode_);
if (!args->GetList()[0].is_int()) {
LOG(ERROR) << "Invalid input";
return;
}
- max_tracing_time_ = base::TimeDelta::FromSeconds(args->GetList()[0].GetInt());
- DCHECK_GE(max_tracing_time_, base::TimeDelta::FromSeconds(1));
+ max_tracing_time_ = base::Seconds(args->GetList()[0].GetInt());
+ DCHECK_GE(max_tracing_time_, base::Seconds(1));
}
void ArcGraphicsTracingHandler::HandleLoadFromText(
const base::ListValue* args) {
- DCHECK_EQ(1U, args->GetSize());
+ DCHECK_EQ(1U, args->GetList().size());
if (!args->GetList()[0].is_string()) {
LOG(ERROR) << "Invalid input";
return;
diff --git a/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.h b/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.h
index 4e01039b91e..658a75605d5 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.h
@@ -20,12 +20,15 @@
#include "ui/events/event_handler.h"
#include "ui/wm/public/activation_change_observer.h"
+class Profile;
+
namespace arc {
class ArcGraphicsJankDetector;
class ArcSystemStatCollector;
} // namespace arc
namespace base {
+class FilePath;
class ListValue;
} // namespace base
@@ -42,7 +45,15 @@ class ArcGraphicsTracingHandler : public content::WebUIMessageHandler,
public ui::EventHandler,
public exo::SurfaceObserver {
public:
+ static base::FilePath GetModelPathFromTitle(Profile* profile,
+ const std::string& title);
+
explicit ArcGraphicsTracingHandler(ArcGraphicsTracingMode mode);
+
+ ArcGraphicsTracingHandler(const ArcGraphicsTracingHandler&) = delete;
+ ArcGraphicsTracingHandler& operator=(const ArcGraphicsTracingHandler&) =
+ delete;
+
~ArcGraphicsTracingHandler() override;
// content::WebUIMessageHandler:
@@ -108,7 +119,7 @@ class ArcGraphicsTracingHandler : public content::WebUIMessageHandler,
// Determines the maximum tracing time.
// Works only in |ArcGraphicsTracingMode::kOverview| mode.
- base::TimeDelta max_tracing_time_ = base::TimeDelta::FromSeconds(5);
+ base::TimeDelta max_tracing_time_ = base::Seconds(5);
base::OneShotTimer stop_tracing_timer_;
@@ -138,8 +149,6 @@ class ArcGraphicsTracingHandler : public content::WebUIMessageHandler,
base::Time timestamp_;
base::WeakPtrFactory<ArcGraphicsTracingHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ArcGraphicsTracingHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler_unittest.cc b/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler_unittest.cc
new file mode 100644
index 00000000000..241204e0e73
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler_unittest.cc
@@ -0,0 +1,55 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.h"
+#include "base/files/file_path.h"
+#include "base/time/time_override.h"
+#include "chrome/browser/ash/file_manager/path_util.h"
+#include "chrome/test/base/testing_profile.h"
+#include "content/public/test/browser_task_environment.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace chromeos {
+
+namespace {
+
+class ArcGraphicsTracingHandlerTest : public testing::Test {
+ public:
+ ArcGraphicsTracingHandlerTest() = default;
+ ~ArcGraphicsTracingHandlerTest() override = default;
+
+ ArcGraphicsTracingHandlerTest(const ArcGraphicsTracingHandlerTest&) = delete;
+ ArcGraphicsTracingHandlerTest& operator=(
+ const ArcGraphicsTracingHandlerTest&) = delete;
+
+ protected:
+ // NOTE: The initialization order of these members matters.
+ content::BrowserTaskEnvironment task_environment_;
+ TestingProfile* profile() { return &profile_; }
+
+ private:
+ TestingProfile profile_;
+};
+
+TEST_F(ArcGraphicsTracingHandlerTest, ModelName) {
+ base::subtle::ScopedTimeClockOverrides time_override(
+ []() { return base::Time::UnixEpoch() + base::Seconds(1); }, nullptr,
+ nullptr);
+
+ const base::FilePath download_path =
+ file_manager::util::GetDownloadsFolderForProfile(profile());
+ EXPECT_EQ(download_path.AppendASCII(
+ "overview_tracing_test_title_1_11644473601.json"),
+ ArcGraphicsTracingHandler::GetModelPathFromTitle(profile(),
+ "Test Title #:1"));
+ EXPECT_EQ(
+ download_path.AppendASCII(
+ "overview_tracing_0123456789012345678901234567890_11644473601.json"),
+ ArcGraphicsTracingHandler::GetModelPathFromTitle(
+ profile(), "0123456789012345678901234567890123456789"));
+}
+
+} // namespace
+
+} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_ui.h b/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_ui.h
index 82713f2b2d8..fb4adb1ee8a 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_ui.h
@@ -21,8 +21,8 @@ class ArcGraphicsTracingUI : public content::WebUIController {
public:
explicit ArcGraphicsTracingUI(content::WebUI* web_ui);
- private:
- DISALLOW_COPY_AND_ASSIGN(ArcGraphicsTracingUI);
+ ArcGraphicsTracingUI(const ArcGraphicsTracingUI&) = delete;
+ ArcGraphicsTracingUI& operator=(const ArcGraphicsTracingUI&) = delete;
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.cc
index c1cb27450b8..91cebbfe3d0 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.cc
@@ -27,8 +27,7 @@ namespace chromeos {
namespace {
// Maximum interval to display in tracing.
-constexpr base::TimeDelta kMaxIntervalToDisplay =
- base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kMaxIntervalToDisplay = base::Minutes(5);
// Names of throttling mode.
constexpr char kThrottlingDisable[] = "disable";
@@ -126,22 +125,22 @@ ArcPowerControlHandler::~ArcPowerControlHandler() {
}
void ArcPowerControlHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"ready", base::BindRepeating(&ArcPowerControlHandler::HandleReady,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setWakefulnessMode",
base::BindRepeating(&ArcPowerControlHandler::HandleSetWakefulnessMode,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setThrottling",
base::BindRepeating(&ArcPowerControlHandler::HandleSetThrottling,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"startTracing",
base::BindRepeating(&ArcPowerControlHandler::HandleStartTracing,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"stopTracing",
base::BindRepeating(&ArcPowerControlHandler::HandleStopTracing,
base::Unretained(this)));
@@ -205,7 +204,7 @@ void ArcPowerControlHandler::HandleReady(const base::ListValue* args) {
void ArcPowerControlHandler::HandleSetWakefulnessMode(
const base::ListValue* args) {
- DCHECK_EQ(1U, args->GetSize());
+ DCHECK_EQ(1U, args->GetList().size());
if (!power_control_enabled_) {
LOG(ERROR) << "Power control is not enabled";
@@ -250,7 +249,7 @@ void ArcPowerControlHandler::HandleSetWakefulnessMode(
}
void ArcPowerControlHandler::HandleSetThrottling(const base::ListValue* args) {
- DCHECK_EQ(1U, args->GetSize());
+ DCHECK_EQ(1U, args->GetList().size());
if (!power_control_enabled_) {
LOG(ERROR) << "Power control is not enabled";
@@ -279,12 +278,12 @@ void ArcPowerControlHandler::HandleSetThrottling(const base::ListValue* args) {
}
void ArcPowerControlHandler::HandleStartTracing(const base::ListValue* args) {
- DCHECK(!args->GetSize());
+ DCHECK(!args->GetList().size());
StartTracing();
}
void ArcPowerControlHandler::HandleStopTracing(const base::ListValue* args) {
- DCHECK(!args->GetSize());
+ DCHECK(!args->GetList().size());
StopTracing();
}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.h b/chromium/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.h
index 60c4ed69afa..527fa2da2dd 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/arc_power_control/arc_power_control_handler.h
@@ -12,7 +12,7 @@
#include "base/memory/weak_ptr.h"
#include "base/timer/timer.h"
-#include "chrome/browser/chromeos/throttle_service.h"
+#include "chrome/browser/ash/throttle_service.h"
#include "components/arc/mojom/power.mojom.h"
#include "components/arc/power/arc_power_bridge.h"
#include "content/public/browser/web_ui_message_handler.h"
diff --git a/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_ui.cc
index 75c835325af..e6138740377 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_ui.cc
@@ -93,8 +93,6 @@ AssistantOptInUI::AssistantOptInUI(content::WebUI* web_ui)
IDR_ASSISTANT_VOICE_MATCH_ANIMATION);
source->AddResourcePath("voice_match_already_setup_animation.json",
IDR_ASSISTANT_VOICE_MATCH_ALREADY_SETUP_ANIMATION);
- // TODO(crbug.com/1202135): Remove along with JS part.
- source->AddBoolean("newLayoutEnabled", true);
source->OverrideContentSecurityPolicy(
network::mojom::CSPDirectiveName::WorkerSrc, "worker-src blob: 'self';");
source->DisableTrustedTypesCSP();
diff --git a/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_ui.h b/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_ui.h
index 245debafde6..4cd936d6f39 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_ui.h
@@ -24,6 +24,10 @@ namespace chromeos {
class AssistantOptInUI : public ui::WebDialogUI {
public:
explicit AssistantOptInUI(content::WebUI* web_ui);
+
+ AssistantOptInUI(const AssistantOptInUI&) = delete;
+ AssistantOptInUI& operator=(const AssistantOptInUI&) = delete;
+
~AssistantOptInUI() override;
// Called when the dialog is closed.
@@ -36,13 +40,14 @@ class AssistantOptInUI : public ui::WebDialogUI {
JSCallsContainer js_calls_container_;
AssistantOptInFlowScreenHandler* assistant_handler_ptr_;
base::WeakPtrFactory<AssistantOptInUI> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(AssistantOptInUI);
};
// Dialog delegate for the assistant optin page.
class AssistantOptInDialog : public SystemWebDialogDelegate {
public:
+ AssistantOptInDialog(const AssistantOptInDialog&) = delete;
+ AssistantOptInDialog& operator=(const AssistantOptInDialog&) = delete;
+
// Shows the assistant optin dialog.
static void Show(ash::FlowType type = ash::FlowType::kConsentFlow,
ash::AssistantSetup::StartAssistantOptInFlowCallback
@@ -71,8 +76,6 @@ class AssistantOptInDialog : public SystemWebDialogDelegate {
// Callback to run if the flow is completed.
ash::AssistantSetup::StartAssistantOptInFlowCallback callback_;
-
- DISALLOW_COPY_AND_ASSIGN(AssistantOptInDialog);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_utils.cc b/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_utils.cc
index 65194c1c507..c9f77db7a10 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_utils.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_utils.cc
@@ -10,7 +10,6 @@
#include "base/metrics/histogram_macros.h"
#include "chrome/browser/consent_auditor/consent_auditor_factory.h"
#include "chrome/browser/signin/identity_manager_factory.h"
-#include "chrome/browser/ui/webui/chromeos/user_image_source.h"
#include "chrome/grit/browser_resources.h"
#include "chrome/grit/generated_resources.h"
#include "chromeos/services/assistant/public/cpp/assistant_prefs.h"
@@ -21,40 +20,12 @@
#include "components/prefs/pref_service.h"
#include "components/signin/public/identity_manager/consent_level.h"
#include "components/signin/public/identity_manager/identity_manager.h"
-#include "components/user_manager/user_manager.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/webui/web_ui_util.h"
using AssistantActivityControlConsent =
sync_pb::UserConsentTypes::AssistantActivityControlConsent;
-namespace {
-
-bool IsPreferenceDefaultEnabled(const PrefService* prefs,
- const std::string& path) {
- const PrefService::Preference* pref = prefs->FindPreference(path);
-
- if (pref->IsManaged())
- return pref->GetValue()->GetBool();
-
- if (pref->GetRecommendedValue())
- return pref->GetRecommendedValue()->GetBool();
-
- return true;
-}
-
-bool IsScreenContextDefaultEnabled(PrefService* prefs) {
- return IsPreferenceDefaultEnabled(
- prefs, chromeos::assistant::prefs::kAssistantContextEnabled);
-}
-
-bool IsScreenContextToggleDisabled(PrefService* prefs) {
- return prefs->IsManagedPreference(
- chromeos::assistant::prefs::kAssistantContextEnabled);
-}
-
-} // namespace
-
namespace chromeos {
void RecordAssistantOptInStatus(AssistantOptInFlowStatus status) {
@@ -109,18 +80,6 @@ assistant::SettingsUiUpdate GetSettingsUiUpdate(
return update;
}
-// Construct SettingsUiUpdate for email opt-in.
-assistant::SettingsUiUpdate GetEmailOptInUpdate(bool opted_in) {
- assistant::SettingsUiUpdate update;
- assistant::EmailOptInUpdate* email_optin_update =
- update.mutable_email_opt_in_update();
- email_optin_update->set_email_opt_in_update_state(
- opted_in ? assistant::EmailOptInUpdate::OPT_IN
- : assistant::EmailOptInUpdate::OPT_OUT);
-
- return update;
-}
-
// Helper method to create zippy data.
base::Value CreateZippyData(const ActivityControlUi& activity_control_ui,
bool is_minor_mode) {
@@ -189,52 +148,12 @@ base::Value CreateDisclosureData(const SettingZippyList& disclosure_list) {
return disclosure_data;
}
-// Helper method to create get more screen data.
-base::Value CreateGetMoreData(bool email_optin_needed,
- const assistant::EmailOptInUi& email_optin_ui,
- PrefService* prefs) {
- base::Value get_more_data(base::Value::Type::LIST);
-
- // Process screen context data.
- base::Value context_data(base::Value::Type::DICTIONARY);
- context_data.SetKey("id", base::Value("context"));
- context_data.SetKey("title", base::Value(l10n_util::GetStringUTF16(
- IDS_ASSISTANT_SCREEN_CONTEXT_TITLE)));
- context_data.SetKey("description", base::Value(l10n_util::GetStringUTF16(
- IDS_ASSISTANT_SCREEN_CONTEXT_DESC)));
- context_data.SetKey("defaultEnabled",
- base::Value(IsScreenContextDefaultEnabled(prefs)));
- context_data.SetKey("toggleDisabled",
- base::Value(IsScreenContextToggleDisabled(prefs)));
- context_data.SetKey(
- "iconUri",
- base::Value("https://www.gstatic.com/images/icons/material/system/"
- "2x/screen_search_desktop_grey600_24dp.png"));
- get_more_data.Append(std::move(context_data));
-
- // Process email optin data.
- if (email_optin_needed) {
- base::Value data(base::Value::Type::DICTIONARY);
- data.SetKey("id", base::Value("email"));
- data.SetKey("title", base::Value(email_optin_ui.title()));
- data.SetKey("description", base::Value(email_optin_ui.description()));
- data.SetKey("defaultEnabled",
- base::Value(email_optin_ui.default_enabled()));
- data.SetKey("iconUri", base::Value(email_optin_ui.icon_uri()));
- data.SetKey("legalText", base::Value(email_optin_ui.legal_text()));
- get_more_data.Append(std::move(data));
- }
-
- return get_more_data;
-}
-
// Get string constants for settings ui.
base::Value GetSettingsUiStrings(const assistant::SettingsUi& settings_ui,
bool activity_control_needed,
bool equal_weight_buttons) {
auto consent_ui = settings_ui.consent_flow_ui().consent_ui();
auto activity_control_ui = consent_ui.activity_control_ui();
- auto third_party_disclosure_ui = consent_ui.third_party_disclosure_ui();
base::Value dictionary(base::Value::Type::DICTIONARY);
dictionary.SetKey("activityControlNeeded",
@@ -243,14 +162,6 @@ base::Value GetSettingsUiStrings(const assistant::SettingsUi& settings_ui,
// Add activity control string constants.
if (activity_control_needed) {
- scoped_refptr<base::RefCountedMemory> image =
- chromeos::UserImageSource::GetUserImage(
- user_manager::UserManager::Get()->GetActiveUser()->GetAccountId());
- std::string icon_url = webui::GetPngDataUrl(image->front(), image->size());
- dictionary.SetKey("valuePropUserImage", base::Value(icon_url));
-
- dictionary.SetKey("valuePropIdentity",
- base::Value(activity_control_ui.identity()));
dictionary.SetKey("valuePropTitle",
base::Value(activity_control_ui.title()));
if (activity_control_ui.footer_paragraph_size()) {
@@ -263,13 +174,6 @@ base::Value GetSettingsUiStrings(const assistant::SettingsUi& settings_ui,
base::Value(consent_ui.reject_button_text()));
}
- // Add third party string constants.
- dictionary.SetKey("thirdPartyTitle",
- base::Value(third_party_disclosure_ui.title()));
- dictionary.SetKey("thirdPartyContinueButton",
- base::Value(third_party_disclosure_ui.button_continue()));
- dictionary.SetKey("thirdPartyFooter", base::Value(consent_ui.tos_pp_links()));
-
return dictionary;
}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_utils.h b/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_utils.h
index 4fa40303e3d..0ee6358e713 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_utils.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_utils.h
@@ -62,9 +62,6 @@ assistant::SettingsUiSelector GetSettingsUiSelector();
assistant::SettingsUiUpdate GetSettingsUiUpdate(
const std::string& consent_token);
-// Construct SettingsUiUpdate for email opt-in.
-assistant::SettingsUiUpdate GetEmailOptInUpdate(bool opted_in);
-
using SettingZippyList = google::protobuf::RepeatedPtrField<
assistant::ClassicActivityControlUiTexts::SettingZippy>;
using ActivityControlUi =
@@ -76,11 +73,6 @@ base::Value CreateZippyData(const ActivityControlUi& activity_control_ui,
// Helper method to create disclosure data.
base::Value CreateDisclosureData(const SettingZippyList& disclosure_list);
-// Helper method to create get more screen data.
-base::Value CreateGetMoreData(bool email_optin_needed,
- const assistant::EmailOptInUi& email_optin_ui,
- PrefService* prefs);
-
// Get string constants for settings ui.
base::Value GetSettingsUiStrings(const assistant::SettingsUi& settings_ui,
bool activity_control_needed,
diff --git a/chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog.cc b/chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog.cc
index 703ee8e7941..8ce1ebe023f 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog.cc
@@ -4,11 +4,18 @@
#include "chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog.h"
+#include <memory>
+
+#include "ash/constants/ash_features.h"
+#include "ash/public/cpp/bluetooth_config_service.h"
+#include "base/check.h"
#include "base/json/json_writer.h"
+#include "base/memory/ptr_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/chromeos/bluetooth_shared_load_time_data_provider.h"
#include "chrome/browser/ui/webui/webui_util.h"
#include "chrome/common/url_constants.h"
+#include "chrome/common/webui_url_constants.h"
#include "chrome/grit/bluetooth_pairing_dialog_resources.h"
#include "chrome/grit/bluetooth_pairing_dialog_resources_map.h"
#include "chrome/grit/generated_resources.h"
@@ -19,12 +26,14 @@
#include "device/bluetooth/chromeos/bluetooth_utils.h"
#include "device/bluetooth/public/cpp/bluetooth_address.h"
#include "ui/base/l10n/l10n_util.h"
+#include "ui/wm/core/shadow_types.h"
namespace chromeos {
namespace {
constexpr int kBluetoothPairingDialogHeight = 375;
+constexpr int kBluetoothPairingDialogHeightWithFlag = 408;
void AddBluetoothStrings(content::WebUIDataSource* html_source) {
struct {
@@ -45,49 +54,74 @@ void AddBluetoothStrings(content::WebUIDataSource* html_source) {
// static
SystemWebDialogDelegate* BluetoothPairingDialog::ShowDialog(
- const std::string& address,
- const std::u16string& name_for_display,
- bool paired,
- bool connected) {
- std::string cannonical_address =
- device::CanonicalizeBluetoothAddress(address);
- if (cannonical_address.empty()) {
- LOG(ERROR) << "BluetoothPairingDialog: Invalid address: " << address;
- return nullptr;
+ absl::optional<base::StringPiece> device_address) {
+ std::string dialog_id = chrome::kChromeUIBluetoothPairingURL;
+ absl::optional<std::string> canonical_device_address;
+
+ if (device_address.has_value()) {
+ canonical_device_address =
+ device::CanonicalizeBluetoothAddress(device_address.value());
+
+ if (canonical_device_address->empty()) {
+ LOG(ERROR) << "BluetoothPairingDialog: Invalid address: "
+ << device_address.value();
+ return nullptr;
+ }
+ dialog_id = canonical_device_address.value();
}
- auto* instance = SystemWebDialogDelegate::FindInstance(cannonical_address);
- if (instance) {
- instance->Focus();
- return instance;
+
+ SystemWebDialogDelegate* existing_dialog =
+ SystemWebDialogDelegate::FindInstance(dialog_id);
+
+ if (existing_dialog) {
+ existing_dialog->Focus();
+ return existing_dialog;
}
- BluetoothPairingDialog* dialog = new BluetoothPairingDialog(
- cannonical_address, name_for_display, paired, connected);
+ // This object manages its own lifetime so we don't bother wrapping in a
+ // std::unique_ptr to release quickly after.
+ BluetoothPairingDialog* dialog =
+ new BluetoothPairingDialog(dialog_id, canonical_device_address);
dialog->ShowSystemDialog();
return dialog;
}
BluetoothPairingDialog::BluetoothPairingDialog(
- const std::string& address,
- const std::u16string& name_for_display,
- bool paired,
- bool connected)
+ const std::string& dialog_id,
+ absl::optional<base::StringPiece> canonical_device_address)
: SystemWebDialogDelegate(GURL(chrome::kChromeUIBluetoothPairingURL),
- std::u16string() /* title */),
- address_(address) {
- device_data_.SetString("address", address);
- device_data_.SetString("name", name_for_display);
- device_data_.SetBoolean("paired", paired);
- device_data_.SetBoolean("connected", connected);
+ /*title=*/std::u16string()),
+ dialog_id_(dialog_id) {
+ if (canonical_device_address.has_value()) {
+ device_data_.SetString("address", canonical_device_address.value());
+ } else {
+ CHECK(ash::features::IsBluetoothRevampEnabled());
+ }
}
BluetoothPairingDialog::~BluetoothPairingDialog() = default;
const std::string& BluetoothPairingDialog::Id() {
- return address_;
+ return dialog_id_;
+}
+
+void BluetoothPairingDialog::AdjustWidgetInitParams(
+ views::Widget::InitParams* params) {
+ if (!chromeos::features::IsBluetoothRevampEnabled()) {
+ return;
+ }
+
+ params->type = views::Widget::InitParams::Type::TYPE_WINDOW_FRAMELESS;
+ params->shadow_type = views::Widget::InitParams::ShadowType::kDrop;
+ params->shadow_elevation = wm::kShadowElevationActiveWindow;
}
void BluetoothPairingDialog::GetDialogSize(gfx::Size* size) const {
+ if (chromeos::features::IsBluetoothRevampEnabled()) {
+ size->SetSize(SystemWebDialogDelegate::kDialogWidth,
+ kBluetoothPairingDialogHeightWithFlag);
+ return;
+ }
size->SetSize(SystemWebDialogDelegate::kDialogWidth,
kBluetoothPairingDialogHeight);
}
@@ -101,7 +135,7 @@ std::string BluetoothPairingDialog::GetDialogArgs() const {
// BluetoothPairingUI
BluetoothPairingDialogUI::BluetoothPairingDialogUI(content::WebUI* web_ui)
- : ui::WebDialogUI(web_ui) {
+ : ui::MojoWebDialogUI(web_ui) {
content::WebUIDataSource* source =
content::WebUIDataSource::Create(chrome::kChromeUIBluetoothPairingHost);
@@ -120,4 +154,13 @@ BluetoothPairingDialogUI::BluetoothPairingDialogUI(content::WebUI* web_ui)
BluetoothPairingDialogUI::~BluetoothPairingDialogUI() = default;
+void BluetoothPairingDialogUI::BindInterface(
+ mojo::PendingReceiver<
+ chromeos::bluetooth_config::mojom::CrosBluetoothConfig> receiver) {
+ DCHECK(features::IsBluetoothRevampEnabled());
+ ash::GetBluetoothConfigService(std::move(receiver));
+}
+
+WEB_UI_CONTROLLER_TYPE_IMPL(BluetoothPairingDialogUI)
+
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog.h b/chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog.h
index dff7efb7607..a4006424e49 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog.h
@@ -8,49 +8,70 @@
#include <string>
#include "base/macros.h"
+#include "base/strings/string_piece.h"
#include "chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h"
+#include "chromeos/services/bluetooth_config/public/mojom/cros_bluetooth_config.mojom-forward.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
#include "ui/web_dialogs/web_dialog_ui.h"
namespace chromeos {
class BluetoothPairingDialog : public SystemWebDialogDelegate {
public:
- // Shows a bluetooth pairing dialog. The dialog is returned for testing.
+ BluetoothPairingDialog(const BluetoothPairingDialog&) = delete;
+ BluetoothPairingDialog& operator=(const BluetoothPairingDialog&) = delete;
+
+ // Show the Bluetooth pairing dialog. When provided, |device_address| is the
+ // unique device address that the dialog should attempt to pair with and
+ // should be in the form "XX:XX:XX:XX:XX:XX". When |device_address| is not
+ // provided the dialog will show the device list instead. The returned object
+ // manages its own lifetime, for more information see
+ // chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h.
static SystemWebDialogDelegate* ShowDialog(
- const std::string& address,
- const std::u16string& name_for_display,
- bool paired,
- bool connected);
+ absl::optional<base::StringPiece> device_address = absl::nullopt);
- protected:
- BluetoothPairingDialog(const std::string& address,
- const std::u16string& name_for_display,
- bool paired,
- bool connected);
~BluetoothPairingDialog() override;
+ protected:
+ BluetoothPairingDialog(
+ const std::string& dialog_id,
+ absl::optional<base::StringPiece> canonical_device_address);
+
+ private:
// SystemWebDialogDelegate
const std::string& Id() override;
+ void AdjustWidgetInitParams(views::Widget::InitParams* params) override;
// ui::WebDialogDelegate
void GetDialogSize(gfx::Size* size) const override;
std::string GetDialogArgs() const override;
- private:
- std::string address_;
- base::DictionaryValue device_data_;
+ // The canonical Bluetooth address of a device when pairing a specific device,
+ // otherwise |kChromeUIBluetoothPairingURL|.
+ std::string dialog_id_;
- DISALLOW_COPY_AND_ASSIGN(BluetoothPairingDialog);
+ base::DictionaryValue device_data_;
};
-// A WebUI to host bluetooth device pairing web ui.
-class BluetoothPairingDialogUI : public ui::WebDialogUI {
+// A WebUI to host the Bluetooth device pairing web UI.
+class BluetoothPairingDialogUI : public ui::MojoWebDialogUI {
public:
explicit BluetoothPairingDialogUI(content::WebUI* web_ui);
+
+ BluetoothPairingDialogUI(const BluetoothPairingDialogUI&) = delete;
+ BluetoothPairingDialogUI& operator=(const BluetoothPairingDialogUI&) = delete;
+
~BluetoothPairingDialogUI() override;
+ // Instantiates implementor of the mojom::CrosBluetoothConfig mojo interface
+ // passing the pending receiver that will be internally bound.
+ void BindInterface(
+ mojo::PendingReceiver<
+ chromeos::bluetooth_config::mojom::CrosBluetoothConfig> receiver);
+
private:
- DISALLOW_COPY_AND_ASSIGN(BluetoothPairingDialogUI);
+ WEB_UI_CONTROLLER_TYPE_DECL();
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog_browsertest-inl.h b/chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog_browsertest-inl.h
index 19dfee28be6..0ee8dab7fb7 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog_browsertest-inl.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/bluetooth_pairing_dialog_browsertest-inl.h
@@ -64,10 +64,7 @@ void BluetoothPairingDialogTest::ShowDialog() {
.WillRepeatedly(testing::Return(mock_device_.get()));
chromeos::SystemWebDialogDelegate* dialog =
- chromeos::BluetoothPairingDialog::ShowDialog(
- mock_device_->GetAddress(), mock_device_->GetNameForDisplay(),
- mock_device_->IsPaired(), mock_device_->IsConnected());
-
+ chromeos::BluetoothPairingDialog::ShowDialog(mock_device_->GetAddress());
content::WebUI* webui = dialog->GetWebUIForTest();
content::WebContents* webui_webcontents = webui->GetWebContents();
EXPECT_TRUE(content::WaitForLoadStop(webui_webcontents));
diff --git a/chromium/chrome/browser/ui/webui/chromeos/bluetooth_shared_load_time_data_provider.cc b/chromium/chrome/browser/ui/webui/chromeos/bluetooth_shared_load_time_data_provider.cc
index c0f79bddf03..6a098981f36 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/bluetooth_shared_load_time_data_provider.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/bluetooth_shared_load_time_data_provider.cc
@@ -5,10 +5,13 @@
#include "chrome/browser/ui/webui/chromeos/bluetooth_shared_load_time_data_provider.h"
#include "ash/constants/ash_features.h"
+#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "chrome/browser/ui/webui/webui_util.h"
+#include "chrome/common/url_constants.h"
#include "chrome/grit/generated_resources.h"
#include "content/public/browser/web_ui_data_source.h"
+#include "ui/base/l10n/l10n_util.h"
#include "ui/base/webui/web_ui_util.h"
namespace chromeos {
@@ -18,55 +21,68 @@ namespace bluetooth {
// correspond to ids in ui/webui/resources/cr_components/chromeos/bluetooth/.
void AddLocalizedStrings(content::WebUIDataSource* html_source) {
static constexpr webui::LocalizedString kLocalizedStrings[] = {
- {"bluetoothAccept", IDS_SETTINGS_BLUETOOTH_ACCEPT_PASSKEY},
- {"bluetoothEnterKey", IDS_SETTINGS_BLUETOOTH_ENTER_KEY},
- {"bluetoothPair", IDS_SETTINGS_BLUETOOTH_PAIR},
- {"bluetoothReject", IDS_SETTINGS_BLUETOOTH_REJECT_PASSKEY},
- {"bluetoothStartConnecting", IDS_SETTINGS_BLUETOOTH_START_CONNECTING},
+ {"bluetoothPairNewDevice", IDS_BLUETOOTH_PAIRING_PAIR_NEW_DEVICES},
+ {"bluetoothAvailableDevices",
+ IDS_BLUETOOTH_PAIRING_PAIRING_AVAILABLE_DEVICES},
+ {"bluetoothNoAvailableDevices",
+ IDS_BLUETOOTH_PAIRING_PAIRING_NO_AVAILABLE_DEVICES},
+ {"bluetoothAccept", IDS_BLUETOOTH_PAIRING_ACCEPT_PASSKEY},
+ {"bluetoothEnterKey", IDS_BLUETOOTH_PAIRING_ENTER_KEY},
+ {"bluetoothPair", IDS_BLUETOOTH_PAIRING_PAIR},
+ {"bluetoothReject", IDS_BLUETOOTH_PAIRING_REJECT_PASSKEY},
+ {"bluetoothStartConnecting", IDS_BLUETOOTH_PAIRING_START_CONNECTING},
+ {"bluetoothEnterPin", IDS_BLUETOOTH_PAIRING_ENTER_PIN},
+ {"bluetoothPairedDeviceItemBatteryPercentage",
+ IDS_BLUETOOTH_DEVICE_ITEM_BATTERY_PERCENTAGE},
// Device connecting and pairing.
// These ids are generated in JS using 'bluetooth_' + a value from
// bluetoothPrivate.PairingEventType (see bluetooth_private.idl).
// 'requestAuthorization' has no associated message.
- {"bluetooth_requestPincode", IDS_SETTINGS_BLUETOOTH_REQUEST_PINCODE},
- {"bluetooth_displayPincode", IDS_SETTINGS_BLUETOOTH_DISPLAY_PINCODE},
- {"bluetooth_requestPasskey", IDS_SETTINGS_BLUETOOTH_REQUEST_PASSKEY},
- {"bluetooth_displayPasskey", IDS_SETTINGS_BLUETOOTH_DISPLAY_PASSKEY},
- {"bluetooth_confirmPasskey", IDS_SETTINGS_BLUETOOTH_CONFIRM_PASSKEY},
- // Also display the IDS_SETTINGS_BLUETOOTH_DISPLAY_PASSKEY for the
+ {"bluetooth_requestPincode", IDS_BLUETOOTH_PAIRING_REQUEST_PINCODE},
+ {"bluetooth_displayPincode", IDS_BLUETOOTH_PAIRING_DISPLAY_PINCODE},
+ {"bluetooth_requestPasskey", IDS_BLUETOOTH_PAIRING_REQUEST_PASSKEY},
+ {"bluetooth_displayPasskey", IDS_BLUETOOTH_PAIRING_DISPLAY_PASSKEY},
+ {"bluetooth_confirmPasskey", IDS_BLUETOOTH_PAIRING_CONFIRM_PASSKEY},
+ // Also display the IDS_BLUETOOTH_PAIRING_DISPLAY_PASSKEY for the
// 'keysEntered' event: continue prompting the user to enter the passkey
// as they continue to enter its keys.
- {"bluetooth_keysEntered", IDS_SETTINGS_BLUETOOTH_DISPLAY_PASSKEY},
+ {"bluetooth_keysEntered", IDS_BLUETOOTH_PAIRING_DISPLAY_PASSKEY},
// These ids are generated in JS using 'bluetooth_connect_' + a value from
// bluetoothPrivate.ConnectResultType (see bluetooth_private.idl).
{"bluetooth_connect_attributeLengthInvalid",
- IDS_SETTINGS_BLUETOOTH_CONNECT_ATTRIBUTE_LENGTH_INVALID},
+ IDS_BLUETOOTH_PAIRING_CONNECT_ATTRIBUTE_LENGTH_INVALID},
{"bluetooth_connect_authCanceled",
- IDS_SETTINGS_BLUETOOTH_CONNECT_AUTH_CANCELED},
+ IDS_BLUETOOTH_PAIRING_CONNECT_AUTH_CANCELED},
{"bluetooth_connect_authFailed",
- IDS_SETTINGS_BLUETOOTH_CONNECT_AUTH_FAILED},
+ IDS_BLUETOOTH_PAIRING_CONNECT_AUTH_FAILED},
{"bluetooth_connect_authRejected",
- IDS_SETTINGS_BLUETOOTH_CONNECT_AUTH_REJECTED},
+ IDS_BLUETOOTH_PAIRING_CONNECT_AUTH_REJECTED},
{"bluetooth_connect_authTimeout",
- IDS_SETTINGS_BLUETOOTH_CONNECT_AUTH_TIMEOUT},
+ IDS_BLUETOOTH_PAIRING_CONNECT_AUTH_TIMEOUT},
{"bluetooth_connect_connectionCongested",
- IDS_SETTINGS_BLUETOOTH_CONNECT_CONNECTION_CONGESTED},
- {"bluetooth_connect_failed", IDS_SETTINGS_BLUETOOTH_CONNECT_FAILED},
+ IDS_BLUETOOTH_PAIRING_CONNECT_CONNECTION_CONGESTED},
+ {"bluetooth_connect_failed", IDS_BLUETOOTH_PAIRING_CONNECT_FAILED},
{"bluetooth_connect_inProgress",
- IDS_SETTINGS_BLUETOOTH_CONNECT_IN_PROGRESS},
+ IDS_BLUETOOTH_PAIRING_CONNECT_IN_PROGRESS},
{"bluetooth_connect_insufficientEncryption",
- IDS_SETTINGS_BLUETOOTH_CONNECT_INSUFFICIENT_ENCRYPTION},
+ IDS_BLUETOOTH_PAIRING_CONNECT_INSUFFICIENT_ENCRYPTION},
{"bluetooth_connect_offsetInvalid",
- IDS_SETTINGS_BLUETOOTH_CONNECT_OFFSET_INVALID},
+ IDS_BLUETOOTH_PAIRING_CONNECT_OFFSET_INVALID},
{"bluetooth_connect_readNotPermitted",
- IDS_SETTINGS_BLUETOOTH_CONNECT_READ_NOT_PERMITTED},
+ IDS_BLUETOOTH_PAIRING_CONNECT_READ_NOT_PERMITTED},
{"bluetooth_connect_requestNotSupported",
- IDS_SETTINGS_BLUETOOTH_CONNECT_REQUEST_NOT_SUPPORTED},
+ IDS_BLUETOOTH_PAIRING_CONNECT_REQUEST_NOT_SUPPORTED},
{"bluetooth_connect_unsupportedDevice",
- IDS_SETTINGS_BLUETOOTH_CONNECT_UNSUPPORTED_DEVICE},
+ IDS_BLUETOOTH_PAIRING_CONNECT_UNSUPPORTED_DEVICE},
{"bluetooth_connect_writeNotPermitted",
- IDS_SETTINGS_BLUETOOTH_CONNECT_WRITE_NOT_PERMITTED},
+ IDS_BLUETOOTH_PAIRING_CONNECT_WRITE_NOT_PERMITTED},
};
html_source->AddLocalizedStrings(kLocalizedStrings);
+ html_source->AddString(
+ "bluetoothPairingLearnMoreLabel",
+ l10n_util::GetStringFUTF16(
+ IDS_BLUETOOTH_PAIRING_LEARN_MORE,
+ base::ASCIIToUTF16(chrome::kBluetoothPairingLearnMoreUrl)));
}
void AddLoadTimeData(content::WebUIDataSource* html_source) {
diff --git a/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/cellular_setup_localized_strings_provider.cc b/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/cellular_setup_localized_strings_provider.cc
index 56cf36eb8bd..18f7cbebefa 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/cellular_setup_localized_strings_provider.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/cellular_setup_localized_strings_provider.cc
@@ -11,7 +11,7 @@
#include "base/values.h"
#include "chrome/browser/ui/webui/webui_util.h"
#include "chrome/grit/generated_resources.h"
-#include "chrome/grit/oobe_resources.h"
+#include "chrome/grit/oobe_conditional_resources.h"
#include "components/login/localized_values_builder.h"
#include "components/strings/grit/components_strings.h"
#include "content/public/browser/web_ui_data_source.h"
diff --git a/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_dialog.h b/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_dialog.h
index d8a5131d16b..be3856d4fb1 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_dialog.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_dialog.h
@@ -15,10 +15,12 @@ class NetworkState;
namespace cellular_setup {
-// Dialog used for cellular activation flow when the
-// kUpdatedCellularActivationUi flag is disabled.
// DEPRECATED: Being replaced by new UI; see https://crbug.com/778021.
class MobileSetupDialog : public SystemWebDialogDelegate {
+ public:
+ MobileSetupDialog(const MobileSetupDialog&) = delete;
+ MobileSetupDialog& operator=(const MobileSetupDialog&) = delete;
+
protected:
explicit MobileSetupDialog(const NetworkState& network);
~MobileSetupDialog() override;
@@ -33,8 +35,6 @@ class MobileSetupDialog : public SystemWebDialogDelegate {
friend void NetworkConnectDelegateChromeOS::ShowCarrierAccountDetail(
const std::string& network_id);
static void ShowByNetworkId(const std::string& network_id);
-
- DISALLOW_COPY_AND_ASSIGN(MobileSetupDialog);
};
} // namespace cellular_setup
diff --git a/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_ui.cc
index 9e0ae18ff94..83ab8eb2006 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_ui.cc
@@ -175,6 +175,10 @@ base::Value GetCellularNetworkInfoValue(const NetworkState* network,
class MobileSetupUIHTMLSource : public content::URLDataSource {
public:
MobileSetupUIHTMLSource();
+
+ MobileSetupUIHTMLSource(const MobileSetupUIHTMLSource&) = delete;
+ MobileSetupUIHTMLSource& operator=(const MobileSetupUIHTMLSource&) = delete;
+
~MobileSetupUIHTMLSource() override {}
// content::URLDataSource implementation.
@@ -193,8 +197,6 @@ class MobileSetupUIHTMLSource : public content::URLDataSource {
private:
base::WeakPtrFactory<MobileSetupUIHTMLSource> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(MobileSetupUIHTMLSource);
};
// The handler for Javascript messages related to the "register" view.
@@ -203,6 +205,10 @@ class MobileSetupHandler : public content::WebUIMessageHandler,
public NetworkStateHandlerObserver {
public:
MobileSetupHandler();
+
+ MobileSetupHandler(const MobileSetupHandler&) = delete;
+ MobileSetupHandler& operator=(const MobileSetupHandler&) = delete;
+
~MobileSetupHandler() override;
// WebUIMessageHandler implementation.
@@ -255,8 +261,6 @@ class MobileSetupHandler : public content::WebUIMessageHandler,
// Initial value is true.
bool lte_portal_reachable_;
base::WeakPtrFactory<MobileSetupHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(MobileSetupHandler);
};
////////////////////////////////////////////////////////////////////////////////
@@ -420,19 +424,19 @@ void MobileSetupHandler::Reset() {
}
void MobileSetupHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kJsApiStartActivation,
base::BindRepeating(&MobileSetupHandler::HandleStartActivation,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kJsApiSetTransactionStatus,
base::BindRepeating(&MobileSetupHandler::HandleSetTransactionStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kJsApiPaymentPortalLoad,
base::BindRepeating(&MobileSetupHandler::HandlePaymentPortalLoad,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kJsGetDeviceInfo,
base::BindRepeating(&MobileSetupHandler::HandleGetDeviceInfo,
base::Unretained(this)));
@@ -463,12 +467,12 @@ void MobileSetupHandler::HandleSetTransactionStatus(
return;
const size_t kSetTransactionStatusParamCount = 1;
- if (args->GetSize() != kSetTransactionStatusParamCount)
+ if (args->GetList().size() != kSetTransactionStatusParamCount)
return;
// Get change callback function name.
- std::string status;
- if (!args->GetString(0, &status))
+ if (!args->GetList()[0].is_string())
return;
+ std::string status = args->GetList()[0].GetString();
ash::MobileActivator::GetInstance()->OnSetTransactionStatus(
base::LowerCaseEqualsASCII(status, kJsApiResultOK));
@@ -480,12 +484,12 @@ void MobileSetupHandler::HandlePaymentPortalLoad(const base::ListValue* args) {
return;
const size_t kPaymentPortalLoadParamCount = 1;
- if (args->GetSize() != kPaymentPortalLoadParamCount)
+ if (args->GetList().size() != kPaymentPortalLoadParamCount)
return;
// Get change callback function name.
- std::string result;
- if (!args->GetString(0, &result))
+ if (!args->GetList()[0].is_string())
return;
+ std::string result = args->GetList()[0].GetString();
ash::MobileActivator::GetInstance()->OnPortalLoaded(
base::LowerCaseEqualsASCII(result, kJsApiResultOK));
diff --git a/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_ui.h b/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_ui.h
index a9d6fcc2c8e..df7224395e4 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/cellular_setup/mobile_setup_ui.h
@@ -12,17 +12,15 @@ namespace chromeos {
namespace cellular_setup {
-// A custom WebUI that defines datasource for mobile setup registration page
-// that is used in Chrome OS activate modem and perform plan subscription tasks.
-// This WebUI is being replaced and is only shown when the
-// kUpdatedCellularActivationUi flag is disabled; see go/cros-cellular-design.
+// DEPRECATED: Being replaced by new UI; see https://crbug.com/778021.
class MobileSetupUI : public ui::WebDialogUI {
public:
explicit MobileSetupUI(content::WebUI* web_ui);
- ~MobileSetupUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(MobileSetupUI);
+ MobileSetupUI(const MobileSetupUI&) = delete;
+ MobileSetupUI& operator=(const MobileSetupUI&) = delete;
+
+ ~MobileSetupUI() override;
};
} // namespace cellular_setup
diff --git a/chromium/chrome/browser/ui/webui/chromeos/certificate_manager_dialog_ui.h b/chromium/chrome/browser/ui/webui/chromeos/certificate_manager_dialog_ui.h
index 01f4a44e78d..949c241c451 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/certificate_manager_dialog_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/certificate_manager_dialog_ui.h
@@ -14,11 +14,12 @@ namespace chromeos {
class CertificateManagerDialogUI : public ui::WebDialogUI {
public:
explicit CertificateManagerDialogUI(content::WebUI* web_ui);
- ~CertificateManagerDialogUI() override;
- private:
+ CertificateManagerDialogUI(const CertificateManagerDialogUI&) = delete;
+ CertificateManagerDialogUI& operator=(const CertificateManagerDialogUI&) =
+ delete;
- DISALLOW_COPY_AND_ASSIGN(CertificateManagerDialogUI);
+ ~CertificateManagerDialogUI() override;
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/BUILD.gn b/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/BUILD.gn
index d6d62583dfa..08233f4e92f 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/BUILD.gn
+++ b/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/BUILD.gn
@@ -6,7 +6,7 @@ import("//mojo/public/tools/bindings/mojom.gni")
mojom("mojo_bindings") {
sources = [ "crostini_installer.mojom" ]
-
+ webui_module_path = "/"
public_deps =
[ "//chrome/browser/ash/crostini:crostini_installer_types_mojom" ]
}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_page_handler.h b/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_page_handler.h
index 4e8b10c2a72..583094f77cd 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_page_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_page_handler.h
@@ -31,6 +31,11 @@ class CrostiniInstallerPageHandler
mojo::PendingRemote<chromeos::crostini_installer::mojom::Page>
pending_page,
base::OnceClosure on_page_closed);
+
+ CrostiniInstallerPageHandler(const CrostiniInstallerPageHandler&) = delete;
+ CrostiniInstallerPageHandler& operator=(const CrostiniInstallerPageHandler&) =
+ delete;
+
~CrostiniInstallerPageHandler() override;
// chromeos::crostini_installer::mojom::PageHandler:
@@ -56,8 +61,6 @@ class CrostiniInstallerPageHandler
base::OnceClosure on_page_closed_;
base::WeakPtrFactory<CrostiniInstallerPageHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(CrostiniInstallerPageHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.cc
index 4b9b9323511..ef49495d739 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.cc
@@ -151,7 +151,8 @@ CrostiniInstallerUI::CrostiniInstallerUI(content::WebUI* web_ui)
source->AddString("defaultContainerUsername",
crostini::DefaultContainerUserNameForProfile(profile));
- source->AddResourcePath("app.js", IDR_CROSTINI_INSTALLER_APP_JS);
+ source->AddResourcePath("app.rollup.js",
+ IDR_CROSTINI_INSTALLER_APP_ROLLUP_JS);
source->AddResourcePath("browser_proxy.js",
IDR_CROSTINI_INSTALLER_BROWSER_PROXY_JS);
source->AddResourcePath("crostini_installer.mojom-lite.js",
diff --git a/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.h b/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.h
index de78f42ac95..00ca2e2e95d 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/crostini_installer/crostini_installer_ui.h
@@ -22,6 +22,10 @@ class CrostiniInstallerUI
public chromeos::crostini_installer::mojom::PageHandlerFactory {
public:
explicit CrostiniInstallerUI(content::WebUI* web_ui);
+
+ CrostiniInstallerUI(const CrostiniInstallerUI&) = delete;
+ CrostiniInstallerUI& operator=(const CrostiniInstallerUI&) = delete;
+
~CrostiniInstallerUI() override;
// Send a close request to the web page. Return true if the page is already
@@ -52,8 +56,6 @@ class CrostiniInstallerUI
bool page_closed_ = false;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(CrostiniInstallerUI);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_dialog_browsertest.cc b/chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_dialog_browsertest.cc
index 4c5b0b964de..42c58520357 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_dialog_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_dialog_browsertest.cc
@@ -33,6 +33,11 @@ class CrostiniUpgraderDialogBrowserTest : public CrostiniDialogBrowserTest {
: CrostiniDialogBrowserTest(true /*register_termina*/),
app_id_(crostini::CrostiniTestHelper::GenerateAppId(kDesktopFileId)) {}
+ CrostiniUpgraderDialogBrowserTest(const CrostiniUpgraderDialogBrowserTest&) =
+ delete;
+ CrostiniUpgraderDialogBrowserTest& operator=(
+ const CrostiniUpgraderDialogBrowserTest&) = delete;
+
// DialogBrowserTest:
void ShowUi(const std::string& name) override {
chromeos::CrostiniUpgraderDialog::Show(browser()->profile(),
@@ -100,8 +105,6 @@ class CrostiniUpgraderDialogBrowserTest : public CrostiniDialogBrowserTest {
private:
std::string app_id_;
-
- DISALLOW_COPY_AND_ASSIGN(CrostiniUpgraderDialogBrowserTest);
};
IN_PROC_BROWSER_TEST_F(CrostiniUpgraderDialogBrowserTest,
diff --git a/chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_page_handler.h b/chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_page_handler.h
index 1ec4f2f4369..0759ccd7b05 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_page_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_page_handler.h
@@ -34,6 +34,11 @@ class CrostiniUpgraderPageHandler
pending_page,
base::OnceClosure on_page_closed,
base::OnceCallback<void(bool)> launch_callback);
+
+ CrostiniUpgraderPageHandler(const CrostiniUpgraderPageHandler&) = delete;
+ CrostiniUpgraderPageHandler& operator=(const CrostiniUpgraderPageHandler&) =
+ delete;
+
~CrostiniUpgraderPageHandler() override;
// Send a close request to the web page.
@@ -79,8 +84,6 @@ class CrostiniUpgraderPageHandler
bool restart_required_ = true;
base::WeakPtrFactory<CrostiniUpgraderPageHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(CrostiniUpgraderPageHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_ui.h b/chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_ui.h
index db89c451a2d..a5c96433b6a 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/crostini_upgrader/crostini_upgrader_ui.h
@@ -23,6 +23,10 @@ class CrostiniUpgraderUI
public chromeos::crostini_upgrader::mojom::PageHandlerFactory {
public:
explicit CrostiniUpgraderUI(content::WebUI* web_ui);
+
+ CrostiniUpgraderUI(const CrostiniUpgraderUI&) = delete;
+ CrostiniUpgraderUI& operator=(const CrostiniUpgraderUI&) = delete;
+
~CrostiniUpgraderUI() override;
// Send a close request to the web page. Return true if the page is already
@@ -60,8 +64,6 @@ class CrostiniUpgraderUI
bool page_closed_ = false;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(CrostiniUpgraderUI);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/cryptohome_ui.h b/chromium/chrome/browser/ui/webui/chromeos/cryptohome_ui.h
index f616d288417..3c2659b5207 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/cryptohome_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/cryptohome_ui.h
@@ -14,10 +14,11 @@ namespace chromeos {
class CryptohomeUI : public content::WebUIController {
public:
explicit CryptohomeUI(content::WebUI* web_ui);
- ~CryptohomeUI() override {}
- private:
- DISALLOW_COPY_AND_ASSIGN(CryptohomeUI);
+ CryptohomeUI(const CryptohomeUI&) = delete;
+ CryptohomeUI& operator=(const CryptohomeUI&) = delete;
+
+ ~CryptohomeUI() override {}
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/cryptohome_web_ui_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/cryptohome_web_ui_handler.cc
index ac252c29baf..f5d97ed942c 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/cryptohome_web_ui_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/cryptohome_web_ui_handler.cc
@@ -20,12 +20,23 @@ using content::BrowserThread;
namespace chromeos {
+namespace {
+
+void ForwardToUIThread(base::OnceCallback<void(bool)> ui_callback,
+ bool result) {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ content::GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(std::move(ui_callback), result));
+}
+
+} // namespace
+
CryptohomeWebUIHandler::CryptohomeWebUIHandler() {}
CryptohomeWebUIHandler::~CryptohomeWebUIHandler() {}
void CryptohomeWebUIHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"pageLoaded", base::BindRepeating(&CryptohomeWebUIHandler::OnPageLoaded,
weak_ptr_factory_.GetWeakPtr()));
}
@@ -48,18 +59,23 @@ void CryptohomeWebUIHandler::OnPageLoaded(const base::ListValue* args) {
base::BindOnce(&CryptohomeWebUIHandler::OnPkcs11IsTpmTokenReady,
weak_ptr_factory_.GetWeakPtr()));
- content::GetIOThreadTaskRunner({})->PostTaskAndReplyWithResult(
- FROM_HERE, base::BindOnce(&crypto::IsTPMTokenReady, base::OnceClosure()),
- base::BindOnce(&CryptohomeWebUIHandler::DidGetNSSUtilInfoOnUIThread,
- weak_ptr_factory_.GetWeakPtr()));
+ auto ui_callback =
+ base::BindOnce(&CryptohomeWebUIHandler::GotIsTPMTokenEnabledOnUIThread,
+ weak_ptr_factory_.GetWeakPtr());
+
+ content::GetIOThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(&crypto::IsTPMTokenEnabled,
+ base::BindOnce(&ForwardToUIThread,
+ std::move(ui_callback))));
}
-void CryptohomeWebUIHandler::DidGetNSSUtilInfoOnUIThread(
- bool is_tpm_token_ready) {
+void CryptohomeWebUIHandler::GotIsTPMTokenEnabledOnUIThread(
+ bool is_tpm_token_enabled) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- base::Value is_tpm_token_ready_value(is_tpm_token_ready);
- SetCryptohomeProperty("is-tpm-token-ready", is_tpm_token_ready_value);
+ base::Value is_tpm_token_enabled_value(is_tpm_token_enabled);
+ SetCryptohomeProperty("is-tpm-token-ready",
+ std::move(is_tpm_token_enabled_value));
}
void CryptohomeWebUIHandler::OnGetTpmStatus(
diff --git a/chromium/chrome/browser/ui/webui/chromeos/cryptohome_web_ui_handler.h b/chromium/chrome/browser/ui/webui/chromeos/cryptohome_web_ui_handler.h
index 72a3f99b25e..b7426fbe611 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/cryptohome_web_ui_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/cryptohome_web_ui_handler.h
@@ -19,7 +19,7 @@ namespace base {
class Value;
-} // base
+} // namespace base
namespace chromeos {
@@ -28,6 +28,9 @@ class CryptohomeWebUIHandler : public content::WebUIMessageHandler {
public:
CryptohomeWebUIHandler();
+ CryptohomeWebUIHandler(const CryptohomeWebUIHandler&) = delete;
+ CryptohomeWebUIHandler& operator=(const CryptohomeWebUIHandler&) = delete;
+
~CryptohomeWebUIHandler() override;
// WebUIMessageHandler override.
@@ -37,7 +40,7 @@ class CryptohomeWebUIHandler : public content::WebUIMessageHandler {
// This method is called from JavaScript.
void OnPageLoaded(const base::ListValue* args);
- void DidGetNSSUtilInfoOnUIThread(bool is_tpm_token_ready);
+ void GotIsTPMTokenEnabledOnUIThread(bool is_tpm_token_enabled);
void OnIsMounted(absl::optional<user_data_auth::IsMountedReply> reply);
void OnPkcs11IsTpmTokenReady(
@@ -53,7 +56,6 @@ class CryptohomeWebUIHandler : public content::WebUIMessageHandler {
const base::Value& value);
base::WeakPtrFactory<CryptohomeWebUIHandler> weak_ptr_factory_{this};
- DISALLOW_COPY_AND_ASSIGN(CryptohomeWebUIHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/diagnostics_dialog.cc b/chromium/chrome/browser/ui/webui/chromeos/diagnostics_dialog.cc
index b76e99038bc..538b9d4ae84 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/diagnostics_dialog.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/diagnostics_dialog.cc
@@ -7,22 +7,40 @@
#include <string>
#include "ash/webui/diagnostics_ui/url_constants.h"
+#include "base/strings/strcat.h"
#include "ui/display/display.h"
#include "ui/display/screen.h"
namespace chromeos {
+namespace {
+
+std::string GetUrlForPage(DiagnosticsDialog::DiagnosticsPage page) {
+ switch (page) {
+ case DiagnosticsDialog::DiagnosticsPage::kDefault:
+ return kChromeUIDiagnosticsAppUrl;
+ case DiagnosticsDialog::DiagnosticsPage::kSystem:
+ return base::StrCat({kChromeUIDiagnosticsAppUrl, "?system"});
+ case DiagnosticsDialog::DiagnosticsPage::kConnectivity:
+ return base::StrCat({kChromeUIDiagnosticsAppUrl, "?connectivity"});
+ case DiagnosticsDialog::DiagnosticsPage::kInput:
+ return base::StrCat({kChromeUIDiagnosticsAppUrl, "?input"});
+ }
+}
+
+} // namespace
// Scale factor for size of the diagnostics dialog, based on display size.
const float kDiagnosticsDialogScale = .8;
// static
-void DiagnosticsDialog::ShowDialog() {
- DiagnosticsDialog* dialog = new DiagnosticsDialog();
- dialog->ShowSystemDialog();
+void DiagnosticsDialog::ShowDialog(DiagnosticsDialog::DiagnosticsPage page,
+ gfx::NativeWindow parent) {
+ DiagnosticsDialog* dialog = new DiagnosticsDialog(page);
+ dialog->ShowSystemDialog(parent);
}
-DiagnosticsDialog::DiagnosticsDialog()
- : SystemWebDialogDelegate(GURL(kChromeUIDiagnosticsAppUrl),
+DiagnosticsDialog::DiagnosticsDialog(DiagnosticsDialog::DiagnosticsPage page)
+ : SystemWebDialogDelegate(GURL(GetUrlForPage(page)),
/*title=*/std::u16string()) {}
DiagnosticsDialog::~DiagnosticsDialog() = default;
diff --git a/chromium/chrome/browser/ui/webui/chromeos/diagnostics_dialog.h b/chromium/chrome/browser/ui/webui/chromeos/diagnostics_dialog.h
index 5a3aad6b8b4..cbb0c9d1328 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/diagnostics_dialog.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/diagnostics_dialog.h
@@ -7,15 +7,30 @@
#include "base/macros.h"
#include "chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h"
+#include "ui/gfx/native_widget_types.h"
namespace chromeos {
class DiagnosticsDialog : public SystemWebDialogDelegate {
public:
- static void ShowDialog();
+ // Denotes different sub-pages of the diagnostics app.
+ enum class DiagnosticsPage {
+ // The default page.
+ kDefault,
+ // The system page.
+ kSystem,
+ // The connectivity page.
+ kConnectivity,
+ // The input page.
+ kInput
+ };
+
+ // |page| is the initial page shown when the app is opened.
+ static void ShowDialog(DiagnosticsPage page = DiagnosticsPage::kDefault,
+ gfx::NativeWindow parent = gfx::kNullNativeWindow);
protected:
- DiagnosticsDialog();
+ explicit DiagnosticsDialog(DiagnosticsPage page);
~DiagnosticsDialog() override;
DiagnosticsDialog(const DiagnosticsDialog&) = delete;
diff --git a/chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
index 7347d9a9a70..8bcef771e44 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc
@@ -233,6 +233,10 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler {
public:
DriveInternalsWebUIHandler() : last_sent_event_id_(-1) {}
+ DriveInternalsWebUIHandler(const DriveInternalsWebUIHandler&) = delete;
+ DriveInternalsWebUIHandler& operator=(const DriveInternalsWebUIHandler&) =
+ delete;
+
~DriveInternalsWebUIHandler() override {}
void DownloadLogsZip(const base::FilePath& path) {
@@ -260,36 +264,36 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler {
// WebUIMessageHandler override.
void RegisterMessages() override {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"pageLoaded",
base::BindRepeating(&DriveInternalsWebUIHandler::OnPageLoaded,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"periodicUpdate",
base::BindRepeating(&DriveInternalsWebUIHandler::OnPeriodicUpdate,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setVerboseLoggingEnabled",
base::BindRepeating(
&DriveInternalsWebUIHandler::SetVerboseLoggingEnabled,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"enableTracing",
base::BindRepeating(&DriveInternalsWebUIHandler::SetTracingEnabled,
weak_ptr_factory_.GetWeakPtr(), true));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"disableTracing",
base::BindRepeating(&DriveInternalsWebUIHandler::SetTracingEnabled,
weak_ptr_factory_.GetWeakPtr(), false));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"restartDrive",
base::BindRepeating(&DriveInternalsWebUIHandler::RestartDrive,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"resetDriveFileSystem",
base::BindRepeating(&DriveInternalsWebUIHandler::ResetDriveFileSystem,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"zipLogs",
base::BindRepeating(&DriveInternalsWebUIHandler::ZipDriveFsLogs,
weak_ptr_factory_.GetWeakPtr()));
@@ -297,31 +301,31 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler {
void RegisterDeveloperMessages() {
CHECK(developer_mode_);
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setStartupArguments",
base::BindRepeating(&DriveInternalsWebUIHandler::SetStartupArguments,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"enableNetworking",
base::BindRepeating(&DriveInternalsWebUIHandler::SetNetworkingEnabled,
weak_ptr_factory_.GetWeakPtr(), true));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"disableNetworking",
base::BindRepeating(&DriveInternalsWebUIHandler::SetNetworkingEnabled,
weak_ptr_factory_.GetWeakPtr(), false));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"enableForcePauseSyncing",
base::BindRepeating(&DriveInternalsWebUIHandler::ForcePauseSyncing,
weak_ptr_factory_.GetWeakPtr(), true));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"disableForcePauseSyncing",
base::BindRepeating(&DriveInternalsWebUIHandler::ForcePauseSyncing,
weak_ptr_factory_.GetWeakPtr(), false));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"dumpAccountSettings",
base::BindRepeating(&DriveInternalsWebUIHandler::DumpAccountSettings,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"loadAccountSettings",
base::BindRepeating(&DriveInternalsWebUIHandler::LoadAccountSettings,
weak_ptr_factory_.GetWeakPtr()));
@@ -813,7 +817,6 @@ class DriveInternalsWebUIHandler : public content::WebUIMessageHandler {
bool developer_mode_ = false;
base::WeakPtrFactory<DriveInternalsWebUIHandler> weak_ptr_factory_{this};
- DISALLOW_COPY_AND_ASSIGN(DriveInternalsWebUIHandler);
};
class LogsZipper : public download::AllDownloadItemNotifier::Observer {
@@ -828,6 +831,9 @@ class LogsZipper : public download::AllDownloadItemNotifier::Observer {
zip_path_(logs_directory_.AppendASCII(kLogsZipName)),
drive_internals_(std::move(drive_internals)) {}
+ LogsZipper(const LogsZipper&) = delete;
+ LogsZipper& operator=(const LogsZipper&) = delete;
+
void Start() {
base::ThreadPool::PostTaskAndReplyWithResult(
FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_VISIBLE},
@@ -905,8 +911,6 @@ class LogsZipper : public download::AllDownloadItemNotifier::Observer {
const base::WeakPtr<DriveInternalsWebUIHandler> drive_internals_;
std::unique_ptr<download::AllDownloadItemNotifier> download_notifier_;
-
- DISALLOW_COPY_AND_ASSIGN(LogsZipper);
};
constexpr char LogsZipper::kLogsZipName[];
diff --git a/chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.h b/chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.h
index de0009e025e..0ed56a9aad5 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/drive_internals_ui.h
@@ -16,8 +16,8 @@ class DriveInternalsUI : public content::WebUIController {
public:
explicit DriveInternalsUI(content::WebUI* web_ui);
- private:
- DISALLOW_COPY_AND_ASSIGN(DriveInternalsUI);
+ DriveInternalsUI(const DriveInternalsUI&) = delete;
+ DriveInternalsUI& operator=(const DriveInternalsUI&) = delete;
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_chromeos.cc b/chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_chromeos.cc
index 6f5ec9f8752..5c68bf3ed5b 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_chromeos.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_chromeos.cc
@@ -119,15 +119,15 @@ void EduAccountLoginHandler::ProfileImageFetcher::OnImageFetched(
}
void EduAccountLoginHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"isNetworkReady",
base::BindRepeating(&EduAccountLoginHandler::HandleIsNetworkReady,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getParents",
base::BindRepeating(&EduAccountLoginHandler::HandleGetParents,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"parentSignin",
base::BindRepeating(&EduAccountLoginHandler::HandleParentSignin,
base::Unretained(this)));
@@ -185,10 +185,8 @@ void EduAccountLoginHandler::HandleParentSignin(const base::ListValue* args) {
DCHECK(obfuscated_gaia_id_value);
std::string obfuscated_gaia_id = obfuscated_gaia_id_value->GetString();
- std::string password;
- args_list[2].GetAsString(&password);
-
- FetchAccessToken(obfuscated_gaia_id, password);
+ const std::string* password = args_list[2].GetIfString();
+ FetchAccessToken(obfuscated_gaia_id, password ? *password : std::string());
}
void EduAccountLoginHandler::FetchFamilyMembers() {
diff --git a/chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_chromeos.h b/chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_chromeos.h
index 45e6ecf3aa3..f36a8ee7de7 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_chromeos.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_chromeos.h
@@ -10,6 +10,7 @@
#include <string>
#include <vector>
+#include "base/gtest_prod_util.h"
#include "base/memory/scoped_refptr.h"
#include "base/values.h"
#include "chrome/browser/profiles/profile.h"
diff --git a/chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_unittest.cc b/chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_unittest.cc
index f74989ab021..cef636538b1 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/edu_account_login_handler_unittest.cc
@@ -11,7 +11,7 @@
#include "base/test/bind.h"
#include "base/test/task_environment.h"
#include "base/values.h"
-#include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h"
+#include "chrome/browser/ash/net/network_portal_detector_test_impl.h"
#include "chromeos/dbus/shill/shill_clients.h"
#include "chromeos/network/network_handler.h"
#include "chromeos/network/network_handler_test_helper.h"
@@ -241,7 +241,7 @@ TEST_F(EduAccountLoginHandlerTest, HandleGetParentsSuccess) {
SetupNetwork();
constexpr char callback_id[] = "handle-get-parents-callback";
base::ListValue list_args;
- list_args.AppendString(callback_id);
+ list_args.Append(callback_id);
EXPECT_CALL(*handler(), FetchFamilyMembers());
handler()->HandleGetParents(&list_args);
@@ -266,7 +266,7 @@ TEST_F(EduAccountLoginHandlerTest, HandleGetParentsFailure) {
SetupNetwork();
constexpr char callback_id[] = "handle-get-parents-callback";
base::ListValue list_args;
- list_args.AppendString(callback_id);
+ list_args.Append(callback_id);
EXPECT_CALL(*handler(), FetchFamilyMembers());
handler()->HandleGetParents(&list_args);
@@ -285,7 +285,7 @@ TEST_F(EduAccountLoginHandlerTest, HandleParentSigninSuccess) {
constexpr char callback_id[] = "handle-parent-signin-callback";
base::ListValue list_args;
- list_args.AppendString(callback_id);
+ list_args.Append(callback_id);
list_args.Append(GetFakeParent());
list_args.Append(kFakeParentCredential);
@@ -300,8 +300,7 @@ TEST_F(EduAccountLoginHandlerTest, HandleParentSigninSuccess) {
kFakeParentGaiaId, kFakeParentCredential,
GoogleServiceAuthError(GoogleServiceAuthError::NONE),
signin::AccessTokenInfo(kFakeAccessToken,
- base::Time::Now() + base::TimeDelta::FromHours(1),
- "id_token"));
+ base::Time::Now() + base::Hours(1), "id_token"));
constexpr char fake_rapt[] = "fakeReauthProofToken";
// Simulate successful fetching of ReAuthProofToken.
@@ -318,7 +317,7 @@ TEST_F(EduAccountLoginHandlerTest, HandleParentSigninAccessTokenFailure) {
constexpr char callback_id[] = "handle-parent-signin-callback";
base::ListValue list_args;
- list_args.AppendString(callback_id);
+ list_args.Append(callback_id);
list_args.Append(GetFakeParent());
list_args.Append(kFakeParentCredential);
@@ -344,7 +343,7 @@ TEST_F(EduAccountLoginHandlerTest, HandleParentSigninReAuthProofTokenFailure) {
constexpr char callback_id[] = "handle-parent-signin-callback";
base::ListValue list_args;
- list_args.AppendString(callback_id);
+ list_args.Append(callback_id);
list_args.Append(GetFakeParent());
list_args.Append(kFakeParentCredential);
@@ -359,8 +358,7 @@ TEST_F(EduAccountLoginHandlerTest, HandleParentSigninReAuthProofTokenFailure) {
kFakeParentGaiaId, kFakeParentCredential,
GoogleServiceAuthError(GoogleServiceAuthError::NONE),
signin::AccessTokenInfo(kFakeAccessToken,
- base::Time::Now() + base::TimeDelta::FromHours(1),
- "id_token"));
+ base::Time::Now() + base::Hours(1), "id_token"));
// Simulate failed fetching of ReAuthProofToken.
handler()->OnReAuthProofTokenFailure(
@@ -410,7 +408,7 @@ TEST_F(EduAccountLoginHandlerTest, HandleIsNetworkReadyOffline) {
SetupNetwork(/*network_status_online=*/false);
constexpr char callback_id[] = "is-network-ready-callback";
base::ListValue list_args;
- list_args.AppendString(callback_id);
+ list_args.Append(callback_id);
handler()->HandleIsNetworkReady(&list_args);
@@ -426,7 +424,7 @@ TEST_F(EduAccountLoginHandlerTest, HandleIsNetworkReadyOnline) {
SetupNetwork(/*network_status_online=*/true);
constexpr char callback_id[] = "is-network-ready-callback";
base::ListValue list_args;
- list_args.AppendString(callback_id);
+ list_args.Append(callback_id);
handler()->HandleIsNetworkReady(&list_args);
diff --git a/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/COMMON_METADATA b/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/COMMON_METADATA
new file mode 100644
index 00000000000..c0ebf855f7d
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/COMMON_METADATA
@@ -0,0 +1,3 @@
+monorail {
+ component: "FamilyExperiences"
+} \ No newline at end of file
diff --git a/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/DIR_METADATA b/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/DIR_METADATA
index c0ebf855f7d..b636a0e93c3 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/DIR_METADATA
+++ b/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/DIR_METADATA
@@ -1,3 +1 @@
-monorail {
- component: "FamilyExperiences"
-} \ No newline at end of file
+mixins: "//chrome/browser/ui/webui/chromeos/edu_coexistence/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_browsertest.cc b/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_browsertest.cc
index 433356391f7..3ff93884e97 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_browsertest.cc
@@ -17,7 +17,7 @@
#include "chrome/browser/ash/login/test/logged_in_user_mixin.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
-#include "chrome/browser/supervised_user/supervised_user_features.h"
+#include "chrome/browser/supervised_user/supervised_user_features/supervised_user_features.h"
#include "chrome/browser/supervised_user/supervised_user_service.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_state_tracker.h"
@@ -91,9 +91,8 @@ class EduCoexistenceLoginHandlerBrowserTest
handler->OnOAuthAccessTokensFetched(
GoogleServiceAuthError(state),
- signin::AccessTokenInfo(
- "access_token", base::Time::Now() + base::TimeDelta::FromMinutes(1),
- ""));
+ signin::AccessTokenInfo("access_token",
+ base::Time::Now() + base::Minutes(1), ""));
}
void ExpectEduCoexistenceState(
@@ -117,9 +116,9 @@ class EduCoexistenceLoginHandlerBrowserTest
private:
base::test::ScopedFeatureList scoped_feature_list_;
- chromeos::LoggedInUserMixin logged_in_user_mixin_{
- &mixin_host_, chromeos::LoggedInUserMixin::LogInType::kChild,
- embedded_test_server(), this};
+ LoggedInUserMixin logged_in_user_mixin_{&mixin_host_,
+ LoggedInUserMixin::LogInType::kChild,
+ embedded_test_server(), this};
base::HistogramTester histograms_;
diff --git a/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_chromeos.cc b/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_chromeos.cc
index b945d78cf89..ff34b44e0c6 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_chromeos.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_chromeos.cc
@@ -160,7 +160,7 @@ EduCoexistenceLoginHandler::EduCoexistenceLoginHandler(
&EduCoexistenceLoginHandler::OnOAuthAccessTokensFetched,
base::Unretained(this)),
signin::PrimaryAccountAccessTokenFetcher::Mode::kWaitUntilAvailable,
- signin::ConsentLevel::kSignin);
+ signin::ConsentLevel::kSync);
}
EduCoexistenceLoginHandler::~EduCoexistenceLoginHandler() {
@@ -177,22 +177,22 @@ void EduCoexistenceLoginHandler::RegisterMessages() {
web_ui(), /* is_onboarding */ session_manager::SessionManager::Get()
->IsUserSessionBlocked());
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializeEduArgs",
base::BindRepeating(&EduCoexistenceLoginHandler::InitializeEduArgs,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"consentValid",
base::BindRepeating(&EduCoexistenceLoginHandler::ConsentValid,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"consentLogged",
base::BindRepeating(&EduCoexistenceLoginHandler::ConsentLogged,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"error", base::BindRepeating(&EduCoexistenceLoginHandler::OnError,
base::Unretained(this)));
}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/emoji/emoji_page_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/emoji/emoji_page_handler.cc
index 6b048ef1bfe..a84cb4a37f6 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/emoji/emoji_page_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/emoji/emoji_page_handler.cc
@@ -12,7 +12,7 @@
#include "base/trace_event/trace_event.h"
#include "chrome/browser/ui/webui/chromeos/emoji/emoji_ui.h"
#include "ui/base/clipboard/scoped_clipboard_writer.h"
-#include "ui/base/ime/chromeos/ime_bridge.h"
+#include "ui/base/ime/ash/ime_bridge.h"
namespace chromeos {
diff --git a/chromium/chrome/browser/ui/webui/chromeos/emoji/emoji_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/emoji/emoji_ui.cc
index 3870d6f656f..ba4d4206143 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/emoji/emoji_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/emoji/emoji_ui.cc
@@ -19,7 +19,7 @@
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_data_source.h"
#include "ui/base/emoji/emoji_panel_helper.h"
-#include "ui/base/ime/chromeos/ime_bridge.h"
+#include "ui/base/ime/ash/ime_bridge.h"
#include "ui/resources/grit/webui_generated_resources.h"
#include <iostream>
diff --git a/chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.cc
index f1b17d02e01..a508d9b32fa 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.cc
@@ -69,6 +69,9 @@ class DeviceEmulatorMessageHandler::BluetoothObserver
owner_->fake_bluetooth_device_client_->AddObserver(this);
}
+ BluetoothObserver(const BluetoothObserver&) = delete;
+ BluetoothObserver& operator=(const BluetoothObserver&) = delete;
+
~BluetoothObserver() override {
owner_->fake_bluetooth_device_client_->RemoveObserver(this);
}
@@ -85,8 +88,6 @@ class DeviceEmulatorMessageHandler::BluetoothObserver
private:
DeviceEmulatorMessageHandler* owner_;
-
- DISALLOW_COPY_AND_ASSIGN(BluetoothObserver);
};
void DeviceEmulatorMessageHandler::BluetoothObserver::DeviceAdded(
@@ -120,6 +121,9 @@ class DeviceEmulatorMessageHandler::CrasAudioObserver
chromeos::FakeCrasAudioClient::Get()->AddObserver(this);
}
+ CrasAudioObserver(const CrasAudioObserver&) = delete;
+ CrasAudioObserver& operator=(const CrasAudioObserver&) = delete;
+
~CrasAudioObserver() override {
chromeos::FakeCrasAudioClient::Get()->RemoveObserver(this);
}
@@ -129,8 +133,6 @@ class DeviceEmulatorMessageHandler::CrasAudioObserver
private:
DeviceEmulatorMessageHandler* owner_;
-
- DISALLOW_COPY_AND_ASSIGN(CrasAudioObserver);
};
class DeviceEmulatorMessageHandler::PowerObserver
@@ -140,6 +142,9 @@ class DeviceEmulatorMessageHandler::PowerObserver
owner_->fake_power_manager_client_->AddObserver(this);
}
+ PowerObserver(const PowerObserver&) = delete;
+ PowerObserver& operator=(const PowerObserver&) = delete;
+
~PowerObserver() override {
owner_->fake_power_manager_client_->RemoveObserver(this);
}
@@ -148,8 +153,6 @@ class DeviceEmulatorMessageHandler::PowerObserver
private:
DeviceEmulatorMessageHandler* owner_;
-
- DISALLOW_COPY_AND_ASSIGN(PowerObserver);
};
void DeviceEmulatorMessageHandler::PowerObserver::PowerChanged(
@@ -201,8 +204,8 @@ void DeviceEmulatorMessageHandler::RequestPowerInfo(
void DeviceEmulatorMessageHandler::HandleRemoveBluetoothDevice(
const base::ListValue* args) {
- std::string path;
- CHECK(args->GetString(0, &path));
+ CHECK(!args->GetList().empty());
+ std::string path = args->GetList()[0].GetString();
fake_bluetooth_device_client_->RemoveDevice(
dbus::ObjectPath(bluez::FakeBluetoothAdapterClient::kAdapterPath),
dbus::ObjectPath(path));
@@ -320,9 +323,9 @@ void DeviceEmulatorMessageHandler::HandleInsertAudioNode(
void DeviceEmulatorMessageHandler::HandleRemoveAudioNode(
const base::ListValue* args) {
- std::string tmp_id;
+ CHECK(!args->GetList().empty());
+ std::string tmp_id = args->GetList()[0].GetString();
uint64_t id;
- CHECK(args->GetString(0, &tmp_id));
CHECK(base::StringToUint64(tmp_id, &id));
chromeos::FakeCrasAudioClient::Get()->RemoveAudioNodeFromList(id);
@@ -464,75 +467,75 @@ void DeviceEmulatorMessageHandler::UpdatePowerSourceId(
}
void DeviceEmulatorMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInitialize, base::BindRepeating(&DeviceEmulatorMessageHandler::Init,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kRequestPowerInfo,
base::BindRepeating(&DeviceEmulatorMessageHandler::RequestPowerInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kUpdateBatteryPercent,
base::BindRepeating(&DeviceEmulatorMessageHandler::UpdateBatteryPercent,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kUpdateBatteryState,
base::BindRepeating(&DeviceEmulatorMessageHandler::UpdateBatteryState,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kUpdateTimeToEmpty,
base::BindRepeating(&DeviceEmulatorMessageHandler::UpdateTimeToEmpty,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kUpdateTimeToFull,
base::BindRepeating(&DeviceEmulatorMessageHandler::UpdateTimeToFull,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kUpdatePowerSources,
base::BindRepeating(&DeviceEmulatorMessageHandler::UpdatePowerSources,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kUpdatePowerSourceId,
base::BindRepeating(&DeviceEmulatorMessageHandler::UpdatePowerSourceId,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kRequestAudioNodes,
base::BindRepeating(
&DeviceEmulatorMessageHandler::HandleRequestAudioNodes,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInsertAudioNode,
base::BindRepeating(&DeviceEmulatorMessageHandler::HandleInsertAudioNode,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kRemoveAudioNode,
base::BindRepeating(&DeviceEmulatorMessageHandler::HandleRemoveAudioNode,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kBluetoothDiscoverFunction,
base::BindRepeating(
&DeviceEmulatorMessageHandler::HandleRequestBluetoothDiscover,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kBluetoothPairFunction,
base::BindRepeating(
&DeviceEmulatorMessageHandler::HandleRequestBluetoothPair,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kRequestBluetoothInfo,
base::BindRepeating(
&DeviceEmulatorMessageHandler::HandleRequestBluetoothInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kRemoveBluetoothDevice,
base::BindRepeating(
&DeviceEmulatorMessageHandler::HandleRemoveBluetoothDevice,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kSetHasTouchpad,
base::BindRepeating(&DeviceEmulatorMessageHandler::HandleSetHasTouchpad,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kSetHasMouse,
base::BindRepeating(&DeviceEmulatorMessageHandler::HandleSetHasMouse,
base::Unretained(this)));
@@ -630,9 +633,7 @@ void DeviceEmulatorMessageHandler::ConnectToBluetoothDevice(
}
if (!device->IsPaired() && device->IsPairable()) {
// Show pairing dialog for the unpaired device.
- chromeos::BluetoothPairingDialog::ShowDialog(
- device->GetAddress(), device->GetNameForDisplay(), device->IsPaired(),
- device->IsConnected());
+ BluetoothPairingDialog::ShowDialog(device->GetAddress());
} else {
// Attempt to connect to the device.
device->Connect(nullptr, base::DoNothing());
diff --git a/chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.h b/chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.h
index e30f5b61dc4..774a4a45407 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.h
@@ -37,6 +37,11 @@ class DeviceEmulatorMessageHandler :
public content::WebUIMessageHandler {
public:
DeviceEmulatorMessageHandler();
+
+ DeviceEmulatorMessageHandler(const DeviceEmulatorMessageHandler&) = delete;
+ DeviceEmulatorMessageHandler& operator=(const DeviceEmulatorMessageHandler&) =
+ delete;
+
~DeviceEmulatorMessageHandler() override;
// Adds |this| as an observer to all necessary objects.
@@ -137,8 +142,6 @@ class DeviceEmulatorMessageHandler :
scoped_refptr<device::BluetoothAdapter> bluetooth_adapter_;
base::WeakPtrFactory<DeviceEmulatorMessageHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(DeviceEmulatorMessageHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_ui.h b/chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_ui.h
index 5cb8ad622d8..ba44ffaadbe 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/emulator/device_emulator_ui.h
@@ -12,10 +12,11 @@
class DeviceEmulatorUI : public content::WebUIController {
public:
explicit DeviceEmulatorUI(content::WebUI* web_ui);
- ~DeviceEmulatorUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(DeviceEmulatorUI);
+ DeviceEmulatorUI(const DeviceEmulatorUI&) = delete;
+ DeviceEmulatorUI& operator=(const DeviceEmulatorUI&) = delete;
+
+ ~DeviceEmulatorUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_EMULATOR_DEVICE_EMULATOR_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/chromeos/image_source.h b/chromium/chrome/browser/ui/webui/chromeos/image_source.h
index 4d93aec4cc6..7d762df7699 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/image_source.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/image_source.h
@@ -23,6 +23,10 @@ namespace chromeos {
class ImageSource : public content::URLDataSource {
public:
ImageSource();
+
+ ImageSource(const ImageSource&) = delete;
+ ImageSource& operator=(const ImageSource&) = delete;
+
~ImageSource() override;
// content::URLDataSource implementation.
@@ -48,8 +52,6 @@ class ImageSource : public content::URLDataSource {
scoped_refptr<base::SequencedTaskRunner> task_runner_;
base::WeakPtrFactory<ImageSource> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ImageSource);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/confirm_password_change_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/confirm_password_change_handler.cc
index ffbf3b7d960..5aadb6246ba 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/confirm_password_change_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/confirm_password_change_handler.cc
@@ -93,11 +93,11 @@ void ConfirmPasswordChangeHandler::OnEvent(
}
void ConfirmPasswordChangeHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getInitialState",
base::BindRepeating(&ConfirmPasswordChangeHandler::HandleGetInitialState,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"changePassword",
base::BindRepeating(&ConfirmPasswordChangeHandler::HandleChangePassword,
weak_factory_.GetWeakPtr()));
diff --git a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/confirm_password_change_handler.h b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/confirm_password_change_handler.h
index 1382ef79ddd..c0cbb31879e 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/confirm_password_change_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/confirm_password_change_handler.h
@@ -19,6 +19,11 @@ class ConfirmPasswordChangeHandler
ConfirmPasswordChangeHandler(const std::string& scraped_old_password,
const std::string& scraped_new_password,
const bool show_spinner_initially);
+
+ ConfirmPasswordChangeHandler(const ConfirmPasswordChangeHandler&) = delete;
+ ConfirmPasswordChangeHandler& operator=(const ConfirmPasswordChangeHandler&) =
+ delete;
+
~ConfirmPasswordChangeHandler() override;
// Called by the JS UI to find out what to show and what size to be.
@@ -40,7 +45,6 @@ class ConfirmPasswordChangeHandler
bool show_spinner_initially_ = false;
base::WeakPtrFactory<ConfirmPasswordChangeHandler> weak_factory_{this};
- DISALLOW_COPY_AND_ASSIGN(ConfirmPasswordChangeHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_network_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_network_ui.cc
index 8a7c6bca986..7d63311a18f 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_network_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_network_ui.cc
@@ -52,15 +52,15 @@ class NetworkConfigMessageHandler : public content::WebUIMessageHandler {
// WebUIMessageHandler implementation.
void RegisterMessages() override {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kAddNetwork,
base::BindRepeating(&NetworkConfigMessageHandler::AddNetwork,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kShowNetworkDetails,
base::BindRepeating(&NetworkConfigMessageHandler::ShowNetworkDetails,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kShowNetworkConfig,
base::BindRepeating(&NetworkConfigMessageHandler::ShowNetworkConfig,
base::Unretained(this)));
@@ -68,24 +68,23 @@ class NetworkConfigMessageHandler : public content::WebUIMessageHandler {
private:
void ShowNetworkDetails(const base::ListValue* arg_list) {
- CHECK_EQ(1u, arg_list->GetSize());
- std::string guid;
- CHECK(arg_list->GetString(0, &guid));
+ CHECK_EQ(1u, arg_list->GetList().size());
+ std::string guid = arg_list->GetList()[0].GetString();
InternetDetailDialog::ShowDialog(guid);
}
void ShowNetworkConfig(const base::ListValue* arg_list) {
- CHECK_EQ(1u, arg_list->GetSize());
- std::string guid;
- CHECK(arg_list->GetString(0, &guid));
+ CHECK_EQ(1u, arg_list->GetList().size());
+ std::string guid = arg_list->GetList()[0].GetString();
InternetConfigDialog::ShowDialogForNetworkId(guid);
}
void AddNetwork(const base::ListValue* args) {
- std::string onc_type;
- args->GetString(0, &onc_type);
+ CHECK_EQ(1u, args->GetList().size());
+ std::string onc_type = args->GetList()[0].GetString();
+
InternetConfigDialog::ShowDialogForNetworkType(onc_type);
}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_reauth_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_reauth_handler.cc
index ed02d58fbe4..edb80a135b0 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_reauth_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_reauth_handler.cc
@@ -81,7 +81,7 @@ LockScreenReauthHandler::~LockScreenReauthHandler() = default;
void LockScreenReauthHandler::HandleInitialize(const base::ListValue* value) {
AllowJavascript();
- OnJsReadyForTesting();
+ OnReauthDialogReadyForTesting();
LoadAuthenticatorParam();
}
@@ -280,10 +280,9 @@ void LockScreenReauthHandler::OnCookieWaitTimeout() {
password_sync_manager->DismissDialog();
}
-void LockScreenReauthHandler::OnJsReadyForTesting() {
- js_ready_ = true;
- if (initialization_callback_for_testing_)
- std::move(initialization_callback_for_testing_).Run();
+void LockScreenReauthHandler::OnReauthDialogReadyForTesting() {
+ auto* password_sync_manager = GetInSessionPasswordSyncManager();
+ password_sync_manager->OnReauthDialogReadyForTesting();
}
void LockScreenReauthHandler::CheckCredentials(
@@ -305,8 +304,8 @@ void LockScreenReauthHandler::CheckCredentials(
void LockScreenReauthHandler::HandleUpdateUserPassword(
const base::ListValue* value) {
- std::string old_password;
- value->GetString(0, &old_password);
+ DCHECK(!value->GetList().empty());
+ std::string old_password = value->GetList()[0].GetString();
password_sync_manager_->UpdateUserPassword(old_password);
}
@@ -315,21 +314,21 @@ void LockScreenReauthHandler::ShowPasswordChangedScreen() {
}
void LockScreenReauthHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initialize",
base::BindRepeating(&LockScreenReauthHandler::HandleInitialize,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"authenticatorLoaded",
base::BindRepeating(&LockScreenReauthHandler::HandleAuthenticatorLoaded,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"completeAuthentication",
base::BindRepeating(
&LockScreenReauthHandler::HandleCompleteAuthentication,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"updateUserPassword",
base::BindRepeating(&LockScreenReauthHandler::HandleUpdateUserPassword,
weak_factory_.GetWeakPtr()));
@@ -344,15 +343,4 @@ bool LockScreenReauthHandler::IsAuthenticatorLoaded(
return false;
}
-bool LockScreenReauthHandler::IsJsReadyForTesting(
- base::OnceClosure js_ready_callback) {
- if (js_ready_)
- return true;
-
- DCHECK(initialization_callback_for_testing_.is_null());
- initialization_callback_for_testing_ = std::move(js_ready_callback);
- return false;
-}
-
-
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_reauth_handler.h b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_reauth_handler.h
index f944f3cffe5..81861636dd7 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_reauth_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/lock_screen_reauth_handler.h
@@ -60,7 +60,7 @@ class LockScreenReauthHandler : public content::WebUIMessageHandler {
void OnCookieWaitTimeout();
- void OnJsReadyForTesting();
+ void OnReauthDialogReadyForTesting();
void CheckCredentials(const UserContext& user_context);
@@ -91,10 +91,6 @@ class LockScreenReauthHandler : public content::WebUIMessageHandler {
// A test may be waiting for the authenticator to load.
base::OnceClosure waiting_caller_;
- // Tests need to wait until the renderer is ready to execute JavaScript.
- bool js_ready_ = false;
- base::OnceClosure initialization_callback_for_testing_;
-
base::WeakPtrFactory<LockScreenReauthHandler> weak_factory_{this};
};
diff --git a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_dialogs.h b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_dialogs.h
index f6f32a20d5c..6e67bb1f8ce 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_dialogs.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_dialogs.h
@@ -15,6 +15,10 @@ namespace chromeos {
// A modal system dialog without any frame decorating it.
class BasePasswordDialog : public SystemWebDialogDelegate {
+ public:
+ BasePasswordDialog(const BasePasswordDialog&) = delete;
+ BasePasswordDialog& operator=(const BasePasswordDialog&) = delete;
+
protected:
BasePasswordDialog(GURL url, gfx::Size desired_size);
~BasePasswordDialog() override;
@@ -26,27 +30,29 @@ class BasePasswordDialog : public SystemWebDialogDelegate {
private:
gfx::Size desired_size_;
-
- DISALLOW_COPY_AND_ASSIGN(BasePasswordDialog);
};
// System dialog wrapping chrome:://password-change
class PasswordChangeDialog : public BasePasswordDialog {
public:
+ PasswordChangeDialog(const PasswordChangeDialog&) = delete;
+ PasswordChangeDialog& operator=(const PasswordChangeDialog&) = delete;
+
static void Show();
static void Dismiss();
protected:
PasswordChangeDialog();
~PasswordChangeDialog() override;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(PasswordChangeDialog);
};
// System dialog wrapping chrome://confirm-password-change
class ConfirmPasswordChangeDialog : public BasePasswordDialog {
public:
+ ConfirmPasswordChangeDialog(const ConfirmPasswordChangeDialog&) = delete;
+ ConfirmPasswordChangeDialog& operator=(const ConfirmPasswordChangeDialog&) =
+ delete;
+
static void Show(const std::string& scraped_old_password,
const std::string& scraped_new_password,
bool show_spinner_initially);
@@ -70,22 +76,22 @@ class ConfirmPasswordChangeDialog : public BasePasswordDialog {
std::string scraped_old_password_;
std::string scraped_new_password_;
bool show_spinner_initially_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(ConfirmPasswordChangeDialog);
};
// System dialog wrapping chrome://urgent-password-expiry-notification
class UrgentPasswordExpiryNotificationDialog : public BasePasswordDialog {
public:
+ UrgentPasswordExpiryNotificationDialog(
+ const UrgentPasswordExpiryNotificationDialog&) = delete;
+ UrgentPasswordExpiryNotificationDialog& operator=(
+ const UrgentPasswordExpiryNotificationDialog&) = delete;
+
static void Show();
static void Dismiss();
protected:
UrgentPasswordExpiryNotificationDialog();
~UrgentPasswordExpiryNotificationDialog() override;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(UrgentPasswordExpiryNotificationDialog);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_handler.cc
index 8bfb5480c24..7e23c8b99b7 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_handler.cc
@@ -63,11 +63,11 @@ void PasswordChangeHandler::HandleChangePassword(
}
void PasswordChangeHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initialize",
base::BindRepeating(&PasswordChangeHandler::HandleInitialize,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"changePassword",
base::BindRepeating(&PasswordChangeHandler::HandleChangePassword,
weak_factory_.GetWeakPtr()));
diff --git a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_handler.h b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_handler.h
index a7d2f3dea7e..2702af9dedb 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_handler.h
@@ -14,6 +14,10 @@ namespace chromeos {
class PasswordChangeHandler : public content::WebUIMessageHandler {
public:
explicit PasswordChangeHandler(const std::string& password_change_url);
+
+ PasswordChangeHandler(const PasswordChangeHandler&) = delete;
+ PasswordChangeHandler& operator=(const PasswordChangeHandler&) = delete;
+
~PasswordChangeHandler() override;
// content::WebUIMessageHandler:
@@ -26,7 +30,6 @@ class PasswordChangeHandler : public content::WebUIMessageHandler {
const std::string password_change_url_;
base::WeakPtrFactory<PasswordChangeHandler> weak_factory_{this};
- DISALLOW_COPY_AND_ASSIGN(PasswordChangeHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_ui.h b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_ui.h
index 9f2ec723725..d04e17c7f19 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/password_change_ui.h
@@ -15,30 +15,35 @@ namespace chromeos {
class PasswordChangeUI : public ui::WebDialogUI {
public:
explicit PasswordChangeUI(content::WebUI* web_ui);
- ~PasswordChangeUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(PasswordChangeUI);
+ PasswordChangeUI(const PasswordChangeUI&) = delete;
+ PasswordChangeUI& operator=(const PasswordChangeUI&) = delete;
+
+ ~PasswordChangeUI() override;
};
// For chrome:://confirm-password-change
class ConfirmPasswordChangeUI : public ui::WebDialogUI {
public:
explicit ConfirmPasswordChangeUI(content::WebUI* web_ui);
- ~ConfirmPasswordChangeUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(ConfirmPasswordChangeUI);
+ ConfirmPasswordChangeUI(const ConfirmPasswordChangeUI&) = delete;
+ ConfirmPasswordChangeUI& operator=(const ConfirmPasswordChangeUI&) = delete;
+
+ ~ConfirmPasswordChangeUI() override;
};
// For chrome:://urgent-password-expiry-notification
class UrgentPasswordExpiryNotificationUI : public ui::WebDialogUI {
public:
explicit UrgentPasswordExpiryNotificationUI(content::WebUI* web_ui);
- ~UrgentPasswordExpiryNotificationUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(UrgentPasswordExpiryNotificationUI);
+ UrgentPasswordExpiryNotificationUI(
+ const UrgentPasswordExpiryNotificationUI&) = delete;
+ UrgentPasswordExpiryNotificationUI& operator=(
+ const UrgentPasswordExpiryNotificationUI&) = delete;
+
+ ~UrgentPasswordExpiryNotificationUI() override;
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.cc
index 30c32964b7b..2a837f2300e 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.cc
@@ -35,18 +35,18 @@ void UrgentPasswordExpiryNotificationHandler::HandleGetTitleText(
const int ms_until_expiry = params->GetList()[1].GetInt();
const std::u16string title = PasswordExpiryNotification::GetTitleText(
- base::TimeDelta::FromMilliseconds(ms_until_expiry));
+ base::Milliseconds(ms_until_expiry));
AllowJavascript();
ResolveJavascriptCallback(base::Value(callback_id), base::Value(title));
}
void UrgentPasswordExpiryNotificationHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"continue", base::BindRepeating(
&UrgentPasswordExpiryNotificationHandler::HandleContinue,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getTitleText",
base::BindRepeating(
&UrgentPasswordExpiryNotificationHandler::HandleGetTitleText,
diff --git a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.h b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.h
index 06c83b15712..fc5978420b1 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/in_session_password_change/urgent_password_expiry_notification_handler.h
@@ -15,6 +15,12 @@ class UrgentPasswordExpiryNotificationHandler
: public content::WebUIMessageHandler {
public:
UrgentPasswordExpiryNotificationHandler();
+
+ UrgentPasswordExpiryNotificationHandler(
+ const UrgentPasswordExpiryNotificationHandler&) = delete;
+ UrgentPasswordExpiryNotificationHandler& operator=(
+ const UrgentPasswordExpiryNotificationHandler&) = delete;
+
~UrgentPasswordExpiryNotificationHandler() override;
// content::WebUIMessageHandler:
@@ -29,7 +35,6 @@ class UrgentPasswordExpiryNotificationHandler
private:
base::WeakPtrFactory<UrgentPasswordExpiryNotificationHandler> weak_factory_{
this};
- DISALLOW_COPY_AND_ASSIGN(UrgentPasswordExpiryNotificationHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/internet_config_dialog.h b/chromium/chrome/browser/ui/webui/chromeos/internet_config_dialog.h
index 86254d188b6..40d7845e9e5 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/internet_config_dialog.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/internet_config_dialog.h
@@ -19,6 +19,9 @@ class NetworkState;
class InternetConfigDialog : public SystemWebDialogDelegate {
public:
+ InternetConfigDialog(const InternetConfigDialog&) = delete;
+ InternetConfigDialog& operator=(const InternetConfigDialog&) = delete;
+
// Shows a network configuration dialog for |network_id|. Does nothing if
// there is no NetworkState matching |network_id|.
static void ShowDialogForNetworkId(const std::string& network_id,
@@ -49,8 +52,6 @@ class InternetConfigDialog : public SystemWebDialogDelegate {
std::string dialog_id_;
std::string network_type_;
std::string network_id_;
-
- DISALLOW_COPY_AND_ASSIGN(InternetConfigDialog);
};
// A WebUI to host the network configuration UI in a dialog, used in the
@@ -58,6 +59,10 @@ class InternetConfigDialog : public SystemWebDialogDelegate {
class InternetConfigDialogUI : public ui::MojoWebDialogUI {
public:
explicit InternetConfigDialogUI(content::WebUI* web_ui);
+
+ InternetConfigDialogUI(const InternetConfigDialogUI&) = delete;
+ InternetConfigDialogUI& operator=(const InternetConfigDialogUI&) = delete;
+
~InternetConfigDialogUI() override;
// Instantiates implementor of the mojom::CrosNetworkConfig mojo interface
// passing the pending receiver that will be internally bound.
@@ -67,8 +72,6 @@ class InternetConfigDialogUI : public ui::MojoWebDialogUI {
private:
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(InternetConfigDialogUI);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/internet_detail_dialog.h b/chromium/chrome/browser/ui/webui/chromeos/internet_detail_dialog.h
index 1e5848598bb..5050655b11c 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/internet_detail_dialog.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/internet_detail_dialog.h
@@ -18,6 +18,9 @@ class NetworkState;
class InternetDetailDialog : public SystemWebDialogDelegate {
public:
+ InternetDetailDialog(const InternetDetailDialog&) = delete;
+ InternetDetailDialog& operator=(const InternetDetailDialog&) = delete;
+
// Returns whether the dialog is being shown.
static bool IsShown();
@@ -41,8 +44,6 @@ class InternetDetailDialog : public SystemWebDialogDelegate {
std::string network_id_;
std::string network_type_;
std::string network_name_;
-
- DISALLOW_COPY_AND_ASSIGN(InternetDetailDialog);
};
// A WebUI to host a subset of the network details page to allow setting of
@@ -50,6 +51,10 @@ class InternetDetailDialog : public SystemWebDialogDelegate {
class InternetDetailDialogUI : public ui::MojoWebDialogUI {
public:
explicit InternetDetailDialogUI(content::WebUI* web_ui);
+
+ InternetDetailDialogUI(const InternetDetailDialogUI&) = delete;
+ InternetDetailDialogUI& operator=(const InternetDetailDialogUI&) = delete;
+
~InternetDetailDialogUI() override;
// Instantiates implementor of the mojom::CrosNetworkConfig mojo interface
@@ -60,8 +65,6 @@ class InternetDetailDialogUI : public ui::MojoWebDialogUI {
private:
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(InternetDetailDialogUI);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/launcher_internals/launcher_internals.mojom b/chromium/chrome/browser/ui/webui/chromeos/launcher_internals/launcher_internals.mojom
index b2b03f947b2..492c8b8062f 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/launcher_internals/launcher_internals.mojom
+++ b/chromium/chrome/browser/ui/webui/chromeos/launcher_internals/launcher_internals.mojom
@@ -18,6 +18,9 @@ struct Result {
// Which provider this result came from.
string result_type;
+ // The type that is reported in UMA metrics for this result.
+ string metrics_type;
+
// Which UI surface the result is displayed in.
string display_type;
diff --git a/chromium/chrome/browser/ui/webui/chromeos/launcher_internals/launcher_internals_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/launcher_internals/launcher_internals_handler.cc
index 9b347ae83c7..6716e5c166a 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/launcher_internals/launcher_internals_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/launcher_internals/launcher_internals_handler.cc
@@ -29,6 +29,7 @@ void LauncherInternalsHandler::OnResultsAdded(
result->id(), base::UTF16ToUTF8(result->title()),
base::UTF16ToUTF8(result->details()),
app_list::ResultTypeToString(result->result_type()),
+ app_list::MetricsTypeToString(result->metrics_type()),
app_list::DisplayTypeToString(result->display_type()),
result->relevance(), result->ranker_scores()));
}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/active_directory_login_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/active_directory_login_screen_handler.cc
index 86a9517bdda..65f73d792ac 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/active_directory_login_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/active_directory_login_screen_handler.cc
@@ -7,6 +7,7 @@
#include "chrome/browser/ash/login/oobe_screen.h"
#include "chrome/browser/ash/login/screens/active_directory_login_screen.h"
#include "chrome/browser/ash/policy/core/browser_policy_connector_ash.h"
+#include "chrome/browser/ash/settings/cros_settings.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_process_platform_part.h"
#include "chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h"
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/active_directory_password_change_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/active_directory_password_change_screen_handler.h
index 6865b018e31..10754f26b04 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/active_directory_password_change_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/active_directory_password_change_screen_handler.h
@@ -46,6 +46,12 @@ class ActiveDirectoryPasswordChangeScreenHandler
explicit ActiveDirectoryPasswordChangeScreenHandler(
JSCallsContainer* js_calls_container);
+
+ ActiveDirectoryPasswordChangeScreenHandler(
+ const ActiveDirectoryPasswordChangeScreenHandler&) = delete;
+ ActiveDirectoryPasswordChangeScreenHandler& operator=(
+ const ActiveDirectoryPasswordChangeScreenHandler&) = delete;
+
~ActiveDirectoryPasswordChangeScreenHandler() override;
// BaseScreenHandler implementation:
@@ -68,8 +74,6 @@ class ActiveDirectoryPasswordChangeScreenHandler
const std::string& new_password);
ash::ActiveDirectoryPasswordChangeScreen* screen_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(ActiveDirectoryPasswordChangeScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/app_downloading_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/app_downloading_screen_handler.cc
index b04fe20ba70..092300d3a76 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/app_downloading_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/app_downloading_screen_handler.cc
@@ -48,10 +48,6 @@ void AppDownloadingScreenHandler::DeclareLocalizedValues(
IDS_LOGIN_APP_DOWNLOADING_SCREEN_NEXT);
builder->Add("appDownloadingScreenTitle",
IDS_LOGIN_APP_DOWNLOADING_SCREEN_TITLE);
- builder->Add("appDownloadingScreenTitleSingular",
- IDS_LOGIN_APP_DOWNLOADING_SCREEN_TITLE_SINGULAR);
- builder->Add("appDownloadingScreenTitlePlural",
- IDS_LOGIN_APP_DOWNLOADING_SCREEN_TITLE_PLURAL);
}
void AppDownloadingScreenHandler::RegisterMessages() {
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/app_downloading_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/app_downloading_screen_handler.h
index 330e033b7a4..7bfc5095a03 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/app_downloading_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/app_downloading_screen_handler.h
@@ -37,6 +37,11 @@ class AppDownloadingScreenHandler : public BaseScreenHandler,
using TView = AppDownloadingScreenView;
explicit AppDownloadingScreenHandler(JSCallsContainer* js_calls_container);
+
+ AppDownloadingScreenHandler(const AppDownloadingScreenHandler&) = delete;
+ AppDownloadingScreenHandler& operator=(const AppDownloadingScreenHandler&) =
+ delete;
+
~AppDownloadingScreenHandler() override;
// BaseScreenHandler:
@@ -54,8 +59,6 @@ class AppDownloadingScreenHandler : public BaseScreenHandler,
void Initialize() override;
ash::AppDownloadingScreen* screen_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(AppDownloadingScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.cc
index 3850343e2c5..5a07c0945e0 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.cc
@@ -83,6 +83,8 @@ void AppLaunchSplashScreenHandler::Show() {
return;
}
+ is_shown_ = true;
+
base::DictionaryValue data;
data.SetBoolean("shortcutEnabled",
!KioskAppManager::Get()->GetDisableBailoutShortcut());
@@ -93,6 +95,12 @@ void AppLaunchSplashScreenHandler::Show() {
SetLaunchText(l10n_util::GetStringUTF8(GetProgressMessageFromState(state_)));
ShowScreenWithData(kScreenId, &data);
+ if (toggle_network_config_on_show_.has_value()) {
+ DoToggleNetworkConfig(toggle_network_config_on_show_.value());
+ toggle_network_config_on_show_.reset();
+ }
+ if (network_config_shown_)
+ ShowNetworkConfigureUI();
}
void AppLaunchSplashScreenHandler::RegisterMessages() {
@@ -106,10 +114,16 @@ void AppLaunchSplashScreenHandler::RegisterMessages() {
&AppLaunchSplashScreenHandler::HandleNetworkConfigRequested);
}
-void AppLaunchSplashScreenHandler::Hide() {}
+void AppLaunchSplashScreenHandler::Hide() {
+ is_shown_ = false;
+}
void AppLaunchSplashScreenHandler::ToggleNetworkConfig(bool visible) {
- CallJS("login.AppLaunchSplashScreen.toggleNetworkConfig", visible);
+ if (!is_shown_) {
+ toggle_network_config_on_show_ = visible;
+ return;
+ }
+ DoToggleNetworkConfig(visible);
}
void AppLaunchSplashScreenHandler::UpdateAppLaunchState(AppLaunchState state) {
@@ -289,4 +303,8 @@ void AppLaunchSplashScreenHandler::HandleContinueAppLaunch() {
Show();
}
+void AppLaunchSplashScreenHandler::DoToggleNetworkConfig(bool visible) {
+ CallJS("login.AppLaunchSplashScreen.toggleNetworkConfig", visible);
+}
+
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.h
index e21825cca99..4be8dffd3d4 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/app_launch_splash_screen_handler.h
@@ -14,6 +14,7 @@
#include "chrome/browser/ash/login/screens/error_screen.h"
#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/network_state_informer.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
namespace chromeos {
@@ -100,6 +101,11 @@ class AppLaunchSplashScreenHandler
JSCallsContainer* js_calls_container,
const scoped_refptr<NetworkStateInformer>& network_state_informer,
ErrorScreen* error_screen);
+
+ AppLaunchSplashScreenHandler(const AppLaunchSplashScreenHandler&) = delete;
+ AppLaunchSplashScreenHandler& operator=(const AppLaunchSplashScreenHandler&) =
+ delete;
+
~AppLaunchSplashScreenHandler() override;
// BaseScreenHandler implementation:
@@ -132,8 +138,10 @@ class AppLaunchSplashScreenHandler
void HandleCancelAppLaunch();
void HandleContinueAppLaunch();
void HandleNetworkConfigRequested();
+ void DoToggleNetworkConfig(bool visible);
Delegate* delegate_ = nullptr;
+ bool is_shown_ = false;
bool show_on_init_ = false;
AppLaunchState state_ = AppLaunchState::kPreparingProfile;
@@ -143,7 +151,9 @@ class AppLaunchSplashScreenHandler
// Whether network configure UI is being shown.
bool network_config_shown_ = false;
- DISALLOW_COPY_AND_ASSIGN(AppLaunchSplashScreenHandler);
+ // If this has value it will be populated through ToggleNetworkConfig(value)
+ // after screen is shown. Cleared after screen was shown.
+ absl::optional<bool> toggle_network_config_on_show_;
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.h
index 1bf351e5528..63d2ddf4bb3 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.h
@@ -30,6 +30,11 @@ class ArcTermsOfServiceScreenView;
class ArcTermsOfServiceScreenViewObserver {
public:
+ ArcTermsOfServiceScreenViewObserver(
+ const ArcTermsOfServiceScreenViewObserver&) = delete;
+ ArcTermsOfServiceScreenViewObserver& operator=(
+ const ArcTermsOfServiceScreenViewObserver&) = delete;
+
virtual ~ArcTermsOfServiceScreenViewObserver() = default;
// Called when the user accepts the PlayStore Terms of Service.
@@ -40,15 +45,16 @@ class ArcTermsOfServiceScreenViewObserver {
protected:
ArcTermsOfServiceScreenViewObserver() = default;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ArcTermsOfServiceScreenViewObserver);
};
class ArcTermsOfServiceScreenView {
public:
constexpr static StaticOobeScreenId kScreenId{"arc-tos"};
+ ArcTermsOfServiceScreenView(const ArcTermsOfServiceScreenView&) = delete;
+ ArcTermsOfServiceScreenView& operator=(const ArcTermsOfServiceScreenView&) =
+ delete;
+
virtual ~ArcTermsOfServiceScreenView() = default;
// Adds/Removes observer for view.
@@ -67,9 +73,6 @@ class ArcTermsOfServiceScreenView {
protected:
ArcTermsOfServiceScreenView() = default;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ArcTermsOfServiceScreenView);
};
// The sole implementation of the ArcTermsOfServiceScreenView, using WebUI.
@@ -84,6 +87,12 @@ class ArcTermsOfServiceScreenHandler
using TView = ArcTermsOfServiceScreenView;
explicit ArcTermsOfServiceScreenHandler(JSCallsContainer* js_calls_container);
+
+ ArcTermsOfServiceScreenHandler(const ArcTermsOfServiceScreenHandler&) =
+ delete;
+ ArcTermsOfServiceScreenHandler& operator=(
+ const ArcTermsOfServiceScreenHandler&) = delete;
+
~ArcTermsOfServiceScreenHandler() override;
// content::WebUIMessageHandler:
@@ -173,8 +182,6 @@ class ArcTermsOfServiceScreenHandler
bool is_child_account_;
std::unique_ptr<arc::ArcOptInPreferenceHandler> pref_handler_;
-
- DISALLOW_COPY_AND_ASSIGN(ArcTermsOfServiceScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/assistant_optin_flow_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/assistant_optin_flow_screen_handler.cc
index d53e262cc63..6f6bc9ca85a 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/assistant_optin_flow_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/assistant_optin_flow_screen_handler.cc
@@ -162,9 +162,6 @@ void AssistantOptInFlowScreenHandler::DeclareLocalizedValues(
builder->Add("assistantOptinAgreeButton", IDS_ASSISTANT_AGREE_BUTTON);
builder->Add("assistantOptinSaveButton", IDS_ASSISTANT_SAVE_BUTTON);
builder->Add("assistantOptinWaitMessage", IDS_ASSISTANT_WAIT_MESSAGE);
- builder->Add("assistantReadyTitle", IDS_ASSISTANT_READY_SCREEN_TITLE);
- builder->AddF("assistantReadyMessage", IDS_ASSISTANT_READY_SCREEN_MESSAGE,
- ui::GetChromeOSDeviceName());
builder->Add("assistantReadyButton", IDS_ASSISTANT_DONE_BUTTON);
builder->Add("back", IDS_EULA_BACK_BUTTON);
builder->Add("next", IDS_EULA_NEXT_BUTTON);
@@ -180,23 +177,14 @@ void AssistantOptInFlowScreenHandler::RegisterMessages() {
"login.AssistantOptInFlowScreen.RelatedInfoScreen.userActed",
&AssistantOptInFlowScreenHandler::HandleRelatedInfoScreenUserAction);
AddCallback(
- "login.AssistantOptInFlowScreen.ThirdPartyScreen.userActed",
- &AssistantOptInFlowScreenHandler::HandleThirdPartyScreenUserAction);
- AddCallback(
"login.AssistantOptInFlowScreen.VoiceMatchScreen.userActed",
&AssistantOptInFlowScreenHandler::HandleVoiceMatchScreenUserAction);
- AddCallback("login.AssistantOptInFlowScreen.GetMoreScreen.userActed",
- &AssistantOptInFlowScreenHandler::HandleGetMoreScreenUserAction);
AddCallback("login.AssistantOptInFlowScreen.ValuePropScreen.screenShown",
&AssistantOptInFlowScreenHandler::HandleValuePropScreenShown);
AddCallback("login.AssistantOptInFlowScreen.RelatedInfoScreen.screenShown",
&AssistantOptInFlowScreenHandler::HandleRelatedInfoScreenShown);
- AddCallback("login.AssistantOptInFlowScreen.ThirdPartyScreen.screenShown",
- &AssistantOptInFlowScreenHandler::HandleThirdPartyScreenShown);
AddCallback("login.AssistantOptInFlowScreen.VoiceMatchScreen.screenShown",
&AssistantOptInFlowScreenHandler::HandleVoiceMatchScreenShown);
- AddCallback("login.AssistantOptInFlowScreen.GetMoreScreen.screenShown",
- &AssistantOptInFlowScreenHandler::HandleGetMoreScreenShown);
AddCallback("login.AssistantOptInFlowScreen.timeout",
&AssistantOptInFlowScreenHandler::HandleLoadingTimeout);
AddCallback("login.AssistantOptInFlowScreen.flowFinished",
@@ -209,8 +197,6 @@ void AssistantOptInFlowScreenHandler::GetAdditionalParameters(
base::DictionaryValue* dict) {
dict->SetBoolean("voiceMatchDisabled",
chromeos::assistant::features::IsVoiceMatchDisabled());
- dict->SetBoolean("betterAssistantEnabled",
- chromeos::assistant::features::IsBetterAssistantEnabled());
BaseScreenHandler::GetAdditionalParameters(dict);
}
@@ -266,6 +252,7 @@ void AssistantOptInFlowScreenHandler::OnSpeakerIdEnrollmentDone() {
void AssistantOptInFlowScreenHandler::OnSpeakerIdEnrollmentFailure() {
StopSpeakerIdEnrollment();
RecordAssistantOptInStatus(VOICE_MATCH_ENROLLMENT_ERROR);
+ voice_match_enrollment_error_ = true;
CallJS("login.AssistantOptInFlowScreen.onVoiceMatchUpdate",
base::Value("failure"));
LOG(ERROR) << "Speaker ID enrollment failure.";
@@ -335,26 +322,11 @@ void AssistantOptInFlowScreenHandler::OnScreenContextOptInResult(
prefs->SetBoolean(assistant::prefs::kAssistantContextEnabled, opted_in);
}
-void AssistantOptInFlowScreenHandler::OnEmailOptInResult(bool opted_in) {
- if (!email_optin_needed_) {
- DCHECK(!opted_in);
- HandleFlowFinished();
- return;
- }
-
- // TODO(b/159363597): Handle network disconnect when sending email opt-in
- // result.
- RecordAssistantOptInStatus(opted_in ? EMAIL_OPTED_IN : EMAIL_OPTED_OUT);
- assistant::AssistantSettings::Get()->UpdateSettings(
- GetEmailOptInUpdate(opted_in).SerializeAsString(),
- base::BindOnce(&AssistantOptInFlowScreenHandler::OnUpdateSettingsResponse,
- weak_factory_.GetWeakPtr()));
- HandleFlowFinished();
-}
-
void AssistantOptInFlowScreenHandler::OnDialogClosed() {
// Disable hotword for user if voice match enrollment has not completed.
- if (!voice_match_enrollment_done_ &&
+ // No need to disable for retrain flow since user has a model.
+ // No need to disable if there's error during the enrollment.
+ if (!voice_match_enrollment_done_ && !voice_match_enrollment_error_ &&
flow_type_ == ash::FlowType::kSpeakerIdEnrollment) {
ProfileManager::GetActiveUserProfile()->GetPrefs()->SetBoolean(
assistant::prefs::kAssistantHotwordEnabled, false);
@@ -396,6 +368,8 @@ void AssistantOptInFlowScreenHandler::StopSpeakerIdEnrollment() {
DCHECK(voice_match_enrollment_started_);
voice_match_enrollment_started_ = false;
assistant::AssistantSettings::Get()->StopSpeakerIdEnrollment();
+ // Reset the mojom receiver of |SpeakerIdEnrollmentClient|.
+ ResetReceiver();
}
void AssistantOptInFlowScreenHandler::ReloadContent(const base::Value& dict) {
@@ -464,8 +438,6 @@ void AssistantOptInFlowScreenHandler::OnGetSettingsResponse(
DCHECK(settings_ui.has_consent_flow_ui());
RecordAssistantOptInStatus(FLOW_STARTED);
- auto third_party_disclosure_ui =
- settings_ui.consent_flow_ui().consent_ui().third_party_disclosure_ui();
base::Value zippy_data(base::Value::Type::LIST);
bool skip_activity_control = true;
@@ -525,37 +497,6 @@ void AssistantOptInFlowScreenHandler::OnGetSettingsResponse(
AddSettingZippy("settings", zippy_data);
}
- // Process third party disclosure data.
- bool skip_third_party_disclosure =
- skip_activity_control && !third_party_disclosure_ui.disclosures().size();
- if (third_party_disclosure_ui.disclosures().size()) {
- AddSettingZippy("disclosure", CreateDisclosureData(
- third_party_disclosure_ui.disclosures()));
- } else if (!skip_third_party_disclosure) {
- // TODO(llin): Show an error message and log it properly.
- LOG(ERROR) << "Missing third Party disclosure data.";
- return;
- }
-
- // Process get more data.
- email_optin_needed_ = settings_ui.has_email_opt_in_ui() &&
- settings_ui.email_opt_in_ui().has_title();
- auto* profile_helper = ProfileHelper::Get();
- const auto* user = user_manager::UserManager::Get()->GetActiveUser();
- auto get_more_data =
- CreateGetMoreData(email_optin_needed_, settings_ui.email_opt_in_ui(),
- profile_helper->GetProfileByUser(user)->GetPrefs());
-
- bool skip_get_more =
- skip_third_party_disclosure && !get_more_data.GetList().size();
- if (get_more_data.GetList().size()) {
- AddSettingZippy("get-more", get_more_data);
- } else if (!skip_get_more) {
- // TODO(llin): Show an error message and log it properly.
- LOG(ERROR) << "Missing get more data.";
- return;
- }
-
const bool is_oobe_in_progress =
session_manager::SessionManager::Get()->session_state() !=
session_manager::SessionState::ACTIVE;
@@ -569,23 +510,9 @@ void AssistantOptInFlowScreenHandler::OnGetSettingsResponse(
dictionary.SetKey("childName", base::Value(GetGivenNameIfIsChild()));
ReloadContent(dictionary);
- // Now that screen's content has been reloaded, skip screens that can be
- // skipped - if this is done before content reload, internal screen
- // transitions might be based on incorrect data. For example, if both activity
- // control and third party disclosure are skipped, opt in flow might skip
- // voice match enrollment, thinking that voice match is not enabled.
-
// Skip activity control and users will be in opted out mode.
if (skip_activity_control)
ShowNextScreen();
-
- if (skip_third_party_disclosure)
- ShowNextScreen();
-
- // If voice match is enabled, the screen that follows third party disclosure
- // is the "voice match" screen, not "get more" screen.
- if (skip_get_more && IsVoiceMatchEnforcedOff(prefs, is_oobe_in_progress))
- ShowNextScreen();
}
void AssistantOptInFlowScreenHandler::OnUpdateSettingsResponse(
@@ -646,14 +573,6 @@ void AssistantOptInFlowScreenHandler::HandleRelatedInfoScreenUserAction(
}
}
-void AssistantOptInFlowScreenHandler::HandleThirdPartyScreenUserAction(
- const std::string& action) {
- if (action == kNextPressed) {
- RecordAssistantOptInStatus(THIRD_PARTY_CONTINUED);
- ShowNextScreen();
- }
-}
-
void AssistantOptInFlowScreenHandler::HandleVoiceMatchScreenUserAction(
const std::string& action) {
PrefService* prefs = ProfileManager::GetActiveUserProfile()->GetPrefs();
@@ -661,11 +580,15 @@ void AssistantOptInFlowScreenHandler::HandleVoiceMatchScreenUserAction(
if (action == kVoiceMatchDone) {
RecordAssistantOptInStatus(VOICE_MATCH_ENROLLMENT_DONE);
voice_match_enrollment_done_ = true;
+ voice_match_enrollment_error_ = false;
ShowNextScreen();
} else if (action == kSkipPressed) {
RecordAssistantOptInStatus(VOICE_MATCH_ENROLLMENT_SKIPPED);
- if (flow_type_ != ash::FlowType::kSpeakerIdRetrain) {
- // No need to disable hotword for retrain flow since user has a model.
+ // Disable hotword for user if voice match enrollment has not completed.
+ // No need to disable for retrain flow since user has a model.
+ // No need to disable if there's error during the enrollment.
+ if (flow_type_ != ash::FlowType::kSpeakerIdRetrain &&
+ !voice_match_enrollment_error_) {
prefs->SetBoolean(assistant::prefs::kAssistantHotwordEnabled, false);
}
if (voice_match_enrollment_started_)
@@ -687,15 +610,6 @@ void AssistantOptInFlowScreenHandler::HandleVoiceMatchScreenUserAction(
}
}
-void AssistantOptInFlowScreenHandler::HandleGetMoreScreenUserAction(
- const bool screen_context,
- const bool email_opted_in) {
- RecordAssistantOptInStatus(GET_MORE_CONTINUED);
- PrefService* prefs = ProfileManager::GetActiveUserProfile()->GetPrefs();
- prefs->SetBoolean(assistant::prefs::kAssistantContextEnabled, screen_context);
- OnEmailOptInResult(email_opted_in);
-}
-
void AssistantOptInFlowScreenHandler::HandleValuePropScreenShown() {
RecordAssistantOptInStatus(ACTIVITY_CONTROL_SHOWN);
}
@@ -704,18 +618,10 @@ void AssistantOptInFlowScreenHandler::HandleRelatedInfoScreenShown() {
RecordAssistantOptInStatus(RELATED_INFO_SHOWN);
}
-void AssistantOptInFlowScreenHandler::HandleThirdPartyScreenShown() {
- RecordAssistantOptInStatus(THIRD_PARTY_SHOWN);
-}
-
void AssistantOptInFlowScreenHandler::HandleVoiceMatchScreenShown() {
RecordAssistantOptInStatus(VOICE_MATCH_SHOWN);
}
-void AssistantOptInFlowScreenHandler::HandleGetMoreScreenShown() {
- RecordAssistantOptInStatus(GET_MORE_SHOWN);
-}
-
void AssistantOptInFlowScreenHandler::HandleLoadingTimeout() {
++loading_timeout_counter_;
}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/assistant_optin_flow_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/assistant_optin_flow_screen_handler.h
index 4bb90dbbbef..8f9911e8010 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/assistant_optin_flow_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/assistant_optin_flow_screen_handler.h
@@ -31,6 +31,10 @@ class AssistantOptInFlowScreenView {
public:
constexpr static StaticOobeScreenId kScreenId{"assistant-optin-flow"};
+ AssistantOptInFlowScreenView(const AssistantOptInFlowScreenView&) = delete;
+ AssistantOptInFlowScreenView& operator=(const AssistantOptInFlowScreenView&) =
+ delete;
+
virtual ~AssistantOptInFlowScreenView() = default;
virtual void Bind(ash::AssistantOptInFlowScreen* screen) = 0;
@@ -40,9 +44,6 @@ class AssistantOptInFlowScreenView {
protected:
AssistantOptInFlowScreenView() = default;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(AssistantOptInFlowScreenView);
};
class AssistantOptInFlowScreenHandler
@@ -67,6 +68,12 @@ class AssistantOptInFlowScreenHandler
explicit AssistantOptInFlowScreenHandler(
JSCallsContainer* js_calls_container);
+
+ AssistantOptInFlowScreenHandler(const AssistantOptInFlowScreenHandler&) =
+ delete;
+ AssistantOptInFlowScreenHandler& operator=(
+ const AssistantOptInFlowScreenHandler&) = delete;
+
~AssistantOptInFlowScreenHandler() override;
// Set an optional callback that will run when the screen has been
@@ -103,7 +110,6 @@ class AssistantOptInFlowScreenHandler
// Handle user opt-in result.
void OnActivityControlOptInResult(bool opted_in);
void OnScreenContextOptInResult(bool opted_in);
- void OnEmailOptInResult(bool opted_in);
// Called when the UI dialog is closed.
void OnDialogClosed();
@@ -137,15 +143,10 @@ class AssistantOptInFlowScreenHandler
// Handler for JS WebUI message.
void HandleValuePropScreenUserAction(const std::string& action);
void HandleRelatedInfoScreenUserAction(const std::string& action);
- void HandleThirdPartyScreenUserAction(const std::string& action);
void HandleVoiceMatchScreenUserAction(const std::string& action);
- void HandleGetMoreScreenUserAction(const bool screen_context,
- const bool email_opted_in);
void HandleValuePropScreenShown();
void HandleRelatedInfoScreenShown();
- void HandleThirdPartyScreenShown();
void HandleVoiceMatchScreenShown();
- void HandleGetMoreScreenShown();
void HandleLoadingTimeout();
void HandleFlowFinished();
void HandleFlowInitialized(const int flow_type);
@@ -163,15 +164,15 @@ class AssistantOptInFlowScreenHandler
// Whether activity control is needed for user.
bool activity_control_needed_ = true;
- // Whether email optin is needed for user.
- bool email_optin_needed_ = false;
-
// Whether the user has started voice match enrollment.
bool voice_match_enrollment_started_ = false;
// Whether the use has completed voice match enrollment.
bool voice_match_enrollment_done_ = false;
+ // Whether error occurs during voice match enrollment.
+ bool voice_match_enrollment_error_ = false;
+
// Assistant optin flow type.
ash::FlowType flow_type_ = ash::FlowType::kConsentFlow;
@@ -193,8 +194,6 @@ class AssistantOptInFlowScreenHandler
base::circular_deque<ConsentData> pending_consent_data_;
base::WeakPtrFactory<AssistantOptInFlowScreenHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(AssistantOptInFlowScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/auto_enrollment_check_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/auto_enrollment_check_screen_handler.h
index f16b830b064..ac4a41a19ea 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/auto_enrollment_check_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/auto_enrollment_check_screen_handler.h
@@ -20,6 +20,12 @@ class AutoEnrollmentCheckScreenHandler : public AutoEnrollmentCheckScreenView,
explicit AutoEnrollmentCheckScreenHandler(
JSCallsContainer* js_calls_container);
+
+ AutoEnrollmentCheckScreenHandler(const AutoEnrollmentCheckScreenHandler&) =
+ delete;
+ AutoEnrollmentCheckScreenHandler& operator=(
+ const AutoEnrollmentCheckScreenHandler&) = delete;
+
~AutoEnrollmentCheckScreenHandler() override;
// AutoEnrollmentCheckScreenActor implementation:
@@ -39,8 +45,6 @@ class AutoEnrollmentCheckScreenHandler : public AutoEnrollmentCheckScreenView,
// Keeps whether screen should be shown right after initialization.
bool show_on_init_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(AutoEnrollmentCheckScreenHandler);
};
} // namespace chromeos
@@ -52,4 +56,3 @@ using ::chromeos::AutoEnrollmentCheckScreenHandler;
}
#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_AUTO_ENROLLMENT_CHECK_SCREEN_HANDLER_H_
-
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/base_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/base_screen_handler.h
index e8afe300ffa..7ec27cc2233 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/base_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/base_screen_handler.h
@@ -19,6 +19,10 @@ class BaseScreenHandler : public BaseWebUIHandler {
public:
BaseScreenHandler(OobeScreenId oobe_screen,
JSCallsContainer* js_calls_container);
+
+ BaseScreenHandler(const BaseScreenHandler&) = delete;
+ BaseScreenHandler& operator=(const BaseScreenHandler&) = delete;
+
~BaseScreenHandler() override;
OobeScreenId oobe_screen() const { return oobe_screen_; }
@@ -51,8 +55,6 @@ class BaseScreenHandler : public BaseWebUIHandler {
OobeScreenId oobe_screen_ = OobeScreen::SCREEN_UNKNOWN;
BaseScreen* base_screen_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(BaseScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/base_webui_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/base_webui_handler.cc
index 4103b0fe0a1..a4b7d7935a2 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/base_webui_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/base_webui_handler.cc
@@ -81,7 +81,7 @@ void BaseWebUIHandler::MaybeRecordIncomingEvent(
void BaseWebUIHandler::OnRawCallback(
const std::string& function_name,
- const content::WebUI::MessageCallback callback,
+ const content::WebUI::DeprecatedMessageCallback& callback,
const base::ListValue* args) {
MaybeRecordIncomingEvent(function_name, args);
callback.Run(args);
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/base_webui_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/base_webui_handler.h
index e4e14f563f0..86622542101 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/base_webui_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/base_webui_handler.h
@@ -39,6 +39,10 @@ class OobeUI;
class BaseWebUIHandler : public content::WebUIMessageHandler {
public:
explicit BaseWebUIHandler(JSCallsContainer* js_calls_container);
+
+ BaseWebUIHandler(const BaseWebUIHandler&) = delete;
+ BaseWebUIHandler& operator=(const BaseWebUIHandler&) = delete;
+
~BaseWebUIHandler() override;
// Gets localized strings to be used on the page.
@@ -102,9 +106,9 @@ class BaseWebUIHandler : public content::WebUIMessageHandler {
template <typename T>
void AddRawCallback(const std::string& function_name,
void (T::*method)(const base::ListValue* args)) {
- content::WebUI::MessageCallback callback =
+ content::WebUI::DeprecatedMessageCallback callback =
base::BindRepeating(method, base::Unretained(static_cast<T*>(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
function_name,
base::BindRepeating(&BaseWebUIHandler::OnRawCallback,
base::Unretained(this), function_name, callback));
@@ -114,7 +118,7 @@ class BaseWebUIHandler : public content::WebUIMessageHandler {
void (T::*method)(Args...)) {
base::RepeatingCallback<void(Args...)> callback =
base::BindRepeating(method, base::Unretained(static_cast<T*>(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
function_name,
base::BindRepeating(&BaseWebUIHandler::OnCallback<Args...>,
base::Unretained(this), function_name, callback));
@@ -172,7 +176,7 @@ class BaseWebUIHandler : public content::WebUIMessageHandler {
// These two functions wrap Add(Raw)Callback so that the incoming JavaScript
// event can be recorded.
void OnRawCallback(const std::string& function_name,
- const content::WebUI::MessageCallback callback,
+ const content::WebUI::DeprecatedMessageCallback& callback,
const base::ListValue* args);
template <typename... Args>
void OnCallback(const std::string& function_name,
@@ -192,8 +196,6 @@ class BaseWebUIHandler : public content::WebUIMessageHandler {
bool javascript_disallowed_ = false;
JSCallsContainer* js_calls_container_ = nullptr; // non-owning pointers.
-
- DISALLOW_COPY_AND_ASSIGN(BaseWebUIHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/consolidated_consent_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/consolidated_consent_screen_handler.cc
new file mode 100644
index 00000000000..3401adf05f6
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/consolidated_consent_screen_handler.cc
@@ -0,0 +1,161 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/chromeos/login/consolidated_consent_screen_handler.h"
+
+#include "chrome/browser/ash/login/oobe_screen.h"
+#include "chrome/browser/ash/login/screens/consolidated_consent_screen.h"
+#include "chrome/grit/chromium_strings.h"
+#include "chrome/grit/generated_resources.h"
+#include "components/login/localized_values_builder.h"
+
+namespace chromeos {
+
+ConsolidatedConsentScreenView::ScreenConfig::ScreenConfig() = default;
+
+ConsolidatedConsentScreenView::ScreenConfig::~ScreenConfig() = default;
+
+constexpr StaticOobeScreenId ConsolidatedConsentScreenView::kScreenId;
+
+ConsolidatedConsentScreenHandler::ConsolidatedConsentScreenHandler(
+ JSCallsContainer* js_calls_container)
+ : BaseScreenHandler(kScreenId, js_calls_container) {
+ set_user_acted_method_path("login.ConsolidatedConsentScreen.userActed");
+}
+
+ConsolidatedConsentScreenHandler::~ConsolidatedConsentScreenHandler() {
+ if (screen_)
+ screen_->OnViewDestroyed(this);
+}
+
+void ConsolidatedConsentScreenHandler::DeclareLocalizedValues(
+ ::login::LocalizedValuesBuilder* builder) {
+ builder->Add("consolidatedConsentHeader", IDS_CONSOLIDATED_CONSENT_HEADER);
+ builder->Add("consolidatedConsentHeaderChild",
+ IDS_CONSOLIDATED_CONSENT_HEADER_CHILD);
+ builder->Add("consolidatedConsentSubheader",
+ IDS_CONSOLIDATED_CONSENT_SUBHEADER);
+ builder->Add("consolidatedConsentTermsDescriptionTitle",
+ IDS_CONSOLIDATED_CONSENT_TOS_TITLE);
+ builder->Add("consolidatedConsentTermsDescription",
+ IDS_CONSOLIDATED_CONSENT_TOS);
+ builder->Add("consolidatedConsentTermsDescriptionArcDisabled",
+ IDS_CONSOLIDATED_CONSENT_TOS_ARC_DISABLED);
+ builder->Add("consolidatedConsentUsageOptInTitle",
+ IDS_CONSOLIDATED_CONSENT_USAGE_OPT_IN_TITLE);
+ builder->Add("consolidatedConsentUsageOptIn",
+ IDS_CONSOLIDATED_CONSENT_USAGE_OPT_IN);
+ builder->Add("consolidatedConsentUsageOptInChild",
+ IDS_CONSOLIDATED_CONSENT_USAGE_OPT_IN_CHILD);
+ builder->Add("consolidatedConsentUsageOptInArcDisabled",
+ IDS_CONSOLIDATED_CONSENT_USAGE_OPT_IN_ARC_DISABLED);
+ builder->Add("consolidatedConsentBackupOptInTitle",
+ IDS_CONSOLIDATED_CONSENT_BACKUP_OPT_IN_TITLE);
+ builder->Add("consolidatedConsentBackupOptIn",
+ IDS_CONSOLIDATED_CONSENT_BACKUP_OPT_IN);
+ builder->Add("consolidatedConsentBackupOptInChild",
+ IDS_CONSOLIDATED_CONSENT_BACKUP_OPT_IN_CHILD);
+ builder->Add("consolidatedConsentLocationOptInTitle",
+ IDS_CONSOLIDATED_CONSENT_LOCATION_OPT_IN_TITLE);
+ builder->Add("consolidatedConsentLocationOptIn",
+ IDS_CONSOLIDATED_CONSENT_LOCATION_OPT_IN);
+ builder->Add("consolidatedConsentLocationOptInChild",
+ IDS_CONSOLIDATED_CONSENT_LOCATION_OPT_IN_CHILD);
+ builder->Add("consolidatedConsentFooter", IDS_CONSOLIDATED_CONSENT_FOOTER);
+ builder->Add("consolidatedConsentFooterChild",
+ IDS_CONSOLIDATED_CONSENT_FOOTER_CHILD);
+ builder->Add("consolidatedConsentUsageOptInLearnMore",
+ IDS_CONSOLIDATED_CONSENT_USAGE_OPT_IN_LEARN_MORE);
+ builder->Add("consolidatedConsentUsageOptInLearnMoreChild",
+ IDS_CONSOLIDATED_CONSENT_USAGE_OPT_IN_LEARN_MORE_CHILD);
+ builder->Add("consolidatedConsentUsageOptInLearnMoreArcDisabled",
+ IDS_CONSOLIDATED_CONSENT_USAGE_OPT_IN_LEARN_MORE_ARC_DISABLED);
+ builder->Add(
+ "consolidatedConsentUsageOptInLearnMoreArcDisabledChild",
+ IDS_CONSOLIDATED_CONSENT_USAGE_OPT_IN_LEARN_MORE_ARC_DISABLED_CHILD);
+ builder->Add("consolidatedConsentBackupOptInLearnMore",
+ IDS_CONSOLIDATED_CONSENT_BACKUP_OPT_IN_LEARN_MORE);
+ builder->Add("consolidatedConsentBackupOptInLearnMoreChild",
+ IDS_CONSOLIDATED_CONSENT_BACKUP_OPT_IN_LEARN_MORE_CHILD);
+ builder->Add("consolidatedConsentLocationOptInLearnMore",
+ IDS_CONSOLIDATED_CONSENT_LOCATION_OPT_IN_LEARN_MORE);
+ builder->Add("consolidatedConsentLocationOptInLearnMoreChild",
+ IDS_CONSOLIDATED_CONSENT_LOCATION_OPT_IN_LEARN_MORE_CHILD);
+ builder->Add("consolidatedConsentFooterLearnMore",
+ IDS_CONSOLIDATED_FOOTER_LEARN_MORE);
+ builder->Add("consolidatedConsentLearnMore",
+ IDS_CONSOLIDATED_CONSENT_LEARN_MORE);
+ builder->Add("consolidatedConsentAcceptAndContinue",
+ IDS_CONSOLIDATED_CONSENT_ACCEPT_AND_CONTINUE);
+ builder->Add("consolidatedConsentLoading", IDS_CONSOLIDATED_LOADING);
+ builder->Add("consolidatedConsentErrorTitle",
+ IDS_OOBE_GENERIC_FATAL_ERROR_TITLE);
+ builder->Add("consolidatedConsentErrorMessage",
+ IDS_CONSOLIDATED_TERMS_LOAD_ERROR);
+ builder->Add("consolidatedConsentRetry", IDS_CONSOLIDATED_TERMS_RETRY);
+ builder->Add("consolidatedConsentOK", IDS_CONSOLIDATED_OK);
+ builder->Add("consolidatedConsentEulaTermsTitle",
+ IDS_CONSOLIDATED_EULA_TERMS_TITLE);
+ builder->Add("consolidatedConsentAdditionalTermsTitle",
+ IDS_CONSOLIDATED_ADDITIONAL_TERMS_TITLE);
+ builder->Add("consolidatedConsentArcTermsTitle",
+ IDS_CONSOLIDATED_ARC_TERMS_TITLE);
+ builder->Add("consolidatedConsentPrivacyTermsTitle",
+ IDS_CONSOLIDATED_PRIVACY_POLICY_TERMS_TITLE);
+}
+
+void ConsolidatedConsentScreenHandler::Initialize() {}
+
+void ConsolidatedConsentScreenHandler::Show(const ScreenConfig& config) {
+ base::DictionaryValue data;
+ data.SetBoolean("isArcEnabled", config.is_arc_enabled);
+ data.SetBoolean("isDemo", config.is_demo);
+ data.SetBoolean("isChildAccount", config.is_child_account);
+ data.SetString("countryCode", config.country_code);
+ data.SetString("eulaUrl", config.eula_url);
+ data.SetString("additionalTosUrl", config.additional_tos_url);
+ ShowScreenWithData(kScreenId, &data);
+}
+
+void ConsolidatedConsentScreenHandler::Bind(ConsolidatedConsentScreen* screen) {
+ screen_ = screen;
+ BaseScreenHandler::SetBaseScreen(screen_);
+}
+
+void ConsolidatedConsentScreenHandler::Unbind() {
+ screen_ = nullptr;
+ BaseScreenHandler::SetBaseScreen(nullptr);
+}
+
+void ConsolidatedConsentScreenHandler::RegisterMessages() {
+ BaseScreenHandler::RegisterMessages();
+
+ AddCallback("ToSAccept", &ConsolidatedConsentScreenHandler::HandleAccept);
+}
+
+void ConsolidatedConsentScreenHandler::HandleAccept(
+ bool enable_stats_usage,
+ bool enable_backup_restore,
+ bool enable_location_services,
+ const std::string& tos_content) {
+ screen_->OnAccept(enable_stats_usage, enable_backup_restore,
+ enable_location_services, tos_content);
+}
+
+void ConsolidatedConsentScreenHandler::SetUsageMode(bool enabled,
+ bool managed) {
+ CallJS("login.ConsolidatedConsentScreen.SetUsageMode", enabled, managed);
+}
+
+void ConsolidatedConsentScreenHandler::SetBackupMode(bool enabled,
+ bool managed) {
+ CallJS("login.ConsolidatedConsentScreen.setBackupMode", enabled, managed);
+}
+
+void ConsolidatedConsentScreenHandler::SetLocationMode(bool enabled,
+ bool managed) {
+ CallJS("login.ConsolidatedConsentScreen.setLocationMode", enabled, managed);
+}
+
+} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/consolidated_consent_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/consolidated_consent_screen_handler.h
new file mode 100644
index 00000000000..c7f2db01748
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/consolidated_consent_screen_handler.h
@@ -0,0 +1,116 @@
+// Copyright 2021 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.
+
+// Stub handler
+
+#ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_CONSOLIDATED_CONSENT_SCREEN_HANDLER_H_
+#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_CONSOLIDATED_CONSENT_SCREEN_HANDLER_H_
+
+#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
+
+namespace ash {
+class ConsolidatedConsentScreen;
+}
+
+namespace chromeos {
+namespace {
+const char kEulaDefaultUrl[] =
+ "https://policies.google.com/terms/embedded?hl=en";
+const char kAdditionalTosDefaultUrl[] =
+ "https://www.google.com/intl/en/chrome/terms/";
+} // namespace
+
+// Interface for dependency injection between ConsolidatedConsentScreen and its
+// WebUI representation.
+class ConsolidatedConsentScreenView {
+ public:
+ constexpr static StaticOobeScreenId kScreenId{"consolidated-consent"};
+
+ struct ScreenConfig {
+ ScreenConfig();
+ ~ScreenConfig();
+ ScreenConfig(const ScreenConfig&) = delete;
+ ScreenConfig& operator=(const ScreenConfig&) = delete;
+
+ bool is_arc_enabled = true;
+ bool is_demo = false;
+ bool is_arc_managed = false;
+ bool is_child_account = false;
+ std::string country_code = "us";
+
+ // Default URLs with english locales.
+ // ScreenConfig created in ConsolidatedConsentScreen::ShowImpl() should
+ // include the localized versions.
+ std::string eula_url = kEulaDefaultUrl;
+ std::string additional_tos_url = kEulaDefaultUrl;
+ };
+
+ virtual ~ConsolidatedConsentScreenView() = default;
+
+ // Shows the contents of the screen.
+ virtual void Show(const ScreenConfig& config) = 0;
+
+ // Binds |screen| to the view.
+ virtual void Bind(ash::ConsolidatedConsentScreen* screen) = 0;
+
+ // Unbinds the screen from the view.
+ virtual void Unbind() = 0;
+
+ // Updates the UI of the opt-ins.
+ // When an opt-in is managed, its toggle would be disabled.
+ virtual void SetUsageMode(bool enabled, bool managed) = 0;
+ virtual void SetBackupMode(bool enabled, bool managed) = 0;
+ virtual void SetLocationMode(bool enabled, bool managed) = 0;
+};
+
+class ConsolidatedConsentScreenHandler : public ConsolidatedConsentScreenView,
+ public BaseScreenHandler {
+ public:
+ using TView = ConsolidatedConsentScreenView;
+
+ explicit ConsolidatedConsentScreenHandler(
+ JSCallsContainer* js_calls_container);
+
+ ~ConsolidatedConsentScreenHandler() override;
+
+ ConsolidatedConsentScreenHandler(const ConsolidatedConsentScreenHandler&) =
+ delete;
+ ConsolidatedConsentScreenHandler& operator=(
+ const ConsolidatedConsentScreenHandler&) = delete;
+
+ private:
+ // ConsolidatedConsentScreenView
+ void Show(const ScreenConfig& config) override;
+ void Bind(ash::ConsolidatedConsentScreen* screen) override;
+ void Unbind() override;
+ void SetUsageMode(bool enabled, bool managed) override;
+ void SetBackupMode(bool enabled, bool managed) override;
+ void SetLocationMode(bool enabled, bool managed) override;
+
+ // content::WebUIMessageHandler:
+ void RegisterMessages() override;
+
+ // BaseScreenHandler:
+ void DeclareLocalizedValues(
+ ::login::LocalizedValuesBuilder* builder) override;
+ void Initialize() override;
+
+ void HandleAccept(bool enable_stats_usage,
+ bool enable_backup_restore,
+ bool enable_location_services,
+ const std::string& tos_content);
+
+ ash::ConsolidatedConsentScreen* screen_ = nullptr;
+};
+
+} // namespace chromeos
+
+// TODO(https://crbug.com/1164001): remove after the //chrome/browser/chromeos
+// source migration is finished.
+namespace ash {
+using ::chromeos::ConsolidatedConsentScreenHandler;
+using ::chromeos::ConsolidatedConsentScreenView;
+} // namespace ash
+
+#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_CONSOLIDATED_CONSENT_SCREEN_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/cookie_waiter.cc b/chromium/chrome/browser/ui/webui/chromeos/login/cookie_waiter.cc
index c0cd0246920..b1d95b6c2ac 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/cookie_waiter.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/cookie_waiter.cc
@@ -10,8 +10,7 @@ namespace chromeos {
namespace {
-constexpr base::TimeDelta kCookieDelay = base::TimeDelta::FromSeconds(20);
-
+constexpr base::TimeDelta kCookieDelay = base::Seconds(20);
}
CookieWaiter::CookieWaiter(network::mojom::CookieManager* cookie_manager,
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc
index 2a4069a2256..bcd06a97592 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc
@@ -107,8 +107,6 @@ void CoreOobeHandler::GetAdditionalParameters(base::DictionaryValue* dict) {
base::Value(ash::TabletMode::Get()->InTabletMode()));
dict->SetKey("isDemoModeEnabled",
base::Value(DemoSetupController::IsDemoModeAllowed()));
- // TODO(crbug.com/1202135):: Remove along with JS part.
- dict->SetKey("newLayoutEnabled", base::Value(true));
if (policy::EnrollmentRequisitionManager::IsRemoraRequisition()) {
dict->SetKey("flowType", base::Value("meet"));
}
@@ -360,10 +358,9 @@ void CoreOobeHandler::SetDialogPaddingMode(
void CoreOobeHandler::OnOobeConfigurationChanged() {
base::Value configuration(base::Value::Type::DICTIONARY);
- chromeos::configuration::FilterConfiguration(
+ configuration::FilterConfiguration(
OobeConfiguration::Get()->GetConfiguration(),
- chromeos::configuration::ConfigurationHandlerSide::HANDLER_JS,
- configuration);
+ configuration::ConfigurationHandlerSide::HANDLER_JS, configuration);
CallJS("cr.ui.Oobe.updateOobeConfiguration", configuration);
}
@@ -384,7 +381,7 @@ void CoreOobeHandler::HandleRaiseTabKeyEvent(bool reverse) {
void CoreOobeHandler::HandleGetPrimaryDisplayNameForTesting(
const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h
index 0fbb80d07e3..2ca98e87b2b 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.h
@@ -18,7 +18,7 @@
#include "chrome/browser/ash/login/help_app_launcher.h"
#include "chrome/browser/ash/login/oobe_configuration.h"
#include "chrome/browser/ash/login/version_info_updater.h"
-#include "chrome/browser/chromeos/tpm_firmware_update.h"
+#include "chrome/browser/ash/tpm_firmware_update.h"
#include "chrome/browser/ui/webui/chromeos/login/base_webui_handler.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
@@ -72,6 +72,10 @@ class CoreOobeHandler : public BaseWebUIHandler,
public OobeConfiguration::Observer {
public:
explicit CoreOobeHandler(JSCallsContainer* js_calls_container);
+
+ CoreOobeHandler(const CoreOobeHandler&) = delete;
+ CoreOobeHandler& operator=(const CoreOobeHandler&) = delete;
+
~CoreOobeHandler() override;
// BaseScreenHandler implementation:
@@ -182,8 +186,6 @@ class CoreOobeHandler : public BaseWebUIHandler,
mojo::Remote<ash::mojom::CrosDisplayConfigController> cros_display_config_;
base::WeakPtrFactory<CoreOobeHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(CoreOobeHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/demo_preferences_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/demo_preferences_screen_handler.h
index 858af656d35..1564870c05c 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/demo_preferences_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/demo_preferences_screen_handler.h
@@ -42,6 +42,11 @@ class DemoPreferencesScreenHandler : public BaseScreenHandler,
using TView = DemoPreferencesScreenView;
explicit DemoPreferencesScreenHandler(JSCallsContainer* js_calls_container);
+
+ DemoPreferencesScreenHandler(const DemoPreferencesScreenHandler&) = delete;
+ DemoPreferencesScreenHandler& operator=(const DemoPreferencesScreenHandler&) =
+ delete;
+
~DemoPreferencesScreenHandler() override;
// DemoPreferencesScreenView:
@@ -64,8 +69,6 @@ class DemoPreferencesScreenHandler : public BaseScreenHandler,
void HandleSetDemoModeCountry(const std::string& country_id);
ash::DemoPreferencesScreen* screen_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(DemoPreferencesScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/demo_setup_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/demo_setup_screen_handler.h
index 01346c1f0d3..b3d1e04fafb 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/demo_setup_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/demo_setup_screen_handler.h
@@ -50,6 +50,10 @@ class DemoSetupScreenHandler : public BaseScreenHandler,
using TView = DemoSetupScreenView;
explicit DemoSetupScreenHandler(JSCallsContainer* js_calls_container);
+
+ DemoSetupScreenHandler(const DemoSetupScreenHandler&) = delete;
+ DemoSetupScreenHandler& operator=(const DemoSetupScreenHandler&) = delete;
+
~DemoSetupScreenHandler() override;
// DemoSetupScreenView:
@@ -71,8 +75,6 @@ class DemoSetupScreenHandler : public BaseScreenHandler,
private:
ash::DemoSetupScreen* screen_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(DemoSetupScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/device_disabled_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/device_disabled_screen_handler.h
index 0b19f8e2fb5..76a1a49f5cb 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/device_disabled_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/device_disabled_screen_handler.h
@@ -36,6 +36,11 @@ class DeviceDisabledScreenHandler : public DeviceDisabledScreenView,
using TView = DeviceDisabledScreenView;
explicit DeviceDisabledScreenHandler(JSCallsContainer* js_calls_container);
+
+ DeviceDisabledScreenHandler(const DeviceDisabledScreenHandler&) = delete;
+ DeviceDisabledScreenHandler& operator=(const DeviceDisabledScreenHandler&) =
+ delete;
+
~DeviceDisabledScreenHandler() override;
// DeviceDisabledScreenActor:
@@ -56,8 +61,6 @@ class DeviceDisabledScreenHandler : public DeviceDisabledScreenView,
void RegisterMessages() override;
ash::DeviceDisabledScreen* screen_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(DeviceDisabledScreenHandler);
};
} // namespace chromeos
@@ -69,4 +72,3 @@ using ::chromeos::DeviceDisabledScreenView;
}
#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_DEVICE_DISABLED_SCREEN_HANDLER_H_
-
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/enable_adb_sideloading_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/enable_adb_sideloading_screen_handler.h
index ef23789eef2..0ebc3b2e94a 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/enable_adb_sideloading_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/enable_adb_sideloading_screen_handler.h
@@ -43,6 +43,12 @@ class EnableAdbSideloadingScreenHandler : public EnableAdbSideloadingScreenView,
explicit EnableAdbSideloadingScreenHandler(
JSCallsContainer* js_calls_container);
+
+ EnableAdbSideloadingScreenHandler(const EnableAdbSideloadingScreenHandler&) =
+ delete;
+ EnableAdbSideloadingScreenHandler& operator=(
+ const EnableAdbSideloadingScreenHandler&) = delete;
+
~EnableAdbSideloadingScreenHandler() override;
// EnableAdbSideloadingScreenView implementation:
@@ -62,8 +68,6 @@ class EnableAdbSideloadingScreenHandler : public EnableAdbSideloadingScreenView,
// Keeps whether screen should be shown right after initialization.
bool show_on_init_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(EnableAdbSideloadingScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/enable_debugging_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/enable_debugging_screen_handler.h
index 010932d18da..75e935214dd 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/enable_debugging_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/enable_debugging_screen_handler.h
@@ -47,6 +47,11 @@ class EnableDebuggingScreenHandler : public EnableDebuggingScreenView,
using TView = EnableDebuggingScreenView;
explicit EnableDebuggingScreenHandler(JSCallsContainer* js_calls_container);
+
+ EnableDebuggingScreenHandler(const EnableDebuggingScreenHandler&) = delete;
+ EnableDebuggingScreenHandler& operator=(const EnableDebuggingScreenHandler&) =
+ delete;
+
~EnableDebuggingScreenHandler() override;
// EnableDebuggingScreenView implementation:
@@ -74,8 +79,6 @@ class EnableDebuggingScreenHandler : public EnableDebuggingScreenView,
// Keeps whether screen should be shown right after initialization.
bool show_on_init_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(EnableDebuggingScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h
index 464a6648aa5..92302f9408f 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h
@@ -54,6 +54,12 @@ class EncryptionMigrationScreenHandler : public EncryptionMigrationScreenView,
explicit EncryptionMigrationScreenHandler(
JSCallsContainer* js_calls_container);
+
+ EncryptionMigrationScreenHandler(const EncryptionMigrationScreenHandler&) =
+ delete;
+ EncryptionMigrationScreenHandler& operator=(
+ const EncryptionMigrationScreenHandler&) = delete;
+
~EncryptionMigrationScreenHandler() override;
// EncryptionMigrationScreenView implementation:
@@ -78,8 +84,6 @@ class EncryptionMigrationScreenHandler : public EncryptionMigrationScreenView,
private:
ash::EncryptionMigrationScreen* delegate_ = nullptr;
bool show_on_init_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(EncryptionMigrationScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.cc
index ecf19b900de..857c05a5a6c 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.cc
@@ -61,6 +61,7 @@ const char kEnrollmentStepSignin[] = "signin";
const char kEnrollmentStepAdJoin[] = "ad-join";
const char kEnrollmentStepSuccess[] = "success";
const char kEnrollmentStepWorking[] = "working";
+const char kEnrollmentStepTPMChecking[] = "tpm-checking";
// Enrollment mode constants used in the UI. This needs to be kept in sync with
// oobe_screen_oauth_enrollment.js.
@@ -196,15 +197,19 @@ EnrollmentScreenHandler::EnrollmentScreenHandler(
DCHECK(network_state_informer_.get());
DCHECK(error_screen_);
network_state_informer_->AddObserver(this);
+ set_user_acted_method_path("login.OAuthEnrollmentScreen.userActed");
}
EnrollmentScreenHandler::~EnrollmentScreenHandler() {
network_state_informer_->RemoveObserver(this);
+ if (screen_)
+ screen_->OnViewDestroyed(this);
}
// EnrollmentScreenHandler, WebUIMessageHandler implementation --
void EnrollmentScreenHandler::RegisterMessages() {
+ BaseScreenHandler::RegisterMessages();
AddCallback("toggleFakeEnrollment",
&EnrollmentScreenHandler::HandleToggleFakeEnrollment);
AddCallback("oauthEnrollClose", &EnrollmentScreenHandler::HandleClose);
@@ -247,6 +252,16 @@ void EnrollmentScreenHandler::Show() {
void EnrollmentScreenHandler::Hide() {}
+void EnrollmentScreenHandler::Bind(ash::EnrollmentScreen* screen) {
+ screen_ = screen;
+ BaseScreenHandler::SetBaseScreen(screen_);
+}
+
+void EnrollmentScreenHandler::Unbind() {
+ screen_ = nullptr;
+ BaseScreenHandler::SetBaseScreen(nullptr);
+}
+
void EnrollmentScreenHandler::ShowSigninScreen() {
observe_network_failure_ = true;
ShowStep(kEnrollmentStepSignin);
@@ -278,7 +293,8 @@ void EnrollmentScreenHandler::ShowUserError(UserErrorType error_type,
}
void EnrollmentScreenHandler::ShowEnrollmentCloudReadyNotAllowedError() {
- ShowError(IDS_ENTERPRISE_ENROLLMENT_STATUS_CLOUD_READY_NOT_ALLOWED, false);
+ ShowScreen(EnrollmentScreenView::kScreenId);
+ CallJS("login.OAuthEnrollmentScreen.showOSNotInstalledError");
}
void EnrollmentScreenHandler::ShowActiveDirectoryScreen(
@@ -382,10 +398,15 @@ void EnrollmentScreenHandler::ShowAttributePromptScreen(
location);
}
-void EnrollmentScreenHandler::ShowEnrollmentSpinnerScreen() {
+void EnrollmentScreenHandler::ShowEnrollmentWorkingScreen() {
ShowStep(kEnrollmentStepWorking);
}
+void EnrollmentScreenHandler::ShowEnrollmentTPMCheckingScreen() {
+ ShowScreen(EnrollmentScreenView::kScreenId);
+ ShowStep(kEnrollmentStepTPMChecking);
+}
+
void EnrollmentScreenHandler::SetEnterpriseDomainInfo(
const std::string& manager,
const std::u16string& device_type) {
@@ -441,6 +462,10 @@ void EnrollmentScreenHandler::Shutdown() {
shutdown_ = true;
}
+void EnrollmentScreenHandler::SetIsBrandedBuild(bool is_branded) {
+ CallJS("login.OAuthEnrollmentScreen.setIsBrandedBuild", is_branded);
+}
+
void EnrollmentScreenHandler::ShowEnrollmentStatus(
policy::EnrollmentStatus status) {
switch (status.status()) {
@@ -631,6 +656,8 @@ void EnrollmentScreenHandler::DeclareLocalizedValues(
builder->Add("oauthEnrollSuccessTitle",
IDS_ENTERPRISE_ENROLLMENT_SUCCESS_TITLE);
builder->Add("oauthEnrollErrorTitle", IDS_ENTERPRISE_ENROLLMENT_ERROR_TITLE);
+ builder->Add("oauthOSNotInstalledError",
+ IDS_ENTERPRISE_ENROLLMENT_STATUS_CLOUD_READY_NOT_ALLOWED);
builder->Add("oauthEnrollDeviceInformation",
IDS_ENTERPRISE_ENROLLMENT_DEVICE_INFORMATION);
builder->Add("oauthEnrollExplainAttributeLink",
@@ -646,6 +673,11 @@ void EnrollmentScreenHandler::DeclareLocalizedValues(
builder->Add("oauthEnrollAbeSuccessDomain",
IDS_ENTERPRISE_ENROLLMENT_SUCCESS_DOMAIN);
+ // TPM checking spinner strings.
+ builder->Add("TPMCheckTitle", IDS_TPM_CHECK_TITLE);
+ builder->Add("TPMCheckSubtitle", IDS_TPM_CHECK_SUBTITLE);
+ builder->Add("cancelButton", IDS_CANCEL);
+
/* Active Directory strings */
builder->Add("oauthEnrollAdMachineNameInput", IDS_AD_DEVICE_NAME_INPUT_LABEL);
builder->Add("oauthEnrollAdDomainJoinWelcomeMessage",
@@ -670,6 +702,10 @@ void EnrollmentScreenHandler::DeclareLocalizedValues(
builder->Add("selectEncryption", IDS_AD_ENCRYPTION_SELECTION_SELECT);
builder->Add("selectConfiguration", IDS_AD_CONFIG_SELECTION_SELECT);
/* End of Active Directory strings */
+
+ // OS names
+ builder->Add("osInstallChromiumOS", IDS_CHROMIUM_OS_NAME);
+ builder->Add("osInstallCloudReadyOS", IDS_CLOUD_READY_OS_NAME);
}
void EnrollmentScreenHandler::GetAdditionalParameters(
@@ -888,6 +924,7 @@ void EnrollmentScreenHandler::ContinueAuthenticationWhenCookiesAvailable(
cookie_manager->GetCookieList(
GaiaUrls::GetInstance()->gaia_url(),
net::CookieOptions::MakeAllInclusive(),
+ net::CookiePartitionKeychain::Todo(),
base::BindOnce(&EnrollmentScreenHandler::OnGetCookiesForCompleteLogin,
weak_ptr_factory_.GetWeakPtr(), user));
}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h
index b3742ed33f2..b259ef67e80 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h
@@ -12,6 +12,10 @@
#include "base/macros.h"
#include "chrome/browser/ash/login/enrollment/enrollment_screen_view.h"
#include "chrome/browser/ash/login/enrollment/enterprise_enrollment_helper.h"
+// TODO(https://crbug.com/1164001): move to forward declaration.
+#include "chrome/browser/ash/login/error_screens_histogram_helper.h"
+// TODO(https://crbug.com/1164001): move to forward declaration.
+#include "chrome/browser/ash/login/help_app_launcher.h"
#include "chrome/browser/ash/login/screens/error_screen.h"
#include "chrome/browser/ash/policy/enrollment/enrollment_config.h"
#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
@@ -20,10 +24,7 @@
#include "net/cookies/canonical_cookie.h"
namespace chromeos {
-
class CookieWaiter;
-class ErrorScreensHistogramHelper;
-class HelpAppLauncher;
// Possible error states of the Active Directory screen. Must be in the same
// order as ACTIVE_DIRECTORY_ERROR_STATE enum values.
@@ -62,6 +63,10 @@ class EnrollmentScreenHandler
JSCallsContainer* js_calls_container,
const scoped_refptr<NetworkStateInformer>& network_state_informer,
ErrorScreen* error_screen);
+
+ EnrollmentScreenHandler(const EnrollmentScreenHandler&) = delete;
+ EnrollmentScreenHandler& operator=(const EnrollmentScreenHandler&) = delete;
+
~EnrollmentScreenHandler() override;
// Implements WebUIMessageHandler:
@@ -76,6 +81,8 @@ class EnrollmentScreenHandler
void SetFlowType(FlowType flow_type) override;
void Show() override;
void Hide() override;
+ void Bind(ash::EnrollmentScreen* screen) override;
+ void Unbind() override;
void ShowSigninScreen() override;
void ShowUserError(UserErrorType error_type,
const std::string& email) override;
@@ -87,12 +94,14 @@ class EnrollmentScreenHandler
void ShowAttributePromptScreen(const std::string& asset_id,
const std::string& location) override;
void ShowEnrollmentSuccessScreen() override;
- void ShowEnrollmentSpinnerScreen() override;
+ void ShowEnrollmentWorkingScreen() override;
+ void ShowEnrollmentTPMCheckingScreen() override;
void ShowAuthError(const GoogleServiceAuthError& error) override;
void ShowEnrollmentStatus(policy::EnrollmentStatus status) override;
void ShowOtherError(
EnterpriseEnrollmentHelper::OtherError error_code) override;
void Shutdown() override;
+ void SetIsBrandedBuild(bool is_branded) override;
// Implements BaseScreenHandler:
void Initialize() override;
@@ -197,6 +206,7 @@ class EnrollmentScreenHandler
scoped_refptr<NetworkStateInformer> network_state_informer_;
ErrorScreen* error_screen_ = nullptr;
+ ash::EnrollmentScreen* screen_ = nullptr;
std::string signin_partition_name_;
@@ -210,8 +220,6 @@ class EnrollmentScreenHandler
bool use_fake_login_for_testing_ = false;
base::WeakPtrFactory<EnrollmentScreenHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(EnrollmentScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/error_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/error_screen_handler.h
index bd51af74faa..07bbe1a41dc 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/error_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/error_screen_handler.h
@@ -72,6 +72,10 @@ class ErrorScreenHandler : public BaseScreenHandler, public ErrorScreenView {
using TView = ErrorScreenView;
explicit ErrorScreenHandler(JSCallsContainer* js_calls_container);
+
+ ErrorScreenHandler(const ErrorScreenHandler&) = delete;
+ ErrorScreenHandler& operator=(const ErrorScreenHandler&) = delete;
+
~ErrorScreenHandler() override;
private:
@@ -109,8 +113,6 @@ class ErrorScreenHandler : public BaseScreenHandler, public ErrorScreenView {
bool showing_ = false;
base::WeakPtrFactory<ErrorScreenHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ErrorScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/eula_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/eula_screen_handler.cc
index 0b3130e5a2d..82682d506f7 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/eula_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/eula_screen_handler.cc
@@ -71,12 +71,12 @@ std::string EulaScreenHandler::GetEulaOnlineUrl() {
switches::kOobeEulaUrlForTests);
}
- return base::StringPrintf(chrome::kOnlineEulaURLPath,
+ return base::StringPrintf(chrome::kGoogleEulaOnlineURLPath,
g_browser_process->GetApplicationLocale().c_str());
}
std::string EulaScreenHandler::GetAdditionalToSUrl() {
- return base::StringPrintf(chrome::kAdditionalToSOnlineURLPath,
+ return base::StringPrintf(chrome::kCrosEulaOnlineURLPath,
g_browser_process->GetApplicationLocale().c_str());
}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h
index 03db5be408f..8916e346116 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h
@@ -8,6 +8,8 @@
#include "base/compiler_specific.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
+// TODO(https://crbug.com/1164001): move to forward declaration.
+#include "chrome/browser/ash/login/help_app_launcher.h"
#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
#include "components/login/secure_module_util_chromeos.h"
@@ -20,7 +22,6 @@ class DictionaryValue;
}
namespace chromeos {
-class HelpAppLauncher;
// Interface between eula screen and its representation, either WebUI
// or Views one. Note, do not forget to call OnViewDestroyed in the
@@ -47,6 +48,10 @@ class EulaScreenHandler : public EulaView, public BaseScreenHandler {
using TView = EulaView;
explicit EulaScreenHandler(JSCallsContainer* js_calls_container);
+
+ EulaScreenHandler(const EulaScreenHandler&) = delete;
+ EulaScreenHandler& operator=(const EulaScreenHandler&) = delete;
+
~EulaScreenHandler() override;
// EulaView implementation:
@@ -80,8 +85,6 @@ class EulaScreenHandler : public EulaView, public BaseScreenHandler {
scoped_refptr<HelpAppLauncher> help_app_;
base::WeakPtrFactory<EulaScreenHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(EulaScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/fake_update_required_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/fake_update_required_screen_handler.h
index 974e098b79d..41b69192703 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/fake_update_required_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/fake_update_required_screen_handler.h
@@ -17,6 +17,12 @@ namespace chromeos {
class FakeUpdateRequiredScreenHandler : public UpdateRequiredView {
public:
FakeUpdateRequiredScreenHandler() = default;
+
+ FakeUpdateRequiredScreenHandler(const FakeUpdateRequiredScreenHandler&) =
+ delete;
+ FakeUpdateRequiredScreenHandler& operator=(
+ const FakeUpdateRequiredScreenHandler&) = delete;
+
~FakeUpdateRequiredScreenHandler() override {}
UpdateRequiredView::UIState ui_state() { return ui_state_; }
@@ -40,8 +46,6 @@ class FakeUpdateRequiredScreenHandler : public UpdateRequiredView {
void SetIsUserDataPresent(bool data_present) override {}
UpdateRequiredView::UIState ui_state_;
-
- DISALLOW_COPY_AND_ASSIGN(FakeUpdateRequiredScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/fingerprint_setup_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/fingerprint_setup_screen_handler.h
index bf63fb14326..fe45e3f2713 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/fingerprint_setup_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/fingerprint_setup_screen_handler.h
@@ -48,6 +48,11 @@ class FingerprintSetupScreenHandler : public BaseScreenHandler,
using TView = FingerprintSetupScreenView;
explicit FingerprintSetupScreenHandler(JSCallsContainer* js_calls_container);
+
+ FingerprintSetupScreenHandler(const FingerprintSetupScreenHandler&) = delete;
+ FingerprintSetupScreenHandler& operator=(
+ const FingerprintSetupScreenHandler&) = delete;
+
~FingerprintSetupScreenHandler() override;
// BaseScreenHandler:
@@ -69,8 +74,6 @@ class FingerprintSetupScreenHandler : public BaseScreenHandler,
private:
ash::FingerprintSetupScreen* screen_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(FingerprintSetupScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
index e5d1344e2a5..a25490f0dab 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
@@ -225,15 +225,14 @@ std::string GetChromeType() {
}
}
-void UpdateAuthParams(base::DictionaryValue* params,
- bool is_restrictive_proxy) {
+void UpdateAuthParams(base::Value* params, bool is_restrictive_proxy) {
CrosSettings* cros_settings = CrosSettings::Get();
bool allow_new_user = true;
cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user);
// nosignup flow if new users are not allowed.
if (!allow_new_user || is_restrictive_proxy)
- params->SetString("flow", "nosignup");
+ params->SetStringKey("flow", "nosignup");
}
bool ShouldCheckUserTypeBeforeAllowing() {
@@ -403,25 +402,25 @@ void GaiaScreenHandler::LoadGaiaWithPartitionAndVersionAndConsent(
const std::string& partition_name,
const std::string* platform_version,
const bool* collect_stats_consent) {
- base::DictionaryValue params;
+ base::Value params(base::Value::Type::DICTIONARY);
- params.SetBoolean("forceReload", context.force_reload);
- params.SetString("gaiaId", context.gaia_id);
- params.SetBoolean("readOnlyEmail", true);
- params.SetString("email", context.email);
+ params.SetBoolKey("forceReload", context.force_reload);
+ params.SetStringKey("gaiaId", context.gaia_id);
+ params.SetBoolKey("readOnlyEmail", true);
+ params.SetStringKey("email", context.email);
UpdateAuthParams(&params, IsRestrictiveProxy());
screen_mode_ = GetGaiaScreenMode(context.email);
- params.SetInteger("screenMode", screen_mode_);
+ params.SetIntKey("screenMode", screen_mode_);
const std::string app_locale = g_browser_process->GetApplicationLocale();
if (!app_locale.empty())
- params.SetString("hl", app_locale);
+ params.SetStringKey("hl", app_locale);
std::string realm(GetRealm());
if (!realm.empty()) {
- params.SetString("realm", realm);
+ params.SetStringKey("realm", realm);
}
const std::string enterprise_display_domain(GetEnterpriseDisplayDomain());
@@ -431,24 +430,24 @@ void GaiaScreenHandler::LoadGaiaWithPartitionAndVersionAndConsent(
const std::string sso_profile(GetSSOProfile());
if (!enterprise_display_domain.empty())
- params.SetString("enterpriseDisplayDomain", enterprise_display_domain);
+ params.SetStringKey("enterpriseDisplayDomain", enterprise_display_domain);
if (!enterprise_enrollment_domain.empty()) {
- params.SetString("enterpriseEnrollmentDomain",
- enterprise_enrollment_domain);
+ params.SetStringKey("enterpriseEnrollmentDomain",
+ enterprise_enrollment_domain);
}
if (!sso_profile.empty()) {
- params.SetString("ssoProfile", sso_profile);
+ params.SetStringKey("ssoProfile", sso_profile);
}
if (!enterprise_domain_manager.empty()) {
- params.SetString("enterpriseDomainManager", enterprise_domain_manager);
+ params.SetStringKey("enterpriseDomainManager", enterprise_domain_manager);
}
- params.SetBoolean("enterpriseManagedDevice",
+ params.SetBoolKey("enterpriseManagedDevice",
g_browser_process->platform_part()
->browser_policy_connector_ash()
->IsDeviceEnterpriseManaged());
const AccountId& owner_account_id =
user_manager::UserManager::Get()->GetOwnerAccountId();
- params.SetBoolean("hasDeviceOwner", owner_account_id.is_valid());
+ params.SetBoolKey("hasDeviceOwner", owner_account_id.is_valid());
if (owner_account_id.is_valid() &&
!::features::IsParentAccessCodeForOnlineLoginEnabled()) {
// Some Autotest policy tests appear to wipe the user list in Local State
@@ -457,50 +456,50 @@ void GaiaScreenHandler::LoadGaiaWithPartitionAndVersionAndConsent(
user_manager::UserManager::Get()->FindUser(owner_account_id);
if (owner_user &&
owner_user->GetType() == user_manager::UserType::USER_TYPE_CHILD) {
- params.SetString("obfuscatedOwnerId", owner_account_id.GetGaiaId());
+ params.SetStringKey("obfuscatedOwnerId", owner_account_id.GetGaiaId());
}
}
- params.SetString("chromeType", GetChromeType());
- params.SetString("clientId",
- GaiaUrls::GetInstance()->oauth2_chrome_client_id());
- params.SetString("clientVersion", version_info::GetVersionNumber());
+ params.SetStringKey("chromeType", GetChromeType());
+ params.SetStringKey("clientId",
+ GaiaUrls::GetInstance()->oauth2_chrome_client_id());
+ params.SetStringKey("clientVersion", version_info::GetVersionNumber());
if (!platform_version->empty())
- params.SetString("platformVersion", *platform_version);
+ params.SetStringKey("platformVersion", *platform_version);
// Extended stable channel is not supported on Chrome OS Ash.
- params.SetString("releaseChannel",
- chrome::GetChannelName(chrome::WithExtendedStable(false)));
- params.SetString("endpointGen", kEndpointGen);
+ params.SetStringKey("releaseChannel", chrome::GetChannelName(
+ chrome::WithExtendedStable(false)));
+ params.SetStringKey("endpointGen", kEndpointGen);
std::string email_domain;
if (CrosSettings::Get()->GetString(kAccountsPrefLoginScreenDomainAutoComplete,
&email_domain) &&
!email_domain.empty()) {
- params.SetString("emailDomain", email_domain);
+ params.SetStringKey("emailDomain", email_domain);
}
- params.SetString("gaiaUrl", GaiaUrls::GetInstance()->gaia_url().spec());
+ params.SetStringKey("gaiaUrl", GaiaUrls::GetInstance()->gaia_url().spec());
switch (gaia_path_) {
case GaiaPath::kDefault:
// Use the default gaia signin path embedded/setup/v2/chromeos which is
// set in authenticator.js
break;
case GaiaPath::kChildSignup:
- params.SetString("gaiaPath",
- GaiaUrls::GetInstance()
- ->embedded_setup_chromeos_kid_signup_url()
- .path()
- .substr(1));
+ params.SetStringKey("gaiaPath",
+ GaiaUrls::GetInstance()
+ ->embedded_setup_chromeos_kid_signup_url()
+ .path()
+ .substr(1));
break;
case GaiaPath::kChildSignin:
- params.SetString("gaiaPath",
- GaiaUrls::GetInstance()
- ->embedded_setup_chromeos_kid_signin_url()
- .path()
- .substr(1));
+ params.SetStringKey("gaiaPath",
+ GaiaUrls::GetInstance()
+ ->embedded_setup_chromeos_kid_signin_url()
+ .path()
+ .substr(1));
break;
case GaiaPath::kReauth:
- params.SetString(
+ params.SetStringKey(
"gaiaPath",
GaiaUrls::GetInstance()->embedded_reauth_chromeos_url().path().substr(
1));
@@ -510,26 +509,27 @@ void GaiaScreenHandler::LoadGaiaWithPartitionAndVersionAndConsent(
// We only send `chromeos_board` Gaia URL parameter if user has opted into
// sending device statistics.
if (*collect_stats_consent)
- params.SetString("lsbReleaseBoard", base::SysInfo::GetLsbReleaseBoard());
+ params.SetStringKey("lsbReleaseBoard", base::SysInfo::GetLsbReleaseBoard());
- params.SetString("webviewPartitionName", partition_name);
+ params.SetStringKey("webviewPartitionName", partition_name);
signin_partition_name_ = partition_name;
- params.SetBoolean("extractSamlPasswordAttributes",
+ params.SetBoolKey("extractSamlPasswordAttributes",
login::ExtractSamlPasswordAttributesEnabled());
- params.SetBoolean("enableCloseView",
+ params.SetBoolKey("enableCloseView",
ash::features::IsGaiaCloseViewMessageEnabled());
if (public_saml_url_fetcher_) {
- params.SetBoolean("startsOnSamlPage", true);
+ params.SetBoolKey("startsOnSamlPage", true);
DCHECK(base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kPublicAccountsSamlAclUrl));
std::string saml_acl_url =
base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
switches::kPublicAccountsSamlAclUrl);
- params.SetString("samlAclUrl", saml_acl_url);
+ params.SetStringKey("samlAclUrl", saml_acl_url);
if (public_saml_url_fetcher_->FetchSucceeded()) {
- params.SetString("frameUrl", public_saml_url_fetcher_->GetRedirectUrl());
+ params.SetStringKey("frameUrl",
+ public_saml_url_fetcher_->GetRedirectUrl());
} else {
LoginDisplayHost::default_host()->GetSigninUI()->ShowSigninError(
SigninError::kFailedToFetchSamlRedirect, /*details=*/std::string());
@@ -548,13 +548,20 @@ void GaiaScreenHandler::LoadGaiaWithPartitionAndVersionAndConsent(
// Enable the new endpoint for supervised account for now. We might expand
// it to other account type in the future.
if (is_child_account) {
- params.SetBoolean("isSupervisedUser", is_child_account);
- params.SetBoolean(
+ params.SetBoolKey("isSupervisedUser", is_child_account);
+ params.SetBoolKey(
"isDeviceOwner",
account_id == user_manager::UserManager::Get()->GetOwnerAccountId());
}
}
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kGaiaReauthRequestToken)) {
+ params.SetStringKey(
+ "rart", base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+ switches::kGaiaReauthRequestToken));
+ }
+
was_security_token_pin_canceled_ = false;
frame_state_ = FRAME_STATE_LOADING;
@@ -919,8 +926,9 @@ void GaiaScreenHandler::HandleShowAddUser(const base::ListValue* args) {
std::string email;
// `args` can be null if it's OOBE.
- if (args)
- args->GetString(0, &email);
+ if (args && !args->GetList().empty() && args->GetList()[0].is_string()) {
+ email = args->GetList()[0].GetString();
+ }
populated_account_id_ = AccountId::FromUserEmail(email);
OnShowAddUser();
}
@@ -1001,8 +1009,9 @@ void GaiaScreenHandler::HandleUserRemoved(const std::string& email) {
LoginDisplayHost::default_host()->StartWizard(ResetView::kScreenId);
} else {
// Removes the account on the device.
- user_manager::UserManager::Get()->RemoveUser(account_id,
- nullptr /*delegate*/);
+ user_manager::UserManager::Get()->RemoveUser(
+ account_id, user_manager::UserRemovalReason::GAIA_REMOVED,
+ nullptr /*delegate*/);
}
}
@@ -1198,8 +1207,7 @@ void GaiaScreenHandler::ShowSigninScreenForTest(const std::string& username,
test_expects_complete_login_ = true;
LoginDisplayHost::default_host()
- ->GetWizardController()
- ->get_wizard_context_for_testing() // IN-TEST
+ ->GetWizardContextForTesting() // IN-TEST
->skip_to_login_for_tests = true;
// Submit login form for test if gaia is ready. If gaia is loading, login
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h
index 2a95172a884..36a26fac9e2 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h
@@ -66,6 +66,10 @@ class GaiaView {
constexpr static StaticOobeScreenId kScreenId{"gaia-signin"};
GaiaView() = default;
+
+ GaiaView(const GaiaView&) = delete;
+ GaiaView& operator=(const GaiaView&) = delete;
+
virtual ~GaiaView() = default;
virtual void DisableRestrictiveProxyCheckForTest() = 0;
@@ -92,9 +96,6 @@ class GaiaView {
virtual void ShowSigninScreenForTest(const std::string& username,
const std::string& password,
const std::string& services) = 0;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(GaiaView);
};
// A class that handles WebUI hooks in Gaia screen.
@@ -125,6 +126,10 @@ class GaiaScreenHandler : public BaseScreenHandler,
JSCallsContainer* js_calls_container,
CoreOobeView* core_oobe_view,
const scoped_refptr<NetworkStateInformer>& network_state_informer);
+
+ GaiaScreenHandler(const GaiaScreenHandler&) = delete;
+ GaiaScreenHandler& operator=(const GaiaScreenHandler&) = delete;
+
~GaiaScreenHandler() override;
// GaiaView:
@@ -432,8 +437,6 @@ class GaiaScreenHandler : public BaseScreenHandler,
std::unique_ptr<UserContext> pending_user_context_;
base::WeakPtrFactory<GaiaScreenHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(GaiaScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/guest_tos_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/guest_tos_screen_handler.cc
new file mode 100644
index 00000000000..78fc88de3a8
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/guest_tos_screen_handler.cc
@@ -0,0 +1,71 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/chromeos/login/guest_tos_screen_handler.h"
+
+#include "chrome/browser/ash/login/oobe_screen.h"
+#include "chrome/browser/ash/login/screens/guest_tos_screen.h"
+#include "chrome/grit/generated_resources.h"
+#include "components/login/localized_values_builder.h"
+
+namespace chromeos {
+
+constexpr StaticOobeScreenId GuestTosScreenView::kScreenId;
+
+GuestTosScreenHandler::GuestTosScreenHandler(
+ JSCallsContainer* js_calls_container)
+ : BaseScreenHandler(kScreenId, js_calls_container) {
+ set_user_acted_method_path("login.GuestTosScreen.userActed");
+}
+
+GuestTosScreenHandler::~GuestTosScreenHandler() {
+ if (screen_)
+ screen_->OnViewDestroyed(this);
+}
+
+void GuestTosScreenHandler::DeclareLocalizedValues(
+ ::login::LocalizedValuesBuilder* builder) {
+ builder->Add("guestTosTitle", IDS_GUEST_TOS_TITLE);
+ builder->Add("guestTosTermsTitle", IDS_GUEST_TOS_TERMS_TITLE);
+ builder->Add("guestTosTerms", IDS_GUEST_TOS_TERMS);
+ builder->Add("guestTosAccept", IDS_GUEST_TOS_ACCEPT);
+ builder->Add("guestTosGoogleEulaTitle", IDS_GUEST_TOS_GOOGLE_EULA_TITLE);
+ builder->Add("guestTosCrosEulaTitle", IDS_GUEST_TOS_CROS_EULA_TITLE);
+ builder->Add("guestTosOk", IDS_GUEST_TOS_OK);
+ builder->Add("guestTosLoading", IDS_GUEST_TOS_LOADING);
+}
+
+void GuestTosScreenHandler::Initialize() {
+ if (show_on_init_) {
+ Show(google_eula_url_, cros_eula_url_);
+ show_on_init_ = false;
+ }
+}
+
+void GuestTosScreenHandler::Show(const std::string& google_eula_url,
+ const std::string& cros_eula_url) {
+ google_eula_url_ = google_eula_url;
+ cros_eula_url_ = cros_eula_url;
+ if (!page_is_ready()) {
+ show_on_init_ = true;
+ return;
+ }
+
+ base::DictionaryValue data;
+ data.SetString("googleEulaUrl", google_eula_url);
+ data.SetString("crosEulaUrl", cros_eula_url);
+ ShowScreenWithData(kScreenId, &data);
+}
+
+void GuestTosScreenHandler::Bind(GuestTosScreen* screen) {
+ screen_ = screen;
+ BaseScreenHandler::SetBaseScreen(screen_);
+}
+
+void GuestTosScreenHandler::Unbind() {
+ screen_ = nullptr;
+ BaseScreenHandler::SetBaseScreen(nullptr);
+}
+
+} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/guest_tos_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/guest_tos_screen_handler.h
new file mode 100644
index 00000000000..e9ae7db2e1f
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/guest_tos_screen_handler.h
@@ -0,0 +1,67 @@
+// Copyright 2021 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.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_GUEST_TOS_SCREEN_HANDLER_H_
+#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_GUEST_TOS_SCREEN_HANDLER_H_
+
+#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
+
+namespace ash {
+class GuestTosScreen;
+}
+
+namespace chromeos {
+
+// Interface for dependency injection between GuestTosScreen and its
+// WebUI representation.
+class GuestTosScreenView {
+ public:
+ constexpr static StaticOobeScreenId kScreenId{"guest-tos"};
+
+ virtual ~GuestTosScreenView() = default;
+
+ virtual void Show(const std::string& google_eula_url,
+ const std::string& cros_eula_url) = 0;
+ virtual void Bind(ash::GuestTosScreen* screen) = 0;
+ virtual void Unbind() = 0;
+};
+
+class GuestTosScreenHandler : public GuestTosScreenView,
+ public BaseScreenHandler {
+ public:
+ using TView = GuestTosScreenView;
+
+ explicit GuestTosScreenHandler(JSCallsContainer* js_calls_container);
+ ~GuestTosScreenHandler() override;
+ GuestTosScreenHandler(const GuestTosScreenHandler&) = delete;
+ GuestTosScreenHandler& operator=(const GuestTosScreenHandler&) = delete;
+
+ private:
+ // GuestTosScreenView
+ void Show(const std::string& google_eula_url,
+ const std::string& cros_eula_url) override;
+ void Bind(ash::GuestTosScreen* screen) override;
+ void Unbind() override;
+
+ // BaseScreenHandler:
+ void DeclareLocalizedValues(
+ ::login::LocalizedValuesBuilder* builder) override;
+ void Initialize() override;
+
+ ash::GuestTosScreen* screen_ = nullptr;
+ bool show_on_init_ = false;
+ std::string google_eula_url_;
+ std::string cros_eula_url_;
+};
+
+} // namespace chromeos
+
+// TODO(https://crbug.com/1164001): remove after the //chrome/browser/chromeos
+// source migration is finished.
+namespace ash {
+using ::chromeos::GuestTosScreenHandler;
+using ::chromeos::GuestTosScreenView;
+} // namespace ash
+
+#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_GUEST_TOS_SCREEN_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/hid_detection_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/hid_detection_screen_handler.h
index 394f70bddcf..83324ab8d12 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/hid_detection_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/hid_detection_screen_handler.h
@@ -50,6 +50,11 @@ class HIDDetectionScreenHandler
using TView = HIDDetectionView;
explicit HIDDetectionScreenHandler(JSCallsContainer* js_calls_container);
+
+ HIDDetectionScreenHandler(const HIDDetectionScreenHandler&) = delete;
+ HIDDetectionScreenHandler& operator=(const HIDDetectionScreenHandler&) =
+ delete;
+
~HIDDetectionScreenHandler() override;
// HIDDetectionView implementation:
@@ -116,8 +121,6 @@ class HIDDetectionScreenHandler
// If true, Initialize() will call Show().
bool show_on_init_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(HIDDetectionScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/js_calls_container_test_api.h b/chromium/chrome/browser/ui/webui/chromeos/login/js_calls_container_test_api.h
index 6c2af03f441..16e20a6aa3e 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/js_calls_container_test_api.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/js_calls_container_test_api.h
@@ -20,6 +20,10 @@ class JSCallsContainer;
class JSCallsContainerTestApi {
public:
explicit JSCallsContainerTestApi(JSCallsContainer* js_calls_container);
+
+ JSCallsContainerTestApi(const JSCallsContainerTestApi&) = delete;
+ JSCallsContainerTestApi& operator=(const JSCallsContainerTestApi&) = delete;
+
~JSCallsContainerTestApi();
// `function` has arguments serialized to make matching easier. For example, a
@@ -35,7 +39,6 @@ class JSCallsContainerTestApi {
private:
JSCallsContainer* const js_calls_container_;
- DISALLOW_COPY_AND_ASSIGN(JSCallsContainerTestApi);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/kiosk_autolaunch_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/kiosk_autolaunch_screen_handler.h
index b8d6d566571..e17b9182e60 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/kiosk_autolaunch_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/kiosk_autolaunch_screen_handler.h
@@ -36,6 +36,11 @@ class KioskAutolaunchScreenHandler : public KioskAutolaunchScreenView,
using TView = KioskAutolaunchScreenView;
explicit KioskAutolaunchScreenHandler(JSCallsContainer* js_calls_container);
+
+ KioskAutolaunchScreenHandler(const KioskAutolaunchScreenHandler&) = delete;
+ KioskAutolaunchScreenHandler& operator=(const KioskAutolaunchScreenHandler&) =
+ delete;
+
~KioskAutolaunchScreenHandler() override;
// KioskAutolaunchScreenView:
@@ -68,8 +73,6 @@ class KioskAutolaunchScreenHandler : public KioskAutolaunchScreenView,
// Keeps whether screen should be shown right after initialization.
bool show_on_init_ = false;
bool is_visible_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(KioskAutolaunchScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/kiosk_enable_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/kiosk_enable_screen_handler.h
index 98429520566..e5db9232db5 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/kiosk_enable_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/kiosk_enable_screen_handler.h
@@ -37,6 +37,10 @@ class KioskEnableScreenHandler : public KioskEnableScreenView,
using TView = KioskEnableScreenView;
explicit KioskEnableScreenHandler(JSCallsContainer* js_calls_container);
+
+ KioskEnableScreenHandler(const KioskEnableScreenHandler&) = delete;
+ KioskEnableScreenHandler& operator=(const KioskEnableScreenHandler&) = delete;
+
~KioskEnableScreenHandler() override;
// KioskEnableScreenView:
@@ -54,8 +58,6 @@ class KioskEnableScreenHandler : public KioskEnableScreenView,
// Keeps whether screen should be shown right after initialization.
bool show_on_init_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(KioskEnableScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util.cc b/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util.cc
index d55599158f5..49b6ab6b2fc 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util.cc
@@ -35,10 +35,10 @@
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/grit/generated_resources.h"
#include "content/public/browser/browser_thread.h"
-#include "ui/base/ime/chromeos/component_extension_ime_manager.h"
-#include "ui/base/ime/chromeos/input_method_descriptor.h"
-#include "ui/base/ime/chromeos/input_method_manager.h"
-#include "ui/base/ime/chromeos/input_method_util.h"
+#include "ui/base/ime/ash/component_extension_ime_manager.h"
+#include "ui/base/ime/ash/input_method_descriptor.h"
+#include "ui/base/ime/ash/input_method_manager.h"
+#include "ui/base/ime/ash/input_method_util.h"
#include "ui/base/l10n/l10n_util.h"
namespace chromeos {
@@ -393,7 +393,7 @@ void ResolveLanguageListInThreadPool(
void AdjustUILanguageList(const std::string& selected,
base::ListValue* languages_list) {
- for (size_t i = 0; i < languages_list->GetSize(); ++i) {
+ for (size_t i = 0; i < languages_list->GetList().size(); ++i) {
base::DictionaryValue* language_info = NULL;
if (!languages_list->GetDictionary(i, &language_info))
NOTREACHED();
@@ -465,7 +465,7 @@ std::unique_ptr<base::ListValue> GetUILanguageList(
input_method::InputMethodDescriptors descriptors =
manager->GetXkbIMEAsInputMethodDescriptor();
std::unique_ptr<base::ListValue> languages_list(GetLanguageList(
- descriptors, l10n_util::GetLocalesWithStrings(),
+ descriptors, l10n_util::GetUserFacingUILocaleList(),
most_relevant_language_codes
? *most_relevant_language_codes
: StartupCustomizationDocument::GetInstance()->configured_locales(),
@@ -497,9 +497,9 @@ std::string FindMostRelevantLocale(
return fallback_locale;
}
-base::ListValue GetAndActivateLoginKeyboardLayouts(const std::string& locale,
- const std::string& selected,
- bool activate_keyboards) {
+base::ListValue GetAndActivateLoginKeyboardLayouts(
+ const std::string& locale,
+ const std::string& selected) {
base::ListValue input_methods_list;
input_method::InputMethodManager* manager =
input_method::InputMethodManager::Get();
@@ -508,15 +508,13 @@ base::ListValue GetAndActivateLoginKeyboardLayouts(const std::string& locale,
const std::vector<std::string>& hardware_login_input_methods =
util->GetHardwareLoginInputMethodIds();
- if (activate_keyboards) {
- DCHECK(
- ProfileHelper::IsSigninProfile(ProfileManager::GetActiveUserProfile()));
- manager->GetActiveIMEState()->EnableLoginLayouts(
- locale, hardware_login_input_methods);
- }
+ DCHECK(
+ ProfileHelper::IsSigninProfile(ProfileManager::GetActiveUserProfile()));
+ manager->GetActiveIMEState()->EnableLoginLayouts(
+ locale, hardware_login_input_methods);
std::unique_ptr<input_method::InputMethodDescriptors> input_methods(
- manager->GetActiveIMEState()->GetActiveInputMethods());
+ manager->GetActiveIMEState()->GetEnabledInputMethods());
std::set<std::string> input_methods_added;
for (std::vector<std::string>::const_iterator i =
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util.h b/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util.h
index 0cd95d304ba..e7c616c8d41 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util.h
@@ -71,12 +71,10 @@ std::string FindMostRelevantLocale(
// will also always contain the US keyboard layout. If `selected` matches the ID
// of any entry in the resulting list, that entry will be marked as selected.
// In addition to returning the list of keyboard layouts, this function also
-// activates them if `activate_keyboards` is true, so that they can be selected
-// by the user (e.g. by cycling through keyboard layouts via keyboard
-// shortcuts).
+// activates them, so that they can be selected by the user (e.g. by cycling
+// through keyboard layouts via keyboard shortcuts).
base::ListValue GetAndActivateLoginKeyboardLayouts(const std::string& locale,
- const std::string& selected,
- bool activate_keyboards);
+ const std::string& selected);
// Invokes `callback` with a list of keyboard layouts that can be used for
// `locale`. Each list entry is a dictionary that contains data such as an ID
@@ -95,6 +93,7 @@ void GetKeyboardLayoutsForLocale(GetKeyboardLayoutsForLocaleCallback callback,
// to ash.
namespace ash {
using ::chromeos::FindMostRelevantLocale;
+using ::chromeos::GetKeyboardLayoutsForLocale;
using ::chromeos::GetUILanguageList;
using ::chromeos::kMostRelevantLanguagesDivider;
using ::chromeos::ResolveUILanguageList;
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util_test_util.h b/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util_test_util.h
index 753576bd975..40aabc6a498 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util_test_util.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util_test_util.h
@@ -11,7 +11,7 @@
#include "base/compiler_specific.h"
#include "base/macros.h"
#include "chrome/browser/ash/input_method/mock_input_method_manager_impl.h"
-#include "ui/base/ime/chromeos/input_method_descriptor.h"
+#include "ui/base/ime/ash/input_method_descriptor.h"
namespace chromeos {
@@ -19,6 +19,12 @@ class MockInputMethodManagerWithInputMethods
: public input_method::MockInputMethodManagerImpl {
public:
MockInputMethodManagerWithInputMethods();
+
+ MockInputMethodManagerWithInputMethods(
+ const MockInputMethodManagerWithInputMethods&) = delete;
+ MockInputMethodManagerWithInputMethods& operator=(
+ const MockInputMethodManagerWithInputMethods&) = delete;
+
~MockInputMethodManagerWithInputMethods() override;
void AddInputMethod(const std::string& id,
@@ -27,8 +33,6 @@ class MockInputMethodManagerWithInputMethods
private:
input_method::InputMethodDescriptors descriptors_;
-
- DISALLOW_COPY_AND_ASSIGN(MockInputMethodManagerWithInputMethods);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util_unittest.cc b/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util_unittest.cc
index 9b4142f6c18..136a6f1d544 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/l10n_util_unittest.cc
@@ -18,15 +18,15 @@
#include "chrome/browser/ui/webui/chromeos/login/l10n_util_test_util.h"
#include "chromeos/system/fake_statistics_provider.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/base/ime/chromeos/component_extension_ime_manager.h"
-#include "ui/base/ime/chromeos/mock_component_extension_ime_manager_delegate.h"
+#include "ui/base/ime/ash/component_extension_ime_manager.h"
+#include "ui/base/ime/ash/mock_component_extension_ime_manager_delegate.h"
namespace chromeos {
namespace {
void VerifyOnlyUILanguages(const base::ListValue& list) {
- for (size_t i = 0; i < list.GetSize(); ++i) {
+ for (size_t i = 0; i < list.GetList().size(); ++i) {
const base::DictionaryValue* dict;
ASSERT_TRUE(list.GetDictionary(i, &dict));
std::string code;
@@ -53,6 +53,10 @@ void VerifyLanguageCode(const base::ListValue& list,
class L10nUtilTest : public testing::Test {
public:
L10nUtilTest();
+
+ L10nUtilTest(const L10nUtilTest&) = delete;
+ L10nUtilTest& operator=(const L10nUtilTest&) = delete;
+
~L10nUtilTest() override;
void SetInputMethods1();
@@ -62,8 +66,6 @@ class L10nUtilTest : public testing::Test {
base::test::TaskEnvironment task_environment_;
system::ScopedFakeStatisticsProvider scoped_fake_statistics_provider_;
MockInputMethodManagerWithInputMethods* input_manager_;
-
- DISALLOW_COPY_AND_ASSIGN(L10nUtilTest);
};
L10nUtilTest::L10nUtilTest()
@@ -170,7 +172,7 @@ TEST_F(L10nUtilTest, GetUILanguageListMulti) {
VerifyOnlyUILanguages(*list);
// (4 languages (except Irish) + divider) = 5 + all other languages
- ASSERT_LE(5u, list->GetSize());
+ ASSERT_LE(5u, list->GetList().size());
VerifyLanguageCode(*list, 0, "fr");
VerifyLanguageCode(*list, 1, "en-US");
@@ -191,7 +193,7 @@ TEST_F(L10nUtilTest, GetUILanguageListWithMostRelevant) {
VerifyOnlyUILanguages(*list);
- ASSERT_LE(3u, list->GetSize());
+ ASSERT_LE(3u, list->GetList().size());
VerifyLanguageCode(*list, 0, "it");
VerifyLanguageCode(*list, 1, "de");
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.cc
index 0c1ba028de2..84801a80918 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.cc
@@ -23,11 +23,17 @@
namespace {
-constexpr base::TimeDelta kWaitingTimeout = base::TimeDelta::FromMinutes(2);
+constexpr base::TimeDelta kWaitingTimeout = base::Minutes(2);
} // namespace
namespace chromeos {
+namespace {
+
+// Management transition screen step names.
+const char kManagementTransitionStepError[] = "error";
+
+} // namespace
constexpr StaticOobeScreenId ManagementTransitionScreenView::kScreenId;
@@ -133,6 +139,10 @@ void ManagementTransitionScreenHandler::Initialize() {
show_on_init_ = false;
}
+void ManagementTransitionScreenHandler::ShowStep(const char* step) {
+ CallJS("login.ManagementTransitionScreen.showStep", std::string(step));
+}
+
void ManagementTransitionScreenHandler::OnManagementTransitionFailed() {
LOG(ERROR) << "Management transition failed; resetting ARC++ data.";
// Prevent ARC++ data removal below from triggering the success flow (since it
@@ -141,10 +151,7 @@ void ManagementTransitionScreenHandler::OnManagementTransitionFailed() {
timed_out_ = true;
arc::ArcSessionManager::Get()->RequestArcDataRemoval();
arc::ArcSessionManager::Get()->StopAndEnableArc();
- if (screen_) {
- AllowJavascript();
- FireWebUIListener("management-transition-failed");
- }
+ ShowStep(kManagementTransitionStepError);
}
void ManagementTransitionScreenHandler::OnManagementTransitionFinished() {
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.h
index d649e425f4a..60a51635688 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/management_transition_screen_handler.h
@@ -25,6 +25,11 @@ class ManagementTransitionScreenView {
// Renamed from "supervision-transition".
constexpr static StaticOobeScreenId kScreenId{"management-transition"};
+ ManagementTransitionScreenView(const ManagementTransitionScreenView&) =
+ delete;
+ ManagementTransitionScreenView& operator=(
+ const ManagementTransitionScreenView&) = delete;
+
virtual ~ManagementTransitionScreenView() {}
virtual void Bind(ash::ManagementTransitionScreen* screen) = 0;
@@ -34,9 +39,6 @@ class ManagementTransitionScreenView {
protected:
ManagementTransitionScreenView() = default;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ManagementTransitionScreenView);
};
class ManagementTransitionScreenHandler
@@ -47,6 +49,12 @@ class ManagementTransitionScreenHandler
explicit ManagementTransitionScreenHandler(
JSCallsContainer* js_calls_container);
+
+ ManagementTransitionScreenHandler(const ManagementTransitionScreenHandler&) =
+ delete;
+ ManagementTransitionScreenHandler& operator=(
+ const ManagementTransitionScreenHandler&) = delete;
+
~ManagementTransitionScreenHandler() override;
// BaseScreenHandler:
@@ -66,6 +74,9 @@ class ManagementTransitionScreenHandler
// BaseScreenHandler:
void Initialize() override;
+ // Shows a given step.
+ void ShowStep(const char* step);
+
// Called when the max wait timeout is reached.
void OnManagementTransitionFailed();
@@ -89,8 +100,6 @@ class ManagementTransitionScreenHandler
PrefChangeRegistrar registrar_;
base::WeakPtrFactory<ManagementTransitionScreenHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ManagementTransitionScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.cc
index c3ee366c0d0..baa22ff1d07 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.cc
@@ -131,7 +131,7 @@ void MarketingOptInScreenHandler::HandleSetA11yNavigationButtonsEnabled(
ash::prefs::kAccessibilityTabletModeShelfNavigationButtonsEnabled,
enabled);
a11y_nav_buttons_toggle_metrics_reporter_timer_.Start(
- FROM_HERE, base::TimeDelta::FromSeconds(10),
+ FROM_HERE, base::Seconds(10),
base::BindOnce(&RecordShowShelfNavigationButtonsValueChange, enabled));
}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.h
index 75d3ae52439..51793456060 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/marketing_opt_in_screen_handler.h
@@ -50,6 +50,11 @@ class MarketingOptInScreenHandler : public BaseScreenHandler,
using TView = MarketingOptInScreenView;
explicit MarketingOptInScreenHandler(JSCallsContainer* js_calls_container);
+
+ MarketingOptInScreenHandler(const MarketingOptInScreenHandler&) = delete;
+ MarketingOptInScreenHandler& operator=(const MarketingOptInScreenHandler&) =
+ delete;
+
~MarketingOptInScreenHandler() override;
// BaseScreenHandler:
@@ -82,8 +87,6 @@ class MarketingOptInScreenHandler : public BaseScreenHandler,
// second delay to avoid overreporting when the user keeps toggling the
// setting value in the screen UI.
base::OneShotTimer a11y_nav_buttons_toggle_metrics_reporter_timer_;
-
- DISALLOW_COPY_AND_ASSIGN(MarketingOptInScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/multidevice_setup_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/multidevice_setup_screen_handler.h
index 7a55143bf02..cad2139677f 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/multidevice_setup_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/multidevice_setup_screen_handler.h
@@ -34,6 +34,11 @@ class MultiDeviceSetupScreenHandler : public BaseScreenHandler,
using TView = MultiDeviceSetupScreenView;
explicit MultiDeviceSetupScreenHandler(JSCallsContainer* js_calls_container);
+
+ MultiDeviceSetupScreenHandler(const MultiDeviceSetupScreenHandler&) = delete;
+ MultiDeviceSetupScreenHandler& operator=(
+ const MultiDeviceSetupScreenHandler&) = delete;
+
~MultiDeviceSetupScreenHandler() override;
// BaseScreenHandler:
@@ -49,8 +54,6 @@ class MultiDeviceSetupScreenHandler : public BaseScreenHandler,
private:
// BaseScreenHandler:
void Initialize() override;
-
- DISALLOW_COPY_AND_ASSIGN(MultiDeviceSetupScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.cc
index 02e0d967aed..08006408533 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.cc
@@ -68,9 +68,9 @@ void NetworkDropdownHandler::HandleLaunchAddWiFiNetworkDialog() {
void NetworkDropdownHandler::HandleShowNetworkDetails(
const base::ListValue* args) {
- std::string type, guid;
- args->GetString(0, &type);
- args->GetString(1, &guid);
+ DCHECK_GE(args->GetList().size(), 2U);
+ std::string type = args->GetList()[0].GetString();
+ std::string guid = args->GetList()[1].GetString();
if (type == ::onc::network_type::kCellular) {
// Make sure Cellular is enabled.
NetworkStateHandler* handler =
@@ -87,8 +87,8 @@ void NetworkDropdownHandler::HandleShowNetworkDetails(
void NetworkDropdownHandler::HandleShowNetworkConfig(
const base::ListValue* args) {
- std::string guid;
- args->GetString(0, &guid);
+ DCHECK(!args->GetList().empty());
+ std::string guid = args->GetList()[0].GetString();
chromeos::InternetConfigDialog::ShowDialogForNetworkId(
guid, LoginDisplayHost::default_host()->GetNativeWindow());
}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h
index d91ed8accd6..51c611bed56 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h
@@ -14,6 +14,10 @@ namespace chromeos {
class NetworkDropdownHandler : public BaseWebUIHandler {
public:
explicit NetworkDropdownHandler(JSCallsContainer* js_calls_container);
+
+ NetworkDropdownHandler(const NetworkDropdownHandler&) = delete;
+ NetworkDropdownHandler& operator=(const NetworkDropdownHandler&) = delete;
+
~NetworkDropdownHandler() override;
// BaseScreenHandler implementation:
@@ -29,8 +33,6 @@ class NetworkDropdownHandler : public BaseWebUIHandler {
void HandleLaunchAddWiFiNetworkDialog();
void HandleShowNetworkDetails(const base::ListValue* args);
void HandleShowNetworkConfig(const base::ListValue* args);
-
- DISALLOW_COPY_AND_ASSIGN(NetworkDropdownHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/network_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/network_screen_handler.h
index 885700cc4b0..5ab8e137ebe 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/network_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/network_screen_handler.h
@@ -53,6 +53,10 @@ class NetworkScreenHandler : public NetworkScreenView,
using TView = NetworkScreenView;
explicit NetworkScreenHandler(JSCallsContainer* js_calls_container);
+
+ NetworkScreenHandler(const NetworkScreenHandler&) = delete;
+ NetworkScreenHandler& operator=(const NetworkScreenHandler&) = delete;
+
~NetworkScreenHandler() override;
private:
@@ -75,8 +79,6 @@ class NetworkScreenHandler : public NetworkScreenView,
// Keeps whether screen should be shown right after initialization.
bool show_on_init_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(NetworkScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/online_login_helper.cc b/chromium/chrome/browser/ui/webui/chromeos/login/online_login_helper.cc
index 92b8c8e01ab..eb8dbb6f51f 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/online_login_helper.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/online_login_helper.cc
@@ -26,7 +26,8 @@ namespace {
const char kGAPSCookie[] = "GAPS";
const char kOAUTHCodeCookie[] = "oauth_code";
-constexpr base::TimeDelta kCookieDelay = base::TimeDelta::FromSeconds(20);
+const char kRAPTCookie[] = "RAPT";
+constexpr base::TimeDelta kCookieDelay = base::Seconds(20);
} // namespace
@@ -207,6 +208,7 @@ void OnlineLoginHelper::RequestCookiesAndCompleteAuthentication() {
net::CookieOptions::MakeAllInclusive();
cookie_manager->GetCookieList(
GaiaUrls::GetInstance()->gaia_url(), cookie_options,
+ net::CookiePartitionKeychain::Todo(),
base::BindOnce(&OnlineLoginHelper::OnGetCookiesForCompleteAuthentication,
weak_factory_.GetWeakPtr()));
}
@@ -226,13 +228,15 @@ void OnlineLoginHelper::OnCookieWaitTimeout() {
void OnlineLoginHelper::OnGetCookiesForCompleteAuthentication(
const net::CookieAccessResultList& cookies,
const net::CookieAccessResultList& excluded_cookies) {
- std::string auth_code, gaps_cookie;
+ std::string auth_code, gaps_cookie, rapt;
for (const auto& cookie_with_access_result : cookies) {
const auto& cookie = cookie_with_access_result.cookie;
if (cookie.Name() == login::kOAUTHCodeCookie)
auth_code = cookie.Value();
else if (cookie.Name() == login::kGAPSCookie)
gaps_cookie = cookie.Value();
+ else if (cookie.Name() == login::kRAPTCookie)
+ rapt = cookie.Value();
}
if (auth_code.empty()) {
@@ -249,6 +253,8 @@ void OnlineLoginHelper::OnGetCookiesForCompleteAuthentication(
user_context.SetAuthCode(auth_code);
if (!gaps_cookie.empty())
user_context.SetGAPSCookie(gaps_cookie);
+ if (!rapt.empty())
+ user_context.SetReauthProofToken(rapt);
std::move(complete_login_callback_).Run(user_context);
}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser.h b/chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser.h
index e79cc51208d..e0b193746cb 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser.h
@@ -23,6 +23,10 @@ namespace chromeos {
class OobeDisplayChooser : public ui::InputDeviceEventObserver {
public:
OobeDisplayChooser();
+
+ OobeDisplayChooser(const OobeDisplayChooser&) = delete;
+ OobeDisplayChooser& operator=(const OobeDisplayChooser&) = delete;
+
~OobeDisplayChooser() override;
// Tries to put the OOBE UI on a connected touch display (if available).
@@ -53,8 +57,6 @@ class OobeDisplayChooser : public ui::InputDeviceEventObserver {
mojo::Remote<ash::mojom::CrosDisplayConfigController> cros_display_config_;
base::WeakPtrFactory<OobeDisplayChooser> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(OobeDisplayChooser);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser_browsertest.cc b/chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser_browsertest.cc
index 09c39f1f812..e9e4c5b0dad 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser_browsertest.cc
@@ -23,6 +23,10 @@ namespace {
class OobeDisplayChooserTest : public OobeBaseTest {
public:
OobeDisplayChooserTest() {}
+
+ OobeDisplayChooserTest(const OobeDisplayChooserTest&) = delete;
+ OobeDisplayChooserTest& operator=(const OobeDisplayChooserTest&) = delete;
+
~OobeDisplayChooserTest() override {}
void SetUpCommandLine(base::CommandLine* command_line) override {
@@ -30,9 +34,6 @@ class OobeDisplayChooserTest : public OobeBaseTest {
OobeBaseTest::SetUpCommandLine(command_line);
}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(OobeDisplayChooserTest);
};
display::DisplayManager* display_manager() {
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser_unittest.cc b/chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser_unittest.cc
index 2d3b9f2985b..1ae02bc36ad 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/oobe_display_chooser_unittest.cc
@@ -34,6 +34,9 @@ class TestCrosDisplayConfig : public ash::mojom::CrosDisplayConfigController {
public:
TestCrosDisplayConfig() = default;
+ TestCrosDisplayConfig(const TestCrosDisplayConfig&) = delete;
+ TestCrosDisplayConfig& operator=(const TestCrosDisplayConfig&) = delete;
+
mojo::PendingRemote<ash::mojom::CrosDisplayConfigController>
CreateRemoteAndBind() {
return receiver_.BindNewPipeAndPassRemote();
@@ -77,14 +80,15 @@ class TestCrosDisplayConfig : public ash::mojom::CrosDisplayConfigController {
private:
mojo::Receiver<ash::mojom::CrosDisplayConfigController> receiver_{this};
-
- DISALLOW_COPY_AND_ASSIGN(TestCrosDisplayConfig);
};
class OobeDisplayChooserTest : public ChromeAshTestBase {
public:
OobeDisplayChooserTest() : ChromeAshTestBase() {}
+ OobeDisplayChooserTest(const OobeDisplayChooserTest&) = delete;
+ OobeDisplayChooserTest& operator=(const OobeDisplayChooserTest&) = delete;
+
int64_t GetPrimaryDisplay() {
return display::Screen::GetScreen()->GetPrimaryDisplay().id();
}
@@ -106,8 +110,6 @@ class OobeDisplayChooserTest : public ChromeAshTestBase {
private:
std::unique_ptr<TestCrosDisplayConfig> cros_display_config_;
std::unique_ptr<OobeDisplayChooser> display_chooser_;
-
- DISALLOW_COPY_AND_ASSIGN(OobeDisplayChooserTest);
};
const uint16_t kAllowlistedId = 0x266e;
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc
index b6993681120..7e5412636e1 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/oobe_ui.cc
@@ -29,11 +29,11 @@
#include "chrome/browser/ash/login/screens/error_screen.h"
#include "chrome/browser/ash/login/ui/login_display_host.h"
#include "chrome/browser/ash/login/wizard_controller.h"
+#include "chrome/browser/ash/multidevice_setup/multidevice_setup_service_factory.h"
#include "chrome/browser/ash/policy/enrollment/enrollment_requisition_manager.h"
#include "chrome/browser/ash/system/input_device_settings.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_process_platform_part.h"
-#include "chrome/browser/chromeos/multidevice_setup/multidevice_setup_service_factory.h"
#include "chrome/browser/extensions/tab_helper.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
@@ -46,6 +46,7 @@
#include "chrome/browser/ui/webui/chromeos/login/assistant_optin_flow_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/auto_enrollment_check_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
+#include "chrome/browser/ui/webui/chromeos/login/consolidated_consent_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/debug/debug_overlay_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/demo_preferences_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/demo_setup_screen_handler.h"
@@ -61,6 +62,7 @@
#include "chrome/browser/ui/webui/chromeos/login/gaia_password_changed_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/gesture_navigation_screen_handler.h"
+#include "chrome/browser/ui/webui/chromeos/login/guest_tos_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/hid_detection_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/kiosk_autolaunch_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/kiosk_enable_screen_handler.h"
@@ -75,6 +77,7 @@
#include "chrome/browser/ui/webui/chromeos/login/offline_login_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/oobe_display_chooser.h"
#include "chrome/browser/ui/webui/chromeos/login/os_install_screen_handler.h"
+#include "chrome/browser/ui/webui/chromeos/login/os_trial_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/packaged_license_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/parental_handoff_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/pin_setup_screen_handler.h"
@@ -106,8 +109,8 @@
#include "chrome/grit/chrome_unscaled_resources.h"
#include "chrome/grit/component_extension_resources.h"
#include "chrome/grit/generated_resources.h"
-#include "chrome/grit/oobe_resources.h"
-#include "chrome/grit/oobe_modulized_resources_map.h"
+#include "chrome/grit/oobe_conditional_resources.h"
+#include "chrome/grit/oobe_unconditional_resources_map.h"
#include "chromeos/services/cellular_setup/public/mojom/esim_manager.mojom.h"
#include "chromeos/services/multidevice_setup/multidevice_setup_service.h"
#include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h" // nogncheck
@@ -154,69 +157,17 @@ constexpr char kRecommendAppListViewJSPath[] = "recommend_app_list_view.js";
constexpr char kTestAPIJSPath[] = "test_api.js";
constexpr char kWebviewSamlInjectedJSPath[] = "webview_saml_injected.js";
-constexpr char kLoginScreenBehaviorHTML[] = "components/behaviors/login_screen_behavior.html";
-constexpr char kLoginScreenBehaviorJS[] = "components/behaviors/login_screen_behavior.js";
-constexpr char kMultiStepBehaviorHTML[] = "components/behaviors/multi_step_behavior.html";
-constexpr char kMultiStepBehaviorJS[] = "components/behaviors/multi_step_behavior.js";
-constexpr char kOobeIconsHTML[] = "components/oobe_icons.html";
-
-constexpr char kOobeNextButtonHTML[] = "components/buttons/oobe_next_button.html";
-constexpr char kOobeNextButtonJS[] = "components/buttons/oobe_next_button.js";
-constexpr char kOobeBackButtonHTML[] = "components/buttons/oobe_back_button.html";
-constexpr char kOobeBackButtonJS[] = "components/buttons/oobe_back_button.js";
-constexpr char kOobeTextButtonHTML[] = "components/buttons/oobe_text_button.html";
-constexpr char kOobeTextButtonJS[] = "components/buttons/oobe_text_button.js";
-constexpr char kOobeIconButtonHTML[] = "components/buttons/oobe_icon_button.html";
-constexpr char kOobeIconButtonJS[] = "components/buttons/oobe_icon_button.js";
-
// Components
-constexpr char kOobeSharedVarsCssHTML[] =
- "components/oobe_vars/oobe_shared_vars_css.html";
constexpr char kOobeCustomVarsCssHTML[] =
"components/oobe_vars/oobe_custom_vars_css.html";
constexpr char kOobeCustomVarsCssJsM[] =
"components/oobe_vars/oobe_custom_vars_css.m.js";
-constexpr char kCommonStylesHTML[] = "components/common_styles/common_styles.html";
-constexpr char kDialogHostStylesHTML[] = "components/common_styles/oobe_dialog_host_styles.html";
-constexpr char kI18nBehaviorHTML[] = "components/behaviors/oobe_i18n_behavior.html";
-constexpr char kI18nBehaviorJS[] = "components/behaviors/oobe_i18n_behavior.js";
-constexpr char kI18nSetupHTML[] = "components/behaviors/i18n_setup.html";
-constexpr char kDialogHostBehaviorHTML[] =
- "components/behaviors/oobe_dialog_host_behavior.html";
-constexpr char kDialogHostBehaviorJS[] =
- "components/behaviors/oobe_dialog_host_behavior.js";
-constexpr char kFocusBehaviorHTML[] = "components/behaviors/oobe_focus_behavior.html";
-constexpr char kFocusBehaviorJS[] = "components/behaviors/oobe_focus_behavior.js";
-constexpr char kScrollableBehaviorHTML[] =
- "components/behaviors/oobe_scrollable_behavior.html";
-constexpr char kScrollableBehaviorJS[] =
- "components/behaviors/oobe_scrollable_behavior.js";
-constexpr char kHDIronIconHTML[] = "components/hd_iron_icon.html";
-constexpr char kHDIronIconJS[] = "components/hd_iron_icon.js";
-constexpr char kOobeAdaptiveDialogHTML[] =
- "components/dialogs/oobe_adaptive_dialog.html";
-constexpr char kOobeAdaptvieDialogJS[] = "components/dialogs/oobe_adaptive_dialog.js";
-constexpr char kOobeContentDialogHTML[] = "components/dialogs/oobe_content_dialog.html";
-constexpr char kOobeContentDialogJS[] = "components/dialogs/oobe_content_dialog.js";
-constexpr char kOobeDialogHTML[] = "components/dialogs/oobe_dialog.html";
-constexpr char kOobeDialogJS[] = "components/dialogs/oobe_dialog.js";
-constexpr char kOobeLoadingDialogHTML[] = "components/dialogs/oobe_loading_dialog.html";
-constexpr char kOobeLoadingDialogJS[] = "components/dialogs/oobe_loading_dialog.js";
-constexpr char kOobeModalDialogHTML[] = "components/dialogs/oobe_modal_dialog.html";
-constexpr char kOobeModalDialogJS[] = "components/dialogs/oobe_modal_dialog.js";
-constexpr char kOobeCarouselHTML[] = "components/oobe_carousel/oobe_carousel.html";
-constexpr char kOobeCarouselJS[] = "components/oobe_carousel/oobe_carousel.js";
-constexpr char kOobeSlideHTML[] = "components/oobe_slide/oobe_slide.html";
-constexpr char kOobeSlideJS[] = "components/oobe_slide/oobe_slide.js";
-constexpr char kProgressListItemHTML[] = "components/progress_list_item/progress_list_item.html";
-constexpr char kProgressListItemJS[] = "components/progress_list_item/progress_list_item.js";
-constexpr char kThrobberNoticeHTML[] = "components/throbber_notice/throbber_notice.html";
-constexpr char kThrobberNoticeJS[] = "components/throbber_notice/throbber_notice.js";
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
constexpr char kLogo24PX1XSvgPath[] = "logo_24px-1x.svg";
constexpr char kLogo24PX2XSvgPath[] = "logo_24px-2x.svg";
constexpr char kSyncConsentIcons[] = "sync-consent-icons.html";
+constexpr char kSyncConsentIconsJs[] = "sync-consent-icons.m.js";
constexpr char kArcAppDownloadingVideoPath[] = "res/arc_app_dowsnloading.mp4";
#endif
@@ -239,6 +190,8 @@ void AddSyncConsentResources(content::WebUIDataSource* source) {
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
source->AddResourcePath(kSyncConsentIcons,
IDR_PRODUCT_CHROMEOS_SYNC_CONSENT_SCREEN_ICONS);
+ source->AddResourcePath(kSyncConsentIconsJs,
+ IDR_PRODUCT_CHROMEOS_SYNC_CONSENT_SCREEN_ICONS_M_JS);
// No #else section here as Sync Settings screen is Chrome-specific.
#endif
}
@@ -283,8 +236,6 @@ void AddGestureNavigationResources(content::WebUIDataSource* source) {
void AddMarketingOptInResources(content::WebUIDataSource* source) {
source->AddResourcePath("all_set.json",
IDR_MARKETING_OPT_IN_ALL_SET_ANIMATION);
- source->AddResourcePath("all_set_new_noloop.json",
- IDR_MARKETING_OPT_IN_ALL_SET_ANIMATION_NEW_NOLOOP);
source->OverrideContentSecurityPolicy(
network::mojom::CSPDirectiveName::WorkerSrc, "worker-src blob: 'self';");
}
@@ -338,10 +289,14 @@ void AddOobeDisplayTypeDefaultResources(content::WebUIDataSource* source) {
source->AddResourcePath(kCustomElementsJSPath,
IDR_CUSTOM_ELEMENTS_OS_INSTALL_OOBE_JS);
} else {
- source->SetDefaultResource(IDR_OOBE_HTML);
- source->AddResourcePath(kCustomElementsHTMLPath,
- IDR_CUSTOM_ELEMENTS_OOBE_HTML);
- source->AddResourcePath(kCustomElementsJSPath, IDR_CUSTOM_ELEMENTS_OOBE_JS);
+ if (features::IsOobePolymer3Enabled()) {
+ source->SetDefaultResource(IDR_OOBE_POLY3_HTML);
+ } else {
+ source->SetDefaultResource(IDR_OOBE_HTML);
+ source->AddResourcePath(kCustomElementsHTMLPath,
+ IDR_CUSTOM_ELEMENTS_OOBE_HTML);
+ source->AddResourcePath(kCustomElementsJSPath, IDR_CUSTOM_ELEMENTS_OOBE_JS);
+ }
}
source->AddResourcePath(kOobeJSPath, IDR_OOBE_JS);
}
@@ -356,11 +311,15 @@ void AddLoginDisplayTypeDefaultResources(content::WebUIDataSource* source) {
source->AddResourcePath(kCustomElementsJSPath,
IDR_CUSTOM_ELEMENTS_OS_INSTALL_LOGIN_JS);
} else {
- source->SetDefaultResource(IDR_MD_LOGIN_HTML);
- source->AddResourcePath(kCustomElementsHTMLPath,
- IDR_CUSTOM_ELEMENTS_LOGIN_HTML);
- source->AddResourcePath(kCustomElementsJSPath,
- IDR_CUSTOM_ELEMENTS_LOGIN_JS);
+ if (features::IsOobePolymer3Enabled()) {
+ source->SetDefaultResource(IDR_MD_LOGIN_POLY3_HTML);
+ } else {
+ source->SetDefaultResource(IDR_MD_LOGIN_HTML);
+ source->AddResourcePath(kCustomElementsHTMLPath,
+ IDR_CUSTOM_ELEMENTS_LOGIN_HTML);
+ source->AddResourcePath(kCustomElementsJSPath,
+ IDR_CUSTOM_ELEMENTS_LOGIN_JS);
+ }
}
source->AddResourcePath(kLoginJSPath, IDR_OOBE_JS);
@@ -599,8 +558,16 @@ void OobeUI::ConfigureOobeDisplay() {
if (switches::IsOsInstallAllowed()) {
AddScreenHandler(
std::make_unique<OsInstallScreenHandler>(js_calls_container_.get()));
+ AddScreenHandler(
+ std::make_unique<OsTrialScreenHandler>(js_calls_container_.get()));
}
+ AddScreenHandler(std::make_unique<ConsolidatedConsentScreenHandler>(
+ js_calls_container_.get()));
+
+ AddScreenHandler(
+ std::make_unique<GuestTosScreenHandler>(js_calls_container_.get()));
+
Profile* profile = Profile::FromWebUI(web_ui());
// Set up the chrome://theme/ source, for Chrome logo.
content::URLDataSource::Add(profile, std::make_unique<ThemeSource>(profile));
@@ -712,74 +679,9 @@ OobeUI::~OobeUI() {
void OobeUI::AddOobeComponents(content::WebUIDataSource* source,
const base::DictionaryValue& localized_strings) {
- source->AddResourcePath(kLoginScreenBehaviorHTML,
- IDR_OOBE_COMPONENTS_LOGIN_SCREEN_BEHAVIOR_HTML);
- source->AddResourcePath(kLoginScreenBehaviorJS,
- IDR_OOBE_COMPONENTS_LOGIN_SCREEN_BEHAVIOR_JS);
- source->AddResourcePath(kMultiStepBehaviorHTML,
- IDR_OOBE_COMPONENTS_MULTI_STEP_BEHAVIOR_HTML);
- source->AddResourcePath(kMultiStepBehaviorJS,
- IDR_OOBE_COMPONENTS_MULTI_STEP_BEHAVIOR_JS);
- source->AddResourcePath(kOobeNextButtonHTML,
- IDR_OOBE_COMPONENTS_OOBE_NEXT_BUTTON_HTML);
- source->AddResourcePath(kOobeNextButtonJS,
- IDR_OOBE_COMPONENTS_OOBE_NEXT_BUTTON_JS);
- source->AddResourcePath(kOobeBackButtonHTML,
- IDR_OOBE_COMPONENTS_OOBE_BACK_BUTTON_HTML);
- source->AddResourcePath(kOobeBackButtonJS,
- IDR_OOBE_COMPONENTS_OOBE_BACK_BUTTON_JS);
- source->AddResourcePath(kOobeTextButtonHTML,
- IDR_OOBE_COMPONENTS_OOBE_TEXT_BUTTON_HTML);
- source->AddResourcePath(kOobeTextButtonJS,
- IDR_OOBE_COMPONENTS_OOBE_TEXT_BUTTON_JS);
- source->AddResourcePath(kOobeIconButtonHTML,
- IDR_OOBE_COMPONENTS_OOBE_ICON_BUTTON_HTML);
- source->AddResourcePath(kOobeIconButtonJS,
- IDR_OOBE_COMPONENTS_OOBE_ICON_BUTTON_JS);
-
- source->AddResourcePath(kOobeIconsHTML,
- IDR_OOBE_COMPONENTS_OOBE_ICONS_HTML);
-
- source->AddResourcePath(kI18nBehaviorHTML,
- IDR_OOBE_COMPONENTS_I18N_BEHAVIOR_HTML);
- source->AddResourcePath(kI18nBehaviorJS,
- IDR_OOBE_COMPONENTS_I18N_BEHAVIOR_JS);
- source->AddResourcePath(kI18nSetupHTML, IDR_OOBE_COMPONENTS_I18N_SETUP_HTML);
- source->AddResourcePath(kDialogHostBehaviorHTML,
- IDR_OOBE_COMPONENTS_DIALOG_HOST_BEHAVIOR_HTML);
- source->AddResourcePath(kDialogHostBehaviorJS,
- IDR_OOBE_COMPONENTS_DIALOG_HOST_BEHAVIOR_JS);
- source->AddResourcePath(kFocusBehaviorHTML,
- IDR_OOBE_COMPONENTS_FOCUS_BEHAVIOR_HTML);
- source->AddResourcePath(kFocusBehaviorJS,
- IDR_OOBE_COMPONENTS_FOCUS_BEHAVIOR_JS);
- source->AddResourcePath(kScrollableBehaviorHTML,
- IDR_OOBE_COMPONENTS_SCROLLABLE_BEHAVIOR_HTML);
- source->AddResourcePath(kScrollableBehaviorJS,
- IDR_OOBE_COMPONENTS_SCROLLABLE_BEHAVIOR_JS);
-
- source->AddResourcePath(kCommonStylesHTML,
- IDR_OOBE_COMPONENTS_COMMON_STYLES_HTML);
- source->AddResourcePath(kDialogHostStylesHTML,
- IDR_OOBE_COMPONENTS_DIALOG_HOST_STYLES_HTML);
- source->AddResourcePath(kOobeSharedVarsCssHTML,
- IDR_OOBE_COMPONENTS_OOBE_SHARED_VARS_CSS_HTML);
-
- source->AddResourcePath(kHDIronIconHTML,
- IDR_OOBE_COMPONENTS_HD_IRON_ICON_HTML);
- source->AddResourcePath(kHDIronIconJS, IDR_OOBE_COMPONENTS_HD_IRON_ICON_JS);
-
- source->AddResourcePath(kOobeDialogHTML,
- IDR_OOBE_COMPONENTS_OOBE_DIALOG_HTML);
- source->AddResourcePath(kOobeDialogJS, IDR_OOBE_COMPONENTS_OOBE_DIALOG_JS);
- source->AddResourcePath(kOobeLoadingDialogHTML,
- IDR_OOBE_COMPONENTS_OOBE_LOADING_DIALOG_HTML);
- source->AddResourcePath(kOobeLoadingDialogJS,
- IDR_OOBE_COMPONENTS_OOBE_LOADING_DIALOG_JS);
- source->AddResourcePath(kOobeModalDialogHTML,
- IDR_OOBE_COMPONENTS_OOBE_MODAL_DIALOG_HTML);
- source->AddResourcePath(kOobeModalDialogJS,
- IDR_OOBE_COMPONENTS_OOBE_MODAL_DIALOG_JS);
+ // Add all resources from OOBE's autogenerated GRD.
+ source->AddResourcePaths(base::make_span(kOobeUnconditionalResources,
+ kOobeUnconditionalResourcesSize));
if (policy::EnrollmentRequisitionManager::IsRemoraRequisition()) {
source->AddResourcePath(
@@ -795,37 +697,11 @@ void OobeUI::AddOobeComponents(content::WebUIDataSource* source,
IDR_OOBE_COMPONENTS_OOBE_CUSTOM_VARS_CSS_M_JS);
}
- source->AddResourcePath(kOobeAdaptiveDialogHTML,
- IDR_OOBE_COMPONENTS_OOBE_ADAPTIVE_DIALOG_HTML);
- source->AddResourcePath(kOobeAdaptvieDialogJS,
- IDR_OOBE_COMPONENTS_OOBE_ADAPTIVE_DIALOG_JS);
- source->AddResourcePath(kOobeContentDialogHTML,
- IDR_OOBE_COMPONENTS_OOBE_CONTENT_DIALOG_HTML);
- source->AddResourcePath(kOobeContentDialogJS,
- IDR_OOBE_COMPONENTS_OOBE_CONTENT_DIALOG_JS);
-
source->AddResourcePath("welcome_screen_animation.json",
IDR_LOGIN_WELCOME_SCREEN_ANIMATION);
source->AddResourcePath("spinner.json", IDR_LOGIN_SPINNER_ANIMATION);
source->OverrideContentSecurityPolicy(
network::mojom::CSPDirectiveName::WorkerSrc, "worker-src blob: 'self';");
-
- source->AddResourcePath(kOobeCarouselHTML,
- IDR_OOBE_COMPONENTS_OOBE_CAROUSEL_HTML);
- source->AddResourcePath(kOobeCarouselJS,
- IDR_OOBE_COMPONENTS_OOBE_CAROUSEL_JS);
- source->AddResourcePath(kOobeSlideHTML, IDR_OOBE_COMPONENTS_OOBE_SLIDE_HTML);
- source->AddResourcePath(kOobeSlideJS, IDR_OOBE_COMPONENTS_OOBE_SLIDE_JS);
-
- source->AddResourcePath(kProgressListItemHTML,
- IDR_OOBE_COMPONENTS_PROGRESS_LIST_ITEM_HTML);
- source->AddResourcePath(kProgressListItemJS,
- IDR_OOBE_COMPONENTS_PROGRESS_LIST_ITEM_JS);
-
- source->AddResourcePath(kThrobberNoticeHTML,
- IDR_OOBE_COMPONENTS_THROBBER_NOTICE_HTML);
- source->AddResourcePath(kThrobberNoticeJS,
- IDR_OOBE_COMPONENTS_THROBBER_NOTICE_JS);
}
CoreOobeView* OobeUI::GetCoreOobeView() {
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/oobe_ui.h b/chromium/chrome/browser/ui/webui/chromeos/login/oobe_ui.h
index 17f965a9431..ca887bcf1f2 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/oobe_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/oobe_ui.h
@@ -56,6 +56,9 @@ class OobeUI : public ui::MojoWebUIController {
class Observer {
public:
Observer() {}
+
+ Observer(const Observer&) = delete;
+
virtual void OnCurrentScreenChanged(OobeScreenId current_screen,
OobeScreenId new_screen) = 0;
@@ -63,10 +66,13 @@ class OobeUI : public ui::MojoWebUIController {
protected:
virtual ~Observer() {}
- DISALLOW_COPY(Observer);
};
OobeUI(content::WebUI* web_ui, const GURL& url);
+
+ OobeUI(const OobeUI&) = delete;
+ OobeUI& operator=(const OobeUI&) = delete;
+
~OobeUI() override;
CoreOobeView* GetCoreOobeView();
@@ -172,6 +178,8 @@ class OobeUI : public ui::MojoWebUIController {
static void AddOobeComponents(content::WebUIDataSource* source,
const base::DictionaryValue& localized_strings);
+ bool ready() const { return ready_; }
+
private:
void AddWebUIHandler(std::unique_ptr<BaseWebUIHandler> handler);
void AddScreenHandler(std::unique_ptr<BaseScreenHandler> handler);
@@ -223,8 +231,6 @@ class OobeUI : public ui::MojoWebUIController {
std::unique_ptr<JSCallsContainer> js_calls_container_;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(OobeUI);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/os_install_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/os_install_screen_handler.cc
index ba0862ab97d..f5f670f225d 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/os_install_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/os_install_screen_handler.cc
@@ -13,11 +13,10 @@
#include "chrome/grit/generated_resources.h"
#include "components/login/localized_values_builder.h"
#include "ui/base/l10n/l10n_util.h"
+#include "ui/strings/grit/ui_strings.h"
namespace chromeos {
-
namespace {
-constexpr const char kConfirmStep[] = "confirm";
constexpr const char kInProgressStep[] = "in-progress";
constexpr const char kFailedStep[] = "failed";
constexpr const char kNoDestinationDeviceFoundStep[] =
@@ -35,7 +34,6 @@ OsInstallScreenHandler::OsInstallScreenHandler(
}
OsInstallScreenHandler::~OsInstallScreenHandler() {
- OsInstallClient::Get()->RemoveObserver(this);
if (screen_)
screen_->OnViewDestroyed(this);
}
@@ -45,7 +43,12 @@ void OsInstallScreenHandler::DeclareLocalizedValues(
builder->Add("osInstallDialogIntroTitle", IDS_OS_INSTALL_SCREEN_INTRO_TITLE);
builder->Add("osInstallDialogIntroSubtitle",
IDS_OS_INSTALL_SCREEN_INTRO_SUBTITLE);
- builder->Add("osInstallDialogIntroBody", IDS_OS_INSTALL_SCREEN_INTRO_BODY);
+ builder->Add("osInstallDialogIntroBody0",
+ IDS_OS_INSTALL_SCREEN_INTRO_CONTENT_0);
+ builder->Add("osInstallDialogIntroBody1",
+ IDS_OS_INSTALL_SCREEN_INTRO_CONTENT_1);
+ builder->Add("osInstallDialogIntroFooter",
+ IDS_OS_INSTALL_SCREEN_INTRO_FOOTER);
builder->Add("osInstallDialogIntroNextButton",
IDS_OS_INSTALL_SCREEN_INTRO_NEXT_BUTTON);
@@ -68,17 +71,26 @@ void OsInstallScreenHandler::DeclareLocalizedValues(
IDS_OS_INSTALL_SCREEN_ERROR_NO_DEST_SUBTITLE);
builder->Add("osInstallDialogErrorNoDestContent",
IDS_OS_INSTALL_SCREEN_ERROR_NO_DEST_CONTENT);
- builder->Add("osInstallDialogErrorServiceLogsLink",
- IDS_OS_INSTALL_SCREEN_ERROR_SERVICE_LOGS_LINK_TEXT);
builder->Add("osInstallDialogServiceLogsTitle",
IDS_OS_INSTALL_SCREEN_SERVICE_LOGS_TITLE);
+ builder->Add("osInstallDialogErrorViewLogs",
+ IDS_OS_INSTALL_SCREEN_ERROR_VIEW_LOGS);
builder->Add("osInstallDialogSuccessTitle",
IDS_OS_INSTALL_SCREEN_SUCCESS_TITLE);
+ builder->Add("osInstallDialogSuccessSubtitle",
+ IDS_OS_INSTALL_SCREEN_SUCCESS_SUBTITLE);
+ builder->Add("osInstallDialogSuccessRestartButton",
+ IDS_OS_INSTALL_SCREEN_RESTART_BUTTON);
+
builder->Add("osInstallDialogSendFeedback",
IDS_OS_INSTALL_SCREEN_SEND_FEEDBACK);
builder->Add("osInstallDialogShutdownButton",
IDS_OS_INSTALL_SCREEN_SHUTDOWN_BUTTON);
+
+ // OS names
+ builder->Add("osInstallChromiumOS", IDS_CHROMIUM_OS_NAME);
+ builder->Add("osInstallCloudReadyOS", IDS_CLOUD_READY_OS_NAME);
}
void OsInstallScreenHandler::Initialize() {}
@@ -101,21 +113,7 @@ void OsInstallScreenHandler::ShowStep(const char* step) {
CallJS("login.OsInstallScreen.showStep", std::string(step));
}
-void OsInstallScreenHandler::ShowConfirmStep() {
- ShowStep(kConfirmStep);
-}
-
-void OsInstallScreenHandler::StartInstall() {
- ShowStep(kInProgressStep);
-
- OsInstallClient* const os_install_client = OsInstallClient::Get();
-
- os_install_client->AddObserver(this);
- os_install_client->StartOsInstall();
-}
-
-void OsInstallScreenHandler::StatusChanged(OsInstallClient::Status status,
- const std::string& service_log) {
+void OsInstallScreenHandler::SetStatus(OsInstallClient::Status status) {
switch (status) {
case OsInstallClient::Status::InProgress:
ShowStep(kInProgressStep);
@@ -130,16 +128,19 @@ void OsInstallScreenHandler::StatusChanged(OsInstallClient::Status status,
ShowStep(kNoDestinationDeviceFoundStep);
break;
}
+}
+
+void OsInstallScreenHandler::SetServiceLogs(const std::string& service_log) {
CallJS("login.OsInstallScreen.setServiceLogs", service_log);
}
-void OsInstallScreenHandler::OsInstallStarted(
- absl::optional<OsInstallClient::Status> status) {
- if (!status) {
- status = OsInstallClient::Status::Failed;
- }
+void OsInstallScreenHandler::UpdateCountdownStringWithTime(int64_t time_left) {
+ CallJS("login.OsInstallScreen.updateCountdownString",
+ l10n_util::GetPluralStringFUTF16(IDS_TIME_LONG_SECS, time_left));
+}
- StatusChanged(*status, /*service_log=*/"");
+void OsInstallScreenHandler::SetIsBrandedBuild(bool is_branded) {
+ CallJS("login.OsInstallScreen.setIsBrandedBuild", is_branded);
}
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/os_install_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/os_install_screen_handler.h
index 8f29b242a85..2c649a34bf8 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/os_install_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/os_install_screen_handler.h
@@ -38,13 +38,14 @@ class OsInstallScreenView {
virtual void Unbind() = 0;
virtual void ShowStep(const char* step) = 0;
- virtual void ShowConfirmStep() = 0;
- virtual void StartInstall() = 0;
+ virtual void SetStatus(OsInstallClient::Status status) = 0;
+ virtual void SetServiceLogs(const std::string& service_log) = 0;
+ virtual void UpdateCountdownStringWithTime(int64_t time_left) = 0;
+ virtual void SetIsBrandedBuild(bool is_branded) = 0;
};
class OsInstallScreenHandler : public BaseScreenHandler,
- public OsInstallScreenView,
- public OsInstallClient::Observer {
+ public OsInstallScreenView {
public:
using TView = OsInstallScreenView;
@@ -64,14 +65,10 @@ class OsInstallScreenHandler : public BaseScreenHandler,
void Bind(ash::OsInstallScreen* screen) override;
void Unbind() override;
void ShowStep(const char* step) override;
- void ShowConfirmStep() override;
- void StartInstall() override;
-
- // OsInstallClient::Observer:
- void StatusChanged(OsInstallClient::Status status,
- const std::string& service_log) override;
-
- void OsInstallStarted(absl::optional<OsInstallClient::Status> status);
+ void SetStatus(OsInstallClient::Status status) override;
+ void SetServiceLogs(const std::string& service_log) override;
+ void UpdateCountdownStringWithTime(int64_t time_left) override;
+ void SetIsBrandedBuild(bool is_branded) override;
ash::OsInstallScreen* screen_ = nullptr;
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/os_trial_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/os_trial_screen_handler.cc
new file mode 100644
index 00000000000..b578ae72c29
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/os_trial_screen_handler.cc
@@ -0,0 +1,63 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/chromeos/login/os_trial_screen_handler.h"
+
+#include "chrome/browser/ash/login/oobe_screen.h"
+#include "chrome/browser/ash/login/screens/os_trial_screen.h"
+#include "chrome/grit/chromium_strings.h"
+#include "chrome/grit/generated_resources.h"
+#include "components/login/localized_values_builder.h"
+
+namespace chromeos {
+
+// static
+constexpr StaticOobeScreenId OsTrialScreenView::kScreenId;
+
+OsTrialScreenHandler::OsTrialScreenHandler(JSCallsContainer* js_calls_container)
+ : BaseScreenHandler(kScreenId, js_calls_container) {
+ set_user_acted_method_path("login.OsTrialScreen.userActed");
+}
+
+OsTrialScreenHandler::~OsTrialScreenHandler() {
+ if (screen_)
+ screen_->OnViewDestroyed(this);
+}
+
+void OsTrialScreenHandler::DeclareLocalizedValues(
+ ::login::LocalizedValuesBuilder* builder) {
+ builder->Add("osTrialTitle", IDS_OS_TRIAL_TITLE);
+ builder->Add("osTrialSubtitle", IDS_OS_TRIAL_SUBTITLE);
+ builder->Add("osTrialInstallTitle", IDS_OS_TRIAL_INSTALL_TITLE);
+ builder->Add("osTrialInstallSubtitle", IDS_OS_TRIAL_INSTALL_SUBTITLE);
+ builder->Add("osTrialTryTitle", IDS_OS_TRIAL_TRY_TITLE);
+ builder->Add("osTrialTrySubtitle", IDS_OS_TRIAL_TRY_SUBTITLE);
+ builder->Add("osTrialNextButton", IDS_OS_TRIAL_NEXT_BUTTON);
+
+ // OS names
+ builder->Add("osInstallChromiumOS", IDS_CHROMIUM_OS_NAME);
+ builder->Add("osInstallCloudReadyOS", IDS_CLOUD_READY_OS_NAME);
+}
+
+void OsTrialScreenHandler::Initialize() {}
+
+void OsTrialScreenHandler::Show() {
+ ShowScreen(kScreenId);
+}
+
+void OsTrialScreenHandler::Bind(ash::OsTrialScreen* screen) {
+ screen_ = screen;
+ BaseScreenHandler::SetBaseScreen(screen_);
+}
+
+void OsTrialScreenHandler::Unbind() {
+ screen_ = nullptr;
+ BaseScreenHandler::SetBaseScreen(nullptr);
+}
+
+void OsTrialScreenHandler::SetIsBrandedBuild(bool is_branded) {
+ CallJS("login.OsTrialScreen.setIsBrandedBuild", is_branded);
+}
+
+} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/os_trial_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/os_trial_screen_handler.h
new file mode 100644
index 00000000000..b68ba566b90
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/os_trial_screen_handler.h
@@ -0,0 +1,70 @@
+// Copyright 2021 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.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_OS_TRIAL_SCREEN_HANDLER_H_
+#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_OS_TRIAL_SCREEN_HANDLER_H_
+
+#include "chrome/browser/ash/login/screens/consolidated_consent_screen.h"
+
+namespace ash {
+class OsTrialScreen;
+}
+
+namespace chromeos {
+
+// Interface for dependency injection between OsTrialScreen and its
+// WebUI representation.
+class OsTrialScreenView {
+ public:
+ constexpr static StaticOobeScreenId kScreenId{"os-trial"};
+
+ virtual ~OsTrialScreenView() = default;
+
+ // Shows the contents of the screen.
+ virtual void Show() = 0;
+
+ // Binds |screen| to the view.
+ virtual void Bind(ash::OsTrialScreen* screen) = 0;
+
+ // Unbinds the screen from the view.
+ virtual void Unbind() = 0;
+
+ virtual void SetIsBrandedBuild(bool is_branded) = 0;
+};
+
+class OsTrialScreenHandler : public BaseScreenHandler,
+ public OsTrialScreenView {
+ public:
+ using TView = OsTrialScreenView;
+
+ explicit OsTrialScreenHandler(JSCallsContainer* js_calls_container);
+ OsTrialScreenHandler(const OsTrialScreenHandler&) = delete;
+ OsTrialScreenHandler& operator=(const OsTrialScreenHandler&) = delete;
+ ~OsTrialScreenHandler() override;
+
+ private:
+ // BaseScreenHandler:
+ void DeclareLocalizedValues(
+ ::login::LocalizedValuesBuilder* builder) override;
+ void Initialize() override;
+
+ // OsTrialScreenView:
+ void Show() override;
+ void Bind(ash::OsTrialScreen* screen) override;
+ void Unbind() override;
+ void SetIsBrandedBuild(bool is_branded) override;
+
+ ash::OsTrialScreen* screen_ = nullptr;
+};
+
+} // namespace chromeos
+
+// TODO(https://crbug.com/1164001): remove after the //chrome/browser/chromeos
+// source migration is finished.
+namespace ash {
+using ::chromeos::OsTrialScreenHandler;
+using ::chromeos::OsTrialScreenView;
+} // namespace ash
+
+#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_OS_TRIAL_SCREEN_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/pin_setup_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/pin_setup_screen_handler.h
index fdeec1275aa..78dfd0df078 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/pin_setup_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/pin_setup_screen_handler.h
@@ -41,6 +41,10 @@ class PinSetupScreenHandler : public BaseScreenHandler,
using TView = PinSetupScreenView;
explicit PinSetupScreenHandler(JSCallsContainer* js_calls_container);
+
+ PinSetupScreenHandler(const PinSetupScreenHandler&) = delete;
+ PinSetupScreenHandler& operator=(const PinSetupScreenHandler&) = delete;
+
~PinSetupScreenHandler() override;
// BaseScreenHandler:
@@ -58,8 +62,6 @@ class PinSetupScreenHandler : public BaseScreenHandler,
private:
ash::PinSetupScreen* screen_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(PinSetupScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/recommend_apps_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/recommend_apps_screen_handler.cc
index 38416a47b8b..a80b94ed58e 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/recommend_apps_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/recommend_apps_screen_handler.cc
@@ -164,7 +164,7 @@ void RecommendAppsScreenHandler::HandleSkip() {
void RecommendAppsScreenHandler::HandleInstall(const base::ListValue* args) {
if (recommended_app_count_ != 0) {
- int selected_app_count = static_cast<int>(args->GetSize());
+ int selected_app_count = static_cast<int>(args->GetList().size());
int selected_recommended_percentage =
100 * selected_app_count / recommended_app_count_;
RecordUmaUserSelectionAppCount(selected_app_count);
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/recommend_apps_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/recommend_apps_screen_handler.h
index 1c14b362a8e..fa3ac9e4284 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/recommend_apps_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/recommend_apps_screen_handler.h
@@ -49,6 +49,11 @@ class RecommendAppsScreenHandler : public BaseScreenHandler,
using TView = RecommendAppsScreenView;
explicit RecommendAppsScreenHandler(JSCallsContainer* js_calls_container);
+
+ RecommendAppsScreenHandler(const RecommendAppsScreenHandler&) = delete;
+ RecommendAppsScreenHandler& operator=(const RecommendAppsScreenHandler&) =
+ delete;
+
~RecommendAppsScreenHandler() override;
// BaseScreenHandler:
@@ -84,8 +89,6 @@ class RecommendAppsScreenHandler : public BaseScreenHandler,
// If true, Initialize() will call Show().
bool show_on_init_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(RecommendAppsScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/reset_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/reset_screen_handler.h
index a188bfa52d4..c3513b0d43b 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/reset_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/reset_screen_handler.h
@@ -7,7 +7,7 @@
#include "base/compiler_specific.h"
#include "base/macros.h"
-#include "chrome/browser/chromeos/tpm_firmware_update.h"
+#include "chrome/browser/ash/tpm_firmware_update.h"
#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
namespace ash {
@@ -60,6 +60,10 @@ class ResetScreenHandler : public ResetView,
using TView = ResetView;
explicit ResetScreenHandler(JSCallsContainer* js_calls_container);
+
+ ResetScreenHandler(const ResetScreenHandler&) = delete;
+ ResetScreenHandler& operator=(const ResetScreenHandler&) = delete;
+
~ResetScreenHandler() override;
// ResetView implementation:
@@ -102,8 +106,6 @@ class ResetScreenHandler : public ResetView,
bool is_rollback_requested_ = false;
bool is_tpm_firmware_update_checked_ = false;
bool is_showing_confirmation_dialog_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(ResetScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.cc
index bb7d013fdfb..81703a77185 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.cc
@@ -44,8 +44,8 @@ bool IsDeviceWebBasedAttestationEnabledForUrl(const GURL& url,
return false;
}
- if (patterns->GetSize() >= kPatternsSizeWarningLevel) {
- LOG(WARNING) << "Allowed urls list size is " << patterns->GetSize()
+ if (patterns->GetList().size() >= kPatternsSizeWarningLevel) {
+ LOG(WARNING) << "Allowed urls list size is " << patterns->GetList().size()
<< ". Check may be slow.";
}
@@ -132,7 +132,8 @@ void SamlChallengeKeyHandler::BuildChallengeResponse() {
GetTpmResponseTimeout(), attestation::KEY_DEVICE, profile_,
base::BindOnce(&SamlChallengeKeyHandler::ReturnResult,
weak_factory_.GetWeakPtr()),
- decoded_challenge_, /*register_key=*/false, /*key_name_for_spkac=*/"");
+ decoded_challenge_, /*register_key=*/false, /*key_name_for_spkac=*/"",
+ /*signals=*/absl::nullopt);
}
base::TimeDelta SamlChallengeKeyHandler::GetTpmResponseTimeout() const {
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.h
index cfcb7c3e3be..2a77c1a4eb5 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.h
@@ -57,8 +57,7 @@ class SamlChallengeKeyHandler final {
CallbackType callback_;
// Timeout for `tpm_key_challenger_` to response.
- const base::TimeDelta default_tpm_response_timeout_ =
- base::TimeDelta::FromSeconds(15);
+ const base::TimeDelta default_tpm_response_timeout_ = base::Seconds(15);
absl::optional<base::TimeDelta> tpm_response_timeout_for_testing_;
// Performs attestation flow.
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
index bc7d05e5898..84d9af76039 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
@@ -26,6 +26,7 @@
#include "base/threading/thread_task_runner_handle.h"
#include "base/trace_event/trace_event.h"
#include "chrome/browser/ash/app_mode/kiosk_app_manager.h"
+#include "chrome/browser/ash/language_preferences.h"
#include "chrome/browser/ash/login/demo_mode/demo_session.h"
#include "chrome/browser/ash/login/easy_unlock/easy_unlock_service.h"
#include "chrome/browser/ash/login/error_screens_histogram_helper.h"
@@ -49,7 +50,6 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_process_platform_part_chromeos.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/chromeos/language_preferences.h"
#include "chrome/browser/lifetime/browser_shutdown.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_metrics.h"
@@ -92,10 +92,10 @@
#include "extensions/browser/api/extensions_api_client.h"
#include "google_apis/gaia/gaia_auth_util.h"
#include "third_party/cros_system_api/dbus/service_constants.h"
-#include "ui/base/ime/chromeos/ime_keyboard.h"
-#include "ui/base/ime/chromeos/input_method_descriptor.h"
-#include "ui/base/ime/chromeos/input_method_manager.h"
-#include "ui/base/ime/chromeos/input_method_util.h"
+#include "ui/base/ime/ash/ime_keyboard.h"
+#include "ui/base/ime/ash/input_method_descriptor.h"
+#include "ui/base/ime/ash/input_method_manager.h"
+#include "ui/base/ime/ash/input_method_util.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/ui_base_features.h"
#include "ui/base/webui/web_ui_util.h"
@@ -105,19 +105,16 @@
namespace {
-// Max number of users to show.
-const size_t kMaxUsers = 18;
-
// Timeout to delay first notification about offline state for a
// current network.
-constexpr base::TimeDelta kOfflineTimeout = base::TimeDelta::FromSeconds(1);
+constexpr base::TimeDelta kOfflineTimeout = base::Seconds(1);
// Timeout to delay first notification about offline state when authenticating
// to a proxy.
-constexpr base::TimeDelta kProxyAuthTimeout = base::TimeDelta::FromSeconds(5);
+constexpr base::TimeDelta kProxyAuthTimeout = base::Seconds(5);
// Timeout used to prevent infinite connecting to a flaky network.
-constexpr base::TimeDelta kConnectingTimeout = base::TimeDelta::FromSeconds(60);
+constexpr base::TimeDelta kConnectingTimeout = base::Seconds(60);
// Max number of Gaia Reload to Show Proxy Auth Dialog.
const int kMaxGaiaReloadForProxyAuthDialog = 3;
@@ -127,6 +124,9 @@ class CallOnReturn {
explicit CallOnReturn(base::OnceClosure callback)
: callback_(std::move(callback)), call_scheduled_(false) {}
+ CallOnReturn(const CallOnReturn&) = delete;
+ CallOnReturn& operator=(const CallOnReturn&) = delete;
+
~CallOnReturn() {
if (call_scheduled_ && !callback_.is_null())
std::move(callback_).Run();
@@ -138,8 +138,6 @@ class CallOnReturn {
private:
base::OnceClosure callback_;
bool call_scheduled_;
-
- DISALLOW_COPY_AND_ASSIGN(CallOnReturn);
};
} // namespace
@@ -192,7 +190,8 @@ SigninScreenHandler::SigninScreenHandler(
core_oobe_view_(core_oobe_view),
proxy_auth_dialog_reload_times_(kMaxGaiaReloadForProxyAuthDialog),
gaia_screen_handler_(gaia_screen_handler),
- histogram_helper_(new ErrorScreensHistogramHelper("Signin")) {
+ histogram_helper_(
+ std::make_unique<ErrorScreensHistogramHelper>("Signin")) {
DCHECK(network_state_informer_.get());
DCHECK(error_screen_);
DCHECK(core_oobe_view_);
@@ -388,16 +387,6 @@ void SigninScreenHandler::SetOfflineTimeoutForTesting(
offline_timeout_for_test_ = offline_timeout;
}
-// TODO (crbug.com/1168114): Such method should be implemented in
-// native-view-based UI, and be removed here.
-bool SigninScreenHandler::GetKeyboardRemappedPrefValue(
- const std::string& pref_name,
- int* value) {
- return focused_pod_account_id_ && focused_pod_account_id_->is_valid() &&
- user_manager::known_user::GetIntegerPref(*focused_pod_account_id_,
- pref_name, value);
-}
-
// SigninScreenHandler, private: -----------------------------------------------
void SigninScreenHandler::ShowImpl() {
@@ -720,10 +709,7 @@ void SigninScreenHandler::HandleLoginVisible(const std::string& source) {
if (!webui_visible_) {
// There might be multiple messages from OOBE UI so send notifications after
// the first one only.
- content::NotificationService::current()->Notify(
- chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
- content::NotificationService::AllSources(),
- content::NotificationService::NoDetails());
+ session_manager::SessionManager::Get()->NotifyLoginOrLockScreenVisible();
TRACE_EVENT_NESTABLE_ASYNC_END0(
"ui", "ShowLoginWebUI",
TRACE_ID_WITH_SCOPE(LoginDisplayHostWebUI::kShowLoginWebUIid,
@@ -761,39 +747,6 @@ void SigninScreenHandler::HandleNoPodFocused() {
focused_pod_account_id_.reset();
}
-bool SigninScreenHandler::AllAllowlistedUsersPresent() {
- CrosSettings* cros_settings = CrosSettings::Get();
- bool allow_new_user = false;
- cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user);
- if (allow_new_user)
- return false;
- user_manager::UserManager* user_manager = user_manager::UserManager::Get();
- const user_manager::UserList& users = user_manager->GetUsers();
- if (!delegate_ || users.size() > kMaxUsers) {
- return false;
- }
-
- bool allow_family_link = false;
- cros_settings->GetBoolean(kAccountsPrefFamilyLinkAccountsAllowed,
- &allow_family_link);
- if (allow_family_link)
- return false;
-
- const base::ListValue* allowlist = nullptr;
- if (!cros_settings->GetList(kAccountsPrefUsers, &allowlist) || !allowlist)
- return false;
- for (size_t i = 0; i < allowlist->GetSize(); ++i) {
- std::string allowlisted_user;
- // NB: Wildcards in the allowlist are also detected as not present here.
- if (!allowlist->GetString(i, &allowlisted_user) ||
- !user_manager->IsKnownUser(
- AccountId::FromUserEmail(allowlisted_user))) {
- return false;
- }
- }
- return true;
-}
-
bool SigninScreenHandler::IsGaiaVisible() {
return IsSigninScreen(GetCurrentScreen()) &&
ui_state_ == UI_STATE_GAIA_SIGNIN;
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h
index 58a6635734b..16d77f11814 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h
@@ -15,6 +15,8 @@
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
+// TODO(https://crbug.com/1164001): move to forward declaration.
+#include "chrome/browser/ash/login/error_screens_histogram_helper.h"
#include "chrome/browser/ash/login/screens/error_screen.h"
#include "chrome/browser/ash/login/signin_specifics.h"
#include "chrome/browser/ash/login/ui/login_display.h"
@@ -28,7 +30,7 @@
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/web_ui.h"
#include "net/base/net_errors.h"
-#include "ui/base/ime/chromeos/input_method_manager.h"
+#include "ui/base/ime/ash/input_method_manager.h"
#include "ui/events/event_handler.h"
class AccountId;
@@ -44,7 +46,6 @@ enum class TrayActionState;
namespace chromeos {
class CoreOobeView;
-class ErrorScreensHistogramHelper;
class GaiaScreenHandler;
class UserContext;
@@ -113,6 +114,10 @@ class SigninScreenHandler
ErrorScreen* error_screen,
CoreOobeView* core_oobe_view,
GaiaScreenHandler* gaia_screen_handler);
+
+ SigninScreenHandler(const SigninScreenHandler&) = delete;
+ SigninScreenHandler& operator=(const SigninScreenHandler&) = delete;
+
~SigninScreenHandler() override;
static std::string GetUserLastInputMethod(const std::string& username);
@@ -138,10 +143,6 @@ class SigninScreenHandler
// configurations like MSAN, where it otherwise triggers on every run.
void SetOfflineTimeoutForTesting(base::TimeDelta offline_timeout);
- // Gets the keyboard remapped pref value for `pref_name` key. Returns true if
- // successful, otherwise returns false.
- bool GetKeyboardRemappedPrefValue(const std::string& pref_name, int* value);
-
private:
friend class GaiaScreenHandler;
friend class ash::LoginDisplayHostMojo;
@@ -212,11 +213,6 @@ class SigninScreenHandler
const std::string& password,
bool authenticated_by_pin);
- // Returns true iff
- // (i) log in is restricted to some user list,
- // (ii) all users in the restricted list are present.
- bool AllAllowlistedUsersPresent();
-
// Returns true if current visible screen is the Gaia sign-in page.
bool IsGaiaVisible();
@@ -301,8 +297,6 @@ class SigninScreenHandler
std::unique_ptr<AccountId> focused_pod_account_id_;
base::WeakPtrFactory<SigninScreenHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(SigninScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/signin_userlist_unittest.cc b/chromium/chrome/browser/ui/webui/chromeos/login/signin_userlist_unittest.cc
index 64f52c07033..c3ec5890087 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/signin_userlist_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/signin_userlist_unittest.cc
@@ -48,6 +48,10 @@ class SigninPrepareUserListTest : public testing::Test,
: fake_user_manager_(new FakeChromeUserManager()),
user_manager_enabler_(base::WrapUnique(fake_user_manager_)) {}
+ SigninPrepareUserListTest(const SigninPrepareUserListTest&) = delete;
+ SigninPrepareUserListTest& operator=(const SigninPrepareUserListTest&) =
+ delete;
+
~SigninPrepareUserListTest() override {}
// testing::Test:
@@ -94,8 +98,6 @@ class SigninPrepareUserListTest : public testing::Test,
std::unique_ptr<TestingProfileManager> profile_manager_;
std::map<std::string, proximity_auth::mojom::AuthType> user_auth_type_map;
std::unique_ptr<MultiProfileUserController> controller_;
-
- DISALLOW_COPY_AND_ASSIGN(SigninPrepareUserListTest);
};
TEST_F(SigninPrepareUserListTest, AlwaysKeepOwnerInList) {
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/sync_consent_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/sync_consent_screen_handler.h
index b6d6a9bb543..9ea56c8260c 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/sync_consent_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/sync_consent_screen_handler.h
@@ -53,6 +53,10 @@ class SyncConsentScreenHandler : public BaseScreenHandler,
enum class UserChoice { kDeclined = 0, kAccepted = 1, kMaxValue = kAccepted };
explicit SyncConsentScreenHandler(JSCallsContainer* js_calls_container);
+
+ SyncConsentScreenHandler(const SyncConsentScreenHandler&) = delete;
+ SyncConsentScreenHandler& operator=(const SyncConsentScreenHandler&) = delete;
+
~SyncConsentScreenHandler() override;
// BaseScreenHandler:
@@ -102,8 +106,6 @@ class SyncConsentScreenHandler : public BaseScreenHandler,
std::unordered_set<int> known_string_ids_;
ash::SyncConsentScreen* screen_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(SyncConsentScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.cc
index f5a86a9e734..3f207725004 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.cc
@@ -26,7 +26,7 @@
#include "components/user_manager/user.h"
#include "components/user_manager/user_manager.h"
#include "content/public/browser/web_ui.h"
-#include "ui/base/ime/chromeos/input_method_manager.h"
+#include "ui/base/ime/ash/input_method_manager.h"
namespace chromeos {
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.h
index a64d9662bb5..c2fbe27854c 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.h
@@ -54,6 +54,11 @@ class TermsOfServiceScreenHandler : public BaseScreenHandler,
using TView = TermsOfServiceScreenView;
explicit TermsOfServiceScreenHandler(JSCallsContainer* js_calls_container);
+
+ TermsOfServiceScreenHandler(const TermsOfServiceScreenHandler&) = delete;
+ TermsOfServiceScreenHandler& operator=(const TermsOfServiceScreenHandler&) =
+ delete;
+
~TermsOfServiceScreenHandler() override;
// BaseScreenHandler:
@@ -90,8 +95,6 @@ class TermsOfServiceScreenHandler : public BaseScreenHandler,
// Set to the Terms of Service when the download is successful.
std::string terms_of_service_;
-
- DISALLOW_COPY_AND_ASSIGN(TermsOfServiceScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_browsertest.cc b/chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_browsertest.cc
index 1d930404627..ee61066d3f4 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_browsertest.cc
@@ -3,12 +3,15 @@
// found in the LICENSE file.
#include "ash/constants/ash_switches.h"
+#include "base/strings/stringprintf.h"
#include "base/test/scoped_chromeos_version_info.h"
#include "build/branding_buildflags.h"
#include "chrome/browser/ash/login/test/hid_controller_mixin.h"
#include "chrome/browser/ash/login/test/local_state_mixin.h"
+#include "chrome/browser/ash/login/test/login_manager_mixin.h"
#include "chrome/browser/ash/login/test/oobe_base_test.h"
#include "chrome/browser/ash/login/test/test_condition_waiter.h"
+#include "chrome/browser/ash/login/ui/login_display_host.h"
#include "chrome/browser/ash/policy/enrollment/enrollment_requisition_manager.h"
#include "content/public/test/browser_test.h"
@@ -23,6 +26,12 @@ class OobeTestApiTest : public OobeBaseTest {
command_line->AppendSwitch(switches::kEnableOobeTestAPI);
OobeBaseTest::SetUpCommandLine(command_line);
}
+
+ void SetUpOnMainThread() override {
+ OobeBaseTest::SetUpOnMainThread();
+ // Ensure WebUI is loaded to allow Javascript execution.
+ LoginDisplayHost::default_host()->GetWizardController();
+ }
};
IN_PROC_BROWSER_TEST_F(OobeTestApiTest, OobeAPI) {
@@ -99,4 +108,21 @@ IN_PROC_BROWSER_TEST_F(OobeTestApiRemoraRequisitionTest, SkipsEula) {
test::OobeJS().ExpectTrue("OobeAPI.screens.EulaScreen.shouldSkip()");
}
+class OobeTestApiLoginPinTest : public OobeTestApiTest {
+ public:
+ OobeTestApiLoginPinTest() { login_mixin_.AppendRegularUsers(1); }
+
+ protected:
+ ash::LoginManagerMixin login_mixin_{&mixin_host_};
+};
+
+IN_PROC_BROWSER_TEST_F(OobeTestApiLoginPinTest, Success) {
+ test::OobeJS().CreateWaiter("window.OobeAPI")->Wait();
+ const std::string username =
+ login_mixin_.users()[0].account_id.GetUserEmail();
+ test::OobeJS().ExecuteAsync(base::StringPrintf(
+ "OobeAPI.loginWithPin('%s', '123456')", username.c_str()));
+ login_mixin_.WaitForActiveSession();
+}
+
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_handler.cc
index 491a759d4e7..ac6dd2d6e76 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_handler.cc
@@ -1,11 +1,16 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2020 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 "chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_handler.h"
+#include "base/bind.h"
+#include "base/logging.h"
#include "build/branding_buildflags.h"
+#include "chrome/browser/ash/login/startup_utils.h"
#include "chrome/browser/ash/policy/enrollment/enrollment_requisition_manager.h"
+#include "chrome/browser/ui/ash/login_screen_client_impl.h"
+#include "components/account_id/account_id.h"
namespace chromeos {
@@ -19,13 +24,26 @@ OobeTestAPIHandler::~OobeTestAPIHandler() = default;
void OobeTestAPIHandler::DeclareLocalizedValues(
::login::LocalizedValuesBuilder* builder) {}
+void OobeTestAPIHandler::DeclareJSCallbacks() {
+ AddCallback("OobeTestApi.loginWithPin", &OobeTestAPIHandler::LoginWithPin);
+}
+
void OobeTestAPIHandler::Initialize() {}
void OobeTestAPIHandler::GetAdditionalParameters(base::DictionaryValue* dict) {
dict->SetBoolean(
"testapi_shouldSkipEula",
policy::EnrollmentRequisitionManager::IsRemoraRequisition() ||
- !BUILDFLAG(GOOGLE_CHROME_BRANDING));
+ StartupUtils::IsEulaAccepted() || !BUILDFLAG(GOOGLE_CHROME_BRANDING));
+}
+
+void OobeTestAPIHandler::LoginWithPin(const std::string& username,
+ const std::string& pin) {
+ LoginScreenClientImpl::Get()->AuthenticateUserWithPasswordOrPin(
+ AccountId::FromUserEmail(username), pin, /*authenticated_by_pin=*/true,
+ base::BindOnce([](bool success) {
+ LOG_IF(ERROR, !success) << "Failed to authenticate with pin";
+ }));
}
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_handler.h
index 220776d7580..91502f0fb53 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/testapi/oobe_test_api_handler.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2020 The Chromium Authors. All rights reserved.
+// Copyright 2020 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.
@@ -20,8 +20,12 @@ class OobeTestAPIHandler : public BaseWebUIHandler {
// WebUIMessageHandler implementation:
void DeclareLocalizedValues(
::login::LocalizedValuesBuilder* builder) override;
+ void DeclareJSCallbacks() override;
void Initialize() override;
void GetAdditionalParameters(base::DictionaryValue* dict) override;
+
+ private:
+ void LoginWithPin(const std::string& username, const std::string& pin);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/tpm_error_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/tpm_error_screen_handler.cc
index b98482fdf2f..24d01ee04f9 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/tpm_error_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/tpm_error_screen_handler.cc
@@ -12,6 +12,10 @@
#include "components/login/localized_values_builder.h"
namespace chromeos {
+namespace {
+const char kTPMErrorDefaultStep[] = "default";
+const char kTPMErrorOwnedStep[] = "tpm-owned";
+} // namespace
constexpr StaticOobeScreenId TpmErrorView::kScreenId;
@@ -32,6 +36,17 @@ void TpmErrorScreenHandler::DeclareLocalizedValues(
builder->Add("errorTpmFailureReboot", IDS_LOGIN_ERROR_TPM_FAILURE_REBOOT);
builder->Add("errorTpmFailureRebootButton",
IDS_LOGIN_ERROR_TPM_FAILURE_REBOOT_BUTTON);
+
+ builder->Add("errorTPMOwnedTitle",
+ IDS_LOGIN_ERROR_ENROLLMENT_TPM_FAILURE_TITLE);
+ builder->Add("errorTPMOwnedSubtitle",
+ IDS_LOGIN_ERROR_ENROLLMENT_TPM_FAILURE_SUBTITLE);
+ builder->Add("errorTPMOwnedContent",
+ IDS_LOGIN_ERROR_ENROLLMENT_TPM_FAILURE_CONTENT);
+
+ // OS names
+ builder->Add("osInstallChromiumOS", IDS_CHROMIUM_OS_NAME);
+ builder->Add("osInstallCloudReadyOS", IDS_CLOUD_READY_OS_NAME);
}
void TpmErrorScreenHandler::Initialize() {
@@ -49,6 +64,16 @@ void TpmErrorScreenHandler::Show() {
ShowScreen(kScreenId);
}
+void TpmErrorScreenHandler::SetTPMOwnedErrorStep(bool show_tpm_owned_step) {
+ CallJS("login.TPMErrorMessageScreen.setStep",
+ show_tpm_owned_step ? std::string(kTPMErrorOwnedStep)
+ : std::string(kTPMErrorDefaultStep));
+}
+
+void TpmErrorScreenHandler::SetIsBrandedBuild(bool is_branded) {
+ CallJS("login.TPMErrorMessageScreen.setIsBrandedBuild", is_branded);
+}
+
void TpmErrorScreenHandler::Bind(TpmErrorScreen* screen) {
screen_ = screen;
BaseScreenHandler::SetBaseScreen(screen_);
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/tpm_error_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/tpm_error_screen_handler.h
index 95b7ae6c9b8..b3043d347e5 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/tpm_error_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/tpm_error_screen_handler.h
@@ -29,6 +29,13 @@ class TpmErrorView {
// Unbinds the screen from the view.
virtual void Unbind() = 0;
+
+ // Sets corresponding error message when tpm is owned.
+ virtual void SetTPMOwnedErrorStep(bool show_tpm_owned_step) = 0;
+
+ // Sets if build is branded or not to show correct error message when TPM is
+ // owned by other OS.
+ virtual void SetIsBrandedBuild(bool is_branded) = 0;
};
class TpmErrorScreenHandler : public TpmErrorView, public BaseScreenHandler {
@@ -44,6 +51,8 @@ class TpmErrorScreenHandler : public TpmErrorView, public BaseScreenHandler {
void Show() override;
void Bind(ash::TpmErrorScreen* screen) override;
void Unbind() override;
+ void SetTPMOwnedErrorStep(bool show_tpm_owned_step) override;
+ void SetIsBrandedBuild(bool is_branded) override;
// BaseScreenHandler:
void DeclareLocalizedValues(
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/update_required_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/update_required_screen_handler.h
index 886723fe6ed..35eadf5a4ff 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/update_required_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/update_required_screen_handler.h
@@ -76,6 +76,11 @@ class UpdateRequiredScreenHandler : public UpdateRequiredView,
using TView = UpdateRequiredView;
explicit UpdateRequiredScreenHandler(JSCallsContainer* js_calls_container);
+
+ UpdateRequiredScreenHandler(const UpdateRequiredScreenHandler&) = delete;
+ UpdateRequiredScreenHandler& operator=(const UpdateRequiredScreenHandler&) =
+ delete;
+
~UpdateRequiredScreenHandler() override;
private:
@@ -108,8 +113,6 @@ class UpdateRequiredScreenHandler : public UpdateRequiredView,
// The domain name for which update required screen is being shown.
std::string domain_;
-
- DISALLOW_COPY_AND_ASSIGN(UpdateRequiredScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/update_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/update_screen_handler.h
index 156d03b19f9..20fb6ce52f5 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/update_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/update_screen_handler.h
@@ -64,6 +64,10 @@ class UpdateScreenHandler : public UpdateView, public BaseScreenHandler {
using TView = UpdateView;
explicit UpdateScreenHandler(JSCallsContainer* js_calls_container);
+
+ UpdateScreenHandler(const UpdateScreenHandler&) = delete;
+ UpdateScreenHandler& operator=(const UpdateScreenHandler&) = delete;
+
~UpdateScreenHandler() override;
private:
@@ -93,8 +97,6 @@ class UpdateScreenHandler : public UpdateView, public BaseScreenHandler {
// If true, Initialize() will call Show().
bool show_on_init_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(UpdateScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/welcome_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/welcome_screen_handler.cc
index c7fd6d98a12..ea862a0cd6e 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/welcome_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/welcome_screen_handler.cc
@@ -8,6 +8,7 @@
#include <utility>
+#include "ash/constants/ash_features.h"
#include "ash/constants/ash_switches.h"
#include "base/bind.h"
#include "base/callback_helpers.h"
@@ -39,9 +40,9 @@
#include "components/strings/grit/components_strings.h"
#include "components/user_manager/user_manager.h"
#include "content/public/browser/browser_thread.h"
-#include "ui/base/ime/chromeos/component_extension_ime_manager.h"
-#include "ui/base/ime/chromeos/extension_ime_util.h"
-#include "ui/base/ime/chromeos/input_method_manager.h"
+#include "ui/base/ime/ash/component_extension_ime_manager.h"
+#include "ui/base/ime/ash/extension_ime_util.h"
+#include "ui/base/ime/ash/input_method_manager.h"
#include "ui/chromeos/devicetype_utils.h"
namespace chromeos {
@@ -136,27 +137,24 @@ void WelcomeScreenHandler::ShowRemoraRequisitionDialog() {
void WelcomeScreenHandler::DeclareLocalizedValues(
::login::LocalizedValuesBuilder* builder) {
if (policy::EnrollmentRequisitionManager::IsRemoraRequisition()) {
- builder->Add("newWelcomeScreenGreeting", IDS_REMORA_CONFIRM_MESSAGE);
- builder->Add("newWelcomeScreenGreetingSubtitle", IDS_EMPTY_STRING);
builder->Add("welcomeScreenGreeting", IDS_REMORA_CONFIRM_MESSAGE);
+ builder->Add("welcomeScreenGreetingSubtitle", IDS_EMPTY_STRING);
} else {
- builder->AddF("newWelcomeScreenGreeting", IDS_NEW_WELCOME_SCREEN_GREETING,
+ builder->AddF("welcomeScreenGreeting", IDS_NEW_WELCOME_SCREEN_GREETING,
ui::GetChromeOSDeviceTypeResourceId());
- builder->Add("newWelcomeScreenGreetingSubtitle",
+ builder->Add("welcomeScreenGreetingSubtitle",
IDS_WELCOME_SCREEN_GREETING_SUBTITLE);
- builder->Add("welcomeScreenGreeting", IDS_WELCOME_SCREEN_GREETING);
}
builder->Add("welcomeScreenGetStarted", IDS_LOGIN_GET_STARTED);
- builder->Add("welcomeScreenOsInstall", IDS_OOBE_WELCOME_START_OS_INSTALL);
// MD-OOBE (oobe-welcome-element)
builder->Add("debuggingFeaturesLink", IDS_WELCOME_ENABLE_DEV_FEATURES_LINK);
builder->Add("timezoneDropdownLabel", IDS_TIMEZONE_DROPDOWN_LABEL);
builder->Add("oobeOKButtonText", IDS_OOBE_OK_BUTTON_TEXT);
- builder->Add("welcomeNextButtonText", IDS_OOBE_WELCOME_NEXT_BUTTON_TEXT);
builder->Add("languageButtonLabel", IDS_LANGUAGE_BUTTON_LABEL);
builder->Add("languageSectionTitle", IDS_LANGUAGE_SECTION_TITLE);
+ builder->Add("languageSectionHint", IDS_LANGUAGE_SECTION_HINT);
builder->Add("accessibilitySectionTitle", IDS_ACCESSIBILITY_SECTION_TITLE);
builder->Add("accessibilitySectionHint", IDS_ACCESSIBILITY_SECTION_HINT);
builder->Add("timezoneSectionTitle", IDS_TIMEZONE_SECTION_TITLE);
@@ -285,19 +283,17 @@ void WelcomeScreenHandler::GetAdditionalParameters(
if (!language_list)
language_list = GetMinimalUILanguageList();
- const bool enable_layouts = true;
-
dict->SetKey("languageList",
base::Value::FromUniquePtrValue(std::move(language_list)));
dict->SetKey("inputMethodsList",
- GetAndActivateLoginKeyboardLayouts(
- application_locale, selected_input_method, enable_layouts));
+ GetAndActivateLoginKeyboardLayouts(application_locale,
+ selected_input_method));
dict->SetKey("timezoneList", GetTimezoneList());
dict->SetKey("demoModeCountryList", DemoSession::GetCountryList());
- // This switch is set by the session manager if the OS install
- // service is enabled and the OS is running from a USB installer.
- dict->SetKey("osInstallEnabled", base::Value(switches::IsOsInstallAllowed()));
+ dict->SetKey("languagePacksEnabled",
+ base::Value(base::FeatureList::IsEnabled(
+ ash::features::kLanguagePacksHandwriting)));
}
void WelcomeScreenHandler::Initialize() {
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/welcome_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/welcome_screen_handler.h
index 97127ec39de..5dff2d83348 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/welcome_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/welcome_screen_handler.h
@@ -66,6 +66,10 @@ class WelcomeScreenHandler : public WelcomeView, public BaseScreenHandler {
WelcomeScreenHandler(JSCallsContainer* js_calls_container,
CoreOobeView* core_oobe_view);
+
+ WelcomeScreenHandler(const WelcomeScreenHandler&) = delete;
+ WelcomeScreenHandler& operator=(const WelcomeScreenHandler&) = delete;
+
~WelcomeScreenHandler() override;
// WelcomeView:
@@ -120,8 +124,6 @@ class WelcomeScreenHandler : public WelcomeView, public BaseScreenHandler {
bool show_on_init_ = false;
base::CallbackListSubscription accessibility_subscription_;
-
- DISALLOW_COPY_AND_ASSIGN(WelcomeScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/wrong_hwid_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/wrong_hwid_screen_handler.h
index 40aff6b8310..de33d9ab4a6 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/wrong_hwid_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/wrong_hwid_screen_handler.h
@@ -40,6 +40,10 @@ class WrongHWIDScreenHandler : public WrongHWIDScreenView,
using TView = WrongHWIDScreenView;
explicit WrongHWIDScreenHandler(JSCallsContainer* js_calls_container);
+
+ WrongHWIDScreenHandler(const WrongHWIDScreenHandler&) = delete;
+ WrongHWIDScreenHandler& operator=(const WrongHWIDScreenHandler&) = delete;
+
~WrongHWIDScreenHandler() override;
private:
@@ -58,8 +62,6 @@ class WrongHWIDScreenHandler : public WrongHWIDScreenView,
// Keeps whether screen should be shown right after initialization.
bool show_on_init_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(WrongHWIDScreenHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_logs_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_logs_handler.cc
index 990f81e6658..76001fd056a 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_logs_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_logs_handler.cc
@@ -44,7 +44,7 @@ MultideviceLogsHandler::MultideviceLogsHandler() {}
MultideviceLogsHandler::~MultideviceLogsHandler() = default;
void MultideviceLogsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getMultideviceLogMessages",
base::BindRepeating(&MultideviceLogsHandler::HandleGetLogMessages,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_phone_hub_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_phone_hub_handler.cc
index 17017213a91..ccd8288773b 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_phone_hub_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_phone_hub_handler.cc
@@ -5,10 +5,12 @@
#include "chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_phone_hub_handler.h"
#include "ash/public/cpp/system_tray.h"
+#include "base/strings/string_number_conversions.h"
#include "base/time/time.h"
-#include "chrome/browser/chromeos/phonehub/phone_hub_manager_factory.h"
+#include "chrome/browser/ash/phonehub/phone_hub_manager_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chromeos/components/multidevice/logging/logging.h"
+#include "chromeos/components/phonehub/camera_roll_item.h"
#include "chromeos/components/phonehub/fake_phone_hub_manager.h"
#include "chromeos/components/phonehub/pref_names.h"
#include "components/prefs/pref_service.h"
@@ -24,6 +26,7 @@ namespace {
const int kIconSize = 16;
const int kContactImageSize = 80;
const int kSharedImageSize = 400;
+const int kCameraRollThumbnailSize = 96;
// Fake image types used for fields that require gfx::Image().
enum class ImageType {
@@ -95,11 +98,10 @@ void TryAddingMetadata(
return;
// JavaScript time stamps don't fit in int.
- double last_accessed_timestamp;
- if (!browser_tab_metadata->GetDouble("lastAccessedTimeStamp",
- &last_accessed_timestamp)) {
+ absl::optional<double> last_accessed_timestamp =
+ browser_tab_metadata->FindDoubleKey("lastAccessedTimeStamp");
+ if (!last_accessed_timestamp)
return;
- }
int favicon_image_type_as_int;
if (!browser_tab_metadata->GetInteger("favicon",
@@ -113,12 +115,19 @@ void TryAddingMetadata(
ImageTypeToBitmap(favicon_image_type, kIconSize));
auto metadata = phonehub::BrowserTabsModel::BrowserTabMetadata(
- GURL(url), title, base::Time::FromJsTime(last_accessed_timestamp),
+ GURL(url), title, base::Time::FromJsTime(*last_accessed_timestamp),
favicon);
metadatas.push_back(metadata);
}
+const SkBitmap RGB_Bitmap(U8CPU r, U8CPU g, U8CPU b, int size) {
+ SkBitmap bitmap;
+ bitmap.allocN32Pixels(size, size);
+ bitmap.eraseARGB(255, r, g, b);
+ return bitmap;
+}
+
} // namespace
MultidevicePhoneHubHandler::MultidevicePhoneHubHandler() = default;
@@ -129,75 +138,80 @@ MultidevicePhoneHubHandler::~MultidevicePhoneHubHandler() {
}
void MultidevicePhoneHubHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setFakePhoneHubManagerEnabled",
base::BindRepeating(
&MultidevicePhoneHubHandler::HandleEnableFakePhoneHubManager,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setFeatureStatus",
base::BindRepeating(&MultidevicePhoneHubHandler::HandleSetFeatureStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setShowOnboardingFlow",
base::BindRepeating(
&MultidevicePhoneHubHandler::HandleSetShowOnboardingFlow,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setFakePhoneName",
base::BindRepeating(&MultidevicePhoneHubHandler::HandleSetFakePhoneName,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setFakePhoneStatus",
base::BindRepeating(&MultidevicePhoneHubHandler::HandleSetFakePhoneStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setBrowserTabs",
base::BindRepeating(&MultidevicePhoneHubHandler::HandleSetBrowserTabs,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setNotification",
base::BindRepeating(&MultidevicePhoneHubHandler::HandleSetNotification,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeNotification",
base::BindRepeating(&MultidevicePhoneHubHandler::HandleRemoveNotification,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"enableDnd",
base::BindRepeating(&MultidevicePhoneHubHandler::HandleEnableDnd,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setFindMyDeviceStatus",
base::BindRepeating(
&MultidevicePhoneHubHandler::HandleSetFindMyDeviceStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setTetherStatus",
base::BindRepeating(&MultidevicePhoneHubHandler::HandleSetTetherStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"resetShouldShowOnboardingUi",
base::BindRepeating(
&MultidevicePhoneHubHandler::HandleResetShouldShowOnboardingUi,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"resetHasNotificationSetupUiBeenDismissed",
base::BindRepeating(&MultidevicePhoneHubHandler::
HandleResetHasNotificationSetupUiBeenDismissed,
base::Unretained(this)));
+
+ web_ui()->RegisterDeprecatedMessageCallback(
+ "setCameraRoll",
+ base::BindRepeating(&MultidevicePhoneHubHandler::HandleSetCameraRoll,
+ base::Unretained(this)));
}
void MultidevicePhoneHubHandler::OnJavascriptDisallowed() {
@@ -306,7 +320,7 @@ void MultidevicePhoneHubHandler::EnableRealPhoneHubManager() {
PA_LOG(VERBOSE) << "Setting real Phone Hub Manager";
Profile* profile = Profile::FromWebUI(web_ui());
chromeos::phonehub::PhoneHubManager* phone_hub_manager =
- chromeos::phonehub::PhoneHubManagerFactory::GetForProfile(profile);
+ phonehub::PhoneHubManagerFactory::GetForProfile(profile);
ash::SystemTray::Get()->SetPhoneHubManager(phone_hub_manager);
RemoveObservers();
@@ -467,9 +481,10 @@ void MultidevicePhoneHubHandler::HandleSetNotification(
DictToAppMetadata(app_metadata_dict);
// JavaScript time stamps don't fit in int.
- double js_timestamp;
- CHECK(notification_data_dict->GetDouble("timestamp", &js_timestamp));
- auto timestamp = base::Time::FromJsTime(js_timestamp);
+ absl::optional<double> js_timestamp =
+ notification_data_dict->FindDoubleKey("timestamp");
+ CHECK(js_timestamp);
+ auto timestamp = base::Time::FromJsTime(*js_timestamp);
int importance_as_int;
CHECK(notification_data_dict->GetInteger("importance", &importance_as_int));
@@ -548,5 +563,49 @@ void MultidevicePhoneHubHandler::HandleResetHasNotificationSetupUiBeenDismissed(
PA_LOG(VERBOSE) << "Reset kHasDismissedSetupRequiredUi pref";
}
+void MultidevicePhoneHubHandler::HandleSetCameraRoll(
+ const base::ListValue* args) {
+ const base::DictionaryValue* camera_roll_dict = nullptr;
+ CHECK(args->GetDictionary(0, &camera_roll_dict));
+
+ int number_of_thumbnails;
+ CHECK(camera_roll_dict->GetInteger("numberOfThumbnails",
+ &number_of_thumbnails));
+
+ int file_type_as_int;
+ CHECK(camera_roll_dict->GetInteger("fileType", &file_type_as_int));
+ const char* file_type;
+ if (file_type_as_int == 0) {
+ file_type = "image/jpeg";
+ } else {
+ file_type = "video/mp4";
+ }
+
+ if (number_of_thumbnails == 0) {
+ fake_phone_hub_manager_->fake_camera_roll_manager()->ClearCurrentItems();
+ } else {
+ std::vector<phonehub::CameraRollItem> items;
+ // Create items in descending key order
+ for (int i = number_of_thumbnails; i > 0; --i) {
+ phonehub::proto::CameraRollItemMetadata metadata;
+ metadata.set_key(base::NumberToString(i));
+ metadata.set_mime_type(file_type);
+ metadata.set_last_modified_millis(1577865600 + i);
+ metadata.set_file_size_bytes(123456);
+ metadata.set_file_name("fake_file_" + base::NumberToString(i) + ".jpg");
+
+ gfx::Image thumbnail = gfx::Image::CreateFrom1xBitmap(RGB_Bitmap(
+ 255 - i * 192 / number_of_thumbnails,
+ 63 + i * 192 / number_of_thumbnails, 255, kCameraRollThumbnailSize));
+
+ items.emplace_back(metadata, thumbnail);
+ }
+ fake_phone_hub_manager_->fake_camera_roll_manager()->SetCurrentItems(items);
+ }
+
+ PA_LOG(VERBOSE) << "Setting Camera Roll to " << number_of_thumbnails
+ << " thumbnails\nFile Type: " << file_type;
+}
+
} // namespace multidevice
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_phone_hub_handler.h b/chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_phone_hub_handler.h
index 07a1242ab91..1b72153ec89 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_phone_hub_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/multidevice_internals/multidevice_internals_phone_hub_handler.h
@@ -74,6 +74,7 @@ class MultidevicePhoneHubHandler
void HandleResetShouldShowOnboardingUi(const base::ListValue* args);
void HandleResetHasNotificationSetupUiBeenDismissed(
const base::ListValue* args);
+ void HandleSetCameraRoll(const base::ListValue* args);
void AddObservers();
void RemoveObservers();
diff --git a/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.cc b/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.cc
index 603592605b6..a3ea8b3c81e 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.cc
@@ -12,7 +12,7 @@
#include "base/strings/utf_string_conversions.h"
#include "base/system/sys_info.h"
#include "chrome/browser/ash/login/ui/oobe_dialog_size_utils.h"
-#include "chrome/browser/chromeos/multidevice_setup/multidevice_setup_service_factory.h"
+#include "chrome/browser/ash/multidevice_setup/multidevice_setup_service_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/browser_dialogs.h"
diff --git a/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.h b/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.h
index 50763f16398..054dc5cdceb 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.h
@@ -24,6 +24,9 @@ namespace multidevice_setup {
// Chromebook and a phone).
class MultiDeviceSetupDialog : public SystemWebDialogDelegate {
public:
+ MultiDeviceSetupDialog(const MultiDeviceSetupDialog&) = delete;
+ MultiDeviceSetupDialog& operator=(const MultiDeviceSetupDialog&) = delete;
+
// Shows the dialog; if the dialog is already displayed, this function is a
// no-op.
static void Show();
@@ -52,13 +55,15 @@ class MultiDeviceSetupDialog : public SystemWebDialogDelegate {
// List of callbacks that have registered themselves to be invoked once this
// dialog is closed.
std::vector<base::OnceClosure> on_close_callbacks_;
-
- DISALLOW_COPY_AND_ASSIGN(MultiDeviceSetupDialog);
};
class MultiDeviceSetupDialogUI : public ui::MojoWebDialogUI {
public:
explicit MultiDeviceSetupDialogUI(content::WebUI* web_ui);
+
+ MultiDeviceSetupDialogUI(const MultiDeviceSetupDialogUI&) = delete;
+ MultiDeviceSetupDialogUI& operator=(const MultiDeviceSetupDialogUI&) = delete;
+
~MultiDeviceSetupDialogUI() override;
// Instantiates implementor of the mojom::MultiDeviceSetup mojo interface
@@ -69,8 +74,6 @@ class MultiDeviceSetupDialogUI : public ui::MojoWebDialogUI {
private:
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(MultiDeviceSetupDialogUI);
};
} // namespace multidevice_setup
diff --git a/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_handler.cc
index cb3646efa34..eb54cf11931 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_handler.cc
@@ -24,11 +24,11 @@ MultideviceSetupHandler::MultideviceSetupHandler() = default;
MultideviceSetupHandler::~MultideviceSetupHandler() = default;
void MultideviceSetupHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getProfileInfo",
base::BindRepeating(&MultideviceSetupHandler::HandleGetProfileInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"openMultiDeviceSettings",
base::BindRepeating(
&MultideviceSetupHandler::HandleOpenMultiDeviceSettings,
@@ -39,9 +39,8 @@ void MultideviceSetupHandler::HandleGetProfileInfo(
const base::ListValue* args) {
AllowJavascript();
- std::string callback_id;
- bool result = args->GetString(0, &callback_id);
- DCHECK(result);
+ DCHECK(!args->GetList().empty());
+ std::string callback_id = args->GetList()[0].GetString();
const user_manager::User* user =
chromeos::ProfileHelper::Get()->GetUserByProfile(
diff --git a/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_handler.h b/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_handler.h
index 093d0fb03bc..161c4c35d4e 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_handler.h
@@ -16,6 +16,10 @@ namespace multidevice_setup {
class MultideviceSetupHandler : public content::WebUIMessageHandler {
public:
MultideviceSetupHandler();
+
+ MultideviceSetupHandler(const MultideviceSetupHandler&) = delete;
+ MultideviceSetupHandler& operator=(const MultideviceSetupHandler&) = delete;
+
~MultideviceSetupHandler() override;
private:
@@ -24,8 +28,6 @@ class MultideviceSetupHandler : public content::WebUIMessageHandler {
void HandleGetProfileInfo(const base::ListValue* args);
void HandleOpenMultiDeviceSettings(const base::ListValue* args);
-
- DISALLOW_COPY_AND_ASSIGN(MultideviceSetupHandler);
};
} // namespace multidevice_setup
diff --git a/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc b/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc
index c542e606068..bd073c64f61 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc
@@ -18,7 +18,7 @@
#include "chrome/grit/generated_resources.h"
#include "chrome/grit/multidevice_setup_resources.h"
#include "chrome/grit/multidevice_setup_resources_map.h"
-#include "chrome/grit/oobe_resources.h"
+#include "chrome/grit/oobe_conditional_resources.h"
#include "chromeos/grit/chromeos_resources.h"
#include "chromeos/services/multidevice_setup/public/cpp/url_provider.h"
#include "components/login/localized_values_builder.h"
@@ -138,9 +138,6 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source) {
"wifiSyncEnabled",
base::FeatureList::IsEnabled(chromeos::features::kWifiSyncAndroid));
- // TODO(crbug.com/1202135): Remove along with JS part.
- html_source->AddBoolean("newLayoutEnabled", true);
-
for (const auto& entry : GetLocalizedStringsWithPlaceholders())
html_source->AddString(entry.name, entry.localized_string);
diff --git a/chromium/chrome/browser/ui/webui/chromeos/network_logs_message_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/network_logs_message_handler.cc
index 3e5167d8471..00e060e48bf 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/network_logs_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/network_logs_message_handler.cc
@@ -66,10 +66,10 @@ NetworkLogsMessageHandler::~NetworkLogsMessageHandler() = default;
void NetworkLogsMessageHandler::RegisterMessages() {
out_dir_ = GetDownloadsDirectory(web_ui());
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"storeLogs", base::BindRepeating(&NetworkLogsMessageHandler::OnStoreLogs,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setShillDebugging",
base::BindRepeating(&NetworkLogsMessageHandler::OnSetShillDebugging,
base::Unretained(this)));
@@ -85,9 +85,8 @@ void NetworkLogsMessageHandler::Respond(const std::string& callback_id,
}
void NetworkLogsMessageHandler::OnStoreLogs(const base::ListValue* list) {
- CHECK_EQ(2u, list->GetSize());
- std::string callback_id;
- CHECK(list->GetString(0, &callback_id));
+ CHECK_EQ(2u, list->GetList().size());
+ std::string callback_id = list->GetList()[0].GetString();
const base::Value* options;
CHECK(list->Get(1, &options));
AllowJavascript();
@@ -182,10 +181,9 @@ void NetworkLogsMessageHandler::OnWriteSystemLogsCompleted(
void NetworkLogsMessageHandler::OnSetShillDebugging(
const base::ListValue* list) {
- CHECK_EQ(2u, list->GetSize());
- std::string callback_id, subsystem;
- CHECK(list->GetString(0, &callback_id));
- CHECK(list->GetString(1, &subsystem));
+ CHECK_EQ(2u, list->GetList().size());
+ std::string callback_id = list->GetList()[0].GetString();
+ std::string subsystem = list->GetList()[1].GetString();
AllowJavascript();
chromeos::DBusThreadManager::Get()->GetDebugDaemonClient()->SetDebugMode(
subsystem,
diff --git a/chromium/chrome/browser/ui/webui/chromeos/network_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/network_ui.cc
index b8e401c9c0f..4ba3a004dcd 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/network_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/network_ui.cc
@@ -14,7 +14,7 @@
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/values.h"
-#include "chrome/browser/chromeos/net/network_health/network_health_service.h"
+#include "chrome/browser/ash/net/network_health/network_health_service.h"
#include "chrome/browser/extensions/tab_helper.h"
#include "chrome/browser/ui/ash/system_tray_client_impl.h"
#include "chrome/browser/ui/chrome_pages.h"
@@ -110,7 +110,7 @@ class NetworkDiagnosticsMessageHandler : public content::WebUIMessageHandler {
~NetworkDiagnosticsMessageHandler() override = default;
void RegisterMessages() override {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"OpenFeedbackDialog",
base::BindRepeating(
&NetworkDiagnosticsMessageHandler::OpenFeedbackDialog,
@@ -131,54 +131,59 @@ class NetworkDiagnosticsMessageHandler : public content::WebUIMessageHandler {
class NetworkConfigMessageHandler : public content::WebUIMessageHandler {
public:
NetworkConfigMessageHandler() {}
+
+ NetworkConfigMessageHandler(const NetworkConfigMessageHandler&) = delete;
+ NetworkConfigMessageHandler& operator=(const NetworkConfigMessageHandler&) =
+ delete;
+
~NetworkConfigMessageHandler() override {}
// WebUIMessageHandler implementation.
void RegisterMessages() override {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kAddNetwork,
base::BindRepeating(&NetworkConfigMessageHandler::AddNetwork,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kGetNetworkProperties,
base::BindRepeating(
&NetworkConfigMessageHandler::GetShillNetworkProperties,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kGetDeviceProperties,
base::BindRepeating(
&NetworkConfigMessageHandler::GetShillDeviceProperties,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kGetEthernetEAP,
base::BindRepeating(&NetworkConfigMessageHandler::GetShillEthernetEAP,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kOpenCellularActivationUi,
base::BindRepeating(
&NetworkConfigMessageHandler::OpenCellularActivationUi,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kResetESimCache,
base::BindRepeating(&NetworkConfigMessageHandler::ResetESimCache,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kShowNetworkDetails,
base::BindRepeating(&NetworkConfigMessageHandler::ShowNetworkDetails,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kShowNetworkConfig,
base::BindRepeating(&NetworkConfigMessageHandler::ShowNetworkConfig,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kShowAddNewWifiNetworkDialog,
base::BindRepeating(&NetworkConfigMessageHandler::ShowAddNewWifi,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kGetHostname,
base::BindRepeating(&NetworkConfigMessageHandler::GetHostname,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kSetHostname,
base::BindRepeating(&NetworkConfigMessageHandler::SetHostname,
base::Unretained(this)));
@@ -191,10 +196,9 @@ class NetworkConfigMessageHandler : public content::WebUIMessageHandler {
}
void GetShillNetworkProperties(const base::ListValue* arg_list) {
- CHECK_EQ(2u, arg_list->GetSize());
- std::string callback_id, guid;
- CHECK(arg_list->GetString(0, &callback_id));
- CHECK(arg_list->GetString(1, &guid));
+ CHECK_EQ(2u, arg_list->GetList().size());
+ std::string callback_id = arg_list->GetList()[0].GetString();
+ std::string guid = arg_list->GetList()[1].GetString();
std::string service_path;
if (!GetServicePathFromGuid(guid, &service_path)) {
@@ -227,10 +231,9 @@ class NetworkConfigMessageHandler : public content::WebUIMessageHandler {
}
void GetShillDeviceProperties(const base::ListValue* arg_list) {
- CHECK_EQ(2u, arg_list->GetSize());
- std::string callback_id, type;
- CHECK(arg_list->GetString(0, &callback_id));
- CHECK(arg_list->GetString(1, &type));
+ CHECK_EQ(2u, arg_list->GetList().size());
+ std::string callback_id = arg_list->GetList()[0].GetString();
+ std::string type = arg_list->GetList()[1].GetString();
const DeviceState* device =
NetworkHandler::Get()->network_state_handler()->GetDeviceStateByType(
@@ -247,9 +250,8 @@ class NetworkConfigMessageHandler : public content::WebUIMessageHandler {
}
void GetShillEthernetEAP(const base::ListValue* arg_list) {
- CHECK_EQ(1u, arg_list->GetSize());
- std::string callback_id;
- CHECK(arg_list->GetString(0, &callback_id));
+ CHECK_EQ(1u, arg_list->GetList().size());
+ std::string callback_id = arg_list->GetList()[0].GetString();
NetworkStateHandler::NetworkStateList list;
NetworkHandler::Get()->network_state_handler()->GetNetworkListByType(
@@ -272,9 +274,8 @@ class NetworkConfigMessageHandler : public content::WebUIMessageHandler {
}
void OpenCellularActivationUi(const base::ListValue* arg_list) {
- CHECK_EQ(1u, arg_list->GetSize());
- std::string callback_id;
- CHECK(arg_list->GetString(0, &callback_id));
+ CHECK_EQ(1u, arg_list->GetList().size());
+ std::string callback_id = arg_list->GetList()[0].GetString();
const NetworkState* cellular_network =
NetworkHandler::Get()->network_state_handler()->FirstNetworkByType(
@@ -300,17 +301,15 @@ class NetworkConfigMessageHandler : public content::WebUIMessageHandler {
}
void ShowNetworkDetails(const base::ListValue* arg_list) {
- CHECK_EQ(1u, arg_list->GetSize());
- std::string guid;
- CHECK(arg_list->GetString(0, &guid));
+ CHECK_EQ(1u, arg_list->GetList().size());
+ std::string guid = arg_list->GetList()[0].GetString();
InternetDetailDialog::ShowDialog(guid);
}
void ShowNetworkConfig(const base::ListValue* arg_list) {
- CHECK_EQ(1u, arg_list->GetSize());
- std::string guid;
- CHECK(arg_list->GetString(0, &guid));
+ CHECK_EQ(1u, arg_list->GetList().size());
+ std::string guid = arg_list->GetList()[0].GetString();
InternetConfigDialog::ShowDialogForNetworkId(guid);
}
@@ -338,18 +337,16 @@ class NetworkConfigMessageHandler : public content::WebUIMessageHandler {
}
void GetHostname(const base::ListValue* arg_list) {
- CHECK_EQ(1u, arg_list->GetSize());
- std::string callback_id;
- CHECK(arg_list->GetString(0, &callback_id));
+ CHECK_EQ(1u, arg_list->GetList().size());
+ std::string callback_id = arg_list->GetList()[0].GetString();
std::string hostname =
NetworkHandler::Get()->network_state_handler()->hostname();
Respond(callback_id, base::Value(hostname));
}
void SetHostname(const base::ListValue* arg_list) {
- CHECK_EQ(1u, arg_list->GetSize());
- std::string hostname;
- CHECK(arg_list->GetString(0, &hostname));
+ CHECK_EQ(1u, arg_list->GetList().size());
+ std::string hostname = arg_list->GetList()[0].GetString();
NET_LOG(USER) << "SET HOSTNAME: " << hostname;
NetworkHandler::Get()->network_state_handler()->SetHostname(hostname);
}
@@ -379,14 +376,12 @@ class NetworkConfigMessageHandler : public content::WebUIMessageHandler {
}
void AddNetwork(const base::ListValue* args) {
- std::string onc_type;
- args->GetString(0, &onc_type);
+ DCHECK(!args->GetList().empty());
+ std::string onc_type = args->GetList()[0].GetString();
InternetConfigDialog::ShowDialogForNetworkType(onc_type);
}
base::WeakPtrFactory<NetworkConfigMessageHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(NetworkConfigMessageHandler);
};
// static
diff --git a/chromium/chrome/browser/ui/webui/chromeos/network_ui.h b/chromium/chrome/browser/ui/webui/chromeos/network_ui.h
index b650d21ae11..2388556100e 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/network_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/network_ui.h
@@ -23,6 +23,10 @@ namespace chromeos {
class NetworkUI : public ui::MojoWebUIController {
public:
explicit NetworkUI(content::WebUI* web_ui);
+
+ NetworkUI(const NetworkUI&) = delete;
+ NetworkUI& operator=(const NetworkUI&) = delete;
+
~NetworkUI() override;
static void GetLocalizedStrings(base::DictionaryValue* localized_strings);
@@ -51,8 +55,6 @@ class NetworkUI : public ui::MojoWebUIController {
private:
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(NetworkUI);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/onc_import_message_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/onc_import_message_handler.cc
index 4fdc47bf01a..cdd46055848 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/onc_import_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/onc_import_message_handler.cc
@@ -26,7 +26,7 @@ OncImportMessageHandler::OncImportMessageHandler() = default;
OncImportMessageHandler::~OncImportMessageHandler() = default;
void OncImportMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"importONC", base::BindRepeating(&OncImportMessageHandler::OnImportONC,
base::Unretained(this)));
}
@@ -41,10 +41,9 @@ void OncImportMessageHandler::Respond(const std::string& callback_id,
}
void OncImportMessageHandler::OnImportONC(const base::ListValue* list) {
- CHECK_EQ(2u, list->GetSize());
- std::string callback_id, onc_blob;
- CHECK(list->GetString(0, &callback_id));
- CHECK(list->GetString(1, &onc_blob));
+ CHECK_EQ(2u, list->GetList().size());
+ std::string callback_id = list->GetList()[0].GetString();
+ std::string onc_blob = list->GetList()[1].GetString();
AllowJavascript();
GetNSSCertDatabaseForProfile(
Profile::FromWebUI(web_ui()),
diff --git a/chromium/chrome/browser/ui/webui/chromeos/parent_access/BUILD.gn b/chromium/chrome/browser/ui/webui/chromeos/parent_access/BUILD.gn
new file mode 100644
index 00000000000..156d1745354
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/parent_access/BUILD.gn
@@ -0,0 +1,9 @@
+# Copyright 2021 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.
+
+import("//mojo/public/tools/bindings/mojom.gni")
+
+mojom("mojo_bindings") {
+ sources = [ "parent_access_ui.mojom" ]
+}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/parent_access/DIR_METADATA b/chromium/chrome/browser/ui/webui/chromeos/parent_access/DIR_METADATA
new file mode 100644
index 00000000000..4f57b75de61
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/parent_access/DIR_METADATA
@@ -0,0 +1,3 @@
+buganizer {
+ component_id: 1090157
+}
diff --git a/chromium/chrome/browser/ui/webui/chromeos/parent_access/OWNERS b/chromium/chrome/browser/ui/webui/chromeos/parent_access/OWNERS
new file mode 100644
index 00000000000..f4d11de22fb
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/parent_access/OWNERS
@@ -0,0 +1,6 @@
+danan@chromium.org
+lienh@chromium.org
+agawronska@chromium.org
+
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_dialog.cc b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_dialog.cc
new file mode 100644
index 00000000000..3ffaf82f4d9
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_dialog.cc
@@ -0,0 +1,70 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/chromeos/parent_access/parent_access_dialog.h"
+
+#include <memory>
+#include <string>
+#include <utility>
+
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h"
+#include "chrome/common/webui_url_constants.h"
+#include "chrome/grit/generated_resources.h"
+#include "ui/base/l10n/l10n_util.h"
+
+namespace chromeos {
+
+namespace {
+
+constexpr int kDialogHeightDp = 608;
+constexpr int kDialogWidthDp = 768;
+
+} // namespace
+
+// static
+ParentAccessDialog::ShowError ParentAccessDialog::Show(gfx::NativeView parent) {
+ ParentAccessDialog* current_instance = GetInstance();
+ if (current_instance) {
+ return ShowError::kDialogAlreadyVisible;
+ }
+ Profile* profile = ProfileManager::GetPrimaryUserProfile();
+ if (!profile->IsChild()) {
+ return ShowError::kNotAChildUser;
+ }
+
+ // Note: |current_instance|'s memory is freed when
+ // SystemWebDialogDelegate::OnDialogClosed() is called.
+ current_instance = new ParentAccessDialog();
+ current_instance->ShowSystemDialogForBrowserContext(profile, parent);
+ return ShowError::kNone;
+}
+
+// static
+ParentAccessDialog* ParentAccessDialog::GetInstance() {
+ return static_cast<ParentAccessDialog*>(
+ SystemWebDialogDelegate::FindInstance(chrome::kChromeUIParentAccessURL));
+}
+
+ui::ModalType ParentAccessDialog::GetDialogModalType() const {
+ return ui::ModalType::MODAL_TYPE_SYSTEM;
+}
+
+void ParentAccessDialog::GetDialogSize(gfx::Size* size) const {
+ size->SetSize(kDialogWidthDp, kDialogHeightDp);
+}
+
+bool ParentAccessDialog::ShouldCloseDialogOnEscape() const {
+ return true;
+}
+
+ParentAccessDialog::ParentAccessDialog()
+ : SystemWebDialogDelegate(
+ GURL(chrome::kChromeUIParentAccessURL),
+ l10n_util::GetStringUTF16(IDS_PARENT_ACCESS_PAGE_TITLE)) {}
+
+ParentAccessDialog::~ParentAccessDialog() = default;
+
+} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_dialog.h b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_dialog.h
new file mode 100644
index 00000000000..e8b2b69c2bc
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_dialog.h
@@ -0,0 +1,42 @@
+// Copyright 2021 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.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_PARENT_ACCESS_PARENT_ACCESS_DIALOG_H_
+#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_PARENT_ACCESS_PARENT_ACCESS_DIALOG_H_
+
+#include "chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h"
+
+namespace chromeos {
+
+// Dialog which embeds the Parent Access UI, which verifies a parent during
+// a child session.
+class ParentAccessDialog : public SystemWebDialogDelegate {
+ public:
+ // Error state returned by the Show() function.
+ enum ShowError { kNone, kDialogAlreadyVisible, kNotAChildUser };
+
+ // Shows the dialog; if the dialog is already displayed, this returns an
+ // error.
+ // TODO(b/200853161): Add parameter which is passed over the the Mojo bridge.
+ static ShowError Show(gfx::NativeView parent);
+
+ static ParentAccessDialog* GetInstance();
+
+ explicit ParentAccessDialog(const ParentAccessDialog&) = delete;
+ ParentAccessDialog& operator=(const ParentAccessDialog&) = delete;
+
+ // ui::WebDialogDelegate:
+ ui::ModalType GetDialogModalType() const override;
+ void GetDialogSize(gfx::Size* size) const override;
+ bool ShouldCloseDialogOnEscape() const override;
+
+ protected:
+ // TODO(b/200853161): Add parameter which is passed over the the Mojo bridge.
+ ParentAccessDialog();
+ ~ParentAccessDialog() override;
+};
+
+} // namespace chromeos
+
+#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_PARENT_ACCESS_PARENT_ACCESS_DIALOG_H_
diff --git a/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.cc
new file mode 100644
index 00000000000..8a06300be61
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.cc
@@ -0,0 +1,110 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.h"
+
+#include <utility>
+
+#include "base/command_line.h"
+#include "base/strings/stringprintf.h"
+#include "base/system/sys_info.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/signin/identity_manager_factory.h"
+#include "chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.mojom.h"
+#include "chrome/common/webui_url_constants.h"
+#include "chrome/grit/browser_resources.h"
+#include "chrome/grit/generated_resources.h"
+#include "components/google/core/common/google_util.h"
+#include "content/public/browser/web_ui.h"
+#include "content/public/browser/web_ui_data_source.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+
+namespace chromeos {
+
+namespace {
+
+const char kParentAccessDefaultURL[] =
+ "https://families.google.com/parentaccess#pac";
+const char kParentAccessSwitch[] = "parent-access-url";
+
+// Returns the URL of the Parent Access flow from the command-line switch,
+// or the default value if it's not defined.
+GURL GetParentAccessURL() {
+ std::string url;
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ if (command_line->HasSwitch(kParentAccessSwitch)) {
+ url = command_line->GetSwitchValueASCII(kParentAccessSwitch);
+ } else {
+ url = kParentAccessDefaultURL;
+ DCHECK(GURL(url).DomainIs("google.com"));
+ }
+ const GURL base_url(url);
+ GURL::Replacements replacements;
+ // TODO(b/200853161): Set caller id from params.
+ std::string query_string = base::StringPrintf(
+ "callerid=2fdd8d6e&cros-origin=chrome://parent-access");
+ replacements.SetQueryStr(query_string);
+ const GURL result = base_url.ReplaceComponents(replacements);
+ DCHECK(result.is_valid()) << "Invalid URL \"" << url << "\" for switch \""
+ << kParentAccessSwitch << "\"";
+ return result;
+}
+
+} // namespace
+
+ParentAccessUI::ParentAccessUI(content::WebUI* web_ui)
+ : ui::MojoWebUIController(web_ui) {
+ // Set up the basic page framework.
+ SetUpResources();
+}
+
+ParentAccessUI::~ParentAccessUI() = default;
+
+void ParentAccessUI::BindInterface(
+ mojo::PendingReceiver<parent_access_ui::mojom::ParentAccessUIHandler>
+ receiver) {
+ signin::IdentityManager* identity_manager =
+ IdentityManagerFactory::GetForProfile(Profile::FromWebUI(web_ui()));
+
+ mojo_api_handler_ = std::make_unique<ParentAccessUIHandlerImpl>(
+ std::move(receiver), web_ui(), identity_manager);
+}
+
+void ParentAccessUI::SetUpResources() {
+ Profile* profile = Profile::FromWebUI(web_ui());
+ std::unique_ptr<content::WebUIDataSource> source(
+ content::WebUIDataSource::Create(chrome::kChromeUIParentAccessHost));
+
+ // Initialize parent access URL from the command-line arguments (if provided).
+ web_content_url_ = GetParentAccessURL();
+ // The Polymer JS bundle requires this at the moment because it sets innerHTML
+ // on an element, which violates the Trusted Types CSP.
+ source->DisableTrustedTypesCSP();
+ source->EnableReplaceI18nInJS();
+
+ // Forward data to the WebUI.
+ source->AddResourcePath("parent_access_ui.js", IDR_PARENT_ACCESS_UI_JS);
+
+ source->AddLocalizedString("pageTitle", IDS_PARENT_ACCESS_PAGE_TITLE);
+ source->AddResourcePath("parent_access_ui.mojom-lite.js",
+ IDR_PARENT_ACCESS_UI_MOJOM_LITE_JS);
+
+ source->UseStringsJs();
+ source->SetDefaultResource(IDR_PARENT_ACCESS_HTML);
+ source->AddString("webviewUrl", web_content_url_.spec());
+ source->AddString("eventOriginFilter", web_content_url_.GetOrigin().spec());
+ source->AddString("platformVersion", base::SysInfo::OperatingSystemVersion());
+
+ // Forward the browser language code.
+ source->AddString(
+ "languageCode",
+ google_util::GetGoogleLocale(g_browser_process->GetApplicationLocale()));
+
+ content::WebUIDataSource::Add(profile, source.release());
+}
+
+WEB_UI_CONTROLLER_TYPE_IMPL(ParentAccessUI)
+
+} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.h b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.h
new file mode 100644
index 00000000000..8e7d5619bd5
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.h
@@ -0,0 +1,49 @@
+// Copyright 2021 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.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_PARENT_ACCESS_PARENT_ACCESS_UI_H_
+#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_PARENT_ACCESS_PARENT_ACCESS_UI_H_
+
+#include <memory>
+
+#include "chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.mojom-forward.h"
+#include "chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui_handler_impl.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "ui/webui/mojo_web_ui_controller.h"
+#include "url/gurl.h"
+
+namespace chromeos {
+
+// Controller for the ParentAccessUI, a WebUI which enables parent verification.
+// It is hosted at chrome://parent-access.
+class ParentAccessUI : public ui::MojoWebUIController {
+ public:
+ explicit ParentAccessUI(content::WebUI* web_ui);
+ ParentAccessUI(const ParentAccessUI&) = delete;
+ ParentAccessUI& operator=(const ParentAccessUI&) = delete;
+
+ ~ParentAccessUI() override;
+
+ // Instantiates the implementor of the mojom::ParentAccessUIHandler mojo
+ // interface passing the pending receiver that will be internally bound.
+ void BindInterface(
+ mojo::PendingReceiver<parent_access_ui::mojom::ParentAccessUIHandler>
+ receiver);
+
+ private:
+ void SetUpResources();
+
+ std::unique_ptr<parent_access_ui::mojom::ParentAccessUIHandler>
+ mojo_api_handler_;
+
+ // The URL for the remote web content embedded in the WebUI's webview (not to
+ // be confused with the chrome:// URL for the WebUI itself).
+ GURL web_content_url_;
+
+ WEB_UI_CONTROLLER_TYPE_DECL();
+};
+
+} // namespace chromeos
+
+#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_PARENT_ACCESS_PARENT_ACCESS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.mojom b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.mojom
new file mode 100644
index 00000000000..e645ee21ca9
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.mojom
@@ -0,0 +1,18 @@
+// Copyright 2021 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.
+
+module parent_access_ui.mojom;
+
+enum GetOAuthTokenStatus {
+ kSuccess,
+ kError,
+ kOnlyOneFetchAtATime,
+};
+
+// Interface that supports integration between the ParentAccess WebUI and
+// ChromeOS.
+interface ParentAccessUIHandler {
+ // Returns the oauth token to be passed to the server.
+ GetOAuthToken() => (GetOAuthTokenStatus status, string oauth_token);
+};
diff --git a/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui_handler_impl.cc b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui_handler_impl.cc
new file mode 100644
index 00000000000..08747b0ce40
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui_handler_impl.cc
@@ -0,0 +1,71 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui_handler_impl.h"
+
+#include <string>
+
+#include "base/notreached.h"
+#include "chrome/browser/signin/identity_manager_factory.h"
+#include "chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.mojom.h"
+#include "components/signin/public/identity_manager/access_token_fetcher.h"
+#include "components/signin/public/identity_manager/access_token_info.h"
+#include "components/signin/public/identity_manager/consent_level.h"
+#include "components/signin/public/identity_manager/identity_manager.h"
+#include "components/signin/public/identity_manager/scope_set.h"
+#include "google_apis/gaia/gaia_constants.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+
+namespace chromeos {
+
+ParentAccessUIHandlerImpl::ParentAccessUIHandlerImpl(
+ mojo::PendingReceiver<parent_access_ui::mojom::ParentAccessUIHandler>
+ receiver,
+ content::WebUI* web_ui,
+ signin::IdentityManager* identity_manager)
+ : identity_manager_(identity_manager),
+ receiver_(this, std::move(receiver)) {}
+
+ParentAccessUIHandlerImpl::~ParentAccessUIHandlerImpl() = default;
+
+void ParentAccessUIHandlerImpl::GetOAuthToken(GetOAuthTokenCallback callback) {
+ signin::ScopeSet scopes;
+ scopes.insert(GaiaConstants::kKidsSupervisionSetupChildOAuth2Scope);
+
+ if (oauth2_access_token_fetcher_) {
+ // Only one GetOAuthToken call can happen at a time.
+ std::move(callback).Run(
+ parent_access_ui::mojom::GetOAuthTokenStatus::kOnlyOneFetchAtATime, "");
+ return;
+ }
+
+ oauth2_access_token_fetcher_ =
+ identity_manager_->CreateAccessTokenFetcherForAccount(
+ identity_manager_->GetPrimaryAccountId(signin::ConsentLevel::kSignin),
+ "parent_access", scopes,
+ base::BindOnce(&ParentAccessUIHandlerImpl::OnAccessTokenFetchComplete,
+ weak_ptr_factory_.GetWeakPtr(), std::move(callback)),
+ signin::AccessTokenFetcher::Mode::kImmediate);
+}
+
+void ParentAccessUIHandlerImpl::OnAccessTokenFetchComplete(
+ GetOAuthTokenCallback callback,
+ GoogleServiceAuthError error,
+ signin::AccessTokenInfo access_token_info) {
+ oauth2_access_token_fetcher_.reset();
+ if (error.state() != GoogleServiceAuthError::NONE) {
+ DLOG(ERROR) << "ParentAccessUIHandlerImpl: OAuth2 token request failed. "
+ << error.state() << ": " << error.ToString();
+
+ std::move(callback).Run(
+ parent_access_ui::mojom::GetOAuthTokenStatus::kError,
+ "" /* No token */);
+ return;
+ }
+ std::move(callback).Run(
+ parent_access_ui::mojom::GetOAuthTokenStatus::kSuccess,
+ access_token_info.token);
+}
+
+} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui_handler_impl.h b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui_handler_impl.h
new file mode 100644
index 00000000000..a199ea0d62a
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui_handler_impl.h
@@ -0,0 +1,61 @@
+// Copyright 2021 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.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_PARENT_ACCESS_PARENT_ACCESS_UI_HANDLER_IMPL_H_
+#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_PARENT_ACCESS_PARENT_ACCESS_UI_HANDLER_IMPL_H_
+
+#include <memory>
+
+#include "base/memory/weak_ptr.h"
+#include "chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.mojom.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "mojo/public/cpp/bindings/receiver.h"
+
+namespace content {
+class WebUI;
+} // namespace content
+
+namespace signin {
+class AccessTokenFetcher;
+struct AccessTokenInfo;
+class IdentityManager;
+} // namespace signin
+
+class GoogleServiceAuthError;
+
+namespace chromeos {
+
+class ParentAccessUIHandlerImpl
+ : public parent_access_ui::mojom::ParentAccessUIHandler {
+ public:
+ ParentAccessUIHandlerImpl(
+ mojo::PendingReceiver<parent_access_ui::mojom::ParentAccessUIHandler>
+ receiver,
+ content::WebUI* web_ui,
+ signin::IdentityManager* identity_manager);
+ ParentAccessUIHandlerImpl(const ParentAccessUIHandlerImpl&) = delete;
+ ParentAccessUIHandlerImpl& operator=(const ParentAccessUIHandlerImpl&) =
+ delete;
+ ~ParentAccessUIHandlerImpl() override;
+
+ // parent_access_ui::mojom::ParentAccessUIHandlerImpl overrides:
+ void GetOAuthToken(GetOAuthTokenCallback callback) override;
+
+ private:
+ void OnAccessTokenFetchComplete(GetOAuthTokenCallback callback,
+ GoogleServiceAuthError error,
+ signin::AccessTokenInfo access_token_info);
+
+ // Used to fetch OAuth2 access tokens.
+ signin::IdentityManager* identity_manager_ = nullptr;
+ std::unique_ptr<signin::AccessTokenFetcher> oauth2_access_token_fetcher_;
+
+ mojo::Receiver<parent_access_ui::mojom::ParentAccessUIHandler> receiver_;
+
+ base::WeakPtrFactory<ParentAccessUIHandlerImpl> weak_ptr_factory_{this};
+};
+
+} // namespace chromeos
+
+#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_PARENT_ACCESS_PARENT_ACCESS_UI_HANDLER_IMPL_H_
diff --git a/chromium/chrome/browser/ui/webui/chromeos/power_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/power_ui.cc
index 1cb4bbc6d98..1f5f65963f7 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/power_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/power_ui.cc
@@ -75,19 +75,19 @@ PowerMessageHandler::~PowerMessageHandler() {
}
void PowerMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kRequestBatteryChargeDataCallback,
base::BindRepeating(&PowerMessageHandler::OnGetBatteryChargeData,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kRequestCpuIdleDataCallback,
base::BindRepeating(&PowerMessageHandler::OnGetCpuIdleData,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kRequestCpuFreqDataCallback,
base::BindRepeating(&PowerMessageHandler::OnGetCpuFreqData,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kRequestProcessUsageDataCallback,
base::BindRepeating(&PowerMessageHandler::OnGetProcessUsageData,
base::Unretained(this)));
@@ -155,7 +155,7 @@ void PowerMessageHandler::OnGetCpuFreqData(const base::ListValue* value) {
void PowerMessageHandler::OnGetProcessUsageData(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
diff --git a/chromium/chrome/browser/ui/webui/chromeos/power_ui.h b/chromium/chrome/browser/ui/webui/chromeos/power_ui.h
index 19e21c903b5..4823aa024b4 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/power_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/power_ui.h
@@ -13,10 +13,11 @@ namespace chromeos {
class PowerUI : public content::WebUIController {
public:
explicit PowerUI(content::WebUI* web_ui);
- ~PowerUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(PowerUI);
+ PowerUI(const PowerUI&) = delete;
+ PowerUI& operator=(const PowerUI&) = delete;
+
+ ~PowerUI() override;
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/set_time_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/set_time_ui.cc
index 05edb592aec..bfb95aead7a 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/set_time_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/set_time_ui.cc
@@ -17,9 +17,9 @@
#include "base/scoped_observation.h"
#include "base/values.h"
#include "chrome/browser/ash/child_accounts/parent_access_code/parent_access_service.h"
+#include "chrome/browser/ash/set_time_dialog.h"
#include "chrome/browser/ash/settings/cros_settings.h"
#include "chrome/browser/ash/system/timezone_util.h"
-#include "chrome/browser/chromeos/set_time_dialog.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/webui_util.h"
#include "chrome/common/url_constants.h"
@@ -47,23 +47,27 @@ class SetTimeMessageHandler : public content::WebUIMessageHandler,
public system::TimezoneSettings::Observer {
public:
SetTimeMessageHandler() : weak_factory_(this) {}
+
+ SetTimeMessageHandler(const SetTimeMessageHandler&) = delete;
+ SetTimeMessageHandler& operator=(const SetTimeMessageHandler&) = delete;
+
~SetTimeMessageHandler() override = default;
// WebUIMessageHandler:
void RegisterMessages() override {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setTimePageReady",
base::BindRepeating(&SetTimeMessageHandler::OnPageReady,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setTimeInSeconds",
base::BindRepeating(&SetTimeMessageHandler::OnSetTime,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setTimezone",
base::BindRepeating(&SetTimeMessageHandler::OnSetTimezone,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"doneClicked", base::BindRepeating(&SetTimeMessageHandler::DoneClicked,
base::Unretained(this)));
}
@@ -108,11 +112,11 @@ class SetTimeMessageHandler : public content::WebUIMessageHandler,
// selects a new time zone. Expects the time zone ID as a string, as it
// appears in the time zone option values.
void OnSetTimezone(const base::ListValue* args) {
- std::string timezone_id;
- if (!args->GetString(0, &timezone_id)) {
+ if (args->GetList().empty() || !args->GetList()[0].is_string()) {
NOTREACHED();
return;
}
+ std::string timezone_id = args->GetList()[0].GetString();
Profile* profile = Profile::FromWebUI(web_ui());
DCHECK(profile);
@@ -153,8 +157,6 @@ class SetTimeMessageHandler : public content::WebUIMessageHandler,
system::TimezoneSettings::Observer>
timezone_observation_{this};
base::WeakPtrFactory<SetTimeMessageHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(SetTimeMessageHandler);
};
} // namespace
diff --git a/chromium/chrome/browser/ui/webui/chromeos/set_time_ui.h b/chromium/chrome/browser/ui/webui/chromeos/set_time_ui.h
index a63a0ed5f92..2eefeaaba2e 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/set_time_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/set_time_ui.h
@@ -14,10 +14,11 @@ namespace chromeos {
class SetTimeUI : public ui::WebDialogUI {
public:
explicit SetTimeUI(content::WebUI* web_ui);
- ~SetTimeUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(SetTimeUI);
+ SetTimeUI(const SetTimeUI&) = delete;
+ SetTimeUI& operator=(const SetTimeUI&) = delete;
+
+ ~SetTimeUI() override;
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/slow_trace_ui.h b/chromium/chrome/browser/ui/webui/chromeos/slow_trace_ui.h
index aa719c2f58b..0abb5c99ce1 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/slow_trace_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/slow_trace_ui.h
@@ -26,6 +26,10 @@ namespace chromeos {
class SlowTraceSource : public content::URLDataSource {
public:
SlowTraceSource();
+
+ SlowTraceSource(const SlowTraceSource&) = delete;
+ SlowTraceSource& operator=(const SlowTraceSource&) = delete;
+
~SlowTraceSource() override;
// content::URLDataSource implementation.
@@ -40,16 +44,14 @@ class SlowTraceSource : public content::URLDataSource {
private:
void OnGetTraceData(content::URLDataSource::GotDataCallback callback,
scoped_refptr<base::RefCountedString> trace_data);
-
- DISALLOW_COPY_AND_ASSIGN(SlowTraceSource);
};
class SlowTraceController : public content::WebUIController {
public:
explicit SlowTraceController(content::WebUI* web_ui);
- private:
- DISALLOW_COPY_AND_ASSIGN(SlowTraceController);
+ SlowTraceController(const SlowTraceController&) = delete;
+ SlowTraceController& operator=(const SlowTraceController&) = delete;
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/slow_ui.cc b/chromium/chrome/browser/ui/webui/chromeos/slow_ui.cc
index 53df03e13b1..5d7bfc3c254 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/slow_ui.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/slow_ui.cc
@@ -63,6 +63,10 @@ content::WebUIDataSource* CreateSlowUIHTMLSource() {
class SlowHandler : public WebUIMessageHandler {
public:
explicit SlowHandler(Profile* profile);
+
+ SlowHandler(const SlowHandler&) = delete;
+ SlowHandler& operator=(const SlowHandler&) = delete;
+
~SlowHandler() override;
// WebUIMessageHandler implementation.
@@ -78,8 +82,6 @@ class SlowHandler : public WebUIMessageHandler {
Profile* profile_;
std::unique_ptr<PrefChangeRegistrar> user_pref_registrar_;
-
- DISALLOW_COPY_AND_ASSIGN(SlowHandler);
};
// SlowHandler ------------------------------------------------------------
@@ -91,13 +93,13 @@ SlowHandler::~SlowHandler() {
}
void SlowHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kJsApiDisableTracing,
base::BindRepeating(&SlowHandler::HandleDisable, base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kJsApiEnableTracing,
base::BindRepeating(&SlowHandler::HandleEnable, base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kJsApiLoadComplete,
base::BindRepeating(&SlowHandler::LoadComplete, base::Unretained(this)));
@@ -141,4 +143,3 @@ SlowUI::SlowUI(content::WebUI* web_ui) : WebUIController(web_ui) {
}
} // namespace chromeos
-
diff --git a/chromium/chrome/browser/ui/webui/chromeos/slow_ui.h b/chromium/chrome/browser/ui/webui/chromeos/slow_ui.h
index 3ba37aecd91..f5fadd5481f 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/slow_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/slow_ui.h
@@ -16,8 +16,8 @@ class SlowUI : public content::WebUIController {
public:
explicit SlowUI(content::WebUI* web_ui);
- private:
- DISALLOW_COPY_AND_ASSIGN(SlowUI);
+ SlowUI(const SlowUI&) = delete;
+ SlowUI& operator=(const SlowUI&) = delete;
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_credentials_dialog.h b/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_credentials_dialog.h
index a55736acbe2..56aa8224185 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_credentials_dialog.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_credentials_dialog.h
@@ -21,6 +21,9 @@ class SmbCredentialsDialog : public SystemWebDialogDelegate {
const std::string& username,
const std::string& password)>;
+ SmbCredentialsDialog(const SmbCredentialsDialog&) = delete;
+ SmbCredentialsDialog& operator=(const SmbCredentialsDialog&) = delete;
+
// Shows the dialog, and runs |callback| when the user responds with a
// username/password, or the dialog is closed. If a dialog is currently being
// shown for |mount_id|, the existing dialog will be focused and its callback
@@ -47,20 +50,20 @@ class SmbCredentialsDialog : public SystemWebDialogDelegate {
const std::string mount_id_;
const std::string share_path_;
RequestCallback callback_;
-
- DISALLOW_COPY_AND_ASSIGN(SmbCredentialsDialog);
};
class SmbCredentialsDialogUI : public ui::WebDialogUI {
public:
explicit SmbCredentialsDialogUI(content::WebUI* web_ui);
+
+ SmbCredentialsDialogUI(const SmbCredentialsDialogUI&) = delete;
+ SmbCredentialsDialogUI& operator=(const SmbCredentialsDialogUI&) = delete;
+
~SmbCredentialsDialogUI() override;
private:
void OnUpdateCredentials(const std::string& username,
const std::string& password);
-
- DISALLOW_COPY_AND_ASSIGN(SmbCredentialsDialogUI);
};
} // namespace smb_dialog
diff --git a/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.cc
index 042a60b4a41..62f5443fc12 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.cc
@@ -42,39 +42,31 @@ SmbHandler::SmbHandler(Profile* profile,
SmbHandler::~SmbHandler() = default;
void SmbHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"smbMount",
base::BindRepeating(&SmbHandler::HandleSmbMount, base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"startDiscovery", base::BindRepeating(&SmbHandler::HandleStartDiscovery,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"updateCredentials",
base::BindRepeating(&SmbHandler::HandleUpdateCredentials,
base::Unretained(this)));
}
void SmbHandler::HandleSmbMount(const base::ListValue* args) {
- CHECK_EQ(8U, args->GetSize());
- std::string callback_id;
- CHECK(args->GetString(0, &callback_id));
-
- std::string mount_url;
- std::string mount_name;
- std::string username;
- std::string password;
- bool use_kerberos;
- bool should_open_file_manager_after_mount;
- bool save_credentials;
- CHECK(args->GetString(1, &mount_url));
- CHECK(args->GetString(2, &mount_name));
- CHECK(args->GetString(3, &username));
- CHECK(args->GetString(4, &password));
- CHECK(args->GetBoolean(5, &use_kerberos));
- CHECK(args->GetBoolean(6, &should_open_file_manager_after_mount));
- CHECK(args->GetBoolean(7, &save_credentials));
+ CHECK_EQ(8U, args->GetList().size());
+
+ std::string callback_id = args->GetList()[0].GetString();
+ std::string mount_url = args->GetList()[1].GetString();
+ std::string mount_name = args->GetList()[2].GetString();
+ std::string username = args->GetList()[3].GetString();
+ std::string password = args->GetList()[4].GetString();
+ bool use_kerberos = args->GetList()[5].GetBool();
+ bool should_open_file_manager_after_mount = args->GetList()[6].GetBool();
+ bool save_credentials = args->GetList()[7].GetBool();
smb_client::SmbService* const service = GetSmbService(profile_);
if (!service) {
@@ -135,15 +127,11 @@ void SmbHandler::HandleGatherSharesResponse(
}
void SmbHandler::HandleUpdateCredentials(const base::ListValue* args) {
- CHECK_EQ(3U, args->GetSize());
-
- std::string mount_id;
- std::string username;
- std::string password;
+ CHECK_EQ(3U, args->GetList().size());
- CHECK(args->GetString(0, &mount_id));
- CHECK(args->GetString(1, &username));
- CHECK(args->GetString(2, &password));
+ std::string mount_id = args->GetList()[0].GetString();
+ std::string username = args->GetList()[1].GetString();
+ std::string password = args->GetList()[2].GetString();
DCHECK(update_cred_callback_);
std::move(update_cred_callback_).Run(username, password);
diff --git a/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.h b/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.h
index 8123cd4bea4..7c327bf3f9d 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.h
@@ -25,6 +25,10 @@ class SmbHandler : public content::WebUIMessageHandler {
const std::string& password)>;
SmbHandler(Profile* profile, UpdateCredentialsCallback update_cred_callback);
+
+ SmbHandler(const SmbHandler&) = delete;
+ SmbHandler& operator=(const SmbHandler&) = delete;
+
~SmbHandler() override;
private:
@@ -57,8 +61,6 @@ class SmbHandler : public content::WebUIMessageHandler {
Profile* const profile_;
UpdateCredentialsCallback update_cred_callback_;
base::WeakPtrFactory<SmbHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(SmbHandler);
};
} // namespace smb_dialog
diff --git a/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_share_dialog.h b/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_share_dialog.h
index c59fc216b68..27ea4355cc2 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_share_dialog.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/smb_shares/smb_share_dialog.h
@@ -14,6 +14,9 @@ namespace smb_dialog {
class SmbShareDialog : public SystemWebDialogDelegate {
public:
+ SmbShareDialog(const SmbShareDialog&) = delete;
+ SmbShareDialog& operator=(const SmbShareDialog&) = delete;
+
// Shows the dialog.
static void Show();
@@ -24,16 +27,16 @@ class SmbShareDialog : public SystemWebDialogDelegate {
// ui::WebDialogDelegate
void GetDialogSize(gfx::Size* size) const override;
bool ShouldShowCloseButton() const override;
-
- DISALLOW_COPY_AND_ASSIGN(SmbShareDialog);
};
class SmbShareDialogUI : public ui::WebDialogUI {
public:
explicit SmbShareDialogUI(content::WebUI* web_ui);
- ~SmbShareDialogUI() override;
- DISALLOW_COPY_AND_ASSIGN(SmbShareDialogUI);
+ SmbShareDialogUI(const SmbShareDialogUI&) = delete;
+ SmbShareDialogUI& operator=(const SmbShareDialogUI&) = delete;
+
+ ~SmbShareDialogUI() override;
};
} // namespace smb_dialog
diff --git a/chromium/chrome/browser/ui/webui/chromeos/sync/os_sync_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/sync/os_sync_handler.cc
index ead97e836ea..d252290b96a 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/sync/os_sync_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/sync/os_sync_handler.cc
@@ -37,23 +37,23 @@ OSSyncHandler::~OSSyncHandler() {
}
void OSSyncHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"DidNavigateToOsSyncPage",
base::BindRepeating(&OSSyncHandler::HandleDidNavigateToOsSyncPage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"DidNavigateAwayFromOsSyncPage",
base::BindRepeating(&OSSyncHandler::HandleDidNavigateAwayFromOsSyncPage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"OsSyncPrefsDispatch",
base::BindRepeating(&OSSyncHandler::HandleOsSyncPrefsDispatch,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SetOsSyncFeatureEnabled",
base::BindRepeating(&OSSyncHandler::HandleSetOsSyncFeatureEnabled,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SetOsSyncDatatypes",
base::BindRepeating(&OSSyncHandler::HandleSetOsSyncDatatypes,
base::Unretained(this)));
@@ -92,7 +92,7 @@ void OSSyncHandler::HandleDidNavigateAwayFromOsSyncPage(
}
void OSSyncHandler::HandleSetOsSyncFeatureEnabled(const base::ListValue* args) {
- CHECK_EQ(1u, args->GetSize());
+ CHECK_EQ(1u, args->GetList().size());
CHECK(args->GetBoolean(0, &feature_enabled_));
should_commit_feature_enabled_ = true;
// Changing the feature enabled state may change toggle state.
@@ -100,7 +100,7 @@ void OSSyncHandler::HandleSetOsSyncFeatureEnabled(const base::ListValue* args) {
}
void OSSyncHandler::HandleSetOsSyncDatatypes(const base::ListValue* args) {
- CHECK_EQ(1u, args->GetSize());
+ CHECK_EQ(1u, args->GetList().size());
const base::DictionaryValue* result;
CHECK(args->GetDictionary(0, &result));
diff --git a/chromium/chrome/browser/ui/webui/chromeos/sync/os_sync_handler.h b/chromium/chrome/browser/ui/webui/chromeos/sync/os_sync_handler.h
index fc1037d69df..9beb3bcb118 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/sync/os_sync_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/sync/os_sync_handler.h
@@ -25,6 +25,10 @@ class OSSyncHandler : public content::WebUIMessageHandler,
public syncer::SyncServiceObserver {
public:
explicit OSSyncHandler(Profile* profile);
+
+ OSSyncHandler(const OSSyncHandler&) = delete;
+ OSSyncHandler& operator=(const OSSyncHandler&) = delete;
+
~OSSyncHandler() override;
// content::WebUIMessageHandler:
@@ -68,8 +72,6 @@ class OSSyncHandler : public content::WebUIMessageHandler,
// Prevents messages to JS layer while data type prefs are being set.
bool is_setting_prefs_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(OSSyncHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_SYNC_OS_SYNC_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_message_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_message_handler.cc
index 2cb0b461c0d..d3bcf8980e3 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_message_handler.cc
@@ -204,7 +204,7 @@ SysInternalsMessageHandler::SysInternalsMessageHandler() {}
SysInternalsMessageHandler::~SysInternalsMessageHandler() {}
void SysInternalsMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getSysInfo",
base::BindRepeating(&SysInternalsMessageHandler::HandleGetSysInfo,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_message_handler.h b/chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_message_handler.h
index 6e84b36f0b2..f8f551fa4cb 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_message_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_message_handler.h
@@ -17,6 +17,11 @@
class SysInternalsMessageHandler : public content::WebUIMessageHandler {
public:
SysInternalsMessageHandler();
+
+ SysInternalsMessageHandler(const SysInternalsMessageHandler&) = delete;
+ SysInternalsMessageHandler& operator=(const SysInternalsMessageHandler&) =
+ delete;
+
~SysInternalsMessageHandler() override;
// content::WebUIMessageHandler methods:
@@ -60,8 +65,6 @@ class SysInternalsMessageHandler : public content::WebUIMessageHandler {
void ReplySysInfo(base::Value callback_id, base::Value result);
base::WeakPtrFactory<SysInternalsMessageHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(SysInternalsMessageHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_SYS_INTERNALS_SYS_INTERNALS_MESSAGE_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_ui.h b/chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_ui.h
index c842e39f1b4..79cbff84f00 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/sys_internals/sys_internals_ui.h
@@ -12,10 +12,11 @@
class SysInternalsUI : public content::WebUIController {
public:
explicit SysInternalsUI(content::WebUI* web_ui);
- ~SysInternalsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(SysInternalsUI);
+ SysInternalsUI(const SysInternalsUI&) = delete;
+ SysInternalsUI& operator=(const SysInternalsUI&) = delete;
+
+ ~SysInternalsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_SYS_INTERNALS_SYS_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/chromeos/system_web_dialog_browsertest.cc b/chromium/chrome/browser/ui/webui/chromeos/system_web_dialog_browsertest.cc
index 89cce2debae..5f58a1e7a5a 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/system_web_dialog_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/system_web_dialog_browsertest.cc
@@ -36,6 +36,10 @@ class MockSystemWebDialog : public SystemWebDialogDelegate {
if (id)
id_ = std::string(id);
}
+
+ MockSystemWebDialog(const MockSystemWebDialog&) = delete;
+ MockSystemWebDialog& operator=(const MockSystemWebDialog&) = delete;
+
~MockSystemWebDialog() override = default;
const std::string& Id() override { return id_; }
@@ -43,7 +47,6 @@ class MockSystemWebDialog : public SystemWebDialogDelegate {
private:
std::string id_;
- DISALLOW_COPY_AND_ASSIGN(MockSystemWebDialog);
};
} // namespace
@@ -53,13 +56,14 @@ class SystemWebDialogLoginTest : public LoginManagerTest {
SystemWebDialogLoginTest() : LoginManagerTest() {
login_mixin_.AppendRegularUsers(1);
}
+
+ SystemWebDialogLoginTest(const SystemWebDialogLoginTest&) = delete;
+ SystemWebDialogLoginTest& operator=(const SystemWebDialogLoginTest&) = delete;
+
~SystemWebDialogLoginTest() override = default;
protected:
LoginManagerMixin login_mixin_{&mixin_host_};
-
- private:
- DISALLOW_COPY_AND_ASSIGN(SystemWebDialogLoginTest);
};
using SystemWebDialogOobeTest = OobeBaseTest;
diff --git a/chromium/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h b/chromium/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h
index b786116c80e..480da505594 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h
@@ -8,6 +8,7 @@
#include <string>
#include <vector>
+#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "ui/gfx/geometry/size.h"
#include "ui/views/widget/widget.h"
@@ -47,6 +48,10 @@ class SystemWebDialogDelegate : public ui::WebDialogDelegate {
// |gurl| is the HTML file path for the dialog content and must be set.
// |title| may be empty in which case ShouldShowDialogTitle() returns false.
SystemWebDialogDelegate(const GURL& gurl, const std::u16string& title);
+
+ SystemWebDialogDelegate(const SystemWebDialogDelegate&) = delete;
+ SystemWebDialogDelegate& operator=(const SystemWebDialogDelegate&) = delete;
+
~SystemWebDialogDelegate() override;
// Returns an identifier used for matching an instance in FindInstance.
@@ -114,8 +119,6 @@ class SystemWebDialogDelegate : public ui::WebDialogDelegate {
content::WebUI* webui_ = nullptr;
ui::ModalType modal_type_;
gfx::NativeWindow dialog_window_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(SystemWebDialogDelegate);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/user_image_source.cc b/chromium/chrome/browser/ui/webui/chromeos/user_image_source.cc
index 17f2659dbc7..981abd604d9 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/user_image_source.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/user_image_source.cc
@@ -120,7 +120,7 @@ scoped_refptr<base::RefCountedMemory> GetUserImageInternal(
const user_manager::User* user =
user_manager::UserManager::Get()->FindUser(account_id);
- ui::ResourceScaleFactor scale_factor = ui::SCALE_FACTOR_100P;
+ ui::ResourceScaleFactor scale_factor = ui::k100Percent;
// Use the scaling that matches primary display. These source images are
// 96x96 and often used at that size in WebUI pages.
display::Screen* screen = display::Screen::GetScreen();
@@ -148,7 +148,7 @@ scoped_refptr<base::RefCountedMemory> GetUserImageInternal(
}
if (user->HasDefaultImage()) {
return LoadUserImageFrameForScaleFactor(
- default_user_image::kDefaultImageResourceIDs[user->image_index()],
+ default_user_image::GetDefaultImageResourceId(user->image_index()),
frame, scale_factor);
}
NOTREACHED() << "User with custom image missing data bytes";
diff --git a/chromium/chrome/browser/ui/webui/chromeos/user_image_source.h b/chromium/chrome/browser/ui/webui/chromeos/user_image_source.h
index 4e6374d5b69..adb832200ad 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/user_image_source.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/user_image_source.h
@@ -27,6 +27,10 @@ namespace chromeos {
class UserImageSource : public content::URLDataSource {
public:
UserImageSource();
+
+ UserImageSource(const UserImageSource&) = delete;
+ UserImageSource& operator=(const UserImageSource&) = delete;
+
~UserImageSource() override;
// content::URLDataSource implementation.
@@ -42,9 +46,6 @@ class UserImageSource : public content::URLDataSource {
// the 100%-scale asset.
static scoped_refptr<base::RefCountedMemory> GetUserImage(
const AccountId& account_id);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(UserImageSource);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/chromeos/video_source.h b/chromium/chrome/browser/ui/webui/chromeos/video_source.h
index 48ac2d4dfc1..cb0394c030b 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/video_source.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/video_source.h
@@ -25,6 +25,10 @@ namespace chromeos {
class VideoSource : public content::URLDataSource {
public:
VideoSource();
+
+ VideoSource(const VideoSource&) = delete;
+ VideoSource& operator=(const VideoSource&) = delete;
+
~VideoSource() override;
// content::URLDataSource:
@@ -46,8 +50,6 @@ class VideoSource : public content::URLDataSource {
scoped_refptr<base::SequencedTaskRunner> task_runner_;
base::WeakPtrFactory<VideoSource> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(VideoSource);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/commander/commander_handler.cc b/chromium/chrome/browser/ui/webui/commander/commander_handler.cc
index 27d0784a0df..33187dff642 100644
--- a/chromium/chrome/browser/ui/webui/commander/commander_handler.cc
+++ b/chromium/chrome/browser/ui/webui/commander/commander_handler.cc
@@ -34,22 +34,22 @@ CommanderHandler::CommanderHandler() = default;
CommanderHandler::~CommanderHandler() = default;
void CommanderHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kTextChangedMessage,
base::BindRepeating(&CommanderHandler::HandleTextChanged,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kOptionSelectedMessage,
base::BindRepeating(&CommanderHandler::HandleOptionSelected,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kCompositeCommandCancelledMessage,
base::BindRepeating(&CommanderHandler::HandleCompositeCommandCancelled,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kDismissMessage, base::BindRepeating(&CommanderHandler::HandleDismiss,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kHeightChangedMessage,
base::BindRepeating(&CommanderHandler::HandleHeightChanged,
base::Unretained(this)));
@@ -67,7 +67,7 @@ void CommanderHandler::OnJavascriptAllowed() {
void CommanderHandler::HandleTextChanged(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1u, args->GetSize());
+ CHECK_EQ(1u, args->GetList().size());
std::string text = args->GetList()[0].GetString();
if (delegate_)
delegate_->OnTextChanged(base::UTF8ToUTF16(text));
@@ -75,7 +75,7 @@ void CommanderHandler::HandleTextChanged(const base::ListValue* args) {
void CommanderHandler::HandleOptionSelected(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(2u, args->GetSize());
+ CHECK_EQ(2u, args->GetList().size());
int index = args->GetList()[0].GetInt();
int result_set_id = args->GetList()[1].GetInt();
if (delegate_)
@@ -96,7 +96,7 @@ void CommanderHandler::HandleDismiss(const base::ListValue* args) {
}
void CommanderHandler::HandleHeightChanged(const base::ListValue* args) {
- CHECK_EQ(1u, args->GetSize());
+ CHECK_EQ(1u, args->GetList().size());
int new_height = args->GetList()[0].GetInt();
if (delegate_)
delegate_->OnHeightChanged(new_height);
diff --git a/chromium/chrome/browser/ui/webui/commander/commander_ui.cc b/chromium/chrome/browser/ui/webui/commander/commander_ui.cc
index 9562b55edc8..25da2b29f8d 100644
--- a/chromium/chrome/browser/ui/webui/commander/commander_ui.cc
+++ b/chromium/chrome/browser/ui/webui/commander/commander_ui.cc
@@ -23,6 +23,10 @@ CommanderUI::CommanderUI(content::WebUI* web_ui)
content::WebUIDataSource* source =
content::WebUIDataSource::Create(chrome::kChromeUICommanderHost);
+ // TODO(lgrey): Localize when these are no longer temp.
+ source->AddString("placeholder", "Type to search Chrome Commands…");
+ source->AddString("noResults", "No Chrome Commands found.");
+ source->AddString("pageTitle", "Commander");
webui::SetupWebUIDataSource(
source, base::make_span(kCommanderResources, kCommanderResourcesSize),
IDR_COMMANDER_COMMANDER_HTML);
diff --git a/chromium/chrome/browser/ui/webui/commander/commander_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/commander/commander_ui_browsertest.cc
index ef96a8feb18..481597f2b72 100644
--- a/chromium/chrome/browser/ui/webui/commander/commander_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/commander/commander_ui_browsertest.cc
@@ -107,9 +107,9 @@ IN_PROC_BROWSER_TEST_F(CommanderUITest, Dismiss) {
}
IN_PROC_BROWSER_TEST_F(CommanderUITest, HeightChanged) {
- EXPECT_EQ(height_changed_invocations().size(), 0u);
+ size_t calls = height_changed_invocations().size();
ExecuteJS("chrome.send('heightChanged', [42])");
- ASSERT_EQ(height_changed_invocations().size(), 1u);
+ ASSERT_EQ(height_changed_invocations().size(), calls + 1);
ASSERT_EQ(height_changed_invocations().back(), 42);
}
diff --git a/chromium/chrome/browser/ui/webui/components/components_handler.cc b/chromium/chrome/browser/ui/webui/components/components_handler.cc
index 50e4525c4ec..ce9b00121c0 100644
--- a/chromium/chrome/browser/ui/webui/components/components_handler.cc
+++ b/chromium/chrome/browser/ui/webui/components/components_handler.cc
@@ -23,12 +23,12 @@ ComponentsHandler::ComponentsHandler(
ComponentsHandler::~ComponentsHandler() = default;
void ComponentsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestComponentsData",
base::BindRepeating(&ComponentsHandler::HandleRequestComponentsData,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"checkUpdate", base::BindRepeating(&ComponentsHandler::HandleCheckUpdate,
base::Unretained(this)));
}
@@ -57,7 +57,7 @@ void ComponentsHandler::HandleRequestComponentsData(
// state e.g. If component state is currently updating then we need to disable
// button. (https://code.google.com/p/chromium/issues/detail?id=272540)
void ComponentsHandler::HandleCheckUpdate(const base::ListValue* args) {
- if (args->GetSize() != 1) {
+ if (args->GetList().size() != 1) {
NOTREACHED();
return;
}
diff --git a/chromium/chrome/browser/ui/webui/components/components_handler_unittest.cc b/chromium/chrome/browser/ui/webui/components/components_handler_unittest.cc
index 6f480a66a95..d86e93bad46 100644
--- a/chromium/chrome/browser/ui/webui/components/components_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/components/components_handler_unittest.cc
@@ -28,7 +28,7 @@ TEST(ComponentsHandlerTest, RemovesObserver) {
{
TestComponentsHandler handler(&mock_service);
base::ListValue args;
- args.AppendString("unused");
+ args.Append("unused");
handler.HandleRequestComponentsData(&args);
}
}
diff --git a/chromium/chrome/browser/ui/webui/components/components_ui.h b/chromium/chrome/browser/ui/webui/components/components_ui.h
index 747c6761825..9e3c2954ef1 100644
--- a/chromium/chrome/browser/ui/webui/components/components_ui.h
+++ b/chromium/chrome/browser/ui/webui/components/components_ui.h
@@ -16,13 +16,14 @@ class RefCountedMemory;
class ComponentsUI : public content::WebUIController {
public:
explicit ComponentsUI(content::WebUI* web_ui);
+
+ ComponentsUI(const ComponentsUI&) = delete;
+ ComponentsUI& operator=(const ComponentsUI&) = delete;
+
~ComponentsUI() override;
static base::RefCountedMemory* GetFaviconResourceBytes(
ui::ResourceScaleFactor scale_factor);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ComponentsUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_COMPONENTS_COMPONENTS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/conflicts/DIR_METADATA b/chromium/chrome/browser/ui/webui/conflicts/DIR_METADATA
new file mode 100644
index 00000000000..71d433d3d62
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/conflicts/DIR_METADATA
@@ -0,0 +1 @@
+mixins: "//chrome/browser/win/conflicts/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/conflicts/conflicts_data_fetcher.cc b/chromium/chrome/browser/ui/webui/conflicts/conflicts_data_fetcher.cc
index 9fc6374b8e5..c3a0e20629c 100644
--- a/chromium/chrome/browser/ui/webui/conflicts/conflicts_data_fetcher.cc
+++ b/chromium/chrome/browser/ui/webui/conflicts/conflicts_data_fetcher.cc
@@ -479,7 +479,7 @@ void ConflictsDataFetcher::OnModuleDatabaseIdle() {
ModuleDatabase::GetInstance()->RemoveObserver(this);
base::DictionaryValue results;
- results.SetInteger("moduleCount", module_list_->GetSize());
+ results.SetInteger("moduleCount", module_list_->GetList().size());
results.Set("moduleList", std::move(module_list_));
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
diff --git a/chromium/chrome/browser/ui/webui/conflicts/conflicts_data_fetcher.h b/chromium/chrome/browser/ui/webui/conflicts/conflicts_data_fetcher.h
index e9b21a08043..3b0fbea3945 100644
--- a/chromium/chrome/browser/ui/webui/conflicts/conflicts_data_fetcher.h
+++ b/chromium/chrome/browser/ui/webui/conflicts/conflicts_data_fetcher.h
@@ -35,6 +35,9 @@ class ConflictsDataFetcher : public ModuleDatabaseObserver {
using OnConflictsDataFetchedCallback =
base::OnceCallback<void(base::DictionaryValue results)>;
+ ConflictsDataFetcher(const ConflictsDataFetcher&) = delete;
+ ConflictsDataFetcher& operator=(const ConflictsDataFetcher&) = delete;
+
~ConflictsDataFetcher() override;
// Creates the instance and initializes it on the ModuleDatabase task runner.
@@ -78,8 +81,6 @@ class ConflictsDataFetcher : public ModuleDatabaseObserver {
base::WeakPtrFactory<ConflictsDataFetcher> weak_ptr_factory_;
#endif
-
- DISALLOW_COPY_AND_ASSIGN(ConflictsDataFetcher);
};
#endif // CHROME_BROWSER_UI_WEBUI_CONFLICTS_CONFLICTS_DATA_FETCHER_H_
diff --git a/chromium/chrome/browser/ui/webui/conflicts/conflicts_handler.cc b/chromium/chrome/browser/ui/webui/conflicts/conflicts_handler.cc
index 013e61657b4..ebb56995df4 100644
--- a/chromium/chrome/browser/ui/webui/conflicts/conflicts_handler.cc
+++ b/chromium/chrome/browser/ui/webui/conflicts/conflicts_handler.cc
@@ -20,7 +20,7 @@ ConflictsHandler::~ConflictsHandler() = default;
void ConflictsHandler::RegisterMessages() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestModuleList",
base::BindRepeating(&ConflictsHandler::HandleRequestModuleList,
base::Unretained(this)));
@@ -32,7 +32,7 @@ void ConflictsHandler::HandleRequestModuleList(const base::ListValue* args) {
// Make sure the JS doesn't call 'requestModuleList' more than once.
// TODO(739291): It would be better to kill the renderer instead of the
// browser for malformed messages.
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
CHECK(args->GetString(0, &module_list_callback_id_));
conflicts_data_fetcher_ = ConflictsDataFetcher::Create(
diff --git a/chromium/chrome/browser/ui/webui/conflicts/conflicts_handler.h b/chromium/chrome/browser/ui/webui/conflicts/conflicts_handler.h
index e10db79f2a0..e2af5ab16a1 100644
--- a/chromium/chrome/browser/ui/webui/conflicts/conflicts_handler.h
+++ b/chromium/chrome/browser/ui/webui/conflicts/conflicts_handler.h
@@ -22,6 +22,10 @@ class Listvalue;
class ConflictsHandler : public content::WebUIMessageHandler {
public:
ConflictsHandler();
+
+ ConflictsHandler(const ConflictsHandler&) = delete;
+ ConflictsHandler& operator=(const ConflictsHandler&) = delete;
+
~ConflictsHandler() override;
private:
@@ -41,8 +45,6 @@ class ConflictsHandler : public content::WebUIMessageHandler {
ConflictsDataFetcher::UniquePtr conflicts_data_fetcher_;
base::WeakPtrFactory<ConflictsHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ConflictsHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_CONFLICTS_CONFLICTS_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/conflicts/conflicts_ui.h b/chromium/chrome/browser/ui/webui/conflicts/conflicts_ui.h
index 580b5ca12c8..dc3348dcaee 100644
--- a/chromium/chrome/browser/ui/webui/conflicts/conflicts_ui.h
+++ b/chromium/chrome/browser/ui/webui/conflicts/conflicts_ui.h
@@ -18,11 +18,11 @@ class ConflictsUI : public content::WebUIController {
public:
explicit ConflictsUI(content::WebUI* web_ui);
+ ConflictsUI(const ConflictsUI&) = delete;
+ ConflictsUI& operator=(const ConflictsUI&) = delete;
+
static base::RefCountedMemory* GetFaviconResourceBytes(
ui::ResourceScaleFactor scale_factor);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ConflictsUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_CONFLICTS_CONFLICTS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/connectors_internals/BUILD.gn b/chromium/chrome/browser/ui/webui/connectors_internals/BUILD.gn
new file mode 100644
index 00000000000..fd3d4113cc5
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/connectors_internals/BUILD.gn
@@ -0,0 +1,10 @@
+# Copyright 2021 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.
+
+import("//mojo/public/tools/bindings/mojom.gni")
+
+mojom("mojo_bindings") {
+ sources = [ "connectors_internals.mojom" ]
+ webui_module_path = "/"
+}
diff --git a/chromium/chrome/browser/ui/webui/connectors_internals/OWNERS b/chromium/chrome/browser/ui/webui/connectors_internals/OWNERS
new file mode 100644
index 00000000000..fb1c272ea9a
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/connectors_internals/OWNERS
@@ -0,0 +1,4 @@
+file://chrome/browser/enterprise/connectors/OWNERS
+
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS \ No newline at end of file
diff --git a/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals.mojom b/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals.mojom
new file mode 100644
index 00000000000..b369b0c3a8c
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals.mojom
@@ -0,0 +1,20 @@
+// Copyright 2021 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.
+
+module connectors_internals.mojom;
+
+struct ZeroTrustState {
+ // Whether the connector is enabled or not.
+ bool is_enabled;
+
+ // Dictionary containing device signals.
+ map<string, string> signals_dictionary;
+};
+
+// Browser interface for the page. Consists of calls for data and hooks for
+// interactivity.
+interface PageHandler {
+ // Get state information about the Zero Trust connector.
+ GetZeroTrustState() => (ZeroTrustState state);
+};
diff --git a/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_page_handler.cc b/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_page_handler.cc
new file mode 100644
index 00000000000..cd896e932a1
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_page_handler.cc
@@ -0,0 +1,58 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/connectors_internals/connectors_internals_page_handler.h"
+
+#include "base/check.h"
+#include "base/containers/flat_map.h"
+#include "chrome/browser/enterprise/connectors/device_trust/device_trust_service.h"
+#include "chrome/browser/enterprise/connectors/device_trust/device_trust_service_factory.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/webui/connectors_internals/connectors_internals.mojom.h"
+#include "chrome/browser/ui/webui/connectors_internals/zero_trust_utils.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "mojo/public/cpp/bindings/receiver.h"
+
+namespace enterprise_connectors {
+
+ConnectorsInternalsPageHandler::ConnectorsInternalsPageHandler(
+ mojo::PendingReceiver<connectors_internals::mojom::PageHandler> receiver,
+ Profile* profile)
+ : receiver_(this, std::move(receiver)), profile_(profile) {
+ DCHECK(profile_);
+}
+
+ConnectorsInternalsPageHandler::~ConnectorsInternalsPageHandler() = default;
+
+void ConnectorsInternalsPageHandler::GetZeroTrustState(
+ GetZeroTrustStateCallback callback) {
+ auto* device_trust_service =
+ DeviceTrustServiceFactory::GetForProfile(profile_);
+
+ // The factory will not return a service if the profile is off-the-record.
+ if (!device_trust_service) {
+ auto state = connectors_internals::mojom::ZeroTrustState::New(
+ false, base::flat_map<std::string, std::string>());
+ std::move(callback).Run(std::move(state));
+ return;
+ }
+
+ // Since this page is used for debugging purposes, show the signals regardless
+ // of the policy value (i.e. even if service->IsEnabled is false).
+ device_trust_service->GetSignals(
+ base::BindOnce(&ConnectorsInternalsPageHandler::OnSignalsCollected,
+ weak_ptr_factory_.GetWeakPtr(), std::move(callback),
+ device_trust_service->IsEnabled()));
+}
+
+void ConnectorsInternalsPageHandler::OnSignalsCollected(
+ GetZeroTrustStateCallback callback,
+ bool is_device_trust_enabled,
+ std::unique_ptr<SignalsType> signals) {
+ auto state = connectors_internals::mojom::ZeroTrustState::New(
+ is_device_trust_enabled, utils::SignalsToMap(std::move(signals)));
+ std::move(callback).Run(std::move(state));
+}
+
+} // namespace enterprise_connectors
diff --git a/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_page_handler.h b/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_page_handler.h
new file mode 100644
index 00000000000..ddc228e1405
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_page_handler.h
@@ -0,0 +1,50 @@
+// Copyright 2021 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.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_CONNECTORS_INTERNALS_CONNECTORS_INTERNALS_PAGE_HANDLER_H_
+#define CHROME_BROWSER_UI_WEBUI_CONNECTORS_INTERNALS_CONNECTORS_INTERNALS_PAGE_HANDLER_H_
+
+#include "base/macros.h"
+#include "base/memory/weak_ptr.h"
+#include "chrome/browser/enterprise/connectors/device_trust/attestation/common/signals_type.h"
+#include "chrome/browser/ui/webui/connectors_internals/connectors_internals.mojom.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "mojo/public/cpp/bindings/receiver.h"
+
+class Profile;
+
+namespace enterprise_connectors {
+
+// Concrete implementation of connectors_internals::mojom::PageHandler.
+class ConnectorsInternalsPageHandler
+ : public connectors_internals::mojom::PageHandler {
+ public:
+ ConnectorsInternalsPageHandler(
+ mojo::PendingReceiver<connectors_internals::mojom::PageHandler> receiver,
+ Profile* profile);
+
+ ConnectorsInternalsPageHandler(const ConnectorsInternalsPageHandler&) =
+ delete;
+ ConnectorsInternalsPageHandler& operator=(
+ const ConnectorsInternalsPageHandler&) = delete;
+
+ ~ConnectorsInternalsPageHandler() override;
+
+ private:
+ // connectors_internals::mojom::ConnectorsInternalsPageHandler
+ void GetZeroTrustState(GetZeroTrustStateCallback callback) override;
+
+ void OnSignalsCollected(GetZeroTrustStateCallback callback,
+ bool is_device_trust_enabled,
+ std::unique_ptr<SignalsType> signals);
+
+ mojo::Receiver<connectors_internals::mojom::PageHandler> receiver_;
+ Profile* profile_;
+
+ base::WeakPtrFactory<ConnectorsInternalsPageHandler> weak_ptr_factory_{this};
+};
+
+} // namespace enterprise_connectors
+
+#endif // CHROME_BROWSER_UI_WEBUI_CONNECTORS_INTERNALS_CONNECTORS_INTERNALS_PAGE_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.cc b/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.cc
new file mode 100644
index 00000000000..2486c5d217d
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.cc
@@ -0,0 +1,55 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h"
+
+#include "base/bind.h"
+#include "base/feature_list.h"
+#include "build/build_config.h"
+#include "chrome/browser/enterprise/connectors/device_trust/device_trust_features.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/webui/connectors_internals/connectors_internals.mojom.h"
+#include "chrome/browser/ui/webui/connectors_internals/connectors_internals_page_handler.h"
+#include "chrome/browser/ui/webui/webui_util.h"
+#include "chrome/common/url_constants.h"
+#include "chrome/grit/browser_resources.h"
+#include "chrome/grit/connectors_internals_resources.h"
+#include "chrome/grit/connectors_internals_resources_map.h"
+#include "content/public/browser/web_ui_data_source.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+
+namespace enterprise_connectors {
+
+ConnectorsInternalsUI::ConnectorsInternalsUI(content::WebUI* web_ui)
+ : ui::MojoWebUIController(web_ui) {
+ content::WebUIDataSource* source = content::WebUIDataSource::Create(
+ chrome::kChromeUIConnectorsInternalsHost);
+
+ Profile* profile = Profile::FromWebUI(web_ui);
+
+ source->AddBoolean("isOtr", profile->IsOffTheRecord());
+ source->AddBoolean(
+ "zeroTrustConnectorEnabled",
+ base::FeatureList::IsEnabled(kDeviceTrustConnectorEnabled));
+
+ webui::SetupWebUIDataSource(
+ source,
+ base::make_span(kConnectorsInternalsResources,
+ kConnectorsInternalsResourcesSize),
+ IDR_CONNECTORS_INTERNALS_INDEX_HTML);
+
+ content::WebUIDataSource::Add(profile, source);
+}
+
+WEB_UI_CONTROLLER_TYPE_IMPL(ConnectorsInternalsUI)
+
+ConnectorsInternalsUI::~ConnectorsInternalsUI() = default;
+
+void ConnectorsInternalsUI::BindInterface(
+ mojo::PendingReceiver<connectors_internals::mojom::PageHandler> receiver) {
+ page_handler_ = std::make_unique<ConnectorsInternalsPageHandler>(
+ std::move(receiver), Profile::FromWebUI(web_ui()));
+}
+
+} // namespace enterprise_connectors
diff --git a/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h b/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h
new file mode 100644
index 00000000000..0470aa7edd5
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h
@@ -0,0 +1,41 @@
+// Copyright 2021 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.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_CONNECTORS_INTERNALS_CONNECTORS_INTERNALS_UI_H_
+#define CHROME_BROWSER_UI_WEBUI_CONNECTORS_INTERNALS_CONNECTORS_INTERNALS_UI_H_
+
+#include <memory>
+
+#include "base/macros.h"
+#include "chrome/browser/ui/webui/connectors_internals/connectors_internals.mojom-forward.h"
+#include "chrome/browser/ui/webui/connectors_internals/connectors_internals_page_handler.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "ui/webui/mojo_web_ui_controller.h"
+
+namespace enterprise_connectors {
+
+// UI controller for chrome://connectors-internals.
+class ConnectorsInternalsUI : public ui::MojoWebUIController {
+ public:
+ explicit ConnectorsInternalsUI(content::WebUI* web_ui);
+
+ ConnectorsInternalsUI(const ConnectorsInternalsUI&) = delete;
+ ConnectorsInternalsUI& operator=(const ConnectorsInternalsUI&) = delete;
+
+ ~ConnectorsInternalsUI() override;
+
+ // Instantiates the implementor of the mojom::PageHandler mojo
+ // interface passing the pending receiver that will be internally bound.
+ void BindInterface(
+ mojo::PendingReceiver<connectors_internals::mojom::PageHandler> receiver);
+
+ private:
+ std::unique_ptr<ConnectorsInternalsPageHandler> page_handler_;
+
+ WEB_UI_CONTROLLER_TYPE_DECL();
+};
+
+} // namespace enterprise_connectors
+
+#endif // CHROME_BROWSER_UI_WEBUI_CONNECTORS_INTERNALS_CONNECTORS_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/connectors_internals/zero_trust_utils.cc b/chromium/chrome/browser/ui/webui/connectors_internals/zero_trust_utils.cc
new file mode 100644
index 00000000000..2a8e3053d1d
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/connectors_internals/zero_trust_utils.cc
@@ -0,0 +1,116 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/connectors_internals/zero_trust_utils.h"
+
+#include "base/strings/string_number_conversions.h"
+
+namespace enterprise_connectors {
+namespace utils {
+
+namespace {
+
+void TrySetSignal(base::flat_map<std::string, std::string>& map,
+ const std::string& key,
+ bool has_value,
+ const std::string& string_value) {
+ if (has_value) {
+ map[key] = string_value;
+ }
+}
+
+void TrySetSignal(base::flat_map<std::string, std::string>& map,
+ const std::string& key,
+ bool has_value,
+ bool bool_value) {
+ if (has_value) {
+ map[key] = bool_value ? "true" : "false";
+ }
+}
+
+void TrySetSignal(base::flat_map<std::string, std::string>& map,
+ const std::string& key,
+ bool has_value,
+ int int_value) {
+ if (has_value) {
+ map[key] = base::NumberToString(int_value);
+ }
+}
+
+} // namespace
+
+base::flat_map<std::string, std::string> SignalsToMap(
+ std::unique_ptr<SignalsType> signals) {
+ base::flat_map<std::string, std::string> map;
+
+ if (!signals) {
+ return map;
+ }
+
+ TrySetSignal(map, "device_id", signals->has_device_id(),
+ signals->device_id());
+ TrySetSignal(map, "obfuscated_customer_id",
+ signals->has_obfuscated_customer_id(),
+ signals->obfuscated_customer_id());
+ TrySetSignal(map, "serial_number", signals->has_serial_number(),
+ signals->serial_number());
+ TrySetSignal(map, "display_name", signals->has_display_name(),
+ signals->display_name());
+ TrySetSignal(map, "os", signals->has_os(), signals->os());
+ TrySetSignal(map, "device_manufacturer", signals->has_device_manufacturer(),
+ signals->device_manufacturer());
+ TrySetSignal(map, "device_model", signals->has_device_model(),
+ signals->device_model());
+ TrySetSignal(map, "imei", signals->has_imei(), signals->imei());
+ TrySetSignal(map, "meid", signals->has_meid(), signals->meid());
+ TrySetSignal(map, "tpm_hash", signals->has_tpm_hash(), signals->tpm_hash());
+ TrySetSignal(map, "is_disk_encrypted", signals->has_is_disk_encrypted(),
+ signals->is_disk_encrypted());
+ TrySetSignal(map, "allow_screen_lock", signals->has_allow_screen_lock(),
+ signals->allow_screen_lock());
+ TrySetSignal(map, "is_protected_by_password",
+ signals->has_is_protected_by_password(),
+ signals->is_protected_by_password());
+ TrySetSignal(map, "is_jailbroken", signals->has_is_jailbroken(),
+ signals->is_jailbroken());
+ TrySetSignal(map, "enrollment_domain", signals->has_enrollment_domain(),
+ signals->enrollment_domain());
+ TrySetSignal(map, "browser_version", signals->has_browser_version(),
+ signals->browser_version());
+ TrySetSignal(map, "safe_browsing_protection_level",
+ signals->has_safe_browsing_protection_level(),
+ signals->safe_browsing_protection_level());
+ TrySetSignal(map, "site_isolation_enabled",
+ signals->has_site_isolation_enabled(),
+ signals->site_isolation_enabled());
+ TrySetSignal(map, "third_party_blocking_enabled",
+ signals->has_third_party_blocking_enabled(),
+ signals->third_party_blocking_enabled());
+ TrySetSignal(map, "remote_desktop_available",
+ signals->has_remote_desktop_available(),
+ signals->remote_desktop_available());
+ TrySetSignal(map, "signed_in_profile_name",
+ signals->has_signed_in_profile_name(),
+ signals->signed_in_profile_name());
+ TrySetSignal(map, "chrome_cleanup_enabled",
+ signals->has_chrome_cleanup_enabled(),
+ signals->chrome_cleanup_enabled());
+ TrySetSignal(map, "password_protection_warning_trigger",
+ signals->has_password_protection_warning_trigger(),
+ signals->password_protection_warning_trigger());
+ TrySetSignal(map, "dns_address", signals->has_dns_address(),
+ signals->dns_address());
+ TrySetSignal(map, "built_in_dns_client_enabled",
+ signals->has_built_in_dns_client_enabled(),
+ signals->built_in_dns_client_enabled());
+ TrySetSignal(map, "firewall_on", signals->has_firewall_on(),
+ signals->firewall_on());
+ TrySetSignal(map, "windows_domain", signals->has_windows_domain(),
+ signals->windows_domain());
+
+ return map;
+}
+
+} // namespace utils
+} // namespace enterprise_connectors
diff --git a/chromium/chrome/browser/ui/webui/connectors_internals/zero_trust_utils.h b/chromium/chrome/browser/ui/webui/connectors_internals/zero_trust_utils.h
new file mode 100644
index 00000000000..c8f16f059f9
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/connectors_internals/zero_trust_utils.h
@@ -0,0 +1,24 @@
+// Copyright 2021 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.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_CONNECTORS_INTERNALS_ZERO_TRUST_UTILS_H_
+#define CHROME_BROWSER_UI_WEBUI_CONNECTORS_INTERNALS_ZERO_TRUST_UTILS_H_
+
+#include <memory>
+#include <string>
+
+#include "base/containers/flat_map.h"
+#include "chrome/browser/enterprise/connectors/device_trust/attestation/common/signals_type.h"
+
+namespace enterprise_connectors {
+namespace utils {
+
+// Manually converts the given `signals` proto to a map.
+base::flat_map<std::string, std::string> SignalsToMap(
+ std::unique_ptr<SignalsType> signals);
+
+} // namespace utils
+} // namespace enterprise_connectors
+
+#endif // CHROME_BROWSER_UI_WEBUI_CONNECTORS_INTERNALS_ZERO_TRUST_UTILS_H_
diff --git a/chromium/chrome/browser/ui/webui/constrained_web_dialog_ui.cc b/chromium/chrome/browser/ui/webui/constrained_web_dialog_ui.cc
index dd3512b303c..1b6b4e93b45 100644
--- a/chromium/chrome/browser/ui/webui/constrained_web_dialog_ui.cc
+++ b/chromium/chrome/browser/ui/webui/constrained_web_dialog_ui.cc
@@ -66,7 +66,7 @@ ConstrainedWebDialogUI::~ConstrainedWebDialogUI() = default;
void ConstrainedWebDialogUI::WebUIRenderFrameCreated(
RenderFrameHost* render_frame_host) {
// Add a "dialogClose" callback which matches WebDialogUI behavior.
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"dialogClose",
base::BindRepeating(&ConstrainedWebDialogUI::OnDialogCloseMessage,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/constrained_web_dialog_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/constrained_web_dialog_ui_browsertest.cc
index f0d925e1f13..253cde77649 100644
--- a/chromium/chrome/browser/ui/webui/constrained_web_dialog_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/constrained_web_dialog_ui_browsertest.cc
@@ -71,15 +71,14 @@ class ConstrainedWebDialogBrowserTest : public InProcessBrowserTest {
const base::TimeTicks start_time = base::TimeTicks::Now();
while (!condition.Run()) {
const base::TimeTicks current_time = base::TimeTicks::Now();
- if (current_time - start_time > base::TimeDelta::FromSeconds(5)) {
+ if (current_time - start_time > base::Seconds(5)) {
ADD_FAILURE() << "Condition not met within five seconds.";
return false;
}
base::RunLoop run_loop;
base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
- FROM_HERE, run_loop.QuitClosure(),
- base::TimeDelta::FromMilliseconds(20));
+ FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(20));
run_loop.Run();
}
return true;
diff --git a/chromium/chrome/browser/ui/webui/cookies_tree_model_util.cc b/chromium/chrome/browser/ui/webui/cookies_tree_model_util.cc
index 22995a796fd..a1914ba98c3 100644
--- a/chromium/chrome/browser/ui/webui/cookies_tree_model_util.cc
+++ b/chromium/chrome/browser/ui/webui/cookies_tree_model_util.cc
@@ -82,112 +82,119 @@ std::string CookiesTreeModelUtil::GetTreeNodeId(const CookieTreeNode* node) {
bool CookiesTreeModelUtil::GetCookieTreeNodeDictionary(
const CookieTreeNode& node,
bool include_quota_nodes,
- base::DictionaryValue* dict) {
+ base::Value* dict) {
// Use node's address as an id for WebUI to look it up.
- dict->SetString(kKeyId, GetTreeNodeId(&node));
- dict->SetString(kKeyTitle, node.GetTitle());
- dict->SetBoolean(kKeyHasChildren, !node.children().empty());
+ dict->SetStringKey(kKeyId, GetTreeNodeId(&node));
+ dict->SetStringKey(kKeyTitle, node.GetTitle());
+ dict->SetBoolKey(kKeyHasChildren, !node.children().empty());
switch (node.GetDetailedInfo().node_type) {
case CookieTreeNode::DetailedInfo::TYPE_HOST: {
- dict->SetString(kKeyType, "origin");
+ dict->SetStringKey(kKeyType, "origin");
break;
}
case CookieTreeNode::DetailedInfo::TYPE_COOKIE: {
- dict->SetString(kKeyType, "cookie");
+ dict->SetStringKey(kKeyType, "cookie");
const net::CanonicalCookie& cookie = *node.GetDetailedInfo().cookie;
- dict->SetString(kKeyName, cookie.Name());
- dict->SetString(kKeyContent, cookie.Value());
- dict->SetString(kKeyDomain, cookie.Domain());
- dict->SetString(kKeyPath, cookie.Path());
- dict->SetString(kKeySendFor,
- l10n_util::GetStringUTF16(
- CookiesTreeModel::GetSendForMessageID(cookie)));
+ dict->SetStringKey(kKeyName, cookie.Name());
+ dict->SetStringKey(kKeyContent, cookie.Value());
+ dict->SetStringKey(kKeyDomain, cookie.Domain());
+ dict->SetStringKey(kKeyPath, cookie.Path());
+ dict->SetStringKey(kKeySendFor,
+ l10n_util::GetStringUTF16(
+ CookiesTreeModel::GetSendForMessageID(cookie)));
std::string accessible = cookie.IsHttpOnly() ?
l10n_util::GetStringUTF8(IDS_COOKIES_COOKIE_ACCESSIBLE_TO_SCRIPT_NO) :
l10n_util::GetStringUTF8(IDS_COOKIES_COOKIE_ACCESSIBLE_TO_SCRIPT_YES);
- dict->SetString(kKeyAccessibleToScript, accessible);
- dict->SetString(kKeyCreated, base::UTF16ToUTF8(
- base::TimeFormatFriendlyDateAndTime(cookie.CreationDate())));
- dict->SetString(kKeyExpires, cookie.IsPersistent() ? base::UTF16ToUTF8(
- base::TimeFormatFriendlyDateAndTime(cookie.ExpiryDate())) :
- l10n_util::GetStringUTF8(IDS_COOKIES_COOKIE_EXPIRES_SESSION));
+ dict->SetStringKey(kKeyAccessibleToScript, accessible);
+ dict->SetStringKey(kKeyCreated,
+ base::UTF16ToUTF8(base::TimeFormatFriendlyDateAndTime(
+ cookie.CreationDate())));
+ dict->SetStringKey(
+ kKeyExpires,
+ cookie.IsPersistent()
+ ? base::UTF16ToUTF8(
+ base::TimeFormatFriendlyDateAndTime(cookie.ExpiryDate()))
+ : l10n_util::GetStringUTF8(IDS_COOKIES_COOKIE_EXPIRES_SESSION));
break;
}
case CookieTreeNode::DetailedInfo::TYPE_DATABASE: {
- dict->SetString(kKeyType, "database");
+ dict->SetStringKey(kKeyType, "database");
const content::StorageUsageInfo& usage_info =
*node.GetDetailedInfo().usage_info;
- dict->SetString(kKeyOrigin, usage_info.origin.Serialize());
- dict->SetString(kKeySize, ui::FormatBytes(usage_info.total_size_bytes));
- dict->SetString(kKeyModified,
- base::UTF16ToUTF8(base::TimeFormatFriendlyDateAndTime(
- usage_info.last_modified)));
+ dict->SetStringKey(kKeyOrigin, usage_info.origin.Serialize());
+ dict->SetStringKey(kKeySize,
+ ui::FormatBytes(usage_info.total_size_bytes));
+ dict->SetStringKey(kKeyModified,
+ base::UTF16ToUTF8(base::TimeFormatFriendlyDateAndTime(
+ usage_info.last_modified)));
break;
}
case CookieTreeNode::DetailedInfo::TYPE_LOCAL_STORAGE: {
- dict->SetString(kKeyType, "local_storage");
+ dict->SetStringKey(kKeyType, "local_storage");
const content::StorageUsageInfo& local_storage_info =
*node.GetDetailedInfo().usage_info;
- dict->SetString(kKeyOrigin, local_storage_info.origin.Serialize());
- dict->SetString(kKeySize,
- ui::FormatBytes(local_storage_info.total_size_bytes));
- dict->SetString(kKeyModified, base::UTF16ToUTF8(
- base::TimeFormatFriendlyDateAndTime(
- local_storage_info.last_modified)));
+ dict->SetStringKey(kKeyOrigin, local_storage_info.origin.Serialize());
+ dict->SetStringKey(kKeySize,
+ ui::FormatBytes(local_storage_info.total_size_bytes));
+ dict->SetStringKey(kKeyModified,
+ base::UTF16ToUTF8(base::TimeFormatFriendlyDateAndTime(
+ local_storage_info.last_modified)));
break;
}
case CookieTreeNode::DetailedInfo::TYPE_APPCACHE: {
- dict->SetString(kKeyType, "app_cache");
+ dict->SetStringKey(kKeyType, "app_cache");
const content::StorageUsageInfo& usage_info =
*node.GetDetailedInfo().usage_info;
- dict->SetString(kKeyOrigin, usage_info.origin.Serialize());
- dict->SetString(kKeySize, ui::FormatBytes(usage_info.total_size_bytes));
- dict->SetString(kKeyModified,
- base::UTF16ToUTF8(base::TimeFormatFriendlyDateAndTime(
- usage_info.last_modified)));
+ dict->SetStringKey(kKeyOrigin, usage_info.origin.Serialize());
+ dict->SetStringKey(kKeySize,
+ ui::FormatBytes(usage_info.total_size_bytes));
+ dict->SetStringKey(kKeyModified,
+ base::UTF16ToUTF8(base::TimeFormatFriendlyDateAndTime(
+ usage_info.last_modified)));
break;
}
case CookieTreeNode::DetailedInfo::TYPE_INDEXED_DB: {
- dict->SetString(kKeyType, "indexed_db");
+ dict->SetStringKey(kKeyType, "indexed_db");
const content::StorageUsageInfo& usage_info =
*node.GetDetailedInfo().usage_info;
- dict->SetString(kKeyOrigin, usage_info.origin.Serialize());
- dict->SetString(kKeySize, ui::FormatBytes(usage_info.total_size_bytes));
- dict->SetString(kKeyModified,
- base::UTF16ToUTF8(base::TimeFormatFriendlyDateAndTime(
- usage_info.last_modified)));
+ dict->SetStringKey(kKeyOrigin, usage_info.origin.Serialize());
+ dict->SetStringKey(kKeySize,
+ ui::FormatBytes(usage_info.total_size_bytes));
+ dict->SetStringKey(kKeyModified,
+ base::UTF16ToUTF8(base::TimeFormatFriendlyDateAndTime(
+ usage_info.last_modified)));
break;
}
case CookieTreeNode::DetailedInfo::TYPE_FILE_SYSTEM: {
- dict->SetString(kKeyType, "file_system");
+ dict->SetStringKey(kKeyType, "file_system");
const browsing_data::FileSystemHelper::FileSystemInfo& file_system_info =
*node.GetDetailedInfo().file_system_info;
const storage::FileSystemType kPerm = storage::kFileSystemTypePersistent;
const storage::FileSystemType kTemp = storage::kFileSystemTypeTemporary;
- dict->SetString(kKeyOrigin, file_system_info.origin.Serialize());
- dict->SetString(
+ dict->SetStringKey(kKeyOrigin, file_system_info.origin.Serialize());
+ dict->SetStringKey(
kKeyPersistent,
base::Contains(file_system_info.usage_map, kPerm)
? base::UTF16ToUTF8(ui::FormatBytes(
file_system_info.usage_map.find(kPerm)->second))
: l10n_util::GetStringUTF8(IDS_COOKIES_FILE_SYSTEM_USAGE_NONE));
- dict->SetString(
+ dict->SetStringKey(
kKeyTemporary,
base::Contains(file_system_info.usage_map, kTemp)
? base::UTF16ToUTF8(ui::FormatBytes(
@@ -199,7 +206,7 @@ bool CookiesTreeModelUtil::GetCookieTreeNodeDictionary(
if (!include_quota_nodes)
return false;
- dict->SetString(kKeyType, "quota");
+ dict->SetStringKey(kKeyType, "quota");
const BrowsingDataQuotaHelper::QuotaInfo& quota_info =
*node.GetDetailedInfo().quota_info;
@@ -207,63 +214,65 @@ bool CookiesTreeModelUtil::GetCookieTreeNodeDictionary(
kNegligibleUsage)
return false;
- dict->SetString(kKeyOrigin, quota_info.host);
- dict->SetString(kKeyTotalUsage,
- base::UTF16ToUTF8(ui::FormatBytes(
- quota_info.temporary_usage +
- quota_info.persistent_usage)));
- dict->SetString(kKeyTemporaryUsage,
- base::UTF16ToUTF8(ui::FormatBytes(
- quota_info.temporary_usage)));
- dict->SetString(kKeyPersistentUsage,
- base::UTF16ToUTF8(ui::FormatBytes(
- quota_info.persistent_usage)));
+ dict->SetStringKey(kKeyOrigin, quota_info.host);
+ dict->SetStringKey(
+ kKeyTotalUsage,
+ base::UTF16ToUTF8(ui::FormatBytes(quota_info.temporary_usage +
+ quota_info.persistent_usage)));
+ dict->SetStringKey(
+ kKeyTemporaryUsage,
+ base::UTF16ToUTF8(ui::FormatBytes(quota_info.temporary_usage)));
+ dict->SetStringKey(
+ kKeyPersistentUsage,
+ base::UTF16ToUTF8(ui::FormatBytes(quota_info.persistent_usage)));
break;
}
case CookieTreeNode::DetailedInfo::TYPE_SERVICE_WORKER: {
- dict->SetString(kKeyType, "service_worker");
+ dict->SetStringKey(kKeyType, "service_worker");
const content::StorageUsageInfo& usage_info =
*node.GetDetailedInfo().usage_info;
- dict->SetString(kKeyOrigin, usage_info.origin.Serialize());
- dict->SetString(kKeySize, ui::FormatBytes(usage_info.total_size_bytes));
+ dict->SetStringKey(kKeyOrigin, usage_info.origin.Serialize());
+ dict->SetStringKey(kKeySize,
+ ui::FormatBytes(usage_info.total_size_bytes));
// TODO(jsbell): Include kKeyModified like other storage types.
break;
}
case CookieTreeNode::DetailedInfo::TYPE_SHARED_WORKER: {
- dict->SetString(kKeyType, "shared_worker");
+ dict->SetStringKey(kKeyType, "shared_worker");
const browsing_data::SharedWorkerHelper::SharedWorkerInfo&
shared_worker_info = *node.GetDetailedInfo().shared_worker_info;
- dict->SetString(kKeyOrigin, shared_worker_info.worker.spec());
- dict->SetString(kKeyName, shared_worker_info.name);
+ dict->SetStringKey(kKeyOrigin, shared_worker_info.worker.spec());
+ dict->SetStringKey(kKeyName, shared_worker_info.name);
break;
}
case CookieTreeNode::DetailedInfo::TYPE_CACHE_STORAGE: {
- dict->SetString(kKeyType, "cache_storage");
+ dict->SetStringKey(kKeyType, "cache_storage");
const content::StorageUsageInfo& usage_info =
*node.GetDetailedInfo().usage_info;
- dict->SetString(kKeyOrigin, usage_info.origin.Serialize());
- dict->SetString(kKeySize, ui::FormatBytes(usage_info.total_size_bytes));
- dict->SetString(kKeyModified,
- base::UTF16ToUTF8(base::TimeFormatFriendlyDateAndTime(
- usage_info.last_modified)));
+ dict->SetStringKey(kKeyOrigin, usage_info.origin.Serialize());
+ dict->SetStringKey(kKeySize,
+ ui::FormatBytes(usage_info.total_size_bytes));
+ dict->SetStringKey(kKeyModified,
+ base::UTF16ToUTF8(base::TimeFormatFriendlyDateAndTime(
+ usage_info.last_modified)));
break;
}
case CookieTreeNode::DetailedInfo::TYPE_MEDIA_LICENSE: {
- dict->SetString(kKeyType, "media_license");
+ dict->SetStringKey(kKeyType, "media_license");
const BrowsingDataMediaLicenseHelper::MediaLicenseInfo&
media_license_info = *node.GetDetailedInfo().media_license_info;
- dict->SetString(kKeyOrigin, media_license_info.origin.spec());
- dict->SetString(kKeySize, ui::FormatBytes(media_license_info.size));
- dict->SetString(kKeyModified,
- base::UTF16ToUTF8(base::TimeFormatFriendlyDateAndTime(
- media_license_info.last_modified_time)));
+ dict->SetStringKey(kKeyOrigin, media_license_info.origin.spec());
+ dict->SetStringKey(kKeySize, ui::FormatBytes(media_license_info.size));
+ dict->SetStringKey(kKeyModified,
+ base::UTF16ToUTF8(base::TimeFormatFriendlyDateAndTime(
+ media_license_info.last_modified_time)));
break;
}
default:
@@ -277,10 +286,9 @@ bool CookiesTreeModelUtil::GetCookieTreeNodeDictionary(
base::ListValue app_infos;
for (extensions::ExtensionSet::const_iterator it = protecting_apps->begin();
it != protecting_apps->end(); ++it) {
- std::unique_ptr<base::DictionaryValue> app_info(
- new base::DictionaryValue());
- app_info->SetString(kKeyId, (*it)->id());
- app_info->SetString(kKeyName, (*it)->name());
+ base::Value app_info(base::Value::Type::DICTIONARY);
+ app_info.SetStringKey(kKeyId, (*it)->id());
+ app_info.SetStringKey(kKeyName, (*it)->name());
app_infos.Append(std::move(app_info));
}
dict->SetKey(kKeyAppsProtectingThis, std::move(app_infos));
@@ -298,14 +306,13 @@ void CookiesTreeModelUtil::GetChildNodeDetails(const CookieTreeNode* parent,
std::string cookie_id_path =
id_path + "," + GetTreeNodeId(child.get()) + ",";
for (const auto& details : child->children()) {
- std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue);
- if (GetCookieTreeNodeDictionary(*details, include_quota_nodes,
- dict.get())) {
+ base::Value dict(base::Value::Type::DICTIONARY);
+ if (GetCookieTreeNodeDictionary(*details, include_quota_nodes, &dict)) {
// TODO(dschuyler): This ID path is an artifact from using tree nodes to
// hold the cookies. Can this be changed to a dictionary with a key
// lookup (and remove use of id_map_)?
- dict->SetString("idPath",
- cookie_id_path + GetTreeNodeId(details.get()));
+ dict.SetStringKey("idPath",
+ cookie_id_path + GetTreeNodeId(details.get()));
list->Append(std::move(dict));
}
}
@@ -318,9 +325,9 @@ void CookiesTreeModelUtil::GetChildNodeList(const CookieTreeNode* parent,
bool include_quota_nodes,
base::ListValue* nodes) {
for (size_t i = 0; i < count; ++i) {
- std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue);
+ base::Value dict(base::Value::Type::DICTIONARY);
const CookieTreeNode* child = parent->children()[start + i].get();
- if (GetCookieTreeNodeDictionary(*child, include_quota_nodes, dict.get()))
+ if (GetCookieTreeNodeDictionary(*child, include_quota_nodes, &dict))
nodes->Append(std::move(dict));
}
}
diff --git a/chromium/chrome/browser/ui/webui/cookies_tree_model_util.h b/chromium/chrome/browser/ui/webui/cookies_tree_model_util.h
index 73411461e72..06e49145a9d 100644
--- a/chromium/chrome/browser/ui/webui/cookies_tree_model_util.h
+++ b/chromium/chrome/browser/ui/webui/cookies_tree_model_util.h
@@ -16,13 +16,17 @@
class CookieTreeNode;
namespace base {
-class DictionaryValue;
class ListValue;
+class Value;
}
class CookiesTreeModelUtil {
public:
CookiesTreeModelUtil();
+
+ CookiesTreeModelUtil(const CookiesTreeModelUtil&) = delete;
+ CookiesTreeModelUtil& operator=(const CookiesTreeModelUtil&) = delete;
+
~CookiesTreeModelUtil();
// Finds or creates an ID for given |node| and returns it as string.
@@ -60,15 +64,13 @@ class CookiesTreeModelUtil {
// maps. Returns false if the |node| does not need to be shown.
bool GetCookieTreeNodeDictionary(const CookieTreeNode& node,
bool include_quota_nodes,
- base::DictionaryValue* dict);
+ base::Value* dict);
// IDMap to create unique ID and look up the object for an ID.
CookiesTreeNodeIdMap id_map_;
// Reverse look up map to find the ID for a node.
CookieTreeNodeMap node_map_;
-
- DISALLOW_COPY_AND_ASSIGN(CookiesTreeModelUtil);
};
#endif // CHROME_BROWSER_UI_WEBUI_COOKIES_TREE_MODEL_UTIL_H_
diff --git a/chromium/chrome/browser/ui/webui/cr_components/most_visited/most_visited_handler.cc b/chromium/chrome/browser/ui/webui/cr_components/most_visited/most_visited_handler.cc
index c6ff3e07c6c..419096311f9 100644
--- a/chromium/chrome/browser/ui/webui/cr_components/most_visited/most_visited_handler.cc
+++ b/chromium/chrome/browser/ui/webui/cr_components/most_visited/most_visited_handler.cc
@@ -31,7 +31,8 @@ ntp_tiles::NTPTileImpression MakeNTPTileImpression(
/*visual_type=*/
ntp_tiles::TileVisualType::ICON_REAL /* unused on desktop */,
/*icon_type=*/favicon_base::IconType::kInvalid /* unused on desktop */,
- /*url_for_rappor=*/GURL() /* unused */);
+ /*url_for_rappor=*/
+ tile.url /* used on desktop for logging */);
}
} // namespace
diff --git a/chromium/chrome/browser/ui/webui/crashes_ui.cc b/chromium/chrome/browser/ui/webui/crashes_ui.cc
index 3bf75617db1..c9b2efaeed9 100644
--- a/chromium/chrome/browser/ui/webui/crashes_ui.cc
+++ b/chromium/chrome/browser/ui/webui/crashes_ui.cc
@@ -85,6 +85,10 @@ content::WebUIDataSource* CreateCrashesUIHTMLSource() {
class CrashesDOMHandler : public WebUIMessageHandler {
public:
CrashesDOMHandler();
+
+ CrashesDOMHandler(const CrashesDOMHandler&) = delete;
+ CrashesDOMHandler& operator=(const CrashesDOMHandler&) = delete;
+
~CrashesDOMHandler() override;
// WebUIMessageHandler implementation.
@@ -94,24 +98,22 @@ class CrashesDOMHandler : public WebUIMessageHandler {
void OnUploadListAvailable();
// Asynchronously fetches the list of crashes. Called from JS.
- void HandleRequestCrashes(const base::ListValue* args);
+ void HandleRequestCrashes(base::Value::ConstListView args);
#if BUILDFLAG(IS_CHROMEOS_ASH)
// Asynchronously triggers crash uploading. Called from JS.
- void HandleRequestUploads(const base::ListValue* args);
+ void HandleRequestUploads(base::Value::ConstListView args);
#endif
// Sends the recent crashes list JS.
void UpdateUI();
// Asynchronously requests a user triggered upload. Called from JS.
- void HandleRequestSingleCrashUpload(const base::ListValue* args);
+ void HandleRequestSingleCrashUpload(base::Value::ConstListView args);
scoped_refptr<UploadList> upload_list_;
bool list_available_;
bool first_load_;
-
- DISALLOW_COPY_AND_ASSIGN(CrashesDOMHandler);
};
CrashesDOMHandler::CrashesDOMHandler()
@@ -144,7 +146,7 @@ void CrashesDOMHandler::RegisterMessages() {
base::Unretained(this)));
}
-void CrashesDOMHandler::HandleRequestCrashes(const base::ListValue* args) {
+void CrashesDOMHandler::HandleRequestCrashes(base::Value::ConstListView args) {
AllowJavascript();
if (first_load_) {
first_load_ = false;
@@ -158,7 +160,7 @@ void CrashesDOMHandler::HandleRequestCrashes(const base::ListValue* args) {
}
#if BUILDFLAG(IS_CHROMEOS_ASH)
-void CrashesDOMHandler::HandleRequestUploads(const base::ListValue* args) {
+void CrashesDOMHandler::HandleRequestUploads(base::Value::ConstListView args) {
chromeos::DebugDaemonClient* debugd_client =
chromeos::DBusThreadManager::Get()->GetDebugDaemonClient();
DCHECK(debugd_client);
@@ -234,18 +236,14 @@ void CrashesDOMHandler::UpdateUI() {
}
void CrashesDOMHandler::HandleRequestSingleCrashUpload(
- const base::ListValue* args) {
- DCHECK(args);
-
- std::string local_id;
- bool success = args->GetString(0, &local_id);
- DCHECK(success);
-
+ base::Value::ConstListView args) {
// Only allow manual uploads if crash uploads aren’t disabled by policy.
if (!ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled() &&
IsMetricsReportingPolicyManaged()) {
return;
}
+
+ std::string local_id = args[0].GetString();
upload_list_->RequestSingleUploadAsync(local_id);
}
diff --git a/chromium/chrome/browser/ui/webui/crashes_ui.h b/chromium/chrome/browser/ui/webui/crashes_ui.h
index 44ddd2a831c..85413ca6ad6 100644
--- a/chromium/chrome/browser/ui/webui/crashes_ui.h
+++ b/chromium/chrome/browser/ui/webui/crashes_ui.h
@@ -17,11 +17,11 @@ class CrashesUI : public content::WebUIController {
public:
explicit CrashesUI(content::WebUI* web_ui);
+ CrashesUI(const CrashesUI&) = delete;
+ CrashesUI& operator=(const CrashesUI&) = delete;
+
static base::RefCountedMemory* GetFaviconResourceBytes(
ui::ResourceScaleFactor scale_factor);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(CrashesUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_CRASHES_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/customize_themes/DIR_METADATA b/chromium/chrome/browser/ui/webui/customize_themes/DIR_METADATA
new file mode 100644
index 00000000000..9b77c0240c8
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/customize_themes/DIR_METADATA
@@ -0,0 +1 @@
+mixins: "//ui/webui/resources/cr_components/customize_themes/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.cc b/chromium/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.cc
index b8cb2be432b..987835395fc 100644
--- a/chromium/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.cc
+++ b/chromium/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.cc
@@ -4,13 +4,13 @@
#include "chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.h"
+#include "chrome/browser/new_tab_page/chrome_colors/chrome_colors_factory.h"
+#include "chrome/browser/new_tab_page/chrome_colors/chrome_colors_service.h"
+#include "chrome/browser/new_tab_page/chrome_colors/generated_colors_info.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/search/chrome_colors/chrome_colors_factory.h"
-#include "chrome/browser/search/chrome_colors/chrome_colors_service.h"
#include "chrome/browser/themes/theme_properties.h"
#include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/themes/theme_service_factory.h"
-#include "chrome/common/search/generated_colors_info.h"
#include "chrome/common/themes/autogenerated_theme_util.h"
#include "content/public/browser/web_contents.h"
#include "extensions/browser/extension_registry.h"
diff --git a/chromium/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler_unittest.cc b/chromium/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler_unittest.cc
index 309774ab098..8ff047c37ad 100644
--- a/chromium/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler_unittest.cc
@@ -15,12 +15,12 @@
#include "base/test/metrics/histogram_tester.h"
#include "base/values.h"
#include "chrome/browser/extensions/test_extension_environment.h"
+#include "chrome/browser/new_tab_page/chrome_colors/generated_colors_info.h"
+#include "chrome/browser/new_tab_page/chrome_colors/selected_colors_info.h"
#include "chrome/browser/themes/test/theme_service_changed_waiter.h"
#include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/themes/theme_service_factory.h"
#include "chrome/common/chrome_paths.h"
-#include "chrome/common/search/generated_colors_info.h"
-#include "chrome/common/search/selected_colors_info.h"
#include "chrome/common/themes/autogenerated_theme_util.h"
#include "chrome/test/base/testing_profile.h"
#include "components/keyed_service/core/keyed_service.h"
diff --git a/chromium/chrome/browser/ui/webui/device_log_ui.cc b/chromium/chrome/browser/ui/webui/device_log_ui.cc
index d84db3c7afa..65d36978daa 100644
--- a/chromium/chrome/browser/ui/webui/device_log_ui.cc
+++ b/chromium/chrome/browser/ui/webui/device_log_ui.cc
@@ -29,14 +29,18 @@ namespace {
class DeviceLogMessageHandler : public content::WebUIMessageHandler {
public:
DeviceLogMessageHandler() {}
+
+ DeviceLogMessageHandler(const DeviceLogMessageHandler&) = delete;
+ DeviceLogMessageHandler& operator=(const DeviceLogMessageHandler&) = delete;
+
~DeviceLogMessageHandler() override {}
// WebUIMessageHandler implementation.
void RegisterMessages() override {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getLog", base::BindRepeating(&DeviceLogMessageHandler::GetLog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"clearLog", base::BindRepeating(&DeviceLogMessageHandler::ClearLog,
base::Unretained(this)));
}
@@ -54,8 +58,6 @@ class DeviceLogMessageHandler : public content::WebUIMessageHandler {
void ClearLog(const base::ListValue* value) const {
device_event_log::ClearAll();
}
-
- DISALLOW_COPY_AND_ASSIGN(DeviceLogMessageHandler);
};
} // namespace
diff --git a/chromium/chrome/browser/ui/webui/device_log_ui.h b/chromium/chrome/browser/ui/webui/device_log_ui.h
index cee91ebb113..65a92fb9971 100644
--- a/chromium/chrome/browser/ui/webui/device_log_ui.h
+++ b/chromium/chrome/browser/ui/webui/device_log_ui.h
@@ -13,10 +13,11 @@ namespace chromeos {
class DeviceLogUI : public content::WebUIController {
public:
explicit DeviceLogUI(content::WebUI* web_ui);
- ~DeviceLogUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(DeviceLogUI);
+ DeviceLogUI(const DeviceLogUI&) = delete;
+ DeviceLogUI& operator=(const DeviceLogUI&) = delete;
+
+ ~DeviceLogUI() override;
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/devtools_ui.h b/chromium/chrome/browser/ui/webui/devtools_ui.h
index 88c79139372..32809a63a5b 100644
--- a/chromium/chrome/browser/ui/webui/devtools_ui.h
+++ b/chromium/chrome/browser/ui/webui/devtools_ui.h
@@ -16,11 +16,14 @@ class DevToolsUI : public content::WebUIController {
static bool IsFrontendResourceURL(const GURL& url);
explicit DevToolsUI(content::WebUI* web_ui);
+
+ DevToolsUI(const DevToolsUI&) = delete;
+ DevToolsUI& operator=(const DevToolsUI&) = delete;
+
~DevToolsUI() override;
private:
DevToolsUIBindings bindings_;
- DISALLOW_COPY_AND_ASSIGN(DevToolsUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_DEVTOOLS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/devtools_ui_data_source.cc b/chromium/chrome/browser/ui/webui/devtools_ui_data_source.cc
index c40be3578fb..c2bc29c939e 100644
--- a/chromium/chrome/browser/ui/webui/devtools_ui_data_source.cc
+++ b/chromium/chrome/browser/ui/webui/devtools_ui_data_source.cc
@@ -151,11 +151,13 @@ void DevToolsDataSource::StartDataRequest(
remote_path_prefix += "/";
if (base::StartsWith(path, remote_path_prefix,
base::CompareCase::INSENSITIVE_ASCII)) {
- GURL url(kRemoteFrontendBase + path.substr(remote_path_prefix.length()));
+ GURL remote_url(kRemoteFrontendBase +
+ path.substr(remote_path_prefix.length()));
- CHECK_EQ(url.host(), kRemoteFrontendDomain);
- if (url.is_valid() && DevToolsUIBindings::IsValidRemoteFrontendURL(url)) {
- StartRemoteDataRequest(url, std::move(callback));
+ CHECK_EQ(remote_url.host(), kRemoteFrontendDomain);
+ if (remote_url.is_valid() &&
+ DevToolsUIBindings::IsValidRemoteFrontendURL(remote_url)) {
+ StartRemoteDataRequest(remote_url, std::move(callback));
} else {
DLOG(ERROR) << "Refusing to load invalid remote front-end URL";
std::move(callback).Run(CreateNotFoundResponse());
@@ -170,10 +172,10 @@ void DevToolsDataSource::StartDataRequest(
base::CompareCase::INSENSITIVE_ASCII)) {
GURL custom_devtools_frontend = GetCustomDevToolsFrontendURL();
if (!custom_devtools_frontend.is_empty()) {
- GURL url = GURL(custom_devtools_frontend.spec() +
- path.substr(custom_path_prefix.length()));
- DCHECK(url.is_valid());
- StartCustomDataRequest(url, std::move(callback));
+ GURL devtools_url(custom_devtools_frontend.spec() +
+ path.substr(custom_path_prefix.length()));
+ DCHECK(devtools_url.is_valid());
+ StartCustomDataRequest(devtools_url, std::move(callback));
return;
}
}
diff --git a/chromium/chrome/browser/ui/webui/devtools_ui_data_source.h b/chromium/chrome/browser/ui/webui/devtools_ui_data_source.h
index a713ac19aec..4ebcb9623b1 100644
--- a/chromium/chrome/browser/ui/webui/devtools_ui_data_source.h
+++ b/chromium/chrome/browser/ui/webui/devtools_ui_data_source.h
@@ -34,6 +34,10 @@ class DevToolsDataSource : public content::URLDataSource {
explicit DevToolsDataSource(
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory);
+
+ DevToolsDataSource(const DevToolsDataSource&) = delete;
+ DevToolsDataSource& operator=(const DevToolsDataSource&) = delete;
+
~DevToolsDataSource() override;
// content::URLDataSource implementation.
@@ -79,20 +83,18 @@ class DevToolsDataSource : public content::URLDataSource {
struct PendingRequest {
PendingRequest();
+ PendingRequest(const PendingRequest&) = delete;
+ PendingRequest& operator=(const PendingRequest&) = delete;
PendingRequest(PendingRequest&& other);
PendingRequest& operator=(PendingRequest&& other) = default;
~PendingRequest();
GotDataCallback callback;
std::unique_ptr<network::SimpleURLLoader> loader;
-
- DISALLOW_COPY_AND_ASSIGN(PendingRequest);
};
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
std::list<PendingRequest> pending_requests_;
-
- DISALLOW_COPY_AND_ASSIGN(DevToolsDataSource);
};
#endif // CHROME_BROWSER_UI_WEBUI_DEVTOOLS_UI_DATA_SOURCE_H_
diff --git a/chromium/chrome/browser/ui/webui/devtools_ui_data_source_unittest.cc b/chromium/chrome/browser/ui/webui/devtools_ui_data_source_unittest.cc
index 9c7d3b4fec8..653b8dff50f 100644
--- a/chromium/chrome/browser/ui/webui/devtools_ui_data_source_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/devtools_ui_data_source_unittest.cc
@@ -65,6 +65,10 @@ class TestDevToolsDataSource : public DevToolsDataSource {
};
class DevToolsUIDataSourceTest : public testing::Test {
+ public:
+ DevToolsUIDataSourceTest(const DevToolsUIDataSourceTest&) = delete;
+ DevToolsUIDataSourceTest& operator=(const DevToolsUIDataSourceTest&) = delete;
+
protected:
DevToolsUIDataSourceTest() {}
~DevToolsUIDataSourceTest() override = default;
@@ -107,8 +111,6 @@ class DevToolsUIDataSourceTest : public testing::Test {
std::unique_ptr<TestDevToolsDataSource> devtools_data_source_;
bool data_received_ = false;
std::string data_;
-
- DISALLOW_COPY_AND_ASSIGN(DevToolsUIDataSourceTest);
};
// devtools/bundled path.
diff --git a/chromium/chrome/browser/ui/webui/discards/discards_ui.cc b/chromium/chrome/browser/ui/webui/discards/discards_ui.cc
index 169d114b769..c2a7f33bab1 100644
--- a/chromium/chrome/browser/ui/webui/discards/discards_ui.cc
+++ b/chromium/chrome/browser/ui/webui/discards/discards_ui.cc
@@ -98,6 +98,10 @@ class DiscardsDetailsProviderImpl : public discards::mojom::DetailsProvider {
mojo::PendingReceiver<discards::mojom::DetailsProvider> receiver)
: receiver_(this, std::move(receiver)) {}
+ DiscardsDetailsProviderImpl(const DiscardsDetailsProviderImpl&) = delete;
+ DiscardsDetailsProviderImpl& operator=(const DiscardsDetailsProviderImpl&) =
+ delete;
+
~DiscardsDetailsProviderImpl() override {}
// discards::mojom::DetailsProvider overrides:
@@ -202,8 +206,6 @@ class DiscardsDetailsProviderImpl : public discards::mojom::DetailsProvider {
private:
mojo::Receiver<discards::mojom::DetailsProvider> receiver_;
-
- DISALLOW_COPY_AND_ASSIGN(DiscardsDetailsProviderImpl);
};
} // namespace
diff --git a/chromium/chrome/browser/ui/webui/discards/discards_ui.h b/chromium/chrome/browser/ui/webui/discards/discards_ui.h
index 187dc9573a1..4f87ba9f14d 100644
--- a/chromium/chrome/browser/ui/webui/discards/discards_ui.h
+++ b/chromium/chrome/browser/ui/webui/discards/discards_ui.h
@@ -18,6 +18,10 @@
class DiscardsUI : public ui::MojoWebUIController {
public:
explicit DiscardsUI(content::WebUI* web_ui);
+
+ DiscardsUI(const DiscardsUI&) = delete;
+ DiscardsUI& operator=(const DiscardsUI&) = delete;
+
~DiscardsUI() override;
// Instantiates the implementor of the mojom::DetailsProvider mojo
@@ -40,8 +44,6 @@ class DiscardsUI : public ui::MojoWebUIController {
std::string profile_id_;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(DiscardsUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_DISCARDS_DISCARDS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/discards/graph_dump_impl.cc b/chromium/chrome/browser/ui/webui/discards/graph_dump_impl.cc
index 33b35968962..8f86b99b239 100644
--- a/chromium/chrome/browser/ui/webui/discards/graph_dump_impl.cc
+++ b/chromium/chrome/browser/ui/webui/discards/graph_dump_impl.cc
@@ -50,6 +50,9 @@ class DiscardsGraphDumpImpl::FaviconRequestHelper {
FaviconRequestHelper(base::WeakPtr<DiscardsGraphDumpImpl> graph_dump,
scoped_refptr<base::SequencedTaskRunner> task_runner);
+ FaviconRequestHelper(const FaviconRequestHelper&) = delete;
+ FaviconRequestHelper& operator=(const FaviconRequestHelper&) = delete;
+
void RequestFavicon(GURL page_url,
performance_manager::WebContentsProxy contents_proxy,
int64_t serialization_id);
@@ -63,8 +66,6 @@ class DiscardsGraphDumpImpl::FaviconRequestHelper {
scoped_refptr<base::SequencedTaskRunner> task_runner_;
SEQUENCE_CHECKER(sequence_checker_);
-
- DISALLOW_COPY_AND_ASSIGN(FaviconRequestHelper);
};
DiscardsGraphDumpImpl::FaviconRequestHelper::FaviconRequestHelper(
diff --git a/chromium/chrome/browser/ui/webui/discards/graph_dump_impl.h b/chromium/chrome/browser/ui/webui/discards/graph_dump_impl.h
index e4802241cff..32751f573c5 100644
--- a/chromium/chrome/browser/ui/webui/discards/graph_dump_impl.h
+++ b/chromium/chrome/browser/ui/webui/discards/graph_dump_impl.h
@@ -31,6 +31,10 @@ class DiscardsGraphDumpImpl : public discards::mojom::GraphDump,
public performance_manager::WorkerNodeObserver {
public:
DiscardsGraphDumpImpl();
+
+ DiscardsGraphDumpImpl(const DiscardsGraphDumpImpl&) = delete;
+ DiscardsGraphDumpImpl& operator=(const DiscardsGraphDumpImpl&) = delete;
+
~DiscardsGraphDumpImpl() override;
// Creates a new DiscardsGraphDumpImpl to service |receiver| and passes its
@@ -254,8 +258,6 @@ class DiscardsGraphDumpImpl : public discards::mojom::GraphDump,
SEQUENCE_CHECKER(sequence_checker_);
base::WeakPtrFactory<DiscardsGraphDumpImpl> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(DiscardsGraphDumpImpl);
};
#endif // CHROME_BROWSER_UI_WEBUI_DISCARDS_GRAPH_DUMP_IMPL_H_
diff --git a/chromium/chrome/browser/ui/webui/domain_reliability_internals_ui.cc b/chromium/chrome/browser/ui/webui/domain_reliability_internals_ui.cc
index 5262795c288..a1968e2668a 100644
--- a/chromium/chrome/browser/ui/webui/domain_reliability_internals_ui.cc
+++ b/chromium/chrome/browser/ui/webui/domain_reliability_internals_ui.cc
@@ -47,7 +47,7 @@ DomainReliabilityInternalsHandler::~DomainReliabilityInternalsHandler() =
default;
void DomainReliabilityInternalsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"updateData",
base::BindRepeating(&DomainReliabilityInternalsHandler::HandleUpdateData,
base::Unretained(this)));
@@ -55,7 +55,7 @@ void DomainReliabilityInternalsHandler::RegisterMessages() {
void DomainReliabilityInternalsHandler::HandleUpdateData(
const base::ListValue* args) {
- DCHECK_EQ(1u, args->GetSize());
+ DCHECK_EQ(1u, args->GetList().size());
AllowJavascript();
callback_id_ = args->GetList()[0].GetString();
diff --git a/chromium/chrome/browser/ui/webui/domain_reliability_internals_ui.h b/chromium/chrome/browser/ui/webui/domain_reliability_internals_ui.h
index 1c08e86088c..b80e63eefca 100644
--- a/chromium/chrome/browser/ui/webui/domain_reliability_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/domain_reliability_internals_ui.h
@@ -22,14 +22,23 @@ class Value;
class DomainReliabilityInternalsUI : public content::WebUIController {
public:
explicit DomainReliabilityInternalsUI(content::WebUI* web_ui);
- ~DomainReliabilityInternalsUI() override;
- DISALLOW_COPY_AND_ASSIGN(DomainReliabilityInternalsUI);
+ DomainReliabilityInternalsUI(const DomainReliabilityInternalsUI&) = delete;
+ DomainReliabilityInternalsUI& operator=(const DomainReliabilityInternalsUI&) =
+ delete;
+
+ ~DomainReliabilityInternalsUI() override;
};
class DomainReliabilityInternalsHandler : public content::WebUIMessageHandler {
public:
DomainReliabilityInternalsHandler();
+
+ DomainReliabilityInternalsHandler(const DomainReliabilityInternalsHandler&) =
+ delete;
+ DomainReliabilityInternalsHandler& operator=(
+ const DomainReliabilityInternalsHandler&) = delete;
+
~DomainReliabilityInternalsHandler() override;
// content::WebUIMessageHandler:
@@ -41,8 +50,6 @@ class DomainReliabilityInternalsHandler : public content::WebUIMessageHandler {
std::string callback_id_;
base::WeakPtrFactory<DomainReliabilityInternalsHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(DomainReliabilityInternalsHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_DOMAIN_RELIABILITY_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/download_internals/download_internals_ui.h b/chromium/chrome/browser/ui/webui/download_internals/download_internals_ui.h
index 1785e634507..444e0b33697 100644
--- a/chromium/chrome/browser/ui/webui/download_internals/download_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/download_internals/download_internals_ui.h
@@ -12,10 +12,11 @@
class DownloadInternalsUI : public content::WebUIController {
public:
explicit DownloadInternalsUI(content::WebUI* web_ui);
- ~DownloadInternalsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(DownloadInternalsUI);
+ DownloadInternalsUI(const DownloadInternalsUI&) = delete;
+ DownloadInternalsUI& operator=(const DownloadInternalsUI&) = delete;
+
+ ~DownloadInternalsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_DOWNLOAD_INTERNALS_DOWNLOAD_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.cc b/chromium/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.cc
index f15b403b625..4aa3a811d21 100644
--- a/chromium/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.cc
@@ -26,17 +26,17 @@ DownloadInternalsUIMessageHandler::~DownloadInternalsUIMessageHandler() {
}
void DownloadInternalsUIMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getServiceStatus",
base::BindRepeating(
&DownloadInternalsUIMessageHandler::HandleGetServiceStatus,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getServiceDownloads",
base::BindRepeating(
&DownloadInternalsUIMessageHandler::HandleGetServiceDownloads,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"startDownload",
base::BindRepeating(
&DownloadInternalsUIMessageHandler::HandleStartDownload,
diff --git a/chromium/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.h b/chromium/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.h
index 187a30e1bca..dff7d8aec3a 100644
--- a/chromium/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.h
+++ b/chromium/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.h
@@ -21,6 +21,12 @@ class DownloadInternalsUIMessageHandler : public content::WebUIMessageHandler,
public download::Logger::Observer {
public:
DownloadInternalsUIMessageHandler();
+
+ DownloadInternalsUIMessageHandler(const DownloadInternalsUIMessageHandler&) =
+ delete;
+ DownloadInternalsUIMessageHandler& operator=(
+ const DownloadInternalsUIMessageHandler&) = delete;
+
~DownloadInternalsUIMessageHandler() override;
// content::WebUIMessageHandler implementation.
@@ -46,8 +52,6 @@ class DownloadInternalsUIMessageHandler : public content::WebUIMessageHandler,
base::WeakPtrFactory<DownloadInternalsUIMessageHandler> weak_ptr_factory_{
this};
-
- DISALLOW_COPY_AND_ASSIGN(DownloadInternalsUIMessageHandler);
};
} // namespace download_internals
diff --git a/chromium/chrome/browser/ui/webui/download_shelf/COMMON_METADATA b/chromium/chrome/browser/ui/webui/download_shelf/COMMON_METADATA
new file mode 100644
index 00000000000..6bf7cbfb89f
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/download_shelf/COMMON_METADATA
@@ -0,0 +1,3 @@
+monorail {
+ component: "UI>Browser>Downloads"
+}
diff --git a/chromium/chrome/browser/ui/webui/download_shelf/DIR_METADATA b/chromium/chrome/browser/ui/webui/download_shelf/DIR_METADATA
index 6bf7cbfb89f..2eac3f4ea82 100644
--- a/chromium/chrome/browser/ui/webui/download_shelf/DIR_METADATA
+++ b/chromium/chrome/browser/ui/webui/download_shelf/DIR_METADATA
@@ -1,3 +1 @@
-monorail {
- component: "UI>Browser>Downloads"
-}
+mixins: "//chrome/browser/ui/webui/download_shelf/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/download_shelf/download_mojom_traits.h b/chromium/chrome/browser/ui/webui/download_shelf/download_mojom_traits.h
index 45c6220eb6f..bafed9f0942 100644
--- a/chromium/chrome/browser/ui/webui/download_shelf/download_mojom_traits.h
+++ b/chromium/chrome/browser/ui/webui/download_shelf/download_mojom_traits.h
@@ -163,6 +163,8 @@ struct EnumTraits<download_shelf::mojom::DownloadMode,
return MojoDownloadMode::kMixedContentWarn;
case DownloadMode::kDeepScanning:
return MojoDownloadMode::kDeepScanning;
+ case DownloadMode::kIncognitoWarning:
+ return MojoDownloadMode::kIncognitoWarning;
}
NOTREACHED();
return MojoDownloadMode::kNormal;
@@ -188,6 +190,9 @@ struct EnumTraits<download_shelf::mojom::DownloadMode,
case MojoDownloadMode::kDeepScanning:
*out = DownloadMode::kDeepScanning;
return true;
+ case MojoDownloadMode::kIncognitoWarning:
+ *out = DownloadMode::kIncognitoWarning;
+ return true;
}
NOTREACHED();
return false;
diff --git a/chromium/chrome/browser/ui/webui/download_shelf/download_shelf.mojom b/chromium/chrome/browser/ui/webui/download_shelf/download_shelf.mojom
index aa090b0f90d..c83676ff765 100644
--- a/chromium/chrome/browser/ui/webui/download_shelf/download_shelf.mojom
+++ b/chromium/chrome/browser/ui/webui/download_shelf/download_shelf.mojom
@@ -94,6 +94,8 @@ enum DownloadMode {
kMixedContentBlock,
// Displaying in-progress deep scanning information.
kDeepScanning,
+ // Displaying Incognito warning.
+ kIncognitoWarning,
};
// Mixed content details associated with a given download item. Maps to
diff --git a/chromium/chrome/browser/ui/webui/download_shelf/download_shelf_ui.cc b/chromium/chrome/browser/ui/webui/download_shelf/download_shelf_ui.cc
index 70a7c6b0a16..f5684c06bd5 100644
--- a/chromium/chrome/browser/ui/webui/download_shelf/download_shelf_ui.cc
+++ b/chromium/chrome/browser/ui/webui/download_shelf/download_shelf_ui.cc
@@ -33,7 +33,7 @@ DownloadShelfUI::DownloadShelfUI(content::WebUI* web_ui)
: ui::MojoWebUIController(web_ui, true),
progress_timer_(std::make_unique<base::RetainingOneShotTimer>(
FROM_HERE,
- base::TimeDelta::FromMilliseconds(30),
+ base::Milliseconds(30),
base::BindRepeating(&DownloadShelfUI::NotifyDownloadProgress,
base::Unretained(this)))),
download_manager_(Profile::FromWebUI(web_ui)->GetDownloadManager()),
@@ -252,7 +252,7 @@ void DownloadShelfUI::SetProgressTimerForTesting(
std::unique_ptr<base::RetainingOneShotTimer> timer) {
progress_timer_ = std::move(timer);
progress_timer_->Start(
- FROM_HERE, base::TimeDelta::FromMilliseconds(30),
+ FROM_HERE, base::Milliseconds(30),
base::BindRepeating(&DownloadShelfUI::NotifyDownloadProgress,
base::Unretained(this)));
}
diff --git a/chromium/chrome/browser/ui/webui/downloads/downloads.mojom b/chromium/chrome/browser/ui/webui/downloads/downloads.mojom
index 873cdbdc5d6..8e94a08ab31 100644
--- a/chromium/chrome/browser/ui/webui/downloads/downloads.mojom
+++ b/chromium/chrome/browser/ui/webui/downloads/downloads.mojom
@@ -10,6 +10,7 @@ struct Data {
bool file_externally_removed;
bool is_dangerous;
bool is_mixed_content;
+ bool should_show_incognito_warning;
// |otr| stands for off-the-record and is true when a download entry is
// created during an incognito or guest profile session.
bool otr;
@@ -49,6 +50,7 @@ interface PageHandler {
OpenFileRequiringGesture(string id);
Drag(string id);
SaveDangerousRequiringGesture(string id);
+ AcceptIncognitoWarning(string id);
DiscardDangerous(string id);
RetryDownload(string id);
Show(string id);
diff --git a/chromium/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc b/chromium/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
index 77d41cb4a73..4c8f557f80b 100644
--- a/chromium/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
+++ b/chromium/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
@@ -176,6 +176,12 @@ void DownloadsDOMHandler::SaveDangerousRequiringGesture(const std::string& id) {
ShowDangerPrompt(file);
}
+void DownloadsDOMHandler::AcceptIncognitoWarning(const std::string& id) {
+ download::DownloadItem* file = GetDownloadByStringId(id);
+ if (file)
+ file->AcceptIncognitoWarning();
+}
+
void DownloadsDOMHandler::DiscardDangerous(const std::string& id) {
CountDownloadsDOMEvents(DOWNLOADS_DOM_EVENT_DISCARD_DANGEROUS);
RemoveDownloadInArgs(id);
diff --git a/chromium/chrome/browser/ui/webui/downloads/downloads_dom_handler.h b/chromium/chrome/browser/ui/webui/downloads/downloads_dom_handler.h
index b91eca13de4..7a6c50e661b 100644
--- a/chromium/chrome/browser/ui/webui/downloads/downloads_dom_handler.h
+++ b/chromium/chrome/browser/ui/webui/downloads/downloads_dom_handler.h
@@ -41,6 +41,10 @@ class DownloadsDOMHandler : public content::WebContentsObserver,
mojo::PendingRemote<downloads::mojom::Page> page,
content::DownloadManager* download_manager,
content::WebUI* web_ui);
+
+ DownloadsDOMHandler(const DownloadsDOMHandler&) = delete;
+ DownloadsDOMHandler& operator=(const DownloadsDOMHandler&) = delete;
+
~DownloadsDOMHandler() override;
// WebContentsObserver implementation.
@@ -51,6 +55,7 @@ class DownloadsDOMHandler : public content::WebContentsObserver,
void OpenFileRequiringGesture(const std::string& id) override;
void Drag(const std::string& id) override;
void SaveDangerousRequiringGesture(const std::string& id) override;
+ void AcceptIncognitoWarning(const std::string& id) override;
void DiscardDangerous(const std::string& id) override;
void RetryDownload(const std::string& id) override;
void Show(const std::string& id) override;
@@ -130,8 +135,6 @@ class DownloadsDOMHandler : public content::WebContentsObserver,
mojo::Receiver<downloads::mojom::PageHandler> receiver_;
base::WeakPtrFactory<DownloadsDOMHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(DownloadsDOMHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_DOWNLOADS_DOWNLOADS_DOM_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker.cc b/chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker.cc
index 586023d029f..682cd15be12 100644
--- a/chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker.cc
+++ b/chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker.cc
@@ -287,6 +287,8 @@ downloads::mojom::DataPtr DownloadsListTracker::CreateDownloadData(
case download::DownloadItem::IN_PROGRESS: {
if (download_item->IsDangerous()) {
state = "DANGEROUS";
+ } else if (download_item->ShouldShowIncognitoWarning()) {
+ state = "INCOGNITO_WARNING";
} else if (download_item->IsMixedContent()) {
state = "MIXED_CONTENT";
} else if (download_item->GetDangerType() ==
@@ -340,6 +342,8 @@ downloads::mojom::DataPtr DownloadsListTracker::CreateDownloadData(
file_value->danger_type = danger_type;
file_value->is_dangerous = download_item->IsDangerous();
file_value->is_mixed_content = download_item->IsMixedContent();
+ file_value->should_show_incognito_warning =
+ download_item->ShouldShowIncognitoWarning();
file_value->last_reason_text = base::UTF16ToUTF8(last_reason_text);
file_value->percent = percent;
file_value->progress_status_text = base::UTF16ToUTF8(progress_status_text);
diff --git a/chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker.h b/chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker.h
index 2f25435575a..ef91b2bf82c 100644
--- a/chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker.h
+++ b/chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker.h
@@ -30,6 +30,10 @@ class DownloadsListTracker
public:
DownloadsListTracker(content::DownloadManager* download_manager,
mojo::PendingRemote<downloads::mojom::Page> page);
+
+ DownloadsListTracker(const DownloadsListTracker&) = delete;
+ DownloadsListTracker& operator=(const DownloadsListTracker&) = delete;
+
~DownloadsListTracker() override;
// Clears all downloads on the page if currently sending updates and resets
@@ -129,8 +133,6 @@ class DownloadsListTracker
// Current search terms.
std::vector<std::u16string> search_terms_;
-
- DISALLOW_COPY_AND_ASSIGN(DownloadsListTracker);
};
#endif // CHROME_BROWSER_UI_WEBUI_DOWNLOADS_DOWNLOADS_LIST_TRACKER_H_
diff --git a/chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker_unittest.cc b/chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker_unittest.cc
index dbc391aaa7d..44573081490 100644
--- a/chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/downloads/downloads_list_tracker_unittest.cc
@@ -96,7 +96,7 @@ class DownloadsListTrackerTest : public testing::Test {
MockDownloadItem* CreateNextItem() {
return CreateMock(mock_items_.size(), base::Time::UnixEpoch() +
- base::TimeDelta::FromHours(mock_items_.size()));
+ base::Hours(mock_items_.size()));
}
void CreateTracker() {
diff --git a/chromium/chrome/browser/ui/webui/downloads/downloads_ui.cc b/chromium/chrome/browser/ui/webui/downloads/downloads_ui.cc
index 8f25f8c270b..aeb292e4047 100644
--- a/chromium/chrome/browser/ui/webui/downloads/downloads_ui.cc
+++ b/chromium/chrome/browser/ui/webui/downloads/downloads_ui.cc
@@ -119,7 +119,7 @@ content::WebUIDataSource* CreateDownloadsUIHTMLSource(Profile* profile) {
{"toastClearedAll", IDS_DOWNLOAD_TOAST_CLEARED_ALL},
{"toastRemovedFromList", IDS_DOWNLOAD_TOAST_REMOVED_FROM_LIST},
{"undo", IDS_DOWNLOAD_UNDO},
- };
+ {"downloadAnyway", IDS_DOWNLOAD_ANYWAY}};
source->AddLocalizedStrings(kStrings);
source->AddLocalizedString("dangerDownloadDesc",
@@ -133,6 +133,8 @@ content::WebUIDataSource* CreateDownloadsUIHTMLSource(Profile* profile) {
IDS_BLOCK_REASON_UNWANTED_DOWNLOAD);
source->AddLocalizedString("mixedContentDownloadDesc",
IDS_BLOCK_REASON_MIXED_CONTENT);
+ source->AddLocalizedString("incognitoDownloadsWarningDesc",
+ IDS_INCOGNITO_DOWNLOAD_WARNING);
source->AddLocalizedString("asyncScanningDownloadDesc",
IDS_BLOCK_REASON_DEEP_SCANNING);
source->AddLocalizedString("accountCompromiseDownloadDesc",
diff --git a/chromium/chrome/browser/ui/webui/downloads/downloads_ui.h b/chromium/chrome/browser/ui/webui/downloads/downloads_ui.h
index 74665d775ec..73840de3d0c 100644
--- a/chromium/chrome/browser/ui/webui/downloads/downloads_ui.h
+++ b/chromium/chrome/browser/ui/webui/downloads/downloads_ui.h
@@ -25,6 +25,10 @@ class DownloadsUI : public ui::MojoWebUIController,
public downloads::mojom::PageHandlerFactory {
public:
explicit DownloadsUI(content::WebUI* web_ui);
+
+ DownloadsUI(const DownloadsUI&) = delete;
+ DownloadsUI& operator=(const DownloadsUI&) = delete;
+
~DownloadsUI() override;
static base::RefCountedMemory* GetFaviconResourceBytes(
@@ -47,8 +51,6 @@ class DownloadsUI : public ui::MojoWebUIController,
this};
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(DownloadsUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_DOWNLOADS_DOWNLOADS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/engagement/site_engagement_ui.cc b/chromium/chrome/browser/ui/webui/engagement/site_engagement_ui.cc
index 7781c93a744..c69fa9d709a 100644
--- a/chromium/chrome/browser/ui/webui/engagement/site_engagement_ui.cc
+++ b/chromium/chrome/browser/ui/webui/engagement/site_engagement_ui.cc
@@ -41,6 +41,11 @@ class SiteEngagementDetailsProviderImpl
DCHECK(profile_);
}
+ SiteEngagementDetailsProviderImpl(const SiteEngagementDetailsProviderImpl&) =
+ delete;
+ SiteEngagementDetailsProviderImpl& operator=(
+ const SiteEngagementDetailsProviderImpl&) = delete;
+
~SiteEngagementDetailsProviderImpl() override {}
// site_engagement::mojom::SiteEngagementDetailsProvider overrides:
@@ -83,8 +88,6 @@ class SiteEngagementDetailsProviderImpl
mojo::Receiver<site_engagement::mojom::SiteEngagementDetailsProvider>
receiver_;
-
- DISALLOW_COPY_AND_ASSIGN(SiteEngagementDetailsProviderImpl);
};
} // namespace
diff --git a/chromium/chrome/browser/ui/webui/engagement/site_engagement_ui.h b/chromium/chrome/browser/ui/webui/engagement/site_engagement_ui.h
index fb679644672..513bbebb48a 100644
--- a/chromium/chrome/browser/ui/webui/engagement/site_engagement_ui.h
+++ b/chromium/chrome/browser/ui/webui/engagement/site_engagement_ui.h
@@ -14,6 +14,10 @@
class SiteEngagementUI : public ui::MojoWebUIController {
public:
explicit SiteEngagementUI(content::WebUI* web_ui);
+
+ SiteEngagementUI(const SiteEngagementUI&) = delete;
+ SiteEngagementUI& operator=(const SiteEngagementUI&) = delete;
+
~SiteEngagementUI() override;
// Instantiates the implementor of the mojom::SiteEngagementDetailsProvider
@@ -27,8 +31,6 @@ class SiteEngagementUI : public ui::MojoWebUIController {
ui_handler_;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(SiteEngagementUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_ENGAGEMENT_SITE_ENGAGEMENT_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/explore_sites_internals/explore_sites_internals_page_handler.h b/chromium/chrome/browser/ui/webui/explore_sites_internals/explore_sites_internals_page_handler.h
index 8b1218bcf51..4b199c7f196 100644
--- a/chromium/chrome/browser/ui/webui/explore_sites_internals/explore_sites_internals_page_handler.h
+++ b/chromium/chrome/browser/ui/webui/explore_sites_internals/explore_sites_internals_page_handler.h
@@ -24,6 +24,12 @@ class ExploreSitesInternalsPageHandler
receiver,
ExploreSitesService* explore_sites_service,
Profile* profile);
+
+ ExploreSitesInternalsPageHandler(const ExploreSitesInternalsPageHandler&) =
+ delete;
+ ExploreSitesInternalsPageHandler& operator=(
+ const ExploreSitesInternalsPageHandler&) = delete;
+
~ExploreSitesInternalsPageHandler() override;
private:
@@ -38,8 +44,6 @@ class ExploreSitesInternalsPageHandler
mojo::Receiver<explore_sites_internals::mojom::PageHandler> receiver_;
ExploreSitesService* explore_sites_service_;
Profile* profile_;
-
- DISALLOW_COPY_AND_ASSIGN(ExploreSitesInternalsPageHandler);
};
} // namespace explore_sites
diff --git a/chromium/chrome/browser/ui/webui/explore_sites_internals/explore_sites_internals_ui.h b/chromium/chrome/browser/ui/webui/explore_sites_internals/explore_sites_internals_ui.h
index 4aa64b4ae1e..85826d28f9f 100644
--- a/chromium/chrome/browser/ui/webui/explore_sites_internals/explore_sites_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/explore_sites_internals/explore_sites_internals_ui.h
@@ -21,6 +21,10 @@ namespace explore_sites {
class ExploreSitesInternalsUI : public ui::MojoWebUIController {
public:
explicit ExploreSitesInternalsUI(content::WebUI* web_ui);
+
+ ExploreSitesInternalsUI(const ExploreSitesInternalsUI&) = delete;
+ ExploreSitesInternalsUI& operator=(const ExploreSitesInternalsUI&) = delete;
+
~ExploreSitesInternalsUI() override;
// Instantiates the implementor of the mojom::PageHandler mojo
@@ -34,8 +38,6 @@ class ExploreSitesInternalsUI : public ui::MojoWebUIController {
ExploreSitesService* explore_sites_service_;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(ExploreSitesInternalsUI);
};
} // namespace explore_sites
diff --git a/chromium/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.cc b/chromium/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.cc
index 3ea341096a2..5b33eab00d3 100644
--- a/chromium/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.cc
+++ b/chromium/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.cc
@@ -125,30 +125,30 @@ void KioskAppsHandler::OnJavascriptDisallowed() {
}
void KioskAppsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializeKioskAppSettings",
base::BindRepeating(&KioskAppsHandler::HandleInitializeKioskAppSettings,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getKioskAppSettings",
base::BindRepeating(&KioskAppsHandler::HandleGetKioskAppSettings,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"addKioskApp", base::BindRepeating(&KioskAppsHandler::HandleAddKioskApp,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeKioskApp",
base::BindRepeating(&KioskAppsHandler::HandleRemoveKioskApp,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"enableKioskAutoLaunch",
base::BindRepeating(&KioskAppsHandler::HandleEnableKioskAutoLaunch,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"disableKioskAutoLaunch",
base::BindRepeating(&KioskAppsHandler::HandleDisableKioskAutoLaunch,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setDisableBailoutShortcut",
base::BindRepeating(&KioskAppsHandler::HandleSetDisableBailoutShortcut,
base::Unretained(this)));
@@ -242,7 +242,7 @@ KioskAppsHandler::GetSettingsDictionary() {
void KioskAppsHandler::HandleInitializeKioskAppSettings(
const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
@@ -253,7 +253,7 @@ void KioskAppsHandler::HandleInitializeKioskAppSettings(
}
void KioskAppsHandler::HandleGetKioskAppSettings(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
diff --git a/chromium/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.h b/chromium/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.h
index 3cced8e592e..33ea9aa0151 100644
--- a/chromium/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.h
+++ b/chromium/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.h
@@ -27,6 +27,10 @@ class KioskAppsHandler : public content::WebUIMessageHandler,
public KioskAppManagerObserver {
public:
explicit KioskAppsHandler(OwnerSettingsServiceAsh* service);
+
+ KioskAppsHandler(const KioskAppsHandler&) = delete;
+ KioskAppsHandler& operator=(const KioskAppsHandler&) = delete;
+
~KioskAppsHandler() override;
// content::WebUIMessageHandler overrides:
@@ -69,8 +73,6 @@ class KioskAppsHandler : public content::WebUIMessageHandler,
bool is_auto_launch_enabled_;
OwnerSettingsServiceAsh* const owner_settings_service_; // not owned
base::WeakPtrFactory<KioskAppsHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(KioskAppsHandler);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/extensions/extension_icon_source.cc b/chromium/chrome/browser/ui/webui/extensions/extension_icon_source.cc
index 988b6d78c37..3a7fdaedc83 100644
--- a/chromium/chrome/browser/ui/webui/extensions/extension_icon_source.cc
+++ b/chromium/chrome/browser/ui/webui/extensions/extension_icon_source.cc
@@ -99,7 +99,7 @@ GURL ExtensionIconSource::GetIconURL(const std::string& extension_id,
SkBitmap* ExtensionIconSource::LoadImageByResourceId(int resource_id) {
base::StringPiece contents =
ui::ResourceBundle::GetSharedInstance().GetRawDataResourceForScale(
- resource_id, ui::SCALE_FACTOR_100P);
+ resource_id, ui::k100Percent);
// Convert and return it.
const unsigned char* data =
diff --git a/chromium/chrome/browser/ui/webui/extensions/extension_icon_source.h b/chromium/chrome/browser/ui/webui/extensions/extension_icon_source.h
index 4cf142d54ed..415524fd0a6 100644
--- a/chromium/chrome/browser/ui/webui/extensions/extension_icon_source.h
+++ b/chromium/chrome/browser/ui/webui/extensions/extension_icon_source.h
@@ -53,6 +53,10 @@ class ExtensionIconSource : public content::URLDataSource,
public base::SupportsWeakPtr<ExtensionIconSource> {
public:
explicit ExtensionIconSource(Profile* profile);
+
+ ExtensionIconSource(const ExtensionIconSource&) = delete;
+ ExtensionIconSource& operator=(const ExtensionIconSource&) = delete;
+
~ExtensionIconSource() override;
// Gets the URL of the |extension| icon in the given |icon_size|, falling back
@@ -157,8 +161,6 @@ class ExtensionIconSource : public content::URLDataSource,
std::unique_ptr<SkBitmap> default_extension_data_;
base::CancelableTaskTracker cancelable_task_tracker_;
-
- DISALLOW_COPY_AND_ASSIGN(ExtensionIconSource);
};
} // namespace extensions
diff --git a/chromium/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc b/chromium/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc
index a906ddaf913..cfde53dbc3b 100644
--- a/chromium/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/extensions/extension_settings_browsertest.cc
@@ -126,7 +126,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionSettingsUIBrowserTest, ViewSource) {
content::WebContents* options_contents = nullptr;
{
content::WebContentsAddedObserver options_contents_added_observer;
- ui_test_utils::NavigateToURL(browser(), options_url);
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), options_url));
options_contents = options_contents_added_observer.GetWebContents();
}
ASSERT_TRUE(options_contents);
@@ -222,7 +222,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionSettingsUIBrowserTest,
// Navigate to chrome://extensions which is a allowlisted URL for the
// chrome.activityLogPrivate API.
GURL extensions_url("chrome://extensions");
- ui_test_utils::NavigateToURL(browser(), extensions_url);
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), extensions_url));
content::WebContents* page_contents =
browser()->tab_strip_model()->GetActiveWebContents();
ASSERT_TRUE(page_contents);
@@ -262,7 +262,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionsActivityLogTest, TestActivityLogVisible) {
ASSERT_TRUE(listener.WaitUntilSatisfied());
GURL activity_log_url("chrome://extensions/?activity=" + extension->id());
- ui_test_utils::NavigateToURL(browser(), activity_log_url);
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), activity_log_url));
content::WebContents* activity_log_contents =
browser()->tab_strip_model()->GetActiveWebContents();
ASSERT_TRUE(activity_log_contents);
diff --git a/chromium/chrome/browser/ui/webui/extensions/extension_settings_browsertest.h b/chromium/chrome/browser/ui/webui/extensions/extension_settings_browsertest.h
index 12aba4c40da..85df53308ca 100644
--- a/chromium/chrome/browser/ui/webui/extensions/extension_settings_browsertest.h
+++ b/chromium/chrome/browser/ui/webui/extensions/extension_settings_browsertest.h
@@ -23,6 +23,12 @@ class ScopedTestDialogAutoConfirm;
class ExtensionSettingsUIBrowserTest : public WebUIBrowserTest {
public:
ExtensionSettingsUIBrowserTest();
+
+ ExtensionSettingsUIBrowserTest(const ExtensionSettingsUIBrowserTest&) =
+ delete;
+ ExtensionSettingsUIBrowserTest& operator=(
+ const ExtensionSettingsUIBrowserTest&) = delete;
+
~ExtensionSettingsUIBrowserTest() override;
protected:
@@ -73,8 +79,6 @@ class ExtensionSettingsUIBrowserTest : public WebUIBrowserTest {
std::unique_ptr<extensions::ScopedTestDialogAutoConfirm>
uninstall_auto_confirm_;
-
- DISALLOW_COPY_AND_ASSIGN(ExtensionSettingsUIBrowserTest);
};
#endif // CHROME_BROWSER_UI_WEBUI_EXTENSIONS_EXTENSION_SETTINGS_BROWSERTEST_H_
diff --git a/chromium/chrome/browser/ui/webui/extensions/extensions_internals_browsertest.cc b/chromium/chrome/browser/ui/webui/extensions/extensions_internals_browsertest.cc
index 89fe092d3ee..55f55f11d41 100644
--- a/chromium/chrome/browser/ui/webui/extensions/extensions_internals_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/extensions/extensions_internals_browsertest.cc
@@ -34,7 +34,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionsInternalsTest,
// First, check that navigation succeeds.
GURL navigation_url(
content::GetWebUIURL(chrome::kChromeUIExtensionsInternalsHost));
- ui_test_utils::NavigateToURL(browser(), navigation_url);
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), navigation_url));
content::WebContents* web_contents =
browser()->tab_strip_model()->GetActiveWebContents();
ASSERT_TRUE(web_contents);
diff --git a/chromium/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chromium/chrome/browser/ui/webui/extensions/extensions_ui.cc
index 9476569e605..c2d1b9fe9bc 100644
--- a/chromium/chrome/browser/ui/webui/extensions/extensions_ui.cc
+++ b/chromium/chrome/browser/ui/webui/extensions/extensions_ui.cc
@@ -59,6 +59,8 @@ namespace {
constexpr char kInDevModeKey[] = "inDevMode";
constexpr char kShowActivityLogKey[] = "showActivityLog";
constexpr char kLoadTimeClassesKey[] = "loadTimeClasses";
+constexpr char kExtensionsMenuAccessControlEnabled[] =
+ "extensionsMenuAccessControlEnabled";
std::string GetLoadTimeClasses(bool in_dev_mode) {
return in_dev_mode ? "in-dev-mode" : std::string();
@@ -126,9 +128,15 @@ content::WebUIDataSource* CreateExtensionsSource(Profile* profile,
{"hostPermissionsDescription", IDS_EXTENSIONS_HOST_PERMISSIONS_DESCRIPTION},
{"hostPermissionsEdit", IDS_EXTENSIONS_HOST_PERMISSIONS_EDIT},
{"hostPermissionsHeading", IDS_EXTENSIONS_ITEM_HOST_PERMISSIONS_HEADING},
+ {"newHostPermissionsHeading",
+ IDS_EXTENSIONS_NEW_ITEM_HOST_PERMISSIONS_HEADING},
{"hostAccessOnClick", IDS_EXTENSIONS_HOST_ACCESS_ON_CLICK},
+ {"newHostAccessOnClick", IDS_EXTENSIONS_NEW_HOST_ACCESS_ON_CLICK},
{"hostAccessOnSpecificSites", IDS_EXTENSIONS_HOST_ACCESS_ON_SPECIFIC_SITES},
+ {"hostAccessCustomizeForEachSite",
+ IDS_EXTENSIONS_HOST_CUSTOMIZE_FOR_EACH_SITE},
{"hostAccessOnAllSites", IDS_EXTENSIONS_HOST_ACCESS_ON_ALL_SITES},
+ {"newHostAccessOnAllSites", IDS_EXTENSIONS_NEW_HOST_ACCESS_ON_ALL_SITES},
{"hostAllowedHosts", IDS_EXTENSIONS_ITEM_ALLOWED_HOSTS},
{"itemId", IDS_EXTENSIONS_ITEM_ID},
{"itemInspectViews", IDS_EXTENSIONS_ITEM_INSPECT_VIEWS},
@@ -322,6 +330,10 @@ content::WebUIDataSource* CreateExtensionsSource(Profile* profile,
source->AddString(kLoadTimeClassesKey, GetLoadTimeClasses(in_dev_mode));
+ source->AddBoolean(
+ kExtensionsMenuAccessControlEnabled,
+ base::FeatureList::IsEnabled(features::kExtensionsMenuAccessControl));
+
return source;
}
diff --git a/chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_message_handler.cc b/chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_message_handler.cc
index b208a713b2f..d85143c4511 100644
--- a/chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_message_handler.cc
@@ -10,9 +10,6 @@
#include "base/bind.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
-#include "base/strings/string_util.h"
-#include "base/strings/stringprintf.h"
-#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_key.h"
@@ -129,19 +126,19 @@ FamilyLinkUserInternalsMessageHandler::
void FamilyLinkUserInternalsMessageHandler::RegisterMessages() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"registerForEvents",
base::BindRepeating(
&FamilyLinkUserInternalsMessageHandler::HandleRegisterForEvents,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getBasicInfo",
base::BindRepeating(
&FamilyLinkUserInternalsMessageHandler::HandleGetBasicInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"tryURL",
base::BindRepeating(&FamilyLinkUserInternalsMessageHandler::HandleTryURL,
base::Unretained(this)));
@@ -180,7 +177,7 @@ void FamilyLinkUserInternalsMessageHandler::HandleGetBasicInfo(
void FamilyLinkUserInternalsMessageHandler::HandleTryURL(
const base::ListValue* args) {
- DCHECK_EQ(2u, args->GetSize());
+ DCHECK_EQ(2u, args->GetList().size());
std::string callback_id;
std::string url_str;
if (!args->GetString(0, &callback_id) || !args->GetString(1, &url_str))
@@ -200,12 +197,10 @@ void FamilyLinkUserInternalsMessageHandler::HandleTryURL(
web_contents->GetOutermostWebContents());
}
- std::map<std::string, std::u16string> allowlists =
- filter->GetMatchingAllowlistTitles(url);
filter->GetFilteringBehaviorForURLWithAsyncChecks(
url,
base::BindOnce(&FamilyLinkUserInternalsMessageHandler::OnTryURLResult,
- weak_factory_.GetWeakPtr(), allowlists, callback_id),
+ weak_factory_.GetWeakPtr(), callback_id),
skip_manual_parent_filter);
}
@@ -275,24 +270,15 @@ void FamilyLinkUserInternalsMessageHandler::SendFamilyLinkUserSettings(
}
void FamilyLinkUserInternalsMessageHandler::OnTryURLResult(
- const std::map<std::string, std::u16string>& allowlists,
const std::string& callback_id,
SupervisedUserURLFilter::FilteringBehavior behavior,
supervised_user_error_page::FilteringBehaviorReason reason,
bool uncertain) {
- std::vector<std::string> allowlists_list;
- for (const auto& allowlist : allowlists) {
- allowlists_list.push_back(
- base::StringPrintf("%s: %s", allowlist.first.c_str(),
- base::UTF16ToUTF8(allowlist.second).c_str()));
- }
- std::string allowlists_str = base::JoinString(allowlists_list, "; ");
base::DictionaryValue result;
result.SetString("allowResult",
FilteringBehaviorToString(behavior, uncertain));
result.SetBoolean("manual", reason == supervised_user_error_page::MANUAL &&
behavior == SupervisedUserURLFilter::ALLOW);
- result.SetString("allowlists", allowlists_str);
ResolveJavascriptCallback(base::Value(callback_id), result);
}
diff --git a/chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_message_handler.h b/chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_message_handler.h
index a54fd31caff..c833b46bfb7 100644
--- a/chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_message_handler.h
+++ b/chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_message_handler.h
@@ -26,6 +26,12 @@ class FamilyLinkUserInternalsMessageHandler
public SupervisedUserURLFilter::Observer {
public:
FamilyLinkUserInternalsMessageHandler();
+
+ FamilyLinkUserInternalsMessageHandler(
+ const FamilyLinkUserInternalsMessageHandler&) = delete;
+ FamilyLinkUserInternalsMessageHandler& operator=(
+ const FamilyLinkUserInternalsMessageHandler&) = delete;
+
~FamilyLinkUserInternalsMessageHandler() override;
private:
@@ -46,7 +52,6 @@ class FamilyLinkUserInternalsMessageHandler
void SendFamilyLinkUserSettings(const base::DictionaryValue* settings);
void OnTryURLResult(
- const std::map<std::string, std::u16string>& allowlists,
const std::string& callback_id,
SupervisedUserURLFilter::FilteringBehavior behavior,
supervised_user_error_page::FilteringBehaviorReason reason,
@@ -67,8 +72,6 @@ class FamilyLinkUserInternalsMessageHandler
base::WeakPtrFactory<FamilyLinkUserInternalsMessageHandler> weak_factory_{
this};
-
- DISALLOW_COPY_AND_ASSIGN(FamilyLinkUserInternalsMessageHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_FAMILY_LINK_USER_INTERNALS_FAMILY_LINK_USER_INTERNALS_MESSAGE_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_ui.h b/chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_ui.h
index 0a129dfb8ab..c91ec18233a 100644
--- a/chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/family_link_user_internals/family_link_user_internals_ui.h
@@ -12,10 +12,12 @@
class FamilyLinkUserInternalsUI : public content::WebUIController {
public:
explicit FamilyLinkUserInternalsUI(content::WebUI* web_ui);
- ~FamilyLinkUserInternalsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(FamilyLinkUserInternalsUI);
+ FamilyLinkUserInternalsUI(const FamilyLinkUserInternalsUI&) = delete;
+ FamilyLinkUserInternalsUI& operator=(const FamilyLinkUserInternalsUI&) =
+ delete;
+
+ ~FamilyLinkUserInternalsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_FAMILY_LINK_USER_INTERNALS_FAMILY_LINK_USER_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/favicon_source.h b/chromium/chrome/browser/ui/webui/favicon_source.h
index 42bb4675e83..fdd2a7b755b 100644
--- a/chromium/chrome/browser/ui/webui/favicon_source.h
+++ b/chromium/chrome/browser/ui/webui/favicon_source.h
@@ -41,6 +41,9 @@ class FaviconSource : public content::URLDataSource {
// |type| is the type of icon this FaviconSource will provide.
explicit FaviconSource(Profile* profile, chrome::FaviconUrlFormat format);
+ FaviconSource(const FaviconSource&) = delete;
+ FaviconSource& operator=(const FaviconSource&) = delete;
+
~FaviconSource() override;
// content::URLDataSource implementation.
@@ -103,8 +106,6 @@ class FaviconSource : public content::URLDataSource {
base::CancelableTaskTracker cancelable_task_tracker_;
base::WeakPtrFactory<FaviconSource> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(FaviconSource);
};
#endif // CHROME_BROWSER_UI_WEBUI_FAVICON_SOURCE_H_
diff --git a/chromium/chrome/browser/ui/webui/federated_learning/DIR_METADATA b/chromium/chrome/browser/ui/webui/federated_learning/DIR_METADATA
new file mode 100644
index 00000000000..94c43252405
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/federated_learning/DIR_METADATA
@@ -0,0 +1 @@
+mixins: "//chrome/browser/federated_learning/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/feed_internals/feed_internals.mojom b/chromium/chrome/browser/ui/webui/feed_internals/feed_internals.mojom
index 0d4c53492ee..e26aed51fa8 100644
--- a/chromium/chrome/browser/ui/webui/feed_internals/feed_internals.mojom
+++ b/chromium/chrome/browser/ui/webui/feed_internals/feed_internals.mojom
@@ -48,19 +48,6 @@ struct Properties {
FeedOrder following_feed_order;
};
-struct UserClassifier {
- // User class description.
- string user_class_description;
-
- // Estimated average length of time between two successive suggestion views of
- // in hours.
- float avg_hours_between_views;
-
- // Estimated average length of time between two successive uses of suggestions
- // in hours.
- float avg_hours_between_uses;
-};
-
struct LastFetchProperties {
// Last fetch status.
int32 last_fetch_status;
@@ -85,48 +72,23 @@ struct LastFetchProperties {
mojo_base.mojom.TimeDelta last_action_upload_time;
};
-// Models a single suggestion in the Feed.
-struct Suggestion {
- // Title of the suggestion.
- string title;
-
- // URL of the suggested page.
- url.mojom.Url url;
-
- // Name of the content's publisher.
- string publisher_name;
-
- // URL of the image associated with the suggestion.
- url.mojom.Url image_url;
-
- // URL of the suggested page's favicon.
- url.mojom.Url favicon_url;
-};
-
// Browser interface for the page. Consists of calls for data and hooks for
// interactivity.
interface PageHandler {
// Get general property values.
GetGeneralProperties() => (Properties properties);
- // Get user classifier property values.
- GetUserClassifierProperties() => (UserClassifier properties);
-
- // Clear stored properties for the user classifier.
- ClearUserClassifierProperties();
-
// Get last fetch data.
GetLastFetchProperties() => (LastFetchProperties properties);
- // Clear all data cached by the Feed library. Also triggers a refresh of the
- // Feed.
- ClearCachedDataAndRefreshFeed();
+ // Trigger a refresh of the For-you Feed.
+ RefreshForYouFeed();
- // Trigger a refresh of the Feed.
- RefreshFeed();
+ // Trigger a refresh of the Following Feed.
+ RefreshFollowingFeed();
- // Get the last known content with metadata.
- GetCurrentContent() => (array<Suggestion> suggestions);
+ // Trigger a refresh of the Web Feed suggestions.
+ RefreshWebFeedSuggestions();
// Internal state dump of the Feed library's process scope. Human-readable.
GetFeedProcessScopeDump() => (string dump);
diff --git a/chromium/chrome/browser/ui/webui/feed_internals/feed_internals_ui.cc b/chromium/chrome/browser/ui/webui/feed_internals/feed_internals_ui.cc
index a5c249eb902..76decc05d7e 100644
--- a/chromium/chrome/browser/ui/webui/feed_internals/feed_internals_ui.cc
+++ b/chromium/chrome/browser/ui/webui/feed_internals/feed_internals_ui.cc
@@ -8,7 +8,7 @@
#include "base/bind.h"
#include "base/feature_list.h"
-#include "chrome/browser/android/feed/v2/feed_service_factory.h"
+#include "chrome/browser/feed/android/feed_service_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/feed_internals/feed_internals.mojom.h"
#include "chrome/common/url_constants.h"
diff --git a/chromium/chrome/browser/ui/webui/feed_internals/feed_internals_ui.h b/chromium/chrome/browser/ui/webui/feed_internals/feed_internals_ui.h
index fc850b4edd1..8986c080dcb 100644
--- a/chromium/chrome/browser/ui/webui/feed_internals/feed_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/feed_internals/feed_internals_ui.h
@@ -26,6 +26,10 @@ class FeedV2InternalsPageHandler;
class FeedInternalsUI : public ui::MojoWebUIController {
public:
explicit FeedInternalsUI(content::WebUI* web_ui);
+
+ FeedInternalsUI(const FeedInternalsUI&) = delete;
+ FeedInternalsUI& operator=(const FeedInternalsUI&) = delete;
+
~FeedInternalsUI() override;
// Instantiates the implementor of the feed_internals::mojom::PageHandler mojo
@@ -37,8 +41,6 @@ class FeedInternalsUI : public ui::MojoWebUIController {
Profile* profile_;
std::unique_ptr<FeedV2InternalsPageHandler> v2_page_handler_;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(FeedInternalsUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_FEED_INTERNALS_FEED_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/feed_internals/feedv2_internals_page_handler.cc b/chromium/chrome/browser/ui/webui/feed_internals/feedv2_internals_page_handler.cc
index 30ee5f7de7b..c83cddf04b3 100644
--- a/chromium/chrome/browser/ui/webui/feed_internals/feedv2_internals_page_handler.cc
+++ b/chromium/chrome/browser/ui/webui/feed_internals/feedv2_internals_page_handler.cc
@@ -18,6 +18,7 @@
#include "components/feed/core/v2/public/feed_service.h"
#include "components/feed/core/v2/public/stream_type.h"
#include "components/feed/core/v2/public/types.h"
+#include "components/feed/core/v2/public/web_feed_subscriptions.h"
#include "components/feed/feed_feature_list.h"
#include "components/offline_pages/core/prefetch/prefetch_prefs.h"
#include "components/offline_pages/core/prefetch/suggestions_provider.h"
@@ -76,13 +77,6 @@ void FeedV2InternalsPageHandler::GetGeneralProperties(
std::move(callback).Run(std::move(properties));
}
-void FeedV2InternalsPageHandler::GetUserClassifierProperties(
- GetUserClassifierPropertiesCallback callback) {
- // TODO(crbug.com/1066230): Either implement this or remove it.
-
- std::move(callback).Run(feed_internals::mojom::UserClassifier::New());
-}
-
void FeedV2InternalsPageHandler::GetLastFetchProperties(
GetLastFetchPropertiesCallback callback) {
auto properties = feed_internals::mojom::LastFetchProperties::New();
@@ -103,30 +97,16 @@ void FeedV2InternalsPageHandler::GetLastFetchProperties(
std::move(callback).Run(std::move(properties));
}
-void FeedV2InternalsPageHandler::ClearUserClassifierProperties() {
- // TODO(crbug.com/1066230): Remove or implement this.
+void FeedV2InternalsPageHandler::RefreshForYouFeed() {
+ feed_stream_->ForceRefreshForDebugging(feed::kForYouStream);
}
-void FeedV2InternalsPageHandler::ClearCachedDataAndRefreshFeed() {
- // TODO(crbug.com/1066230): Not sure we need to clear cache since we don't
- // retain data on refresh.
- feed_stream_->ForceRefreshForDebugging();
+void FeedV2InternalsPageHandler::RefreshFollowingFeed() {
+ feed_stream_->ForceRefreshForDebugging(feed::kWebFeedStream);
}
-void FeedV2InternalsPageHandler::RefreshFeed() {
- feed_stream_->ForceRefreshForDebugging();
-}
-
-void FeedV2InternalsPageHandler::GetCurrentContent(
- GetCurrentContentCallback callback) {
- if (!IsFeedAllowed()) {
- std::move(callback).Run({});
- return;
- }
- // TODO(crbug.com/1066230): Content metadata is (yet?) available. I wasn't
- // able to get this to work for v1 either, so maybe it's not that important
- // to implement. We should remove |GetCurrentContent| if it's not needed.
- std::move(callback).Run({});
+void FeedV2InternalsPageHandler::RefreshWebFeedSuggestions() {
+ feed_stream_->subscriptions().RefreshRecommendedFeeds();
}
void FeedV2InternalsPageHandler::GetFeedProcessScopeDump(
diff --git a/chromium/chrome/browser/ui/webui/feed_internals/feedv2_internals_page_handler.h b/chromium/chrome/browser/ui/webui/feed_internals/feedv2_internals_page_handler.h
index 31d7dbb177f..d29bd430417 100644
--- a/chromium/chrome/browser/ui/webui/feed_internals/feedv2_internals_page_handler.h
+++ b/chromium/chrome/browser/ui/webui/feed_internals/feedv2_internals_page_handler.h
@@ -36,13 +36,10 @@ class FeedV2InternalsPageHandler : public feed_internals::mojom::PageHandler {
// feed_internals::mojom::PageHandler
void GetGeneralProperties(GetGeneralPropertiesCallback) override;
- void GetUserClassifierProperties(
- GetUserClassifierPropertiesCallback) override;
- void ClearUserClassifierProperties() override;
void GetLastFetchProperties(GetLastFetchPropertiesCallback) override;
- void ClearCachedDataAndRefreshFeed() override;
- void RefreshFeed() override;
- void GetCurrentContent(GetCurrentContentCallback) override;
+ void RefreshForYouFeed() override;
+ void RefreshFollowingFeed() override;
+ void RefreshWebFeedSuggestions() override;
void GetFeedProcessScopeDump(GetFeedProcessScopeDumpCallback) override;
void GetFeedHistograms(GetFeedHistogramsCallback) override;
void OverrideFeedHost(const GURL& host) override;
diff --git a/chromium/chrome/browser/ui/webui/feedback/feedback_dialog.cc b/chromium/chrome/browser/ui/webui/feedback/feedback_dialog.cc
index f3508ae1172..1a4ac85070a 100644
--- a/chromium/chrome/browser/ui/webui/feedback/feedback_dialog.cc
+++ b/chromium/chrome/browser/ui/webui/feedback/feedback_dialog.cc
@@ -9,6 +9,7 @@
#include "base/json/json_writer.h"
#include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h"
+#include "chrome/browser/profiles/profile_keep_alive_types.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/browser_dialogs.h"
#include "chrome/browser/ui/webui/feedback/feedback_handler.h"
@@ -53,18 +54,21 @@ void FeedbackDialog::CreateOrShow(
return;
}
- current_instance_ = new FeedbackDialog(info);
+ Profile* profile = ProfileManager::GetActiveUserProfile();
+ current_instance_ = new FeedbackDialog(profile, info);
gfx::NativeWindow window =
- chrome::ShowWebDialog(nullptr, ProfileManager::GetActiveUserProfile(),
- current_instance_, /*show=*/false);
+ chrome::ShowWebDialog(nullptr, profile, current_instance_,
+ /*show=*/false);
current_instance_->widget_ = views::Widget::GetWidgetForNativeWindow(window);
}
FeedbackDialog::FeedbackDialog(
+ Profile* profile,
const extensions::api::feedback_private::FeedbackInfo& info)
: feedback_info_(info.ToValue()),
feedback_flow_(info.flow),
- widget_(nullptr) {
+ widget_(nullptr),
+ profile_keep_alive_(profile, ProfileKeepAliveOrigin::kFeedbackDialog) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
set_can_resize(false);
set_can_minimize(true);
diff --git a/chromium/chrome/browser/ui/webui/feedback/feedback_dialog.h b/chromium/chrome/browser/ui/webui/feedback/feedback_dialog.h
index 51584663187..f99f6063bfb 100644
--- a/chromium/chrome/browser/ui/webui/feedback/feedback_dialog.h
+++ b/chromium/chrome/browser/ui/webui/feedback/feedback_dialog.h
@@ -9,6 +9,7 @@
#include <string>
#include <vector>
+#include "chrome/browser/profiles/scoped_profile_keep_alive.h"
#include "extensions/common/api/feedback_private.h"
#include "ui/views/widget/widget.h"
#include "ui/web_dialogs/web_dialog_delegate.h"
@@ -31,6 +32,7 @@ class FeedbackDialog : public ui::WebDialogDelegate {
private:
explicit FeedbackDialog(
+ Profile* profile,
const extensions::api::feedback_private::FeedbackInfo& info);
// Overrides from ui::WebDialogDelegate
@@ -58,6 +60,10 @@ class FeedbackDialog : public ui::WebDialogDelegate {
// Widget for the Feedback WebUI.
views::Widget* widget_;
static FeedbackDialog* current_instance_;
+
+ // Prevent Profile destruction until the dialog is closed, to prevent a
+ // dangling RenderProcessHost crash.
+ ScopedProfileKeepAlive profile_keep_alive_;
};
#endif // CHROME_BROWSER_UI_WEBUI_FEEDBACK_FEEDBACK_DIALOG_H_
diff --git a/chromium/chrome/browser/ui/webui/feedback/feedback_handler.cc b/chromium/chrome/browser/ui/webui/feedback/feedback_handler.cc
index 9a42e575a4e..35c04195072 100644
--- a/chromium/chrome/browser/ui/webui/feedback/feedback_handler.cc
+++ b/chromium/chrome/browser/ui/webui/feedback/feedback_handler.cc
@@ -52,24 +52,24 @@ FeedbackHandler::FeedbackHandler(const FeedbackDialog* dialog)
FeedbackHandler::~FeedbackHandler() = default;
void FeedbackHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showDialog", base::BindRepeating(&FeedbackHandler::HandleShowDialog,
base::Unretained(this)));
-#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
- web_ui()->RegisterMessageCallback(
+#if defined(OS_CHROMEOS)
+ web_ui()->RegisterDeprecatedMessageCallback(
"showAssistantLogsInfo",
base::BindRepeating(&FeedbackHandler::HandleShowAssistantLogsInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showBluetoothLogsInfo",
base::BindRepeating(&FeedbackHandler::HandleShowBluetoothLogsInfo,
base::Unretained(this)));
-#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
- web_ui()->RegisterMessageCallback(
+#endif // defined(OS_CHROMEOS)
+ web_ui()->RegisterDeprecatedMessageCallback(
"showSystemInfo",
base::BindRepeating(&FeedbackHandler::HandleShowSystemInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showMetrics", base::BindRepeating(&FeedbackHandler::HandleShowMetrics,
base::Unretained(this)));
}
@@ -78,7 +78,7 @@ void FeedbackHandler::HandleShowDialog(const base::ListValue* args) {
dialog_->Show();
}
-#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#if defined(OS_CHROMEOS)
void FeedbackHandler::HandleShowAssistantLogsInfo(const base::ListValue* args) {
ShowChildPage(dialog_, ChildPageURL("html/assistant_logs_info.html"),
std::u16string(),
@@ -91,7 +91,7 @@ void FeedbackHandler::HandleShowBluetoothLogsInfo(const base::ListValue* args) {
/*dialog_width=*/400, /*dialog_height=*/120,
/*can_resize=*/false, /*can_minimize=*/false);
}
-#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#endif // defined(OS_CHROMEOS)
void FeedbackHandler::HandleShowSystemInfo(const base::ListValue* args) {
ShowChildPage(dialog_, ChildPageURL("html/sys_info.html"),
diff --git a/chromium/chrome/browser/ui/webui/feedback/feedback_handler.h b/chromium/chrome/browser/ui/webui/feedback/feedback_handler.h
index 21958e35ef0..4c0863f4e85 100644
--- a/chromium/chrome/browser/ui/webui/feedback/feedback_handler.h
+++ b/chromium/chrome/browser/ui/webui/feedback/feedback_handler.h
@@ -24,10 +24,10 @@ class FeedbackHandler : public content::WebUIMessageHandler {
private:
void HandleShowDialog(const base::ListValue* args);
-#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#if defined(OS_CHROMEOS)
void HandleShowAssistantLogsInfo(const base::ListValue* args);
void HandleShowBluetoothLogsInfo(const base::ListValue* args);
-#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#endif // defined(OS_CHROMEOS)
void HandleShowMetrics(const base::ListValue* args);
void HandleShowSystemInfo(const base::ListValue* args);
diff --git a/chromium/chrome/browser/ui/webui/feedback/feedback_ui.cc b/chromium/chrome/browser/ui/webui/feedback/feedback_ui.cc
index 36cc5822e3c..9391c8a4d16 100644
--- a/chromium/chrome/browser/ui/webui/feedback/feedback_ui.cc
+++ b/chromium/chrome/browser/ui/webui/feedback/feedback_ui.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/ui/webui/feedback/feedback_ui.h"
+#include "build/chromeos_buildflags.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/webui_url_constants.h"
#include "chrome/grit/feedback_resources.h"
diff --git a/chromium/chrome/browser/ui/webui/fileicon_source.h b/chromium/chrome/browser/ui/webui/fileicon_source.h
index 89cc0d1b7fb..5c26dbfade9 100644
--- a/chromium/chrome/browser/ui/webui/fileicon_source.h
+++ b/chromium/chrome/browser/ui/webui/fileicon_source.h
@@ -22,6 +22,10 @@ class Image;
class FileIconSource : public content::URLDataSource {
public:
FileIconSource();
+
+ FileIconSource(const FileIconSource&) = delete;
+ FileIconSource& operator=(const FileIconSource&) = delete;
+
~FileIconSource() override;
// content::URLDataSource implementation.
@@ -64,7 +68,5 @@ class FileIconSource : public content::URLDataSource {
// Tracks tasks requesting file icons.
base::CancelableTaskTracker cancelable_task_tracker_;
-
- DISALLOW_COPY_AND_ASSIGN(FileIconSource);
};
#endif // CHROME_BROWSER_UI_WEBUI_FILEICON_SOURCE_H_
diff --git a/chromium/chrome/browser/ui/webui/fileicon_source_unittest.cc b/chromium/chrome/browser/ui/webui/fileicon_source_unittest.cc
index 162b4183355..6ce0a9a9c29 100644
--- a/chromium/chrome/browser/ui/webui/fileicon_source_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/fileicon_source_unittest.cc
@@ -114,8 +114,8 @@ MATCHER(CallbackIsNull, "") {
TEST_F(FileIconSourceTest, FileIconSource_Parse) {
std::vector<ui::ResourceScaleFactor> supported_scale_factors;
- supported_scale_factors.push_back(ui::SCALE_FACTOR_100P);
- supported_scale_factors.push_back(ui::SCALE_FACTOR_200P);
+ supported_scale_factors.push_back(ui::k100Percent);
+ supported_scale_factors.push_back(ui::k200Percent);
ui::test::ScopedSetSupportedResourceScaleFactors scoped_supported(
supported_scale_factors);
diff --git a/chromium/chrome/browser/ui/webui/flags/flags_ui.h b/chromium/chrome/browser/ui/webui/flags/flags_ui.h
index bd6b0502ab7..66e260789ae 100644
--- a/chromium/chrome/browser/ui/webui/flags/flags_ui.h
+++ b/chromium/chrome/browser/ui/webui/flags/flags_ui.h
@@ -23,6 +23,10 @@ class WebUIDataSource;
class FlagsUI : public content::WebUIController {
public:
explicit FlagsUI(content::WebUI* web_ui);
+
+ FlagsUI(const FlagsUI&) = delete;
+ FlagsUI& operator=(const FlagsUI&) = delete;
+
~FlagsUI() override;
static void AddStrings(content::WebUIDataSource* source);
@@ -31,13 +35,15 @@ class FlagsUI : public content::WebUIController {
private:
base::WeakPtrFactory<FlagsUI> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(FlagsUI);
};
class FlagsDeprecatedUI : public content::WebUIController {
public:
explicit FlagsDeprecatedUI(content::WebUI* web_ui);
+
+ FlagsDeprecatedUI(const FlagsDeprecatedUI&) = delete;
+ FlagsDeprecatedUI& operator=(const FlagsDeprecatedUI&) = delete;
+
~FlagsDeprecatedUI() override;
static void AddStrings(content::WebUIDataSource* source);
@@ -45,7 +51,5 @@ class FlagsDeprecatedUI : public content::WebUIController {
private:
base::WeakPtrFactory<FlagsDeprecatedUI> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(FlagsDeprecatedUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_FLAGS_FLAGS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/flags/flags_ui_handler.cc b/chromium/chrome/browser/ui/webui/flags/flags_ui_handler.cc
index 63814f4bda7..d949d817c4c 100644
--- a/chromium/chrome/browser/ui/webui/flags/flags_ui_handler.cc
+++ b/chromium/chrome/browser/ui/webui/flags/flags_ui_handler.cc
@@ -26,24 +26,24 @@ FlagsUIHandler::FlagsUIHandler()
FlagsUIHandler::~FlagsUIHandler() {}
void FlagsUIHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
flags_ui::kRequestExperimentalFeatures,
base::BindRepeating(&FlagsUIHandler::HandleRequestExperimentalFeatures,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
flags_ui::kEnableExperimentalFeature,
base::BindRepeating(
&FlagsUIHandler::HandleEnableExperimentalFeatureMessage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
flags_ui::kSetOriginListFlag,
base::BindRepeating(&FlagsUIHandler::HandleSetOriginListFlagMessage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
flags_ui::kRestartBrowser,
base::BindRepeating(&FlagsUIHandler::HandleRestartBrowser,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
flags_ui::kResetAllFlags,
base::BindRepeating(&FlagsUIHandler::HandleResetAllFlags,
base::Unretained(this)));
@@ -117,8 +117,8 @@ void FlagsUIHandler::SendExperimentalFeatures() {
void FlagsUIHandler::HandleEnableExperimentalFeatureMessage(
const base::ListValue* args) {
DCHECK(flags_storage_);
- DCHECK_EQ(2u, args->GetSize());
- if (args->GetSize() != 2)
+ DCHECK_EQ(2u, args->GetList().size());
+ if (args->GetList().size() != 2)
return;
std::string entry_internal_name;
@@ -136,7 +136,7 @@ void FlagsUIHandler::HandleEnableExperimentalFeatureMessage(
void FlagsUIHandler::HandleSetOriginListFlagMessage(
const base::ListValue* args) {
DCHECK(flags_storage_);
- if (args->GetSize() != 2) {
+ if (args->GetList().size() != 2) {
NOTREACHED();
return;
}
diff --git a/chromium/chrome/browser/ui/webui/flags/flags_ui_handler.h b/chromium/chrome/browser/ui/webui/flags/flags_ui_handler.h
index ae061a8dfa8..dc83326e233 100644
--- a/chromium/chrome/browser/ui/webui/flags/flags_ui_handler.h
+++ b/chromium/chrome/browser/ui/webui/flags/flags_ui_handler.h
@@ -19,6 +19,10 @@ class FlagsStorage;
class FlagsUIHandler : public content::WebUIMessageHandler {
public:
FlagsUIHandler();
+
+ FlagsUIHandler(const FlagsUIHandler&) = delete;
+ FlagsUIHandler& operator=(const FlagsUIHandler&) = delete;
+
~FlagsUIHandler() override;
// Initializes the UI handler with the provided flags storage and flags
@@ -58,8 +62,6 @@ class FlagsUIHandler : public content::WebUIMessageHandler {
flags_ui::FlagAccess access_;
std::string experimental_features_callback_id_;
bool deprecated_features_only_;
-
- DISALLOW_COPY_AND_ASSIGN(FlagsUIHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_FLAGS_FLAGS_UI_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/gcm_internals_ui.cc b/chromium/chrome/browser/ui/webui/gcm_internals_ui.cc
index 7b8d19483e9..43beef8430c 100644
--- a/chromium/chrome/browser/ui/webui/gcm_internals_ui.cc
+++ b/chromium/chrome/browser/ui/webui/gcm_internals_ui.cc
@@ -32,6 +32,11 @@ namespace {
class GcmInternalsUIMessageHandler : public content::WebUIMessageHandler {
public:
GcmInternalsUIMessageHandler();
+
+ GcmInternalsUIMessageHandler(const GcmInternalsUIMessageHandler&) = delete;
+ GcmInternalsUIMessageHandler& operator=(const GcmInternalsUIMessageHandler&) =
+ delete;
+
~GcmInternalsUIMessageHandler() override;
// WebUIMessageHandler implementation.
@@ -57,8 +62,6 @@ class GcmInternalsUIMessageHandler : public content::WebUIMessageHandler {
// Factory for creating references in callbacks.
base::WeakPtrFactory<GcmInternalsUIMessageHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(GcmInternalsUIMessageHandler);
};
GcmInternalsUIMessageHandler::GcmInternalsUIMessageHandler() {}
@@ -78,7 +81,7 @@ void GcmInternalsUIMessageHandler::ReturnResults(
void GcmInternalsUIMessageHandler::RequestAllInfo(
const base::ListValue* args) {
AllowJavascript();
- if (args->GetSize() != 1) {
+ if (args->GetList().size() != 1) {
NOTREACHED();
return;
}
@@ -107,7 +110,7 @@ void GcmInternalsUIMessageHandler::RequestAllInfo(
}
void GcmInternalsUIMessageHandler::SetRecording(const base::ListValue* args) {
- if (args->GetSize() != 1) {
+ if (args->GetList().size() != 1) {
NOTREACHED();
return;
}
@@ -146,11 +149,11 @@ void GcmInternalsUIMessageHandler::RequestGCMStatisticsFinished(
void GcmInternalsUIMessageHandler::RegisterMessages() {
// It is safe to use base::Unretained here, since web_ui owns this message
// handler.
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
gcm_driver::kGetGcmInternalsInfo,
base::BindRepeating(&GcmInternalsUIMessageHandler::RequestAllInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
gcm_driver::kSetGcmInternalsRecording,
base::BindRepeating(&GcmInternalsUIMessageHandler::SetRecording,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/gcm_internals_ui.h b/chromium/chrome/browser/ui/webui/gcm_internals_ui.h
index 9a3b0e8427a..add01b21215 100644
--- a/chromium/chrome/browser/ui/webui/gcm_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/gcm_internals_ui.h
@@ -12,10 +12,11 @@
class GCMInternalsUI : public content::WebUIController {
public:
explicit GCMInternalsUI(content::WebUI* web_ui);
- ~GCMInternalsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(GCMInternalsUI);
+ GCMInternalsUI(const GCMInternalsUI&) = delete;
+ GCMInternalsUI& operator=(const GCMInternalsUI&) = delete;
+
+ ~GCMInternalsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_GCM_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/help/test_version_updater.h b/chromium/chrome/browser/ui/webui/help/test_version_updater.h
index 3714e4409dc..afa7344ddb7 100644
--- a/chromium/chrome/browser/ui/webui/help/test_version_updater.h
+++ b/chromium/chrome/browser/ui/webui/help/test_version_updater.h
@@ -17,6 +17,10 @@
class TestVersionUpdater : public VersionUpdater {
public:
TestVersionUpdater();
+
+ TestVersionUpdater(const TestVersionUpdater&) = delete;
+ TestVersionUpdater& operator=(const TestVersionUpdater&) = delete;
+
~TestVersionUpdater() override;
void CheckForUpdate(StatusCallback callback, PromoteCallback) override;
@@ -46,8 +50,6 @@ class TestVersionUpdater : public VersionUpdater {
std::string version_;
int64_t update_size_ = 0;
std::u16string message_;
-
- DISALLOW_COPY_AND_ASSIGN(TestVersionUpdater);
};
#endif // CHROME_BROWSER_UI_WEBUI_HELP_TEST_VERSION_UPDATER_H_
diff --git a/chromium/chrome/browser/ui/webui/help/version_updater_basic.h b/chromium/chrome/browser/ui/webui/help/version_updater_basic.h
index 4c28e47047e..a21d42ebc4a 100644
--- a/chromium/chrome/browser/ui/webui/help/version_updater_basic.h
+++ b/chromium/chrome/browser/ui/webui/help/version_updater_basic.h
@@ -12,6 +12,9 @@
// Bare bones implementation just checks if a new version is ready.
class VersionUpdaterBasic : public VersionUpdater {
public:
+ VersionUpdaterBasic(const VersionUpdaterBasic&) = delete;
+ VersionUpdaterBasic& operator=(const VersionUpdaterBasic&) = delete;
+
// VersionUpdater implementation.
void CheckForUpdate(StatusCallback callback, PromoteCallback) override;
@@ -21,9 +24,6 @@ class VersionUpdaterBasic : public VersionUpdater {
// Clients must use VersionUpdater::Create().
VersionUpdaterBasic() {}
~VersionUpdaterBasic() override {}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(VersionUpdaterBasic);
};
#endif // CHROME_BROWSER_UI_WEBUI_HELP_VERSION_UPDATER_BASIC_H_
diff --git a/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.cc b/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.cc
index f46339206be..3b69609e1bb 100644
--- a/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.cc
+++ b/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.cc
@@ -174,7 +174,7 @@ void VersionUpdaterCros::CheckForUpdate(StatusCallback callback,
// Make sure that libcros is loaded and OOBE is complete.
if (!ash::WizardController::default_controller() ||
- chromeos::StartupUtils::IsDeviceRegistered()) {
+ ash::StartupUtils::IsDeviceRegistered()) {
update_engine_client->RequestUpdateCheck(base::BindOnce(
&VersionUpdaterCros::OnUpdateCheck, weak_ptr_factory_.GetWeakPtr()));
}
diff --git a/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.h b/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.h
index 6c4b051539d..0993b031d61 100644
--- a/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.h
+++ b/chromium/chrome/browser/ui/webui/help/version_updater_chromeos.h
@@ -18,6 +18,9 @@ class WebContents;
class VersionUpdaterCros : public VersionUpdater,
public chromeos::UpdateEngineClient::Observer {
public:
+ VersionUpdaterCros(const VersionUpdaterCros&) = delete;
+ VersionUpdaterCros& operator=(const VersionUpdaterCros&) = delete;
+
// VersionUpdater implementation.
void CheckForUpdate(StatusCallback callback, PromoteCallback) override;
void SetChannel(const std::string& channel,
@@ -68,8 +71,6 @@ class VersionUpdaterCros : public VersionUpdater,
bool check_for_update_when_idle_;
base::WeakPtrFactory<VersionUpdaterCros> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(VersionUpdaterCros);
};
#endif // CHROME_BROWSER_UI_WEBUI_HELP_VERSION_UPDATER_CHROMEOS_H_
diff --git a/chromium/chrome/browser/ui/webui/help/version_updater_chromeos_unittest.cc b/chromium/chrome/browser/ui/webui/help/version_updater_chromeos_unittest.cc
index 8e8bfe99c09..2b618492c2d 100644
--- a/chromium/chrome/browser/ui/webui/help/version_updater_chromeos_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/help/version_updater_chromeos_unittest.cc
@@ -44,6 +44,10 @@ void CheckNotification(VersionUpdater::Status /* status */,
} // namespace
class VersionUpdaterCrosTest : public ::testing::Test {
+ public:
+ VersionUpdaterCrosTest(const VersionUpdaterCrosTest&) = delete;
+ VersionUpdaterCrosTest& operator=(const VersionUpdaterCrosTest&) = delete;
+
protected:
VersionUpdaterCrosTest()
: version_updater_(VersionUpdater::Create(nullptr)),
@@ -106,8 +110,6 @@ class VersionUpdaterCrosTest : public ::testing::Test {
MockUserManager* mock_user_manager_; // Not owned.
user_manager::ScopedUserManager user_manager_enabler_;
ScopedCrosSettingsTestHelper cros_settings_test_helper_;
-
- DISALLOW_COPY_AND_ASSIGN(VersionUpdaterCrosTest);
};
// The test checks following behaviour:
diff --git a/chromium/chrome/browser/ui/webui/help/version_updater_mac.h b/chromium/chrome/browser/ui/webui/help/version_updater_mac.h
index 54a81d93a9b..5b97edf261a 100644
--- a/chromium/chrome/browser/ui/webui/help/version_updater_mac.h
+++ b/chromium/chrome/browser/ui/webui/help/version_updater_mac.h
@@ -15,6 +15,9 @@
#include "chrome/browser/ui/webui/help/version_updater.h"
#if BUILDFLAG(ENABLE_CHROMIUM_UPDATER)
+#include <string.h>
+
+#include "base/memory/weak_ptr.h"
#include "chrome/updater/update_service.h" // nogncheck
class BrowserUpdaterClient;
@@ -26,6 +29,9 @@ class BrowserUpdaterClient;
// About/Help page.
class VersionUpdaterMac : public VersionUpdater {
public:
+ VersionUpdaterMac(const VersionUpdaterMac&) = delete;
+ VersionUpdaterMac& operator=(const VersionUpdaterMac&) = delete;
+
// VersionUpdater implementation.
void CheckForUpdate(StatusCallback status_callback,
PromoteCallback promote_callback) override;
@@ -48,6 +54,19 @@ class VersionUpdaterMac : public VersionUpdater {
// Update the visibility state of promote button.
void UpdateShowPromoteButton();
+#if BUILDFLAG(ENABLE_CHROMIUM_UPDATER)
+ // Updates the status from the Chromium Updater.
+ void UpdateStatusFromChromiumUpdater(
+ VersionUpdater::StatusCallback status_callback,
+ VersionUpdater::PromoteCallback promote_callback,
+ updater::UpdateService::UpdateState update_state);
+
+ void UpdatePromotionStatusFromChromiumUpdater(
+ VersionUpdater::PromoteCallback promote_callback,
+ bool enable_promote_button,
+ const std::string& version);
+#endif // BUILDFLAG(ENABLE_CHROMIUM_UPDATER)
+
// Callback used to communicate update status to the client.
StatusCallback status_callback_;
@@ -64,10 +83,8 @@ class VersionUpdaterMac : public VersionUpdater {
// Instance of the BrowserUpdaterClient used to update the browser with the
// new updater.
scoped_refptr<BrowserUpdaterClient> update_client_;
+ base::WeakPtrFactory<VersionUpdaterMac> weak_factory_{this};
#endif // BUILDFLAG(ENABLE_CHROMIUM_UPDATER)
-
- DISALLOW_COPY_AND_ASSIGN(VersionUpdaterMac);
};
#endif // CHROME_BROWSER_UI_WEBUI_HELP_VERSION_UPDATER_MAC_H_
-
diff --git a/chromium/chrome/browser/ui/webui/help/version_updater_mac.mm b/chromium/chrome/browser/ui/webui/help/version_updater_mac.mm
index 6e38820abf3..0e788aa59bf 100644
--- a/chromium/chrome/browser/ui/webui/help/version_updater_mac.mm
+++ b/chromium/chrome/browser/ui/webui/help/version_updater_mac.mm
@@ -5,6 +5,7 @@
#include "chrome/browser/ui/webui/help/version_updater_mac.h"
#include <string>
+#include <utility>
#include "base/bind.h"
#include "base/callback_helpers.h"
@@ -23,8 +24,15 @@
#if BUILDFLAG(ENABLE_CHROMIUM_UPDATER)
#include "base/cxx17_backports.h"
#include "base/strings/stringprintf.h"
-#include "chrome/browser/updater/browser_updater_client.h" // nogncheck
-#include "chrome/updater/update_service.h" // nogncheck
+#include "base/task/post_task.h"
+#include "base/task/task_traits.h"
+#include "base/task/thread_pool.h"
+#include "chrome/browser/updater/browser_updater_client.h"
+#include "chrome/browser/updater/browser_updater_client_util.h"
+#include "chrome/updater/update_service.h" // nogncheck
+#include "chrome/updater/updater_scope.h" // nogncheck
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/l10n/l10n_util_mac.h"
#endif // BUILDFLAG(ENABLE_CHROMIUM_UPDATER)
// KeystoneObserver is a simple notification observer for Keystone status
@@ -77,50 +85,6 @@ int GetDownloadProgress(int64_t downloaded_bytes, int64_t total_bytes) {
0.0, 1.0);
}
-void UpdateStatusFromChromiumUpdater(
- VersionUpdater::StatusCallback status_callback,
- updater::UpdateService::UpdateState update_state) {
- VersionUpdater::Status status = VersionUpdater::Status::CHECKING;
- int progress = 0;
- std::string version;
- std::string err_message;
-
- switch (update_state.state) {
- case updater::UpdateService::UpdateState::State::kCheckingForUpdates:
- FALLTHROUGH;
- case updater::UpdateService::UpdateState::State::kUpdateAvailable:
- status = VersionUpdater::Status::CHECKING;
- break;
- case updater::UpdateService::UpdateState::State::kDownloading:
- progress = GetDownloadProgress(update_state.downloaded_bytes,
- update_state.total_bytes);
- FALLTHROUGH;
- case updater::UpdateService::UpdateState::State::kInstalling:
- status = VersionUpdater::Status::UPDATING;
- break;
- case updater::UpdateService::UpdateState::State::kUpdated:
- status = VersionUpdater::Status::NEARLY_UPDATED;
- break;
- case updater::UpdateService::UpdateState::State::kNoUpdate:
- status = VersionUpdater::Status::UPDATED;
- break;
- case updater::UpdateService::UpdateState::State::kUpdateError:
- status = VersionUpdater::Status::FAILED;
- // TODO(https://crbug.com/1146201): Localize error string.
- err_message = base::StringPrintf(
- "An error occurred. (Error code: %d) (Extra code: %d)",
- update_state.error_code, update_state.extra_code1);
- break;
- case updater::UpdateService::UpdateState::State::kNotStarted:
- FALLTHROUGH;
- case updater::UpdateService::UpdateState::State::kUnknown:
- return;
- }
-
- status_callback.Run(status, progress, false, false, version, 0,
- base::UTF8ToUTF16(err_message));
-}
-
} // namespace
#endif // BUILDFLAG(ENABLE_CHROMIUM_UPDATER)
@@ -142,7 +106,9 @@ void VersionUpdaterMac::CheckForUpdate(StatusCallback status_callback,
update_client_ = BrowserUpdaterClient::Create();
update_client_->CheckForUpdate(base::BindRepeating(
- &UpdateStatusFromChromiumUpdater, std::move(status_callback)));
+ &VersionUpdaterMac::UpdateStatusFromChromiumUpdater,
+ weak_factory_.GetWeakPtr(), std::move(status_callback),
+ std::move(promote_callback)));
return;
#else
status_callback_ = std::move(status_callback);
@@ -185,6 +151,10 @@ void VersionUpdaterMac::CheckForUpdate(StatusCallback status_callback,
}
void VersionUpdaterMac::PromoteUpdater() const {
+#if BUILDFLAG(ENABLE_CHROMIUM_UPDATER)
+ // TODO(crbug.com/1236770) - Add implementation for actually promoting the
+ // updater using SMJobless.
+#else
// Tell Keystone to make software updates available for all users.
[[KeystoneGlue defaultKeystoneGlue] promoteTicket];
@@ -198,6 +168,7 @@ void VersionUpdaterMac::PromoteUpdater() const {
// If the promotion was successful, KeystoneGlue will re-register the ticket
// and UpdateStatus() will be called again indicating first that
// registration is in progress and subsequently that it has completed.
+#endif // BUILDFLAG(ENABLE_CHROMIUM_UPDATER)
}
void VersionUpdaterMac::UpdateStatus(NSDictionary* dictionary) {
@@ -343,3 +314,96 @@ void VersionUpdaterMac::UpdateShowPromoteButton() {
show_promote_button_ = [keystone_glue wantsPromotion];
}
}
+
+#if BUILDFLAG(ENABLE_CHROMIUM_UPDATER)
+void VersionUpdaterMac::UpdateStatusFromChromiumUpdater(
+ VersionUpdater::StatusCallback status_callback,
+ VersionUpdater::PromoteCallback promote_callback,
+ updater::UpdateService::UpdateState update_state) {
+ VersionUpdater::Status status = VersionUpdater::Status::CHECKING;
+ int progress = 0;
+ std::string version;
+ std::string err_message;
+ bool enable_promote_button = true;
+
+ switch (update_state.state) {
+ case updater::UpdateService::UpdateState::State::kCheckingForUpdates:
+ FALLTHROUGH;
+ case updater::UpdateService::UpdateState::State::kUpdateAvailable:
+ status = VersionUpdater::Status::CHECKING;
+ enable_promote_button = false;
+ break;
+ case updater::UpdateService::UpdateState::State::kDownloading:
+ progress = GetDownloadProgress(update_state.downloaded_bytes,
+ update_state.total_bytes);
+ FALLTHROUGH;
+ case updater::UpdateService::UpdateState::State::kInstalling:
+ status = VersionUpdater::Status::UPDATING;
+ enable_promote_button = false;
+ break;
+ case updater::UpdateService::UpdateState::State::kUpdated:
+ status = VersionUpdater::Status::NEARLY_UPDATED;
+ break;
+ case updater::UpdateService::UpdateState::State::kNoUpdate:
+ status = VersionUpdater::Status::UPDATED;
+ break;
+ case updater::UpdateService::UpdateState::State::kUpdateError:
+ status = VersionUpdater::Status::FAILED;
+ // TODO(https://crbug.com/1146201): Localize error string.
+ err_message = base::StringPrintf(
+ "An error occurred. (Error code: %d) (Extra code: %d)",
+ update_state.error_code, update_state.extra_code1);
+ break;
+ case updater::UpdateService::UpdateState::State::kNotStarted:
+ FALLTHROUGH;
+ case updater::UpdateService::UpdateState::State::kUnknown:
+ return;
+ }
+
+ status_callback.Run(status, progress, false, false, version, 0,
+ base::UTF8ToUTF16(err_message));
+
+ // Updater should be promoted if it meets the following criteria:
+ // 1) When browser is owned by root and updater is not yet installed.
+ // 2) When effective user is root and browser is not owned by root.
+ // 3) When effective user is not the owner of the browser and is an
+ // administrator.
+ // To check whether the system level updater is installed or not, reset the
+ // update_clent with system scope and attempt to get version. If the version
+ // is empty, then the updater can be assumed to not be installed. If the
+ // version returns a value, then the updater is installed.
+ if (!promote_callback.is_null() && ShouldPromoteUpdater()) {
+ update_client_->ResetConnection(updater::UpdaterScope::kSystem);
+ update_client_->GetUpdaterVersion(base::BindOnce(
+ &VersionUpdaterMac::UpdatePromotionStatusFromChromiumUpdater,
+ weak_factory_.GetWeakPtr(), std::move(promote_callback),
+ enable_promote_button));
+ }
+}
+
+void VersionUpdaterMac::UpdatePromotionStatusFromChromiumUpdater(
+ VersionUpdater::PromoteCallback promote_callback,
+ bool enable_promote_button,
+ const std::string& version) {
+ if (promote_callback.is_null())
+ return;
+
+ VersionUpdater::PromotionState promotion_state =
+ VersionUpdater::PROMOTE_HIDDEN;
+ // If the version is not empty and the current path is owned by root (which
+ // is reflected in ShouldUseSystemLevelUpdater()), then the updater had
+ // already been promoted.
+ if (!version.empty() && ShouldUseSystemLevelUpdater()) {
+ promotion_state = VersionUpdater::PROMOTED;
+ update_client_->ResetConnection(updater::UpdaterScope::kSystem);
+ } else {
+ promotion_state = enable_promote_button ? VersionUpdater::PROMOTE_ENABLED
+ : VersionUpdater::PROMOTE_DISABLED;
+ if (!enable_promote_button) {
+ update_client_->ResetConnection(updater::UpdaterScope::kUser);
+ }
+ }
+
+ promote_callback.Run(promotion_state);
+}
+#endif // BUILDFLAG(ENABLE_CHROMIUM_UPDATER)
diff --git a/chromium/chrome/browser/ui/webui/help/version_updater_win.h b/chromium/chrome/browser/ui/webui/help/version_updater_win.h
index 52b38cab205..c17b64bb712 100644
--- a/chromium/chrome/browser/ui/webui/help/version_updater_win.h
+++ b/chromium/chrome/browser/ui/webui/help/version_updater_win.h
@@ -23,6 +23,10 @@ class VersionUpdaterWin : public VersionUpdater,
// will be parented to this widget. |owner_widget| may be given a value of
// nullptr in which case the UAC prompt will be parented to the desktop.
explicit VersionUpdaterWin(gfx::AcceleratedWidget owner_widget);
+
+ VersionUpdaterWin(const VersionUpdaterWin&) = delete;
+ VersionUpdaterWin& operator=(const VersionUpdaterWin&) = delete;
+
~VersionUpdaterWin() override;
// VersionUpdater:
@@ -52,8 +56,6 @@ class VersionUpdaterWin : public VersionUpdater,
// Used for callbacks.
base::WeakPtrFactory<VersionUpdaterWin> weak_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(VersionUpdaterWin);
};
#endif // CHROME_BROWSER_UI_WEBUI_HELP_VERSION_UPDATER_WIN_H_
diff --git a/chromium/chrome/browser/ui/webui/history/DIR_METADATA b/chromium/chrome/browser/ui/webui/history/DIR_METADATA
index 9b08ae7f369..e1981b4ebd7 100644
--- a/chromium/chrome/browser/ui/webui/history/DIR_METADATA
+++ b/chromium/chrome/browser/ui/webui/history/DIR_METADATA
@@ -1,3 +1 @@
-monorail {
- component: "UI>Browser>History"
-}
+mixins: "//chrome/browser/resources/history/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/history/browsing_history_handler.cc b/chromium/chrome/browser/ui/webui/history/browsing_history_handler.cc
index 733a05b7687..7fadb219972 100644
--- a/chromium/chrome/browser/ui/webui/history/browsing_history_handler.cc
+++ b/chromium/chrome/browser/ui/webui/history/browsing_history_handler.cc
@@ -265,9 +265,8 @@ base::Value HistoryEntryToValue(
result.SetStringKey("remoteIconUrlForUma",
entry.remote_icon_url_for_uma.spec());
- // Additional debugging fields that are only shown if the
- // history_clusters::kDebug feature is enabled.
- if (base::FeatureList::IsEnabled(history_clusters::kDebug)) {
+ // Additional debugging fields shown only if the debug feature is enabled.
+ if (base::FeatureList::IsEnabled(history_clusters::kUserVisibleDebug)) {
base::Value debug(base::Value::Type::DICTIONARY);
debug.SetBoolKey("isUrlInLocalDatabase", IsUrlInLocalDatabase(entry));
debug.SetIntKey("visitCount", entry.visit_count);
@@ -314,24 +313,24 @@ void BrowsingHistoryHandler::RegisterMessages() {
profile, std::make_unique<FaviconSource>(
profile, chrome::FaviconUrlFormat::kFavicon2));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"queryHistory",
base::BindRepeating(&BrowsingHistoryHandler::HandleQueryHistory,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"queryHistoryContinuation",
base::BindRepeating(
&BrowsingHistoryHandler::HandleQueryHistoryContinuation,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeVisits",
base::BindRepeating(&BrowsingHistoryHandler::HandleRemoveVisits,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"clearBrowsingData",
base::BindRepeating(&BrowsingHistoryHandler::HandleClearBrowsingData,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeBookmark",
base::BindRepeating(&BrowsingHistoryHandler::HandleRemoveBookmark,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/history/browsing_history_handler.h b/chromium/chrome/browser/ui/webui/history/browsing_history_handler.h
index a1e7505aa74..2d3c46d5d5e 100644
--- a/chromium/chrome/browser/ui/webui/history/browsing_history_handler.h
+++ b/chromium/chrome/browser/ui/webui/history/browsing_history_handler.h
@@ -13,6 +13,7 @@
#include <vector>
#include "base/callback.h"
+#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/time/clock.h"
@@ -25,6 +26,10 @@ class BrowsingHistoryHandler : public content::WebUIMessageHandler,
public ProfileBasedBrowsingHistoryDriver {
public:
BrowsingHistoryHandler();
+
+ BrowsingHistoryHandler(const BrowsingHistoryHandler&) = delete;
+ BrowsingHistoryHandler& operator=(const BrowsingHistoryHandler&) = delete;
+
~BrowsingHistoryHandler() override;
// WebUIMessageHandler implementation.
@@ -92,8 +97,6 @@ class BrowsingHistoryHandler : public content::WebUIMessageHandler,
std::string remove_visits_callback_;
base::WeakPtrFactory<BrowsingHistoryHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(BrowsingHistoryHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_HISTORY_BROWSING_HISTORY_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/history/browsing_history_handler_unittest.cc b/chromium/chrome/browser/ui/webui/history/browsing_history_handler_unittest.cc
index 786c083b99c..100f83010e5 100644
--- a/chromium/chrome/browser/ui/webui/history/browsing_history_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/history/browsing_history_handler_unittest.cc
@@ -60,6 +60,11 @@ class BrowsingHistoryHandlerWithWebUIForTesting
test_clock_.SetNow(PretendNow());
}
+ BrowsingHistoryHandlerWithWebUIForTesting(
+ const BrowsingHistoryHandlerWithWebUIForTesting&) = delete;
+ BrowsingHistoryHandlerWithWebUIForTesting& operator=(
+ const BrowsingHistoryHandlerWithWebUIForTesting&) = delete;
+
void SendHistoryQuery(int count, const std::u16string& query) override {
if (postpone_query_results_) {
return;
@@ -74,8 +79,6 @@ class BrowsingHistoryHandlerWithWebUIForTesting
private:
base::SimpleTestClock test_clock_;
bool postpone_query_results_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(BrowsingHistoryHandlerWithWebUIForTesting);
};
} // namespace
diff --git a/chromium/chrome/browser/ui/webui/history/foreign_session_handler.cc b/chromium/chrome/browser/ui/webui/history/foreign_session_handler.cc
index 44e4b709f0c..5cf069da6b0 100644
--- a/chromium/chrome/browser/ui/webui/history/foreign_session_handler.cc
+++ b/chromium/chrome/browser/ui/webui/history/foreign_session_handler.cc
@@ -221,19 +221,19 @@ sync_sessions::OpenTabsUIDelegate* ForeignSessionHandler::GetOpenTabsUIDelegate(
}
void ForeignSessionHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"deleteForeignSession",
base::BindRepeating(&ForeignSessionHandler::HandleDeleteForeignSession,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getForeignSessions",
base::BindRepeating(&ForeignSessionHandler::HandleGetForeignSessions,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"openForeignSession",
base::BindRepeating(&ForeignSessionHandler::HandleOpenForeignSession,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setForeignSessionCollapsed",
base::BindRepeating(
&ForeignSessionHandler::HandleSetForeignSessionCollapsed,
@@ -358,14 +358,14 @@ base::Value ForeignSessionHandler::GetForeignSessions() {
void ForeignSessionHandler::HandleOpenForeignSession(
const base::ListValue* args) {
- size_t num_args = args->GetSize();
+ size_t num_args = args->GetList().size();
// Expect either 1 or 8 args. For restoring an entire session, only
// one argument is required -- the session tag. To restore a tab,
// the additional args required are the window id, the tab id,
// and 4 properties of the event object (button, altKey, ctrlKey,
// metaKey, shiftKey) for determining how to open the tab.
if (num_args != 8U && num_args != 1U) {
- LOG(ERROR) << "openForeignSession called with " << args->GetSize()
+ LOG(ERROR) << "openForeignSession called with " << args->GetList().size()
<< " arguments.";
return;
}
@@ -407,7 +407,7 @@ void ForeignSessionHandler::HandleOpenForeignSession(
void ForeignSessionHandler::HandleDeleteForeignSession(
const base::ListValue* args) {
- if (args->GetSize() != 1U) {
+ if (args->GetList().size() != 1U) {
LOG(ERROR) << "Wrong number of args to deleteForeignSession";
return;
}
@@ -427,7 +427,7 @@ void ForeignSessionHandler::HandleDeleteForeignSession(
void ForeignSessionHandler::HandleSetForeignSessionCollapsed(
const base::ListValue* args) {
- if (args->GetSize() != 2U) {
+ if (args->GetList().size() != 2U) {
LOG(ERROR) << "Wrong number of args to setForeignSessionCollapsed";
return;
}
diff --git a/chromium/chrome/browser/ui/webui/history/foreign_session_handler.h b/chromium/chrome/browser/ui/webui/history/foreign_session_handler.h
index 65b13050ff1..05295cdead6 100644
--- a/chromium/chrome/browser/ui/webui/history/foreign_session_handler.h
+++ b/chromium/chrome/browser/ui/webui/history/foreign_session_handler.h
@@ -54,6 +54,10 @@ class ForeignSessionHandler : public content::WebUIMessageHandler {
void OnJavascriptDisallowed() override;
ForeignSessionHandler();
+
+ ForeignSessionHandler(const ForeignSessionHandler&) = delete;
+ ForeignSessionHandler& operator=(const ForeignSessionHandler&) = delete;
+
~ForeignSessionHandler() override;
void InitializeForeignSessions();
@@ -105,8 +109,6 @@ class ForeignSessionHandler : public content::WebUIMessageHandler {
base::Value initial_session_list_;
base::CallbackListSubscription foreign_session_updated_subscription_;
-
- DISALLOW_COPY_AND_ASSIGN(ForeignSessionHandler);
};
} // namespace browser_sync
diff --git a/chromium/chrome/browser/ui/webui/history/history_login_handler.cc b/chromium/chrome/browser/ui/webui/history/history_login_handler.cc
index 437d806058c..fe638ce88da 100644
--- a/chromium/chrome/browser/ui/webui/history/history_login_handler.cc
+++ b/chromium/chrome/browser/ui/webui/history/history_login_handler.cc
@@ -23,12 +23,12 @@ HistoryLoginHandler::HistoryLoginHandler(base::RepeatingClosure signin_callback)
HistoryLoginHandler::~HistoryLoginHandler() {}
void HistoryLoginHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"otherDevicesInitialized",
base::BindRepeating(&HistoryLoginHandler::HandleOtherDevicesInitialized,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"startSignInFlow",
base::BindRepeating(&HistoryLoginHandler::HandleStartSignInFlow,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/history/history_login_handler.h b/chromium/chrome/browser/ui/webui/history/history_login_handler.h
index c10c6dbdb85..795df9b0644 100644
--- a/chromium/chrome/browser/ui/webui/history/history_login_handler.h
+++ b/chromium/chrome/browser/ui/webui/history/history_login_handler.h
@@ -17,6 +17,10 @@ class ProfileInfoWatcher;
class HistoryLoginHandler : public content::WebUIMessageHandler {
public:
explicit HistoryLoginHandler(base::RepeatingClosure signin_callback);
+
+ HistoryLoginHandler(const HistoryLoginHandler&) = delete;
+ HistoryLoginHandler& operator=(const HistoryLoginHandler&) = delete;
+
~HistoryLoginHandler() override;
// WebUIMessageHandler implementation.
@@ -39,8 +43,6 @@ class HistoryLoginHandler : public content::WebUIMessageHandler {
std::unique_ptr<ProfileInfoWatcher> profile_info_watcher_;
base::RepeatingClosure signin_callback_;
-
- DISALLOW_COPY_AND_ASSIGN(HistoryLoginHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_HISTORY_HISTORY_LOGIN_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/history/history_ui.cc b/chromium/chrome/browser/ui/webui/history/history_ui.cc
index b6840c30d11..6d7011abcab 100644
--- a/chromium/chrome/browser/ui/webui/history/history_ui.cc
+++ b/chromium/chrome/browser/ui/webui/history/history_ui.cc
@@ -35,6 +35,7 @@
#include "chrome/grit/locale_settings.h"
#include "components/favicon_base/favicon_url_parser.h"
#include "components/grit/components_scaled_resources.h"
+#include "components/history_clusters/core/history_clusters_prefs.h"
#include "components/history_clusters/core/memories_features.h"
#include "components/prefs/pref_service.h"
#include "components/signin/public/identity_manager/identity_manager.h"
@@ -47,6 +48,8 @@
namespace {
+constexpr char kIsHistoryClustersVisibleKey[] = "isHistoryClustersVisible";
+
constexpr char kIsUserSignedInKey[] = "isUserSignedIn";
bool IsUserSignedIn(Profile* profile) {
@@ -125,19 +128,28 @@ content::WebUIDataSource* CreateHistoryUIHTMLSource(Profile* profile) {
// History clusters
source->AddBoolean("isHistoryClustersEnabled",
- base::FeatureList::IsEnabled(history_clusters::kMemories));
- source->AddBoolean("isHistoryClustersDebug",
- base::FeatureList::IsEnabled(history_clusters::kDebug));
-
- // TODO(crbug.com/1173908): Replace these with localized strings.
- source->AddString("headerTitle", u"Based on activity related to \"$1\"");
- source->AddString("historyClustersMenuItem", u"Journeys");
- source->AddString("relatedSearchesLabel", u"Related:");
- source->AddString("removeAllFromHistory", u"Remove Journey from history");
- source->AddString("removeFromHistoryToast", u"Item removed");
- source->AddString("savedInTabGroup", u"Saved in tab group");
- source->AddString("toggleButtonLabelLess", u"Show less");
- source->AddString("toggleButtonLabelMore", u"Show more");
+ base::FeatureList::IsEnabled(history_clusters::kJourneys));
+ source->AddBoolean(
+ kIsHistoryClustersVisibleKey,
+ profile->GetPrefs()->GetBoolean(history_clusters::prefs::kVisible));
+ source->AddBoolean(
+ "isHistoryClustersDebug",
+ base::FeatureList::IsEnabled(history_clusters::kUserVisibleDebug));
+
+ static constexpr webui::LocalizedString kHistoryClustersStrings[] = {
+ {"disableHistoryClusters", IDS_HISTORY_CLUSTERS_DISABLE_MENU_ITEM_LABEL},
+ {"enableHistoryClusters", IDS_HISTORY_CLUSTERS_ENABLE_MENU_ITEM_LABEL},
+ {"headerText", IDS_HISTORY_CLUSTERS_HEADER_TEXT},
+ {"historyClustersTabLabel", IDS_HISTORY_CLUSTERS_JOURNEYS_TAB_LABEL},
+ {"historyListTabLabel", IDS_HISTORY_CLUSTERS_LIST_TAB_LABEL},
+ {"relatedSearchesHeader", IDS_HISTORY_CLUSTERS_RELATED_SEARCHES_HEADER},
+ {"removeAllFromHistory", IDS_HISTORY_CLUSTERS_REMOVE_ALL_ITEMS},
+ {"removeFromHistoryToast", IDS_HISTORY_CLUSTERS_REMOVE_ITEM_TOAST},
+ {"savedInTabGroup", IDS_HISTORY_CLUSTERS_SAVED_IN_TABGROUP_LABEL},
+ {"toggleButtonLabelLess", IDS_HISTORY_CLUSTERS_SHOW_LESS_BUTTON_LABEL},
+ {"toggleButtonLabelMore", IDS_HISTORY_CLUSTERS_SHOW_MORE_BUTTON_LABEL},
+ };
+ source->AddLocalizedStrings(kHistoryClustersStrings);
webui::SetupWebUIDataSource(
source, base::make_span(kHistoryResources, kHistoryResourcesSize),
@@ -159,6 +171,11 @@ HistoryUI::HistoryUI(content::WebUI* web_ui)
ManagedUIHandler::Initialize(web_ui, data_source);
content::WebUIDataSource::Add(profile, data_source);
+ pref_change_registrar_.Init(profile->GetPrefs());
+ pref_change_registrar_.Add(history_clusters::prefs::kVisible,
+ base::BindRepeating(&HistoryUI::UpdateDataSource,
+ base::Unretained(this)));
+
web_ui->AddMessageHandler(std::make_unique<webui::NavigationHandler>());
auto browsing_history_handler = std::make_unique<BrowsingHistoryHandler>();
BrowsingHistoryHandler* browsing_history_handler_ptr =
@@ -204,8 +221,12 @@ void HistoryUI::UpdateDataSource() {
Profile* profile = Profile::FromWebUI(web_ui());
- std::unique_ptr<base::DictionaryValue> update(new base::DictionaryValue);
+ std::unique_ptr<base::DictionaryValue> update =
+ std::make_unique<base::DictionaryValue>();
update->SetBoolean(kIsUserSignedInKey, IsUserSignedIn(profile));
+ update->SetBoolean(
+ kIsHistoryClustersVisibleKey,
+ profile->GetPrefs()->GetBoolean(history_clusters::prefs::kVisible));
content::WebUIDataSource::Update(profile, chrome::kChromeUIHistoryHost,
std::move(update));
diff --git a/chromium/chrome/browser/ui/webui/history/history_ui.h b/chromium/chrome/browser/ui/webui/history/history_ui.h
index a802bf7260a..1202f726d61 100644
--- a/chromium/chrome/browser/ui/webui/history/history_ui.h
+++ b/chromium/chrome/browser/ui/webui/history/history_ui.h
@@ -10,6 +10,7 @@
#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "chrome/browser/ui/webui/history_clusters/history_clusters.mojom-forward.h"
+#include "components/prefs/pref_change_registrar.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "ui/base/layout.h"
#include "ui/webui/mojo_web_ui_controller.h"
@@ -38,9 +39,16 @@ class HistoryUI : public ui::MojoWebUIController {
void BindInterface(mojo::PendingReceiver<history_clusters::mojom::PageHandler>
pending_page_handler);
+ // For testing only.
+ history_clusters::HistoryClustersHandler*
+ GetHistoryClustersHandlerForTesting() {
+ return history_clusters_handler_.get();
+ }
+
private:
std::unique_ptr<history_clusters::HistoryClustersHandler>
history_clusters_handler_;
+ PrefChangeRegistrar pref_change_registrar_;
void UpdateDataSource();
diff --git a/chromium/chrome/browser/ui/webui/history/navigation_handler.cc b/chromium/chrome/browser/ui/webui/history/navigation_handler.cc
index 266c8cbcdf4..f0f27babafc 100644
--- a/chromium/chrome/browser/ui/webui/history/navigation_handler.cc
+++ b/chromium/chrome/browser/ui/webui/history/navigation_handler.cc
@@ -19,7 +19,7 @@ NavigationHandler::NavigationHandler() {}
NavigationHandler::~NavigationHandler() {}
void NavigationHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"navigateToUrl",
base::BindRepeating(&NavigationHandler::HandleNavigateToUrl,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/history/navigation_handler.h b/chromium/chrome/browser/ui/webui/history/navigation_handler.h
index 51c57c4114a..d19d2694fb5 100644
--- a/chromium/chrome/browser/ui/webui/history/navigation_handler.h
+++ b/chromium/chrome/browser/ui/webui/history/navigation_handler.h
@@ -19,6 +19,10 @@ namespace webui {
class NavigationHandler : public content::WebUIMessageHandler {
public:
NavigationHandler();
+
+ NavigationHandler(const NavigationHandler&) = delete;
+ NavigationHandler& operator=(const NavigationHandler&) = delete;
+
~NavigationHandler() override;
// WebUIMessageHandler implementation.
@@ -26,8 +30,6 @@ class NavigationHandler : public content::WebUIMessageHandler {
private:
void HandleNavigateToUrl(const base::ListValue* args);
-
- DISALLOW_COPY_AND_ASSIGN(NavigationHandler);
};
} // namespace webui
diff --git a/chromium/chrome/browser/ui/webui/history_clusters/DIR_METADATA b/chromium/chrome/browser/ui/webui/history_clusters/DIR_METADATA
new file mode 100644
index 00000000000..694e2bf57fb
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/history_clusters/DIR_METADATA
@@ -0,0 +1 @@
+mixins: "//components/history_clusters/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/history_clusters/history_clusters.mojom b/chromium/chrome/browser/ui/webui/history_clusters/history_clusters.mojom
index c07b1706f21..d2274f4292e 100644
--- a/chromium/chrome/browser/ui/webui/history_clusters/history_clusters.mojom
+++ b/chromium/chrome/browser/ui/webui/history_clusters/history_clusters.mojom
@@ -68,13 +68,9 @@ struct URLVisit {
// applicable. Only prominently featured visits have related visits.
array<URLVisit> related_visits;
- // Whether a related visit is initially hidden. Calculated based on `score`.
+ // Whether a related visit is initially hidden.
bool below_the_fold;
- // A calculated score (i.e., calculated based on how long the tab was in
- // foreground etc).
- double score;
-
// A key-value dictionary of additional debug info to show. This is not
// visible in production, and used for development only.
map<string, string> debug_info;
@@ -137,6 +133,11 @@ interface PageHandler {
// The ClustersBrowserProxy singleton calls this when it's first initialized.
SetPage(pending_remote<Page> page);
+ // Toggles the visibility of the History Clusters. The returned Promise echos
+ // the given value for `visible`. The page uses the returned value to update
+ // its state once the request is fulfilled by the browser.
+ ToggleVisibility(bool visible) => (bool visible);
+
// Requests the freshest Clusters created from the user visit history, in
// reverse chronological order, based on the parameters in `query_params`.
// Note: Returns mock Clusters in non-chrome-branded builds if no remote
diff --git a/chromium/chrome/browser/ui/webui/history_clusters/history_clusters_handler.cc b/chromium/chrome/browser/ui/webui/history_clusters/history_clusters_handler.cc
index a36dc655101..0f741373741 100644
--- a/chromium/chrome/browser/ui/webui/history_clusters/history_clusters_handler.cc
+++ b/chromium/chrome/browser/ui/webui/history_clusters/history_clusters_handler.cc
@@ -8,52 +8,53 @@
#include <utility>
#include <vector>
+#include "base/bind.h"
#include "base/feature_list.h"
+#include "base/metrics/histogram_functions.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/utf_string_conversions.h"
+#include "base/time/time.h"
+#include "chrome/browser/history_clusters/history_clusters_metrics_logger.h"
#include "chrome/browser/history_clusters/history_clusters_service_factory.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/browser/ui/browser.h"
+#include "components/history_clusters/core/history_clusters_prefs.h"
#include "components/history_clusters/core/memories_features.h"
+#include "components/prefs/pref_service.h"
+#include "components/search_engines/template_url.h"
+#include "components/search_engines/template_url_service.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
-#include "url/gurl.h"
-
-#if !defined(CHROME_BRANDED)
-#include "base/bind.h"
-#include "base/containers/contains.h"
-#include "base/i18n/case_conversion.h"
-#include "base/strings/string_util.h"
-#include "base/time/time.h"
-#include "base/unguessable_token.h"
-#include "chrome/browser/bookmarks/bookmark_model_factory.h"
-#include "chrome/browser/history/history_service_factory.h"
-#include "chrome/browser/search_engines/template_url_service_factory.h"
-#include "chrome/browser/ui/browser_finder.h"
-#include "chrome/browser/ui/tabs/tab_group.h"
-#include "chrome/browser/ui/tabs/tab_group_model.h"
-#include "chrome/browser/ui/tabs/tab_strip_model.h"
-#include "components/bookmarks/browser/bookmark_model.h"
-#include "components/bookmarks/browser/url_and_title.h"
-#include "components/history/core/browser/history_service.h"
-#include "components/history/core/browser/history_types.h"
-#include "components/search_engines/template_url_service.h"
#include "ui/base/l10n/time_format.h"
-#endif
+#include "url/gurl.h"
namespace history_clusters {
namespace {
-// Translate a `AnnotatedVisit` to `mojom::VisitPtr`.
-mojom::URLVisitPtr VisitToMojom(
- const history::ScoredAnnotatedVisit& scored_annotated_visit) {
+// Creates a `mojom::VisitPtr` from a `history_clusters::Visit`.
+mojom::URLVisitPtr VisitToMojom(Profile* profile, const Visit& visit) {
auto visit_mojom = mojom::URLVisit::New();
- auto& annotated_visit = scored_annotated_visit.annotated_visit;
- visit_mojom->normalized_url = annotated_visit.url_row.url();
+ visit_mojom->normalized_url = visit.normalized_url;
+
+ auto& annotated_visit = visit.annotated_visit;
visit_mojom->raw_urls.push_back(annotated_visit.url_row.url());
visit_mojom->last_visit_time = annotated_visit.visit_row.visit_time;
visit_mojom->first_visit_time = annotated_visit.visit_row.visit_time;
+
+ // Update the fields to reflect data held in the duplicate visits too.
+ for (const auto& duplicate : visit.duplicate_visits) {
+ visit_mojom->raw_urls.push_back(duplicate.annotated_visit.url_row.url());
+ visit_mojom->last_visit_time =
+ std::max(visit_mojom->last_visit_time,
+ duplicate.annotated_visit.visit_row.visit_time);
+ visit_mojom->first_visit_time =
+ std::min(visit_mojom->first_visit_time,
+ duplicate.annotated_visit.visit_row.visit_time);
+ }
+
visit_mojom->page_title = base::UTF16ToUTF8(annotated_visit.url_row.title());
visit_mojom->relative_date = base::UTF16ToUTF8(ui::TimeFormat::Simple(
ui::TimeFormat::FORMAT_ELAPSED, ui::TimeFormat::LENGTH_SHORT,
@@ -66,114 +67,116 @@ mojom::URLVisitPtr VisitToMojom(
annotated_visit.context_annotations.is_new_bookmark) {
visit_mojom->annotations.push_back(mojom::Annotation::kBookmarked);
}
- visit_mojom->score = scored_annotated_visit.score;
- if (base::FeatureList::IsEnabled(kDebug)) {
- visit_mojom->debug_info["score"] = base::NumberToString(visit_mojom->score);
- visit_mojom->debug_info["visit_duration"] =
- base::NumberToString(scored_annotated_visit.annotated_visit.visit_row
- .visit_duration.InSecondsF());
+ const TemplateURLService* template_url_service =
+ TemplateURLServiceFactory::GetForProfile(profile);
+ const TemplateURL* default_search_provider =
+ template_url_service ? template_url_service->GetDefaultSearchProvider()
+ : nullptr;
+ if (default_search_provider &&
+ default_search_provider->IsSearchURL(
+ visit.normalized_url, template_url_service->search_terms_data())) {
+ visit_mojom->annotations.push_back(mojom::Annotation::kSearchResultsPage);
+ }
+
+ if (base::FeatureList::IsEnabled(kUserVisibleDebug)) {
+ visit_mojom->debug_info["score"] = base::NumberToString(visit.score);
+ visit_mojom->debug_info["visit_duration"] = base::NumberToString(
+ annotated_visit.visit_row.visit_duration.InSecondsF());
}
return visit_mojom;
}
+// Creates a `mojom::SearchQueryPtr` from the given search query, if possible.
absl::optional<mojom::SearchQueryPtr> SearchQueryToMojom(
- const std::string& search_query,
- const TemplateURLService* template_url_service) {
- TemplateURLRef::SearchTermsArgs search_terms_args(
- base::UTF8ToUTF16(search_query));
- const SearchTermsData& search_terms_data =
- template_url_service->search_terms_data();
+ Profile* profile,
+ const std::string& search_query) {
+ const TemplateURLService* template_url_service =
+ TemplateURLServiceFactory::GetForProfile(profile);
const TemplateURL* default_search_provider =
- template_url_service->GetDefaultSearchProvider();
- if (!default_search_provider ||
- !default_search_provider->url_ref().SupportsReplacement(
- search_terms_data)) {
+ template_url_service ? template_url_service->GetDefaultSearchProvider()
+ : nullptr;
+ if (!default_search_provider) {
+ return absl::nullopt;
+ }
+
+ const std::string url = default_search_provider->url_ref().ReplaceSearchTerms(
+ TemplateURLRef::SearchTermsArgs(base::UTF8ToUTF16(search_query)),
+ template_url_service->search_terms_data());
+ if (url.empty()) {
return absl::nullopt;
}
auto search_query_mojom = mojom::SearchQuery::New();
search_query_mojom->query = search_query;
- search_query_mojom->url =
- GURL(default_search_provider->url_ref().ReplaceSearchTerms(
- search_terms_args, search_terms_data));
+ search_query_mojom->url = GURL(url);
return search_query_mojom;
}
-void ServiceResultToMojom(
- Profile* profile,
- base::OnceCallback<
- void(const absl::optional<base::Time>& continuation_max_time,
- std::vector<mojom::ClusterPtr> cluster_mojoms)> callback,
- HistoryClustersService::QueryClustersResult result) {
- const TemplateURLService* template_url_service =
- TemplateURLServiceFactory::GetForProfile(profile);
- std::vector<mojom::ClusterPtr> clusters_mojoms;
+// Creates a `mojom::QueryResultPtr` using the original `query`, if the query
+// was a continuation one, and the result of querying HistoryClustersService.
+mojom::QueryResultPtr QueryClustersResultToMojom(Profile* profile,
+ const std::string& query,
+ bool is_continuation,
+ QueryClustersResult result) {
+ std::vector<mojom::ClusterPtr> cluster_mojoms;
for (const auto& cluster : result.clusters) {
auto cluster_mojom = mojom::Cluster::New();
cluster_mojom->id = cluster.cluster_id;
std::set<std::string> related_searches; // Keeps track of unique searches.
- for (const auto& visit : cluster.scored_annotated_visits) {
+ for (const auto& visit : cluster.visits) {
+ mojom::URLVisitPtr visit_mojom = VisitToMojom(profile, visit);
if (cluster_mojom->visits.empty()) {
// First visit is always the top visit.
- cluster_mojom->visits.push_back(VisitToMojom(visit));
+ cluster_mojom->visits.push_back(std::move(visit_mojom));
} else {
- auto& top_visit = cluster_mojom->visits.front();
- DCHECK(visit.score <= top_visit->score);
+ auto& top_visit = cluster.visits.front();
+ DCHECK(visit.score <= top_visit.score);
+ auto& top_visit_mojom = cluster_mojom->visits.front();
// After 3 related visits are attached, any subsequent visits scored
- // below 0.5 are considered below the fold. 0-scored "ghost" visits are
- // always considered below the fold. They are always hidden in
- // production, but shown when the kDebug flag is enabled for debugging.
- mojom::URLVisitPtr visit_mojom = VisitToMojom(visit);
- visit_mojom->below_the_fold = (top_visit->related_visits.size() > 3 &&
- visit_mojom->score < 0.5) ||
- visit_mojom->score == 0.0;
-
- // We leave any 0-scored visits (most likely duplicates) still in the
- // cluster, so that deleting the whole cluster deletes these related
- // duplicates too.
- top_visit->related_visits.push_back(std::move(visit_mojom));
+ // below 0.5 are considered below the fold. 0-scored (duplicate) visits
+ // are always considered below the fold.
+ visit_mojom->below_the_fold =
+ (top_visit_mojom->related_visits.size() > 3 && visit.score < 0.5) ||
+ visit.score == 0.0;
+ top_visit_mojom->related_visits.push_back(std::move(visit_mojom));
}
+ // Coalesce the related searches of this visit into the top visit, but
+ // only if the top visit's related searches count is still under the cap.
+ // Note we coalesce a whole visit's worth of searches at a time, so we
+ // can exceed the cap, but we ignore further visits' searches after that.
+ constexpr size_t kMaxRelatedSearches = 8;
auto& top_visit = cluster_mojom->visits.front();
- // The top visit's related searches are the set of related searches across
- // all the visits in the order they are encountered.
- for (const auto& search_query :
- visit.annotated_visit.content_annotations.related_searches) {
- if (!related_searches.insert(search_query).second) {
- continue;
- }
+ if (top_visit->related_searches.size() < kMaxRelatedSearches) {
+ for (const auto& search_query :
+ visit.annotated_visit.content_annotations.related_searches) {
+ if (!related_searches.insert(search_query).second) {
+ continue;
+ }
- auto search_query_mojom =
- SearchQueryToMojom(search_query, template_url_service);
- if (search_query_mojom) {
- top_visit->related_searches.emplace_back(
- std::move(*search_query_mojom));
+ auto search_query_mojom = SearchQueryToMojom(profile, search_query);
+ if (search_query_mojom) {
+ top_visit->related_searches.emplace_back(
+ std::move(*search_query_mojom));
+ }
}
}
}
- clusters_mojoms.emplace_back(std::move(cluster_mojom));
- }
-
- // TODO(tommycli): Resolve the semantics mismatch where the C++ handler uses
- // `continuation_end_time` == base::Time() to represent exhausted history,
- // while the mojom uses an explicit absl::optional value.
- absl::optional<base::Time> continuation_end_time;
- if (!result.continuation_end_time.is_null()) {
- continuation_end_time = result.continuation_end_time;
+ cluster_mojoms.emplace_back(std::move(cluster_mojom));
}
- std::move(callback).Run(continuation_end_time, std::move(clusters_mojoms));
+ auto result_mojom = mojom::QueryResult::New();
+ result_mojom->query = query;
+ result_mojom->is_continuation = is_continuation;
+ result_mojom->continuation_end_time = result.continuation_end_time;
+ result_mojom->clusters = std::move(cluster_mojoms);
+ return result_mojom;
}
-// Exists temporarily only for developer usage. Never enabled via variations.
-// TODO(mahmadi): Remove once on-device clustering backend is more mature.
-const base::Feature kUIDevelopmentMakeFakeHistoryClusters{
- "UIDevelopmentMakeFakeHistoryClusters", base::FEATURE_DISABLED_BY_DEFAULT};
-
} // namespace
HistoryClustersHandler::HistoryClustersHandler(
@@ -199,42 +202,46 @@ void HistoryClustersHandler::SetPage(
page_.Bind(std::move(pending_page));
}
+void HistoryClustersHandler::ToggleVisibility(
+ bool visible,
+ ToggleVisibilityCallback callback) {
+ profile_->GetPrefs()->SetBoolean(prefs::kVisible, visible);
+ std::move(callback).Run(visible);
+}
+
void HistoryClustersHandler::QueryClusters(mojom::QueryParamsPtr query_params) {
+ base::TimeTicks query_start_time = base::TimeTicks::Now();
+
const std::string& query = query_params->query;
const size_t max_count = query_params->max_count;
base::Time end_time;
- if (query_params->end_time) {
+ if (query_params->end_time.has_value()) {
+ // Continuation queries have a non-null value for `end_time`.
DCHECK(!query_params->end_time->is_null())
- << "Page called handler with non-null but invalid end_time.";
+ << "Queried clusters with a null value for end_time.";
end_time = *(query_params->end_time);
}
- auto result_callback =
- base::BindOnce(&HistoryClustersHandler::OnClustersQueryResult,
- weak_ptr_factory_.GetWeakPtr(), std::move(query_params));
-
- if (!base::FeatureList::IsEnabled(kUIDevelopmentMakeFakeHistoryClusters)) {
- // Cancel pending tasks, if any.
- query_task_tracker_.TryCancelAll();
- auto* history_clusters_service =
- HistoryClustersServiceFactory::GetForBrowserContext(profile_);
- history_clusters_service->QueryClusters(
- query, end_time, max_count,
- base::BindOnce(&ServiceResultToMojom, profile_,
- std::move(result_callback)),
- &query_task_tracker_);
- } else {
-#if defined(CHROME_BRANDED)
- OnMemoriesDebugMessage(
- "HistoryClustersHandler Error: No UI Mocks on Official Build.");
- page_->OnClustersQueryResult(mojom::QueryResult::New());
-#else
- OnMemoriesDebugMessage("HistoryClustersHandler: Loading UI Mock clusters.");
- // Cancel pending tasks, if any.
- query_task_tracker_.TryCancelAll();
- QueryHistoryService(query, end_time, max_count, {},
- std::move(result_callback));
-#endif
+
+ if (!query.empty()) {
+ // If the query string is not empty, we assume that this clusters query
+ // is user generated.
+ HistoryClustersMetricsLogger::GetOrCreateForPage(
+ web_contents_->GetPrimaryPage())
+ ->increment_query_count();
}
+
+ // Cancel pending tasks, if any.
+ query_task_tracker_.TryCancelAll();
+ auto* history_clusters_service =
+ HistoryClustersServiceFactory::GetForBrowserContext(profile_);
+ history_clusters_service->QueryClusters(
+ query, end_time, max_count,
+ base::BindOnce(&QueryClustersResultToMojom, profile_, query,
+ query_params->end_time.has_value())
+ .Then(base::BindOnce(&HistoryClustersHandler::OnClustersQueryResult,
+ weak_ptr_factory_.GetWeakPtr(),
+ query_start_time)),
+ &query_task_tracker_);
}
void HistoryClustersHandler::RemoveVisits(
@@ -255,8 +262,7 @@ void HistoryClustersHandler::RemoveVisits(
std::set<GURL>(visit_ptr->raw_urls.begin(), visit_ptr->raw_urls.end());
// ExpireHistoryArgs::end_time is not inclusive. Make sure all visits in the
// given timespan are removed by adding 1 second to it.
- expire_args.end_time =
- visit_ptr->last_visit_time + base::TimeDelta::FromSeconds(1);
+ expire_args.end_time = visit_ptr->last_visit_time + base::Seconds(1);
expire_args.begin_time = visit_ptr->first_visit_time;
}
auto* history_clusters_service =
@@ -269,24 +275,21 @@ void HistoryClustersHandler::RemoveVisits(
std::move(callback).Run(true);
}
-void HistoryClustersHandler::OnMemoriesDebugMessage(
- const std::string& message) {
- if (content::RenderFrameHost* rfh = web_contents_->GetMainFrame()) {
+void HistoryClustersHandler::OnDebugMessage(const std::string& message) {
+ content::RenderFrameHost* rfh = web_contents_->GetMainFrame();
+ if (rfh && base::FeatureList::IsEnabled(kNonUserVisibleDebug)) {
rfh->AddMessageToConsole(blink::mojom::ConsoleMessageLevel::kInfo, message);
}
}
void HistoryClustersHandler::OnClustersQueryResult(
- mojom::QueryParamsPtr original_query_params,
- const absl::optional<base::Time>& continuation_end_time,
- std::vector<mojom::ClusterPtr> cluster_mojoms) {
- auto result_mojom = mojom::QueryResult::New();
- result_mojom->query = original_query_params->query;
- // Continuation queries have a value for `end_time`. Mark the result as such.
- result_mojom->is_continuation = original_query_params->end_time.has_value();
- result_mojom->continuation_end_time = continuation_end_time;
- result_mojom->clusters = std::move(cluster_mojoms);
- page_->OnClustersQueryResult(std::move(result_mojom));
+ base::TimeTicks query_start_time,
+ mojom::QueryResultPtr query_result) {
+ page_->OnClustersQueryResult(std::move(query_result));
+
+ // Log metrics after delivering the results to the page.
+ base::TimeDelta service_latency = base::TimeTicks::Now() - query_start_time;
+ base::UmaHistogramTimes("History.Clusters.ServiceLatency", service_latency);
}
void HistoryClustersHandler::OnVisitsRemoved(
@@ -294,202 +297,4 @@ void HistoryClustersHandler::OnVisitsRemoved(
page_->OnVisitsRemoved(std::move(visits));
}
-#if !defined(CHROME_BRANDED)
-void HistoryClustersHandler::QueryHistoryService(
- const std::string& query,
- base::Time end_time,
- size_t max_count,
- std::vector<mojom::ClusterPtr> cluster_mojoms,
- QueryResultsCallback callback) {
- if (max_count > 0 && cluster_mojoms.size() == max_count) {
- // Enough clusters have been created. Run the callback with those Clusters
- // along with the continuation max time threshold.
- std::move(callback).Run(end_time, std::move(cluster_mojoms));
- return;
- }
-
- history::HistoryService* history_service =
- HistoryServiceFactory::GetForProfile(profile_,
- ServiceAccessType::EXPLICIT_ACCESS);
- history::QueryOptions query_options;
- query_options.duplicate_policy = history::QueryOptions::KEEP_ALL_DUPLICATES;
- query_options.end_time = end_time;
- history_service->QueryHistory(
- base::UTF8ToUTF16(query), query_options,
- base::BindOnce(&HistoryClustersHandler::OnHistoryQueryResults,
- weak_ptr_factory_.GetWeakPtr(), query, end_time, max_count,
- std::move(cluster_mojoms), std::move(callback)),
- &query_task_tracker_);
-}
-
-void HistoryClustersHandler::OnHistoryQueryResults(
- const std::string& query,
- base::Time end_time,
- size_t max_count,
- std::vector<mojom::ClusterPtr> cluster_mojoms,
- QueryResultsCallback callback,
- history::QueryResults results) {
- if (results.empty()) {
- // No more results to create Clusters from. Run the callback with the
- // Clusters created so far.
- std::move(callback).Run(end_time, std::move(cluster_mojoms));
- return;
- }
-
- auto cluster_mojom = mojom::Cluster::New();
- cluster_mojom->id = rand();
-
- const TemplateURLService* template_url_service =
- TemplateURLServiceFactory::GetForProfile(profile_);
- const TemplateURL* default_search_provider =
- template_url_service->GetDefaultSearchProvider();
- const SearchTermsData& search_terms_data =
- template_url_service->search_terms_data();
-
- Browser* browser = chrome::FindBrowserWithWebContents(web_contents_);
-
- bookmarks::BookmarkModel* model =
- BookmarkModelFactory::GetForBrowserContext(profile_);
-
- // Keep track of related searches in this cluster.
- std::set<std::string> related_searches;
-
- // Keep track of visits in this cluster.
- std::vector<mojom::URLVisitPtr> visits;
-
- // Keep track of the randomly generated scores between 0 and 1.
- std::vector<double> scores;
-
- for (const auto& result : results) {
- // Last visit time of the Cluster is the visit time of most recently visited
- // URL in the Cluster. Collect all the visits in that day into the Cluster.
- if (cluster_mojom->last_visit_time.is_null()) {
- cluster_mojom->last_visit_time = result.visit_time();
- } else if (cluster_mojom->last_visit_time.LocalMidnight() >
- result.visit_time()) {
- break;
- }
-
- auto visit = mojom::URLVisit::New();
- visit->raw_urls.push_back(result.url());
- visit->normalized_url = result.url();
- visit->page_title = base::UTF16ToUTF8(result.title());
- visit->last_visit_time = result.visit_time();
- visit->first_visit_time = result.visit_time();
- visit->relative_date = base::UTF16ToUTF8(ui::TimeFormat::Simple(
- ui::TimeFormat::FORMAT_ELAPSED, ui::TimeFormat::LENGTH_SHORT,
- base::Time::Now() - visit->last_visit_time));
-
- // Check if the URL is a valid search URL.
- std::u16string search_terms;
- bool is_valid_search_url =
- default_search_provider &&
- default_search_provider->ExtractSearchTermsFromURL(
- result.url(), search_terms_data, &search_terms) &&
- !search_terms.empty();
- // If the URL is a valid search URL, try to normalize it.
- if (is_valid_search_url) {
- const std::u16string& normalized_search_query =
- base::i18n::ToLower(base::CollapseWhitespace(search_terms, false));
- TemplateURLRef::SearchTermsArgs search_terms_args(
- normalized_search_query);
- const TemplateURLRef& search_url_ref = default_search_provider->url_ref();
- if (!search_url_ref.SupportsReplacement(search_terms_data)) {
- continue;
- }
- visit->normalized_url = GURL(search_url_ref.ReplaceSearchTerms(
- search_terms_args, search_terms_data));
-
- // Annotate the visit accordingly.
- visit->annotations.push_back(mojom::Annotation::kSearchResultsPage);
-
- // Also offer this as a related search query.
- related_searches.insert(base::UTF16ToUTF8(normalized_search_query));
- }
-
- // Check if the URL is in a tab group.
- if (browser) {
- const TabStripModel* tab_strip_model = browser->tab_strip_model();
- const TabGroupModel* group_model = tab_strip_model->group_model();
- for (const auto& group_id : group_model->ListTabGroups()) {
- const TabGroup* tab_group = group_model->GetTabGroup(group_id);
- gfx::Range tabs = tab_group->ListTabs();
- for (uint32_t index = tabs.start(); index < tabs.end(); ++index) {
- content::WebContents* web_contents =
- tab_strip_model->GetWebContentsAt(index);
- if (result.url() == web_contents->GetLastCommittedURL()) {
- visit->annotations.push_back(mojom::Annotation::kTabGrouped);
- break;
- }
- }
- }
- }
-
- // Check if the URL is bookmarked.
- if (model && model->loaded()) {
- std::vector<bookmarks::UrlAndTitle> bookmarks;
- model->GetBookmarks(&bookmarks);
- for (const auto& bookmark : bookmarks) {
- if (result.url() == bookmark.url) {
- visit->annotations.push_back(mojom::Annotation::kBookmarked);
- break;
- }
- }
- }
-
- // Count `visit` toward duplicate visits if the same URL is seen before.
- auto duplicate_visit_it =
- std::find_if(visits.begin(), visits.end(), [&](const auto& visit_ptr) {
- return visit_ptr->normalized_url == visit->normalized_url;
- });
- if (duplicate_visit_it != visits.end()) {
- (*duplicate_visit_it)->raw_urls.push_back(result.url());
- (*duplicate_visit_it)->first_visit_time = result.visit_time();
- } else {
- visits.push_back(std::move(visit));
- scores.push_back(rand() / static_cast<double>(RAND_MAX));
- }
- }
-
- // Sort the randomly generated scores.
- std::sort(scores.begin(), scores.end());
-
- // Add the visits and the related searches to the cluster.
- for (auto& visit : visits) {
- // Visits get a score between 0 and 1 in descending order.
- visit->score = scores.back();
- scores.pop_back();
-
- if (cluster_mojom->visits.empty()) {
- // The first visit will be featured prominently and have related searches.
- cluster_mojom->visits.push_back(std::move(visit));
-
- for (auto& search_query : related_searches) {
- auto search_query_mojom =
- SearchQueryToMojom(search_query, template_url_service);
- if (search_query_mojom) {
- cluster_mojom->visits[0]->related_searches.push_back(
- std::move(*search_query_mojom));
- }
- }
- } else {
- // The rest of the visits will related visits of the first one. Only the
- // first three related visits are visible by default.
- if (cluster_mojom->visits[0]->related_visits.size() >= 3) {
- visit->below_the_fold = true;
- }
- cluster_mojom->visits[0]->related_visits.push_back(std::move(visit));
- }
- }
-
- // Continue to extract Clusters from 11:59:59pm of the day before the
- // Cluster's `last_visit_time`.
- end_time = cluster_mojom->last_visit_time.LocalMidnight() -
- base::TimeDelta::FromSeconds(1);
- cluster_mojoms.push_back(std::move(cluster_mojom));
- QueryHistoryService(query, end_time, max_count, std::move(cluster_mojoms),
- std::move(callback));
-}
-#endif
-
} // namespace history_clusters
diff --git a/chromium/chrome/browser/ui/webui/history_clusters/history_clusters_handler.h b/chromium/chrome/browser/ui/webui/history_clusters/history_clusters_handler.h
index 18e84bc788d..fd503e27c29 100644
--- a/chromium/chrome/browser/ui/webui/history_clusters/history_clusters_handler.h
+++ b/chromium/chrome/browser/ui/webui/history_clusters/history_clusters_handler.h
@@ -25,12 +25,6 @@ namespace content {
class WebContents;
} // namespace content
-#if !defined(CHROME_BRANDED)
-namespace history {
-class QueryResults;
-} // namespace history
-#endif
-
namespace history_clusters {
// Handles bidirectional communication between the history clusters page and the
@@ -48,43 +42,25 @@ class HistoryClustersHandler : public mojom::PageHandler,
// mojom::PageHandler:
void SetPage(mojo::PendingRemote<mojom::Page> pending_page) override;
+ void ToggleVisibility(bool visible,
+ ToggleVisibilityCallback callback) override;
void QueryClusters(mojom::QueryParamsPtr query_params) override;
void RemoveVisits(std::vector<mojom::URLVisitPtr> visits,
RemoveVisitsCallback callback) override;
// HistoryClustersService::Observer:
- void OnMemoriesDebugMessage(const std::string& message) override;
+ void OnDebugMessage(const std::string& message) override;
private:
- // Called with the original `query_params`, `continuation_end_time` which is
- // created in anticipation of the next query, and `cluster_mojoms` when the
- // results of querying the HistoryClustersService are available. Subsequently
- // creates a QueryResult instance using the parameters and sends it to the JS.
- void OnClustersQueryResult(
- mojom::QueryParamsPtr original_query_params,
- const absl::optional<base::Time>& continuation_end_time,
- std::vector<mojom::ClusterPtr> cluster_mojoms);
+ // Called with the result of querying clusters. Subsequently, `query_result`
+ // is sent to the JS to update the UI. `query_start_time` is also passed to
+ // allow for performance logging.
+ void OnClustersQueryResult(base::TimeTicks query_start_time,
+ mojom::QueryResultPtr query_result);
// Called with the set of removed visits. Subsequently, `visits` is sent to
// the JS to update the UI.
void OnVisitsRemoved(std::vector<mojom::URLVisitPtr> visits);
-#if !defined(CHROME_BRANDED)
- using QueryResultsCallback =
- base::OnceCallback<void(const absl::optional<base::Time>&,
- std::vector<mojom::ClusterPtr>)>;
- void QueryHistoryService(const std::string& query,
- base::Time end_time,
- size_t max_count,
- std::vector<mojom::ClusterPtr> cluster_mojoms,
- QueryResultsCallback callback);
- void OnHistoryQueryResults(const std::string& query,
- base::Time end_time,
- size_t max_count,
- std::vector<mojom::ClusterPtr> cluster_mojoms,
- QueryResultsCallback callback,
- history::QueryResults results);
-#endif
-
Profile* profile_;
content::WebContents* web_contents_;
// Tracker for query requests to the HistoryClustersService.
diff --git a/chromium/chrome/browser/ui/webui/identity_internals_ui.cc b/chromium/chrome/browser/ui/webui/identity_internals_ui.cc
index db43a4e5e83..959ca11ad13 100644
--- a/chromium/chrome/browser/ui/webui/identity_internals_ui.cc
+++ b/chromium/chrome/browser/ui/webui/identity_internals_ui.cc
@@ -103,6 +103,11 @@ class IdentityInternalsTokenRevoker : public GaiaAuthConsumer {
const std::string& callback_id,
Profile* profile,
IdentityInternalsUIMessageHandler* consumer);
+
+ IdentityInternalsTokenRevoker(const IdentityInternalsTokenRevoker&) = delete;
+ IdentityInternalsTokenRevoker& operator=(
+ const IdentityInternalsTokenRevoker&) = delete;
+
~IdentityInternalsTokenRevoker() override;
// Returns the access token being revoked.
@@ -126,8 +131,6 @@ class IdentityInternalsTokenRevoker : public GaiaAuthConsumer {
const std::string callback_id_;
// An object that needs to be notified once the access token is revoked.
IdentityInternalsUIMessageHandler* consumer_; // weak.
-
- DISALLOW_COPY_AND_ASSIGN(IdentityInternalsTokenRevoker);
};
IdentityInternalsUIMessageHandler::IdentityInternalsUIMessageHandler() {}
@@ -179,7 +182,7 @@ std::unique_ptr<base::ListValue> IdentityInternalsUIMessageHandler::GetScopes(
const extensions::IdentityTokenCacheValue& token_cache_value) {
auto scopes_value = std::make_unique<base::ListValue>();
for (const auto& scope : token_cache_value.granted_scopes()) {
- scopes_value->AppendString(scope);
+ scopes_value->Append(scope);
}
return scopes_value;
}
@@ -247,12 +250,12 @@ void IdentityInternalsUIMessageHandler::GetInfoForAllTokens(
}
void IdentityInternalsUIMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"identityInternalsGetTokens",
base::BindRepeating(
&IdentityInternalsUIMessageHandler::GetInfoForAllTokens,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"identityInternalsRevokeToken",
base::BindRepeating(&IdentityInternalsUIMessageHandler::RevokeToken,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/identity_internals_ui.h b/chromium/chrome/browser/ui/webui/identity_internals_ui.h
index a3e965c538b..5ff68414232 100644
--- a/chromium/chrome/browser/ui/webui/identity_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/identity_internals_ui.h
@@ -13,10 +13,11 @@ class IdentityInternalsUI
: public content::WebUIController {
public:
explicit IdentityInternalsUI(content::WebUI* web_ui);
- ~IdentityInternalsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(IdentityInternalsUI);
+ IdentityInternalsUI(const IdentityInternalsUI&) = delete;
+ IdentityInternalsUI& operator=(const IdentityInternalsUI&) = delete;
+
+ ~IdentityInternalsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_IDENTITY_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/identity_internals_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/identity_internals_ui_browsertest.cc
index 2e7780cc487..f4388c9e83f 100644
--- a/chromium/chrome/browser/ui/webui/identity_internals_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/identity_internals_ui_browsertest.cc
@@ -54,7 +54,7 @@ void IdentityInternalsUIBrowserTest::AddTokenToCache(
std::set<std::string> scopes_set(scopes.begin(), scopes.end());
extensions::IdentityTokenCacheValue token_cache_value =
extensions::IdentityTokenCacheValue::CreateToken(
- token_id, scopes_set, base::TimeDelta::FromSeconds(time_to_live));
+ token_id, scopes_set, base::Seconds(time_to_live));
CoreAccountInfo user_info;
user_info.account_id = CoreAccountId(account_id);
diff --git a/chromium/chrome/browser/ui/webui/identity_internals_ui_browsertest.h b/chromium/chrome/browser/ui/webui/identity_internals_ui_browsertest.h
index a7f0dfc8472..f38635fde0a 100644
--- a/chromium/chrome/browser/ui/webui/identity_internals_ui_browsertest.h
+++ b/chromium/chrome/browser/ui/webui/identity_internals_ui_browsertest.h
@@ -14,6 +14,12 @@
class IdentityInternalsUIBrowserTest : public WebUIBrowserTest {
public:
IdentityInternalsUIBrowserTest();
+
+ IdentityInternalsUIBrowserTest(const IdentityInternalsUIBrowserTest&) =
+ delete;
+ IdentityInternalsUIBrowserTest& operator=(
+ const IdentityInternalsUIBrowserTest&) = delete;
+
~IdentityInternalsUIBrowserTest() override;
protected:
@@ -27,8 +33,6 @@ class IdentityInternalsUIBrowserTest : public WebUIBrowserTest {
const std::string& account_id,
const std::vector<std::string>& scopes,
int time_to_live);
-
- DISALLOW_COPY_AND_ASSIGN(IdentityInternalsUIBrowserTest);
};
#endif // CHROME_BROWSER_UI_WEBUI_IDENTITY_INTERNALS_UI_BROWSERTEST_H_
diff --git a/chromium/chrome/browser/ui/webui/image_editor/editor_untrusted_source.cc b/chromium/chrome/browser/ui/webui/image_editor/editor_untrusted_source.cc
new file mode 100644
index 00000000000..f3ad5b51579
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/image_editor/editor_untrusted_source.cc
@@ -0,0 +1,107 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/image_editor/editor_untrusted_source.h"
+
+#include <string>
+#include <utility>
+
+#include "base/i18n/rtl.h"
+#include "base/memory/ref_counted_memory.h"
+#include "base/strings/string_piece.h"
+#include "base/strings/stringprintf.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/common/url_constants.h"
+#include "chrome/grit/browser_resources.h"
+#include "content/public/common/url_constants.h"
+#include "services/network/public/mojom/content_security_policy.mojom.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/resource/resource_bundle.h"
+#include "url/url_util.h"
+
+EditorUntrustedSource::EditorUntrustedSource(Profile* profile) {}
+
+EditorUntrustedSource::~EditorUntrustedSource() = default;
+
+std::string EditorUntrustedSource::GetContentSecurityPolicy(
+ network::mojom::CSPDirectiveName directive) {
+ // TODO(kmilka): Determine correct CSP for the page.
+ switch (directive) {
+ case network::mojom::CSPDirectiveName::ScriptSrc:
+ return std::string();
+ case network::mojom::CSPDirectiveName::ChildSrc:
+ return std::string();
+ case network::mojom::CSPDirectiveName::DefaultSrc:
+ return std::string();
+ case network::mojom::CSPDirectiveName::FrameAncestors:
+ return std::string();
+ case network::mojom::CSPDirectiveName::RequireTrustedTypesFor:
+ return std::string();
+ case network::mojom::CSPDirectiveName::TrustedTypes:
+ return std::string();
+ default:
+ return content::URLDataSource::GetContentSecurityPolicy(directive);
+ }
+}
+
+std::string EditorUntrustedSource::GetSource() {
+ return chrome::kChromeUIUntrustedImageEditorURL;
+}
+
+void EditorUntrustedSource::StartDataRequest(
+ const GURL& url,
+ const content::WebContents::Getter& wc_getter,
+ content::URLDataSource::GotDataCallback callback) {
+ const std::string path = content::URLDataSource::URLToRequestPath(url);
+ if (path == "placeholder") {
+ ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
+ base::RefCountedMemory* bytes =
+ bundle.LoadDataResourceBytes(IDR_IMAGE_EDITOR_UNTRUSTED_HTML);
+ base::StringPiece string_piece(
+ reinterpret_cast<const char*>(bytes->front()), bytes->size());
+
+ ui::TemplateReplacements replacements;
+ replacements["textdirection"] = base::i18n::IsRTL() ? "rtl" : "ltr";
+ const std::string& app_locale = g_browser_process->GetApplicationLocale();
+ replacements["language"] = l10n_util::GetLanguage(app_locale);
+ std::string html = ui::ReplaceTemplateExpressions(
+ string_piece, replacements,
+ /* skip_unexpected_placeholder_check= */ true);
+
+ std::move(callback).Run(base::RefCountedString::TakeString(&html));
+ }
+}
+
+std::string EditorUntrustedSource::GetMimeType(const std::string& path) {
+ const std::string stripped_path = path.substr(0, path.find("?"));
+ if (base::EndsWith(stripped_path, ".js",
+ base::CompareCase::INSENSITIVE_ASCII)) {
+ return "application/javascript";
+ }
+ return "text/html";
+}
+
+bool EditorUntrustedSource::AllowCaching() {
+ return false;
+}
+
+bool EditorUntrustedSource::ShouldReplaceExistingSource() {
+ return false;
+}
+
+bool EditorUntrustedSource::ShouldServeMimeTypeAsContentTypeHeader() {
+ return true;
+}
+
+bool EditorUntrustedSource::ShouldServiceRequest(
+ const GURL& url,
+ content::BrowserContext* browser_context,
+ int render_process_id) {
+ return url.GetOrigin() == GetSource();
+}
+
+bool EditorUntrustedSource::ShouldDenyXFrameOptions() {
+ return false;
+}
diff --git a/chromium/chrome/browser/ui/webui/image_editor/editor_untrusted_source.h b/chromium/chrome/browser/ui/webui/image_editor/editor_untrusted_source.h
new file mode 100644
index 00000000000..20b4f85e634
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/image_editor/editor_untrusted_source.h
@@ -0,0 +1,44 @@
+// Copyright 2021 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.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_IMAGE_EDITOR_EDITOR_UNTRUSTED_SOURCE_H_
+#define CHROME_BROWSER_UI_WEBUI_IMAGE_EDITOR_EDITOR_UNTRUSTED_SOURCE_H_
+
+#include <string>
+
+#include "content/public/browser/url_data_source.h"
+
+class Profile;
+
+// Serves chrome-untrusted://image-editor/* sources which can return
+// user-generated content from outside the chromium codebase. The
+// chrome-untrusted://image-editor/* sources can only be embedded in
+// the chrome://image-editor by using an <iframe>.
+//
+class EditorUntrustedSource : public content::URLDataSource {
+ public:
+ explicit EditorUntrustedSource(Profile* profile);
+ ~EditorUntrustedSource() override;
+ EditorUntrustedSource(const EditorUntrustedSource&) = delete;
+ EditorUntrustedSource& operator=(const EditorUntrustedSource&) = delete;
+
+ // content::URLDataSource:
+ std::string GetContentSecurityPolicy(
+ network::mojom::CSPDirectiveName directive) override;
+ std::string GetSource() override;
+ void StartDataRequest(
+ const GURL& url,
+ const content::WebContents::Getter& wc_getter,
+ content::URLDataSource::GotDataCallback callback) override;
+ std::string GetMimeType(const std::string& path) override;
+ bool AllowCaching() override;
+ bool ShouldReplaceExistingSource() override;
+ bool ShouldServeMimeTypeAsContentTypeHeader() override;
+ bool ShouldServiceRequest(const GURL& url,
+ content::BrowserContext* browser_context,
+ int render_process_id) override;
+ bool ShouldDenyXFrameOptions() override;
+};
+
+#endif // CHROME_BROWSER_UI_WEBUI_IMAGE_EDITOR_EDITOR_UNTRUSTED_SOURCE_H_
diff --git a/chromium/chrome/browser/ui/webui/image_editor/image_editor_ui.cc b/chromium/chrome/browser/ui/webui/image_editor/image_editor_ui.cc
index ef5964f63c6..b91bd5a7d5e 100644
--- a/chromium/chrome/browser/ui/webui/image_editor/image_editor_ui.cc
+++ b/chromium/chrome/browser/ui/webui/image_editor/image_editor_ui.cc
@@ -4,15 +4,26 @@
#include "chrome/browser/ui/webui/image_editor/image_editor_ui.h"
+#include "base/strings/stringprintf.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/webui/image_editor/editor_untrusted_source.h"
#include "chrome/common/url_constants.h"
#include "chrome/grit/browser_resources.h"
+#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_data_source.h"
-ImageEditorUI::ImageEditorUI(content::WebUI* web_ui) : WebUIController(web_ui) {
+ImageEditorUI::ImageEditorUI(content::WebUI* web_ui)
+ : WebUIController(web_ui), profile_(Profile::FromWebUI(web_ui)) {
// Set up the chrome://image-editor source.
content::WebUIDataSource* html_source =
content::WebUIDataSource::Create(chrome::kChromeUIImageEditorHost);
html_source->SetDefaultResource(IDR_IMAGE_EDITOR_HTML);
- content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), html_source);
+ html_source->OverrideContentSecurityPolicy(
+ network::mojom::CSPDirectiveName::FrameSrc,
+ base::StringPrintf("frame-src %s;",
+ chrome::kChromeUIUntrustedImageEditorURL));
+ content::WebUIDataSource::Add(profile_, html_source);
+ content::URLDataSource::Add(
+ profile_, std::make_unique<EditorUntrustedSource>(profile_));
+ web_ui->AddRequestableScheme(content::kChromeUIUntrustedScheme);
}
diff --git a/chromium/chrome/browser/ui/webui/image_editor/image_editor_ui.h b/chromium/chrome/browser/ui/webui/image_editor/image_editor_ui.h
index 380f4aebd22..c81ec6fb3c5 100644
--- a/chromium/chrome/browser/ui/webui/image_editor/image_editor_ui.h
+++ b/chromium/chrome/browser/ui/webui/image_editor/image_editor_ui.h
@@ -8,6 +8,8 @@
#include "base/macros.h"
#include "content/public/browser/web_ui_controller.h"
+class Profile;
+
// This UI and the chrome://image-editor page acts as a wrapper, using an
// <iframe> to display an app hosted from chrome-untrusted://image-editor. The
// mojo interface to handle the user-generated screenshot content will exist
@@ -19,6 +21,9 @@ class ImageEditorUI : public content::WebUIController {
ImageEditorUI(const ImageEditorUI&) = delete;
ImageEditorUI& operator=(const ImageEditorUI&) = delete;
~ImageEditorUI() override = default;
+
+ private:
+ Profile* profile_;
};
#endif // CHROME_BROWSER_UI_WEBUI_IMAGE_EDITOR_IMAGE_EDITOR_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/inspect_ui.cc b/chromium/chrome/browser/ui/webui/inspect_ui.cc
index e0de6f1e450..a67cbaea653 100644
--- a/chromium/chrome/browser/ui/webui/inspect_ui.cc
+++ b/chromium/chrome/browser/ui/webui/inspect_ui.cc
@@ -202,72 +202,72 @@ class InspectMessageHandler : public WebUIMessageHandler {
};
void InspectMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiInitUICommand,
base::BindRepeating(&InspectMessageHandler::HandleInitUICommand,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiInspectCommand,
base::BindRepeating(&InspectMessageHandler::HandleInspectCommand,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiInspectFallbackCommand,
base::BindRepeating(&InspectMessageHandler::HandleInspectFallbackCommand,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiActivateCommand,
base::BindRepeating(&InspectMessageHandler::HandleActivateCommand,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiCloseCommand,
base::BindRepeating(&InspectMessageHandler::HandleCloseCommand,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiPauseCommand,
base::BindRepeating(&InspectMessageHandler::HandlePauseCommand,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiDiscoverUsbDevicesEnabledCommand,
base::BindRepeating(&InspectMessageHandler::HandleBooleanPrefChanged,
base::Unretained(this),
&prefs::kDevToolsDiscoverUsbDevicesEnabled[0]));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiPortForwardingEnabledCommand,
base::BindRepeating(&InspectMessageHandler::HandleBooleanPrefChanged,
base::Unretained(this),
&prefs::kDevToolsPortForwardingEnabled[0]));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiPortForwardingConfigCommand,
base::BindRepeating(
&InspectMessageHandler::HandlePortForwardingConfigCommand,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiDiscoverTCPTargetsEnabledCommand,
base::BindRepeating(&InspectMessageHandler::HandleBooleanPrefChanged,
base::Unretained(this),
&prefs::kDevToolsDiscoverTCPTargetsEnabled[0]));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiLaunchUIDevToolsCommand,
base::BindRepeating(&InspectMessageHandler::HandleLaunchUIDevToolsCommand,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiTCPDiscoveryConfigCommand,
base::BindRepeating(
&InspectMessageHandler::HandleTCPDiscoveryConfigCommand,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiOpenNodeFrontendCommand,
base::BindRepeating(&InspectMessageHandler::HandleOpenNodeFrontendCommand,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiReloadCommand,
base::BindRepeating(&InspectMessageHandler::HandleReloadCommand,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiOpenCommand,
base::BindRepeating(&InspectMessageHandler::HandleOpenCommand,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kInspectUiInspectBrowser,
base::BindRepeating(&InspectMessageHandler::HandleInspectBrowserCommand,
base::Unretained(this)));
@@ -281,7 +281,7 @@ static bool ParseStringArgs(const base::ListValue* args,
std::string* arg0,
std::string* arg1,
std::string* arg2 = 0) {
- int arg_size = args->GetSize();
+ int arg_size = args->GetList().size();
return (!arg0 || (arg_size > 0 && args->GetString(0, arg0))) &&
(!arg1 || (arg_size > 1 && args->GetString(1, arg1))) &&
(!arg2 || (arg_size > 2 && args->GetString(2, arg2)));
@@ -357,7 +357,7 @@ void InspectMessageHandler::HandleBooleanPrefChanged(
return;
bool enabled;
- if (args->GetSize() == 1 && args->GetBoolean(0, &enabled))
+ if (args->GetList().size() == 1 && args->GetBoolean(0, &enabled))
profile->GetPrefs()->SetBoolean(pref_name, enabled);
}
@@ -368,7 +368,7 @@ void InspectMessageHandler::HandlePortForwardingConfigCommand(
return;
const base::DictionaryValue* dict_src;
- if (args->GetSize() == 1 && args->GetDictionary(0, &dict_src))
+ if (args->GetList().size() == 1 && args->GetDictionary(0, &dict_src))
profile->GetPrefs()->Set(prefs::kDevToolsPortForwardingConfig, *dict_src);
}
@@ -734,7 +734,7 @@ scoped_refptr<content::DevToolsAgentHost> InspectUI::FindTarget(
}
void InspectUI::PopulateTargets(const std::string& source,
- const base::ListValue& targets) {
+ const base::Value& targets) {
web_ui()->CallJavascriptFunctionUnsafe("populateTargets", base::Value(source),
targets);
}
diff --git a/chromium/chrome/browser/ui/webui/inspect_ui.h b/chromium/chrome/browser/ui/webui/inspect_ui.h
index 0a89ad8e944..97efd764420 100644
--- a/chromium/chrome/browser/ui/webui/inspect_ui.h
+++ b/chromium/chrome/browser/ui/webui/inspect_ui.h
@@ -19,7 +19,6 @@
namespace base {
class Value;
-class ListValue;
}
namespace content {
@@ -87,7 +86,7 @@ class InspectUI : public content::WebUIController,
const std::string& target_id);
void PopulateTargets(const std::string& source_id,
- const base::ListValue& targets);
+ const base::Value& targets);
void PopulatePortStatus(base::Value status);
diff --git a/chromium/chrome/browser/ui/webui/inspect_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/inspect_ui_browsertest.cc
index 209b6d4cc79..d8b09d9c30e 100644
--- a/chromium/chrome/browser/ui/webui/inspect_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/inspect_ui_browsertest.cc
@@ -28,17 +28,18 @@ class InspectUITest : public WebUIBrowserTest {
public:
InspectUITest() {}
+ InspectUITest(const InspectUITest&) = delete;
+ InspectUITest& operator=(const InspectUITest&) = delete;
+
void SetUpOnMainThread() override {
WebUIBrowserTest::SetUpOnMainThread();
AddLibrary(base::FilePath(FILE_PATH_LITERAL("inspect_ui_test.js")));
}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(InspectUITest);
};
IN_PROC_BROWSER_TEST_F(InspectUITest, InspectUIPage) {
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(),
+ GURL(chrome::kChromeUIInspectURL)));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
"testTargetListed", base::Value("#pages"),
base::Value("populateWebContentsTargets"),
@@ -48,7 +49,7 @@ IN_PROC_BROWSER_TEST_F(InspectUITest, InspectUIPage) {
IN_PROC_BROWSER_TEST_F(InspectUITest, SharedWorker) {
ASSERT_TRUE(embedded_test_server()->Start());
GURL url = embedded_test_server()->GetURL(kSharedWorkerTestPage);
- ui_test_utils::NavigateToURL(browser(), url);
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
ui_test_utils::NavigateToURLWithDisposition(
browser(), GURL(chrome::kChromeUIInspectURL),
@@ -75,7 +76,8 @@ IN_PROC_BROWSER_TEST_F(InspectUITest, DISABLED_AndroidTargets) {
StartMockAdbServer(FlushWithSize);
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(),
+ GURL(chrome::kChromeUIInspectURL)));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest("testAdbTargetsListed"));
@@ -84,8 +86,10 @@ IN_PROC_BROWSER_TEST_F(InspectUITest, DISABLED_AndroidTargets) {
IN_PROC_BROWSER_TEST_F(InspectUITest, ReloadCrash) {
ASSERT_TRUE(embedded_test_server()->Start());
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL));
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIInspectURL));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(),
+ GURL(chrome::kChromeUIInspectURL)));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(),
+ GURL(chrome::kChromeUIInspectURL)));
}
} // namespace
diff --git a/chromium/chrome/browser/ui/webui/internals/lens/lens_internals_ui_message_handler.cc b/chromium/chrome/browser/ui/webui/internals/lens/lens_internals_ui_message_handler.cc
index 59a64219218..afde44b89da 100644
--- a/chromium/chrome/browser/ui/webui/internals/lens/lens_internals_ui_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/internals/lens/lens_internals_ui_message_handler.cc
@@ -22,18 +22,18 @@ LensInternalsUIMessageHandler::LensInternalsUIMessageHandler(Profile* profile) {
LensInternalsUIMessageHandler::~LensInternalsUIMessageHandler() = default;
void LensInternalsUIMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"startDebugMode",
base::BindRepeating(&LensInternalsUIMessageHandler::HandleStartDebugMode,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"refreshDebugData",
base::BindRepeating(
&LensInternalsUIMessageHandler::HandleRefreshDebugData,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"stopDebugMode",
base::BindRepeating(&LensInternalsUIMessageHandler::HandleStopDebugMode,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/internals/notifications/DIR_METADATA b/chromium/chrome/browser/ui/webui/internals/notifications/DIR_METADATA
new file mode 100644
index 00000000000..2e4e8347699
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/internals/notifications/DIR_METADATA
@@ -0,0 +1 @@
+mixins: "//chrome/browser/notifications/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/internals/notifications/notifications_internals_ui_message_handler.cc b/chromium/chrome/browser/ui/webui/internals/notifications/notifications_internals_ui_message_handler.cc
index 9ce0a3bde56..fba36bf7eaf 100644
--- a/chromium/chrome/browser/ui/webui/internals/notifications/notifications_internals_ui_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/internals/notifications/notifications_internals_ui_message_handler.cc
@@ -27,7 +27,7 @@ NotificationsInternalsUIMessageHandler::
~NotificationsInternalsUIMessageHandler() = default;
void NotificationsInternalsUIMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"scheduleNotification",
base::BindRepeating(
&NotificationsInternalsUIMessageHandler::HandleScheduleNotification,
@@ -36,11 +36,10 @@ void NotificationsInternalsUIMessageHandler::RegisterMessages() {
void NotificationsInternalsUIMessageHandler::HandleScheduleNotification(
const base::ListValue* args) {
- CHECK_EQ(args->GetSize(), 3u);
+ CHECK_EQ(args->GetList().size(), 3u);
notifications::ScheduleParams schedule_params;
schedule_params.deliver_time_start = base::Time::Now();
- schedule_params.deliver_time_end =
- base::Time::Now() + base::TimeDelta::FromMinutes(5);
+ schedule_params.deliver_time_end = base::Time::Now() + base::Minutes(5);
notifications::NotificationData data;
// TOOD(hesen): Enable adding icons from notifications-internals HTML.
data.custom_data.emplace("url", args->GetList()[0].GetString());
diff --git a/chromium/chrome/browser/ui/webui/internals/query_tiles/DIR_METADATA b/chromium/chrome/browser/ui/webui/internals/query_tiles/DIR_METADATA
new file mode 100644
index 00000000000..98d4b501f70
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/internals/query_tiles/DIR_METADATA
@@ -0,0 +1 @@
+mixins: "//components/query_tiles/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/internals/query_tiles/query_tiles_internals_ui_message_handler.cc b/chromium/chrome/browser/ui/webui/internals/query_tiles/query_tiles_internals_ui_message_handler.cc
index 056ed9c832e..d9ea71af56e 100644
--- a/chromium/chrome/browser/ui/webui/internals/query_tiles/query_tiles_internals_ui_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/internals/query_tiles/query_tiles_internals_ui_message_handler.cc
@@ -27,28 +27,28 @@ QueryTilesInternalsUIMessageHandler::~QueryTilesInternalsUIMessageHandler() =
default;
void QueryTilesInternalsUIMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"startFetch", base::BindRepeating(
&QueryTilesInternalsUIMessageHandler::HandleStartFetch,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"purgeDb",
base::BindRepeating(&QueryTilesInternalsUIMessageHandler::HandlePurgeDb,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getServiceStatus",
base::BindRepeating(
&QueryTilesInternalsUIMessageHandler::HandleGetServiceStatus,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getTileData",
base::BindRepeating(
&QueryTilesInternalsUIMessageHandler::HandleGetTileData,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setServerUrl",
base::BindRepeating(
&QueryTilesInternalsUIMessageHandler::HandleSetServerUrl,
diff --git a/chromium/chrome/browser/ui/webui/internals/user_education/DIR_METADATA b/chromium/chrome/browser/ui/webui/internals/user_education/DIR_METADATA
new file mode 100644
index 00000000000..8a9dcf6424f
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/internals/user_education/DIR_METADATA
@@ -0,0 +1 @@
+mixins: "//chrome/browser/ui/user_education/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/internals/user_education/user_education_internals_page_handler_impl.cc b/chromium/chrome/browser/ui/webui/internals/user_education/user_education_internals_page_handler_impl.cc
index fc892728586..5128f69e115 100644
--- a/chromium/chrome/browser/ui/webui/internals/user_education/user_education_internals_page_handler_impl.cc
+++ b/chromium/chrome/browser/ui/webui/internals/user_education/user_education_internals_page_handler_impl.cc
@@ -4,36 +4,37 @@
#include "chrome/browser/ui/webui/internals/user_education/user_education_internals_page_handler_impl.h"
-#include "chrome/browser/ui/user_education/feature_tutorial_service.h"
-#include "chrome/browser/ui/user_education/feature_tutorial_service_factory.h"
-#include "chrome/browser/ui/user_education/feature_tutorials.h"
-#include "chrome/grit/dev_ui_browser_resources.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/user_education/tutorial/browser_tutorial_service_factory.h"
+#include "chrome/browser/ui/user_education/tutorial/tutorial_service_manager.h"
#include "ui/base/webui/resource_path.h"
UserEducationInternalsPageHandlerImpl::UserEducationInternalsPageHandlerImpl(
Profile* profile)
- : tutorial_service_(FeatureTutorialServiceFactory::GetForProfile(profile)) {
-}
+ : tutorial_service_(
+ TutorialServiceManager::GetInstance()->GetTutorialServiceForProfile(
+ profile)),
+ profile_(profile) {}
UserEducationInternalsPageHandlerImpl::
~UserEducationInternalsPageHandlerImpl() = default;
void UserEducationInternalsPageHandlerImpl::GetTutorials(
GetTutorialsCallback callback) {
- std::vector<base::StringPiece> id_pieces = GetAllFeatureTutorialStringIds();
-
- std::vector<std::string> ids;
- for (base::StringPiece piece : id_pieces)
- ids.emplace_back(piece.data(), piece.size());
+ std::vector<std::string> ids = tutorial_service_->GetTutorialIdentifiers();
- std::move(callback).Run(std::move(ids));
+ std::vector<std::string> tutorial_string_ids;
+ for (const auto& id : ids) {
+ tutorial_string_ids.emplace_back(std::string(id));
+ }
+ std::move(callback).Run(std::move(tutorial_string_ids));
}
void UserEducationInternalsPageHandlerImpl::StartTutorial(
const std::string& tutorial_id) {
- absl::optional<FeatureTutorial> tutorial =
- GetFeatureTutorialFromStringId(tutorial_id);
- if (!tutorial)
- return;
- tutorial_service_->StartTutorial(*tutorial);
+ ui::ElementContext context =
+ BrowserTutorialServiceFactory::GetDefaultElementContextForProfile(
+ profile_);
+
+ tutorial_service_->StartTutorial(tutorial_id, context);
}
diff --git a/chromium/chrome/browser/ui/webui/internals/user_education/user_education_internals_page_handler_impl.h b/chromium/chrome/browser/ui/webui/internals/user_education/user_education_internals_page_handler_impl.h
index dae079d9f76..314bc935527 100644
--- a/chromium/chrome/browser/ui/webui/internals/user_education/user_education_internals_page_handler_impl.h
+++ b/chromium/chrome/browser/ui/webui/internals/user_education/user_education_internals_page_handler_impl.h
@@ -6,11 +6,10 @@
#define CHROME_BROWSER_UI_WEBUI_INTERNALS_USER_EDUCATION_USER_EDUCATION_INTERNALS_PAGE_HANDLER_IMPL_H_
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/user_education/tutorial/tutorial_service.h"
#include "chrome/browser/ui/webui/internals/user_education/user_education_internals.mojom.h"
#include "content/public/browser/web_ui_data_source.h"
-class FeatureTutorialService;
-
class UserEducationInternalsPageHandlerImpl
: public mojom::user_education_internals::
UserEducationInternalsPageHandler {
@@ -28,7 +27,8 @@ class UserEducationInternalsPageHandlerImpl
void StartTutorial(const std::string& tutorial_id) override;
private:
- FeatureTutorialService* const tutorial_service_;
+ TutorialService* tutorial_service_;
+ Profile* profile_;
};
#endif // CHROME_BROWSER_UI_WEBUI_INTERNALS_USER_EDUCATION_USER_EDUCATION_INTERNALS_PAGE_HANDLER_IMPL_H_
diff --git a/chromium/chrome/browser/ui/webui/interstitials/DIR_METADATA b/chromium/chrome/browser/ui/webui/interstitials/DIR_METADATA
new file mode 100644
index 00000000000..f2acd851fe4
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/interstitials/DIR_METADATA
@@ -0,0 +1 @@
+mixins: "//chrome/browser/interstitials/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chromium/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
index 5805e0d8d47..d2142cc0619 100644
--- a/chromium/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
+++ b/chromium/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
@@ -41,6 +41,7 @@
#include "components/security_interstitials/core/ssl_error_options_mask.h"
#include "components/security_interstitials/core/ssl_error_ui.h"
#include "components/security_interstitials/core/unsafe_resource.h"
+#include "content/public/browser/global_routing_id.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/url_data_source.h"
@@ -83,9 +84,8 @@ scoped_refptr<net::X509Certificate> CreateFakeCert() {
std::string cert_der;
if (!net::x509_util::CreateKeyAndSelfSignedCert(
"CN=Error", static_cast<uint32_t>(g_serial_number.GetNext()),
- base::Time::Now() - base::TimeDelta::FromMinutes(5),
- base::Time::Now() + base::TimeDelta::FromMinutes(5), &unused_key,
- &cert_der)) {
+ base::Time::Now() - base::Minutes(5),
+ base::Time::Now() + base::Minutes(5), &unused_key, &cert_der)) {
return nullptr;
}
@@ -98,6 +98,10 @@ scoped_refptr<net::X509Certificate> CreateFakeCert() {
class InterstitialHTMLSource : public content::URLDataSource {
public:
InterstitialHTMLSource() = default;
+
+ InterstitialHTMLSource(const InterstitialHTMLSource&) = delete;
+ InterstitialHTMLSource& operator=(const InterstitialHTMLSource&) = delete;
+
~InterstitialHTMLSource() override = default;
// content::URLDataSource:
@@ -114,8 +118,6 @@ class InterstitialHTMLSource : public content::URLDataSource {
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
std::string GetSupervisedUserInterstitialHTML(const std::string& path);
#endif
-
- DISALLOW_COPY_AND_ASSIGN(InterstitialHTMLSource);
};
std::unique_ptr<SSLBlockingPage> CreateSslBlockingPage(
@@ -316,8 +318,6 @@ CreateSafeBrowsingBlockingPage(content::WebContents* web_contents) {
resource.is_subresource = request_url != main_frame_url;
resource.is_subframe = false;
resource.threat_type = threat_type;
- resource.web_contents_getter =
- security_interstitials::GetWebContentsGetter(primary_main_frame_id);
resource.render_process_id = primary_main_frame_id.child_id;
resource.render_frame_id = primary_main_frame_id.frame_routing_id;
resource.threat_source = g_browser_process->safe_browsing_service()
@@ -365,14 +365,15 @@ CreateSafeBrowsingQuietBlockingPage(content::WebContents* web_contents) {
is_giant_webview = true;
}
}
+ const content::GlobalRenderFrameHostId primary_main_frame_id =
+ web_contents->GetMainFrame()->GetGlobalId();
safe_browsing::SafeBrowsingBlockingPage::UnsafeResource resource;
resource.url = request_url;
resource.is_subresource = request_url != main_frame_url;
resource.is_subframe = false;
resource.threat_type = threat_type;
- resource.web_contents_getter = security_interstitials::GetWebContentsGetter(
- web_contents->GetMainFrame()->GetProcess()->GetID(),
- web_contents->GetMainFrame()->GetRoutingID());
+ resource.render_process_id = primary_main_frame_id.child_id;
+ resource.render_frame_id = primary_main_frame_id.frame_routing_id;
resource.threat_source = g_browser_process->safe_browsing_service()
->database_manager()
->GetThreatSource();
@@ -556,19 +557,6 @@ std::string InterstitialHTMLSource::GetSupervisedUserInterstitialHTML(
allow_access_requests = allow_access_requests_string == "1";
}
- bool is_child_account = false;
- std::string is_child_account_string;
- if (net::GetValueForKeyInQuery(url, "is_child_account",
- &is_child_account_string)) {
- is_child_account = is_child_account_string == "1";
- }
-
- bool is_deprecated = false;
- std::string is_deprecated_string;
- if (net::GetValueForKeyInQuery(url, "is_deprecated", &is_deprecated_string)) {
- is_deprecated = is_deprecated_string == "1" && !is_child_account;
- }
-
std::string custodian;
net::GetValueForKeyInQuery(url, "custodian", &custodian);
std::string second_custodian;
@@ -587,7 +575,7 @@ std::string InterstitialHTMLSource::GetSupervisedUserInterstitialHTML(
supervised_user_error_page::DEFAULT;
std::string reason_string;
if (net::GetValueForKeyInQuery(url, "reason", &reason_string)) {
- if (reason_string == "safe_sites" && is_child_account) {
+ if (reason_string == "safe_sites") {
reason = supervised_user_error_page::ASYNC_CHECKER;
} else if (reason_string == "manual") {
reason = supervised_user_error_page::MANUAL;
@@ -598,8 +586,8 @@ std::string InterstitialHTMLSource::GetSupervisedUserInterstitialHTML(
return supervised_user_error_page::BuildHtml(
allow_access_requests, profile_image_url, profile_image_url2, custodian,
- custodian_email, second_custodian, second_custodian_email,
- is_child_account, is_deprecated, reason,
- g_browser_process->GetApplicationLocale());
+ custodian_email, second_custodian, second_custodian_email, reason,
+ g_browser_process->GetApplicationLocale(), /*already_sent_request=*/false,
+ /*is_main_frame=*/true);
}
#endif
diff --git a/chromium/chrome/browser/ui/webui/interstitials/interstitial_ui.h b/chromium/chrome/browser/ui/webui/interstitials/interstitial_ui.h
index c020ae55db6..4817f4cc97a 100644
--- a/chromium/chrome/browser/ui/webui/interstitials/interstitial_ui.h
+++ b/chromium/chrome/browser/ui/webui/interstitials/interstitial_ui.h
@@ -14,10 +14,10 @@ class InterstitialUI : public content::WebUIController {
public:
explicit InterstitialUI(content::WebUI* web_ui);
- ~InterstitialUI() override;
+ InterstitialUI(const InterstitialUI&) = delete;
+ InterstitialUI& operator=(const InterstitialUI&) = delete;
- private:
- DISALLOW_COPY_AND_ASSIGN(InterstitialUI);
+ ~InterstitialUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_INTERSTITIALS_INTERSTITIAL_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/interstitials/interstitial_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/interstitials/interstitial_ui_browsertest.cc
index 8b5de78a39a..994d456c76e 100644
--- a/chromium/chrome/browser/ui/webui/interstitials/interstitial_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/interstitials/interstitial_ui_browsertest.cc
@@ -33,7 +33,7 @@ class InterstitialUITest : public InProcessBrowserTest {
void TestInterstitial(GURL url,
const std::string& page_title,
const std::u16string& body_text) {
- ui_test_utils::NavigateToURL(browser(), url);
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
EXPECT_EQ(
base::ASCIIToUTF16(page_title),
browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
@@ -201,8 +201,10 @@ IN_PROC_BROWSER_TEST_F(InterstitialUITest, LegacyTLSInterstitial) {
IN_PROC_BROWSER_TEST_F(InterstitialUITest, InterstitialBackButton) {
content::WebContents* web_contents =
browser()->tab_strip_model()->GetActiveWebContents();
- ui_test_utils::NavigateToURL(browser(), GURL("chrome://interstitials"));
- ui_test_utils::NavigateToURL(browser(), GURL("chrome://interstitials/ssl"));
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GURL("chrome://interstitials")));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(),
+ GURL("chrome://interstitials/ssl")));
content::TestNavigationObserver navigation_observer(web_contents);
chrome::GoBack(browser(), WindowOpenDisposition::CURRENT_TAB);
navigation_observer.Wait();
@@ -213,8 +215,8 @@ IN_PROC_BROWSER_TEST_F(InterstitialUITest, InterstitialBackButton) {
// Tests that view-source: works correctly on chrome://interstitials.
IN_PROC_BROWSER_TEST_F(InterstitialUITest, InterstitialViewSource) {
- ui_test_utils::NavigateToURL(browser(),
- GURL("view-source:chrome://interstitials/"));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(
+ browser(), GURL("view-source:chrome://interstitials/")));
int found;
std::u16string expected_title = u"<title>Interstitials</title>";
found = ui_test_utils::FindInPage(
@@ -238,8 +240,8 @@ IN_PROC_BROWSER_TEST_F(InterstitialUITest, InterstitialViewSource) {
IN_PROC_BROWSER_TEST_F(InterstitialUITest,
MAYBE_InterstitialWithPathViewSource) {
- ui_test_utils::NavigateToURL(browser(),
- GURL("view-source:chrome://interstitials/ssl"));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(
+ browser(), GURL("view-source:chrome://interstitials/ssl")));
int found;
std::u16string expected_title = u"<title>Privacy error</title";
found = ui_test_utils::FindInPage(
@@ -255,7 +257,8 @@ IN_PROC_BROWSER_TEST_F(InterstitialUITest,
// See https://crbug.com/611706 for details.
IN_PROC_BROWSER_TEST_F(InterstitialUITest, UseCorrectWebContents) {
int current_tab = browser()->tab_strip_model()->active_index();
- ui_test_utils::NavigateToURL(browser(), GURL("chrome://interstitials/ssl"));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(),
+ GURL("chrome://interstitials/ssl")));
// Duplicate the tab and close it.
chrome::DuplicateTab(browser());
EXPECT_NE(current_tab, browser()->tab_strip_model()->active_index());
diff --git a/chromium/chrome/browser/ui/webui/invalidations/invalidations_message_handler.cc b/chromium/chrome/browser/ui/webui/invalidations/invalidations_message_handler.cc
index 5b7b65716b1..923a8cbacb0 100644
--- a/chromium/chrome/browser/ui/webui/invalidations/invalidations_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/invalidations/invalidations_message_handler.cc
@@ -41,10 +41,10 @@ InvalidationsMessageHandler::~InvalidationsMessageHandler() {
}
void InvalidationsMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"doneLoading", base::BindRepeating(&InvalidationsMessageHandler::UIReady,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestDetailedStatus",
base::BindRepeating(
&InvalidationsMessageHandler::HandleRequestDetailedStatus,
@@ -90,7 +90,7 @@ void InvalidationsMessageHandler::OnRegistrationChange(
base::ListValue list_of_handlers;
for (auto it = registered_handlers.begin(); it != registered_handlers.end();
++it) {
- list_of_handlers.AppendString(*it);
+ list_of_handlers.Append(*it);
}
FireWebUIListener("handlers-updated", list_of_handlers);
}
diff --git a/chromium/chrome/browser/ui/webui/invalidations/invalidations_message_handler.h b/chromium/chrome/browser/ui/webui/invalidations/invalidations_message_handler.h
index 9847011878b..e9e0f75f2ff 100644
--- a/chromium/chrome/browser/ui/webui/invalidations/invalidations_message_handler.h
+++ b/chromium/chrome/browser/ui/webui/invalidations/invalidations_message_handler.h
@@ -25,6 +25,11 @@ class InvalidationsMessageHandler
public invalidation::InvalidationLoggerObserver {
public:
InvalidationsMessageHandler();
+
+ InvalidationsMessageHandler(const InvalidationsMessageHandler&) = delete;
+ InvalidationsMessageHandler& operator=(const InvalidationsMessageHandler&) =
+ delete;
+
~InvalidationsMessageHandler() override;
// Implementation of InvalidationLoggerObserver.
@@ -60,8 +65,6 @@ class InvalidationsMessageHandler
invalidation::InvalidationLogger* logger_;
base::WeakPtrFactory<InvalidationsMessageHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(InvalidationsMessageHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_INVALIDATIONS_INVALIDATIONS_MESSAGE_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/invalidations/invalidations_ui.h b/chromium/chrome/browser/ui/webui/invalidations/invalidations_ui.h
index 83176b47dd9..a0b34a68643 100644
--- a/chromium/chrome/browser/ui/webui/invalidations/invalidations_ui.h
+++ b/chromium/chrome/browser/ui/webui/invalidations/invalidations_ui.h
@@ -12,10 +12,11 @@
class InvalidationsUI : public content::WebUIController {
public:
explicit InvalidationsUI(content::WebUI* web_ui);
- ~InvalidationsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(InvalidationsUI);
+ InvalidationsUI(const InvalidationsUI&) = delete;
+ InvalidationsUI& operator=(const InvalidationsUI&) = delete;
+
+ ~InvalidationsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_INVALIDATIONS_INVALIDATIONS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/local_state/local_state_ui.cc b/chromium/chrome/browser/ui/webui/local_state/local_state_ui.cc
index 832d01420b4..51b08966b94 100644
--- a/chromium/chrome/browser/ui/webui/local_state/local_state_ui.cc
+++ b/chromium/chrome/browser/ui/webui/local_state/local_state_ui.cc
@@ -38,6 +38,10 @@ namespace {
class LocalStateUIHandler : public content::WebUIMessageHandler {
public:
LocalStateUIHandler();
+
+ LocalStateUIHandler(const LocalStateUIHandler&) = delete;
+ LocalStateUIHandler& operator=(const LocalStateUIHandler&) = delete;
+
~LocalStateUIHandler() override;
// content::WebUIMessageHandler:
@@ -47,8 +51,6 @@ class LocalStateUIHandler : public content::WebUIMessageHandler {
// Called from JS when the page has loaded. Serializes local state prefs and
// sends them to the page.
void HandleRequestJson(const base::ListValue* args);
-
- DISALLOW_COPY_AND_ASSIGN(LocalStateUIHandler);
};
LocalStateUIHandler::LocalStateUIHandler() {
@@ -58,7 +60,7 @@ LocalStateUIHandler::~LocalStateUIHandler() {
}
void LocalStateUIHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestJson",
base::BindRepeating(&LocalStateUIHandler::HandleRequestJson,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/local_state/local_state_ui.h b/chromium/chrome/browser/ui/webui/local_state/local_state_ui.h
index d7a2fb3debe..dbabd70ecd7 100644
--- a/chromium/chrome/browser/ui/webui/local_state/local_state_ui.h
+++ b/chromium/chrome/browser/ui/webui/local_state/local_state_ui.h
@@ -29,10 +29,11 @@ void FilterPrefs(const std::vector<std::string>& valid_prefixes,
class LocalStateUI : public content::WebUIController {
public:
explicit LocalStateUI(content::WebUI* web_ui);
- ~LocalStateUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(LocalStateUI);
+ LocalStateUI(const LocalStateUI&) = delete;
+ LocalStateUI& operator=(const LocalStateUI&) = delete;
+
+ ~LocalStateUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_LOCAL_STATE_LOCAL_STATE_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/log_web_ui_url_browsertest.cc b/chromium/chrome/browser/ui/webui/log_web_ui_url_browsertest.cc
index b86400fd2a8..66ed91d0f7a 100644
--- a/chromium/chrome/browser/ui/webui/log_web_ui_url_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/log_web_ui_url_browsertest.cc
@@ -34,13 +34,17 @@ namespace webui {
class LogWebUIUrlTest : public InProcessBrowserTest {
public:
LogWebUIUrlTest() {}
+
+ LogWebUIUrlTest(const LogWebUIUrlTest&) = delete;
+ LogWebUIUrlTest& operator=(const LogWebUIUrlTest&) = delete;
+
~LogWebUIUrlTest() override {}
void RunTest(int title_ids, const GURL& url) {
auto* tab = browser()->tab_strip_model()->GetActiveWebContents();
std::u16string title = l10n_util::GetStringUTF16(title_ids);
content::TitleWatcher title_watcher(tab, title);
- ui_test_utils::NavigateToURL(browser(), url);
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
ASSERT_EQ(title, title_watcher.WaitAndGetTitle());
uint32_t origin_hash = base::Hash(url.GetOrigin().spec());
EXPECT_THAT(histogram_tester_.GetAllSamples(webui::kWebUICreatedForUrl),
@@ -49,8 +53,6 @@ class LogWebUIUrlTest : public InProcessBrowserTest {
private:
base::HistogramTester histogram_tester_;
-
- DISALLOW_COPY_AND_ASSIGN(LogWebUIUrlTest);
};
IN_PROC_BROWSER_TEST_F(LogWebUIUrlTest, TestExtensionsPage) {
diff --git a/chromium/chrome/browser/ui/webui/managed_ui_handler.cc b/chromium/chrome/browser/ui/webui/managed_ui_handler.cc
index 0f997898926..57f13629e5a 100644
--- a/chromium/chrome/browser/ui/webui/managed_ui_handler.cc
+++ b/chromium/chrome/browser/ui/webui/managed_ui_handler.cc
@@ -53,7 +53,7 @@ ManagedUIHandler::~ManagedUIHandler() {
}
void ManagedUIHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"observeManagedUI",
base::BindRepeating(&ManagedUIHandler::HandleObserveManagedUI,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/managed_ui_handler.h b/chromium/chrome/browser/ui/webui/managed_ui_handler.h
index 99cba6368a8..f832a28c4b9 100644
--- a/chromium/chrome/browser/ui/webui/managed_ui_handler.h
+++ b/chromium/chrome/browser/ui/webui/managed_ui_handler.h
@@ -24,6 +24,10 @@ class ManagedUIHandler : public content::WebUIMessageHandler,
public policy::PolicyService::Observer {
public:
explicit ManagedUIHandler(Profile* profile);
+
+ ManagedUIHandler(const ManagedUIHandler&) = delete;
+ ManagedUIHandler& operator=(const ManagedUIHandler&) = delete;
+
~ManagedUIHandler() override;
// Sets load-time constants on |source|. This handles a flicker-free initial
@@ -78,8 +82,6 @@ class ManagedUIHandler : public content::WebUIMessageHandler,
// Name of the WebUIDataSource to update.
std::string source_name_;
-
- DISALLOW_COPY_AND_ASSIGN(ManagedUIHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_MANAGED_UI_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/management/management_a11y_browsertest.h b/chromium/chrome/browser/ui/webui/management/management_a11y_browsertest.h
index 3fb5f1da45e..9d9cebe84b6 100644
--- a/chromium/chrome/browser/ui/webui/management/management_a11y_browsertest.h
+++ b/chromium/chrome/browser/ui/webui/management/management_a11y_browsertest.h
@@ -7,6 +7,7 @@
#include "base/files/file_path.h"
#include "base/macros.h"
+#include "build/chromeos_buildflags.h"
#include "chrome/test/base/web_ui_browser_test.h"
#include "components/enterprise/browser/controller/fake_browser_dm_token_storage.h"
diff --git a/chromium/chrome/browser/ui/webui/management/management_ui.cc b/chromium/chrome/browser/ui/webui/management/management_ui.cc
index d901ca7baeb..489de5e9ed1 100644
--- a/chromium/chrome/browser/ui/webui/management/management_ui.cc
+++ b/chromium/chrome/browser/ui/webui/management/management_ui.cc
@@ -10,6 +10,7 @@
#include "build/chromeos_buildflags.h"
#include "chrome/browser/policy/profile_policy_connector.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/managed_ui.h"
#include "chrome/browser/ui/ui_features.h"
#include "chrome/browser/ui/webui/management/management_ui_handler.h"
#include "chrome/browser/ui/webui/webui_util.h"
@@ -27,6 +28,9 @@
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chrome/browser/ash/policy/core/browser_policy_connector_ash.h"
+#include "chrome/browser/ash/policy/dlp/dlp_reporting_manager.h"
+#include "chrome/browser/ash/policy/dlp/dlp_rules_manager.h"
+#include "chrome/browser/ash/policy/dlp/dlp_rules_manager_factory.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_process_platform_part.h"
#include "chrome/grit/chromium_strings.h"
@@ -59,17 +63,14 @@ content::WebUIDataSource* CreateManagementUIHtmlSource(Profile* profile) {
{kManagementLogUploadEnabled, IDS_MANAGEMENT_LOG_UPLOAD_ENABLED},
{kManagementReportActivityTimes,
IDS_MANAGEMENT_REPORT_DEVICE_ACTIVITY_TIMES},
- {kManagementReportHardwareStatus,
- IDS_MANAGEMENT_REPORT_DEVICE_HARDWARE_STATUS},
- {kManagementReportNetworkInterfaces,
- IDS_MANAGEMENT_REPORT_DEVICE_NETWORK_INTERFACES},
+ {kManagementReportNetworkData, IDS_MANAGEMENT_REPORT_DEVICE_NETWORK_DATA},
+ {kManagementReportHardwareData, IDS_MANAGEMENT_REPORT_DEVICE_HARDWARE_DATA},
{kManagementReportUsers, IDS_MANAGEMENT_REPORT_DEVICE_USERS},
{kManagementReportCrashReports, IDS_MANAGEMENT_REPORT_DEVICE_CRASH_REPORTS},
{kManagementReportAppInfoAndActivity,
IDS_MANAGEMENT_REPORT_APP_INFO_AND_ACTIVITY},
{kManagementPrinting, IDS_MANAGEMENT_REPORT_PRINTING},
{kManagementReportPrintJobs, IDS_MANAGEMENT_REPORT_PRINT_JOBS},
- {kManagementReportDlpEvents, IDS_MANAGEMENT_REPORT_DLP_EVENTS},
{kManagementReportLoginLogout, IDS_MANAGEMENT_REPORT_LOGIN_LOGOUT},
{kManagementCrostini, IDS_MANAGEMENT_CROSTINI},
{kManagementCrostiniContainerConfiguration,
@@ -140,6 +141,17 @@ content::WebUIDataSource* CreateManagementUIHtmlSource(Profile* profile) {
l10n_util::GetStringFUTF16(
IDS_MANAGEMENT_REPORT_PLUGIN_VM,
l10n_util::GetStringUTF16(IDS_PLUGIN_VM_APP_NAME)));
+ const size_t dlp_events_count =
+ policy::DlpRulesManagerFactory::GetForPrimaryProfile() &&
+ policy::DlpRulesManagerFactory::GetForPrimaryProfile()
+ ->GetReportingManager()
+ ? policy::DlpRulesManagerFactory::GetForPrimaryProfile()
+ ->GetReportingManager()
+ ->events_reported()
+ : 0;
+ source->AddString(kManagementReportDlpEvents,
+ l10n_util::GetPluralStringFUTF16(
+ IDS_MANAGEMENT_REPORT_DLP_EVENTS, dlp_events_count));
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
source->AddString("enableBrandingUpdateAttribute",
@@ -179,7 +191,8 @@ std::u16string ManagementUI::GetManagementPageSubtitle(Profile* profile) {
if (account_manager.empty())
account_manager = connector->GetRealm();
if (account_manager.empty())
- account_manager = ManagementUIHandler::GetAccountManager(profile);
+ account_manager =
+ chrome::GetAccountManagerIdentity(profile).value_or(std::string());
if (account_manager.empty()) {
return l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED,
l10n_util::GetStringUTF16(device_type));
@@ -188,7 +201,8 @@ std::u16string ManagementUI::GetManagementPageSubtitle(Profile* profile) {
l10n_util::GetStringUTF16(device_type),
base::UTF8ToUTF16(account_manager));
#else // BUILDFLAG(IS_CHROMEOS_ASH)
- const auto account_manager = ManagementUIHandler::GetAccountManager(profile);
+ const auto account_manager =
+ chrome::GetAccountManagerIdentity(profile).value_or(std::string());
const auto managed =
profile->GetProfilePolicyConnector()->IsManaged() ||
g_browser_process->browser_policy_connector()->HasMachineLevelPolicies();
diff --git a/chromium/chrome/browser/ui/webui/management/management_ui.h b/chromium/chrome/browser/ui/webui/management/management_ui.h
index 994a48475a6..6c5812ec652 100644
--- a/chromium/chrome/browser/ui/webui/management/management_ui.h
+++ b/chromium/chrome/browser/ui/webui/management/management_ui.h
@@ -8,7 +8,7 @@
#include "base/macros.h"
#include "chrome/browser/profiles/profile.h"
#include "content/public/browser/web_ui_controller.h"
-#include "ui/base/resource/scale_factor.h"
+#include "ui/base/resource/resource_scale_factor.h"
namespace base {
class RefCountedMemory;
@@ -22,15 +22,16 @@ class WebUI;
class ManagementUI : public content::WebUIController {
public:
explicit ManagementUI(content::WebUI* web_ui);
+
+ ManagementUI(const ManagementUI&) = delete;
+ ManagementUI& operator=(const ManagementUI&) = delete;
+
~ManagementUI() override;
static base::RefCountedMemory* GetFaviconResourceBytes(
ui::ResourceScaleFactor scale_factor);
static std::u16string GetManagementPageSubtitle(Profile* profile);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ManagementUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_MANAGEMENT_MANAGEMENT_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/management/management_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/management/management_ui_browsertest.cc
index 518bbc02c43..0e6e0416cbe 100644
--- a/chromium/chrome/browser/ui/webui/management/management_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/management/management_ui_browsertest.cc
@@ -25,6 +25,10 @@
class ManagementUITest : public InProcessBrowserTest {
public:
ManagementUITest() = default;
+
+ ManagementUITest(const ManagementUITest&) = delete;
+ ManagementUITest& operator=(const ManagementUITest&) = delete;
+
~ManagementUITest() override = default;
void SetUpInProcessBrowserTestFixture() override {
@@ -53,14 +57,13 @@ class ManagementUITest : public InProcessBrowserTest {
private:
testing::NiceMock<policy::MockConfigurationPolicyProvider> provider_;
policy::FakeBrowserDMTokenStorage fake_dm_token_storage_;
-
- DISALLOW_COPY_AND_ASSIGN(ManagementUITest);
};
#if !BUILDFLAG(IS_CHROMEOS_ASH)
IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) {
profile_policy_connector()->OverrideIsManagedForTesting(false);
- ui_test_utils::NavigateToURL(browser(), GURL("chrome://management"));
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GURL("chrome://management")));
// The browser is not managed.
const std::string javascript =
diff --git a/chromium/chrome/browser/ui/webui/management/management_ui_handler.cc b/chromium/chrome/browser/ui/webui/management/management_ui_handler.cc
index bc4ce20caec..261d83ef917 100644
--- a/chromium/chrome/browser/ui/webui/management/management_ui_handler.cc
+++ b/chromium/chrome/browser/ui/webui/management/management_ui_handler.cc
@@ -160,9 +160,8 @@ enum class ReportingType {
#if BUILDFLAG(IS_CHROMEOS_ASH)
const char kManagementLogUploadEnabled[] = "managementLogUploadEnabled";
const char kManagementReportActivityTimes[] = "managementReportActivityTimes";
-const char kManagementReportHardwareStatus[] = "managementReportHardwareStatus";
-const char kManagementReportNetworkInterfaces[] =
- "managementReportNetworkInterfaces";
+const char kManagementReportNetworkData[] = "managementReportNetworkData";
+const char kManagementReportHardwareData[] = "managementReportHardwareData";
const char kManagementReportUsers[] = "managementReportUsers";
const char kManagementReportCrashReports[] = "managementReportCrashReports";
const char kManagementReportAppInfoAndActivity[] =
@@ -344,14 +343,12 @@ void AddThreatProtectionPermission(const char* title,
info->Append(std::move(value));
}
-} // namespace
-
-std::string ManagementUIHandler::GetAccountManager(Profile* profile) {
- absl::optional<std::string> account_manager =
- chrome::GetAccountManagerIdentity(profile);
- return account_manager ? *account_manager : std::string();
+std::string GetAccountManager(Profile* profile) {
+ return chrome::GetAccountManagerIdentity(profile).value_or(std::string());
}
+} // namespace
+
ManagementUIHandler::ManagementUIHandler() {
reporting_extension_ids_ = {kOnPremReportingExtensionStableId,
kOnPremReportingExtensionBetaId};
@@ -382,38 +379,38 @@ void ManagementUIHandler::InitializeInternal(content::WebUI* web_ui,
}
void ManagementUIHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getContextualManagedData",
base::BindRepeating(&ManagementUIHandler::HandleGetContextualManagedData,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getExtensions",
base::BindRepeating(&ManagementUIHandler::HandleGetExtensions,
base::Unretained(this)));
#if BUILDFLAG(IS_CHROMEOS_ASH)
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getLocalTrustRootsInfo",
base::BindRepeating(&ManagementUIHandler::HandleGetLocalTrustRootsInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getDeviceReportingInfo",
base::BindRepeating(&ManagementUIHandler::HandleGetDeviceReportingInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getPluginVmDataCollectionStatus",
base::BindRepeating(
&ManagementUIHandler::HandleGetPluginVmDataCollectionStatus,
base::Unretained(this)));
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getThreatProtectionInfo",
base::BindRepeating(&ManagementUIHandler::HandleGetThreatProtectionInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getManagedWebsites",
base::BindRepeating(&ManagementUIHandler::HandleGetManagedWebsites,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initBrowserReportingInfo",
base::BindRepeating(&ManagementUIHandler::HandleInitBrowserReportingInfo,
base::Unretained(this)));
@@ -549,29 +546,28 @@ void ManagementUIHandler::AddDeviceReportingInfo(
return;
// Elements appear on the page in the order they are added.
- if (collector->ShouldReportActivityTimes()) {
+ if (collector->IsReportingActivityTimes()) {
AddDeviceReportingElement(report_sources, kManagementReportActivityTimes,
DeviceReportingType::kDeviceActivity);
} else {
- if (collector->ShouldReportUsers()) {
+ if (collector->IsReportingUsers()) {
AddDeviceReportingElement(report_sources, kManagementReportUsers,
DeviceReportingType::kSupervisedUser);
}
}
- if (collector->ShouldReportHardwareStatus()) {
- AddDeviceReportingElement(report_sources, kManagementReportHardwareStatus,
- DeviceReportingType::kDeviceStatistics);
- }
- if (collector->ShouldReportNetworkInterfaces()) {
- AddDeviceReportingElement(report_sources,
- kManagementReportNetworkInterfaces,
+ if (collector->IsReportingNetworkData()) {
+ AddDeviceReportingElement(report_sources, kManagementReportNetworkData,
DeviceReportingType::kDevice);
}
- if (collector->ShouldReportCrashReportInfo()) {
+ if (collector->IsReportingHardwareData()) {
+ AddDeviceReportingElement(report_sources, kManagementReportHardwareData,
+ DeviceReportingType::kDeviceStatistics);
+ }
+ if (collector->IsReportingCrashReportInfo()) {
AddDeviceReportingElement(report_sources, kManagementReportCrashReports,
DeviceReportingType::kCrashReport);
}
- if (collector->ShouldReportAppInfoAndActivity()) {
+ if (collector->IsReportingAppInfoAndActivity()) {
AddDeviceReportingElement(report_sources,
kManagementReportAppInfoAndActivity,
DeviceReportingType::kAppInfoAndActivity);
@@ -815,13 +811,8 @@ base::Value ManagementUIHandler::GetThreatProtectionInfo(Profile* profile) {
kManagementOnPageVisitedVisibleData, &info);
}
-#if BUILDFLAG(IS_CHROMEOS_ASH)
- std::string enterprise_manager = GetDeviceManager();
- if (enterprise_manager.empty())
- enterprise_manager = GetAccountManager(profile);
-#else
- std::string enterprise_manager = connectors_service->GetManagementDomain();
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+ const std::string enterprise_manager =
+ connectors_service->GetManagementDomain();
base::Value result(base::Value::Type::DICTIONARY);
result.SetStringKey("description",
@@ -982,7 +973,7 @@ void ManagementUIHandler::HandleGetExtensions(const base::ListValue* args) {
#if BUILDFLAG(IS_CHROMEOS_ASH)
void ManagementUIHandler::HandleGetLocalTrustRootsInfo(
const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
base::Value trust_roots_configured(false);
AllowJavascript();
@@ -1021,7 +1012,7 @@ void ManagementUIHandler::HandleGetDeviceReportingInfo(
void ManagementUIHandler::HandleGetPluginVmDataCollectionStatus(
const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
base::Value plugin_vm_data_collection_enabled(
Profile::FromWebUI(web_ui())->GetPrefs()->GetBoolean(
plugin_vm::prefs::kPluginVmDataCollectionAllowed));
diff --git a/chromium/chrome/browser/ui/webui/management/management_ui_handler.h b/chromium/chrome/browser/ui/webui/management/management_ui_handler.h
index c61d7c36ba3..450824c33d7 100644
--- a/chromium/chrome/browser/ui/webui/management/management_ui_handler.h
+++ b/chromium/chrome/browser/ui/webui/management/management_ui_handler.h
@@ -29,8 +29,8 @@
// load time data.
extern const char kManagementLogUploadEnabled[];
extern const char kManagementReportActivityTimes[];
-extern const char kManagementReportHardwareStatus[];
-extern const char kManagementReportNetworkInterfaces[];
+extern const char kManagementReportNetworkData[];
+extern const char kManagementReportHardwareData[];
extern const char kManagementReportUsers[];
extern const char kManagementReportCrashReports[];
extern const char kManagementReportAppInfoAndActivity[];
@@ -111,6 +111,10 @@ class ManagementUIHandler : public content::WebUIMessageHandler,
public BitmapFetcherDelegate {
public:
ManagementUIHandler();
+
+ ManagementUIHandler(const ManagementUIHandler&) = delete;
+ ManagementUIHandler& operator=(const ManagementUIHandler&) = delete;
+
~ManagementUIHandler() override;
static void Initialize(content::WebUI* web_ui,
@@ -122,15 +126,6 @@ class ManagementUIHandler : public content::WebUIMessageHandler,
void SetAccountManagedForTesting(bool managed) { account_managed_ = managed; }
void SetDeviceManagedForTesting(bool managed) { device_managed_ = managed; }
- // This returns the entity that manages this |profile|. For standard dasher
- // domains, this will be a domain name (ie foo.com). For FlexOrgs, this will
- // be the email address of the admin of the FlexOrg (ie user@foo.com). If
- // DMServer does not provide this information, this method defaults to
- // |GetAccountDomain|. If unmanaged, an empty string is returned.
- // TODO(crbug.com/1188594): Remove this function and replace all call sites
- // with chrome::GetAccountManagerIdentity().
- static std::string GetAccountManager(Profile* profile);
-
void OnJavascriptAllowed() override;
void OnJavascriptDisallowed() override;
@@ -225,8 +220,6 @@ class ManagementUIHandler : public content::WebUIMessageHandler,
GURL logo_url_;
std::string fetched_image_;
std::unique_ptr<BitmapFetcher> icon_fetcher_;
-
- DISALLOW_COPY_AND_ASSIGN(ManagementUIHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_MANAGEMENT_MANAGEMENT_UI_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc b/chromium/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc
index 8f9e8b16bb5..4ff28c39643 100644
--- a/chromium/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc
@@ -116,14 +116,12 @@ struct ContextualManagementSourceUpdate {
bool managed;
};
+#if BUILDFLAG(IS_CHROMEOS_ASH)
namespace {
-const char kDomain[] = "domain.com";
const char kUser[] = "user@domain.com";
-const char kManager[] = "manager@domain.com";
-#if BUILDFLAG(IS_CHROMEOS_ASH)
const char kGaiaId[] = "gaia_id";
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
} // namespace
+#endif // BUILDFLAG(IS_CHROMEOS_ASH)
#if BUILDFLAG(IS_CHROMEOS_ASH)
// This class is just to mock the behaviour of the few flags we need for
@@ -134,29 +132,31 @@ class TestDeviceStatusCollector : public policy::DeviceStatusCollector {
TestDeviceStatusCollector(PrefService* local_state,
bool report_activity_times,
bool report_nics,
+ bool report_hardware_data,
bool report_users,
- bool report_hw_status,
bool report_crash_info,
bool report_app_info_and_activity)
: policy::DeviceStatusCollector(local_state, nullptr),
report_activity_times_(report_activity_times),
report_nics_(report_nics),
+ report_hardware_data_(report_hardware_data),
report_users_(report_users),
- report_hw_status_(report_hw_status),
report_crash_info_(report_crash_info),
report_app_info_and_activity_(report_app_info_and_activity) {}
~TestDeviceStatusCollector() override = default;
- bool ShouldReportActivityTimes() const override {
+ bool IsReportingActivityTimes() const override {
return report_activity_times_;
}
- bool ShouldReportNetworkInterfaces() const override { return report_nics_; }
- bool ShouldReportUsers() const override { return report_users_; }
- bool ShouldReportHardwareStatus() const override { return report_hw_status_; }
- bool ShouldReportCrashReportInfo() const override {
+ bool IsReportingNetworkData() const override { return report_nics_; }
+ bool IsReportingHardwareData() const override {
+ return report_hardware_data_;
+ }
+ bool IsReportingUsers() const override { return report_users_; }
+ bool IsReportingCrashReportInfo() const override {
return report_crash_info_;
}
- bool ShouldReportAppInfoAndActivity() const override {
+ bool IsReportingAppInfoAndActivity() const override {
return report_app_info_and_activity_;
}
@@ -168,8 +168,8 @@ class TestDeviceStatusCollector : public policy::DeviceStatusCollector {
private:
bool report_activity_times_;
bool report_nics_;
+ bool report_hardware_data_;
bool report_users_;
- bool report_hw_status_;
bool report_crash_info_;
bool report_app_info_and_activity_;
};
@@ -356,8 +356,8 @@ class ManagementUIHandlerTests : public TestingBaseClass {
struct TestConfig {
bool report_activity_times;
bool report_nics;
+ bool report_hardware_data;
bool report_users;
- bool report_hw_status;
bool report_crash_info;
bool report_app_info_and_activity;
bool report_dlp_events;
@@ -378,8 +378,8 @@ class ManagementUIHandlerTests : public TestingBaseClass {
void ResetTestConfig(bool default_value) {
setup_config_.report_activity_times = default_value;
setup_config_.report_nics = default_value;
+ setup_config_.report_hardware_data = default_value;
setup_config_.report_users = default_value;
- setup_config_.report_hw_status = default_value;
setup_config_.report_crash_info = default_value;
setup_config_.report_app_info_and_activity = default_value;
setup_config_.report_dlp_events = default_value;
@@ -442,8 +442,8 @@ class ManagementUIHandlerTests : public TestingBaseClass {
const TestDeviceStatusCollector* status_collector =
new TestDeviceStatusCollector(
&local_state_, GetTestConfig().report_activity_times,
- GetTestConfig().report_nics, GetTestConfig().report_users,
- GetTestConfig().report_hw_status, GetTestConfig().report_crash_info,
+ GetTestConfig().report_nics, GetTestConfig().report_hardware_data,
+ GetTestConfig().report_users, GetTestConfig().report_crash_info,
GetTestConfig().report_app_info_and_activity);
settings_.device_settings()->SetTrustedStatus(
chromeos::CrosSettingsProvider::TRUSTED);
@@ -556,7 +556,7 @@ class ManagementUIHandlerTests : public TestingBaseClass {
managed_user.get(), std::move(store), std::move(data_manager),
base::FilePath() /* component_policy_cache_path */,
policy::UserCloudPolicyManagerAsh::PolicyEnforcement::kPolicyRequired,
- base::TimeDelta::FromMinutes(1) /* policy_refresh_timeout */,
+ base::Minutes(1) /* policy_refresh_timeout */,
base::BindOnce(&ManagementUIHandlerTests::OnFatalError,
base::Unretained(this)),
account_id, task_runner_);
@@ -1020,8 +1020,8 @@ TEST_F(ManagementUIHandlerTests, AllEnabledDeviceReportingInfo) {
const base::Value info = SetUpForReportingInfo();
const std::map<std::string, std::string> expected_elements = {
{kManagementReportActivityTimes, "device activity"},
- {kManagementReportHardwareStatus, "device statistics"},
- {kManagementReportNetworkInterfaces, "device"},
+ {kManagementReportNetworkData, "device"},
+ {kManagementReportHardwareData, "device statistics"},
{kManagementReportCrashReports, "crash report"},
{kManagementReportAppInfoAndActivity, "app info and activity"},
{kManagementLogUploadEnabled, "logs"},
@@ -1044,8 +1044,8 @@ TEST_F(ManagementUIHandlerTests,
const base::Value info = SetUpForReportingInfo();
const std::map<std::string, std::string> expected_elements = {
{kManagementReportActivityTimes, "device activity"},
- {kManagementReportHardwareStatus, "device statistics"},
- {kManagementReportNetworkInterfaces, "device"},
+ {kManagementReportNetworkData, "device"},
+ {kManagementReportHardwareData, "device statistics"},
{kManagementReportCrashReports, "crash report"},
{kManagementReportAppInfoAndActivity, "app info and activity"},
{kManagementLogUploadEnabled, "logs"},
@@ -1383,46 +1383,3 @@ TEST_F(ManagementUIHandlerTests, ThreatReportingInfo) {
EXPECT_EQ(expected_info, *threat_protection_info->FindListKey("info"));
}
-
-TEST_F(ManagementUIHandlerTests, GetAccountManager) {
- TestingProfile::Builder builder_managed_user;
- builder_managed_user.SetProfileName(kUser);
- builder_managed_user.OverridePolicyConnectorIsManagedForTesting(true);
-
-#if BUILDFLAG(IS_CHROMEOS_ASH)
- TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr);
- std::unique_ptr<TestingProfileManager> profile_manager =
- std::make_unique<TestingProfileManager>(
- TestingBrowserProcess::GetGlobal());
- ASSERT_TRUE(profile_manager->SetUp());
- builder_managed_user.SetUserCloudPolicyManagerAsh(BuildCloudPolicyManager());
-#else
- builder_managed_user.SetUserCloudPolicyManager(BuildCloudPolicyManager());
-#endif
- auto managed_user = builder_managed_user.Build();
-
-#if BUILDFLAG(IS_CHROMEOS_ASH)
- policy::UserCloudPolicyManagerAsh* policy_manager =
- managed_user->GetUserCloudPolicyManagerAsh();
- policy::MockCloudPolicyStore* mock_store =
- static_cast<policy::MockCloudPolicyStore*>(
- policy_manager->core()->store());
-#else
- policy::UserCloudPolicyManager* policy_manager =
- managed_user->GetUserCloudPolicyManager();
- policy::MockUserCloudPolicyStore* mock_store =
- static_cast<policy::MockUserCloudPolicyStore*>(
- policy_manager->core()->store());
-#endif
-
- DCHECK(mock_store);
- mock_store->policy_ = std::make_unique<enterprise_management::PolicyData>();
-
- // If no managed_by, then just calculate the domain from the user.
- EXPECT_FALSE(mock_store->policy_->has_managed_by());
- EXPECT_EQ(kDomain, handler_.GetAccountManager(managed_user.get()));
-
- // If managed_by is set, then use that value.
- mock_store->policy_->set_managed_by(kManager);
- EXPECT_EQ(kManager, handler_.GetAccountManager(managed_user.get()));
-}
diff --git a/chromium/chrome/browser/ui/webui/media/media_engagement_ui.cc b/chromium/chrome/browser/ui/webui/media/media_engagement_ui.cc
index 5a0d1af56b6..dd66822f36f 100644
--- a/chromium/chrome/browser/ui/webui/media/media_engagement_ui.cc
+++ b/chromium/chrome/browser/ui/webui/media/media_engagement_ui.cc
@@ -62,6 +62,11 @@ class MediaEngagementScoreDetailsProviderImpl
service_ = MediaEngagementService::Get(profile_);
}
+ MediaEngagementScoreDetailsProviderImpl(
+ const MediaEngagementScoreDetailsProviderImpl&) = delete;
+ MediaEngagementScoreDetailsProviderImpl& operator=(
+ const MediaEngagementScoreDetailsProviderImpl&) = delete;
+
~MediaEngagementScoreDetailsProviderImpl() override {}
// media::mojom::MediaEngagementScoreDetailsProvider overrides:
@@ -133,8 +138,6 @@ class MediaEngagementScoreDetailsProviderImpl
MediaEngagementService* service_;
mojo::Receiver<media::mojom::MediaEngagementScoreDetailsProvider> receiver_;
-
- DISALLOW_COPY_AND_ASSIGN(MediaEngagementScoreDetailsProviderImpl);
};
} // namespace
diff --git a/chromium/chrome/browser/ui/webui/media/media_engagement_ui.h b/chromium/chrome/browser/ui/webui/media/media_engagement_ui.h
index f7824a6ffa2..09959ae2130 100644
--- a/chromium/chrome/browser/ui/webui/media/media_engagement_ui.h
+++ b/chromium/chrome/browser/ui/webui/media/media_engagement_ui.h
@@ -16,6 +16,10 @@
class MediaEngagementUI : public ui::MojoWebUIController {
public:
explicit MediaEngagementUI(content::WebUI* web_ui);
+
+ MediaEngagementUI(const MediaEngagementUI&) = delete;
+ MediaEngagementUI& operator=(const MediaEngagementUI&) = delete;
+
~MediaEngagementUI() override;
// Instantiates the implementor of the MediaEngagementScoreDetailsProvider
@@ -29,8 +33,6 @@ class MediaEngagementUI : public ui::MojoWebUIController {
ui_handler_;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(MediaEngagementUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_MEDIA_MEDIA_ENGAGEMENT_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/media/webrtc_logs_ui.cc b/chromium/chrome/browser/ui/webui/media/webrtc_logs_ui.cc
index cbf5451e66c..e7cade301fe 100644
--- a/chromium/chrome/browser/ui/webui/media/webrtc_logs_ui.cc
+++ b/chromium/chrome/browser/ui/webui/media/webrtc_logs_ui.cc
@@ -91,6 +91,10 @@ content::WebUIDataSource* CreateWebRtcLogsUIHTMLSource() {
class WebRtcLogsDOMHandler final : public WebUIMessageHandler {
public:
explicit WebRtcLogsDOMHandler(Profile* profile);
+
+ WebRtcLogsDOMHandler(const WebRtcLogsDOMHandler&) = delete;
+ WebRtcLogsDOMHandler& operator=(const WebRtcLogsDOMHandler&) = delete;
+
~WebRtcLogsDOMHandler() override;
// WebUIMessageHandler implementation.
@@ -159,8 +163,6 @@ class WebRtcLogsDOMHandler final : public WebUIMessageHandler {
// Factory for creating weak references to instances of this class.
base::WeakPtrFactory<WebRtcLogsDOMHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(WebRtcLogsDOMHandler);
};
WebRtcLogsDOMHandler::WebRtcLogsDOMHandler(Profile* profile)
@@ -184,7 +186,7 @@ WebRtcLogsDOMHandler::~WebRtcLogsDOMHandler() {
void WebRtcLogsDOMHandler::RegisterMessages() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestWebRtcLogsList",
base::BindRepeating(&WebRtcLogsDOMHandler::HandleRequestWebRtcLogs,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/media/webrtc_logs_ui.h b/chromium/chrome/browser/ui/webui/media/webrtc_logs_ui.h
index a7e55990c70..7f5282abaa2 100644
--- a/chromium/chrome/browser/ui/webui/media/webrtc_logs_ui.h
+++ b/chromium/chrome/browser/ui/webui/media/webrtc_logs_ui.h
@@ -14,8 +14,8 @@ class WebRtcLogsUI : public content::WebUIController {
public:
explicit WebRtcLogsUI(content::WebUI* web_ui);
- private:
- DISALLOW_COPY_AND_ASSIGN(WebRtcLogsUI);
+ WebRtcLogsUI(const WebRtcLogsUI&) = delete;
+ WebRtcLogsUI& operator=(const WebRtcLogsUI&) = delete;
};
#endif // CHROME_BROWSER_UI_WEBUI_MEDIA_WEBRTC_LOGS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/media_router/cast_feedback_ui.cc b/chromium/chrome/browser/ui/webui/media_router/cast_feedback_ui.cc
index 82e1e5ba77d..5c98fcf369d 100644
--- a/chromium/chrome/browser/ui/webui/media_router/cast_feedback_ui.cc
+++ b/chromium/chrome/browser/ui/webui/media_router/cast_feedback_ui.cc
@@ -172,7 +172,7 @@ CastFeedbackUI::CastFeedbackUI(content::WebUI* web_ui)
content::WebUIDataSource::Add(profile_, source);
- web_ui->RegisterMessageCallback(
+ web_ui->RegisterDeprecatedMessageCallback(
"close", base::BindRepeating(&CastFeedbackUI::OnCloseMessage,
base::Unretained(this)));
web_ui->AddMessageHandler(std::make_unique<MetricsHandler>());
diff --git a/chromium/chrome/browser/ui/webui/media_router/media_router_internals_ui.h b/chromium/chrome/browser/ui/webui/media_router/media_router_internals_ui.h
index 0fa42a31089..6569424cf4a 100644
--- a/chromium/chrome/browser/ui/webui/media_router/media_router_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/media_router/media_router_internals_ui.h
@@ -15,10 +15,11 @@ class MediaRouterInternalsUI : public content::WebUIController {
public:
// |web_ui| owns this object and is used to initialize the base class.
explicit MediaRouterInternalsUI(content::WebUI* web_ui);
- ~MediaRouterInternalsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(MediaRouterInternalsUI);
+ MediaRouterInternalsUI(const MediaRouterInternalsUI&) = delete;
+ MediaRouterInternalsUI& operator=(const MediaRouterInternalsUI&) = delete;
+
+ ~MediaRouterInternalsUI() override;
};
} // namespace media_router
diff --git a/chromium/chrome/browser/ui/webui/media_router/media_router_internals_webui_message_handler.cc b/chromium/chrome/browser/ui/webui/media_router/media_router_internals_webui_message_handler.cc
index b6c7cb39ee1..dc24f8dd4fa 100644
--- a/chromium/chrome/browser/ui/webui/media_router/media_router_internals_webui_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/media_router/media_router_internals_webui_message_handler.cc
@@ -36,16 +36,16 @@ MediaRouterInternalsWebUIMessageHandler::
~MediaRouterInternalsWebUIMessageHandler() = default;
void MediaRouterInternalsWebUIMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getState", base::BindRepeating(
&MediaRouterInternalsWebUIMessageHandler::HandleGetState,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getProviderState",
base::BindRepeating(
&MediaRouterInternalsWebUIMessageHandler::HandleGetProviderState,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getLogs", base::BindRepeating(
&MediaRouterInternalsWebUIMessageHandler::HandleGetLogs,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/memory_internals_ui.cc b/chromium/chrome/browser/ui/webui/memory_internals_ui.cc
index 0477bdd6d9b..bfb0949f014 100644
--- a/chromium/chrome/browser/ui/webui/memory_internals_ui.cc
+++ b/chromium/chrome/browser/ui/webui/memory_internals_ui.cc
@@ -36,7 +36,6 @@
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_data_source.h"
#include "content/public/browser/web_ui_message_handler.h"
-#include "content/public/common/content_features.h"
#include "content/public/common/process_type.h"
#include "mojo/public/cpp/system/platform_handle.h"
#include "ui/shell_dialogs/select_file_dialog.h"
@@ -128,6 +127,11 @@ class MemoryInternalsDOMHandler : public content::WebUIMessageHandler,
ui::SelectFileDialog::Listener {
public:
explicit MemoryInternalsDOMHandler(content::WebUI* web_ui);
+
+ MemoryInternalsDOMHandler(const MemoryInternalsDOMHandler&) = delete;
+ MemoryInternalsDOMHandler& operator=(const MemoryInternalsDOMHandler&) =
+ delete;
+
~MemoryInternalsDOMHandler() override;
// WebUIMessageHandler implementation.
@@ -146,13 +150,6 @@ class MemoryInternalsDOMHandler : public content::WebUIMessageHandler,
void HandleStartProfiling(const base::ListValue* args);
private:
- // Hops to the IO thread to enumerate child processes, and back to the UI
- // thread to fill in the renderer processes.
- static void GetChildProcessesOnIOThread(
- base::WeakPtr<MemoryInternalsDOMHandler> dom_handler,
- const std::string& callback_id);
- void GetProfiledPids(const std::string& callback_id,
- std::vector<base::Value> children);
void ReturnProcessListOnUIThread(const std::string& callback_id,
std::vector<base::Value> children,
std::vector<base::ProcessId> profiled_pids);
@@ -169,8 +166,6 @@ class MemoryInternalsDOMHandler : public content::WebUIMessageHandler,
content::WebUI* web_ui_; // The WebUI that owns us.
base::WeakPtrFactory<MemoryInternalsDOMHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(MemoryInternalsDOMHandler);
};
MemoryInternalsDOMHandler::MemoryInternalsDOMHandler(content::WebUI* web_ui)
@@ -184,19 +179,19 @@ MemoryInternalsDOMHandler::~MemoryInternalsDOMHandler() {
void MemoryInternalsDOMHandler::RegisterMessages() {
// Unretained should be OK here since this class is bound to the lifetime of
// the WebUI.
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestProcessList",
base::BindRepeating(&MemoryInternalsDOMHandler::HandleRequestProcessList,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"saveDump",
base::BindRepeating(&MemoryInternalsDOMHandler::HandleSaveDump,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"reportProcess",
base::BindRepeating(&MemoryInternalsDOMHandler::HandleReportProcess,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"startProfiling",
base::BindRepeating(&MemoryInternalsDOMHandler::HandleStartProfiling,
base::Unretained(this)));
@@ -207,15 +202,34 @@ void MemoryInternalsDOMHandler::HandleRequestProcessList(
AllowJavascript();
std::string callback_id = args->GetList()[0].GetString();
- // This is called on the UI thread, the child process iterator must run on
- // the IO thread, while the render process iterator must run on the UI thread.
- auto task_runner = base::FeatureList::IsEnabled(features::kProcessHostOnUI)
- ? content::GetUIThreadTaskRunner({})
- : content::GetIOThreadTaskRunner({});
- task_runner->PostTask(
- FROM_HERE,
- base::BindOnce(&MemoryInternalsDOMHandler::GetChildProcessesOnIOThread,
- weak_factory_.GetWeakPtr(), std::move(callback_id)));
+ std::vector<base::Value> result;
+
+ // The only non-renderer child processes that currently support out-of-process
+ // heap profiling are GPU and UTILITY.
+ for (content::BrowserChildProcessHostIterator iter; !iter.Done(); ++iter) {
+ // Note that ChildProcessData.id is a child ID and not an OS PID.
+ const content::ChildProcessData& data = iter.GetData();
+
+ if (data.process_type == content::PROCESS_TYPE_GPU ||
+ data.process_type == content::PROCESS_TYPE_UTILITY) {
+ result.push_back(
+ MakeProcessInfo(data.GetProcess().Pid(), GetChildDescription(data)));
+ }
+ }
+
+ heap_profiling::Supervisor* supervisor =
+ heap_profiling::Supervisor::GetInstance();
+
+ // The supervisor hasn't started, so return an empty list.
+ if (!supervisor->HasStarted()) {
+ ReturnProcessListOnUIThread(callback_id, std::move(result),
+ std::vector<base::ProcessId>());
+ return;
+ }
+
+ supervisor->GetProfiledPids(base::BindOnce(
+ &MemoryInternalsDOMHandler::ReturnProcessListOnUIThread,
+ weak_factory_.GetWeakPtr(), callback_id, std::move(result)));
}
void MemoryInternalsDOMHandler::HandleSaveDump(const base::ListValue* args) {
@@ -278,51 +292,6 @@ void MemoryInternalsDOMHandler::HandleStartProfiling(
}
}
-void MemoryInternalsDOMHandler::GetChildProcessesOnIOThread(
- base::WeakPtr<MemoryInternalsDOMHandler> dom_handler,
- const std::string& callback_id) {
- std::vector<base::Value> result;
-
- // The only non-renderer child processes that currently support out-of-process
- // heap profiling are GPU and UTILITY.
- for (content::BrowserChildProcessHostIterator iter; !iter.Done(); ++iter) {
- // Note that ChildProcessData.id is a child ID and not an OS PID.
- const content::ChildProcessData& data = iter.GetData();
-
- if (data.process_type == content::PROCESS_TYPE_GPU ||
- data.process_type == content::PROCESS_TYPE_UTILITY) {
- result.push_back(
- MakeProcessInfo(data.GetProcess().Pid(), GetChildDescription(data)));
- }
- }
-
- content::GetUIThreadTaskRunner({})->PostTask(
- FROM_HERE, base::BindOnce(&MemoryInternalsDOMHandler::GetProfiledPids,
- dom_handler, callback_id, std::move(result)));
-}
-
-void MemoryInternalsDOMHandler::GetProfiledPids(
- const std::string& callback_id,
- std::vector<base::Value> children) {
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
- heap_profiling::Supervisor* supervisor =
- heap_profiling::Supervisor::GetInstance();
-
- // The supervisor hasn't started, so return an empty list.
- if (!supervisor->HasStarted()) {
- content::GetUIThreadTaskRunner({})->PostTask(
- FROM_HERE,
- base::BindOnce(&MemoryInternalsDOMHandler::ReturnProcessListOnUIThread,
- weak_factory_.GetWeakPtr(), callback_id,
- std::move(children), std::vector<base::ProcessId>()));
- return;
- }
-
- supervisor->GetProfiledPids(base::BindOnce(
- &MemoryInternalsDOMHandler::ReturnProcessListOnUIThread,
- weak_factory_.GetWeakPtr(), callback_id, std::move(children)));
-}
-
void MemoryInternalsDOMHandler::ReturnProcessListOnUIThread(
const std::string& callback_id,
std::vector<base::Value> children,
diff --git a/chromium/chrome/browser/ui/webui/memory_internals_ui.h b/chromium/chrome/browser/ui/webui/memory_internals_ui.h
index b83b79aee74..7a4793ad0fa 100644
--- a/chromium/chrome/browser/ui/webui/memory_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/memory_internals_ui.h
@@ -11,10 +11,11 @@
class MemoryInternalsUI : public content::WebUIController {
public:
explicit MemoryInternalsUI(content::WebUI* web_ui);
- ~MemoryInternalsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(MemoryInternalsUI);
+ MemoryInternalsUI(const MemoryInternalsUI&) = delete;
+ MemoryInternalsUI& operator=(const MemoryInternalsUI&) = delete;
+
+ ~MemoryInternalsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_MEMORY_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/metrics_handler.cc b/chromium/chrome/browser/ui/webui/metrics_handler.cc
index 046b4f927f5..3da83a0aaba 100644
--- a/chromium/chrome/browser/ui/webui/metrics_handler.cc
+++ b/chromium/chrome/browser/ui/webui/metrics_handler.cc
@@ -25,23 +25,23 @@ MetricsHandler::MetricsHandler() {}
MetricsHandler::~MetricsHandler() {}
void MetricsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"metricsHandler:recordAction",
base::BindRepeating(&MetricsHandler::HandleRecordAction,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"metricsHandler:recordInHistogram",
base::BindRepeating(&MetricsHandler::HandleRecordInHistogram,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"metricsHandler:recordBooleanHistogram",
base::BindRepeating(&MetricsHandler::HandleRecordBooleanHistogram,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"metricsHandler:recordTime",
base::BindRepeating(&MetricsHandler::HandleRecordTime,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"metricsHandler:recordMediumTime",
base::BindRepeating(&MetricsHandler::HandleRecordMediumTime,
base::Unretained(this)));
@@ -95,11 +95,10 @@ void MetricsHandler::HandleRecordTime(const base::ListValue* args) {
DCHECK_GE(value, 0);
- base::TimeDelta time_value = base::TimeDelta::FromMilliseconds(value);
+ base::TimeDelta time_value = base::Milliseconds(value);
base::HistogramBase* counter = base::Histogram::FactoryTimeGet(
- histogram_name, base::TimeDelta::FromMilliseconds(1),
- base::TimeDelta::FromSeconds(10), 50,
+ histogram_name, base::Milliseconds(1), base::Seconds(10), 50,
base::HistogramBase::kUmaTargetedHistogramFlag);
counter->AddTime(time_value);
}
@@ -110,6 +109,5 @@ void MetricsHandler::HandleRecordMediumTime(const base::ListValue* args) {
DCHECK_GE(value, 0);
- base::UmaHistogramMediumTimes(histogram_name,
- base::TimeDelta::FromMilliseconds(value));
+ base::UmaHistogramMediumTimes(histogram_name, base::Milliseconds(value));
}
diff --git a/chromium/chrome/browser/ui/webui/metrics_handler.h b/chromium/chrome/browser/ui/webui/metrics_handler.h
index dd2d16f6e9b..60ac6837f97 100644
--- a/chromium/chrome/browser/ui/webui/metrics_handler.h
+++ b/chromium/chrome/browser/ui/webui/metrics_handler.h
@@ -26,6 +26,10 @@ class ListValue;
class MetricsHandler : public content::WebUIMessageHandler {
public:
MetricsHandler();
+
+ MetricsHandler(const MetricsHandler&) = delete;
+ MetricsHandler& operator=(const MetricsHandler&) = delete;
+
~MetricsHandler() override;
// WebUIMessageHandler implementation.
@@ -58,9 +62,6 @@ class MetricsHandler : public content::WebUIMessageHandler {
// UmaHistogramMedium. Handles times up to 3 minutes. |args| contains the
// histogram name and a value in milliseconds.
void HandleRecordMediumTime(const base::ListValue* args);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MetricsHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_METRICS_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/nacl_ui.cc b/chromium/chrome/browser/ui/webui/nacl_ui.cc
index 2533dacb03d..3db10d61f13 100644
--- a/chromium/chrome/browser/ui/webui/nacl_ui.cc
+++ b/chromium/chrome/browser/ui/webui/nacl_ui.cc
@@ -83,6 +83,10 @@ content::WebUIDataSource* CreateNaClUIHTMLSource() {
class NaClDomHandler : public WebUIMessageHandler {
public:
NaClDomHandler();
+
+ NaClDomHandler(const NaClDomHandler&) = delete;
+ NaClDomHandler& operator=(const NaClDomHandler&) = delete;
+
~NaClDomHandler() override;
// WebUIMessageHandler implementation.
@@ -137,8 +141,6 @@ class NaClDomHandler : public WebUIMessageHandler {
std::string pnacl_version_string_;
base::WeakPtrFactory<NaClDomHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(NaClDomHandler);
};
NaClDomHandler::NaClDomHandler()
@@ -150,7 +152,7 @@ NaClDomHandler::NaClDomHandler()
NaClDomHandler::~NaClDomHandler() = default;
void NaClDomHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestNaClInfo",
base::BindRepeating(&NaClDomHandler::HandleRequestNaClInfo,
base::Unretained(this)));
@@ -295,7 +297,7 @@ void NaClDomHandler::AddNaClInfo(base::ListValue* list) {
void NaClDomHandler::HandleRequestNaClInfo(const base::ListValue* args) {
CHECK(callback_id_.empty());
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
callback_id_ = args->GetList()[0].GetString();
if (!has_plugin_info_) {
diff --git a/chromium/chrome/browser/ui/webui/nacl_ui.h b/chromium/chrome/browser/ui/webui/nacl_ui.h
index 472b68c36bf..4bb3460065c 100644
--- a/chromium/chrome/browser/ui/webui/nacl_ui.h
+++ b/chromium/chrome/browser/ui/webui/nacl_ui.h
@@ -13,8 +13,8 @@ class NaClUI : public content::WebUIController {
public:
explicit NaClUI(content::WebUI* web_ui);
- private:
- DISALLOW_COPY_AND_ASSIGN(NaClUI);
+ NaClUI(const NaClUI&) = delete;
+ NaClUI& operator=(const NaClUI&) = delete;
};
#endif // CHROME_BROWSER_UI_WEBUI_NACL_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_contact_handler.cc b/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_contact_handler.cc
index ce7df47dbab..5b2e6bcd1c5 100644
--- a/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_contact_handler.cc
+++ b/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_contact_handler.cc
@@ -89,11 +89,11 @@ NearbyInternalsContactHandler::NearbyInternalsContactHandler(
NearbyInternalsContactHandler::~NearbyInternalsContactHandler() = default;
void NearbyInternalsContactHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializeContacts",
base::BindRepeating(&NearbyInternalsContactHandler::InitializeContents,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"downloadContacts",
base::BindRepeating(
&NearbyInternalsContactHandler::HandleDownloadContacts,
diff --git a/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_http_handler.cc b/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_http_handler.cc
index 83260cefe88..e60bc7c1987 100644
--- a/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_http_handler.cc
+++ b/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_http_handler.cc
@@ -74,19 +74,19 @@ NearbyInternalsHttpHandler::NearbyInternalsHttpHandler(
NearbyInternalsHttpHandler::~NearbyInternalsHttpHandler() = default;
void NearbyInternalsHttpHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializeHttp",
base::BindRepeating(&NearbyInternalsHttpHandler::InitializeContents,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"updateDevice",
base::BindRepeating(&NearbyInternalsHttpHandler::UpdateDevice,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"listContactPeople",
base::BindRepeating(&NearbyInternalsHttpHandler::ListContactPeople,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"listPublicCertificates",
base::BindRepeating(&NearbyInternalsHttpHandler::ListPublicCertificates,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_logs_handler.cc b/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_logs_handler.cc
index e72da2fb837..807d5b3978c 100644
--- a/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_logs_handler.cc
+++ b/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_logs_handler.cc
@@ -36,7 +36,7 @@ NearbyInternalsLogsHandler::NearbyInternalsLogsHandler() {}
NearbyInternalsLogsHandler::~NearbyInternalsLogsHandler() = default;
void NearbyInternalsLogsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getLogMessages",
base::BindRepeating(&NearbyInternalsLogsHandler::HandleGetLogMessages,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_prefs_handler.cc b/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_prefs_handler.cc
index 23e35bbaae1..2df1f31d6fe 100644
--- a/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_prefs_handler.cc
+++ b/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_prefs_handler.cc
@@ -23,7 +23,7 @@ NearbyInternalsPrefsHandler::NearbyInternalsPrefsHandler(
NearbyInternalsPrefsHandler::~NearbyInternalsPrefsHandler() = default;
void NearbyInternalsPrefsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"clearNearbyPrefs",
base::BindRepeating(&NearbyInternalsPrefsHandler::HandleClearNearbyPrefs,
base::Unretained(this)));
@@ -35,6 +35,10 @@ void NearbyInternalsPrefsHandler::OnJavascriptDisallowed() {}
void NearbyInternalsPrefsHandler::HandleClearNearbyPrefs(
const base::ListValue* args) {
+ // Reset onboarding otherwise turning off Nearby also sets Fast Initiation
+ // pref.
+ pref_service_->SetBoolean(prefs::kNearbySharingOnboardingCompletePrefName,
+ false);
// Turn Nearby feature off.
pref_service_->SetBoolean(prefs::kNearbySharingEnabledPrefName, false);
diff --git a/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_ui_trigger_handler.cc b/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_ui_trigger_handler.cc
index 6fb03c7881d..8c91b689439 100644
--- a/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_ui_trigger_handler.cc
+++ b/chromium/chrome/browser/ui/webui/nearby_internals/nearby_internals_ui_trigger_handler.cc
@@ -243,57 +243,57 @@ NearbyInternalsUiTriggerHandler::NearbyInternalsUiTriggerHandler(
NearbyInternalsUiTriggerHandler::~NearbyInternalsUiTriggerHandler() = default;
void NearbyInternalsUiTriggerHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializeUiTrigger",
base::BindRepeating(&NearbyInternalsUiTriggerHandler::InitializeContents,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"sendText",
base::BindRepeating(&NearbyInternalsUiTriggerHandler::SendText,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"accept", base::BindRepeating(&NearbyInternalsUiTriggerHandler::Accept,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"reject", base::BindRepeating(&NearbyInternalsUiTriggerHandler::Reject,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"cancel", base::BindRepeating(&NearbyInternalsUiTriggerHandler::Cancel,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"open", base::BindRepeating(&NearbyInternalsUiTriggerHandler::Open,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"registerSendSurfaceForeground",
base::BindRepeating(
&NearbyInternalsUiTriggerHandler::RegisterSendSurfaceForeground,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"registerSendSurfaceBackground",
base::BindRepeating(
&NearbyInternalsUiTriggerHandler::RegisterSendSurfaceBackground,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"unregisterSendSurface",
base::BindRepeating(
&NearbyInternalsUiTriggerHandler::UnregisterSendSurface,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"registerReceiveSurfaceForeground",
base::BindRepeating(
&NearbyInternalsUiTriggerHandler::RegisterReceiveSurfaceForeground,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"registerReceiveSurfaceBackground",
base::BindRepeating(
&NearbyInternalsUiTriggerHandler::RegisterReceiveSurfaceBackground,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"unregisterReceiveSurface",
base::BindRepeating(
&NearbyInternalsUiTriggerHandler::UnregisterReceiveSurface,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getStates",
base::BindRepeating(&NearbyInternalsUiTriggerHandler::GetState,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/nearby_internals/quick_pair/quick_pair_handler.cc b/chromium/chrome/browser/ui/webui/nearby_internals/quick_pair/quick_pair_handler.cc
index 780ee496ecc..083428b89e9 100644
--- a/chromium/chrome/browser/ui/webui/nearby_internals/quick_pair/quick_pair_handler.cc
+++ b/chromium/chrome/browser/ui/webui/nearby_internals/quick_pair/quick_pair_handler.cc
@@ -48,19 +48,19 @@ QuickPairHandler::QuickPairHandler()
QuickPairHandler::~QuickPairHandler() = default;
void QuickPairHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getQuickPairLogMessages",
base::BindRepeating(&QuickPairHandler::HandleGetLogMessages,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"notifyFastPairError",
base::BindRepeating(&QuickPairHandler::NotifyFastPairError,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"notifyFastPairDiscovery",
base::BindRepeating(&QuickPairHandler::NotifyFastPairDiscovery,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"notifyFastPairPairing",
base::BindRepeating(&QuickPairHandler::NotifyFastPairPairing,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.cc b/chromium/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.cc
index b4bde0d80da..04381712024 100644
--- a/chromium/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.cc
+++ b/chromium/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.cc
@@ -38,6 +38,16 @@
namespace nearby_share {
+// Keep in sync with //chrome/browser/resources/nearby_share/shared/types.js
+enum class CloseReason {
+ kUnknown = 0,
+ kTransferStarted = 1,
+ kTransferSucceeded = 2,
+ kCancelled = 3,
+ kRejected = 4,
+ kMax = kRejected
+};
+
NearbyShareDialogUI::NearbyShareDialogUI(content::WebUI* web_ui)
: ui::MojoWebUIController(web_ui, /*enable_chrome_send=*/true) {
Profile* profile = Profile::FromWebUI(web_ui);
@@ -69,7 +79,7 @@ NearbyShareDialogUI::NearbyShareDialogUI(content::WebUI* web_ui)
html_source->UseStringsJs();
// Register callback to handle "cancel-button-event" from nearby_*.html files.
- web_ui->RegisterMessageCallback(
+ web_ui->RegisterDeprecatedMessageCallback(
"close", base::BindRepeating(&NearbyShareDialogUI::HandleClose,
base::Unretained(this)));
@@ -119,13 +129,33 @@ void NearbyShareDialogUI::BindInterface(
}
void NearbyShareDialogUI::HandleClose(const base::ListValue* args) {
- if (sharesheet_controller_) {
- sharesheet_controller_->CloseBubble(sharesheet::SharesheetResult::kCancel);
-
- // We need to clear out the controller here to protect against calling
- // CloseBubble() more than once, which will cause a crash.
- sharesheet_controller_ = nullptr;
+ if (!sharesheet_controller_)
+ return;
+
+ base::Value::ConstListView args_list = args->GetList();
+ CHECK_EQ(1u, args_list.size());
+ CHECK_GE(args_list[0].GetInt(), 0u);
+ CHECK_LE(args_list[0].GetInt(), static_cast<int>(CloseReason::kMax));
+ CloseReason reason = static_cast<CloseReason>(args_list[0].GetInt());
+
+ sharesheet::SharesheetResult sharesheet_result;
+ switch (reason) {
+ case CloseReason::kTransferStarted:
+ case CloseReason::kTransferSucceeded:
+ sharesheet_result = sharesheet::SharesheetResult::kSuccess;
+ break;
+ case CloseReason::kUnknown:
+ case CloseReason::kCancelled:
+ case CloseReason::kRejected:
+ sharesheet_result = sharesheet::SharesheetResult::kCancel;
+ break;
}
+
+ sharesheet_controller_->CloseBubble(sharesheet_result);
+
+ // We need to clear out the controller here to protect against calling
+ // CloseBubble() more than once, which will cause a crash.
+ sharesheet_controller_ = nullptr;
}
void NearbyShareDialogUI::SetAttachmentFromQueryParameter(const GURL& url) {
diff --git a/chromium/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui_browsertest.cc
index c0b31389c27..9dd34b52331 100644
--- a/chromium/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui_browsertest.cc
@@ -2,9 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/strings/stringprintf.h"
#include "base/test/scoped_feature_list.h"
#include "chrome/browser/nearby_sharing/common/nearby_share_features.h"
#include "chrome/browser/sharesheet/sharesheet_controller.h"
+#include "chrome/browser/sharesheet/sharesheet_types.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/webui/nearby_share/nearby_share_dialog_ui.h"
@@ -18,18 +20,25 @@
namespace {
+// Keep in sync with //chrome/browser/resources/nearby_share/shared/types.js
+enum class CloseReason {
+ kUnknown = 0,
+ kTransferStarted = 1,
+ kTransferSucceeded = 2,
+ kCancelled = 3,
+ kRejected = 4
+};
+
class TestSharesheetController : public sharesheet::SharesheetController {
public:
// sharesheet::SharesheetController
void SetBubbleSize(int width, int height) override {}
void CloseBubble(::sharesheet::SharesheetResult result) override {
- // The NearbyShareDialogUI can only invoke this method with a cancellation
- // result.
- EXPECT_EQ(::sharesheet::SharesheetResult::kCancel, result);
- close_called = true;
+ last_result = result;
}
+ bool IsBubbleVisible() const override { return !last_result; }
- bool close_called = false;
+ absl::optional<::sharesheet::SharesheetResult> last_result;
};
class NearbyShareDialogUITest : public InProcessBrowserTest {
@@ -40,21 +49,30 @@ class NearbyShareDialogUITest : public InProcessBrowserTest {
~NearbyShareDialogUITest() override = default;
protected:
+ content::WebContents* GetWebContentsForNearbyShareHost() const {
+ GURL kUrl(content::GetWebUIURL(chrome::kChromeUINearbyShareHost));
+ EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), kUrl));
+ content::WebContents* web_contents =
+ browser()->tab_strip_model()->GetActiveWebContents();
+ EXPECT_TRUE(web_contents);
+ EXPECT_EQ(kUrl, web_contents->GetLastCommittedURL());
+ EXPECT_FALSE(web_contents->IsCrashed());
+
+ return web_contents;
+ }
+
base::test::ScopedFeatureList scoped_feature_list_;
TestSharesheetController sharesheet_controller_;
};
+std::string BuildCloseScript(CloseReason reason) {
+ return base::StringPrintf("chrome.send('close',[%d]);", reason);
+}
+
} // namespace
IN_PROC_BROWSER_TEST_F(NearbyShareDialogUITest, RendersComponent) {
- // First, check that navigation succeeds.
- GURL kUrl(content::GetWebUIURL(chrome::kChromeUINearbyShareHost));
- ui_test_utils::NavigateToURL(browser(), kUrl);
- content::WebContents* web_contents =
- browser()->tab_strip_model()->GetActiveWebContents();
- ASSERT_TRUE(web_contents);
- EXPECT_EQ(kUrl, web_contents->GetLastCommittedURL());
- EXPECT_FALSE(web_contents->IsCrashed());
+ content::WebContents* web_contents = GetWebContentsForNearbyShareHost();
// Assert that we render the nearby-share-app component.
int num_nearby_share_app = -1;
@@ -68,14 +86,7 @@ IN_PROC_BROWSER_TEST_F(NearbyShareDialogUITest, RendersComponent) {
IN_PROC_BROWSER_TEST_F(NearbyShareDialogUITest,
SharesheetControllerGetsCalledOnClose) {
- // First, check that navigation succeeds.
- GURL kUrl(content::GetWebUIURL(chrome::kChromeUINearbyShareHost));
- ui_test_utils::NavigateToURL(browser(), kUrl);
- content::WebContents* web_contents =
- browser()->tab_strip_model()->GetActiveWebContents();
- ASSERT_TRUE(web_contents);
- EXPECT_EQ(kUrl, web_contents->GetLastCommittedURL());
- EXPECT_FALSE(web_contents->IsCrashed());
+ content::WebContents* web_contents = GetWebContentsForNearbyShareHost();
auto* webui = web_contents->GetWebUI();
ASSERT_TRUE(webui);
@@ -87,17 +98,51 @@ IN_PROC_BROWSER_TEST_F(NearbyShareDialogUITest,
// Calling 'close' before a Sharesheet controller is registered via
// |SetSharesheetController| does not result in a crash.
- EXPECT_TRUE(content::ExecuteScript(web_contents, "chrome.send('close');"));
- EXPECT_FALSE(sharesheet_controller_.close_called);
+ std::string script = BuildCloseScript(CloseReason::kCancelled);
+ EXPECT_TRUE(content::ExecuteScript(web_contents, script));
+ EXPECT_FALSE(sharesheet_controller_.last_result);
// The Sharesheet controller gets called on 'close' if it's been registered.
nearby_ui->SetSharesheetController(&sharesheet_controller_);
- EXPECT_TRUE(content::ExecuteScript(web_contents, "chrome.send('close');"));
- EXPECT_TRUE(sharesheet_controller_.close_called);
+ EXPECT_TRUE(content::ExecuteScript(web_contents, script));
+ EXPECT_EQ(::sharesheet::SharesheetResult::kCancel,
+ sharesheet_controller_.last_result);
// Any subsequent calls to 'close' do not call the Sharesheet controller,
// since that would result in a crash.
- sharesheet_controller_.close_called = false;
- EXPECT_TRUE(content::ExecuteScript(web_contents, "chrome.send('close');"));
- EXPECT_FALSE(sharesheet_controller_.close_called);
+ sharesheet_controller_.last_result.reset();
+ EXPECT_TRUE(content::ExecuteScript(web_contents, script));
+ EXPECT_FALSE(sharesheet_controller_.last_result);
+}
+
+IN_PROC_BROWSER_TEST_F(NearbyShareDialogUITest, CloseBubbleResults) {
+ for (CloseReason reason :
+ {CloseReason::kUnknown, CloseReason::kTransferStarted,
+ CloseReason::kTransferSucceeded, CloseReason::kCancelled,
+ CloseReason::kRejected}) {
+ content::WebContents* web_contents = GetWebContentsForNearbyShareHost();
+ auto* nearby_ui = web_contents->GetWebUI()
+ ->GetController()
+ ->GetAs<nearby_share::NearbyShareDialogUI>();
+
+ sharesheet_controller_.last_result.reset();
+ nearby_ui->SetSharesheetController(&sharesheet_controller_);
+ EXPECT_TRUE(content::ExecuteScript(web_contents, BuildCloseScript(reason)));
+
+ // Verify that the page-closed reason is translated into the correct
+ // SharesheetResult and passed into CloseBubble().
+ switch (reason) {
+ case CloseReason::kTransferStarted:
+ case CloseReason::kTransferSucceeded:
+ EXPECT_EQ(sharesheet::SharesheetResult::kSuccess,
+ sharesheet_controller_.last_result);
+ break;
+ case CloseReason::kUnknown:
+ case CloseReason::kCancelled:
+ case CloseReason::kRejected:
+ EXPECT_EQ(sharesheet::SharesheetResult::kCancel,
+ sharesheet_controller_.last_result);
+ break;
+ }
+ }
}
diff --git a/chromium/chrome/browser/ui/webui/nearby_share/public/mojom/nearby_share_settings.mojom b/chromium/chrome/browser/ui/webui/nearby_share/public/mojom/nearby_share_settings.mojom
index ad69d445b2c..816b2ab3d8b 100644
--- a/chromium/chrome/browser/ui/webui/nearby_share/public/mojom/nearby_share_settings.mojom
+++ b/chromium/chrome/browser/ui/webui/nearby_share/public/mojom/nearby_share_settings.mojom
@@ -44,11 +44,28 @@ enum DeviceNameValidationResult {
kErrorNotValidUtf8 = 3
};
+// Represents the Fast Initiation Notification feature state. This feature
+// shows a notification when a nearby device is trying to share. It can be
+// enabled/disabed independently from the Nearby Share feature.
+enum FastInitiationNotificationState {
+ kEnabled = 0,
+ // User manually disabled the Fast Initiation Notification feature. If
+ // Nearby Share feature is toggled the notification feature will remain
+ // disabled.
+ kDisabledByUser = 1,
+ // User turned off Nearby Share which disables the Fast Initiation
+ // Notification feature. If Nearby Share is enabled while Fast Initiation
+ // Notification is in this state then notifications will be re-enabled.
+ kDisabledByFeature = 2,
+};
+
// This observer interface allows clients to be notified whenever key Nearby
// Share settings are changed.
interface NearbyShareSettingsObserver {
// Called when the nearby feature is enabled or disabled.
OnEnabledChanged(bool enabled);
+ // Called when Fast Initiation notification feature state changes.
+ OnFastInitiationNotificationStateChanged(FastInitiationNotificationState state);
// Called when the device name changes.
OnDeviceNameChanged(string device_name);
// Called when data usage changes.
@@ -57,6 +74,8 @@ interface NearbyShareSettingsObserver {
OnVisibilityChanged(Visibility visibility);
// Called when the contacts the user wants to be visible to changes.
OnAllowedContactsChanged(array<string> visible_contact_ids);
+ // Called when the onboarded state changes.
+ OnIsOnboardingCompleteChanged(bool is_complete);
};
// An interface over Nearby Share's user settings which will need to be used
@@ -73,6 +92,11 @@ interface NearbyShareSettings {
// Get the onboarding completion state for the Nearby Share feature.
IsOnboardingComplete() => (bool completed);
+ // Get the feature state for Fast Initiation notification.
+ GetFastInitiationNotificationState() => (FastInitiationNotificationState state);
+ // Set the feature state for Fast Initiation notification.
+ SetFastInitiationNotificationState(FastInitiationNotificationState state);
+
// Get the device name shown to a sender when this device is available as
// a share target. |device_name| is the new device name.
GetDeviceName() => (string device_name);
diff --git a/chromium/chrome/browser/ui/webui/net_export_ui.cc b/chromium/chrome/browser/ui/webui/net_export_ui.cc
index fcd1f66b3a7..a57128a2803 100644
--- a/chromium/chrome/browser/ui/webui/net_export_ui.cc
+++ b/chromium/chrome/browser/ui/webui/net_export_ui.cc
@@ -21,6 +21,7 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
+#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/download/download_prefs.h"
#include "chrome/browser/net/net_export_helper.h"
@@ -45,7 +46,7 @@
#include "ui/shell_dialogs/select_file_dialog.h"
#if defined(OS_ANDROID)
-#include "chrome/browser/android/intent_helper.h"
+#include "components/browser_ui/share/android/intent_helper.h"
#endif
using content::BrowserThread;
@@ -87,6 +88,10 @@ class NetExportMessageHandler
public net_log::NetExportFileWriter::StateObserver {
public:
NetExportMessageHandler();
+
+ NetExportMessageHandler(const NetExportMessageHandler&) = delete;
+ NetExportMessageHandler& operator=(const NetExportMessageHandler&) = delete;
+
~NetExportMessageHandler() override;
// WebUIMessageHandler implementation.
@@ -154,8 +159,6 @@ class NetExportMessageHandler
scoped_refptr<ui::SelectFileDialog> select_file_dialog_;
base::WeakPtrFactory<NetExportMessageHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(NetExportMessageHandler);
};
NetExportMessageHandler::NetExportMessageHandler()
@@ -176,23 +179,23 @@ NetExportMessageHandler::~NetExportMessageHandler() {
void NetExportMessageHandler::RegisterMessages() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
net_log::kEnableNotifyUIWithStateHandler,
base::BindRepeating(&NetExportMessageHandler::OnEnableNotifyUIWithState,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
net_log::kStartNetLogHandler,
base::BindRepeating(&NetExportMessageHandler::OnStartNetLog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
net_log::kStopNetLogHandler,
base::BindRepeating(&NetExportMessageHandler::OnStopNetLog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
net_log::kSendNetLogHandler,
base::BindRepeating(&NetExportMessageHandler::OnSendNetLog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
net_log::kShowFile,
base::BindRepeating(&NetExportMessageHandler::OnShowFile,
base::Unretained(this)));
@@ -308,10 +311,9 @@ void NetExportMessageHandler::SendEmail(const base::FilePath& file_to_send) {
std::string body =
"Please add some informative text about the network issues.";
base::FilePath::StringType file_to_attach(file_to_send.value());
- chrome::android::SendEmail(
- base::UTF8ToUTF16(email), base::UTF8ToUTF16(subject),
- base::UTF8ToUTF16(body), base::UTF8ToUTF16(title),
- base::UTF8ToUTF16(file_to_attach));
+ browser_ui::SendEmail(base::UTF8ToUTF16(email), base::UTF8ToUTF16(subject),
+ base::UTF8ToUTF16(body), base::UTF8ToUTF16(title),
+ base::UTF8ToUTF16(file_to_attach));
#endif
}
diff --git a/chromium/chrome/browser/ui/webui/net_export_ui.h b/chromium/chrome/browser/ui/webui/net_export_ui.h
index cb58382957c..c3a376ea2bb 100644
--- a/chromium/chrome/browser/ui/webui/net_export_ui.h
+++ b/chromium/chrome/browser/ui/webui/net_export_ui.h
@@ -13,8 +13,8 @@ class NetExportUI : public content::WebUIController {
public:
explicit NetExportUI(content::WebUI* web_ui);
- private:
- DISALLOW_COPY_AND_ASSIGN(NetExportUI);
+ NetExportUI(const NetExportUI&) = delete;
+ NetExportUI& operator=(const NetExportUI&) = delete;
};
#endif // CHROME_BROWSER_UI_WEBUI_NET_EXPORT_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
index 52e909c3b1d..6dd28d0d6fb 100644
--- a/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
+++ b/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
@@ -55,6 +55,11 @@ void IgnoreBoolCallback(bool result) {}
class NetInternalsMessageHandler : public content::WebUIMessageHandler {
public:
explicit NetInternalsMessageHandler(content::WebUI* web_ui);
+
+ NetInternalsMessageHandler(const NetInternalsMessageHandler&) = delete;
+ NetInternalsMessageHandler& operator=(const NetInternalsMessageHandler&) =
+ delete;
+
~NetInternalsMessageHandler() override = default;
protected:
@@ -91,8 +96,6 @@ class NetInternalsMessageHandler : public content::WebUIMessageHandler {
content::WebUI* web_ui_;
base::WeakPtrFactory<NetInternalsMessageHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(NetInternalsMessageHandler);
};
NetInternalsMessageHandler::NetInternalsMessageHandler(content::WebUI* web_ui)
@@ -101,46 +104,46 @@ NetInternalsMessageHandler::NetInternalsMessageHandler(content::WebUI* web_ui)
void NetInternalsMessageHandler::RegisterMessages() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"reloadProxySettings",
base::BindRepeating(&NetInternalsMessageHandler::OnReloadProxySettings,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"clearBadProxies",
base::BindRepeating(&NetInternalsMessageHandler::OnClearBadProxies,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"clearHostResolverCache",
base::BindRepeating(&NetInternalsMessageHandler::OnClearHostResolverCache,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"domainSecurityPolicyDelete",
base::BindRepeating(
&NetInternalsMessageHandler::OnDomainSecurityPolicyDelete,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"hstsQuery", base::BindRepeating(&NetInternalsMessageHandler::OnHSTSQuery,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"hstsAdd", base::BindRepeating(&NetInternalsMessageHandler::OnHSTSAdd,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"expectCTQuery",
base::BindRepeating(&NetInternalsMessageHandler::OnExpectCTQuery,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"expectCTAdd",
base::BindRepeating(&NetInternalsMessageHandler::OnExpectCTAdd,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"expectCTTestReport",
base::BindRepeating(&NetInternalsMessageHandler::OnExpectCTTestReport,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"closeIdleSockets",
base::BindRepeating(&NetInternalsMessageHandler::OnCloseIdleSockets,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"flushSocketPools",
base::BindRepeating(&NetInternalsMessageHandler::OnFlushSocketPools,
base::Unretained(this)));
@@ -213,7 +216,7 @@ void NetInternalsMessageHandler::OnHSTSAdd(const base::ListValue* list) {
result = list->GetBoolean(1, &sts_include_subdomains);
DCHECK(result);
- base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1000);
+ base::Time expiry = base::Time::Now() + base::Days(1000);
GetNetworkContext()->AddHSTS(domain, expiry, sts_include_subdomains,
base::DoNothing());
}
@@ -257,7 +260,7 @@ void NetInternalsMessageHandler::OnExpectCTAdd(const base::ListValue* list) {
url::Origin origin = url::Origin::Create(GURL("https://" + domain));
- base::Time expiry = base::Time::Now() + base::TimeDelta::FromDays(1000);
+ base::Time expiry = base::Time::Now() + base::Days(1000);
GetNetworkContext()->AddExpectCT(
domain, expiry, enforce, GURL(report_uri_str),
net::NetworkIsolationKey(origin /* top_frame_site */,
diff --git a/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui.h b/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui.h
index 9349ef0c185..fae7bcb992b 100644
--- a/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui.h
@@ -12,8 +12,8 @@ class NetInternalsUI : public content::WebUIController {
public:
explicit NetInternalsUI(content::WebUI* web_ui);
- private:
- DISALLOW_COPY_AND_ASSIGN(NetInternalsUI);
+ NetInternalsUI(const NetInternalsUI&) = delete;
+ NetInternalsUI& operator=(const NetInternalsUI&) = delete;
};
#endif // CHROME_BROWSER_UI_WEBUI_NET_INTERNALS_NET_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc
index 597e830e3a2..5e4e982cab1 100644
--- a/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc
@@ -118,13 +118,17 @@ class NetInternalsTest::MessageHandler : public content::WebUIMessageHandler {
public:
explicit MessageHandler(NetInternalsTest* net_internals_test);
+ MessageHandler(const MessageHandler&) = delete;
+ MessageHandler& operator=(const MessageHandler&) = delete;
+
private:
void RegisterMessages() override;
- void RegisterMessage(const std::string& message,
- const content::WebUI::MessageCallback& handler);
+ void RegisterMessage(
+ const std::string& message,
+ const content::WebUI::DeprecatedMessageCallback& handler);
- void HandleMessage(const content::WebUI::MessageCallback& handler,
+ void HandleMessage(const content::WebUI::DeprecatedMessageCallback& handler,
const base::ListValue* data);
// Runs NetInternalsTest.callback with the given value.
@@ -152,8 +156,6 @@ class NetInternalsTest::MessageHandler : public content::WebUIMessageHandler {
net::NetworkIsolationKey::CreateTransient()};
base::WeakPtrFactory<MessageHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(MessageHandler);
};
NetInternalsTest::MessageHandler::MessageHandler(
@@ -176,15 +178,15 @@ void NetInternalsTest::MessageHandler::RegisterMessages() {
void NetInternalsTest::MessageHandler::RegisterMessage(
const std::string& message,
- const content::WebUI::MessageCallback& handler) {
- web_ui()->RegisterMessageCallback(
+ const content::WebUI::DeprecatedMessageCallback& handler) {
+ web_ui()->RegisterDeprecatedMessageCallback(
message,
base::BindRepeating(&NetInternalsTest::MessageHandler::HandleMessage,
weak_factory_.GetWeakPtr(), handler));
}
void NetInternalsTest::MessageHandler::HandleMessage(
- const content::WebUI::MessageCallback& handler,
+ const content::WebUI::DeprecatedMessageCallback& handler,
const base::ListValue* data) {
// The handler might run a nested loop to wait for something.
base::CurrentThread::ScopedNestableTaskAllower nestable_task_allower;
diff --git a/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.h b/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.h
index 002e0338806..ee4ec72cace 100644
--- a/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.h
+++ b/chromium/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.h
@@ -13,6 +13,10 @@
class NetInternalsTest : public WebUIBrowserTest {
public:
NetInternalsTest();
+
+ NetInternalsTest(const NetInternalsTest&) = delete;
+ NetInternalsTest& operator=(const NetInternalsTest&) = delete;
+
~NetInternalsTest() override;
void SetUpOnMainThread() override;
@@ -31,8 +35,6 @@ class NetInternalsTest : public WebUIBrowserTest {
// True if the test server has already been successfully started.
bool test_server_started_;
-
- DISALLOW_COPY_AND_ASSIGN(NetInternalsTest);
};
#endif // CHROME_BROWSER_UI_WEBUI_NET_INTERNALS_NET_INTERNALS_UI_BROWSERTEST_H_
diff --git a/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom b/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom
index 0b71df45abe..3e95edf7d8e 100644
--- a/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom
+++ b/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom
@@ -121,7 +121,7 @@ struct AllModeImageDoodle {
ImageDoodle light;
ImageDoodle? dark;
// URL opened in new tab when the doodle is clicked.
- url.mojom.Url on_click_url;
+ url.mojom.Url? on_click_url;
// URL displayed to users, which they can use to share the doodle.
url.mojom.Url share_url;
};
diff --git a/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc b/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
index 4720a27d95f..3da64d5cff2 100644
--- a/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
+++ b/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
@@ -67,12 +67,15 @@ new_tab_page::mojom::ThemePtr MakeTheme(
const ui::ThemeProvider* theme_provider,
ThemeService* theme_service,
NtpCustomBackgroundService* ntp_custom_background_service) {
+ if (ntp_custom_background_service) {
+ ntp_custom_background_service->RefreshBackgroundIfNeeded();
+ }
auto theme = new_tab_page::mojom::Theme::New();
auto most_visited = most_visited::mojom::MostVisitedTheme::New();
auto custom_background =
ntp_custom_background_service
? ntp_custom_background_service->GetCustomBackground()
- : absl::optional<CustomBackground>();
+ : absl::nullopt;
theme->is_default = theme_service->UsingDefaultTheme();
theme->background_color =
theme_provider->GetColor(ThemeProperties::COLOR_NTP_BACKGROUND);
@@ -515,7 +518,7 @@ void NewTabPageHandler::GetPromo(GetPromoCallback callback) {
// Replace the promo URL with "command:<id>" if such a command ID is set
// via the feature params.
const std::string command_id = base::GetFieldTrialParamValueByFeature(
- features::kPromoBrowserCommands, features::kPromoBrowserCommandIdParam);
+ features::kPromoBrowserCommands, features::kBrowserCommandIdParam);
if (!command_id.empty()) {
auto promo = new_tab_page::mojom::Promo::New();
std::vector<new_tab_page::mojom::PromoPartPtr> parts;
@@ -977,7 +980,9 @@ void NewTabPageHandler::OnLogoAvailable(
logo->metadata.dark_share_button_opacity, logo->metadata.dark_log_url,
logo->metadata.dark_cta_log_url);
}
- image_doodle->on_click_url = logo->metadata.on_click_url;
+ if (logo->metadata.on_click_url.is_valid()) {
+ image_doodle->on_click_url = logo->metadata.on_click_url;
+ }
image_doodle->share_url = logo->metadata.short_link;
doodle->image = std::move(image_doodle);
} else if (logo->metadata.type ==
diff --git a/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.h b/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.h
index 4d73df56c7f..8d6cf92d82f 100644
--- a/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.h
+++ b/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.h
@@ -68,6 +68,10 @@ class NewTabPageHandler : public new_tab_page::mojom::PageHandler,
const ui::ThemeProvider* theme_provider,
content::WebContents* web_contents,
const base::Time& ntp_navigation_start_time);
+
+ NewTabPageHandler(const NewTabPageHandler&) = delete;
+ NewTabPageHandler& operator=(const NewTabPageHandler&) = delete;
+
~NewTabPageHandler() override;
// Histograms being recorded when a module is dismissed or restored.
@@ -206,8 +210,6 @@ class NewTabPageHandler : public new_tab_page::mojom::PageHandler,
mojo::Receiver<new_tab_page::mojom::PageHandler> receiver_;
base::WeakPtrFactory<NewTabPageHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(NewTabPageHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_NEW_TAB_PAGE_NEW_TAB_PAGE_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc b/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc
index f813ac57e80..6e6a71d88b3 100644
--- a/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc
@@ -76,6 +76,7 @@ class MockNtpCustomBackgroundService : public NtpCustomBackgroundService {
public:
explicit MockNtpCustomBackgroundService(Profile* profile)
: NtpCustomBackgroundService(profile) {}
+ MOCK_METHOD0(RefreshBackgroundIfNeeded, void());
MOCK_METHOD0(GetCustomBackground, absl::optional<CustomBackground>());
MOCK_METHOD1(AddObserver, void(NtpCustomBackgroundServiceObserver*));
};
@@ -110,6 +111,8 @@ class NewTabPageHandlerTest : public testing::Test {
.WillOnce(
testing::SaveArg<0>(&ntp_custom_background_service_observer_));
EXPECT_CALL(mock_page_, SetTheme).Times(1);
+ EXPECT_CALL(mock_ntp_custom_background_service_, RefreshBackgroundIfNeeded)
+ .Times(1);
handler_ = std::make_unique<NewTabPageHandler>(
mojo::PendingReceiver<new_tab_page::mojom::PageHandler>(),
mock_page_.BindAndGetRemote(), &profile_,
@@ -120,6 +123,8 @@ class NewTabPageHandlerTest : public testing::Test {
EXPECT_EQ(handler_.get(), theme_service_observer_);
EXPECT_EQ(handler_.get(), ntp_custom_background_service_observer_);
testing::Mock::VerifyAndClearExpectations(&mock_page_);
+ testing::Mock::VerifyAndClearExpectations(
+ &mock_ntp_custom_background_service_);
}
new_tab_page::mojom::DoodlePtr GetDoodle(
diff --git a/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
index ac1be765aed..8f11bed6439 100644
--- a/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
+++ b/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
@@ -8,6 +8,7 @@
#include <utility>
#include "base/metrics/histogram_functions.h"
+#include "base/strings/strcat.h"
#include "base/strings/stringprintf.h"
#include "base/time/time.h"
#include "chrome/browser/buildflags.h"
@@ -22,12 +23,12 @@
#include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/browser/themes/theme_properties.h"
#include "chrome/browser/themes/theme_service_factory.h"
+#include "chrome/browser/ui/webui/browser_command/browser_command_handler.h"
#include "chrome/browser/ui/webui/cr_components/most_visited/most_visited_handler.h"
#include "chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.h"
#include "chrome/browser/ui/webui/favicon_source.h"
#include "chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.h"
#include "chrome/browser/ui/webui/new_tab_page/ntp_pref_names.h"
-#include "chrome/browser/ui/webui/new_tab_page/promo_browser_command/promo_browser_command_handler.h"
#include "chrome/browser/ui/webui/new_tab_page/untrusted_source.h"
#include "chrome/browser/ui/webui/realbox/realbox_handler.h"
#include "chrome/browser/ui/webui/sanitized_image_source.h"
@@ -49,6 +50,7 @@
#include "components/prefs/pref_service.h"
#include "components/search/ntp_features.h"
#include "components/search_engines/template_url_service.h"
+#include "components/signin/public/identity_manager/accounts_in_cookie_jar_info.h"
#include "components/signin/public/identity_manager/identity_manager.h"
#include "components/strings/grit/components_strings.h"
#include "content/public/browser/navigation_handle.h"
@@ -76,9 +78,7 @@ namespace {
constexpr char kPrevNavigationTimePrefName[] = "NewTabPage.PrevNavigationTime";
-content::WebUIDataSource* CreateNewTabPageUiHtmlSource(
- Profile* profile,
- const base::Time& navigation_start_time) {
+content::WebUIDataSource* CreateNewTabPageUiHtmlSource(Profile* profile) {
content::WebUIDataSource* source =
content::WebUIDataSource::Create(chrome::kChromeUINewTabPageHost);
@@ -91,13 +91,15 @@ content::WebUIDataSource* CreateNewTabPageUiHtmlSource(
->search_terms_data()
.GoogleBaseURLValue())
.spec());
- source->AddDouble("navigationStartTime", navigation_start_time.ToJsTime());
source->AddBoolean(
"handleMostVisitedNavigationExplicitly",
base::FeatureList::IsEnabled(
ntp_features::kNtpHandleMostVisitedNavigationExplicitly));
+ source->AddBoolean(
+ "oneGoogleBarEnabled",
+ base::FeatureList::IsEnabled(ntp_features::kNtpOneGoogleBar));
source->AddBoolean("shortcutsEnabled",
base::FeatureList::IsEnabled(ntp_features::kNtpShortcuts));
source->AddBoolean("logoEnabled",
@@ -105,8 +107,6 @@ content::WebUIDataSource* CreateNewTabPageUiHtmlSource(
source->AddBoolean(
"middleSlotPromoEnabled",
base::FeatureList::IsEnabled(ntp_features::kNtpMiddleSlotPromo));
- source->AddBoolean("modulesEnabled",
- base::FeatureList::IsEnabled(ntp_features::kModules));
source->AddBoolean(
"modulesDragAndDropEnabled",
base::FeatureList::IsEnabled(ntp_features::kNtpModulesDragAndDrop));
@@ -224,12 +224,32 @@ content::WebUIDataSource* CreateNewTabPageUiHtmlSource(
{"modulesDriveFilesLower", IDS_NTP_MODULES_DRIVE_FILES_LOWER},
{"modulesDummyLower", IDS_NTP_MODULES_DUMMY_LOWER},
{"modulesDriveTitle", IDS_NTP_MODULES_DRIVE_TITLE},
- {"modulesPhotosTitle", IDS_NTP_MODULES_PHOTOS_TITLE},
{"modulesDriveInfo", IDS_NTP_MODULES_DRIVE_INFO},
{"modulesDummyTitle", IDS_NTP_MODULES_DUMMY_TITLE},
{"modulesDummy2Title", IDS_NTP_MODULES_DUMMY2_TITLE},
{"modulesKaleidoscopeTitle", IDS_NTP_MODULES_KALEIDOSCOPE_TITLE},
- {"modulesPhotosSentence", IDS_NTP_MODULES_PHOTOS_TITLE},
+ {"modulesPhotosInfo", IDS_NTP_MODULES_PHOTOS_INFO},
+ {"modulesPhotosSentence", IDS_NTP_MODULES_PHOTOS_MEMORIES_TITLE},
+ {"modulesPhotosTitle", IDS_NTP_MODULES_PHOTOS_TITLE},
+ {"modulesPhotosMemoriesDisable", IDS_NTP_MODULES_PHOTOS_MEMORIES_DISABLE},
+ {"modulesPhotosMemoriesDisabled",
+ IDS_NTP_MODULES_PHOTOS_MEMORIES_DISABLED},
+ {"modulesPhotosMemoriesHideToday",
+ IDS_NTP_MODULES_PHOTOS_MEMORIES_HIDE_TODAY},
+ {"modulesPhotosMemoriesHiddenToday",
+ IDS_NTP_MODULES_PHOTOS_MEMORIES_HIDDEN_TODAY},
+ {"modulesPhotosMemoriesExplore", IDS_NTP_MODULES_PHOTOS_MEMORIES_EXPLORE},
+ {"modulesPhotosMemoriesWelcomeTitle",
+ IDS_NTP_MODULES_PHOTOS_MEMORIES_WELCOME_TITLE},
+ {"modulesPhotosMemoriesWelcomeText",
+ IDS_NTP_MODULES_PHOTOS_MEMORIES_WELCOME_TEXT},
+ {"modulesPhotosMemoriesWelcomeButtonOptIn",
+ IDS_NTP_MODULES_PHOTOS_MEMORIES_WELCOME_BUTTON_OPT_IN},
+ {"modulesPhotosMemoriesWelcomeButtonOptOut",
+ IDS_NTP_MODULES_PHOTOS_MEMORIES_WELCOME_BUTTON_OPT_OUT},
+ {"modulesPhotosMemoriesWelcomeExample",
+ IDS_NTP_MODULES_PHOTOS_MEMORIES_WELCOME_EXAMPLE},
+ {"modulesPhotosNew", IDS_NTP_MODULES_PHOTOS_NEW},
{"modulesTasksInfoTitle", IDS_NTP_MODULES_SHOPPING_TASKS_INFO_TITLE},
{"modulesTasksInfoClose", IDS_NTP_MODULES_SHOPPING_TASKS_INFO_CLOSE},
{"modulesCartHeaderNew", IDS_NTP_MODULES_CART_HEADER_CHIP_NEW},
@@ -276,8 +296,6 @@ content::WebUIDataSource* CreateNewTabPageUiHtmlSource(
source->AddBoolean(
"chromeCartModuleEnabled",
base::FeatureList::IsEnabled(ntp_features::kNtpChromeCartModule));
- source->AddBoolean("driveModuleEnabled",
- NewTabPageUI::IsDriveModuleEnabled(profile));
source->AddBoolean(
"photosModuleEnabled",
base::FeatureList::IsEnabled(ntp_features::kNtpPhotosModule));
@@ -317,6 +335,13 @@ content::WebUIDataSource* CreateNewTabPageUiHtmlSource(
return source;
}
+bool HasCredentials(Profile* profile) {
+ auto* identity_manager = IdentityManagerFactory::GetForProfile(profile);
+ return
+ /* Can be null if Chrome signin is disabled. */ identity_manager &&
+ identity_manager->GetAccountsInCookieJar().signed_in_accounts.size() > 0;
+}
+
} // namespace
NewTabPageUI::NewTabPageUI(content::WebUI* web_ui)
@@ -335,7 +360,7 @@ NewTabPageUI::NewTabPageUI(content::WebUI* web_ui)
// for the unlikely case where the NewTabPageHandler is created before we
// received the DidStartNavigation event.
navigation_start_time_(base::Time::Now()) {
- auto* source = CreateNewTabPageUiHtmlSource(profile_, navigation_start_time_);
+ auto* source = CreateNewTabPageUiHtmlSource(profile_);
source->AddBoolean(
"customBackgroundDisabledByPolicy",
ntp_custom_background_service_->IsCustomBackgroundDisabledByPolicy());
@@ -378,9 +403,10 @@ NewTabPageUI::NewTabPageUI(content::WebUI* web_ui)
ntp_custom_background_service_observation_.Observe(
ntp_custom_background_service_);
- // Populates the load time data with basic theme info.
+ // Populates the load time data with basic info.
OnThemeChanged();
OnCustomBackgroundImageUpdated();
+ OnLoad();
}
WEB_UI_CONTROLLER_TYPE_IMPL(NewTabPageUI)
@@ -419,9 +445,10 @@ bool NewTabPageUI::IsDriveModuleEnabled(Profile* profile) {
// TODO(https://crbug.com/1213351): Stop calling the private method
// FindExtendedPrimaryAccountInfo().
auto* identity_manager = IdentityManagerFactory::GetForProfile(profile);
- return identity_manager
- ->FindExtendedPrimaryAccountInfo(signin::ConsentLevel::kSync)
- .IsManaged();
+ return /* Can be null if Chrome signin is disabled. */ identity_manager &&
+ identity_manager
+ ->FindExtendedPrimaryAccountInfo(signin::ConsentLevel::kSync)
+ .IsManaged();
}
void NewTabPageUI::BindInterface(
@@ -441,7 +468,7 @@ void NewTabPageUI::BindInterface(
}
void NewTabPageUI::BindInterface(
- mojo::PendingReceiver<promo_browser_command::mojom::CommandHandlerFactory>
+ mojo::PendingReceiver<browser_command::mojom::CommandHandlerFactory>
pending_receiver) {
if (browser_command_factory_receiver_.is_bound())
browser_command_factory_receiver_.reset();
@@ -524,14 +551,14 @@ void NewTabPageUI::CreateCustomizeThemesHandler(
}
void NewTabPageUI::CreateBrowserCommandHandler(
- mojo::PendingReceiver<promo_browser_command::mojom::CommandHandler>
+ mojo::PendingReceiver<browser_command::mojom::CommandHandler>
pending_handler) {
- using promo_browser_command::mojom::Command;
+ using browser_command::mojom::Command;
std::vector<Command> supported_commands = {
Command::kOpenSafetyCheck,
Command::kOpenSafeBrowsingEnhancedProtectionSettings,
};
- promo_browser_command_handler_ = std::make_unique<PromoBrowserCommandHandler>(
+ promo_browser_command_handler_ = std::make_unique<BrowserCommandHandler>(
std::move(pending_handler), profile_, supported_commands);
}
@@ -577,8 +604,13 @@ void NewTabPageUI::OnCustomBackgroundImageUpdated() {
.custom_background_url;
url::EncodeURIComponent(custom_background_url.spec().c_str(),
custom_background_url.spec().size(), &encoded_url);
- update->SetString("backgroundImageUrl",
- std::string(encoded_url.data(), encoded_url.length()));
+ update->SetString(
+ "backgroundImageUrl",
+ encoded_url.length() > 0
+ ? base::StrCat(
+ {"chrome-untrusted://new-tab-page/custom_background_image?url=",
+ std::string(encoded_url.data(), encoded_url.length())})
+ : "");
content::WebUIDataSource::Update(profile_, chrome::kChromeUINewTabPageHost,
std::move(update));
}
@@ -596,21 +628,19 @@ void NewTabPageUI::DidStartNavigation(
if (navigation_handle->IsInPrimaryMainFrame() &&
navigation_handle->GetURL() == GURL(chrome::kChromeUINewTabPageURL)) {
navigation_start_time_ = base::Time::Now();
- std::unique_ptr<base::DictionaryValue> update(new base::DictionaryValue);
- update->SetDoubleKey("navigationStartTime",
- navigation_start_time_.ToJsTime());
- content::WebUIDataSource::Update(profile_, chrome::kChromeUINewTabPageHost,
- std::move(update));
+ OnLoad();
auto prev_navigation_time =
profile_->GetPrefs()->GetTime(kPrevNavigationTimePrefName);
if (!prev_navigation_time.is_null()) {
base::UmaHistogramCustomTimes(
"NewTabPage.TimeSinceLastNTP",
- navigation_start_time_ - prev_navigation_time,
- base::TimeDelta::FromSeconds(1), base::TimeDelta::FromDays(1), 100);
+ navigation_start_time_ - prev_navigation_time, base::Seconds(1),
+ base::Days(1), 100);
}
profile_->GetPrefs()->SetTime(kPrevNavigationTimePrefName,
navigation_start_time_);
+ base::UmaHistogramBoolean("NewTabPage.HasCredentials",
+ HasCredentials(profile_));
}
}
@@ -634,6 +664,22 @@ void NewTabPageUI::OnTilesVisibilityPrefChanged() {
}
}
+void NewTabPageUI::OnLoad() {
+ std::unique_ptr<base::DictionaryValue> update(new base::DictionaryValue);
+ update->SetDoubleKey("navigationStartTime",
+ navigation_start_time_.ToJsTime());
+ // Only enable modules if account credentials are available as most modules
+ // won't have data to render otherwise.
+
+ update->SetBoolKey("modulesEnabled",
+ base::FeatureList::IsEnabled(ntp_features::kModules) &&
+ HasCredentials(profile_));
+ update->SetBoolKey("driveModuleEnabled",
+ NewTabPageUI::IsDriveModuleEnabled(profile_));
+ content::WebUIDataSource::Update(profile_, chrome::kChromeUINewTabPageHost,
+ std::move(update));
+}
+
// static
base::RefCountedMemory* NewTabPageUI::GetFaviconResourceBytes(
ui::ResourceScaleFactor scale_factor) {
diff --git a/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h b/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h
index f954f7fddb8..03f445592e7 100644
--- a/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h
+++ b/chromium/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h
@@ -10,7 +10,7 @@
#include "chrome/browser/new_tab_page/modules/drive/drive.mojom.h"
#include "chrome/browser/new_tab_page/modules/photos/photos.mojom.h"
#include "chrome/browser/new_tab_page/modules/task_module/task_module.mojom.h"
-#include "chrome/browser/promo_browser_command/promo_browser_command.mojom.h"
+#include "ui/webui/resources/js/browser_command/browser_command.mojom.h"
#if !defined(OFFICIAL_BUILD)
#include "chrome/browser/ui/webui/new_tab_page/foo/foo.mojom.h" // nogncheck crbug.com/1125897
#endif
@@ -27,7 +27,7 @@
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
-#include "ui/base/resource/scale_factor.h"
+#include "ui/base/resource/resource_scale_factor.h"
#include "ui/native_theme/native_theme.h"
#include "ui/native_theme/native_theme_observer.h"
#include "ui/webui/mojo_web_ui_controller.h"
@@ -54,7 +54,7 @@ class NewTabPageHandler;
class PrefRegistrySimple;
class PrefService;
class Profile;
-class PromoBrowserCommandHandler;
+class BrowserCommandHandler;
class RealboxHandler;
class TaskModuleHandler;
class CartHandler;
@@ -66,13 +66,17 @@ class NewTabPageUI
public new_tab_page::mojom::PageHandlerFactory,
public customize_themes::mojom::CustomizeThemesHandlerFactory,
public most_visited::mojom::MostVisitedPageHandlerFactory,
- public promo_browser_command::mojom::CommandHandlerFactory,
+ public browser_command::mojom::CommandHandlerFactory,
public ui::NativeThemeObserver,
public ThemeServiceObserver,
public NtpCustomBackgroundServiceObserver,
content::WebContentsObserver {
public:
explicit NewTabPageUI(content::WebUI* web_ui);
+
+ NewTabPageUI(const NewTabPageUI&) = delete;
+ NewTabPageUI& operator=(const NewTabPageUI&) = delete;
+
~NewTabPageUI() override;
static bool IsNewTabPageOrigin(const GURL& url);
@@ -92,10 +96,10 @@ class NewTabPageUI
mojo::PendingReceiver<realbox::mojom::PageHandler> pending_page_handler);
// Instantiates the implementor of the
- // promo_browser_command::mojom::CommandHandlerFactory mojo interface passing
+ // browser_command::mojom::CommandHandlerFactory mojo interface passing
// the pending receiver that will be internally bound.
void BindInterface(
- mojo::PendingReceiver<promo_browser_command::mojom::CommandHandlerFactory>
+ mojo::PendingReceiver<browser_command::mojom::CommandHandlerFactory>
pending_receiver);
// Instantiates the implementor of the
@@ -158,9 +162,9 @@ class NewTabPageUI
mojo::PendingReceiver<customize_themes::mojom::CustomizeThemesHandler>
pending_handler) override;
- // promo_browser_command::mojom::CommandHandlerFactory
+ // browser_command::mojom::CommandHandlerFactory
void CreateBrowserCommandHandler(
- mojo::PendingReceiver<promo_browser_command::mojom::CommandHandler>
+ mojo::PendingReceiver<browser_command::mojom::CommandHandler>
pending_handler) override;
// most_visited::mojom::MostVisitedPageHandlerFactory:
@@ -191,6 +195,8 @@ class NewTabPageUI
void OnCustomLinksEnabledPrefChanged();
// Callback for when the value of the pref for showing the NTP tiles changes.
void OnTilesVisibilityPrefChanged();
+ // Called when the NTP (re)loads. Sets mutable load time data.
+ void OnLoad();
std::unique_ptr<NewTabPageHandler> page_handler_;
mojo::Receiver<new_tab_page::mojom::PageHandlerFactory>
@@ -201,8 +207,8 @@ class NewTabPageUI
std::unique_ptr<MostVisitedHandler> most_visited_page_handler_;
mojo::Receiver<most_visited::mojom::MostVisitedPageHandlerFactory>
most_visited_page_factory_receiver_;
- std::unique_ptr<PromoBrowserCommandHandler> promo_browser_command_handler_;
- mojo::Receiver<promo_browser_command::mojom::CommandHandlerFactory>
+ std::unique_ptr<BrowserCommandHandler> promo_browser_command_handler_;
+ mojo::Receiver<browser_command::mojom::CommandHandlerFactory>
browser_command_factory_receiver_;
std::unique_ptr<RealboxHandler> realbox_handler_;
#if !defined(OFFICIAL_BUILD)
@@ -234,8 +240,6 @@ class NewTabPageUI
base::WeakPtrFactory<NewTabPageUI> weak_ptr_factory_{this};
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(NewTabPageUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_NEW_TAB_PAGE_NEW_TAB_PAGE_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/new_tab_page/webui_ntp_browsertest.cc b/chromium/chrome/browser/ui/webui/new_tab_page/webui_ntp_browsertest.cc
index 88faf925705..0ebd23199c1 100644
--- a/chromium/chrome/browser/ui/webui/new_tab_page/webui_ntp_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/new_tab_page/webui_ntp_browsertest.cc
@@ -49,7 +49,7 @@ class WebUiNtpBrowserTest : public InProcessBrowserTest {
// Verify that the WebUI NTP commits in a SiteInstance with the WebUI URL.
IN_PROC_BROWSER_TEST_F(WebUiNtpBrowserTest, VerifySiteInstance) {
GURL ntp_url(chrome::kChromeUINewTabURL);
- ui_test_utils::NavigateToURL(browser(), ntp_url);
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), ntp_url));
content::WebContents* web_contents =
browser()->tab_strip_model()->GetActiveWebContents();
diff --git a/chromium/chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_handler.h b/chromium/chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_handler.h
index 580b24292e6..e21ee115d6d 100644
--- a/chromium/chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_handler.h
+++ b/chromium/chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_handler.h
@@ -33,6 +33,11 @@ class NewTabPageThirdPartyHandler
mojo::PendingRemote<new_tab_page_third_party::mojom::Page> pending_page,
Profile* profile,
content::WebContents* web_contents);
+
+ NewTabPageThirdPartyHandler(const NewTabPageThirdPartyHandler&) = delete;
+ NewTabPageThirdPartyHandler& operator=(const NewTabPageThirdPartyHandler&) =
+ delete;
+
~NewTabPageThirdPartyHandler() override;
// new_tab_page_third_party::mojom::PageHandler:
@@ -56,8 +61,6 @@ class NewTabPageThirdPartyHandler
mojo::Receiver<new_tab_page_third_party::mojom::PageHandler> receiver_;
base::WeakPtrFactory<NewTabPageThirdPartyHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(NewTabPageThirdPartyHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_NEW_TAB_PAGE_THIRD_PARTY_NEW_TAB_PAGE_THIRD_PARTY_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_ui.h b/chromium/chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_ui.h
index 2a2fbd3c5ea..a4fdd8922bb 100644
--- a/chromium/chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_ui.h
+++ b/chromium/chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_ui.h
@@ -33,6 +33,10 @@ class NewTabPageThirdPartyUI
public most_visited::mojom::MostVisitedPageHandlerFactory {
public:
explicit NewTabPageThirdPartyUI(content::WebUI* web_ui);
+
+ NewTabPageThirdPartyUI(const NewTabPageThirdPartyUI&) = delete;
+ NewTabPageThirdPartyUI& operator=(const NewTabPageThirdPartyUI&) = delete;
+
~NewTabPageThirdPartyUI() override;
static bool IsNewTabPageOrigin(const GURL& url);
@@ -76,8 +80,6 @@ class NewTabPageThirdPartyUI
base::Time navigation_start_time_;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(NewTabPageThirdPartyUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_NEW_TAB_PAGE_THIRD_PARTY_NEW_TAB_PAGE_THIRD_PARTY_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/ntp/app_icon_webui_handler.cc b/chromium/chrome/browser/ui/webui/ntp/app_icon_webui_handler.cc
index a226a710f3d..dab8b787094 100644
--- a/chromium/chrome/browser/ui/webui/ntp/app_icon_webui_handler.cc
+++ b/chromium/chrome/browser/ui/webui/ntp/app_icon_webui_handler.cc
@@ -37,7 +37,7 @@ AppIconWebUIHandler::AppIconWebUIHandler() {
AppIconWebUIHandler::~AppIconWebUIHandler() {}
void AppIconWebUIHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getAppIconDominantColor",
base::BindRepeating(&AppIconWebUIHandler::HandleGetAppIconDominantColor,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/ntp/app_icon_webui_handler.h b/chromium/chrome/browser/ui/webui/ntp/app_icon_webui_handler.h
index 18b05194c10..092eb7c2023 100644
--- a/chromium/chrome/browser/ui/webui/ntp/app_icon_webui_handler.h
+++ b/chromium/chrome/browser/ui/webui/ntp/app_icon_webui_handler.h
@@ -23,6 +23,10 @@ class AppIconWebUIHandler : public content::WebUIMessageHandler,
public ExtensionIconManager::Observer {
public:
AppIconWebUIHandler();
+
+ AppIconWebUIHandler(const AppIconWebUIHandler&) = delete;
+ AppIconWebUIHandler& operator=(const AppIconWebUIHandler&) = delete;
+
~AppIconWebUIHandler() override;
// WebUIMessageHandler
@@ -39,8 +43,6 @@ class AppIconWebUIHandler : public content::WebUIMessageHandler,
// Manage retrieval of icons from apps.
ExtensionIconManager extension_icon_manager_;
-
- DISALLOW_COPY_AND_ASSIGN(AppIconWebUIHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_NTP_APP_ICON_WEBUI_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/ntp/app_launcher_handler.cc b/chromium/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
index 0afe8f67ef7..c53f053cc2e 100644
--- a/chromium/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
+++ b/chromium/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
@@ -22,6 +22,7 @@
#include "base/time/time.h"
#include "base/values.h"
#include "build/build_config.h"
+#include "build/chromeos_buildflags.h"
#include "chrome/browser/apps/app_service/app_icon_source.h"
#include "chrome/browser/apps/app_service/app_launch_params.h"
#include "chrome/browser/apps/app_service/app_service_proxy.h"
@@ -50,16 +51,17 @@
#include "chrome/browser/ui/webui/extensions/extension_basic_info.h"
#include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
#include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
-#include "chrome/browser/web_applications/components/app_registry_controller.h"
-#include "chrome/browser/web_applications/components/web_app_constants.h"
-#include "chrome/browser/web_applications/components/web_application_info.h"
+#include "chrome/browser/web_applications/extension_status_utils.h"
#include "chrome/browser/web_applications/extensions/bookmark_app_util.h"
+#include "chrome/browser/web_applications/web_app_constants.h"
#include "chrome/browser/web_applications/web_app_icon_manager.h"
#include "chrome/browser/web_applications/web_app_install_finalizer.h"
#include "chrome/browser/web_applications/web_app_install_manager.h"
#include "chrome/browser/web_applications/web_app_install_params.h"
#include "chrome/browser/web_applications/web_app_provider.h"
#include "chrome/browser/web_applications/web_app_registrar.h"
+#include "chrome/browser/web_applications/web_app_sync_bridge.h"
+#include "chrome/browser/web_applications/web_application_info.h"
#include "chrome/common/buildflags.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/chrome_switches.h"
@@ -311,6 +313,13 @@ void AppLauncherHandler::CreateExtensionInfo(const Extension* extension,
"kioskMode",
base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode));
+ bool is_deprecated_app = false;
+#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX)
+ is_deprecated_app = extensions::IsExtensionUnsupportedDeprecatedApp(
+ extension_service_->GetBrowserContext(), extension->id());
+#endif
+ value->SetBoolean("is_deprecated_app", is_deprecated_app);
+
// The Extension class 'helpfully' wraps bidi control characters that
// impede our ability to determine directionality.
std::u16string short_name = base::UTF8ToUTF16(extension->short_name());
@@ -322,6 +331,8 @@ void AppLauncherHandler::CreateExtensionInfo(const Extension* extension,
std::u16string name = base::UTF8ToUTF16(extension->name());
base::i18n::UnadjustStringForLocaleDirection(&name);
+ if (is_deprecated_app)
+ name = l10n_util::GetStringFUTF16(IDS_APPS_PAGE_DEPRECATED_APP_TITLE, name);
NewTabUI::SetFullNameAndDirection(name, value);
bool enabled = extension_service_->IsExtensionEnabled(extension->id()) &&
@@ -426,51 +437,51 @@ void AppLauncherHandler::RegisterProfilePrefs(
}
void AppLauncherHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getApps", base::BindRepeating(&AppLauncherHandler::HandleGetApps,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"launchApp", base::BindRepeating(&AppLauncherHandler::HandleLaunchApp,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setLaunchType",
base::BindRepeating(&AppLauncherHandler::HandleSetLaunchType,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"uninstallApp",
base::BindRepeating(&AppLauncherHandler::HandleUninstallApp,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"createAppShortcut",
base::BindRepeating(&AppLauncherHandler::HandleCreateAppShortcut,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"installAppLocally",
base::BindRepeating(&AppLauncherHandler::HandleInstallAppLocally,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showAppInfo", base::BindRepeating(&AppLauncherHandler::HandleShowAppInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"reorderApps", base::BindRepeating(&AppLauncherHandler::HandleReorderApps,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setPageIndex",
base::BindRepeating(&AppLauncherHandler::HandleSetPageIndex,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"saveAppPageName",
base::BindRepeating(&AppLauncherHandler::HandleSaveAppPageName,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"generateAppForLink",
base::BindRepeating(&AppLauncherHandler::HandleGenerateAppForLink,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"pageSelected",
base::BindRepeating(&AppLauncherHandler::HandlePageSelected,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"runOnOsLogin",
base::BindRepeating(&AppLauncherHandler::HandleRunOnOsLogin,
base::Unretained(this)));
@@ -631,7 +642,7 @@ void AppLauncherHandler::FillAppDictionary(base::DictionaryValue* dictionary) {
const base::ListValue* app_page_names =
prefs->GetList(prefs::kNtpAppPageNames);
- if (!app_page_names || !app_page_names->GetSize()) {
+ if (!app_page_names || !app_page_names->GetList().size()) {
ListPrefUpdate update(prefs, prefs::kNtpAppPageNames);
base::ListValue* list = update.Get();
list->Set(0, std::make_unique<base::Value>(
@@ -743,6 +754,13 @@ void AppLauncherHandler::HandleLaunchApp(const base::ListValue* args) {
Profile* profile = extension_service_->profile();
+#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX)
+ if (extensions::IsExtensionUnsupportedDeprecatedApp(profile, extension_id)) {
+ // TODO(crbug.com/1225779): Show the deprecated apps dialog.
+ return;
+ }
+#endif
+
extensions::Manifest::Type type;
GURL full_launch_url;
apps::mojom::LaunchContainer launch_container;
@@ -772,15 +790,15 @@ void AppLauncherHandler::HandleLaunchApp(const base::ListValue* args) {
}
WindowOpenDisposition disposition =
- args->GetSize() > 3 ? webui::GetDispositionFromClick(args, 3)
- : WindowOpenDisposition::CURRENT_TAB;
+ args->GetList().size() > 3 ? webui::GetDispositionFromClick(args, 3)
+ : WindowOpenDisposition::CURRENT_TAB;
if (extension_id != extensions::kWebStoreAppId) {
CHECK_NE(launch_bucket, extension_misc::APP_LAUNCH_BUCKET_INVALID);
extensions::RecordAppLaunchType(launch_bucket, type);
} else {
extensions::RecordWebStoreLaunch();
- if (args->GetSize() > 2) {
+ if (args->GetList().size() > 2) {
std::string source_value;
CHECK(args->GetString(2, &source_value));
if (!source_value.empty()) {
@@ -860,7 +878,7 @@ void AppLauncherHandler::HandleSetLaunchType(const base::ListValue* args) {
break;
}
- web_app_provider_->registry_controller().SetAppUserDisplayMode(
+ web_app_provider_->sync_bridge().SetAppUserDisplayMode(
app_id, display_mode, /*is_user_action=*/true);
return;
}
@@ -1002,10 +1020,8 @@ void AppLauncherHandler::HandleInstallAppLocally(const base::ListValue* args) {
InstallOsHooks(app_id);
- web_app_provider_->registry_controller().SetAppIsLocallyInstalled(app_id,
- true);
- web_app_provider_->registry_controller().SetAppInstallTime(app_id,
- base::Time::Now());
+ web_app_provider_->sync_bridge().SetAppIsLocallyInstalled(app_id, true);
+ web_app_provider_->sync_bridge().SetAppInstallTime(app_id, base::Time::Now());
// Use the appAdded to update the app icon's color to no longer be
// greyscale.
@@ -1165,10 +1181,10 @@ void AppLauncherHandler::HandleRunOnOsLogin(const base::ListValue* args) {
if (!web_app_provider_->registrar().IsInstalled(app_id))
return;
- web_app_provider_->registry_controller().SetAppRunOnOsLoginMode(app_id, mode);
+ web_app_provider_->sync_bridge().SetAppRunOnOsLoginMode(app_id, mode);
if (mode == web_app::RunOnOsLoginMode::kNotRun) {
- web_app::OsHooksResults os_hooks;
+ web_app::OsHooksOptions os_hooks;
os_hooks[web_app::OsHookType::kRunOnOsLogin] = true;
web_app_provider_->os_integration_manager().UninstallOsHooks(
app_id, os_hooks, base::DoNothing());
@@ -1219,8 +1235,9 @@ void AppLauncherHandler::OnFaviconForAppInstallFromLink(
weak_ptr_factory_.GetWeakPtr());
web_app_provider_->install_manager().InstallWebAppFromInfo(
- std::move(web_app), web_app::ForInstallableSite::kUnknown,
- webapps::WebappInstallSource::SYNC, std::move(install_complete_callback));
+ std::move(web_app), /*overwrite_existing_manifest_fields=*/false,
+ web_app::ForInstallableSite::kUnknown, webapps::WebappInstallSource::SYNC,
+ std::move(install_complete_callback));
}
void AppLauncherHandler::OnExtensionPreferenceChanged() {
@@ -1251,12 +1268,13 @@ void AppLauncherHandler::PromptToEnableApp(const std::string& extension_id) {
void AppLauncherHandler::OnOsHooksInstalled(
const web_app::AppId& app_id,
- const web_app::OsHooksResults os_hooks_results) {
- // TODO(dmurph): Once installation takes the OSHookResults bitfield, then
+ const web_app::OsHooksErrors os_hooks_errors) {
+ // TODO(dmurph): Once installation takes the OsHooksErrors bitfield, then
// use that to compare with the results, and record if they all were
// successful, instead of just shortcuts.
+ bool error = os_hooks_errors[web_app::OsHookType::kShortcuts];
base::UmaHistogramBoolean("Apps.Launcher.InstallLocallyShortcutsCreated",
- os_hooks_results[web_app::OsHookType::kShortcuts]);
+ !error);
web_app_provider_->registrar().NotifyWebAppInstalledWithOsHooks(app_id);
}
diff --git a/chromium/chrome/browser/ui/webui/ntp/app_launcher_handler.h b/chromium/chrome/browser/ui/webui/ntp/app_launcher_handler.h
index 332cfa493d2..724ea48e5d6 100644
--- a/chromium/chrome/browser/ui/webui/ntp/app_launcher_handler.h
+++ b/chromium/chrome/browser/ui/webui/ntp/app_launcher_handler.h
@@ -16,11 +16,11 @@
#include "chrome/browser/extensions/install_observer.h"
#include "chrome/browser/extensions/install_tracker.h"
#include "chrome/browser/ui/extensions/extension_enable_flow_delegate.h"
-#include "chrome/browser/web_applications/components/app_registrar_observer.h"
-#include "chrome/browser/web_applications/components/web_app_id.h"
+#include "chrome/browser/web_applications/app_registrar_observer.h"
#include "chrome/browser/web_applications/os_integration_manager.h"
#include "chrome/browser/web_applications/policy/web_app_policy_manager.h"
#include "chrome/browser/web_applications/policy/web_app_policy_manager_observer.h"
+#include "chrome/browser/web_applications/web_app_id.h"
#include "chrome/browser/web_applications/web_app_registrar.h"
#include "chrome/common/extensions/extension_constants.h"
#include "components/favicon/core/favicon_service.h"
@@ -64,6 +64,10 @@ class AppLauncherHandler
public:
AppLauncherHandler(extensions::ExtensionService* extension_service,
web_app::WebAppProvider* web_app_provider);
+
+ AppLauncherHandler(const AppLauncherHandler&) = delete;
+ AppLauncherHandler& operator=(const AppLauncherHandler&) = delete;
+
~AppLauncherHandler() override;
void CreateWebAppInfo(const web_app::AppId& app_id,
@@ -187,7 +191,7 @@ class AppLauncherHandler
// Records result to UMA after OS Hooks are installed.
void OnOsHooksInstalled(const web_app::AppId& app_id,
- const web_app::OsHooksResults os_hooks_results);
+ const web_app::OsHooksErrors os_hooks_errors);
// ExtensionUninstallDialog::Delegate:
void OnExtensionUninstallDialogClosed(bool did_start_uninstall,
@@ -279,8 +283,6 @@ class AppLauncherHandler
// Used for passing callbacks.
base::WeakPtrFactory<AppLauncherHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(AppLauncherHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_NTP_APP_LAUNCHER_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/ntp/cookie_controls_handler.cc b/chromium/chrome/browser/ui/webui/ntp/cookie_controls_handler.cc
index db824f873ff..8436a8c540f 100644
--- a/chromium/chrome/browser/ui/webui/ntp/cookie_controls_handler.cc
+++ b/chromium/chrome/browser/ui/webui/ntp/cookie_controls_handler.cc
@@ -30,12 +30,12 @@ CookieControlsHandler::~CookieControlsHandler() {
}
void CookieControlsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"cookieControlsToggleChanged",
base::BindRepeating(
&CookieControlsHandler::HandleCookieControlsToggleChanged,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"observeCookieControlsSettingsChanges",
base::BindRepeating(
&CookieControlsHandler::HandleObserveCookieControlsSettingsChanges,
diff --git a/chromium/chrome/browser/ui/webui/ntp/cookie_controls_handler.h b/chromium/chrome/browser/ui/webui/ntp/cookie_controls_handler.h
index c0d8519e8bd..0f5a5d02623 100644
--- a/chromium/chrome/browser/ui/webui/ntp/cookie_controls_handler.h
+++ b/chromium/chrome/browser/ui/webui/ntp/cookie_controls_handler.h
@@ -19,6 +19,10 @@ class CookieControlsHandler : public content::WebUIMessageHandler,
public CookieControlsService::Observer {
public:
explicit CookieControlsHandler(Profile* profile);
+
+ CookieControlsHandler(const CookieControlsHandler&) = delete;
+ CookieControlsHandler& operator=(const CookieControlsHandler&) = delete;
+
~CookieControlsHandler() override;
// WebUIMessageHandler
@@ -40,8 +44,6 @@ class CookieControlsHandler : public content::WebUIMessageHandler,
void SendCookieControlsUIChanges();
CookieControlsService* service_;
-
- DISALLOW_COPY_AND_ASSIGN(CookieControlsHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_NTP_COOKIE_CONTROLS_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/ntp/core_app_launcher_handler.cc b/chromium/chrome/browser/ui/webui/ntp/core_app_launcher_handler.cc
index da2c2852ed6..00f5c8d2e1b 100644
--- a/chromium/chrome/browser/ui/webui/ntp/core_app_launcher_handler.cc
+++ b/chromium/chrome/browser/ui/webui/ntp/core_app_launcher_handler.cc
@@ -56,7 +56,7 @@ void CoreAppLauncherHandler::RecordAppLaunchByUrl(
}
void CoreAppLauncherHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"recordAppLaunchByURL",
base::BindRepeating(&CoreAppLauncherHandler::HandleRecordAppLaunchByUrl,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/ntp/core_app_launcher_handler.h b/chromium/chrome/browser/ui/webui/ntp/core_app_launcher_handler.h
index bc6c7790db4..0f424751d5f 100644
--- a/chromium/chrome/browser/ui/webui/ntp/core_app_launcher_handler.h
+++ b/chromium/chrome/browser/ui/webui/ntp/core_app_launcher_handler.h
@@ -22,6 +22,10 @@ class Profile;
class CoreAppLauncherHandler : public content::WebUIMessageHandler {
public:
CoreAppLauncherHandler();
+
+ CoreAppLauncherHandler(const CoreAppLauncherHandler&) = delete;
+ CoreAppLauncherHandler& operator=(const CoreAppLauncherHandler&) = delete;
+
~CoreAppLauncherHandler() override;
// Register app launcher preferences.
@@ -41,8 +45,6 @@ class CoreAppLauncherHandler : public content::WebUIMessageHandler {
// WebUIMessageHandler implementation.
void RegisterMessages() override;
-
- DISALLOW_COPY_AND_ASSIGN(CoreAppLauncherHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_NTP_CORE_APP_LAUNCHER_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/ntp/new_tab_ui.h b/chromium/chrome/browser/ui/webui/ntp/new_tab_ui.h
index d8595c4a49e..886adfb534b 100644
--- a/chromium/chrome/browser/ui/webui/ntp/new_tab_ui.h
+++ b/chromium/chrome/browser/ui/webui/ntp/new_tab_ui.h
@@ -27,6 +27,10 @@ class PrefRegistrySyncable;
class NewTabUI : public content::WebUIController {
public:
explicit NewTabUI(content::WebUI* web_ui);
+
+ NewTabUI(const NewTabUI&) = delete;
+ NewTabUI& operator=(const NewTabUI&) = delete;
+
~NewTabUI() override;
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
@@ -52,6 +56,10 @@ class NewTabUI : public content::WebUIController {
class NewTabHTMLSource : public content::URLDataSource {
public:
explicit NewTabHTMLSource(Profile* profile);
+
+ NewTabHTMLSource(const NewTabHTMLSource&) = delete;
+ NewTabHTMLSource& operator=(const NewTabHTMLSource&) = delete;
+
~NewTabHTMLSource() override;
// content::URLDataSource implementation.
@@ -68,15 +76,11 @@ class NewTabUI : public content::WebUIController {
private:
// Pointer back to the original profile.
Profile* profile_;
-
- DISALLOW_COPY_AND_ASSIGN(NewTabHTMLSource);
};
void OnShowBookmarkBarChanged();
Profile* GetProfile() const;
-
- DISALLOW_COPY_AND_ASSIGN(NewTabUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_NTP_NEW_TAB_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/ntp/new_tab_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/ntp/new_tab_ui_browsertest.cc
index c04adf1e291..63055d52079 100644
--- a/chromium/chrome/browser/ui/webui/ntp/new_tab_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/ntp/new_tab_ui_browsertest.cc
@@ -57,8 +57,8 @@ class NewTabUIBrowserTest : public InProcessBrowserTest {
// Navigate to incognito NTP. Fails if there are console errors.
IN_PROC_BROWSER_TEST_F(NewTabUIBrowserTest, ShowIncognito) {
- ui_test_utils::NavigateToURL(CreateIncognitoBrowser(),
- GURL(chrome::kChromeUINewTabURL));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(CreateIncognitoBrowser(),
+ GURL(chrome::kChromeUINewTabURL)));
}
class NewTabUIProcessPerTabTest : public NewTabUIBrowserTest {
@@ -76,7 +76,8 @@ class NewTabUIProcessPerTabTest : public NewTabUIBrowserTest {
// If this flakes, use http://crbug.com/87200
IN_PROC_BROWSER_TEST_F(NewTabUIProcessPerTabTest, NavBeforeNTPCommits) {
// Bring up a new tab page.
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUINewTabURL));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(),
+ GURL(chrome::kChromeUINewTabURL)));
// Navigate to chrome://hang/ to stall the process.
ui_test_utils::NavigateToURLWithDisposition(
diff --git a/chromium/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc b/chromium/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
index ce277e2375e..e9f89005b40 100644
--- a/chromium/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
+++ b/chromium/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
@@ -264,14 +264,33 @@ void NTPResourceCache::CreateNewTabIncognitoHTML() {
l10n_util::GetStringUTF8(reading_list::switches::IsReadingListEnabled()
? IDS_NEW_TAB_OTR_SUBTITLE_WITH_READING_LIST
: IDS_NEW_TAB_OTR_SUBTITLE);
- replacements["incognitoTabHeading"] =
- l10n_util::GetStringUTF8(IDS_NEW_TAB_OTR_TITLE);
- replacements["incognitoTabWarning"] =
- l10n_util::GetStringUTF8(IDS_NEW_TAB_OTR_VISIBLE);
- replacements["learnMore"] =
- l10n_util::GetStringUTF8(IDS_NEW_TAB_OTR_LEARN_MORE_LINK);
- replacements["incognitoTabFeatures"] =
- l10n_util::GetStringUTF8(IDS_NEW_TAB_OTR_NOT_SAVED);
+
+ bool use_revamped_ui =
+ base::FeatureList::IsEnabled(features::kIncognitoNtpRevamp);
+ if (use_revamped_ui) {
+ replacements["incognitoTabHeading"] =
+ l10n_util::GetStringUTF8(IDS_REVAMPED_INCOGNITO_NTP_TITLE);
+ replacements["incognitoDoesHeader"] =
+ l10n_util::GetStringUTF8(IDS_REVAMPED_INCOGNITO_NTP_DOES_HEADER);
+ replacements["incognitoDoesDescription"] =
+ l10n_util::GetStringUTF8(IDS_REVAMPED_INCOGNITO_NTP_DOES_DESCRIPTION);
+ replacements["incognitoDoesNotHeader"] =
+ l10n_util::GetStringUTF8(IDS_REVAMPED_INCOGNITO_NTP_DOES_NOT_HEADER);
+ replacements["incognitoDoesNotDescription"] = l10n_util::GetStringUTF8(
+ IDS_REVAMPED_INCOGNITO_NTP_DOES_NOT_DESCRIPTION);
+ replacements["learnMore"] =
+ l10n_util::GetStringUTF8(IDS_REVAMPED_INCOGNITO_NTP_LEARN_MORE);
+ } else {
+ replacements["incognitoTabHeading"] =
+ l10n_util::GetStringUTF8(IDS_NEW_TAB_OTR_TITLE);
+ replacements["incognitoTabWarning"] =
+ l10n_util::GetStringUTF8(IDS_NEW_TAB_OTR_VISIBLE);
+ replacements["incognitoTabFeatures"] =
+ l10n_util::GetStringUTF8(IDS_NEW_TAB_OTR_NOT_SAVED);
+ replacements["learnMore"] =
+ l10n_util::GetStringUTF8(IDS_NEW_TAB_OTR_LEARN_MORE_LINK);
+ }
+
replacements["learnMoreLink"] = kLearnMoreIncognitoUrl;
replacements["title"] = l10n_util::GetStringUTF8(
base::FeatureList::IsEnabled(
@@ -304,10 +323,13 @@ void NTPResourceCache::CreateNewTabIncognitoHTML() {
const std::string& app_locale = g_browser_process->GetApplicationLocale();
webui::SetLoadTimeDataDefaults(app_locale, &replacements);
+ int incognito_tab_html_resource_id = use_revamped_ui
+ ? IDR_REVAMPED_INCOGNITO_TAB_HTML
+ : IDR_INCOGNITO_TAB_HTML;
static const base::NoDestructor<scoped_refptr<base::RefCountedMemory>>
incognito_tab_html(
ui::ResourceBundle::GetSharedInstance().LoadDataResourceBytes(
- IDR_INCOGNITO_TAB_HTML));
+ incognito_tab_html_resource_id));
CHECK(*incognito_tab_html);
std::string full_html =
diff --git a/chromium/chrome/browser/ui/webui/ntp/ntp_resource_cache.h b/chromium/chrome/browser/ui/webui/ntp/ntp_resource_cache.h
index 56592f2de80..a920df63584 100644
--- a/chromium/chrome/browser/ui/webui/ntp/ntp_resource_cache.h
+++ b/chromium/chrome/browser/ui/webui/ntp/ntp_resource_cache.h
@@ -60,6 +60,10 @@ class NTPResourceCache : public ThemeServiceObserver,
};
explicit NTPResourceCache(Profile* profile);
+
+ NTPResourceCache(const NTPResourceCache&) = delete;
+ NTPResourceCache& operator=(const NTPResourceCache&) = delete;
+
~NTPResourceCache() override;
base::RefCountedMemory* GetNewTabGuestHTML();
@@ -120,8 +124,6 @@ class NTPResourceCache : public ThemeServiceObserver,
theme_observation_{this};
std::unique_ptr<policy::PolicyChangeRegistrar> policy_change_registrar_;
-
- DISALLOW_COPY_AND_ASSIGN(NTPResourceCache);
};
#endif // CHROME_BROWSER_UI_WEBUI_NTP_NTP_RESOURCE_CACHE_H_
diff --git a/chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc b/chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc
index 4b949a40886..fbab061c6d7 100644
--- a/chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc
+++ b/chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc
@@ -42,6 +42,11 @@ class ChromeNTPTilesInternalsMessageHandlerClient
favicon::FaviconService* favicon_service)
: handler_(favicon_service) {}
+ ChromeNTPTilesInternalsMessageHandlerClient(
+ const ChromeNTPTilesInternalsMessageHandlerClient&) = delete;
+ ChromeNTPTilesInternalsMessageHandlerClient& operator=(
+ const ChromeNTPTilesInternalsMessageHandlerClient&) = delete;
+
private:
// content::WebUIMessageHandler:
void RegisterMessages() override;
@@ -53,6 +58,10 @@ class ChromeNTPTilesInternalsMessageHandlerClient
PrefService* GetPrefs() override;
void RegisterMessageCallback(
const std::string& message,
+ base::RepeatingCallback<void(base::Value::ConstListView)> callback)
+ override;
+ void RegisterDeprecatedMessageCallback(
+ const std::string& message,
const base::RepeatingCallback<void(const base::ListValue*)>& callback)
override;
void CallJavascriptFunctionVector(
@@ -60,8 +69,6 @@ class ChromeNTPTilesInternalsMessageHandlerClient
const std::vector<const base::Value*>& values) override;
ntp_tiles::NTPTilesInternalsMessageHandler handler_;
-
- DISALLOW_COPY_AND_ASSIGN(ChromeNTPTilesInternalsMessageHandlerClient);
};
void ChromeNTPTilesInternalsMessageHandlerClient::RegisterMessages() {
@@ -111,8 +118,15 @@ PrefService* ChromeNTPTilesInternalsMessageHandlerClient::GetPrefs() {
void ChromeNTPTilesInternalsMessageHandlerClient::RegisterMessageCallback(
const std::string& message,
- const base::RepeatingCallback<void(const base::ListValue*)>& callback) {
- web_ui()->RegisterMessageCallback(message, callback);
+ base::RepeatingCallback<void(base::Value::ConstListView)> callback) {
+ web_ui()->RegisterMessageCallback(message, std::move(callback));
+}
+
+void ChromeNTPTilesInternalsMessageHandlerClient::
+ RegisterDeprecatedMessageCallback(
+ const std::string& message,
+ const base::RepeatingCallback<void(const base::ListValue*)>& callback) {
+ web_ui()->RegisterDeprecatedMessageCallback(message, callback);
}
void ChromeNTPTilesInternalsMessageHandlerClient::CallJavascriptFunctionVector(
diff --git a/chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.h b/chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.h
index 1d1a363fccc..c1f834ec592 100644
--- a/chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.h
@@ -12,10 +12,11 @@
class NTPTilesInternalsUI : public content::WebUIController {
public:
explicit NTPTilesInternalsUI(content::WebUI* web_ui);
- ~NTPTilesInternalsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(NTPTilesInternalsUI);
+ NTPTilesInternalsUI(const NTPTilesInternalsUI&) = delete;
+ NTPTilesInternalsUI& operator=(const NTPTilesInternalsUI&) = delete;
+
+ ~NTPTilesInternalsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_NTP_TILES_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/offline/offline_internals_ui.h b/chromium/chrome/browser/ui/webui/offline/offline_internals_ui.h
index 0afcec231bc..192a452aa29 100644
--- a/chromium/chrome/browser/ui/webui/offline/offline_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/offline/offline_internals_ui.h
@@ -12,10 +12,11 @@
class OfflineInternalsUI : public content::WebUIController {
public:
explicit OfflineInternalsUI(content::WebUI* web_ui);
- ~OfflineInternalsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(OfflineInternalsUI);
+ OfflineInternalsUI(const OfflineInternalsUI&) = delete;
+ OfflineInternalsUI& operator=(const OfflineInternalsUI&) = delete;
+
+ ~OfflineInternalsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_OFFLINE_OFFLINE_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/offline/offline_internals_ui_message_handler.cc b/chromium/chrome/browser/ui/webui/offline/offline_internals_ui_message_handler.cc
index 7617526c107..2c039a86241 100644
--- a/chromium/chrome/browser/ui/webui/offline/offline_internals_ui_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/offline/offline_internals_ui_message_handler.cc
@@ -544,99 +544,99 @@ void OfflineInternalsUIMessageHandler::HandleSavePageLaterCallback(
}
void OfflineInternalsUIMessageHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"deleteSelectedPages",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleDeleteSelectedPages,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"deleteSelectedRequests",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleDeleteSelectedRequests,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getRequestQueue",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleGetRequestQueue,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getStoredPages",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleGetStoredPages,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getEventLogs",
base::BindRepeating(&OfflineInternalsUIMessageHandler::HandleGetEventLogs,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setRecordRequestQueue",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleSetRecordRequestQueue,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setRecordPageModel",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleSetRecordPageModel,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setRecordPrefetchService",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleSetRecordPrefetchService,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setLimitlessPrefetchingEnabled",
base::BindRepeating(&OfflineInternalsUIMessageHandler::
HandleSetLimitlessPrefetchingEnabled,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getLimitlessPrefetchingEnabled",
base::BindRepeating(&OfflineInternalsUIMessageHandler::
HandleGetLimitlessPrefetchingEnabled,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setPrefetchTestingHeader",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleSetPrefetchTestingHeader,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getPrefetchTestingHeader",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleGetPrefetchTestingHeader,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getLoggingState",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleGetLoggingState,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"addToRequestQueue",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleAddToRequestQueue,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getNetworkStatus",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleGetNetworkStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"scheduleNwake",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleScheduleNwake,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"cancelNwake",
base::BindRepeating(&OfflineInternalsUIMessageHandler::HandleCancelNwake,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"generatePageBundle",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleGeneratePageBundle,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getOperation",
base::BindRepeating(&OfflineInternalsUIMessageHandler::HandleGetOperation,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"downloadArchive",
base::BindRepeating(
&OfflineInternalsUIMessageHandler::HandleDownloadArchive,
diff --git a/chromium/chrome/browser/ui/webui/offline/offline_internals_ui_message_handler.h b/chromium/chrome/browser/ui/webui/offline/offline_internals_ui_message_handler.h
index 0ff5ed13ead..951ce3b792e 100644
--- a/chromium/chrome/browser/ui/webui/offline/offline_internals_ui_message_handler.h
+++ b/chromium/chrome/browser/ui/webui/offline/offline_internals_ui_message_handler.h
@@ -29,6 +29,12 @@ namespace offline_internals {
class OfflineInternalsUIMessageHandler : public content::WebUIMessageHandler {
public:
OfflineInternalsUIMessageHandler();
+
+ OfflineInternalsUIMessageHandler(const OfflineInternalsUIMessageHandler&) =
+ delete;
+ OfflineInternalsUIMessageHandler& operator=(
+ const OfflineInternalsUIMessageHandler&) = delete;
+
~OfflineInternalsUIMessageHandler() override;
// WebUIMessageHandler implementation.
@@ -133,8 +139,6 @@ class OfflineInternalsUIMessageHandler : public content::WebUIMessageHandler {
// Factory for creating references in callbacks.
base::WeakPtrFactory<OfflineInternalsUIMessageHandler> weak_ptr_factory_{
this};
-
- DISALLOW_COPY_AND_ASSIGN(OfflineInternalsUIMessageHandler);
};
} // namespace offline_internals
diff --git a/chromium/chrome/browser/ui/webui/omnibox/DIR_METADATA b/chromium/chrome/browser/ui/webui/omnibox/DIR_METADATA
new file mode 100644
index 00000000000..7a9dec1c2d9
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/omnibox/DIR_METADATA
@@ -0,0 +1 @@
+mixins: "//components/omnibox/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/omnibox/omnibox_page_handler.h b/chromium/chrome/browser/ui/webui/omnibox/omnibox_page_handler.h
index ff0766c26a9..aaccb9bad22 100644
--- a/chromium/chrome/browser/ui/webui/omnibox/omnibox_page_handler.h
+++ b/chromium/chrome/browser/ui/webui/omnibox/omnibox_page_handler.h
@@ -37,6 +37,10 @@ class OmniboxPageHandler : public AutocompleteController::Observer,
// OmniboxPageHandler is deleted when the supplied pipe is destroyed.
OmniboxPageHandler(Profile* profile,
mojo::PendingReceiver<mojom::OmniboxPageHandler> receiver);
+
+ OmniboxPageHandler(const OmniboxPageHandler&) = delete;
+ OmniboxPageHandler& operator=(const OmniboxPageHandler&) = delete;
+
~OmniboxPageHandler() override;
// AutocompleteController::Observer overrides:
@@ -95,8 +99,6 @@ class OmniboxPageHandler : public AutocompleteController::Observer,
observation_{this};
base::WeakPtrFactory<OmniboxPageHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(OmniboxPageHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_OMNIBOX_OMNIBOX_PAGE_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/omnibox/omnibox_popup_handler.h b/chromium/chrome/browser/ui/webui/omnibox/omnibox_popup_handler.h
index ef7fdde0129..348a25003dc 100644
--- a/chromium/chrome/browser/ui/webui/omnibox/omnibox_popup_handler.h
+++ b/chromium/chrome/browser/ui/webui/omnibox/omnibox_popup_handler.h
@@ -5,22 +5,24 @@
#ifndef CHROME_BROWSER_UI_WEBUI_OMNIBOX_OMNIBOX_POPUP_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_OMNIBOX_OMNIBOX_POPUP_HANDLER_H_
+#include <stddef.h>
+
#include "base/macros.h"
-#include "components/omnibox/browser/omnibox_popup_model.h"
// The WebUI handler for the experimental WebUI omnibox popup.
class OmniboxPopupHandler {
public:
OmniboxPopupHandler();
+ OmniboxPopupHandler(const OmniboxPopupHandler&) = delete;
+ OmniboxPopupHandler& operator=(const OmniboxPopupHandler&) = delete;
+
// These are roughly speaking analogues of the OmniboxPopupView API.
// TODO(tommycli): Update the OmniboxPopupView API to better suit WebUI,
// then this class could potentially be an implementor of OmniboxPopupView.
void InvalidateLine(size_t line) {}
void OnSelectedLineChanged(size_t old_selected_line,
size_t new_selected_line) {}
-
- DISALLOW_COPY_AND_ASSIGN(OmniboxPopupHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_OMNIBOX_OMNIBOX_POPUP_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/omnibox/omnibox_ui.cc b/chromium/chrome/browser/ui/webui/omnibox/omnibox_ui.cc
index b6a23414547..9cae4d9f37d 100644
--- a/chromium/chrome/browser/ui/webui/omnibox/omnibox_ui.cc
+++ b/chromium/chrome/browser/ui/webui/omnibox/omnibox_ui.cc
@@ -35,7 +35,7 @@ OmniboxUI::OmniboxUI(content::WebUI* web_ui)
source->OverrideContentSecurityPolicy(
network::mojom::CSPDirectiveName::TrustedTypes,
- "trusted-types cr-autocomplete-match parse-html-subset;");
+ "trusted-types static-types parse-html-subset;");
// Expose version information to client because it is useful in output.
VersionUI::AddVersionDetailStrings(source);
diff --git a/chromium/chrome/browser/ui/webui/omnibox/omnibox_ui.h b/chromium/chrome/browser/ui/webui/omnibox/omnibox_ui.h
index bab7f36ff36..8ce119ee58b 100644
--- a/chromium/chrome/browser/ui/webui/omnibox/omnibox_ui.h
+++ b/chromium/chrome/browser/ui/webui/omnibox/omnibox_ui.h
@@ -21,6 +21,10 @@ class OmniboxPopupHandler;
class OmniboxUI : public ui::MojoWebUIController {
public:
explicit OmniboxUI(content::WebUI* contents);
+
+ OmniboxUI(const OmniboxUI&) = delete;
+ OmniboxUI& operator=(const OmniboxUI&) = delete;
+
~OmniboxUI() override;
// Instantiates the implementor of the mojom::OmniboxPageHandler mojo
@@ -40,8 +44,6 @@ class OmniboxUI : public ui::MojoWebUIController {
#endif
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(OmniboxUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_OMNIBOX_OMNIBOX_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/page_not_available_for_guest/page_not_available_for_guest_ui.h b/chromium/chrome/browser/ui/webui/page_not_available_for_guest/page_not_available_for_guest_ui.h
index 148ada2253c..6082e0c3ee9 100644
--- a/chromium/chrome/browser/ui/webui/page_not_available_for_guest/page_not_available_for_guest_ui.h
+++ b/chromium/chrome/browser/ui/webui/page_not_available_for_guest/page_not_available_for_guest_ui.h
@@ -13,8 +13,9 @@ class PageNotAvailableForGuestUI : public content::WebUIController {
explicit PageNotAvailableForGuestUI(content::WebUI* web_ui,
const std::string& host_name);
- private:
- DISALLOW_COPY_AND_ASSIGN(PageNotAvailableForGuestUI);
+ PageNotAvailableForGuestUI(const PageNotAvailableForGuestUI&) = delete;
+ PageNotAvailableForGuestUI& operator=(const PageNotAvailableForGuestUI&) =
+ delete;
};
#endif // CHROME_BROWSER_UI_WEBUI_PAGE_NOT_AVAILABLE_FOR_GUEST_PAGE_NOT_AVAILABLE_FOR_GUEST_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/plural_string_handler.cc b/chromium/chrome/browser/ui/webui/plural_string_handler.cc
index 2ecb823928f..40ddc34e86c 100644
--- a/chromium/chrome/browser/ui/webui/plural_string_handler.cc
+++ b/chromium/chrome/browser/ui/webui/plural_string_handler.cc
@@ -17,18 +17,18 @@ PluralStringHandler::PluralStringHandler() {}
PluralStringHandler::~PluralStringHandler() {}
void PluralStringHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getPluralString",
base::BindRepeating(&PluralStringHandler::HandleGetPluralString,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getPluralStringTupleWithComma",
base::BindRepeating(
&PluralStringHandler::HandleGetPluralStringTupleWithComma,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getPluralStringTupleWithPeriods",
base::BindRepeating(
&PluralStringHandler::HandleGetPluralStringTupleWithPeriods,
diff --git a/chromium/chrome/browser/ui/webui/plural_string_handler.h b/chromium/chrome/browser/ui/webui/plural_string_handler.h
index 1b103af70a2..7e309567cf3 100644
--- a/chromium/chrome/browser/ui/webui/plural_string_handler.h
+++ b/chromium/chrome/browser/ui/webui/plural_string_handler.h
@@ -15,6 +15,10 @@
class PluralStringHandler : public content::WebUIMessageHandler {
public:
PluralStringHandler();
+
+ PluralStringHandler(const PluralStringHandler&) = delete;
+ PluralStringHandler& operator=(const PluralStringHandler&) = delete;
+
~PluralStringHandler() override;
void AddLocalizedString(const std::string& name, int id);
@@ -44,8 +48,6 @@ class PluralStringHandler : public content::WebUIMessageHandler {
int count);
std::map<std::string, int> name_to_id_;
-
- DISALLOW_COPY_AND_ASSIGN(PluralStringHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_PLURAL_STRING_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/policy/policy_ui.h b/chromium/chrome/browser/ui/webui/policy/policy_ui.h
index eb4aa44e787..133881d6b10 100644
--- a/chromium/chrome/browser/ui/webui/policy/policy_ui.h
+++ b/chromium/chrome/browser/ui/webui/policy/policy_ui.h
@@ -16,10 +16,11 @@ class WebUI;
class PolicyUI : public content::WebUIController {
public:
explicit PolicyUI(content::WebUI* web_ui);
- ~PolicyUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(PolicyUI);
+ PolicyUI(const PolicyUI&) = delete;
+ PolicyUI& operator=(const PolicyUI&) = delete;
+
+ ~PolicyUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_POLICY_POLICY_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/policy/policy_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/policy/policy_ui_browsertest.cc
index de6d4390d53..e423077c0c3 100644
--- a/chromium/chrome/browser/ui/webui/policy/policy_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/policy/policy_ui_browsertest.cc
@@ -71,6 +71,10 @@ class PolicySchemaAvailableWaiter : public policy::SchemaRegistry::Observer {
: registry_(profile->GetPolicySchemaRegistryService()->registry()),
policy_namespace_(policy_namespace) {}
+ PolicySchemaAvailableWaiter(const PolicySchemaAvailableWaiter&) = delete;
+ PolicySchemaAvailableWaiter& operator=(const PolicySchemaAvailableWaiter&) =
+ delete;
+
~PolicySchemaAvailableWaiter() override { registry_->RemoveObserver(this); }
// Starts waiting for a policy schema to be available for the
@@ -101,8 +105,6 @@ class PolicySchemaAvailableWaiter : public policy::SchemaRegistry::Observer {
policy::SchemaRegistry* const registry_;
const policy::PolicyNamespace policy_namespace_;
base::RunLoop run_loop_;
-
- DISALLOW_COPY_AND_ASSIGN(PolicySchemaAvailableWaiter);
};
std::vector<std::string> PopulateExpectedPolicy(
@@ -129,7 +131,7 @@ std::vector<std::string> PopulateExpectedPolicy(
? IDS_POLICY_SCOPE_DEVICE
: IDS_POLICY_SCOPE_USER));
} else {
- expected_policy.push_back(std::string());
+ expected_policy.emplace_back();
}
// Populate expected level.
@@ -139,7 +141,7 @@ std::vector<std::string> PopulateExpectedPolicy(
? IDS_POLICY_LEVEL_RECOMMENDED
: IDS_POLICY_LEVEL_MANDATORY));
} else {
- expected_policy.push_back(std::string());
+ expected_policy.emplace_back();
}
// Populate expected status.
@@ -198,6 +200,10 @@ base::FilePath export_policies_test_file_path;
class PolicyUITest : public InProcessBrowserTest {
public:
PolicyUITest();
+
+ PolicyUITest(const PolicyUITest&) = delete;
+ PolicyUITest& operator=(const PolicyUITest&) = delete;
+
~PolicyUITest() override;
protected:
@@ -216,9 +222,6 @@ class PolicyUITest : public InProcessBrowserTest {
protected:
testing::NiceMock<policy::MockConfigurationPolicyProvider> provider_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(PolicyUITest);
};
// An artificial SelectFileDialog that immediately returns the location of test
@@ -249,7 +252,7 @@ class TestSelectFileDialog : public ui::SelectFileDialog {
bool HasMultipleFileTypeChoicesImpl() override { return false; }
private:
- ~TestSelectFileDialog() override {}
+ ~TestSelectFileDialog() override = default;
};
// A factory associated with the artificial file picker.
@@ -262,9 +265,9 @@ class TestSelectFileDialogFactory : public ui::SelectFileDialogFactory {
}
};
-PolicyUITest::PolicyUITest() {}
+PolicyUITest::PolicyUITest() = default;
-PolicyUITest::~PolicyUITest() {}
+PolicyUITest::~PolicyUITest() = default;
void PolicyUITest::SetUpInProcessBrowserTestFixture() {
provider_.SetDefaultReturns(/*is_initialization_complete_return=*/true,
@@ -290,7 +293,8 @@ void PolicyUITest::UpdateProviderPolicyForNamespace(
void PolicyUITest::VerifyPolicies(
const std::vector<std::vector<std::string>>& expected_policies) {
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIPolicyURL));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(),
+ GURL(chrome::kChromeUIPolicyURL)));
// Retrieve the text contents of the policy table cells for all policies.
const std::string javascript =
@@ -342,7 +346,8 @@ void PolicyUITest::VerifyExportingPolicies(
ui::SelectFileDialog::SetFactory(new TestSelectFileDialogFactory());
// Navigate to the about:policy page.
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIPolicyURL));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(),
+ GURL(chrome::kChromeUIPolicyURL)));
// Click on 'save policies' button.
const std::string javascript =
@@ -408,9 +413,9 @@ IN_PROC_BROWSER_TEST_F(PolicyUITest, WritePoliciesToJSONFile) {
SetChromeMetaData(&expected_values);
base::ListValue popups_blocked_for_urls;
- popups_blocked_for_urls.AppendString("aaa");
- popups_blocked_for_urls.AppendString("bbb");
- popups_blocked_for_urls.AppendString("ccc");
+ popups_blocked_for_urls.Append("aaa");
+ popups_blocked_for_urls.Append("bbb");
+ popups_blocked_for_urls.Append("ccc");
values.Set(policy::key::kPopupsBlockedForUrls, policy::POLICY_LEVEL_MANDATORY,
policy::POLICY_SCOPE_MACHINE, policy::POLICY_SOURCE_PLATFORM,
popups_blocked_for_urls.Clone(), nullptr);
@@ -463,7 +468,7 @@ IN_PROC_BROWSER_TEST_F(PolicyUITest, WritePoliciesToJSONFile) {
expected_values.RemovePath(std::string("chromePolicies.") +
std::string(policy::key::kDefaultImagesSetting));
- popups_blocked_for_urls.AppendString("ddd");
+ popups_blocked_for_urls.Append("ddd");
values.Set(policy::key::kPopupsBlockedForUrls, policy::POLICY_LEVEL_MANDATORY,
policy::POLICY_SCOPE_MACHINE, policy::POLICY_SOURCE_PLATFORM,
popups_blocked_for_urls.Clone(), nullptr);
@@ -483,7 +488,7 @@ IN_PROC_BROWSER_TEST_F(PolicyUITest, WritePoliciesToJSONFile) {
values.Set(policy::key::kAllowFileSelectionDialogs,
policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_MACHINE,
policy::POLICY_SOURCE_PLATFORM, base::Value(false), nullptr);
- popups_blocked_for_urls.AppendString("eeeeee");
+ popups_blocked_for_urls.Append("eeeeee");
values.Set(policy::key::kPopupsBlockedForUrls, policy::POLICY_LEVEL_MANDATORY,
policy::POLICY_SCOPE_MACHINE, policy::POLICY_SOURCE_PLATFORM,
popups_blocked_for_urls.Clone(), nullptr);
@@ -603,7 +608,7 @@ IN_PROC_BROWSER_TEST_F(PolicyUITest, SendPolicyValues) {
class ExtensionPolicyUITest : public PolicyUITest,
public ::testing::WithParamInterface<bool> {
public:
- ExtensionPolicyUITest() {}
+ ExtensionPolicyUITest() = default;
bool UseSigninProfile() const { return GetParam(); }
diff --git a/chromium/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chromium/chrome/browser/ui/webui/policy/policy_ui_handler.cc
index fd22a1f63d0..6e74f2597a5 100644
--- a/chromium/chrome/browser/ui/webui/policy/policy_ui_handler.cc
+++ b/chromium/chrome/browser/ui/webui/policy/policy_ui_handler.cc
@@ -38,7 +38,7 @@
#include "chrome/browser/policy/schema_registry_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/chrome_select_file_policy.h"
-#include "chrome/browser/ui/webui/management/management_ui_handler.h"
+#include "chrome/browser/ui/managed_ui.h"
#include "chrome/browser/ui/webui/version/version_ui.h"
#include "chrome/browser/ui/webui/webui_util.h"
#include "chrome/common/channel_info.h"
@@ -172,9 +172,10 @@ void GetOffHoursStatus(base::DictionaryValue* dict) {
void GetUserManager(base::DictionaryValue* dict, Profile* profile) {
CHECK(profile);
- std::string account_manager = ManagementUIHandler::GetAccountManager(profile);
- if (!account_manager.empty()) {
- dict->SetString("enterpriseDomainManager", account_manager);
+ absl::optional<std::string> account_manager =
+ chrome::GetAccountManagerIdentity(profile);
+ if (account_manager) {
+ dict->SetString("enterpriseDomainManager", *account_manager);
}
}
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -186,6 +187,18 @@ void ExtractDomainFromUsername(base::DictionaryValue* dict) {
dict->SetString("domain", gaia::ExtractDomainName(username));
}
+// MachineStatus box labels itself as `machine policies` on desktop. In the
+// domain of mobile devices such as iOS or Android we want to label this box as
+// `device policies`. This is a helper function that retrieves the expected
+// labelKey
+std::string GetMachineStatusLegendKey() {
+#if defined(OS_ANDROID)
+ return "statusDevice";
+#else
+ return "statusMachine";
+#endif // defined(OS_ANDROID)
+}
+
} // namespace
// Status provider implementation that pulls cloud policy status from a
@@ -197,6 +210,11 @@ class CloudPolicyCoreStatusProvider
public policy::CloudPolicyStore::Observer {
public:
explicit CloudPolicyCoreStatusProvider(policy::CloudPolicyCore* core);
+
+ CloudPolicyCoreStatusProvider(const CloudPolicyCoreStatusProvider&) = delete;
+ CloudPolicyCoreStatusProvider& operator=(
+ const CloudPolicyCoreStatusProvider&) = delete;
+
~CloudPolicyCoreStatusProvider() override;
// policy::CloudPolicyStore::Observer implementation.
@@ -207,9 +225,6 @@ class CloudPolicyCoreStatusProvider
// Policy status is read from the CloudPolicyClient, CloudPolicyStore and
// CloudPolicyRefreshScheduler hosted by this |core_|.
policy::CloudPolicyCore* core_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(CloudPolicyCoreStatusProvider);
};
// A cloud policy status provider for user policy.
@@ -217,6 +232,11 @@ class UserCloudPolicyStatusProvider : public CloudPolicyCoreStatusProvider {
public:
explicit UserCloudPolicyStatusProvider(policy::CloudPolicyCore* core,
Profile* profile);
+
+ UserCloudPolicyStatusProvider(const UserCloudPolicyStatusProvider&) = delete;
+ UserCloudPolicyStatusProvider& operator=(
+ const UserCloudPolicyStatusProvider&) = delete;
+
~UserCloudPolicyStatusProvider() override;
// CloudPolicyCoreStatusProvider implementation.
@@ -224,7 +244,6 @@ class UserCloudPolicyStatusProvider : public CloudPolicyCoreStatusProvider {
private:
Profile* profile_;
- DISALLOW_COPY_AND_ASSIGN(UserCloudPolicyStatusProvider);
};
#if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -234,6 +253,12 @@ class UserCloudPolicyStatusProviderChromeOS
public:
explicit UserCloudPolicyStatusProviderChromeOS(policy::CloudPolicyCore* core,
Profile* profile);
+
+ UserCloudPolicyStatusProviderChromeOS(
+ const UserCloudPolicyStatusProviderChromeOS&) = delete;
+ UserCloudPolicyStatusProviderChromeOS& operator=(
+ const UserCloudPolicyStatusProviderChromeOS&) = delete;
+
~UserCloudPolicyStatusProviderChromeOS() override;
// CloudPolicyCoreStatusProvider implementation.
@@ -241,7 +266,6 @@ class UserCloudPolicyStatusProviderChromeOS
private:
Profile* profile_;
- DISALLOW_COPY_AND_ASSIGN(UserCloudPolicyStatusProviderChromeOS);
};
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -252,6 +276,12 @@ class DeviceCloudPolicyStatusProviderChromeOS
public:
explicit DeviceCloudPolicyStatusProviderChromeOS(
policy::BrowserPolicyConnectorAsh* connector);
+
+ DeviceCloudPolicyStatusProviderChromeOS(
+ const DeviceCloudPolicyStatusProviderChromeOS&) = delete;
+ DeviceCloudPolicyStatusProviderChromeOS& operator=(
+ const DeviceCloudPolicyStatusProviderChromeOS&) = delete;
+
~DeviceCloudPolicyStatusProviderChromeOS() override;
// CloudPolicyCoreStatusProvider implementation.
@@ -259,8 +289,6 @@ class DeviceCloudPolicyStatusProviderChromeOS
private:
std::string enterprise_domain_manager_;
-
- DISALLOW_COPY_AND_ASSIGN(DeviceCloudPolicyStatusProviderChromeOS);
};
// A cloud policy status provider that reads policy status from the policy core
@@ -276,6 +304,12 @@ class DeviceLocalAccountPolicyStatusProvider
DeviceLocalAccountPolicyStatusProvider(
const std::string& user_id,
policy::DeviceLocalAccountPolicyService* service);
+
+ DeviceLocalAccountPolicyStatusProvider(
+ const DeviceLocalAccountPolicyStatusProvider&) = delete;
+ DeviceLocalAccountPolicyStatusProvider& operator=(
+ const DeviceLocalAccountPolicyStatusProvider&) = delete;
+
~DeviceLocalAccountPolicyStatusProvider() override;
// PolicyStatusProvider implementation.
@@ -288,8 +322,6 @@ class DeviceLocalAccountPolicyStatusProvider
private:
const std::string user_id_;
policy::DeviceLocalAccountPolicyService* service_;
-
- DISALLOW_COPY_AND_ASSIGN(DeviceLocalAccountPolicyStatusProvider);
};
// Provides status for Active Directory user policy.
@@ -301,6 +333,11 @@ class UserActiveDirectoryPolicyStatusProvider
policy::ActiveDirectoryPolicyManager* policy_manager,
Profile* profile);
+ UserActiveDirectoryPolicyStatusProvider(
+ const UserActiveDirectoryPolicyStatusProvider&) = delete;
+ UserActiveDirectoryPolicyStatusProvider& operator=(
+ const UserActiveDirectoryPolicyStatusProvider&) = delete;
+
~UserActiveDirectoryPolicyStatusProvider() override;
// PolicyStatusProvider implementation.
@@ -313,7 +350,6 @@ class UserActiveDirectoryPolicyStatusProvider
private:
policy::ActiveDirectoryPolicyManager* const policy_manager_; // not owned.
Profile* profile_;
- DISALLOW_COPY_AND_ASSIGN(UserActiveDirectoryPolicyStatusProvider);
};
// Provides status for Device Active Directory policy.
@@ -324,6 +360,11 @@ class DeviceActiveDirectoryPolicyStatusProvider
policy::ActiveDirectoryPolicyManager* policy_manager,
const std::string& enterprise_domain_manager);
+ DeviceActiveDirectoryPolicyStatusProvider(
+ const DeviceActiveDirectoryPolicyStatusProvider&) = delete;
+ DeviceActiveDirectoryPolicyStatusProvider& operator=(
+ const DeviceActiveDirectoryPolicyStatusProvider&) = delete;
+
~DeviceActiveDirectoryPolicyStatusProvider() override = default;
// PolicyStatusProvider implementation.
@@ -331,8 +372,6 @@ class DeviceActiveDirectoryPolicyStatusProvider
private:
std::string enterprise_domain_manager_;
-
- DISALLOW_COPY_AND_ASSIGN(DeviceActiveDirectoryPolicyStatusProvider);
};
#endif
@@ -382,7 +421,7 @@ UserCloudPolicyStatusProvider::UserCloudPolicyStatusProvider(
Profile* profile)
: CloudPolicyCoreStatusProvider(core), profile_(profile) {}
-UserCloudPolicyStatusProvider::~UserCloudPolicyStatusProvider() {}
+UserCloudPolicyStatusProvider::~UserCloudPolicyStatusProvider() = default;
void UserCloudPolicyStatusProvider::GetStatus(base::DictionaryValue* dict) {
if (!core_->store()->is_managed())
@@ -401,7 +440,7 @@ UserCloudPolicyStatusProviderChromeOS::UserCloudPolicyStatusProviderChromeOS(
}
UserCloudPolicyStatusProviderChromeOS::
- ~UserCloudPolicyStatusProviderChromeOS() {}
+ ~UserCloudPolicyStatusProviderChromeOS() = default;
void UserCloudPolicyStatusProviderChromeOS::GetStatus(
base::DictionaryValue* dict) {
@@ -599,7 +638,7 @@ void UpdaterStatusProvider::OnDomainReceived(std::string domain) {
#endif // defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
-PolicyUIHandler::PolicyUIHandler() {}
+PolicyUIHandler::PolicyUIHandler() = default;
PolicyUIHandler::~PolicyUIHandler() {
GetPolicyService()->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this);
@@ -709,7 +748,6 @@ void PolicyUIHandler::RegisterMessages() {
user_cloud_policy_manager->core(), profile);
}
-#if !defined(OS_ANDROID)
policy::MachineLevelUserCloudPolicyManager* manager =
g_browser_process->browser_policy_connector()
->machine_level_user_cloud_policy_manager();
@@ -734,7 +772,6 @@ void PolicyUIHandler::RegisterMessages() {
{dmTokenStorage->RetrieveEnrollmentToken(),
dmTokenStorage->RetrieveClientId(), lastCloudReportSent}));
}
-#endif // !defined(OS_ANDROID)
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
#if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
@@ -775,19 +812,19 @@ void PolicyUIHandler::RegisterMessages() {
->registry();
registry->AddObserver(this);
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"exportPoliciesJSON",
base::BindRepeating(&PolicyUIHandler::HandleExportPoliciesJson,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"listenPoliciesUpdates",
base::BindRepeating(&PolicyUIHandler::HandleListenPoliciesUpdates,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"reloadPolicies",
base::BindRepeating(&PolicyUIHandler::HandleReloadPolicies,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"copyPoliciesJSON",
base::BindRepeating(&PolicyUIHandler::HandleCopyPoliciesJson,
base::Unretained(this)));
@@ -974,7 +1011,8 @@ base::DictionaryValue PolicyUIHandler::GetStatusValue(bool for_webui) const {
if (!machine_status->DictEmpty()) {
if (for_webui)
- machine_status->SetString("boxLegendKey", "statusMachine");
+ machine_status->SetString("boxLegendKey", GetMachineStatusLegendKey());
+
status.Set("machine", std::move(machine_status));
}
diff --git a/chromium/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chromium/chrome/browser/ui/webui/policy/policy_ui_handler.h
index 328cfcabbda..57f776bd232 100644
--- a/chromium/chrome/browser/ui/webui/policy/policy_ui_handler.h
+++ b/chromium/chrome/browser/ui/webui/policy/policy_ui_handler.h
@@ -49,6 +49,10 @@ class PolicyUIHandler : public content::WebUIMessageHandler,
public ui::SelectFileDialog::Listener {
public:
PolicyUIHandler();
+
+ PolicyUIHandler(const PolicyUIHandler&) = delete;
+ PolicyUIHandler& operator=(const PolicyUIHandler&) = delete;
+
~PolicyUIHandler() override;
static void AddCommonLocalizedStringsToSource(
@@ -145,8 +149,6 @@ class PolicyUIHandler : public content::WebUIMessageHandler,
std::unique_ptr<PrefChangeRegistrar> pref_change_registrar_;
base::WeakPtrFactory<PolicyUIHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(PolicyUIHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_POLICY_POLICY_UI_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/predictors/DIR_METADATA b/chromium/chrome/browser/ui/webui/predictors/DIR_METADATA
new file mode 100644
index 00000000000..79bed43d307
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/predictors/DIR_METADATA
@@ -0,0 +1 @@
+mixins: "//chrome/browser/predictors/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/predictors/predictors_handler.cc b/chromium/chrome/browser/ui/webui/predictors/predictors_handler.cc
index 936f6c84e0f..c84cd50c7f2 100644
--- a/chromium/chrome/browser/ui/webui/predictors/predictors_handler.cc
+++ b/chromium/chrome/browser/ui/webui/predictors/predictors_handler.cc
@@ -32,12 +32,12 @@ PredictorsHandler::PredictorsHandler(Profile* profile) {
PredictorsHandler::~PredictorsHandler() { }
void PredictorsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestAutocompleteActionPredictorDb",
base::BindRepeating(
&PredictorsHandler::RequestAutocompleteActionPredictorDb,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestResourcePrefetchPredictorDb",
base::BindRepeating(
&PredictorsHandler::RequestResourcePrefetchPredictorDb,
diff --git a/chromium/chrome/browser/ui/webui/predictors/predictors_handler.h b/chromium/chrome/browser/ui/webui/predictors/predictors_handler.h
index 61d5d9ab730..650acc234a5 100644
--- a/chromium/chrome/browser/ui/webui/predictors/predictors_handler.h
+++ b/chromium/chrome/browser/ui/webui/predictors/predictors_handler.h
@@ -25,6 +25,10 @@ class Profile;
class PredictorsHandler : public content::WebUIMessageHandler {
public:
explicit PredictorsHandler(Profile* profile);
+
+ PredictorsHandler(const PredictorsHandler&) = delete;
+ PredictorsHandler& operator=(const PredictorsHandler&) = delete;
+
~PredictorsHandler() override;
// WebUIMessageHandler implementation.
@@ -46,8 +50,6 @@ class PredictorsHandler : public content::WebUIMessageHandler {
predictors::AutocompleteActionPredictor* autocomplete_action_predictor_;
predictors::LoadingPredictor* loading_predictor_;
-
- DISALLOW_COPY_AND_ASSIGN(PredictorsHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_PREDICTORS_PREDICTORS_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/predictors/predictors_ui.h b/chromium/chrome/browser/ui/webui/predictors/predictors_ui.h
index 0f37e349839..2b57d951699 100644
--- a/chromium/chrome/browser/ui/webui/predictors/predictors_ui.h
+++ b/chromium/chrome/browser/ui/webui/predictors/predictors_ui.h
@@ -12,8 +12,8 @@ class PredictorsUI : public content::WebUIController {
public:
explicit PredictorsUI(content::WebUI* web_ui);
- private:
- DISALLOW_COPY_AND_ASSIGN(PredictorsUI);
+ PredictorsUI(const PredictorsUI&) = delete;
+ PredictorsUI& operator=(const PredictorsUI&) = delete;
};
#endif // CHROME_BROWSER_UI_WEBUI_PREDICTORS_PREDICTORS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/prefs_internals_browsertest.cc b/chromium/chrome/browser/ui/webui/prefs_internals_browsertest.cc
index 593c34394ee..77f89fa1256 100644
--- a/chromium/chrome/browser/ui/webui/prefs_internals_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/prefs_internals_browsertest.cc
@@ -30,7 +30,7 @@ IN_PROC_BROWSER_TEST_F(PrefsInternalsTest, TestPrefsAreServed) {
// First, check that navigation succeeds.
GURL kUrl(content::GetWebUIURL(chrome::kChromeUIPrefsInternalsHost));
- ui_test_utils::NavigateToURL(browser(), kUrl);
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), kUrl));
content::WebContents* web_contents =
browser()->tab_strip_model()->GetActiveWebContents();
ASSERT_TRUE(web_contents);
diff --git a/chromium/chrome/browser/ui/webui/prefs_internals_source.h b/chromium/chrome/browser/ui/webui/prefs_internals_source.h
index 5fc4058ba9e..cc81c27cfd6 100644
--- a/chromium/chrome/browser/ui/webui/prefs_internals_source.h
+++ b/chromium/chrome/browser/ui/webui/prefs_internals_source.h
@@ -14,6 +14,10 @@ class Profile;
class PrefsInternalsSource : public content::URLDataSource {
public:
explicit PrefsInternalsSource(Profile* profile);
+
+ PrefsInternalsSource(const PrefsInternalsSource&) = delete;
+ PrefsInternalsSource& operator=(const PrefsInternalsSource&) = delete;
+
~PrefsInternalsSource() override;
// content::URLDataSource:
@@ -26,8 +30,6 @@ class PrefsInternalsSource : public content::URLDataSource {
private:
Profile* profile_;
-
- DISALLOW_COPY_AND_ASSIGN(PrefsInternalsSource);
};
#endif // CHROME_BROWSER_UI_WEBUI_PREFS_INTERNALS_SOURCE_H_
diff --git a/chromium/chrome/browser/ui/webui/print_preview/cloud_print_signin.cc b/chromium/chrome/browser/ui/webui/print_preview/cloud_print_signin.cc
index 115d0fbefac..28add4b20f3 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/cloud_print_signin.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/cloud_print_signin.cc
@@ -26,6 +26,9 @@ class SignInObserver : public content::WebContentsObserver {
SignInObserver(content::WebContents* web_contents, base::OnceClosure callback)
: WebContentsObserver(web_contents), callback_(std::move(callback)) {}
+ SignInObserver(const SignInObserver&) = delete;
+ SignInObserver& operator=(const SignInObserver&) = delete;
+
private:
// Overridden from content::WebContentsObserver:
void DidFinishNavigation(
@@ -55,8 +58,6 @@ class SignInObserver : public content::WebContentsObserver {
base::OnceClosure callback_;
base::WeakPtrFactory<SignInObserver> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(SignInObserver);
};
} // namespace
diff --git a/chromium/chrome/browser/ui/webui/print_preview/data_request_filter.cc b/chromium/chrome/browser/ui/webui/print_preview/data_request_filter.cc
new file mode 100644
index 00000000000..a729fe0e9aa
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/print_preview/data_request_filter.cc
@@ -0,0 +1,102 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/print_preview/data_request_filter.h"
+
+#include <string>
+#include <utility>
+
+#include "base/base_paths.h"
+#include "base/bind.h"
+#include "base/callback.h"
+#include "base/check.h"
+#include "base/files/file_path.h"
+#include "base/files/file_util.h"
+#include "base/memory/ref_counted_memory.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/path_service.h"
+#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
+#include "base/strings/string_util.h"
+#include "chrome/browser/printing/print_preview_data_service.h"
+#include "content/public/browser/web_ui_data_source.h"
+
+namespace printing {
+
+namespace {
+
+bool ShouldHandleRequestCallback(const std::string& path) {
+ return ParseDataPath(path, nullptr, nullptr);
+}
+
+void HandleRequestCallback(const std::string& path,
+ content::WebUIDataSource::GotDataCallback callback) {
+ int preview_ui_id;
+ int page_index;
+ CHECK(ParseDataPath(path, &preview_ui_id, &page_index));
+
+ scoped_refptr<base::RefCountedMemory> data;
+ PrintPreviewDataService::GetInstance()->GetDataEntry(preview_ui_id,
+ page_index, &data);
+ if (data.get()) {
+ std::move(callback).Run(data.get());
+ return;
+ }
+
+ // May be a test request
+ if (base::EndsWith(path, "/test.pdf", base::CompareCase::SENSITIVE)) {
+ std::string test_pdf_content;
+ base::FilePath test_data_path;
+ CHECK(base::PathService::Get(base::DIR_TEST_DATA, &test_data_path));
+ base::FilePath pdf_path =
+ test_data_path.AppendASCII("pdf/test.pdf").NormalizePathSeparators();
+
+ CHECK(base::ReadFileToString(pdf_path, &test_pdf_content));
+ scoped_refptr<base::RefCountedString> response =
+ base::RefCountedString::TakeString(&test_pdf_content);
+ std::move(callback).Run(response.get());
+ return;
+ }
+
+ // Invalid request.
+ auto empty_bytes = base::MakeRefCounted<base::RefCountedBytes>();
+ std::move(callback).Run(empty_bytes.get());
+}
+
+} // namespace
+
+void AddDataRequestFilter(content::WebUIDataSource& source) {
+ source.SetRequestFilter(base::BindRepeating(&ShouldHandleRequestCallback),
+ base::BindRepeating(&HandleRequestCallback));
+}
+
+bool ParseDataPath(const std::string& path, int* ui_id, int* page_index) {
+ std::string file_path = path.substr(0, path.find_first_of('?'));
+ if (base::EndsWith(file_path, "/test.pdf", base::CompareCase::SENSITIVE))
+ return true;
+
+ if (!base::EndsWith(file_path, "/print.pdf", base::CompareCase::SENSITIVE))
+ return false;
+
+ std::vector<std::string> url_substr =
+ base::SplitString(path, "/", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
+ if (url_substr.size() != 3)
+ return false;
+
+ int preview_ui_id = -1;
+ if (!base::StringToInt(url_substr[0], &preview_ui_id) || preview_ui_id < 0)
+ return false;
+
+ int preview_page_index = 0;
+ if (!base::StringToInt(url_substr[1], &preview_page_index))
+ return false;
+
+ if (ui_id)
+ *ui_id = preview_ui_id;
+ if (page_index)
+ *page_index = preview_page_index;
+ return true;
+}
+
+} // namespace printing
diff --git a/chromium/chrome/browser/ui/webui/print_preview/data_request_filter.h b/chromium/chrome/browser/ui/webui/print_preview/data_request_filter.h
new file mode 100644
index 00000000000..48ebc17934c
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/print_preview/data_request_filter.h
@@ -0,0 +1,40 @@
+// Copyright 2021 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.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_DATA_REQUEST_FILTER_H_
+#define CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_DATA_REQUEST_FILTER_H_
+
+#include <string>
+
+namespace content {
+class WebUIDataSource;
+} // namespace content
+
+namespace printing {
+
+// Adds a request filter for serving preview PDF data.
+void AddDataRequestFilter(content::WebUIDataSource& source);
+
+// Parses a preview PDF data path (i.e., what comes after chrome://print/ or
+// chrome-untrusted://print/), and returns true if the path seems to be valid.
+// `ui_id` and `page_index` are set to the parsed values if the provided
+// pointers aren't `nullptr`.
+//
+// The format for requesting preview PDF data is as follows:
+// chrome://print/<PrintPreviewUIID>/<PageIndex>/print.pdf
+// chrome-untrusted://print/<PrintPreviewUIID>/<PageIndex>/print.pdf
+//
+// Required parameters:
+// <PrintPreviewUIID> = PrintPreview UI ID
+// <PageIndex> = Page index is zero-based or `COMPLETE_PREVIEW_DOCUMENT_INDEX`
+// to represent a print ready PDF.
+//
+// Example:
+// chrome://print/123/10/print.pdf
+// chrome-untrusted://print/123/10/print.pdf
+bool ParseDataPath(const std::string& path, int* ui_id, int* page_index);
+
+} // namespace printing
+
+#endif // CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_DATA_REQUEST_FILTER_H_
diff --git a/chromium/chrome/browser/ui/webui/print_preview/data_request_filter_unittest.cc b/chromium/chrome/browser/ui/webui/print_preview/data_request_filter_unittest.cc
new file mode 100644
index 00000000000..0195a69bffa
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/print_preview/data_request_filter_unittest.cc
@@ -0,0 +1,28 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/print_preview/data_request_filter.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace printing {
+
+TEST(DataRequestFilterTest, ParseDataPath) {
+ int ui_id = -1;
+ int page_index = -2;
+ EXPECT_TRUE(ParseDataPath("3/4/print.pdf", &ui_id, &page_index));
+
+ EXPECT_EQ(ui_id, 3);
+ EXPECT_EQ(page_index, 4);
+}
+
+TEST(DataRequestFilterTest, ParseDataPathValid) {
+ EXPECT_TRUE(ParseDataPath("1/2/print.pdf", nullptr, nullptr));
+}
+
+TEST(DataRequestFilterTest, ParseDataPathInvalid) {
+ EXPECT_FALSE(ParseDataPath("pdf/browser_api.js", nullptr, nullptr));
+}
+
+} // namespace printing
diff --git a/chromium/chrome/browser/ui/webui/print_preview/extension_printer_handler.h b/chromium/chrome/browser/ui/webui/print_preview/extension_printer_handler.h
index 9507d55db19..cc2b0b0cfd6 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/extension_printer_handler.h
+++ b/chromium/chrome/browser/ui/webui/print_preview/extension_printer_handler.h
@@ -43,6 +43,9 @@ class ExtensionPrinterHandler : public PrinterHandler {
explicit ExtensionPrinterHandler(Profile* profile);
+ ExtensionPrinterHandler(const ExtensionPrinterHandler&) = delete;
+ ExtensionPrinterHandler& operator=(const ExtensionPrinterHandler&) = delete;
+
~ExtensionPrinterHandler() override;
// PrinterHandler implementation:
@@ -102,8 +105,6 @@ class ExtensionPrinterHandler : public PrinterHandler {
int pending_enumeration_count_ = 0;
base::WeakPtrFactory<ExtensionPrinterHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ExtensionPrinterHandler);
};
} // namespace printing
diff --git a/chromium/chrome/browser/ui/webui/print_preview/extension_printer_handler_unittest.cc b/chromium/chrome/browser/ui/webui/print_preview/extension_printer_handler_unittest.cc
index b77f5ffc204..4c8c5f3f122 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/extension_printer_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/extension_printer_handler_unittest.cc
@@ -325,6 +325,10 @@ std::string RefCountedMemoryToString(
class FakePwgRasterConverter : public PwgRasterConverter {
public:
FakePwgRasterConverter() {}
+
+ FakePwgRasterConverter(const FakePwgRasterConverter&) = delete;
+ FakePwgRasterConverter& operator=(const FakePwgRasterConverter&) = delete;
+
~FakePwgRasterConverter() override = default;
// PwgRasterConverter implementation. It writes |data| to shared memory.
@@ -366,8 +370,6 @@ class FakePwgRasterConverter : public PwgRasterConverter {
PdfRenderSettings conversion_settings_;
PwgRasterSettings bitmap_settings_;
bool fail_conversion_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(FakePwgRasterConverter);
};
// Information about received print requests.
@@ -382,6 +384,10 @@ struct PrintRequestInfo {
class FakePrinterProviderAPI : public PrinterProviderAPI {
public:
FakePrinterProviderAPI() = default;
+
+ FakePrinterProviderAPI(const FakePrinterProviderAPI&) = delete;
+ FakePrinterProviderAPI& operator=(const FakePrinterProviderAPI&) = delete;
+
~FakePrinterProviderAPI() override = default;
void DispatchGetPrintersRequested(
@@ -480,8 +486,6 @@ class FakePrinterProviderAPI : public PrinterProviderAPI {
base::queue<PrintRequestInfo> pending_print_requests_;
base::queue<PrinterProviderAPI::GetPrinterInfoCallback>
pending_usb_info_callbacks_;
-
- DISALLOW_COPY_AND_ASSIGN(FakePrinterProviderAPI);
};
std::unique_ptr<KeyedService> BuildTestingPrinterProviderAPI(
@@ -494,6 +498,11 @@ std::unique_ptr<KeyedService> BuildTestingPrinterProviderAPI(
class ExtensionPrinterHandlerTest : public testing::Test {
public:
ExtensionPrinterHandlerTest() = default;
+
+ ExtensionPrinterHandlerTest(const ExtensionPrinterHandlerTest&) = delete;
+ ExtensionPrinterHandlerTest& operator=(const ExtensionPrinterHandlerTest&) =
+ delete;
+
~ExtensionPrinterHandlerTest() override = default;
void SetUp() override {
@@ -528,9 +537,6 @@ class ExtensionPrinterHandlerTest : public testing::Test {
// Owned by |extension_printer_handler_|.
FakePwgRasterConverter* pwg_raster_converter_ = nullptr;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ExtensionPrinterHandlerTest);
};
TEST_F(ExtensionPrinterHandlerTest, GetPrinters) {
@@ -619,7 +625,7 @@ TEST_F(ExtensionPrinterHandlerTest, GetUsbPrinters) {
EXPECT_EQ(1u, call_count);
EXPECT_FALSE(is_done);
EXPECT_TRUE(printers.get());
- EXPECT_EQ(2u, printers->GetSize());
+ EXPECT_EQ(2u, printers->GetList().size());
std::unique_ptr<base::DictionaryValue> extension_1_entry(
DictionaryBuilder()
.Set("id", base::StringPrintf("provisional-usb:%s:%s",
diff --git a/chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc b/chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc
index 84ad15349d9..89d80e5c25d 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc
@@ -16,14 +16,12 @@
#include "base/task/thread_pool.h"
#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
-#include "chrome/browser/printing/print_backend_service_manager.h"
#include "chrome/browser/ui/webui/print_preview/print_preview_utils.h"
-#include "chrome/browser/ui/webui/print_preview/printer_handler.h"
#include "chrome/common/printing/printer_capabilities.h"
-#include "chrome/services/printing/public/mojom/print_backend_service.mojom.h"
#include "components/device_event_log/device_event_log.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
+#include "printing/buildflags/buildflags.h"
#include "printing/mojom/print.mojom.h"
#include "printing/printing_features.h"
@@ -35,6 +33,12 @@
#include "base/threading/thread_restrictions.h"
#endif
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
+#include "chrome/browser/printing/print_backend_service_manager.h"
+#include "chrome/browser/ui/webui/print_preview/printer_handler.h"
+#include "chrome/services/printing/public/mojom/print_backend_service.mojom.h"
+#endif
+
namespace printing {
namespace {
@@ -60,6 +64,8 @@ scoped_refptr<base::TaskRunner> CreatePrinterHandlerTaskRunner() {
#endif
}
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
+
void OnDidGetDefaultPrinterName(
PrinterHandler::DefaultPrinterCallback callback,
mojom::DefaultPrinterNameResultPtr printer_name) {
@@ -111,8 +117,7 @@ void OnDidFetchCapabilities(
// Retry the operation which should now happen at a higher privilege
// level.
- auto& service = service_mgr.GetService(device_name);
- service->FetchCapabilities(
+ service_mgr.FetchCapabilities(
device_name,
base::BindOnce(&OnDidFetchCapabilities, device_name,
/*elevated_privileges=*/true, has_secure_protocol,
@@ -135,6 +140,8 @@ void OnDidFetchCapabilities(
std::move(callback).Run(std::move(settings));
}
+#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
+
} // namespace
// static
@@ -226,20 +233,23 @@ void LocalPrinterHandlerDefault::Reset() {}
void LocalPrinterHandlerDefault::GetDefaultPrinter(DefaultPrinterCallback cb) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
if (base::FeatureList::IsEnabled(features::kEnableOopPrintDrivers)) {
VLOG(1) << "Getting default printer via service";
PrintBackendServiceManager& service_mgr =
PrintBackendServiceManager::GetInstance();
service_mgr.GetDefaultPrinterName(
base::BindOnce(&OnDidGetDefaultPrinterName, std::move(cb)));
- } else {
- VLOG(1) << "Getting default printer in-process";
- base::PostTaskAndReplyWithResult(
- task_runner_.get(), FROM_HERE,
- base::BindOnce(&GetDefaultPrinterAsync,
- g_browser_process->GetApplicationLocale()),
- std::move(cb));
+ return;
}
+#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
+
+ VLOG(1) << "Getting default printer in-process";
+ base::PostTaskAndReplyWithResult(
+ task_runner_.get(), FROM_HERE,
+ base::BindOnce(&GetDefaultPrinterAsync,
+ g_browser_process->GetApplicationLocale()),
+ std::move(cb));
}
void LocalPrinterHandlerDefault::StartGetPrinters(
@@ -247,6 +257,7 @@ void LocalPrinterHandlerDefault::StartGetPrinters(
GetPrintersDoneCallback done_callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
if (base::FeatureList::IsEnabled(features::kEnableOopPrintDrivers)) {
VLOG(1) << "Enumerate printers start via service";
PrintBackendServiceManager& service_mgr =
@@ -254,15 +265,17 @@ void LocalPrinterHandlerDefault::StartGetPrinters(
service_mgr.EnumeratePrinters(
base::BindOnce(&OnDidEnumeratePrinters, std::move(callback),
std::move(done_callback)));
- } else {
- VLOG(1) << "Enumerate printers start in-process";
- base::PostTaskAndReplyWithResult(
- task_runner_.get(), FROM_HERE,
- base::BindOnce(&EnumeratePrintersAsync,
- g_browser_process->GetApplicationLocale()),
- base::BindOnce(&ConvertPrinterListForCallback, std::move(callback),
- std::move(done_callback)));
+ return;
}
+#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
+
+ VLOG(1) << "Enumerate printers start in-process";
+ base::PostTaskAndReplyWithResult(
+ task_runner_.get(), FROM_HERE,
+ base::BindOnce(&EnumeratePrintersAsync,
+ g_browser_process->GetApplicationLocale()),
+ base::BindOnce(&ConvertPrinterListForCallback, std::move(callback),
+ std::move(done_callback)));
}
void LocalPrinterHandlerDefault::StartGetCapability(
@@ -270,6 +283,7 @@ void LocalPrinterHandlerDefault::StartGetCapability(
GetCapabilityCallback cb) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
if (base::FeatureList::IsEnabled(features::kEnableOopPrintDrivers)) {
VLOG(1) << "Getting printer capabilities via service for " << device_name;
PrintBackendServiceManager& service_mgr =
@@ -280,14 +294,16 @@ void LocalPrinterHandlerDefault::StartGetCapability(
&OnDidFetchCapabilities, device_name,
service_mgr.PrinterDriverRequiresElevatedPrivilege(device_name),
/*has_secure_protocol=*/false, std::move(cb)));
- } else {
- VLOG(1) << "Getting printer capabilities in-process for " << device_name;
- base::PostTaskAndReplyWithResult(
- task_runner_.get(), FROM_HERE,
- base::BindOnce(&FetchCapabilitiesAsync, device_name,
- g_browser_process->GetApplicationLocale()),
- std::move(cb));
+ return;
}
+#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
+
+ VLOG(1) << "Getting printer capabilities in-process for " << device_name;
+ base::PostTaskAndReplyWithResult(
+ task_runner_.get(), FROM_HERE,
+ base::BindOnce(&FetchCapabilitiesAsync, device_name,
+ g_browser_process->GetApplicationLocale()),
+ std::move(cb));
}
void LocalPrinterHandlerDefault::StartPrint(
diff --git a/chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default.h b/chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default.h
index e577718f57d..8a411197bad 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default.h
+++ b/chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default.h
@@ -29,6 +29,11 @@ class LocalPrinterHandlerDefault : public PrinterHandler {
public:
explicit LocalPrinterHandlerDefault(
content::WebContents* preview_web_contents);
+
+ LocalPrinterHandlerDefault(const LocalPrinterHandlerDefault&) = delete;
+ LocalPrinterHandlerDefault& operator=(const LocalPrinterHandlerDefault&) =
+ delete;
+
~LocalPrinterHandlerDefault() override;
// PrinterHandler implementation.
@@ -53,8 +58,6 @@ class LocalPrinterHandlerDefault : public PrinterHandler {
// TaskRunner for blocking tasks. Threading behavior is platform-specific.
scoped_refptr<base::TaskRunner> const task_runner_;
-
- DISALLOW_COPY_AND_ASSIGN(LocalPrinterHandlerDefault);
};
} // namespace printing
diff --git a/chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default_unittest.cc b/chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default_unittest.cc
index ce2753e7f5b..b628bf26723 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/local_printer_handler_default_unittest.cc
@@ -13,18 +13,24 @@
#include "base/memory/scoped_refptr.h"
#include "base/strings/string_piece.h"
#include "base/values.h"
-#include "chrome/browser/printing/print_backend_service_manager.h"
-#include "chrome/browser/printing/print_backend_service_test_impl.h"
#include "chrome/common/printing/printer_capabilities.h"
#include "chrome/test/base/testing_profile.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/browser_task_environment.h"
#include "printing/backend/print_backend.h"
#include "printing/backend/test_print_backend.h"
+#include "printing/buildflags/buildflags.h"
#include "printing/print_job_constants.h"
#include "printing/printing_features.h"
#include "testing/gtest/include/gtest/gtest.h"
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
+#include "chrome/browser/printing/print_backend_service_manager.h"
+#include "chrome/browser/printing/print_backend_service_test_impl.h"
+#else
+#include "base/notreached.h"
+#endif
+
namespace printing {
namespace {
@@ -96,9 +102,11 @@ class LocalPrinterHandlerDefaultTestBase : public testing::Test {
virtual bool SupportFallback() = 0;
void SetUp() override {
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
// Choose between running with local test runner or via a service.
feature_list_.InitWithFeatureState(features::kEnableOopPrintDrivers,
UseService());
+#endif
TestingProfile::Builder builder;
profile_ = builder.Build();
@@ -110,6 +118,7 @@ class LocalPrinterHandlerDefaultTestBase : public testing::Test {
std::make_unique<LocalPrinterHandlerDefault>(initiator_.get());
if (UseService()) {
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
sandboxed_print_backend_service_ =
PrintBackendServiceTestImpl::LaunchForTesting(sandboxed_test_remote_,
sandboxed_test_backend_,
@@ -122,6 +131,9 @@ class LocalPrinterHandlerDefaultTestBase : public testing::Test {
unsandboxed_test_remote_, unsandboxed_test_backend_,
/*sandboxed=*/false);
}
+#else
+ NOTREACHED();
+#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
} else {
// Use of task runners will call `PrintBackend::CreateInstance()`, which
// needs a test backend registered for it to use.
@@ -129,7 +141,9 @@ class LocalPrinterHandlerDefaultTestBase : public testing::Test {
}
}
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
void TearDown() override { PrintBackendServiceManager::ResetForTesting(); }
+#endif
void AddPrinter(const std::string& id,
const std::string& display_name,
@@ -162,6 +176,7 @@ class LocalPrinterHandlerDefaultTestBase : public testing::Test {
}
}
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
void SetTerminateServiceOnNextInteraction() {
if (SupportFallback()) {
unsandboxed_print_backend_service_
@@ -170,6 +185,7 @@ class LocalPrinterHandlerDefaultTestBase : public testing::Test {
sandboxed_print_backend_service_->SetTerminateReceiverOnNextInteraction();
}
+#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
void RunUntilIdle() { task_environment_.RunUntilIdle(); }
@@ -186,6 +202,7 @@ class LocalPrinterHandlerDefaultTestBase : public testing::Test {
scoped_refptr<TestPrintBackend> unsandboxed_test_backend_;
std::unique_ptr<LocalPrinterHandlerDefault> local_printer_handler_;
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
// Support for testing via a service instead of with a local task runner.
base::test::ScopedFeatureList feature_list_;
mojo::Remote<mojom::PrintBackendService> sandboxed_test_remote_;
@@ -193,6 +210,7 @@ class LocalPrinterHandlerDefaultTestBase : public testing::Test {
std::unique_ptr<PrintBackendServiceTestImpl> sandboxed_print_backend_service_;
std::unique_ptr<PrintBackendServiceTestImpl>
unsandboxed_print_backend_service_;
+#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
};
// Testing class to cover `LocalPrinterHandlerDefault` handling using either a
@@ -214,6 +232,8 @@ class LocalPrinterHandlerDefaultTestProcess
bool SupportFallback() override { return false; }
};
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
+
// Testing class to cover `LocalPrinterHandlerDefault` handling using only a
// service. This can check different behavior for whether fallback is enabled,
// Mojom data validation conditions, or service termination.
@@ -240,6 +260,15 @@ INSTANTIATE_TEST_SUITE_P(All,
LocalPrinterHandlerDefaultTestProcess,
testing::Bool());
+#else
+
+// Without OOP printing we only test local test runner configuration.
+INSTANTIATE_TEST_SUITE_P(/*no prefix */,
+ LocalPrinterHandlerDefaultTestProcess,
+ testing::Values(false));
+
+#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
+
// Tests that getting default printer is successful.
TEST_P(LocalPrinterHandlerDefaultTestProcess, GetDefaultPrinter) {
AddPrinter("printer1", "default1", "description1", /*is_default=*/true,
@@ -270,6 +299,8 @@ TEST_P(LocalPrinterHandlerDefaultTestProcess, GetDefaultPrinterNoneInstalled) {
EXPECT_TRUE(default_printer.empty());
}
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
+
// Tests that getting the default printer fails if the print backend service
// terminates early, such as it would from a crash.
TEST_F(LocalPrinterHandlerDefaultTestService,
@@ -289,6 +320,8 @@ TEST_F(LocalPrinterHandlerDefaultTestService,
EXPECT_TRUE(default_printer.empty());
}
+#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
+
TEST_P(LocalPrinterHandlerDefaultTestProcess, GetPrinters) {
AddPrinter("printer1", "default1", "description1", /*is_default=*/true,
/*requires_elevated_permissions=*/false);
@@ -359,6 +392,8 @@ TEST_P(LocalPrinterHandlerDefaultTestProcess, GetPrintersNoneRegistered) {
EXPECT_FALSE(printers);
}
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
+
// Tests that enumerating printers fails when there is invalid printer data.
TEST_F(LocalPrinterHandlerDefaultTestService,
GetPrintersInvalidPrinterDataFails) {
@@ -409,6 +444,8 @@ TEST_F(LocalPrinterHandlerDefaultTestService, GetPrintersTerminatedService) {
EXPECT_FALSE(printers);
}
+#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
+
// Tests that fetching capabilities for an existing installed printer is
// successful.
TEST_P(LocalPrinterHandlerDefaultTestProcess, StartGetCapabilityValidPrinter) {
@@ -455,6 +492,8 @@ TEST_P(LocalPrinterHandlerDefaultTestProcess, StartGetCapabilityAccessDenied) {
EXPECT_TRUE(fetched_caps.is_none());
}
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
+
// Tests that fetching capabilities can eventually succeed with fallback
// processing when a printer requires elevated permissions.
TEST_F(LocalPrinterHandlerDefaultTestService,
@@ -516,4 +555,6 @@ TEST_F(LocalPrinterHandlerDefaultTestService,
EXPECT_TRUE(fetched_caps.is_none());
}
+#endif // #if BUILDFLAG(ENABLE_OOP_PRINTING)
+
} // namespace printing
diff --git a/chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc b/chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
index 1b18146a4ba..8933bc14bde 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
@@ -89,7 +89,7 @@ const AccountId& GetAccountId(Profile* profile) {
gfx::Size GetDefaultPdfMediaSizeMicrons() {
PrintingContextDelegate delegate;
auto printing_context(PrintingContext::Create(&delegate));
- if (PrintingContext::OK != printing_context->UsePdfSettings() ||
+ if (mojom::ResultCode::kSuccess != printing_context->UsePdfSettings() ||
printing_context->settings().device_units_per_inch() <= 0) {
return gfx::Size();
}
diff --git a/chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler.h b/chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler.h
index e326047aef5..b3a6eaa2708 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler.h
+++ b/chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler.h
@@ -37,6 +37,9 @@ class PdfPrinterHandler : public PrinterHandler,
content::WebContents* preview_web_contents,
PrintPreviewStickySettings* sticky_settings);
+ PdfPrinterHandler(const PdfPrinterHandler&) = delete;
+ PdfPrinterHandler& operator=(const PdfPrinterHandler&) = delete;
+
~PdfPrinterHandler() override;
// PrinterHandler implementation
@@ -122,8 +125,6 @@ class PdfPrinterHandler : public PrinterHandler,
#endif
base::WeakPtrFactory<PdfPrinterHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(PdfPrinterHandler);
};
} // namespace printing
diff --git a/chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler_win_unittest.cc b/chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler_win_unittest.cc
index b25ec6b7343..caa57e04d8d 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler_win_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/pdf_printer_handler_win_unittest.cc
@@ -95,6 +95,10 @@ class FakePdfPrinterHandler : public PdfPrinterHandler {
class PdfPrinterHandlerWinTest : public BrowserWithTestWindowTest {
public:
PdfPrinterHandlerWinTest() {}
+
+ PdfPrinterHandlerWinTest(const PdfPrinterHandlerWinTest&) = delete;
+ PdfPrinterHandlerWinTest& operator=(const PdfPrinterHandlerWinTest&) = delete;
+
~PdfPrinterHandlerWinTest() override {}
void SetUp() override {
@@ -111,9 +115,6 @@ class PdfPrinterHandlerWinTest : public BrowserWithTestWindowTest {
protected:
std::unique_ptr<FakePdfPrinterHandler> pdf_printer_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(PdfPrinterHandlerWinTest);
};
TEST_F(PdfPrinterHandlerWinTest, TestSaveAsPdf) {
diff --git a/chromium/chrome/browser/ui/webui/print_preview/policy_settings.h b/chromium/chrome/browser/ui/webui/print_preview/policy_settings.h
index a77d0782632..4fc8e97d1c6 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/policy_settings.h
+++ b/chromium/chrome/browser/ui/webui/print_preview/policy_settings.h
@@ -18,9 +18,11 @@ namespace printing {
// the user.
class PolicySettings {
public:
- static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
+ PolicySettings() = delete;
+ PolicySettings(const PolicySettings&) = delete;
+ PolicySettings& operator=(const PolicySettings&) = delete;
- DISALLOW_IMPLICIT_CONSTRUCTORS(PolicySettings);
+ static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
};
} // namespace printing
diff --git a/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler.cc b/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
index cf1051683df..647025262d6 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
@@ -26,11 +26,11 @@
#include "base/values.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
-#include "chrome/browser/account_manager_facade_factory.h"
#include "chrome/browser/app_mode/app_mode_utils.h"
#include "chrome/browser/bad_message.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/printing/background_printing_manager.h"
+#include "chrome/browser/printing/prefs_util.h"
#include "chrome/browser/printing/print_error_dialog.h"
#include "chrome/browser/printing/print_job_manager.h"
#include "chrome/browser/printing/print_preview_dialog_controller.h"
@@ -60,7 +60,6 @@
#include "components/cloud_devices/common/cloud_devices_urls.h"
#include "components/cloud_devices/common/printer_description.h"
#include "components/prefs/pref_service.h"
-#include "components/printing/browser/prefs_util.h"
#include "components/printing/common/cloud_print_cdd_conversion.h"
#include "components/url_formatter/url_formatter.h"
#include "content/public/browser/browser_context.h"
@@ -82,6 +81,7 @@
#if defined(OS_CHROMEOS)
#include "chromeos/crosapi/mojom/local_printer.mojom.h"
#include "components/account_manager_core/account_manager_facade.h"
+#include "components/account_manager_core/chromeos/account_manager_facade_factory.h"
#endif
#if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -207,6 +207,10 @@ const char kIsDriveMounted[] = "isDriveMounted";
// for a PDF job.
const char kPrintPdfAsImageAvailability[] = "printPdfAsImageAvailability";
#endif // defined(OS_WIN) || defined(OS_MAC)
+// Name of dictionary pref holding policy value for whether the
+// "Print as image" option should default to set in Print Preview for
+// a PDF job.
+const char kPrintPdfAsImage[] = "printPdfAsImage";
// Get the print job settings dictionary from |json_str|.
// Returns |base::Value()| on failure.
@@ -342,6 +346,19 @@ base::Value PoliciesToValue(crosapi::mojom::PoliciesPtr ptr) {
if (!pin_policy.DictEmpty())
policies.SetKey(kPin, std::move(pin_policy));
+ base::Value print_as_image_for_pdf_default_policy(
+ base::Value::Type::DICTIONARY);
+ if (ptr->default_print_pdf_as_image !=
+ crosapi::mojom::Policies::OptionalBool::kUnset) {
+ print_as_image_for_pdf_default_policy.SetBoolKey(
+ kDefaultMode, ptr->default_print_pdf_as_image ==
+ crosapi::mojom::Policies::OptionalBool::kTrue);
+ }
+ if (!print_as_image_for_pdf_default_policy.DictEmpty()) {
+ policies.SetKey(kPrintPdfAsImage,
+ std::move(print_as_image_for_pdf_default_policy));
+ }
+
return policies;
}
@@ -402,6 +419,17 @@ base::Value GetPolicies(const PrefService& prefs) {
}
#endif // defined(OS_WIN) || defined(OS_MAC)
+ base::Value print_as_image_for_pdf_default_policy(
+ base::Value::Type::DICTIONARY);
+ if (prefs.HasPrefPath(prefs::kPrintPdfAsImageDefault)) {
+ print_as_image_for_pdf_default_policy.SetBoolKey(
+ kDefaultMode, prefs.GetBoolean(prefs::kPrintPdfAsImageDefault));
+ }
+ if (!print_as_image_for_pdf_default_policy.DictEmpty()) {
+ policies.SetKey(kPrintPdfAsImage,
+ std::move(print_as_image_for_pdf_default_policy));
+ }
+
return policies;
}
#endif // defined(OS_CHROMEOS)
@@ -436,50 +464,50 @@ PrintPreviewHandler::PrintPreviewHandler() {
PrintPreviewHandler::~PrintPreviewHandler() = default;
void PrintPreviewHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getPrinters",
base::BindRepeating(&PrintPreviewHandler::HandleGetPrinters,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getPreview", base::BindRepeating(&PrintPreviewHandler::HandleGetPreview,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"print", base::BindRepeating(&PrintPreviewHandler::HandlePrint,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getPrinterCapabilities",
base::BindRepeating(&PrintPreviewHandler::HandleGetPrinterCapabilities,
base::Unretained(this)));
#if BUILDFLAG(ENABLE_BASIC_PRINT_DIALOG)
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showSystemDialog",
base::BindRepeating(&PrintPreviewHandler::HandleShowSystemDialog,
base::Unretained(this)));
#endif
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"signIn", base::BindRepeating(&PrintPreviewHandler::HandleSignin,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"closePrintPreviewDialog",
base::BindRepeating(&PrintPreviewHandler::HandleClosePreviewDialog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"hidePreview",
base::BindRepeating(&PrintPreviewHandler::HandleHidePreview,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"cancelPendingPrintRequest",
base::BindRepeating(&PrintPreviewHandler::HandleCancelPendingPrintRequest,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"saveAppState",
base::BindRepeating(&PrintPreviewHandler::HandleSaveAppState,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getInitialSettings",
base::BindRepeating(&PrintPreviewHandler::HandleGetInitialSettings,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"managePrinters",
base::BindRepeating(&PrintPreviewHandler::HandleManagePrinters,
base::Unretained(this)));
@@ -669,7 +697,7 @@ void PrintPreviewHandler::HandleGetPrinterCapabilities(
}
void PrintPreviewHandler::HandleGetPreview(const base::ListValue* args) {
- DCHECK_EQ(2U, args->GetSize());
+ DCHECK_EQ(2U, args->GetList().size());
std::string callback_id;
std::string json_str;
@@ -783,9 +811,7 @@ void PrintPreviewHandler::HandlePrint(const base::ListValue* args) {
PrintDocumentTypeBuckets doc_type =
is_pdf ? PrintDocumentTypeBuckets::kPdfDocument
: PrintDocumentTypeBuckets::kHtmlDocument;
- size_t average_page_size_in_kb = data->size() / page_count;
- average_page_size_in_kb /= 1024;
- ReportPrintDocumentTypeAndSizeHistograms(doc_type, average_page_size_in_kb);
+ ReportPrintDocumentTypeHistograms(doc_type);
}
ReportUserActionHistogram(user_action);
@@ -1232,7 +1258,7 @@ void PrintPreviewHandler::OnAddedPrinters(mojom::PrinterType printer_type,
if (printer_type == mojom::PrinterType::kLocal &&
!has_logged_printers_count_) {
- ReportNumberOfPrinters(printers.GetSize());
+ ReportNumberOfPrinters(printers.GetList().size());
has_logged_printers_count_ = true;
}
}
diff --git a/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_chromeos.cc b/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_chromeos.cc
index c2e850695e2..7bf25db1595 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_chromeos.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_chromeos.cc
@@ -128,34 +128,34 @@ PrintPreviewHandlerChromeOS::PrintPreviewHandlerChromeOS() {
PrintPreviewHandlerChromeOS::~PrintPreviewHandlerChromeOS() = default;
void PrintPreviewHandlerChromeOS::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setupPrinter",
base::BindRepeating(&PrintPreviewHandlerChromeOS::HandlePrinterSetup,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getAccessToken",
base::BindRepeating(&PrintPreviewHandlerChromeOS::HandleGetAccessToken,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"grantExtensionPrinterAccess",
base::BindRepeating(
&PrintPreviewHandlerChromeOS::HandleGrantExtensionPrinterAccess,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getEulaUrl",
base::BindRepeating(&PrintPreviewHandlerChromeOS::HandleGetEulaUrl,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestPrinterStatus",
base::BindRepeating(
&PrintPreviewHandlerChromeOS::HandleRequestPrinterStatusUpdate,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"choosePrintServers",
base::BindRepeating(
&PrintPreviewHandlerChromeOS::HandleChoosePrintServers,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getPrintServersConfig",
base::BindRepeating(
&PrintPreviewHandlerChromeOS::HandleGetPrintServersConfig,
@@ -233,7 +233,7 @@ void PrintPreviewHandlerChromeOS::HandleGetAccessToken(
void PrintPreviewHandlerChromeOS::HandleGetEulaUrl(
const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
MaybeAllowJavascript();
const std::string& callback_id = args->GetList()[0].GetString();
@@ -322,7 +322,7 @@ void PrintPreviewHandlerChromeOS::OnGotExtensionPrinterInfo(
void PrintPreviewHandlerChromeOS::HandleRequestPrinterStatusUpdate(
const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
const std::string& callback_id = args->GetList()[0].GetString();
const std::string& printer_id = args->GetList()[1].GetString();
@@ -337,7 +337,7 @@ void PrintPreviewHandlerChromeOS::HandleRequestPrinterStatusUpdate(
void PrintPreviewHandlerChromeOS::HandleChoosePrintServers(
const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value& val = args->GetList()[0];
std::vector<std::string> print_server_ids;
diff --git a/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_unittest.cc b/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_unittest.cc
index 095abde0dcd..7e5b1bbd303 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_unittest.cc
@@ -39,6 +39,7 @@
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui_controller.h"
#include "content/public/test/browser_task_environment.h"
+#include "content/public/test/navigation_simulator.h"
#include "content/public/test/test_renderer_host.h"
#include "content/public/test/test_web_ui.h"
#include "printing/mojom/print.mojom.h"
@@ -182,8 +183,6 @@ void CheckHistograms(const base::HistogramTester& histograms,
// Only one PrintPreview.UserAction bucket should have been populated.
histograms.ExpectTotalCount("PrintPreview.UserAction", 1);
- histograms.ExpectTotalCount("PrintPreview.PrintDocumentSize.HTML", 1);
- histograms.ExpectTotalCount("PrintPreview.PrintDocumentSize.PDF", 0);
histograms.ExpectBucketCount("PrintPreview.PrintDocumentType",
PrintDocumentTypeBuckets::kHtmlDocument, 1);
histograms.ExpectBucketCount("PrintPreview.PrintDocumentType",
@@ -401,6 +400,10 @@ class PrintPreviewHandlerTest : public testing::Test {
initiator_web_contents_ = content::WebContents::Create(
content::WebContents::CreateParams(profile_));
content::WebContents* initiator = initiator_web_contents_.get();
+ // Ensure the initiator has a RenderFrameHost with a live RenderFrame, as
+ // the print code will not bother to send IPCs to a non-live RenderFrame.
+ content::NavigationSimulator::NavigateAndCommitFromDocument(
+ GURL("about:blank"), initiator->GetMainFrame());
preview_web_contents_ = content::WebContents::Create(
content::WebContents::CreateParams(profile_));
PrintViewManager::CreateForWebContents(initiator);
diff --git a/chromium/chrome/browser/ui/webui/print_preview/print_preview_metrics.cc b/chromium/chrome/browser/ui/webui/print_preview/print_preview_metrics.cc
index 5c083e91967..3ebe206bd3c 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/print_preview_metrics.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/print_preview_metrics.cc
@@ -32,19 +32,8 @@ void ReportNumberOfPrinters(size_t number) {
UMA_HISTOGRAM_COUNTS_1M("PrintPreview.NumberOfPrinters", number);
}
-void ReportPrintDocumentTypeAndSizeHistograms(PrintDocumentTypeBuckets doctype,
- size_t average_page_size_in_kb) {
+void ReportPrintDocumentTypeHistograms(PrintDocumentTypeBuckets doctype) {
base::UmaHistogramEnumeration("PrintPreview.PrintDocumentType", doctype);
- switch (doctype) {
- case PrintDocumentTypeBuckets::kHtmlDocument:
- base::UmaHistogramMemoryKB("PrintPreview.PrintDocumentSize.HTML",
- average_page_size_in_kb);
- return;
- case PrintDocumentTypeBuckets::kPdfDocument:
- base::UmaHistogramMemoryKB("PrintPreview.PrintDocumentSize.PDF",
- average_page_size_in_kb);
- return;
- }
}
void ReportPrintSettingsStats(const base::Value& print_settings,
diff --git a/chromium/chrome/browser/ui/webui/print_preview/print_preview_metrics.h b/chromium/chrome/browser/ui/webui/print_preview/print_preview_metrics.h
index 351e12f2bcd..69b7d01b3da 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/print_preview_metrics.h
+++ b/chromium/chrome/browser/ui/webui/print_preview/print_preview_metrics.h
@@ -76,8 +76,7 @@ enum class UserActionBuckets {
// Record the number of local printers.
void ReportNumberOfPrinters(size_t number);
-void ReportPrintDocumentTypeAndSizeHistograms(PrintDocumentTypeBuckets doctype,
- size_t average_page_size_in_kb);
+void ReportPrintDocumentTypeHistograms(PrintDocumentTypeBuckets doctype);
// Track the popularity of print settings and report the stats.
void ReportPrintSettingsStats(const base::Value& print_settings,
diff --git a/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui.cc b/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui.cc
index 424ee9168d9..a72645a12ac 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui.cc
@@ -9,21 +9,15 @@
#include <vector>
#include "ash/constants/ash_features.h"
-#include "base/base_paths.h"
#include "base/bind.h"
#include "base/containers/flat_map.h"
#include "base/containers/id_map.h"
#include "base/files/file_path.h"
-#include "base/files/file_util.h"
#include "base/lazy_instance.h"
#include "base/macros.h"
#include "base/memory/ref_counted_memory.h"
#include "base/metrics/histogram_functions.h"
#include "base/numerics/safe_conversions.h"
-#include "base/path_service.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/strings/string_split.h"
-#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/synchronization/lock.h"
#include "base/values.h"
@@ -33,7 +27,6 @@
#include "chrome/browser/pdf/pdf_extension_util.h"
#include "chrome/browser/printing/background_printing_manager.h"
#include "chrome/browser/printing/pdf_nup_converter_client.h"
-#include "chrome/browser/printing/print_backend_service_manager.h"
#include "chrome/browser/printing/print_job_manager.h"
#include "chrome/browser/printing/print_preview_data_service.h"
#include "chrome/browser/printing/print_preview_dialog_controller.h"
@@ -44,6 +37,7 @@
#include "chrome/browser/ui/ui_features.h"
#include "chrome/browser/ui/webui/metrics_handler.h"
#include "chrome/browser/ui/webui/plural_string_handler.h"
+#include "chrome/browser/ui/webui/print_preview/data_request_filter.h"
#include "chrome/browser/ui/webui/print_preview/print_preview_handler.h"
#include "chrome/browser/ui/webui/theme_source.h"
#include "chrome/browser/ui/webui/webui_util.h"
@@ -65,12 +59,13 @@
#include "content/public/browser/url_data_source.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui_data_source.h"
+#include "content/public/common/url_constants.h"
#include "extensions/common/constants.h"
#include "mojo/public/cpp/bindings/callback_helpers.h"
+#include "printing/buildflags/buildflags.h"
#include "printing/mojom/print.mojom.h"
#include "printing/nup_parameters.h"
#include "printing/print_job_constants.h"
-#include "printing/printing_features.h"
#include "services/network/public/mojom/content_security_policy.mojom.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/webui/web_ui_util.h"
@@ -86,6 +81,11 @@
#include "chrome/browser/ui/webui/managed_ui_handler.h"
#endif
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
+#include "chrome/browser/printing/print_backend_service_manager.h"
+#include "printing/printing_features.h"
+#endif
+
using content::WebContents;
namespace printing {
@@ -142,6 +142,12 @@ WebContents* GetInitiator(content::WebUI* web_ui) {
class PrintPreviewRequestIdMapWithLock {
public:
PrintPreviewRequestIdMapWithLock() {}
+
+ PrintPreviewRequestIdMapWithLock(const PrintPreviewRequestIdMapWithLock&) =
+ delete;
+ PrintPreviewRequestIdMapWithLock& operator=(
+ const PrintPreviewRequestIdMapWithLock&) = delete;
+
~PrintPreviewRequestIdMapWithLock() {}
// Gets the value for |preview_id|.
@@ -173,8 +179,6 @@ class PrintPreviewRequestIdMapWithLock {
PrintPreviewRequestIdMap map_;
base::Lock lock_;
-
- DISALLOW_COPY_AND_ASSIGN(PrintPreviewRequestIdMapWithLock);
};
// Written to on the UI thread, read from any thread.
@@ -186,49 +190,6 @@ base::LazyInstance<PrintPreviewRequestIdMapWithLock>::DestructorAtExit
base::LazyInstance<base::IDMap<PrintPreviewUI*>>::DestructorAtExit
g_print_preview_ui_id_map = LAZY_INSTANCE_INITIALIZER;
-bool ShouldHandleRequestCallback(const std::string& path) {
- // ChromeWebUIDataSource handles most requests except for the print preview
- // data.
- return PrintPreviewUI::ParseDataPath(path, nullptr, nullptr);
-}
-
-// Get markup or other resources for the print preview page.
-void HandleRequestCallback(const std::string& path,
- content::WebUIDataSource::GotDataCallback callback) {
- // ChromeWebUIDataSource handles most requests except for the print preview
- // data.
- int preview_ui_id;
- int page_index;
- CHECK(PrintPreviewUI::ParseDataPath(path, &preview_ui_id, &page_index));
-
- scoped_refptr<base::RefCountedMemory> data;
- PrintPreviewDataService::GetInstance()->GetDataEntry(preview_ui_id,
- page_index, &data);
- if (data.get()) {
- std::move(callback).Run(data.get());
- return;
- }
-
- // May be a test request
- if (base::EndsWith(path, "/test.pdf", base::CompareCase::SENSITIVE)) {
- std::string test_pdf_content;
- base::FilePath test_data_path;
- CHECK(base::PathService::Get(base::DIR_TEST_DATA, &test_data_path));
- base::FilePath pdf_path =
- test_data_path.AppendASCII("pdf/test.pdf").NormalizePathSeparators();
-
- CHECK(base::ReadFileToString(pdf_path, &test_pdf_content));
- scoped_refptr<base::RefCountedString> response =
- base::RefCountedString::TakeString(&test_pdf_content);
- std::move(callback).Run(response.get());
- return;
- }
-
- // Invalid request.
- auto empty_bytes = base::MakeRefCounted<base::RefCountedBytes>();
- std::move(callback).Run(empty_bytes.get());
-}
-
void AddPrintPreviewStrings(content::WebUIDataSource* source) {
static constexpr webui::LocalizedString kLocalizedStrings[] = {
{"accountSelectTitle", IDS_PRINT_PREVIEW_ACCOUNT_SELECT_TITLE},
@@ -411,13 +372,16 @@ void AddPrintPreviewFlags(content::WebUIDataSource* source, Profile* profile) {
}
void SetupPrintPreviewPlugin(content::WebUIDataSource* source) {
- source->SetRequestFilter(base::BindRepeating(&ShouldHandleRequestCallback),
- base::BindRepeating(&HandleRequestCallback));
+ // TODO(crbug.com/1238829): Only serve PDF from chrome-untrusted://print. The
+ // legacy Pepper-based PDF plugin still requires this.
+ AddDataRequestFilter(*source);
source->OverrideContentSecurityPolicy(
- network::mojom::CSPDirectiveName::ChildSrc, "child-src 'self';");
+ network::mojom::CSPDirectiveName::ChildSrc,
+ "child-src 'self' chrome-untrusted://print;");
source->DisableDenyXFrameOptions();
source->OverrideContentSecurityPolicy(
- network::mojom::CSPDirectiveName::ObjectSrc, "object-src 'self';");
+ network::mojom::CSPDirectiveName::ObjectSrc,
+ "object-src chrome-untrusted://print;");
}
content::WebUIDataSource* CreatePrintPreviewUISource(Profile* profile) {
@@ -466,6 +430,7 @@ PrintPreviewUI::PrintPreviewUI(content::WebUI* web_ui,
handler_(handler.get()) {
web_ui->AddMessageHandler(std::move(handler));
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
// Register with print backend service manager; it is beneficial to have a
// the print backend service be present and ready for at least as long as
// this UI is around.
@@ -473,12 +438,16 @@ PrintPreviewUI::PrintPreviewUI(content::WebUI* web_ui,
service_manager_client_id_ =
PrintBackendServiceManager::GetInstance().RegisterClient();
}
+#endif
}
PrintPreviewUI::PrintPreviewUI(content::WebUI* web_ui)
: ConstrainedWebDialogUI(web_ui),
initial_preview_start_time_(base::TimeTicks::Now()),
handler_(CreatePrintPreviewHandlers(web_ui)) {
+ // Allow requests to URLs like chrome-untrusted://print/.
+ web_ui->AddRequestableScheme(content::kChromeUIUntrustedScheme);
+
// Set up the chrome://print/ data source.
Profile* profile = Profile::FromWebUI(web_ui);
content::WebUIDataSource* source = CreatePrintPreviewUISource(profile);
@@ -491,6 +460,7 @@ PrintPreviewUI::PrintPreviewUI(content::WebUI* web_ui)
// Set up the chrome://theme/ source.
content::URLDataSource::Add(profile, std::make_unique<ThemeSource>(profile));
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
// Register with print backend service manager; it is beneficial to have a
// the print backend service be present and ready for at least as long as
// this UI is around.
@@ -498,13 +468,16 @@ PrintPreviewUI::PrintPreviewUI(content::WebUI* web_ui)
service_manager_client_id_ =
PrintBackendServiceManager::GetInstance().RegisterClient();
}
+#endif
}
PrintPreviewUI::~PrintPreviewUI() {
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
if (base::FeatureList::IsEnabled(features::kEnableOopPrintDrivers)) {
PrintBackendServiceManager::GetInstance().UnregisterClient(
service_manager_client_id_);
}
+#endif
ClearPreviewUIId();
}
@@ -541,37 +514,6 @@ void PrintPreviewUI::SetPrintPreviewDataForIndex(
std::move(data));
}
-// static
-bool PrintPreviewUI::ParseDataPath(const std::string& path,
- int* ui_id,
- int* page_index) {
- std::string file_path = path.substr(0, path.find_first_of('?'));
- if (base::EndsWith(file_path, "/test.pdf", base::CompareCase::SENSITIVE))
- return true;
-
- if (!base::EndsWith(file_path, "/print.pdf", base::CompareCase::SENSITIVE))
- return false;
-
- std::vector<std::string> url_substr =
- base::SplitString(path, "/", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
- if (url_substr.size() != 3)
- return false;
-
- int preview_ui_id = -1;
- if (!base::StringToInt(url_substr[0], &preview_ui_id) || preview_ui_id < 0)
- return false;
-
- int preview_page_index = 0;
- if (!base::StringToInt(url_substr[1], &preview_page_index))
- return false;
-
- if (ui_id)
- *ui_id = preview_ui_id;
- if (page_index)
- *page_index = preview_page_index;
- return true;
-}
-
void PrintPreviewUI::ClearAllPreviewData() {
PrintPreviewDataService::GetInstance()->RemoveEntry(*id_);
}
diff --git a/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui.h b/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui.h
index d1080e20929..87780312398 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui.h
+++ b/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui.h
@@ -23,6 +23,7 @@
#include "components/printing/common/print.mojom.h"
#include "components/services/print_compositor/public/mojom/print_compositor.mojom.h"
#include "mojo/public/cpp/bindings/associated_receiver.h"
+#include "printing/buildflags/buildflags.h"
#include "printing/mojom/print.mojom-forward.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "ui/gfx/geometry/rect.h"
@@ -43,6 +44,9 @@ class PrintPreviewUI : public ConstrainedWebDialogUI,
public:
explicit PrintPreviewUI(content::WebUI* web_ui);
+ PrintPreviewUI(const PrintPreviewUI&) = delete;
+ PrintPreviewUI& operator=(const PrintPreviewUI&) = delete;
+
~PrintPreviewUI() override;
mojo::PendingAssociatedRemote<mojom::PrintPreviewUI> BindPrintPreviewUI();
@@ -110,28 +114,6 @@ class PrintPreviewUI : public ConstrainedWebDialogUI,
// Save pdf pages temporarily before ready to do N-up conversion.
void AddPdfPageForNupConversion(base::ReadOnlySharedMemoryRegion pdf_page);
- // PrintPreviewUI serves data for chrome://print requests.
- //
- // The format for requesting PDF data is as follows:
- // chrome://print/<PrintPreviewUIID>/<PageIndex>/print.pdf
- //
- // Required parameters:
- // <PrintPreviewUIID> = PrintPreview UI ID
- // <PageIndex> = Page index is zero-based or
- // |COMPLETE_PREVIEW_DOCUMENT_INDEX| to represent
- // a print ready PDF.
- //
- // Example:
- // chrome://print/123/10/print.pdf
- //
- // ParseDataPath() takes a path (i.e. what comes after chrome://print/) and
- // returns true if the path seems to be a valid data path. |ui_id| and
- // |page_index| are set to the parsed values if the provided pointers aren't
- // nullptr.
- static bool ParseDataPath(const std::string& path,
- int* ui_id,
- int* page_index);
-
// Set initial settings for PrintPreviewUI.
static void SetInitialParams(content::WebContents* print_preview_dialog,
const mojom::RequestPrintPreviewParams& params);
@@ -275,8 +257,10 @@ class PrintPreviewUI : public ConstrainedWebDialogUI,
// GetIDForPrintPreviewUI() everywhere.
absl::optional<int32_t> id_;
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
// This UI's client ID with the print backend service manager.
uint32_t service_manager_client_id_;
+#endif
// Weak pointer to the WebUI handler.
PrintPreviewHandler* const handler_;
@@ -321,8 +305,6 @@ class PrintPreviewUI : public ConstrainedWebDialogUI,
mojo::AssociatedReceiver<mojom::PrintPreviewUI> receiver_{this};
base::WeakPtrFactory<PrintPreviewUI> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(PrintPreviewUI);
};
} // namespace printing
diff --git a/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_browsertest.cc
index 1052355c78e..e477049c852 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_browsertest.cc
@@ -143,7 +143,7 @@ IN_PROC_BROWSER_TEST_F(PrintPreviewBrowserTest,
0, {TabStripModel::GestureType::kOther});
// Navigate main tab to hide print preview.
- ui_test_utils::NavigateToURL(browser(), GURL("about:blank"));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GURL("about:blank")));
browser()->tab_strip_model()->ActivateTabAt(
1, {TabStripModel::GestureType::kOther});
diff --git a/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_unittest.cc b/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_unittest.cc
index d75d446d471..9131de9b319 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_unittest.cc
@@ -49,6 +49,10 @@ bool IsShowingWebContentsModalDialog(WebContents* tab) {
class PrintPreviewUIUnitTest : public PrintPreviewTest {
public:
PrintPreviewUIUnitTest() {}
+
+ PrintPreviewUIUnitTest(const PrintPreviewUIUnitTest&) = delete;
+ PrintPreviewUIUnitTest& operator=(const PrintPreviewUIUnitTest&) = delete;
+
~PrintPreviewUIUnitTest() override {}
protected:
@@ -57,9 +61,6 @@ class PrintPreviewUIUnitTest : public PrintPreviewTest {
chrome::NewTab(browser());
}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(PrintPreviewUIUnitTest);
};
// Create/Get a preview tab for initiator.
@@ -211,19 +212,6 @@ TEST_F(PrintPreviewUIUnitTest, ShouldCancelRequest) {
*preview_ui->GetIDForPrintPreviewUI(), kSecondRequestId));
}
-TEST_F(PrintPreviewUIUnitTest, ParseDataPath) {
- EXPECT_FALSE(
- PrintPreviewUI::ParseDataPath("pdf/browser_api.js", nullptr, nullptr));
- EXPECT_TRUE(PrintPreviewUI::ParseDataPath("1/2/print.pdf", nullptr, nullptr));
-
- int ui_id = -1;
- int page_index = -2;
- EXPECT_TRUE(
- PrintPreviewUI::ParseDataPath("3/4/print.pdf", &ui_id, &page_index));
- EXPECT_EQ(ui_id, 3);
- EXPECT_EQ(page_index, 4);
-}
-
// Ensures that a failure cancels all pending actions.
TEST_F(PrintPreviewUIUnitTest, PrintPreviewFailureCancelsPendingActions) {
WebContents* initiator = browser()->tab_strip_model()->GetActiveWebContents();
diff --git a/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_untrusted.cc b/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_untrusted.cc
new file mode 100644
index 00000000000..fc79426dc50
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_untrusted.cc
@@ -0,0 +1,40 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/print_preview/print_preview_ui_untrusted.h"
+
+#include <memory>
+
+#include "chrome/browser/ui/webui/print_preview/data_request_filter.h"
+#include "chrome/common/webui_url_constants.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/browser/web_ui.h"
+#include "content/public/browser/web_ui_data_source.h"
+#include "content/public/common/url_constants.h"
+
+namespace printing {
+
+PrintPreviewUIUntrustedConfig::PrintPreviewUIUntrustedConfig()
+ : WebUIConfig(content::kChromeUIUntrustedScheme,
+ chrome::kChromeUIPrintHost) {}
+
+PrintPreviewUIUntrustedConfig::~PrintPreviewUIUntrustedConfig() = default;
+
+std::unique_ptr<content::WebUIController>
+PrintPreviewUIUntrustedConfig::CreateWebUIController(content::WebUI* web_ui) {
+ return std::make_unique<PrintPreviewUIUntrusted>(web_ui);
+}
+
+PrintPreviewUIUntrusted::PrintPreviewUIUntrusted(content::WebUI* web_ui)
+ : UntrustedWebUIController(web_ui) {
+ std::unique_ptr<content::WebUIDataSource> source(
+ content::WebUIDataSource::Create(chrome::kChromeUIUntrustedPrintURL));
+ AddDataRequestFilter(*source);
+ content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
+ source.release());
+}
+
+PrintPreviewUIUntrusted::~PrintPreviewUIUntrusted() = default;
+
+} // namespace printing
diff --git a/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_untrusted.h b/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_untrusted.h
new file mode 100644
index 00000000000..4c370811f4e
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/print_preview/print_preview_ui_untrusted.h
@@ -0,0 +1,37 @@
+// Copyright 2021 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.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_PRINT_PREVIEW_UI_UNTRUSTED_H_
+#define CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_PRINT_PREVIEW_UI_UNTRUSTED_H_
+
+#include "ui/webui/untrusted_web_ui_controller.h"
+#include "ui/webui/webui_config.h"
+
+namespace content {
+class WebUI;
+} // namespace content
+
+namespace printing {
+
+class PrintPreviewUIUntrustedConfig : public ui::WebUIConfig {
+ public:
+ PrintPreviewUIUntrustedConfig();
+ ~PrintPreviewUIUntrustedConfig() override;
+
+ // ui::WebUIConfig:
+ std::unique_ptr<content::WebUIController> CreateWebUIController(
+ content::WebUI* web_ui) override;
+};
+
+class PrintPreviewUIUntrusted : public ui::UntrustedWebUIController {
+ public:
+ explicit PrintPreviewUIUntrusted(content::WebUI* web_ui);
+ PrintPreviewUIUntrusted(const PrintPreviewUIUntrusted&) = delete;
+ PrintPreviewUIUntrusted& operator=(const PrintPreviewUIUntrusted&) = delete;
+ ~PrintPreviewUIUntrusted() override;
+};
+
+} // namespace printing
+
+#endif // CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_PRINT_PREVIEW_UI_UNTRUSTED_H_
diff --git a/chromium/chrome/browser/ui/webui/print_preview/print_preview_utils.cc b/chromium/chrome/browser/ui/webui/print_preview/print_preview_utils.cc
index f72fd98c899..a3cbcbe9e0f 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/print_preview_utils.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/print_preview_utils.cc
@@ -176,7 +176,7 @@ void ConvertPrinterListForCallback(
base::ListValue printers;
PrintersToValues(printer_list, &printers);
- VLOG(1) << "Enumerate printers finished, found " << printers.GetSize()
+ VLOG(1) << "Enumerate printers finished, found " << printers.GetList().size()
<< " printers";
if (!printers.GetList().empty())
callback.Run(printers);
diff --git a/chromium/chrome/browser/ui/webui/profile_info_watcher.h b/chromium/chrome/browser/ui/webui/profile_info_watcher.h
index 129ed867de6..5862b339950 100644
--- a/chromium/chrome/browser/ui/webui/profile_info_watcher.h
+++ b/chromium/chrome/browser/ui/webui/profile_info_watcher.h
@@ -23,6 +23,10 @@ class IdentityManager;
class ProfileInfoWatcher : public ProfileAttributesStorage::Observer {
public:
ProfileInfoWatcher(Profile* profile, base::RepeatingClosure callback);
+
+ ProfileInfoWatcher(const ProfileInfoWatcher&) = delete;
+ ProfileInfoWatcher& operator=(const ProfileInfoWatcher&) = delete;
+
~ProfileInfoWatcher() override;
// Gets the authenticated username (e.g. username@gmail.com) for |profile_|.
@@ -46,8 +50,6 @@ class ProfileInfoWatcher : public ProfileAttributesStorage::Observer {
base::RepeatingClosure callback_;
BooleanPrefMember signin_allowed_pref_;
-
- DISALLOW_COPY_AND_ASSIGN(ProfileInfoWatcher);
};
#endif // CHROME_BROWSER_UI_WEBUI_PROFILE_INFO_WATCHER_H_
diff --git a/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_handler.cc b/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_handler.cc
index 2ca773d0b82..8d92a3e62a0 100644
--- a/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_handler.cc
+++ b/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_handler.cc
@@ -41,10 +41,10 @@ QuotaInternalsHandler::~QuotaInternalsHandler() {
}
void QuotaInternalsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestInfo", base::BindRepeating(&QuotaInternalsHandler::OnRequestInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"triggerStoragePressure",
base::BindRepeating(&QuotaInternalsHandler::OnTriggerStoragePressure,
base::Unretained(this)));
@@ -109,7 +109,7 @@ void QuotaInternalsHandler::OnRequestInfo(const base::ListValue*) {
void QuotaInternalsHandler::OnTriggerStoragePressure(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string origin_string;
CHECK(args->GetString(0, &origin_string));
GURL url(origin_string);
diff --git a/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_handler.h b/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_handler.h
index 2d155a6d52a..44620a8de57 100644
--- a/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_handler.h
+++ b/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_handler.h
@@ -32,6 +32,10 @@ typedef std::map<std::string, std::string> Statistics;
class QuotaInternalsHandler : public content::WebUIMessageHandler {
public:
QuotaInternalsHandler();
+
+ QuotaInternalsHandler(const QuotaInternalsHandler&) = delete;
+ QuotaInternalsHandler& operator=(const QuotaInternalsHandler&) = delete;
+
~QuotaInternalsHandler() override;
void RegisterMessages() override;
@@ -48,8 +52,6 @@ class QuotaInternalsHandler : public content::WebUIMessageHandler {
void OnTriggerStoragePressure(const base::ListValue*);
scoped_refptr<QuotaInternalsProxy> proxy_;
-
- DISALLOW_COPY_AND_ASSIGN(QuotaInternalsHandler);
};
} // namespace quota_internals
diff --git a/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.cc b/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.cc
index d244c7aeac8..bb14b45a74a 100644
--- a/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.cc
+++ b/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.cc
@@ -185,25 +185,25 @@ void QuotaInternalsProxy::RequestPerOriginInfo(StorageType type) {
std::set<blink::StorageKey> storage_keys =
quota_manager_->GetCachedStorageKeys(type);
- std::vector<PerOriginStorageInfo> origin_info;
- origin_info.reserve(storage_keys.size());
+ std::vector<PerOriginStorageInfo> origin_infos;
+ origin_infos.reserve(storage_keys.size());
std::set<std::string> hosts;
- std::vector<PerHostStorageInfo> host_info;
+ std::vector<PerHostStorageInfo> host_infos;
for (const blink::StorageKey& storage_key : storage_keys) {
- PerOriginStorageInfo info(storage_key.origin().GetURL(), type);
- origin_info.push_back(info);
+ PerOriginStorageInfo per_origin_info(storage_key.origin().GetURL(), type);
+ origin_infos.push_back(per_origin_info);
const std::string& host = storage_key.origin().host();
if (hosts.insert(host).second) {
- PerHostStorageInfo info(host, type);
- host_info.push_back(info);
+ PerHostStorageInfo per_host_info(host, type);
+ host_infos.push_back(per_host_info);
VisitHost(host, type);
}
}
- ReportPerOriginInfo(origin_info);
- ReportPerHostInfo(host_info);
+ ReportPerOriginInfo(origin_infos);
+ ReportPerHostInfo(host_infos);
}
void QuotaInternalsProxy::VisitHost(const std::string& host, StorageType type) {
diff --git a/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h b/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h
index 7dc259d3ead..03e0fc2f133 100644
--- a/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h
+++ b/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h
@@ -38,6 +38,9 @@ class QuotaInternalsProxy
public:
explicit QuotaInternalsProxy(QuotaInternalsHandler* handler);
+ QuotaInternalsProxy(const QuotaInternalsProxy&) = delete;
+ QuotaInternalsProxy& operator=(const QuotaInternalsProxy&) = delete;
+
void RequestInfo(scoped_refptr<storage::QuotaManager> quota_manager);
void TriggerStoragePressure(
url::Origin origin,
@@ -87,8 +90,6 @@ class QuotaInternalsProxy
hosts_pending_;
std::vector<PerHostStorageInfo> report_pending_;
base::WeakPtrFactory<QuotaInternalsProxy> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(QuotaInternalsProxy);
};
} // namespace quota_internals
diff --git a/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_ui.cc b/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_ui.cc
index d636b3e5f1e..15f04e9db40 100644
--- a/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_ui.cc
+++ b/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_ui.cc
@@ -31,7 +31,7 @@ content::WebUIDataSource* CreateQuotaInternalsHTMLSource() {
source->AddResourcePath("", IDR_QUOTA_INTERNALS_MAIN_HTML);
source->OverrideContentSecurityPolicy(
network::mojom::CSPDirectiveName::TrustedTypes,
- "trusted-types cr-ui-tree-js-static;");
+ "trusted-types static-types;");
return source;
}
diff --git a/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_ui.h b/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_ui.h
index 9dc78b070ce..4106c87b2b0 100644
--- a/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/quota_internals/quota_internals_ui.h
@@ -11,10 +11,11 @@
class QuotaInternalsUI : public content::WebUIController {
public:
explicit QuotaInternalsUI(content::WebUI* web_ui);
- ~QuotaInternalsUI() override {}
- private:
- DISALLOW_COPY_AND_ASSIGN(QuotaInternalsUI);
+ QuotaInternalsUI(const QuotaInternalsUI&) = delete;
+ QuotaInternalsUI& operator=(const QuotaInternalsUI&) = delete;
+
+ ~QuotaInternalsUI() override {}
};
#endif // CHROME_BROWSER_UI_WEBUI_QUOTA_INTERNALS_QUOTA_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/read_later/read_later.mojom b/chromium/chrome/browser/ui/webui/read_later/read_later.mojom
index 75e3d2ca768..464d82ddf45 100644
--- a/chromium/chrome/browser/ui/webui/read_later/read_later.mojom
+++ b/chromium/chrome/browser/ui/webui/read_later/read_later.mojom
@@ -54,6 +54,9 @@ interface PageHandler {
// Shows a context menu for a read later entry.
ShowContextMenuForURL(url.mojom.Url url, int32 x, int32 y);
+ // Updates the reading list current page action button state.
+ UpdateCurrentPageActionButtonState();
+
// Notify the backend that the UI is ready to be shown.
ShowUI();
diff --git a/chromium/chrome/browser/ui/webui/read_later/read_later_page_handler.cc b/chromium/chrome/browser/ui/webui/read_later/read_later_page_handler.cc
index 19e4321fdd2..40c57692891 100644
--- a/chromium/chrome/browser/ui/webui/read_later/read_later_page_handler.cc
+++ b/chromium/chrome/browser/ui/webui/read_later/read_later_page_handler.cc
@@ -77,12 +77,14 @@ class ReadLaterItemContextMenu : public ui::SimpleMenuModel,
browser_(browser),
reading_list_model_(reading_list_model),
url_(url) {
+ // Context menus have bookmark strings to keep consistent with Bookmark tab
+ // in the side panel.
AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENLINKNEWTAB,
- IDS_CONTENT_CONTEXT_OPENLINKNEWTAB);
+ IDS_BOOKMARK_BAR_OPEN_IN_NEW_TAB);
AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW,
- IDS_CONTENT_CONTEXT_OPENLINKNEWWINDOW);
+ IDS_BOOKMARK_BAR_OPEN_IN_NEW_WINDOW);
AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD,
- IDS_CONTENT_CONTEXT_OPENLINKOFFTHERECORD);
+ IDS_BOOKMARK_BAR_OPEN_INCOGNITO);
AddSeparator(ui::NORMAL_SEPARATOR);
if (reading_list_model->GetEntryByURL(url)->IsRead()) {
@@ -100,10 +102,9 @@ class ReadLaterItemContextMenu : public ui::SimpleMenuModel,
switch (command_id) {
case IDC_CONTENT_CONTEXT_OPENLINKNEWTAB: {
content::OpenURLParams params(url_, content::Referrer(),
- WindowOpenDisposition::NEW_FOREGROUND_TAB,
+ WindowOpenDisposition::NEW_BACKGROUND_TAB,
ui::PAGE_TRANSITION_AUTO_BOOKMARK, false);
browser_->OpenURL(params);
- reading_list_model_->SetReadStatus(url_, true);
break;
}
@@ -112,7 +113,6 @@ class ReadLaterItemContextMenu : public ui::SimpleMenuModel,
WindowOpenDisposition::NEW_WINDOW,
ui::PAGE_TRANSITION_AUTO_BOOKMARK, false);
browser_->OpenURL(params);
- reading_list_model_->SetReadStatus(url_, true);
break;
}
@@ -235,6 +235,7 @@ void ReadLaterPageHandler::AddCurrentTab() {
return;
chrome::MoveCurrentTabToReadLater(browser);
+ reading_list_model_->MarkAllSeen();
base::RecordAction(
base::UserMetricsAction(base::FeatureList::IsEnabled(features::kSidePanel)
@@ -258,12 +259,14 @@ void ReadLaterPageHandler::ShowContextMenuForURL(const GURL& url,
browser, reading_list_model_, url));
}
+void ReadLaterPageHandler::UpdateCurrentPageActionButtonState() {
+ page_->CurrentPageActionButtonStateChanged(current_page_action_button_state_);
+}
+
void ReadLaterPageHandler::ShowUI() {
auto embedder = read_later_ui_->embedder();
- if (embedder) {
+ if (embedder)
embedder->ShowUI();
- UpdateCurrentPageActionButton();
- }
}
void ReadLaterPageHandler::CloseUI() {
@@ -279,6 +282,7 @@ void ReadLaterPageHandler::ReadingListModelCompletedBatchUpdates(
return;
page_->ItemsChanged(CreateReadLaterEntriesByStatusData());
UpdateCurrentPageActionButton();
+ reading_list_model_->MarkAllSeen();
}
void ReadLaterPageHandler::ReadingListModelBeingDeleted(
@@ -298,6 +302,7 @@ void ReadLaterPageHandler::ReadingListDidApplyChanges(ReadingListModel* model) {
}
page_->ItemsChanged(CreateReadLaterEntriesByStatusData());
UpdateCurrentPageActionButton();
+ reading_list_model_->MarkAllSeen();
}
const absl::optional<GURL> ReadLaterPageHandler::GetActiveTabURL() {
@@ -368,14 +373,15 @@ std::string ReadLaterPageHandler::GetTimeSinceLastUpdate(
if (last_update_time > now)
return std::string();
const base::TimeDelta elapsed_time =
- base::TimeDelta::FromMicroseconds(now - last_update_time);
+ base::Microseconds(now - last_update_time);
return base::UTF16ToUTF8(
ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_ELAPSED,
ui::TimeFormat::LENGTH_SHORT, elapsed_time));
}
void ReadLaterPageHandler::UpdateCurrentPageActionButton() {
- if (web_contents_->GetVisibility() == content::Visibility::HIDDEN)
+ if (web_contents_->GetVisibility() == content::Visibility::HIDDEN ||
+ Profile::FromWebUI(web_ui_)->IsGuestSession())
return;
const absl::optional<GURL> url = GetActiveTabURL();
diff --git a/chromium/chrome/browser/ui/webui/read_later/read_later_page_handler.h b/chromium/chrome/browser/ui/webui/read_later/read_later_page_handler.h
index 7ecc2b51717..091de982e0a 100644
--- a/chromium/chrome/browser/ui/webui/read_later/read_later_page_handler.h
+++ b/chromium/chrome/browser/ui/webui/read_later/read_later_page_handler.h
@@ -50,6 +50,7 @@ class ReadLaterPageHandler : public read_later::mojom::PageHandler,
void AddCurrentTab() override;
void RemoveEntry(const GURL& url) override;
void ShowContextMenuForURL(const GURL& url, int32_t x, int32_t y) override;
+ void UpdateCurrentPageActionButtonState() override;
void ShowUI() override;
void CloseUI() override;
@@ -95,7 +96,7 @@ class ReadLaterPageHandler : public read_later::mojom::PageHandler,
absl::optional<GURL> active_tab_url_;
read_later::mojom::CurrentPageActionButtonState
current_page_action_button_state_ =
- read_later::mojom::CurrentPageActionButtonState::kAdd;
+ read_later::mojom::CurrentPageActionButtonState::kDisabled;
base::Clock* clock_;
diff --git a/chromium/chrome/browser/ui/webui/read_later/read_later_page_handler_unittest.cc b/chromium/chrome/browser/ui/webui/read_later/read_later_page_handler_unittest.cc
index 3251cd50a8a..6a0529e81de 100644
--- a/chromium/chrome/browser/ui/webui/read_later/read_later_page_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/read_later/read_later_page_handler_unittest.cc
@@ -163,9 +163,12 @@ class TestReadLaterPageHandlerTest : public BrowserWithTestWindowTest {
};
TEST_F(TestReadLaterPageHandlerTest, GetReadLaterEntries) {
- // Expect ItemsChanged to be called twice from the two AddEntry calls in
- // SetUp().
- EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(2);
+ // Expect ItemsChanged to be called four times from the two AddEntry calls in
+ // SetUp() each AddEntry call while the reading list is open triggers items to
+ // be marked as read which triggers an ItemsChanged call.
+ EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(4);
+ // Expect CurrentPageActionButtonStateChanged to be called once.
+ EXPECT_CALL(page_, CurrentPageActionButtonStateChanged(testing::_)).Times(1);
// Get Read later entries.
GetAndVerifyReadLaterEntries(
/* unread_size= */ 2u, /* read_size= */ 0u,
@@ -184,10 +187,12 @@ TEST_F(TestReadLaterPageHandlerTest, OpenURLOnNTP) {
handler()->OpenURL(GURL(kTabUrl3), true, {});
EXPECT_EQ(browser()->tab_strip_model()->count(), 5);
- // Expect ItemsChanged to be called 3 times.
- // Twice for the two AddEntry calls in SetUp().
+ // Expect ItemsChanged to be called 5 times.
+ // Four times for the two AddEntry calls in SetUp().
// Once for the OpenURL call above.
- EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(3);
+ EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(5);
+ // Expect CurrentPageActionButtonStateChanged to be called once.
+ EXPECT_CALL(page_, CurrentPageActionButtonStateChanged(testing::_)).Times(1);
// Get Read later entries.
GetAndVerifyReadLaterEntries(
@@ -203,10 +208,12 @@ TEST_F(TestReadLaterPageHandlerTest, OpenURLNotOnNTP) {
handler()->OpenURL(GURL(kTabUrl3), true, {});
EXPECT_EQ(browser()->tab_strip_model()->count(), 5);
- // Expect ItemsChanged to be called 3 times.
- // Twice for the two AddEntry calls in SetUp().
+ // Expect ItemsChanged to be called 5 times.
+ // Four times for the two AddEntry calls in SetUp().
// Once for the OpenURL call above.
- EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(3);
+ EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(5);
+ // Expect CurrentPageActionButtonStateChanged to be called once.
+ EXPECT_CALL(page_, CurrentPageActionButtonStateChanged(testing::_)).Times(1);
// Get Read later entries.
GetAndVerifyReadLaterEntries(
@@ -219,10 +226,12 @@ TEST_F(TestReadLaterPageHandlerTest, OpenURLNotOnNTP) {
TEST_F(TestReadLaterPageHandlerTest, UpdateReadStatus) {
handler()->UpdateReadStatus(GURL(kTabUrl3), true);
- // Expect ItemsChanged to be called 3 times.
- // Twice for the two AddEntry calls in SetUp().
+ // Expect ItemsChanged to be called 5 times.
+ // Four times for the two AddEntry calls in SetUp().
// Once for the OpenURL call above.
- EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(3);
+ EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(5);
+ // Expect CurrentPageActionButtonStateChanged to be called once.
+ EXPECT_CALL(page_, CurrentPageActionButtonStateChanged(testing::_)).Times(1);
// Get Read later entries.
GetAndVerifyReadLaterEntries(
@@ -235,10 +244,12 @@ TEST_F(TestReadLaterPageHandlerTest, UpdateReadStatus) {
TEST_F(TestReadLaterPageHandlerTest, RemoveEntry) {
handler()->RemoveEntry(GURL(kTabUrl3));
- // Expect ItemsChanged to be called 3 times.
- // Twice for the two AddEntry calls in SetUp().
+ // Expect ItemsChanged to be called 5 times.
+ // Four for the two AddEntry calls in SetUp().
// Once for the RemoveEntry call above.
- EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(3);
+ EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(5);
+ // Expect CurrentPageActionButtonStateChanged to be called once.
+ EXPECT_CALL(page_, CurrentPageActionButtonStateChanged(testing::_)).Times(1);
// Get Read later entries.
GetAndVerifyReadLaterEntries(
@@ -254,11 +265,13 @@ TEST_F(TestReadLaterPageHandlerTest, UpdateAndRemoveEntry) {
handler()->RemoveEntry(GURL(kTabUrl3));
EXPECT_FALSE(model()->IsPerformingBatchUpdates());
- // Expect ItemsChanged to be called 4 times.
- // Twice for the two AddEntry calls in SetUp().
+ // Expect ItemsChanged to be called 6 times.
+ // Four times for the two AddEntry calls in SetUp().
// Once for the OpenURL call above.
// Once for the RemoveEntry call above.
- EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(4);
+ EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(6);
+ // Expect CurrentPageActionButtonStateChanged to be called once.
+ EXPECT_CALL(page_, CurrentPageActionButtonStateChanged(testing::_)).Times(1);
// Get Read later entries.
GetAndVerifyReadLaterEntries(
@@ -276,10 +289,12 @@ TEST_F(TestReadLaterPageHandlerTest, PostBatchUpdate) {
token.reset();
EXPECT_FALSE(model()->IsPerformingBatchUpdates());
- // Expect ItemsChanged to be called 3 times.
- // Twice for the two AddEntry calls in SetUp().
+ // Expect ItemsChanged to be called 5 times.
+ // Four times for the two AddEntry calls in SetUp().
// Once for the two updates above performed during a batch update.
- EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(3);
+ EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(5);
+ // Expect CurrentPageActionButtonStateChanged to be called once.
+ EXPECT_CALL(page_, CurrentPageActionButtonStateChanged(testing::_)).Times(1);
// Get Read later entries.
GetAndVerifyReadLaterEntries(
@@ -301,10 +316,12 @@ TEST_F(TestReadLaterPageHandlerTest, NoUpdateWhenHidden) {
handler()->OpenURL(GURL(kTabUrl3), true, {});
handler()->RemoveEntry(GURL(kTabUrl3));
- // Expect ItemsChanged to be called twice from the two AddEntry calls in
+ // Expect ItemsChanged to be called four times from the two AddEntry calls in
// SetUp() and the two above calls to not trigger an ItemsChanged call because
// the WebContents is not visible.
- EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(2);
+ EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(4);
+ // Expect CurrentPageActionButtonStateChanged to be called once.
+ EXPECT_CALL(page_, CurrentPageActionButtonStateChanged(testing::_)).Times(1);
// Get Read later entries. Calling GetReadLaterEntries will trigger an update.
GetAndVerifyReadLaterEntries(
@@ -322,13 +339,13 @@ TEST_F(TestReadLaterPageHandlerTest, OpenURLAndReadd) {
model()->AddEntry(GURL(kTabUrl3), kTabName3,
reading_list::EntrySource::ADDED_VIA_CURRENT_APP);
- // Expect ItemsChanged to be called 4 times.
- // Twice for the two AddEntry calls in SetUp().
- // Once for the OpenURL call above, and once for the AddEntry call above.
- EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(4);
+ // Expect ItemsChanged to be called 6 times.
+ // Four times for the two AddEntry calls in SetUp().
+ // Once for the OpenURL call above, and twice for the AddEntry call above.
+ EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(7);
// Expect CurrentPageActionButtonStateChanged to be called once when the
// current page is added while on that page.
- EXPECT_CALL(page_, CurrentPageActionButtonStateChanged(testing::_)).Times(1);
+ EXPECT_CALL(page_, CurrentPageActionButtonStateChanged(testing::_)).Times(2);
// Get Read later entries.
GetAndVerifyReadLaterEntries(
diff --git a/chromium/chrome/browser/ui/webui/read_later/read_later_ui.cc b/chromium/chrome/browser/ui/webui/read_later/read_later_ui.cc
index 0af22793ab5..814042f7a00 100644
--- a/chromium/chrome/browser/ui/webui/read_later/read_later_ui.cc
+++ b/chromium/chrome/browser/ui/webui/read_later/read_later_ui.cc
@@ -9,6 +9,7 @@
#include "base/containers/cxx20_erase.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/read_later/reading_list_model_factory.h"
#include "chrome/browser/ui/ui_features.h"
#include "chrome/browser/ui/webui/favicon_source.h"
#include "chrome/browser/ui/webui/read_later/read_later_page_handler.h"
@@ -18,7 +19,10 @@
#include "chrome/grit/generated_resources.h"
#include "chrome/grit/read_later_resources.h"
#include "chrome/grit/read_later_resources_map.h"
+#include "components/bookmarks/common/bookmark_pref_names.h"
#include "components/favicon_base/favicon_url_parser.h"
+#include "components/prefs/pref_service.h"
+#include "components/reading_list/core/reading_list_model.h"
#include "components/strings/grit/components_strings.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui.h"
@@ -53,6 +57,7 @@ ReadLaterUI::ReadLaterUI(content::WebUI* web_ui)
{"emptyStateSubheader", IDS_READ_LATER_MENU_EMPTY_STATE_SUBHEADER},
{"readHeader", IDS_READ_LATER_MENU_READ_HEADER},
{"title", IDS_READ_LATER_TITLE},
+ {"sidePanelTitle", IDS_SIDE_PANEL_TITLE},
{"tooltipClose", IDS_CLOSE},
{"tooltipDelete", IDS_DELETE},
{"tooltipMarkAsRead", IDS_READ_LATER_MENU_TOOLTIP_MARK_AS_READ},
@@ -71,7 +76,20 @@ ReadLaterUI::ReadLaterUI(content::WebUI* web_ui)
show_side_panel);
source->AddBoolean("useRipples", views::PlatformStyle::kUseRipples);
- Profile* profile = Profile::FromWebUI(web_ui);
+ Profile* const profile = Profile::FromWebUI(web_ui);
+ PrefService* prefs = profile->GetPrefs();
+ source->AddBoolean(
+ "bookmarksDragAndDropEnabled",
+ show_side_panel &&
+ base::FeatureList::IsEnabled(features::kSidePanelDragAndDrop) &&
+ prefs->GetBoolean(bookmarks::prefs::kEditBookmarksEnabled));
+
+ ReadingListModel* const reading_list_model =
+ ReadingListModelFactory::GetForBrowserContext(profile);
+ source->AddBoolean(
+ "hasUnseenReadingListEntries",
+ reading_list_model->loaded() ? reading_list_model->unseen_size() : false);
+
content::URLDataSource::Add(
profile, std::make_unique<FaviconSource>(
profile, chrome::FaviconUrlFormat::kFavicon2));
diff --git a/chromium/chrome/browser/ui/webui/read_later/side_panel/bookmarks_page_handler.cc b/chromium/chrome/browser/ui/webui/read_later/side_panel/bookmarks_page_handler.cc
index a9e36211e81..2ce8f70e56b 100644
--- a/chromium/chrome/browser/ui/webui/read_later/side_panel/bookmarks_page_handler.cc
+++ b/chromium/chrome/browser/ui/webui/read_later/side_panel/bookmarks_page_handler.cc
@@ -61,6 +61,13 @@ class BookmarkContextMenu : public ui::SimpleMenuModel,
AddItem(bookmark->is_folder() ? IDC_BOOKMARK_BAR_RENAME_FOLDER
: IDC_BOOKMARK_BAR_EDIT);
+ AddSeparator(ui::NORMAL_SEPARATOR);
+
+ AddItem(IDC_CUT);
+ AddItem(IDC_COPY);
+ AddItem(IDC_PASTE);
+ AddSeparator(ui::NORMAL_SEPARATOR);
+
AddItem(IDC_BOOKMARK_BAR_REMOVE);
AddSeparator(ui::NORMAL_SEPARATOR);
diff --git a/chromium/chrome/browser/ui/webui/realbox/realbox.mojom b/chromium/chrome/browser/ui/webui/realbox/realbox.mojom
index b0d16d40aad..6f2a15f0d2f 100644
--- a/chromium/chrome/browser/ui/webui/realbox/realbox.mojom
+++ b/chromium/chrome/browser/ui/webui/realbox/realbox.mojom
@@ -15,6 +15,17 @@ struct ACMatchClassification {
int32 style;
};
+// See components/omnibox/browser/actions/omnibox_action.h
+struct Action {
+ mojo_base.mojom.String16 accessibility_hint;
+ mojo_base.mojom.String16 accessibility_suffix;
+ mojo_base.mojom.String16 hint;
+ mojo_base.mojom.String16 suggestion_contents;
+ // The url for the action icon. This is a relative url pointing to a
+ // bundled resource and is used directly in CSS to show the icon.
+ string icon_url;
+};
+
// See components/omnibox/browser/suggestion_answer.h
struct SuggestionAnswer {
mojo_base.mojom.String16 first_line;
@@ -23,6 +34,7 @@ struct SuggestionAnswer {
struct AutocompleteMatch {
bool allowed_to_be_default_match;
+ Action? action;
SuggestionAnswer? answer;
mojo_base.mojom.String16 contents;
array<ACMatchClassification> contents_class;
@@ -124,6 +136,15 @@ interface PageHandler {
// Logs the time it took in milliseconds since the first character (in a
// series of characters) was typed until Autocomplete results were painted.
LogCharTypedToRepaintLatency(mojo_base.mojom.TimeDelta latency);
+ // Executes the Pedal Action. match_selection_timestamp is the number of
+ // microseconds since Jan. 1, 1970 (ECMAScript epoch).
+ ExecuteAction(uint8 line,
+ mojo_base.mojom.TimeTicks match_selection_timestamp,
+ uint8 mouse_button,
+ bool alt_key,
+ bool ctrl_key,
+ bool meta_key,
+ bool shift_key);
};
// WebUI-side handler for requests from the browser.
diff --git a/chromium/chrome/browser/ui/webui/realbox/realbox_handler.cc b/chromium/chrome/browser/ui/webui/realbox/realbox_handler.cc
index d0554796a7b..6e8cf6d1f96 100644
--- a/chromium/chrome/browser/ui/webui/realbox/realbox_handler.cc
+++ b/chromium/chrome/browser/ui/webui/realbox/realbox_handler.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/ui/webui/realbox/realbox_handler.h"
+#include "base/bind.h"
#include "base/containers/contains.h"
#include "base/metrics/histogram_macros.h"
#include "base/metrics/user_metrics.h"
@@ -26,6 +27,7 @@
#include "chrome/grit/new_tab_page_resources.h"
#include "components/bookmarks/browser/bookmark_model.h"
#include "components/navigation_metrics/navigation_metrics.h"
+#include "components/omnibox/browser/actions/omnibox_pedal_implementations.h"
#include "components/omnibox/browser/autocomplete_classifier.h"
#include "components/omnibox/browser/autocomplete_input.h"
#include "components/omnibox/browser/autocomplete_match.h"
@@ -87,7 +89,12 @@ constexpr char kDriveSlidesIconResourceName[] =
constexpr char kDriveVideoIconResourceName[] = "realbox/icons/drive_video.svg";
constexpr char kExtensionAppIconResourceName[] =
"realbox/icons/extension_app.svg";
+constexpr char kGoogleCalendarIconResourceName[] = "realbox/icons/calendar.svg";
+constexpr char kGoogleKeepNoteIconResourceName[] = "realbox/icons/note.svg";
+constexpr char kGoogleSitesIconResourceName[] = "realbox/icons/sites.svg";
constexpr char kPageIconResourceName[] = "realbox/icons/page.svg";
+constexpr char kPedalsIconResourceName[] =
+ "chrome://theme/current-channel-logo";
constexpr char kTrendingUpIconResourceName[] = "realbox/icons/trending_up.svg";
base::flat_map<int32_t, realbox::mojom::SuggestionGroupPtr>
@@ -186,6 +193,16 @@ std::vector<realbox::mojom::AutocompleteMatchPtr> CreateAutocompleteMatches(
match.type == AutocompleteMatchType::CALCULATOR ||
(match.answer.has_value() &&
base::FeatureList::IsEnabled(omnibox::kNtpRealboxSuggestionAnswers));
+ if (match.action &&
+ base::FeatureList::IsEnabled(omnibox::kNtpRealboxPedals)) {
+ mojom_match->action = realbox::mojom::Action::New(
+ match.action->GetLabelStrings().accessibility_hint,
+ match.action->GetLabelStrings().accessibility_suffix,
+ match.action->GetLabelStrings().hint,
+ match.action->GetLabelStrings().suggestion_contents,
+ RealboxHandler::PedalVectorIconToResourceName(
+ match.action->GetVectorIcon()));
+ }
matches.push_back(std::move(mojom_match));
}
return matches;
@@ -291,7 +308,7 @@ std::string RealboxHandler::AutocompleteMatchVectorIconToResourceName(
} else if (icon.name == omnibox::kPageIcon.name) {
return kPageIconResourceName;
} else if (icon.name == omnibox::kPedalIcon.name) {
- return ""; // Pedals are not supported in the NTP Realbox.
+ return kPedalsIconResourceName;
} else if (icon.name == vector_icons::kSearchIcon.name) {
return kSearchIconResourceName;
} else if (icon.name == omnibox::kTrendingUpIcon.name) {
@@ -304,6 +321,35 @@ std::string RealboxHandler::AutocompleteMatchVectorIconToResourceName(
}
}
+// static
+std::string RealboxHandler::PedalVectorIconToResourceName(
+ const gfx::VectorIcon& icon) {
+ if (icon.name == omnibox::kDriveFormsIcon.name) {
+ return kDriveFormIconResourceName;
+ } else if (icon.name == omnibox::kDriveDocsIcon.name) {
+ return kDriveDocsIconResourceName;
+ } else if (icon.name == omnibox::kDriveSheetsIcon.name) {
+ return kDriveSheetsIconResourceName;
+ } else if (icon.name == omnibox::kDriveSlidesIcon.name) {
+ return kDriveSlidesIconResourceName;
+ } else if (icon.name == omnibox::kGoogleCalendarIcon.name) {
+ return kGoogleCalendarIconResourceName;
+ } else if (icon.name == omnibox::kGoogleKeepNoteIcon.name) {
+ return kGoogleKeepNoteIconResourceName;
+ } else if (icon.name == omnibox::kGoogleSitesIcon.name) {
+ return kGoogleSitesIconResourceName;
+ } else if (icon.name == omnibox::kGoogleSuperGIcon.name) {
+ return kGoogleGIconResourceName;
+ } else if (icon.name == omnibox::kPedalIcon.name) {
+ return kPedalsIconResourceName;
+ } else {
+ NOTREACHED()
+ << "Every vector icon returned by OmniboxAction::GetVectorIcon "
+ "must have an equivalent SVG resource for the NTP Realbox.";
+ return "";
+ }
+}
+
RealboxHandler::RealboxHandler(
mojo::PendingReceiver<realbox::mojom::PageHandler> pending_page_handler,
Profile* profile,
@@ -411,8 +457,9 @@ void RealboxHandler::OpenAutocompleteMatch(
const auto now = base::TimeTicks::Now();
base::TimeDelta elapsed_time_since_first_autocomplete_query =
now - time_user_first_modified_realbox_;
- autocomplete_controller_->UpdateMatchDestinationURLWithQueryFormulationTime(
- elapsed_time_since_first_autocomplete_query, &match);
+ autocomplete_controller_
+ ->UpdateMatchDestinationURLWithAdditionalAssistedQueryStats(
+ elapsed_time_since_first_autocomplete_query, &match);
LOCAL_HISTOGRAM_BOOLEAN("Omnibox.EventCount", true);
@@ -459,7 +506,7 @@ void RealboxHandler::OpenAutocompleteMatch(
/*middle_button=*/mouse_button == 1, alt_key, ctrl_key, meta_key,
shift_key);
- base::TimeDelta default_time_delta = base::TimeDelta::FromMilliseconds(-1);
+ base::TimeDelta default_time_delta = base::Milliseconds(-1);
if (time_user_first_modified_realbox_.is_null())
elapsed_time_since_first_autocomplete_query = default_time_delta;
@@ -503,6 +550,20 @@ void RealboxHandler::OpenAutocompleteMatch(
disposition, match.transition, false));
}
+void RealboxHandler::OpenURL(const GURL& destination_url,
+ TemplateURLRef::PostContent* post_content,
+ WindowOpenDisposition disposition,
+ ui::PageTransition transition,
+ AutocompleteMatchType::Type type,
+ base::TimeTicks match_selection_timestamp,
+ bool destination_url_entered_without_scheme,
+ const std::u16string&,
+ const AutocompleteMatch&,
+ const AutocompleteMatch&) {
+ web_contents_->OpenURL(content::OpenURLParams(
+ destination_url, content::Referrer(), disposition, transition, false));
+}
+
void RealboxHandler::DeleteAutocompleteMatch(uint8_t line) {
if (autocomplete_controller_->result().size() <= line ||
!autocomplete_controller_->result().match_at(line).SupportsDeletion()) {
@@ -535,6 +596,34 @@ void RealboxHandler::LogCharTypedToRepaintLatency(base::TimeDelta latency) {
latency);
}
+void RealboxHandler::ExecuteAction(uint8_t line,
+ base::TimeTicks match_selection_timestamp,
+ uint8_t mouse_button,
+ bool alt_key,
+ bool ctrl_key,
+ bool meta_key,
+ bool shift_key) {
+ if (!autocomplete_controller_ ||
+ autocomplete_controller_->result().size() <= line) {
+ return;
+ }
+
+ const auto& match = autocomplete_controller_->result().match_at(line);
+ if (!match.action) {
+ return;
+ }
+ WindowOpenDisposition disposition = ui::DispositionFromClick(
+ /*middle_button=*/mouse_button == 1, alt_key, ctrl_key, meta_key,
+ shift_key);
+
+ match.action->RecordActionExecuted(line);
+ OmniboxAction::ExecutionContext context(
+ *(autocomplete_controller_->autocomplete_provider_client()),
+ base::BindOnce(&RealboxHandler::OpenURL, weak_ptr_factory_.GetWeakPtr()),
+ match_selection_timestamp, disposition);
+ match.action->Execute(context);
+}
+
void RealboxHandler::OnResultChanged(AutocompleteController* controller,
bool default_match_changed) {
DCHECK(controller == autocomplete_controller_.get());
diff --git a/chromium/chrome/browser/ui/webui/realbox/realbox_handler.h b/chromium/chrome/browser/ui/webui/realbox/realbox_handler.h
index c44c41f40cf..f0b8bb0e24b 100644
--- a/chromium/chrome/browser/ui/webui/realbox/realbox_handler.h
+++ b/chromium/chrome/browser/ui/webui/realbox/realbox_handler.h
@@ -38,11 +38,16 @@ class RealboxHandler : public realbox::mojom::PageHandler,
static void SetupWebUIDataSource(content::WebUIDataSource* source);
static std::string AutocompleteMatchVectorIconToResourceName(
const gfx::VectorIcon& icon);
+ static std::string PedalVectorIconToResourceName(const gfx::VectorIcon& icon);
RealboxHandler(
mojo::PendingReceiver<realbox::mojom::PageHandler> pending_page_handler,
Profile* profile,
content::WebContents* web_contents);
+
+ RealboxHandler(const RealboxHandler&) = delete;
+ RealboxHandler& operator=(const RealboxHandler&) = delete;
+
~RealboxHandler() override;
// realbox::mojom::PageHandler:
@@ -62,6 +67,13 @@ class RealboxHandler : public realbox::mojom::PageHandler,
void DeleteAutocompleteMatch(uint8_t line) override;
void ToggleSuggestionGroupIdVisibility(int32_t suggestion_group_id) override;
void LogCharTypedToRepaintLatency(base::TimeDelta latency) override;
+ void ExecuteAction(uint8_t line,
+ base::TimeTicks match_selection_timestamp,
+ uint8_t mouse_button,
+ bool alt_key,
+ bool ctrl_key,
+ bool meta_key,
+ bool shift_key) override;
// AutocompleteController::Observer:
void OnResultChanged(AutocompleteController* controller,
@@ -74,6 +86,18 @@ class RealboxHandler : public realbox::mojom::PageHandler,
const GURL& page_url,
const gfx::Image& favicon);
+ // OpenURL function used as a callback for execution of actions.
+ void OpenURL(const GURL& destination_url,
+ TemplateURLRef::PostContent* post_content,
+ WindowOpenDisposition disposition,
+ ui::PageTransition transition,
+ AutocompleteMatchType::Type type,
+ base::TimeTicks match_selection_timestamp,
+ bool destination_url_entered_without_scheme,
+ const std::u16string&,
+ const AutocompleteMatch&,
+ const AutocompleteMatch&);
+
private:
Profile* profile_;
content::WebContents* web_contents_;
@@ -87,8 +111,6 @@ class RealboxHandler : public realbox::mojom::PageHandler,
mojo::Receiver<realbox::mojom::PageHandler> page_handler_;
base::WeakPtrFactory<RealboxHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(RealboxHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_REALBOX_REALBOX_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/realbox/realbox_handler_unittest.cc b/chromium/chrome/browser/ui/webui/realbox/realbox_handler_unittest.cc
index 2740a8a4f32..fd7af40d42f 100644
--- a/chromium/chrome/browser/ui/webui/realbox/realbox_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/realbox/realbox_handler_unittest.cc
@@ -5,10 +5,14 @@
#include "chrome/browser/ui/webui/realbox/realbox_handler.h"
#include <string>
+#include <unordered_map>
#include <gtest/gtest.h>
#include "base/check.h"
+#include "base/memory/scoped_refptr.h"
#include "base/test/scoped_feature_list.h"
+#include "components/omnibox/browser/actions/omnibox_pedal.h"
+#include "components/omnibox/browser/actions/omnibox_pedal_implementations.h"
#include "components/omnibox/browser/autocomplete_match.h"
#include "components/omnibox/browser/autocomplete_match_type.h"
#include "components/omnibox/browser/suggestion_answer.h"
@@ -70,4 +74,14 @@ TEST_P(RealboxHandlerIconTest, VectorIcons) {
ASSERT_NE("search.svg", svg_name);
}
}
+
+ std::unordered_map<OmniboxPedalId, scoped_refptr<OmniboxPedal>> pedals =
+ GetPedalImplementations(true, true);
+ for (auto const& it : pedals) {
+ const scoped_refptr<OmniboxPedal> pedal = it.second;
+ const gfx::VectorIcon& vector_icon = pedal->GetVectorIcon();
+ const std::string& svg_name =
+ RealboxHandler::PedalVectorIconToResourceName(vector_icon);
+ ASSERT_FALSE(svg_name.empty());
+ }
}
diff --git a/chromium/chrome/browser/ui/webui/reset_password/reset_password_ui.cc b/chromium/chrome/browser/ui/webui/reset_password/reset_password_ui.cc
index 22158f995fa..8430e79bdcb 100644
--- a/chromium/chrome/browser/ui/webui/reset_password/reset_password_ui.cc
+++ b/chromium/chrome/browser/ui/webui/reset_password/reset_password_ui.cc
@@ -55,6 +55,9 @@ class ResetPasswordHandlerImpl : public mojom::ResetPasswordHandler {
DCHECK(web_contents);
}
+ ResetPasswordHandlerImpl(const ResetPasswordHandlerImpl&) = delete;
+ ResetPasswordHandlerImpl& operator=(const ResetPasswordHandlerImpl&) = delete;
+
~ResetPasswordHandlerImpl() override {}
// mojom::ResetPasswordHandler overrides:
@@ -77,8 +80,6 @@ class ResetPasswordHandlerImpl : public mojom::ResetPasswordHandler {
private:
content::WebContents* web_contents_;
mojo::Receiver<mojom::ResetPasswordHandler> receiver_;
-
- DISALLOW_COPY_AND_ASSIGN(ResetPasswordHandlerImpl);
};
// Gets the reused password type from post data, or returns
diff --git a/chromium/chrome/browser/ui/webui/reset_password/reset_password_ui.h b/chromium/chrome/browser/ui/webui/reset_password/reset_password_ui.h
index 901a026badf..e84d57b9422 100644
--- a/chromium/chrome/browser/ui/webui/reset_password/reset_password_ui.h
+++ b/chromium/chrome/browser/ui/webui/reset_password/reset_password_ui.h
@@ -22,6 +22,10 @@ using password_manager::metrics_util::PasswordType;
class ResetPasswordUI : public ui::MojoWebUIController {
public:
explicit ResetPasswordUI(content::WebUI* web_ui);
+
+ ResetPasswordUI(const ResetPasswordUI&) = delete;
+ ResetPasswordUI& operator=(const ResetPasswordUI&) = delete;
+
~ResetPasswordUI() override;
// Instantiates the implementor of the mojom::ResetPasswordHandler mojo
@@ -36,8 +40,6 @@ class ResetPasswordUI : public ui::MojoWebUIController {
const PasswordType password_type_;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(ResetPasswordUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_RESET_PASSWORD_RESET_PASSWORD_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/sandbox/DIR_METADATA b/chromium/chrome/browser/ui/webui/sandbox/DIR_METADATA
index be222260074..9ca68bc52c5 100644
--- a/chromium/chrome/browser/ui/webui/sandbox/DIR_METADATA
+++ b/chromium/chrome/browser/ui/webui/sandbox/DIR_METADATA
@@ -1,4 +1 @@
-monorail {
- component: "Internals>Sandbox"
-}
-team_email: "security-dev@chromium.org"
+mixins: "//sandbox/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/sandbox/sandbox_handler.cc b/chromium/chrome/browser/ui/webui/sandbox/sandbox_handler.cc
index bcc44401c97..9d5fbdcc504 100644
--- a/chromium/chrome/browser/ui/webui/sandbox/sandbox_handler.cc
+++ b/chromium/chrome/browser/ui/webui/sandbox/sandbox_handler.cc
@@ -15,7 +15,6 @@
#include "content/public/browser/child_process_data.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/web_ui.h"
-#include "content/public/common/content_features.h"
#include "content/public/common/process_type.h"
#include "sandbox/policy/win/sandbox_win.h"
@@ -27,10 +26,7 @@ namespace sandbox_handler {
namespace {
base::Value FetchBrowserChildProcesses() {
- // The |BrowserChildProcessHostIterator| must only be used on the IO thread.
- DCHECK_CURRENTLY_ON(base::FeatureList::IsEnabled(features::kProcessHostOnUI)
- ? content::BrowserThread::UI
- : content::BrowserThread::IO);
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
base::Value browser_processes(base::Value::Type::LIST);
for (BrowserChildProcessHostIterator itr; !itr.Done(); ++itr) {
@@ -85,7 +81,7 @@ SandboxHandler::~SandboxHandler() = default;
void SandboxHandler::RegisterMessages() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestSandboxDiagnostics",
base::BindRepeating(&SandboxHandler::HandleRequestSandboxDiagnostics,
base::Unretained(this)));
@@ -100,19 +96,7 @@ void SandboxHandler::HandleRequestSandboxDiagnostics(
AllowJavascript();
- auto task_runner = base::FeatureList::IsEnabled(features::kProcessHostOnUI)
- ? content::GetUIThreadTaskRunner({})
- : content::GetIOThreadTaskRunner({});
- task_runner->PostTaskAndReplyWithResult(
- FROM_HERE, base::BindOnce(&FetchBrowserChildProcesses),
- base::BindOnce(&SandboxHandler::FetchBrowserChildProcessesCompleted,
- weak_ptr_factory_.GetWeakPtr()));
-}
-
-void SandboxHandler::FetchBrowserChildProcessesCompleted(
- base::Value browser_processes) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- browser_processes_ = std::move(browser_processes);
+ browser_processes_ = FetchBrowserChildProcesses();
sandbox::policy::SandboxWin::GetPolicyDiagnostics(
base::BindOnce(&SandboxHandler::FetchSandboxDiagnosticsCompleted,
diff --git a/chromium/chrome/browser/ui/webui/sandbox/sandbox_handler.h b/chromium/chrome/browser/ui/webui/sandbox/sandbox_handler.h
index 822044f28b3..2d5c0d152bf 100644
--- a/chromium/chrome/browser/ui/webui/sandbox/sandbox_handler.h
+++ b/chromium/chrome/browser/ui/webui/sandbox/sandbox_handler.h
@@ -20,6 +20,10 @@ namespace sandbox_handler {
class SandboxHandler : public content::WebUIMessageHandler {
public:
SandboxHandler();
+
+ SandboxHandler(const SandboxHandler&) = delete;
+ SandboxHandler& operator=(const SandboxHandler&) = delete;
+
~SandboxHandler() override;
private:
@@ -31,7 +35,6 @@ class SandboxHandler : public content::WebUIMessageHandler {
void OnSandboxDataFetched(base::Value results);
- void FetchBrowserChildProcessesCompleted(base::Value browser_processes);
void FetchSandboxDiagnosticsCompleted(base::Value sandbox_policies);
void GetRendererProcessesAndFinish();
@@ -43,8 +46,6 @@ class SandboxHandler : public content::WebUIMessageHandler {
// Always keep this the last member of this class to make sure it's the
// first thing to be destructed.
base::WeakPtrFactory<SandboxHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(SandboxHandler);
};
} // namespace sandbox_handler
diff --git a/chromium/chrome/browser/ui/webui/settings/DIR_METADATA b/chromium/chrome/browser/ui/webui/settings/DIR_METADATA
index f4b2e0ae71c..fc61f1b93e6 100644
--- a/chromium/chrome/browser/ui/webui/settings/DIR_METADATA
+++ b/chromium/chrome/browser/ui/webui/settings/DIR_METADATA
@@ -1,3 +1 @@
-monorail {
- component: "UI>Settings"
-}
+mixins: "//chrome/browser/resources/settings/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/settings/about_handler.cc b/chromium/chrome/browser/ui/webui/settings/about_handler.cc
index c629f0ac055..5863f43005f 100644
--- a/chromium/chrome/browser/ui/webui/settings/about_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/about_handler.cc
@@ -58,7 +58,7 @@
#include "chrome/browser/ash/ownership/owner_settings_service_ash_factory.h"
#include "chrome/browser/ash/profiles/profile_helper.h"
#include "chrome/browser/ash/settings/cros_settings.h"
-#include "chrome/browser/chromeos/tpm_firmware_update.h"
+#include "chrome/browser/ash/tpm_firmware_update.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/webui/chromeos/image_source.h"
@@ -270,71 +270,71 @@ AboutHandler::~AboutHandler() {
}
void AboutHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"aboutPageReady", base::BindRepeating(&AboutHandler::HandlePageReady,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"refreshUpdateStatus",
base::BindRepeating(&AboutHandler::HandleRefreshUpdateStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"openFeedbackDialog",
base::BindRepeating(&AboutHandler::HandleOpenFeedbackDialog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"openHelpPage", base::BindRepeating(&AboutHandler::HandleOpenHelpPage,
base::Unretained(this)));
#if BUILDFLAG(IS_CHROMEOS_ASH)
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"openDiagnostics",
base::BindRepeating(&AboutHandler::HandleOpenDiagnostics,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"openOsHelpPage", base::BindRepeating(&AboutHandler::HandleOpenOsHelpPage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setChannel", base::BindRepeating(&AboutHandler::HandleSetChannel,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestUpdate", base::BindRepeating(&AboutHandler::HandleRequestUpdate,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestUpdateOverCellular",
base::BindRepeating(&AboutHandler::HandleRequestUpdateOverCellular,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getVersionInfo", base::BindRepeating(&AboutHandler::HandleGetVersionInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getRegulatoryInfo",
base::BindRepeating(&AboutHandler::HandleGetRegulatoryInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getChannelInfo", base::BindRepeating(&AboutHandler::HandleGetChannelInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"canChangeChannel",
base::BindRepeating(&AboutHandler::HandleCanChangeChannel,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"refreshTPMFirmwareUpdateStatus",
base::BindRepeating(&AboutHandler::HandleRefreshTPMFirmwareUpdateStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getEndOfLifeInfo",
base::BindRepeating(&AboutHandler::HandleGetEndOfLifeInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"launchReleaseNotes",
base::BindRepeating(&AboutHandler::HandleLaunchReleaseNotes,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"checkInternetConnection",
base::BindRepeating(&AboutHandler::HandleCheckInternetConnection,
base::Unretained(this)));
#endif
#if defined(OS_MAC)
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"promoteUpdater", base::BindRepeating(&AboutHandler::PromoteUpdater,
base::Unretained(this)));
#endif
@@ -442,7 +442,7 @@ void AboutHandler::HandleOpenDiagnostics(const base::ListValue* args) {
}
void AboutHandler::HandleCheckInternetConnection(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
@@ -471,7 +471,7 @@ void AboutHandler::HandleOpenOsHelpPage(const base::ListValue* args) {
}
void AboutHandler::HandleSetChannel(const base::ListValue* args) {
- DCHECK(args->GetSize() == 2);
+ DCHECK(args->GetList().size() == 2);
if (!CanChangeChannel(profile_)) {
LOG(WARNING) << "Non-owner tried to change release track.";
@@ -498,7 +498,7 @@ void AboutHandler::HandleSetChannel(const base::ListValue* args) {
}
void AboutHandler::HandleGetVersionInfo(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
base::ThreadPool::PostTaskAndReplyWithResult(
@@ -515,7 +515,7 @@ void AboutHandler::OnGetVersionInfoReady(
}
void AboutHandler::HandleGetRegulatoryInfo(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
@@ -527,7 +527,7 @@ void AboutHandler::HandleGetRegulatoryInfo(const base::ListValue* args) {
}
void AboutHandler::HandleGetChannelInfo(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
version_updater_->GetChannel(
@@ -537,7 +537,7 @@ void AboutHandler::HandleGetChannelInfo(const base::ListValue* args) {
}
void AboutHandler::HandleCanChangeChannel(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
ResolveJavascriptCallback(base::Value(callback_id),
@@ -576,7 +576,7 @@ void AboutHandler::HandleRequestUpdate(const base::ListValue* args) {
void AboutHandler::HandleRequestUpdateOverCellular(
const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
std::string update_version;
std::string update_size_string;
@@ -613,7 +613,7 @@ void AboutHandler::RefreshTPMFirmwareUpdateStatus(
}
void AboutHandler::HandleGetEndOfLifeInfo(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
version_updater_->GetEolInfo(base::BindOnce(&AboutHandler::OnGetEndOfLifeInfo,
diff --git a/chromium/chrome/browser/ui/webui/settings/about_handler.h b/chromium/chrome/browser/ui/webui/settings/about_handler.h
index eb45490feb4..2fe14fb2369 100644
--- a/chromium/chrome/browser/ui/webui/settings/about_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/about_handler.h
@@ -21,7 +21,7 @@
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "base/task/cancelable_task_tracker.h"
-#include "chrome/browser/chromeos/tpm_firmware_update.h"
+#include "chrome/browser/ash/tpm_firmware_update.h"
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
namespace base {
@@ -40,6 +40,10 @@ class AboutHandler : public settings::SettingsPageUIHandler,
public UpgradeObserver {
public:
explicit AboutHandler(Profile* profile);
+
+ AboutHandler(const AboutHandler&) = delete;
+ AboutHandler& operator=(const AboutHandler&) = delete;
+
~AboutHandler() override;
// WebUIMessageHandler implementation.
@@ -194,8 +198,6 @@ class AboutHandler : public settings::SettingsPageUIHandler,
// Used for callbacks.
base::WeakPtrFactory<AboutHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(AboutHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/accessibility_main_handler.cc b/chromium/chrome/browser/ui/webui/settings/accessibility_main_handler.cc
index 194cb4aa277..a938ae06e91 100644
--- a/chromium/chrome/browser/ui/webui/settings/accessibility_main_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/accessibility_main_handler.cc
@@ -26,11 +26,11 @@ AccessibilityMainHandler::AccessibilityMainHandler() = default;
AccessibilityMainHandler::~AccessibilityMainHandler() = default;
void AccessibilityMainHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"a11yPageReady",
base::BindRepeating(&AccessibilityMainHandler::HandleA11yPageReady,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"confirmA11yImageLabels",
base::BindRepeating(
&AccessibilityMainHandler::HandleCheckAccessibilityImageLabels,
diff --git a/chromium/chrome/browser/ui/webui/settings/appearance_handler.cc b/chromium/chrome/browser/ui/webui/settings/appearance_handler.cc
index b8fa3d7cc29..636a6853a5b 100644
--- a/chromium/chrome/browser/ui/webui/settings/appearance_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/appearance_handler.cc
@@ -25,14 +25,14 @@ void AppearanceHandler::OnJavascriptAllowed() {}
void AppearanceHandler::OnJavascriptDisallowed() {}
void AppearanceHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"useDefaultTheme",
base::BindRepeating(&AppearanceHandler::HandleUseDefaultTheme,
base::Unretained(this)));
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
#if defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"useSystemTheme",
base::BindRepeating(&AppearanceHandler::HandleUseSystemTheme,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/appearance_handler.h b/chromium/chrome/browser/ui/webui/settings/appearance_handler.h
index 60f42a62277..52298081635 100644
--- a/chromium/chrome/browser/ui/webui/settings/appearance_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/appearance_handler.h
@@ -7,6 +7,7 @@
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
+#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
@@ -26,6 +27,10 @@ namespace settings {
class AppearanceHandler : public SettingsPageUIHandler {
public:
explicit AppearanceHandler(content::WebUI* webui);
+
+ AppearanceHandler(const AppearanceHandler&) = delete;
+ AppearanceHandler& operator=(const AppearanceHandler&) = delete;
+
~AppearanceHandler() override;
// SettingsPageUIHandler implementation.
@@ -47,8 +52,6 @@ class AppearanceHandler : public SettingsPageUIHandler {
Profile* profile_; // Weak pointer.
base::WeakPtrFactory<AppearanceHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(AppearanceHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.cc b/chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.cc
index 8b03ae3281f..cd20975af7a 100644
--- a/chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.cc
@@ -11,8 +11,8 @@
#include "chrome/browser/lifetime/application_lifetime.h"
#if BUILDFLAG(IS_CHROMEOS_ASH)
+#include "chrome/browser/ash/tpm_firmware_update.h"
#include "chrome/browser/browser_process.h"
-#include "chrome/browser/chromeos/tpm_firmware_update.h"
#include "chrome/browser/ui/webui/webui_util.h"
#include "chrome/common/pref_names.h"
#include "components/prefs/pref_service.h"
@@ -57,18 +57,18 @@ BrowserLifetimeHandler::BrowserLifetimeHandler() {}
BrowserLifetimeHandler::~BrowserLifetimeHandler() {}
void BrowserLifetimeHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"restart", base::BindRepeating(&BrowserLifetimeHandler::HandleRestart,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"relaunch", base::BindRepeating(&BrowserLifetimeHandler::HandleRelaunch,
base::Unretained(this)));
#if BUILDFLAG(IS_CHROMEOS_ASH)
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"signOutAndRestart",
base::BindRepeating(&BrowserLifetimeHandler::HandleSignOutAndRestart,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"factoryReset",
base::BindRepeating(&BrowserLifetimeHandler::HandleFactoryReset,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.h b/chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.h
index 6ded5ac34ff..21afd85ae6c 100644
--- a/chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/browser_lifetime_handler.h
@@ -18,6 +18,10 @@ namespace settings {
class BrowserLifetimeHandler : public SettingsPageUIHandler {
public:
BrowserLifetimeHandler();
+
+ BrowserLifetimeHandler(const BrowserLifetimeHandler&) = delete;
+ BrowserLifetimeHandler& operator=(const BrowserLifetimeHandler&) = delete;
+
~BrowserLifetimeHandler() override;
// SettingsPageUIHandler:
@@ -32,8 +36,6 @@ class BrowserLifetimeHandler : public SettingsPageUIHandler {
void HandleSignOutAndRestart(const base::ListValue* /*args*/);
void HandleFactoryReset(const base::ListValue* /*args*/);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
-
- DISALLOW_COPY_AND_ASSIGN(BrowserLifetimeHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/captions_handler.cc b/chromium/chrome/browser/ui/webui/settings/captions_handler.cc
index 2c32738c187..b00875ad49d 100644
--- a/chromium/chrome/browser/ui/webui/settings/captions_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/captions_handler.cc
@@ -7,6 +7,7 @@
#include "base/bind.h"
#include "base/values.h"
#include "build/build_config.h"
+#include "build/chromeos_buildflags.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/grit/chromium_strings.h"
#include "chrome/grit/generated_resources.h"
@@ -40,11 +41,11 @@ CaptionsHandler::~CaptionsHandler() {
}
void CaptionsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"openSystemCaptionsDialog",
base::BindRepeating(&CaptionsHandler::HandleOpenSystemCaptionsDialog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"liveCaptionSectionReady",
base::BindRepeating(&CaptionsHandler::HandleLiveCaptionSectionReady,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/chrome_cleanup_handler_win.cc b/chromium/chrome/browser/ui/webui/settings/chrome_cleanup_handler_win.cc
index 5af8d6440d5..3efe0ec6ee8 100644
--- a/chromium/chrome/browser/ui/webui/settings/chrome_cleanup_handler_win.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chrome_cleanup_handler_win.cc
@@ -110,37 +110,37 @@ ChromeCleanupHandler::~ChromeCleanupHandler() {
}
void ChromeCleanupHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"registerChromeCleanerObserver",
base::BindRepeating(
&ChromeCleanupHandler::HandleRegisterChromeCleanerObserver,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"startScanning",
base::BindRepeating(&ChromeCleanupHandler::HandleStartScanning,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"restartComputer",
base::BindRepeating(&ChromeCleanupHandler::HandleRestartComputer,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"startCleanup",
base::BindRepeating(&ChromeCleanupHandler::HandleStartCleanup,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"notifyShowDetails",
base::BindRepeating(&ChromeCleanupHandler::HandleNotifyShowDetails,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"notifyChromeCleanupLearnMoreClicked",
base::BindRepeating(
&ChromeCleanupHandler::HandleNotifyChromeCleanupLearnMoreClicked,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getMoreItemsPluralString",
base::BindRepeating(&ChromeCleanupHandler::HandleGetMoreItemsPluralString,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getItemsToRemovePluralString",
base::BindRepeating(
&ChromeCleanupHandler::HandleGetItemsToRemovePluralString,
@@ -191,9 +191,8 @@ void ChromeCleanupHandler::OnRebootRequired() {
void ChromeCleanupHandler::HandleRegisterChromeCleanerObserver(
const base::ListValue* args) {
- DCHECK_EQ(0U, args->GetSize());
+ DCHECK_EQ(0U, args->GetList().size());
- UMA_HISTOGRAM_BOOLEAN("SoftwareReporter.CleanupCard", true);
base::RecordAction(
base::UserMetricsAction("SoftwareReporter.CleanupWebui_Shown"));
AllowJavascript();
@@ -203,7 +202,7 @@ void ChromeCleanupHandler::HandleRegisterChromeCleanerObserver(
}
void ChromeCleanupHandler::HandleStartScanning(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
bool allow_logs_upload = false;
args->GetBoolean(0, &allow_logs_upload);
@@ -220,7 +219,7 @@ void ChromeCleanupHandler::HandleStartScanning(const base::ListValue* args) {
}
void ChromeCleanupHandler::HandleRestartComputer(const base::ListValue* args) {
- DCHECK_EQ(0U, args->GetSize());
+ DCHECK_EQ(0U, args->GetList().size());
base::RecordAction(
base::UserMetricsAction("SoftwareReporter.CleanupWebui_RestartComputer"));
@@ -229,7 +228,7 @@ void ChromeCleanupHandler::HandleRestartComputer(const base::ListValue* args) {
}
void ChromeCleanupHandler::HandleStartCleanup(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
bool allow_logs_upload = false;
args->GetBoolean(0, &allow_logs_upload);
@@ -250,7 +249,7 @@ void ChromeCleanupHandler::HandleStartCleanup(const base::ListValue* args) {
void ChromeCleanupHandler::HandleNotifyShowDetails(
const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
bool details_section_visible = false;
args->GetBoolean(0, &details_section_visible);
@@ -265,7 +264,7 @@ void ChromeCleanupHandler::HandleNotifyShowDetails(
void ChromeCleanupHandler::HandleNotifyChromeCleanupLearnMoreClicked(
const base::ListValue* args) {
- CHECK_EQ(0U, args->GetSize());
+ CHECK_EQ(0U, args->GetList().size());
base::RecordAction(
base::UserMetricsAction("SoftwareReporter.CleanupWebui_LearnMore"));
diff --git a/chromium/chrome/browser/ui/webui/settings/chrome_cleanup_handler_win.h b/chromium/chrome/browser/ui/webui/settings/chrome_cleanup_handler_win.h
index 8b790e2895e..33fa64a20e4 100644
--- a/chromium/chrome/browser/ui/webui/settings/chrome_cleanup_handler_win.h
+++ b/chromium/chrome/browser/ui/webui/settings/chrome_cleanup_handler_win.h
@@ -25,6 +25,10 @@ class ChromeCleanupHandler
public safe_browsing::ChromeCleanerController::Observer {
public:
explicit ChromeCleanupHandler(Profile* profile);
+
+ ChromeCleanupHandler(const ChromeCleanupHandler&) = delete;
+ ChromeCleanupHandler& operator=(const ChromeCleanupHandler&) = delete;
+
~ChromeCleanupHandler() override;
// SettingsPageUIHandler implementation.
@@ -85,8 +89,6 @@ class ChromeCleanupHandler
safe_browsing::ChromeCleanerController* controller_;
Profile* profile_;
-
- DISALLOW_COPY_AND_ASSIGN(ChromeCleanupHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/DEPS b/chromium/chrome/browser/ui/webui/settings/chromeos/DEPS
index 7e871b5ee5a..9ee5d7fc2b6 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/DEPS
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/DEPS
@@ -5,3 +5,9 @@ include_rules = [
"+chromeos/tpm:tpm",
"+device/udev_linux/fake_udev_loader.h", # For keyboard unit test.
]
+
+specific_include_rules = {
+ 'ambient_mode_handler_unittest.cc': [
+ '+ash/ambient/test/ambient_ash_test_helper.h',
+ ],
+}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/DIR_METADATA b/chromium/chrome/browser/ui/webui/settings/chromeos/DIR_METADATA
index 2d34b2f4c92..e84643a0ace 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/DIR_METADATA
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/DIR_METADATA
@@ -1,3 +1 @@
-monorail {
- component: "OS>Systems>Settings"
-}
+mixins: "//chrome/browser/resources/settings/chromeos/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/about_section.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/about_section.cc
index 734b4934564..8093a9ad9bd 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/about_section.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/about_section.cc
@@ -113,6 +113,19 @@ const std::vector<SearchConcept>& GetDiagnosticsAppSearchConcepts() {
return *tags;
}
+const std::vector<SearchConcept>& GetDeviceNameSearchConcepts() {
+ static const base::NoDestructor<std::vector<SearchConcept>> tags({
+ {IDS_OS_SETTINGS_TAG_ABOUT_DEVICE_NAME,
+ mojom::kDetailedBuildInfoSubpagePath,
+ mojom::SearchResultIcon::kChrome,
+ mojom::SearchResultDefaultRank::kMedium,
+ mojom::SearchResultType::kSetting,
+ {.setting = mojom::Setting::kChangeDeviceName},
+ {IDS_OS_SETTINGS_TAG_ABOUT_DEVICE_NAME_ALT1, SearchConcept::kAltTagEnd}},
+ });
+ return *tags;
+}
+
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
const std::vector<SearchConcept>& GetAboutTermsOfServiceSearchConcepts() {
static const base::NoDestructor<std::vector<SearchConcept>> tags({
@@ -186,6 +199,11 @@ AboutSection::AboutSection(Profile* profile,
if (base::FeatureList::IsEnabled(chromeos::features::kDiagnosticsApp)) {
updater.AddSearchTags(GetDiagnosticsAppSearchConcepts());
}
+
+ if (base::FeatureList::IsEnabled(
+ chromeos::features::kEnableHostnameSetting)) {
+ updater.AddSearchTags(GetDeviceNameSearchConcepts());
+ }
}
AboutSection::~AboutSection() = default;
@@ -246,6 +264,18 @@ void AboutSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
{"aboutDeviceNameInfo", IDS_SETTINGS_ABOUT_PAGE_DEVICE_NAME_INFO},
{"aboutDeviceNameConstraints",
IDS_SETTINGS_ABOUT_PAGE_DEVICE_NAME_CONSTRAINTS},
+ {"aboutDeviceNameConstraintsA11yDescription",
+ IDS_SETTINGS_ABOUT_PAGE_DEVICE_NAME_CONSTRAINTS_A11Y_DESCRIPTION},
+ {"aboutDeviceNameInputCharacterCount",
+ IDS_SETTINGS_ABOUT_PAGE_DEVICE_NAME_INPUT_COUNT},
+ {"aboutDeviceNameInputA11yLabel",
+ IDS_SETTINGS_ABOUT_PAGE_DEVICE_NAME_INPUT_A11Y_LABEL},
+ {"aboutDeviceNameDoneBtnA11yLabel",
+ IDS_SETTINGS_ABOUT_PAGE_DEVICE_NAME_DONE_BTN_A11Y_LABEL},
+ {"aboutDeviceNameEditBtnA11yLabel",
+ IDS_SETTINGS_ABOUT_PAGE_DEVICE_NAME_EDIT_BTN_A11Y_LABEL},
+ {"aboutDeviceNameEditBtnA11yDescription",
+ IDS_SETTINGS_ABOUT_PAGE_DEVICE_NAME_EDIT_BTN_A11Y_DESCRIPTION},
// About page, update warning dialog.
{"aboutUpdateWarningMessage",
@@ -259,10 +289,12 @@ void AboutSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
{"aboutChannelDev", IDS_SETTINGS_ABOUT_PAGE_CURRENT_CHANNEL_DEV},
{"aboutChannelLabel", IDS_SETTINGS_ABOUT_PAGE_CHANNEL},
{"aboutChannelStable", IDS_SETTINGS_ABOUT_PAGE_CURRENT_CHANNEL_STABLE},
- {"aboutChannelLongTermStable",
- IDS_SETTINGS_ABOUT_PAGE_CURRENT_CHANNEL_STABLE_TT},
+ {"aboutChannelLongTermSupport",
+ IDS_SETTINGS_ABOUT_PAGE_CURRENT_CHANNEL_LTS},
{"aboutCheckForUpdates", IDS_SETTINGS_ABOUT_PAGE_CHECK_FOR_UPDATES},
{"aboutCurrentlyOnChannel", IDS_SETTINGS_ABOUT_PAGE_CURRENT_CHANNEL},
+ {"aboutCurrentlyOnChannelInfo",
+ IDS_SETTINGS_ABOUT_PAGE_CURRENT_CHANNEL_INFO},
{"aboutDetailedBuildInfo", IDS_SETTINGS_ABOUT_PAGE_DETAILED_BUILD_INFO},
{version_ui::kApplicationLabel, IDS_PRODUCT_NAME},
{version_ui::kPlatform, IDS_PLATFORM_LABEL},
@@ -419,7 +451,7 @@ void AboutSection::RegisterHierarchy(HierarchyGenerator* generator) const {
mojom::SearchResultIcon::kChrome, mojom::SearchResultDefaultRank::kMedium,
mojom::kDetailedBuildInfoSubpagePath);
static constexpr mojom::Setting kDetailedBuildInfoSettings[] = {
- mojom::Setting::kChangeChromeChannel,
+ mojom::Setting::kChangeChromeChannel, mojom::Setting::kChangeDeviceName,
mojom::Setting::kCopyDetailedBuildInfo};
RegisterNestedSettingBulk(mojom::Subpage::kDetailedBuildInfo,
kDetailedBuildInfoSettings, generator);
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
index a0429575590..552d6cbdfd0 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
@@ -26,8 +26,8 @@
#include "extensions/browser/extension_registry.h"
#include "extensions/common/constants.h"
#include "ui/accessibility/accessibility_features.h"
-#include "ui/base/ime/chromeos/input_method_manager.h"
-#include "ui/base/ime/chromeos/input_method_util.h"
+#include "ui/base/ime/ash/input_method_manager.h"
+#include "ui/base/ime/ash/input_method_util.h"
#include "ui/base/l10n/l10n_util.h"
namespace chromeos {
@@ -54,32 +54,32 @@ AccessibilityHandler::~AccessibilityHandler() {
}
void AccessibilityHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showChromeVoxSettings",
base::BindRepeating(&AccessibilityHandler::HandleShowChromeVoxSettings,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showSelectToSpeakSettings",
base::BindRepeating(
&AccessibilityHandler::HandleShowSelectToSpeakSettings,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setStartupSoundEnabled",
base::BindRepeating(&AccessibilityHandler::HandleSetStartupSoundEnabled,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"recordSelectedShowShelfNavigationButtonValue",
base::BindRepeating(
&AccessibilityHandler::
HandleRecordSelectedShowShelfNavigationButtonsValue,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"manageA11yPageReady",
base::BindRepeating(&AccessibilityHandler::HandleManageA11yPageReady,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showChromeVoxTutorial",
base::BindRepeating(&AccessibilityHandler::HandleShowChromeVoxTutorial,
base::Unretained(this)));
@@ -97,7 +97,7 @@ void AccessibilityHandler::HandleShowSelectToSpeakSettings(
void AccessibilityHandler::HandleSetStartupSoundEnabled(
const base::ListValue* args) {
- DCHECK_EQ(1U, args->GetSize());
+ DCHECK_EQ(1U, args->GetList().size());
bool enabled;
args->GetBoolean(0, &enabled);
AccessibilityManager::Get()->SetStartupSoundEnabled(enabled);
@@ -105,12 +105,12 @@ void AccessibilityHandler::HandleSetStartupSoundEnabled(
void AccessibilityHandler::HandleRecordSelectedShowShelfNavigationButtonsValue(
const base::ListValue* args) {
- DCHECK_EQ(1U, args->GetSize());
+ DCHECK_EQ(1U, args->GetList().size());
bool enabled;
args->GetBoolean(0, &enabled);
a11y_nav_buttons_toggle_metrics_reporter_timer_.Start(
- FROM_HERE, base::TimeDelta::FromSeconds(10),
+ FROM_HERE, base::Seconds(10),
base::BindOnce(&RecordShowShelfNavigationButtonsValueChange, enabled));
}
@@ -149,51 +149,91 @@ void AccessibilityHandler::OpenExtensionOptionsPage(const char extension_id[]) {
}
void AccessibilityHandler::MaybeAddSodaInstallerObserver() {
- // TODO(crbug.com/1173135): Don't display SODA status if the Dictation
- // language is not a downloaded or available SODA language.
- if (features::IsDictationOfflineAvailableAndEnabled()) {
- const std::string dictation_locale =
- profile_->GetPrefs()->GetString(prefs::kAccessibilityDictationLocale);
- if (speech::SodaInstaller::GetInstance()->IsSodaInstalled(
- speech::GetLanguageCode(dictation_locale))) {
- OnSodaInstalled();
- } else {
- // Add self as an observer. If this was a page refresh we don't want to
- // get added twice.
- soda_observation_.Observe(speech::SodaInstaller::GetInstance());
- }
+ if (!features::IsDictationOfflineAvailableAndEnabled())
+ return;
+
+ speech::SodaInstaller* soda_installer = speech::SodaInstaller::GetInstance();
+ if (!soda_installer->IsSodaInstalled(GetDictationLocale())) {
+ // Add self as an observer. If this was a page refresh we don't want to
+ // get added twice.
+ soda_observation_.Observe(soda_installer);
}
}
-// SodaInstaller::Observer:
-void AccessibilityHandler::OnSodaInstalled() {
- speech::SodaInstaller::GetInstance()->RemoveObserver(this);
+void AccessibilityHandler::OnSodaInstallSucceeded() {
+ if (!speech::SodaInstaller::GetInstance()->IsSodaInstalled(
+ GetDictationLocale())) {
+ return;
+ }
+
+ // Only show the success message if both the SODA binary and the language pack
+ // matching the Dictation locale have been downloaded.
FireWebUIListener(
- "dictation-setting-subtitle-changed",
- base::Value(l10n_util::GetStringUTF16(
- IDS_SETTINGS_ACCESSIBILITY_DICTATION_SUBTITLE_SODA_DOWNLOAD_COMPLETE)));
+ "dictation-locale-menu-subtitle-changed",
+ base::Value(l10n_util::GetStringFUTF16(
+ IDS_SETTINGS_ACCESSIBILITY_DICTATION_LOCALE_SUB_LABEL_OFFLINE,
+ GetDictationLocaleDisplayName())));
}
-void AccessibilityHandler::OnSodaProgress(int progress) {
+void AccessibilityHandler::OnSodaInstallProgress(
+ int progress,
+ speech::LanguageCode language_code) {
+ if (language_code != GetDictationLocale())
+ return;
+
+ // Only show the progress message if this applies to the language pack
+ // matching the Dictation locale.
FireWebUIListener(
- "dictation-setting-subtitle-changed",
+ "dictation-locale-menu-subtitle-changed",
base::Value(l10n_util::GetStringFUTF16Int(
IDS_SETTINGS_ACCESSIBILITY_DICTATION_SUBTITLE_SODA_DOWNLOAD_PROGRESS,
progress)));
}
+void AccessibilityHandler::OnSodaInstallFailed(
+ speech::LanguageCode language_code) {
+ if (language_code == speech::LanguageCode::kNone ||
+ language_code == GetDictationLocale()) {
+ // Show the failed message if either the Dictation locale failed or the SODA
+ // binary failed (encoded by LanguageCode::kNone).
+ FireWebUIListener(
+ "dictation-locale-menu-subtitle-changed",
+ base::Value(l10n_util::GetStringFUTF16(
+ IDS_SETTINGS_ACCESSIBILITY_DICTATION_SUBTITLE_SODA_DOWNLOAD_ERROR,
+ GetDictationLocaleDisplayName())));
+ }
+}
+
+// SodaInstaller::Observer:
+void AccessibilityHandler::OnSodaInstalled() {
+ OnSodaInstallSucceeded();
+}
+
+void AccessibilityHandler::OnSodaLanguagePackInstalled(
+ speech::LanguageCode language_code) {
+ OnSodaInstallSucceeded();
+}
+
+void AccessibilityHandler::OnSodaLanguagePackProgress(
+ int language_progress,
+ speech::LanguageCode language_code) {
+ OnSodaInstallProgress(language_progress, language_code);
+}
+
void AccessibilityHandler::OnSodaError() {
- FireWebUIListener(
- "dictation-setting-subtitle-changed",
- base::Value(l10n_util::GetStringUTF16(
- IDS_SETTINGS_ACCESSIBILITY_DICTATION_SUBTITLE_SODA_DOWNLOAD_ERROR)));
+ OnSodaInstallFailed(speech::LanguageCode::kNone);
+}
+
+void AccessibilityHandler::OnSodaLanguagePackError(
+ speech::LanguageCode language_code) {
+ OnSodaInstallFailed(language_code);
}
void AccessibilityHandler::MaybeAddDictationLocales() {
if (!features::IsExperimentalAccessibilityDictationOfflineEnabled())
return;
- base::flat_map<std::string, bool> locales =
+ base::flat_map<std::string, ash::Dictation::LocaleData> locales =
ash::Dictation::GetAllSupportedLocales();
// Get application locale.
@@ -205,7 +245,7 @@ void AccessibilityHandler::MaybeAddDictationLocales() {
input_method::InputMethodManager* ime_manager =
input_method::InputMethodManager::Get();
std::vector<std::string> input_method_ids =
- ime_manager->GetActiveIMEState()->GetActiveInputMethodIds();
+ ime_manager->GetActiveIMEState()->GetEnabledInputMethodIds();
std::vector<std::string> ime_languages;
ime_manager->GetInputMethodUtil()->GetLanguageCodesFromInputMethodIds(
input_method_ids, &ime_languages);
@@ -234,7 +274,8 @@ void AccessibilityHandler::MaybeAddDictationLocales() {
option.SetKey("name",
base::Value(l10n_util::GetDisplayNameForLocale(
locale.first, application_locale, /*is_for_ui=*/true)));
- option.SetKey("offline", base::Value(locale.second));
+ option.SetKey("worksOffline", base::Value(locale.second.works_offline));
+ option.SetKey("installed", base::Value(locale.second.installed));
// We can recommend languages that match the current application
// locale, IME languages or enabled preferred languages.
@@ -249,5 +290,22 @@ void AccessibilityHandler::MaybeAddDictationLocales() {
FireWebUIListener("dictation-locales-set", locales_list);
}
+// Returns the Dictation locale as a language code.
+speech::LanguageCode AccessibilityHandler::GetDictationLocale() {
+ const std::string dictation_locale =
+ profile_->GetPrefs()->GetString(prefs::kAccessibilityDictationLocale);
+ return speech::GetLanguageCode(dictation_locale);
+}
+
+std::u16string AccessibilityHandler::GetDictationLocaleDisplayName() {
+ const std::string dictation_locale =
+ profile_->GetPrefs()->GetString(prefs::kAccessibilityDictationLocale);
+
+ return l10n_util::GetDisplayNameForLocale(
+ /*locale=*/dictation_locale,
+ /*display_locale=*/g_browser_process->GetApplicationLocale(),
+ /*is_ui=*/true);
+}
+
} // namespace settings
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.h
index 48ab03ddc1d..9c42c49872f 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.h
@@ -24,6 +24,10 @@ class AccessibilityHandler : public ::settings::SettingsPageUIHandler,
public speech::SodaInstaller::Observer {
public:
explicit AccessibilityHandler(Profile* profile);
+
+ AccessibilityHandler(const AccessibilityHandler&) = delete;
+ AccessibilityHandler& operator=(const AccessibilityHandler&) = delete;
+
~AccessibilityHandler() override;
// SettingsPageUIHandler implementation.
@@ -49,19 +53,22 @@ class AccessibilityHandler : public ::settings::SettingsPageUIHandler,
void OpenExtensionOptionsPage(const char extension_id[]);
void MaybeAddSodaInstallerObserver();
+ void OnSodaInstallSucceeded();
+ void OnSodaInstallProgress(int progress, speech::LanguageCode language_code);
+ void OnSodaInstallFailed(speech::LanguageCode language_code);
// SodaInstaller::Observer:
void OnSodaInstalled() override;
- void OnSodaLanguagePackInstalled(
- speech::LanguageCode language_code) override {}
- void OnSodaProgress(int progress) override;
+ void OnSodaLanguagePackInstalled(speech::LanguageCode language_code) override;
+ void OnSodaProgress(int progress) override {}
void OnSodaLanguagePackProgress(int language_progress,
- speech::LanguageCode language_code) override {
- }
+ speech::LanguageCode language_code) override;
void OnSodaError() override;
- void OnSodaLanguagePackError(speech::LanguageCode language_code) override {}
+ void OnSodaLanguagePackError(speech::LanguageCode language_code) override;
void MaybeAddDictationLocales();
+ speech::LanguageCode GetDictationLocale();
+ std::u16string GetDictationLocaleDisplayName();
Profile* profile_; // Weak pointer.
@@ -76,8 +83,6 @@ class AccessibilityHandler : public ::settings::SettingsPageUIHandler,
soda_observation_{this};
base::WeakPtrFactory<AccessibilityHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(AccessibilityHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler_browsertest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler_browsertest.cc
index 5752b5686ca..7b7356d8443 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_handler_browsertest.cc
@@ -8,6 +8,7 @@
#include <set>
#include "ash/constants/ash_features.h"
+#include "ash/constants/ash_pref_names.h"
#include "chrome/browser/ash/input_method/mock_input_method_engine.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/profiles/profile_manager.h"
@@ -21,9 +22,9 @@
#include "content/public/test/test_web_ui.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "ui/accessibility/accessibility_features.h"
-#include "ui/base/ime/chromeos/input_method_descriptor.h"
-#include "ui/base/ime/chromeos/input_method_manager.h"
-#include "ui/base/ime/chromeos/input_method_util.h"
+#include "ui/base/ime/ash/input_method_descriptor.h"
+#include "ui/base/ime/ash/input_method_manager.h"
+#include "ui/base/ime/ash/input_method_util.h"
using ::testing::Contains;
using ::testing::Not;
@@ -60,6 +61,9 @@ class AccessibilityHandlerTest : public InProcessBrowserTest {
handler_->RegisterMessages();
handler_->AllowJavascriptForTesting();
base::RunLoop().RunUntilIdle();
+
+ // Set the Dictation locale for tests.
+ SetDictationLocale("en-US");
}
void TearDownOnMainThread() override {
@@ -115,13 +119,19 @@ class AccessibilityHandlerTest : public InProcessBrowserTest {
return false;
}
- void OnSodaInstalled() { handler_->OnSodaInstalled(); }
+ void MaybeAddDictationLocales() { handler_->MaybeAddDictationLocales(); }
- void OnSodaProgress(int progress) { handler_->OnSodaProgress(progress); }
+ void SetDictationLocale(const std::string& locale) {
+ ProfileManager::GetActiveUserProfile()->GetPrefs()->SetString(
+ prefs::kAccessibilityDictationLocale, locale);
+ }
- void OnSodaError() { handler_->OnSodaError(); }
+ speech::SodaInstaller* soda_installer() {
+ return speech::SodaInstaller::GetInstance();
+ }
- void MaybeAddDictationLocales() { handler_->MaybeAddDictationLocales(); }
+ speech::LanguageCode en_us() { return speech::LanguageCode::kEnUs; }
+ speech::LanguageCode fr_fr() { return speech::LanguageCode::kFrFr; }
std::unique_ptr<input_method::MockInputMethodEngine> mock_ime_engine_handler_;
@@ -132,47 +142,71 @@ class AccessibilityHandlerTest : public InProcessBrowserTest {
base::test::ScopedFeatureList scoped_feature_list_;
};
-// A sanity check that ensures that |handler_| can be used to call into
-// AccessibilityHandler and produce the expected results.
-// This also verifies that the correct string is sent to the JavaScript end
-// of the web UI.
-IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaInstalledTestApi) {
+// Ensures that AccessibilityHandler listens to SODA download state changes, and
+// fires the correct listener when SODA AND the language pack matching the
+// Dictation locale are installed.
+IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaInstalledNotification) {
+ SetDictationLocale("fr-FR");
size_t num_calls = GetNumWebUICalls();
- OnSodaInstalled();
+ // Pretend that the SODA binary was installed. We still need to wait for the
+ // correct language pack before doing anything.
+ soda_installer()->NotifySodaInstalledForTesting();
+ AssertWebUICalls(num_calls);
+ soda_installer()->NotifyOnSodaLanguagePackInstalledForTesting(en_us());
+ AssertWebUICalls(num_calls);
+ soda_installer()->NotifyOnSodaLanguagePackInstalledForTesting(fr_fr());
AssertWebUICalls(num_calls + 1);
ASSERT_TRUE(WasWebUIListenerCalledWithStringArgument(
- "dictation-setting-subtitle-changed", "Speech files downloaded"));
+ "dictation-locale-menu-subtitle-changed",
+ "French (France) is processed locally and works offline"));
}
// Verifies that the correct string is sent to the JavaScript end of the web UI.
-IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaProgressTestApi) {
+// Ensures we only notify the user of progress for the language pack matching
+// the Dictation locale.
+IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaProgressNotification) {
size_t num_calls = GetNumWebUICalls();
- OnSodaProgress(50);
+ // Do not give updates for the SODA binary.
+ soda_installer()->NotifySodaDownloadProgressForTesting(50);
+ AssertWebUICalls(num_calls);
+ soda_installer()->NotifyOnSodaLanguagePackProgressForTesting(50, fr_fr());
+ AssertWebUICalls(num_calls);
+ soda_installer()->NotifyOnSodaLanguagePackProgressForTesting(50, en_us());
AssertWebUICalls(num_calls + 1);
ASSERT_TRUE(WasWebUIListenerCalledWithStringArgument(
- "dictation-setting-subtitle-changed",
+ "dictation-locale-menu-subtitle-changed",
"Downloading speech recognition files… 50%"));
}
-// Verifies that the correct string is sent to the JavaScript end of the web UI.
-IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaErrorTestApi) {
+// Verifies that the correct string is sent to the JavaScript end of the web UI
+// when the SODA binary fails to download.
+IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaErrorNotification) {
size_t num_calls = GetNumWebUICalls();
- OnSodaError();
+ soda_installer()->NotifySodaErrorForTesting();
AssertWebUICalls(num_calls + 1);
ASSERT_TRUE(WasWebUIListenerCalledWithStringArgument(
- "dictation-setting-subtitle-changed",
- "Can't download speech files. Dictation will continue to work by sending "
- "your voice to Google."));
+ "dictation-locale-menu-subtitle-changed",
+ "Couldn’t download English (United States) speech files. Download will "
+ "be attempted later. Speech is sent to Google for processing for now."));
}
-// Ensures that AccessibilityHandler listens to SODA download state and fires
-// the correct listener when SODA is installed.
-IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaInstalledNotification) {
+// Verifies that the correct listener is fired when the language pack matching
+// the Dictation locale fails to download.
+IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest,
+ OnSodaLanguageErrorNotification) {
size_t num_calls = GetNumWebUICalls();
- speech::SodaInstaller::GetInstance()->NotifySodaInstalledForTesting();
+ // Do nothing if the failed language pack is different than the Dictation
+ // locale.
+ soda_installer()->NotifyOnSodaLanguagePackErrorForTesting(fr_fr());
+ AssertWebUICalls(num_calls);
+ // Fire the correct listener when the language pack matching the Dictation
+ // locale fails.
+ soda_installer()->NotifyOnSodaLanguagePackErrorForTesting(en_us());
AssertWebUICalls(num_calls + 1);
ASSERT_TRUE(WasWebUIListenerCalledWithStringArgument(
- "dictation-setting-subtitle-changed", "Speech files downloaded"));
+ "dictation-locale-menu-subtitle-changed",
+ "Couldn’t download English (United States) speech files. Download will "
+ "be attempted later. Speech is sent to Google for processing for now."));
}
IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, DictationLocalesCalculation) {
@@ -247,5 +281,28 @@ IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, DictationLocalesCalculation) {
}
}
+IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest,
+ DictationLocalesOfflineAndInstalled) {
+ speech::SodaInstaller::GetInstance()->NotifySodaInstalledForTesting();
+ MaybeAddDictationLocales();
+ const base::ListValue* argument;
+ ASSERT_TRUE(
+ GetWebUIListenerArgumentListValue("dictation-locales-set", &argument));
+
+ for (auto& it : argument->GetList()) {
+ const base::DictionaryValue* dict = &base::Value::AsDictionaryValue(it);
+ const std::string locale = *(dict->FindStringPath("value"));
+ bool works_offline = dict->FindBoolKey("worksOffline").value();
+ bool installed = dict->FindBoolKey("installed").value();
+ if (locale == speech::kUsEnglishLocale) {
+ ASSERT_TRUE(works_offline);
+ ASSERT_TRUE(installed);
+ } else {
+ ASSERT_FALSE(works_offline);
+ ASSERT_FALSE(installed);
+ }
+ }
+}
+
} // namespace settings
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_section.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_section.cc
index daa0d7ac0e0..3abf88a4ae4 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_section.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/accessibility_section.cc
@@ -324,19 +324,10 @@ GetA11yFullscreenMagnifierFocusFollowingSearchConcepts() {
return *tags;
}
-bool AreExperimentalA11yLabelsAllowed() {
- return base::FeatureList::IsEnabled(
- ::features::kExperimentalAccessibilityLabels);
-}
-
bool IsLiveCaptionEnabled() {
return media::IsLiveCaptionFeatureEnabled();
}
-bool IsMagnifierPanningImprovementsEnabled() {
- return ::features::IsMagnifierPanningImprovementsEnabled();
-}
-
bool IsMagnifierContinuousMouseFollowingModeSettingEnabled() {
return ::features::IsMagnifierContinuousMouseFollowingModeSettingEnabled();
}
@@ -346,13 +337,8 @@ bool IsSwitchAccessTextAllowed() {
::switches::kEnableExperimentalAccessibilitySwitchAccessText);
}
-bool IsSwitchAccessPointScanningEnabled() {
- return ::features::IsSwitchAccessPointScanningEnabled();
-}
-
bool IsSwitchAccessSetupGuideAllowed() {
- return base::CommandLine::ForCurrentProcess()->HasSwitch(
- ::switches::kEnableExperimentalAccessibilitySwitchAccessSetupGuide);
+ return ::features::IsExperimentalAccessibilitySwitchAccessSetupGuideEnabled();
}
bool AreTabletNavigationButtonsAllowed() {
@@ -499,8 +485,6 @@ void AccessibilitySection::AddLoadTimeData(
IDS_SETTINGS_AUTOCLICK_MOVEMENT_THRESHOLD_LARGE},
{"autoclickMovementThresholdExtraLarge",
IDS_SETTINGS_AUTOCLICK_MOVEMENT_THRESHOLD_EXTRA_LARGE},
- {"dictationDescription",
- IDS_SETTINGS_ACCESSIBILITY_DICTATION_DESCRIPTION},
{"dictationLabel", IDS_SETTINGS_ACCESSIBILITY_DICTATION_LABEL},
{"dictationLocaleMenuLabel",
IDS_SETTINGS_ACCESSIBILITY_DICTATION_LOCALE_MENU_LABEL},
@@ -508,6 +492,10 @@ void AccessibilitySection::AddLoadTimeData(
IDS_SETTINGS_ACCESSIBILITY_DICTATION_LOCALE_SUB_LABEL_OFFLINE},
{"dictationLocaleSubLabelNetwork",
IDS_SETTINGS_ACCESSIBILITY_DICTATION_LOCALE_SUB_LABEL_NETWORK},
+ // For temporary network label, we can use the string that's shown when a
+ // SODA download fails.
+ {"dictationLocaleSubLabelNetworkTemporarily",
+ IDS_SETTINGS_ACCESSIBILITY_DICTATION_SUBTITLE_SODA_DOWNLOAD_ERROR},
{"dictationChangeLanguageButton",
IDS_SETTINGS_ACCESSIBILITY_DICTATION_CHANGE_LANGUAGE_BUTTON},
{"dictationChangeLanguageDialogTitle",
@@ -662,8 +650,6 @@ void AccessibilitySection::AddLoadTimeData(
IDS_SETTINGS_SWITCH_ACCESS_SETUP_ASSIGN_PREVIOUS_TITLE},
{"switchAccessSetupClosingTitle",
IDS_SETTINGS_SWITCH_ACCESS_SETUP_CLOSING_TITLE},
- {"switchAccessSetupClosingAutoScanInstructions",
- IDS_SETTINGS_SWITCH_ACCESS_SETUP_CLOSING_AUTO_SCAN_INSTRUCTIONS},
{"switchAccessSetupClosingManualScanInstructions",
IDS_SETTINGS_SWITCH_ACCESS_SETUP_CLOSING_MANUAL_SCAN_INSTRUCTIONS},
{"switchAccessSetupClosingInfo",
@@ -764,6 +750,12 @@ void AccessibilitySection::AddLoadTimeData(
? IDS_SETTINGS_KEYBOARD_KEY_LAUNCHER
: IDS_SETTINGS_KEYBOARD_KEY_SEARCH);
+ html_source->AddLocalizedString(
+ "dictationDescription",
+ ::features::IsExperimentalAccessibilityDictationOfflineEnabled()
+ ? IDS_SETTINGS_ACCESSIBILITY_DICTATION_NEW_DESCRIPTION
+ : IDS_SETTINGS_ACCESSIBILITY_DICTATION_DESCRIPTION);
+
html_source->AddString("a11yLearnMoreUrl",
chrome::kChromeAccessibilityHelpURL);
@@ -771,24 +763,15 @@ void AccessibilitySection::AddLoadTimeData(
"showExperimentalAccessibilitySwitchAccessImprovedTextInput",
IsSwitchAccessTextAllowed());
- html_source->AddBoolean("isSwitchAccessPointScanningEnabled",
- IsSwitchAccessPointScanningEnabled());
-
html_source->AddBoolean("showSwitchAccessSetupGuide",
IsSwitchAccessSetupGuideAllowed());
- html_source->AddBoolean("showExperimentalA11yLabels",
- AreExperimentalA11yLabelsAllowed());
-
html_source->AddBoolean("showTabletModeShelfNavigationButtonsSettings",
AreTabletNavigationButtonsAllowed());
html_source->AddString("tabletModeShelfNavigationButtonsLearnMoreUrl",
chrome::kTabletModeGesturesLearnMoreURL);
- html_source->AddBoolean("isMagnifierPanningImprovementsEnabled",
- IsMagnifierPanningImprovementsEnabled());
-
html_source->AddBoolean(
"isMagnifierContinuousMouseFollowingModeSettingEnabled",
IsMagnifierContinuousMouseFollowingModeSettingEnabled());
@@ -972,8 +955,7 @@ void AccessibilitySection::UpdateTextToSpeechEnginesSearchTags() {
void AccessibilitySection::UpdateSearchTags() {
SearchTagRegistry::ScopedTagUpdater updater = registry()->StartUpdate();
- if (accessibility_state_utils::IsScreenReaderEnabled() &&
- AreExperimentalA11yLabelsAllowed()) {
+ if (accessibility_state_utils::IsScreenReaderEnabled()) {
updater.AddSearchTags(GetA11yLabelsSearchConcepts());
} else {
updater.RemoveSearchTags(GetA11yLabelsSearchConcepts());
@@ -988,8 +970,7 @@ void AccessibilitySection::UpdateSearchTags() {
updater.RemoveSearchTags(GetA11yLiveCaptionSearchConcepts());
}
- if (IsMagnifierPanningImprovementsEnabled() &&
- pref_service_->GetBoolean(
+ if (pref_service_->GetBoolean(
ash::prefs::kAccessibilityScreenMagnifierEnabled)) {
updater.AddSearchTags(
GetA11yFullscreenMagnifierFocusFollowingSearchConcepts());
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler.cc
index 5b2e6528fc7..54451f63b85 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler.cc
@@ -15,7 +15,6 @@
#include "base/macros.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
-#include "chrome/browser/account_manager_facade_factory.h"
#include "chrome/browser/ash/profiles/profile_helper.h"
#include "chrome/browser/enterprise/util/managed_browser_utils.h"
#include "chrome/browser/policy/profile_policy_connector.h"
@@ -26,6 +25,7 @@
#include "chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.h"
#include "chrome/grit/generated_resources.h"
#include "components/account_manager_core/account_manager_facade.h"
+#include "components/account_manager_core/chromeos/account_manager_facade_factory.h"
#include "components/signin/public/identity_manager/consent_level.h"
#include "components/user_manager/user.h"
#include "google_apis/gaia/gaia_auth_util.h"
@@ -69,13 +69,13 @@ constexpr char kAccountRemovedToastId[] =
bool IsSameAccount(const ::account_manager::AccountKey& account_key,
const AccountId& account_id) {
- switch (account_key.account_type) {
+ switch (account_key.account_type()) {
case account_manager::AccountType::kGaia:
return (account_id.GetAccountType() == AccountType::GOOGLE) &&
- (account_id.GetGaiaId() == account_key.id);
+ (account_id.GetGaiaId() == account_key.id());
case account_manager::AccountType::kActiveDirectory:
return (account_id.GetAccountType() == AccountType::ACTIVE_DIRECTORY) &&
- (account_id.GetObjGuid() == account_key.id);
+ (account_id.GetObjGuid() == account_key.id());
}
}
@@ -87,6 +87,10 @@ void ShowToast(const std::string& id, const std::u16string& message) {
class AccountBuilder {
public:
AccountBuilder() = default;
+
+ AccountBuilder(const AccountBuilder&) = delete;
+ AccountBuilder& operator=(const AccountBuilder&) = delete;
+
~AccountBuilder() = default;
void PopulateFrom(base::DictionaryValue account) {
@@ -158,7 +162,6 @@ class AccountBuilder {
private:
base::DictionaryValue account_;
- DISALLOW_COPY_AND_ASSIGN(AccountBuilder);
};
} // namespace
@@ -181,27 +184,27 @@ void AccountManagerUIHandler::RegisterMessages() {
if (!profile_)
profile_ = Profile::FromWebUI(web_ui());
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getAccounts",
base::BindRepeating(&AccountManagerUIHandler::HandleGetAccounts,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"addAccount",
base::BindRepeating(&AccountManagerUIHandler::HandleAddAccount,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"reauthenticateAccount",
base::BindRepeating(&AccountManagerUIHandler::HandleReauthenticateAccount,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"migrateAccount",
base::BindRepeating(&AccountManagerUIHandler::HandleMigrateAccount,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeAccount",
base::BindRepeating(&AccountManagerUIHandler::HandleRemoveAccount,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showWelcomeDialogIfRequired",
base::BindRepeating(
&AccountManagerUIHandler::HandleShowWelcomeDialogIfRequired,
@@ -294,12 +297,12 @@ base::ListValue AccountManagerUIHandler::GetSecondaryGaiaAccounts(
const ::account_manager::Account& stored_account = account_token_pair.first;
const ::account_manager::AccountKey& account_key = stored_account.key;
// We are only interested in listing GAIA accounts.
- if (account_key.account_type != account_manager::AccountType::kGaia) {
+ if (account_key.account_type() != account_manager::AccountType::kGaia) {
continue;
}
AccountInfo maybe_account_info =
- identity_manager_->FindExtendedAccountInfoByGaiaId(account_key.id);
+ identity_manager_->FindExtendedAccountInfoByGaiaId(account_key.id());
if (maybe_account_info.IsEmpty()) {
// This account hasn't propagated to IdentityManager yet. When this
// happens, `IdentityManager` will call `OnRefreshTokenUpdatedForAccount`
@@ -308,8 +311,8 @@ base::ListValue AccountManagerUIHandler::GetSecondaryGaiaAccounts(
}
AccountBuilder account;
- account.SetId(account_key.id)
- .SetAccountType(static_cast<int>(account_key.account_type))
+ account.SetId(account_key.id())
+ .SetAccountType(static_cast<int>(account_key.account_type()))
.SetIsDeviceAccount(false)
.SetFullName(maybe_account_info.full_name)
.SetEmail(stored_account.raw_email)
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler.h
index d7789b13f8b..29f84a36fdd 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler.h
@@ -34,6 +34,10 @@ class AccountManagerUIHandler
account_manager::AccountManager* account_manager,
account_manager::AccountManagerFacade* account_manager_facade,
signin::IdentityManager* identity_manager);
+
+ AccountManagerUIHandler(const AccountManagerUIHandler&) = delete;
+ AccountManagerUIHandler& operator=(const AccountManagerUIHandler&) = delete;
+
~AccountManagerUIHandler() override;
// WebUIMessageHandler implementation.
@@ -124,8 +128,6 @@ class AccountManagerUIHandler
identity_manager_observation_{this};
base::WeakPtrFactory<AccountManagerUIHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(AccountManagerUIHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler_browsertest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler_browsertest.cc
index 84d27e9c020..7c06f7fd8f0 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/account_manager_handler_browsertest.cc
@@ -9,7 +9,6 @@
#include "ash/components/account_manager/account_manager_factory.h"
#include "base/test/bind.h"
-#include "chrome/browser/account_manager_facade_factory.h"
#include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
#include "chrome/browser/ash/profiles/profile_helper.h"
#include "chrome/browser/browser_process.h"
@@ -20,6 +19,7 @@
#include "chrome/test/base/testing_profile.h"
#include "components/account_manager_core/account_manager_facade.h"
#include "components/account_manager_core/chromeos/account_manager.h"
+#include "components/account_manager_core/chromeos/account_manager_facade_factory.h"
#include "components/signin/public/identity_manager/identity_manager.h"
#include "components/signin/public/identity_manager/identity_test_utils.h"
#include "components/user_manager/scoped_user_manager.h"
@@ -27,6 +27,7 @@
#include "content/public/test/browser_test.h"
#include "content/public/test/test_web_ui.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
namespace {
@@ -85,7 +86,7 @@ DeviceAccountInfo GetChildDeviceAccountInfo() {
"device-account-token" /*token*/};
}
-account_manager::Account GetAccountByKey(
+absl::optional<account_manager::Account> GetAccountByKey(
std::vector<account_manager::Account> accounts,
account_manager::AccountKey key) {
for (const account_manager::Account& account : accounts) {
@@ -93,7 +94,7 @@ account_manager::Account GetAccountByKey(
return account;
}
}
- return account_manager::Account();
+ return absl::nullopt;
}
std::string ValueOrEmpty(const std::string* str) {
@@ -118,8 +119,10 @@ class TestingAccountManagerUIHandler : public AccountManagerUIHandler {
set_web_ui(web_ui);
}
- private:
- DISALLOW_COPY_AND_ASSIGN(TestingAccountManagerUIHandler);
+ TestingAccountManagerUIHandler(const TestingAccountManagerUIHandler&) =
+ delete;
+ TestingAccountManagerUIHandler& operator=(
+ const TestingAccountManagerUIHandler&) = delete;
};
class AccountManagerUIHandlerTest
@@ -358,9 +361,11 @@ IN_PROC_BROWSER_TEST_P(AccountManagerUIHandlerTest,
continue;
EXPECT_FALSE(account.FindBoolKey("isDeviceAccount").value());
- ::account_manager::Account expected_account = GetAccountByKey(
- account_manager_accounts, {ValueOrEmpty(account.FindStringKey("id")),
- account_manager::AccountType::kGaia});
+ ::account_manager::Account expected_account =
+ GetAccountByKey(account_manager_accounts,
+ {ValueOrEmpty(account.FindStringKey("id")),
+ account_manager::AccountType::kGaia})
+ .value();
if (GetDeviceAccountInfo().user_type ==
user_manager::UserType::USER_TYPE_CHILD) {
EXPECT_FALSE(account.FindBoolKey("unmigrated").value());
@@ -368,14 +373,14 @@ IN_PROC_BROWSER_TEST_P(AccountManagerUIHandlerTest,
EXPECT_EQ(HasDummyGaiaToken(expected_account.key),
account.FindBoolKey("unmigrated").value());
}
- EXPECT_EQ(static_cast<int>(expected_account.key.account_type),
+ EXPECT_EQ(static_cast<int>(expected_account.key.account_type()),
account.FindIntKey("accountType"));
EXPECT_EQ(expected_account.raw_email,
ValueOrEmpty(account.FindStringKey("email")));
AccountInfo expected_account_info =
identity_manager()->FindExtendedAccountInfoByGaiaId(
- expected_account.key.id);
+ expected_account.key.id());
EXPECT_FALSE(expected_account_info.IsEmpty());
EXPECT_EQ(expected_account_info.full_name,
ValueOrEmpty(account.FindStringKey("fullName")));
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.cc
index 1d154071f40..4e3988982f1 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.cc
@@ -10,6 +10,7 @@
#include "ash/constants/ash_features.h"
#include "ash/public/cpp/ambient/ambient_backend_controller.h"
+#include "ash/public/cpp/ambient/ambient_client.h"
#include "ash/public/cpp/ambient/ambient_metrics.h"
#include "ash/public/cpp/ambient/ambient_prefs.h"
#include "ash/public/cpp/ambient/common/ambient_settings.h"
@@ -24,6 +25,7 @@
#include "base/values.h"
#include "chrome/grit/generated_resources.h"
#include "components/prefs/pref_service.h"
+#include "net/http/http_request_headers.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "third_party/skia/include/core/SkBitmap.h"
@@ -60,13 +62,13 @@ constexpr net::BackoffEntry::Policy kRetryBackoffPolicy = {
};
ash::AmbientModeTemperatureUnit ExtractTemperatureUnit(
- const base::ListValue* args) {
- auto temperature_unit = args->GetList()[0].GetString();
- if (temperature_unit == kCelsius) {
+ base::Value::ConstListView args) {
+ auto temperature_unit = args[0].GetString();
+ if (temperature_unit == kCelsius)
return ash::AmbientModeTemperatureUnit::kCelsius;
- } else if (temperature_unit == kFahrenheit) {
+ if (temperature_unit == kFahrenheit)
return ash::AmbientModeTemperatureUnit::kFahrenheit;
- }
+
NOTREACHED() << "Unknown temperature unit";
return ash::AmbientModeTemperatureUnit::kFahrenheit;
}
@@ -90,9 +92,10 @@ ash::AmbientModeTopicSource ExtractTopicSource(const base::Value& value) {
return topic_source;
}
-ash::AmbientModeTopicSource ExtractTopicSource(const base::ListValue* args) {
- CHECK_EQ(args->GetSize(), 1U);
- return ExtractTopicSource(args->GetList()[0]);
+ash::AmbientModeTopicSource ExtractTopicSource(
+ base::Value::ConstListView args) {
+ CHECK_EQ(args.size(), 1U);
+ return ExtractTopicSource(args[0]);
}
void EncodeImage(const gfx::ImageSkia& image,
@@ -179,9 +182,9 @@ void AmbientModeHandler::OnEnabledPrefChanged() {
UpdateSettings();
}
-void AmbientModeHandler::HandleRequestSettings(const base::ListValue* args) {
- CHECK(args);
- CHECK(args->GetList().empty());
+void AmbientModeHandler::HandleRequestSettings(
+ base::Value::ConstListView args) {
+ CHECK(args.empty());
AllowJavascript();
@@ -192,9 +195,8 @@ void AmbientModeHandler::HandleRequestSettings(const base::ListValue* args) {
RequestSettingsAndAlbums(/*topic_source=*/absl::nullopt);
}
-void AmbientModeHandler::HandleRequestAlbums(const base::ListValue* args) {
- CHECK(args);
- CHECK_EQ(args->GetSize(), 1U);
+void AmbientModeHandler::HandleRequestAlbums(base::Value::ConstListView args) {
+ CHECK_EQ(args.size(), 1U);
AllowJavascript();
@@ -206,9 +208,9 @@ void AmbientModeHandler::HandleRequestAlbums(const base::ListValue* args) {
}
void AmbientModeHandler::HandleSetSelectedTemperatureUnit(
- const base::ListValue* args) {
+ base::Value::ConstListView args) {
DCHECK(settings_);
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args.size());
auto temperature_unit = ExtractTemperatureUnit(args);
if (settings_->temperature_unit != temperature_unit) {
@@ -217,17 +219,15 @@ void AmbientModeHandler::HandleSetSelectedTemperatureUnit(
}
}
-void AmbientModeHandler::HandleSetSelectedAlbums(const base::ListValue* args) {
- const base::DictionaryValue* dictionary = nullptr;
- CHECK(!args->GetList().empty());
- args->GetList()[0].GetAsDictionary(&dictionary);
- CHECK(dictionary);
-
- const base::Value* topic_source_value = dictionary->FindKey("topicSource");
+void AmbientModeHandler::HandleSetSelectedAlbums(
+ base::Value::ConstListView args) {
+ CHECK_EQ(args.size(), 1U);
+ const base::Value& dictionary = args[0];
+ const base::Value* topic_source_value = dictionary.FindKey("topicSource");
CHECK(topic_source_value);
ash::AmbientModeTopicSource topic_source =
ExtractTopicSource(*topic_source_value);
- const base::Value* albums = dictionary->FindKey("albums");
+ const base::Value* albums = dictionary.FindKey("albums");
CHECK(albums);
switch (topic_source) {
case ash::AmbientModeTopicSource::kGooglePhotos:
@@ -579,8 +579,8 @@ void AmbientModeHandler::DownloadAlbumPreviewImage(
continue;
}
- ash::ImageDownloader::Get()->Download(
- GURL(album.banner_image_url), NO_TRAFFIC_ANNOTATION_YET,
+ ash::AmbientClient::Get()->DownloadImage(
+ album.banner_image_url,
base::BindOnce(&AmbientModeHandler::OnAlbumPreviewImageDownloaded,
backend_weak_factory_.GetWeakPtr(), topic_source,
album.album_id));
@@ -588,8 +588,9 @@ void AmbientModeHandler::DownloadAlbumPreviewImage(
break;
case ash::AmbientModeTopicSource::kArtGallery:
for (const auto& album : settings_->art_settings) {
- ash::ImageDownloader::Get()->Download(
- GURL(album.preview_image_url), NO_TRAFFIC_ANNOTATION_YET,
+ ash::AmbientClient::Get()->DownloadImage(
+ album.preview_image_url,
+
base::BindOnce(&AmbientModeHandler::OnAlbumPreviewImageDownloaded,
backend_weak_factory_.GetWeakPtr(), topic_source,
album.album_id));
@@ -640,21 +641,20 @@ void AmbientModeHandler::DownloadRecentHighlightsPreviewImages(
for (int url_index = 0; url_index < total_previews; ++url_index) {
const auto& url = urls[url_index];
- ash::ImageDownloader::Get()->Download(
- GURL(url), NO_TRAFFIC_ANNOTATION_YET,
- base::BindOnce(
- [](std::vector<gfx::ImageSkia>* preview_images, int url_index,
- base::RepeatingClosure on_done,
- base::WeakPtr<AmbientModeHandler> weak_ptr,
- const gfx::ImageSkia& image) {
- if (!weak_ptr)
- return;
-
- (*preview_images)[url_index] = image;
- on_done.Run();
- },
- &recent_highlights_preview_images_, url_index, on_done,
- recent_highlights_previews_weak_factory_.GetWeakPtr()));
+ ash::AmbientClient::Get()->DownloadImage(
+ url, base::BindOnce(
+ [](std::vector<gfx::ImageSkia>* preview_images, int url_index,
+ base::RepeatingClosure on_done,
+ base::WeakPtr<AmbientModeHandler> weak_ptr,
+ const gfx::ImageSkia& image) {
+ if (!weak_ptr)
+ return;
+
+ (*preview_images)[url_index] = image;
+ on_done.Run();
+ },
+ &recent_highlights_preview_images_, url_index, on_done,
+ recent_highlights_previews_weak_factory_.GetWeakPtr()));
}
}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.h
index 117a0ab9159..b0c04b8c328 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler.h
@@ -8,7 +8,9 @@
#include <vector>
#include "ash/public/cpp/ambient/ambient_backend_controller.h"
+#include "ash/public/cpp/image_downloader.h"
#include "base/memory/weak_ptr.h"
+#include "base/values.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
#include "components/prefs/pref_change_registrar.h"
#include "net/base/backoff_entry.h"
@@ -18,10 +20,6 @@ namespace ash {
struct AmbientSettings;
} // namespace ash
-namespace base {
-class ListValue;
-} // namespace base
-
namespace gfx {
class ImageSkia;
} // namespace gfx
@@ -53,16 +51,16 @@ class AmbientModeHandler : public ::settings::SettingsPageUIHandler {
void OnEnabledPrefChanged();
// WebUI call to request topic source and temperature unit related data.
- void HandleRequestSettings(const base::ListValue* args);
+ void HandleRequestSettings(base::Value::ConstListView args);
// WebUI call to request albums related data.
- void HandleRequestAlbums(const base::ListValue* args);
+ void HandleRequestAlbums(base::Value::ConstListView args);
// WebUI call to sync temperature unit with server.
- void HandleSetSelectedTemperatureUnit(const base::ListValue* args);
+ void HandleSetSelectedTemperatureUnit(base::Value::ConstListView args);
// WebUI call to sync albums with server.
- void HandleSetSelectedAlbums(const base::ListValue* args);
+ void HandleSetSelectedAlbums(base::Value::ConstListView args);
// Send the "temperature-unit-changed" WebUIListener event to update the
// WebUI.
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler_unittest.cc
index 084be70b3db..8ceb7e104bf 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/ambient_mode_handler_unittest.cc
@@ -6,10 +6,11 @@
#include <memory>
+#include "ash/ambient/test/ambient_ash_test_helper.h"
+#include "ash/constants/ash_features.h"
#include "ash/public/cpp/ambient/ambient_prefs.h"
#include "ash/public/cpp/ambient/common/ambient_settings.h"
#include "ash/public/cpp/ambient/fake_ambient_backend_controller_impl.h"
-#include "ash/public/cpp/test/test_image_downloader.h"
#include "base/test/metrics/histogram_tester.h"
#include "chrome/test/base/browser_with_test_window_test.h"
#include "components/prefs/pref_registry_simple.h"
@@ -39,12 +40,22 @@ class TestAmbientModeHandler : public AmbientModeHandler {
} // namespace
-class AmbientModeHandlerTest : public testing::Test {
+class AmbientModeHandlerTest : public testing::TestWithParam<bool> {
public:
AmbientModeHandlerTest() = default;
~AmbientModeHandlerTest() override = default;
void SetUp() override {
+ testing::TestWithParam<bool>::SetUp();
+
+ if (IsAmbientModeNewUrlEnabled()) {
+ scoped_feature_list_.InitAndEnableFeature(
+ ash::features::kAmbientModeNewUrl);
+ } else {
+ scoped_feature_list_.InitAndDisableFeature(
+ ash::features::kAmbientModeNewUrl);
+ }
+
web_ui_ = std::make_unique<content::TestWebUI>();
test_pref_service_ = std::make_unique<TestingPrefServiceSimple>();
@@ -58,10 +69,16 @@ class AmbientModeHandlerTest : public testing::Test {
handler_->AllowJavascript();
fake_backend_controller_ =
std::make_unique<ash::FakeAmbientBackendControllerImpl>();
- image_downloader_ = std::make_unique<ash::TestImageDownloader>();
+ ambient_ash_test_helper_ = std::make_unique<ash::AmbientAshTestHelper>();
+ ambient_ash_test_helper_->ambient_client().SetAutomaticalyIssueToken(true);
}
- void TearDown() override { handler_->DisallowJavascript(); }
+ void TearDown() override {
+ handler_->DisallowJavascript();
+ testing::TestWithParam<bool>::TearDown();
+ }
+
+ bool IsAmbientModeNewUrlEnabled() { return GetParam(); }
content::TestWebUI* web_ui() { return web_ui_.get(); }
@@ -93,21 +110,20 @@ class AmbientModeHandlerTest : public testing::Test {
}
void RequestSettings() {
- base::ListValue args;
- handler_->HandleRequestSettings(&args);
+ handler_->HandleRequestSettings(base::Value::ConstListView());
}
void RequestAlbums(ash::AmbientModeTopicSource topic_source) {
- base::ListValue args;
+ base::Value args(base::Value::Type::LIST);
args.Append(static_cast<int>(topic_source));
- handler_->HandleRequestAlbums(&args);
+ handler_->HandleRequestAlbums(args.GetList());
}
- void HandleSetSelectedTemperatureUnit(const base::ListValue* args) {
+ void HandleSetSelectedTemperatureUnit(base::Value::ConstListView args) {
handler_->HandleSetSelectedTemperatureUnit(args);
}
- void HandleSetSelectedAlbums(const base::ListValue* args) {
+ void HandleSetSelectedAlbums(base::Value::ConstListView args) {
handler_->HandleSetSelectedAlbums(args);
}
@@ -195,8 +211,9 @@ class AmbientModeHandlerTest : public testing::Test {
void VerifyAlbumsSent(ash::AmbientModeTopicSource topic_source) {
// Art gallery has an extra call to update the topic source to Art gallery.
- std::vector<std::unique_ptr<content::TestWebUI::CallData>>::size_type call_size =
- topic_source == ash::AmbientModeTopicSource::kGooglePhotos ? 1U : 2U;
+ // And receive the image update.
+ std::size_t call_size =
+ topic_source == ash::AmbientModeTopicSource::kGooglePhotos ? 3U : 5U;
EXPECT_EQ(call_size, web_ui_->call_data().size());
if (topic_source == ash::AmbientModeTopicSource::kArtGallery) {
@@ -252,16 +269,21 @@ class AmbientModeHandlerTest : public testing::Test {
private:
base::test::TaskEnvironment task_environment_{
base::test::TaskEnvironment::TimeSource::MOCK_TIME};
+ base::test::ScopedFeatureList scoped_feature_list_;
std::unique_ptr<content::TestWebUI> web_ui_;
+ std::unique_ptr<ash::AmbientAshTestHelper> ambient_ash_test_helper_;
std::unique_ptr<ash::FakeAmbientBackendControllerImpl>
fake_backend_controller_;
- std::unique_ptr<ash::TestImageDownloader> image_downloader_;
std::unique_ptr<TestAmbientModeHandler> handler_;
base::HistogramTester histogram_tester_;
std::unique_ptr<TestingPrefServiceSimple> test_pref_service_;
};
-TEST_F(AmbientModeHandlerTest, TestSendTemperatureUnitAndTopicSource) {
+INSTANTIATE_TEST_SUITE_P(/* no label */,
+ AmbientModeHandlerTest,
+ testing::Bool());
+
+TEST_P(AmbientModeHandlerTest, TestSendTemperatureUnitAndTopicSource) {
RequestSettings();
ReplyFetchSettingsAndAlbums(/*success=*/true);
@@ -270,7 +292,7 @@ TEST_F(AmbientModeHandlerTest, TestSendTemperatureUnitAndTopicSource) {
VerifySettingsSent(ash::AmbientModeTopicSource::kGooglePhotos, "celsius");
}
-TEST_F(AmbientModeHandlerTest, TestSendAlbumsForGooglePhotos) {
+TEST_P(AmbientModeHandlerTest, TestSendAlbumsForGooglePhotos) {
ash::AmbientModeTopicSource topic_source =
ash::AmbientModeTopicSource::kGooglePhotos;
RequestAlbums(topic_source);
@@ -278,7 +300,7 @@ TEST_F(AmbientModeHandlerTest, TestSendAlbumsForGooglePhotos) {
VerifyAlbumsSent(topic_source);
}
-TEST_F(AmbientModeHandlerTest, TestSendAlbumsForArtGallery) {
+TEST_P(AmbientModeHandlerTest, TestSendAlbumsForArtGallery) {
ash::AmbientModeTopicSource topic_source =
ash::AmbientModeTopicSource::kArtGallery;
RequestAlbums(topic_source);
@@ -286,7 +308,7 @@ TEST_F(AmbientModeHandlerTest, TestSendAlbumsForArtGallery) {
VerifyAlbumsSent(topic_source);
}
-TEST_F(AmbientModeHandlerTest, TestFetchSettings) {
+TEST_P(AmbientModeHandlerTest, TestFetchSettings) {
FetchSettings();
EXPECT_TRUE(IsFetchSettingsPendingAtBackend());
@@ -294,7 +316,7 @@ TEST_F(AmbientModeHandlerTest, TestFetchSettings) {
EXPECT_FALSE(IsFetchSettingsPendingAtBackend());
}
-TEST_F(AmbientModeHandlerTest, TestFetchSettingsFailedWillRetry) {
+TEST_P(AmbientModeHandlerTest, TestFetchSettingsFailedWillRetry) {
FetchSettings();
EXPECT_TRUE(IsFetchSettingsPendingAtBackend());
@@ -305,7 +327,7 @@ TEST_F(AmbientModeHandlerTest, TestFetchSettingsFailedWillRetry) {
EXPECT_TRUE(IsFetchSettingsPendingAtBackend());
}
-TEST_F(AmbientModeHandlerTest, TestFetchSettingsSecondRetryWillBackoff) {
+TEST_P(AmbientModeHandlerTest, TestFetchSettingsSecondRetryWillBackoff) {
FetchSettings();
EXPECT_TRUE(IsFetchSettingsPendingAtBackend());
@@ -326,7 +348,7 @@ TEST_F(AmbientModeHandlerTest, TestFetchSettingsSecondRetryWillBackoff) {
EXPECT_TRUE(IsFetchSettingsPendingAtBackend());
}
-TEST_F(AmbientModeHandlerTest,
+TEST_P(AmbientModeHandlerTest,
TestFetchSettingsWillNotRetryMoreThanThreeTimes) {
FetchSettings();
EXPECT_TRUE(IsFetchSettingsPendingAtBackend());
@@ -360,7 +382,7 @@ TEST_F(AmbientModeHandlerTest,
EXPECT_FALSE(IsFetchSettingsPendingAtBackend());
}
-TEST_F(AmbientModeHandlerTest, TestUpdateSettings) {
+TEST_P(AmbientModeHandlerTest, TestUpdateSettings) {
UpdateSettings();
EXPECT_TRUE(IsUpdateSettingsPendingAtBackend());
EXPECT_TRUE(IsUpdateSettingsPendingAtHandler());
@@ -372,7 +394,7 @@ TEST_F(AmbientModeHandlerTest, TestUpdateSettings) {
EXPECT_FALSE(HasPendingUpdatesAtHandler());
}
-TEST_F(AmbientModeHandlerTest, TestUpdateSettingsTwice) {
+TEST_P(AmbientModeHandlerTest, TestUpdateSettingsTwice) {
UpdateSettings();
EXPECT_TRUE(IsUpdateSettingsPendingAtBackend());
EXPECT_TRUE(IsUpdateSettingsPendingAtHandler());
@@ -392,7 +414,7 @@ TEST_F(AmbientModeHandlerTest, TestUpdateSettingsTwice) {
EXPECT_FALSE(HasPendingUpdatesAtHandler());
}
-TEST_F(AmbientModeHandlerTest, TestUpdateSettingsFailedWillRetry) {
+TEST_P(AmbientModeHandlerTest, TestUpdateSettingsFailedWillRetry) {
UpdateSettings();
EXPECT_TRUE(IsUpdateSettingsPendingAtBackend());
EXPECT_TRUE(IsUpdateSettingsPendingAtHandler());
@@ -409,7 +431,7 @@ TEST_F(AmbientModeHandlerTest, TestUpdateSettingsFailedWillRetry) {
EXPECT_FALSE(HasPendingUpdatesAtHandler());
}
-TEST_F(AmbientModeHandlerTest, TestUpdateSettingsSecondRetryWillBackoff) {
+TEST_P(AmbientModeHandlerTest, TestUpdateSettingsSecondRetryWillBackoff) {
UpdateSettings();
EXPECT_TRUE(IsUpdateSettingsPendingAtBackend());
EXPECT_TRUE(IsUpdateSettingsPendingAtHandler());
@@ -440,7 +462,7 @@ TEST_F(AmbientModeHandlerTest, TestUpdateSettingsSecondRetryWillBackoff) {
EXPECT_FALSE(HasPendingUpdatesAtHandler());
}
-TEST_F(AmbientModeHandlerTest,
+TEST_P(AmbientModeHandlerTest,
TestUpdateSettingsWillNotRetryMoreThanThreeTimes) {
UpdateSettings();
EXPECT_TRUE(IsUpdateSettingsPendingAtBackend());
@@ -492,7 +514,7 @@ TEST_F(AmbientModeHandlerTest,
EXPECT_FALSE(HasPendingUpdatesAtHandler());
}
-TEST_F(AmbientModeHandlerTest, TestNoFetchRequestWhenUpdatingSettings) {
+TEST_P(AmbientModeHandlerTest, TestNoFetchRequestWhenUpdatingSettings) {
EXPECT_FALSE(HasPendingFetchRequestAtHandler());
UpdateSettings();
EXPECT_FALSE(HasPendingFetchRequestAtHandler());
@@ -502,7 +524,7 @@ TEST_F(AmbientModeHandlerTest, TestNoFetchRequestWhenUpdatingSettings) {
EXPECT_FALSE(IsFetchSettingsPendingAtBackend());
}
-TEST_F(AmbientModeHandlerTest, TestSendSettingsWhenUpdatedSettings) {
+TEST_P(AmbientModeHandlerTest, TestSendSettingsWhenUpdatedSettings) {
// Simulate initial page request.
RequestSettings();
ReplyFetchSettingsAndAlbums(/*success=*/true);
@@ -525,7 +547,7 @@ TEST_F(AmbientModeHandlerTest, TestSendSettingsWhenUpdatedSettings) {
EXPECT_FALSE(HasPendingFetchRequestAtHandler());
}
-TEST_F(AmbientModeHandlerTest,
+TEST_P(AmbientModeHandlerTest,
TestSendAlbumsOfGooglePhotosWhenUpdatedSettings) {
// Simulate initial page request.
ash::AmbientModeTopicSource topic_source =
@@ -547,7 +569,7 @@ TEST_F(AmbientModeHandlerTest,
EXPECT_FALSE(HasPendingFetchRequestAtHandler());
}
-TEST_F(AmbientModeHandlerTest, TestSendAlbumsOfArtGalleryWhenUpdatedSettings) {
+TEST_P(AmbientModeHandlerTest, TestSendAlbumsOfArtGalleryWhenUpdatedSettings) {
// Simulate initial page request.
ash::AmbientModeTopicSource topic_source =
ash::AmbientModeTopicSource::kGooglePhotos;
@@ -568,7 +590,7 @@ TEST_F(AmbientModeHandlerTest, TestSendAlbumsOfArtGalleryWhenUpdatedSettings) {
EXPECT_FALSE(HasPendingFetchRequestAtHandler());
}
-TEST_F(AmbientModeHandlerTest, TestNotUpdateUIWhenFetechedSettings) {
+TEST_P(AmbientModeHandlerTest, TestNotUpdateUIWhenFetechedSettings) {
EXPECT_FALSE(HasPendingFetchRequestAtHandler());
RequestSettings();
EXPECT_TRUE(IsFetchSettingsPendingAtBackend());
@@ -582,7 +604,7 @@ TEST_F(AmbientModeHandlerTest, TestNotUpdateUIWhenFetechedSettings) {
EXPECT_EQ(0U, web_ui()->call_data().size());
}
-TEST_F(AmbientModeHandlerTest, TestNotSendSettingsWhenFetechedSettings) {
+TEST_P(AmbientModeHandlerTest, TestNotSendSettingsWhenFetechedSettings) {
EXPECT_FALSE(HasPendingFetchRequestAtHandler());
RequestSettings();
EXPECT_TRUE(IsFetchSettingsPendingAtBackend());
@@ -596,7 +618,7 @@ TEST_F(AmbientModeHandlerTest, TestNotSendSettingsWhenFetechedSettings) {
EXPECT_EQ(0U, web_ui()->call_data().size());
}
-TEST_F(AmbientModeHandlerTest, TestNotSendAlbumsWhenFetechedSettings) {
+TEST_P(AmbientModeHandlerTest, TestNotSendAlbumsWhenFetechedSettings) {
EXPECT_FALSE(HasPendingFetchRequestAtHandler());
ash::AmbientModeTopicSource topic_source =
@@ -613,7 +635,7 @@ TEST_F(AmbientModeHandlerTest, TestNotSendAlbumsWhenFetechedSettings) {
EXPECT_EQ(0U, web_ui()->call_data().size());
}
-TEST_F(AmbientModeHandlerTest, TestSendSettingsWhenUpdateSettingsFailed) {
+TEST_P(AmbientModeHandlerTest, TestSendSettingsWhenUpdateSettingsFailed) {
// Simulate initial page request.
RequestSettings();
ReplyFetchSettingsAndAlbums(/*success=*/true);
@@ -641,7 +663,7 @@ TEST_F(AmbientModeHandlerTest, TestSendSettingsWhenUpdateSettingsFailed) {
VerifySettingsSent(ash::AmbientModeTopicSource::kGooglePhotos, "celsius");
}
-TEST_F(AmbientModeHandlerTest,
+TEST_P(AmbientModeHandlerTest,
TestSendAlbumsOfGooglePhotosWhenUpdateSettingsFailed) {
// Simulate initial page request.
ash::AmbientModeTopicSource topic_source =
@@ -670,7 +692,7 @@ TEST_F(AmbientModeHandlerTest,
VerifyAlbumsSent(topic_source);
}
-TEST_F(AmbientModeHandlerTest,
+TEST_P(AmbientModeHandlerTest,
TestSendAlbumsOfArtGalleryWhenUpdateSettingsFailed) {
// Simulate initial page request.
ash::AmbientModeTopicSource topic_source =
@@ -702,7 +724,7 @@ TEST_F(AmbientModeHandlerTest,
// Test that there are two updates, the first update succeeded and the second
// update failed. When the second update failed, it will update UI to restore
// the latest successfully updated settings.
-TEST_F(AmbientModeHandlerTest, TestSendSettingsWithCachedSettings) {
+TEST_P(AmbientModeHandlerTest, TestSendSettingsWithCachedSettings) {
ash::AmbientModeTopicSource topic_source_google_photos =
ash::AmbientModeTopicSource::kGooglePhotos;
ash::AmbientModeTopicSource topic_source_art_gallery =
@@ -746,7 +768,7 @@ TEST_F(AmbientModeHandlerTest, TestSendSettingsWithCachedSettings) {
VerifySettingsSent(topic_source_art_gallery, "celsius");
}
-TEST_F(AmbientModeHandlerTest, TestAlbumNumbersAreRecorded) {
+TEST_P(AmbientModeHandlerTest, TestAlbumNumbersAreRecorded) {
RequestSettings();
ReplyFetchSettingsAndAlbums(/*success=*/true);
@@ -763,7 +785,7 @@ TEST_F(AmbientModeHandlerTest, TestAlbumNumbersAreRecorded) {
dictionary.SetKey("albums", std::move(albums));
args.Append(std::move(dictionary));
- HandleSetSelectedAlbums(&args);
+ HandleSetSelectedAlbums(args.GetList());
histogram_tester().ExpectTotalCount("Ash.AmbientMode.TotalNumberOfAlbums",
/*count=*/1);
@@ -771,16 +793,16 @@ TEST_F(AmbientModeHandlerTest, TestAlbumNumbersAreRecorded) {
/*count=*/1);
}
-TEST_F(AmbientModeHandlerTest, TestTemperatureUnitChangeUpdatesSettings) {
+TEST_P(AmbientModeHandlerTest, TestTemperatureUnitChangeUpdatesSettings) {
SetTemperatureUnit(ash::AmbientModeTemperatureUnit::kCelsius);
EXPECT_FALSE(IsUpdateSettingsPendingAtHandler());
EXPECT_FALSE(IsUpdateSettingsPendingAtBackend());
- base::ListValue args;
+ base::Value args(base::Value::Type::LIST);
args.Append("fahrenheit");
- HandleSetSelectedTemperatureUnit(&args);
+ HandleSetSelectedTemperatureUnit(args.GetList());
EXPECT_TRUE(IsUpdateSettingsPendingAtHandler());
EXPECT_TRUE(IsUpdateSettingsPendingAtBackend());
@@ -791,22 +813,22 @@ TEST_F(AmbientModeHandlerTest, TestTemperatureUnitChangeUpdatesSettings) {
EXPECT_FALSE(IsUpdateSettingsPendingAtBackend());
}
-TEST_F(AmbientModeHandlerTest, TestSameTemperatureUnitSkipsUpdate) {
+TEST_P(AmbientModeHandlerTest, TestSameTemperatureUnitSkipsUpdate) {
SetTemperatureUnit(ash::AmbientModeTemperatureUnit::kCelsius);
EXPECT_FALSE(IsUpdateSettingsPendingAtHandler());
EXPECT_FALSE(IsUpdateSettingsPendingAtBackend());
- base::ListValue args;
+ base::Value args(base::Value::Type::LIST);
args.Append("celsius");
- HandleSetSelectedTemperatureUnit(&args);
+ HandleSetSelectedTemperatureUnit(args.GetList());
EXPECT_FALSE(IsUpdateSettingsPendingAtHandler());
EXPECT_FALSE(IsUpdateSettingsPendingAtBackend());
}
-TEST_F(AmbientModeHandlerTest, TestEnabledPrefChangeUpdatesSettings) {
+TEST_P(AmbientModeHandlerTest, TestEnabledPrefChangeUpdatesSettings) {
// Simulate initial page request.
RequestSettings();
ReplyFetchSettingsAndAlbums(/*success=*/true);
@@ -825,7 +847,7 @@ TEST_F(AmbientModeHandlerTest, TestEnabledPrefChangeUpdatesSettings) {
EXPECT_TRUE(IsUpdateSettingsPendingAtBackend());
}
-TEST_F(AmbientModeHandlerTest, TestWeatherFalseTriggersUpdateSettings) {
+TEST_P(AmbientModeHandlerTest, TestWeatherFalseTriggersUpdateSettings) {
ash::AmbientSettings weather_off_settings;
weather_off_settings.show_weather = false;
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc
index 864db882f6d..ddaa8ca9fc3 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.cc
@@ -30,11 +30,11 @@ AndroidAppsHandler::~AndroidAppsHandler() {}
void AndroidAppsHandler::RegisterMessages() {
// Note: requestAndroidAppsInfo must be called before observers will be added.
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestAndroidAppsInfo",
base::BindRepeating(&AndroidAppsHandler::HandleRequestAndroidAppsInfo,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showAndroidAppsSettings",
base::BindRepeating(&AndroidAppsHandler::ShowAndroidAppsSettings,
weak_ptr_factory_.GetWeakPtr()));
@@ -106,7 +106,7 @@ void AndroidAppsHandler::SendAndroidAppsInfo() {
}
void AndroidAppsHandler::ShowAndroidAppsSettings(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
bool activated_from_keyboard = false;
args->GetBoolean(0, &activated_from_keyboard);
int flags = activated_from_keyboard ? ui::EF_NONE : ui::EF_LEFT_MOUSE_BUTTON;
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.h
index 070e2800ce9..3caefeecfc5 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/android_apps_handler.h
@@ -32,6 +32,10 @@ class AndroidAppsHandler : public ::settings::SettingsPageUIHandler,
public:
explicit AndroidAppsHandler(Profile* profile,
apps::AppServiceProxyChromeOs* app_service_proxy);
+
+ AndroidAppsHandler(const AndroidAppsHandler&) = delete;
+ AndroidAppsHandler& operator=(const AndroidAppsHandler&) = delete;
+
~AndroidAppsHandler() override;
// SettingsPageUIHandler
@@ -65,8 +69,6 @@ class AndroidAppsHandler : public ::settings::SettingsPageUIHandler,
Profile* profile_; // unowned
apps::AppServiceProxyChromeOs* app_service_proxy_;
base::WeakPtrFactory<AndroidAppsHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(AndroidAppsHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/DIR_METADATA b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/DIR_METADATA
index cf53beece28..a571af325c2 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/DIR_METADATA
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/DIR_METADATA
@@ -1,3 +1,5 @@
-monorail {
- component: "Platform>Apps>Foundation"
+monorail: {
+ component: "Platform>Apps>Foundation>AppManagement"
}
+team_email: "chromeos-apps-foundation-team@google.com"
+os: CHROME_OS
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/OWNERS b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/OWNERS
index b784206d95d..023044c282e 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/OWNERS
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/OWNERS
@@ -1,2 +1,4 @@
-dominickn@chromium.org
jshikaram@chromium.org
+
+# For backup
+dominickn@chromium.org
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.h b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.h
index ca3d617e7b4..11f587197fc 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_page_handler_factory.h
@@ -21,6 +21,12 @@ class AppManagementPageHandlerFactory
: public app_management::mojom::PageHandlerFactory {
public:
explicit AppManagementPageHandlerFactory(Profile* profile);
+
+ AppManagementPageHandlerFactory(const AppManagementPageHandlerFactory&) =
+ delete;
+ AppManagementPageHandlerFactory& operator=(
+ const AppManagementPageHandlerFactory&) = delete;
+
~AppManagementPageHandlerFactory() override;
void Bind(mojo::PendingReceiver<app_management::mojom::PageHandlerFactory>
@@ -39,8 +45,6 @@ class AppManagementPageHandlerFactory
page_factory_receiver_{this};
Profile* profile_;
-
- DISALLOW_COPY_AND_ASSIGN(AppManagementPageHandlerFactory);
};
#endif // CHROME_BROWSER_UI_WEBUI_SETTINGS_CHROMEOS_APP_MANAGEMENT_APP_MANAGEMENT_PAGE_HANDLER_FACTORY_H_
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_uma.h b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_uma.h
index fbd61389666..8e734d92a72 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_uma.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/app_management/app_management_uma.h
@@ -24,7 +24,8 @@ enum class AppManagementEntryPoint {
kDBusServicePluginVm = 11,
kNotificationPluginVm = 12,
kAppManagementMainViewBorealis = 13,
- kMaxValue = kAppManagementMainViewBorealis,
+ kPageInfoView = 14,
+ kMaxValue = kPageInfoView,
};
#endif // CHROME_BROWSER_UI_WEBUI_SETTINGS_CHROMEOS_APP_MANAGEMENT_APP_MANAGEMENT_UMA_H_
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/apps_section.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/apps_section.cc
index 20524cb4641..74f1ce9c2ff 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/apps_section.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/apps_section.cc
@@ -6,10 +6,11 @@
#include "ash/constants/ash_features.h"
#include "base/feature_list.h"
+#include "base/metrics/histogram_functions.h"
#include "base/no_destructor.h"
#include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/ash/app_restore/full_restore_service_factory.h"
#include "chrome/browser/ash/arc/arc_util.h"
-#include "chrome/browser/ash/full_restore/full_restore_service_factory.h"
#include "chrome/browser/ash/plugin_vm/plugin_vm_features.h"
#include "chrome/browser/ash/plugin_vm/plugin_vm_pref_names.h"
#include "chrome/browser/ash/plugin_vm/plugin_vm_util.h"
@@ -22,8 +23,8 @@
#include "chrome/common/url_constants.h"
#include "chrome/grit/generated_resources.h"
#include "chrome/grit/os_settings_resources.h"
+#include "components/app_restore/features.h"
#include "components/arc/arc_prefs.h"
-#include "components/full_restore/features.h"
#include "components/prefs/pref_service.h"
#include "content/public/browser/web_ui_data_source.h"
#include "ui/base/l10n/l10n_util.h"
@@ -170,18 +171,33 @@ void AddAppManagementStrings(content::WebUIDataSource* html_source) {
IDS_APP_MANAGEMENT_POLICY_APP_POLICY_STRING},
{"appManagementCameraPermissionLabel", IDS_APP_MANAGEMENT_CAMERA},
{"appManagementContactsPermissionLabel", IDS_APP_MANAGEMENT_CONTACTS},
- {"appManagementLocationPermissionLabel", IDS_APP_MANAGEMENT_LOCATION},
- {"appManagementIntentSharingOpenBrowserLabel",
- IDS_APP_MANAGEMENT_INTENT_SHARING_BROWSER_OPEN},
- {"appManagementIntentSharingLabel", IDS_APP_MANAGEMENT_INTENT_SHARING},
+ {"appManagementIntentOverlapChangeButton",
+ IDS_APP_MANAGEMENT_INTENT_OVERLAP_CHANGE_BUTTON},
+ {"appManagementIntentOverlapDialogText1App",
+ IDS_APP_MANAGEMENT_INTENT_OVERLAP_DIALOG_TEXT_1_APP},
+ {"appManagementIntentOverlapDialogText2Apps",
+ IDS_APP_MANAGEMENT_INTENT_OVERLAP_DIALOG_TEXT_2_APPS},
+ {"appManagementIntentOverlapDialogText3Apps",
+ IDS_APP_MANAGEMENT_INTENT_OVERLAP_DIALOG_TEXT_3_APPS},
+ {"appManagementIntentOverlapDialogText4Apps",
+ IDS_APP_MANAGEMENT_INTENT_OVERLAP_DIALOG_TEXT_4_APPS},
+ {"appManagementIntentOverlapDialogText5OrMoreApps",
+ IDS_APP_MANAGEMENT_INTENT_OVERLAP_DIALOG_TEXT_5_OR_MORE_APPS},
+ {"appManagementIntentOverlapDialogTitle",
+ IDS_APP_MANAGEMENT_INTENT_OVERLAP_DIALOG_TITLE},
+ {"appManagementIntentSettingsDialogTitle",
+ IDS_APP_MANAGEMENT_INTENT_SETTINGS_DIALOG_TITLE},
+ {"appManagementIntentSettingsTitle",
+ IDS_APP_MANAGEMENT_INTENT_SETTINGS_TITLE},
{"appManagementIntentSharingOpenAppLabel",
IDS_APP_MANAGEMENT_INTENT_SHARING_APP_OPEN},
+ {"appManagementIntentSharingOpenBrowserLabel",
+ IDS_APP_MANAGEMENT_INTENT_SHARING_BROWSER_OPEN},
{"appManagementIntentSharingTabExplanation",
IDS_APP_MANAGEMENT_INTENT_SHARING_TAB_EXPLANATION},
- {"appManagementIntentSharingTabLearnMore",
- IDS_APP_MANAGEMENT_INTENT_SHARING_TAB_LEARN_MORE},
+ {"appManagementLocationPermissionLabel", IDS_APP_MANAGEMENT_LOCATION},
{"appManagementMicrophonePermissionLabel", IDS_APP_MANAGEMENT_MICROPHONE},
- {"appManagementMoreSettingsLabel", IDS_APP_MANAGEMENT_MORE_SETTINGS},
+ {"appManagementMorePermissionsLabel", IDS_APP_MANAGEMENT_MORE_SETTINGS},
{"appManagementNoAppsFound", IDS_APP_MANAGEMENT_NO_APPS_FOUND},
{"appManagementNoPermissions",
IDS_APPLICATION_INFO_APP_NO_PERMISSIONS_TEXT},
@@ -315,6 +331,8 @@ void AppsSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
IDS_SETTINGS_APP_NOTIFICATIONS_DO_NOT_DISTURB_TOGGLE_DESCRIPTION},
{"appNotificationsLinkToBrowserSettingsDescription",
IDS_SETTINGS_APP_NOTIFICATIONS_LINK_TO_BROWSER_SETTINGS_DESCRIPTION},
+ {"appNotificationsCountDescription",
+ IDS_SETTINGS_APP_NOTIFICATIONS_SUBLABEL_TEXT},
};
html_source->AddLocalizedStrings(kLocalizedStrings);
@@ -374,6 +392,11 @@ std::string AppsSection::GetSectionPath() const {
bool AppsSection::LogMetric(mojom::Setting setting, base::Value& value) const {
// Unimplemented.
+ if (setting == mojom::Setting::kDoNotDisturbOnOff) {
+ base::UmaHistogramBoolean("ChromeOS.Settings.Apps.DoNotDisturbOnOff",
+ value.GetBool());
+ return true;
+ }
return false;
}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/bluetooth_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/bluetooth_handler.cc
index 0e948c16237..dc855bcb688 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/bluetooth_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/bluetooth_handler.cc
@@ -28,7 +28,7 @@ BluetoothHandler::BluetoothHandler() {
BluetoothHandler::~BluetoothHandler() {}
void BluetoothHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kIsDeviceBlockedByPolicy,
base::BindRepeating(&BluetoothHandler::HandleIsDeviceBlockedByPolicy,
base::Unretained(this)));
@@ -49,7 +49,7 @@ void BluetoothHandler::HandleIsDeviceBlockedByPolicy(
AllowJavascript();
std::string callback_id;
std::string address;
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
CHECK(args->GetString(0, &callback_id));
CHECK(args->GetString(1, &address));
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/bluetooth_section.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/bluetooth_section.cc
index 5dc33101659..806cf41566c 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/bluetooth_section.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/bluetooth_section.cc
@@ -181,9 +181,41 @@ void BluetoothSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
{"bluetoothDeviceListPaired", IDS_SETTINGS_BLUETOOTH_DEVICE_LIST_PAIRED},
{"bluetoothDeviceListUnpaired",
IDS_SETTINGS_BLUETOOTH_DEVICE_LIST_UNPAIRED},
- {"bluetoothPairNewDevice", IDS_SETTINGS_BLUETOOTH_PAIR_NEW_DEVICES},
{"bluetoothConnect", IDS_SETTINGS_BLUETOOTH_CONNECT},
{"bluetoothDisconnect", IDS_SETTINGS_BLUETOOTH_DISCONNECT},
+ {"bluetoothDeviceDetailConnected",
+ IDS_SETTINGS_BLUETOOTH_DEVICE_DETAIL_CONNECTED},
+ {"bluetoothDeviceDetailDisconnected",
+ IDS_SETTINGS_BLUETOOTH_DEVICE_DETAIL_DISCONNECTED},
+ {"bluetoothDeviceDetailForget",
+ IDS_SETTINGS_BLUETOOTH_DEVICE_DETAIL_FORGET},
+ {"bluetoothDeviceDetailName", IDS_SETTINGS_BLUETOOTH_DEVICE_DETAIL_NAME},
+ {"bluetoothDeviceDetailChangeNameDialogNewName",
+ IDS_SETTINGS_BLUETOOTH_CHANGE_DEVICE_NAME_DIALOG_NEW_NAME},
+ {"bluetoothDeviceDetailChangeNameDialogCancel",
+ IDS_SETTINGS_BLUETOOTH_CHANGE_DEVICE_NAME_DIALOG_CANCEL},
+ {"bluetoothDeviceDetailChangeNameDialogDone",
+ IDS_SETTINGS_BLUETOOTH_CHANGE_DEVICE_NAME_DIALOG_DONE},
+ {"bluetoothDeviceDetailChangeDeviceSettingsKeyboard",
+ IDS_SETTINGS_BLUETOOTH_DEVICE_DETAIL_CHANGE_DEVICE_SETTINGS_KEYBOARD},
+ {"bluetoothDeviceDetailChangeDeviceSettingsMouse",
+ IDS_SETTINGS_BLUETOOTH_DEVICE_DETAIL_CHANGE_DEVICE_SETTINGS_MOUSE},
+ {"bluetoothDeviceDetailChangeDeviceName",
+ IDS_SETTINGS_BLUETOOTH_DEVICE_DETAIL_CHANGE_DEVICE_NAME},
+ {"bluetoothDeviceDetailBatteryPercentageA11yLabel",
+ IDS_SETTINGS_BLUETOOTH_DEVICE_DETAIL_BATTERY_PERCENTAGE_A11Y_LABEL},
+ {"bluetoothDeviceDetailConnectedA11yLabel",
+ IDS_SETTINGS_BLUETOOTH_DEVICE_DETAIL_CONNECTED_A11Y_LABEL},
+ {"bluetoothDeviceDetailDisconnectedA11yLabel",
+ IDS_SETTINGS_BLUETOOTH_DEVICE_DETAIL_DISCONNECTED_A11Y_LABEL},
+ {"bluetoothChangeNameDialogInputA11yLabel",
+ IDS_SETTINGS_BLUETOOTH_CHANGE_DEVICE_NAME_DIALOG_INPUT_A11Y_LABEL},
+ {"bluetoothChangeNameDialogInputSubtitle",
+ IDS_SETTINGS_BLUETOOTH_CHANGE_DEVICE_NAME_DIALOG_INPUT_SUBTITLE},
+ {"bluetoothChangeNameDialogInputCharCount",
+ IDS_SETTINGS_BLUETOOTH_CHANGE_DEVICE_NAME_DIALOG_INPUT_CHARACTER_COUNT},
+ {"bluetoothDeviceDetailChangeDeviceNameBtnA11yLabel",
+ IDS_SETTINGS_BLUETOOTH_DEVICE_DETAIL_CHANGE_DEVICE_NAME_BTN_A11Y_LABEL},
{"bluetoothToggleA11yLabel",
IDS_SETTINGS_BLUETOOTH_TOGGLE_ACCESSIBILITY_LABEL},
{"bluetoothExpandA11yLabel",
@@ -204,6 +236,44 @@ void BluetoothSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
IDS_SETTINGS_BLUETOOTH_SUMMARY_PAGE_TWO_DEVICES_DESCRIPTION},
{"bluetoothSummaryPageOff", IDS_SETTINGS_BLUETOOTH_SUMMARY_PAGE_OFF},
{"bluetoothSummaryPageOn", IDS_SETTINGS_BLUETOOTH_SUMMARY_PAGE_ON},
+ {"bluetoothPairedDeviceItemA11yLabelTypeUnknown",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_UNKNOWN},
+ {"bluetoothPairedDeviceItemA11yLabelTypeUnknownWithBatteryInfo",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_UNKNOWN_WITH_BATTERY_INFO},
+ {"bluetoothPairedDeviceItemA11yLabelTypeComputer",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_COMPUTER},
+ {"bluetoothPairedDeviceItemA11yLabelTypeComputerWithBatteryInfo",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_COMPUTER_WITH_BATTERY_INFO},
+ {"bluetoothPairedDeviceItemA11yLabelTypePhone",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_PHONE},
+ {"bluetoothPairedDeviceItemA11yLabelTypePhoneWithBatteryInfo",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_PHONE_WITH_BATTERY_INFO},
+ {"bluetoothPairedDeviceItemA11yLabelTypeHeadset",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_HEADSET},
+ {"bluetoothPairedDeviceItemA11yLabelTypeHeadsetWithBatteryInfo",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_HEADSET_WITH_BATTERY_INFO},
+ {"bluetoothPairedDeviceItemA11yLabelTypeVideoCamera",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_VIDEO_CAMERA},
+ {"bluetoothPairedDeviceItemA11yLabelTypeVideoCameraWithBatteryInfo",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_VIDEO_CAMERA_WITH_BATTERY_INFO},
+ {"bluetoothPairedDeviceItemA11yLabelTypeGameController",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_GAME_CONTROLLER},
+ {"bluetoothPairedDeviceItemA11yLabelTypeGameControllerWithBatteryInfo",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_GAME_CONTROLLER_WITH_BATTERY_INFO},
+ {"bluetoothPairedDeviceItemA11yLabelTypeKeyboard",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_KEYBOARD},
+ {"bluetoothPairedDeviceItemA11yLabelTypeKeyboardWithBatteryInfo",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_KEYBOARD_WITH_BATTERY_INFO},
+ {"bluetoothPairedDeviceItemA11yLabelTypeMouse",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_MOUSE},
+ {"bluetoothPairedDeviceItemA11yLabelTypeMouseWithBatteryInfo",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_MOUSE_WITH_BATTERY_INFO},
+ {"bluetoothPairedDeviceItemA11yLabelTypeTablet",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_TABLET},
+ {"bluetoothPairedDeviceItemA11yLabelTypeTabletWithBatteryInfo",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_A11Y_LABEL_TYPE_TABLET_WITH_BATTERY_INFO},
+ {"bluetoothPairedDeviceItemSubpageButtonA11yLabel",
+ IDS_SETTINGS_BLUETOOTH_PAIRED_DEVICE_ITEM_SUBPAGE_BUTTON_A11Y_LABEL},
{"bluetoothPairDevicePageTitle",
IDS_SETTINGS_BLUETOOTH_PAIR_DEVICE_TITLE},
{"bluetoothRemove", IDS_SETTINGS_BLUETOOTH_REMOVE},
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc
index 7633dea116d..7af6ba21ddc 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.cc
@@ -23,11 +23,11 @@
#include "base/task/thread_pool.h"
#include "base/values.h"
#include "chrome/browser/ash/accessibility/accessibility_manager.h"
+#include "chrome/browser/ash/camera_presence_notifier.h"
#include "chrome/browser/ash/login/users/avatar/user_image_manager.h"
#include "chrome/browser/ash/login/users/chrome_user_manager.h"
#include "chrome/browser/ash/login/users/default_user_image/default_user_images.h"
#include "chrome/browser/ash/profiles/profile_helper.h"
-#include "chrome/browser/chromeos/camera_presence_notifier.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/chrome_select_file_policy.h"
@@ -112,25 +112,25 @@ ChangePictureHandler::~ChangePictureHandler() {
}
void ChangePictureHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"chooseFile", base::BindRepeating(&ChangePictureHandler::HandleChooseFile,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"photoTaken", base::BindRepeating(&ChangePictureHandler::HandlePhotoTaken,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"discardPhoto",
base::BindRepeating(&ChangePictureHandler::HandleDiscardPhoto,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"onChangePicturePageInitialized",
base::BindRepeating(&ChangePictureHandler::HandlePageInitialized,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"selectImage",
base::BindRepeating(&ChangePictureHandler::HandleSelectImage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestSelectedImage",
base::BindRepeating(&ChangePictureHandler::HandleRequestSelectedImage,
base::Unretained(this)));
@@ -153,11 +153,11 @@ void ChangePictureHandler::OnJavascriptDisallowed() {
void ChangePictureHandler::SendDefaultImages() {
base::DictionaryValue result;
- result.SetInteger("first", default_user_image::GetFirstDefaultImage());
- std::unique_ptr<base::ListValue> default_images =
- default_user_image::GetAsDictionary(true /* all */);
- result.SetKey("images",
- base::Value::FromUniquePtrValue(std::move(default_images)));
+ std::unique_ptr<base::ListValue> current_default_images =
+ default_user_image::GetCurrentImageSet();
+ result.SetKey(
+ "current_default_images",
+ base::Value::FromUniquePtrValue(std::move(current_default_images)));
FireWebUIListener("default-images-changed", result);
}
@@ -195,7 +195,7 @@ void ChangePictureHandler::HandlePhotoTaken(const base::ListValue* args) {
Sound::kCameraSnap, PlaySoundOption::kOnlyIfSpokenFeedbackEnabled);
std::string image_url;
- if (!args || args->GetSize() != 1 || !args->GetString(0, &image_url))
+ if (!args || args->GetList().size() != 1 || !args->GetString(0, &image_url))
NOTREACHED();
DCHECK(!image_url.empty());
@@ -268,14 +268,23 @@ void ChangePictureHandler::SendSelectedImage() {
default_user_image::GetDefaultImageUrl(previous_image_index_));
FireWebUIListener("selected-image-changed", image_url);
} else {
- // User has an old default image, so present it in the same manner as a
- // previous image from file.
+ // User has a deprecated default image, send it for preview.
previous_image_ = user->GetImage();
previous_image_bytes_ = nullptr;
previous_image_format_ = user_manager::UserImage::FORMAT_UNKNOWN;
- SendOldImageWithIndex(
- default_user_image::GetDefaultImageUrl(previous_image_index_),
+
+ base::DictionaryValue result;
+ result.SetStringPath("url", default_user_image::GetDefaultImageUrl(
+ previous_image_index_));
+ auto source_info = default_user_image::GetDefaultImageSourceInfo(
previous_image_index_);
+ if (source_info.has_value()) {
+ result.SetStringPath("author", l10n_util::GetStringUTF16(std::move(
+ source_info.value().author_id)));
+ result.SetStringPath("website", l10n_util::GetStringUTF16(std::move(
+ source_info.value().website_id)));
+ }
+ FireWebUIListener("preview-deprecated-image", result);
}
}
}
@@ -301,21 +310,13 @@ void ChangePictureHandler::UpdateProfileImage() {
}
void ChangePictureHandler::SendOldImage(std::string&& image_url) {
- SendOldImageWithIndex(std::move(image_url), -1);
-}
-
-void ChangePictureHandler::SendOldImageWithIndex(std::string&& image_url,
- int image_index) {
- base::DictionaryValue result;
- result.SetStringPath("url", std::move(image_url));
- result.SetIntPath("index", image_index);
- FireWebUIListener("old-image-changed", result);
+ FireWebUIListener("old-image-changed", base::Value(image_url));
}
void ChangePictureHandler::HandleSelectImage(const base::ListValue* args) {
std::string image_url;
std::string image_type;
- if (!args || args->GetSize() != 2 || !args->GetString(0, &image_url) ||
+ if (!args || args->GetList().size() != 2 || !args->GetString(0, &image_url) ||
!args->GetString(1, &image_type)) {
NOTREACHED();
return;
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.h
index db89522aa3e..b2e297bbb82 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/change_picture_handler.h
@@ -8,7 +8,7 @@
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/scoped_observation.h"
-#include "chrome/browser/chromeos/camera_presence_notifier.h"
+#include "chrome/browser/ash/camera_presence_notifier.h"
#include "chrome/browser/image_decoder/image_decoder.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
#include "components/user_manager/user_manager.h"
@@ -36,6 +36,10 @@ class ChangePictureHandler : public ::settings::SettingsPageUIHandler,
public CameraPresenceNotifier::Observer {
public:
ChangePictureHandler();
+
+ ChangePictureHandler(const ChangePictureHandler&) = delete;
+ ChangePictureHandler& operator=(const ChangePictureHandler&) = delete;
+
~ChangePictureHandler() override;
// The name of the histogram that records when a user changes a device image.
@@ -66,15 +70,9 @@ class ChangePictureHandler : public ::settings::SettingsPageUIHandler,
// if any, on the page. Shouldn't be called before |SendProfileImage|.
void UpdateProfileImage();
- // Sends the previous user image to the page.
+ // Sends the previous user image from camera or file to the page.
void SendOldImage(std::string&& image_url);
- // Sends the previous user image to the page. Also sends |image_index| which
- // is either the index of the previous user image (if it was from an older
- // default image set) or -1 otherwise. This allows the WebUI to show credits
- // for older default images.
- void SendOldImageWithIndex(std::string&& image_url, int image_index);
-
// Starts camera presence check.
void CheckCameraPresence();
@@ -152,8 +150,6 @@ class ChangePictureHandler : public ::settings::SettingsPageUIHandler,
camera_observation_{this};
base::WeakPtrFactory<ChangePictureHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ChangePictureHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/constants/BUILD.gn b/chromium/chrome/browser/ui/webui/settings/chromeos/constants/BUILD.gn
index af9c1c98b41..f3a31510e58 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/constants/BUILD.gn
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/constants/BUILD.gn
@@ -5,7 +5,7 @@
import("//build/config/chromeos/ui_mode.gni")
import("//mojo/public/tools/bindings/mojom.gni")
-assert(is_chromeos_ash)
+assert(is_chromeos_ash || is_chromeos_lacros)
mojom("mojom") {
sources = [
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/constants/routes_util.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/constants/routes_util.cc
index dc438bef249..e74574ad2fd 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/constants/routes_util.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/constants/routes_util.cc
@@ -32,6 +32,7 @@ bool IsOSSettingsSubPage(const std::string& sub_page) {
// Bluetooth section.
chromeos::settings::mojom::kBluetoothSectionPath,
chromeos::settings::mojom::kBluetoothDevicesSubpagePath,
+ chromeos::settings::mojom::kBluetoothDeviceDetailSubpagePath,
// MultiDevice section.
chromeos::settings::mojom::kMultiDeviceSectionPath,
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/constants/setting.mojom b/chromium/chrome/browser/ui/webui/settings/chromeos/constants/setting.mojom
index 47cbadd6297..845a11372b6 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/constants/setting.mojom
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/constants/setting.mojom
@@ -67,6 +67,8 @@ enum Setting {
kNearbyShareDeviceVisibility = 215,
kNearbyShareContacts = 216,
kNearbyShareDataUsage = 217,
+ kPhoneHubAppsOnOff = 218,
+ kPhoneHubCameraRollOnOff = 219,
// People section.
kAddAccount = 300,
@@ -262,6 +264,7 @@ enum Setting {
kReportAnIssue = 1705,
kTermsOfService = 1706,
kDiagnostics = 1707,
+ kChangeDeviceName = 1708,
// Kerberos section.
kAddKerberosTicketV2 = 1800,
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_handler.cc
index ba642c8a5f6..39422648ec6 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_handler.cc
@@ -53,100 +53,100 @@ CrostiniHandler::~CrostiniHandler() {
}
void CrostiniHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestCrostiniInstallerView",
base::BindRepeating(&CrostiniHandler::HandleRequestCrostiniInstallerView,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestRemoveCrostini",
base::BindRepeating(&CrostiniHandler::HandleRequestRemoveCrostini,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"exportCrostiniContainer",
base::BindRepeating(&CrostiniHandler::HandleExportCrostiniContainer,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"importCrostiniContainer",
base::BindRepeating(&CrostiniHandler::HandleImportCrostiniContainer,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestCrostiniInstallerStatus",
base::BindRepeating(
&CrostiniHandler::HandleCrostiniInstallerStatusRequest,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestCrostiniExportImportOperationStatus",
base::BindRepeating(
&CrostiniHandler::HandleCrostiniExportImportOperationStatusRequest,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestArcAdbSideloadStatus",
base::BindRepeating(&CrostiniHandler::HandleQueryArcAdbRequest,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getCanChangeArcAdbSideloading",
base::BindRepeating(
&CrostiniHandler::HandleCanChangeArcAdbSideloadingRequest,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"enableArcAdbSideload",
base::BindRepeating(&CrostiniHandler::HandleEnableArcAdbRequest,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"disableArcAdbSideload",
base::BindRepeating(&CrostiniHandler::HandleDisableArcAdbRequest,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestCrostiniContainerUpgradeView",
base::BindRepeating(&CrostiniHandler::HandleRequestContainerUpgradeView,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestCrostiniUpgraderDialogStatus",
base::BindRepeating(
&CrostiniHandler::HandleCrostiniUpgraderDialogStatusRequest,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestCrostiniContainerUpgradeAvailable",
base::BindRepeating(
&CrostiniHandler::HandleCrostiniContainerUpgradeAvailableRequest,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"addCrostiniPortForward",
base::BindRepeating(&CrostiniHandler::HandleAddCrostiniPortForward,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getCrostiniDiskInfo",
base::BindRepeating(&CrostiniHandler::HandleGetCrostiniDiskInfo,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"resizeCrostiniDisk",
base::BindRepeating(&CrostiniHandler::HandleResizeCrostiniDisk,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeCrostiniPortForward",
base::BindRepeating(&CrostiniHandler::HandleRemoveCrostiniPortForward,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeAllCrostiniPortForwards",
base::BindRepeating(&CrostiniHandler::HandleRemoveAllCrostiniPortForwards,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"activateCrostiniPortForward",
base::BindRepeating(&CrostiniHandler::HandleActivateCrostiniPortForward,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"deactivateCrostiniPortForward",
base::BindRepeating(&CrostiniHandler::HandleDeactivateCrostiniPortForward,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getCrostiniActivePorts",
base::BindRepeating(&CrostiniHandler::HandleGetCrostiniActivePorts,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"checkCrostiniIsRunning",
base::BindRepeating(&CrostiniHandler::HandleCheckCrostiniIsRunning,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"shutdownCrostini",
base::BindRepeating(&CrostiniHandler::HandleShutdownCrostini,
weak_ptr_factory_.GetWeakPtr()));
@@ -489,7 +489,7 @@ void CrostiniHandler::HandleRemoveCrostiniPortForward(
void CrostiniHandler::HandleRemoveAllCrostiniPortForwards(
const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
const auto& args_list = args->GetList();
std::string vm_name = args_list[0].GetString();
std::string container_name = args_list[1].GetString();
@@ -631,8 +631,8 @@ void CrostiniHandler::HandleShutdownCrostini(const base::ListValue* args) {
const std::string vm_name = "termina";
- crostini::CrostiniManager::GetForProfile(profile_)->StopVm(
- std::move(vm_name), std::move(base::DoNothing()));
+ crostini::CrostiniManager::GetForProfile(profile_)->StopVm(std::move(vm_name),
+ base::DoNothing());
}
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_handler.h
index 4935da2a285..da98bd40401 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_handler.h
@@ -35,6 +35,10 @@ class CrostiniHandler : public ::settings::SettingsPageUIHandler,
public crostini::ContainerShutdownObserver {
public:
explicit CrostiniHandler(Profile* profile);
+
+ CrostiniHandler(const CrostiniHandler&) = delete;
+ CrostiniHandler& operator=(const CrostiniHandler&) = delete;
+
~CrostiniHandler() override;
// SettingsPageUIHandler
@@ -132,8 +136,6 @@ class CrostiniHandler : public ::settings::SettingsPageUIHandler,
PrefChangeRegistrar pref_change_registrar_;
// weak_ptr_factory_ should always be last member.
base::WeakPtrFactory<CrostiniHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(CrostiniHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_section.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_section.cc
index f621b047654..6f7d3f9bac2 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_section.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_section.cc
@@ -208,7 +208,8 @@ CrostiniSection::CrostiniSection(Profile* profile,
SearchTagRegistry* search_tag_registry,
PrefService* pref_service)
: OsSettingsSection(profile, search_tag_registry),
- pref_service_(pref_service) {
+ pref_service_(pref_service),
+ profile_(profile) {
pref_change_registrar_.Init(pref_service_);
pref_change_registrar_.Add(
crostini::prefs::kUserCrostiniAllowedByPolicy,
@@ -263,10 +264,6 @@ void CrostiniSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
IDS_SETTINGS_CROSTINI_ARC_ADB_CONFIRMATION_TITLE_ENABLE},
{"crostiniArcAdbConfirmationTitleDisable",
IDS_SETTINGS_CROSTINI_ARC_ADB_CONFIRMATION_TITLE_DISABLE},
- {"crostiniContainerUpgrade",
- IDS_SETTINGS_CROSTINI_CONTAINER_UPGRADE_MESSAGE},
- {"crostiniContainerUpgradeSubtext",
- IDS_SETTINGS_CROSTINI_CONTAINER_UPGRADE_SUBTEXT},
{"crostiniContainerUpgradeButton",
IDS_SETTINGS_CROSTINI_CONTAINER_UPGRADE_BUTTON},
{"crostiniPortForwarding", IDS_SETTINGS_CROSTINI_PORT_FORWARDING},
@@ -351,6 +348,34 @@ void CrostiniSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
};
html_source->AddLocalizedStrings(kLocalizedStrings);
+ if (base::FeatureList::IsEnabled(
+ chromeos::features::kCrostiniBullseyeUpgrade)) {
+ html_source->AddString(
+ "crostiniContainerUpgrade",
+ l10n_util::GetStringUTF16(
+ IDS_SETTINGS_CROSTINI_CONTAINER_UPGRADE_BULLSEYE_MESSAGE));
+ } else {
+ html_source->AddString(
+ "crostiniContainerUpgrade",
+ l10n_util::GetStringUTF16(
+ IDS_SETTINGS_CROSTINI_CONTAINER_UPGRADE_MESSAGE));
+ }
+
+ if (auto* pretty_name_value = crostini::GetContainerPrefValue(
+ profile_, crostini::DefaultContainerId(),
+ crostini::prefs::kContainerOsPrettyNameKey)) {
+ std::string pretty_name = pretty_name_value->GetString();
+ html_source->AddString("crostiniContainerUpgradeSubtext",
+ l10n_util::GetStringFUTF16(
+ IDS_SETTINGS_CROSTINI_CONTAINER_UPGRADE_SUBTEXT,
+ base::UTF8ToUTF16(pretty_name)));
+ } else {
+ // Blank the subtext if we don't know what the pretty version name is. This
+ // is just a fallback for users that haven't opened crostini since before we
+ // started recording that.
+ html_source->AddString("crostiniContainerUpgradeSubtext", "");
+ }
+
// Should the crostini section in settings be displayed?
html_source->AddBoolean(
"showCrostini",
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_section.h b/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_section.h
index ac0f74a9d7f..baca9eae967 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_section.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/crostini_section.h
@@ -46,6 +46,7 @@ class CrostiniSection : public OsSettingsSection {
PrefService* pref_service_;
PrefChangeRegistrar pref_change_registrar_;
+ Profile* const profile_;
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc
index c509143cd48..87f3b0e5d62 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc
@@ -22,14 +22,14 @@
#include "base/task/thread_pool.h"
#include "base/threading/sequenced_task_runner_handle.h"
#include "base/values.h"
+#include "chrome/browser/ash/printing/ppd_provider_factory.h"
+#include "chrome/browser/ash/printing/printer_event_tracker.h"
+#include "chrome/browser/ash/printing/printer_event_tracker_factory.h"
+#include "chrome/browser/ash/printing/printer_info.h"
+#include "chrome/browser/ash/printing/server_printers_fetcher.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/printing/cups_printers_manager.h"
-#include "chrome/browser/chromeos/printing/ppd_provider_factory.h"
#include "chrome/browser/chromeos/printing/printer_configurer.h"
-#include "chrome/browser/chromeos/printing/printer_event_tracker.h"
-#include "chrome/browser/chromeos/printing/printer_event_tracker_factory.h"
-#include "chrome/browser/chromeos/printing/printer_info.h"
-#include "chrome/browser/chromeos/printing/server_printers_fetcher.h"
#include "chrome/browser/download/download_prefs.h"
#include "chrome/browser/local_discovery/endpoint_resolver.h"
#include "chrome/browser/profiles/profile.h"
@@ -108,8 +108,7 @@ base::Value BuildCupsPrintersList(const std::vector<Printer>& printers) {
for (const Printer& printer : printers) {
// Some of these printers could be invalid but we want to allow the user
// to edit them. crbug.com/778383
- printers_list.Append(
- base::Value::FromUniquePtrValue(GetCupsPrinterInfo(printer)));
+ printers_list.Append(GetCupsPrinterInfo(printer));
}
base::Value response(base::Value::Type::DICTIONARY);
@@ -277,81 +276,81 @@ std::unique_ptr<CupsPrintersHandler> CupsPrintersHandler::CreateForTesting(
CupsPrintersHandler::~CupsPrintersHandler() = default;
void CupsPrintersHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getCupsSavedPrintersList",
base::BindRepeating(&CupsPrintersHandler::HandleGetCupsSavedPrintersList,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getCupsEnterprisePrintersList",
base::BindRepeating(
&CupsPrintersHandler::HandleGetCupsEnterprisePrintersList,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"updateCupsPrinter",
base::BindRepeating(&CupsPrintersHandler::HandleUpdateCupsPrinter,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeCupsPrinter",
base::BindRepeating(&CupsPrintersHandler::HandleRemoveCupsPrinter,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"addCupsPrinter",
base::BindRepeating(&CupsPrintersHandler::HandleAddCupsPrinter,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"reconfigureCupsPrinter",
base::BindRepeating(&CupsPrintersHandler::HandleReconfigureCupsPrinter,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getPrinterInfo",
base::BindRepeating(&CupsPrintersHandler::HandleGetPrinterInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getCupsPrinterManufacturersList",
base::BindRepeating(
&CupsPrintersHandler::HandleGetCupsPrinterManufacturers,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getCupsPrinterModelsList",
base::BindRepeating(&CupsPrintersHandler::HandleGetCupsPrinterModels,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"selectPPDFile",
base::BindRepeating(&CupsPrintersHandler::HandleSelectPPDFile,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"startDiscoveringPrinters",
base::BindRepeating(&CupsPrintersHandler::HandleStartDiscovery,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"stopDiscoveringPrinters",
base::BindRepeating(&CupsPrintersHandler::HandleStopDiscovery,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getPrinterPpdManufacturerAndModel",
base::BindRepeating(
&CupsPrintersHandler::HandleGetPrinterPpdManufacturerAndModel,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"addDiscoveredPrinter",
base::BindRepeating(&CupsPrintersHandler::HandleAddDiscoveredPrinter,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"cancelPrinterSetUp",
base::BindRepeating(&CupsPrintersHandler::HandleSetUpCancel,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getEulaUrl", base::BindRepeating(&CupsPrintersHandler::HandleGetEulaUrl,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"queryPrintServer",
base::BindRepeating(&CupsPrintersHandler::HandleQueryPrintServer,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"openPrintManagementApp",
base::BindRepeating(&CupsPrintersHandler::HandleOpenPrintManagementApp,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"openScanningApp",
base::BindRepeating(&CupsPrintersHandler::HandleOpenScanningApp,
base::Unretained(this)));
@@ -374,7 +373,7 @@ void CupsPrintersHandler::HandleGetCupsSavedPrintersList(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
@@ -389,7 +388,7 @@ void CupsPrintersHandler::HandleGetCupsEnterprisePrintersList(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id = args->GetList()[0].GetString();
std::vector<Printer> printers =
@@ -403,7 +402,7 @@ void CupsPrintersHandler::HandleUpdateCupsPrinter(const base::ListValue* args) {
std::string callback_id;
std::string printer_id;
std::string printer_name;
- CHECK_EQ(3U, args->GetSize());
+ CHECK_EQ(3U, args->GetList().size());
CHECK(args->GetString(0, &callback_id));
CHECK(args->GetString(1, &printer_id));
CHECK(args->GetString(2, &printer_name));
@@ -542,7 +541,7 @@ void CupsPrintersHandler::OnAutoconfQueriedDiscovered(
// the rest.
PRINTER_LOG(EVENT) << "Could not query printer. Fallback to asking the user";
RejectJavascriptCallback(base::Value(callback_id),
- *GetCupsPrinterInfo(printer));
+ GetCupsPrinterInfo(printer));
}
void CupsPrintersHandler::OnAutoconfQueried(
@@ -632,7 +631,7 @@ void CupsPrintersHandler::AddOrReconfigurePrinter(const base::ListValue* args,
bool is_printer_edit) {
std::string callback_id;
const base::DictionaryValue* printer_dict = nullptr;
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
CHECK(args->GetString(0, &callback_id));
CHECK(args->GetDictionary(1, &printer_dict));
@@ -802,7 +801,7 @@ void CupsPrintersHandler::OnAddedDiscoveredPrinter(
"Fall back to manual.";
// Could not set up printer. Asking user for manufacturer data.
RejectJavascriptCallback(base::Value(callback_id),
- *GetCupsPrinterInfo(printer));
+ GetCupsPrinterInfo(printer));
}
}
@@ -838,7 +837,7 @@ void CupsPrintersHandler::HandleGetCupsPrinterManufacturers(
const base::ListValue* args) {
AllowJavascript();
std::string callback_id;
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
CHECK(args->GetString(0, &callback_id));
ppd_provider_->ResolveManufacturers(
base::BindOnce(&CupsPrintersHandler::ResolveManufacturersDone,
@@ -850,7 +849,7 @@ void CupsPrintersHandler::HandleGetCupsPrinterModels(
AllowJavascript();
std::string callback_id;
std::string manufacturer;
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
CHECK(args->GetString(0, &callback_id));
CHECK(args->GetString(1, &manufacturer));
@@ -871,7 +870,7 @@ void CupsPrintersHandler::HandleGetCupsPrinterModels(
}
void CupsPrintersHandler::HandleSelectPPDFile(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
CHECK(args->GetString(0, &webui_callback_id_));
base::FilePath downloads_path =
@@ -1038,8 +1037,9 @@ void CupsPrintersHandler::UpdateDiscoveredPrinters() {
}
PRINTER_LOG(DEBUG) << "Discovered printers updating. Automatic: "
- << automatic_printers_list->GetSize()
- << " Discovered: " << discovered_printers_list->GetSize();
+ << automatic_printers_list->GetList().size()
+ << " Discovered: "
+ << discovered_printers_list->GetList().size();
FireWebUIListener("on-nearby-printers-changed", *automatic_printers_list,
*discovered_printers_list);
}
@@ -1047,7 +1047,7 @@ void CupsPrintersHandler::UpdateDiscoveredPrinters() {
void CupsPrintersHandler::HandleAddDiscoveredPrinter(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
std::string callback_id;
std::string printer_id;
CHECK(args->GetString(0, &callback_id));
@@ -1091,7 +1091,7 @@ void CupsPrintersHandler::HandleAddDiscoveredPrinter(
// directly, so we have to fall back to manual configuration here.
if (printer->IsUsbProtocol()) {
RejectJavascriptCallback(base::Value(callback_id),
- *GetCupsPrinterInfo(*printer));
+ GetCupsPrinterInfo(*printer));
return;
}
@@ -1113,7 +1113,7 @@ void CupsPrintersHandler::HandleAddDiscoveredPrinter(
void CupsPrintersHandler::HandleGetPrinterPpdManufacturerAndModel(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
std::string printer_id;
@@ -1147,7 +1147,7 @@ void CupsPrintersHandler::OnGetPrinterPpdManufacturerAndModel(
}
void CupsPrintersHandler::HandleGetEulaUrl(const base::ListValue* args) {
- CHECK_EQ(3U, args->GetSize());
+ CHECK_EQ(3U, args->GetList().size());
const std::string callback_id = args->GetList()[0].GetString();
const std::string ppd_manufacturer = args->GetList()[1].GetString();
const std::string ppd_model = args->GetList()[2].GetString();
@@ -1221,13 +1221,13 @@ void CupsPrintersHandler::OnIpResolved(const std::string& callback_id,
PRINTER_LOG(EVENT) << "Request make and model from user";
// If it's not an IPP printer, the user must choose a PPD.
RejectJavascriptCallback(base::Value(callback_id),
- *GetCupsPrinterInfo(printer));
+ GetCupsPrinterInfo(printer));
}
void CupsPrintersHandler::HandleQueryPrintServer(const base::ListValue* args) {
std::string callback_id;
std::string server_url;
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
CHECK(args->GetString(0, &callback_id));
CHECK(args->GetString(1, &server_url));
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h
index 68a4c750c9b..6e412d8e3f5 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h
@@ -12,9 +12,11 @@
#include "base/memory/weak_ptr.h"
#include "base/scoped_observation.h"
+#include "chrome/browser/ash/printing/printer_event_tracker.h"
+// TODO(https://crbug.com/1164001): remove and use forward declaration.
+#include "chrome/browser/ash/printing/server_printers_fetcher.h"
#include "chrome/browser/chromeos/printing/cups_printers_manager.h"
#include "chrome/browser/chromeos/printing/printer_configurer.h"
-#include "chrome/browser/chromeos/printing/printer_event_tracker.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
#include "chromeos/printing/ppd_provider.h"
#include "chromeos/printing/printer_configuration.h"
@@ -38,9 +40,6 @@ class GURL;
class Profile;
namespace chromeos {
-
-class ServerPrintersFetcher;
-
namespace settings {
// Chrome OS CUPS printing settings page UI handler.
@@ -55,6 +54,10 @@ class CupsPrintersHandler : public ::settings::SettingsPageUIHandler,
CupsPrintersManager* printers_manager);
CupsPrintersHandler(Profile* profile, CupsPrintersManager* printers_manager);
+
+ CupsPrintersHandler(const CupsPrintersHandler&) = delete;
+ CupsPrintersHandler& operator=(const CupsPrintersHandler&) = delete;
+
~CupsPrintersHandler() override;
// SettingsPageUIHandler overrides:
@@ -263,8 +266,6 @@ class CupsPrintersHandler : public ::settings::SettingsPageUIHandler,
printers_manager_observation_{this};
base::WeakPtrFactory<CupsPrintersHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(CupsPrintersHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.cc
index 17b4267c337..50198897b9c 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.cc
@@ -12,11 +12,11 @@
#include "base/time/time.h"
#include "base/values.h"
#include "chrome/browser/ash/child_accounts/parent_access_code/parent_access_service.h"
+#include "chrome/browser/ash/set_time_dialog.h"
#include "chrome/browser/ash/system/timezone_resolver_manager.h"
#include "chrome/browser/ash/system/timezone_util.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_process_platform_part.h"
-#include "chrome/browser/chromeos/set_time_dialog.h"
#include "chrome/common/pref_names.h"
#include "chromeos/dbus/system_clock/system_clock_client.h"
#include "chromeos/settings/timezone_settings.h"
@@ -69,18 +69,18 @@ DateTimeHandler::DateTimeHandler() {}
DateTimeHandler::~DateTimeHandler() = default;
void DateTimeHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"dateTimePageReady",
base::BindRepeating(&DateTimeHandler::HandleDateTimePageReady,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getTimeZones", base::BindRepeating(&DateTimeHandler::HandleGetTimeZones,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showSetDateTimeUI",
base::BindRepeating(&DateTimeHandler::HandleShowSetDateTimeUI,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"handleShowParentAccessForTimeZone",
base::BindRepeating(&DateTimeHandler::HandleShowParentAccessForTimeZone,
base::Unretained(this)));
@@ -126,7 +126,7 @@ void DateTimeHandler::HandleDateTimePageReady(const base::ListValue* args) {
void DateTimeHandler::HandleGetTimeZones(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
ResolveJavascriptCallback(*callback_id, *system::GetTimezoneList().release());
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.h
index 4807502d375..ececb2baefa 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/date_time_handler.h
@@ -25,6 +25,10 @@ class DateTimeHandler : public ::settings::SettingsPageUIHandler,
public SystemClockClient::Observer {
public:
DateTimeHandler();
+
+ DateTimeHandler(const DateTimeHandler&) = delete;
+ DateTimeHandler& operator=(const DateTimeHandler&) = delete;
+
~DateTimeHandler() override;
// SettingsPageUIHandler implementation.
@@ -65,8 +69,6 @@ class DateTimeHandler : public ::settings::SettingsPageUIHandler,
base::ScopedObservation<SystemClockClient, SystemClockClient::Observer>
scoped_observation_{this};
base::WeakPtrFactory<DateTimeHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(DateTimeHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_display_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_display_handler.cc
index e5e61172c6c..32bf3670d0c 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_display_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_display_handler.cc
@@ -24,12 +24,12 @@ DisplayHandler::~DisplayHandler() {
}
void DisplayHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"highlightDisplay",
base::BindRepeating(&DisplayHandler::HandleHighlightDisplay,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"dragDisplayDelta",
base::BindRepeating(&DisplayHandler::HandleDragDisplayDelta,
base::Unretained(this)));
@@ -51,7 +51,7 @@ void DisplayHandler::HandleHighlightDisplay(const base::ListValue* args) {
}
void DisplayHandler::HandleDragDisplayDelta(const base::ListValue* args) {
- DCHECK_EQ(3U, args->GetSize());
+ DCHECK_EQ(3U, args->GetList().size());
AllowJavascript();
const auto& args_list = args->GetList();
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc
index d95890542ea..8fed478e8f5 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc
@@ -67,15 +67,15 @@ KeyboardHandler::KeyboardHandler() = default;
KeyboardHandler::~KeyboardHandler() = default;
void KeyboardHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializeKeyboardSettings",
base::BindRepeating(&KeyboardHandler::HandleInitialize,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showKeyboardShortcutViewer",
base::BindRepeating(&KeyboardHandler::HandleShowKeyboardShortcutViewer,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializeKeyboardWatcher",
base::BindRepeating(&KeyboardHandler::HandleKeyboardChange,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.h
index 403303c8b75..8b6d9cce5df 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.h
@@ -32,15 +32,21 @@ class KeyboardHandler
public:
explicit TestAPI(KeyboardHandler* handler) { handler_ = handler; }
+ TestAPI(const TestAPI&) = delete;
+ TestAPI& operator=(const TestAPI&) = delete;
+
// Simulates a request from WebUI to initialize the page.
void Initialize();
private:
KeyboardHandler* handler_; // Not owned.
- DISALLOW_COPY_AND_ASSIGN(TestAPI);
};
KeyboardHandler();
+
+ KeyboardHandler(const KeyboardHandler&) = delete;
+ KeyboardHandler& operator=(const KeyboardHandler&) = delete;
+
~KeyboardHandler() override;
// SettingsPageUIHandler implementation.
@@ -70,8 +76,6 @@ class KeyboardHandler
base::ScopedObservation<ui::DeviceDataManager, ui::InputDeviceEventObserver>
observation_{this};
-
- DISALLOW_COPY_AND_ASSIGN(KeyboardHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler_unittest.cc
index fd51b02a46d..c43d050103c 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler_unittest.cc
@@ -43,6 +43,9 @@ class KeyboardHandlerTest : public testing::Test {
device_data_manager_test_api_.SetKeyboardDevices({});
}
+ KeyboardHandlerTest(const KeyboardHandlerTest&) = delete;
+ KeyboardHandlerTest& operator=(const KeyboardHandlerTest&) = delete;
+
protected:
// Updates out-params from the last message sent to WebUI about a change to
// which keys should be shown. False is returned if the message was invalid or
@@ -163,9 +166,6 @@ class KeyboardHandlerTest : public testing::Test {
content::TestWebUI web_ui_;
TestKeyboardHandler handler_;
KeyboardHandler::TestAPI handler_test_api_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(KeyboardHandlerTest);
};
TEST_F(KeyboardHandlerTest, DefaultKeys) {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler.cc
index ed5a0b1c477..efb820b3366 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler.cc
@@ -8,7 +8,7 @@
#include "base/check.h"
#include "base/values.h"
-#include "chrome/browser/chromeos/device_name_store.h"
+#include "chrome/browser/ash/device_name/device_name_store.h"
#include "content/public/browser/web_ui.h"
namespace chromeos {
@@ -40,12 +40,12 @@ void DeviceNameHandler::OnJavascriptDisallowed() {
}
void DeviceNameHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"notifyReadyForDeviceName",
base::BindRepeating(&DeviceNameHandler::HandleNotifyReadyForDeviceName,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"attemptSetDeviceName",
base::BindRepeating(&DeviceNameHandler::HandleAttemptSetDeviceName,
base::Unretained(this)));
@@ -65,7 +65,7 @@ void DeviceNameHandler::HandleAttemptSetDeviceName(
const base::ListValue* args) {
AllowJavascript();
- DCHECK_EQ(2U, args->GetSize());
+ DCHECK_EQ(2U, args->GetList().size());
const base::Value::ConstListView args_list = args->GetList();
const std::string callback_id = args_list[0].GetString();
const std::string name_from_user = args_list[1].GetString();
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler.h
index facee2f7922..7124474e612 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler.h
@@ -7,7 +7,7 @@
#include "base/macros.h"
#include "base/scoped_observation.h"
-#include "chrome/browser/chromeos/device_name_store.h"
+#include "chrome/browser/ash/device_name/device_name_store.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
namespace base {
@@ -20,9 +20,13 @@ namespace settings {
// DeviceNameHandler handles calls from WebUI JS related to getting and setting
// the device name.
class DeviceNameHandler : public ::settings::SettingsPageUIHandler,
- public chromeos::DeviceNameStore::Observer {
+ public DeviceNameStore::Observer {
public:
DeviceNameHandler();
+
+ DeviceNameHandler(const DeviceNameHandler&) = delete;
+ DeviceNameHandler& operator=(const DeviceNameHandler&) = delete;
+
~DeviceNameHandler() override;
// SettingsPageUIHandler implementation.
@@ -46,11 +50,8 @@ class DeviceNameHandler : public ::settings::SettingsPageUIHandler,
DeviceNameStore* device_name_store_;
- base::ScopedObservation<chromeos::DeviceNameStore,
- chromeos::DeviceNameStore::Observer>
+ base::ScopedObservation<DeviceNameStore, DeviceNameStore::Observer>
observation_{this};
-
- DISALLOW_COPY_AND_ASSIGN(DeviceNameHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler_unittest.cc
index fb64773512e..e4a8ef0ae68 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_name_handler_unittest.cc
@@ -9,7 +9,7 @@
#include "ash/constants/ash_features.h"
#include "base/test/scoped_feature_list.h"
-#include "chrome/browser/chromeos/fake_device_name_store.h"
+#include "chrome/browser/ash/device_name/fake_device_name_store.h"
#include "content/public/test/browser_task_environment.h"
#include "content/public/test/test_web_ui.h"
#include "testing/gtest/include/gtest/gtest.h"
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.cc
index a79fa29780d..70f3f84b81c 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.cc
@@ -16,7 +16,7 @@ PointerHandler::PointerHandler() {}
PointerHandler::~PointerHandler() {}
void PointerHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializePointerSettings",
base::BindRepeating(&PointerHandler::HandleInitialize,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.h
index 676b25c0075..1e71243deb7 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.h
@@ -24,6 +24,10 @@ class PointerHandler
public chromeos::system::PointerDeviceObserver::Observer {
public:
PointerHandler();
+
+ PointerHandler(const PointerHandler&) = delete;
+ PointerHandler& operator=(const PointerHandler&) = delete;
+
~PointerHandler() override;
// SettingsPageUIHandler implementation.
@@ -42,8 +46,6 @@ class PointerHandler
std::unique_ptr<chromeos::system::PointerDeviceObserver>
pointer_device_observer_;
-
- DISALLOW_COPY_AND_ASSIGN(PointerHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc
index 6de5e6800d2..b2d4a21dd29 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.cc
@@ -140,22 +140,22 @@ PowerHandler::PowerHandler(PrefService* prefs) : prefs_(prefs) {}
PowerHandler::~PowerHandler() {}
void PowerHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"updatePowerStatus",
base::BindRepeating(&PowerHandler::HandleUpdatePowerStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setPowerSource", base::BindRepeating(&PowerHandler::HandleSetPowerSource,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestPowerManagementSettings",
base::BindRepeating(&PowerHandler::HandleRequestPowerManagementSettings,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setLidClosedBehavior",
base::BindRepeating(&PowerHandler::HandleSetLidClosedBehavior,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setIdleBehavior",
base::BindRepeating(&PowerHandler::HandleSetIdleBehavior,
base::Unretained(this)));
@@ -310,9 +310,8 @@ void PowerHandler::SendBatteryStatus() {
bool show_time = false;
if (!calculating) {
- time_left = base::TimeDelta::FromSeconds(
- charging ? proto->battery_time_to_full_sec()
- : proto->battery_time_to_empty_sec());
+ time_left = base::Seconds(charging ? proto->battery_time_to_full_sec()
+ : proto->battery_time_to_empty_sec());
show_time = ash::power_utils::ShouldDisplayBatteryTime(time_left);
}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.h
index de7ceae6a86..350e9c62aa6 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler.h
@@ -58,6 +58,10 @@ class PowerHandler : public ::settings::SettingsPageUIHandler,
class TestAPI {
public:
explicit TestAPI(PowerHandler* handler);
+
+ TestAPI(const TestAPI&) = delete;
+ TestAPI& operator=(const TestAPI&) = delete;
+
~TestAPI();
void RequestPowerManagementSettings();
@@ -68,11 +72,13 @@ class PowerHandler : public ::settings::SettingsPageUIHandler,
private:
PowerHandler* handler_; // Not owned.
-
- DISALLOW_COPY_AND_ASSIGN(TestAPI);
};
explicit PowerHandler(PrefService* prefs);
+
+ PowerHandler(const PowerHandler&) = delete;
+ PowerHandler& operator=(const PowerHandler&) = delete;
+
~PowerHandler() override;
// SettingsPageUIHandler implementation.
@@ -174,8 +180,6 @@ class PowerHandler : public ::settings::SettingsPageUIHandler,
bool last_has_lid_ = true;
base::WeakPtrFactory<PowerHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(PowerHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler_browsertest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler_browsertest.cc
index aba54d7e5fa..411921ad5ef 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_power_handler_browsertest.cc
@@ -78,6 +78,10 @@ class PowerHandlerTest : public InProcessBrowserTest {
};
PowerHandlerTest() = default;
+
+ PowerHandlerTest(const PowerHandlerTest&) = delete;
+ PowerHandlerTest& operator=(const PowerHandlerTest&) = delete;
+
~PowerHandlerTest() override = default;
// InProcessBrowserTest:
@@ -189,9 +193,6 @@ class PowerHandlerTest : public InProcessBrowserTest {
content::TestWebUI web_ui_;
testing::NiceMock<policy::MockConfigurationPolicyProvider> provider_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(PowerHandlerTest);
};
// Verifies that settings are sent to WebUI when requested.
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_section.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_section.cc
index 11e1cc8f52e..f36e4a6f8c2 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_section.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_section.cc
@@ -591,9 +591,6 @@ void AddDeviceDisplayStrings(content::WebUIDataSource* html_source) {
IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_SCHEDULE_NEVER},
{"displayNightLightScheduleSunsetToSunRise",
IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_SCHEDULE_SUNSET_TO_SUNRISE},
- {"displayNightLightStartTime",
- IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_START_TIME},
- {"displayNightLightStopTime", IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_STOP_TIME},
{"displayNightLightText", IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_TEXT},
{"displayNightLightTemperatureLabel",
IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_TEMPERATURE_LABEL},
@@ -673,10 +670,6 @@ void AddDeviceDisplayStrings(content::WebUIDataSource* html_source) {
html_source->AddBoolean("enableTouchCalibrationSetting",
IsTouchCalibrationAvailable());
- html_source->AddBoolean(
- "allowDisplayIdentificationApi",
- base::FeatureList::IsEnabled(ash::features::kDisplayIdentification));
-
html_source->AddString("invalidDisplayId",
base::NumberToString(display::kInvalidDisplayId));
@@ -862,12 +855,8 @@ void DeviceSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
}
void DeviceSection::AddHandlers(content::WebUI* web_ui) {
- if (ash::features::IsDisplayIdentificationEnabled() ||
- ash::features::IsDisplayAlignmentAssistanceEnabled()) {
- web_ui->AddMessageHandler(
- std::make_unique<chromeos::settings::DisplayHandler>());
- }
-
+ web_ui->AddMessageHandler(
+ std::make_unique<chromeos::settings::DisplayHandler>());
web_ui->AddMessageHandler(
std::make_unique<chromeos::settings::KeyboardHandler>());
web_ui->AddMessageHandler(
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc
index 96b2b70ded5..e492d7db5c3 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.cc
@@ -82,22 +82,22 @@ StorageHandler::~StorageHandler() {
void StorageHandler::RegisterMessages() {
DCHECK(web_ui());
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"updateAndroidEnabled",
base::BindRepeating(&StorageHandler::HandleUpdateAndroidEnabled,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"updateStorageInfo",
base::BindRepeating(&StorageHandler::HandleUpdateStorageInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"openMyFiles", base::BindRepeating(&StorageHandler::HandleOpenMyFiles,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"openArcStorage",
base::BindRepeating(&StorageHandler::HandleOpenArcStorage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"updateExternalStorages",
base::BindRepeating(&StorageHandler::HandleUpdateExternalStorages,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.h
index 0daf73339ce..848116f5c1c 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler.h
@@ -48,6 +48,10 @@ class StorageHandler : public ::settings::SettingsPageUIHandler,
public calculator::SizeCalculator::Observer {
public:
StorageHandler(Profile* profile, content::WebUIDataSource* html_source);
+
+ StorageHandler(const StorageHandler&) = delete;
+ StorageHandler& operator=(const StorageHandler&) = delete;
+
~StorageHandler() override;
// ::settings::SettingsPageUIHandler:
@@ -132,8 +136,6 @@ class StorageHandler : public ::settings::SettingsPageUIHandler,
const re2::RE2 special_volume_path_pattern_;
base::WeakPtrFactory<StorageHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(StorageHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler_unittest.cc
index 245a8a5188e..4758d09f877 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_storage_handler_unittest.cc
@@ -53,6 +53,10 @@ class TestStorageHandler : public StorageHandler {
class StorageHandlerTest : public testing::Test {
public:
StorageHandlerTest() = default;
+
+ StorageHandlerTest(const StorageHandlerTest&) = delete;
+ StorageHandlerTest& operator=(const StorageHandlerTest&) = delete;
+
~StorageHandlerTest() override = default;
void SetUp() override {
@@ -207,7 +211,6 @@ class StorageHandlerTest : public testing::Test {
private:
std::unique_ptr<arc::ArcServiceManager> arc_service_manager_;
std::unique_ptr<arc::ArcSessionManager> arc_session_manager_;
- DISALLOW_COPY_AND_ASSIGN(StorageHandlerTest);
};
TEST_F(StorageHandlerTest, RoundByteSize) {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc
index c18dde7c358..9543bdf7693 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.cc
@@ -38,24 +38,24 @@ void StylusHandler::RegisterMessages() {
// Note: initializeStylusSettings must be called before observers will be
// added.
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializeStylusSettings",
base::BindRepeating(&StylusHandler::HandleInitialize,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestNoteTakingApps",
base::BindRepeating(&StylusHandler::HandleRequestApps,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setPreferredNoteTakingApp",
base::BindRepeating(&StylusHandler::HandleSetPreferredNoteTakingApp,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setPreferredNoteTakingAppEnabledOnLockScreen",
base::BindRepeating(
&StylusHandler::HandleSetPreferredNoteTakingAppEnabledOnLockScreen,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showPlayStoreApps",
base::BindRepeating(&StylusHandler::HandleShowPlayStoreApps,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.h
index 8e1ca21a1ac..6a10b7cc80e 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.h
@@ -10,7 +10,7 @@
#include "base/macros.h"
#include "base/scoped_observation.h"
-#include "chrome/browser/chromeos/note_taking_helper.h"
+#include "chrome/browser/ash/note_taking_helper.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
#include "ui/events/devices/device_data_manager.h"
#include "ui/events/devices/input_device_event_observer.h"
@@ -28,6 +28,10 @@ class StylusHandler : public ::settings::SettingsPageUIHandler,
public ui::InputDeviceEventObserver {
public:
StylusHandler();
+
+ StylusHandler(const StylusHandler&) = delete;
+ StylusHandler& operator=(const StylusHandler&) = delete;
+
~StylusHandler() override;
// SettingsPageUIHandler implementation.
@@ -64,8 +68,6 @@ class StylusHandler : public ::settings::SettingsPageUIHandler,
note_observation_{this};
base::ScopedObservation<ui::DeviceDataManager, ui::InputDeviceEventObserver>
input_observation_{this};
-
- DISALLOW_COPY_AND_ASSIGN(StylusHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc
index 0802990e4f9..146f8d0c529 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.cc
@@ -65,38 +65,38 @@ FingerprintHandler::~FingerprintHandler() {
void FingerprintHandler::RegisterMessages() {
// Note: getFingerprintsList must be called before observers will be added.
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getFingerprintsList",
base::BindRepeating(&FingerprintHandler::HandleGetFingerprintsList,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getNumFingerprints",
base::BindRepeating(&FingerprintHandler::HandleGetNumFingerprints,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"startEnroll", base::BindRepeating(&FingerprintHandler::HandleStartEnroll,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"cancelCurrentEnroll",
base::BindRepeating(&FingerprintHandler::HandleCancelCurrentEnroll,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getEnrollmentLabel",
base::BindRepeating(&FingerprintHandler::HandleGetEnrollmentLabel,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeEnrollment",
base::BindRepeating(&FingerprintHandler::HandleRemoveEnrollment,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"changeEnrollmentLabel",
base::BindRepeating(&FingerprintHandler::HandleChangeEnrollmentLabel,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"startAuthentication",
base::BindRepeating(&FingerprintHandler::HandleStartAuthentication,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"endCurrentAuthentication",
base::BindRepeating(&FingerprintHandler::HandleEndCurrentAuthentication,
base::Unretained(this)));
@@ -176,7 +176,7 @@ void FingerprintHandler::OnSessionStateChanged() {
void FingerprintHandler::HandleGetFingerprintsList(
const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
@@ -206,7 +206,7 @@ void FingerprintHandler::OnGetFingerprintsList(
}
void FingerprintHandler::HandleGetNumFingerprints(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
@@ -263,7 +263,8 @@ void FingerprintHandler::HandleGetEnrollmentLabel(const base::ListValue* args) {
CHECK_EQ(2U, list.size());
std::string callback_id = list[0].GetString();
int index = list[1].GetInt();
- DCHECK_LT(index, static_cast<int>(fingerprints_labels_.size()));
+ CHECK_GE(index, 0);
+ CHECK_LT(index, static_cast<int>(fingerprints_paths_.size()));
AllowJavascript();
fp_service_->RequestRecordLabel(
@@ -282,7 +283,8 @@ void FingerprintHandler::HandleRemoveEnrollment(const base::ListValue* args) {
CHECK_EQ(2U, list.size());
std::string callback_id = list[0].GetString();
int index = list[1].GetInt();
- DCHECK_LT(index, static_cast<int>(fingerprints_paths_.size()));
+ CHECK_GE(index, 0);
+ CHECK_LT(index, static_cast<int>(fingerprints_paths_.size()));
AllowJavascript();
fp_service_->RemoveRecord(
@@ -305,6 +307,9 @@ void FingerprintHandler::HandleChangeEnrollmentLabel(
std::string callback_id = list[0].GetString();
int index = list[1].GetInt();
+ CHECK_GE(index, 0);
+ CHECK_LT(index, static_cast<int>(fingerprints_paths_.size()));
+
std::string new_label = list[2].GetString();
AllowJavascript();
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.h
index b18be765335..e8a49adff67 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.h
@@ -29,6 +29,10 @@ class FingerprintHandler : public ::settings::SettingsPageUIHandler,
public session_manager::SessionManagerObserver {
public:
explicit FingerprintHandler(Profile* profile);
+
+ FingerprintHandler(const FingerprintHandler&) = delete;
+ FingerprintHandler& operator=(const FingerprintHandler&) = delete;
+
~FingerprintHandler() override;
// SettingsPageUIHandler overrides:
@@ -84,8 +88,6 @@ class FingerprintHandler : public ::settings::SettingsPageUIHandler,
session_observation_{this};
base::WeakPtrFactory<FingerprintHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(FingerprintHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc
index b8202d9cbf4..feaa6378083 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc
@@ -51,20 +51,20 @@ void GoogleAssistantHandler::OnAudioNodesChanged() {
}
void GoogleAssistantHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showGoogleAssistantSettings",
base::BindRepeating(
&GoogleAssistantHandler::HandleShowGoogleAssistantSettings,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"retrainAssistantVoiceModel",
base::BindRepeating(&GoogleAssistantHandler::HandleRetrainVoiceModel,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"syncVoiceModelStatus",
base::BindRepeating(&GoogleAssistantHandler::HandleSyncVoiceModelStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializeGoogleAssistantPage",
base::BindRepeating(&GoogleAssistantHandler::HandleInitialized,
base::Unretained(this)));
@@ -72,20 +72,20 @@ void GoogleAssistantHandler::RegisterMessages() {
void GoogleAssistantHandler::HandleShowGoogleAssistantSettings(
const base::ListValue* args) {
- CHECK_EQ(0U, args->GetSize());
+ CHECK_EQ(0U, args->GetList().size());
ash::AssistantController::Get()->OpenAssistantSettings();
}
void GoogleAssistantHandler::HandleRetrainVoiceModel(
const base::ListValue* args) {
- CHECK_EQ(0U, args->GetSize());
+ CHECK_EQ(0U, args->GetList().size());
chromeos::AssistantOptInDialog::Show(ash::FlowType::kSpeakerIdRetrain,
base::DoNothing());
}
void GoogleAssistantHandler::HandleSyncVoiceModelStatus(
const base::ListValue* args) {
- CHECK_EQ(0U, args->GetSize());
+ CHECK_EQ(0U, args->GetList().size());
auto* settings = assistant::AssistantSettings::Get();
if (settings)
@@ -93,7 +93,7 @@ void GoogleAssistantHandler::HandleSyncVoiceModelStatus(
}
void GoogleAssistantHandler::HandleInitialized(const base::ListValue* args) {
- CHECK_EQ(0U, args->GetSize());
+ CHECK_EQ(0U, args->GetList().size());
AllowJavascript();
}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.h
index dc4afb8533e..b9f9921fe21 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.h
@@ -17,6 +17,10 @@ class GoogleAssistantHandler : public ::settings::SettingsPageUIHandler,
chromeos::CrasAudioHandler::AudioObserver {
public:
GoogleAssistantHandler();
+
+ GoogleAssistantHandler(const GoogleAssistantHandler&) = delete;
+ GoogleAssistantHandler& operator=(const GoogleAssistantHandler&) = delete;
+
~GoogleAssistantHandler() override;
void RegisterMessages() override;
@@ -39,8 +43,6 @@ class GoogleAssistantHandler : public ::settings::SettingsPageUIHandler,
bool pending_hotword_update_ = false;
base::WeakPtrFactory<GoogleAssistantHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(GoogleAssistantHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/guest_os_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/guest_os_handler.cc
index d048532bdd3..3a41c046869 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/guest_os_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/guest_os_handler.cc
@@ -42,21 +42,21 @@ GuestOsHandler::GuestOsHandler(Profile* profile) : profile_(profile) {}
GuestOsHandler::~GuestOsHandler() = default;
void GuestOsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getGuestOsSharedPathsDisplayText",
base::BindRepeating(
&GuestOsHandler::HandleGetGuestOsSharedPathsDisplayText,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeGuestOsSharedPath",
base::BindRepeating(&GuestOsHandler::HandleRemoveGuestOsSharedPath,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"notifyGuestOsSharedUsbDevicesPageReady",
base::BindRepeating(
&GuestOsHandler::HandleNotifyGuestOsSharedUsbDevicesPageReady,
weak_ptr_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setGuestOsUsbDeviceShared",
base::BindRepeating(&GuestOsHandler::HandleSetGuestOsUsbDeviceShared,
weak_ptr_factory_.GetWeakPtr()));
@@ -75,7 +75,7 @@ void GuestOsHandler::OnJavascriptDisallowed() {
void GuestOsHandler::HandleGetGuestOsSharedPathsDisplayText(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
std::string callback_id = args->GetList()[0].GetString();
base::Value texts(base::Value::Type::LIST);
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc
index e30130eeebe..4bf3ce39268 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc
@@ -13,7 +13,7 @@
#include "chrome/browser/apps/app_service/app_service_proxy.h"
#include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
#include "chrome/browser/ash/profiles/profile_helper.h"
-#include "chrome/browser/chromeos/tether/tether_service.h"
+#include "chrome/browser/ash/tether/tether_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
#include "chrome/browser/ui/app_list/arc/arc_app_utils.h"
@@ -64,7 +64,7 @@ namespace settings {
InternetHandler::InternetHandler(Profile* profile) : profile_(profile) {
DCHECK(profile_);
- TetherService* tether_service = TetherService::Get(profile);
+ auto* tether_service = tether::TetherService::Get(profile);
gms_core_notifications_state_tracker_ =
tether_service ? tether_service->GetGmsCoreNotificationsStateTracker()
: nullptr;
@@ -78,24 +78,24 @@ InternetHandler::~InternetHandler() {
}
void InternetHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kAddThirdPartyVpnMessage,
base::BindRepeating(&InternetHandler::AddThirdPartyVpn,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kConfigureThirdPartyVpnMessage,
base::BindRepeating(&InternetHandler::ConfigureThirdPartyVpn,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kRequestGmsCoreNotificationsDisabledDeviceNames,
base::BindRepeating(
&InternetHandler::RequestGmsCoreNotificationsDisabledDeviceNames,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kShowCarrierAccountDetail,
base::BindRepeating(&InternetHandler::ShowCarrierAccountDetail,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kShowCellularSetupUI,
base::BindRepeating(&InternetHandler::ShowCellularSetupUI,
base::Unretained(this)));
@@ -111,7 +111,7 @@ void InternetHandler::OnGmsCoreNotificationStateChanged() {
void InternetHandler::AddThirdPartyVpn(const base::ListValue* args) {
std::string app_id;
- if (args->GetSize() < 1 || !args->GetString(0, &app_id)) {
+ if (args->GetList().size() < 1 || !args->GetString(0, &app_id)) {
NOTREACHED() << "Invalid args for: " << kAddThirdPartyVpnMessage;
return;
}
@@ -147,7 +147,7 @@ void InternetHandler::AddThirdPartyVpn(const base::ListValue* args) {
void InternetHandler::ConfigureThirdPartyVpn(const base::ListValue* args) {
std::string guid;
- if (args->GetSize() < 1 || !args->GetString(0, &guid)) {
+ if (args->GetList().size() < 1 || !args->GetString(0, &guid)) {
NOTREACHED() << "Invalid args for: " << kConfigureThirdPartyVpnMessage;
return;
}
@@ -207,7 +207,7 @@ void InternetHandler::RequestGmsCoreNotificationsDisabledDeviceNames(
void InternetHandler::ShowCarrierAccountDetail(const base::ListValue* args) {
std::string guid;
- if (args->GetSize() < 1 || !args->GetString(0, &guid)) {
+ if (args->GetList().size() < 1 || !args->GetString(0, &guid)) {
NOTREACHED() << "Invalid args for: " << kShowCarrierAccountDetail;
return;
}
@@ -216,7 +216,7 @@ void InternetHandler::ShowCarrierAccountDetail(const base::ListValue* args) {
void InternetHandler::ShowCellularSetupUI(const base::ListValue* args) {
std::string guid;
- if (args->GetSize() < 1 || !args->GetString(0, &guid)) {
+ if (args->GetList().size() < 1 || !args->GetString(0, &guid)) {
NOTREACHED() << "Invalid args for: " << kConfigureThirdPartyVpnMessage;
return;
}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.h
index 50c15612e40..45cf0db6b9c 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler.h
@@ -28,6 +28,10 @@ class InternetHandler
public ::settings::SettingsPageUIHandler {
public:
explicit InternetHandler(Profile* profile);
+
+ InternetHandler(const InternetHandler&) = delete;
+ InternetHandler& operator=(const InternetHandler&) = delete;
+
~InternetHandler() override;
// SettingsPageUIHandler implementation.
@@ -68,8 +72,6 @@ class InternetHandler
chromeos::tether::GmsCoreNotificationsStateTracker*
gms_core_notifications_state_tracker_;
-
- DISALLOW_COPY_AND_ASSIGN(InternetHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler_unittest.cc
index 75a86bfae5d..e28e5e7cdd0 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/internet_handler_unittest.cc
@@ -34,6 +34,10 @@ class TestInternetHandler : public InternetHandler {
} // namespace
class InternetHandlerTest : public BrowserWithTestWindowTest {
+ public:
+ InternetHandlerTest(const InternetHandlerTest&) = delete;
+ InternetHandlerTest& operator=(const InternetHandlerTest&) = delete;
+
protected:
InternetHandlerTest() = default;
@@ -81,9 +85,6 @@ class InternetHandlerTest : public BrowserWithTestWindowTest {
std::unique_ptr<chromeos::tether::FakeGmsCoreNotificationsStateTracker>
fake_tracker_;
std::unique_ptr<TestInternetHandler> handler_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(InternetHandlerTest);
};
TEST_F(InternetHandlerTest, TestSendsDeviceNames) {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.cc
index a757b4fd771..36f43595082 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.cc
@@ -199,24 +199,24 @@ KerberosAccountsHandler::KerberosAccountsHandler(
}
void KerberosAccountsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getKerberosAccounts",
base::BindRepeating(&KerberosAccountsHandler::HandleGetKerberosAccounts,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"addKerberosAccount",
base::BindRepeating(&KerberosAccountsHandler::HandleAddKerberosAccount,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeKerberosAccount",
base::BindRepeating(&KerberosAccountsHandler::HandleRemoveKerberosAccount,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"validateKerberosConfig",
base::BindRepeating(
&KerberosAccountsHandler::HandleValidateKerberosConfig,
weak_factory_.GetWeakPtr()));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setAsActiveKerberosAccount",
base::BindRepeating(
&KerberosAccountsHandler::HandleSetAsActiveKerberosAccount,
@@ -227,7 +227,7 @@ void KerberosAccountsHandler::HandleGetKerberosAccounts(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const std::string& callback_id = args->GetList()[0].GetString();
if (!kerberos_credentials_manager_->IsKerberosEnabled()) {
@@ -261,10 +261,10 @@ void KerberosAccountsHandler::OnListAccounts(
// Format validity time as 'xx hours yy minutes' for validity < 1 day and
// 'nn days' otherwise.
base::TimeDelta tgt_validity =
- base::TimeDelta::FromSeconds(account.tgt_validity_seconds());
+ base::Seconds(account.tgt_validity_seconds());
const std::u16string valid_for_duration = ui::TimeFormat::Detailed(
ui::TimeFormat::FORMAT_DURATION, ui::TimeFormat::LENGTH_LONG,
- tgt_validity < base::TimeDelta::FromDays(1) ? -1 : 0, tgt_validity);
+ tgt_validity < base::Days(1) ? -1 : 0, tgt_validity);
base::DictionaryValue account_dict;
account_dict.SetString("principalName", account.principal_name());
@@ -291,7 +291,7 @@ void KerberosAccountsHandler::HandleAddKerberosAccount(
// - Prevent account changes when Kerberos is disabled.
// - Remove all accounts when Kerberos is disabled.
- CHECK_EQ(6U, args->GetSize());
+ CHECK_EQ(6U, args->GetList().size());
const std::string& callback_id = args->GetList()[0].GetString();
const std::string& principal_name = args->GetList()[1].GetString();
const std::string& password = args->GetList()[2].GetString();
@@ -323,7 +323,7 @@ void KerberosAccountsHandler::HandleRemoveKerberosAccount(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
const std::string& callback_id = args->GetList()[0].GetString();
const std::string& principal_name = args->GetList()[1].GetString();
@@ -348,7 +348,7 @@ void KerberosAccountsHandler::HandleValidateKerberosConfig(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
const std::string& callback_id = args->GetList()[0].GetString();
const std::string& krb5conf = args->GetList()[1].GetString();
@@ -383,7 +383,7 @@ void KerberosAccountsHandler::HandleSetAsActiveKerberosAccount(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const std::string& principal_name = args->GetList()[0].GetString();
kerberos_credentials_manager_->SetActiveAccount(principal_name);
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.h
index 60301d47718..003289824cf 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.h
@@ -41,6 +41,9 @@ class KerberosAccountsHandler : public ::settings::SettingsPageUIHandler,
content::WebUIDataSource* html_source,
KerberosCredentialsManager* kerberos_credentials_manager);
+ KerberosAccountsHandler(const KerberosAccountsHandler&) = delete;
+ KerberosAccountsHandler& operator=(const KerberosAccountsHandler&) = delete;
+
~KerberosAccountsHandler() override;
// WebUIMessageHandler:
@@ -100,8 +103,6 @@ class KerberosAccountsHandler : public ::settings::SettingsPageUIHandler,
KerberosCredentialsManager* kerberos_credentials_manager_;
base::WeakPtrFactory<KerberosAccountsHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(KerberosAccountsHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/languages_section.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/languages_section.cc
index 2b9b79b39a3..52e5a5aeb78 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/languages_section.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/languages_section.cc
@@ -6,6 +6,7 @@
#include "ash/constants/ash_features.h"
#include "ash/constants/ash_pref_names.h"
+#include "ash/public/cpp/quick_answers/quick_answers_state.h"
#include "base/feature_list.h"
#include "base/no_destructor.h"
#include "base/strings/utf_string_conversions.h"
@@ -260,8 +261,6 @@ void AddInputMethodOptionsStrings(content::WebUIDataSource* html_source) {
IDS_SETTINGS_INPUT_METHOD_OPTIONS_KOREAN_LAYOUT},
{"inputMethodOptionsKoreanSyllableInput",
IDS_SETTINGS_INPUT_METHOD_OPTIONS_KOREAN_SYLLABLE_INPUT},
- {"inputMethodOptionsKoreanShowHangulCandidate",
- IDS_SETTINGS_INPUT_METHOD_OPTIONS_KOREAN_SHOW_HANGUL_CANDIDATE},
{"inputMethodOptionsDvorakKeyboard",
IDS_SETTINGS_INPUT_METHOD_OPTIONS_KEYBOARD_DVORAK},
{"inputMethodOptionsColemakKeyboard",
@@ -319,7 +318,8 @@ void AddLanguagesPageStringsV2(content::WebUIDataSource* html_source) {
html_source->AddString(
"translateTargetLabel",
l10n_util::GetStringUTF16(
- ash::features::IsQuickAnswersV2Enabled()
+ ash::QuickAnswersState::Get() &&
+ ash::QuickAnswersState::Get()->is_eligible()
? IDS_OS_SETTINGS_LANGUAGES_TRANSLATE_TARGET_LABEL_WITH_QUICK_ANSWERS
: IDS_OS_SETTINGS_LANGUAGES_TRANSLATE_TARGET_LABEL));
html_source->AddString(
@@ -456,6 +456,11 @@ void LanguagesSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
{"noSearchResults", IDS_SEARCH_NO_RESULTS},
};
html_source->AddLocalizedStrings(kLocalizedStrings);
+ html_source->AddString(
+ "languagePacksNotice",
+ l10n_util::GetStringFUTF16(
+ IDS_SETTINGS_LANGUAGES_LANGUAGE_PACKS_NOTICE,
+ base::ASCIIToUTF16(chrome::kLanguagePacksLearnMoreURL)));
AddSmartInputsStrings(html_source, IsEmojiSuggestionAllowed());
AddInputMethodOptionsStrings(html_source);
AddLanguagesPageStringsV2(html_source);
@@ -471,6 +476,9 @@ void LanguagesSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
html_source->AddBoolean("onDeviceGrammarCheckEnabled",
base::FeatureList::IsEnabled(
::chromeos::features::kOnDeviceGrammarCheck));
+ html_source->AddBoolean("languagePacksHandwritingEnabled",
+ base::FeatureList::IsEnabled(
+ ::chromeos::features::kLanguagePacksHandwriting));
}
void LanguagesSection::AddHandlers(content::WebUI* web_ui) {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/main_section.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/main_section.cc
index c5bc09dd485..78f47173ace 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/main_section.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/main_section.cc
@@ -121,6 +121,7 @@ void MainSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
{"dismiss", IDS_SETTINGS_DISMISS},
{"done", IDS_DONE},
{"edit", IDS_SETTINGS_EDIT},
+ {"endTime", IDS_SETTINGS_END_TIME},
{"extensionsLinkTooltip", IDS_SETTINGS_MENU_EXTENSIONS_LINK_TOOLTIP},
{"learnMore", IDS_LEARN_MORE},
{"shortcutBannerDismissed", IDS_SETTINGS_SHORTCUT_BANNER_DISMISSED},
@@ -134,6 +135,7 @@ void MainSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
{"searchResultsBubbleText", IDS_SEARCH_RESULTS_BUBBLE_TEXT},
{"settings", IDS_SETTINGS_SETTINGS},
{"settingsAltPageTitle", IDS_SETTINGS_ALT_PAGE_TITLE},
+ {"startTime", IDS_SETTINGS_START_TIME},
{"subpageArrowRoleDescription", IDS_SETTINGS_SUBPAGE_BUTTON},
{"subpageBackButtonAriaLabel",
IDS_SETTINGS_SUBPAGE_BACK_BUTTON_ARIA_LABEL},
@@ -162,9 +164,6 @@ void MainSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
user_manager::UserManager::Get()->IsLoggedInAsAnyKioskApp());
html_source->AddBoolean("isSupervised", profile()->IsSupervised());
- html_source->AddBoolean("isDeepLinkingEnabled",
- chromeos::features::IsDeepLinkingEnabled());
-
html_source->AddBoolean(
"appManagementIntentSettingsEnabled",
base::FeatureList::IsEnabled(::features::kAppManagementIntentSettings));
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.cc
index df598d2e957..7c084ad171f 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.cc
@@ -8,13 +8,15 @@
#include "base/bind.h"
#include "base/callback_helpers.h"
#include "base/logging.h"
+#include "base/metrics/histogram_functions.h"
#include "base/values.h"
+#include "chrome/browser/ash/android_sms/android_sms_pairing_state_tracker_impl.h"
+#include "chrome/browser/ash/android_sms/android_sms_urls.h"
#include "chrome/browser/ash/login/quick_unlock/auth_token.h"
#include "chrome/browser/ash/login/quick_unlock/quick_unlock_factory.h"
#include "chrome/browser/ash/login/quick_unlock/quick_unlock_storage.h"
-#include "chrome/browser/chromeos/android_sms/android_sms_pairing_state_tracker_impl.h"
-#include "chrome/browser/chromeos/android_sms/android_sms_urls.h"
#include "chrome/browser/nearby_sharing/common/nearby_share_prefs.h"
+#include "chrome/browser/nearby_sharing/nearby_share_feature_status.h"
#include "chrome/browser/nearby_sharing/nearby_sharing_service_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.h"
@@ -39,16 +41,20 @@ const char kPageContentDataBetterTogetherStateKey[] = "betterTogetherState";
const char kPageContentDataInstantTetheringStateKey[] = "instantTetheringState";
const char kPageContentDataMessagesStateKey[] = "messagesState";
const char kPageContentDataPhoneHubStateKey[] = "phoneHubState";
+const char kPageContentDataPhoneHubCameraRollStateKey[] =
+ "phoneHubCameraRollState";
const char kPageContentDataPhoneHubNotificationsStateKey[] =
"phoneHubNotificationsState";
const char kPageContentDataPhoneHubTaskContinuationStateKey[] =
"phoneHubTaskContinuationState";
+const char kPageContentDataPhoneHubAppsStateKey[] = "phoneHubAppsState";
const char kPageContentDataWifiSyncStateKey[] = "wifiSyncState";
const char kPageContentDataSmartLockStateKey[] = "smartLockState";
const char kNotificationAccessStatus[] = "notificationAccessStatus";
const char kIsAndroidSmsPairingComplete[] = "isAndroidSmsPairingComplete";
const char kIsNearbyShareDisallowedByPolicy[] =
"isNearbyShareDisallowedByPolicy";
+const char kIsPhoneHubAppsAccessGranted[] = "isPhoneHubAppsAccessGranted";
constexpr char kAndroidSmsInfoOriginKey[] = "origin";
constexpr char kAndroidSmsInfoEnabledKey[] = "enabled";
@@ -61,6 +67,19 @@ void OnRetrySetHostNowResult(bool success) {
<< "host device failed.";
}
+void RecordDoesMultideviceSetupClientExist(
+ PrefService* prefs,
+ multidevice_setup::MultiDeviceSetupClient* multidevice_setup_client) {
+ // Only log if MultiDeviceFeatures are allowed because if the MultiDevice
+ // suite is prohibited, we expect the client to be null. We expect this metric
+ // to always emit true.
+ if (multidevice_setup::AreAnyMultiDeviceFeaturesAllowed(prefs)) {
+ base::UmaHistogramBoolean(
+ "MultiDevice.BetterTogetherSuite.DoesMultiDeviceSetupClientExist",
+ multidevice_setup_client != nullptr);
+ }
+}
+
} // namespace
MultideviceHandler::MultideviceHandler(
@@ -76,56 +95,57 @@ MultideviceHandler::MultideviceHandler(
android_sms_pairing_state_tracker_(android_sms_pairing_state_tracker),
android_sms_app_manager_(android_sms_app_manager) {
pref_change_registrar_.Init(prefs_);
+ RecordDoesMultideviceSetupClientExist(prefs_, multidevice_setup_client_);
}
MultideviceHandler::~MultideviceHandler() {}
void MultideviceHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showMultiDeviceSetupDialog",
base::BindRepeating(&MultideviceHandler::HandleShowMultiDeviceSetupDialog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getPageContentData",
base::BindRepeating(&MultideviceHandler::HandleGetPageContent,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setFeatureEnabledState",
base::BindRepeating(&MultideviceHandler::HandleSetFeatureEnabledState,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeHostDevice",
base::BindRepeating(&MultideviceHandler::HandleRemoveHostDevice,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"retryPendingHostSetup",
base::BindRepeating(&MultideviceHandler::HandleRetryPendingHostSetup,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setUpAndroidSms",
base::BindRepeating(&MultideviceHandler::HandleSetUpAndroidSms,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getSmartLockSignInEnabled",
base::BindRepeating(&MultideviceHandler::HandleGetSmartLockSignInEnabled,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setSmartLockSignInEnabled",
base::BindRepeating(&MultideviceHandler::HandleSetSmartLockSignInEnabled,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getSmartLockSignInAllowed",
base::BindRepeating(&MultideviceHandler::HandleGetSmartLockSignInAllowed,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getAndroidSmsInfo",
base::BindRepeating(&MultideviceHandler::HandleGetAndroidSmsInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"attemptNotificationSetup",
base::BindRepeating(&MultideviceHandler::HandleAttemptNotificationSetup,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"cancelNotificationSetup",
base::BindRepeating(&MultideviceHandler::HandleCancelNotificationSetup,
base::Unretained(this)));
@@ -208,6 +228,9 @@ void MultideviceHandler::OnHostStatusChanged(
void MultideviceHandler::OnFeatureStatesChanged(
const multidevice_setup::MultiDeviceSetupClient::FeatureStatesMap&
feature_states_map) {
+ PA_LOG(INFO) << "Feature states have changed: "
+ << multidevice_setup::FeatureStatesMapToString(
+ feature_states_map);
UpdatePageContent();
NotifyAndroidSmsInfoChange();
}
@@ -234,8 +257,8 @@ void MultideviceHandler::UpdatePageContent() {
std::unique_ptr<base::DictionaryValue> page_content_dictionary =
GeneratePageContentDataDictionary();
DCHECK(page_content_dictionary);
- PA_LOG(VERBOSE) << "Updating MultiDevice settings page content with: "
- << *page_content_dictionary << ".";
+ PA_LOG(INFO) << "Updating MultiDevice settings page content with: "
+ << *page_content_dictionary << ".";
FireWebUIListener("settings.updateMultidevicePageContentData",
*page_content_dictionary);
}
@@ -263,8 +286,8 @@ void MultideviceHandler::HandleGetPageContent(const base::ListValue* args) {
std::unique_ptr<base::DictionaryValue> page_content_dictionary =
GeneratePageContentDataDictionary();
DCHECK(page_content_dictionary);
- PA_LOG(VERBOSE) << "Responding to getPageContentData() request with: "
- << *page_content_dictionary << ".";
+ PA_LOG(INFO) << "Responding to getPageContentData() request with: "
+ << *page_content_dictionary << ".";
ResolveJavascriptCallback(base::Value(callback_id), *page_content_dictionary);
}
@@ -383,7 +406,7 @@ MultideviceHandler::GenerateAndroidSmsInfo() {
}
void MultideviceHandler::HandleGetAndroidSmsInfo(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
@@ -467,6 +490,11 @@ MultideviceHandler::GeneratePageContentDataDictionary() {
static_cast<int32_t>(
feature_states[multidevice_setup::mojom::Feature::kPhoneHub]));
page_content_dictionary->SetInteger(
+ kPageContentDataPhoneHubCameraRollStateKey,
+ static_cast<int32_t>(
+ feature_states
+ [multidevice_setup::mojom::Feature::kPhoneHubCameraRoll]));
+ page_content_dictionary->SetInteger(
kPageContentDataPhoneHubNotificationsStateKey,
static_cast<int32_t>(
feature_states
@@ -477,6 +505,11 @@ MultideviceHandler::GeneratePageContentDataDictionary() {
feature_states
[multidevice_setup::mojom::Feature::kPhoneHubTaskContinuation]));
page_content_dictionary->SetInteger(
+ kPageContentDataPhoneHubAppsStateKey,
+ static_cast<int32_t>(
+ feature_states[multidevice_setup::mojom::Feature::kEche]));
+
+ page_content_dictionary->SetInteger(
kPageContentDataWifiSyncStateKey,
static_cast<int32_t>(
feature_states[multidevice_setup::mojom::Feature::kWifiSync]));
@@ -498,20 +531,15 @@ MultideviceHandler::GeneratePageContentDataDictionary() {
access_status = notification_access_manager_->GetAccessStatus();
page_content_dictionary->SetInteger(kNotificationAccessStatus,
static_cast<int32_t>(access_status));
+ // TODO: Temporary solution, set to true means no need to process apps setup
+ // flow.
+ page_content_dictionary->SetBoolean(kIsPhoneHubAppsAccessGranted, true);
- // A managed pref is set by an admin policy, and because managed prefs
- // have the highest priority, this also indicates whether the pref is
- // actually being controlled by the policy setting. We only care when
- // Nearby Share is disallowed by policy because the feature needs to be
- // off and unchangeable by the user. If the Nearby Share is allowed by
- // policy, the user can choose whether to enable or disable.
bool is_nearby_share_disallowed_by_policy =
NearbySharingServiceFactory::IsNearbyShareSupportedForBrowserContext(
- Profile::FromWebUI(web_ui()))
- ? !prefs_->GetBoolean(::prefs::kNearbySharingEnabledPrefName) &&
- prefs_->IsManagedPreference(
- ::prefs::kNearbySharingEnabledPrefName)
- : false;
+ Profile::FromWebUI(web_ui())) &&
+ (GetNearbyShareEnabledState(prefs_) ==
+ NearbyShareEnabledState::kDisallowedByPolicy);
page_content_dictionary->SetBoolean(kIsNearbyShareDisallowedByPolicy,
is_nearby_share_disallowed_by_policy);
@@ -554,6 +582,9 @@ MultideviceHandler::GetFeatureStatesMap() {
if (multidevice_setup_client_)
return multidevice_setup_client_->GetFeatureStates();
+ PA_LOG(WARNING)
+ << "MultiDevice setup client missing. Responding to "
+ "GetFeatureStatesMap() request by generating default feature map.";
return multidevice_setup::MultiDeviceSetupClient::
GenerateDefaultFeatureStatesMap();
}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.h
index 0958367b3e9..20c71ab18da 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler.h
@@ -8,8 +8,8 @@
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/scoped_observation.h"
-#include "chrome/browser/chromeos/android_sms/android_sms_app_manager.h"
-#include "chrome/browser/chromeos/android_sms/android_sms_service_factory.h"
+#include "chrome/browser/ash/android_sms/android_sms_app_manager.h"
+#include "chrome/browser/ash/android_sms/android_sms_service_factory.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
#include "chromeos/components/multidevice/remote_device_ref.h"
#include "chromeos/components/phonehub/notification_access_manager.h"
@@ -48,6 +48,10 @@ class MultideviceHandler
multidevice_setup::AndroidSmsPairingStateTracker*
android_sms_pairing_state_tracker,
android_sms::AndroidSmsAppManager* android_sms_app_manager);
+
+ MultideviceHandler(const MultideviceHandler&) = delete;
+ MultideviceHandler& operator=(const MultideviceHandler&) = delete;
+
~MultideviceHandler() override;
protected:
@@ -156,8 +160,6 @@ class MultideviceHandler
// Used to cancel callbacks when JavaScript becomes disallowed.
base::WeakPtrFactory<MultideviceHandler> callback_weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(MultideviceHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler_unittest.cc
index 52f9072b8b9..8e0a7e52b08 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_handler_unittest.cc
@@ -9,8 +9,8 @@
#include "ash/constants/ash_features.h"
#include "base/macros.h"
#include "base/test/scoped_feature_list.h"
-#include "chrome/browser/chromeos/android_sms/android_sms_urls.h"
-#include "chrome/browser/chromeos/android_sms/fake_android_sms_app_manager.h"
+#include "chrome/browser/ash/android_sms/android_sms_urls.h"
+#include "chrome/browser/ash/android_sms/fake_android_sms_app_manager.h"
#include "chrome/browser/nearby_sharing/common/nearby_share_prefs.h"
#include "chrome/browser/nearby_sharing/nearby_sharing_service_factory.h"
#include "chrome/test/base/testing_profile.h"
@@ -18,7 +18,9 @@
#include "chromeos/components/phonehub/fake_notification_access_manager.h"
#include "chromeos/services/multidevice_setup/public/cpp/fake_android_sms_pairing_state_tracker.h"
#include "chromeos/services/multidevice_setup/public/cpp/fake_multidevice_setup_client.h"
+#include "chromeos/services/multidevice_setup/public/cpp/prefs.h"
#include "components/content_settings/core/common/content_settings_pattern.h"
+#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/testing_pref_service.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/browser_task_environment.h"
@@ -68,6 +70,8 @@ GenerateDefaultFeatureStatesMap() {
multidevice_setup::mojom::FeatureState::kUnavailableNoVerifiedHost},
{multidevice_setup::mojom::Feature::kPhoneHubNotifications,
multidevice_setup::mojom::FeatureState::kUnavailableNoVerifiedHost},
+ {multidevice_setup::mojom::Feature::kPhoneHubCameraRoll,
+ multidevice_setup::mojom::FeatureState::kUnavailableNoVerifiedHost},
{multidevice_setup::mojom::Feature::kPhoneHubTaskContinuation,
multidevice_setup::mojom::FeatureState::kUnavailableNoVerifiedHost},
{multidevice_setup::mojom::Feature::kWifiSync,
@@ -127,13 +131,27 @@ void VerifyPageContentDict(
multidevice_setup::mojom::Feature::kPhoneHubNotifications);
EXPECT_EQ(static_cast<int>(it->second), phone_hub_notifications_state);
+ absl::optional<int> phone_hub_camera_roll_state =
+ page_content_dict->FindIntKey("phoneHubCameraRollState");
+ ASSERT_TRUE(phone_hub_camera_roll_state);
+ it = feature_states_map.find(
+ multidevice_setup::mojom::Feature::kPhoneHubCameraRoll);
+ EXPECT_EQ(static_cast<int>(it->second), *phone_hub_camera_roll_state);
+
int phone_hub_task_continuation_state;
EXPECT_TRUE(page_content_dict->GetInteger(
"phoneHubTaskContinuationState", &phone_hub_task_continuation_state));
+
it = feature_states_map.find(
multidevice_setup::mojom::Feature::kPhoneHubTaskContinuation);
EXPECT_EQ(static_cast<int>(it->second), phone_hub_task_continuation_state);
+ int phone_hub_apps_state;
+ EXPECT_TRUE(page_content_dict->GetInteger("phoneHubAppsState",
+ &phone_hub_apps_state));
+ it = feature_states_map.find(multidevice_setup::mojom::Feature::kEche);
+ EXPECT_EQ(static_cast<int>(it->second), phone_hub_apps_state);
+
int wifi_sync_state;
EXPECT_TRUE(page_content_dict->GetInteger("wifiSyncState", &wifi_sync_state));
it = feature_states_map.find(multidevice_setup::mojom::Feature::kWifiSync);
@@ -155,11 +173,20 @@ void VerifyPageContentDict(
&is_nearby_share_disallowed_by_policy));
EXPECT_EQ(expected_is_nearby_share_disallowed_by_policy_,
is_nearby_share_disallowed_by_policy);
+
+ bool is_phone_hub_apps_access_granted;
+ EXPECT_TRUE(
+ page_content_dict->GetBoolean("isPhoneHubAppsAccessGranted",
+ &is_phone_hub_apps_access_granted));
}
} // namespace
class MultideviceHandlerTest : public testing::Test {
+ public:
+ MultideviceHandlerTest(const MultideviceHandlerTest&) = delete;
+ MultideviceHandlerTest& operator=(const MultideviceHandlerTest&) = delete;
+
protected:
MultideviceHandlerTest()
: test_device_(multidevice::CreateRemoteDeviceRefForTest()) {}
@@ -184,6 +211,10 @@ class MultideviceHandlerTest : public testing::Test {
NearbySharingServiceFactory::
SetIsNearbyShareSupportedForBrowserContextForTesting(true);
+ prefs_->registry()->RegisterBooleanPref(
+ multidevice_setup::kInstantTetheringAllowedPrefName,
+ /*default_value=*/true);
+
handler_ = std::make_unique<TestMultideviceHandler>(
prefs_.get(), fake_multidevice_setup_client_.get(),
fake_notification_access_manager_.get(),
@@ -491,8 +522,6 @@ class MultideviceHandlerTest : public testing::Test {
std::unique_ptr<TestMultideviceHandler> handler_;
base::test::ScopedFeatureList scoped_feature_list_;
-
- DISALLOW_COPY_AND_ASSIGN(MultideviceHandlerTest);
};
TEST_F(MultideviceHandlerTest, NotificationSetupFlow) {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_section.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_section.cc
index a7c74bc84be..a84583485c1 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_section.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_section.cc
@@ -8,7 +8,8 @@
#include "base/feature_list.h"
#include "base/no_destructor.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/chromeos/android_sms/android_sms_service.h"
+#include "chrome/browser/ash/android_sms/android_sms_service.h"
+#include "chrome/browser/nearby_sharing/common/nearby_share_features.h"
#include "chrome/browser/nearby_sharing/common/nearby_share_prefs.h"
#include "chrome/browser/nearby_sharing/nearby_sharing_service_factory.h"
#include "chrome/browser/profiles/profile.h"
@@ -85,25 +86,50 @@ const std::vector<SearchConcept>& GetSmartLockOptionsSearchConcepts() {
const std::vector<SearchConcept>&
GetMultiDeviceOptedInPhoneHubSearchConcepts() {
+ static const base::NoDestructor<std::vector<SearchConcept>> tags({
+ {IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB,
+ mojom::kMultiDeviceFeaturesSubpagePath,
+ mojom::SearchResultIcon::kPhone,
+ mojom::SearchResultDefaultRank::kMedium,
+ mojom::SearchResultType::kSetting,
+ {.setting = mojom::Setting::kPhoneHubOnOff}},
+ {IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB_NOTIFICATIONS,
+ mojom::kMultiDeviceFeaturesSubpagePath,
+ mojom::SearchResultIcon::kPhone,
+ mojom::SearchResultDefaultRank::kMedium,
+ mojom::SearchResultType::kSetting,
+ {.setting = mojom::Setting::kPhoneHubNotificationsOnOff}},
+ {IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB_TASK_CONTINUATION,
+ mojom::kMultiDeviceFeaturesSubpagePath,
+ mojom::SearchResultIcon::kPhone,
+ mojom::SearchResultDefaultRank::kMedium,
+ mojom::SearchResultType::kSetting,
+ {.setting = mojom::Setting::kPhoneHubTaskContinuationOnOff}},
+ });
+ return *tags;
+}
+
+const std::vector<SearchConcept>&
+GetMultiDeviceOptedInPhoneHubCameraRollSearchConcepts() {
static const base::NoDestructor<std::vector<SearchConcept>> tags(
- {{IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB,
+ {{IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB_CAMERA_ROLL,
mojom::kMultiDeviceFeaturesSubpagePath,
mojom::SearchResultIcon::kPhone,
mojom::SearchResultDefaultRank::kMedium,
mojom::SearchResultType::kSetting,
- {.setting = mojom::Setting::kPhoneHubOnOff}},
- {IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB_NOTIFICATIONS,
- mojom::kMultiDeviceFeaturesSubpagePath,
- mojom::SearchResultIcon::kPhone,
- mojom::SearchResultDefaultRank::kMedium,
- mojom::SearchResultType::kSetting,
- {.setting = mojom::Setting::kPhoneHubNotificationsOnOff}},
- {IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB_TASK_CONTINUATION,
+ {.setting = mojom::Setting::kPhoneHubCameraRollOnOff}}});
+ return *tags;
+}
+
+const std::vector<SearchConcept>&
+GetMultiDeviceOptedInPhoneHubAppsSearchConcepts() {
+ static const base::NoDestructor<std::vector<SearchConcept>> tags(
+ {{IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB_APPS,
mojom::kMultiDeviceFeaturesSubpagePath,
mojom::SearchResultIcon::kPhone,
mojom::SearchResultDefaultRank::kMedium,
mojom::SearchResultType::kSetting,
- {.setting = mojom::Setting::kPhoneHubTaskContinuationOnOff}}});
+ {.setting = mojom::Setting::kPhoneHubAppsOnOff}}});
return *tags;
}
@@ -299,6 +325,8 @@ void MultiDeviceSection::AddLoadTimeData(
{"multideviceSmartLockItemTitle", IDS_SETTINGS_EASY_UNLOCK_SECTION_TITLE},
{"multidevicePhoneHubItemTitle",
IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_SECTION_TITLE},
+ {"multidevicePhoneHubCameraRollItemTitle",
+ IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_CAMERA_ROLL_SECTION_TITLE},
{"multidevicePhoneHubLearnMoreLabel",
IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_LEARN_MORE_LABEL},
{"multidevicePhoneHubNotificationsItemTitle",
@@ -350,6 +378,11 @@ void MultiDeviceSection::AddLoadTimeData(
IDS_SETTINGS_PEOPLE_LOCK_SCREEN_OPTIONS_LOCK},
{"multideviceForgetDeviceDisconnect",
IDS_SETTINGS_MULTIDEVICE_FORGET_THIS_DEVICE_DISCONNECT},
+ {"multidevicePhoneHubAppsItemTitle",
+ IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_APPS_SECTION_TITLE},
+ {"multidevicePhoneHubAppsAndNotificationsItemTitle",
+ IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_APPS_AND_NOTIFICATIONS_SECTION_TITLE},
+ {"multideviceLearnMoreWithoutURL", IDS_SETTINGS_LEARN_MORE},
};
html_source->AddLocalizedStrings(kLocalizedStrings);
@@ -416,6 +449,10 @@ void MultiDeviceSection::AddLoadTimeData(
l10n_util::GetStringFUTF16(IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_SUMMARY,
ui::GetChromeOSDeviceName()));
html_source->AddString(
+ "multidevicePhoneHubCameraRollItemSummary",
+ ui::SubstituteChromeOSDeviceType(
+ IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_CAMERA_ROLL_SUMMARY));
+ html_source->AddString(
"multidevicePhoneHubNotificationsItemSummary",
ui::SubstituteChromeOSDeviceType(
IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_NOTIFICATIONS_SUMMARY));
@@ -447,6 +484,16 @@ void MultiDeviceSection::AddLoadTimeData(
l10n_util::GetStringFUTF16(
IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_TASK_CONTINUATION_DISABLED_SUMMARY,
GetHelpUrlWithBoard(phonehub::kPhoneHubLearnMoreLink)));
+ html_source->AddString("multidevicePhoneHubAppsItemSummary",
+ ui::SubstituteChromeOSDeviceType(
+ IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_APPS_SUMMARY));
+ html_source->AddString(
+ "multidevicePhoneHubAppsAndNotificationsItemSummary",
+ ui::SubstituteChromeOSDeviceType(
+ IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_APPS_AND_NOTIFICATIONS_SUMMARY));
+ html_source->AddString(
+ "multidevicePhoneHubPermissionsLearnMoreURL",
+ GetHelpUrlWithBoard(chrome::kPhoneHubPermissionLearnMoreURL));
AddEasyUnlockStrings(html_source);
@@ -459,6 +506,12 @@ void MultiDeviceSection::AddLoadTimeData(
"isNearbyShareSupported",
NearbySharingServiceFactory::IsNearbyShareSupportedForBrowserContext(
profile()));
+ // Background scanning depends on Bluetooth Advertisement Monitoring.
+ html_source->AddBoolean(
+ "isNearbyShareBackgroundScanningEnabled",
+ chromeos::features::IsBluetoothAdvertisementMonitoringEnabled() &&
+ base::FeatureList::IsEnabled(
+ ::features::kNearbySharingBackgroundScanning));
}
void MultiDeviceSection::AddHandlers(content::WebUI* web_ui) {
@@ -517,9 +570,11 @@ void MultiDeviceSection::RegisterHierarchy(
mojom::Setting::kMessagesOnOff,
mojom::Setting::kForgetPhone,
mojom::Setting::kPhoneHubOnOff,
+ mojom::Setting::kPhoneHubCameraRollOnOff,
mojom::Setting::kPhoneHubNotificationsOnOff,
mojom::Setting::kPhoneHubTaskContinuationOnOff,
mojom::Setting::kWifiSyncOnOff,
+ mojom::Setting::kPhoneHubAppsOnOff,
};
RegisterNestedSettingBulk(mojom::Subpage::kMultiDeviceFeatures,
kMultiDeviceFeaturesSettings, generator);
@@ -580,16 +635,28 @@ void MultiDeviceSection::OnFeatureStatesChanged(
SearchTagRegistry::ScopedTagUpdater updater = registry()->StartUpdate();
updater.RemoveSearchTags(GetSmartLockOptionsSearchConcepts());
updater.RemoveSearchTags(GetMultiDeviceOptedInPhoneHubSearchConcepts());
+ updater.RemoveSearchTags(
+ GetMultiDeviceOptedInPhoneHubCameraRollSearchConcepts());
updater.RemoveSearchTags(GetMultiDeviceOptedInWifiSyncSearchConcepts());
+ updater.RemoveSearchTags(GetMultiDeviceOptedInPhoneHubAppsSearchConcepts());
if (feature_states_map.at(multidevice_setup::mojom::Feature::kSmartLock) ==
multidevice_setup::mojom::FeatureState::kEnabledByUser) {
updater.AddSearchTags(GetSmartLockOptionsSearchConcepts());
}
- if (IsFeatureSupported(multidevice_setup::mojom::Feature::kPhoneHub))
+ if (IsFeatureSupported(multidevice_setup::mojom::Feature::kPhoneHub)) {
updater.AddSearchTags(GetMultiDeviceOptedInPhoneHubSearchConcepts());
+ if (features::IsPhoneHubCameraRollEnabled() &&
+ IsFeatureSupported(
+ multidevice_setup::mojom::Feature::kPhoneHubCameraRoll)) {
+ updater.AddSearchTags(
+ GetMultiDeviceOptedInPhoneHubCameraRollSearchConcepts());
+ }
+ }
if (IsFeatureSupported(multidevice_setup::mojom::Feature::kWifiSync))
updater.AddSearchTags(GetMultiDeviceOptedInWifiSyncSearchConcepts());
+ if (IsFeatureSupported(multidevice_setup::mojom::Feature::kEche))
+ updater.AddSearchTags(GetMultiDeviceOptedInPhoneHubAppsSearchConcepts());
}
void MultiDeviceSection::OnNearbySharingEnabledChanged() {
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_section.h b/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_section.h
index 4cf23cbfd3f..3bd829184e4 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_section.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/multidevice_section.h
@@ -7,6 +7,8 @@
#include "base/values.h"
#include "chrome/browser/ui/webui/settings/chromeos/os_settings_section.h"
+// TODO(https://crbug.com/1164001): move to forward declaration.
+#include "chrome/browser/ash/android_sms/android_sms_service.h"
#include "chromeos/services/multidevice_setup/public/cpp/multidevice_setup_client.h"
#include "components/prefs/pref_change_registrar.h"
@@ -18,10 +20,6 @@ class WebUIDataSource;
namespace chromeos {
-namespace android_sms {
-class AndroidSmsService;
-} // namespace android_sms
-
namespace phonehub {
class PhoneHubManager;
} // namespace phonehub
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler.cc
index 5fa8398a945..ca289aa50d7 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler.cc
@@ -4,6 +4,8 @@
#include "chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler.h"
+#include <utility>
+
#include "ash/public/cpp/message_center_ash.h"
#include "base/logging.h"
#include "chrome/browser/apps/app_service/app_service_proxy.h"
@@ -19,12 +21,8 @@ namespace {
app_notification::mojom::AppPtr CreateAppPtr(const apps::AppUpdate& update) {
apps::mojom::PermissionPtr permission_copy;
for (const auto& permission : update.Permissions()) {
- if ((static_cast<app_management::mojom::PwaPermissionType>(
- permission->permission_id) ==
- app_management::mojom::PwaPermissionType::NOTIFICATIONS) ||
- (static_cast<app_management::mojom::ArcPermissionType>(
- permission->permission_id) ==
- app_management::mojom::ArcPermissionType::NOTIFICATIONS)) {
+ if (permission->permission_type ==
+ apps::mojom::PermissionType::kNotifications) {
permission_copy = permission->Clone();
break;
}
@@ -34,9 +32,40 @@ app_notification::mojom::AppPtr CreateAppPtr(const apps::AppUpdate& update) {
app->id = update.AppId();
app->title = update.Name();
app->notification_permission = std::move(permission_copy);
+ app->readiness = update.Readiness();
return app;
}
+
+std::vector<app_notification::mojom::AppPtr> Clone(
+ const std::vector<app_notification::mojom::AppPtr>& apps) {
+ std::vector<app_notification::mojom::AppPtr> cloned_apps;
+ for (const auto& app : apps) {
+ cloned_apps.push_back(app.Clone());
+ }
+ return cloned_apps;
+}
+
+bool ShouldIncludeApp(const apps::AppUpdate& update) {
+ // Only apps that can be shown in management are supported.
+ if (update.ShowInManagement() != apps::mojom::OptionalBool::kTrue) {
+ return false;
+ }
+
+ // Only kArc and kWeb apps are supported.
+ if (update.AppType() == apps::mojom::AppType::kArc ||
+ update.AppType() == apps::mojom::AppType::kWeb) {
+ for (const auto& permission : update.Permissions()) {
+ if (permission->permission_type ==
+ apps::mojom::PermissionType::kNotifications) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+
} // namespace
using app_notification::mojom::AppNotificationsHandler;
@@ -48,7 +77,6 @@ AppNotificationHandler::AppNotificationHandler(
if (ash::MessageCenterAsh::Get()) {
ash::MessageCenterAsh::Get()->AddObserver(this);
}
- // app_service_proxy_ = apps::AppServiceProxyFactory::GetForProfile(profile_);
Observe(&app_service_proxy_->AppRegistryCache());
}
@@ -73,7 +101,6 @@ void AppNotificationHandler::BindInterface(
}
void AppNotificationHandler::OnQuietModeChanged(bool in_quiet_mode) {
- in_quiet_mode_ = in_quiet_mode;
for (const auto& observer : observer_list_) {
observer->OnQuietModeChanged(in_quiet_mode);
}
@@ -83,46 +110,41 @@ void AppNotificationHandler::SetQuietMode(bool in_quiet_mode) {
ash::MessageCenterAsh::Get()->SetQuietMode(in_quiet_mode);
}
-void AppNotificationHandler::GetApps() {
+void AppNotificationHandler::SetNotificationPermission(
+ const std::string& app_id,
+ apps::mojom::PermissionPtr permission) {
+ app_service_proxy_->SetPermission(app_id, std::move(permission));
+}
+
+void AppNotificationHandler::GetApps(GetAppsCallback callback) {
+ std::move(callback).Run(GetAppList());
+}
+
+void AppNotificationHandler::OnAppUpdate(const apps::AppUpdate& update) {
+ if (ShouldIncludeApp(update)) {
+ // Uninstalled apps are allowed to be sent as an update.
+ NotifyAppChanged(CreateAppPtr(update));
+ }
+}
+
+std::vector<app_notification::mojom::AppPtr>
+AppNotificationHandler::GetAppList() {
std::vector<app_notification::mojom::AppPtr> apps;
app_service_proxy_->AppRegistryCache().ForEachApp(
[&apps](const apps::AppUpdate& update) {
- if (update.ShowInManagement() != apps::mojom::OptionalBool::kTrue ||
- !apps_util::IsInstalled(update.Readiness())) {
- return;
- }
-
- // This statement only adds apps to the list if they are
- // of app_type kArc or kWeb.
- if (update.AppType() == apps::mojom::AppType::kArc) {
- for (const auto& permission : update.Permissions()) {
- if (static_cast<app_management::mojom::ArcPermissionType>(
- permission->permission_id) ==
- app_management::mojom::ArcPermissionType::NOTIFICATIONS) {
- apps.push_back(CreateAppPtr(update));
- break;
- }
- }
- } else if (update.AppType() == apps::mojom::AppType::kWeb) {
- for (const auto& permission : update.Permissions()) {
- if (static_cast<app_management::mojom::PwaPermissionType>(
- permission->permission_id) ==
- app_management::mojom::PwaPermissionType::NOTIFICATIONS) {
- apps.push_back(CreateAppPtr(update));
- break;
- }
- }
+ if (ShouldIncludeApp(update) &&
+ apps_util::IsInstalled(update.Readiness())) {
+ apps.push_back(CreateAppPtr(update));
}
});
- apps_ = std::move(apps);
+ return apps;
}
-void AppNotificationHandler::OnAppUpdate(const apps::AppUpdate& update) {
- // Each time an update is observed the entire list of apps is refetched.
- // 'update' is a required parameter from the AppRegistryCache::Observer,
- // but is not used in this implementation.
- apps_.clear();
- GetApps();
+void AppNotificationHandler::NotifyAppChanged(
+ app_notification::mojom::AppPtr app) {
+ for (const auto& observer : observer_list_) {
+ observer->OnNotificationAppChanged(app.Clone());
+ }
}
void AppNotificationHandler::OnAppRegistryCacheWillBeDestroyed(
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler.h
index c56817a836c..581a511309a 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler.h
@@ -6,7 +6,6 @@
#define CHROME_BROWSER_UI_WEBUI_SETTINGS_CHROMEOS_OS_APPS_PAGE_APP_NOTIFICATION_HANDLER_H_
#include "ash/public/cpp/message_center_ash.h"
-#include "chrome/browser/ui/webui/app_management/app_management.mojom.h"
#include "chrome/browser/ui/webui/settings/chromeos/os_apps_page/mojom/app_notification_handler.mojom.h"
#include "components/services/app_service/public/cpp/app_registry_cache.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
@@ -47,21 +46,23 @@ class AppNotificationHandler
// settings::mojom::AppNotificationHandler:
void SetQuietMode(bool in_quiet_mode) override;
void NotifyPageReady() override;
+ void SetNotificationPermission(
+ const std::string& app_id,
+ apps::mojom::PermissionPtr permission) override;
+ void GetApps(GetAppsCallback callback) override;
// apps::AppRegistryCache::Observer:
void OnAppUpdate(const apps::AppUpdate& update) override;
void OnAppRegistryCacheWillBeDestroyed(
apps::AppRegistryCache* cache) override;
- void GetApps();
-
- bool in_quiet_mode_;
+ std::vector<app_notification::mojom::AppPtr> GetAppList();
+ void NotifyAppChanged(app_notification::mojom::AppPtr app);
mojo::RemoteSet<app_notification::mojom::AppNotificationsObserver>
observer_list_;
apps::AppServiceProxyChromeOs* app_service_proxy_;
- std::vector<app_notification::mojom::AppPtr> apps_;
mojo::Receiver<app_notification::mojom::AppNotificationsHandler> receiver_{
this};
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler_unittest.cc
index 366cb910f9c..b54a2f69ba6 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/app_notification_handler_unittest.cc
@@ -12,7 +12,7 @@
#include "base/logging.h"
#include "chrome/browser/apps/app_service/app_service_proxy.h"
#include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
-#include "chrome/browser/ui/webui/app_management/app_management.mojom.h"
+#include "chrome/browser/ui/webui/settings/chromeos/os_apps_page/mojom/app_notification_handler.mojom.h"
#include "chrome/test/base/testing_profile.h"
#include "components/services/app_service/public/cpp/app_registry_cache.h"
#include "components/services/app_service/public/mojom/types.mojom.h"
@@ -43,6 +43,49 @@ class FakeMessageCenterAsh : public ash::MessageCenterAsh {
bool in_quiet_mode_ = false;
};
+class AppNotificationHandlerTestObserver
+ : public app_notification::mojom::AppNotificationsObserver {
+ public:
+ AppNotificationHandlerTestObserver() {}
+ ~AppNotificationHandlerTestObserver() override {}
+
+ void OnNotificationAppChanged(app_notification::mojom::AppPtr app) override {
+ recently_updated_app_ = std::move(app);
+ app_list_changed_++;
+ }
+
+ void OnQuietModeChanged(bool enabled) override {
+ is_quiet_mode_ = enabled;
+ quiet_mode_changed_++;
+ }
+
+ mojo::PendingRemote<app_notification::mojom::AppNotificationsObserver>
+ GenerateRemote() {
+ return receiver_.BindNewPipeAndPassRemote();
+ }
+
+ const std::vector<app_notification::mojom::AppPtr>& apps() { return apps_; }
+ const app_notification::mojom::AppPtr& recently_updated_app() {
+ return recently_updated_app_;
+ }
+
+ bool is_quiet_mode() { return is_quiet_mode_; }
+
+ int app_list_changed() { return app_list_changed_; }
+ int quiet_mode_changed() { return quiet_mode_changed_; }
+
+ private:
+ std::vector<app_notification::mojom::AppPtr> apps_;
+ app_notification::mojom::AppPtr recently_updated_app_;
+ bool is_quiet_mode_ = false;
+
+ int app_list_changed_ = 0;
+ int quiet_mode_changed_ = 0;
+
+ mojo::Receiver<app_notification::mojom::AppNotificationsObserver> receiver_{
+ this};
+};
+
} // namespace
class AppNotificationHandlerTest : public testing::Test {
@@ -58,6 +101,9 @@ class AppNotificationHandlerTest : public testing::Test {
std::make_unique<apps::AppServiceProxyChromeOs>(profile_.get());
handler_ =
std::make_unique<AppNotificationHandler>(app_service_proxy_.get());
+
+ observer_ = std::make_unique<AppNotificationHandlerTestObserver>();
+ handler_->AddObserver(observer_->GenerateRemote());
}
void TearDown() override {
@@ -67,22 +113,25 @@ class AppNotificationHandlerTest : public testing::Test {
}
protected:
- bool GetHandlerQuietModeState() { return handler_->in_quiet_mode_; }
+ AppNotificationHandlerTestObserver* observer() { return observer_.get(); }
void SetQuietModeState(bool quiet_mode_enabled) {
handler_->SetQuietMode(quiet_mode_enabled);
}
+ void NotifyPageReady() { handler_->NotifyPageReady(); }
+
void CreateAndStoreFakeApp(
std::string fake_id,
apps::mojom::AppType app_type,
- std::uint32_t permission_type,
- apps::mojom::PermissionValueType permission_value_type) {
+ apps::mojom::PermissionType permission_type,
+ apps::mojom::PermissionValueType permission_value_type,
+ uint32_t permission_value = 1) {
std::vector<apps::mojom::PermissionPtr> fake_permissions;
apps::mojom::PermissionPtr fake_permission = apps::mojom::Permission::New();
- fake_permission->permission_id = permission_type;
+ fake_permission->permission_type = permission_type;
fake_permission->value_type = permission_value_type;
- fake_permission->value = /*True=*/1;
+ fake_permission->value = /*True=*/permission_value;
fake_permission->is_managed = false;
fake_permissions.push_back(fake_permission.Clone());
@@ -107,15 +156,11 @@ class AppNotificationHandlerTest : public testing::Test {
}
bool CheckIfFakeAppInList(std::string fake_id) {
- bool app_found = false;
-
- for (app_notification::mojom::AppPtr const& app : handler_->apps_) {
- if (app->id.compare(fake_id) == 0) {
- app_found = true;
- break;
- }
+ for (app_notification::mojom::AppPtr const& app : observer_->apps()) {
+ if (app->id.compare(fake_id) == 0)
+ return true;
}
- return app_found;
+ return false;
}
private:
@@ -124,68 +169,111 @@ class AppNotificationHandlerTest : public testing::Test {
std::unique_ptr<TestingProfile> profile_;
std::unique_ptr<apps::AppServiceProxyChromeOs> app_service_proxy_;
FakeMessageCenterAsh message_center_ash_;
+ std::unique_ptr<AppNotificationHandlerTestObserver> observer_;
};
// Tests for update of in_quiet_mode_ variable by MessageCenterAsh observer
// OnQuietModeChange() after quiet mode state change between true and false.
TEST_F(AppNotificationHandlerTest, TestOnQuietModeChanged) {
ash::MessageCenterAsh::Get()->SetQuietMode(true);
- EXPECT_TRUE(GetHandlerQuietModeState());
+ base::RunLoop().RunUntilIdle();
+ EXPECT_TRUE(observer()->is_quiet_mode());
+ EXPECT_EQ(observer()->quiet_mode_changed(), 1);
ash::MessageCenterAsh::Get()->SetQuietMode(false);
- EXPECT_FALSE(GetHandlerQuietModeState());
+ base::RunLoop().RunUntilIdle();
+ EXPECT_FALSE(observer()->is_quiet_mode());
+ EXPECT_EQ(observer()->quiet_mode_changed(), 2);
}
// Tests for update of in_quiet_mode_ variable after setting state
// with MessageCenterAsh SetQuietMode() true and false.
TEST_F(AppNotificationHandlerTest, TestSetQuietMode) {
SetQuietModeState(true);
- EXPECT_TRUE(GetHandlerQuietModeState());
+ base::RunLoop().RunUntilIdle();
+ EXPECT_TRUE(observer()->is_quiet_mode());
+ EXPECT_EQ(observer()->quiet_mode_changed(), 1);
SetQuietModeState(false);
- EXPECT_FALSE(GetHandlerQuietModeState());
+ base::RunLoop().RunUntilIdle();
+ EXPECT_FALSE(observer()->is_quiet_mode());
+ EXPECT_EQ(observer()->quiet_mode_changed(), 2);
}
-// Tests the filtering of the GetApps() function
-// by creating multiple fake apps with different parameters
-// and confirming that GetApps() only adds the correct ones.
-// GetApps() should only add kArc and kWeb apps
-// with the NOTIFICATIONS permission.
-TEST_F(AppNotificationHandlerTest, TestGetAppsFiltering) {
- CreateAndStoreFakeApp(
- "arcAppWithNotifications", apps::mojom::AppType::kArc,
- static_cast<std::uint32_t>(
- app_management::mojom::ArcPermissionType::NOTIFICATIONS),
- apps::mojom::PermissionValueType::kBool);
-
- CreateAndStoreFakeApp(
- "webAppWithNotifications", apps::mojom::AppType::kWeb,
- static_cast<std::uint32_t>(
- app_management::mojom::PwaPermissionType::NOTIFICATIONS),
- apps::mojom::PermissionValueType::kBool);
+// Tests notifying observers with only kArc and kWeb apps that have the
+// NOTIFICATIONS permission.
+TEST_F(AppNotificationHandlerTest, TestAppListUpdated) {
+ CreateAndStoreFakeApp("arcAppWithNotifications", apps::mojom::AppType::kArc,
+ apps::mojom::PermissionType::kNotifications,
+ apps::mojom::PermissionValueType::kBool,
+ /*permission_value=*/1);
+
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(observer()->app_list_changed(), 1);
+ EXPECT_EQ("arcAppWithNotifications", observer()->recently_updated_app()->id);
+ EXPECT_EQ(1,
+ observer()->recently_updated_app()->notification_permission->value);
+
+ CreateAndStoreFakeApp("webAppWithNotifications", apps::mojom::AppType::kWeb,
+ apps::mojom::PermissionType::kNotifications,
+ apps::mojom::PermissionValueType::kBool,
+ /*permission_value=*/1);
+
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(observer()->app_list_changed(), 2);
+ EXPECT_EQ("webAppWithNotifications", observer()->recently_updated_app()->id);
+ EXPECT_EQ(1,
+ observer()->recently_updated_app()->notification_permission->value);
CreateAndStoreFakeApp("arcAppWithCamera", apps::mojom::AppType::kArc,
- static_cast<std::uint32_t>(
- app_management::mojom::ArcPermissionType::CAMERA),
+ apps::mojom::PermissionType::kCamera,
+ apps::mojom::PermissionValueType::kBool);
+
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(observer()->app_list_changed(), 2);
+
+ CreateAndStoreFakeApp("webAppWithGeolocation", apps::mojom::AppType::kWeb,
+ apps::mojom::PermissionType::kLocation,
apps::mojom::PermissionValueType::kBool);
- CreateAndStoreFakeApp(
- "webAppWithGeolocation", apps::mojom::AppType::kWeb,
- static_cast<std::uint32_t>(
- app_management::mojom::PwaPermissionType::GEOLOCATION),
- apps::mojom::PermissionValueType::kBool);
-
- CreateAndStoreFakeApp(
- "pluginVmAppWithPrinting", apps::mojom::AppType::kPluginVm,
- static_cast<std::uint32_t>(
- app_management::mojom::PluginVmPermissionType::PRINTING),
- apps::mojom::PermissionValueType::kBool);
-
- EXPECT_TRUE(CheckIfFakeAppInList("arcAppWithNotifications"));
- EXPECT_TRUE(CheckIfFakeAppInList("webAppWithNotifications"));
- EXPECT_FALSE(CheckIfFakeAppInList("arcAppWithCamera"));
- EXPECT_FALSE(CheckIfFakeAppInList("webAppWithGeolocation"));
- EXPECT_FALSE(CheckIfFakeAppInList("pluginVmAppWithPrinting"));
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(observer()->app_list_changed(), 2);
+
+ CreateAndStoreFakeApp("pluginVmAppWithPrinting",
+ apps::mojom::AppType::kPluginVm,
+ apps::mojom::PermissionType::kPrinting,
+ apps::mojom::PermissionValueType::kBool);
+
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(observer()->app_list_changed(), 2);
+
+ CreateAndStoreFakeApp("arcAppWithNotifications", apps::mojom::AppType::kArc,
+ apps::mojom::PermissionType::kNotifications,
+ apps::mojom::PermissionValueType::kBool,
+ /*permission_value=*/0);
+
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(observer()->app_list_changed(), 3);
+ EXPECT_EQ("arcAppWithNotifications", observer()->recently_updated_app()->id);
+ EXPECT_EQ(0,
+ observer()->recently_updated_app()->notification_permission->value);
+
+ CreateAndStoreFakeApp("webAppWithNotifications", apps::mojom::AppType::kWeb,
+ apps::mojom::PermissionType::kNotifications,
+ apps::mojom::PermissionValueType::kBool,
+ /*permission_value=*/0);
+
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(observer()->app_list_changed(), 4);
+ EXPECT_EQ("webAppWithNotifications", observer()->recently_updated_app()->id);
+ EXPECT_EQ(0,
+ observer()->recently_updated_app()->notification_permission->value);
+}
+
+TEST_F(AppNotificationHandlerTest, TestNotifyPageReady) {
+ NotifyPageReady();
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(observer()->quiet_mode_changed(), 1);
}
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/mojom/app_notification_handler.mojom b/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/mojom/app_notification_handler.mojom
index 890843935d2..764b3f3f62d 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/mojom/app_notification_handler.mojom
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/os_apps_page/mojom/app_notification_handler.mojom
@@ -18,6 +18,9 @@ struct App {
// this field may be null when this struct is used to signal updates.
string? title;
+ // Whether an app is ready to launch, i.e. installed.
+ apps.mojom.Readiness readiness;
+
// Contains the current permission state of the App's notification.
apps.mojom.Permission notification_permission;
};
@@ -34,12 +37,21 @@ interface AppNotificationsHandler {
// Binds remote and notifies receiver in OsSettings app notifications page UI.
AddObserver(pending_remote<AppNotificationsObserver> observer);
+
+ // Updates the permission of the specified app (via app_id).
+ SetNotificationPermission(string app_id, apps.mojom.Permission permission);
+
+ // Get the list of installed apps.
+ GetApps() => (array<App> apps);
};
// Frontend interface.
// Observer interface that sends remote updates to the App notifications
// subpage in OSSettings.
interface AppNotificationsObserver {
+ // Notifies clients when an app has been added, removed, or its notification
+ // permission changed.
+ OnNotificationAppChanged(App app);
// Notifies client when the DoNotDisturb (QuietMode) state changes.
OnQuietModeChanged(bool enabled);
}; \ No newline at end of file
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager.h b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager.h
index b7f28fc1a3e..f4b2087da70 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager.h
@@ -8,6 +8,8 @@
#include <memory>
#include "base/gtest_prod_util.h"
+// TODO(https://crbug.com/1164001): move to forward declaration.
+#include "chrome/browser/ash/android_sms/android_sms_service.h"
// TODO(https://crbug.com/1164001): forward declare when moved ash
#include "chrome/browser/ash/kerberos/kerberos_credentials_manager.h"
#include "components/keyed_service/core/keyed_service.h"
@@ -37,10 +39,6 @@ namespace chromeos {
class CupsPrintersManager;
-namespace android_sms {
-class AndroidSmsService;
-} // namespace android_sms
-
namespace local_search_service {
class LocalSearchServiceProxy;
} // namespace local_search_service
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_factory.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_factory.cc
index fd3d2f2e372..79ab0d6ff45 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_factory.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_factory.cc
@@ -4,12 +4,13 @@
#include "chrome/browser/ui/webui/settings/chromeos/os_settings_manager_factory.h"
+#include "chrome/browser/apps/app_service/app_service_proxy_chromeos.h"
#include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
+#include "chrome/browser/ash/android_sms/android_sms_service_factory.h"
#include "chrome/browser/ash/kerberos/kerberos_credentials_manager_factory.h"
+#include "chrome/browser/ash/multidevice_setup/multidevice_setup_client_factory.h"
+#include "chrome/browser/ash/phonehub/phone_hub_manager_factory.h"
#include "chrome/browser/ash/profiles/profile_helper.h"
-#include "chrome/browser/chromeos/android_sms/android_sms_service_factory.h"
-#include "chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.h"
-#include "chrome/browser/chromeos/phonehub/phone_hub_manager_factory.h"
#include "chrome/browser/chromeos/printing/cups_printers_manager_factory.h"
#include "chrome/browser/profiles/incognito_helpers.h"
#include "chrome/browser/profiles/profile.h"
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_unittest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_unittest.cc
index df0fc05b939..7958314fd72 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_unittest.cc
@@ -9,11 +9,11 @@
#include "base/no_destructor.h"
#include "base/test/metrics/histogram_enum_reader.h"
#include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
+#include "chrome/browser/ash/android_sms/android_sms_service_factory.h"
#include "chrome/browser/ash/kerberos/kerberos_credentials_manager_factory.h"
+#include "chrome/browser/ash/multidevice_setup/multidevice_setup_client_factory.h"
+#include "chrome/browser/ash/phonehub/phone_hub_manager_factory.h"
#include "chrome/browser/ash/profiles/profile_helper.h"
-#include "chrome/browser/chromeos/android_sms/android_sms_service_factory.h"
-#include "chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.h"
-#include "chrome/browser/chromeos/phonehub/phone_hub_manager_factory.h"
#include "chrome/browser/chromeos/printing/cups_printers_manager_factory.h"
#include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/browser/supervised_user/supervised_user_service_factory.h"
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section.cc
index f0211f64dac..e4d45de348d 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section.cc
@@ -74,11 +74,9 @@ std::string OsSettingsSection::GetDefaultModifiedUrl(
mojom::SearchResultType type,
OsSettingsIdentifier id,
const std::string& url_to_modify) {
- if (!chromeos::features::IsDeepLinkingEnabled() ||
- type != mojom::SearchResultType::kSetting) {
- // Default case for static URLs which do not need to be modified.
+ // Default case for static URLs which do not need to be modified.
+ if (type != mojom::SearchResultType::kSetting)
return url_to_modify;
- }
std::stringstream ss;
ss << url_to_modify;
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section.h b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section.h
index a7f7a76db39..e97cb22990a 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section.h
@@ -9,6 +9,7 @@
#include <vector>
#include "base/containers/span.h"
+#include "base/gtest_prod_util.h"
#include "base/values.h"
#include "chrome/browser/ui/webui/settings/chromeos/constants/routes.mojom.h"
#include "chrome/browser/ui/webui/settings/chromeos/constants/setting.mojom.h"
@@ -159,13 +160,10 @@ class OsSettingsSection {
SearchTagRegistry* registry() { return search_tag_registry_; }
private:
- FRIEND_TEST_ALL_PREFIXES(OsSettingsSectionTest, SectionWithFlag);
- FRIEND_TEST_ALL_PREFIXES(OsSettingsSectionTest, SectionNoFlag);
- FRIEND_TEST_ALL_PREFIXES(OsSettingsSectionTest, SubpageWithFlag);
- FRIEND_TEST_ALL_PREFIXES(OsSettingsSectionTest, SubpageNoFlag);
- FRIEND_TEST_ALL_PREFIXES(OsSettingsSectionTest, SettingWithFlag);
- FRIEND_TEST_ALL_PREFIXES(OsSettingsSectionTest, SettingExistingQueryWithFlag);
- FRIEND_TEST_ALL_PREFIXES(OsSettingsSectionTest, SettingNoFlag);
+ FRIEND_TEST_ALL_PREFIXES(OsSettingsSectionTest, Section);
+ FRIEND_TEST_ALL_PREFIXES(OsSettingsSectionTest, Subpage);
+ FRIEND_TEST_ALL_PREFIXES(OsSettingsSectionTest, Setting);
+ FRIEND_TEST_ALL_PREFIXES(OsSettingsSectionTest, SettingExistingQuery);
static constexpr char kSettingIdUrlParam[] = "settingId";
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section_unittest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section_unittest.cc
index 747c7c3277b..a6a3ce15f5c 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_section_unittest.cc
@@ -4,19 +4,13 @@
#include "chrome/browser/ui/webui/settings/chromeos/os_settings_section.h"
-#include "ash/constants/ash_features.h"
-#include "base/test/scoped_feature_list.h"
#include "chrome/browser/ui/webui/settings/chromeos/constants/setting.mojom.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace chromeos {
namespace settings {
-TEST(OsSettingsSectionTest, SectionWithFlag) {
- base::test::ScopedFeatureList scoped_feature_list;
- scoped_feature_list.InitAndEnableFeature(
- chromeos::features::kOsSettingsDeepLinking);
-
+TEST(OsSettingsSectionTest, Section) {
// Sections should not incur modification.
EXPECT_EQ("internet", OsSettingsSection::GetDefaultModifiedUrl(
/*type=*/mojom::SearchResultType::kSection,
@@ -24,23 +18,7 @@ TEST(OsSettingsSectionTest, SectionWithFlag) {
/*url_to_modify=*/"internet"));
}
-TEST(OsSettingsSectionTest, SectionNoFlag) {
- base::test::ScopedFeatureList scoped_feature_list;
- scoped_feature_list.InitAndDisableFeature(
- chromeos::features::kOsSettingsDeepLinking);
-
- // Deep linking disabled, should not modify.
- EXPECT_EQ("internet", OsSettingsSection::GetDefaultModifiedUrl(
- /*type=*/mojom::SearchResultType::kSection,
- /*id=*/{.section = mojom::Section::kNetwork},
- /*url_to_modify=*/"internet"));
-}
-
-TEST(OsSettingsSectionTest, SubpageWithFlag) {
- base::test::ScopedFeatureList scoped_feature_list;
- scoped_feature_list.InitAndEnableFeature(
- chromeos::features::kOsSettingsDeepLinking);
-
+TEST(OsSettingsSectionTest, Subpage) {
// Subpages should not incur modification.
EXPECT_EQ("networks?type=WiFi",
OsSettingsSection::GetDefaultModifiedUrl(
@@ -49,24 +27,7 @@ TEST(OsSettingsSectionTest, SubpageWithFlag) {
/*url_to_modify=*/"networks?type=WiFi"));
}
-TEST(OsSettingsSectionTest, SubpageNoFlag) {
- base::test::ScopedFeatureList scoped_feature_list;
- scoped_feature_list.InitAndDisableFeature(
- chromeos::features::kOsSettingsDeepLinking);
-
- // Deep linking disabled, should not modify.
- EXPECT_EQ("networks?type=WiFi",
- OsSettingsSection::GetDefaultModifiedUrl(
- /*type=*/mojom::SearchResultType::kSubpage,
- /*id=*/{.subpage = mojom::Subpage::kWifiNetworks},
- /*url_to_modify=*/"networks?type=WiFi"));
-}
-
-TEST(OsSettingsSectionTest, SettingWithFlag) {
- base::test::ScopedFeatureList scoped_feature_list;
- scoped_feature_list.InitAndEnableFeature(
- chromeos::features::kOsSettingsDeepLinking);
-
+TEST(OsSettingsSectionTest, Setting) {
// Settings should have settingId added
EXPECT_EQ("networks?settingId=4",
OsSettingsSection::GetDefaultModifiedUrl(
@@ -75,11 +36,7 @@ TEST(OsSettingsSectionTest, SettingWithFlag) {
/*url_to_modify=*/"networks"));
}
-TEST(OsSettingsSectionTest, SettingExistingQueryWithFlag) {
- base::test::ScopedFeatureList scoped_feature_list;
- scoped_feature_list.InitAndEnableFeature(
- chromeos::features::kOsSettingsDeepLinking);
-
+TEST(OsSettingsSectionTest, SettingExistingQuery) {
// Settings with existing query parameters should have settingId added.
EXPECT_EQ("networks?type=WiFi&settingId=4",
OsSettingsSection::GetDefaultModifiedUrl(
@@ -88,18 +45,5 @@ TEST(OsSettingsSectionTest, SettingExistingQueryWithFlag) {
/*url_to_modify=*/"networks?type=WiFi"));
}
-TEST(OsSettingsSectionTest, SettingNoFlag) {
- base::test::ScopedFeatureList scoped_feature_list;
- scoped_feature_list.InitAndDisableFeature(
- chromeos::features::kOsSettingsDeepLinking);
-
- // Deep linking disabled, should not modify.
- EXPECT_EQ("networks?type=WiFi",
- OsSettingsSection::GetDefaultModifiedUrl(
- /*type=*/mojom::SearchResultType::kSetting,
- /*id=*/{.setting = mojom::Setting::kWifiOnOff},
- /*url_to_modify=*/"networks?type=WiFi"));
-}
-
} // namespace settings
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_sections.h b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_sections.h
index 6cd21208a67..39d66909fd0 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_sections.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_sections.h
@@ -8,6 +8,8 @@
#include <unordered_map>
#include <vector>
+// TODO(https://crbug.com/1164001): move to forward declaration.
+#include "chrome/browser/ash/android_sms/android_sms_service.h"
// TODO(https://crbug.com/1164001): forward declare when moved ash
#include "chrome/browser/ash/kerberos/kerberos_credentials_manager.h"
#include "chrome/browser/ui/webui/settings/chromeos/constants/routes.mojom.h"
@@ -33,10 +35,6 @@ namespace chromeos {
class CupsPrintersManager;
-namespace android_sms {
-class AndroidSmsService;
-} // namespace android_sms
-
namespace multidevice_setup {
class MultiDeviceSetupClient;
} // namespace multidevice_setup
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc
index 5bc33396cb2..557d1c036af 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc
@@ -81,8 +81,8 @@ OSSettingsUI::~OSSettingsUI() {
// Note: OSSettingsUI lifetime is tied to the lifetime of the browser window.
base::UmaHistogramCustomTimes("ChromeOS.Settings.WindowOpenDuration",
base::TimeTicks::Now() - time_when_opened_,
- /*min=*/base::TimeDelta::FromMicroseconds(500),
- /*max=*/base::TimeDelta::FromHours(1),
+ /*min=*/base::Microseconds(500),
+ /*max=*/base::Hours(1),
/*buckets=*/50);
}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.h b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.h
index 368c2de04e9..c21b89de3f0 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.h
@@ -41,6 +41,10 @@ class OSSettingsUI : public ui::MojoWebUIController {
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
explicit OSSettingsUI(content::WebUI* web_ui);
+
+ OSSettingsUI(const OSSettingsUI&) = delete;
+ OSSettingsUI& operator=(const OSSettingsUI&) = delete;
+
~OSSettingsUI() override;
// Instantiates implementor of the mojom::CellularSetup mojo interface
@@ -108,8 +112,6 @@ class OSSettingsUI : public ui::MojoWebUIController {
app_management_page_handler_factory_;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(OSSettingsUI);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/parental_controls_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/parental_controls_handler.cc
index 6d3245092bd..83e7ef8c54c 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/parental_controls_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/parental_controls_handler.cc
@@ -35,13 +35,13 @@ ParentalControlsHandler::ParentalControlsHandler(Profile* profile)
ParentalControlsHandler::~ParentalControlsHandler() = default;
void ParentalControlsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showAddSupervisionDialog",
base::BindRepeating(
&ParentalControlsHandler::HandleShowAddSupervisionDialog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"launchFamilyLinkSettings",
base::BindRepeating(
&ParentalControlsHandler::HandleLaunchFamilyLinkSettings,
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/parental_controls_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/parental_controls_handler.h
index cb498d3db33..94da0a98874 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/parental_controls_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/parental_controls_handler.h
@@ -17,6 +17,10 @@ namespace settings {
class ParentalControlsHandler : public ::settings::SettingsPageUIHandler {
public:
explicit ParentalControlsHandler(Profile* profile);
+
+ ParentalControlsHandler(const ParentalControlsHandler&) = delete;
+ ParentalControlsHandler& operator=(const ParentalControlsHandler&) = delete;
+
~ParentalControlsHandler() override;
protected:
@@ -33,8 +37,6 @@ class ParentalControlsHandler : public ::settings::SettingsPageUIHandler {
void HandleLaunchFamilyLinkSettings(const base::ListValue* args);
Profile* profile_;
-
- DISALLOW_COPY_AND_ASSIGN(ParentalControlsHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/people_section.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/people_section.cc
index de1fbb976ed..e9d474662e5 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/people_section.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/people_section.cc
@@ -14,7 +14,6 @@
#include "base/strings/strcat.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/account_manager_facade_factory.h"
#include "chrome/browser/ash/account_manager/account_manager_util.h"
#include "chrome/browser/ash/login/quick_unlock/quick_unlock_utils.h"
#include "chrome/browser/ash/profiles/profile_helper.h"
@@ -40,6 +39,7 @@
#include "chrome/grit/chromium_strings.h"
#include "chrome/grit/generated_resources.h"
#include "components/account_manager_core/account_manager_facade.h"
+#include "components/account_manager_core/chromeos/account_manager_facade_factory.h"
#include "components/account_manager_core/pref_names.h"
#include "components/google/core/common/google_util.h"
#include "components/omnibox/common/omnibox_features.h"
@@ -613,11 +613,6 @@ void AddSyncControlsStrings(content::WebUIDataSource* html_source) {
};
html_source->AddLocalizedStrings(kLocalizedStrings);
- // TODO(https://crbug.com/1227694): Remove this after migrating all JS usages
- // of splitSettingsSyncEnabled to syncSettingsCategorizationEnabled and
- // syncConsentOptionalEnabled.
- html_source->AddBoolean("splitSettingsSyncEnabled",
- chromeos::features::IsSplitSettingsSyncEnabled());
html_source->AddBoolean(
"syncSettingsCategorizationEnabled",
chromeos::features::IsSyncSettingsCategorizationEnabled());
@@ -696,13 +691,13 @@ void AddParentalControlStrings(content::WebUIDataSource* html_source,
bool IsSameAccount(const ::account_manager::AccountKey& account_key,
const AccountId& account_id) {
- switch (account_key.account_type) {
+ switch (account_key.account_type()) {
case account_manager::AccountType::kGaia:
return account_id.GetAccountType() == AccountType::GOOGLE &&
- account_id.GetGaiaId() == account_key.id;
+ account_id.GetGaiaId() == account_key.id();
case account_manager::AccountType::kActiveDirectory:
return account_id.GetAccountType() == AccountType::ACTIVE_DIRECTORY &&
- account_id.GetObjGuid() == account_key.id;
+ account_id.GetObjGuid() == account_key.id();
}
}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/peripheral_data_access_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/peripheral_data_access_handler.cc
index 05de44a349d..7cf52ad7470 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/peripheral_data_access_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/peripheral_data_access_handler.cc
@@ -73,13 +73,13 @@ PeripheralDataAccessHandler::PeripheralDataAccessHandler() {
PeripheralDataAccessHandler::~PeripheralDataAccessHandler() = default;
void PeripheralDataAccessHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"isThunderboltSupported",
base::BindRepeating(
&PeripheralDataAccessHandler::HandleThunderboltSupported,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getPolicyState",
base::BindRepeating(&PeripheralDataAccessHandler::HandleGetPolicyState,
base::Unretained(this)));
@@ -92,7 +92,7 @@ void PeripheralDataAccessHandler::OnJavascriptDisallowed() {}
void PeripheralDataAccessHandler::HandleThunderboltSupported(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1u, args->GetSize());
+ CHECK_EQ(1u, args->GetList().size());
const std::string& callback_id = args->GetList()[0].GetString();
// PathExist is a blocking call. PostTask it and wait on the result.
@@ -106,7 +106,7 @@ void PeripheralDataAccessHandler::HandleThunderboltSupported(
void PeripheralDataAccessHandler::HandleGetPolicyState(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1u, args->GetSize());
+ CHECK_EQ(1u, args->GetList().size());
const std::string& callback_id = args->GetList()[0].GetString();
const std::string& pref_name = InstallAttributes::Get()->IsEnterpriseManaged()
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.cc
index 10e938f32be..ec46723d7d1 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.cc
@@ -24,12 +24,12 @@ PluginVmHandler::PluginVmHandler(Profile* profile) : profile_(profile) {}
PluginVmHandler::~PluginVmHandler() = default;
void PluginVmHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"isRelaunchNeededForNewPermissions",
base::BindRepeating(
&PluginVmHandler::HandleIsRelaunchNeededForNewPermissions,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"relaunchPluginVm",
base::BindRepeating(&PluginVmHandler::HandleRelaunchPluginVm,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.h
index ab1715e8727..93ae19c11be 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.h
@@ -16,6 +16,10 @@ namespace settings {
class PluginVmHandler : public ::settings::SettingsPageUIHandler {
public:
explicit PluginVmHandler(Profile* profile);
+
+ PluginVmHandler(const PluginVmHandler&) = delete;
+ PluginVmHandler& operator=(const PluginVmHandler&) = delete;
+
~PluginVmHandler() override;
// SettingsPageUIHandler
@@ -33,8 +37,6 @@ class PluginVmHandler : public ::settings::SettingsPageUIHandler {
Profile* profile_;
// weak_ptr_factory_ should always be last member.
base::WeakPtrFactory<PluginVmHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(PluginVmHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/privacy_section.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/privacy_section.cc
index 135272cee4e..a7a5b306959 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/privacy_section.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/privacy_section.cc
@@ -10,6 +10,7 @@
#include "base/metrics/histogram_functions.h"
#include "base/no_destructor.h"
#include "build/branding_buildflags.h"
+#include "build/chromeos_buildflags.h"
#include "chrome/browser/ash/login/quick_unlock/quick_unlock_utils.h"
#include "chrome/browser/ui/webui/settings/chromeos/os_settings_features_util.h"
#include "chrome/browser/ui/webui/settings/chromeos/peripheral_data_access_handler.h"
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/quick_unlock_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/quick_unlock_handler.cc
index 3e068749369..bdba515f817 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/quick_unlock_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/quick_unlock_handler.cc
@@ -22,11 +22,11 @@ QuickUnlockHandler::QuickUnlockHandler(Profile* profile,
QuickUnlockHandler::~QuickUnlockHandler() = default;
void QuickUnlockHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"RequestPinLoginState",
base::BindRepeating(&QuickUnlockHandler::HandleRequestPinLoginState,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"RequestQuickUnlockDisabledByPolicy",
base::BindRepeating(
&QuickUnlockHandler::HandleQuickUnlockDisabledByPolicy,
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker.cc
index c0717cf01e8..7f568b21376 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker.cc
@@ -13,20 +13,18 @@ namespace {
// The maximum amount of time that the settings window can be blurred to be
// considered short enough for the "first change" metric.
-constexpr base::TimeDelta kShortBlurTimeLimit = base::TimeDelta::FromMinutes(1);
+constexpr base::TimeDelta kShortBlurTimeLimit = base::Minutes(1);
// The minimum amount of time between a setting change and a subsequent setting
// change. If two changes occur les than this amount of time from each other,
// they are ignored by metrics. See https://crbug.com/1073714 for details.
-constexpr base::TimeDelta kMinSubsequentChange =
- base::TimeDelta::FromMilliseconds(200);
+constexpr base::TimeDelta kMinSubsequentChange = base::Milliseconds(200);
// Min/max values for the duration metrics. Note that these values are tied to
// the metrics defined below; if these ever change, the metric names must also
// be updated.
-constexpr base::TimeDelta kMinDurationMetric =
- base::TimeDelta::FromMilliseconds(100);
-constexpr base::TimeDelta kMaxDurationMetric = base::TimeDelta::FromMinutes(10);
+constexpr base::TimeDelta kMinDurationMetric = base::Milliseconds(100);
+constexpr base::TimeDelta kMaxDurationMetric = base::Minutes(10);
void LogDurationMetric(const char* metric_name, base::TimeDelta duration) {
base::UmaHistogramCustomTimes(metric_name, duration, kMinDurationMetric,
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker_unittest.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker_unittest.cc
index 88e13c072e5..74f716ec095 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker_unittest.cc
@@ -29,7 +29,7 @@ TEST_F(PerSessionSettingsUserActionTrackerTest, TestRecordMetrics) {
tracker_.RecordClick();
tracker_.RecordNavigation();
tracker_.RecordSearch();
- task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+ task_environment_.FastForwardBy(base::Seconds(10));
tracker_.RecordSettingChange();
// The "first change" metrics should have been logged.
@@ -44,7 +44,7 @@ TEST_F(PerSessionSettingsUserActionTrackerTest, TestRecordMetrics) {
/*count=*/1);
histogram_tester_.ExpectTimeBucketCount(
"ChromeOS.Settings.TimeUntilChange.FirstChange",
- /*sample=*/base::TimeDelta::FromSeconds(10),
+ /*sample=*/base::Seconds(10),
/*count=*/1);
// Without leaving the page, perform some more tasks, and change another
@@ -52,7 +52,7 @@ TEST_F(PerSessionSettingsUserActionTrackerTest, TestRecordMetrics) {
tracker_.RecordClick();
tracker_.RecordNavigation();
tracker_.RecordSearch();
- task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+ task_environment_.FastForwardBy(base::Seconds(10));
tracker_.RecordSettingChange();
// The "subsequent change" metrics should have been logged.
@@ -67,7 +67,7 @@ TEST_F(PerSessionSettingsUserActionTrackerTest, TestRecordMetrics) {
/*count=*/1);
histogram_tester_.ExpectTimeBucketCount(
"ChromeOS.Settings.TimeUntilChange.SubsequentChange",
- /*sample=*/base::TimeDelta::FromSeconds(10),
+ /*sample=*/base::Seconds(10),
/*count=*/1);
// Repeat this, but only after 100ms. This is lower than the minimum value
@@ -75,7 +75,7 @@ TEST_F(PerSessionSettingsUserActionTrackerTest, TestRecordMetrics) {
tracker_.RecordClick();
tracker_.RecordNavigation();
tracker_.RecordSearch();
- task_environment_.FastForwardBy(base::TimeDelta::FromMilliseconds(100));
+ task_environment_.FastForwardBy(base::Milliseconds(100));
tracker_.RecordSettingChange();
// No additional logging should have occurred, so make the same verifications
@@ -91,14 +91,14 @@ TEST_F(PerSessionSettingsUserActionTrackerTest, TestRecordMetrics) {
/*count=*/1);
histogram_tester_.ExpectTimeBucketCount(
"ChromeOS.Settings.TimeUntilChange.SubsequentChange",
- /*sample=*/base::TimeDelta::FromSeconds(10),
+ /*sample=*/base::Seconds(10),
/*count=*/1);
// Repeat this once more, and verify that the counts increased.
tracker_.RecordClick();
tracker_.RecordNavigation();
tracker_.RecordSearch();
- task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+ task_environment_.FastForwardBy(base::Seconds(10));
tracker_.RecordSettingChange();
// The "subsequent change" metrics should have been logged.
@@ -113,7 +113,7 @@ TEST_F(PerSessionSettingsUserActionTrackerTest, TestRecordMetrics) {
/*count=*/2);
histogram_tester_.ExpectTimeBucketCount(
"ChromeOS.Settings.TimeUntilChange.SubsequentChange",
- /*sample=*/base::TimeDelta::FromSeconds(10),
+ /*sample=*/base::Seconds(10),
/*count=*/2);
}
@@ -121,54 +121,54 @@ TEST_F(PerSessionSettingsUserActionTrackerTest, TestBlurAndFocus) {
// Focus the page, click, and change a setting.
tracker_.RecordPageFocus();
tracker_.RecordClick();
- task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+ task_environment_.FastForwardBy(base::Seconds(1));
tracker_.RecordSettingChange();
histogram_tester_.ExpectTotalCount(
"ChromeOS.Settings.NumClicksUntilChange.FirstChange",
/*count=*/1);
histogram_tester_.ExpectTimeBucketCount(
"ChromeOS.Settings.TimeUntilChange.FirstChange",
- /*sample=*/base::TimeDelta::FromSeconds(1),
+ /*sample=*/base::Seconds(1),
/*count=*/1);
// Blur for 59 seconds (not quite a minute), click, and change a setting.
// Since the blur was under a minute, this should count for the "subsequent
// change" metrics.
tracker_.RecordPageBlur();
- task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(59));
+ task_environment_.FastForwardBy(base::Seconds(59));
tracker_.RecordPageFocus();
tracker_.RecordClick();
tracker_.RecordSettingChange();
histogram_tester_.ExpectTimeBucketCount(
"ChromeOS.Settings.BlurredWindowDuration",
- /*sample=*/base::TimeDelta::FromSeconds(59),
+ /*sample=*/base::Seconds(59),
/*count=*/1);
histogram_tester_.ExpectTotalCount(
"ChromeOS.Settings.NumClicksUntilChange.SubsequentChange",
/*count=*/1);
histogram_tester_.ExpectTimeBucketCount(
"ChromeOS.Settings.TimeUntilChange.SubsequentChange",
- /*sample=*/base::TimeDelta::FromSeconds(59),
+ /*sample=*/base::Seconds(59),
/*count=*/1);
// Now, blur for a full minute, click, and change a setting. Since the blur
// was a full minute, this should count for the "first change" metrics.
tracker_.RecordPageBlur();
- task_environment_.FastForwardBy(base::TimeDelta::FromMinutes(1));
+ task_environment_.FastForwardBy(base::Minutes(1));
tracker_.RecordPageFocus();
- task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(5));
+ task_environment_.FastForwardBy(base::Seconds(5));
tracker_.RecordClick();
tracker_.RecordSettingChange();
histogram_tester_.ExpectTimeBucketCount(
"ChromeOS.Settings.BlurredWindowDuration",
- /*sample=*/base::TimeDelta::FromMinutes(1),
+ /*sample=*/base::Minutes(1),
/*count=*/2);
histogram_tester_.ExpectTotalCount(
"ChromeOS.Settings.NumClicksUntilChange.FirstChange",
/*count=*/2);
histogram_tester_.ExpectTimeBucketCount(
"ChromeOS.Settings.TimeUntilChange.FirstChange",
- /*sample=*/base::TimeDelta::FromSeconds(5),
+ /*sample=*/base::Seconds(5),
/*count=*/1);
}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/search_section.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/search_section.cc
index 5192fdc7e13..84fc4034be6 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/search_section.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/search_section.cc
@@ -36,8 +36,7 @@ namespace settings {
namespace {
bool ShouldShowQuickAnswersSettings() {
- return ash::features::IsQuickAnswersV2Enabled() &&
- ash::QuickAnswersState::Get() &&
+ return ash::QuickAnswersState::Get() &&
ash::QuickAnswersState::Get()->is_eligible();
}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/settings_user_action_tracker.h b/chromium/chrome/browser/ui/webui/settings/chromeos/settings_user_action_tracker.h
index cadc29d345f..f05770d09a2 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/settings_user_action_tracker.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/settings_user_action_tracker.h
@@ -7,6 +7,7 @@
#include <memory>
+#include "base/gtest_prod_util.h"
#include "chrome/browser/ui/webui/settings/chromeos/constants/setting.mojom.h"
#include "chrome/browser/ui/webui/settings/chromeos/search/per_session_settings_user_action_tracker.h"
#include "chrome/browser/ui/webui/settings/chromeos/search/user_action_recorder.mojom.h"
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/switch_access_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/switch_access_handler.cc
index e9ac388a421..bfefe79b86a 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/switch_access_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/switch_access_handler.cc
@@ -86,18 +86,18 @@ SwitchAccessHandler::~SwitchAccessHandler() {
}
void SwitchAccessHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"refreshAssignmentsFromPrefs",
base::BindRepeating(
&SwitchAccessHandler::HandleRefreshAssignmentsFromPrefs,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"notifySwitchAccessActionAssignmentPaneActive",
base::BindRepeating(
&SwitchAccessHandler::
HandleNotifySwitchAccessActionAssignmentPaneActive,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"notifySwitchAccessActionAssignmentPaneInactive",
base::BindRepeating(
&SwitchAccessHandler::
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/tts_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/tts_handler.cc
index 8033326fe93..eb38d3a79b6 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/tts_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/tts_handler.cc
@@ -124,7 +124,7 @@ void TtsHandler::OnTtsEvent(content::TtsUtterance* utterance,
}
void TtsHandler::HandlePreviewTtsVoice(const base::ListValue* args) {
- DCHECK_EQ(2U, args->GetSize());
+ DCHECK_EQ(2U, args->GetList().size());
std::string text;
std::string voice_id;
args->GetString(0, &text);
@@ -156,18 +156,18 @@ void TtsHandler::HandlePreviewTtsVoice(const base::ListValue* args) {
}
void TtsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getAllTtsVoiceData",
base::BindRepeating(&TtsHandler::HandleGetAllTtsVoiceData,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getTtsExtensions",
base::BindRepeating(&TtsHandler::HandleGetTtsExtensions,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"previewTtsVoice", base::BindRepeating(&TtsHandler::HandlePreviewTtsVoice,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"wakeTtsEngine",
base::BindRepeating(&TtsHandler::WakeTtsEngine, base::Unretained(this)));
}
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/tts_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/tts_handler.h
index 09084c53541..2ec989d84d3 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/tts_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/tts_handler.h
@@ -17,6 +17,10 @@ class TtsHandler : public SettingsPageUIHandler,
public content::UtteranceEventDelegate {
public:
TtsHandler();
+
+ TtsHandler(const TtsHandler&) = delete;
+ TtsHandler& operator=(const TtsHandler&) = delete;
+
~TtsHandler() override;
void HandleGetAllTtsVoiceData(const base::ListValue* args);
@@ -46,8 +50,6 @@ class TtsHandler : public SettingsPageUIHandler,
void RemoveTtsControllerDelegates();
base::WeakPtrFactory<TtsHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(TtsHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/wallpaper_handler.cc b/chromium/chrome/browser/ui/webui/settings/chromeos/wallpaper_handler.cc
index eb5b8964043..8652aabad27 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/wallpaper_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/wallpaper_handler.cc
@@ -19,17 +19,17 @@ void WallpaperHandler::OnJavascriptAllowed() {}
void WallpaperHandler::OnJavascriptDisallowed() {}
void WallpaperHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"openWallpaperManager",
base::BindRepeating(&WallpaperHandler::HandleOpenWallpaperManager,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"isWallpaperSettingVisible",
base::BindRepeating(&WallpaperHandler::HandleIsWallpaperSettingVisible,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"isWallpaperPolicyControlled",
base::BindRepeating(&WallpaperHandler::HandleIsWallpaperPolicyControlled,
base::Unretained(this)));
@@ -37,7 +37,7 @@ void WallpaperHandler::RegisterMessages() {
void WallpaperHandler::HandleIsWallpaperSettingVisible(
const base::ListValue* args) {
- CHECK_EQ(args->GetSize(), 1U);
+ CHECK_EQ(args->GetList().size(), 1U);
ResolveCallback(
args->GetList()[0],
WallpaperControllerClientImpl::Get()->ShouldShowWallpaperSetting());
@@ -45,7 +45,7 @@ void WallpaperHandler::HandleIsWallpaperSettingVisible(
void WallpaperHandler::HandleIsWallpaperPolicyControlled(
const base::ListValue* args) {
- CHECK_EQ(args->GetSize(), 1U);
+ CHECK_EQ(args->GetList().size(), 1U);
bool result = WallpaperControllerClientImpl::Get()
->IsActiveUserWallpaperControlledByPolicy();
ResolveCallback(args->GetList()[0], result);
diff --git a/chromium/chrome/browser/ui/webui/settings/chromeos/wallpaper_handler.h b/chromium/chrome/browser/ui/webui/settings/chromeos/wallpaper_handler.h
index f6bd13d61de..e13d88fe6a2 100644
--- a/chromium/chrome/browser/ui/webui/settings/chromeos/wallpaper_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/chromeos/wallpaper_handler.h
@@ -19,6 +19,10 @@ namespace settings {
class WallpaperHandler : public ::settings::SettingsPageUIHandler {
public:
WallpaperHandler();
+
+ WallpaperHandler(const WallpaperHandler&) = delete;
+ WallpaperHandler& operator=(const WallpaperHandler&) = delete;
+
~WallpaperHandler() override;
// SettingsPageUIHandler implementation.
@@ -38,8 +42,6 @@ class WallpaperHandler : public ::settings::SettingsPageUIHandler {
// Helper function to resolve the Javascript callback.
void ResolveCallback(const base::Value& callback_id, bool result);
-
- DISALLOW_COPY_AND_ASSIGN(WallpaperHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/custom_home_pages_table_model.h b/chromium/chrome/browser/ui/webui/settings/custom_home_pages_table_model.h
index a4d0bf0393b..2f6aab60e7e 100644
--- a/chromium/chrome/browser/ui/webui/settings/custom_home_pages_table_model.h
+++ b/chromium/chrome/browser/ui/webui/settings/custom_home_pages_table_model.h
@@ -32,6 +32,11 @@ class TableModelObserver;
class CustomHomePagesTableModel : public ui::TableModel {
public:
explicit CustomHomePagesTableModel(Profile* profile);
+
+ CustomHomePagesTableModel(const CustomHomePagesTableModel&) = delete;
+ CustomHomePagesTableModel& operator=(const CustomHomePagesTableModel&) =
+ delete;
+
~CustomHomePagesTableModel() override;
// Sets the set of urls that this model contains.
@@ -112,8 +117,6 @@ class CustomHomePagesTableModel : public ui::TableModel {
// Used to keep track of when it's time to update the observer when loading
// multiple titles.
int num_outstanding_title_lookups_;
-
- DISALLOW_COPY_AND_ASSIGN(CustomHomePagesTableModel);
};
#endif // CHROME_BROWSER_UI_WEBUI_SETTINGS_CUSTOM_HOME_PAGES_TABLE_MODEL_H_
diff --git a/chromium/chrome/browser/ui/webui/settings/downloads_handler.cc b/chromium/chrome/browser/ui/webui/settings/downloads_handler.cc
index 667410c6925..6a2e31e6f76 100644
--- a/chromium/chrome/browser/ui/webui/settings/downloads_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/downloads_handler.cc
@@ -42,26 +42,26 @@ DownloadsHandler::~DownloadsHandler() {
}
void DownloadsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializeDownloads",
base::BindRepeating(&DownloadsHandler::HandleInitialize,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"resetAutoOpenFileTypes",
base::BindRepeating(&DownloadsHandler::HandleResetAutoOpenFileTypes,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"selectDownloadLocation",
base::BindRepeating(&DownloadsHandler::HandleSelectDownloadLocation,
base::Unretained(this)));
#if BUILDFLAG(IS_CHROMEOS_ASH)
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getDownloadLocationText",
base::BindRepeating(&DownloadsHandler::HandleGetDownloadLocationText,
base::Unretained(this)));
#endif
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setDownloadsConnectionAccountLink",
base::BindRepeating(
&DownloadsHandler::HandleSetDownloadsConnectionAccountLink,
@@ -145,7 +145,7 @@ void DownloadsHandler::FileSelectionCanceled(void* params) {
void DownloadsHandler::HandleGetDownloadLocationText(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
std::string callback_id;
std::string path;
CHECK(args->GetString(0, &callback_id));
@@ -187,7 +187,7 @@ void DownloadsHandler::SendDownloadsConnectionPolicyToJavascript() {
void DownloadsHandler::HandleSetDownloadsConnectionAccountLink(
const base::ListValue* args) {
DCHECK(IsDownloadsConnectionPolicyEnabled());
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
bool enable_link = args->GetList()[0].GetBool();
ec::SetFileSystemConnectorAccountLinkForSettingsPage(
enable_link, profile_,
diff --git a/chromium/chrome/browser/ui/webui/settings/downloads_handler.h b/chromium/chrome/browser/ui/webui/settings/downloads_handler.h
index 2ee531c668e..a6e7bbff8b1 100644
--- a/chromium/chrome/browser/ui/webui/settings/downloads_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/downloads_handler.h
@@ -5,6 +5,7 @@
#ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_DOWNLOADS_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_SETTINGS_DOWNLOADS_HANDLER_H_
+#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
@@ -20,6 +21,10 @@ class DownloadsHandler : public SettingsPageUIHandler,
public ui::SelectFileDialog::Listener {
public:
explicit DownloadsHandler(Profile* profile);
+
+ DownloadsHandler(const DownloadsHandler&) = delete;
+ DownloadsHandler& operator=(const DownloadsHandler&) = delete;
+
~DownloadsHandler() override;
// SettingsPageUIHandler implementation.
@@ -79,8 +84,6 @@ class DownloadsHandler : public SettingsPageUIHandler,
scoped_refptr<ui::SelectFileDialog> select_folder_dialog_;
base::WeakPtrFactory<DownloadsHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(DownloadsHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/downloads_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/downloads_handler_unittest.cc
index 204b58a4628..89484f7e885 100644
--- a/chromium/chrome/browser/ui/webui/settings/downloads_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/downloads_handler_unittest.cc
@@ -28,6 +28,7 @@
namespace {
namespace ec = enterprise_connectors;
+using testing::NiceMock;
using WebUIDataReceivedPtr = std::unique_ptr<content::TestWebUI::CallData>;
struct DownloadsSettings {
@@ -125,7 +126,7 @@ namespace settings {
class DownloadsHandlerTest : public testing::TestWithParam<DownloadsSettings> {
public:
DownloadsHandlerTest()
- : download_manager_(new content::MockDownloadManager()),
+ : download_manager_(new NiceMock<content::MockDownloadManager>()),
handler_(&profile_) {
profile_.SetDownloadManagerForTesting(base::WrapUnique(download_manager_));
std::unique_ptr<ChromeDownloadManagerDelegate> delegate =
diff --git a/chromium/chrome/browser/ui/webui/settings/extension_control_handler.cc b/chromium/chrome/browser/ui/webui/settings/extension_control_handler.cc
index 39db396895d..12620c27aca 100644
--- a/chromium/chrome/browser/ui/webui/settings/extension_control_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/extension_control_handler.cc
@@ -19,7 +19,7 @@ ExtensionControlHandler::ExtensionControlHandler() {}
ExtensionControlHandler::~ExtensionControlHandler() {}
void ExtensionControlHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"disableExtension",
base::BindRepeating(&ExtensionControlHandler::HandleDisableExtension,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/extension_control_handler.h b/chromium/chrome/browser/ui/webui/settings/extension_control_handler.h
index b948e7914c1..68a8ede9edd 100644
--- a/chromium/chrome/browser/ui/webui/settings/extension_control_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/extension_control_handler.h
@@ -17,6 +17,10 @@ namespace settings {
class ExtensionControlHandler : public SettingsPageUIHandler {
public:
ExtensionControlHandler();
+
+ ExtensionControlHandler(const ExtensionControlHandler&) = delete;
+ ExtensionControlHandler& operator=(const ExtensionControlHandler&) = delete;
+
~ExtensionControlHandler() override;
// SettingsPageUIHandler:
@@ -28,8 +32,6 @@ class ExtensionControlHandler : public SettingsPageUIHandler {
// Handler for the "disableExtension" message. Extension ID is passed as the
// single string argument.
void HandleDisableExtension(const base::ListValue* args);
-
- DISALLOW_COPY_AND_ASSIGN(ExtensionControlHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/font_handler.cc b/chromium/chrome/browser/ui/webui/settings/font_handler.cc
index 1e2ed5d4a2b..d5769f253c9 100644
--- a/chromium/chrome/browser/ui/webui/settings/font_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/font_handler.cc
@@ -13,6 +13,7 @@
#include "base/callback_helpers.h"
#include "base/i18n/rtl.h"
#include "base/strings/utf_string_conversions.h"
+#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser_finder.h"
@@ -37,7 +38,7 @@ FontHandler::FontHandler(Profile* profile) {
FontHandler::~FontHandler() {}
void FontHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"fetchFontsData", base::BindRepeating(&FontHandler::HandleFetchFontsData,
base::Unretained(this)));
}
@@ -47,7 +48,7 @@ void FontHandler::OnJavascriptAllowed() {}
void FontHandler::OnJavascriptDisallowed() {}
void FontHandler::HandleFetchFontsData(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
diff --git a/chromium/chrome/browser/ui/webui/settings/font_handler.h b/chromium/chrome/browser/ui/webui/settings/font_handler.h
index 96669a5ce95..9e311a615cb 100644
--- a/chromium/chrome/browser/ui/webui/settings/font_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/font_handler.h
@@ -24,6 +24,10 @@ namespace settings {
class FontHandler : public SettingsPageUIHandler {
public:
explicit FontHandler(Profile* profile);
+
+ FontHandler(const FontHandler&) = delete;
+ FontHandler& operator=(const FontHandler&) = delete;
+
~FontHandler() override;
// SettingsPageUIHandler implementation.
@@ -40,8 +44,6 @@ class FontHandler : public SettingsPageUIHandler {
std::unique_ptr<base::ListValue> list);
base::WeakPtrFactory<FontHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(FontHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/hats_handler.cc b/chromium/chrome/browser/ui/webui/settings/hats_handler.cc
index da8a55dc24c..4e378e0922b 100644
--- a/chromium/chrome/browser/ui/webui/settings/hats_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/hats_handler.cc
@@ -45,7 +45,9 @@ void LaunchHatsSurveyWithProductSpecificData(Profile* profile,
hats_service->LaunchDelayedSurveyForWebContents(
trigger, web_contents, 20000,
{{"3P cookies blocked", third_party_cookies_blocked},
- {"Privacy Sandbox enabled", privacy_sandbox_enabled}});
+ {"Privacy Sandbox enabled", privacy_sandbox_enabled}},
+ /*product_specific_string_data=*/{},
+ /*require_same_origin=*/true);
}
} // namespace
@@ -57,7 +59,7 @@ HatsHandler::HatsHandler() = default;
HatsHandler::~HatsHandler() = default;
void HatsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"trustSafetyInteractionOccurred",
base::BindRepeating(&HatsHandler::HandleTrustSafetyInteractionOccurred,
base::Unretained(this)));
@@ -67,7 +69,7 @@ void HatsHandler::HandleTrustSafetyInteractionOccurred(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
auto interaction =
static_cast<TrustSafetyInteraction>(args->GetList()[0].GetInt());
diff --git a/chromium/chrome/browser/ui/webui/settings/hats_handler.h b/chromium/chrome/browser/ui/webui/settings/hats_handler.h
index 492e6dd9593..2d07b240541 100644
--- a/chromium/chrome/browser/ui/webui/settings/hats_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/hats_handler.h
@@ -5,6 +5,7 @@
#ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_HATS_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_SETTINGS_HATS_HANDLER_H_
+#include "base/gtest_prod_util.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
namespace settings {
@@ -30,6 +31,9 @@ class HatsHandler : public SettingsPageUIHandler {
FRIEND_TEST_ALL_PREFIXES(HatsHandlerTest, PrivacySettingsHats);
FRIEND_TEST_ALL_PREFIXES(HatsHandlerTest, PrivacySandboxHats);
FRIEND_TEST_ALL_PREFIXES(HatsHandlerTest, TrustSafetySentimentInteractions);
+ FRIEND_TEST_ALL_PREFIXES(HatsHandlerNoSandboxTest, PrivacySettings);
+ FRIEND_TEST_ALL_PREFIXES(HatsHandlerNoSandboxTest,
+ TrustSafetySentimentInteractions);
// All Trust & Safety based interactions which may result in a HaTS survey.
// Must be kept in sync with the enum of the same name in
diff --git a/chromium/chrome/browser/ui/webui/settings/hats_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/hats_handler_unittest.cc
index 76f21c85ad5..46da051a02e 100644
--- a/chromium/chrome/browser/ui/webui/settings/hats_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/hats_handler_unittest.cc
@@ -66,9 +66,6 @@ class HatsHandlerTest : public ChromeRenderViewHostTestHarness {
MockHatsService* mock_hats_service_;
MockTrustSafetySentimentService* mock_sentiment_service_;
- protected:
- base::test::ScopedFeatureList scoped_feature_list_;
-
private:
std::unique_ptr<content::TestWebUI> web_ui_;
std::unique_ptr<HatsHandler> handler_;
@@ -87,7 +84,7 @@ TEST_F(HatsHandlerTest, PrivacySettingsHats) {
EXPECT_CALL(*mock_hats_service_,
LaunchDelayedSurveyForWebContents(
kHatsSurveyTriggerSettingsPrivacy, web_contents(), 20000,
- expected_product_specific_data, _))
+ expected_product_specific_data, _, true))
.Times(2);
base::Value args(base::Value::Type::LIST);
args.Append(
@@ -101,22 +98,42 @@ TEST_F(HatsHandlerTest, PrivacySettingsHats) {
handler()->HandleTrustSafetyInteractionOccurred(
&base::Value::AsListValue(args));
task_environment()->RunUntilIdle();
+}
- testing::Mock::VerifyAndClearExpectations(mock_hats_service_);
+class HatsHandlerNoSandboxTest : public HatsHandlerTest {
+ public:
+ HatsHandlerNoSandboxTest() {
+ base::test::ScopedFeatureList::FeatureAndParams feature_and_params{
+ features::kHappinessTrackingSurveysForDesktopSettingsPrivacy,
+ {{"no-sandbox", "true"}}};
+ scoped_feature_list_.InitWithFeaturesAndParameters({feature_and_params},
+ {});
+ }
+ protected:
+ // This should only be accessed in the test constructor, to avoid race
+ // conditions with other threads.
+ base::test::ScopedFeatureList scoped_feature_list_;
+};
+
+TEST_F(HatsHandlerNoSandboxTest, PrivacySettings) {
+ profile()->GetPrefs()->SetBoolean(prefs::kPrivacySandboxApisEnabled, false);
+ profile()->GetPrefs()->SetInteger(
+ prefs::kCookieControlsMode,
+ static_cast<int>(content_settings::CookieControlsMode::kBlockThirdParty));
+ SurveyBitsData expected_product_specific_data = {
+ {"3P cookies blocked", true}, {"Privacy Sandbox enabled", false}};
// Enable targeting for users who have not seen the Privacy Sandbox page and
// ensure the handler does not attempt to launch the survey.
EXPECT_CALL(*mock_hats_service_,
- LaunchDelayedSurveyForWebContents(_, _, _, _, _))
+ LaunchDelayedSurveyForWebContents(_, _, _, _, _, _))
.Times(0);
- base::test::ScopedFeatureList::FeatureAndParams feature_and_params{
- features::kHappinessTrackingSurveysForDesktopSettingsPrivacy,
- {{"no-sandbox", "true"}}};
- scoped_feature_list_.InitWithFeaturesAndParameters({feature_and_params}, {});
-
profile()->GetPrefs()->SetBoolean(prefs::kPrivacySandboxPageViewed, true);
+ base::Value args(base::Value::Type::LIST);
+ args.Append(
+ static_cast<int>(HatsHandler::TrustSafetyInteraction::USED_PRIVACY_CARD));
handler()->HandleTrustSafetyInteractionOccurred(
&base::Value::AsListValue(args));
task_environment()->RunUntilIdle();
@@ -134,7 +151,7 @@ TEST_F(HatsHandlerTest, PrivacySandboxHats) {
EXPECT_CALL(*mock_hats_service_,
LaunchDelayedSurveyForWebContents(
kHatsSurveyTriggerPrivacySandbox, web_contents(), 20000,
- expected_product_specific_data, _));
+ expected_product_specific_data, _, true));
base::Value args(base::Value::Type::LIST);
args.Append(static_cast<int>(
HatsHandler::TrustSafetyInteraction::OPENED_PRIVACY_SANDBOX));
@@ -155,20 +172,23 @@ TEST_F(HatsHandlerTest, TrustSafetySentimentInteractions) {
handler()->HandleTrustSafetyInteractionOccurred(
&base::Value::AsListValue(args));
- EXPECT_CALL(*mock_sentiment_service_, RanSafetyCheck()).Times(2);
+ EXPECT_CALL(*mock_sentiment_service_, RanSafetyCheck()).Times(1);
args.GetList()[0] = base::Value(
static_cast<int>(HatsHandler::TrustSafetyInteraction::RAN_SAFETY_CHECK));
handler()->HandleTrustSafetyInteractionOccurred(
&base::Value::AsListValue(args));
+}
+TEST_F(HatsHandlerNoSandboxTest, TrustSafetySentimentInteractions) {
// A profile & feature state that would exclude the user from receiving the
// Privacy Settings HaTS survey should not stop the sentiment service being
// informed that the interaction occurred.
- testing::Mock::VerifyAndClearExpectations(mock_hats_service_);
- base::test::ScopedFeatureList::FeatureAndParams feature_and_params{
- features::kHappinessTrackingSurveysForDesktopSettingsPrivacy,
- {{"no-sandbox", "true"}}};
- scoped_feature_list_.InitWithFeaturesAndParameters({feature_and_params}, {});
+ // Check that interactions relevant to the T&S sentiment service are
+ // correctly reported.
+ EXPECT_CALL(*mock_sentiment_service_, RanSafetyCheck()).Times(1);
+ base::Value args(base::Value::Type::LIST);
+ args.Append(
+ static_cast<int>(HatsHandler::TrustSafetyInteraction::RAN_SAFETY_CHECK));
profile()->GetPrefs()->SetBoolean(prefs::kPrivacySandboxPageViewed, true);
handler()->HandleTrustSafetyInteractionOccurred(
&base::Value::AsListValue(args));
diff --git a/chromium/chrome/browser/ui/webui/settings/import_data_handler.cc b/chromium/chrome/browser/ui/webui/settings/import_data_handler.cc
index a00b40e8804..09f8524b963 100644
--- a/chromium/chrome/browser/ui/webui/settings/import_data_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/import_data_handler.cc
@@ -56,14 +56,14 @@ ImportDataHandler::~ImportDataHandler() {
void ImportDataHandler::RegisterMessages() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializeImportDialog",
base::BindRepeating(&ImportDataHandler::HandleInitializeImportDialog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"importData", base::BindRepeating(&ImportDataHandler::HandleImportData,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"importFromBookmarksFile",
base::BindRepeating(&ImportDataHandler::HandleImportFromBookmarksFile,
base::Unretained(this)));
@@ -149,7 +149,7 @@ void ImportDataHandler::HandleInitializeImportDialog(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
diff --git a/chromium/chrome/browser/ui/webui/settings/import_data_handler.h b/chromium/chrome/browser/ui/webui/settings/import_data_handler.h
index d9f1f5009d1..f11411c00f1 100644
--- a/chromium/chrome/browser/ui/webui/settings/import_data_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/import_data_handler.h
@@ -27,6 +27,10 @@ class ImportDataHandler : public SettingsPageUIHandler,
public ui::SelectFileDialog::Listener {
public:
ImportDataHandler();
+
+ ImportDataHandler(const ImportDataHandler&) = delete;
+ ImportDataHandler& operator=(const ImportDataHandler&) = delete;
+
~ImportDataHandler() override;
// SettingsPageUIHandler
@@ -74,8 +78,6 @@ class ImportDataHandler : public SettingsPageUIHandler,
bool importer_list_loaded_{false};
scoped_refptr<ui::SelectFileDialog> select_file_dialog_;
-
- DISALLOW_COPY_AND_ASSIGN(ImportDataHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.cc b/chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.cc
index 6772fa07b0a..3abd13b84c4 100644
--- a/chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.cc
+++ b/chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.cc
@@ -28,27 +28,27 @@ IncompatibleApplicationsHandler::IncompatibleApplicationsHandler() = default;
IncompatibleApplicationsHandler::~IncompatibleApplicationsHandler() = default;
void IncompatibleApplicationsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestIncompatibleApplicationsList",
base::BindRepeating(&IncompatibleApplicationsHandler::
HandleRequestIncompatibleApplicationsList,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"startApplicationUninstallation",
base::BindRepeating(&IncompatibleApplicationsHandler::
HandleStartApplicationUninstallation,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getSubtitlePluralString",
base::BindRepeating(
&IncompatibleApplicationsHandler::HandleGetSubtitlePluralString,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getSubtitleNoAdminRightsPluralString",
base::BindRepeating(&IncompatibleApplicationsHandler::
HandleGetSubtitleNoAdminRightsPluralString,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getListTitlePluralString",
base::BindRepeating(
&IncompatibleApplicationsHandler::HandleGetListTitlePluralString,
diff --git a/chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.h b/chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.h
index 630c2f9f4da..d5bfdcbf89c 100644
--- a/chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.h
+++ b/chromium/chrome/browser/ui/webui/settings/incompatible_applications_handler_win.h
@@ -24,6 +24,12 @@ namespace settings {
class IncompatibleApplicationsHandler : public SettingsPageUIHandler {
public:
IncompatibleApplicationsHandler();
+
+ IncompatibleApplicationsHandler(const IncompatibleApplicationsHandler&) =
+ delete;
+ IncompatibleApplicationsHandler& operator=(
+ const IncompatibleApplicationsHandler&) = delete;
+
~IncompatibleApplicationsHandler() override;
// SettingsPageUIHandler:
@@ -51,8 +57,6 @@ class IncompatibleApplicationsHandler : public SettingsPageUIHandler {
std::map<InstalledApplications::ApplicationInfo,
std::unique_ptr<RegistryKeyWatcher>>
registry_key_watchers_;
-
- DISALLOW_COPY_AND_ASSIGN(IncompatibleApplicationsHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/languages_handler.cc b/chromium/chrome/browser/ui/webui/settings/languages_handler.cc
index cce93cf6169..b16502505c7 100644
--- a/chromium/chrome/browser/ui/webui/settings/languages_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/languages_handler.cc
@@ -33,11 +33,11 @@ LanguagesHandler::LanguagesHandler() = default;
LanguagesHandler::~LanguagesHandler() = default;
void LanguagesHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getProspectiveUILanguage",
base::BindRepeating(&LanguagesHandler::HandleGetProspectiveUILanguage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setProspectiveUILanguage",
base::BindRepeating(&LanguagesHandler::HandleSetProspectiveUILanguage,
base::Unretained(this)));
@@ -67,7 +67,7 @@ void LanguagesHandler::HandleGetProspectiveUILanguage(
void LanguagesHandler::HandleSetProspectiveUILanguage(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string language_code;
CHECK(args->GetString(0, &language_code));
diff --git a/chromium/chrome/browser/ui/webui/settings/languages_handler.h b/chromium/chrome/browser/ui/webui/settings/languages_handler.h
index 0e17ea9219d..ae453fde086 100644
--- a/chromium/chrome/browser/ui/webui/settings/languages_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/languages_handler.h
@@ -27,6 +27,10 @@ class LanguagesHandler : public SettingsPageUIHandler {
#else
LanguagesHandler();
#endif
+
+ LanguagesHandler(const LanguagesHandler&) = delete;
+ LanguagesHandler& operator=(const LanguagesHandler&) = delete;
+
~LanguagesHandler() override;
// SettingsPageUIHandler implementation.
@@ -47,8 +51,6 @@ class LanguagesHandler : public SettingsPageUIHandler {
#if BUILDFLAG(IS_CHROMEOS_ASH)
Profile* profile_; // Weak pointer.
#endif
-
- DISALLOW_COPY_AND_ASSIGN(LanguagesHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.cc b/chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.cc
index 7320a712d89..a491469feea 100644
--- a/chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.cc
@@ -31,11 +31,11 @@ MetricsReportingHandler::MetricsReportingHandler() {}
MetricsReportingHandler::~MetricsReportingHandler() {}
void MetricsReportingHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getMetricsReporting",
base::BindRepeating(&MetricsReportingHandler::HandleGetMetricsReporting,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setMetricsReportingEnabled",
base::BindRepeating(
&MetricsReportingHandler::HandleSetMetricsReportingEnabled,
diff --git a/chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.h b/chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.h
index d7bb54f00c0..c6d17ae64cb 100644
--- a/chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/metrics_reporting_handler.h
@@ -31,6 +31,10 @@ namespace settings {
class MetricsReportingHandler : public SettingsPageUIHandler {
public:
MetricsReportingHandler();
+
+ MetricsReportingHandler(const MetricsReportingHandler&) = delete;
+ MetricsReportingHandler& operator=(const MetricsReportingHandler&) = delete;
+
~MetricsReportingHandler() override;
// SettingsPageUIHandler:
@@ -75,8 +79,6 @@ class MetricsReportingHandler : public SettingsPageUIHandler {
// The metrics reporting interface in ash-chrome.
mojo::Remote<crosapi::mojom::MetricsReporting> metrics_reporting_remote_;
#endif // BUILDFLAG(IS_CHROMEOS_LACROS)
-
- DISALLOW_COPY_AND_ASSIGN(MetricsReportingHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/native_certificates_handler.cc b/chromium/chrome/browser/ui/webui/settings/native_certificates_handler.cc
index e377bd96912..c8b2ec6feb7 100644
--- a/chromium/chrome/browser/ui/webui/settings/native_certificates_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/native_certificates_handler.cc
@@ -17,7 +17,7 @@ NativeCertificatesHandler::NativeCertificatesHandler() {}
NativeCertificatesHandler::~NativeCertificatesHandler() {}
void NativeCertificatesHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showManageSSLCertificates",
base::BindRepeating(
&NativeCertificatesHandler::HandleShowManageSSLCertificates,
diff --git a/chromium/chrome/browser/ui/webui/settings/native_certificates_handler.h b/chromium/chrome/browser/ui/webui/settings/native_certificates_handler.h
index 3264392da3c..e8b392f8898 100644
--- a/chromium/chrome/browser/ui/webui/settings/native_certificates_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/native_certificates_handler.h
@@ -13,6 +13,11 @@ namespace settings {
class NativeCertificatesHandler : public SettingsPageUIHandler {
public:
NativeCertificatesHandler();
+
+ NativeCertificatesHandler(const NativeCertificatesHandler&) = delete;
+ NativeCertificatesHandler& operator=(const NativeCertificatesHandler&) =
+ delete;
+
~NativeCertificatesHandler() override;
// SettingsPageUIHandler implementation.
@@ -23,9 +28,6 @@ class NativeCertificatesHandler : public SettingsPageUIHandler {
// Callback for the "showManageSSLCertificates" message. This will invoke
// an appropriate certificate management action based on the platform.
void HandleShowManageSSLCertificates(const base::ListValue* args);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(NativeCertificatesHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/on_startup_handler.cc b/chromium/chrome/browser/ui/webui/settings/on_startup_handler.cc
index 5756ab2c6ff..ea39a2f4c15 100644
--- a/chromium/chrome/browser/ui/webui/settings/on_startup_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/on_startup_handler.cc
@@ -39,11 +39,11 @@ void OnStartupHandler::OnJavascriptDisallowed() {
}
void OnStartupHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getNtpExtension",
base::BindRepeating(&OnStartupHandler::HandleGetNtpExtension,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"validateStartupPage",
base::BindRepeating(&OnStartupHandler::HandleValidateStartupPage,
base::Unretained(this)));
@@ -89,7 +89,7 @@ void OnStartupHandler::HandleGetNtpExtension(const base::ListValue* args) {
}
void OnStartupHandler::HandleValidateStartupPage(const base::ListValue* args) {
- CHECK_EQ(args->GetSize(), 2U);
+ CHECK_EQ(args->GetList().size(), 2U);
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
std::string url_string;
diff --git a/chromium/chrome/browser/ui/webui/settings/on_startup_handler.h b/chromium/chrome/browser/ui/webui/settings/on_startup_handler.h
index 56edf61f9d3..05540e65302 100644
--- a/chromium/chrome/browser/ui/webui/settings/on_startup_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/on_startup_handler.h
@@ -7,6 +7,7 @@
#include <memory>
+#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "base/scoped_observation.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
@@ -27,6 +28,10 @@ class OnStartupHandler : public SettingsPageUIHandler,
static const char kOnStartupNtpExtensionEventName[];
explicit OnStartupHandler(Profile* profile);
+
+ OnStartupHandler(const OnStartupHandler&) = delete;
+ OnStartupHandler& operator=(const OnStartupHandler&) = delete;
+
~OnStartupHandler() override;
// SettingsPageUIHandler:
@@ -64,8 +69,6 @@ class OnStartupHandler : public SettingsPageUIHandler,
extension_registry_observation_{this};
Profile* profile_;
-
- DISALLOW_COPY_AND_ASSIGN(OnStartupHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/people_handler.cc b/chromium/chrome/browser/ui/webui/settings/people_handler.cc
index 4c17ccf73be..5cc85acbe91 100644
--- a/chromium/chrome/browser/ui/webui/settings/people_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/people_handler.cc
@@ -57,6 +57,7 @@
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_delegate.h"
#include "google_apis/gaia/gaia_auth_util.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/webui/web_ui_util.h"
@@ -100,36 +101,40 @@ SyncConfigInfo::SyncConfigInfo()
SyncConfigInfo::~SyncConfigInfo() {}
bool GetConfiguration(const std::string& json, SyncConfigInfo* config) {
- std::unique_ptr<base::Value> parsed_value =
- base::JSONReader::ReadDeprecated(json);
- base::DictionaryValue* result;
- if (!parsed_value || !parsed_value->GetAsDictionary(&result)) {
+ absl::optional<base::Value> parsed_value = base::JSONReader::Read(json);
+ if (!parsed_value.has_value() || !parsed_value->is_dict()) {
DLOG(ERROR) << "GetConfiguration() not passed a Dictionary";
return false;
}
- if (!result->GetBoolean("syncAllDataTypes", &config->sync_everything)) {
+ absl::optional<bool> sync_everything =
+ parsed_value->FindBoolKey("syncAllDataTypes");
+ if (!sync_everything.has_value()) {
DLOG(ERROR) << "GetConfiguration() not passed a syncAllDataTypes value";
return false;
}
+ config->sync_everything = *sync_everything;
- if (!result->GetBoolean("paymentsIntegrationEnabled",
- &config->payments_integration_enabled)) {
+ absl::optional<bool> payments_integration_enabled =
+ parsed_value->FindBoolKey("paymentsIntegrationEnabled");
+ if (!payments_integration_enabled.has_value()) {
DLOG(ERROR) << "GetConfiguration() not passed a paymentsIntegrationEnabled "
<< "value";
return false;
}
+ config->payments_integration_enabled = *payments_integration_enabled;
for (syncer::UserSelectableType type : syncer::UserSelectableTypeSet::All()) {
std::string key_name =
syncer::GetUserSelectableTypeName(type) + std::string("Synced");
- bool sync_value;
- if (!result->GetBoolean(key_name, &sync_value)) {
+ absl::optional<bool> type_synced = parsed_value->FindBoolKey(key_name);
+ if (!type_synced.has_value()) {
DLOG(ERROR) << "GetConfiguration() not passed a value for " << key_name;
return false;
}
- if (sync_value)
+ if (*type_synced) {
config->selected_types.Put(type);
+ }
}
return true;
@@ -150,8 +155,6 @@ std::string GetSyncErrorAction(SyncStatusActionType action_type) {
switch (action_type) {
case SyncStatusActionType::kReauthenticate:
return "reauthenticate";
- case SyncStatusActionType::kSignoutAndSignin:
- return "signOutAndSignIn";
case SyncStatusActionType::kUpgradeClient:
return "upgradeClient";
case SyncStatusActionType::kEnterPassphrase:
@@ -173,13 +176,13 @@ std::string GetSyncErrorAction(SyncStatusActionType action_type) {
base::Value GetAccountValue(const AccountInfo& account) {
DCHECK(!account.IsEmpty());
base::Value dictionary(base::Value::Type::DICTIONARY);
- dictionary.SetKey("email", base::Value(account.email));
- dictionary.SetKey("fullName", base::Value(account.full_name));
- dictionary.SetKey("givenName", base::Value(account.given_name));
+ dictionary.SetStringKey("email", account.email);
+ dictionary.SetStringKey("fullName", account.full_name);
+ dictionary.SetStringKey("givenName", account.given_name);
if (!account.account_image.IsEmpty()) {
- dictionary.SetKey(
+ dictionary.SetStringKey(
"avatarImage",
- base::Value(webui::GetBitmapDataUrl(account.account_image.AsBitmap())));
+ webui::GetBitmapDataUrl(account.account_image.AsBitmap()));
}
return dictionary;
}
@@ -215,70 +218,70 @@ PeopleHandler::~PeopleHandler() {
void PeopleHandler::RegisterMessages() {
InitializeSyncBlocker();
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncSetupDidClosePage",
base::BindRepeating(&PeopleHandler::OnDidClosePage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncSetupSetDatatypes",
base::BindRepeating(&PeopleHandler::HandleSetDatatypes,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncSetupSetEncryptionPassphrase",
base::BindRepeating(&PeopleHandler::HandleSetEncryptionPassphrase,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncSetupSetDecryptionPassphrase",
base::BindRepeating(&PeopleHandler::HandleSetDecryptionPassphrase,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncSetupShowSetupUI",
base::BindRepeating(&PeopleHandler::HandleShowSyncSetupUI,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncSetupGetSyncStatus",
base::BindRepeating(&PeopleHandler::HandleGetSyncStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncPrefsDispatch",
base::BindRepeating(&PeopleHandler::HandleSyncPrefsDispatch,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncOfferTrustedVaultOptInDispatch",
base::BindRepeating(&PeopleHandler::HandleOfferTrustedVaultOptInDispatch,
base::Unretained(this)));
#if BUILDFLAG(IS_CHROMEOS_ASH)
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"AttemptUserExit",
base::BindRepeating(&PeopleHandler::HandleAttemptUserExit,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"TurnOnSync", base::BindRepeating(&PeopleHandler::HandleTurnOnSync,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"TurnOffSync", base::BindRepeating(&PeopleHandler::HandleTurnOffSync,
base::Unretained(this)));
#else
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncSetupSignout", base::BindRepeating(&PeopleHandler::HandleSignout,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncSetupPauseSync", base::BindRepeating(&PeopleHandler::HandlePauseSync,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncSetupStartSignIn",
base::BindRepeating(&PeopleHandler::HandleStartSignin,
base::Unretained(this)));
#endif
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncSetupGetStoredAccounts",
base::BindRepeating(&PeopleHandler::HandleGetStoredAccounts,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncSetupStartSyncingWithEmail",
base::BindRepeating(&PeopleHandler::HandleStartSyncingWithEmail,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"SyncStartKeyRetrieval",
base::BindRepeating(&PeopleHandler::HandleStartKeyRetrieval,
base::Unretained(this)));
@@ -410,7 +413,7 @@ void PeopleHandler::HandleSetDatatypes(const base::ListValue* args) {
void PeopleHandler::HandleGetStoredAccounts(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
@@ -681,7 +684,7 @@ void PeopleHandler::HandleStartKeyRetrieval(const base::ListValue* args) {
void PeopleHandler::HandleGetSyncStatus(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
@@ -796,6 +799,7 @@ void PeopleHandler::OnPrimaryAccountChanged(
}
case signin::PrimaryAccountChangeEvent::Type::kCleared:
sync_blocker_.reset();
+ configuring_sync_ = false;
UpdateSyncStatus();
return;
case signin::PrimaryAccountChangeEvent::Type::kNone:
diff --git a/chromium/chrome/browser/ui/webui/settings/people_handler.h b/chromium/chrome/browser/ui/webui/settings/people_handler.h
index 6999ae51a54..5bf90c79423 100644
--- a/chromium/chrome/browser/ui/webui/settings/people_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/people_handler.h
@@ -53,6 +53,10 @@ class PeopleHandler : public SettingsPageUIHandler,
static const char kPassphraseFailedPageStatus[];
explicit PeopleHandler(Profile* profile);
+
+ PeopleHandler(const PeopleHandler&) = delete;
+ PeopleHandler& operator=(const PeopleHandler&) = delete;
+
~PeopleHandler() override;
protected:
@@ -234,8 +238,6 @@ class PeopleHandler : public SettingsPageUIHandler,
sync_service_observation_{this};
base::WeakPtrFactory<PeopleHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(PeopleHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/people_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/people_handler_unittest.cc
index 854db35c604..e04286f4d27 100644
--- a/chromium/chrome/browser/ui/webui/settings/people_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/people_handler_unittest.cc
@@ -179,6 +179,9 @@ class TestingPeopleHandler : public PeopleHandler {
set_web_ui(web_ui);
}
+ TestingPeopleHandler(const TestingPeopleHandler&) = delete;
+ TestingPeopleHandler& operator=(const TestingPeopleHandler&) = delete;
+
using PeopleHandler::is_configuring_sync;
private:
@@ -186,8 +189,6 @@ class TestingPeopleHandler : public PeopleHandler {
void DisplayGaiaLoginInNewTabOrWindow(
signin_metrics::AccessPoint access_point) override {}
#endif
-
- DISALLOW_COPY_AND_ASSIGN(TestingPeopleHandler);
};
class TestWebUIProvider
@@ -202,6 +203,10 @@ class TestWebUIProvider
class PeopleHandlerTest : public ChromeRenderViewHostTestHarness {
public:
PeopleHandlerTest() = default;
+
+ PeopleHandlerTest(const PeopleHandlerTest&) = delete;
+ PeopleHandlerTest& operator=(const PeopleHandlerTest&) = delete;
+
~PeopleHandlerTest() override = default;
void SetUp() override {
@@ -368,8 +373,6 @@ class PeopleHandlerTest : public ChromeRenderViewHostTestHarness {
TestWebUIProvider test_provider_;
std::unique_ptr<TestChromeWebUIControllerFactory> test_factory_;
std::unique_ptr<TestingPeopleHandler> handler_;
-
- DISALLOW_COPY_AND_ASSIGN(PeopleHandlerTest);
};
#if !BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chromium/chrome/browser/ui/webui/settings/privacy_sandbox_handler.cc b/chromium/chrome/browser/ui/webui/settings/privacy_sandbox_handler.cc
index 266c7aa150d..45b23a84168 100644
--- a/chromium/chrome/browser/ui/webui/settings/privacy_sandbox_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/privacy_sandbox_handler.cc
@@ -44,10 +44,10 @@ base::Value GetFlocIdInformation(Profile* profile) {
} // namespace
void PrivacySandboxHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getFlocId", base::BindRepeating(&PrivacySandboxHandler::HandleGetFlocId,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"resetFlocId",
base::BindRepeating(&PrivacySandboxHandler::HandleResetFlocId,
base::Unretained(this)));
@@ -56,7 +56,7 @@ void PrivacySandboxHandler::RegisterMessages() {
void PrivacySandboxHandler::HandleGetFlocId(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
@@ -72,7 +72,7 @@ void PrivacySandboxHandler::HandleResetFlocId(const base::ListValue* args) {
Profile::FromWebUI(web_ui()));
DCHECK(privacy_sandbox_settings);
- privacy_sandbox_settings->ResetFlocId();
+ privacy_sandbox_settings->ResetFlocId(/*user_initiated=*/true);
// The identifier will have been immediately invalidated in response to
// the clearing action, so synchronously retrieving the FLoC ID will retrieve
diff --git a/chromium/chrome/browser/ui/webui/settings/privacy_sandbox_handler.h b/chromium/chrome/browser/ui/webui/settings/privacy_sandbox_handler.h
index bd999de7a98..5229cc62872 100644
--- a/chromium/chrome/browser/ui/webui/settings/privacy_sandbox_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/privacy_sandbox_handler.h
@@ -5,6 +5,7 @@
#ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_PRIVACY_SANDBOX_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_SETTINGS_PRIVACY_SANDBOX_HANDLER_H_
+#include "base/gtest_prod_util.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
namespace settings {
diff --git a/chromium/chrome/browser/ui/webui/settings/profile_info_handler.cc b/chromium/chrome/browser/ui/webui/settings/profile_info_handler.cc
index a02d8f52b14..a0b9c79d18b 100644
--- a/chromium/chrome/browser/ui/webui/settings/profile_info_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/profile_info_handler.cc
@@ -45,12 +45,12 @@ ProfileInfoHandler::ProfileInfoHandler(Profile* profile) : profile_(profile) {
ProfileInfoHandler::~ProfileInfoHandler() {}
void ProfileInfoHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getProfileInfo",
base::BindRepeating(&ProfileInfoHandler::HandleGetProfileInfo,
base::Unretained(this)));
#if !BUILDFLAG(IS_CHROMEOS_ASH)
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getProfileStatsCount",
base::BindRepeating(&ProfileInfoHandler::HandleGetProfileStats,
base::Unretained(this)));
@@ -100,7 +100,7 @@ void ProfileInfoHandler::OnProfileAvatarChanged(
void ProfileInfoHandler::HandleGetProfileInfo(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
diff --git a/chromium/chrome/browser/ui/webui/settings/profile_info_handler.h b/chromium/chrome/browser/ui/webui/settings/profile_info_handler.h
index f1041a58b94..5b3563dfde3 100644
--- a/chromium/chrome/browser/ui/webui/settings/profile_info_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/profile_info_handler.h
@@ -7,6 +7,7 @@
#include <memory>
+#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/scoped_observation.h"
@@ -36,6 +37,10 @@ class ProfileInfoHandler : public SettingsPageUIHandler,
static const char kProfileStatsCountReadyEventName[];
explicit ProfileInfoHandler(Profile* profile);
+
+ ProfileInfoHandler(const ProfileInfoHandler&) = delete;
+ ProfileInfoHandler& operator=(const ProfileInfoHandler&) = delete;
+
~ProfileInfoHandler() override;
// SettingsPageUIHandler implementation.
@@ -86,8 +91,6 @@ class ProfileInfoHandler : public SettingsPageUIHandler,
// Used to cancel callbacks when JavaScript becomes disallowed.
base::WeakPtrFactory<ProfileInfoHandler> callback_weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ProfileInfoHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.cc b/chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.cc
index f528080e180..9515ab364f0 100644
--- a/chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.cc
@@ -15,6 +15,8 @@
#include "base/values.h"
#include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/web_applications/os_integration_manager.h"
+#include "chrome/browser/web_applications/web_app_sync_bridge.h"
#include "chrome/common/url_constants.h"
#include "components/google/core/common/google_util.h"
#include "components/prefs/pref_service.h"
@@ -24,20 +26,22 @@ namespace settings {
namespace {
+// TODO(https://crbug.com/1251039): Remove usages of base::ListValue
void GetHandlersAsListValue(
- const ProtocolHandlerRegistry& registry,
+ const ProtocolHandlerRegistry* registry,
const ProtocolHandlerRegistry::ProtocolHandlerList& handlers,
base::ListValue* handler_list) {
- ProtocolHandlerRegistry::ProtocolHandlerList::const_iterator handler;
- for (handler = handlers.begin(); handler != handlers.end(); ++handler) {
- std::unique_ptr<base::DictionaryValue> handler_value(
- new base::DictionaryValue());
- handler_value->SetString("protocol_display_name",
- handler->GetProtocolDisplayName());
- handler_value->SetString("protocol", handler->protocol());
- handler_value->SetString("spec", handler->url().spec());
- handler_value->SetString("host", handler->url().host());
- handler_value->SetBoolean("is_default", registry.IsDefault(*handler));
+ for (const auto& handler : handlers) {
+ base::DictionaryValue handler_value;
+ handler_value.SetStringPath("protocol_display_name",
+ handler.GetProtocolDisplayName());
+ handler_value.SetStringPath("protocol", handler.protocol());
+ handler_value.SetStringPath("spec", handler.url().spec());
+ handler_value.SetStringPath("host", handler.url().host());
+ if (registry)
+ handler_value.SetBoolPath("is_default", registry->IsDefault(handler));
+ if (handler.web_app_id().has_value())
+ handler_value.SetStringPath("app_id", handler.web_app_id().value());
handler_list->Append(std::move(handler_value));
}
}
@@ -49,35 +53,54 @@ ProtocolHandlersHandler::~ProtocolHandlersHandler() = default;
void ProtocolHandlersHandler::OnJavascriptAllowed() {
registry_observation_.Observe(GetProtocolHandlerRegistry());
+ app_observation_.Observe(&GetWebAppProvider()->registrar());
}
void ProtocolHandlersHandler::OnJavascriptDisallowed() {
registry_observation_.Reset();
+ app_observation_.Reset();
}
void ProtocolHandlersHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"observeProtocolHandlers",
base::BindRepeating(
&ProtocolHandlersHandler::HandleObserveProtocolHandlers,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"observeProtocolHandlersEnabledState",
base::BindRepeating(
&ProtocolHandlersHandler::HandleObserveProtocolHandlersEnabledState,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeHandler",
base::BindRepeating(&ProtocolHandlersHandler::HandleRemoveHandler,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setHandlersEnabled",
base::BindRepeating(&ProtocolHandlersHandler::HandleSetHandlersEnabled,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setDefault",
base::BindRepeating(&ProtocolHandlersHandler::HandleSetDefault,
base::Unretained(this)));
+
+ // Web App Protocol Handlers register message callbacks:
+ web_ui()->RegisterMessageCallback(
+ "observeAppProtocolHandlers",
+ base::BindRepeating(
+ &ProtocolHandlersHandler::HandleObserveAppProtocolHandlers,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "removeAppAllowedHandler",
+ base::BindRepeating(
+ &ProtocolHandlersHandler::HandleRemoveAllowedAppHandler,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "removeAppDisallowedHandler",
+ base::BindRepeating(
+ &ProtocolHandlersHandler::HandleRemoveDisallowedAppHandler,
+ base::Unretained(this)));
}
void ProtocolHandlersHandler::OnProtocolHandlerRegistryChanged() {
@@ -85,6 +108,16 @@ void ProtocolHandlersHandler::OnProtocolHandlerRegistryChanged() {
UpdateHandlerList();
}
+void ProtocolHandlersHandler::OnWebAppProtocolSettingsChanged() {
+ UpdateAllAllowedLaunchProtocols();
+ UpdateAllDisallowedLaunchProtocols();
+}
+
+void ProtocolHandlersHandler::OnWebAppUninstalled(
+ const web_app::AppId& app_id) {
+ OnWebAppProtocolSettingsChanged();
+}
+
void ProtocolHandlersHandler::GetHandlersForProtocol(
const std::string& protocol,
base::DictionaryValue* handlers_value) {
@@ -94,7 +127,7 @@ void ProtocolHandlersHandler::GetHandlersForProtocol(
handlers_value->SetString("protocol", protocol);
base::ListValue handlers_list;
- GetHandlersAsListValue(*registry, registry->GetHandlersFor(protocol),
+ GetHandlersAsListValue(registry, registry->GetHandlersFor(protocol),
&handlers_list);
handlers_value->SetKey("handlers", std::move(handlers_list));
}
@@ -103,7 +136,7 @@ void ProtocolHandlersHandler::GetIgnoredHandlers(base::ListValue* handlers) {
ProtocolHandlerRegistry* registry = GetProtocolHandlerRegistry();
ProtocolHandlerRegistry::ProtocolHandlerList ignored_handlers =
registry->GetIgnoredHandlers();
- return GetHandlersAsListValue(*registry, ignored_handlers, handlers);
+ return GetHandlersAsListValue(registry, ignored_handlers, handlers);
}
void ProtocolHandlersHandler::UpdateHandlerList() {
@@ -186,4 +219,113 @@ ProtocolHandlerRegistry* ProtocolHandlersHandler::GetProtocolHandlerRegistry() {
Profile::FromWebUI(web_ui()));
}
+// App Protocol Handler specific functions
+
+std::unique_ptr<base::DictionaryValue>
+ProtocolHandlersHandler::GetAppHandlersForProtocol(
+ const std::string& protocol,
+ ProtocolHandlerRegistry::ProtocolHandlerList handlers) {
+ auto handlers_value = std::make_unique<base::DictionaryValue>();
+
+ if (!handlers.empty()) {
+ handlers_value->SetStringPath(
+ "protocol_display_name",
+ content::ProtocolHandler::GetProtocolDisplayName(protocol));
+ handlers_value->SetStringPath("protocol", protocol);
+
+ base::ListValue handlers_list;
+ GetHandlersAsListValue(nullptr, handlers, &handlers_list);
+ handlers_value->SetKey("handlers", std::move(handlers_list));
+ }
+ return handlers_value;
+}
+
+void ProtocolHandlersHandler::UpdateAllAllowedLaunchProtocols() {
+ base::flat_set<std::string> protocols(
+ GetWebAppProvider()->registrar().GetAllAllowedLaunchProtocols());
+ web_app::OsIntegrationManager& os_integration_manager =
+ GetWebAppProvider()->os_integration_manager();
+
+ base::Value handlers(base::Value::Type::LIST);
+ for (auto& protocol : protocols) {
+ ProtocolHandlerRegistry::ProtocolHandlerList protocol_handlers =
+ os_integration_manager.GetAllowedHandlersForProtocol(protocol);
+
+ auto handler_value(GetAppHandlersForProtocol(protocol, protocol_handlers));
+ handlers.Append(std::move(*handler_value));
+ }
+
+ FireWebUIListener("setAppAllowedProtocolHandlers", handlers);
+}
+
+void ProtocolHandlersHandler::UpdateAllDisallowedLaunchProtocols() {
+ base::flat_set<std::string> protocols(
+ GetWebAppProvider()->registrar().GetAllDisallowedLaunchProtocols());
+ web_app::OsIntegrationManager& os_integration_manager =
+ GetWebAppProvider()->os_integration_manager();
+
+ base::Value handlers(base::Value::Type::LIST);
+ for (auto& protocol : protocols) {
+ ProtocolHandlerRegistry::ProtocolHandlerList protocol_handlers =
+ os_integration_manager.GetDisallowedHandlersForProtocol(protocol);
+ auto handler_value(GetAppHandlersForProtocol(protocol, protocol_handlers));
+ handlers.Append(std::move(*handler_value));
+ }
+
+ FireWebUIListener("setAppDisallowedProtocolHandlers", handlers);
+}
+
+void ProtocolHandlersHandler::HandleObserveAppProtocolHandlers(
+ base::Value::ConstListView args) {
+ AllowJavascript();
+ UpdateAllAllowedLaunchProtocols();
+ UpdateAllDisallowedLaunchProtocols();
+}
+
+void ProtocolHandlersHandler::HandleRemoveAllowedAppHandler(
+ base::Value::ConstListView args) {
+ content::ProtocolHandler handler(ParseAppHandlerFromArgs(args));
+ CHECK(!handler.IsEmpty());
+
+ GetWebAppProvider()->sync_bridge().RemoveAllowedLaunchProtocol(
+ handler.web_app_id().value(), handler.protocol());
+
+ // No need to call UpdateAllAllowedLaunchProtocols() - we should receive a
+ // notification that the Web App Protocol Settings has changed and we will
+ // update the view then.
+}
+
+void ProtocolHandlersHandler::HandleRemoveDisallowedAppHandler(
+ base::Value::ConstListView args) {
+ content::ProtocolHandler handler(ParseAppHandlerFromArgs(args));
+ CHECK(!handler.IsEmpty());
+
+ GetWebAppProvider()->sync_bridge().RemoveDisallowedLaunchProtocol(
+ handler.web_app_id().value(), handler.protocol());
+
+ // Update registration with the OS.
+ GetWebAppProvider()->os_integration_manager().UpdateProtocolHandlers(
+ handler.web_app_id().value(), /*force_shortcut_updates_if_needed=*/true,
+ base::DoNothing());
+
+ // No need to call HandleRemoveDisallowedAppHandler() - we should receive a
+ // notification that the Web App Protocol Settings has changed and we will
+ // update the view then.
+}
+
+content::ProtocolHandler ProtocolHandlersHandler::ParseAppHandlerFromArgs(
+ base::Value::ConstListView args) const {
+ const std::string* protocol = args[0].GetIfString();
+ const std::string* url = args[1].GetIfString();
+ const std::string* app_id = args[2].GetIfString();
+ if (!protocol || !url || !app_id)
+ return content::ProtocolHandler::EmptyProtocolHandler();
+ return content::ProtocolHandler::CreateWebAppProtocolHandler(
+ *protocol, GURL(*url), *app_id);
+}
+
+web_app::WebAppProvider* ProtocolHandlersHandler::GetWebAppProvider() {
+ return web_app::WebAppProvider::GetForWebApps(Profile::FromWebUI(web_ui()));
+}
+
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.h b/chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.h
index 4ab0c6d0954..063b6fa9cb9 100644
--- a/chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/protocol_handlers_handler.h
@@ -11,25 +11,37 @@
#include "base/scoped_observation.h"
#include "chrome/browser/custom_handlers/protocol_handler_registry.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
-#include "chrome/common/custom_handlers/protocol_handler.h"
+#include "chrome/browser/web_applications/app_registrar_observer.h"
+#include "chrome/browser/web_applications/web_app_id.h"
+#include "chrome/browser/web_applications/web_app_provider.h"
+#include "chrome/browser/web_applications/web_app_registrar.h"
+#include "content/public/common/custom_handlers/protocol_handler.h"
////////////////////////////////////////////////////////////////////////////////
// ProtocolHandlersHandler
-// Listen for changes to protocol handlers (i.e. registerProtocolHandler()).
-// This get triggered whenever a user allows a specific website or application
-// to handle clicks on a link with a specified protocol (i.e. mailto: -> Gmail).
+// Listen for changes to protocol handlers registrations.
+// This get triggered whenever a user allows or disallows a specific website or
+// application to handle clicks on a link with a specified protocol (i.e.
+// mailto: -> Gmail).
namespace base {
class DictionaryValue;
}
+using content::ProtocolHandler;
+
namespace settings {
class ProtocolHandlersHandler : public SettingsPageUIHandler,
- public ProtocolHandlerRegistry::Observer {
+ public ProtocolHandlerRegistry::Observer,
+ public web_app::AppRegistrarObserver {
public:
ProtocolHandlersHandler();
+
+ ProtocolHandlersHandler(const ProtocolHandlersHandler&) = delete;
+ ProtocolHandlersHandler& operator=(const ProtocolHandlersHandler&) = delete;
+
~ProtocolHandlersHandler() override;
// SettingsPageUIHandler:
@@ -40,6 +52,10 @@ class ProtocolHandlersHandler : public SettingsPageUIHandler,
// ProtocolHandlerRegistry::Observer:
void OnProtocolHandlerRegistryChanged() override;
+ // web_app::AppRegistrarObserver:
+ void OnWebAppUninstalled(const web_app::AppId& app_id) override;
+ void OnWebAppProtocolSettingsChanged() override;
+
private:
// Called to fetch the state of the protocol handlers. If the full list of
// handlers is not needed, consider HandleObserveProtocolHandlersEnabledState
@@ -85,7 +101,41 @@ class ProtocolHandlersHandler : public SettingsPageUIHandler,
ProtocolHandlerRegistry::Observer>
registry_observation_{this};
- DISALLOW_COPY_AND_ASSIGN(ProtocolHandlersHandler);
+ // Web App Protocol Handler specific functions:
+
+ // Called to fetch the state of the app protocol handlers.
+ void HandleObserveAppProtocolHandlers(base::Value::ConstListView args);
+
+ // Parses an App ProtocolHandler out of |args|, which is a list of [protocol,
+ // url, app_id].
+ content::ProtocolHandler ParseAppHandlerFromArgs(
+ base::Value::ConstListView args) const;
+
+ // Returns a DictionaryValue describing the set of app protocol handlers for
+ // the given |protocol| in the given |handlers| list.
+ std::unique_ptr<base::DictionaryValue> GetAppHandlersForProtocol(
+ const std::string& protocol,
+ ProtocolHandlerRegistry::ProtocolHandlerList handlers);
+
+ // Called when OnWebAppProtocolSettingsChanged() is notified or on page load.
+ void UpdateAllAllowedLaunchProtocols();
+
+ // Called when OnWebAppProtocolSettingsChanged() is notified or on page load.
+ void UpdateAllDisallowedLaunchProtocols();
+
+ // Remove an approved app handler.
+ // |args| is a list of [protocol, url, app_id].
+ void HandleRemoveAllowedAppHandler(base::Value::ConstListView args);
+
+ // Remove a disallowed app handler.
+ // |args| is a list of [protocol, url, app_id].
+ void HandleRemoveDisallowedAppHandler(base::Value::ConstListView args);
+
+ web_app::WebAppProvider* GetWebAppProvider();
+
+ base::ScopedObservation<web_app::WebAppRegistrar,
+ web_app::AppRegistrarObserver>
+ app_observation_{this};
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/recent_site_settings_helper_unittest.cc b/chromium/chrome/browser/ui/webui/settings/recent_site_settings_helper_unittest.cc
index c7bcb9d2147..820d23f2cee 100644
--- a/chromium/chrome/browser/ui/webui/settings/recent_site_settings_helper_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/recent_site_settings_helper_unittest.cc
@@ -97,7 +97,7 @@ TEST_F(RecentSiteSettingsHelperTest, CheckRecentSitePermissions) {
auto_blocker->RecordDismissAndEmbargo(url1, kNotifications, false);
}
- clock()->Advance(base::TimeDelta::FromHours(2));
+ clock()->Advance(base::Hours(2));
map->SetContentSettingDefaultScope(url2, url2, kImages, kAllowed);
CreateIncognitoProfile();
@@ -123,13 +123,13 @@ TEST_F(RecentSiteSettingsHelperTest, CheckRecentSitePermissions) {
}
// Ensure incognito generated permissions are separated correctly.
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
HostContentSettingsMap* incognito_map =
HostContentSettingsMapFactory::GetForProfile(incognito_profile());
incognito_map->SetClockForTesting(clock());
incognito_map->SetContentSettingDefaultScope(url1, url1, kImages, kAllowed);
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
permissions::PermissionDecisionAutoBlocker* incognito_auto_blocker =
PermissionDecisionAutoBlockerFactory::GetForProfile(incognito_profile());
incognito_auto_blocker->SetClockForTesting(clock());
@@ -168,15 +168,15 @@ TEST_F(RecentSiteSettingsHelperTest, CheckRecentSitePermissions) {
// maximum number of sources and that order of origins is based on the
// most recent permission for that source.
const GURL url3("https://example.com:8443");
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
map->SetContentSettingDefaultScope(url1, url1, kImages, kBlocked);
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
for (int i = 0; i < 4; ++i) {
auto_blocker->RecordIgnoreAndEmbargo(url3, kNotifications, false);
}
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
map->SetContentSettingDefaultScope(url2, url2, kPopups, kAllowed);
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
map->SetContentSettingDefaultScope(url3, url3, kPopups, kBlocked);
recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
@@ -216,7 +216,7 @@ TEST_F(RecentSiteSettingsHelperTest, CheckRecentSitePermissions) {
// Assign a new permission to a previously recorded site whose other
// permissions are too old and ensure only the recent permission is returned.
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
incognito_map->SetContentSettingDefaultScope(url1, url1, kPopups, kBlocked);
recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
{
@@ -232,7 +232,7 @@ TEST_F(RecentSiteSettingsHelperTest, CheckRecentSitePermissions) {
// Reset a changed permission to default and confirm it does not appear as a
// recent permission change.
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
map->SetContentSettingDefaultScope(url3, url3, kPopups, kDefault);
recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
{
@@ -247,7 +247,7 @@ TEST_F(RecentSiteSettingsHelperTest, CheckRecentSitePermissions) {
// considered. I.e. url3 now has an expired embargo and a default setting. It
// should not be considered and should allow the images setting for url1 to
// be included as a recent change.
- clock()->Advance(base::TimeDelta::FromDays(7));
+ clock()->Advance(base::Days(7));
auto_blocker->RecordDismissAndEmbargo(url1, kNotifications, false);
recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
{
@@ -271,11 +271,11 @@ TEST_F(RecentSiteSettingsHelperTest, CheckRecentSitePermissions) {
// Confirm that powerful permissions are listed first, and that other
// permissions remain sorted by time.
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
map->SetContentSettingDefaultScope(url1, url1, kPopups, kBlocked);
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
map->SetContentSettingDefaultScope(url1, url1, kLocation, kAllowed);
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
map->SetContentSettingDefaultScope(url1, url1, kImages, kAllowed);
recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
@@ -294,9 +294,9 @@ TEST_F(RecentSiteSettingsHelperTest, CheckRecentSitePermissions) {
// Check that adding a conflicting permission to the regular profile after
// the incognito profile has been created returns correctly for each profile.
const GURL url4("http://example.com:8443");
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
incognito_map->SetContentSettingDefaultScope(url4, url4, kLocation, kAllowed);
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
map->SetContentSettingDefaultScope(url4, url4, kLocation, kBlocked);
recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
@@ -316,7 +316,7 @@ TEST_F(RecentSiteSettingsHelperTest, CheckRecentSitePermissions) {
// Check that resetting the permission to default in the regular profile
// does not affect the permission in the incognito profile.
- clock()->Advance(base::TimeDelta::FromHours(1));
+ clock()->Advance(base::Hours(1));
map->SetContentSettingDefaultScope(url4, url4, kLocation, kDefault);
recent_permissions = GetRecentSitePermissions(profile(), content_types, 3);
diff --git a/chromium/chrome/browser/ui/webui/settings/reset_settings_handler.cc b/chromium/chrome/browser/ui/webui/settings/reset_settings_handler.cc
index 53b8ae1f551..28dd707ddb9 100644
--- a/chromium/chrome/browser/ui/webui/settings/reset_settings_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/reset_settings_handler.cc
@@ -80,8 +80,7 @@ bool ResetSettingsHandler::ShouldShowResetProfileBanner(Profile* profile) {
// Otherwise, only show the banner if it has been less than |kBannerShowTime|
// since reset.
- static constexpr base::TimeDelta kBannerShowTime =
- base::TimeDelta::FromDays(5);
+ static constexpr base::TimeDelta kBannerShowTime = base::Days(5);
const base::TimeDelta since_reset = base::Time::Now() - reset_time;
return since_reset < kBannerShowTime;
}
@@ -98,33 +97,33 @@ void ResetSettingsHandler::OnJavascriptDisallowed() {
}
void ResetSettingsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"performResetProfileSettings",
base::BindRepeating(&ResetSettingsHandler::HandleResetProfileSettings,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"onShowResetProfileDialog",
base::BindRepeating(&ResetSettingsHandler::OnShowResetProfileDialog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getReportedSettings",
base::BindRepeating(&ResetSettingsHandler::HandleGetReportedSettings,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"onHideResetProfileDialog",
base::BindRepeating(&ResetSettingsHandler::OnHideResetProfileDialog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"onHideResetProfileBanner",
base::BindRepeating(&ResetSettingsHandler::OnHideResetProfileBanner,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getTriggeredResetToolName",
base::BindRepeating(
&ResetSettingsHandler::HandleGetTriggeredResetToolName,
base::Unretained(this)));
#if BUILDFLAG(IS_CHROMEOS_ASH)
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"onPowerwashDialogShow",
base::BindRepeating(&ResetSettingsHandler::OnShowPowerwashDialog,
base::Unretained(this)));
@@ -135,7 +134,7 @@ void ResetSettingsHandler::HandleResetProfileSettings(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(3U, args->GetSize());
+ CHECK_EQ(3U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
bool send_settings = false;
@@ -181,7 +180,7 @@ void ResetSettingsHandler::HandleGetReportedSettings(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
@@ -270,7 +269,7 @@ void ResetSettingsHandler::HandleGetTriggeredResetToolName(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
diff --git a/chromium/chrome/browser/ui/webui/settings/reset_settings_handler.h b/chromium/chrome/browser/ui/webui/settings/reset_settings_handler.h
index 2c08f8cb95b..e58fcb15ede 100644
--- a/chromium/chrome/browser/ui/webui/settings/reset_settings_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/reset_settings_handler.h
@@ -39,6 +39,10 @@ class ResetSettingsHandler : public SettingsPageUIHandler {
static bool ShouldShowResetProfileBanner(Profile* profile);
explicit ResetSettingsHandler(Profile* profile);
+
+ ResetSettingsHandler(const ResetSettingsHandler&) = delete;
+ ResetSettingsHandler& operator=(const ResetSettingsHandler&) = delete;
+
~ResetSettingsHandler() override;
// WebUIMessageHandler implementation.
@@ -107,8 +111,6 @@ class ResetSettingsHandler : public SettingsPageUIHandler {
// Used to cancel callbacks when JavaScript becomes disallowed.
base::WeakPtrFactory<ResetSettingsHandler> callback_weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ResetSettingsHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/reset_settings_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/reset_settings_handler_unittest.cc
index 1a424508126..f2c7346f674 100644
--- a/chromium/chrome/browser/ui/webui/settings/reset_settings_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/reset_settings_handler_unittest.cc
@@ -54,6 +54,10 @@ class TestingResetSettingsHandler : public ResetSettingsHandler {
set_web_ui(web_ui);
}
+ TestingResetSettingsHandler(const TestingResetSettingsHandler&) = delete;
+ TestingResetSettingsHandler& operator=(const TestingResetSettingsHandler&) =
+ delete;
+
size_t resets() const { return resetter_.resets(); }
using settings::ResetSettingsHandler::HandleResetProfileSettings;
@@ -65,8 +69,6 @@ class TestingResetSettingsHandler : public ResetSettingsHandler {
private:
MockProfileResetter resetter_;
-
- DISALLOW_COPY_AND_ASSIGN(TestingResetSettingsHandler);
};
class ResetSettingsHandlerTest : public testing::Test {
diff --git a/chromium/chrome/browser/ui/webui/settings/safety_check_handler.cc b/chromium/chrome/browser/ui/webui/settings/safety_check_handler.cc
index 73bf7307f7d..88250c1e388 100644
--- a/chromium/chrome/browser/ui/webui/settings/safety_check_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/safety_check_handler.cc
@@ -203,8 +203,8 @@ base::Time TimestampDelegate::FetchChromeCleanerScanCompletionTimestamp() {
// TODO(crbug.com/1139806): Part of the above workaround. If the timestamp in
// prefs is null or older than the one from the registry, then return the one
// from the registry. Otherwise return the one from prefs.
- base::Time end_time_from_registry = base::Time::FromDeltaSinceWindowsEpoch(
- base::TimeDelta::FromMicroseconds(end_time));
+ base::Time end_time_from_registry =
+ base::Time::FromDeltaSinceWindowsEpoch(base::Microseconds(end_time));
if (end_time_from_prefs.is_null() ||
end_time_from_prefs < end_time_from_registry) {
return end_time_from_registry;
@@ -368,7 +368,7 @@ void SafetyCheckHandler::HandlePerformSafetyCheck(const base::ListValue* args) {
FROM_HERE,
base::BindOnce(&SafetyCheckHandler::PerformSafetyCheck,
weak_ptr_factory_.GetWeakPtr()),
- base::TimeDelta::FromSeconds(1));
+ base::Seconds(1));
}
void SafetyCheckHandler::HandleGetParentRanDisplayString(
@@ -661,11 +661,6 @@ std::u16string SafetyCheckHandler::GetStringForPasswords(
return l10n_util::GetPluralStringFUTF16(
IDS_SETTINGS_COMPROMISED_PASSWORDS_COUNT, 0);
case PasswordsStatus::kCompromisedExist:
- // TODO(crbug.com/1128904): Clean up the old code path.
- if (!base::FeatureList::IsEnabled(features::kSafetyCheckWeakPasswords)) {
- return l10n_util::GetPluralStringFUTF16(
- IDS_SETTINGS_COMPROMISED_PASSWORDS_COUNT, compromised.value());
- }
if (weak.value() == 0) {
// Only compromised passwords, no weak passwords.
return l10n_util::GetPluralStringFUTF16(
@@ -793,7 +788,7 @@ std::u16string SafetyCheckHandler::GetStringForTimePassed(
base::Time::Exploded system_time_exploded;
system_time.LocalExplode(&system_time_exploded);
- const base::Time time_yesterday = system_time - base::TimeDelta::FromDays(1);
+ const base::Time time_yesterday = system_time - base::Days(1);
base::Time::Exploded time_yesterday_exploded;
time_yesterday.LocalExplode(&time_yesterday_exploded);
@@ -883,10 +878,7 @@ void SafetyCheckHandler::UpdatePasswordsResultOnCheckIdle() {
size_t num_compromised =
passwords_delegate_->GetCompromisedCredentials().size();
size_t num_weak = passwords_delegate_->GetWeakCredentials().size();
- // TODO(crbug.com/1128904): Clean up the old code path.
- if (num_compromised == 0 &&
- (num_weak == 0 ||
- !base::FeatureList::IsEnabled(features::kSafetyCheckWeakPasswords))) {
+ if (num_compromised == 0 && num_weak == 0) {
// If there are no |OnCredentialDone| callbacks with is_leaked = true, no
// need to wait for InsecureCredentialsManager callbacks any longer, since
// there should be none for the current password check.
@@ -1063,11 +1055,11 @@ void SafetyCheckHandler::OnJavascriptDisallowed() {
void SafetyCheckHandler::RegisterMessages() {
// Usage of base::Unretained(this) is safe, because web_ui() owns `this` and
// won't release ownership until destruction.
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kPerformSafetyCheck,
base::BindRepeating(&SafetyCheckHandler::HandlePerformSafetyCheck,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
kGetParentRanDisplayString,
base::BindRepeating(&SafetyCheckHandler::HandleGetParentRanDisplayString,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/safety_check_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/safety_check_handler_unittest.cc
index 2f1d49618e0..b4179a67fae 100644
--- a/chromium/chrome/browser/ui/webui/settings/safety_check_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/safety_check_handler_unittest.cc
@@ -117,13 +117,13 @@ class TestTimestampDelegate : public TimestampDelegate {
// same day. This test time is hard coded to prevent DST flakiness, see
// crbug.com/1066576.
return base::Time::FromDoubleT(1609459199).LocalMidnight() -
- base::TimeDelta::FromSeconds(1);
+ base::Seconds(1);
}
#if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
base::Time FetchChromeCleanerScanCompletionTimestamp() override {
// 2 seconds before midnight Dec 31st 2020.
return base::Time::FromDoubleT(1609459199).LocalMidnight() -
- base::TimeDelta::FromSeconds(2);
+ base::Seconds(2);
}
#endif
};
@@ -329,8 +329,6 @@ class SafetyCheckHandlerTest : public testing::Test {
};
void SafetyCheckHandlerTest::SetUp() {
- feature_list_.InitWithFeatures({features::kSafetyCheckWeakPasswords}, {});
-
TestingProfile::Builder builder;
profile_ = builder.Build();
@@ -1666,8 +1664,7 @@ TEST_F(SafetyCheckHandlerTest, CheckParentRanDisplayString) {
// same day. This test time is hard coded to prevent DST flakiness, see
// crbug.com/1066576.
const base::Time system_time =
- base::Time::FromDoubleT(1609459199).LocalMidnight() -
- base::TimeDelta::FromSeconds(1);
+ base::Time::FromDoubleT(1609459199).LocalMidnight() - base::Seconds(1);
// Display strings for given time deltas in seconds.
std::vector<std::tuple<std::u16string, int>> tuples{
std::make_tuple(u"a moment ago", 1),
@@ -1686,8 +1683,7 @@ TEST_F(SafetyCheckHandlerTest, CheckParentRanDisplayString) {
std::make_tuple(u"3 days ago", 60 * 60 * 24 * 4 - 1)};
// Test that above time deltas produce the corresponding display strings.
for (auto tuple : tuples) {
- const base::Time time =
- system_time - base::TimeDelta::FromSeconds(std::get<1>(tuple));
+ const base::Time time = system_time - base::Seconds(std::get<1>(tuple));
const std::u16string display_string =
safety_check_->GetStringForParentRan(time, system_time);
EXPECT_EQ(base::StrCat({u"Safety check ran ", std::get<0>(tuple)}),
@@ -1709,8 +1705,7 @@ TEST_F(SafetyCheckHandlerTest, CheckChromeCleanerRanDisplayString) {
// same day. This test time is hard coded to prevent DST flakiness, see
// crbug.com/1066576.
const base::Time system_time =
- base::Time::FromDoubleT(1609459199).LocalMidnight() -
- base::TimeDelta::FromSeconds(1);
+ base::Time::FromDoubleT(1609459199).LocalMidnight() - base::Seconds(1);
// Display strings for given time deltas in seconds.
std::vector<std::tuple<std::u16string, int>> tuples{
std::make_tuple(u"just now", 1),
@@ -1729,8 +1724,7 @@ TEST_F(SafetyCheckHandlerTest, CheckChromeCleanerRanDisplayString) {
std::make_tuple(u"3 days ago", 60 * 60 * 24 * 4 - 1)};
// Test that above time deltas produce the corresponding display strings.
for (auto tuple : tuples) {
- const base::Time time =
- system_time - base::TimeDelta::FromSeconds(std::get<1>(tuple));
+ const base::Time time = system_time - base::Seconds(std::get<1>(tuple));
display_string =
safety_check_->GetStringForChromeCleanerRan(time, system_time);
ReplaceBrowserName(&display_string);
diff --git a/chromium/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chromium/chrome/browser/ui/webui/settings/search_engines_handler.cc
index 8554df8b803..20cd911f0a4 100644
--- a/chromium/chrome/browser/ui/webui/settings/search_engines_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/search_engines_handler.cc
@@ -57,33 +57,37 @@ SearchEnginesHandler::~SearchEnginesHandler() {
}
void SearchEnginesHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getSearchEnginesList",
base::BindRepeating(&SearchEnginesHandler::HandleGetSearchEnginesList,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setDefaultSearchEngine",
base::BindRepeating(&SearchEnginesHandler::HandleSetDefaultSearchEngine,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
+ "setIsActiveSearchEngine",
+ base::BindRepeating(&SearchEnginesHandler::HandleSetIsActiveSearchEngine,
+ base::Unretained(this)));
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeSearchEngine",
base::BindRepeating(&SearchEnginesHandler::HandleRemoveSearchEngine,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"validateSearchEngineInput",
base::BindRepeating(
&SearchEnginesHandler::HandleValidateSearchEngineInput,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"searchEngineEditStarted",
base::BindRepeating(&SearchEnginesHandler::HandleSearchEngineEditStarted,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"searchEngineEditCancelled",
base::BindRepeating(
&SearchEnginesHandler::HandleSearchEngineEditCancelled,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"searchEngineEditCompleted",
base::BindRepeating(
&SearchEnginesHandler::HandleSearchEngineEditCompleted,
@@ -219,6 +223,10 @@ SearchEnginesHandler::CreateDictionaryForEngine(int index, bool is_default) {
list_controller_.CanMakeDefault(template_url));
dict->SetBoolean("default", is_default);
dict->SetBoolean("canBeEdited", list_controller_.CanEdit(template_url));
+ dict->SetBoolean("canBeActivated",
+ list_controller_.CanActivate(template_url));
+ dict->SetBoolean("canBeDeactivated",
+ list_controller_.CanDeactivate(template_url));
TemplateURL::Type type = template_url->type();
dict->SetBoolean("isOmniboxExtension",
type == TemplateURL::OMNIBOX_API_EXTENSION);
@@ -243,7 +251,7 @@ SearchEnginesHandler::CreateDictionaryForEngine(int index, bool is_default) {
void SearchEnginesHandler::HandleGetSearchEnginesList(
const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
AllowJavascript();
@@ -260,11 +268,24 @@ void SearchEnginesHandler::HandleSetDefaultSearchEngine(
if (index < 0 || index >= list_controller_.table_model()->RowCount())
return;
+ list_controller_.SetIsActiveTemplateURL(index, true);
list_controller_.MakeDefaultTemplateURL(index);
base::RecordAction(base::UserMetricsAction("Options_SearchEngineSetDefault"));
}
+void SearchEnginesHandler::HandleSetIsActiveSearchEngine(
+ const base::ListValue* args) {
+ CHECK_EQ(2U, args->GetList().size());
+ const int index = args->GetList()[0].GetInt();
+ const bool is_active = args->GetList()[1].GetBool();
+
+ if (index < 0 || index >= list_controller_.table_model()->RowCount())
+ return;
+
+ list_controller_.SetIsActiveTemplateURL(index, is_active);
+}
+
void SearchEnginesHandler::HandleRemoveSearchEngine(
const base::ListValue* args) {
int index;
@@ -316,7 +337,7 @@ void SearchEnginesHandler::OnEditedKeyword(TemplateURL* template_url,
void SearchEnginesHandler::HandleValidateSearchEngineInput(
const base::ListValue* args) {
- CHECK_EQ(3U, args->GetSize());
+ CHECK_EQ(3U, args->GetList().size());
const base::Value* callback_id;
std::string field_name;
diff --git a/chromium/chrome/browser/ui/webui/settings/search_engines_handler.h b/chromium/chrome/browser/ui/webui/settings/search_engines_handler.h
index a36946a8d3c..0a97ece8802 100644
--- a/chromium/chrome/browser/ui/webui/settings/search_engines_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/search_engines_handler.h
@@ -34,6 +34,10 @@ class SearchEnginesHandler : public SettingsPageUIHandler,
public EditSearchEngineControllerDelegate {
public:
explicit SearchEnginesHandler(Profile* profile);
+
+ SearchEnginesHandler(const SearchEnginesHandler&) = delete;
+ SearchEnginesHandler& operator=(const SearchEnginesHandler&) = delete;
+
~SearchEnginesHandler() override;
// ui::TableModelObserver implementation.
@@ -65,6 +69,10 @@ class SearchEnginesHandler : public SettingsPageUIHandler,
// Sets the search engine at the given index to be default. Called from WebUI.
void HandleSetDefaultSearchEngine(const base::ListValue* args);
+ // Activates or deactivates the search engine at the given index. Called from
+ // WebUI.
+ void HandleSetIsActiveSearchEngine(const base::ListValue* args);
+
// Starts an edit session for the search engine at the given index. If the
// index is -1, starts editing a new search engine instead of an existing one.
// Called from WebUI.
@@ -102,8 +110,6 @@ class SearchEnginesHandler : public SettingsPageUIHandler,
std::unique_ptr<EditSearchEngineController> edit_controller_;
PrefChangeRegistrar pref_change_registrar_;
base::WeakPtrFactory<SearchEnginesHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(SearchEnginesHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
index 179ad851bb1..abf175261b5 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
@@ -91,17 +91,17 @@ ClearBrowsingDataHandler::~ClearBrowsingDataHandler() {
}
void ClearBrowsingDataHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getInstalledApps",
base::BindRepeating(
&ClearBrowsingDataHandler::GetRecentlyLaunchedInstalledApps,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"clearBrowsingData",
base::BindRepeating(&ClearBrowsingDataHandler::HandleClearBrowsingData,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializeClearBrowsingData",
base::BindRepeating(&ClearBrowsingDataHandler::HandleInitialize,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.h b/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.h
index 3588663d7f7..2ebead281bf 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.h
@@ -10,6 +10,7 @@
#include <vector>
#include "base/containers/flat_set.h"
+#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "base/scoped_observation.h"
#include "base/values.h"
@@ -36,6 +37,10 @@ class ClearBrowsingDataHandler : public SettingsPageUIHandler,
public TemplateURLServiceObserver {
public:
ClearBrowsingDataHandler(content::WebUI* webui, Profile* profile);
+
+ ClearBrowsingDataHandler(const ClearBrowsingDataHandler&) = delete;
+ ClearBrowsingDataHandler& operator=(const ClearBrowsingDataHandler&) = delete;
+
~ClearBrowsingDataHandler() override;
// WebUIMessageHandler implementation.
@@ -145,8 +150,6 @@ class ClearBrowsingDataHandler : public SettingsPageUIHandler,
// The weak pointers are invalidated in |OnJavascriptDisallowed()| and
// |HandleInitialize()| to cancel previously initiated tasks.
base::WeakPtrFactory<ClearBrowsingDataHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ClearBrowsingDataHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.cc
index 312e28188dc..ba3da4b49ea 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.cc
@@ -107,7 +107,7 @@ CookiesViewHandler::Request::Request(TreeModelBatchBehavior batch_behavior,
base::OnceClosure initial_task)
: batch_behavior(batch_behavior), initial_task(std::move(initial_task)) {
if (batch_behavior == Request::ASYNC_BATCH)
- batch_end_task = base::DoNothing::Once();
+ batch_end_task = base::DoNothing();
}
CookiesViewHandler::Request::Request(base::OnceClosure initial_task,
@@ -145,39 +145,39 @@ void CookiesViewHandler::OnJavascriptDisallowed() {
}
void CookiesViewHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"localData.getDisplayList",
base::BindRepeating(&CookiesViewHandler::HandleGetDisplayList,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"localData.removeAll",
base::BindRepeating(&CookiesViewHandler::HandleRemoveAll,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"localData.removeShownItems",
base::BindRepeating(&CookiesViewHandler::HandleRemoveShownItems,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"localData.removeItem",
base::BindRepeating(&CookiesViewHandler::HandleRemoveItem,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"localData.getCookieDetails",
base::BindRepeating(&CookiesViewHandler::HandleGetCookieDetails,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"localData.getNumCookiesString",
base::BindRepeating(&CookiesViewHandler::HandleGetNumCookiesString,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"localData.removeSite",
base::BindRepeating(&CookiesViewHandler::HandleRemoveSite,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"localData.removeThirdPartyCookies",
base::BindRepeating(&CookiesViewHandler::HandleRemoveThirdParty,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"localData.reload",
base::BindRepeating(&CookiesViewHandler::HandleReloadCookies,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.h b/chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.h
index 1c3d0725bbc..9e267f73adf 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/settings_cookies_view_handler.h
@@ -11,6 +11,7 @@
#include <vector>
#include "base/compiler_specific.h"
+#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "chrome/browser/browsing_data/cookies_tree_model.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
@@ -23,6 +24,10 @@ class CookiesViewHandler : public SettingsPageUIHandler,
public CookiesTreeModel::Observer {
public:
CookiesViewHandler();
+
+ CookiesViewHandler(const CookiesViewHandler&) = delete;
+ CookiesViewHandler& operator=(const CookiesViewHandler&) = delete;
+
~CookiesViewHandler() override;
// SettingsPageUIHandler:
@@ -180,8 +185,6 @@ class CookiesViewHandler : public SettingsPageUIHandler,
// Used to cancel callbacks when JavaScript becomes disallowed.
base::WeakPtrFactory<CookiesViewHandler> callback_weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(CookiesViewHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
index 92ebcec5e49..c140ad4de63 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
@@ -33,11 +33,11 @@ DefaultBrowserHandler::DefaultBrowserHandler() = default;
DefaultBrowserHandler::~DefaultBrowserHandler() = default;
void DefaultBrowserHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestDefaultBrowserState",
base::BindRepeating(&DefaultBrowserHandler::RequestDefaultBrowserState,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setAsDefaultBrowser",
base::BindRepeating(&DefaultBrowserHandler::SetAsDefaultBrowser,
base::Unretained(this)));
@@ -63,7 +63,7 @@ void DefaultBrowserHandler::RequestDefaultBrowserState(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(args->GetSize(), 1U);
+ CHECK_EQ(args->GetList().size(), 1U);
CHECK(args->GetString(0, &check_default_callback_id_));
default_browser_worker_->StartCheckIsDefault(
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.h b/chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.h
index 92f83a28a9c..3b6cc6b0e75 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/settings_default_browser_handler.h
@@ -28,6 +28,10 @@ namespace settings {
class DefaultBrowserHandler : public SettingsPageUIHandler {
public:
DefaultBrowserHandler();
+
+ DefaultBrowserHandler(const DefaultBrowserHandler&) = delete;
+ DefaultBrowserHandler& operator=(const DefaultBrowserHandler&) = delete;
+
~DefaultBrowserHandler() override;
// SettingsPageUIHandler implementation.
@@ -62,8 +66,6 @@ class DefaultBrowserHandler : public SettingsPageUIHandler {
// Used to invalidate the DefaultBrowserWorker callback.
base::WeakPtrFactory<DefaultBrowserHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(DefaultBrowserHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chromium/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
index c773004acca..d61b3f37a31 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -103,7 +103,6 @@
#include "chrome/browser/ash/login/quick_unlock/quick_unlock_utils.h"
#include "chrome/browser/ash/ownership/owner_settings_service_ash.h"
#include "chrome/browser/ash/ownership/owner_settings_service_ash_factory.h"
-#include "chrome/browser/ui/webui/settings/chromeos/constants/routes.mojom.h"
#include "chrome/common/webui_url_constants.h"
#include "components/user_manager/user_manager.h"
#include "ui/chromeos/devicetype_utils.h"
@@ -112,6 +111,10 @@
#include "ui/accessibility/accessibility_features.h"
#endif
+#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
+#include "chrome/browser/ui/webui/settings/chromeos/constants/routes.mojom.h"
+#endif
+
#if defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
#include "ui/display/screen.h"
#endif
@@ -132,8 +135,7 @@
#include "chrome/browser/ui/webui/certificate_manager_localized_strings_provider.h"
#endif
-#if defined(USE_OZONE)
-#include "ui/base/ui_base_features.h"
+#if defined(OS_LINUX)
#include "ui/ozone/public/ozone_platform.h"
#endif
@@ -234,9 +236,6 @@ void AddA11yStrings(content::WebUIDataSource* html_source) {
html_source->AddBoolean("isWindows10OrNewer",
base::win::GetVersion() >= base::win::Version::WIN10);
#endif
- html_source->AddBoolean(
- "showExperimentalA11yLabels",
- base::FeatureList::IsEnabled(features::kExperimentalAccessibilityLabels));
#if !BUILDFLAG(IS_CHROMEOS_ASH)
html_source->AddBoolean(
@@ -391,15 +390,9 @@ void AddAppearanceStrings(content::WebUIDataSource* html_source,
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
#if defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)
-#if defined(USE_OZONE)
- const bool show_custom_chrome_frame =
- features::IsUsingOzonePlatform() &&
- ui::OzonePlatform::GetInstance()
- ->GetPlatformRuntimeProperties()
- .supports_server_side_window_decorations;
-#else
- const bool show_custom_chrome_frame = true;
-#endif
+ bool show_custom_chrome_frame = ui::OzonePlatform::GetInstance()
+ ->GetPlatformRuntimeProperties()
+ .supports_server_side_window_decorations;
html_source->AddBoolean("showCustomChromeFrame", show_custom_chrome_frame);
#endif
}
@@ -597,8 +590,6 @@ void AddChromeCleanupStrings(content::WebUIDataSource* html_source) {
IDS_SETTINGS_RESET_CLEANUP_TRY_AGAIN_BUTTON_LABEL},
{"chromeCleanupExplanationLogsPermissionPref",
IDS_SETTINGS_RESET_CLEANUP_LOGS_PERMISSION_PREF},
- {"chromeCleanupExplanationNotificationPermission",
- IDS_SETTINGS_RESET_CLEANUP_EXPLANTION_NOTIFICATION_PERMISSION},
{"chromeCleanupTitleCleanupUnavailable",
IDS_SETTINGS_RESET_CLEANUP_TITLE_CLEANUP_UNAVAILABLE},
{"chromeCleanupExplanationCleanupUnavailable",
@@ -867,11 +858,10 @@ bool IsFidoAuthenticationAvailable(autofill::PersonalDataManager* personal_data,
if (!autofill_manager)
return false;
- // Show the toggle switch only if the flag is enabled. Once returned, this
- // decision may be overridden (from true to false) by the caller in the
- // payments section if no platform authenticator is found.
- return base::FeatureList::IsEnabled(
- autofill::features::kAutofillCreditCardAuthentication);
+ // Show the toggle switch only if FIDO authentication is available. Once
+ // returned, this decision may be overridden (from true to false) by the
+ // caller in the payments section if no platform authenticator is found.
+ return ::autofill::IsCreditCardFidoAuthenticationEnabled();
}
void AddAutofillStrings(content::WebUIDataSource* html_source,
@@ -1003,6 +993,14 @@ void AddAutofillStrings(content::WebUIDataSource* html_source,
{"editPasswordTitle", IDS_SETTINGS_PASSWORD_EDIT_TITLE},
{"editPassword", IDS_SETTINGS_PASSWORD_EDIT},
{"editPasswordFootnote", IDS_SETTINGS_PASSWORD_EDIT_FOOTNOTE},
+ {"addPasswordTitle", IDS_SETTINGS_PASSWORD_ADD_TITLE},
+ {"addPasswordFootnote", IDS_SETTINGS_PASSWORD_ADD_FOOTNOTE},
+ {"addPasswordStoreOptionAccount",
+ IDS_SETTINGS_PASSWORD_ADD_STORE_OPTION_ACCOUNT},
+ {"addPasswordStoreOptionDevice",
+ IDS_PASSWORD_MANAGER_DESTINATION_DROPDOWN_SAVE_TO_DEVICE},
+ {"addPasswordStorePickerA11yDescription",
+ IDS_PASSWORD_MANAGER_DESTINATION_DROPDOWN_ACCESSIBLE_NAME},
{"usernameAlreadyUsed", IDS_SETTINGS_PASSWORD_USERNAME_ALREADY_USED},
{"copyPassword", IDS_SETTINGS_PASSWORD_COPY},
{"passwordStoredOnDevice", IDS_SETTINGS_PASSWORD_STORED_ON_DEVICE},
@@ -1189,6 +1187,11 @@ void AddAutofillStrings(content::WebUIDataSource* html_source,
base::FeatureList::IsEnabled(
autofill::features::kAutofillEnableSupportForHonorificPrefixes));
+ html_source->AddBoolean(
+ "addPasswordsInSettingsEnabled",
+ base::FeatureList::IsEnabled(
+ password_manager::features::kSupportForAddPasswordsInSettings));
+
html_source->AddLocalizedStrings(kLocalizedStrings);
}
@@ -1347,6 +1350,8 @@ bool ShouldLinkSecureDnsOsSettings() {
#if BUILDFLAG(IS_CHROMEOS_ASH)
return base::FeatureList::IsEnabled(chromeos::features::kEnableDnsProxy) &&
base::FeatureList::IsEnabled(::features::kDnsProxyEnableDOH);
+#elif BUILDFLAG(IS_CHROMEOS_LACROS)
+ return true;
#else
return false;
#endif
@@ -1457,7 +1462,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
IDS_SETTINGS_NETWORK_PREDICTION_ENABLED_DESC},
{"networkPredictionEnabledDescCookiesPage",
IDS_SETTINGS_NETWORK_PREDICTION_ENABLED_DESC_COOKIES_PAGE},
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
{"openChromeOSSecureDnsSettingsLabel",
IDS_SETTINGS_SECURE_DNS_OPEN_CHROME_OS_SETTINGS_LABEL},
#endif
@@ -1487,12 +1492,15 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
html_source->AddBoolean(
"driveSuggestAvailable",
base::FeatureList::IsEnabled(omnibox::kDocumentProvider));
+ html_source->AddBoolean(
+ "consolidatedSiteStorageControlsEnabled",
+ base::FeatureList::IsEnabled(features::kConsolidatedSiteStorageControls));
bool show_secure_dns = IsSecureDnsAvailable();
bool link_secure_dns = ShouldLinkSecureDnsOsSettings();
html_source->AddBoolean("showSecureDnsSetting",
show_secure_dns && !link_secure_dns);
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
html_source->AddBoolean("showSecureDnsSettingLink",
show_secure_dns && link_secure_dns);
html_source->AddString(
@@ -1536,89 +1544,54 @@ void AddPrivacySandboxStrings(content::WebUIDataSource* html_source,
IDS_SETTINGS_PRIVACY_SANDBOX_COOKIES_DIALOG},
{"privacySandboxCookiesDialogMore",
IDS_SETTINGS_PRIVACY_SANDBOX_COOKIES_DIALOG_MORE},
+ {"privacySandboxPageHeading", IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_HEADING},
+ {"privacySandboxPageExplanation2Phase2",
+ IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_EXPLANATION2_PHASE2},
+ {"privacySandboxPageSettingTitle",
+ IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_SETTING_TITLE},
+ {"privacySandboxPageSettingExplanation1Phase2",
+ IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_SETTING_EXPLANATION1_PHASE2},
+ {"privacySandboxPageSettingExplanation2Phase2",
+ IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_SETTING_EXPLANATION2_PHASE2},
+ {"privacySandboxPageSettingExplanation3Phase2",
+ IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_SETTING_EXPLANATION3_PHASE2},
+ {"privacySandboxPageDetails", IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_DETAILS},
+ {"privacySandboxPageFlocHeading",
+ IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_FLOC_HEADING},
+ {"privacySandboxPageFlocStatus",
+ IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_FLOC_STATUS},
+ {"privacySandboxPageFlocCohort",
+ IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_FLOC_COHORT},
+ {"privacySandboxPageFlocCohortNextUpdate",
+ IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_FLOC_COHORT_NEXT_UPDATE},
+ {"privacySandboxPageFlocResetCohort",
+ IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_FLOC_RESET_COHORT},
};
html_source->AddLocalizedStrings(kLocalizedStrings);
- // Strings that only need to be available when the flag is enabled.
- if (PrivacySandboxSettingsFactory::GetForProfile(profile)
- ->PrivacySandboxSettingsFunctional()) {
- static constexpr webui::LocalizedString kLocalizedStringsBehindFlag[] = {
- {"privacySandboxPageHeading",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_HEADING},
- {"privacySandboxPageExplanation1",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_EXPLANATION1},
- {"privacySandboxPageExplanation2",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_EXPLANATION2},
- {"privacySandboxPageExplanation3",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_EXPLANATION3},
- {"privacySandboxPageExplanation2Phase2",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_EXPLANATION2_PHASE2},
- {"privacySandboxPageSettingTitle",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_SETTING_TITLE},
- {"privacySandboxPageSettingExplanation1",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_SETTING_EXPLANATION1},
- {"privacySandboxPageSettingExplanation2",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_SETTING_EXPLANATION2},
- {"privacySandboxPageSettingExplanation3",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_SETTING_EXPLANATION3},
- {"privacySandboxPageSettingExplanation1Phase2",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_SETTING_EXPLANATION1_PHASE2},
- {"privacySandboxPageSettingExplanation2Phase2",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_SETTING_EXPLANATION2_PHASE2},
- {"privacySandboxPageSettingExplanation3Phase2",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_SETTING_EXPLANATION3_PHASE2},
- {"privacySandboxPageDetails",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_DETAILS},
- {"privacySandboxPageFlocHeading",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_FLOC_HEADING},
- {"privacySandboxPageFlocStatus",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_FLOC_STATUS},
- {"privacySandboxPageFlocCohort",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_FLOC_COHORT},
- {"privacySandboxPageFlocCohortNextUpdate",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_FLOC_COHORT_NEXT_UPDATE},
- {"privacySandboxPageFlocResetCohort",
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_FLOC_RESET_COHORT},
- };
- html_source->AddLocalizedStrings(kLocalizedStringsBehindFlag);
-
- // TODO(crbug/1152336): Solidify the final URL in code once the website is
- // launched.
- html_source->AddString("privacySandboxURL",
- features::kPrivacySandboxSettingsURL.Get());
- html_source->AddString(
- "privacySandboxPageExplanation4",
- l10n_util::GetStringFUTF16(
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_EXPLANATION4,
- base::ASCIIToUTF16(features::kPrivacySandboxSettingsURL.Get())));
-
- html_source->AddString(
- "privacySandboxPageExplanation1Phase2",
- l10n_util::GetStringFUTF16(
- IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_EXPLANATION1_PHASE2,
- base::ASCIIToUTF16(features::kPrivacySandboxSettingsURL.Get())));
-
- // The complete FLoC explanation string must be built from two strings,
- // one provided by the Privacy Sandbox service, and one with a URL
- // replacement based on a feature parameter.
- std::u16string floc_explanation =
- PrivacySandboxSettingsFactory::GetForProfile(profile)
- ->GetFlocDescriptionForDisplay() +
- u" " + // Whitespace is a valid separator w.r.t l10n.
- l10n_util::GetStringFUTF16(
- IDS_SETTINGS_PRIVACY_SANDBOX_FLOC_TRIAL_ACTIVE,
- base::ASCIIToUTF16(
- features::kPrivacySandboxSettings2FlocURL.Get()));
- html_source->AddString("privacySandboxPageFlocExplanation",
- floc_explanation);
-
- // The FLoC compute frequency string is constant through the life of the
- // profile, and so the relevant string can be injected here, rather than
- // fetched dynamically from JS.
- html_source->AddString("privacySandboxPageFlocResetExplanation",
- PrivacySandboxSettingsFactory::GetForProfile(profile)
- ->GetFlocResetExplanationForDisplay());
- }
+ html_source->AddString(
+ "privacySandboxPageExplanation1Phase2",
+ l10n_util::GetStringFUTF16(
+ IDS_SETTINGS_PRIVACY_SANDBOX_PAGE_EXPLANATION1_PHASE2,
+ u"https://www.privacysandbox.com"));
+
+ // The complete FLoC explanation string must be built from two strings,
+ // one provided by the Privacy Sandbox service, and one with a URL
+ // replacement based on a feature parameter.
+ std::u16string floc_explanation =
+ PrivacySandboxSettingsFactory::GetForProfile(profile)
+ ->GetFlocDescriptionForDisplay() +
+ u" " + // Whitespace is a valid separator w.r.t l10n.
+ l10n_util::GetStringFUTF16(IDS_SETTINGS_PRIVACY_SANDBOX_FLOC_TRIAL_ACTIVE,
+ u"https://privacysandbox.com/proposals/floc");
+ html_source->AddString("privacySandboxPageFlocExplanation", floc_explanation);
+
+ // The FLoC compute frequency string is constant through the life of the
+ // profile, and so the relevant string can be injected here, rather than
+ // fetched dynamically from JS.
+ html_source->AddString("privacySandboxPageFlocResetExplanation",
+ PrivacySandboxSettingsFactory::GetForProfile(profile)
+ ->GetFlocResetExplanationForDisplay());
}
void AddPrivacyReviewStrings(content::WebUIDataSource* html_source) {
@@ -1629,6 +1602,8 @@ void AddPrivacyReviewStrings(content::WebUIDataSource* html_source) {
{"privacyReviewPromoBody", IDS_SETTINGS_PRIVACY_REVIEW_PROMO_BODY},
{"privacyReviewPromoStartButton",
IDS_SETTINGS_PRIVACY_REVIEW_PROMO_START_BUTTON},
+ {"privacyReviewBackButton", IDS_SETTINGS_PRIVACY_REVIEW_BACK_BUTTON},
+ {"privacyReviewSteps", IDS_SETTINGS_PRIVACY_REVIEW_STEPS},
{"privacyReviewNextButton", IDS_SETTINGS_PRIVACY_REVIEW_NEXT_BUTTON},
{"privacyReviewFeatureDescriptionHeader",
IDS_SETTINGS_PRIVACY_REVIEW_FEATURE_DESCRIPTION_HEADER},
@@ -1636,8 +1611,12 @@ void AddPrivacyReviewStrings(content::WebUIDataSource* html_source) {
IDS_SETTINGS_PRIVACY_REVIEW_WHAT_YOU_SHARE_WITH_GOOGLE},
{"privacyReviewWelcomeCardHeader",
IDS_SETTINGS_PRIVACY_REVIEW_WELCOME_CARD_HEADER},
+ {"privacyReviewWelcomeCardSubHeader",
+ IDS_SETTINGS_PRIVACY_REVIEW_WELCOME_CARD_SUB_HEADER},
{"privacyReviewWelcomeCardStartButton",
IDS_SETTINGS_PRIVACY_REVIEW_WELCOME_CARD_START_BUTTON},
+ {"privacyReviewWelcomeCardDontShowAgainCheckbox",
+ IDS_SETTINGS_PRIVACY_REVIEW_WELCOME_CARD_DONT_SHOW_AGAIN_CHECKBOX},
{"privacyReviewCompletionCardHeader",
IDS_SETTINGS_PRIVACY_REVIEW_COMPLETION_CARD_HEADER},
{"privacyReviewCompletionCardLeaveButton",
@@ -1654,6 +1633,20 @@ void AddPrivacyReviewStrings(content::WebUIDataSource* html_source) {
IDS_SETTINGS_PRIVACY_REVIEW_MSBB_PRIVACY_DESCRIPTION1},
{"privacyReviewMsbbPrivacyDescription2",
IDS_SETTINGS_PRIVACY_REVIEW_MSBB_PRIVACY_DESCRIPTION2},
+ {"privacyReviewClearOnExitCardHeader",
+ IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_CARD_HEADER},
+ {"privacyReviewClearOnExitFeatureDescription1",
+ IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION1},
+ {"privacyReviewClearOnExitFeatureDescription2",
+ IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION2},
+ {"privacyReviewHistorySyncCardHeader",
+ IDS_SETTINGS_PRIVACY_REVIEW_HISTORY_SYNC_CARD_HEADER},
+ {"privacyReviewHistorySyncFeatureDescription1",
+ IDS_SETTINGS_PRIVACY_REVIEW_HISTORY_SYNC_FEATURE_DESCRIPTION1},
+ {"privacyReviewHistorySyncFeatureDescription2",
+ IDS_SETTINGS_PRIVACY_REVIEW_HISTORY_SYNC_FEATURE_DESCRIPTION2},
+ {"privacyReviewHistorySyncPrivacyDescription1",
+ IDS_SETTINGS_PRIVACY_REVIEW_HISTORY_SYNC_PRIVACY_DESCRIPTION1},
};
html_source->AddLocalizedStrings(kLocalizedStrings);
}
@@ -1723,6 +1716,8 @@ void AddSearchInSettingsStrings(content::WebUIDataSource* html_source) {
void AddSearchStrings(content::WebUIDataSource* html_source) {
static constexpr webui::LocalizedString kLocalizedStrings[] = {
{"searchEnginesManage", IDS_SETTINGS_SEARCH_MANAGE_SEARCH_ENGINES},
+ {"searchEnginesManageSiteSearch",
+ IDS_SETTINGS_SEARCH_MANAGE_SEARCH_ENGINES_AND_SITE_SEARCH},
{"searchPageTitle", IDS_SETTINGS_SEARCH},
{"searchExplanation", IDS_SETTINGS_SEARCH_EXPLANATION},
};
@@ -1735,24 +1730,44 @@ void AddSearchStrings(content::WebUIDataSource* html_source) {
void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
static constexpr webui::LocalizedString kLocalizedStrings[] = {
{"searchEnginesPageTitle", IDS_SETTINGS_SEARCH_ENGINES},
+ {"searchEnginesPageExplanation",
+ IDS_SETTINGS_SEARCH_ENGINES_PAGE_EXPLANATION},
{"searchEnginesAddSearchEngine",
IDS_SETTINGS_SEARCH_ENGINES_ADD_SEARCH_ENGINE},
{"searchEnginesEditSearchEngine",
IDS_SETTINGS_SEARCH_ENGINES_EDIT_SEARCH_ENGINE},
{"searchEngines", IDS_SETTINGS_SEARCH_ENGINES},
{"searchEnginesDefault", IDS_SETTINGS_SEARCH_ENGINES_DEFAULT_ENGINES},
- {"searchEnginesActive", IDS_SETTINGS_SEARCH_ENGINES_YOUR_ENGINES},
+ {"searchEnginesSearchEngines",
+ IDS_SETTINGS_SEARCH_ENGINES_SEARCH_ENGINES},
+ {"searchEnginesSearchEnginesExplanation",
+ IDS_SETTINGS_SEARCH_ENGINES_SEARCH_ENGINES_EXPLANATION},
+ {"searchEnginesSiteSearch", IDS_SETTINGS_SEARCH_ENGINES_SITE_SEARCH},
+ {"searchEnginesSiteSearchExplanation",
+ IDS_SETTINGS_SEARCH_ENGINES_SITE_SEARCH_EXPLANATION},
+ {"searchEnginesNoSitesAdded", IDS_SETTINGS_SEARCH_ENGINES_NO_SITES_ADDED},
+ {"searchEnginesInactiveShortcuts",
+ IDS_SETTINGS_SEARCH_ENGINES_INACTIVE_SHORTCUTS},
+ {"searchEnginesNoInactiveShortcuts",
+ IDS_SETTINGS_SEARCH_ENGINES_NO_INACTIVE_SHORTCUTS},
{"searchEnginesOther", IDS_SETTINGS_SEARCH_ENGINES_OTHER_ENGINES},
{"searchEnginesNoOtherEngines",
IDS_SETTINGS_SEARCH_ENGINES_NO_OTHER_ENGINES},
{"searchEnginesExtension", IDS_SETTINGS_SEARCH_ENGINES_EXTENSION_ENGINES},
+ {"searchEnginesExtensionExplanation",
+ IDS_SETTINGS_SEARCH_ENGINES_EXTENSION_ENGINES_EXPLANATION},
{"searchEnginesSearch", IDS_SETTINGS_SEARCH_ENGINES_SEARCH},
{"searchEnginesSearchEngine", IDS_SETTINGS_SEARCH_ENGINES_SEARCH_ENGINE},
+ {"searchEnginesSiteOrPage", IDS_SETTINGS_SEARCH_ENGINES_SITE_OR_PAGE},
+ {"searchEnginesInactiveSite", IDS_SETTINGS_SEARCH_ENGINES_INACTIVE_SITE},
{"searchEnginesKeyword", IDS_SETTINGS_SEARCH_ENGINES_KEYWORD},
+ {"searchEnginesShortcut", IDS_SETTINGS_SEARCH_ENGINES_SHORTCUT},
{"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL},
{"searchEnginesQueryURLExplanation",
IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION},
{"searchEnginesMakeDefault", IDS_SETTINGS_SEARCH_ENGINES_MAKE_DEFAULT},
+ {"searchEnginesActivate", IDS_SETTINGS_SEARCH_ENGINES_ACTIVATE},
+ {"searchEnginesDeactivate", IDS_SETTINGS_SEARCH_ENGINES_DEACTIVATE},
{"searchEnginesRemoveFromList",
IDS_SETTINGS_SEARCH_ENGINES_REMOVE_FROM_LIST},
{"searchEnginesManageExtension",
@@ -1765,14 +1780,19 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
IDS_SETTINGS_SEARCH_ENGINES_KEYBOARD_SHORTCUTS_SPACE_OR_TAB},
{"searchEnginesKeyboardShortcutsTab",
IDS_SETTINGS_SEARCH_ENGINES_KEYBOARD_SHORTCUTS_TAB},
-
+ {"searchEnginesAdditionalSites",
+ IDS_SETTINGS_SEARCH_ENGINES_ADDITIONAL_SITES},
+ {"searchEnginesAdditionalInactiveSites",
+ IDS_SETTINGS_SEARCH_ENGINES_ADDITIONAL_INACTIVE_SITES},
+ {"searchEnginesAdditionalExtensions",
+ IDS_SETTINGS_SEARCH_ENGINES_ADDITIONAL_EXTENSIONS},
};
html_source->AddLocalizedStrings(kLocalizedStrings);
html_source->AddBoolean(
"showKeywordTriggerSetting",
base::FeatureList::IsEnabled(omnibox::kKeywordSpaceTriggeringSetting));
html_source->AddBoolean(
- "showActiveSearchEngines",
+ "isActiveSearchEnginesFlagEnabled",
base::FeatureList::IsEnabled(omnibox::kActiveSearchEngines));
}
@@ -1841,8 +1861,8 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
{"siteSettingsCategoryPageTitle", IDS_SETTINGS_SITE_SETTINGS_CATEGORY},
{"siteSettingsRecentPermissionsSectionLabel",
IDS_SETTINGS_SITE_SETTINGS_RECENT_ACTIVITY},
- {"siteSettingsCategoryCamera", IDS_SETTINGS_SITE_SETTINGS_CAMERA},
- {"siteSettingsCameraLabel", IDS_SETTINGS_SITE_SETTINGS_CAMERA_LABEL},
+ {"siteSettingsCategoryCamera", IDS_SITE_SETTINGS_TYPE_CAMERA},
+ {"siteSettingsCameraLabel", IDS_SITE_SETTINGS_TYPE_CAMERA},
{"cookiePageTitle", IDS_SETTINGS_COOKIES_PAGE},
{"cookiePageGeneralControls", IDS_SETTINGS_COOKIES_CONTROLS},
{"cookiePageAllowAll", IDS_SETTINGS_COOKIES_ALLOW_ALL},
@@ -1864,31 +1884,31 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
{"cookiePageBlockAllBulTwo", IDS_SETTINGS_COOKIES_BLOCK_ALL_BULLET_TWO},
{"cookiePageBlockAllBulThree", IDS_SETTINGS_COOKIES_BLOCK_ALL_BULLET_THREE},
{"cookiePageClearOnExit", IDS_SETTINGS_COOKIES_CLEAR_ON_EXIT},
+ {"cookiePageAllSitesLink", IDS_SETTINGS_COOKIES_ALL_SITES_LINK},
{"cookiePageAllowExceptions", IDS_SETTINGS_COOKIES_ALLOW_EXCEPTIONS},
{"cookiePageBlockExceptions", IDS_SETTINGS_COOKIES_BLOCK_EXCEPTIONS},
{"cookiePageSessionOnlyExceptions",
IDS_SETTINGS_COOKIES_SESSION_ONLY_EXCEPTIONS},
{"cookiesManageSiteSpecificExceptions",
IDS_SETTINGS_COOKIES_SITE_SPECIFIC_EXCEPTIONS},
- {"siteSettingsCategoryCookies", IDS_SETTINGS_SITE_SETTINGS_COOKIES},
- {"siteSettingsCategoryHandlers", IDS_SETTINGS_SITE_SETTINGS_HANDLERS},
- {"siteSettingsCategoryImages", IDS_SETTINGS_SITE_SETTINGS_IMAGES},
+ {"siteSettingsCategoryCookies", IDS_SITE_SETTINGS_TYPE_COOKIES},
+ {"siteSettingsCategoryHandlers", IDS_SITE_SETTINGS_TYPE_HANDLERS},
+ {"siteSettingsCategoryImages", IDS_SITE_SETTINGS_TYPE_IMAGES},
{"siteSettingsCategoryInsecureContent",
- IDS_SETTINGS_SITE_SETTINGS_INSECURE_CONTENT},
- {"siteSettingsCategoryLocation", IDS_SETTINGS_SITE_SETTINGS_LOCATION},
- {"siteSettingsCategoryJavascript", IDS_SETTINGS_SITE_SETTINGS_JAVASCRIPT},
- {"siteSettingsCategoryMicrophone", IDS_SETTINGS_SITE_SETTINGS_MIC},
- {"siteSettingsMicrophoneLabel", IDS_SETTINGS_SITE_SETTINGS_MIC_LABEL},
- {"siteSettingsCategoryNotifications",
- IDS_SETTINGS_SITE_SETTINGS_NOTIFICATIONS},
+ IDS_SITE_SETTINGS_TYPE_INSECURE_CONTENT},
+ {"siteSettingsCategoryLocation", IDS_SITE_SETTINGS_TYPE_LOCATION},
+ {"siteSettingsCategoryJavascript", IDS_SITE_SETTINGS_TYPE_JAVASCRIPT},
+ {"siteSettingsCategoryMicrophone", IDS_SITE_SETTINGS_TYPE_MIC},
+ {"siteSettingsMicrophoneLabel", IDS_SITE_SETTINGS_TYPE_MIC},
+ {"siteSettingsCategoryNotifications", IDS_SITE_SETTINGS_TYPE_NOTIFICATIONS},
{"siteSettingsNotificationsAsk",
IDS_SETTINGS_SITE_SETTINGS_NOTIFICATIONS_ASK},
{"siteSettingsNotificationsBlock",
IDS_SETTINGS_SITE_SETTINGS_NOTIFICATIONS_BLOCK},
{"siteSettingsEnableQuietNotificationPrompts",
IDS_SETTINGS_SITE_SETTINGS_ENABLE_QUIET_NOTIFICATION_PROMPTS},
- {"siteSettingsCategoryPopups", IDS_SETTINGS_SITE_SETTINGS_POPUPS},
- {"siteSettingsCategoryZoomLevels", IDS_SETTINGS_SITE_SETTINGS_ZOOM_LEVELS},
+ {"siteSettingsCategoryPopups", IDS_SITE_SETTINGS_TYPE_POPUPS_REDIRECTS},
+ {"siteSettingsCategoryZoomLevels", IDS_SITE_SETTINGS_TYPE_ZOOM_LEVELS},
{"siteSettingsAllSites", IDS_SETTINGS_SITE_SETTINGS_ALL_SITES},
{"siteSettingsAllSitesDescription",
IDS_SETTINGS_SITE_SETTINGS_ALL_SITES_DESCRIPTION},
@@ -1902,65 +1922,68 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
IDS_SETTINGS_SITE_SETTINGS_ALL_SITES_SORT_METHOD_NAME},
{"siteSettingsSiteRepresentationSeparator",
IDS_SETTINGS_SITE_SETTINGS_SITE_REPRESENTATION_SEPARATOR},
+ {"siteSettingsAppProtocolHandlers",
+ IDS_SETTINGS_SITE_SETTINGS_APP_PROTOCOL_HANDLERS},
+ {"siteSettingsAppAllowedProtocolHandlersDescription",
+ IDS_SETTINGS_SITE_SETTINGS_APP_ALLOWED_PROTOCOL_HANDLERS_DESCRIPTION},
+ {"siteSettingsAppDisallowedProtocolHandlersDescription",
+ IDS_SETTINGS_SITE_SETTINGS_APP_DISALLOWED_PROTOCOL_HANDLERS_DESCRIPTION},
{"siteSettingsAutomaticDownloads",
- IDS_SETTINGS_SITE_SETTINGS_AUTOMATIC_DOWNLOADS},
+ IDS_SITE_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS},
{"siteSettingsAutomaticDownloadsMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_AUTOMATIC_DOWNLOADS_MID_SENTENCE},
- {"siteSettingsBackgroundSync", IDS_SETTINGS_SITE_SETTINGS_BACKGROUND_SYNC},
+ IDS_SITE_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS_MID_SENTENCE},
+ {"siteSettingsBackgroundSync", IDS_SITE_SETTINGS_TYPE_BACKGROUND_SYNC},
{"siteSettingsBackgroundSyncMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_BACKGROUND_SYNC_MID_SENTENCE},
- {"siteSettingsCamera", IDS_SETTINGS_SITE_SETTINGS_CAMERA},
+ IDS_SITE_SETTINGS_TYPE_BACKGROUND_SYNC_MID_SENTENCE},
+ {"siteSettingsCamera", IDS_SITE_SETTINGS_TYPE_CAMERA},
{"siteSettingsCameraMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_CAMERA_MID_SENTENCE},
- {"siteSettingsClipboard", IDS_SETTINGS_SITE_SETTINGS_CLIPBOARD},
+ IDS_SITE_SETTINGS_TYPE_CAMERA_MID_SENTENCE},
+ {"siteSettingsClipboard", IDS_SITE_SETTINGS_TYPE_CLIPBOARD},
{"siteSettingsClipboardMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_CLIPBOARD_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_CLIPBOARD_MID_SENTENCE},
{"siteSettingsClipboardAsk", IDS_SETTINGS_SITE_SETTINGS_CLIPBOARD_ASK},
{"siteSettingsClipboardAskRecommended",
IDS_SETTINGS_SITE_SETTINGS_CLIPBOARD_ASK_RECOMMENDED},
{"siteSettingsClipboardBlock", IDS_SETTINGS_SITE_SETTINGS_CLIPBOARD_BLOCK},
- {"siteSettingsCookies", IDS_SETTINGS_SITE_SETTINGS_COOKIES},
+ {"siteSettingsCookies", IDS_SITE_SETTINGS_TYPE_COOKIES},
{"siteSettingsCookiesMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_COOKIES_MID_SENTENCE},
- {"siteSettingsHandlers", IDS_SETTINGS_SITE_SETTINGS_HANDLERS},
+ IDS_SITE_SETTINGS_TYPE_COOKIES_MID_SENTENCE},
+ {"siteSettingsHandlers", IDS_SITE_SETTINGS_TYPE_HANDLERS},
{"siteSettingsHandlersMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_HANDLERS_MID_SENTENCE},
- {"siteSettingsLocation", IDS_SETTINGS_SITE_SETTINGS_LOCATION},
+ IDS_SITE_SETTINGS_TYPE_HANDLERS_MID_SENTENCE},
+ {"siteSettingsLocation", IDS_SITE_SETTINGS_TYPE_LOCATION},
{"siteSettingsLocationMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_LOCATION_MID_SENTENCE},
- {"siteSettingsMic", IDS_SETTINGS_SITE_SETTINGS_MIC},
- {"siteSettingsMicMidSentence", IDS_SETTINGS_SITE_SETTINGS_MIC_MID_SENTENCE},
- {"siteSettingsNotifications", IDS_SETTINGS_SITE_SETTINGS_NOTIFICATIONS},
+ IDS_SITE_SETTINGS_TYPE_LOCATION_MID_SENTENCE},
+ {"siteSettingsMic", IDS_SITE_SETTINGS_TYPE_MIC},
+ {"siteSettingsMicMidSentence", IDS_SITE_SETTINGS_TYPE_MIC_MID_SENTENCE},
+ {"siteSettingsNotifications", IDS_SITE_SETTINGS_TYPE_NOTIFICATIONS},
{"siteSettingsNotificationsMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_NOTIFICATIONS_MID_SENTENCE},
- {"siteSettingsImages", IDS_SETTINGS_SITE_SETTINGS_IMAGES},
+ IDS_SITE_SETTINGS_TYPE_NOTIFICATIONS_MID_SENTENCE},
+ {"siteSettingsImages", IDS_SITE_SETTINGS_TYPE_IMAGES},
{"siteSettingsImagesMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_IMAGES_MID_SENTENCE},
- {"siteSettingsInsecureContent",
- IDS_SETTINGS_SITE_SETTINGS_INSECURE_CONTENT},
+ IDS_SITE_SETTINGS_TYPE_IMAGES_MID_SENTENCE},
+ {"siteSettingsInsecureContent", IDS_SITE_SETTINGS_TYPE_INSECURE_CONTENT},
{"siteSettingsInsecureContentMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_INSECURE_CONTENT_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_INSECURE_CONTENT_MID_SENTENCE},
{"siteSettingsInsecureContentBlock",
IDS_SETTINGS_SITE_SETTINGS_INSECURE_CONTENT_BLOCK},
- {"siteSettingsJavascript", IDS_SETTINGS_SITE_SETTINGS_JAVASCRIPT},
+ {"siteSettingsJavascript", IDS_SITE_SETTINGS_TYPE_JAVASCRIPT},
{"siteSettingsJavascriptMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_JAVASCRIPT_MID_SENTENCE},
- {"siteSettingsSound", IDS_SETTINGS_SITE_SETTINGS_SOUND},
- {"siteSettingsSoundMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_SOUND_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_JAVASCRIPT_MID_SENTENCE},
+ {"siteSettingsSound", IDS_SITE_SETTINGS_TYPE_SOUND},
+ {"siteSettingsSoundMidSentence", IDS_SITE_SETTINGS_TYPE_SOUND_MID_SENTENCE},
{"siteSettingsSoundAllow", IDS_SETTINGS_SITE_SETTINGS_SOUND_ALLOW},
{"siteSettingsSoundAllowRecommended",
IDS_SETTINGS_SITE_SETTINGS_SOUND_ALLOW_RECOMMENDED},
{"siteSettingsSoundBlock", IDS_SETTINGS_SITE_SETTINGS_SOUND_BLOCK},
- {"siteSettingsPdfDocuments", IDS_SETTINGS_SITE_SETTINGS_PDF_DOCUMENTS},
+ {"siteSettingsPdfDocuments", IDS_SITE_SETTINGS_TYPE_PDF_DOCUMENTS},
{"siteSettingsPdfDownloadPdfs",
IDS_SETTINGS_SITE_SETTINGS_PDF_DOWNLOAD_PDFS},
- {"siteSettingsProtectedContent",
- IDS_SETTINGS_SITE_SETTINGS_PROTECTED_CONTENT},
+ {"siteSettingsProtectedContent", IDS_SITE_SETTINGS_TYPE_PROTECTED_MEDIA_ID},
{"siteSettingsProtectedContentMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_PROTECTED_CONTENT_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_PROTECTED_MEDIA_ID_MID_SENTENCE},
{"siteSettingsProtectedContentIdentifiers",
- IDS_SETTINGS_SITE_SETTINGS_PROTECTED_CONTENT_IDENTIFIERS},
+ IDS_SITE_SETTINGS_TYPE_PROTECTED_MEDIA_ID},
{"siteSettingsProtectedContentEnable",
IDS_SETTINGS_SITE_SETTINGS_PROTECTED_CONTENT_ENABLE},
{"siteSettingsProtectedContentDescription",
@@ -1987,45 +2010,44 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
{"siteSettingsProtectedContentIdentifiersBlockedExceptions",
IDS_SETTINGS_SITE_SETTINGS_PROTECTED_CONTENT_IDENTIFIERS_BLOCKED_EXCEPTIONS},
#endif
- {"siteSettingsPopups", IDS_SETTINGS_SITE_SETTINGS_POPUPS},
+ {"siteSettingsPopups", IDS_SITE_SETTINGS_TYPE_POPUPS_REDIRECTS},
{"siteSettingsPopupsMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_POPUPS_MID_SENTENCE},
- {"siteSettingsHidDevices", IDS_SETTINGS_SITE_SETTINGS_HID_DEVICES},
+ IDS_SITE_SETTINGS_TYPE_POPUPS_REDIRECTS_MID_SENTENCE},
+ {"siteSettingsHidDevices", IDS_SITE_SETTINGS_TYPE_HID_DEVICES},
{"siteSettingsHidDevicesMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_HID_DEVICES_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_HID_DEVICES_MID_SENTENCE},
{"siteSettingsHidDevicesAsk", IDS_SETTINGS_SITE_SETTINGS_HID_DEVICES_ASK},
{"siteSettingsHidDevicesAskRecommended",
IDS_SETTINGS_SITE_SETTINGS_HID_DEVICES_ASK_RECOMMENDED},
{"siteSettingsHidDevicesBlock",
IDS_SETTINGS_SITE_SETTINGS_HID_DEVICES_BLOCK},
- {"siteSettingsMidiDevices", IDS_SETTINGS_SITE_SETTINGS_MIDI_DEVICES},
+ {"siteSettingsMidiDevices", IDS_SITE_SETTINGS_TYPE_MIDI_SYSEX},
{"siteSettingsMidiDevicesMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_MIDI_DEVICES_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_MIDI_SYSEX_MID_SENTENCE},
{"siteSettingsMidiDevicesAsk", IDS_SETTINGS_SITE_SETTINGS_MIDI_DEVICES_ASK},
{"siteSettingsMidiDevicesAskRecommended",
IDS_SETTINGS_SITE_SETTINGS_MIDI_DEVICES_ASK_RECOMMENDED},
{"siteSettingsMidiDevicesBlock",
IDS_SETTINGS_SITE_SETTINGS_MIDI_DEVICES_BLOCK},
- {"siteSettingsSerialPorts", IDS_SETTINGS_SITE_SETTINGS_SERIAL_PORTS},
+ {"siteSettingsSerialPorts", IDS_SITE_SETTINGS_TYPE_SERIAL_PORTS},
{"siteSettingsSerialPortsMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_SERIAL_PORTS_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_SERIAL_PORTS_MID_SENTENCE},
{"siteSettingsSerialPortsAsk", IDS_SETTINGS_SITE_SETTINGS_SERIAL_PORTS_ASK},
{"siteSettingsSerialPortsAskRecommended",
IDS_SETTINGS_SITE_SETTINGS_SERIAL_PORTS_ASK_RECOMMENDED},
{"siteSettingsSerialPortsBlock",
IDS_SETTINGS_SITE_SETTINGS_SERIAL_PORTS_BLOCK},
- {"siteSettingsUsbDevices", IDS_SETTINGS_SITE_SETTINGS_USB_DEVICES},
+ {"siteSettingsUsbDevices", IDS_SITE_SETTINGS_TYPE_USB_DEVICES},
{"siteSettingsUsbDevicesMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_USB_DEVICES_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_USB_DEVICES_MID_SENTENCE},
{"siteSettingsUsbDevicesAsk", IDS_SETTINGS_SITE_SETTINGS_USB_DEVICES_ASK},
{"siteSettingsUsbDevicesAskRecommended",
IDS_SETTINGS_SITE_SETTINGS_USB_DEVICES_ASK_RECOMMENDED},
{"siteSettingsUsbDevicesBlock",
IDS_SETTINGS_SITE_SETTINGS_USB_DEVICES_BLOCK},
- {"siteSettingsBluetoothDevices",
- IDS_SETTINGS_SITE_SETTINGS_BLUETOOTH_DEVICES},
+ {"siteSettingsBluetoothDevices", IDS_SITE_SETTINGS_TYPE_BLUETOOTH_DEVICES},
{"siteSettingsBluetoothDevicesMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_BLUETOOTH_DEVICES_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_BLUETOOTH_DEVICES_MID_SENTENCE},
{"siteSettingsBluetoothDevicesAsk",
IDS_SETTINGS_SITE_SETTINGS_BLUETOOTH_DEVICES_ASK},
{"siteSettingsBluetoothDevicesAskRecommended",
@@ -2033,9 +2055,9 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
{"siteSettingsBluetoothDevicesBlock",
IDS_SETTINGS_SITE_SETTINGS_BLUETOOTH_DEVICES_BLOCK},
{"siteSettingsFileSystemWrite",
- IDS_SETTINGS_SITE_SETTINGS_FILE_SYSTEM_ACCESS_WRITE},
+ IDS_SITE_SETTINGS_TYPE_FILE_SYSTEM_ACCESS_WRITE},
{"siteSettingsFileSystemWriteMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_FILE_SYSTEM_ACCESS_WRITE_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_FILE_SYSTEM_ACCESS_WRITE_MID_SENTENCE},
{"siteSettingsFileSystemWriteAsk",
IDS_SETTINGS_SITE_SETTINGS_FILE_SYSTEM_ACCESS_WRITE_ASK},
{"siteSettingsFileSystemWriteAskRecommended",
@@ -2044,9 +2066,9 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
IDS_SETTINGS_SITE_SETTINGS_FILE_SYSTEM_ACCESS_WRITE_BLOCK},
{"siteSettingsRemoveZoomLevel",
IDS_SETTINGS_SITE_SETTINGS_REMOVE_ZOOM_LEVEL},
- {"siteSettingsZoomLevels", IDS_SETTINGS_SITE_SETTINGS_ZOOM_LEVELS},
+ {"siteSettingsZoomLevels", IDS_SITE_SETTINGS_TYPE_ZOOM_LEVELS},
{"siteSettingsZoomLevelsMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_ZOOM_LEVELS_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_ZOOM_LEVELS_MID_SENTENCE},
{"siteSettingsNoZoomedSites", IDS_SETTINGS_SITE_SETTINGS_NO_ZOOMED_SITES},
{"siteSettingsMaySaveCookies", IDS_SETTINGS_SITE_SETTINGS_MAY_SAVE_COOKIES},
{"siteSettingsAskFirst", IDS_SETTINGS_SITE_SETTINGS_ASK_FIRST},
@@ -2226,6 +2248,27 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
{"siteSettingsSiteResetAll", IDS_SETTINGS_SITE_SETTINGS_SITE_RESET_ALL},
{"siteSettingsSiteResetConfirmation",
IDS_SETTINGS_SITE_SETTINGS_SITE_RESET_CONFIRMATION},
+ {"siteSettingsRemoveSite", IDS_SETTINGS_SITE_SETTINGS_COOKIE_REMOVE_SITE},
+ {"siteSettingsRemoveSiteOriginDialogTitle",
+ IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_ORIGIN_DIALOG_TITLE},
+ {"siteSettingsRemoveSiteOriginAppDialogTitle",
+ IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_ORIGIN_APP_DIALOG_TITLE},
+ {"siteSettingsRemoveSiteGroupDialogTitle",
+ IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_GROUP_DIALOG_TITLE},
+ {"siteSettingsRemoveSiteGroupAppDialogTitle",
+ IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_GROUP_APP_DIALOG_TITLE},
+ {"siteSettingsRemoveSiteGroupAppPluralDialogTitle",
+ IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_GROUP_APP_PLURAL_DIALOG_TITLE},
+ {"siteSettingsRemoveSiteOriginLogout",
+ IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_ORIGIN_LOGOUT},
+ {"siteSettingsRemoveSiteGroupLogout",
+ IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_GROUP_LOGOUT},
+ {"siteSettingsRemoveSiteOfflineData",
+ IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_OFFLINE_DATA},
+ {"siteSettingsRemoveSitePermissions",
+ IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_PERMISSIONS},
+ {"siteSettingsRemoveSiteConfirm",
+ IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_CONFIRM},
{"thirdPartyCookie", IDS_NEW_TAB_OTR_THIRD_PARTY_COOKIE},
{"thirdPartyCookieSublabel", IDS_NEW_TAB_OTR_THIRD_PARTY_COOKIE_SUBLABEL},
{"handlerIsDefault", IDS_SETTINGS_SITE_SETTINGS_HANDLER_IS_DEFAULT},
@@ -2490,14 +2533,14 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
IDS_SETTINGS_SITE_SETTINGS_VR_BLOCKED_EXCEPTIONS},
{"siteSettingsZoomLevelsDescription",
IDS_SETTINGS_SITE_SETTINGS_ZOOM_LEVELS_DESCRIPTION},
- {"siteSettingsAds", IDS_SETTINGS_SITE_SETTINGS_ADS},
- {"siteSettingsAdsMidSentence", IDS_SETTINGS_SITE_SETTINGS_ADS_MID_SENTENCE},
+ {"siteSettingsAds", IDS_SITE_SETTINGS_TYPE_ADS},
+ {"siteSettingsAdsMidSentence", IDS_SITE_SETTINGS_TYPE_ADS_MID_SENTENCE},
{"siteSettingsAdsBlock", IDS_SETTINGS_SITE_SETTINGS_ADS_BLOCK},
{"siteSettingsAdsBlockRecommended",
IDS_SETTINGS_SITE_SETTINGS_ADS_BLOCK_RECOMMENDED},
- {"siteSettingsPaymentHandler", IDS_SETTINGS_SITE_SETTINGS_PAYMENT_HANDLER},
+ {"siteSettingsPaymentHandler", IDS_SITE_SETTINGS_TYPE_PAYMENT_HANDLER},
{"siteSettingsPaymentHandlerMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_PAYMENT_HANDLER_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_PAYMENT_HANDLER_MID_SENTENCE},
{"siteSettingsPaymentHandlerAllow",
IDS_SETTINGS_SITE_SETTINGS_PAYMENT_HANDLER_ALLOW},
{"siteSettingsPaymentHandlerAllowRecommended",
@@ -2509,31 +2552,30 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
{"emptyAllSitesPage", IDS_SETTINGS_SITE_SETTINGS_EMPTY_ALL_SITES_PAGE},
{"noSitesFound", IDS_SETTINGS_SITE_SETTINGS_NO_SITES_FOUND},
{"siteSettingsBluetoothScanning",
- IDS_SETTINGS_SITE_SETTINGS_BLUETOOTH_SCANNING},
+ IDS_SITE_SETTINGS_TYPE_BLUETOOTH_SCANNING},
{"siteSettingsBluetoothScanningMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_BLUETOOTH_SCANNING_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_BLUETOOTH_SCANNING_MID_SENTENCE},
{"siteSettingsBluetoothScanningAsk",
IDS_SETTINGS_SITE_SETTINGS_BLUETOOTH_SCANNING_ASK},
{"siteSettingsBluetoothScanningAskRecommended",
IDS_SETTINGS_SITE_SETTINGS_BLUETOOTH_SCANNING_ASK_RECOMMENDED},
{"siteSettingsBluetoothScanningBlock",
IDS_SETTINGS_SITE_SETTINGS_BLUETOOTH_SCANNING_BLOCK},
- {"siteSettingsAr", IDS_SETTINGS_SITE_SETTINGS_AR},
- {"siteSettingsArMidSentence", IDS_SETTINGS_SITE_SETTINGS_AR_MID_SENTENCE},
+ {"siteSettingsAr", IDS_SITE_SETTINGS_TYPE_AR},
+ {"siteSettingsArMidSentence", IDS_SITE_SETTINGS_TYPE_AR_MID_SENTENCE},
{"siteSettingsArAsk", IDS_SETTINGS_SITE_SETTINGS_AR_ASK},
{"siteSettingsArAskRecommended",
IDS_SETTINGS_SITE_SETTINGS_AR_ASK_RECOMMENDED},
{"siteSettingsArBlock", IDS_SETTINGS_SITE_SETTINGS_AR_BLOCK},
- {"siteSettingsVr", IDS_SETTINGS_SITE_SETTINGS_VR},
- {"siteSettingsVrMidSentence", IDS_SETTINGS_SITE_SETTINGS_VR_MID_SENTENCE},
+ {"siteSettingsVr", IDS_SITE_SETTINGS_TYPE_VR},
+ {"siteSettingsVrMidSentence", IDS_SITE_SETTINGS_TYPE_VR_MID_SENTENCE},
{"siteSettingsVrAsk", IDS_SETTINGS_SITE_SETTINGS_VR_ASK},
{"siteSettingsVrAskRecommended",
IDS_SETTINGS_SITE_SETTINGS_VR_ASK_RECOMMENDED},
{"siteSettingsVrBlock", IDS_SETTINGS_SITE_SETTINGS_VR_BLOCK},
- {"siteSettingsWindowPlacement",
- IDS_SETTINGS_SITE_SETTINGS_WINDOW_PLACEMENT},
+ {"siteSettingsWindowPlacement", IDS_SITE_SETTINGS_TYPE_WINDOW_PLACEMENT},
{"siteSettingsWindowPlacementMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_WINDOW_PLACEMENT_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_WINDOW_PLACEMENT_MID_SENTENCE},
{"siteSettingsWindowPlacementAsk",
IDS_SETTINGS_SITE_SETTINGS_WINDOW_PLACEMENT_ASK},
{"siteSettingsWindowPlacementAskRecommended",
@@ -2541,20 +2583,20 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
{"siteSettingsWindowPlacementBlock",
IDS_SETTINGS_SITE_SETTINGS_WINDOW_PLACEMENT_BLOCK},
{"siteSettingsFontAccessMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_FONT_ACCESS_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_FONT_ACCESS_MID_SENTENCE},
{"siteSettingsFontAccessAsk", IDS_SETTINGS_SITE_SETTINGS_FONT_ACCESS_ASK},
{"siteSettingsFontAccessBlock",
IDS_SETTINGS_SITE_SETTINGS_FONT_ACCESS_BLOCK},
- {"siteSettingsIdleDetection", IDS_SETTINGS_SITE_SETTINGS_IDLE_DETECTION},
+ {"siteSettingsIdleDetection", IDS_SITE_SETTINGS_TYPE_IDLE_DETECTION},
{"siteSettingsIdleDetectionMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_IDLE_DETECTION_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_IDLE_DETECTION_MID_SENTENCE},
{"siteSettingsIdleDetectionAsk",
IDS_SETTINGS_SITE_SETTINGS_IDLE_DETECTION_ASK},
{"siteSettingsIdleDetectionBlock",
IDS_SETTINGS_SITE_SETTINGS_IDLE_DETECTION_BLOCK},
- {"siteSettingsFileHandling", IDS_SETTINGS_SITE_SETTINGS_FILE_HANDLING},
+ {"siteSettingsFileHandling", IDS_SITE_SETTINGS_TYPE_FILE_HANDLING},
{"siteSettingsFileHandlingMidSentence",
- IDS_SETTINGS_SITE_SETTINGS_FILE_HANDLING_MID_SENTENCE},
+ IDS_SITE_SETTINGS_TYPE_FILE_HANDLING_MID_SENTENCE},
{"siteSettingsFileHandlingAsk",
IDS_SETTINGS_SITE_SETTINGS_FILE_HANDLING_ASK},
{"siteSettingsFileHandlingBlock",
@@ -2566,12 +2608,12 @@ void AddSiteSettingsStrings(content::WebUIDataSource* html_source,
static webui::LocalizedString kSensorsLocalizedStrings[] = {
{"siteSettingsSensors",
base::FeatureList::IsEnabled(features::kGenericSensorExtraClasses)
- ? IDS_SETTINGS_SITE_SETTINGS_SENSORS
- : IDS_SETTINGS_SITE_SETTINGS_MOTION_SENSORS},
+ ? IDS_SITE_SETTINGS_TYPE_SENSORS
+ : IDS_SITE_SETTINGS_TYPE_MOTION_SENSORS},
{"siteSettingsSensorsMidSentence",
base::FeatureList::IsEnabled(features::kGenericSensorExtraClasses)
- ? IDS_SETTINGS_SITE_SETTINGS_SENSORS_MID_SENTENCE
- : IDS_SETTINGS_SITE_SETTINGS_MOTION_SENSORS_MID_SENTENCE},
+ ? IDS_SITE_SETTINGS_TYPE_SENSORS_MID_SENTENCE
+ : IDS_SITE_SETTINGS_TYPE_MOTION_SENSORS_MID_SENTENCE},
{"siteSettingsSensorsAllow",
base::FeatureList::IsEnabled(features::kGenericSensorExtraClasses)
? IDS_SETTINGS_SITE_SETTINGS_SENSORS_ALLOW
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc
index 70fe089c283..57ae268f987 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc
@@ -53,34 +53,34 @@ ManageProfileHandler::ManageProfileHandler(Profile* profile)
ManageProfileHandler::~ManageProfileHandler() {}
void ManageProfileHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getAvailableIcons",
base::BindRepeating(&ManageProfileHandler::HandleGetAvailableIcons,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setProfileIconToGaiaAvatar",
base::BindRepeating(
&ManageProfileHandler::HandleSetProfileIconToGaiaAvatar,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setProfileIconToDefaultAvatar",
base::BindRepeating(
&ManageProfileHandler::HandleSetProfileIconToDefaultAvatar,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setProfileName",
base::BindRepeating(&ManageProfileHandler::HandleSetProfileName,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestProfileShortcutStatus",
base::BindRepeating(
&ManageProfileHandler::HandleRequestProfileShortcutStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"addProfileShortcut",
base::BindRepeating(&ManageProfileHandler::HandleAddProfileShortcut,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeProfileShortcut",
base::BindRepeating(&ManageProfileHandler::HandleRemoveProfileShortcut,
base::Unretained(this)));
@@ -129,7 +129,7 @@ void ManageProfileHandler::HandleGetAvailableIcons(
profiles::UpdateGaiaProfileInfoIfNeeded(profile_);
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
@@ -205,7 +205,7 @@ void ManageProfileHandler::HandleSetProfileIconToDefaultAvatar(
const base::ListValue* args) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
CHECK(args);
- CHECK_EQ(1u, args->GetSize());
+ CHECK_EQ(1u, args->GetList().size());
CHECK(args->GetList()[0].is_int());
size_t new_icon_index = args->GetList()[0].GetInt();
@@ -225,7 +225,7 @@ void ManageProfileHandler::HandleSetProfileIconToDefaultAvatar(
void ManageProfileHandler::HandleSetProfileName(const base::ListValue* args) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
CHECK(args);
- CHECK_EQ(1u, args->GetSize());
+ CHECK_EQ(1u, args->GetList().size());
std::u16string new_profile_name;
CHECK(args->GetString(0, &new_profile_name));
@@ -243,7 +243,7 @@ void ManageProfileHandler::HandleRequestProfileShortcutStatus(
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(ProfileShortcutManager::IsFeatureEnabled());
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h b/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h
index f4523071455..7150b6051e1 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h
@@ -8,6 +8,7 @@
#include <memory>
#include <string>
+#include "base/gtest_prod_util.h"
#include "base/memory/weak_ptr.h"
#include "base/scoped_observation.h"
#include "chrome/browser/profiles/profile_attributes_storage.h"
@@ -22,6 +23,10 @@ class ManageProfileHandler : public settings::SettingsPageUIHandler,
public ProfileAttributesStorage::Observer {
public:
explicit ManageProfileHandler(Profile* profile);
+
+ ManageProfileHandler(const ManageProfileHandler&) = delete;
+ ManageProfileHandler& operator=(const ManageProfileHandler&) = delete;
+
~ManageProfileHandler() override;
// settings::SettingsPageUIHandler:
@@ -97,8 +102,6 @@ class ManageProfileHandler : public settings::SettingsPageUIHandler,
// For generating weak pointers to itself for callbacks.
base::WeakPtrFactory<ManageProfileHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ManageProfileHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler_unittest.cc
index c0b68c71115..4ab74dfcecb 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_manage_profile_handler_unittest.cc
@@ -66,12 +66,11 @@ class ManageProfileHandlerTest : public testing::Test {
VerifyIconList(value, selected_index, false, false);
}
- void VerifyIconList(const base::Value* value,
+ void VerifyIconList(const base::Value* icons,
size_t selected_index,
bool gaia_included,
bool gaia_selected) {
- const base::ListValue* icons = nullptr;
- ASSERT_TRUE(value->GetAsList(&icons));
+ ASSERT_TRUE(icons->is_list());
// Expect a non-empty list of dictionaries containing non-empty strings for
// profile avatar icon urls and labels.
@@ -86,22 +85,24 @@ class ManageProfileHandlerTest : public testing::Test {
gaia_selected ||
(selected_index == profiles::GetPlaceholderAvatarIndex());
- for (size_t i = 1; i < icons->GetSize(); ++i) {
- const base::DictionaryValue* icon = nullptr;
- EXPECT_TRUE(icons->GetDictionary(i, &icon));
- std::string icon_url;
- EXPECT_TRUE(icon->GetString("url", &icon_url));
- EXPECT_FALSE(icon_url.empty());
- int icon_index_int = *icon->FindIntPath("index");
+ for (size_t i = 1; i < icons->GetList().size(); ++i) {
+ const base::Value& icon = icons->GetList()[i];
+ EXPECT_TRUE(icon.is_dict());
+
+ const std::string* icon_url = icon.FindStringKey("url");
+ EXPECT_TRUE(icon_url);
+ EXPECT_FALSE(icon_url->empty());
+
+ int icon_index_int = *icon.FindIntKey("index");
EXPECT_TRUE(profiles::IsDefaultAvatarIconIndex(icon_index_int));
size_t icon_index = static_cast<size_t>(icon_index_int);
EXPECT_NE(icon_index, profiles::GetPlaceholderAvatarIndex());
EXPECT_NE(icon_index_int, 0);
size_t url_icon_index;
- EXPECT_TRUE(profiles::IsDefaultAvatarIconUrl(icon_url, &url_icon_index));
+ EXPECT_TRUE(profiles::IsDefaultAvatarIconUrl(*icon_url, &url_icon_index));
EXPECT_EQ(icon_index, url_icon_index);
- EXPECT_TRUE(!icon->FindStringPath("label")->empty());
- absl::optional<bool> current_selected = icon->FindBoolPath("selected");
+ EXPECT_TRUE(!icon.FindStringKey("label")->empty());
+ absl::optional<bool> current_selected = icon.FindBoolKey("selected");
if (selected_index == icon_index) {
EXPECT_FALSE(selected_found);
EXPECT_TRUE(current_selected.value_or(false));
@@ -128,31 +129,31 @@ class ManageProfileHandlerTest : public testing::Test {
Profile* profile_ = nullptr;
std::unique_ptr<TestManageProfileHandler> handler_;
- void VerifyGaiaAvatar(const base::ListValue* icons, bool gaia_selected) {
- const base::DictionaryValue* icon = nullptr;
- EXPECT_TRUE(icons->GetDictionary(0, &icon));
- EXPECT_EQ(*icon->FindIntPath("index"), 0);
+ void VerifyGaiaAvatar(const base::Value* icons, bool gaia_selected) {
+ const base::Value& icon = icons->GetList()[0];
+ EXPECT_TRUE(icon.is_dict());
+ EXPECT_EQ(*icon.FindIntKey("index"), 0);
const gfx::Image* avatar_icon = entry()->GetGAIAPicture();
ASSERT_TRUE(avatar_icon);
EXPECT_EQ(
- *icon->FindStringPath("url"),
+ *icon.FindStringKey("url"),
webui::GetBitmapDataUrl(
profiles::GetAvatarIconForWebUI(*avatar_icon, true).AsBitmap()));
- EXPECT_TRUE(!icon->FindStringPath("label")->empty());
- EXPECT_EQ(*icon->FindBoolPath("selected"), gaia_selected);
+ EXPECT_TRUE(!icon.FindStringKey("label")->empty());
+ EXPECT_EQ(*icon.FindBoolPath("selected"), gaia_selected);
}
- void VerifyDefaultGenericAvatar(const base::ListValue* icons,
+ void VerifyDefaultGenericAvatar(const base::Value* icons,
size_t selected_index) {
- const base::DictionaryValue* icon = nullptr;
- EXPECT_TRUE(icons->GetDictionary(0, &icon));
- EXPECT_TRUE(!icon->FindStringPath("label")->empty());
- int icon_index_int = icon->FindIntPath("index").value_or(0);
+ const base::Value& icon = icons->GetList()[0];
+ EXPECT_TRUE(icon.is_dict());
+ EXPECT_TRUE(!icon.FindStringKey("label")->empty());
+ int icon_index_int = icon.FindIntKey("index").value_or(0);
EXPECT_TRUE(icon_index_int != 0);
size_t icon_index = static_cast<size_t>(icon_index_int);
EXPECT_EQ(icon_index, profiles::GetPlaceholderAvatarIndex());
- EXPECT_EQ(*icon->FindBoolPath("selected"), selected_index == icon_index);
+ EXPECT_EQ(*icon.FindBoolPath("selected"), selected_index == icon_index);
}
};
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.cc
index 23e35a3723d..a32900e7271 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.cc
@@ -45,12 +45,12 @@ void MediaDevicesSelectionHandler::OnJavascriptDisallowed() {
}
void MediaDevicesSelectionHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getDefaultCaptureDevices",
base::BindRepeating(
&MediaDevicesSelectionHandler::GetDefaultCaptureDevices,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setDefaultCaptureDevice",
base::BindRepeating(
&MediaDevicesSelectionHandler::SetDefaultCaptureDevice,
@@ -69,7 +69,7 @@ void MediaDevicesSelectionHandler::OnUpdateVideoDevices(
void MediaDevicesSelectionHandler::GetDefaultCaptureDevices(
const base::ListValue* args) {
- DCHECK_EQ(1U, args->GetSize());
+ DCHECK_EQ(1U, args->GetList().size());
std::string type;
if (!args->GetString(0, &type)) {
NOTREACHED();
@@ -85,7 +85,7 @@ void MediaDevicesSelectionHandler::GetDefaultCaptureDevices(
void MediaDevicesSelectionHandler::SetDefaultCaptureDevice(
const base::ListValue* args) {
- DCHECK_EQ(2U, args->GetSize());
+ DCHECK_EQ(2U, args->GetList().size());
std::string type, device;
if (!(args->GetString(0, &type) && args->GetString(1, &device))) {
NOTREACHED();
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.h b/chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.h
index fa364222f11..b6ab8c19a70 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.h
@@ -19,6 +19,11 @@ class MediaDevicesSelectionHandler
public SettingsPageUIHandler {
public:
explicit MediaDevicesSelectionHandler(Profile* profile);
+
+ MediaDevicesSelectionHandler(const MediaDevicesSelectionHandler&) = delete;
+ MediaDevicesSelectionHandler& operator=(const MediaDevicesSelectionHandler&) =
+ delete;
+
~MediaDevicesSelectionHandler() override;
// SettingsPageUIHandler:
@@ -58,8 +63,6 @@ class MediaDevicesSelectionHandler
base::ScopedObservation<MediaCaptureDevicesDispatcher,
MediaCaptureDevicesDispatcher::Observer>
observation_{this};
-
- DISALLOW_COPY_AND_ASSIGN(MediaDevicesSelectionHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_page_ui_handler.h b/chromium/chrome/browser/ui/webui/settings/settings_page_ui_handler.h
index 835a5c3a2e9..e190f8eb1b1 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_page_ui_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/settings_page_ui_handler.h
@@ -14,14 +14,16 @@ namespace settings {
class SettingsPageUIHandler : public content::WebUIMessageHandler {
public:
SettingsPageUIHandler();
+
+ SettingsPageUIHandler(const SettingsPageUIHandler&) = delete;
+ SettingsPageUIHandler& operator=(const SettingsPageUIHandler&) = delete;
+
~SettingsPageUIHandler() override;
private:
// SettingsPageUIHandler subclasses must be JavaScript-lifecycle safe.
void OnJavascriptAllowed() override = 0;
void OnJavascriptDisallowed() override = 0;
-
- DISALLOW_COPY_AND_ASSIGN(SettingsPageUIHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler.cc
index 98ac6956704..82f90c0b255 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler.cc
@@ -62,27 +62,27 @@ SecureDnsHandler::SecureDnsHandler() = default;
SecureDnsHandler::~SecureDnsHandler() = default;
void SecureDnsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getSecureDnsResolverList",
base::BindRepeating(&SecureDnsHandler::HandleGetSecureDnsResolverList,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getSecureDnsSetting",
base::BindRepeating(&SecureDnsHandler::HandleGetSecureDnsSetting,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"parseCustomDnsEntry",
base::BindRepeating(&SecureDnsHandler::HandleParseCustomDnsEntry,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"probeCustomDnsTemplate",
base::BindRepeating(&SecureDnsHandler::HandleProbeCustomDnsTemplate,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"recordUserDropdownInteraction",
base::BindRepeating(
&SecureDnsHandler::HandleRecordUserDropdownInteraction,
@@ -220,7 +220,7 @@ void SecureDnsHandler::HandleProbeCustomDnsTemplate(
void SecureDnsHandler::HandleRecordUserDropdownInteraction(
const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
std::string old_provider;
std::string new_provider;
CHECK(args->GetString(0, &old_provider));
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler.h b/chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler.h
index dddaea2127a..caee8656de5 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler.h
@@ -25,6 +25,10 @@ namespace settings {
class SecureDnsHandler : public SettingsPageUIHandler {
public:
SecureDnsHandler();
+
+ SecureDnsHandler(const SecureDnsHandler&) = delete;
+ SecureDnsHandler& operator=(const SecureDnsHandler&) = delete;
+
~SecureDnsHandler() override;
// SettingsPageUIHandler:
@@ -81,8 +85,6 @@ class SecureDnsHandler : public SettingsPageUIHandler {
// there is no probe currently in progress.
std::string probe_callback_id_;
PrefChangeRegistrar pref_registrar_;
-
- DISALLOW_COPY_AND_ASSIGN(SecureDnsHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler_browsertest.cc b/chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler_browsertest.cc
index 056257c287f..15d20f12306 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_secure_dns_handler_browsertest.cc
@@ -97,6 +97,10 @@ class TestSecureDnsHandler : public SecureDnsHandler {
};
class SecureDnsHandlerTest : public InProcessBrowserTest {
+ public:
+ SecureDnsHandlerTest(const SecureDnsHandlerTest&) = delete;
+ SecureDnsHandlerTest& operator=(const SecureDnsHandlerTest&) = delete;
+
protected:
#if defined(OS_WIN)
SecureDnsHandlerTest()
@@ -190,8 +194,6 @@ class SecureDnsHandlerTest : public InProcessBrowserTest {
#if defined(OS_WIN)
base::win::ScopedDomainStateForTesting scoped_domain_;
#endif
-
- DISALLOW_COPY_AND_ASSIGN(SecureDnsHandlerTest);
};
IN_PROC_BROWSER_TEST_F(SecureDnsHandlerTest, SecureDnsModes) {
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_security_key_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_security_key_handler.cc
index a1cb57c06ae..0f5b354ef27 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_security_key_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_security_key_handler.cc
@@ -38,7 +38,7 @@ base::flat_set<device::FidoTransportProtocol> supported_transports() {
void HandleClose(base::RepeatingClosure close_callback,
const base::ListValue* args) {
- DCHECK_EQ(0u, args->GetSize());
+ DCHECK_EQ(0u, args->GetList().size());
close_callback.Run();
}
@@ -75,15 +75,15 @@ SecurityKeysPINHandler::SecurityKeysPINHandler() = default;
SecurityKeysPINHandler::~SecurityKeysPINHandler() = default;
void SecurityKeysPINHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyStartSetPIN",
base::BindRepeating(&SecurityKeysPINHandler::HandleStartSetPIN,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeySetPIN",
base::BindRepeating(&SecurityKeysPINHandler::HandleSetPIN,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyPINClose",
base::BindRepeating(&HandleClose,
base::BindRepeating(&SecurityKeysPINHandler::Close,
@@ -101,7 +101,7 @@ void SecurityKeysPINHandler::Close() {
void SecurityKeysPINHandler::HandleStartSetPIN(const base::ListValue* args) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
DCHECK_EQ(State::kNone, state_);
- DCHECK_EQ(1u, args->GetSize());
+ DCHECK_EQ(1u, args->GetList().size());
AllowJavascript();
DCHECK(callback_id_.empty());
@@ -162,7 +162,7 @@ void SecurityKeysPINHandler::OnSetPINComplete(
void SecurityKeysPINHandler::HandleSetPIN(const base::ListValue* args) {
DCHECK(state_ == State::kGatherNewPIN || state_ == State::kGatherChangePIN);
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK_EQ(3u, args->GetSize());
+ DCHECK_EQ(3u, args->GetList().size());
DCHECK(callback_id_.empty());
callback_id_ = args->GetList()[0].GetString();
@@ -181,15 +181,15 @@ SecurityKeysResetHandler::SecurityKeysResetHandler() = default;
SecurityKeysResetHandler::~SecurityKeysResetHandler() = default;
void SecurityKeysResetHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyReset",
base::BindRepeating(&SecurityKeysResetHandler::HandleReset,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyCompleteReset",
base::BindRepeating(&SecurityKeysResetHandler::HandleCompleteReset,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyResetClose",
base::BindRepeating(&HandleClose,
base::BindRepeating(&SecurityKeysResetHandler::Close,
@@ -207,7 +207,7 @@ void SecurityKeysResetHandler::Close() {
void SecurityKeysResetHandler::HandleReset(const base::ListValue* args) {
DCHECK_EQ(State::kNone, state_);
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK_EQ(1u, args->GetSize());
+ DCHECK_EQ(1u, args->GetList().size());
AllowJavascript();
DCHECK(callback_id_.empty());
@@ -237,7 +237,7 @@ void SecurityKeysResetHandler::OnResetSent() {
void SecurityKeysResetHandler::HandleCompleteReset(
const base::ListValue* args) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK_EQ(1u, args->GetSize());
+ DCHECK_EQ(1u, args->GetList().size());
DCHECK(callback_id_.empty());
callback_id_ = args->GetList()[0].GetString();
@@ -301,7 +301,7 @@ SecurityKeysCredentialHandler::~SecurityKeysCredentialHandler() = default;
void SecurityKeysCredentialHandler::HandleStart(const base::ListValue* args) {
DCHECK_EQ(State::kNone, state_);
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK_EQ(1u, args->GetSize());
+ DCHECK_EQ(1u, args->GetList().size());
DCHECK(!credential_management_);
AllowJavascript();
@@ -322,23 +322,23 @@ void SecurityKeysCredentialHandler::HandleStart(const base::ListValue* args) {
}
void SecurityKeysCredentialHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyCredentialManagementStart",
base::BindRepeating(&SecurityKeysCredentialHandler::HandleStart,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyCredentialManagementPIN",
base::BindRepeating(&SecurityKeysCredentialHandler::HandlePIN,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyCredentialManagementEnumerate",
base::BindRepeating(&SecurityKeysCredentialHandler::HandleEnumerate,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyCredentialManagementDelete",
base::BindRepeating(&SecurityKeysCredentialHandler::HandleDelete,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyCredentialManagementClose",
base::BindRepeating(
&HandleClose,
@@ -359,7 +359,7 @@ void SecurityKeysCredentialHandler::Close() {
void SecurityKeysCredentialHandler::HandlePIN(const base::ListValue* args) {
DCHECK_EQ(State::kPIN, state_);
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK_EQ(2u, args->GetSize());
+ DCHECK_EQ(2u, args->GetList().size());
DCHECK(credential_management_);
DCHECK(credential_management_provide_pin_cb_);
DCHECK(callback_id_.empty());
@@ -374,7 +374,7 @@ void SecurityKeysCredentialHandler::HandleEnumerate(
const base::ListValue* args) {
DCHECK_EQ(state_, State::kReady);
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK_EQ(1u, args->GetSize());
+ DCHECK_EQ(1u, args->GetList().size());
DCHECK(credential_management_);
DCHECK(callback_id_.empty());
@@ -388,7 +388,7 @@ void SecurityKeysCredentialHandler::HandleEnumerate(
void SecurityKeysCredentialHandler::HandleDelete(const base::ListValue* args) {
DCHECK_EQ(State::kReady, state_);
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK_EQ(2u, args->GetSize());
+ DCHECK_EQ(2u, args->GetList().size());
DCHECK(credential_management_);
DCHECK(callback_id_.empty());
@@ -557,7 +557,7 @@ void SecurityKeysBioEnrollmentHandler::HandleStart(
const base::ListValue* args) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
DCHECK_EQ(state_, State::kNone);
- DCHECK_EQ(1u, args->GetSize());
+ DCHECK_EQ(1u, args->GetList().size());
DCHECK(callback_id_.empty());
AllowJavascript();
@@ -575,41 +575,41 @@ void SecurityKeysBioEnrollmentHandler::HandleStart(
}
void SecurityKeysBioEnrollmentHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyBioEnrollStart",
base::BindRepeating(&SecurityKeysBioEnrollmentHandler::HandleStart,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyBioEnrollProvidePIN",
base::BindRepeating(&SecurityKeysBioEnrollmentHandler::HandleProvidePIN,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyBioEnrollGetSensorInfo",
base::BindRepeating(
&SecurityKeysBioEnrollmentHandler::HandleGetSensorInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyBioEnrollEnumerate",
base::BindRepeating(&SecurityKeysBioEnrollmentHandler::HandleEnumerate,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyBioEnrollStartEnrolling",
base::BindRepeating(
&SecurityKeysBioEnrollmentHandler::HandleStartEnrolling,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyBioEnrollDelete",
base::BindRepeating(&SecurityKeysBioEnrollmentHandler::HandleDelete,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyBioEnrollRename",
base::BindRepeating(&SecurityKeysBioEnrollmentHandler::HandleRename,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyBioEnrollCancel",
base::BindRepeating(&SecurityKeysBioEnrollmentHandler::HandleCancel,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"securityKeyBioEnrollClose",
base::BindRepeating(
&HandleClose,
@@ -703,7 +703,7 @@ void SecurityKeysBioEnrollmentHandler::OnGatherPIN(
void SecurityKeysBioEnrollmentHandler::HandleProvidePIN(
const base::ListValue* args) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK_EQ(2u, args->GetSize());
+ DCHECK_EQ(2u, args->GetList().size());
DCHECK_EQ(state_, State::kGatherPIN);
state_ = State::kGatherPIN;
callback_id_ = args->GetList()[0].GetString();
@@ -713,7 +713,7 @@ void SecurityKeysBioEnrollmentHandler::HandleProvidePIN(
void SecurityKeysBioEnrollmentHandler::HandleGetSensorInfo(
const base::ListValue* args) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK_EQ(1u, args->GetSize());
+ DCHECK_EQ(1u, args->GetList().size());
DCHECK_EQ(state_, State::kReady);
base::DictionaryValue response;
response.SetIntKey("maxTemplateFriendlyName",
@@ -730,7 +730,7 @@ void SecurityKeysBioEnrollmentHandler::HandleGetSensorInfo(
void SecurityKeysBioEnrollmentHandler::HandleEnumerate(
const base::ListValue* args) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK_EQ(1u, args->GetSize());
+ DCHECK_EQ(1u, args->GetList().size());
DCHECK_EQ(state_, State::kReady);
state_ = State::kEnumerating;
callback_id_ = args->GetList()[0].GetString();
@@ -765,7 +765,7 @@ void SecurityKeysBioEnrollmentHandler::OnHaveEnumeration(
void SecurityKeysBioEnrollmentHandler::HandleStartEnrolling(
const base::ListValue* args) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK_EQ(1u, args->GetSize());
+ DCHECK_EQ(1u, args->GetList().size());
DCHECK_EQ(state_, State::kReady);
state_ = State::kEnrolling;
callback_id_ = args->GetList()[0].GetString();
@@ -836,7 +836,7 @@ void SecurityKeysBioEnrollmentHandler::OnHavePostEnrollmentEnumeration(
void SecurityKeysBioEnrollmentHandler::HandleDelete(
const base::ListValue* args) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK_EQ(2u, args->GetSize());
+ DCHECK_EQ(2u, args->GetList().size());
state_ = State::kDeleting;
callback_id_ = args->GetList()[0].GetString();
std::vector<uint8_t> template_id;
@@ -864,7 +864,7 @@ void SecurityKeysBioEnrollmentHandler::OnDelete(
void SecurityKeysBioEnrollmentHandler::HandleRename(
const base::ListValue* args) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK_EQ(args->GetSize(), 3u);
+ DCHECK_EQ(args->GetList().size(), 3u);
state_ = State::kRenaming;
callback_id_ = args->GetList()[0].GetString();
std::vector<uint8_t> template_id;
@@ -893,7 +893,7 @@ void SecurityKeysBioEnrollmentHandler::HandleCancel(
const base::ListValue* args) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
DCHECK_EQ(state_, State::kEnrolling);
- DCHECK_EQ(0u, args->GetSize());
+ DCHECK_EQ(0u, args->GetList().size());
DCHECK(!callback_id_.empty());
// OnEnrollmentFinished() will be invoked once the cancellation is complete.
bio_->CancelEnrollment();
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc b/chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc
index 7bdf6cb2e88..c8f3512dcc3 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.cc
@@ -30,23 +30,23 @@ void StartupPagesHandler::RegisterMessages() {
if (Profile::FromWebUI(web_ui())->IsOffTheRecord())
return;
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"addStartupPage",
base::BindRepeating(&StartupPagesHandler::HandleAddStartupPage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"editStartupPage",
base::BindRepeating(&StartupPagesHandler::HandleEditStartupPage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"onStartupPrefsPageLoad",
base::BindRepeating(&StartupPagesHandler::HandleOnStartupPrefsPageLoad,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeStartupPage",
base::BindRepeating(&StartupPagesHandler::HandleRemoveStartupPage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setStartupPagesToCurrentPages",
base::BindRepeating(
&StartupPagesHandler::HandleSetStartupPagesToCurrentPages,
@@ -133,7 +133,7 @@ void StartupPagesHandler::HandleEditStartupPage(const base::ListValue* args) {
const base::Value& callback_id = list[0];
int index = list[1].GetInt();
- if (index < 0 || index > startup_custom_pages_table_model_.RowCount()) {
+ if (index < 0 || index >= startup_custom_pages_table_model_.RowCount()) {
RejectJavascriptCallback(callback_id, base::Value());
NOTREACHED();
return;
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.h b/chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.h
index 56b2f419b25..72b68c6e487 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/settings_startup_pages_handler.h
@@ -26,6 +26,10 @@ class StartupPagesHandler : public SettingsPageUIHandler,
public ui::TableModelObserver {
public:
explicit StartupPagesHandler(content::WebUI* webui);
+
+ StartupPagesHandler(const StartupPagesHandler&) = delete;
+ StartupPagesHandler& operator=(const StartupPagesHandler&) = delete;
+
~StartupPagesHandler() override;
// SettingsPageUIHandler:
@@ -68,8 +72,6 @@ class StartupPagesHandler : public SettingsPageUIHandler,
// The set of pages to launch on startup.
CustomHomePagesTableModel startup_custom_pages_table_model_;
-
- DISALLOW_COPY_AND_ASSIGN(StartupPagesHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_ui.cc b/chromium/chrome/browser/ui/webui/settings/settings_ui.cc
index 66aed92a5ea..1f424bbd1c1 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_ui.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -17,7 +17,6 @@
#include "build/branding_buildflags.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
-#include "chrome/browser/account_manager_facade_factory.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/privacy_sandbox/privacy_sandbox_settings.h"
#include "chrome/browser/privacy_sandbox/privacy_sandbox_settings_factory.h"
@@ -25,6 +24,7 @@
#include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/browser/ui/hats/hats_service.h"
#include "chrome/browser/ui/hats/hats_service_factory.h"
+#include "chrome/browser/ui/managed_ui.h"
#include "chrome/browser/ui/passwords/manage_passwords_view_utils.h"
#include "chrome/browser/ui/ui_features.h"
#include "chrome/browser/ui/webui/favicon_source.h"
@@ -60,8 +60,6 @@
#include "chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.h"
#include "chrome/browser/ui/webui/settings/site_settings_handler.h"
#include "chrome/browser/ui/webui/webui_util.h"
-#include "chrome/browser/web_applications/web_app_provider.h"
-#include "chrome/browser/web_applications/web_app_registrar.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
@@ -105,12 +103,12 @@
#include "ash/components/account_manager/account_manager_factory.h"
#include "ash/constants/ash_features.h"
#include "chrome/browser/ash/account_manager/account_manager_util.h"
+#include "chrome/browser/ash/android_sms/android_sms_app_manager.h"
+#include "chrome/browser/ash/android_sms/android_sms_service_factory.h"
+#include "chrome/browser/ash/multidevice_setup/multidevice_setup_client_factory.h"
+#include "chrome/browser/ash/phonehub/phone_hub_manager_factory.h"
#include "chrome/browser/ash/profiles/profile_helper.h"
#include "chrome/browser/browser_process_platform_part.h"
-#include "chrome/browser/chromeos/android_sms/android_sms_app_manager.h"
-#include "chrome/browser/chromeos/android_sms/android_sms_service_factory.h"
-#include "chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.h"
-#include "chrome/browser/chromeos/phonehub/phone_hub_manager_factory.h"
#include "chrome/browser/ui/webui/certificate_provisioning_ui_handler.h"
#include "chrome/browser/ui/webui/settings/chromeos/account_manager_handler.h"
#include "chrome/browser/ui/webui/settings/chromeos/android_apps_handler.h"
@@ -120,6 +118,7 @@
#include "chromeos/components/phonehub/phone_hub_manager.h"
#include "chromeos/login/auth/password_visibility_utils.h"
#include "components/account_manager_core/chromeos/account_manager.h"
+#include "components/account_manager_core/chromeos/account_manager_facade_factory.h"
#include "components/arc/arc_util.h"
#include "components/user_manager/user.h"
#include "ui/base/ui_base_features.h"
@@ -141,7 +140,6 @@
#if defined(OS_WIN) || defined(OS_MAC) || \
(defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS))
#include "chrome/browser/ui/webui/settings/url_handlers_handler.h"
-#include "chrome/browser/web_applications/components/url_handler_prefs.h"
#endif
namespace settings {
@@ -156,10 +154,6 @@ void SettingsUI::RegisterProfilePrefs(
registry->RegisterBooleanPref(prefs::kImportDialogSearchEngine, true);
}
-web_app::WebAppRegistrar& GetRegistrarForProfile(Profile* profile) {
- return web_app::WebAppProvider::Get(profile)->registrar();
-}
-
SettingsUI::SettingsUI(content::WebUI* web_ui)
:
#if !BUILDFLAG(IS_CHROMEOS_ASH)
@@ -223,14 +217,10 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
AddSettingsPageUIHandler(std::make_unique<PeopleHandler>(profile));
AddSettingsPageUIHandler(std::make_unique<ProfileInfoHandler>(profile));
AddSettingsPageUIHandler(std::make_unique<ProtocolHandlersHandler>());
- if (PrivacySandboxSettingsFactory::GetForProfile(profile)
- ->PrivacySandboxSettingsFunctional()) {
- AddSettingsPageUIHandler(std::make_unique<PrivacySandboxHandler>());
- }
+ AddSettingsPageUIHandler(std::make_unique<PrivacySandboxHandler>());
AddSettingsPageUIHandler(std::make_unique<SearchEnginesHandler>(profile));
AddSettingsPageUIHandler(std::make_unique<SecureDnsHandler>());
- AddSettingsPageUIHandler(std::make_unique<SiteSettingsHandler>(
- profile, GetRegistrarForProfile(profile)));
+ AddSettingsPageUIHandler(std::make_unique<SiteSettingsHandler>(profile));
AddSettingsPageUIHandler(std::make_unique<StartupPagesHandler>(web_ui));
AddSettingsPageUIHandler(std::make_unique<SecurityKeysPINHandler>());
AddSettingsPageUIHandler(std::make_unique<SecurityKeysResetHandler>());
@@ -255,8 +245,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
#if defined(OS_WIN) || defined(OS_MAC) || \
(defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS))
AddSettingsPageUIHandler(std::make_unique<UrlHandlersHandler>(
- g_browser_process->local_state(), profile,
- &GetRegistrarForProfile(profile)));
+ g_browser_process->local_state(), profile));
#endif
#if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
@@ -298,21 +287,6 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
base::FeatureList::IsEnabled(
password_manager::features::kEnableMovingMultiplePasswordsToAccount));
- html_source->AddBoolean(
- "enableContentSettingsRedesign",
- base::FeatureList::IsEnabled(features::kContentSettingsRedesign));
-
-#if defined(OS_WIN)
- html_source->AddBoolean(
- "safetyCheckChromeCleanerChildEnabled",
- base::FeatureList::IsEnabled(features::kSafetyCheckChromeCleanerChild));
-
- html_source->AddBoolean(
- "chromeCleanupScanCompletedNotificationEnabled",
- base::FeatureList::IsEnabled(
- features::kChromeCleanupScanCompletedNotification));
-#endif
-
#if !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_CHROMEOS_LACROS)
html_source->AddBoolean("enableDesktopRestructuredLanguageSettings",
base::FeatureList::IsEnabled(
@@ -323,11 +297,6 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
#endif // !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_CHROMEOS_LACROS)
#if BUILDFLAG(IS_CHROMEOS_ASH)
- // TODO(https://crbug.com/1227694): Remove this after migrating all JS usages
- // of splitSettingsSyncEnabled to syncSettingsCategorizationEnabled and
- // syncConsentOptionalEnabled.
- html_source->AddBoolean("splitSettingsSyncEnabled",
- chromeos::features::IsSplitSettingsSyncEnabled());
html_source->AddBoolean(
"syncSettingsCategorizationEnabled",
chromeos::features::IsSyncSettingsCategorizationEnabled());
@@ -348,12 +317,9 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
#endif // !BUILDFLAG(IS_CHROMEOS_ASH)
html_source->AddBoolean(
- "safetyCheckWeakPasswordsEnabled",
- base::FeatureList::IsEnabled(features::kSafetyCheckWeakPasswords));
-
- html_source->AddBoolean(
"privacyReviewEnabled",
- base::FeatureList::IsEnabled(features::kPrivacyReview));
+ !chrome::ShouldDisplayManagedUi(profile) &&
+ base::FeatureList::IsEnabled(features::kPrivacyReview));
AddSettingsPageUIHandler(std::make_unique<AboutHandler>(profile));
AddSettingsPageUIHandler(std::make_unique<ResetSettingsHandler>(profile));
@@ -401,16 +367,8 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
profile, chrome::FaviconUrlFormat::kFavicon2));
// Privacy Sandbox
- bool sandbox_enabled = PrivacySandboxSettingsFactory::GetForProfile(profile)
- ->PrivacySandboxSettingsFunctional();
- html_source->AddBoolean("privacySandboxSettingsEnabled", sandbox_enabled);
- if (sandbox_enabled) {
- html_source->AddResourcePath(
- "privacySandbox", IDR_SETTINGS_PRIVACY_SANDBOX_PRIVACY_SANDBOX_HTML);
- html_source->AddBoolean(
- "privacySandboxSettings2Enabled",
- base::FeatureList::IsEnabled(features::kPrivacySandboxSettings2));
- }
+ html_source->AddResourcePath(
+ "privacySandbox", IDR_SETTINGS_PRIVACY_SANDBOX_PRIVACY_SANDBOX_HTML);
TryShowHatsSurveyWithTimeout();
}
@@ -443,24 +401,23 @@ void SettingsUI::InitBrowserSettingsWebUIHandlers() {
// under the notification permission that is auto-granted for Android Messages
// integration in ChromeOS.
if (!profile->IsGuestSession()) {
- chromeos::android_sms::AndroidSmsService* android_sms_service =
- chromeos::android_sms::AndroidSmsServiceFactory::GetForBrowserContext(
+ auto* android_sms_service =
+ ash::android_sms::AndroidSmsServiceFactory::GetForBrowserContext(
profile);
chromeos::phonehub::PhoneHubManager* phone_hub_manager =
- chromeos::phonehub::PhoneHubManagerFactory::GetForProfile(profile);
- web_ui()->AddMessageHandler(
- std::make_unique<chromeos::settings::MultideviceHandler>(
- profile->GetPrefs(),
- chromeos::multidevice_setup::MultiDeviceSetupClientFactory::
- GetForProfile(profile),
- phone_hub_manager
- ? phone_hub_manager->GetNotificationAccessManager()
- : nullptr,
- android_sms_service
- ? android_sms_service->android_sms_pairing_state_tracker()
- : nullptr,
- android_sms_service ? android_sms_service->android_sms_app_manager()
- : nullptr));
+ ash::phonehub::PhoneHubManagerFactory::GetForProfile(profile);
+ web_ui()->AddMessageHandler(std::make_unique<
+ chromeos::settings::MultideviceHandler>(
+ profile->GetPrefs(),
+ ash::multidevice_setup::MultiDeviceSetupClientFactory::GetForProfile(
+ profile),
+ phone_hub_manager ? phone_hub_manager->GetNotificationAccessManager()
+ : nullptr,
+ android_sms_service
+ ? android_sms_service->android_sms_pairing_state_tracker()
+ : nullptr,
+ android_sms_service ? android_sms_service->android_sms_app_manager()
+ : nullptr));
}
}
#else // BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_ui.h b/chromium/chrome/browser/ui/webui/settings/settings_ui.h
index e8e71c921c8..65bd00b7914 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_ui.h
+++ b/chromium/chrome/browser/ui/webui/settings/settings_ui.h
@@ -49,6 +49,10 @@ class SettingsUI :
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
explicit SettingsUI(content::WebUI* web_ui);
+
+ SettingsUI(const SettingsUI&) = delete;
+ SettingsUI& operator=(const SettingsUI&) = delete;
+
~SettingsUI() override;
#if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -87,8 +91,6 @@ class SettingsUI :
WebuiLoadTimer webui_load_timer_;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(SettingsUI);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/settings/settings_ui_browsertest.cc
index 5ca2f79bcb6..82dd22935dc 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_ui_browsertest.cc
@@ -25,15 +25,16 @@ using ::testing::_;
using ui_test_utils::NavigateToURL;
IN_PROC_BROWSER_TEST_F(SettingsUITest, ViewSourceDoesntCrash) {
- NavigateToURL(browser(),
- GURL(content::kViewSourceScheme + std::string(":") +
- chrome::kChromeUISettingsURL + std::string("strings.js")));
+ ASSERT_TRUE(NavigateToURL(
+ browser(),
+ GURL(content::kViewSourceScheme + std::string(":") +
+ chrome::kChromeUISettingsURL + std::string("strings.js"))));
}
// Catch lifetime issues in message handlers. There was previously a problem
// with PrefMember calling Init again after Destroy.
IN_PROC_BROWSER_TEST_F(SettingsUITest, ToggleJavaScript) {
- NavigateToURL(browser(), GURL(chrome::kChromeUISettingsURL));
+ ASSERT_TRUE(NavigateToURL(browser(), GURL(chrome::kChromeUISettingsURL)));
const auto& handlers = *browser()
->tab_strip_model()
@@ -53,8 +54,9 @@ IN_PROC_BROWSER_TEST_F(SettingsUITest, TriggerHappinessTrackingSurveys) {
MockHatsService* mock_hats_service_ = static_cast<MockHatsService*>(
HatsServiceFactory::GetInstance()->SetTestingFactoryAndUse(
browser()->profile(), base::BindRepeating(&BuildMockHatsService)));
- EXPECT_CALL(*mock_hats_service_, LaunchDelayedSurveyForWebContents(
- kHatsSurveyTriggerSettings, _, _, _, _));
- NavigateToURL(browser(), GURL(chrome::kChromeUISettingsURL));
+ EXPECT_CALL(*mock_hats_service_,
+ LaunchDelayedSurveyForWebContents(kHatsSurveyTriggerSettings, _,
+ _, _, _, _));
+ ASSERT_TRUE(NavigateToURL(browser(), GURL(chrome::kChromeUISettingsURL)));
base::RunLoop().RunUntilIdle();
}
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_utils.h b/chromium/chrome/browser/ui/webui/settings/settings_utils.h
index b52c9b7f1e7..8311102588b 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_utils.h
+++ b/chromium/chrome/browser/ui/webui/settings/settings_utils.h
@@ -9,7 +9,7 @@
#include "base/macros.h"
#include "build/build_config.h"
-#include "ui/base/resource/scale_factor.h"
+#include "ui/base/resource/resource_scale_factor.h"
class GURL;
class PrefService;
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_utils_linux.cc b/chromium/chrome/browser/ui/webui/settings/settings_utils_linux.cc
index f46cb3e62d5..1f52839c15e 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_utils_linux.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_utils_linux.cc
@@ -28,6 +28,8 @@ using content::Referrer;
namespace {
+const char* const kCinnamonProxyConfigCommand[] = {"cinnamon-settings",
+ "network", nullptr};
// Command used to configure GNOME 2 proxy settings.
const char* const kGNOME2ProxyConfigCommand[] = {"gnome-network-properties",
nullptr};
@@ -97,6 +99,8 @@ void DetectAndStartProxyConfigUtil(int render_process_id, int render_view_id) {
bool launched = false;
switch (base::nix::GetDesktopEnvironment(env.get())) {
case base::nix::DESKTOP_ENVIRONMENT_CINNAMON:
+ launched = StartProxyConfigUtil(kCinnamonProxyConfigCommand);
+ break;
case base::nix::DESKTOP_ENVIRONMENT_GNOME:
case base::nix::DESKTOP_ENVIRONMENT_PANTHEON:
case base::nix::DESKTOP_ENVIRONMENT_UNITY: {
diff --git a/chromium/chrome/browser/ui/webui/settings/settings_utils_win.cc b/chromium/chrome/browser/ui/webui/settings/settings_utils_win.cc
index 30d6362c7f8..02cd1b200d4 100644
--- a/chromium/chrome/browser/ui/webui/settings/settings_utils_win.cc
+++ b/chromium/chrome/browser/ui/webui/settings/settings_utils_win.cc
@@ -36,6 +36,9 @@ class ManageCertificatesDialog : public ui::BaseShellDialogImpl {
public:
ManageCertificatesDialog() {}
+ ManageCertificatesDialog(const ManageCertificatesDialog&) = delete;
+ ManageCertificatesDialog& operator=(const ManageCertificatesDialog&) = delete;
+
// Shows the dialog and calls |callback| when the dialog closes. The caller
// must ensure the ManageCertificatesDialog remains valid until then.
void Show(HWND parent, base::OnceClosure callback) {
@@ -72,8 +75,6 @@ class ManageCertificatesDialog : public ui::BaseShellDialogImpl {
// May delete |this|.
std::move(callback).Run();
}
-
- DISALLOW_COPY_AND_ASSIGN(ManageCertificatesDialog);
};
} // namespace
diff --git a/chromium/chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.cc b/chromium/chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.cc
index 378e6eea9ff..61959d87299 100644
--- a/chromium/chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.cc
+++ b/chromium/chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.cc
@@ -36,6 +36,9 @@
#include "chrome/browser/nearby_sharing/common/nearby_share_features.h"
#include "chrome/common/url_constants.h"
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+#include "chromeos/lacros/lacros_service.h"
+#endif
namespace settings {
#if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -52,6 +55,8 @@ std::u16string GetHelpUrlWithBoard(const std::string& original_url) {
} // namespace
#endif
+// Lacros side-by-side warning should be shown as long as both Lacros and Ash
+// browsers enabled.
#if BUILDFLAG(IS_CHROMEOS_ASH)
bool ShouldShowLacrosSideBySideWarningInAsh() {
return base::FeatureList::IsEnabled(
@@ -63,11 +68,11 @@ bool ShouldShowLacrosSideBySideWarningInAsh() {
#if BUILDFLAG(IS_CHROMEOS_LACROS)
bool ShouldShowLacrosSideBySideWarningInLacros() {
- // TODO(crbug.com/1221498): determine whether Lacros is enabled in
- // side-by-side mode (needs exposure of LacrosLaunchSwitch by Ash into
- // Lacros).
return base::FeatureList::IsEnabled(
- switches::kSyncSettingsShowLacrosSideBySideWarning);
+ switches::kSyncSettingsShowLacrosSideBySideWarning) &&
+ !chromeos::LacrosService::Get()
+ ->init_params()
+ ->standalone_browser_is_only_browser;
}
#endif
@@ -345,6 +350,10 @@ void AddNearbyShareData(content::WebUIDataSource* html_source) {
{"nearbyShareDeviceNameFieldLabel",
IDS_SETTINGS_NEARBY_SHARE_DEVICE_NAME_FIELD_LABEL},
{"nearbyShareEditDeviceName", IDS_SETTINGS_NEARBY_SHARE_EDIT_DEVICE_NAME},
+ {"fastInitiationNotificationToggleTitle",
+ IDS_SETTINGS_NEARBY_SHARE_FAST_INITIATION_NOTIFICATION_TOGGLE_TITLE},
+ {"fastInitiationNotificationToggleDescription",
+ IDS_SETTINGS_NEARBY_SHARE_FAST_INITIATION_NOTIFICATION_TOGGLE_DESCRIPTION},
{"nearbyShareDeviceNameAriaDescription",
IDS_SETTINGS_NEARBY_SHARE_DEVICE_NAME_ARIA_DESCRIPTION},
{"nearbyShareConfirmDeviceName",
diff --git a/chromium/chrome/browser/ui/webui/settings/site_settings_handler.cc b/chromium/chrome/browser/ui/webui/settings/site_settings_handler.cc
index e2bf79a59ef..d8b0bfb90f1 100644
--- a/chromium/chrome/browser/ui/webui/settings/site_settings_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/site_settings_handler.cc
@@ -12,6 +12,7 @@
#include "base/barrier_closure.h"
#include "base/bind.h"
#include "base/containers/contains.h"
+#include "base/containers/flat_set.h"
#include "base/feature_list.h"
#include "base/i18n/number_formatting.h"
#include "base/macros.h"
@@ -20,6 +21,8 @@
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "build/chromeos_buildflags.h"
+#include "chrome/browser/apps/app_service/app_service_proxy.h"
+#include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
#include "chrome/browser/bluetooth/bluetooth_chooser_context_factory.h"
#include "chrome/browser/content_settings/chrome_content_settings_utils.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
@@ -37,8 +40,6 @@
#include "chrome/browser/ui/webui/settings/site_settings_helper.h"
#include "chrome/browser/usb/usb_chooser_context.h"
#include "chrome/browser/usb/usb_chooser_context_factory.h"
-#include "chrome/browser/web_applications/web_app_provider.h"
-#include "chrome/browser/web_applications/web_app_registrar.h"
#include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
#include "chrome/common/pref_names.h"
#include "chrome/grit/generated_resources.h"
@@ -57,6 +58,9 @@
#include "components/permissions/permission_util.h"
#include "components/prefs/pref_change_registrar.h"
#include "components/prefs/pref_service.h"
+#include "components/services/app_service/public/cpp/app_registry_cache.h"
+#include "components/services/app_service/public/cpp/app_update.h"
+#include "components/services/app_service/public/mojom/types.mojom.h"
#include "components/site_engagement/content/site_engagement_service.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_contents.h"
@@ -70,6 +74,7 @@
#include "third_party/blink/public/common/page/page_zoom.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/text/bytes_formatting.h"
+#include "url/gurl.h"
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "components/user_manager/user_manager.h"
@@ -106,7 +111,9 @@ enum class AllSitesAction2 {
kClearSiteGroupData = 4,
kClearOriginData = 5,
kEnterSiteDetails = 6,
- kMaxValue = kEnterSiteDetails,
+ kRemoveSiteGroup = 7,
+ kRemoveOrigin = 8,
+ kMaxValue = kRemoveOrigin,
};
// Return an appropriate API Permission ID for the given string name.
@@ -159,13 +166,23 @@ void AddExceptionsGrantedByHostedApps(content::BrowserContext* context,
}
}
-base::flat_set<std::string> GetInstalledAppOrigins(
- Profile* profile,
- const web_app::WebAppRegistrar& registrar) {
- base::flat_set<std::string> origins;
- for (const web_app::AppId& app : registrar.GetAppIds())
- origins.insert(registrar.GetAppScope(app).GetOrigin().spec());
- return origins;
+base::flat_set<std::string> GetInstalledAppOrigins(Profile* profile) {
+ if (!apps::AppServiceProxyFactory::IsAppServiceAvailableForProfile(profile))
+ return base::flat_set<std::string>();
+
+ std::vector<std::string> origins;
+ apps::AppServiceProxyFactory::GetForProfile(profile)
+ ->AppRegistryCache()
+ .ForEachApp([&origins](const apps::AppUpdate& update) {
+ if (update.AppType() == apps::mojom::AppType::kWeb ||
+ update.AppType() == apps::mojom::AppType::kSystemWeb) {
+ // For web apps, |PublisherId()| is set to the start URL.
+ const GURL start_url(update.PublisherId());
+ DCHECK(start_url.is_valid());
+ origins.push_back(start_url.GetOrigin().spec());
+ }
+ });
+ return base::flat_set<std::string>(std::move(origins));
}
// Groups |url| into sets of eTLD+1s in |site_group_map|, assuming |url| is an
@@ -233,12 +250,11 @@ void ConvertSiteGroupMapToListValue(
const std::map<std::string, std::set<std::string>>& site_group_map,
const std::set<std::string>& origin_permission_set,
base::Value* list_value,
- Profile* profile,
- const web_app::WebAppRegistrar& registrar) {
+ Profile* profile) {
DCHECK_EQ(base::Value::Type::LIST, list_value->type());
DCHECK(profile);
base::flat_set<std::string> installed_origins =
- GetInstalledAppOrigins(profile, registrar);
+ GetInstalledAppOrigins(profile);
site_engagement::SiteEngagementService* engagement_service =
site_engagement::SiteEngagementService::Get(profile);
for (const auto& entry : site_group_map) {
@@ -390,10 +406,8 @@ std::string GetCookieSettingDescription(Profile* profile) {
} // namespace
-SiteSettingsHandler::SiteSettingsHandler(
- Profile* profile,
- web_app::WebAppRegistrar& app_registrar)
- : profile_(profile), app_registrar_(app_registrar) {}
+SiteSettingsHandler::SiteSettingsHandler(Profile* profile)
+ : profile_(profile) {}
SiteSettingsHandler::~SiteSettingsHandler() {
if (cookies_tree_model_)
@@ -401,109 +415,109 @@ SiteSettingsHandler::~SiteSettingsHandler() {
}
void SiteSettingsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"fetchUsageTotal",
base::BindRepeating(&SiteSettingsHandler::HandleFetchUsageTotal,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"clearUsage", base::BindRepeating(&SiteSettingsHandler::HandleClearUsage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setDefaultValueForContentType",
base::BindRepeating(
&SiteSettingsHandler::HandleSetDefaultValueForContentType,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getDefaultValueForContentType",
base::BindRepeating(
&SiteSettingsHandler::HandleGetDefaultValueForContentType,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getAllSites",
base::BindRepeating(&SiteSettingsHandler::HandleGetAllSites,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getCategoryList",
base::BindRepeating(&SiteSettingsHandler::HandleGetCategoryList,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getCookieSettingDescription",
base::BindRepeating(
&SiteSettingsHandler::HandleGetCookieSettingDescription,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getRecentSitePermissions",
base::BindRepeating(&SiteSettingsHandler::HandleGetRecentSitePermissions,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getFormattedBytes",
base::BindRepeating(&SiteSettingsHandler::HandleGetFormattedBytes,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getExceptionList",
base::BindRepeating(&SiteSettingsHandler::HandleGetExceptionList,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getChooserExceptionList",
base::BindRepeating(&SiteSettingsHandler::HandleGetChooserExceptionList,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getOriginPermissions",
base::BindRepeating(&SiteSettingsHandler::HandleGetOriginPermissions,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setOriginPermissions",
base::BindRepeating(&SiteSettingsHandler::HandleSetOriginPermissions,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"resetCategoryPermissionForPattern",
base::BindRepeating(
&SiteSettingsHandler::HandleResetCategoryPermissionForPattern,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setCategoryPermissionForPattern",
base::BindRepeating(
&SiteSettingsHandler::HandleSetCategoryPermissionForPattern,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"resetChooserExceptionForSite",
base::BindRepeating(
&SiteSettingsHandler::HandleResetChooserExceptionForSite,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"isOriginValid",
base::BindRepeating(&SiteSettingsHandler::HandleIsOriginValid,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"isPatternValidForType",
base::BindRepeating(&SiteSettingsHandler::HandleIsPatternValidForType,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"updateIncognitoStatus",
base::BindRepeating(&SiteSettingsHandler::HandleUpdateIncognitoStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"fetchZoomLevels",
base::BindRepeating(&SiteSettingsHandler::HandleFetchZoomLevels,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeZoomLevel",
base::BindRepeating(&SiteSettingsHandler::HandleRemoveZoomLevel,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setBlockAutoplayEnabled",
base::BindRepeating(&SiteSettingsHandler::HandleSetBlockAutoplayEnabled,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"fetchBlockAutoplayStatus",
base::BindRepeating(&SiteSettingsHandler::HandleFetchBlockAutoplayStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"clearEtldPlus1DataAndCookies",
base::BindRepeating(
&SiteSettingsHandler::HandleClearEtldPlus1DataAndCookies,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"recordAction",
base::BindRepeating(&SiteSettingsHandler::HandleRecordAction,
base::Unretained(this)));
@@ -581,7 +595,8 @@ void SiteSettingsHandler::OnContentSettingChanged(
if (!site_settings::HasRegisteredGroupName(content_type))
return;
- if (primary_pattern.ToString().empty()) {
+ if (primary_pattern.MatchesAllHosts() &&
+ secondary_pattern.MatchesAllHosts()) {
FireWebUIListener("contentSettingCategoryChanged",
base::Value(site_settings::ContentSettingsTypeToGroupName(
content_type)));
@@ -598,8 +613,8 @@ void SiteSettingsHandler::OnContentSettingChanged(
// If the default sound content setting changed then we should send block
// autoplay status.
- if (primary_pattern == ContentSettingsPattern() &&
- secondary_pattern == ContentSettingsPattern() &&
+ if (primary_pattern.MatchesAllHosts() &&
+ secondary_pattern.MatchesAllHosts() &&
content_type == ContentSettingsType::SOUND) {
SendBlockAutoplayStatus();
}
@@ -646,7 +661,7 @@ void SiteSettingsHandler::OnZoomLevelChanged(
void SiteSettingsHandler::HandleFetchUsageTotal(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string host;
CHECK(args->GetString(0, &host));
usage_host_ = host;
@@ -660,7 +675,7 @@ void SiteSettingsHandler::HandleFetchUsageTotal(const base::ListValue* args) {
}
void SiteSettingsHandler::HandleClearUsage(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string origin;
CHECK(args->GetString(0, &origin));
GURL url(origin);
@@ -677,7 +692,7 @@ void SiteSettingsHandler::HandleClearUsage(const base::ListValue* args) {
void SiteSettingsHandler::HandleSetDefaultValueForContentType(
const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
std::string content_type;
CHECK(args->GetString(0, &content_type));
std::string setting;
@@ -716,7 +731,7 @@ void SiteSettingsHandler::HandleGetDefaultValueForContentType(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
std::string type;
@@ -791,7 +806,7 @@ void SiteSettingsHandler::HandleGetAllSites(const base::ListValue* args) {
// Respond with currently available data.
ConvertSiteGroupMapToListValue(all_sites_map_, origin_permission_set_,
- &result, profile, app_registrar_);
+ &result, profile);
LogAllSitesAction(AllSitesAction2::kLoadPage);
@@ -882,7 +897,7 @@ base::Value SiteSettingsHandler::PopulateCookiesAndUsageData(Profile* profile) {
GetOriginStorage(&all_sites_map_, &origin_size_map);
GetOriginCookies(&all_sites_map_, &origin_cookie_map);
ConvertSiteGroupMapToListValue(all_sites_map_, origin_permission_set_,
- &list_value, profile, app_registrar_);
+ &list_value, profile);
// Merge the origin usage and cookies number into |list_value|.
for (base::Value& site_group : list_value.GetList()) {
@@ -936,7 +951,7 @@ void SiteSettingsHandler::HandleGetFormattedBytes(const base::ListValue* args) {
void SiteSettingsHandler::HandleGetExceptionList(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
std::string type;
@@ -973,7 +988,7 @@ void SiteSettingsHandler::HandleGetChooserExceptionList(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
std::string type;
@@ -1041,7 +1056,7 @@ void SiteSettingsHandler::HandleGetOriginPermissions(
void SiteSettingsHandler::HandleSetOriginPermissions(
const base::ListValue* args) {
- CHECK_EQ(3U, args->GetSize());
+ CHECK_EQ(3U, args->GetList().size());
std::string origin_string = args->GetList()[0].GetString();
const std::string* type_string = args->GetList()[1].GetIfString();
std::string value = args->GetList()[2].GetString();
@@ -1110,7 +1125,7 @@ void SiteSettingsHandler::HandleSetOriginPermissions(
void SiteSettingsHandler::HandleResetCategoryPermissionForPattern(
const base::ListValue* args) {
- CHECK_EQ(4U, args->GetSize());
+ CHECK_EQ(4U, args->GetList().size());
std::string primary_pattern_string;
CHECK(args->GetString(0, &primary_pattern_string));
std::string secondary_pattern_string;
@@ -1174,7 +1189,7 @@ void SiteSettingsHandler::HandleResetCategoryPermissionForPattern(
void SiteSettingsHandler::HandleSetCategoryPermissionForPattern(
const base::ListValue* args) {
- CHECK_EQ(5U, args->GetSize());
+ CHECK_EQ(5U, args->GetList().size());
std::string primary_pattern_string;
CHECK(args->GetString(0, &primary_pattern_string));
std::string secondary_pattern_string;
@@ -1246,7 +1261,7 @@ void SiteSettingsHandler::HandleSetCategoryPermissionForPattern(
void SiteSettingsHandler::HandleResetChooserExceptionForSite(
const base::ListValue* args) {
- CHECK_EQ(4U, args->GetSize());
+ CHECK_EQ(4U, args->GetList().size());
std::string chooser_type_str;
CHECK(args->GetString(0, &chooser_type_str));
@@ -1272,7 +1287,7 @@ void SiteSettingsHandler::HandleResetChooserExceptionForSite(
void SiteSettingsHandler::HandleIsOriginValid(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
std::string origin_string;
@@ -1285,7 +1300,7 @@ void SiteSettingsHandler::HandleIsOriginValid(const base::ListValue* args) {
void SiteSettingsHandler::HandleIsPatternValidForType(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(3U, args->GetSize());
+ CHECK_EQ(3U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
std::string pattern_string;
@@ -1396,7 +1411,7 @@ void SiteSettingsHandler::SendZoomLevels() {
}
void SiteSettingsHandler::HandleRemoveZoomLevel(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string origin;
CHECK(args->GetString(0, &origin));
@@ -1449,7 +1464,7 @@ void SiteSettingsHandler::HandleSetBlockAutoplayEnabled(
if (!UnifiedAutoplayConfig::IsBlockAutoplayUserModifiable(profile_))
return;
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
bool value;
CHECK(args->GetBoolean(0, &value));
@@ -1573,7 +1588,7 @@ void SiteSettingsHandler::GetOriginCookies(
void SiteSettingsHandler::HandleClearEtldPlus1DataAndCookies(
const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
std::string etld_plus1_string;
CHECK(args->GetString(0, &etld_plus1_string));
diff --git a/chromium/chrome/browser/ui/webui/settings/site_settings_handler.h b/chromium/chrome/browser/ui/webui/settings/site_settings_handler.h
index 2e94cd81cbc..27269443e40 100644
--- a/chromium/chrome/browser/ui/webui/settings/site_settings_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/site_settings_handler.h
@@ -10,13 +10,13 @@
#include <set>
#include <string>
+#include "base/gtest_prod_util.h"
#include "base/scoped_multi_source_observation.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/browsing_data/cookies_tree_model.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_observer.h"
#include "chrome/browser/ui/webui/settings/settings_page_ui_handler.h"
-#include "chrome/browser/web_applications/web_app_registrar.h"
#include "components/content_settings/core/browser/content_settings_observer.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "components/permissions/object_permission_context_base.h"
@@ -41,8 +41,11 @@ class SiteSettingsHandler
public permissions::ObjectPermissionContextBase::PermissionObserver,
public CookiesTreeModel::Observer {
public:
- explicit SiteSettingsHandler(Profile* profile,
- web_app::WebAppRegistrar& web_app_registrar);
+ explicit SiteSettingsHandler(Profile* profile);
+
+ SiteSettingsHandler(const SiteSettingsHandler&) = delete;
+ SiteSettingsHandler& operator=(const SiteSettingsHandler&) = delete;
+
~SiteSettingsHandler() override;
// SettingsPageUIHandler:
@@ -264,8 +267,7 @@ class SiteSettingsHandler
// provides the updated description label for display.
void SendCookieSettingDescription();
- Profile* profile_;
- web_app::WebAppRegistrar& app_registrar_;
+ Profile* const profile_;
base::ScopedMultiSourceObservation<Profile, ProfileObserver>
observed_profiles_{this};
@@ -306,8 +308,6 @@ class SiteSettingsHandler
// Whether to send site detail data on cookie tree model update.
bool update_site_details_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(SiteSettingsHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc
index 6a7143b8631..297add2e342 100644
--- a/chromium/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/site_settings_handler_unittest.cc
@@ -21,6 +21,8 @@
#include "base/values.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
+#include "chrome/browser/apps/app_service/app_service_proxy.h"
+#include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/test_extension_system.h"
@@ -31,9 +33,7 @@
#include "chrome/browser/ui/webui/settings/site_settings_helper.h"
#include "chrome/browser/usb/usb_chooser_context.h"
#include "chrome/browser/usb/usb_chooser_context_factory.h"
-#include "chrome/browser/web_applications/components/web_app_helpers.h"
-#include "chrome/browser/web_applications/test/test_web_app_registry_controller.h"
-#include "chrome/browser/web_applications/web_app.h"
+#include "chrome/browser/web_applications/web_app_helpers.h"
#include "chrome/common/pref_names.h"
#include "chrome/grit/generated_resources.h"
#include "chrome/test/base/browser_with_test_window_test.h"
@@ -53,6 +53,9 @@
#include "components/permissions/permission_decision_auto_blocker.h"
#include "components/permissions/permission_uma_util.h"
#include "components/permissions/test/object_permission_context_base_mock_permission_observer.h"
+#include "components/services/app_service/public/cpp/app_registry_cache.h"
+#include "components/services/app_service/public/cpp/app_update.h"
+#include "components/services/app_service/public/mojom/types.mojom.h"
#include "components/sync_preferences/testing_pref_service_syncable.h"
#include "components/ukm/test_ukm_recorder.h"
#include "content/public/browser/navigation_controller.h"
@@ -70,6 +73,7 @@
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/text/bytes_formatting.h"
#include "ui/webui/webui_allowlist.h"
+#include "url/gurl.h"
#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
#include "chrome/browser/ash/login/users/mock_user_manager.h"
@@ -108,6 +112,32 @@ const struct PatternContentTypeTestCase {
{{"http://127.0.0.1", "location"}, {true, ""}}, // Localhost is secure.
{{"http://[::1]", "location"}, {true, ""}}};
+apps::mojom::AppPtr MakeApp(const std::string& app_id,
+ apps::mojom::AppType app_type,
+ const std::string& publisher_id,
+ apps::mojom::Readiness readiness,
+ apps::mojom::InstallReason install_reason) {
+ apps::mojom::AppPtr app = apps::mojom::App::New();
+ app->app_id = app_id;
+ app->app_type = app_type;
+ app->publisher_id = publisher_id;
+ app->readiness = readiness;
+ app->install_reason = install_reason;
+ return app;
+}
+
+void InstallWebApp(Profile* profile, const GURL& start_url) {
+ apps::AppRegistryCache& cache =
+ apps::AppServiceProxyFactory::GetForProfile(profile)->AppRegistryCache();
+ std::vector<apps::mojom::AppPtr> deltas;
+ deltas.push_back(MakeApp(
+ web_app::GenerateAppId(/*manifest_id=*/absl::nullopt, start_url),
+ apps::mojom::AppType::kWeb, start_url.spec(),
+ apps::mojom::Readiness::kReady, apps::mojom::InstallReason::kSync));
+ cache.OnApps(std::move(deltas), apps::mojom::AppType::kWeb,
+ /*should_notify_initialized=*/true);
+}
+
} // namespace
namespace settings {
@@ -169,13 +199,7 @@ class SiteSettingsHandlerTest : public testing::Test {
}
void SetUp() override {
- test_registry_controller_ =
- std::make_unique<web_app::TestWebAppRegistryController>();
- test_registry_controller_->SetUp(profile());
- controller().Init();
-
- handler_ =
- std::make_unique<SiteSettingsHandler>(profile_.get(), app_registrar());
+ handler_ = std::make_unique<SiteSettingsHandler>(profile_.get());
handler()->set_web_ui(web_ui());
handler()->AllowJavascript();
// AllowJavascript() adds a callback to create leveldb_env::ChromiumEnv
@@ -193,25 +217,6 @@ class SiteSettingsHandlerTest : public testing::Test {
}
}
- std::unique_ptr<web_app::WebApp> CreateWebApp() {
- const GURL app_url = GURL("http://abc.example.com/path");
- const web_app::AppId app_id =
- web_app::GenerateAppId(/*manifest_id=*/absl::nullopt, app_url);
-
- auto web_app = std::make_unique<web_app::WebApp>(app_id);
- web_app->AddSource(web_app::Source::kSync);
- web_app->SetDisplayMode(web_app::DisplayMode::kStandalone);
- web_app->SetUserDisplayMode(web_app::DisplayMode::kStandalone);
- web_app->SetName("Name");
- web_app->SetStartUrl(app_url);
-
- return web_app;
- }
-
- web_app::TestWebAppRegistryController& controller() {
- return *test_registry_controller_;
- }
- web_app::WebAppRegistrar& app_registrar() { return controller().registrar(); }
TestingProfile* profile() { return profile_.get(); }
TestingProfile* incognito_profile() { return incognito_profile_; }
content::TestWebUI* web_ui() { return &web_ui_; }
@@ -224,19 +229,19 @@ class SiteSettingsHandlerTest : public testing::Test {
ASSERT_TRUE(data.arg1()->is_string());
EXPECT_EQ("onBlockAutoplayStatusChanged", data.arg1()->GetString());
- const base::DictionaryValue* event_data = nullptr;
- ASSERT_TRUE(data.arg2()->GetAsDictionary(&event_data));
+ const base::Value* event_data = data.arg2();
+ ASSERT_TRUE(event_data->is_dict());
- bool enabled;
- ASSERT_TRUE(event_data->GetBoolean("enabled", &enabled));
- EXPECT_EQ(expected_enabled, enabled);
+ absl::optional<bool> enabled = event_data->FindBoolKey("enabled");
+ ASSERT_TRUE(enabled.has_value());
+ EXPECT_EQ(expected_enabled, *enabled);
- const base::DictionaryValue* pref_data = nullptr;
- ASSERT_TRUE(event_data->GetDictionary("pref", &pref_data));
+ const base::Value* pref_data = event_data->FindDictPath("pref");
+ ASSERT_TRUE(pref_data && pref_data->is_dict());
- bool value;
- ASSERT_TRUE(pref_data->GetBoolean("value", &value));
- EXPECT_EQ(expected_value, value);
+ absl::optional<bool> value = pref_data->FindBoolKey("value");
+ ASSERT_TRUE(value.has_value());
+ EXPECT_EQ(expected_value, *value);
}
void SetSoundContentSettingDefault(ContentSetting value) {
@@ -260,16 +265,17 @@ class SiteSettingsHandlerTest : public testing::Test {
ASSERT_TRUE(data.arg2()->is_bool());
ASSERT_TRUE(data.arg2()->GetBool());
- const base::DictionaryValue* default_value = nullptr;
- ASSERT_TRUE(data.arg3()->GetAsDictionary(&default_value));
- std::string setting;
- ASSERT_TRUE(default_value->GetString(kSetting, &setting));
+ const base::Value* default_value = data.arg3();
+ ASSERT_TRUE(default_value->is_dict());
+ const std::string* setting = default_value->FindStringKey(kSetting);
+ ASSERT_TRUE(setting);
EXPECT_EQ(content_settings::ContentSettingToString(expected_setting),
- setting);
- std::string source;
- if (default_value->GetString(kSource, &source))
+ *setting);
+ const std::string* source = default_value->FindStringKey(kSource);
+ if (source) {
EXPECT_EQ(site_settings::SiteSettingSourceToString(expected_source),
- source);
+ *source);
+ }
}
void ValidateOrigin(const std::string& expected_origin,
@@ -288,26 +294,36 @@ class SiteSettingsHandlerTest : public testing::Test {
ASSERT_TRUE(data.arg2()->is_bool());
ASSERT_TRUE(data.arg2()->GetBool());
- const base::ListValue* exceptions;
- ASSERT_TRUE(data.arg3()->GetAsList(&exceptions));
- EXPECT_EQ(1U, exceptions->GetSize());
- const base::DictionaryValue* exception;
- ASSERT_TRUE(exceptions->GetDictionary(0, &exception));
- std::string origin, embedding_origin, display_name, setting, source;
- ASSERT_TRUE(exception->GetString(site_settings::kOrigin, &origin));
- ASSERT_EQ(expected_origin, origin);
- ASSERT_TRUE(
- exception->GetString(site_settings::kDisplayName, &display_name));
- ASSERT_EQ(expected_display_name, display_name);
- ASSERT_TRUE(exception->GetString(site_settings::kEmbeddingOrigin,
- &embedding_origin));
- ASSERT_EQ(expected_embedding, embedding_origin);
- ASSERT_TRUE(exception->GetString(site_settings::kSetting, &setting));
+ ASSERT_TRUE(data.arg3()->is_list());
+ EXPECT_EQ(1U, data.arg3()->GetList().size());
+
+ const base::Value& exception = data.arg3()->GetList()[0];
+ ASSERT_TRUE(exception.is_dict());
+
+ const std::string* origin = exception.FindStringKey(site_settings::kOrigin);
+ ASSERT_TRUE(origin);
+ ASSERT_EQ(expected_origin, *origin);
+
+ const std::string* display_name =
+ exception.FindStringKey(site_settings::kDisplayName);
+ ASSERT_TRUE(display_name);
+ ASSERT_EQ(expected_display_name, *display_name);
+
+ const std::string* embedding_origin =
+ exception.FindStringKey(site_settings::kEmbeddingOrigin);
+ ASSERT_TRUE(embedding_origin);
+ ASSERT_EQ(expected_embedding, *embedding_origin);
+
+ const std::string* setting =
+ exception.FindStringKey(site_settings::kSetting);
+ ASSERT_TRUE(setting);
ASSERT_EQ(content_settings::ContentSettingToString(expected_setting),
- setting);
- ASSERT_TRUE(exception->GetString(site_settings::kSource, &source));
+ *setting);
+
+ const std::string* source = exception.FindStringKey(site_settings::kSource);
+ ASSERT_TRUE(source);
ASSERT_EQ(site_settings::SiteSettingSourceToString(expected_source),
- source);
+ *source);
}
void ValidateNoOrigin(size_t expected_total_calls) {
@@ -322,9 +338,9 @@ class SiteSettingsHandlerTest : public testing::Test {
ASSERT_TRUE(data.arg2()->is_bool());
ASSERT_TRUE(data.arg2()->GetBool());
- const base::ListValue* exceptions;
- ASSERT_TRUE(data.arg3()->GetAsList(&exceptions));
- EXPECT_EQ(0U, exceptions->GetSize());
+ const base::Value& exceptions = *data.arg3();
+ ASSERT_TRUE(exceptions.is_list());
+ EXPECT_EQ(0U, exceptions.GetList().size());
}
void ValidatePattern(bool expected_validity,
@@ -341,16 +357,16 @@ class SiteSettingsHandlerTest : public testing::Test {
ASSERT_TRUE(data.arg2()->is_bool());
ASSERT_TRUE(data.arg2()->GetBool());
- const base::DictionaryValue* result = nullptr;
- ASSERT_TRUE(data.arg3()->GetAsDictionary(&result));
+ const base::Value* result = data.arg3();
+ ASSERT_TRUE(result->is_dict());
- bool valid = false;
- ASSERT_TRUE(result->GetBoolean("isValid", &valid));
- EXPECT_EQ(expected_validity, valid);
+ absl::optional<bool> valid = result->FindBoolKey("isValid");
+ ASSERT_TRUE(valid.has_value());
+ EXPECT_EQ(expected_validity, *valid);
- std::string reason;
- ASSERT_TRUE(result->GetString("reason", &reason));
- EXPECT_EQ(expected_reason, reason);
+ const std::string* reason = result->FindStringKey("reason");
+ ASSERT_TRUE(reason);
+ EXPECT_EQ(expected_reason, *reason);
}
void ValidateIncognitoExists(bool expected_incognito,
@@ -378,23 +394,23 @@ class SiteSettingsHandlerTest : public testing::Test {
ASSERT_TRUE(data.arg1()->is_string());
EXPECT_EQ("onZoomLevelsChanged", data.arg1()->GetString());
- const base::ListValue* exceptions;
- ASSERT_TRUE(data.arg2()->GetAsList(&exceptions));
+ ASSERT_TRUE(data.arg2()->is_list());
+ base::Value::ConstListView exceptions = data.arg2()->GetList();
if (expected_host.empty()) {
- EXPECT_EQ(0U, exceptions->GetSize());
+ EXPECT_EQ(0U, exceptions.size());
} else {
- EXPECT_EQ(1U, exceptions->GetSize());
+ EXPECT_EQ(1U, exceptions.size());
- const base::DictionaryValue* exception;
- ASSERT_TRUE(exceptions->GetDictionary(0, &exception));
+ const base::Value& exception = exceptions[0];
+ ASSERT_TRUE(exception.is_dict());
- std::string host;
- ASSERT_TRUE(exception->GetString("origin", &host));
- ASSERT_EQ(expected_host, host);
+ const std::string* host = exception.FindStringKey("origin");
+ ASSERT_TRUE(host);
+ ASSERT_EQ(expected_host, *host);
- std::string zoom;
- ASSERT_TRUE(exception->GetString("zoom", &zoom));
- ASSERT_EQ(expected_zoom, zoom);
+ const std::string* zoom = exception.FindStringKey("zoom");
+ ASSERT_TRUE(zoom);
+ ASSERT_EQ(expected_zoom, *zoom);
}
}
@@ -476,13 +492,11 @@ class SiteSettingsHandlerTest : public testing::Test {
std::move(mock_cookies_tree_model));
}
- const base::ListValue* GetOnStorageFetchedSentListValue() {
+ base::Value::ConstListView GetOnStorageFetchedSentListView() {
handler()->ClearAllSitesMapForTesting();
handler()->OnStorageFetched();
const content::TestWebUI::CallData& data = *web_ui()->call_data().back();
- const base::ListValue* storage_and_cookie_list;
- data.arg2()->GetAsList(&storage_and_cookie_list);
- return storage_and_cookie_list;
+ return data.arg2()->GetList();
}
// Content setting group name for the relevant ContentSettingsType.
@@ -500,8 +514,6 @@ class SiteSettingsHandlerTest : public testing::Test {
content::BrowserTaskEnvironment task_environment_;
std::unique_ptr<TestingProfile> profile_;
TestingProfile* incognito_profile_;
- std::unique_ptr<web_app::TestWebAppRegistryController>
- test_registry_controller_;
content::TestWebUI web_ui_;
std::unique_ptr<SiteSettingsHandler> handler_;
#if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -645,7 +657,7 @@ TEST_F(SiteSettingsHandlerTest, GetAllSites) {
}
// Check |url4| disappears from the list when its embargo expires.
- clock.Advance(base::TimeDelta::FromDays(8));
+ clock.Advance(base::Days(8));
handler()->HandleGetAllSites(&base::Value::AsListValue(get_all_sites_args));
{
@@ -670,7 +682,7 @@ TEST_F(SiteSettingsHandlerTest, GetAllSites) {
CONTENT_SETTING_BLOCK,
auto_blocker->GetEmbargoResult(url3, ContentSettingsType::NOTIFICATIONS)
.content_setting);
- clock.Advance(base::TimeDelta::FromDays(8));
+ clock.Advance(base::Days(8));
EXPECT_EQ(
CONTENT_SETTING_ASK,
auto_blocker->GetEmbargoResult(url3, ContentSettingsType::NOTIFICATIONS)
@@ -699,7 +711,7 @@ TEST_F(SiteSettingsHandlerTest, GetAllSites) {
CONTENT_SETTING_BLOCK,
auto_blocker->GetEmbargoResult(url5, ContentSettingsType::NOTIFICATIONS)
.content_setting);
- clock.Advance(base::TimeDelta::FromDays(8));
+ clock.Advance(base::Days(8));
EXPECT_EQ(
CONTENT_SETTING_ASK,
auto_blocker->GetEmbargoResult(url5, ContentSettingsType::NOTIFICATIONS)
@@ -749,7 +761,7 @@ TEST_F(SiteSettingsHandlerTest, GetRecentSitePermissions) {
permissions::PermissionDecisionAutoBlocker* auto_blocker =
PermissionDecisionAutoBlockerFactory::GetForProfile(profile());
auto_blocker->SetClockForTesting(&clock);
- clock.Advance(base::TimeDelta::FromHours(1));
+ clock.Advance(base::Hours(1));
// Test recent permissions is empty when there are no preferences.
handler()->HandleGetRecentSitePermissions(
@@ -774,14 +786,14 @@ TEST_F(SiteSettingsHandlerTest, GetRecentSitePermissions) {
auto_blocker->RecordDismissAndEmbargo(
url1, ContentSettingsType::NOTIFICATIONS, false);
- clock.Advance(base::TimeDelta::FromHours(2));
- clock.Advance(base::TimeDelta::FromHours(1));
+ clock.Advance(base::Hours(2));
+ clock.Advance(base::Hours(1));
CreateIncognitoProfile();
HostContentSettingsMap* incognito_map =
HostContentSettingsMapFactory::GetForProfile(incognito_profile());
incognito_map->SetClockForTesting(&clock);
- clock.Advance(base::TimeDelta::FromHours(1));
+ clock.Advance(base::Hours(1));
permissions::PermissionDecisionAutoBlocker* incognito_auto_blocker =
PermissionDecisionAutoBlockerFactory::GetForProfile(incognito_profile());
incognito_auto_blocker->SetClockForTesting(&clock);
@@ -839,124 +851,156 @@ TEST_F(SiteSettingsHandlerTest, OnStorageFetched) {
ASSERT_TRUE(data.arg1()->is_string());
EXPECT_EQ("onStorageListFetched", data.arg1()->GetString());
- const base::ListValue* storage_and_cookie_list;
- ASSERT_TRUE(data.arg2()->GetAsList(&storage_and_cookie_list));
- EXPECT_EQ(3U, storage_and_cookie_list->GetSize());
+ ASSERT_TRUE(data.arg2()->is_list());
+ base::Value::ConstListView storage_and_cookie_list = data.arg2()->GetList();
+ EXPECT_EQ(3U, storage_and_cookie_list.size());
+
+ {
+ const base::Value& site_group = storage_and_cookie_list[0];
+ ASSERT_TRUE(site_group.is_dict());
+
+ ASSERT_TRUE(site_group.FindStringKey("etldPlus1"));
+ ASSERT_EQ("example.com", *site_group.FindStringKey("etldPlus1"));
+
+ EXPECT_EQ(3, site_group.FindKey("numCookies")->GetDouble());
- const base::DictionaryValue* site_group;
- ASSERT_TRUE(storage_and_cookie_list->GetDictionary(0, &site_group));
+ const base::Value* origin_list = site_group.FindListKey("origins");
+ ASSERT_TRUE(origin_list && origin_list->is_list());
+ // There will be 2 origins in this case. Cookie node with url
+ // http://www.example.com/ will be treat as https://www.example.com/ because
+ // this url existed in the storage nodes.
+ EXPECT_EQ(2U, origin_list->GetList().size());
- std::string etld_plus1_string;
- ASSERT_TRUE(site_group->GetString("etldPlus1", &etld_plus1_string));
- ASSERT_EQ("example.com", etld_plus1_string);
+ const base::Value& origin_info_0 = origin_list->GetList()[0];
+ ASSERT_TRUE(origin_info_0.is_dict());
- EXPECT_EQ(3, site_group->FindKey("numCookies")->GetDouble());
+ EXPECT_EQ("http://abc.example.com/",
+ origin_info_0.FindKey("origin")->GetString());
+ EXPECT_EQ(0, origin_info_0.FindKey("engagement")->GetDouble());
+ EXPECT_EQ(0, origin_info_0.FindKey("usage")->GetDouble());
+ EXPECT_EQ(1, origin_info_0.FindKey("numCookies")->GetDouble());
- const base::ListValue* origin_list;
- ASSERT_TRUE(site_group->GetList("origins", &origin_list));
- // There will be 2 origins in this case. Cookie node with url
- // http://www.example.com/ will be treat as https://www.example.com/ because
- // this url existed in the storage nodes.
- EXPECT_EQ(2U, origin_list->GetSize());
+ const base::Value& origin_info_1 = origin_list->GetList()[1];
+ ASSERT_TRUE(origin_info_1.is_dict());
- const base::DictionaryValue* origin_info;
+ // Even though in the cookies the scheme is http, it still stored as https
+ // because there is https data stored.
+ EXPECT_EQ("https://www.example.com/",
+ origin_info_1.FindKey("origin")->GetString());
+ EXPECT_EQ(0, origin_info_1.FindKey("engagement")->GetDouble());
+ EXPECT_EQ(2, origin_info_1.FindKey("usage")->GetDouble());
+ EXPECT_EQ(1, origin_info_1.FindKey("numCookies")->GetDouble());
+ }
+
+ {
+ const base::Value& site_group = storage_and_cookie_list[1];
+ ASSERT_TRUE(site_group.is_dict());
- ASSERT_TRUE(origin_list->GetDictionary(0, &origin_info));
- EXPECT_EQ("http://abc.example.com/",
- origin_info->FindKey("origin")->GetString());
- EXPECT_EQ(0, origin_info->FindKey("engagement")->GetDouble());
- EXPECT_EQ(0, origin_info->FindKey("usage")->GetDouble());
- EXPECT_EQ(1, origin_info->FindKey("numCookies")->GetDouble());
+ ASSERT_TRUE(site_group.FindStringKey("etldPlus1"));
+ ASSERT_EQ("google.com", *site_group.FindStringKey("etldPlus1"));
- ASSERT_TRUE(origin_list->GetDictionary(1, &origin_info));
- // Even though in the cookies the scheme is http, it still stored as https
- // because there is https data stored.
- EXPECT_EQ("https://www.example.com/",
- origin_info->FindKey("origin")->GetString());
- EXPECT_EQ(0, origin_info->FindKey("engagement")->GetDouble());
- EXPECT_EQ(2, origin_info->FindKey("usage")->GetDouble());
- EXPECT_EQ(1, origin_info->FindKey("numCookies")->GetDouble());
+ EXPECT_EQ(2, site_group.FindKey("numCookies")->GetDouble());
- ASSERT_TRUE(storage_and_cookie_list->GetDictionary(1, &site_group));
+ const base::Value* origin_list = site_group.FindListKey("origins");
+ ASSERT_TRUE(origin_list && origin_list->is_list());
- ASSERT_TRUE(site_group->GetString("etldPlus1", &etld_plus1_string));
- ASSERT_EQ("google.com", etld_plus1_string);
+ EXPECT_EQ(1U, origin_list->GetList().size());
- EXPECT_EQ(2, site_group->FindKey("numCookies")->GetDouble());
+ const base::Value& origin_info = origin_list->GetList()[0];
+ ASSERT_TRUE(origin_info.is_dict());
- ASSERT_TRUE(site_group->GetList("origins", &origin_list));
+ EXPECT_EQ("https://www.google.com/",
+ origin_info.FindKey("origin")->GetString());
+ EXPECT_EQ(0, origin_info.FindKey("engagement")->GetDouble());
+ EXPECT_EQ(50000000000, origin_info.FindKey("usage")->GetDouble());
+ EXPECT_EQ(0, origin_info.FindKey("numCookies")->GetDouble());
+ }
- EXPECT_EQ(1U, origin_list->GetSize());
+ {
+ const base::Value& site_group = storage_and_cookie_list[2];
+ ASSERT_TRUE(site_group.is_dict());
- ASSERT_TRUE(origin_list->GetDictionary(0, &origin_info));
- EXPECT_EQ("https://www.google.com/",
- origin_info->FindKey("origin")->GetString());
- EXPECT_EQ(0, origin_info->FindKey("engagement")->GetDouble());
- EXPECT_EQ(50000000000, origin_info->FindKey("usage")->GetDouble());
- EXPECT_EQ(0, origin_info->FindKey("numCookies")->GetDouble());
+ ASSERT_TRUE(site_group.FindStringKey("etldPlus1"));
+ ASSERT_EQ("google.com.au", *site_group.FindStringKey("etldPlus1"));
- ASSERT_TRUE(storage_and_cookie_list->GetDictionary(2, &site_group));
+ EXPECT_EQ(1, site_group.FindKey("numCookies")->GetDouble());
- ASSERT_TRUE(site_group->GetString("etldPlus1", &etld_plus1_string));
- ASSERT_EQ("google.com.au", etld_plus1_string);
+ const base::Value* origin_list = site_group.FindListKey("origins");
+ ASSERT_TRUE(origin_list && origin_list->is_list());
- EXPECT_EQ(1, site_group->FindKey("numCookies")->GetDouble());
+ EXPECT_EQ(1U, origin_list->GetList().size());
- ASSERT_TRUE(site_group->GetList("origins", &origin_list));
- EXPECT_EQ(1U, origin_list->GetSize());
+ const base::Value& origin_info = origin_list->GetList()[0];
+ ASSERT_TRUE(origin_info.is_dict());
- ASSERT_TRUE(origin_list->GetDictionary(0, &origin_info));
- EXPECT_EQ("http://google.com.au/",
- origin_info->FindKey("origin")->GetString());
- EXPECT_EQ(0, origin_info->FindKey("engagement")->GetDouble());
- EXPECT_EQ(0, origin_info->FindKey("usage")->GetDouble());
- EXPECT_EQ(1, origin_info->FindKey("numCookies")->GetDouble());
+ EXPECT_EQ("http://google.com.au/",
+ origin_info.FindKey("origin")->GetString());
+ EXPECT_EQ(0, origin_info.FindKey("engagement")->GetDouble());
+ EXPECT_EQ(0, origin_info.FindKey("usage")->GetDouble());
+ EXPECT_EQ(1, origin_info.FindKey("numCookies")->GetDouble());
+ }
}
TEST_F(SiteSettingsHandlerTest, InstalledApps) {
- auto web_app = CreateWebApp();
- controller().RegisterApp(std::move(web_app));
+ InstallWebApp(profile(), GURL("http://abc.example.com/path"));
SetUpCookiesTreeModel();
- const base::ListValue* storage_and_cookie_list =
- GetOnStorageFetchedSentListValue();
- EXPECT_EQ(3U, storage_and_cookie_list->GetSize());
+ base::Value::ConstListView storage_and_cookie_list =
+ GetOnStorageFetchedSentListView();
+ EXPECT_EQ(3U, storage_and_cookie_list.size());
- const base::DictionaryValue* site_group;
- ASSERT_TRUE(storage_and_cookie_list->GetDictionary(0, &site_group));
+ {
+ const base::Value& site_group = storage_and_cookie_list[0];
+ ASSERT_TRUE(site_group.is_dict());
- std::string etld_plus1_string;
- ASSERT_TRUE(site_group->GetString("etldPlus1", &etld_plus1_string));
- ASSERT_EQ("example.com", etld_plus1_string);
+ ASSERT_TRUE(site_group.FindStringKey("etldPlus1"));
+ ASSERT_EQ("example.com", *site_group.FindStringKey("etldPlus1"));
- ASSERT_TRUE(site_group->FindKey("hasInstalledPWA")->GetBool());
+ ASSERT_TRUE(site_group.FindKey("hasInstalledPWA")->GetBool());
- const base::ListValue* origin_list;
- ASSERT_TRUE(site_group->GetList("origins", &origin_list));
- const base::DictionaryValue* origin_info;
+ const base::Value* origin_list = site_group.FindListKey("origins");
+ ASSERT_TRUE(origin_list);
- ASSERT_TRUE(origin_list->GetDictionary(0, &origin_info));
- EXPECT_EQ("http://abc.example.com/",
- origin_info->FindKey("origin")->GetString());
- EXPECT_TRUE(origin_info->FindKey("isInstalled")->GetBool());
+ const base::Value& origin_info = origin_list->GetList()[0];
+ ASSERT_TRUE(origin_info.is_dict());
+
+ EXPECT_EQ("http://abc.example.com/",
+ origin_info.FindKey("origin")->GetString());
+ EXPECT_TRUE(origin_info.FindKey("isInstalled")->GetBool());
+ }
// Verify that installed booleans are false for other siteGroups/origins
- ASSERT_TRUE(storage_and_cookie_list->GetDictionary(1, &site_group));
-
- ASSERT_TRUE(site_group->GetString("etldPlus1", &etld_plus1_string));
- ASSERT_EQ("google.com", etld_plus1_string);
- ASSERT_TRUE(site_group->GetList("origins", &origin_list));
- ASSERT_TRUE(origin_list->GetDictionary(0, &origin_info));
- EXPECT_EQ("https://www.google.com/",
- origin_info->FindKey("origin")->GetString());
- EXPECT_FALSE(site_group->FindKey("hasInstalledPWA")->GetBool());
- EXPECT_FALSE(origin_info->FindKey("isInstalled")->GetBool());
+ {
+ const base::Value& site_group = storage_and_cookie_list[1];
+ ASSERT_TRUE(site_group.is_dict());
+
+ ASSERT_TRUE(site_group.FindStringKey("etldPlus1"));
+ ASSERT_EQ("google.com", *site_group.FindStringKey("etldPlus1"));
+
+ const base::Value* origin_list = site_group.FindListKey("origins");
+ ASSERT_TRUE(origin_list);
+
+ const base::Value& origin_info = origin_list->GetList()[0];
+ ASSERT_TRUE(origin_info.is_dict());
+
+ EXPECT_EQ("https://www.google.com/",
+ origin_info.FindKey("origin")->GetString());
+ EXPECT_FALSE(site_group.FindKey("hasInstalledPWA")->GetBool());
+ EXPECT_FALSE(origin_info.FindKey("isInstalled")->GetBool());
+ }
}
TEST_F(SiteSettingsHandlerTest, IncognitoExceptions) {
constexpr char kOriginToBlock[] = "https://www.blocked.com:443";
+ auto validate_exception = [&kOriginToBlock](const base::Value& exception) {
+ ASSERT_TRUE(exception.is_dict());
+
+ ASSERT_TRUE(exception.FindStringKey(site_settings::kOrigin));
+ ASSERT_EQ(kOriginToBlock, *exception.FindStringKey(site_settings::kOrigin));
+ };
+
CreateIncognitoProfile();
{
@@ -978,15 +1022,12 @@ TEST_F(SiteSettingsHandlerTest, IncognitoExceptions) {
&base::Value::AsListValue(get_exception_list_args));
const content::TestWebUI::CallData& data = *web_ui()->call_data().back();
- const base::ListValue* exceptions;
- ASSERT_TRUE(data.arg3()->GetAsList(&exceptions));
- ASSERT_EQ(1U, exceptions->GetSize());
- const base::DictionaryValue* exception;
- ASSERT_TRUE(exceptions->GetDictionary(0, &exception));
- std::string origin;
- ASSERT_TRUE(exception->GetString(site_settings::kOrigin, &origin));
- EXPECT_EQ(kOriginToBlock, origin);
+ ASSERT_TRUE(data.arg3()->is_list());
+ base::Value::ConstListView exceptions = data.arg3()->GetList();
+ ASSERT_EQ(1U, exceptions.size());
+
+ validate_exception(exceptions[0]);
}
{
@@ -1008,19 +1049,13 @@ TEST_F(SiteSettingsHandlerTest, IncognitoExceptions) {
&base::Value::AsListValue(get_exception_list_args));
const content::TestWebUI::CallData& data = *web_ui()->call_data().back();
- const base::ListValue* exceptions;
- ASSERT_TRUE(data.arg3()->GetAsList(&exceptions));
- ASSERT_EQ(2U, exceptions->GetSize());
- const base::DictionaryValue* exception;
- ASSERT_TRUE(exceptions->GetDictionary(0, &exception));
- std::string origin;
- ASSERT_TRUE(exception->GetString(site_settings::kOrigin, &origin));
- ASSERT_EQ(kOriginToBlock, origin);
+ ASSERT_TRUE(data.arg3()->is_list());
+ base::Value::ConstListView exceptions = data.arg3()->GetList();
+ ASSERT_EQ(2U, exceptions.size());
- ASSERT_TRUE(exceptions->GetDictionary(1, &exception));
- ASSERT_TRUE(exception->GetString(site_settings::kOrigin, &origin));
- EXPECT_EQ(kOriginToBlock, origin);
+ validate_exception(exceptions[0]);
+ validate_exception(exceptions[1]);
}
DestroyIncognitoProfile();
@@ -1070,7 +1105,7 @@ TEST_F(SiteSettingsHandlerTest, ResetCategoryPermissionForEmbargoedOrigins) {
/*incognito=*/false, &exceptions);
// The size should be 2, 1st is blocked origin, 2nd is embargoed origin.
- ASSERT_EQ(2U, exceptions.GetSize());
+ ASSERT_EQ(2U, exceptions.GetList().size());
}
{
@@ -1089,7 +1124,7 @@ TEST_F(SiteSettingsHandlerTest, ResetCategoryPermissionForEmbargoedOrigins) {
kPermissionNotifications, profile(), /*extension_registry=*/nullptr,
web_ui(),
/*incognito=*/false, &exceptions);
- ASSERT_EQ(1U, exceptions.GetSize());
+ ASSERT_EQ(1U, exceptions.GetList().size());
}
{
@@ -1108,7 +1143,7 @@ TEST_F(SiteSettingsHandlerTest, ResetCategoryPermissionForEmbargoedOrigins) {
kPermissionNotifications, profile(), /*extension_registry=*/nullptr,
web_ui(),
/*incognito=*/false, &exceptions);
- ASSERT_EQ(0U, exceptions.GetSize());
+ ASSERT_EQ(0U, exceptions.GetList().size());
}
}
@@ -1418,21 +1453,18 @@ TEST_F(SiteSettingsHandlerTest, ExceptionHelpers) {
site_settings::SiteSettingSource::kPreference),
false);
- std::string primary_pattern, secondary_pattern, display_name, type;
- bool incognito;
- CHECK(exception->GetString(site_settings::kOrigin, &primary_pattern));
- CHECK(exception->GetString(site_settings::kDisplayName, &display_name));
- CHECK(exception->GetString(site_settings::kEmbeddingOrigin,
- &secondary_pattern));
- CHECK(exception->GetString(site_settings::kSetting, &type));
- CHECK(exception->GetBoolean(site_settings::kIncognito, &incognito));
+ CHECK(exception->FindStringKey(site_settings::kOrigin));
+ CHECK(exception->FindStringKey(site_settings::kDisplayName));
+ CHECK(exception->FindStringKey(site_settings::kEmbeddingOrigin));
+ CHECK(exception->FindStringKey(site_settings::kSetting));
+ CHECK(exception->FindBoolKey(site_settings::kIncognito).has_value());
base::Value args(base::Value::Type::LIST);
- args.Append(primary_pattern);
- args.Append(secondary_pattern);
+ args.Append(*exception->FindStringKey(site_settings::kOrigin));
+ args.Append(*exception->FindStringKey(site_settings::kEmbeddingOrigin));
args.Append(kNotifications); // Chosen arbitrarily.
- args.Append(type);
- args.Append(incognito);
+ args.Append(*exception->FindStringKey(site_settings::kSetting));
+ args.Append(*exception->FindBoolKey(site_settings::kIncognito));
// We don't need to check the results. This is just to make sure it doesn't
// crash on the input.
@@ -1453,14 +1485,13 @@ TEST_F(SiteSettingsHandlerTest, ExceptionHelpers) {
site_settings::AddExceptionForHostedApp("[*.]google.com", *extension.get(),
exceptions.get());
- const base::DictionaryValue* dictionary;
- CHECK(exceptions->GetDictionary(0, &dictionary));
- CHECK(dictionary->GetString(site_settings::kOrigin, &primary_pattern));
- CHECK(dictionary->GetString(site_settings::kDisplayName, &display_name));
- CHECK(dictionary->GetString(site_settings::kEmbeddingOrigin,
- &secondary_pattern));
- CHECK(dictionary->GetString(site_settings::kSetting, &type));
- CHECK(dictionary->GetBoolean(site_settings::kIncognito, &incognito));
+ const base::Value& dictionary = exceptions->GetList()[0];
+ CHECK(dictionary.is_dict());
+ CHECK(dictionary.FindStringKey(site_settings::kOrigin));
+ CHECK(dictionary.FindStringKey(site_settings::kDisplayName));
+ CHECK(dictionary.FindStringKey(site_settings::kEmbeddingOrigin));
+ CHECK(dictionary.FindStringKey(site_settings::kSetting));
+ CHECK(dictionary.FindBoolKey(site_settings::kIncognito).has_value());
// Again, don't need to check the results.
handler()->HandleSetCategoryPermissionForPattern(
@@ -1557,12 +1588,7 @@ class SiteSettingsHandlerInfobarTest : public BrowserWithTestWindowTest {
void SetUp() override {
BrowserWithTestWindowTest::SetUp();
- test_registry_controller_ =
- std::make_unique<web_app::TestWebAppRegistryController>();
- test_registry_controller_->SetUp(profile());
-
- handler_ =
- std::make_unique<SiteSettingsHandler>(profile(), app_registrar());
+ handler_ = std::make_unique<SiteSettingsHandler>(profile());
handler()->set_web_ui(web_ui());
handler()->AllowJavascript();
web_ui()->ClearTrackedCalls();
@@ -1576,9 +1602,6 @@ class SiteSettingsHandlerInfobarTest : public BrowserWithTestWindowTest {
extensions::ExtensionSystem::Get(profile()));
extension_system->CreateExtensionService(
base::CommandLine::ForCurrentProcess(), base::FilePath(), false);
-
- // Wait for the sync bridge to be ready synchronously.
- controller().Init();
}
void TearDown() override {
@@ -1609,17 +1632,9 @@ class SiteSettingsHandlerInfobarTest : public BrowserWithTestWindowTest {
Browser* browser2() { return browser2_.get(); }
- web_app::TestWebAppRegistryController& controller() {
- return *test_registry_controller_;
- }
-
- web_app::WebAppRegistrar& app_registrar() { return controller().registrar(); }
-
const std::string kNotifications;
private:
- std::unique_ptr<web_app::TestWebAppRegistryController>
- test_registry_controller_;
content::TestWebUI web_ui_;
std::unique_ptr<SiteSettingsHandler> handler_;
std::unique_ptr<BrowserWindow> window2_;
@@ -1717,20 +1732,14 @@ TEST_F(SiteSettingsHandlerInfobarTest, SettingPermissionsTriggersInfobar) {
// Navigate the |foo| tab to the same origin as |origin_anchor|, and the
// |origin_query| tab to a different origin.
const GURL origin_path("https://www.example.com/path/to/page.html");
- content::NavigationController* foo_controller =
- &browser()
- ->tab_strip_model()
- ->GetWebContentsAt(/*foo=*/0)
- ->GetController();
- NavigateAndCommit(foo_controller, origin_path);
+ content::WebContents* foo_contents =
+ browser()->tab_strip_model()->GetWebContentsAt(/*foo=*/0);
+ NavigateAndCommit(foo_contents, origin_path);
const GURL example_without_www("https://example.com/");
- content::NavigationController* origin_query_controller =
- &browser2()
- ->tab_strip_model()
- ->GetWebContentsAt(/*origin_query=*/1)
- ->GetController();
- NavigateAndCommit(origin_query_controller, example_without_www);
+ content::WebContents* origin_query_contents =
+ browser2()->tab_strip_model()->GetWebContentsAt(/*origin_query=*/1);
+ NavigateAndCommit(origin_query_contents, example_without_www);
// Reset all permissions.
base::Value reset_args(base::Value::Type::LIST);
@@ -2024,8 +2033,7 @@ class SiteSettingsHandlerChooserExceptionTest : public SiteSettingsHandlerTest {
device_manager_.AddReceiver(
device_manager.InitWithNewPipeAndPassReceiver());
chooser_context->SetDeviceManagerForTesting(std::move(device_manager));
- chooser_context->GetDevices(
- base::DoNothing::Once<std::vector<device::mojom::UsbDeviceInfoPtr>>());
+ chooser_context->GetDevices(base::DoNothing());
base::RunLoop().RunUntilIdle();
const auto kAndroidOrigin = url::Origin::Create(kAndroidUrl);
@@ -2069,8 +2077,7 @@ class SiteSettingsHandlerChooserExceptionTest : public SiteSettingsHandlerTest {
device_manager_.AddReceiver(
device_manager.InitWithNewPipeAndPassReceiver());
chooser_context->SetDeviceManagerForTesting(std::move(device_manager));
- chooser_context->GetDevices(
- base::DoNothing::Once<std::vector<device::mojom::UsbDeviceInfoPtr>>());
+ chooser_context->GetDevices(base::DoNothing());
base::RunLoop().RunUntilIdle();
const auto kChromiumOrigin = url::Origin::Create(kChromiumUrl);
@@ -2379,14 +2386,18 @@ TEST_F(SiteSettingsHandlerTest, HandleClearEtldPlus1DataAndCookies) {
EXPECT_EQ(22, handler()->cookies_tree_model_->GetRoot()->GetTotalNodeCount());
- const base::ListValue* storage_and_cookie_list =
- GetOnStorageFetchedSentListValue();
- EXPECT_EQ(3U, storage_and_cookie_list->GetSize());
- const base::DictionaryValue* site_group;
- ASSERT_TRUE(storage_and_cookie_list->GetDictionary(0, &site_group));
- std::string etld_plus1_string;
- ASSERT_TRUE(site_group->GetString("etldPlus1", &etld_plus1_string));
- ASSERT_EQ("example.com", etld_plus1_string);
+ auto verify_site_group = [](const base::Value& site_group,
+ std::string expected_etld_plus1) {
+ ASSERT_TRUE(site_group.is_dict());
+ const std::string* etld_plus1 = site_group.FindStringKey("etldPlus1");
+ ASSERT_TRUE(etld_plus1);
+ ASSERT_EQ(expected_etld_plus1, *etld_plus1);
+ };
+
+ base::ListValue::ConstListView storage_and_cookie_list =
+ GetOnStorageFetchedSentListView();
+ EXPECT_EQ(3U, storage_and_cookie_list.size());
+ verify_site_group(storage_and_cookie_list[0], "example.com");
base::Value args(base::Value::Type::LIST);
args.Append("example.com");
@@ -2394,11 +2405,9 @@ TEST_F(SiteSettingsHandlerTest, HandleClearEtldPlus1DataAndCookies) {
&base::Value::AsListValue(args));
EXPECT_EQ(11, handler()->cookies_tree_model_->GetRoot()->GetTotalNodeCount());
- storage_and_cookie_list = GetOnStorageFetchedSentListValue();
- EXPECT_EQ(2U, storage_and_cookie_list->GetSize());
- ASSERT_TRUE(storage_and_cookie_list->GetDictionary(0, &site_group));
- ASSERT_TRUE(site_group->GetString("etldPlus1", &etld_plus1_string));
- ASSERT_EQ("google.com", etld_plus1_string);
+ storage_and_cookie_list = GetOnStorageFetchedSentListView();
+ EXPECT_EQ(2U, storage_and_cookie_list.size());
+ verify_site_group(storage_and_cookie_list[0], "google.com");
args.ClearList();
args.Append("google.com");
@@ -2408,11 +2417,9 @@ TEST_F(SiteSettingsHandlerTest, HandleClearEtldPlus1DataAndCookies) {
EXPECT_EQ(4, handler()->cookies_tree_model_->GetRoot()->GetTotalNodeCount());
- storage_and_cookie_list = GetOnStorageFetchedSentListValue();
- EXPECT_EQ(1U, storage_and_cookie_list->GetSize());
- ASSERT_TRUE(storage_and_cookie_list->GetDictionary(0, &site_group));
- ASSERT_TRUE(site_group->GetString("etldPlus1", &etld_plus1_string));
- ASSERT_EQ("google.com.au", etld_plus1_string);
+ storage_and_cookie_list = GetOnStorageFetchedSentListView();
+ EXPECT_EQ(1U, storage_and_cookie_list.size());
+ verify_site_group(storage_and_cookie_list[0], "google.com.au");
args.ClearList();
args.Append("google.com.au");
@@ -2422,8 +2429,8 @@ TEST_F(SiteSettingsHandlerTest, HandleClearEtldPlus1DataAndCookies) {
EXPECT_EQ(1, handler()->cookies_tree_model_->GetRoot()->GetTotalNodeCount());
- storage_and_cookie_list = GetOnStorageFetchedSentListValue();
- EXPECT_EQ(0U, storage_and_cookie_list->GetSize());
+ storage_and_cookie_list = GetOnStorageFetchedSentListView();
+ EXPECT_EQ(0U, storage_and_cookie_list.size());
}
TEST_F(SiteSettingsHandlerTest, CookieSettingDescription) {
diff --git a/chromium/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chromium/chrome/browser/ui/webui/settings/site_settings_helper.cc
index bf5f79be19f..2e67f636697 100644
--- a/chromium/chrome/browser/ui/webui/settings/site_settings_helper.cc
+++ b/chromium/chrome/browser/ui/webui/settings/site_settings_helper.cc
@@ -28,7 +28,7 @@
#include "chrome/browser/subresource_filter/subresource_filter_profile_context_factory.h"
#include "chrome/browser/usb/usb_chooser_context.h"
#include "chrome/browser/usb/usb_chooser_context_factory.h"
-#include "chrome/browser/web_applications/components/web_app_utils.h"
+#include "chrome/browser/web_applications/web_app_utils.h"
#include "chrome/common/pref_names.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "components/content_settings/core/common/content_settings.h"
@@ -81,7 +81,8 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
// The following ContentSettingsTypes have UI in Content Settings
// and require a mapping from their Javascript string representation in
// chrome/browser/resources/settings/site_settings/constants.js to their C++
- // ContentSettingsType provided here.
+ // ContentSettingsType provided here. These group names are only used by
+ // desktop webui.
{ContentSettingsType::COOKIES, "cookies"},
{ContentSettingsType::IMAGES, "images"},
{ContentSettingsType::JAVASCRIPT, "javascript"},
@@ -123,8 +124,9 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
"file-system-access-handles-data"},
// Add new content settings here if a corresponding Javascript string
- // representation for it is not required. Note some exceptions do have UI in
- // Content Settings but do not require a separate string.
+ // representation for it is not required, for example if the content setting
+ // is not used for desktop. Note some exceptions do have UI in Content
+ // Settings but do not require a separate string.
{ContentSettingsType::DEFAULT, nullptr},
{ContentSettingsType::AUTO_SELECT_CERTIFICATE, nullptr},
{ContentSettingsType::SSL_CERT_DECISIONS, nullptr},
@@ -161,6 +163,10 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
{ContentSettingsType::FEDERATED_IDENTITY_REQUEST, nullptr},
{ContentSettingsType::JAVASCRIPT_JIT, nullptr},
{ContentSettingsType::HTTP_ALLOWED, nullptr},
+ {ContentSettingsType::FORMFILL_METADATA, nullptr},
+ {ContentSettingsType::FEDERATED_IDENTITY_ACTIVE_SESSION, nullptr},
+ {ContentSettingsType::AUTO_DARK_WEB_CONTENT, nullptr},
+ {ContentSettingsType::REQUEST_DESKTOP_SITE, nullptr},
};
static_assert(base::size(kContentSettingsTypeGroupNames) ==
@@ -180,6 +186,7 @@ const SiteSettingSourceStringMapping kSiteSettingSourceStringMapping[] = {
{SiteSettingSource::kDefault, "default"},
{SiteSettingSource::kEmbargo, "embargo"},
{SiteSettingSource::kExtension, "extension"},
+ {SiteSettingSource::kHostedApp, "HostedApp"},
{SiteSettingSource::kInsecureOrigin, "insecure-origin"},
{SiteSettingSource::kKillSwitch, "kill-switch"},
{SiteSettingSource::kPolicy, "policy"},
@@ -520,7 +527,8 @@ void AddExceptionForHostedApp(const std::string& url_pattern,
exception->SetString(kOrigin, url_pattern);
exception->SetString(kDisplayName, url_pattern);
exception->SetString(kEmbeddingOrigin, url_pattern);
- exception->SetString(kSource, "HostedApp");
+ exception->SetString(
+ kSource, SiteSettingSourceToString(SiteSettingSource::kHostedApp));
exception->SetBoolean(kIncognito, false);
exception->SetString(kAppName, app.name());
exception->SetString(kAppId, app.id());
diff --git a/chromium/chrome/browser/ui/webui/settings/site_settings_helper.h b/chromium/chrome/browser/ui/webui/settings/site_settings_helper.h
index 685203f7b19..8086495787c 100644
--- a/chromium/chrome/browser/ui/webui/settings/site_settings_helper.h
+++ b/chromium/chrome/browser/ui/webui/settings/site_settings_helper.h
@@ -76,6 +76,7 @@ enum class SiteSettingSource {
kDefault,
kEmbargo,
kExtension,
+ kHostedApp,
kInsecureOrigin,
kKillSwitch,
kPolicy,
diff --git a/chromium/chrome/browser/ui/webui/settings/site_settings_helper_unittest.cc b/chromium/chrome/browser/ui/webui/settings/site_settings_helper_unittest.cc
index 8198b2d6890..4cd895b62da 100644
--- a/chromium/chrome/browser/ui/webui/settings/site_settings_helper_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/site_settings_helper_unittest.cc
@@ -101,7 +101,7 @@ TEST_F(SiteSettingsHelperTest, ExceptionListWithEmbargoedAndBlockedOrigins) {
/*incognito=*/false, &exceptions);
// |exceptions| size should be 2. One blocked and one embargoed origins.
- ASSERT_EQ(2U, exceptions.GetSize());
+ ASSERT_EQ(2U, exceptions.GetList().size());
base::Value* value = nullptr;
// Get last added origin.
exceptions.Get(0, &value);
@@ -148,7 +148,7 @@ TEST_F(SiteSettingsHelperTest, ExceptionListShowsIncognitoEmbargoed) {
kContentTypeNotifications, &profile, /*extension_registry=*/nullptr,
/*web_ui=*/nullptr,
/*incognito=*/false, &exceptions);
- ASSERT_EQ(1U, exceptions.GetSize());
+ ASSERT_EQ(1U, exceptions.GetList().size());
}
TestingProfile* incognito_profile =
@@ -162,7 +162,7 @@ TEST_F(SiteSettingsHelperTest, ExceptionListShowsIncognitoEmbargoed) {
/*extension_registry=*/nullptr,
/*web_ui=*/nullptr,
/*incognito=*/true, &exceptions);
- ASSERT_EQ(0U, exceptions.GetSize());
+ ASSERT_EQ(0U, exceptions.GetList().size());
}
{
@@ -183,7 +183,7 @@ TEST_F(SiteSettingsHelperTest, ExceptionListShowsIncognitoEmbargoed) {
/*incognito=*/true, &exceptions);
// The exceptions size should be 1 because previously embargoed origin
// was for a non-incognito profile.
- ASSERT_EQ(1U, exceptions.GetSize());
+ ASSERT_EQ(1U, exceptions.GetList().size());
}
// Add an origin under embargo for incognito profile.
@@ -209,7 +209,7 @@ TEST_F(SiteSettingsHelperTest, ExceptionListShowsIncognitoEmbargoed) {
/*extension_registry=*/nullptr,
/*web_ui=*/nullptr,
/*incognito=*/true, &exceptions);
- ASSERT_EQ(2U, exceptions.GetSize());
+ ASSERT_EQ(2U, exceptions.GetList().size());
}
}
@@ -225,7 +225,7 @@ TEST_F(SiteSettingsHelperTest, ExceptionListShowsEmbargoed) {
kContentTypeNotifications, &profile, /*extension_registry=*/nullptr,
/*web_ui=*/nullptr,
/*incognito=*/false, &exceptions);
- ASSERT_EQ(0U, exceptions.GetSize());
+ ASSERT_EQ(0U, exceptions.GetList().size());
}
auto* map = HostContentSettingsMapFactory::GetForProfile(&profile);
@@ -239,7 +239,7 @@ TEST_F(SiteSettingsHelperTest, ExceptionListShowsEmbargoed) {
kContentTypeNotifications, &profile, /*extension_registry=*/nullptr,
/*web_ui=*/nullptr,
/*incognito=*/false, &exceptions);
- ASSERT_EQ(1U, exceptions.GetSize());
+ ASSERT_EQ(1U, exceptions.GetList().size());
}
// Add an origin under embargo.
@@ -265,7 +265,7 @@ TEST_F(SiteSettingsHelperTest, ExceptionListShowsEmbargoed) {
/*web_ui=*/nullptr,
/*incognito=*/false, &exceptions);
// The size should be 2, 1st is blocked origin, 2nd is embargoed origin.
- ASSERT_EQ(2U, exceptions.GetSize());
+ ASSERT_EQ(2U, exceptions.GetList().size());
// Fetch and check the first origin.
const base::DictionaryValue* dictionary;
@@ -298,7 +298,7 @@ TEST_F(SiteSettingsHelperTest, ExceptionListShowsEmbargoed) {
kContentTypeCookies, &profile, /*extension_registry=*/nullptr,
/*web_ui=*/nullptr,
/*incognito=*/false, &exceptions);
- ASSERT_EQ(0U, exceptions.GetSize());
+ ASSERT_EQ(0U, exceptions.GetList().size());
}
}
@@ -313,7 +313,7 @@ TEST_F(SiteSettingsHelperTest, CheckExceptionOrder) {
/*extension_registry=*/nullptr,
/*web_ui=*/nullptr,
/*incognito=*/false, &exceptions);
- EXPECT_EQ(0u, exceptions.GetSize());
+ EXPECT_EQ(0u, exceptions.GetList().size());
map->SetDefaultContentSetting(kContentType, CONTENT_SETTING_ALLOW);
@@ -353,7 +353,7 @@ TEST_F(SiteSettingsHelperTest, CheckExceptionOrder) {
/*web_ui=*/nullptr,
/*incognito=*/false, &exceptions);
- EXPECT_EQ(5u, exceptions.GetSize());
+ EXPECT_EQ(5u, exceptions.GetList().size());
// The policy exception should be returned first, the extension exception
// second and pref exceptions afterwards.
@@ -669,8 +669,7 @@ class SiteSettingsHelperChooserExceptionTest : public testing::Test {
device_manager_.AddReceiver(
device_manager.InitWithNewPipeAndPassReceiver());
chooser_context->SetDeviceManagerForTesting(std::move(device_manager));
- chooser_context->GetDevices(
- base::DoNothing::Once<std::vector<device::mojom::UsbDeviceInfoPtr>>());
+ chooser_context->GetDevices(base::DoNothing());
base::RunLoop().RunUntilIdle();
const auto kAndroidOrigin = url::Origin::Create(kAndroidUrl);
diff --git a/chromium/chrome/browser/ui/webui/settings/system_handler.cc b/chromium/chrome/browser/ui/webui/settings/system_handler.cc
index 1c56b8ef0a9..3699eaf84ca 100644
--- a/chromium/chrome/browser/ui/webui/settings/system_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/system_handler.cc
@@ -27,7 +27,7 @@ void SystemHandler::AddLoadTimeData(content::WebUIDataSource* data_source) {
}
void SystemHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showProxySettings",
base::BindRepeating(&SystemHandler::HandleShowProxySettings,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/system_handler.h b/chromium/chrome/browser/ui/webui/settings/system_handler.h
index 8bfadf746c8..2c172f510f8 100644
--- a/chromium/chrome/browser/ui/webui/settings/system_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/system_handler.h
@@ -21,6 +21,10 @@ namespace settings {
class SystemHandler : public SettingsPageUIHandler {
public:
SystemHandler();
+
+ SystemHandler(const SystemHandler&) = delete;
+ SystemHandler& operator=(const SystemHandler&) = delete;
+
~SystemHandler() override;
// Populates handler-specific loadTimeData values used by the system page.
@@ -34,8 +38,6 @@ class SystemHandler : public SettingsPageUIHandler {
private:
// Handler for the "showProxySettings" message. No args.
void HandleShowProxySettings(const base::ListValue* /*args*/);
-
- DISALLOW_COPY_AND_ASSIGN(SystemHandler);
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/url_handlers_handler.cc b/chromium/chrome/browser/ui/webui/settings/url_handlers_handler.cc
index 5237f6b272b..47c2720970d 100644
--- a/chromium/chrome/browser/ui/webui/settings/url_handlers_handler.cc
+++ b/chromium/chrome/browser/ui/webui/settings/url_handlers_handler.cc
@@ -14,8 +14,9 @@
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/web_applications/components/url_handler_launch_params.h"
-#include "chrome/browser/web_applications/components/url_handler_prefs.h"
+#include "chrome/browser/web_applications/url_handler_launch_params.h"
+#include "chrome/browser/web_applications/url_handler_prefs.h"
+#include "chrome/browser/web_applications/web_app_provider.h"
#include "chrome/browser/web_applications/web_app_registrar.h"
#include "chrome/common/pref_names.h"
#include "components/prefs/pref_change_registrar.h"
@@ -175,6 +176,13 @@ UrlHandlersHandler::UrlHandlersHandler(
DCHECK(web_app_registrar_);
}
+UrlHandlersHandler::UrlHandlersHandler(PrefService* local_state,
+ Profile* profile)
+ : UrlHandlersHandler(
+ local_state,
+ profile,
+ &web_app::WebAppProvider::GetForWebApps(profile)->registrar()) {}
+
UrlHandlersHandler::~UrlHandlersHandler() = default;
void UrlHandlersHandler::OnJavascriptAllowed() {
@@ -200,12 +208,12 @@ void UrlHandlersHandler::OnJavascriptDisallowed() {
}
void UrlHandlersHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getUrlHandlers",
base::BindRepeating(&UrlHandlersHandler::HandleGetUrlHandlers,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"resetUrlHandlerSavedChoice",
base::BindRepeating(&UrlHandlersHandler::HandleResetUrlHandlerSavedChoice,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/settings/url_handlers_handler.h b/chromium/chrome/browser/ui/webui/settings/url_handlers_handler.h
index 9ffbf9afe99..91d887a7c82 100644
--- a/chromium/chrome/browser/ui/webui/settings/url_handlers_handler.h
+++ b/chromium/chrome/browser/ui/webui/settings/url_handlers_handler.h
@@ -25,9 +25,7 @@ class UrlHandlersHandlerTest;
class UrlHandlersHandler : public SettingsPageUIHandler {
public:
- UrlHandlersHandler(PrefService* local_state,
- Profile* profile,
- web_app::WebAppRegistrar* web_app_registrar);
+ UrlHandlersHandler(PrefService* local_state, Profile* profile);
~UrlHandlersHandler() override;
UrlHandlersHandler(const UrlHandlersHandler&) = delete;
UrlHandlersHandler& operator=(const UrlHandlersHandler&) = delete;
@@ -37,6 +35,12 @@ class UrlHandlersHandler : public SettingsPageUIHandler {
void OnJavascriptDisallowed() override;
void RegisterMessages() override;
+ protected:
+ // Protected for tests.
+ UrlHandlersHandler(PrefService* local_state,
+ Profile* profile,
+ web_app::WebAppRegistrar* web_app_registrar);
+
private:
friend class ::settings::UrlHandlersHandlerTest;
@@ -63,9 +67,9 @@ class UrlHandlersHandler : public SettingsPageUIHandler {
base::Value GetDisabledHandlersList();
std::unique_ptr<PrefChangeRegistrar> local_state_pref_change_registrar_;
- PrefService* local_state_ = nullptr;
- Profile* profile_ = nullptr;
- web_app::WebAppRegistrar* web_app_registrar_ = nullptr;
+ PrefService* const local_state_;
+ Profile* const profile_;
+ web_app::WebAppRegistrar* const web_app_registrar_;
};
} // namespace settings
diff --git a/chromium/chrome/browser/ui/webui/settings/url_handlers_handler_unittest.cc b/chromium/chrome/browser/ui/webui/settings/url_handlers_handler_unittest.cc
index 7fc223e16a3..0a34bbc29e1 100644
--- a/chromium/chrome/browser/ui/webui/settings/url_handlers_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/settings/url_handlers_handler_unittest.cc
@@ -11,10 +11,10 @@
#include "base/test/values_test_util.h"
#include "base/time/time.h"
#include "base/values.h"
-#include "chrome/browser/web_applications/components/url_handler_prefs.h"
-#include "chrome/browser/web_applications/components/web_app_helpers.h"
-#include "chrome/browser/web_applications/test/test_web_app_registry_controller.h"
+#include "chrome/browser/web_applications/test/fake_web_app_registry_controller.h"
+#include "chrome/browser/web_applications/url_handler_prefs.h"
#include "chrome/browser/web_applications/web_app.h"
+#include "chrome/browser/web_applications/web_app_helpers.h"
#include "chrome/browser/web_applications/web_app_registrar.h"
#include "chrome/common/pref_names.h"
#include "chrome/test/base/scoped_testing_local_state.h"
@@ -67,9 +67,9 @@ class UrlHandlersHandlerTest : public testing::Test {
void SetUp() override {
profile_ = std::make_unique<TestingProfile>();
- test_registry_controller_ =
- std::make_unique<web_app::TestWebAppRegistryController>();
- test_registry_controller_->SetUp(profile_.get());
+ fake_registry_controller_ =
+ std::make_unique<web_app::FakeWebAppRegistryController>();
+ fake_registry_controller_->SetUp(profile_.get());
handler_ = std::make_unique<TestUrlHandlersHandler>(
local_state(), profile(), &test_app_registrar());
@@ -106,8 +106,8 @@ class UrlHandlersHandlerTest : public testing::Test {
handler_.reset();
}
- web_app::TestWebAppRegistryController& controller() {
- return *test_registry_controller_;
+ web_app::FakeWebAppRegistryController& controller() {
+ return *fake_registry_controller_;
}
web_app::WebAppRegistrar& registrar() { return controller().registrar(); }
@@ -136,7 +136,7 @@ class UrlHandlersHandlerTest : public testing::Test {
const std::string& expected_enabled_handlers = "",
const std::string& expected_disabled_handlers = "") {
base::ListValue list_args;
- list_args.AppendString(kTestCallbackId);
+ list_args.Append(kTestCallbackId);
web_ui()->HandleReceivedMessage("getUrlHandlers", &list_args);
ASSERT_EQ(1u, web_ui()->call_data().size());
@@ -209,8 +209,8 @@ class UrlHandlersHandlerTest : public testing::Test {
ScopedTestingLocalState scoped_testing_local_state_;
std::unique_ptr<TestingProfile> profile_;
content::TestWebUI web_ui_;
- std::unique_ptr<web_app::TestWebAppRegistryController>
- test_registry_controller_;
+ std::unique_ptr<web_app::FakeWebAppRegistryController>
+ fake_registry_controller_;
std::unique_ptr<TestUrlHandlersHandler> handler_;
base::Time time_1_;
const GURL app_url_ = GURL("https://app.com");
@@ -292,10 +292,10 @@ TEST_F(UrlHandlersHandlerTest, HandleResetUrlHandlerSavedChoice) {
// Trigger resetUrlHandlerSavedChoice event directly. That should result
// in local state prefs being updated and then update to WebUI.
base::ListValue list_args;
- list_args.AppendString("https://target-1.com"); // origin
+ list_args.Append("https://target-1.com"); // origin
list_args.Append(false); // has_origin_wildcard
- list_args.AppendString("/*"); // url_path
- list_args.AppendString(web_app->app_id()); // app_id
+ list_args.Append("/*"); // url_path
+ list_args.Append(web_app->app_id()); // app_id
web_ui()->HandleReceivedMessage("resetUrlHandlerSavedChoice", &list_args);
ExpectUpdateUrlHandlers(kEmptyList, kEmptyList);
}
diff --git a/chromium/chrome/browser/ui/webui/signin/DIR_METADATA b/chromium/chrome/browser/ui/webui/signin/DIR_METADATA
index 5fad6891646..95ad5b66d16 100644
--- a/chromium/chrome/browser/ui/webui/signin/DIR_METADATA
+++ b/chromium/chrome/browser/ui/webui/signin/DIR_METADATA
@@ -1,3 +1 @@
-monorail {
- component: "Services>SignIn"
-}
+mixins: "//components/signin/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc
index 3d5d8e2a6de..cb9a4b7b037 100644
--- a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc
+++ b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc
@@ -19,8 +19,7 @@
#include "base/strings/utf_string_conversions.h"
#include "base/supports_user_data.h"
#include "base/threading/sequenced_task_runner_handle.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/enterprise/browser_management/browser_management_service.h"
+#include "chrome/browser/enterprise/browser_management/management_service_factory.h"
#include "chrome/browser/enterprise/util/managed_browser_utils.h"
#include "chrome/browser/policy/chrome_policy_conversions_client.h"
#include "chrome/browser/policy/cloud/user_policy_signin_service.h"
@@ -28,7 +27,6 @@
#include "chrome/browser/policy/profile_policy_connector.h"
#include "chrome/browser/profiles/profile_metrics.h"
#include "chrome/browser/signin/account_id_from_account_info.h"
-#include "chrome/browser/signin/dice_signed_in_profile_creator.h"
#include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/browser/signin/signin_features.h"
#include "chrome/browser/signin/signin_util.h"
@@ -45,7 +43,7 @@
#include "components/policy/core/browser/browser_policy_connector.h"
#include "components/policy/core/browser/policy_conversions.h"
#include "components/policy/core/common/cloud/user_cloud_policy_manager.h"
-#include "components/policy/core/common/management/platform_management_service.h"
+#include "components/policy/core/common/management/management_service.h"
#include "components/prefs/pref_service.h"
#include "components/signin/public/base/signin_metrics.h"
#include "components/signin/public/base/signin_pref_names.h"
@@ -57,6 +55,10 @@
#include "components/unified_consent/unified_consent_service.h"
#include "content/public/browser/storage_partition.h"
+#if BUILDFLAG(ENABLE_DICE_SUPPORT)
+#include "chrome/browser/signin/dice_signed_in_profile_creator.h"
+#endif
+
namespace {
const void* const kCurrentDiceTurnSyncOnHelperKey =
@@ -67,6 +69,11 @@ bool g_show_sync_enabled_ui_for_testing_ = false;
class DiceTurnSyncOnHelperShutdownNotifierFactory
: public BrowserContextKeyedServiceShutdownNotifierFactory {
public:
+ DiceTurnSyncOnHelperShutdownNotifierFactory(
+ const DiceTurnSyncOnHelperShutdownNotifierFactory&) = delete;
+ DiceTurnSyncOnHelperShutdownNotifierFactory& operator=(
+ const DiceTurnSyncOnHelperShutdownNotifierFactory&) = delete;
+
static DiceTurnSyncOnHelperShutdownNotifierFactory* GetInstance() {
static base::NoDestructor<DiceTurnSyncOnHelperShutdownNotifierFactory>
factory;
@@ -85,8 +92,6 @@ class DiceTurnSyncOnHelperShutdownNotifierFactory
DependsOn(policy::UserPolicySigninServiceFactory::GetInstance());
}
~DiceTurnSyncOnHelperShutdownNotifierFactory() override {}
-
- DISALLOW_COPY_AND_ASSIGN(DiceTurnSyncOnHelperShutdownNotifierFactory);
};
// User input handler for the signin confirmation dialog.
@@ -440,6 +445,7 @@ void DiceTurnSyncOnHelper::OnProviderUpdatePropagated(
}
void DiceTurnSyncOnHelper::CreateNewSignedInProfile() {
+#if BUILDFLAG(ENABLE_DICE_SUPPORT)
DCHECK(!dice_signed_in_profile_creator_);
// Unretained is fine because the profile creator is owned by this.
dice_signed_in_profile_creator_ =
@@ -449,6 +455,9 @@ void DiceTurnSyncOnHelper::CreateNewSignedInProfile() {
/*use_guest=*/false,
base::BindOnce(&DiceTurnSyncOnHelper::OnNewSignedInProfileCreated,
base::Unretained(this)));
+#else
+ NOTIMPLEMENTED() << "Creating profiles is not yet supported on lacros.";
+#endif
}
syncer::SyncService* DiceTurnSyncOnHelper::GetSyncService() {
@@ -458,6 +467,7 @@ syncer::SyncService* DiceTurnSyncOnHelper::GetSyncService() {
}
void DiceTurnSyncOnHelper::OnNewSignedInProfileCreated(Profile* new_profile) {
+#if BUILDFLAG(ENABLE_DICE_SUPPORT)
DCHECK(dice_signed_in_profile_creator_);
dice_signed_in_profile_creator_.reset();
ProfileMetrics::LogProfileAddNewUser(ProfileMetrics::ADD_NEW_USER_SYNC_FLOW);
@@ -482,6 +492,9 @@ void DiceTurnSyncOnHelper::OnNewSignedInProfileCreated(Profile* new_profile) {
// No policy to load - simply complete the signin process.
SigninAndShowSyncConfirmationUI();
}
+#else
+ NOTIMPLEMENTED() << "Creating profiles is not yet supported for lacros.";
+#endif
}
void DiceTurnSyncOnHelper::SigninAndShowSyncConfirmationUI() {
@@ -523,23 +536,21 @@ void DiceTurnSyncOnHelper::SigninAndShowSyncConfirmationUI() {
// dialog is shown to check whether sync was disabled by admin. Only wait
// for cloud policies because local policies are instantly available. See
// http://crbug.com/812546
- auto management_authorities =
- policy::BrowserManagementService(profile_).GetManagementAuthorities();
- auto platform_management_authorities =
- policy::PlatformManagementService().GetManagementAuthorities();
- management_authorities.insert(platform_management_authorities.begin(),
- platform_management_authorities.end());
- bool is_enterprise_user =
- !policy::BrowserPolicyConnector::IsNonEnterpriseUser(
- account_info_.email);
bool may_have_cloud_policies =
- is_enterprise_user ||
- management_authorities.find(
- policy::EnterpriseManagementAuthority::CLOUD) !=
- management_authorities.end() ||
- management_authorities.find(
- policy::EnterpriseManagementAuthority::CLOUD_DOMAIN) !=
- management_authorities.end();
+ !policy::BrowserPolicyConnector::IsNonEnterpriseUser(
+ account_info_.email) ||
+ policy::ManagementServiceFactory::GetForProfile(profile_)
+ ->HasManagementAuthority(
+ policy::EnterpriseManagementAuthority::CLOUD) ||
+ policy::ManagementServiceFactory::GetForProfile(profile_)
+ ->HasManagementAuthority(
+ policy::EnterpriseManagementAuthority::CLOUD_DOMAIN) ||
+ policy::ManagementServiceFactory::GetForPlatform()
+ ->HasManagementAuthority(
+ policy::EnterpriseManagementAuthority::CLOUD) ||
+ policy::ManagementServiceFactory::GetForPlatform()
+ ->HasManagementAuthority(
+ policy::EnterpriseManagementAuthority::CLOUD_DOMAIN);
if (may_have_cloud_policies &&
SyncStartupTracker::GetSyncServiceState(sync_service) ==
@@ -613,12 +624,18 @@ void DiceTurnSyncOnHelper::FinishSyncSetupAndDelete(
break;
}
case LoginUIService::ABORT_SYNC: {
+#if BUILDFLAG(ENABLE_DICE_SUPPORT)
auto* primary_account_mutator =
identity_manager_->GetPrimaryAccountMutator();
DCHECK(primary_account_mutator);
primary_account_mutator->RevokeSyncConsent(
signin_metrics::ABORT_SIGNIN,
signin_metrics::SignoutDelete::kIgnoreMetric);
+#else
+ // TODO(crbug.com/1248047): We should support this flow by disabling all
+ // data types instead of revoking the sync consent.
+ NOTIMPLEMENTED() << "Not syncing is not yet supported on lacros.";
+#endif
AbortAndDelete();
return;
}
@@ -676,6 +693,7 @@ void DiceTurnSyncOnHelper::AbortAndDelete() {
policy::UserPolicySigninServiceFactory::GetForProfile(profile_)
->ShutdownUserCloudPolicyManager();
}
+#if BUILDFLAG(ENABLE_DICE_SUPPORT)
if (signin_aborted_mode_ == SigninAbortedMode::REMOVE_ACCOUNT) {
if (base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync)) {
policy::UserPolicySigninServiceFactory::GetForProfile(profile_)
@@ -689,6 +707,10 @@ void DiceTurnSyncOnHelper::AbortAndDelete() {
signin_metrics::SourceForRefreshTokenOperation::
kDiceTurnOnSyncHelper_Abort);
}
+#else
+ NOTIMPLEMENTED()
+ << "Profiles without accounts are not yet supported on lacros.";
+#endif
delete this;
}
diff --git a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h
index 2c4006b9aee..2c2ffa2d1ce 100644
--- a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h
+++ b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h
@@ -21,14 +21,17 @@
#include "components/signin/public/base/signin_metrics.h"
#include "components/signin/public/identity_manager/account_info.h"
-#if !BUILDFLAG(ENABLE_DICE_SUPPORT)
-#error "This file should only be included if DICE support is enabled"
+#if !BUILDFLAG(ENABLE_DICE_SUPPORT) && !BUILDFLAG(ENABLE_MIRROR)
+#error "This file should only be included if DICE support / mirror is enabled"
#endif
class Browser;
-class DiceSignedInProfileCreator;
class SigninUIError;
+#if BUILDFLAG(ENABLE_DICE_SUPPORT)
+class DiceSignedInProfileCreator;
+#endif
+
namespace signin {
class IdentityManager;
}
@@ -40,6 +43,8 @@ class SyncSetupInProgressHandle;
// Handles details of setting the primary account with IdentityManager and
// turning on sync for an account for which there is already a refresh token.
+// TODO(crbug.com/1248047): Rename this to TurnSyncOnHelper to reflect this can
+// also be used with mirror.
class DiceTurnSyncOnHelper
: public SyncStartupTracker::Observer,
public policy::PolicyService::ProviderUpdateObserver {
@@ -162,6 +167,9 @@ class DiceTurnSyncOnHelper
const CoreAccountId& account_id,
SigninAbortedMode signin_aborted_mode);
+ DiceTurnSyncOnHelper(const DiceTurnSyncOnHelper&) = delete;
+ DiceTurnSyncOnHelper& operator=(const DiceTurnSyncOnHelper&) = delete;
+
// SyncStartupTracker::Observer:
void SyncStartupCompleted() override;
void SyncStartupFailed() override;
@@ -276,12 +284,13 @@ class DiceTurnSyncOnHelper
base::ScopedClosureRunner scoped_callback_runner_;
std::unique_ptr<SyncStartupTracker> sync_startup_tracker_;
+#if BUILDFLAG(ENABLE_DICE_SUPPORT)
std::unique_ptr<DiceSignedInProfileCreator> dice_signed_in_profile_creator_;
+#endif
base::CallbackListSubscription shutdown_subscription_;
bool enterprise_account_confirmed_ = false;
base::WeakPtrFactory<DiceTurnSyncOnHelper> weak_pointer_factory_{this};
- DISALLOW_COPY_AND_ASSIGN(DiceTurnSyncOnHelper);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_DICE_TURN_SYNC_ON_HELPER_H_
diff --git a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.cc b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.cc
index a086dfb1ae2..cea9a2ab19d 100644
--- a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.cc
+++ b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.cc
@@ -12,6 +12,7 @@
#include "base/notreached.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/new_tab_page/chrome_colors/selected_colors_info.h"
#include "chrome/browser/profiles/profile_attributes_storage.h"
#include "chrome/browser/profiles/profile_window.h"
#include "chrome/browser/signin/signin_features.h"
@@ -26,7 +27,6 @@
#include "chrome/browser/ui/webui/signin/login_ui_service_factory.h"
#include "chrome/browser/ui/webui/signin/signin_email_confirmation_dialog.h"
#include "chrome/browser/ui/webui/signin/signin_ui_error.h"
-#include "chrome/common/search/selected_colors_info.h"
#include "chrome/common/url_constants.h"
#include "google_apis/gaia/gaia_auth_util.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.h b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.h
index 8d54c466514..2ccb5796e97 100644
--- a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.h
+++ b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.h
@@ -24,6 +24,12 @@ class DiceTurnSyncOnHelperDelegateImpl : public DiceTurnSyncOnHelper::Delegate,
public LoginUIService::Observer {
public:
explicit DiceTurnSyncOnHelperDelegateImpl(Browser* browser);
+
+ DiceTurnSyncOnHelperDelegateImpl(const DiceTurnSyncOnHelperDelegateImpl&) =
+ delete;
+ DiceTurnSyncOnHelperDelegateImpl& operator=(
+ const DiceTurnSyncOnHelperDelegateImpl&) = delete;
+
~DiceTurnSyncOnHelperDelegateImpl() override;
protected:
@@ -64,8 +70,6 @@ class DiceTurnSyncOnHelperDelegateImpl : public DiceTurnSyncOnHelper::Delegate,
sync_confirmation_callback_;
base::ScopedObservation<LoginUIService, LoginUIService::Observer>
scoped_login_ui_service_observation_{this};
-
- DISALLOW_COPY_AND_ASSIGN(DiceTurnSyncOnHelperDelegateImpl);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_DICE_TURN_SYNC_ON_HELPER_DELEGATE_IMPL_H_
diff --git a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_unittest.cc b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_unittest.cc
index 743b2662c63..419063be1bd 100644
--- a/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_unittest.cc
@@ -16,6 +16,7 @@
#include "base/location.h"
#include "base/run_loop.h"
#include "base/threading/thread_task_runner_handle.h"
+#include "chrome/browser/enterprise/browser_management/management_service_factory.h"
#include "chrome/browser/policy/cloud/user_policy_signin_service.h"
#include "chrome/browser/policy/cloud/user_policy_signin_service_factory.h"
#include "chrome/browser/profiles/profile.h"
@@ -223,21 +224,6 @@ class DiceTurnSyncOnHelperTest : public testing::Test {
public:
DiceTurnSyncOnHelperTest()
: local_state_(TestingBrowserProcess::GetGlobal()) {
- // The sync service and waits for policies to load before starting for
- // enterprise users, managed devices and browsers. This means that services
- // depending on it might have to wait too. By setting the management
- // authorities to none by default, we assume that the default test is on an
- // unmanaged device and browser thus we avoid unnecessarily waiting for
- // policies to load. Tests expecting either an enterprise user, a managed
- // device or browser should add the appropriate management authorities.
- browser_management_ =
- std::make_unique<policy::ScopedManagementServiceOverrideForTesting>(
- policy::ManagementTarget::BROWSER,
- base::flat_set<policy::EnterpriseManagementAuthority>());
- platform_management_ =
- std::make_unique<policy::ScopedManagementServiceOverrideForTesting>(
- policy::ManagementTarget::PLATFORM,
- base::flat_set<policy::EnterpriseManagementAuthority>());
}
void SetUp() override {
@@ -461,22 +447,6 @@ class DiceTurnSyncOnHelperTest : public testing::Test {
void OnDelegateDestroyed() { ++delegate_destroyed_; }
- void SetBrowserManagementAuthorities(
- base::flat_set<policy::EnterpriseManagementAuthority> authorities) {
- browser_management_.reset();
- browser_management_ =
- std::make_unique<policy::ScopedManagementServiceOverrideForTesting>(
- policy::ManagementTarget::BROWSER, std::move(authorities));
- }
-
- void SetPlatformManagementAuthorities(
- base::flat_set<policy::EnterpriseManagementAuthority> authorities) {
- platform_management_.reset();
- platform_management_ =
- std::make_unique<policy::ScopedManagementServiceOverrideForTesting>(
- policy::ManagementTarget::PLATFORM, std::move(authorities));
- }
-
protected:
// Type of sync disabled confirmation shown.
enum SyncDisabledConfirmation { kNotShown, kShownManaged, kShownNonManaged };
@@ -985,9 +955,9 @@ TEST_F(DiceTurnSyncOnHelperTest, ShowSyncDialogForEndConsumerAccount) {
TEST_F(DiceTurnSyncOnHelperTest,
ShowSyncDialogBlockedUntilSyncStartupCompletedForCloudManagedDevices) {
// Simulate a managed browser.
- SetBrowserManagementAuthorities(
- base::flat_set<policy::EnterpriseManagementAuthority>(
- {policy::EnterpriseManagementAuthority::CLOUD_DOMAIN}));
+ policy::ScopedManagementServiceOverrideForTesting browser_management(
+ policy::ManagementServiceFactory::GetForProfile(profile()),
+ policy::EnterpriseManagementAuthority::CLOUD_DOMAIN);
// Set expectations.
expected_sync_confirmation_shown_ = false;
@@ -1095,9 +1065,9 @@ TEST_F(DiceTurnSyncOnHelperTest,
TEST_F(DiceTurnSyncOnHelperTest,
ShowSyncDialogBlockedUntilSyncStartupFailedForCloudManagedDevices) {
// Simulate a managed platform.
- SetPlatformManagementAuthorities(
- base::flat_set<policy::EnterpriseManagementAuthority>(
- {policy::EnterpriseManagementAuthority::CLOUD_DOMAIN}));
+ policy::ScopedManagementServiceOverrideForTesting platform_management(
+ policy::ManagementServiceFactory::GetForPlatform(),
+ policy::EnterpriseManagementAuthority::CLOUD_DOMAIN);
// Set expectations.
expected_sync_confirmation_shown_ = false;
diff --git a/chromium/chrome/browser/ui/webui/signin/dice_web_signin_intercept_handler.cc b/chromium/chrome/browser/ui/webui/signin/dice_web_signin_intercept_handler.cc
index a365a166ab3..a53e2ab85eb 100644
--- a/chromium/chrome/browser/ui/webui/signin/dice_web_signin_intercept_handler.cc
+++ b/chromium/chrome/browser/ui/webui/signin/dice_web_signin_intercept_handler.cc
@@ -8,7 +8,7 @@
#include "base/metrics/field_trial_params.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
-#include "chrome/browser/enterprise/browser_management/browser_management_service.h"
+#include "chrome/browser/enterprise/browser_management/management_service_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_attributes_entry.h"
#include "chrome/browser/profiles/profile_attributes_storage.h"
@@ -19,7 +19,6 @@
#include "chrome/grit/chromium_strings.h"
#include "chrome/grit/generated_resources.h"
#include "components/policy/core/common/management/management_service.h"
-#include "components/policy/core/common/management/platform_management_service.h"
#include "content/public/browser/web_ui.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/webui/web_ui_util.h"
@@ -47,18 +46,18 @@ DiceWebSigninInterceptHandler::DiceWebSigninInterceptHandler(
DiceWebSigninInterceptHandler::~DiceWebSigninInterceptHandler() = default;
void DiceWebSigninInterceptHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"accept",
base::BindRepeating(&DiceWebSigninInterceptHandler::HandleAccept,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"cancel",
base::BindRepeating(&DiceWebSigninInterceptHandler::HandleCancel,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"guest", base::BindRepeating(&DiceWebSigninInterceptHandler::HandleGuest,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"pageLoaded",
base::BindRepeating(&DiceWebSigninInterceptHandler::HandlePageLoaded,
base::Unretained(this)));
@@ -201,12 +200,10 @@ bool DiceWebSigninInterceptHandler::ShouldShowManagedDeviceVersion() {
// - or anticipating that the user may enable Sync in the new profile and
// check the cloud policies attached to the intercepted account (requires
// network requests).
- return policy::PlatformManagementService::GetInstance()
- .GetManagementAuthorityTrustworthiness() >
- policy::ManagementAuthorityTrustworthiness::NONE ||
- policy::BrowserManagementService(Profile::FromWebUI(web_ui()))
- .GetManagementAuthorityTrustworthiness() >
- policy::ManagementAuthorityTrustworthiness::NONE;
+ return policy::ManagementServiceFactory::GetForProfile(
+ Profile::FromWebUI(web_ui()))
+ ->IsManaged() ||
+ policy::ManagementServiceFactory::GetForPlatform()->IsManaged();
}
std::string DiceWebSigninInterceptHandler::GetHeaderText() {
diff --git a/chromium/chrome/browser/ui/webui/signin/enterprise_profile_welcome_handler.cc b/chromium/chrome/browser/ui/webui/signin/enterprise_profile_welcome_handler.cc
index 9916355bbdc..daae46f2b15 100644
--- a/chromium/chrome/browser/ui/webui/signin/enterprise_profile_welcome_handler.cc
+++ b/chromium/chrome/browser/ui/webui/signin/enterprise_profile_welcome_handler.cc
@@ -49,6 +49,22 @@ std::string GetManagedAccountTitle(ProfileAttributesEntry* entry,
base::UTF8ToUTF16(domain_name));
}
+std::string GetManagedAccountTitleWithEmail(
+ ProfileAttributesEntry* entry,
+ const std::string& fallback_domain_name,
+ const std::u16string& email) {
+ DCHECK(entry);
+ DCHECK(!email.empty());
+ if (entry->GetHostedDomain() == kNoHostedDomainFound)
+ return std::string();
+ const std::string domain_name = entry->GetHostedDomain().empty()
+ ? fallback_domain_name
+ : entry->GetHostedDomain();
+ return l10n_util::GetStringFUTF8(
+ IDS_ENTERPRISE_PROFILE_WELCOME_ACCOUNT_EMAIL_MANAGED_BY, email,
+ base::UTF8ToUTF16(domain_name));
+}
+
std::string GetManagedDeviceTitle() {
absl::optional<std::string> device_manager =
chrome::GetDeviceManagerIdentity();
@@ -81,6 +97,7 @@ EnterpriseProfileWelcomeHandler::EnterpriseProfileWelcomeHandler(
base::OnceCallback<void(bool)> proceed_callback)
: browser_(browser),
type_(type),
+ email_(base::UTF8ToUTF16(account_info.email)),
domain_name_(gaia::ExtractDomainName(account_info.email)),
account_id_(account_info.account_id),
profile_color_(profile_color),
@@ -100,20 +117,20 @@ EnterpriseProfileWelcomeHandler::~EnterpriseProfileWelcomeHandler() {
void EnterpriseProfileWelcomeHandler::RegisterMessages() {
profile_path_ = Profile::FromWebUI(web_ui())->GetPath();
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initialized",
base::BindRepeating(&EnterpriseProfileWelcomeHandler::HandleInitialized,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializedWithSize",
base::BindRepeating(
&EnterpriseProfileWelcomeHandler::HandleInitializedWithSize,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"proceed",
base::BindRepeating(&EnterpriseProfileWelcomeHandler::HandleProceed,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"cancel",
base::BindRepeating(&EnterpriseProfileWelcomeHandler::HandleCancel,
base::Unretained(this)));
@@ -165,7 +182,7 @@ void EnterpriseProfileWelcomeHandler::OnJavascriptDisallowed() {
void EnterpriseProfileWelcomeHandler::HandleInitialized(
const base::ListValue* args) {
- CHECK_EQ(1u, args->GetSize());
+ CHECK_EQ(1u, args->GetList().size());
AllowJavascript();
const base::Value& callback_id = args->GetList()[0];
ResolveJavascriptCallback(callback_id, GetProfileInfoValue());
@@ -238,7 +255,8 @@ base::Value EnterpriseProfileWelcomeHandler::GetProfileInfoValue() {
break;
case EnterpriseProfileWelcomeUI::ScreenType::kEnterpriseAccountCreation:
dict.SetBoolKey("showEnterpriseBadge", false);
- enterprise_title = GetManagedAccountTitle(entry, domain_name_);
+ enterprise_title =
+ GetManagedAccountTitleWithEmail(entry, domain_name_, email_);
enterprise_info = l10n_util::GetStringUTF8(
IDS_ENTERPRISE_PROFILE_WELCOME_MANAGED_DESCRIPTION_WITH_SYNC);
dict.SetStringKey(
diff --git a/chromium/chrome/browser/ui/webui/signin/enterprise_profile_welcome_handler.h b/chromium/chrome/browser/ui/webui/signin/enterprise_profile_welcome_handler.h
index 19a1c0ee0a4..a648a0b82f7 100644
--- a/chromium/chrome/browser/ui/webui/signin/enterprise_profile_welcome_handler.h
+++ b/chromium/chrome/browser/ui/webui/signin/enterprise_profile_welcome_handler.h
@@ -103,6 +103,7 @@ class EnterpriseProfileWelcomeHandler
Browser* browser_ = nullptr;
const EnterpriseProfileWelcomeUI::ScreenType type_;
+ const std::u16string email_;
const std::string domain_name_;
const CoreAccountId account_id_;
absl::optional<SkColor> profile_color_;
diff --git a/chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.cc b/chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.cc
index 75c591bf1a6..c4938ce1e93 100644
--- a/chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.cc
+++ b/chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.cc
@@ -19,7 +19,7 @@
#include "base/metrics/histogram_functions.h"
#include "chrome/browser/ash/profiles/profile_helper.h"
#include "chrome/browser/profiles/profile_manager.h"
-#include "chrome/browser/supervised_user/supervised_user_features.h"
+#include "chrome/browser/supervised_user/supervised_user_features/supervised_user_features.h"
#include "chrome/browser/supervised_user/supervised_user_service.h"
#include "chrome/browser/supervised_user/supervised_user_service_factory.h"
#include "chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h"
diff --git a/chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.h b/chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.h
index 30eaee3a549..5ebbf8bfa79 100644
--- a/chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.h
+++ b/chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.h
@@ -31,6 +31,10 @@ namespace chromeos {
class InlineLoginDialogChromeOS : public SystemWebDialogDelegate,
public web_modal::WebContentsModalDialogHost {
public:
+ InlineLoginDialogChromeOS(const InlineLoginDialogChromeOS&) = delete;
+ InlineLoginDialogChromeOS& operator=(const InlineLoginDialogChromeOS&) =
+ delete;
+
static bool IsShown();
// ui::SystemWebDialogDelegate overrides.
@@ -82,8 +86,6 @@ class InlineLoginDialogChromeOS : public SystemWebDialogDelegate,
base::OnceClosure close_dialog_closure_;
base::ObserverList<web_modal::ModalDialogHostObserver>::Unchecked
modal_dialog_host_observer_list_;
-
- DISALLOW_COPY_AND_ASSIGN(InlineLoginDialogChromeOS);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos_onboarding.cc b/chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos_onboarding.cc
index 868fd642b1d..238ed93a576 100644
--- a/chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos_onboarding.cc
+++ b/chromium/chrome/browser/ui/webui/signin/inline_login_dialog_chromeos_onboarding.cc
@@ -8,7 +8,7 @@
#include "base/metrics/histogram_functions.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
-#include "chrome/browser/supervised_user/supervised_user_features.h"
+#include "chrome/browser/supervised_user/supervised_user_features/supervised_user_features.h"
#include "components/account_manager_core/account_manager_facade.h"
#include "ui/aura/window.h"
#include "ui/gfx/geometry/size.h"
diff --git a/chromium/chrome/browser/ui/webui/signin/inline_login_handler.cc b/chromium/chrome/browser/ui/webui/signin/inline_login_handler.cc
index 187467c8e71..75806e7d500 100644
--- a/chromium/chrome/browser/ui/webui/signin/inline_login_handler.cc
+++ b/chromium/chrome/browser/ui/webui/signin/inline_login_handler.cc
@@ -43,23 +43,23 @@ InlineLoginHandler::InlineLoginHandler() = default;
InlineLoginHandler::~InlineLoginHandler() = default;
void InlineLoginHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initialize",
base::BindRepeating(&InlineLoginHandler::HandleInitializeMessage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"authExtensionReady",
base::BindRepeating(&InlineLoginHandler::HandleAuthExtensionReadyMessage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"completeLogin",
base::BindRepeating(&InlineLoginHandler::HandleCompleteLoginMessage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"switchToFullTab",
base::BindRepeating(&InlineLoginHandler::HandleSwitchToFullTabMessage,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"dialogClose", base::BindRepeating(&InlineLoginHandler::HandleDialogClose,
base::Unretained(this)));
}
@@ -162,6 +162,7 @@ void InlineLoginHandler::HandleCompleteLoginMessage(
partition->GetCookieManagerForBrowserProcess()->GetCookieList(
GaiaUrls::GetInstance()->gaia_url(),
net::CookieOptions::MakeAllInclusive(),
+ net::CookiePartitionKeychain::Todo(),
base::BindOnce(&InlineLoginHandler::HandleCompleteLoginMessageWithCookies,
weak_ptr_factory_.GetWeakPtr(),
base::ListValue(args->GetList())));
diff --git a/chromium/chrome/browser/ui/webui/signin/inline_login_handler.h b/chromium/chrome/browser/ui/webui/signin/inline_login_handler.h
index 4503b6d0d65..fbc9dceecb2 100644
--- a/chromium/chrome/browser/ui/webui/signin/inline_login_handler.h
+++ b/chromium/chrome/browser/ui/webui/signin/inline_login_handler.h
@@ -28,6 +28,10 @@ extern const char kSignInPromoQueryKeyShowAccountManagement[];
class InlineLoginHandler : public content::WebUIMessageHandler {
public:
InlineLoginHandler();
+
+ InlineLoginHandler(const InlineLoginHandler&) = delete;
+ InlineLoginHandler& operator=(const InlineLoginHandler&) = delete;
+
~InlineLoginHandler() override;
// content::WebUIMessageHandler overrides:
@@ -88,8 +92,6 @@ class InlineLoginHandler : public content::WebUIMessageHandler {
base::Value edu_login_params) = 0;
base::WeakPtrFactory<InlineLoginHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(InlineLoginHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_INLINE_LOGIN_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.cc b/chromium/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.cc
index 31a596c5e4f..06d2d3200c4 100644
--- a/chromium/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.cc
+++ b/chromium/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.cc
@@ -15,14 +15,13 @@
#include "base/macros.h"
#include "base/threading/sequenced_task_runner_handle.h"
#include "base/values.h"
-#include "chrome/browser/account_manager_facade_factory.h"
#include "chrome/browser/ash/child_accounts/secondary_account_consent_logger.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_process_platform_part.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/chrome_device_id_helper.h"
#include "chrome/browser/signin/identity_manager_factory.h"
-#include "chrome/browser/supervised_user/supervised_user_features.h"
+#include "chrome/browser/supervised_user/supervised_user_features/supervised_user_features.h"
#include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_state_tracker.h"
#include "chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.h"
@@ -32,6 +31,7 @@
#include "chromeos/dbus/util/version_loader.h"
#include "components/account_manager_core/account.h"
#include "components/account_manager_core/account_manager_facade.h"
+#include "components/account_manager_core/chromeos/account_manager_facade_factory.h"
#include "components/account_manager_core/chromeos/account_manager_mojo_service.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
@@ -264,16 +264,16 @@ void InlineLoginHandlerChromeOS::RegisterProfilePrefs(
void InlineLoginHandlerChromeOS::RegisterMessages() {
InlineLoginHandler::RegisterMessages();
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"showIncognito",
base::BindRepeating(
&InlineLoginHandlerChromeOS::ShowIncognitoAndCloseDialog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getAccounts",
base::BindRepeating(&InlineLoginHandlerChromeOS::GetAccountsInSession,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"skipWelcomePage",
base::BindRepeating(&InlineLoginHandlerChromeOS::HandleSkipWelcomePage,
base::Unretained(this)));
@@ -401,7 +401,7 @@ void InlineLoginHandlerChromeOS::OnGetAccounts(
const std::vector<::account_manager::Account>& accounts) {
base::ListValue account_emails;
for (const auto& account : accounts) {
- if (account.key.account_type ==
+ if (account.key.account_type() ==
::account_manager::AccountType::kActiveDirectory) {
// Don't send Active Directory account email to Gaia.
account_emails.Append(AnonymizeAccountEmail(account.raw_email));
diff --git a/chromium/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.h b/chromium/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.h
index be42bb49da5..fe804afbd25 100644
--- a/chromium/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.h
+++ b/chromium/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.h
@@ -22,6 +22,11 @@ class InlineLoginHandlerChromeOS : public InlineLoginHandler {
public:
explicit InlineLoginHandlerChromeOS(
const base::RepeatingClosure& close_dialog_closure);
+
+ InlineLoginHandlerChromeOS(const InlineLoginHandlerChromeOS&) = delete;
+ InlineLoginHandlerChromeOS& operator=(const InlineLoginHandlerChromeOS&) =
+ delete;
+
~InlineLoginHandlerChromeOS() override;
static void RegisterProfilePrefs(PrefRegistrySimple* registry);
@@ -49,7 +54,6 @@ class InlineLoginHandlerChromeOS : public InlineLoginHandler {
base::RepeatingClosure close_dialog_closure_;
base::WeakPtrFactory<InlineLoginHandlerChromeOS> weak_factory_{this};
- DISALLOW_COPY_AND_ASSIGN(InlineLoginHandlerChromeOS);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc b/chromium/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
index d906434d803..f06365f0d15 100644
--- a/chromium/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
+++ b/chromium/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
@@ -28,6 +28,7 @@
#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/enterprise/util/managed_browser_utils.h"
+#include "chrome/browser/new_tab_page/chrome_colors/selected_colors_info.h"
#include "chrome/browser/password_manager/password_reuse_manager_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_attributes_entry.h"
@@ -62,7 +63,6 @@
#include "chrome/browser/ui/webui/signin/signin_utils.h"
#include "chrome/browser/ui/webui/signin/signin_utils_desktop.h"
#include "chrome/common/pref_names.h"
-#include "chrome/common/search/selected_colors_info.h"
#include "chrome/common/url_constants.h"
#include "chrome/grit/chromium_strings.h"
#include "components/password_manager/core/browser/password_manager_metrics_util.h"
diff --git a/chromium/chrome/browser/ui/webui/signin/inline_login_handler_impl.h b/chromium/chrome/browser/ui/webui/signin/inline_login_handler_impl.h
index d5d18c99f91..68f99d784ab 100644
--- a/chromium/chrome/browser/ui/webui/signin/inline_login_handler_impl.h
+++ b/chromium/chrome/browser/ui/webui/signin/inline_login_handler_impl.h
@@ -36,6 +36,10 @@ class SigninUIError;
class InlineLoginHandlerImpl : public InlineLoginHandler {
public:
InlineLoginHandlerImpl();
+
+ InlineLoginHandlerImpl(const InlineLoginHandlerImpl&) = delete;
+ InlineLoginHandlerImpl& operator=(const InlineLoginHandlerImpl&) = delete;
+
~InlineLoginHandlerImpl() override;
using InlineLoginHandler::web_ui;
@@ -126,8 +130,6 @@ class InlineLoginHandlerImpl : public InlineLoginHandler {
bool confirm_untrusted_signin_;
base::WeakPtrFactory<InlineLoginHandlerImpl> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(InlineLoginHandlerImpl);
};
// Handles details of signing the user in with IdentityManager and turning on
@@ -150,6 +152,10 @@ class InlineSigninHelper : public GaiaAuthConsumer {
const std::string& signin_scoped_device_id,
bool confirm_untrusted_signin,
bool is_force_sign_in_with_usermanager);
+
+ InlineSigninHelper(const InlineSigninHelper&) = delete;
+ InlineSigninHelper& operator=(const InlineSigninHelper&) = delete;
+
~InlineSigninHelper() override;
protected:
@@ -185,8 +191,6 @@ class InlineSigninHelper : public GaiaAuthConsumer {
std::string auth_code_;
bool confirm_untrusted_signin_;
bool is_force_sign_in_with_usermanager_;
-
- DISALLOW_COPY_AND_ASSIGN(InlineSigninHelper);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_INLINE_LOGIN_HANDLER_IMPL_H_
diff --git a/chromium/chrome/browser/ui/webui/signin/inline_login_handler_modal_delegate.h b/chromium/chrome/browser/ui/webui/signin/inline_login_handler_modal_delegate.h
index 8ca37afab8a..db8f743c693 100644
--- a/chromium/chrome/browser/ui/webui/signin/inline_login_handler_modal_delegate.h
+++ b/chromium/chrome/browser/ui/webui/signin/inline_login_handler_modal_delegate.h
@@ -20,6 +20,12 @@ class InlineLoginHandlerModalDelegate
// (|InlineLoginHandlerDialogChromeOS|).
explicit InlineLoginHandlerModalDelegate(
web_modal::WebContentsModalDialogHost* host);
+
+ InlineLoginHandlerModalDelegate(const InlineLoginHandlerModalDelegate&) =
+ delete;
+ InlineLoginHandlerModalDelegate& operator=(
+ const InlineLoginHandlerModalDelegate&) = delete;
+
~InlineLoginHandlerModalDelegate() override;
// web_modal::WebContentsModalDialogManagerDelegate overrides.
@@ -29,8 +35,6 @@ class InlineLoginHandlerModalDelegate
private:
// Non-owning pointer.
web_modal::WebContentsModalDialogHost* host_;
-
- DISALLOW_COPY_AND_ASSIGN(InlineLoginHandlerModalDelegate);
};
} // namespace chromeos
diff --git a/chromium/chrome/browser/ui/webui/signin/inline_login_ui.cc b/chromium/chrome/browser/ui/webui/signin/inline_login_ui.cc
index 2dfff4b30ed..9fded7574d1 100644
--- a/chromium/chrome/browser/ui/webui/signin/inline_login_ui.cc
+++ b/chromium/chrome/browser/ui/webui/signin/inline_login_ui.cc
@@ -39,7 +39,7 @@
#include "ash/constants/ash_pref_names.h"
#include "chrome/browser/ash/profiles/profile_helper.h"
#include "chrome/browser/prefs/incognito_mode_prefs.h"
-#include "chrome/browser/supervised_user/supervised_user_features.h"
+#include "chrome/browser/supervised_user/supervised_user_features/supervised_user_features.h"
#include "chrome/browser/ui/chrome_pages.h"
#include "chrome/browser/ui/webui/chromeos/edu_account_login_handler_chromeos.h"
#include "chrome/browser/ui/webui/chromeos/edu_coexistence/edu_coexistence_login_handler_chromeos.h"
@@ -158,8 +158,6 @@ content::WebUIDataSource* CreateWebUIDataSource(Profile* profile) {
{"edu_coexistence_ui.js", IDR_EDU_COEXISTENCE_EDU_COEXISTENCE_UI_JS},
{"edu_coexistence_controller.js",
IDR_EDU_COEXISTENCE_EDU_COEXISTENCE_CONTROLLER_JS},
- {"chromeos/add_supervision/post_message_api.js",
- IDR_ADD_SUPERVISION_POST_MESSAGE_API_JS},
{"edu_coexistence_browser_proxy.js",
IDR_EDU_COEXISTENCE_EDU_COEXISTENCE_BROWSER_PROXY_JS},
{"edu_coexistence_button.js",
@@ -214,7 +212,7 @@ content::WebUIDataSource* CreateWebUIDataSource(Profile* profile) {
chromeos::prefs::kShouldSkipInlineLoginWelcomePage));
bool is_incognito_enabled =
(IncognitoModePrefs::GetAvailability(profile->GetPrefs()) !=
- IncognitoModePrefs::DISABLED);
+ IncognitoModePrefs::Availability::kDisabled);
int message_id =
is_incognito_enabled
? IDS_ACCOUNT_MANAGER_DIALOG_WELCOME_BODY
@@ -237,6 +235,9 @@ content::WebUIDataSource* CreateWebUIDataSource(Profile* profile) {
chrome::GetOSSettingsUrl(
chromeos::settings::mojom::kMyAccountsSubpagePath)
.spec());
+
+ source->OverrideContentSecurityPolicy(
+ network::mojom::CSPDirectiveName::FrameSrc, "frame-src chrome://test/;");
#endif
return source;
diff --git a/chromium/chrome/browser/ui/webui/signin/inline_login_ui.h b/chromium/chrome/browser/ui/webui/signin/inline_login_ui.h
index 82c0959aa72..061a7dd224f 100644
--- a/chromium/chrome/browser/ui/webui/signin/inline_login_ui.h
+++ b/chromium/chrome/browser/ui/webui/signin/inline_login_ui.h
@@ -15,11 +15,14 @@
class InlineLoginUI : public ui::WebDialogUI {
public:
explicit InlineLoginUI(content::WebUI* web_ui);
+
+ InlineLoginUI(const InlineLoginUI&) = delete;
+ InlineLoginUI& operator=(const InlineLoginUI&) = delete;
+
~InlineLoginUI() override;
private:
base::WeakPtrFactory<InlineLoginUI> weak_factory_{this};
- DISALLOW_COPY_AND_ASSIGN(InlineLoginUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_INLINE_LOGIN_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/signin/login_ui_service.h b/chromium/chrome/browser/ui/webui/signin/login_ui_service.h
index 9d08f6b5ae3..b54b3a09702 100644
--- a/chromium/chrome/browser/ui/webui/signin/login_ui_service.h
+++ b/chromium/chrome/browser/ui/webui/signin/login_ui_service.h
@@ -62,6 +62,10 @@ class LoginUIService : public KeyedService {
};
explicit LoginUIService(Profile* profile);
+
+ LoginUIService(const LoginUIService&) = delete;
+ LoginUIService& operator=(const LoginUIService&) = delete;
+
~LoginUIService() override;
// |observer| The observer to add or remove; cannot be NULL.
@@ -110,8 +114,6 @@ class LoginUIService : public KeyedService {
// List of observers.
base::ObserverList<Observer>::Unchecked observer_list_;
-
- DISALLOW_COPY_AND_ASSIGN(LoginUIService);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_LOGIN_UI_SERVICE_H_
diff --git a/chromium/chrome/browser/ui/webui/signin/login_ui_service_factory.h b/chromium/chrome/browser/ui/webui/signin/login_ui_service_factory.h
index 69c79efc417..1299051e10f 100644
--- a/chromium/chrome/browser/ui/webui/signin/login_ui_service_factory.h
+++ b/chromium/chrome/browser/ui/webui/signin/login_ui_service_factory.h
@@ -17,6 +17,9 @@ class Profile;
// the associated LoginUIService.
class LoginUIServiceFactory : public BrowserContextKeyedServiceFactory {
public:
+ LoginUIServiceFactory(const LoginUIServiceFactory&) = delete;
+ LoginUIServiceFactory& operator=(const LoginUIServiceFactory&) = delete;
+
// Returns the instance of LoginUIService associated with this profile
// (creating one if none exists). Returns NULL if this profile cannot have a
// LoginUIService (for example, if |profile| is incognito).
@@ -35,8 +38,6 @@ class LoginUIServiceFactory : public BrowserContextKeyedServiceFactory {
KeyedService* BuildServiceInstanceFor(
content::BrowserContext* profile) const override;
bool ServiceIsCreatedWithBrowserContext() const override;
-
- DISALLOW_COPY_AND_ASSIGN(LoginUIServiceFactory);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_LOGIN_UI_SERVICE_FACTORY_H_
diff --git a/chromium/chrome/browser/ui/webui/signin/login_ui_service_unittest.cc b/chromium/chrome/browser/ui/webui/signin/login_ui_service_unittest.cc
index deee8de7074..c1ac34e0101 100644
--- a/chromium/chrome/browser/ui/webui/signin/login_ui_service_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/signin/login_ui_service_unittest.cc
@@ -38,6 +38,10 @@ class LoginUIServiceTest : public testing::Test {
LoginUIServiceTest()
: profile_manager_(TestingBrowserProcess::GetGlobal()),
profile_(nullptr) {}
+
+ LoginUIServiceTest(const LoginUIServiceTest&) = delete;
+ LoginUIServiceTest& operator=(const LoginUIServiceTest&) = delete;
+
~LoginUIServiceTest() override {}
void SetUp() override {
@@ -51,19 +55,17 @@ class LoginUIServiceTest : public testing::Test {
TestingProfileManager profile_manager_;
// Test profile used by all tests - this is owned by profile_manager_.
TestingProfile* profile_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(LoginUIServiceTest);
};
class TestLoginUI : public LoginUIService::LoginUI {
public:
TestLoginUI() { }
+
+ TestLoginUI(const TestLoginUI&) = delete;
+ TestLoginUI& operator=(const TestLoginUI&) = delete;
+
~TestLoginUI() override {}
void FocusUI() override {}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestLoginUI);
};
TEST_F(LoginUIServiceTest, CanSetMultipleLoginUIs) {
diff --git a/chromium/chrome/browser/ui/webui/signin/login_ui_test_utils.cc b/chromium/chrome/browser/ui/webui/signin/login_ui_test_utils.cc
index d82d5a5974e..3294dd5766e 100644
--- a/chromium/chrome/browser/ui/webui/signin/login_ui_test_utils.cc
+++ b/chromium/chrome/browser/ui/webui/signin/login_ui_test_utils.cc
@@ -66,7 +66,7 @@ class SignInObserver : public signin::IdentityManager::Observer {
base::OneShotTimer timer;
timer.Start(
- FROM_HERE, base::TimeDelta::FromSeconds(30),
+ FROM_HERE, base::Seconds(30),
base::BindOnce(&SignInObserver::OnTimeout, base::Unretained(this)));
running_ = true;
message_loop_runner_ = new MessageLoopRunner;
@@ -157,7 +157,7 @@ void WaitUntilCondition(const base::RepeatingCallback<bool()>& condition,
for (int attempt = 0; attempt < 10; ++attempt) {
if (condition.Run())
return;
- RunLoopFor(base::TimeDelta::FromMilliseconds(1000));
+ RunLoopFor(base::Milliseconds(1000));
}
FAIL() << error_message;
@@ -485,7 +485,7 @@ bool DismissSyncConfirmationDialog(Browser* browser,
confirmation_closed_observer.WaitForConfirmationClosed();
return true;
}
- RunLoopFor(base::TimeDelta::FromMilliseconds(1000));
+ RunLoopFor(base::Milliseconds(1000));
}
return false;
}
@@ -510,7 +510,7 @@ bool CompleteSigninEmailConfirmationDialog(
browser, action)) {
return true;
}
- RunLoopFor(base::TimeDelta::FromMilliseconds(1000));
+ RunLoopFor(base::Milliseconds(1000));
}
return false;
}
@@ -523,7 +523,7 @@ bool CompleteReauthConfirmationDialog(Browser* browser,
if (SigninViewControllerTestUtil::TryCompleteReauthConfirmationDialog(
browser, action))
return true;
- RunLoopFor(base::TimeDelta::FromMilliseconds(1000));
+ RunLoopFor(base::Milliseconds(1000));
}
return false;
}
diff --git a/chromium/chrome/browser/ui/webui/signin/login_ui_test_utils.h b/chromium/chrome/browser/ui/webui/signin/login_ui_test_utils.h
index 3a6f1093c3c..a82ddc97c83 100644
--- a/chromium/chrome/browser/ui/webui/signin/login_ui_test_utils.h
+++ b/chromium/chrome/browser/ui/webui/signin/login_ui_test_utils.h
@@ -16,8 +16,7 @@ class Browser;
namespace login_ui_test_utils {
-constexpr base::TimeDelta kSyncConfirmationDialogTimeout =
- base::TimeDelta::FromSeconds(30);
+constexpr base::TimeDelta kSyncConfirmationDialogTimeout = base::Seconds(30);
// Blocks until the login UI is available and ready for authorization.
void WaitUntilUIReady(Browser* browser);
diff --git a/chromium/chrome/browser/ui/webui/signin/profile_creation_customize_themes_handler.cc b/chromium/chrome/browser/ui/webui/signin/profile_creation_customize_themes_handler.cc
index ab25c10a8fd..658aae3aaf7 100644
--- a/chromium/chrome/browser/ui/webui/signin/profile_creation_customize_themes_handler.cc
+++ b/chromium/chrome/browser/ui/webui/signin/profile_creation_customize_themes_handler.cc
@@ -4,8 +4,8 @@
#include "chrome/browser/ui/webui/signin/profile_creation_customize_themes_handler.h"
-#include "chrome/browser/search/chrome_colors/chrome_colors_service.h"
-#include "chrome/common/search/generated_colors_info.h"
+#include "chrome/browser/new_tab_page/chrome_colors/chrome_colors_service.h"
+#include "chrome/browser/new_tab_page/chrome_colors/generated_colors_info.h"
#include "chrome/common/themes/autogenerated_theme_util.h"
#include "ui/base/l10n/l10n_util.h"
diff --git a/chromium/chrome/browser/ui/webui/signin/profile_customization_handler.cc b/chromium/chrome/browser/ui/webui/signin/profile_customization_handler.cc
index 1a6e851014b..cc260e23c92 100644
--- a/chromium/chrome/browser/ui/webui/signin/profile_customization_handler.cc
+++ b/chromium/chrome/browser/ui/webui/signin/profile_customization_handler.cc
@@ -39,11 +39,11 @@ ProfileCustomizationHandler::~ProfileCustomizationHandler() = default;
void ProfileCustomizationHandler::RegisterMessages() {
profile_path_ = Profile::FromWebUI(web_ui())->GetPath();
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initialized",
base::BindRepeating(&ProfileCustomizationHandler::HandleInitialized,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"done", base::BindRepeating(&ProfileCustomizationHandler::HandleDone,
base::Unretained(this)));
}
@@ -85,14 +85,14 @@ void ProfileCustomizationHandler::OnProfileNameChanged(
void ProfileCustomizationHandler::HandleInitialized(
const base::ListValue* args) {
- CHECK_EQ(1u, args->GetSize());
+ CHECK_EQ(1u, args->GetList().size());
AllowJavascript();
const base::Value& callback_id = args->GetList()[0];
ResolveJavascriptCallback(callback_id, GetProfileInfoValue());
}
void ProfileCustomizationHandler::HandleDone(const base::ListValue* args) {
- CHECK_EQ(1u, args->GetSize());
+ CHECK_EQ(1u, args->GetList().size());
std::u16string profile_name =
base::UTF8ToUTF16(args->GetList()[0].GetString());
diff --git a/chromium/chrome/browser/ui/webui/signin/profile_picker_handler.cc b/chromium/chrome/browser/ui/webui/signin/profile_picker_handler.cc
index 1d1e2093bbc..62e5e1a8929 100644
--- a/chromium/chrome/browser/ui/webui/signin/profile_picker_handler.cc
+++ b/chromium/chrome/browser/ui/webui/signin/profile_picker_handler.cc
@@ -10,8 +10,12 @@
#include "base/feature_list.h"
#include "base/json/values_util.h"
#include "base/metrics/histogram_functions.h"
+#include "base/notreached.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/values.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/new_tab_page/chrome_colors/chrome_colors_service.h"
+#include "chrome/browser/new_tab_page/chrome_colors/generated_colors_info.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_attributes_entry.h"
#include "chrome/browser/profiles/profile_attributes_storage.h"
@@ -21,7 +25,7 @@
#include "chrome/browser/profiles/profile_statistics_factory.h"
#include "chrome/browser/profiles/profile_window.h"
#include "chrome/browser/profiles/profiles_state.h"
-#include "chrome/browser/search/chrome_colors/chrome_colors_service.h"
+#include "chrome/browser/signin/signin_features.h"
#include "chrome/browser/signin/signin_util.h"
#include "chrome/browser/themes/theme_properties.h"
#include "chrome/browser/themes/theme_service.h"
@@ -40,7 +44,6 @@
#include "chrome/browser/ui/webui/theme_source.h"
#include "chrome/browser/ui/webui/webui_util.h"
#include "chrome/common/pref_names.h"
-#include "chrome/common/search/generated_colors_info.h"
#include "chrome/common/themes/autogenerated_theme_util.h"
#include "chrome/common/webui_url_constants.h"
#include "components/signin/public/identity_manager/account_info.h"
@@ -220,79 +223,85 @@ void ProfilePickerHandler::EnableStartupMetrics() {
}
void ProfilePickerHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"mainViewInitialize",
base::BindRepeating(&ProfilePickerHandler::HandleMainViewInitialize,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"launchSelectedProfile",
base::BindRepeating(&ProfilePickerHandler::HandleLaunchSelectedProfile,
base::Unretained(this), /*open_settings=*/false));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"openManageProfileSettingsSubPage",
base::BindRepeating(&ProfilePickerHandler::HandleLaunchSelectedProfile,
base::Unretained(this), /*open_settings=*/true));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"launchGuestProfile",
base::BindRepeating(&ProfilePickerHandler::HandleLaunchGuestProfile,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"askOnStartupChanged",
base::BindRepeating(&ProfilePickerHandler::HandleAskOnStartupChanged,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getNewProfileSuggestedThemeInfo",
base::BindRepeating(
&ProfilePickerHandler::HandleGetNewProfileSuggestedThemeInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getProfileThemeInfo",
base::BindRepeating(&ProfilePickerHandler::HandleGetProfileThemeInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"removeProfile",
base::BindRepeating(&ProfilePickerHandler::HandleRemoveProfile,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getProfileStatistics",
base::BindRepeating(&ProfilePickerHandler::HandleGetProfileStatistics,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"loadSignInProfileCreationFlow",
base::BindRepeating(
&ProfilePickerHandler::HandleLoadSignInProfileCreationFlow,
base::Unretained(this)));
// TODO(crbug.com/1115056): Consider renaming this message to
// 'createLocalProfile' as this is only used for local profiles.
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getAvailableIcons",
base::BindRepeating(&ProfilePickerHandler::HandleGetAvailableIcons,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"createProfile",
base::BindRepeating(&ProfilePickerHandler::HandleCreateProfile,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getSwitchProfile",
base::BindRepeating(&ProfilePickerHandler::HandleGetSwitchProfile,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"confirmProfileSwitch",
base::BindRepeating(&ProfilePickerHandler::HandleConfirmProfileSwitch,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"cancelProfileSwitch",
base::BindRepeating(&ProfilePickerHandler::HandleCancelProfileSwitch,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setProfileName",
base::BindRepeating(&ProfilePickerHandler::HandleSetProfileName,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"recordSignInPromoImpression",
base::BindRepeating(
&ProfilePickerHandler::HandleRecordSignInPromoImpression,
base::Unretained(this)));
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+ web_ui()->RegisterDeprecatedMessageCallback(
+ "getUnassignedAccounts",
+ base::BindRepeating(&ProfilePickerHandler::HandleGetUnassignedAccounts,
+ base::Unretained(this)));
+#endif
Profile* profile = Profile::FromWebUI(web_ui());
content::URLDataSource::Add(profile, std::make_unique<ThemeSource>(profile));
}
@@ -373,7 +382,7 @@ void ProfilePickerHandler::HandleLaunchSelectedProfile(
#if BUILDFLAG(IS_CHROMEOS_LACROS)
if (!profiles::AreSecondaryProfilesAllowed()) {
- if (Profile::IsMainProfilePath(*profile_path)) {
+ if (!Profile::IsMainProfilePath(*profile_path)) {
LoginUIServiceFactory::GetForProfile(
Profile::FromWebUI(web_ui())->GetOriginalProfile())
->SetProfileBlockingErrorMessage();
@@ -413,7 +422,7 @@ void ProfilePickerHandler::HandleAskOnStartupChanged(
void ProfilePickerHandler::HandleGetNewProfileSuggestedThemeInfo(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value& callback_id = args->GetList()[0];
chrome_colors::ColorInfo color_info = GenerateNewProfileColor();
int avatar_icon_size =
@@ -455,7 +464,7 @@ void ProfilePickerHandler::HandleGetProfileThemeInfo(
void ProfilePickerHandler::HandleGetAvailableIcons(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value& callback_id = args->GetList()[0];
ResolveJavascriptCallback(
callback_id,
@@ -490,7 +499,7 @@ void ProfilePickerHandler::HandleCreateProfile(const base::ListValue* args) {
void ProfilePickerHandler::HandleGetSwitchProfile(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value& callback_id = args->GetList()[0];
int avatar_icon_size =
kProfileCardAvatarSize * web_ui()->GetDeviceScaleFactor();
@@ -525,7 +534,7 @@ void ProfilePickerHandler::HandleConfirmProfileSwitch(
void ProfilePickerHandler::HandleCancelProfileSwitch(
const base::ListValue* args) {
- ProfilePicker::CancelSignIn();
+ ProfilePicker::CancelSignedInFlow();
}
void ProfilePickerHandler::OnProfileCreated(
@@ -599,7 +608,7 @@ void ProfilePickerHandler::HandleRecordSignInPromoImpression(
}
void ProfilePickerHandler::HandleSetProfileName(const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
const base::Value& profile_path_value = args->GetList()[0];
absl::optional<base::FilePath> profile_path =
base::ValueToFilePath(profile_path_value);
@@ -621,7 +630,7 @@ void ProfilePickerHandler::HandleSetProfileName(const base::ListValue* args) {
}
void ProfilePickerHandler::HandleRemoveProfile(const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value& profile_path_value = args->GetList()[0];
absl::optional<base::FilePath> profile_path =
base::ValueToFilePath(profile_path_value);
@@ -644,7 +653,7 @@ void ProfilePickerHandler::HandleRemoveProfile(const base::ListValue* args) {
void ProfilePickerHandler::HandleGetProfileStatistics(
const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value& profile_path_value = args->GetList()[0];
absl::optional<base::FilePath> profile_path =
base::ValueToFilePath(profile_path_value);
@@ -691,16 +700,36 @@ void ProfilePickerHandler::OnProfileStatisticsReceived(
void ProfilePickerHandler::HandleLoadSignInProfileCreationFlow(
const base::ListValue* args) {
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
+
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+ if (base::FeatureList::IsEnabled(kMultiProfileAccountConsistency)) {
+ // TODO(https://crbug.com/1226054): Implement the signin flow on Lacros: if
+ // the `gaiaId` parameter is non-empty, this the a unassigned account that
+ // should be used. If `gaiaId` is empty, an account should be added to the
+ // system and then used for the new profile.
+ NOTIMPLEMENTED();
+ FireWebUIListener("load-signin-finished", base::Value(/*success=*/false));
+ return;
+ }
+#endif
+
+ DCHECK(args->GetList()[1].GetString().empty())
+ << "gaiaId is only supported on Lacros with account consistency";
absl::optional<SkColor> profile_color = args->GetList()[0].GetIfInt();
if (signin_util::IsForceSigninEnabled()) {
// Force sign-in policy uses a separate flow that doesn't initialize the
// profile color. Generate a new profile color here.
profile_color = GenerateNewProfileColor().color;
}
- ProfilePicker::SwitchToSignIn(
+
+#if BUILDFLAG(ENABLE_DICE_SUPPORT)
+ ProfilePicker::SwitchToDiceSignIn(
profile_color, base::BindOnce(&ProfilePickerHandler::OnLoadSigninFinished,
weak_factory_.GetWeakPtr()));
+#else
+ NOTIMPLEMENTED() << "Lacros/mirror flow is not implemented yet";
+#endif
}
void ProfilePickerHandler::OnLoadSigninFinished(bool success) {
@@ -921,3 +950,16 @@ void ProfilePickerHandler::OnVisibilityChanged(content::Visibility visibility) {
if (visibility != content::Visibility::VISIBLE)
Observe(nullptr);
}
+
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+
+void ProfilePickerHandler::HandleGetUnassignedAccounts(
+ const base::ListValue* args) {
+ AllowJavascript();
+ base::Value accounts_list(base::Value::Type::LIST);
+ // TODO(https://crbug/1226050): Add actual account info to the list, and
+ // listen for account changes.
+ FireWebUIListener("unassigned-accounts-changed", std::move(accounts_list));
+}
+
+#endif // BUILDFLAG(IS_CHROMEOS_LACROS)
diff --git a/chromium/chrome/browser/ui/webui/signin/profile_picker_handler.h b/chromium/chrome/browser/ui/webui/signin/profile_picker_handler.h
index d6b563797c0..cb316e705d1 100644
--- a/chromium/chrome/browser/ui/webui/signin/profile_picker_handler.h
+++ b/chromium/chrome/browser/ui/webui/signin/profile_picker_handler.h
@@ -11,6 +11,7 @@
#include "base/memory/weak_ptr.h"
#include "base/time/time.h"
#include "base/values.h"
+#include "build/chromeos_buildflags.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_attributes_storage.h"
#include "chrome/browser/profiles/profile_statistics_common.h"
@@ -23,6 +24,10 @@ class ProfilePickerHandler : public content::WebUIMessageHandler,
public ProfileAttributesStorage::Observer {
public:
ProfilePickerHandler();
+
+ ProfilePickerHandler(const ProfilePickerHandler&) = delete;
+ ProfilePickerHandler& operator=(const ProfilePickerHandler&) = delete;
+
~ProfilePickerHandler() override;
// Enables the startup performance metrics. Should only be called when the
@@ -114,6 +119,12 @@ class ProfilePickerHandler : public content::WebUIMessageHandler,
// the picker when it was first shown.
void SetProfilesOrder(const std::vector<ProfileAttributesEntry*>& entries);
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+ // List of usnassigned accounts used by the profile choice and the account
+ // selection screens.
+ void HandleGetUnassignedAccounts(const base::ListValue* args);
+#endif // BUILDFLAG(IS_CHROMEOS_LACROS)
+
// Returns the list of profiles in the same order as when the picker
// was first shown.
std::vector<ProfileAttributesEntry*> GetProfileAttributes();
@@ -128,8 +139,6 @@ class ProfilePickerHandler : public content::WebUIMessageHandler,
// be added to the end of the list.
std::unordered_map<base::FilePath, size_t> profiles_order_;
base::WeakPtrFactory<ProfilePickerHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ProfilePickerHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_PROFILE_PICKER_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/signin/profile_picker_ui.cc b/chromium/chrome/browser/ui/webui/signin/profile_picker_ui.cc
index 14258424fbc..7ba3232137e 100644
--- a/chromium/chrome/browser/ui/webui/signin/profile_picker_ui.cc
+++ b/chromium/chrome/browser/ui/webui/signin/profile_picker_ui.cc
@@ -3,8 +3,8 @@
// found in the LICENSE file.
#include "chrome/browser/ui/webui/signin/profile_picker_ui.h"
-#include "base/feature_list.h"
+#include "base/feature_list.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "build/chromeos_buildflags.h"
@@ -155,6 +155,8 @@ void AddStrings(content::WebUIDataSource* html_source) {
IDS_PROFILE_PICKER_PROFILE_CREATION_FLOW_ACCOUNT_SELECTION_LACROS_TITLE},
{"accountSelectionLacrosSubtitle",
IDS_PROFILE_PICKER_PROFILE_CREATION_FLOW_ACCOUNT_SELECTION_LACROS_SUBTITLE},
+ {"accountSelectionLacrosOtherAccountButtonLabel",
+ IDS_PROFILE_PICKER_PROFILE_CREATION_FLOW_ACCOUNT_SELECTION_LACROS_OTHER_ACCOUNT_BUTTON_LABEL},
#endif
};
html_source->AddLocalizedStrings(kLocalizedStrings);
diff --git a/chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_dialog.cc b/chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_dialog.cc
index 66ba4cdd62b..98869c2aad7 100644
--- a/chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_dialog.cc
+++ b/chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_dialog.cc
@@ -45,6 +45,11 @@ class SigninEmailConfirmationDialog::DialogWebContentsObserver
SigninEmailConfirmationDialog* dialog)
: content::WebContentsObserver(web_contents),
signin_email_confirmation_dialog_(dialog) {}
+
+ DialogWebContentsObserver(const DialogWebContentsObserver&) = delete;
+ DialogWebContentsObserver& operator=(const DialogWebContentsObserver&) =
+ delete;
+
~DialogWebContentsObserver() override {}
private:
@@ -59,8 +64,6 @@ class SigninEmailConfirmationDialog::DialogWebContentsObserver
}
SigninEmailConfirmationDialog* const signin_email_confirmation_dialog_;
-
- DISALLOW_COPY_AND_ASSIGN(DialogWebContentsObserver);
};
SigninEmailConfirmationDialog::SigninEmailConfirmationDialog(
diff --git a/chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_dialog.h b/chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_dialog.h
index 93e5035c2ab..4d88a8d990d 100644
--- a/chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_dialog.h
+++ b/chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_dialog.h
@@ -52,6 +52,10 @@ class SigninEmailConfirmationDialog : public ui::WebDialogDelegate,
const std::string& email,
Callback callback);
+ SigninEmailConfirmationDialog(const SigninEmailConfirmationDialog&) = delete;
+ SigninEmailConfirmationDialog& operator=(
+ const SigninEmailConfirmationDialog&) = delete;
+
~SigninEmailConfirmationDialog() override;
private:
@@ -106,8 +110,6 @@ class SigninEmailConfirmationDialog : public ui::WebDialogDelegate,
// Observer for lifecycle events of the web contents of the dialog.
std::unique_ptr<DialogWebContentsObserver> dialog_observer_;
-
- DISALLOW_COPY_AND_ASSIGN(SigninEmailConfirmationDialog);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_SIGNIN_EMAIL_CONFIRMATION_DIALOG_H_
diff --git a/chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_ui.h b/chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_ui.h
index 9da3743872c..e3633bf9ecc 100644
--- a/chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_ui.h
+++ b/chromium/chrome/browser/ui/webui/signin/signin_email_confirmation_ui.h
@@ -11,13 +11,15 @@
class SigninEmailConfirmationUI : public ConstrainedWebDialogUI {
public:
explicit SigninEmailConfirmationUI(content::WebUI* web_ui);
+
+ SigninEmailConfirmationUI(const SigninEmailConfirmationUI&) = delete;
+ SigninEmailConfirmationUI& operator=(const SigninEmailConfirmationUI&) =
+ delete;
+
~SigninEmailConfirmationUI() override;
// Closes this sign-in email confirmation webUI.
void Close();
-
- private:
- DISALLOW_COPY_AND_ASSIGN(SigninEmailConfirmationUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_SIGNIN_EMAIL_CONFIRMATION_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/signin/signin_error_handler.cc b/chromium/chrome/browser/ui/webui/signin/signin_error_handler.cc
index e21d1ce282e..1458db0b8f7 100644
--- a/chromium/chrome/browser/ui/webui/signin/signin_error_handler.cc
+++ b/chromium/chrome/browser/ui/webui/signin/signin_error_handler.cc
@@ -33,19 +33,19 @@ void SigninErrorHandler::OnBrowserRemoved(Browser* browser) {
}
void SigninErrorHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"confirm", base::BindRepeating(&SigninErrorHandler::HandleConfirm,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"switchToExistingProfile",
base::BindRepeating(&SigninErrorHandler::HandleSwitchToExistingProfile,
base::Unretained(this)));
if (!is_system_profile_) {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"learnMore", base::BindRepeating(&SigninErrorHandler::HandleLearnMore,
base::Unretained(this)));
}
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializedWithSize",
base::BindRepeating(&SigninErrorHandler::HandleInitializedWithSize,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/signin/signin_error_handler.h b/chromium/chrome/browser/ui/webui/signin/signin_error_handler.h
index cab620da37d..e57c9ad1add 100644
--- a/chromium/chrome/browser/ui/webui/signin/signin_error_handler.h
+++ b/chromium/chrome/browser/ui/webui/signin/signin_error_handler.h
@@ -24,6 +24,10 @@ class SigninErrorHandler : public content::WebUIMessageHandler,
// sign-in error dialog was presented on a browser window and |browser| must
// not be null.
SigninErrorHandler(Browser* browser, bool is_system_profile);
+
+ SigninErrorHandler(const SigninErrorHandler&) = delete;
+ SigninErrorHandler& operator=(const SigninErrorHandler&) = delete;
+
~SigninErrorHandler() override;
// BrowserListObserver:
@@ -84,8 +88,6 @@ class SigninErrorHandler : public content::WebUIMessageHandler,
bool is_system_profile_;
base::FilePath duplicate_profile_path_;
-
- DISALLOW_COPY_AND_ASSIGN(SigninErrorHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_SIGNIN_ERROR_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/signin/signin_error_handler_unittest.cc b/chromium/chrome/browser/ui/webui/signin/signin_error_handler_unittest.cc
index e7ec53c6071..7c0242414ad 100644
--- a/chromium/chrome/browser/ui/webui/signin/signin_error_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/signin/signin_error_handler_unittest.cc
@@ -31,6 +31,10 @@ class TestingSigninErrorHandler : public SigninErrorHandler {
set_web_ui(web_ui);
}
+ TestingSigninErrorHandler(const TestingSigninErrorHandler&) = delete;
+ TestingSigninErrorHandler& operator=(const TestingSigninErrorHandler&) =
+ delete;
+
void CloseBrowserModalSigninDialog() override {
browser_modal_dialog_did_close_ = true;
SigninErrorHandler::CloseBrowserModalSigninDialog();
@@ -57,8 +61,6 @@ class TestingSigninErrorHandler : public SigninErrorHandler {
private:
bool browser_modal_dialog_did_close_;
bool profile_picker_force_signin_dialog_did_close_;
-
- DISALLOW_COPY_AND_ASSIGN(TestingSigninErrorHandler);
};
class SigninErrorHandlerTest : public BrowserWithTestWindowTest {
@@ -66,6 +68,9 @@ class SigninErrorHandlerTest : public BrowserWithTestWindowTest {
SigninErrorHandlerTest()
: web_ui_(new content::TestWebUI), handler_(nullptr) {}
+ SigninErrorHandlerTest(const SigninErrorHandlerTest&) = delete;
+ SigninErrorHandlerTest& operator=(const SigninErrorHandlerTest&) = delete;
+
void SetUp() override {
BrowserWithTestWindowTest::SetUp();
chrome::NewTab(browser());
@@ -110,8 +115,6 @@ class SigninErrorHandlerTest : public BrowserWithTestWindowTest {
std::unique_ptr<content::TestWebUI> web_ui_;
std::unique_ptr<SigninErrorUI> signin_error_ui_;
TestingSigninErrorHandler* handler_; // Not owned.
-
- DISALLOW_COPY_AND_ASSIGN(SigninErrorHandlerTest);
};
TEST_F(SigninErrorHandlerTest, InBrowserHandleLearnMore) {
diff --git a/chromium/chrome/browser/ui/webui/signin/signin_error_ui.h b/chromium/chrome/browser/ui/webui/signin/signin_error_ui.h
index 9aa7207e517..c82d7d90638 100644
--- a/chromium/chrome/browser/ui/webui/signin/signin_error_ui.h
+++ b/chromium/chrome/browser/ui/webui/signin/signin_error_ui.h
@@ -15,6 +15,10 @@ class WebUI;
class SigninErrorUI : public SigninWebDialogUI {
public:
explicit SigninErrorUI(content::WebUI* web_ui);
+
+ SigninErrorUI(const SigninErrorUI&) = delete;
+ SigninErrorUI& operator=(const SigninErrorUI&) = delete;
+
~SigninErrorUI() override {}
// SigninWebDialogUI:
@@ -23,8 +27,6 @@ class SigninErrorUI : public SigninWebDialogUI {
private:
void InitializeMessageHandlerForProfilePicker();
void Initialize(Browser* browser, bool is_system_profile);
-
- DISALLOW_COPY_AND_ASSIGN(SigninErrorUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_SIGNIN_ERROR_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/signin/signin_helper_chromeos.cc b/chromium/chrome/browser/ui/webui/signin/signin_helper_chromeos.cc
index e7a7b39cc04..6670b499d74 100644
--- a/chromium/chrome/browser/ui/webui/signin/signin_helper_chromeos.cc
+++ b/chromium/chrome/browser/ui/webui/signin/signin_helper_chromeos.cc
@@ -24,12 +24,10 @@ SigninHelper::SigninHelper(
: account_manager_(account_manager),
account_manager_mojo_service_(account_manager_mojo_service),
close_dialog_closure_(close_dialog_closure),
+ account_key_(gaia_id, account_manager::AccountType::kGaia),
email_(email),
url_loader_factory_(std::move(url_loader_factory)),
gaia_auth_fetcher_(this, gaia::GaiaSource::kChrome, url_loader_factory_) {
- account_key_ =
- account_manager::AccountKey{gaia_id, account_manager::AccountType::kGaia};
-
DCHECK(!signin_scoped_device_id.empty());
gaia_auth_fetcher_.StartAuthCodeForOAuth2TokenExchangeWithDeviceId(
auth_code, signin_scoped_device_id);
@@ -62,9 +60,7 @@ void SigninHelper::OnClientOAuthFailure(const GoogleServiceAuthError& error) {
// Notify `AccountManagerMojoService` about account addition failure and send
// `error`.
account_manager_mojo_service_->OnAccountAdditionFinished(
- account_manager::AccountAdditionResult(
- account_manager::AccountAdditionResult::Status::kNetworkError,
- error));
+ account_manager::AccountAdditionResult::FromError(error));
CloseDialogAndExit();
}
@@ -74,8 +70,7 @@ void SigninHelper::UpsertAccount(const std::string& refresh_token) {
// Notify `AccountManagerMojoService` about successful account addition and
// send the account.
account_manager_mojo_service_->OnAccountAdditionFinished(
- account_manager::AccountAdditionResult(
- account_manager::AccountAdditionResult::Status::kSuccess,
+ account_manager::AccountAdditionResult::FromAccount(
account_manager::Account{account_key_, email_}));
}
diff --git a/chromium/chrome/browser/ui/webui/signin/signin_reauth_handler.cc b/chromium/chrome/browser/ui/webui/signin/signin_reauth_handler.cc
index 9a7160ebab3..f3b8c635765 100644
--- a/chromium/chrome/browser/ui/webui/signin/signin_reauth_handler.cc
+++ b/chromium/chrome/browser/ui/webui/signin/signin_reauth_handler.cc
@@ -25,13 +25,13 @@ SigninReauthHandler::SigninReauthHandler(
SigninReauthHandler::~SigninReauthHandler() = default;
void SigninReauthHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initialize", base::BindRepeating(&SigninReauthHandler::HandleInitialize,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"confirm", base::BindRepeating(&SigninReauthHandler::HandleConfirm,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"cancel", base::BindRepeating(&SigninReauthHandler::HandleCancel,
base::Unretained(this)));
}
@@ -77,7 +77,7 @@ void SigninReauthHandler::HandleCancel(const base::ListValue* args) {
sync_pb::UserConsentTypes::AccountPasswordsConsent
SigninReauthHandler::BuildConsent(const base::ListValue* args) const {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
base::Value::ConstListView consent_description = args->GetList()[0].GetList();
const std::string& consent_confirmation = args->GetList()[1].GetString();
diff --git a/chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler.cc b/chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler.cc
index 3b477f42961..25bac28ab07 100644
--- a/chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler.cc
+++ b/chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler.cc
@@ -65,21 +65,21 @@ void SyncConfirmationHandler::OnBrowserRemoved(Browser* browser) {
}
void SyncConfirmationHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"confirm", base::BindRepeating(&SyncConfirmationHandler::HandleConfirm,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"undo", base::BindRepeating(&SyncConfirmationHandler::HandleUndo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"goToSettings",
base::BindRepeating(&SyncConfirmationHandler::HandleGoToSettings,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initializedWithSize",
base::BindRepeating(&SyncConfirmationHandler::HandleInitializedWithSize,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"accountInfoRequest",
base::BindRepeating(&SyncConfirmationHandler::HandleAccountInfoRequest,
base::Unretained(this)));
@@ -118,7 +118,7 @@ void SyncConfirmationHandler::HandleAccountInfoRequest(
}
void SyncConfirmationHandler::RecordConsent(const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
base::Value::ConstListView consent_description = args->GetList()[0].GetList();
const std::string& consent_confirmation = args->GetList()[1].GetString();
diff --git a/chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler.h b/chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler.h
index 8c69d6156c3..9a6c2f9efec 100644
--- a/chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler.h
+++ b/chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler.h
@@ -37,6 +37,10 @@ class SyncConfirmationHandler : public content::WebUIMessageHandler,
Profile* profile,
const std::unordered_map<std::string, int>& string_to_grd_id_map,
Browser* browser = nullptr);
+
+ SyncConfirmationHandler(const SyncConfirmationHandler&) = delete;
+ SyncConfirmationHandler& operator=(const SyncConfirmationHandler&) = delete;
+
~SyncConfirmationHandler() override;
// content::WebUIMessageHandler:
@@ -110,8 +114,6 @@ class SyncConfirmationHandler : public content::WebUIMessageHandler,
Browser* browser_;
signin::IdentityManager* identity_manager_;
-
- DISALLOW_COPY_AND_ASSIGN(SyncConfirmationHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_SYNC_CONFIRMATION_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler_unittest.cc b/chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler_unittest.cc
index c4eba8ab13f..99ed08ab5ee 100644
--- a/chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/signin/sync_confirmation_handler_unittest.cc
@@ -51,14 +51,16 @@ class TestingSyncConfirmationHandler : public SyncConfirmationHandler {
set_web_ui(web_ui);
}
+ TestingSyncConfirmationHandler(const TestingSyncConfirmationHandler&) =
+ delete;
+ TestingSyncConfirmationHandler& operator=(
+ const TestingSyncConfirmationHandler&) = delete;
+
using SyncConfirmationHandler::HandleConfirm;
using SyncConfirmationHandler::HandleUndo;
using SyncConfirmationHandler::HandleInitializedWithSize;
using SyncConfirmationHandler::HandleGoToSettings;
using SyncConfirmationHandler::RecordConsent;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestingSyncConfirmationHandler);
};
class SyncConfirmationHandlerTest : public BrowserWithTestWindowTest,
@@ -76,6 +78,10 @@ class SyncConfirmationHandlerTest : public BrowserWithTestWindowTest,
sync_confirmation_ui_closed_result_(LoginUIService::ABORT_SYNC),
web_ui_(new content::TestWebUI) {}
+ SyncConfirmationHandlerTest(const SyncConfirmationHandlerTest&) = delete;
+ SyncConfirmationHandlerTest& operator=(const SyncConfirmationHandlerTest&) =
+ delete;
+
void SetUp() override {
BrowserWithTestWindowTest::SetUp();
chrome::NewTab(browser());
@@ -204,8 +210,6 @@ class SyncConfirmationHandlerTest : public BrowserWithTestWindowTest,
base::HistogramTester histogram_tester_;
std::unique_ptr<IdentityTestEnvironmentProfileAdaptor>
identity_test_env_adaptor_;
-
- DISALLOW_COPY_AND_ASSIGN(SyncConfirmationHandlerTest);
};
const char SyncConfirmationHandlerTest::kConsentText1[] = "consentText1";
diff --git a/chromium/chrome/browser/ui/webui/signin/sync_confirmation_ui.h b/chromium/chrome/browser/ui/webui/signin/sync_confirmation_ui.h
index 9a1586bfc42..2e6d5296a76 100644
--- a/chromium/chrome/browser/ui/webui/signin/sync_confirmation_ui.h
+++ b/chromium/chrome/browser/ui/webui/signin/sync_confirmation_ui.h
@@ -32,6 +32,10 @@ class SyncConfirmationUI : public SigninWebDialogUI {
enum class DesignVersion { kMonotone, kColored };
explicit SyncConfirmationUI(content::WebUI* web_ui);
+
+ SyncConfirmationUI(const SyncConfirmationUI&) = delete;
+ SyncConfirmationUI& operator=(const SyncConfirmationUI&) = delete;
+
~SyncConfirmationUI() override;
// SigninWebDialogUI:
@@ -66,8 +70,6 @@ class SyncConfirmationUI : public SigninWebDialogUI {
std::unordered_map<std::string, int> js_localized_string_to_ids_map_;
Profile* const profile_;
-
- DISALLOW_COPY_AND_ASSIGN(SyncConfirmationUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_SIGNIN_SYNC_CONFIRMATION_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/signin_internals_ui.cc b/chromium/chrome/browser/ui/webui/signin_internals_ui.cc
index cf8f4d90361..792fbdd851f 100644
--- a/chromium/chrome/browser/ui/webui/signin_internals_ui.cc
+++ b/chromium/chrome/browser/ui/webui/signin_internals_ui.cc
@@ -81,7 +81,7 @@ void SignInInternalsHandler::OnJavascriptDisallowed() {
}
void SignInInternalsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getSigninInfo",
base::BindRepeating(&SignInInternalsHandler::HandleGetSignInInfo,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/support_tool_ui.cc b/chromium/chrome/browser/ui/webui/support_tool_ui.cc
new file mode 100644
index 00000000000..c6ca6a92643
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/support_tool_ui.cc
@@ -0,0 +1,34 @@
+// Copyright 2021 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 "chrome/browser/ui/webui/support_tool_ui.h"
+
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/webui/webui_util.h"
+#include "chrome/common/url_constants.h"
+#include "chrome/grit/support_tool_resources.h"
+#include "chrome/grit/support_tool_resources_map.h"
+#include "content/public/browser/web_ui.h"
+#include "content/public/browser/web_ui_data_source.h"
+
+namespace {
+content::WebUIDataSource* CreateSupportToolHTMLSource() {
+ content::WebUIDataSource* source =
+ content::WebUIDataSource::Create(chrome::kChromeUISupportToolHost);
+
+ webui::SetupWebUIDataSource(
+ source, base::make_span(kSupportToolResources, kSupportToolResourcesSize),
+ IDR_SUPPORT_TOOL_SUPPORT_TOOL_CONTAINER_HTML);
+
+ return source;
+}
+} // namespace
+
+SupportToolUI::SupportToolUI(content::WebUI* web_ui) : WebUIController(web_ui) {
+ // Set up the chrome://support-tool/ source.
+ Profile* profile = Profile::FromWebUI(web_ui);
+ content::WebUIDataSource::Add(profile, CreateSupportToolHTMLSource());
+}
+
+SupportToolUI::~SupportToolUI() = default;
diff --git a/chromium/chrome/browser/ui/webui/support_tool_ui.h b/chromium/chrome/browser/ui/webui/support_tool_ui.h
new file mode 100644
index 00000000000..462746b6f34
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/support_tool_ui.h
@@ -0,0 +1,22 @@
+// Copyright 2021 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.
+
+#ifndef CHROME_BROWSER_UI_WEBUI_SUPPORT_TOOL_UI_H_
+#define CHROME_BROWSER_UI_WEBUI_SUPPORT_TOOL_UI_H_
+
+#include "base/macros.h"
+#include "content/public/browser/web_ui_controller.h"
+
+// The C++ back-end for the chrome://support-tool webui page.
+class SupportToolUI : public content::WebUIController {
+ public:
+ explicit SupportToolUI(content::WebUI* web_ui);
+
+ SupportToolUI(const SupportToolUI&) = delete;
+ SupportToolUI& operator=(const SupportToolUI&) = delete;
+
+ ~SupportToolUI() override;
+};
+
+#endif // CHROME_BROWSER_UI_WEBUI_SUPPORT_TOOL_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/support_tool_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/support_tool_ui_browsertest.cc
new file mode 100644
index 00000000000..7abb7c881ab
--- /dev/null
+++ b/chromium/chrome/browser/ui/webui/support_tool_ui_browsertest.cc
@@ -0,0 +1,31 @@
+// Copyright 2021 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 "base/test/scoped_feature_list.h"
+#include "chrome/common/chrome_features.h"
+#include "chrome/common/url_constants.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "chrome/test/base/ui_test_utils.h"
+#include "content/public/test/browser_test.h"
+#include "content/public/test/browser_test_utils.h"
+#include "url/gurl.h"
+
+namespace {
+
+class SupportToolUIBrowserTest : public InProcessBrowserTest {
+ public:
+ SupportToolUIBrowserTest() {
+ feature_list_.InitAndEnableFeature(features::kSupportTool);
+ }
+
+ private:
+ base::test::ScopedFeatureList feature_list_;
+};
+
+} // namespace
+
+IN_PROC_BROWSER_TEST_F(SupportToolUIBrowserTest, OpenSupportToolWebUI) {
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(
+ browser(), GURL(content::GetWebUIURL(chrome::kChromeUISupportToolHost))));
+}
diff --git a/chromium/chrome/browser/ui/webui/sync_file_system_internals/dump_database_handler.cc b/chromium/chrome/browser/ui/webui/sync_file_system_internals/dump_database_handler.cc
index de98822fa6d..9e1b128602f 100644
--- a/chromium/chrome/browser/ui/webui/sync_file_system_internals/dump_database_handler.cc
+++ b/chromium/chrome/browser/ui/webui/sync_file_system_internals/dump_database_handler.cc
@@ -20,7 +20,7 @@ DumpDatabaseHandler::DumpDatabaseHandler(Profile* profile)
DumpDatabaseHandler::~DumpDatabaseHandler() {}
void DumpDatabaseHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getDatabaseDump",
base::BindRepeating(&DumpDatabaseHandler::HandleGetDatabaseDump,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/sync_file_system_internals/dump_database_handler.h b/chromium/chrome/browser/ui/webui/sync_file_system_internals/dump_database_handler.h
index cf0d02a2e87..28eb75ddd62 100644
--- a/chromium/chrome/browser/ui/webui/sync_file_system_internals/dump_database_handler.h
+++ b/chromium/chrome/browser/ui/webui/sync_file_system_internals/dump_database_handler.h
@@ -16,6 +16,10 @@ namespace syncfs_internals {
class DumpDatabaseHandler : public content::WebUIMessageHandler {
public:
explicit DumpDatabaseHandler(Profile* profile);
+
+ DumpDatabaseHandler(const DumpDatabaseHandler&) = delete;
+ DumpDatabaseHandler& operator=(const DumpDatabaseHandler&) = delete;
+
~DumpDatabaseHandler() override;
// WebUIMessageHandler implementation.
@@ -26,8 +30,6 @@ class DumpDatabaseHandler : public content::WebUIMessageHandler {
void DidGetDatabaseDump(std::string callback_id, const base::ListValue& list);
Profile* profile_;
-
- DISALLOW_COPY_AND_ASSIGN(DumpDatabaseHandler);
};
} // namespace syncfs_internals
diff --git a/chromium/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.cc b/chromium/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.cc
index a3d83c0c8ad..5cefcd37d5c 100644
--- a/chromium/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.cc
+++ b/chromium/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.cc
@@ -74,7 +74,7 @@ ExtensionStatusesHandler::ExtensionStatusesHandler(Profile* profile)
ExtensionStatusesHandler::~ExtensionStatusesHandler() {}
void ExtensionStatusesHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getExtensionStatuses",
base::BindRepeating(&ExtensionStatusesHandler::HandleGetExtensionStatuses,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.h b/chromium/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.h
index 19b0c95846b..85bdc85c2ba 100644
--- a/chromium/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.h
+++ b/chromium/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.h
@@ -21,6 +21,10 @@ namespace syncfs_internals {
class ExtensionStatusesHandler : public content::WebUIMessageHandler {
public:
explicit ExtensionStatusesHandler(Profile* profile);
+
+ ExtensionStatusesHandler(const ExtensionStatusesHandler&) = delete;
+ ExtensionStatusesHandler& operator=(const ExtensionStatusesHandler&) = delete;
+
~ExtensionStatusesHandler() override;
// Shared by Extension Statuses Tab and also File Metadata Tab to generate the
@@ -39,8 +43,6 @@ class ExtensionStatusesHandler : public content::WebUIMessageHandler {
Profile* profile_;
base::WeakPtrFactory<ExtensionStatusesHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ExtensionStatusesHandler);
};
} // namespace syncfs_internals
diff --git a/chromium/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.cc b/chromium/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.cc
index b829fa45ba0..31fe282ea89 100644
--- a/chromium/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.cc
+++ b/chromium/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.cc
@@ -31,11 +31,11 @@ FileMetadataHandler::FileMetadataHandler(Profile* profile)
FileMetadataHandler::~FileMetadataHandler() {}
void FileMetadataHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getExtensions",
base::BindRepeating(&FileMetadataHandler::HandleGetExtensions,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getFileMetadata",
base::BindRepeating(&FileMetadataHandler::HandleGetFileMetadata,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.h b/chromium/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.h
index 64d6e08c7aa..d16760c3bb0 100644
--- a/chromium/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.h
+++ b/chromium/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.h
@@ -25,6 +25,10 @@ namespace syncfs_internals {
class FileMetadataHandler : public content::WebUIMessageHandler {
public:
explicit FileMetadataHandler(Profile* profile);
+
+ FileMetadataHandler(const FileMetadataHandler&) = delete;
+ FileMetadataHandler& operator=(const FileMetadataHandler&) = delete;
+
~FileMetadataHandler() override;
// WebUIMessageHandler implementation.
@@ -40,8 +44,6 @@ class FileMetadataHandler : public content::WebUIMessageHandler {
Profile* profile_;
base::WeakPtrFactory<FileMetadataHandler> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(FileMetadataHandler);
};
} // namespace syncfs_internals
diff --git a/chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_handler.cc b/chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_handler.cc
index ae55c6036e3..4e282d970d1 100644
--- a/chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_handler.cc
+++ b/chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_handler.cc
@@ -52,25 +52,25 @@ SyncFileSystemInternalsHandler::~SyncFileSystemInternalsHandler() {
}
void SyncFileSystemInternalsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getServiceStatus",
base::BindRepeating(
&SyncFileSystemInternalsHandler::HandleGetServiceStatus,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getLog",
base::BindRepeating(&SyncFileSystemInternalsHandler::HandleGetLog,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"clearLogs",
base::BindRepeating(&SyncFileSystemInternalsHandler::HandleClearLogs,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getNotificationSource",
base::BindRepeating(
&SyncFileSystemInternalsHandler::HandleGetNotificationSource,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"observeTaskLog",
base::BindRepeating(&SyncFileSystemInternalsHandler::HandleObserveTaskLog,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_handler.h b/chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_handler.h
index 7c532d4bd8f..06c16dcb96e 100644
--- a/chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_handler.h
+++ b/chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_handler.h
@@ -27,6 +27,12 @@ class SyncFileSystemInternalsHandler
public sync_file_system::TaskLogger::Observer {
public:
explicit SyncFileSystemInternalsHandler(Profile* profile);
+
+ SyncFileSystemInternalsHandler(const SyncFileSystemInternalsHandler&) =
+ delete;
+ SyncFileSystemInternalsHandler& operator=(
+ const SyncFileSystemInternalsHandler&) = delete;
+
~SyncFileSystemInternalsHandler() override;
// content::WebUIMessageHandler implementation.
@@ -55,8 +61,6 @@ class SyncFileSystemInternalsHandler
Profile* profile_;
bool observing_task_log_;
-
- DISALLOW_COPY_AND_ASSIGN(SyncFileSystemInternalsHandler);
};
} // namespace syncfs_internals
diff --git a/chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_ui.h b/chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_ui.h
index f8d8b452b79..1b021a6afe5 100644
--- a/chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/sync_file_system_internals/sync_file_system_internals_ui.h
@@ -11,10 +11,12 @@
class SyncFileSystemInternalsUI : public content::WebUIController {
public:
explicit SyncFileSystemInternalsUI(content::WebUI* web_ui);
- ~SyncFileSystemInternalsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(SyncFileSystemInternalsUI);
+ SyncFileSystemInternalsUI(const SyncFileSystemInternalsUI&) = delete;
+ SyncFileSystemInternalsUI& operator=(const SyncFileSystemInternalsUI&) =
+ delete;
+
+ ~SyncFileSystemInternalsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_SYNC_FILE_SYSTEM_INTERNALS_SYNC_FILE_SYSTEM_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.cc b/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.cc
index eab555861cd..6db5da277fb 100644
--- a/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.cc
+++ b/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.cc
@@ -96,58 +96,58 @@ void SyncInternalsMessageHandler::OnJavascriptDisallowed() {
void SyncInternalsMessageHandler::RegisterMessages() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
syncer::sync_ui_util::kRequestDataAndRegisterForUpdates,
base::BindRepeating(
&SyncInternalsMessageHandler::HandleRequestDataAndRegisterForUpdates,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
syncer::sync_ui_util::kRequestListOfTypes,
base::BindRepeating(
&SyncInternalsMessageHandler::HandleRequestListOfTypes,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
syncer::sync_ui_util::kRequestIncludeSpecificsInitialState,
base::BindRepeating(&SyncInternalsMessageHandler::
HandleRequestIncludeSpecificsInitialState,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
syncer::sync_ui_util::kSetIncludeSpecifics,
base::BindRepeating(
&SyncInternalsMessageHandler::HandleSetIncludeSpecifics,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
syncer::sync_ui_util::kWriteUserEvent,
base::BindRepeating(&SyncInternalsMessageHandler::HandleWriteUserEvent,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
syncer::sync_ui_util::kRequestStart,
base::BindRepeating(&SyncInternalsMessageHandler::HandleRequestStart,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
syncer::sync_ui_util::kRequestStopKeepData,
base::BindRepeating(
&SyncInternalsMessageHandler::HandleRequestStopKeepData,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
syncer::sync_ui_util::kRequestStopClearData,
base::BindRepeating(
&SyncInternalsMessageHandler::HandleRequestStopClearData,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
syncer::sync_ui_util::kTriggerRefresh,
base::BindRepeating(&SyncInternalsMessageHandler::HandleTriggerRefresh,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
syncer::sync_ui_util::kGetAllNodes,
base::BindRepeating(&SyncInternalsMessageHandler::HandleGetAllNodes,
base::Unretained(this)));
@@ -187,7 +187,7 @@ void SyncInternalsMessageHandler::HandleRequestListOfTypes(
ListValue type_list;
syncer::ModelTypeSet protocol_types = syncer::ProtocolTypes();
for (syncer::ModelType type : protocol_types) {
- type_list.AppendString(ModelTypeToString(type));
+ type_list.Append(ModelTypeToString(type));
}
event_details.SetKey(syncer::sync_ui_util::kTypes, std::move(type_list));
FireWebUIListener(syncer::sync_ui_util::kOnReceivedListOfTypes,
@@ -208,7 +208,7 @@ void SyncInternalsMessageHandler::HandleRequestIncludeSpecificsInitialState(
}
void SyncInternalsMessageHandler::HandleGetAllNodes(const ListValue* args) {
- DCHECK_EQ(1U, args->GetSize());
+ DCHECK_EQ(1U, args->GetList().size());
AllowJavascript();
std::string callback_id;
@@ -229,14 +229,14 @@ void SyncInternalsMessageHandler::HandleGetAllNodes(const ListValue* args) {
void SyncInternalsMessageHandler::HandleSetIncludeSpecifics(
const ListValue* args) {
- DCHECK_EQ(1U, args->GetSize());
+ DCHECK_EQ(1U, args->GetList().size());
AllowJavascript();
include_specifics_ = args->GetList()[0].GetBool();
}
void SyncInternalsMessageHandler::HandleWriteUserEvent(
const base::ListValue* args) {
- DCHECK_EQ(2U, args->GetSize());
+ DCHECK_EQ(2U, args->GetList().size());
AllowJavascript();
Profile* profile = Profile::FromWebUI(web_ui());
@@ -261,7 +261,7 @@ void SyncInternalsMessageHandler::HandleWriteUserEvent(
void SyncInternalsMessageHandler::HandleRequestStart(
const base::ListValue* args) {
- DCHECK_EQ(0U, args->GetSize());
+ DCHECK_EQ(0U, args->GetList().size());
SyncService* service = GetSyncService();
if (!service)
@@ -277,7 +277,7 @@ void SyncInternalsMessageHandler::HandleRequestStart(
void SyncInternalsMessageHandler::HandleRequestStopKeepData(
const base::ListValue* args) {
- DCHECK_EQ(0U, args->GetSize());
+ DCHECK_EQ(0U, args->GetList().size());
SyncService* service = GetSyncService();
if (!service)
@@ -288,7 +288,7 @@ void SyncInternalsMessageHandler::HandleRequestStopKeepData(
void SyncInternalsMessageHandler::HandleRequestStopClearData(
const base::ListValue* args) {
- DCHECK_EQ(0U, args->GetSize());
+ DCHECK_EQ(0U, args->GetList().size());
SyncService* service = GetSyncService();
if (!service)
diff --git a/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.h b/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.h
index 5bc06fee083..b1d6aeb0df7 100644
--- a/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.h
+++ b/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler.h
@@ -29,6 +29,11 @@ class SyncInternalsMessageHandler : public content::WebUIMessageHandler,
public syncer::InvalidationsListener {
public:
SyncInternalsMessageHandler();
+
+ SyncInternalsMessageHandler(const SyncInternalsMessageHandler&) = delete;
+ SyncInternalsMessageHandler& operator=(const SyncInternalsMessageHandler&) =
+ delete;
+
~SyncInternalsMessageHandler() override;
// content::WebUIMessageHandler implementation.
@@ -123,8 +128,6 @@ class SyncInternalsMessageHandler : public content::WebUIMessageHandler,
AboutSyncDataDelegate about_sync_data_delegate_;
base::WeakPtrFactory<SyncInternalsMessageHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(SyncInternalsMessageHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_SYNC_INTERNALS_SYNC_INTERNALS_MESSAGE_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler_unittest.cc b/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler_unittest.cc
index dce23432fe5..995e7bd2c07 100644
--- a/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_message_handler_unittest.cc
@@ -91,6 +91,12 @@ static std::unique_ptr<KeyedService> BuildFakeUserEventService(
}
class SyncInternalsMessageHandlerTest : public ChromeRenderViewHostTestHarness {
+ public:
+ SyncInternalsMessageHandlerTest(const SyncInternalsMessageHandlerTest&) =
+ delete;
+ SyncInternalsMessageHandlerTest& operator=(
+ const SyncInternalsMessageHandlerTest&) = delete;
+
protected:
SyncInternalsMessageHandlerTest() = default;
~SyncInternalsMessageHandlerTest() override = default;
@@ -196,8 +202,6 @@ class SyncInternalsMessageHandlerTest : public ChromeRenderViewHostTestHarness {
SyncService* last_delegate_sync_service_ = nullptr;
// Fake return value for sync_ui_util::ConstructAboutInformation().
base::DictionaryValue about_information_;
-
- DISALLOW_COPY_AND_ASSIGN(SyncInternalsMessageHandlerTest);
};
TEST_F(SyncInternalsMessageHandlerTest, AddRemoveObservers) {
@@ -247,14 +251,14 @@ TEST_F(SyncInternalsMessageHandlerTest, AddRemoveObserversSyncDisabled) {
TEST_F(SyncInternalsMessageHandlerTest, HandleGetAllNodes) {
ListValue args;
- args.AppendString("getAllNodes_0");
+ args.Append("getAllNodes_0");
handler()->HandleGetAllNodes(&args);
test_sync_service()->get_all_nodes_callback().Run(
std::make_unique<ListValue>());
EXPECT_EQ(1, CallCountWithName("cr.webUIResponse"));
ListValue args2;
- args2.AppendString("getAllNodes_1");
+ args2.Append("getAllNodes_1");
handler()->HandleGetAllNodes(&args2);
// This breaks the weak ref the callback is hanging onto. Which results in
// the call count not incrementing.
@@ -264,7 +268,7 @@ TEST_F(SyncInternalsMessageHandlerTest, HandleGetAllNodes) {
EXPECT_EQ(1, CallCountWithName("cr.webUIResponse"));
ListValue args3;
- args3.AppendString("getAllNodes_2");
+ args3.Append("getAllNodes_2");
handler()->HandleGetAllNodes(&args3);
test_sync_service()->get_all_nodes_callback().Run(
std::make_unique<ListValue>());
@@ -293,8 +297,8 @@ TEST_F(SyncInternalsMessageHandlerTest, SendAboutInfoSyncDisabled) {
TEST_F(SyncInternalsMessageHandlerTest, WriteUserEvent) {
ListValue args;
- args.AppendString("1000000000000000000");
- args.AppendString("-1");
+ args.Append("1000000000000000000");
+ args.Append("-1");
handler()->HandleWriteUserEvent(&args);
ASSERT_EQ(1u, fake_user_event_service()->GetRecordedUserEvents().size());
@@ -307,8 +311,8 @@ TEST_F(SyncInternalsMessageHandlerTest, WriteUserEvent) {
TEST_F(SyncInternalsMessageHandlerTest, WriteUserEventBadParse) {
ListValue args;
- args.AppendString("123abc");
- args.AppendString("abcdefghijklmnopqrstuvwxyz");
+ args.Append("123abc");
+ args.Append("abcdefghijklmnopqrstuvwxyz");
handler()->HandleWriteUserEvent(&args);
ASSERT_EQ(1u, fake_user_event_service()->GetRecordedUserEvents().size());
@@ -321,8 +325,8 @@ TEST_F(SyncInternalsMessageHandlerTest, WriteUserEventBadParse) {
TEST_F(SyncInternalsMessageHandlerTest, WriteUserEventBlank) {
ListValue args;
- args.AppendString("");
- args.AppendString("");
+ args.Append("");
+ args.Append("");
handler()->HandleWriteUserEvent(&args);
ASSERT_EQ(1u, fake_user_event_service()->GetRecordedUserEvents().size());
@@ -338,8 +342,8 @@ TEST_F(SyncInternalsMessageHandlerTest, WriteUserEventBlank) {
TEST_F(SyncInternalsMessageHandlerTest, WriteUserEventZero) {
ListValue args;
- args.AppendString("0");
- args.AppendString("0");
+ args.Append("0");
+ args.Append("0");
handler()->HandleWriteUserEvent(&args);
ASSERT_EQ(1u, fake_user_event_service()->GetRecordedUserEvents().size());
diff --git a/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_ui.cc b/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_ui.cc
index 1ef0831ea1e..b04f5c14446 100644
--- a/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_ui.cc
+++ b/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_ui.cc
@@ -27,7 +27,7 @@ content::WebUIDataSource* CreateSyncInternalsHTMLSource() {
"script-src chrome://resources 'self' 'unsafe-eval';");
source->OverrideContentSecurityPolicy(
network::mojom::CSPDirectiveName::TrustedTypes,
- "trusted-types jstemplate cr-ui-tree-js-static;");
+ "trusted-types jstemplate static-types;");
source->UseStringsJs();
source->AddResourcePaths(
diff --git a/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_ui.h b/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_ui.h
index 8a0e174bbd9..c7be8a1b5d8 100644
--- a/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/sync_internals/sync_internals_ui.h
@@ -13,10 +13,11 @@
class SyncInternalsUI : public content::WebUIController {
public:
explicit SyncInternalsUI(content::WebUI* web_ui);
- ~SyncInternalsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(SyncInternalsUI);
+ SyncInternalsUI(const SyncInternalsUI&) = delete;
+ SyncInternalsUI& operator=(const SyncInternalsUI&) = delete;
+
+ ~SyncInternalsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_SYNC_INTERNALS_SYNC_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/system_info_ui.cc b/chromium/chrome/browser/ui/webui/system_info_ui.cc
index 2aaa185db2d..09aaa0581ef 100644
--- a/chromium/chrome/browser/ui/webui/system_info_ui.cc
+++ b/chromium/chrome/browser/ui/webui/system_info_ui.cc
@@ -76,6 +76,10 @@ content::WebUIDataSource* CreateSystemInfoUIDataSource() {
class SystemInfoHandler : public WebUIMessageHandler {
public:
SystemInfoHandler();
+
+ SystemInfoHandler(const SystemInfoHandler&) = delete;
+ SystemInfoHandler& operator=(const SystemInfoHandler&) = delete;
+
~SystemInfoHandler() override;
// WebUIMessageHandler implementation.
@@ -91,7 +95,6 @@ class SystemInfoHandler : public WebUIMessageHandler {
private:
std::string callback_id_;
base::WeakPtrFactory<SystemInfoHandler> weak_ptr_factory_{this};
- DISALLOW_COPY_AND_ASSIGN(SystemInfoHandler);
};
////////////////////////////////////////////////////////////////////////////////
@@ -109,7 +112,7 @@ void SystemInfoHandler::OnJavascriptDisallowed() {
}
void SystemInfoHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestSystemInfo",
base::BindRepeating(&SystemInfoHandler::HandleRequestSystemInfo,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/system_info_ui.h b/chromium/chrome/browser/ui/webui/system_info_ui.h
index 5671021a1d1..b53f6c7b261 100644
--- a/chromium/chrome/browser/ui/webui/system_info_ui.h
+++ b/chromium/chrome/browser/ui/webui/system_info_ui.h
@@ -12,8 +12,8 @@ class SystemInfoUI : public content::WebUIController {
public:
explicit SystemInfoUI(content::WebUI* web_ui);
- private:
- DISALLOW_COPY_AND_ASSIGN(SystemInfoUI);
+ SystemInfoUI(const SystemInfoUI&) = delete;
+ SystemInfoUI& operator=(const SystemInfoUI&) = delete;
};
#endif // CHROME_BROWSER_UI_WEBUI_SYSTEM_INFO_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc b/chromium/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc
index ebcf75950e8..f32d96911c5 100644
--- a/chromium/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc
+++ b/chromium/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc
@@ -36,8 +36,7 @@
#include "ui/base/l10n/time_format.h"
namespace {
-constexpr base::TimeDelta kTabsChangeDelay =
- base::TimeDelta::FromMilliseconds(50);
+constexpr base::TimeDelta kTabsChangeDelay = base::Milliseconds(50);
std::string GetLastActiveElapsedText(
const base::TimeTicks& last_active_time_ticks) {
@@ -136,6 +135,14 @@ void TabSearchPageHandler::GetProfileData(GetProfileDataCallback callback) {
base::UmaHistogramCounts100("Tabs.TabSearch.NumWindowsOnOpen",
profile_tabs->windows.size());
base::UmaHistogramCounts10000("Tabs.TabSearch.NumTabsOnOpen", tab_count);
+
+ bool expand_preference =
+ Profile::FromWebUI(web_ui_)->GetPrefs()->GetBoolean(
+ tab_search_prefs::kTabSearchRecentlyClosedSectionExpanded);
+ base::UmaHistogramEnumeration(
+ "Tabs.TabSearch.RecentlyClosedSectionToggleStateOnOpen",
+ expand_preference ? TabSearchRecentlyClosedToggleAction::kExpand
+ : TabSearchRecentlyClosedToggleAction::kCollapse);
}
std::move(callback).Run(std::move(profile_tabs));
@@ -192,6 +199,11 @@ void TabSearchPageHandler::OpenRecentlyClosedEntry(int32_t session_id) {
void TabSearchPageHandler::SaveRecentlyClosedExpandedPref(bool expanded) {
Profile::FromWebUI(web_ui_)->GetPrefs()->SetBoolean(
tab_search_prefs::kTabSearchRecentlyClosedSectionExpanded, expanded);
+
+ base::UmaHistogramEnumeration(
+ "Tabs.TabSearch.RecentlyClosedSectionToggleAction",
+ expanded ? TabSearchRecentlyClosedToggleAction::kExpand
+ : TabSearchRecentlyClosedToggleAction::kCollapse);
}
void TabSearchPageHandler::ShowUI() {
diff --git a/chromium/chrome/browser/ui/webui/tab_search/tab_search_page_handler.h b/chromium/chrome/browser/ui/webui/tab_search/tab_search_page_handler.h
index c9994b45087..fde6467300b 100644
--- a/chromium/chrome/browser/ui/webui/tab_search/tab_search_page_handler.h
+++ b/chromium/chrome/browser/ui/webui/tab_search/tab_search_page_handler.h
@@ -31,6 +31,14 @@ enum class TabSearchCloseAction {
kMaxValue = kTabSwitch,
};
+// These values are persisted to logs. Entries should not be renumbered and
+// numeric values should never be reused.
+enum class TabSearchRecentlyClosedToggleAction {
+ kExpand = 0,
+ kCollapse = 1,
+ kMaxValue = kCollapse,
+};
+
class TabSearchPageHandler : public tab_search::mojom::PageHandler,
public TabStripModelObserver,
public BrowserTabStripTrackerDelegate {
diff --git a/chromium/chrome/browser/ui/webui/tab_strip/chrome_content_browser_client_tab_strip_part.h b/chromium/chrome/browser/ui/webui/tab_strip/chrome_content_browser_client_tab_strip_part.h
index 11206f34221..063317d387e 100644
--- a/chromium/chrome/browser/ui/webui/tab_strip/chrome_content_browser_client_tab_strip_part.h
+++ b/chromium/chrome/browser/ui/webui/tab_strip/chrome_content_browser_client_tab_strip_part.h
@@ -14,14 +14,17 @@ class ChromeContentBrowserClientTabStripPart
: public ChromeContentBrowserClientParts {
public:
ChromeContentBrowserClientTabStripPart();
+
+ ChromeContentBrowserClientTabStripPart(
+ const ChromeContentBrowserClientTabStripPart&) = delete;
+ ChromeContentBrowserClientTabStripPart& operator=(
+ const ChromeContentBrowserClientTabStripPart&) = delete;
+
~ChromeContentBrowserClientTabStripPart() override;
// ChromeContentBrowserClientParts:
void OverrideWebkitPrefs(content::WebContents* web_contents,
blink::web_pref::WebPreferences* web_prefs) override;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ChromeContentBrowserClientTabStripPart);
};
#endif // CHROME_BROWSER_UI_WEBUI_TAB_STRIP_CHROME_CONTENT_BROWSER_CLIENT_TAB_STRIP_PART_H_
diff --git a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.cc b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.cc
index c0820024bff..274fccd8ca2 100644
--- a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.cc
+++ b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.cc
@@ -46,6 +46,7 @@
#include "ui/base/models/list_selection_model.h"
#include "ui/base/models/simple_menu_model.h"
#include "ui/base/theme_provider.h"
+#include "ui/color/color_id.h"
#include "ui/events/event.h"
#include "ui/events/event_utils.h"
#include "ui/events/gesture_event_details.h"
@@ -61,8 +62,7 @@ namespace {
// Note: For better user experience, this is made shorter than
// ET_GESTURE_LONG_PRESS delay, which is too long for this case, e.g., about
// 650ms.
-constexpr base::TimeDelta kTouchLongpressDelay =
- base::TimeDelta::FromMilliseconds(300);
+constexpr base::TimeDelta kTouchLongpressDelay = base::Milliseconds(300);
class WebUIBackgroundMenuModel : public ui::SimpleMenuModel {
public:
@@ -580,15 +580,14 @@ void TabStripPageHandler::GetThemeColors(GetThemeColorsCallback callback) {
color_utils::SkColorToRgbaString(
embedder_->GetColor(ThemeProperties::COLOR_TAB_THROBBER_WAITING));
colors["--tabstrip-indicator-recording-color"] =
- color_utils::SkColorToRgbaString(embedder_->GetSystemColor(
- ui::NativeTheme::kColorId_AlertSeverityHigh));
+ color_utils::SkColorToRgbaString(
+ embedder_->GetColorProviderColor(ui::kColorAlertHighSeverity));
colors["--tabstrip-indicator-pip-color"] = throbber_color;
colors["--tabstrip-indicator-capturing-color"] = throbber_color;
- colors["--tabstrip-tab-blocked-color"] =
- color_utils::SkColorToRgbaString(embedder_->GetSystemColor(
- ui::NativeTheme::kColorId_ProminentButtonColor));
+ colors["--tabstrip-tab-blocked-color"] = color_utils::SkColorToRgbaString(
+ embedder_->GetColorProviderColor(ui::kColorButtonBackgroundProminent));
colors["--tabstrip-focus-outline-color"] = color_utils::SkColorToRgbaString(
- embedder_->GetSystemColor(ui::NativeTheme::kColorId_FocusedBorderColor));
+ embedder_->GetColorProviderColor(ui::kColorFocusableBorderFocused));
#if !BUILDFLAG(IS_CHROMEOS_ASH)
colors["--tabstrip-scrollbar-thumb-color-rgb"] =
@@ -819,7 +818,7 @@ void TabStripPageHandler::SetThumbnailTracked(int32_t tab_id,
void TabStripPageHandler::ReportTabActivationDuration(uint32_t duration_ms) {
UMA_HISTOGRAM_TIMES("WebUITabStrip.TabActivation",
- base::TimeDelta::FromMilliseconds(duration_ms));
+ base::Milliseconds(duration_ms));
base::UmaHistogramEnumeration("TabStrip.Tab.WebUI.ActivationAction",
TabStripModel::TabActivationTypes::kTab);
}
@@ -827,13 +826,13 @@ void TabStripPageHandler::ReportTabActivationDuration(uint32_t duration_ms) {
void TabStripPageHandler::ReportTabDataReceivedDuration(uint32_t tab_count,
uint32_t duration_ms) {
ReportTabDurationHistogram("TabDataReceived", tab_count,
- base::TimeDelta::FromMilliseconds(duration_ms));
+ base::Milliseconds(duration_ms));
}
void TabStripPageHandler::ReportTabCreationDuration(uint32_t tab_count,
uint32_t duration_ms) {
ReportTabDurationHistogram("TabCreation", tab_count,
- base::TimeDelta::FromMilliseconds(duration_ms));
+ base::Milliseconds(duration_ms));
}
// Callback passed to |thumbnail_tracker_|. Called when a tab's thumbnail
diff --git a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.h b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.h
index 9b5c777e528..cd0d47bdd28 100644
--- a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.h
+++ b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler.h
@@ -5,6 +5,7 @@
#ifndef CHROME_BROWSER_UI_WEBUI_TAB_STRIP_TAB_STRIP_PAGE_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_TAB_STRIP_TAB_STRIP_PAGE_HANDLER_H_
+#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "base/timer/timer.h"
#include "chrome/browser/ui/tabs/tab_change_type.h"
diff --git a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler_unittest.cc b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler_unittest.cc
index ec97577dece..4712e1bbc71 100644
--- a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_page_handler_unittest.cc
@@ -69,7 +69,7 @@ class StubTabStripUIEmbedder : public TabStripUIEmbedder {
void HideEditDialogForGroup() override {}
TabStripUILayout GetLayout() override { return TabStripUILayout(); }
SkColor GetColor(int id) const override { return SK_ColorWHITE; }
- SkColor GetSystemColor(ui::NativeTheme::ColorId id) const override {
+ SkColor GetColorProviderColor(ui::ColorId id) const override {
return SK_ColorWHITE;
}
};
diff --git a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui.h b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui.h
index 068661bebf6..b7f56bc5c21 100644
--- a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui.h
+++ b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui.h
@@ -28,6 +28,10 @@ class TabStripUI : public ui::MojoWebUIController,
public tab_strip::mojom::PageHandlerFactory {
public:
explicit TabStripUI(content::WebUI* web_ui);
+
+ TabStripUI(const TabStripUI&) = delete;
+ TabStripUI& operator=(const TabStripUI&) = delete;
+
~TabStripUI() override;
// Instantiates the implementor of the mojom::PageHandlerFactory mojo
@@ -68,7 +72,6 @@ class TabStripUI : public ui::MojoWebUIController,
TabStripUIEmbedder* embedder_ = nullptr;
WEB_UI_CONTROLLER_TYPE_DECL();
- DISALLOW_COPY_AND_ASSIGN(TabStripUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_TAB_STRIP_TAB_STRIP_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_browsertest.cc
index 2a0c9e1b1bf..7e143a2b4dd 100644
--- a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_browsertest.cc
@@ -9,6 +9,7 @@
#include "base/json/json_writer.h"
#include "base/strings/string_piece.h"
#include "base/values.h"
+#include "build/build_config.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/ui_features.h"
@@ -51,7 +52,7 @@ class MockTabStripUIEmbedder : public TabStripUIEmbedder {
MOCK_METHOD0(HideEditDialogForGroup, void());
MOCK_METHOD0(GetLayout, TabStripUILayout());
MOCK_CONST_METHOD1(GetColor, SkColor(int));
- MOCK_CONST_METHOD1(GetSystemColor, SkColor(ui::NativeTheme::ColorId));
+ MOCK_CONST_METHOD1(GetColorProviderColor, SkColor(ui::ColorId));
};
} // namespace
@@ -106,7 +107,16 @@ const std::string TabStripUIBrowserTest::tab_query_js(
" .shadowRoot.querySelector('tabstrip-tab')"
" .shadowRoot.querySelector('#tab')");
-IN_PROC_BROWSER_TEST_F(TabStripUIBrowserTest, ActivatingTabClosesEmbedder) {
+// https://crbug.com/1246369: Test is flaky on Linux/Windows, disabled for
+// investigation.
+#if defined(OS_LINUX) || defined(OS_WIN)
+#define MAYBE_ActivatingTabClosesEmbedder DISABLED_ActivatingTabClosesEmbedder
+#else
+#define MAYBE_ActivatingTabClosesEmbedder ActivatingTabClosesEmbedder
+#endif
+
+IN_PROC_BROWSER_TEST_F(TabStripUIBrowserTest,
+ MAYBE_ActivatingTabClosesEmbedder) {
const std::string activate_tab_js = tab_query_js + ".click()";
EXPECT_CALL(mock_embedder_, CloseContainer()).Times(1);
diff --git a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_embedder.h b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_embedder.h
index ab0f4c91aca..3071e5bd587 100644
--- a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_embedder.h
+++ b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_embedder.h
@@ -10,8 +10,8 @@
#include "components/tab_groups/tab_group_id.h"
#include "ui/base/accelerators/accelerator.h"
#include "ui/base/models/menu_model.h"
+#include "ui/color/color_id.h"
#include "ui/gfx/geometry/point.h"
-#include "ui/native_theme/native_theme.h"
// Interface to be implemented by the embedder. Provides native UI
// functionality such as showing context menus.
@@ -39,7 +39,7 @@ class TabStripUIEmbedder {
virtual TabStripUILayout GetLayout() = 0;
virtual SkColor GetColor(int id) const = 0;
- virtual SkColor GetSystemColor(ui::NativeTheme::ColorId id) const = 0;
+ virtual SkColor GetColorProviderColor(ui::ColorId id) const = 0;
};
#endif // CHROME_BROWSER_UI_WEBUI_TAB_STRIP_TAB_STRIP_UI_EMBEDDER_H_
diff --git a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_metrics.cc b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_metrics.cc
index d8217f0c253..3d6c0ad4f97 100644
--- a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_metrics.cc
+++ b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_metrics.cc
@@ -21,6 +21,5 @@ void RecordTabStripUIOpenDurationHistogram(base::TimeDelta duration) {
// closing it. Hence it's a reasonable lower bound. 1 minute is a
// fairly arbitrary upper bound.
UMA_HISTOGRAM_CUSTOM_TIMES("WebUITabStrip.OpenDuration", duration,
- base::TimeDelta::FromMilliseconds(500),
- base::TimeDelta::FromMinutes(1), 50);
+ base::Milliseconds(500), base::Minutes(1), 50);
}
diff --git a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_util.cc b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_util.cc
index 041fec0f19e..acbf5a3e6cb 100644
--- a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_util.cc
+++ b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_util.cc
@@ -105,21 +105,15 @@ bool IsDraggedTab(const ui::OSExchangeData& drop_data) {
bool DropTabsInNewBrowser(Browser* new_browser,
const ui::OSExchangeData& drop_data) {
- base::Pickle pickle;
- drop_data.GetPickledData(ui::ClipboardFormatType::WebCustomDataType(),
- &pickle);
-
std::u16string tab_id_str;
std::u16string group_id_str;
- ui::ReadCustomDataForType(pickle.data(), pickle.size(),
- base::ASCIIToUTF16(kWebUITabIdDataType),
- &tab_id_str);
- if (tab_id_str.empty()) {
- ui::ReadCustomDataForType(pickle.data(), pickle.size(),
- base::ASCIIToUTF16(kWebUITabGroupIdDataType),
- &group_id_str);
- }
+ return ExtractTabData(drop_data, &tab_id_str, &group_id_str) &&
+ DropTabsInNewBrowser(new_browser, tab_id_str, group_id_str);
+}
+bool DropTabsInNewBrowser(Browser* new_browser,
+ const std::u16string& tab_id_str,
+ const std::u16string& group_id_str) {
if (tab_id_str.empty() && group_id_str.empty())
return false;
@@ -173,4 +167,26 @@ bool DropTabsInNewBrowser(Browser* new_browser,
return true;
}
+bool ExtractTabData(const ui::OSExchangeData& drop_data,
+ std::u16string* tab_id_str,
+ std::u16string* group_id_str) {
+ DCHECK(tab_id_str);
+ DCHECK(group_id_str);
+
+ base::Pickle pickle;
+ drop_data.GetPickledData(ui::ClipboardFormatType::WebCustomDataType(),
+ &pickle);
+
+ ui::ReadCustomDataForType(pickle.data(), pickle.size(),
+ base::ASCIIToUTF16(kWebUITabIdDataType),
+ tab_id_str);
+ if (tab_id_str->empty()) {
+ ui::ReadCustomDataForType(pickle.data(), pickle.size(),
+ base::ASCIIToUTF16(kWebUITabGroupIdDataType),
+ group_id_str);
+ }
+
+ return !tab_id_str->empty() || !group_id_str->empty();
+}
+
} // namespace tab_strip_ui
diff --git a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_util.h b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_util.h
index a20e47d61cb..467a51a04c3 100644
--- a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_util.h
+++ b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui_util.h
@@ -46,6 +46,21 @@ bool IsDraggedTab(const ui::OSExchangeData& drop_data);
bool DropTabsInNewBrowser(Browser* new_browser,
const ui::OSExchangeData& drop_data);
+// Handles dropping tabs not destined for an existing tab strip.
+// |new_browser| should be the newly created Browser with no tabs, and
+// must have the same profile as the drag source. |tab_id| and/or
+// |tab_group_id| must have originated from a drag in a WebUI tab strip.
+// If successful, the tabs reflected in either |tab_id| or |tab_group_id|
+// will be moved from the source browser to |new_browser|.
+bool DropTabsInNewBrowser(Browser* new_browser,
+ const std::u16string& tab_id,
+ const std::u16string& tab_group_id);
+
+// Helper that extracts tab_id and/or tab_group_id of a given |drop_data|.
+bool ExtractTabData(const ui::OSExchangeData& drop_data,
+ std::u16string* tab_id,
+ std::u16string* tab_group_id);
+
} // namespace tab_strip_ui
#endif // CHROME_BROWSER_UI_WEBUI_TAB_STRIP_TAB_STRIP_UI_UTIL_H_
diff --git a/chromium/chrome/browser/ui/webui/tab_strip/thumbnail_tracker.cc b/chromium/chrome/browser/ui/webui/tab_strip/thumbnail_tracker.cc
index ab1b9ea52c3..78ee4341a60 100644
--- a/chromium/chrome/browser/ui/webui/tab_strip/thumbnail_tracker.cc
+++ b/chromium/chrome/browser/ui/webui/tab_strip/thumbnail_tracker.cc
@@ -28,6 +28,9 @@ class ThumbnailTracker::ContentsData : public content::WebContentsObserver {
&ContentsData::ThumbnailImageCallback, base::Unretained(this)));
}
+ ContentsData(const ContentsData&) = delete;
+ ContentsData& operator=(const ContentsData&) = delete;
+
void RequestThumbnail() {
if (thumbnail_)
thumbnail_->RequestCompressedThumbnailData();
@@ -54,8 +57,6 @@ class ThumbnailTracker::ContentsData : public content::WebContentsObserver {
ThumbnailTracker* parent_;
scoped_refptr<ThumbnailImage> thumbnail_;
std::unique_ptr<ThumbnailImage::Subscription> subscription_;
-
- DISALLOW_COPY_AND_ASSIGN(ContentsData);
};
ThumbnailTracker::ThumbnailTracker(ThumbnailUpdatedCallback callback)
diff --git a/chromium/chrome/browser/ui/webui/test_data_source.cc b/chromium/chrome/browser/ui/webui/test_data_source.cc
index cd0e7e74031..8ae2d5b500a 100644
--- a/chromium/chrome/browser/ui/webui/test_data_source.cc
+++ b/chromium/chrome/browser/ui/webui/test_data_source.cc
@@ -101,6 +101,10 @@ std::string TestDataSource::GetContentSecurityPolicy(
return std::string();
} else if (directive == network::mojom::CSPDirectiveName::FrameAncestors) {
return "frame-ancestors chrome://* 'self';";
+ } else if (directive == network::mojom::CSPDirectiveName::FrameSrc) {
+ return "frame-src chrome://test/;";
+ } else if (directive == network::mojom::CSPDirectiveName::ChildSrc) {
+ return "child-src chrome://test/;";
}
return content::URLDataSource::GetContentSecurityPolicy(directive);
@@ -159,18 +163,18 @@ void TestDataSource::ReadFile(
// generated at build time. We do this first as if a test file exists under
// the same name in the src and gen directories, the generated file is
// generally the desired file (for example, may have been preprocessed).
- base::FilePath file_path =
+ base::FilePath gen_root_file_path =
gen_root_.Append(base::FilePath::FromUTF8Unsafe(no_query_path));
- if (base::PathExists(file_path)) {
- CHECK(base::ReadFileToString(file_path, &content))
- << url.spec() << "=" << file_path.value();
+ if (base::PathExists(gen_root_file_path)) {
+ CHECK(base::ReadFileToString(gen_root_file_path, &content))
+ << url.spec() << "=" << gen_root_file_path.value();
} else {
// Then try the |src_root_| folder, covering cases where the test file is
// generated at build time.
- base::FilePath file_path =
+ base::FilePath src_root_file_path =
src_root_.Append(base::FilePath::FromUTF8Unsafe(no_query_path));
- CHECK(base::ReadFileToString(file_path, &content))
- << url.spec() << "=" << file_path.value();
+ CHECK(base::ReadFileToString(src_root_file_path, &content))
+ << url.spec() << "=" << src_root_file_path.value();
}
}
diff --git a/chromium/chrome/browser/ui/webui/test_data_source.h b/chromium/chrome/browser/ui/webui/test_data_source.h
index 57cab7197d0..a535c61b959 100644
--- a/chromium/chrome/browser/ui/webui/test_data_source.h
+++ b/chromium/chrome/browser/ui/webui/test_data_source.h
@@ -17,6 +17,10 @@
class TestDataSource : public content::URLDataSource {
public:
explicit TestDataSource(std::string root);
+
+ TestDataSource(const TestDataSource&) = delete;
+ TestDataSource& operator=(const TestDataSource&) = delete;
+
~TestDataSource() override;
private:
@@ -44,8 +48,6 @@ class TestDataSource : public content::URLDataSource {
base::FilePath src_root_;
base::FilePath gen_root_;
std::map<std::string, std::string> custom_paths_;
-
- DISALLOW_COPY_AND_ASSIGN(TestDataSource);
};
#endif // CHROME_BROWSER_UI_WEBUI_TEST_DATA_SOURCE_H_
diff --git a/chromium/chrome/browser/ui/webui/theme_handler.cc b/chromium/chrome/browser/ui/webui/theme_handler.cc
index f558c091acf..a7fa44ec0fc 100644
--- a/chromium/chrome/browser/ui/webui/theme_handler.cc
+++ b/chromium/chrome/browser/ui/webui/theme_handler.cc
@@ -30,7 +30,7 @@ void ThemeHandler::RegisterMessages() {
// constructor since they need the web_ui value to be set, which is done
// post-construction, but before registering messages.
InitializeCSSCaches();
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"observeThemeChanges",
base::BindRepeating(&ThemeHandler::HandleObserveThemeChanges,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/theme_handler.h b/chromium/chrome/browser/ui/webui/theme_handler.h
index 11a09591a76..6d71634b96b 100644
--- a/chromium/chrome/browser/ui/webui/theme_handler.h
+++ b/chromium/chrome/browser/ui/webui/theme_handler.h
@@ -24,6 +24,10 @@ class ThemeHandler : public content::WebUIMessageHandler,
public ui::NativeThemeObserver {
public:
ThemeHandler();
+
+ ThemeHandler(const ThemeHandler&) = delete;
+ ThemeHandler& operator=(const ThemeHandler&) = delete;
+
~ThemeHandler() override;
private:
@@ -51,8 +55,6 @@ class ThemeHandler : public content::WebUIMessageHandler,
base::ScopedObservation<ui::NativeTheme, ui::NativeThemeObserver>
theme_observation_{this};
-
- DISALLOW_COPY_AND_ASSIGN(ThemeHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_THEME_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/theme_source.h b/chromium/chrome/browser/ui/webui/theme_source.h
index fb32e98575a..174d234ce5a 100644
--- a/chromium/chrome/browser/ui/webui/theme_source.h
+++ b/chromium/chrome/browser/ui/webui/theme_source.h
@@ -19,6 +19,10 @@ class ThemeSource : public content::URLDataSource {
public:
explicit ThemeSource(Profile* profile);
ThemeSource(Profile* profile, bool serve_untrusted);
+
+ ThemeSource(const ThemeSource&) = delete;
+ ThemeSource& operator=(const ThemeSource&) = delete;
+
~ThemeSource() override;
// content::URLDataSource implementation.
@@ -55,8 +59,6 @@ class ThemeSource : public content::URLDataSource {
// Whether this source services chrome-unstrusted://theme.
bool serve_untrusted_;
-
- DISALLOW_COPY_AND_ASSIGN(ThemeSource);
};
#endif // CHROME_BROWSER_UI_WEBUI_THEME_SOURCE_H_
diff --git a/chromium/chrome/browser/ui/webui/translate_internals/chrome_translate_internals_handler.cc b/chromium/chrome/browser/ui/webui/translate_internals/chrome_translate_internals_handler.cc
index ec016a9aae1..5dcd8e2878e 100644
--- a/chromium/chrome/browser/ui/webui/translate_internals/chrome_translate_internals_handler.cc
+++ b/chromium/chrome/browser/ui/webui/translate_internals/chrome_translate_internals_handler.cc
@@ -51,8 +51,14 @@ ChromeTranslateInternalsHandler::GetVariationsService() {
void ChromeTranslateInternalsHandler::RegisterMessageCallback(
const std::string& message,
- const MessageCallback& callback) {
- web_ui()->RegisterMessageCallback(message, callback);
+ MessageCallback callback) {
+ web_ui()->RegisterMessageCallback(message, std::move(callback));
+}
+
+void ChromeTranslateInternalsHandler::RegisterDeprecatedMessageCallback(
+ const std::string& message,
+ const DeprecatedMessageCallback& callback) {
+ web_ui()->RegisterDeprecatedMessageCallback(message, callback);
}
void ChromeTranslateInternalsHandler::CallJavascriptFunction(
diff --git a/chromium/chrome/browser/ui/webui/translate_internals/chrome_translate_internals_handler.h b/chromium/chrome/browser/ui/webui/translate_internals/chrome_translate_internals_handler.h
index 1307c0585bb..c5681567772 100644
--- a/chromium/chrome/browser/ui/webui/translate_internals/chrome_translate_internals_handler.h
+++ b/chromium/chrome/browser/ui/webui/translate_internals/chrome_translate_internals_handler.h
@@ -18,13 +18,22 @@ class ChromeTranslateInternalsHandler
public content::WebUIMessageHandler {
public:
ChromeTranslateInternalsHandler();
+
+ ChromeTranslateInternalsHandler(const ChromeTranslateInternalsHandler&) =
+ delete;
+ ChromeTranslateInternalsHandler& operator=(
+ const ChromeTranslateInternalsHandler&) = delete;
+
~ChromeTranslateInternalsHandler() override;
// translate::TranslateInternalsHandler.
translate::TranslateClient* GetTranslateClient() override;
variations::VariationsService* GetVariationsService() override;
void RegisterMessageCallback(const std::string& message,
- const MessageCallback& callback) override;
+ MessageCallback callback) override;
+ void RegisterDeprecatedMessageCallback(
+ const std::string& message,
+ const DeprecatedMessageCallback& callback) override;
void CallJavascriptFunction(
const std::string& function_name,
const std::vector<const base::Value*>& args) override;
@@ -36,8 +45,6 @@ class ChromeTranslateInternalsHandler
private:
base::CallbackListSubscription detection_subscription_;
-
- DISALLOW_COPY_AND_ASSIGN(ChromeTranslateInternalsHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_TRANSLATE_INTERNALS_CHROME_TRANSLATE_INTERNALS_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/translate_internals/translate_internals_ui.h b/chromium/chrome/browser/ui/webui/translate_internals/translate_internals_ui.h
index b35cf1ce543..0b671af25a9 100644
--- a/chromium/chrome/browser/ui/webui/translate_internals/translate_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/translate_internals/translate_internals_ui.h
@@ -12,10 +12,11 @@
class TranslateInternalsUI : public content::WebUIController {
public:
explicit TranslateInternalsUI(content::WebUI* web_ui);
- ~TranslateInternalsUI() override {}
- private:
- DISALLOW_COPY_AND_ASSIGN(TranslateInternalsUI);
+ TranslateInternalsUI(const TranslateInternalsUI&) = delete;
+ TranslateInternalsUI& operator=(const TranslateInternalsUI&) = delete;
+
+ ~TranslateInternalsUI() override {}
};
#endif // CHROME_BROWSER_UI_WEBUI_TRANSLATE_INTERNALS_TRANSLATE_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/usb_internals/usb_internals_page_handler.h b/chromium/chrome/browser/ui/webui/usb_internals/usb_internals_page_handler.h
index 11532cca97a..29f04096442 100644
--- a/chromium/chrome/browser/ui/webui/usb_internals/usb_internals_page_handler.h
+++ b/chromium/chrome/browser/ui/webui/usb_internals/usb_internals_page_handler.h
@@ -16,6 +16,10 @@ class UsbInternalsPageHandler : public mojom::UsbInternalsPageHandler {
public:
explicit UsbInternalsPageHandler(
mojo::PendingReceiver<mojom::UsbInternalsPageHandler> receiver);
+
+ UsbInternalsPageHandler(const UsbInternalsPageHandler&) = delete;
+ UsbInternalsPageHandler& operator=(const UsbInternalsPageHandler&) = delete;
+
~UsbInternalsPageHandler() override;
void BindUsbDeviceManagerInterface(
@@ -27,8 +31,6 @@ class UsbInternalsPageHandler : public mojom::UsbInternalsPageHandler {
private:
mojo::Receiver<mojom::UsbInternalsPageHandler> receiver_;
-
- DISALLOW_COPY_AND_ASSIGN(UsbInternalsPageHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_USB_INTERNALS_USB_INTERNALS_PAGE_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/usb_internals/usb_internals_ui.cc b/chromium/chrome/browser/ui/webui/usb_internals/usb_internals_ui.cc
index f3594ffbf67..70a5a8de7ff 100644
--- a/chromium/chrome/browser/ui/webui/usb_internals/usb_internals_ui.cc
+++ b/chromium/chrome/browser/ui/webui/usb_internals/usb_internals_ui.cc
@@ -13,6 +13,7 @@
#include "chrome/grit/usb_internals_resources.h"
#include "chrome/grit/usb_internals_resources_map.h"
#include "content/public/browser/web_ui_data_source.h"
+#include "services/network/public/mojom/content_security_policy.mojom.h"
UsbInternalsUI::UsbInternalsUI(content::WebUI* web_ui)
: ui::MojoWebUIController(web_ui) {
@@ -36,6 +37,12 @@ UsbInternalsUI::UsbInternalsUI(content::WebUI* web_ui)
source,
base::make_span(kUsbInternalsResources, kUsbInternalsResourcesSize),
IDR_USB_INTERNALS_USB_INTERNALS_HTML);
+ source->OverrideContentSecurityPolicy(
+ network::mojom::CSPDirectiveName::RequireTrustedTypesFor,
+ "require-trusted-types-for 'script';");
+ source->OverrideContentSecurityPolicy(
+ network::mojom::CSPDirectiveName::TrustedTypes,
+ "trusted-types static-types usb-test-static;");
content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), source);
}
diff --git a/chromium/chrome/browser/ui/webui/usb_internals/usb_internals_ui.h b/chromium/chrome/browser/ui/webui/usb_internals/usb_internals_ui.h
index 968d9beade7..85eb63b2318 100644
--- a/chromium/chrome/browser/ui/webui/usb_internals/usb_internals_ui.h
+++ b/chromium/chrome/browser/ui/webui/usb_internals/usb_internals_ui.h
@@ -16,6 +16,10 @@ class UsbInternalsPageHandler;
class UsbInternalsUI : public ui::MojoWebUIController {
public:
explicit UsbInternalsUI(content::WebUI* web_ui);
+
+ UsbInternalsUI(const UsbInternalsUI&) = delete;
+ UsbInternalsUI& operator=(const UsbInternalsUI&) = delete;
+
~UsbInternalsUI() override;
// Instantiates the implementor of the mojom::UsbInternalsPageHandler mojo
@@ -27,8 +31,6 @@ class UsbInternalsUI : public ui::MojoWebUIController {
std::unique_ptr<UsbInternalsPageHandler> page_handler_;
WEB_UI_CONTROLLER_TYPE_DECL();
-
- DISALLOW_COPY_AND_ASSIGN(UsbInternalsUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_USB_INTERNALS_USB_INTERNALS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/user_actions/user_actions_ui.h b/chromium/chrome/browser/ui/webui/user_actions/user_actions_ui.h
index cc25fefb7d2..664b9009e07 100644
--- a/chromium/chrome/browser/ui/webui/user_actions/user_actions_ui.h
+++ b/chromium/chrome/browser/ui/webui/user_actions/user_actions_ui.h
@@ -12,10 +12,11 @@
class UserActionsUI : public content::WebUIController {
public:
explicit UserActionsUI(content::WebUI* contents);
- ~UserActionsUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(UserActionsUI);
+ UserActionsUI(const UserActionsUI&) = delete;
+ UserActionsUI& operator=(const UserActionsUI&) = delete;
+
+ ~UserActionsUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_USER_ACTIONS_USER_ACTIONS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/user_actions/user_actions_ui_handler.cc b/chromium/chrome/browser/ui/webui/user_actions/user_actions_ui_handler.cc
index dc2960a947d..105252f85ba 100644
--- a/chromium/chrome/browser/ui/webui/user_actions/user_actions_ui_handler.cc
+++ b/chromium/chrome/browser/ui/webui/user_actions/user_actions_ui_handler.cc
@@ -18,7 +18,7 @@ UserActionsUIHandler::~UserActionsUIHandler() {
}
void UserActionsUIHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"pageLoaded", base::BindRepeating(&UserActionsUIHandler::HandlePageLoaded,
base::Unretained(this)));
}
diff --git a/chromium/chrome/browser/ui/webui/user_actions/user_actions_ui_handler.h b/chromium/chrome/browser/ui/webui/user_actions/user_actions_ui_handler.h
index 20891daca33..2d58292f629 100644
--- a/chromium/chrome/browser/ui/webui/user_actions/user_actions_ui_handler.h
+++ b/chromium/chrome/browser/ui/webui/user_actions/user_actions_ui_handler.h
@@ -20,6 +20,10 @@ class TimeTicks;
class UserActionsUIHandler : public content::WebUIMessageHandler {
public:
UserActionsUIHandler();
+
+ UserActionsUIHandler(const UserActionsUIHandler&) = delete;
+ UserActionsUIHandler& operator=(const UserActionsUIHandler&) = delete;
+
~UserActionsUIHandler() override;
// WebUIMessageHandler implementation:
@@ -32,8 +36,6 @@ class UserActionsUIHandler : public content::WebUIMessageHandler {
void OnUserAction(const std::string& action, base::TimeTicks action_time);
base::ActionCallback action_callback_;
-
- DISALLOW_COPY_AND_ASSIGN(UserActionsUIHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_USER_ACTIONS_USER_ACTIONS_UI_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/version/version_handler.cc b/chromium/chrome/browser/ui/webui/version/version_handler.cc
index dbd601eb651..1f66dc55bff 100644
--- a/chromium/chrome/browser/ui/webui/version/version_handler.cc
+++ b/chromium/chrome/browser/ui/webui/version/version_handler.cc
@@ -58,15 +58,15 @@ VersionHandler::VersionHandler() {}
VersionHandler::~VersionHandler() {}
void VersionHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
version_ui::kRequestVersionInfo,
base::BindRepeating(&VersionHandler::HandleRequestVersionInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
version_ui::kRequestVariationInfo,
base::BindRepeating(&VersionHandler::HandleRequestVariationInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
version_ui::kRequestPathInfo,
base::BindRepeating(&VersionHandler::HandleRequestPathInfo,
base::Unretained(this)));
@@ -87,7 +87,7 @@ void VersionHandler::HandleRequestVariationInfo(const base::ListValue* args) {
std::string callback_id;
bool include_variations_cmd;
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
CHECK(args->GetString(0, &callback_id));
CHECK(args->GetBoolean(1, &include_variations_cmd));
@@ -105,7 +105,7 @@ void VersionHandler::HandleRequestPathInfo(const base::ListValue* args) {
AllowJavascript();
std::string callback_id;
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
CHECK(args->GetString(0, &callback_id));
// Grab the executable path on the FILE thread. It is returned in
diff --git a/chromium/chrome/browser/ui/webui/version/version_handler.h b/chromium/chrome/browser/ui/webui/version/version_handler.h
index 40143c2bc5a..fcb3846908d 100644
--- a/chromium/chrome/browser/ui/webui/version/version_handler.h
+++ b/chromium/chrome/browser/ui/webui/version/version_handler.h
@@ -16,6 +16,10 @@
class VersionHandler : public content::WebUIMessageHandler {
public:
VersionHandler();
+
+ VersionHandler(const VersionHandler&) = delete;
+ VersionHandler& operator=(const VersionHandler&) = delete;
+
~VersionHandler() override;
// content::WebUIMessageHandler implementation.
@@ -44,8 +48,6 @@ class VersionHandler : public content::WebUIMessageHandler {
// Factory for the creating refs in callbacks.
base::WeakPtrFactory<VersionHandler> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(VersionHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_VERSION_VERSION_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/version/version_handler_chromeos.h b/chromium/chrome/browser/ui/webui/version/version_handler_chromeos.h
index b831a0f087a..3a8cebef995 100644
--- a/chromium/chrome/browser/ui/webui/version/version_handler_chromeos.h
+++ b/chromium/chrome/browser/ui/webui/version/version_handler_chromeos.h
@@ -17,6 +17,10 @@
class VersionHandlerChromeOS : public VersionHandler {
public:
VersionHandlerChromeOS();
+
+ VersionHandlerChromeOS(const VersionHandlerChromeOS&) = delete;
+ VersionHandlerChromeOS& operator=(const VersionHandlerChromeOS&) = delete;
+
~VersionHandlerChromeOS() override;
// VersionHandler overrides:
@@ -29,8 +33,6 @@ class VersionHandlerChromeOS : public VersionHandler {
private:
base::WeakPtrFactory<VersionHandlerChromeOS> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(VersionHandlerChromeOS);
};
#endif // CHROME_BROWSER_UI_WEBUI_VERSION_VERSION_HANDLER_CHROMEOS_H_
diff --git a/chromium/chrome/browser/ui/webui/version/version_handler_win.h b/chromium/chrome/browser/ui/webui/version/version_handler_win.h
index 01d389dd9a8..92443139f3a 100644
--- a/chromium/chrome/browser/ui/webui/version/version_handler_win.h
+++ b/chromium/chrome/browser/ui/webui/version/version_handler_win.h
@@ -15,6 +15,10 @@
class VersionHandlerWindows : public VersionHandler {
public:
VersionHandlerWindows();
+
+ VersionHandlerWindows(const VersionHandlerWindows&) = delete;
+ VersionHandlerWindows& operator=(const VersionHandlerWindows&) = delete;
+
~VersionHandlerWindows() override;
// VersionHandler overrides:
@@ -28,8 +32,6 @@ class VersionHandlerWindows : public VersionHandler {
private:
base::WeakPtrFactory<VersionHandlerWindows> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(VersionHandlerWindows);
};
#endif // CHROME_BROWSER_UI_WEBUI_VERSION_VERSION_HANDLER_WIN_H_
diff --git a/chromium/chrome/browser/ui/webui/version/version_ui.cc b/chromium/chrome/browser/ui/webui/version/version_ui.cc
index 0219b259dc7..b0ddb5951dd 100644
--- a/chromium/chrome/browser/ui/webui/version/version_ui.cc
+++ b/chromium/chrome/browser/ui/webui/version/version_ui.cc
@@ -213,7 +213,7 @@ void VersionUI::AddVersionDetailStrings(content::WebUIDataSource* html_source) {
version_ui::kCommandLine,
base::AsString16(
base::CommandLine::ForCurrentProcess()->GetCommandLineString()));
-#elif defined(OS_POSIX)
+#else
std::string command_line;
typedef std::vector<std::string> ArgvList;
const ArgvList& argv = base::CommandLine::ForCurrentProcess()->argv();
diff --git a/chromium/chrome/browser/ui/webui/version/version_ui.h b/chromium/chrome/browser/ui/webui/version/version_ui.h
index 4ba0c5d61bf..5df850504cb 100644
--- a/chromium/chrome/browser/ui/webui/version/version_ui.h
+++ b/chromium/chrome/browser/ui/webui/version/version_ui.h
@@ -13,6 +13,10 @@
class VersionUI : public content::WebUIController {
public:
explicit VersionUI(content::WebUI* web_ui);
+
+ VersionUI(const VersionUI&) = delete;
+ VersionUI& operator=(const VersionUI&) = delete;
+
~VersionUI() override;
// Returns the IDS_* string id for the variation of the processor.
@@ -21,9 +25,6 @@ class VersionUI : public content::WebUIController {
// Loads a data source with many named details comprising version info.
// The keys are from version_ui_constants.
static void AddVersionDetailStrings(content::WebUIDataSource* html_source);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(VersionUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_VERSION_VERSION_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/video_tutorials/DIR_METADATA b/chromium/chrome/browser/ui/webui/video_tutorials/DIR_METADATA
index 966408a373e..00888370de1 100644
--- a/chromium/chrome/browser/ui/webui/video_tutorials/DIR_METADATA
+++ b/chromium/chrome/browser/ui/webui/video_tutorials/DIR_METADATA
@@ -1,4 +1 @@
-monorail {
- component: "Upboarding>VideoTutorials"
-}
-team_email: "chrome-upboarding-eng@google.com"
+mixins: "//chrome/browser/video_tutorials/COMMON_METADATA"
diff --git a/chromium/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.cc b/chromium/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.cc
index 1732471cb53..a10c2abb1e2 100644
--- a/chromium/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.cc
+++ b/chromium/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.cc
@@ -4,9 +4,12 @@
#include "chrome/browser/ui/webui/web_app_internals/web_app_internals_source.h"
+#include "base/files/file_enumerator.h"
#include "base/json/json_writer.h"
#include "base/memory/ref_counted_memory.h"
#include "base/ranges/algorithm.h"
+#include "base/task/thread_pool.h"
+#include "base/task_runner.h"
#include "build/build_config.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/web_applications/preinstalled_web_app_manager.h"
@@ -14,12 +17,13 @@
#include "chrome/browser/web_applications/web_app_icon_manager.h"
#include "chrome/browser/web_applications/web_app_provider.h"
#include "chrome/browser/web_applications/web_app_registrar.h"
+#include "chrome/browser/web_applications/web_app_utils.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/webui_url_constants.h"
#include "components/prefs/pref_service.h"
#if defined(OS_MAC)
-#include "chrome/browser/web_applications/components/app_shim_registry_mac.h"
+#include "chrome/browser/web_applications/app_shim_registry_mac.h"
#endif
namespace {
@@ -32,6 +36,7 @@ constexpr char kIconErrorLog[] = "IconErrorLog";
#if defined(OS_MAC)
constexpr char kAppShimRegistryLocalStorage[] = "AppShimRegistryLocalStorage";
#endif
+constexpr char kWebAppDirectoryDiskState[] = "WebAppDirectoryDiskState";
constexpr char kNeedsRecordWebAppDebugInfo[] =
"No debugging info available! Please enable: "
@@ -56,6 +61,7 @@ base::Value BuildIndexJson() {
#if defined(OS_MAC)
index.Append(kAppShimRegistryLocalStorage);
#endif
+ index.Append(kWebAppDirectoryDiskState);
return root;
}
@@ -203,10 +209,25 @@ base::Value BuildAppShimRegistryLocalStorageJson() {
}
#endif
-base::Value BuildWebAppInternalsJson(Profile* profile) {
- auto* provider = web_app::WebAppProvider::Get(profile);
- if (!provider)
- return base::Value("Web app system not enabled for profile.");
+base::Value BuildWebAppDiskStateJson(Profile* profile, base::Value root) {
+ base::Value file_list(base::Value::Type::LIST);
+
+ base::FileEnumerator files(web_app::GetWebAppsRootDirectory(profile), true,
+ base::FileEnumerator::FILES);
+ for (base::FilePath current = files.Next(); !current.empty();
+ current = files.Next()) {
+ file_list.Append(current.AsUTF8Unsafe());
+ }
+ base::Value section(base::Value::Type::DICTIONARY);
+ section.SetKey(kWebAppDirectoryDiskState, std::move(file_list));
+ root.Append(std::move(section));
+ return root;
+}
+
+void BuildWebAppInternalsJson(
+ Profile* profile,
+ base::OnceCallback<void(base::Value root)> callback) {
+ auto* provider = web_app::WebAppProvider::GetForLocalAppsUnchecked(profile);
base::Value root(base::Value::Type::LIST);
root.Append(BuildIndexJson());
@@ -217,8 +238,29 @@ base::Value BuildWebAppInternalsJson(Profile* profile) {
#if defined(OS_MAC)
root.Append(BuildAppShimRegistryLocalStorageJson());
#endif
+ base::ThreadPool::PostTaskAndReplyWithResult(
+ FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()},
+ base::BindOnce(&BuildWebAppDiskStateJson, profile, std::move(root)),
+ std::move(callback));
+}
- return root;
+void BuildResponse(Profile* profile,
+ base::OnceCallback<void(base::Value root)> callback) {
+ auto* provider = web_app::WebAppProvider::GetForLocalAppsUnchecked(profile);
+ if (!provider) {
+ return std::move(callback).Run(
+ base::Value("Web app system not enabled for profile."));
+ }
+
+ provider->on_registry_ready().Post(
+ FROM_HERE,
+ base::BindOnce(&BuildWebAppInternalsJson, profile, std::move(callback)));
+}
+
+void ConvertValueToJsonData(content::URLDataSource::GotDataCallback callback,
+ base::Value value) {
+ std::string data = value.DebugString();
+ std::move(callback).Run(base::RefCountedString::TakeString(&data));
}
} // namespace
@@ -240,6 +282,6 @@ void WebAppInternalsSource::StartDataRequest(
const GURL& url,
const content::WebContents::Getter& wc_getter,
content::URLDataSource::GotDataCallback callback) {
- std::string data = ConvertToString(BuildWebAppInternalsJson(profile_));
- std::move(callback).Run(base::RefCountedString::TakeString(&data));
+ BuildResponse(profile_,
+ base::BindOnce(&ConvertValueToJsonData, std::move(callback)));
}
diff --git a/chromium/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.h b/chromium/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.h
index 2c104e7bc43..6cd17a89a25 100644
--- a/chromium/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.h
+++ b/chromium/chrome/browser/ui/webui/web_app_internals/web_app_internals_source.h
@@ -7,6 +7,7 @@
#include <string>
+#include "base/memory/weak_ptr.h"
#include "content/public/browser/url_data_source.h"
class Profile;
@@ -30,6 +31,8 @@ class WebAppInternalsSource : public content::URLDataSource {
private:
Profile* const profile_;
+
+ base::WeakPtrFactory<WebAppInternalsSource> weak_ptr_factory_{this};
};
#endif // CHROME_BROWSER_UI_WEBUI_WEB_APP_INTERNALS_WEB_APP_INTERNALS_SOURCE_H_
diff --git a/chromium/chrome/browser/ui/webui/web_dialog_web_contents_delegate_unittest.cc b/chromium/chrome/browser/ui/webui/web_dialog_web_contents_delegate_unittest.cc
index c55cb5a7cce..c50d766b52b 100644
--- a/chromium/chrome/browser/ui/webui/web_dialog_web_contents_delegate_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/web_dialog_web_contents_delegate_unittest.cc
@@ -39,10 +39,11 @@ class TestWebContentsDelegate : public WebDialogWebContentsDelegate {
: WebDialogWebContentsDelegate(
context,
std::make_unique<ChromeWebContentsHandler>()) {}
- ~TestWebContentsDelegate() override = default;
- private:
- DISALLOW_COPY_AND_ASSIGN(TestWebContentsDelegate);
+ TestWebContentsDelegate(const TestWebContentsDelegate&) = delete;
+ TestWebContentsDelegate& operator=(const TestWebContentsDelegate&) = delete;
+
+ ~TestWebContentsDelegate() override = default;
};
class WebDialogWebContentsDelegateTest : public BrowserWithTestWindowTest {
diff --git a/chromium/chrome/browser/ui/webui/web_ui_test_handler.h b/chromium/chrome/browser/ui/webui/web_ui_test_handler.h
index 31c83c8cfc8..682cf02e734 100644
--- a/chromium/chrome/browser/ui/webui/web_ui_test_handler.h
+++ b/chromium/chrome/browser/ui/webui/web_ui_test_handler.h
@@ -25,6 +25,10 @@ class RenderFrameHost;
class WebUITestHandler {
public:
WebUITestHandler();
+
+ WebUITestHandler(const WebUITestHandler&) = delete;
+ WebUITestHandler& operator=(const WebUITestHandler&) = delete;
+
virtual ~WebUITestHandler();
// Sends a message through |preload_frame| with the |js_text| to preload at
@@ -76,8 +80,6 @@ class WebUITestHandler {
// Quits the currently running RunLoop.
base::RepeatingClosure quit_closure_;
-
- DISALLOW_COPY_AND_ASSIGN(WebUITestHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_WEB_UI_TEST_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/webapks/webapks_handler.cc b/chromium/chrome/browser/ui/webui/webapks/webapks_handler.cc
index 8b61adeede1..248c458450a 100644
--- a/chromium/chrome/browser/ui/webui/webapks/webapks_handler.cc
+++ b/chromium/chrome/browser/ui/webui/webapks/webapks_handler.cc
@@ -21,11 +21,11 @@ WebApksHandler::WebApksHandler()
WebApksHandler::~WebApksHandler() {}
void WebApksHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestWebApksInfo",
base::BindRepeating(&WebApksHandler::HandleRequestWebApksInfo,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"requestWebApkUpdate",
base::BindRepeating(&WebApksHandler::HandleRequestWebApkUpdate,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/webapks/webapks_handler.h b/chromium/chrome/browser/ui/webui/webapks/webapks_handler.h
index ede4c4555b2..a2f04be402a 100644
--- a/chromium/chrome/browser/ui/webui/webapks/webapks_handler.h
+++ b/chromium/chrome/browser/ui/webui/webapks/webapks_handler.h
@@ -19,6 +19,10 @@ class ListValue;
class WebApksHandler : public content::WebUIMessageHandler {
public:
WebApksHandler();
+
+ WebApksHandler(const WebApksHandler&) = delete;
+ WebApksHandler& operator=(const WebApksHandler&) = delete;
+
~WebApksHandler() override;
// content::WebUIMessageHandler:
@@ -39,8 +43,6 @@ class WebApksHandler : public content::WebUIMessageHandler {
void OnWebApkInfoRetrieved(const WebApkInfo& webapk_info);
WebApkHandlerDelegate delegate_;
-
- DISALLOW_COPY_AND_ASSIGN(WebApksHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_WEBAPKS_WEBAPKS_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/webapks/webapks_ui.h b/chromium/chrome/browser/ui/webui/webapks/webapks_ui.h
index 6c1f52df633..df2b96a4d11 100644
--- a/chromium/chrome/browser/ui/webui/webapks/webapks_ui.h
+++ b/chromium/chrome/browser/ui/webui/webapks/webapks_ui.h
@@ -12,10 +12,11 @@
class WebApksUI : public content::WebUIController {
public:
explicit WebApksUI(content::WebUI* web_ui);
- ~WebApksUI() override;
- private:
- DISALLOW_COPY_AND_ASSIGN(WebApksUI);
+ WebApksUI(const WebApksUI&) = delete;
+ WebApksUI& operator=(const WebApksUI&) = delete;
+
+ ~WebApksUI() override;
};
#endif // CHROME_BROWSER_UI_WEBUI_WEBAPKS_WEBAPKS_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/webui_load_timer.cc b/chromium/chrome/browser/ui/webui/webui_load_timer.cc
index 3330b3853e8..24bd6ec9335 100644
--- a/chromium/chrome/browser/ui/webui/webui_load_timer.cc
+++ b/chromium/chrome/browser/ui/webui/webui_load_timer.cc
@@ -16,8 +16,7 @@ namespace {
// call this frequently.
void CallUmaHistogramTimes(const std::string& name, base::TimeDelta duration) {
base::HistogramBase* histogram = base::Histogram::FactoryTimeGet(
- name, base::TimeDelta::FromMilliseconds(1),
- base::TimeDelta::FromSeconds(10), 50,
+ name, base::Milliseconds(1), base::Seconds(10), 50,
base::HistogramBase::kUmaTargetedHistogramFlag);
DCHECK(histogram);
histogram->AddTime(duration);
diff --git a/chromium/chrome/browser/ui/webui/webui_load_timer.h b/chromium/chrome/browser/ui/webui/webui_load_timer.h
index cd635f168c9..fd0c13b9c0b 100644
--- a/chromium/chrome/browser/ui/webui/webui_load_timer.h
+++ b/chromium/chrome/browser/ui/webui/webui_load_timer.h
@@ -26,6 +26,10 @@ class WebuiLoadTimer : public content::WebContentsObserver {
WebuiLoadTimer(content::WebContents* web_contents,
const std::string& document_initial_load_uma_id,
const std::string& document_load_completed_uma_id);
+
+ WebuiLoadTimer(const WebuiLoadTimer&) = delete;
+ WebuiLoadTimer& operator=(const WebuiLoadTimer&) = delete;
+
~WebuiLoadTimer() override;
// WebContentsObserver
@@ -39,8 +43,6 @@ class WebuiLoadTimer : public content::WebContentsObserver {
std::string document_initial_load_uma_id_;
std::string document_load_completed_uma_id_;
std::unique_ptr<base::ElapsedTimer> timer_;
-
- DISALLOW_COPY_AND_ASSIGN(WebuiLoadTimer);
};
#endif // CHROME_BROWSER_UI_WEBUI_WEBUI_LOAD_TIMER_H_
diff --git a/chromium/chrome/browser/ui/webui/webui_load_timer_browsertest.cc b/chromium/chrome/browser/ui/webui/webui_load_timer_browsertest.cc
index 04e83b0f08a..0843402f576 100644
--- a/chromium/chrome/browser/ui/webui/webui_load_timer_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/webui_load_timer_browsertest.cc
@@ -27,7 +27,7 @@ using WebuiLoadTimerTest = InProcessBrowserTest;
IN_PROC_BROWSER_TEST_F(WebuiLoadTimerTest, Timers) {
base::HistogramTester histogram_tester;
- ui_test_utils::NavigateToURL(browser(), GURL(kTestUrl));
+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GURL(kTestUrl)));
WebuiLoadTimer timer(browser()->tab_strip_model()->GetActiveWebContents(),
kDocumentInitialLoadUmaId, kDocumentLoadCompletedUmaId);
chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
diff --git a/chromium/chrome/browser/ui/webui/webui_webview_browsertest.cc b/chromium/chrome/browser/ui/webui/webui_webview_browsertest.cc
index 394c3f59c09..e8940543de0 100644
--- a/chromium/chrome/browser/ui/webui/webui_webview_browsertest.cc
+++ b/chromium/chrome/browser/ui/webui/webui_webview_browsertest.cc
@@ -41,10 +41,14 @@ class WebUIMessageListener : public base::SupportsWeakPtr<WebUIMessageListener>{
public:
WebUIMessageListener(content::WebUI* web_ui, const std::string& message)
: message_loop_(new content::MessageLoopRunner) {
- web_ui->RegisterMessageCallback(
+ web_ui->RegisterDeprecatedMessageCallback(
message,
base::BindRepeating(&WebUIMessageListener::HandleMessage, AsWeakPtr()));
}
+
+ WebUIMessageListener(const WebUIMessageListener&) = delete;
+ WebUIMessageListener& operator=(const WebUIMessageListener&) = delete;
+
bool Wait() {
message_loop_->Run();
return true;
@@ -56,8 +60,6 @@ class WebUIMessageListener : public base::SupportsWeakPtr<WebUIMessageListener>{
}
scoped_refptr<content::MessageLoopRunner> message_loop_;
-
- DISALLOW_COPY_AND_ASSIGN(WebUIMessageListener);
};
class DNDToInputNavigationObserver : public content::WebContentsObserver {
@@ -65,6 +67,11 @@ class DNDToInputNavigationObserver : public content::WebContentsObserver {
explicit DNDToInputNavigationObserver(content::WebContents* web_contents) {
Observe(web_contents);
}
+
+ DNDToInputNavigationObserver(const DNDToInputNavigationObserver&) = delete;
+ DNDToInputNavigationObserver& operator=(const DNDToInputNavigationObserver&) =
+ delete;
+
void DidFinishNavigation(
content::NavigationHandle* navigation_handle) override {
navigated = true;
@@ -73,8 +80,6 @@ class DNDToInputNavigationObserver : public content::WebContentsObserver {
private:
bool navigated = false;
-
- DISALLOW_COPY_AND_ASSIGN(DNDToInputNavigationObserver);
};
int ExecuteHostScriptAndExtractInt(content::WebContents* web_contents,
@@ -105,6 +110,9 @@ class WebUIWebViewBrowserTest : public WebUIBrowserTest {
public:
WebUIWebViewBrowserTest() {}
+ WebUIWebViewBrowserTest(const WebUIWebViewBrowserTest&) = delete;
+ WebUIWebViewBrowserTest& operator=(const WebUIWebViewBrowserTest&) = delete;
+
void SetUpOnMainThread() override {
WebUIBrowserTest::SetUpOnMainThread();
AddLibrary(
@@ -131,16 +139,14 @@ class WebUIWebViewBrowserTest : public WebUIBrowserTest {
signin_metrics::Reason::kForcedSigninPrimaryAccount, false));
#endif
}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(WebUIWebViewBrowserTest);
};
// Checks that hiding and showing the WebUI host page doesn't break guests in
// it.
// Regression test for http://crbug.com/515268
IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, DisplayNone) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
"testDisplayNone", base::Value(GetTestUrl("empty.html").spec())));
@@ -153,14 +159,16 @@ IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, DisplayNone) {
#define MAYBE_ExecuteScriptCode ExecuteScriptCode
#endif
IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, MAYBE_ExecuteScriptCode) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
"testExecuteScriptCode", base::Value(GetTestUrl("empty.html").spec())));
}
IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, ExecuteScriptCodeFromFile) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
"testExecuteScriptCodeFromFile",
@@ -174,7 +182,8 @@ IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, ExecuteScriptCodeFromFile) {
#define MAYBE_AddContentScript AddContentScript
#endif
IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, MAYBE_AddContentScript) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
"testAddContentScript", base::Value(GetTestUrl("empty.html").spec())));
@@ -187,7 +196,8 @@ IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, MAYBE_AddContentScript) {
#define MAYBE_AddMultiContentScripts AddMultiContentScripts
#endif
IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, MAYBE_AddMultiContentScripts) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
"testAddMultiContentScripts",
@@ -205,7 +215,8 @@ IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, MAYBE_AddMultiContentScripts) {
IN_PROC_BROWSER_TEST_F(
WebUIWebViewBrowserTest,
MAYBE_AddContentScriptWithSameNameShouldOverwriteTheExistingOne) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
"testAddContentScriptWithSameNameShouldOverwriteTheExistingOne",
@@ -223,7 +234,8 @@ IN_PROC_BROWSER_TEST_F(
IN_PROC_BROWSER_TEST_F(
WebUIWebViewBrowserTest,
MAYBE_AddContentScriptToOneWebViewShouldNotInjectToTheOtherWebView) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
"testAddContentScriptToOneWebViewShouldNotInjectToTheOtherWebView",
@@ -238,7 +250,8 @@ IN_PROC_BROWSER_TEST_F(
#endif
IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest,
MAYBE_AddAndRemoveContentScripts) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
"testAddAndRemoveContentScripts",
@@ -257,7 +270,8 @@ IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest,
#endif
IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest,
MAYBE_AddContentScriptsWithNewWindowAPI) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
"testAddContentScriptsWithNewWindowAPI",
@@ -268,7 +282,8 @@ IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest,
IN_PROC_BROWSER_TEST_F(
WebUIWebViewBrowserTest,
DISABLED_ContentScriptIsInjectedAfterTerminateAndReloadWebView) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
"testContentScriptIsInjectedAfterTerminateAndReloadWebView",
@@ -285,7 +300,8 @@ IN_PROC_BROWSER_TEST_F(
#endif
IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest,
MAYBE_ContentScriptExistsAsLongAsWebViewTagExists) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
"testContentScriptExistsAsLongAsWebViewTagExists",
@@ -293,7 +309,8 @@ IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest,
}
IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, AddContentScriptWithCode) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
ASSERT_TRUE(WebUIBrowserTest::RunJavascriptAsyncTest(
"testAddContentScriptWithCode",
@@ -319,7 +336,8 @@ IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest,
#endif
IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, ContextMenuInspectElement) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
content::ContextMenuParams params;
TestRenderViewContextMenu menu(
browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame(),
@@ -329,7 +347,8 @@ IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, ContextMenuInspectElement) {
#if !BUILDFLAG(IS_CHROMEOS_ASH) && defined(USE_AURA)
IN_PROC_BROWSER_TEST_F(WebUIWebViewBrowserTest, DISABLED_DragAndDropToInput) {
- ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL());
+ ASSERT_TRUE(
+ ui_test_utils::NavigateToURL(browser(), GetWebViewEnabledWebUIURL()));
ASSERT_TRUE(
WebUIBrowserTest::RunJavascriptAsyncTest("testDragAndDropToInput"));
diff --git a/chromium/chrome/browser/ui/webui/welcome/bookmark_handler.cc b/chromium/chrome/browser/ui/webui/welcome/bookmark_handler.cc
index 74dea3937c1..ff2718660da 100644
--- a/chromium/chrome/browser/ui/webui/welcome/bookmark_handler.cc
+++ b/chromium/chrome/browser/ui/webui/welcome/bookmark_handler.cc
@@ -17,12 +17,12 @@ BookmarkHandler::BookmarkHandler(PrefService* prefs) : prefs_(prefs) {}
BookmarkHandler::~BookmarkHandler() {}
void BookmarkHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"toggleBookmarkBar",
base::BindRepeating(&BookmarkHandler::HandleToggleBookmarkBar,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"isBookmarkBarShown",
base::BindRepeating(&BookmarkHandler::HandleIsBookmarkBarShown,
base::Unretained(this)));
@@ -37,7 +37,7 @@ void BookmarkHandler::HandleToggleBookmarkBar(const base::ListValue* args) {
void BookmarkHandler::HandleIsBookmarkBarShown(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
diff --git a/chromium/chrome/browser/ui/webui/welcome/bookmark_handler.h b/chromium/chrome/browser/ui/webui/welcome/bookmark_handler.h
index c3cf53d941e..79ab6b5590b 100644
--- a/chromium/chrome/browser/ui/webui/welcome/bookmark_handler.h
+++ b/chromium/chrome/browser/ui/webui/welcome/bookmark_handler.h
@@ -16,6 +16,10 @@ namespace welcome {
class BookmarkHandler : public content::WebUIMessageHandler {
public:
explicit BookmarkHandler(PrefService* prefs);
+
+ BookmarkHandler(const BookmarkHandler&) = delete;
+ BookmarkHandler& operator=(const BookmarkHandler&) = delete;
+
~BookmarkHandler() override;
// WebUIMessageHandler:
@@ -28,8 +32,6 @@ class BookmarkHandler : public content::WebUIMessageHandler {
private:
// Weak reference.
PrefService* prefs_;
-
- DISALLOW_COPY_AND_ASSIGN(BookmarkHandler);
};
} // namespace welcome
diff --git a/chromium/chrome/browser/ui/webui/welcome/google_apps_handler.cc b/chromium/chrome/browser/ui/webui/welcome/google_apps_handler.cc
index 6e4ff34deec..8492f92727d 100644
--- a/chromium/chrome/browser/ui/webui/welcome/google_apps_handler.cc
+++ b/chromium/chrome/browser/ui/webui/welcome/google_apps_handler.cc
@@ -92,12 +92,12 @@ GoogleAppsHandler::GoogleAppsHandler() {
GoogleAppsHandler::~GoogleAppsHandler() {}
void GoogleAppsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"cacheGoogleAppIcon",
base::BindRepeating(&GoogleAppsHandler::HandleCacheGoogleAppIcon,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getGoogleAppsList",
base::BindRepeating(&GoogleAppsHandler::HandleGetGoogleAppsList,
base::Unretained(this)));
@@ -132,7 +132,7 @@ void GoogleAppsHandler::HandleCacheGoogleAppIcon(const base::ListValue* args) {
void GoogleAppsHandler::HandleGetGoogleAppsList(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
ResolveJavascriptCallback(
diff --git a/chromium/chrome/browser/ui/webui/welcome/google_apps_handler.h b/chromium/chrome/browser/ui/webui/welcome/google_apps_handler.h
index 1d28ebf3307..28804af4428 100644
--- a/chromium/chrome/browser/ui/webui/welcome/google_apps_handler.h
+++ b/chromium/chrome/browser/ui/webui/welcome/google_apps_handler.h
@@ -28,6 +28,10 @@ enum class GoogleAppsInteraction {
class GoogleAppsHandler : public content::WebUIMessageHandler {
public:
GoogleAppsHandler();
+
+ GoogleAppsHandler(const GoogleAppsHandler&) = delete;
+ GoogleAppsHandler& operator=(const GoogleAppsHandler&) = delete;
+
~GoogleAppsHandler() override;
// WebUIMessageHandler:
@@ -39,8 +43,6 @@ class GoogleAppsHandler : public content::WebUIMessageHandler {
private:
std::vector<BookmarkItem> google_apps_;
-
- DISALLOW_COPY_AND_ASSIGN(GoogleAppsHandler);
};
} // namespace welcome
diff --git a/chromium/chrome/browser/ui/webui/welcome/ntp_background_fetcher.h b/chromium/chrome/browser/ui/webui/welcome/ntp_background_fetcher.h
index f7ec424d638..cf2f9a4bdfc 100644
--- a/chromium/chrome/browser/ui/webui/welcome/ntp_background_fetcher.h
+++ b/chromium/chrome/browser/ui/webui/welcome/ntp_background_fetcher.h
@@ -22,6 +22,10 @@ class NtpBackgroundFetcher {
public:
NtpBackgroundFetcher(size_t index,
content::WebUIDataSource::GotDataCallback callback);
+
+ NtpBackgroundFetcher(const NtpBackgroundFetcher&) = delete;
+ NtpBackgroundFetcher& operator=(const NtpBackgroundFetcher&) = delete;
+
~NtpBackgroundFetcher();
private:
@@ -30,8 +34,6 @@ class NtpBackgroundFetcher {
size_t index_;
content::WebUIDataSource::GotDataCallback callback_;
std::unique_ptr<network::SimpleURLLoader> simple_loader_;
-
- DISALLOW_COPY_AND_ASSIGN(NtpBackgroundFetcher);
};
} // namespace welcome
diff --git a/chromium/chrome/browser/ui/webui/welcome/ntp_background_handler.cc b/chromium/chrome/browser/ui/webui/welcome/ntp_background_handler.cc
index c515b9d1a1e..071db5810ab 100644
--- a/chromium/chrome/browser/ui/webui/welcome/ntp_background_handler.cc
+++ b/chromium/chrome/browser/ui/webui/welcome/ntp_background_handler.cc
@@ -12,8 +12,8 @@
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search/background/ntp_backgrounds.h"
-#include "chrome/browser/search/instant_service.h"
-#include "chrome/browser/search/instant_service_factory.h"
+#include "chrome/browser/search/background/ntp_custom_background_service.h"
+#include "chrome/browser/search/background/ntp_custom_background_service_factory.h"
#include "chrome/grit/generated_resources.h"
#include "chrome/grit/welcome_resources.h"
#include "components/strings/grit/components_strings.h"
@@ -35,31 +35,31 @@ NtpBackgroundHandler::NtpBackgroundHandler() {}
NtpBackgroundHandler::~NtpBackgroundHandler() {}
void NtpBackgroundHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"clearBackground",
base::BindRepeating(&NtpBackgroundHandler::HandleClearBackground,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"getBackgrounds",
base::BindRepeating(&NtpBackgroundHandler::HandleGetBackgrounds,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"setBackground",
base::BindRepeating(&NtpBackgroundHandler::HandleSetBackground,
base::Unretained(this)));
}
void NtpBackgroundHandler::HandleClearBackground(const base::ListValue* args) {
- InstantService* instant_service =
- InstantServiceFactory::GetForProfile(Profile::FromWebUI(web_ui()));
- instant_service->ResetCustomBackgroundInfo();
+ auto* service = NtpCustomBackgroundServiceFactory::GetForProfile(
+ Profile::FromWebUI(web_ui()));
+ service->ResetCustomBackgroundInfo();
}
void NtpBackgroundHandler::HandleGetBackgrounds(const base::ListValue* args) {
AllowJavascript();
- CHECK_EQ(1U, args->GetSize());
+ CHECK_EQ(1U, args->GetList().size());
const base::Value* callback_id;
CHECK(args->Get(0, &callback_id));
@@ -122,18 +122,18 @@ void NtpBackgroundHandler::HandleSetBackground(const base::ListValue* args) {
int background_index = list[0].GetInt();
std::array<GURL, kNtpBackgroundsCount> NtpBackgrounds = GetNtpBackgrounds();
- InstantService* instant_service =
- InstantServiceFactory::GetForProfile(Profile::FromWebUI(web_ui()));
+ auto* service = NtpCustomBackgroundServiceFactory::GetForProfile(
+ Profile::FromWebUI(web_ui()));
switch (background_index) {
case static_cast<int>(NtpBackgrounds::kArt):
- instant_service->SetCustomBackgroundInfo(
+ service->SetCustomBackgroundInfo(
NtpBackgrounds[background_index], "Universe Cosmic Vacum",
"Philipp Rietz — Walli",
GURL("https://walli.shanga.co/image/view/?id=370"), "");
break;
case static_cast<int>(NtpBackgrounds::kCityscape):
- instant_service->SetCustomBackgroundInfo(
+ service->SetCustomBackgroundInfo(
NtpBackgrounds[background_index],
l10n_util::GetStringFUTF8(IDS_WELCOME_NTP_BACKGROUND_PHOTO_BY_LABEL,
u"Ev Tchebotarev"),
@@ -143,20 +143,20 @@ void NtpBackgroundHandler::HandleSetBackground(const base::ListValue* args) {
"");
break;
case static_cast<int>(NtpBackgrounds::kEarth):
- instant_service->SetCustomBackgroundInfo(
+ service->SetCustomBackgroundInfo(
NtpBackgrounds[background_index],
l10n_util::GetStringFUTF8(IDS_WELCOME_NTP_BACKGROUND_PHOTO_BY_LABEL,
u"NASA Image Library"),
"", GURL("https://www.google.com/sky/"), "");
break;
case static_cast<int>(NtpBackgrounds::kGeometricShapes):
- instant_service->SetCustomBackgroundInfo(
+ service->SetCustomBackgroundInfo(
NtpBackgrounds[background_index], "Tessellation 15",
"Justin Prno — Walli",
GURL("https://walli.shanga.co/image/view/?id=1375"), "");
break;
case static_cast<int>(NtpBackgrounds::kLandscape):
- instant_service->SetCustomBackgroundInfo(
+ service->SetCustomBackgroundInfo(
NtpBackgrounds[background_index],
l10n_util::GetStringFUTF8(IDS_WELCOME_NTP_BACKGROUND_PHOTO_BY_LABEL,
u"Giulio Rosso Chioso"),
diff --git a/chromium/chrome/browser/ui/webui/welcome/ntp_background_handler.h b/chromium/chrome/browser/ui/webui/welcome/ntp_background_handler.h
index acf86d33a7f..7bbfaa191a3 100644
--- a/chromium/chrome/browser/ui/webui/welcome/ntp_background_handler.h
+++ b/chromium/chrome/browser/ui/webui/welcome/ntp_background_handler.h
@@ -12,6 +12,10 @@ namespace welcome {
class NtpBackgroundHandler : public content::WebUIMessageHandler {
public:
NtpBackgroundHandler();
+
+ NtpBackgroundHandler(const NtpBackgroundHandler&) = delete;
+ NtpBackgroundHandler& operator=(const NtpBackgroundHandler&) = delete;
+
~NtpBackgroundHandler() override;
// WebUIMessageHandler:
@@ -21,9 +25,6 @@ class NtpBackgroundHandler : public content::WebUIMessageHandler {
void HandleClearBackground(const base::ListValue* args);
void HandleGetBackgrounds(const base::ListValue* args);
void HandleSetBackground(const base::ListValue* args);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(NtpBackgroundHandler);
};
} // namespace welcome
diff --git a/chromium/chrome/browser/ui/webui/welcome/set_as_default_handler.h b/chromium/chrome/browser/ui/webui/welcome/set_as_default_handler.h
index e06476a4583..e3501cbd394 100644
--- a/chromium/chrome/browser/ui/webui/welcome/set_as_default_handler.h
+++ b/chromium/chrome/browser/ui/webui/welcome/set_as_default_handler.h
@@ -13,12 +13,14 @@ namespace welcome {
class SetAsDefaultHandler : public settings::DefaultBrowserHandler {
public:
SetAsDefaultHandler();
+
+ SetAsDefaultHandler(const SetAsDefaultHandler&) = delete;
+ SetAsDefaultHandler& operator=(const SetAsDefaultHandler&) = delete;
+
~SetAsDefaultHandler() override;
protected:
void RecordSetAsDefaultUMA() override;
-
- DISALLOW_COPY_AND_ASSIGN(SetAsDefaultHandler);
};
} // namespace welcome
diff --git a/chromium/chrome/browser/ui/webui/welcome/welcome_handler.cc b/chromium/chrome/browser/ui/webui/welcome/welcome_handler.cc
index c523fee6939..17c18e543b5 100644
--- a/chromium/chrome/browser/ui/webui/welcome/welcome_handler.cc
+++ b/chromium/chrome/browser/ui/webui/welcome/welcome_handler.cc
@@ -65,7 +65,7 @@ void WelcomeHandler::HandleActivateSignIn(const base::ListValue* args) {
GoToNewTabPage();
} else {
GURL redirect_url = GURL::EmptyGURL();
- if (args->GetSize() == 1U) {
+ if (args->GetList().size() == 1U) {
std::string url_string;
CHECK(args->GetString(0, &url_string));
redirect_url = GURL(url_string);
@@ -92,11 +92,11 @@ void WelcomeHandler::RegisterMessages() {
// constructor, because web_ui hasn't loaded yet at that time.
is_redirected_welcome_impression_ = isValidRedirectUrl();
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"handleActivateSignIn",
base::BindRepeating(&WelcomeHandler::HandleActivateSignIn,
base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"handleUserDecline",
base::BindRepeating(&WelcomeHandler::HandleUserDecline,
base::Unretained(this)));
diff --git a/chromium/chrome/browser/ui/webui/welcome/welcome_handler.h b/chromium/chrome/browser/ui/webui/welcome/welcome_handler.h
index 430f3790d9c..cdeb42e25ac 100644
--- a/chromium/chrome/browser/ui/webui/welcome/welcome_handler.h
+++ b/chromium/chrome/browser/ui/webui/welcome/welcome_handler.h
@@ -17,6 +17,10 @@ class GURL;
class WelcomeHandler : public content::WebUIMessageHandler {
public:
explicit WelcomeHandler(content::WebUI* web_ui);
+
+ WelcomeHandler(const WelcomeHandler&) = delete;
+ WelcomeHandler& operator=(const WelcomeHandler&) = delete;
+
~WelcomeHandler() override;
// content::WebUIMessageHandler:
@@ -55,8 +59,6 @@ class WelcomeHandler : public content::WebUIMessageHandler {
// Indicates whether this WelcomeHandler instance is spawned due to users
// being redirected back to welcome page as part of the onboarding flow.
bool is_redirected_welcome_impression_;
-
- DISALLOW_COPY_AND_ASSIGN(WelcomeHandler);
};
#endif // CHROME_BROWSER_UI_WEBUI_WELCOME_WELCOME_HANDLER_H_
diff --git a/chromium/chrome/browser/ui/webui/welcome/welcome_ui.cc b/chromium/chrome/browser/ui/webui/welcome/welcome_ui.cc
index 3a222ffc0d2..c49479e4d08 100644
--- a/chromium/chrome/browser/ui/webui/welcome/welcome_ui.cc
+++ b/chromium/chrome/browser/ui/webui/welcome/welcome_ui.cc
@@ -8,6 +8,7 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "build/branding_buildflags.h"
+#include "build/build_config.h"
#include "chrome/browser/signin/account_consistency_mode_manager.h"
#include "chrome/browser/ui/webui/webui_util.h"
#include "chrome/browser/ui/webui/welcome/bookmark_handler.h"
diff --git a/chromium/chrome/browser/ui/webui/welcome/welcome_ui.h b/chromium/chrome/browser/ui/webui/welcome/welcome_ui.h
index 4b5194737f9..6700d3288e1 100644
--- a/chromium/chrome/browser/ui/webui/welcome/welcome_ui.h
+++ b/chromium/chrome/browser/ui/webui/welcome/welcome_ui.h
@@ -22,6 +22,10 @@
class WelcomeUI : public content::WebUIController {
public:
WelcomeUI(content::WebUI* web_ui, const GURL& url);
+
+ WelcomeUI(const WelcomeUI&) = delete;
+ WelcomeUI& operator=(const WelcomeUI&) = delete;
+
~WelcomeUI() override;
void CreateBackgroundFetcher(
@@ -36,8 +40,6 @@ class WelcomeUI : public content::WebUIController {
void StorePageSeen(Profile* profile);
std::unique_ptr<welcome::NtpBackgroundFetcher> background_fetcher_;
base::WeakPtrFactory<WelcomeUI> weak_ptr_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(WelcomeUI);
};
#endif // CHROME_BROWSER_UI_WEBUI_WELCOME_WELCOME_UI_H_
diff --git a/chromium/chrome/browser/ui/webui/whats_new/whats_new_handler.cc b/chromium/chrome/browser/ui/webui/whats_new/whats_new_handler.cc
index bcbd21c218b..f01d5256703 100644
--- a/chromium/chrome/browser/ui/webui/whats_new/whats_new_handler.cc
+++ b/chromium/chrome/browser/ui/webui/whats_new/whats_new_handler.cc
@@ -6,11 +6,13 @@
#include "base/bind.h"
#include "base/metrics/histogram_functions.h"
+#include "base/strings/stringprintf.h"
#include "base/values.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
+#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/webui/whats_new/whats_new_util.h"
#include "chrome/common/chrome_version.h"
#include "chrome/common/pref_names.h"
@@ -19,6 +21,7 @@
#include "components/prefs/pref_change_registrar.h"
#include "components/prefs/pref_service.h"
#include "content/public/browser/storage_partition.h"
+#include "net/http/http_util.h"
#include "services/network/public/cpp/resource_request.h"
#include "services/network/public/cpp/simple_url_loader.h"
#include "services/network/public/mojom/url_response_head.mojom.h"
@@ -26,6 +29,12 @@
const int64_t kMaxDownloadBytes = 1024 * 1024;
+// The maximum number of times to try loading prior versions if What's New fails
+// to load for the current version. Used only if the user tries to open the page
+// manually. What's New generally has new content every other milestone, so only
+// 1 retry should be needed most of the time; conservatively set the max to 2.
+const int kMaxRetries = 2;
+
namespace whats_new {
// These values are persisted to logs. Entries should not be renumbered and
@@ -35,7 +44,8 @@ enum class LoadEvent {
kLoadSuccess = 1,
kLoadFailAndShowError = 2,
kLoadFailAndFallbackToNtp = 3,
- kMaxValue = kLoadFailAndFallbackToNtp,
+ kLoadFailAndCloseTab = 4,
+ kMaxValue = kLoadFailAndCloseTab,
};
} // namespace whats_new
@@ -46,6 +56,15 @@ void LogLoadEvent(whats_new::LoadEvent event) {
base::UmaHistogramEnumeration("WhatsNew.LoadEvent", event);
}
+std::string GetURLForVersion(int version) {
+ // Versions prior to m96 didn't use an extra path.
+ // TODO (https://crbug.com/1219381): Remove the < 96 special logic once the
+ // M96 page has been created by the server team.
+ return version < 96 ? whats_new::kChromeWhatsNewURL
+ : base::StringPrintf(
+ "%sm%d", whats_new::kChromeWhatsNewURL, version);
+}
+
} // namespace
WhatsNewHandler::WhatsNewHandler() = default;
@@ -53,7 +72,7 @@ WhatsNewHandler::WhatsNewHandler() = default;
WhatsNewHandler::~WhatsNewHandler() = default;
void WhatsNewHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
+ web_ui()->RegisterDeprecatedMessageCallback(
"initialize", base::BindRepeating(&WhatsNewHandler::HandleInitialize,
base::Unretained(this)));
}
@@ -65,14 +84,14 @@ void WhatsNewHandler::OnJavascriptDisallowed() {
}
void WhatsNewHandler::HandleInitialize(const base::ListValue* args) {
- CHECK_EQ(2U, args->GetSize());
+ CHECK_EQ(2U, args->GetList().size());
std::string callback_id;
CHECK(args->GetString(0, &callback_id));
bool is_auto;
CHECK(args->GetBoolean(1, &is_auto));
AllowJavascript();
- if (whats_new::g_force_enable_for_tests) {
+ if (whats_new::IsRemoteContentDisabled()) {
// Just resolve with failure. This shows the error page which is all local
// content, so that we don't trigger potentially flaky network requests in
// tests.
@@ -80,11 +99,14 @@ void WhatsNewHandler::HandleInitialize(const base::ListValue* args) {
return;
}
- Fetch(GURL(whats_new::kChromeWhatsNewURL),
+ Fetch(GURL(GetURLForVersion(CHROME_VERSION_MAJOR)),
base::BindOnce(&WhatsNewHandler::OnFetchResult,
weak_ptr_factory_.GetWeakPtr(), callback_id, is_auto));
}
+// TODO (https://crbug.com/1255463): See if there is a way to factor this fetch
+// logic out of the handler so it can be performed by the startup tab provider,
+// so that the tab does not open at all if What's New fails to load.
void WhatsNewHandler::Fetch(const GURL& url, OnFetchResultCallback on_result) {
LogLoadEvent(whats_new::LoadEvent::kLoadStart);
auto traffic_annotation =
@@ -128,41 +150,75 @@ void WhatsNewHandler::Fetch(const GURL& url, OnFetchResultCallback on_result) {
void WhatsNewHandler::OnResponseLoaded(const network::SimpleURLLoader* loader,
OnFetchResultCallback on_result,
std::unique_ptr<std::string> body) {
- bool success = loader->NetError() == net::OK && loader->ResponseInfo() &&
- loader->ResponseInfo()->headers &&
- loader->ResponseInfo()->headers->response_code() >= 200 &&
- loader->ResponseInfo()->headers->response_code() <= 299 &&
- body;
- std::move(on_result).Run(success, std::move(body));
+ int response_code = loader->NetError();
+ const auto& headers =
+ loader->ResponseInfo() ? loader->ResponseInfo()->headers : nullptr;
+ bool success = response_code == net::OK && headers;
+ if (headers) {
+ response_code =
+ net::HttpUtil::MapStatusCodeForHistogram(headers->response_code());
+ }
+
+ base::UmaHistogramSparse("WhatsNew.LoadResponseCode", response_code);
+ success = success && response_code >= 200 && response_code <= 299 && body;
+ bool page_not_found = !success && headers && headers->response_code() == 404;
+ // Erase the loader first because |on_result| can destroy this handler.
loader_map_.erase(loader);
+ std::move(on_result).Run(success, page_not_found, std::move(body));
}
void WhatsNewHandler::OnFetchResult(const std::string& callback_id,
bool is_auto,
bool success,
+ bool page_not_found,
std::unique_ptr<std::string> body) {
+ // Update pref if shown automatically. Do this even if the load failed - we
+ // only want to try once, so that we don't have to re-query for What's New
+ // every time the browser opens.
+ if (is_auto) {
+ whats_new::SetLastVersion(g_browser_process->local_state());
+ }
+
if (!success && is_auto) {
- // Open NTP if the page wasn't retrieved and What's New was opened
- // automatically.
Browser* browser = chrome::FindLastActive();
if (!browser)
return;
- LogLoadEvent(whats_new::LoadEvent::kLoadFailAndFallbackToNtp);
- content::OpenURLParams params(GURL(chrome::kChromeUINewTabPageURL),
- content::Referrer(),
- WindowOpenDisposition::CURRENT_TAB,
- ui::PAGE_TRANSITION_AUTO_BOOKMARK, false);
- browser->OpenURL(params);
+ if (browser->tab_strip_model()->count() == 1) {
+ // Don't close the tab if this is the only tab as doing so will close the
+ // browser right after the user tried to start it. Instead, load the NTP
+ // as a fallback startup experience if What's New failed to load when
+ // being shown automatically.
+ LogLoadEvent(whats_new::LoadEvent::kLoadFailAndFallbackToNtp);
+ content::OpenURLParams params(GURL(chrome::kChromeUINewTabPageURL),
+ content::Referrer(),
+ WindowOpenDisposition::CURRENT_TAB,
+ ui::PAGE_TRANSITION_AUTO_BOOKMARK, false);
+ browser->OpenURL(params);
+ } else {
+ // If other startup tabs already exist, close the tab in order to show
+ // them. This destroys the handler so don't do anything else after this.
+ LogLoadEvent(whats_new::LoadEvent::kLoadFailAndCloseTab);
+ content::WebContents* contents = web_ui()->GetWebContents();
+ chrome::CloseWebContents(browser, contents, /* add_to_history= */ false);
+ }
+ } else if (!success && page_not_found && num_retries_ < kMaxRetries) {
+ // If the user opened the page manually and the error was that the page does
+ // not exist, try to load the page for a previous milestone. It might just
+ // not have a new version for the current one. We still want to show the
+ // most recent What's New (even if it isn't exactly for this milestone) if
+ // the user intentionally navigated there.
+ num_retries_++;
+ Fetch(GURL(GetURLForVersion(CHROME_VERSION_MAJOR - num_retries_)),
+ base::BindOnce(&WhatsNewHandler::OnFetchResult,
+ weak_ptr_factory_.GetWeakPtr(), callback_id, is_auto));
} else {
LogLoadEvent(success ? whats_new::LoadEvent::kLoadSuccess
: whats_new::LoadEvent::kLoadFailAndShowError);
- // Update pref if successfully shown automatically.
- if (success && is_auto) {
- whats_new::SetLastVersion(g_browser_process->local_state());
- }
ResolveJavascriptCallback(
base::Value(callback_id),
- success ? base::Value(whats_new::kChromeWhatsNewURL) : base::Value());
+ success
+ ? base::Value(GetURLForVersion(CHROME_VERSION_MAJOR - num_retries_))
+ : base::Value());
}
}
diff --git a/chromium/chrome/browser/ui/webui/whats_new/whats_new_handler.h b/chromium/chrome/browser/ui/webui/whats_new/whats_new_handler.h
index 41f5cf14e1c..3b703ce93ba 100644
--- a/chromium/chrome/browser/ui/webui/whats_new/whats_new_handler.h
+++ b/chromium/chrome/browser/ui/webui/whats_new/whats_new_handler.h
@@ -29,6 +29,7 @@ class WhatsNewHandler : public content::WebUIMessageHandler {
private:
void HandleInitialize(const base::ListValue* args);
typedef base::OnceCallback<void(bool success,
+ bool page_not_found,
std::unique_ptr<std::string> body)>
OnFetchResultCallback;
void Fetch(const GURL& url, OnFetchResultCallback on_result);
@@ -38,6 +39,7 @@ class WhatsNewHandler : public content::WebUIMessageHandler {
void OnFetchResult(const std::string& callback_id,
bool is_auto,
bool success,
+ bool page_not_found,
std::unique_ptr<std::string> body);
// content::WebUIMessageHandler:
@@ -45,6 +47,7 @@ class WhatsNewHandler : public content::WebUIMessageHandler {
void OnJavascriptAllowed() override;
void OnJavascriptDisallowed() override;
+ int num_retries_ = 0;
std::unordered_map<const network::SimpleURLLoader*,
std::unique_ptr<network::SimpleURLLoader>>
loader_map_;
diff --git a/chromium/chrome/browser/ui/webui/whats_new/whats_new_ui.cc b/chromium/chrome/browser/ui/webui/whats_new/whats_new_ui.cc
index be3b787901c..e1e6c407e9b 100644
--- a/chromium/chrome/browser/ui/webui/whats_new/whats_new_ui.cc
+++ b/chromium/chrome/browser/ui/webui/whats_new/whats_new_ui.cc
@@ -10,7 +10,7 @@
#include "chrome/browser/browser_features.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/ui_features.h"
-#include "chrome/browser/ui/webui/new_tab_page/promo_browser_command/promo_browser_command_handler.h"
+#include "chrome/browser/ui/webui/browser_command/browser_command_handler.h"
#include "chrome/browser/ui/webui/webui_util.h"
#include "chrome/browser/ui/webui/whats_new/whats_new_handler.h"
#include "chrome/browser/ui/webui/whats_new/whats_new_util.h"
@@ -43,6 +43,9 @@ content::WebUIDataSource* CreateWhatsNewUIHtmlSource(Profile* profile) {
{"reloadButton", IDS_RELOAD},
};
source->AddLocalizedStrings(kStrings);
+ source->AddBoolean("showFeedbackButton",
+ features::kChromeWhatsNewUIFeedbackButton.Get());
+
// Allow embedding of iframe from chrome.com
source->OverrideContentSecurityPolicy(
network::mojom::CSPDirectiveName::ChildSrc,
@@ -78,7 +81,7 @@ base::RefCountedMemory* WhatsNewUI::GetFaviconResourceBytes(
WEB_UI_CONTROLLER_TYPE_IMPL(WhatsNewUI)
void WhatsNewUI::BindInterface(
- mojo::PendingReceiver<promo_browser_command::mojom::CommandHandlerFactory>
+ mojo::PendingReceiver<browser_command::mojom::CommandHandlerFactory>
pending_receiver) {
if (browser_command_factory_receiver_.is_bound())
browser_command_factory_receiver_.reset();
@@ -86,11 +89,11 @@ void WhatsNewUI::BindInterface(
}
void WhatsNewUI::CreateBrowserCommandHandler(
- mojo::PendingReceiver<promo_browser_command::mojom::CommandHandler>
+ mojo::PendingReceiver<browser_command::mojom::CommandHandler>
pending_handler) {
- std::vector<promo_browser_command::mojom::Command> supported_commands = {
- promo_browser_command::mojom::Command::kOpenFeedbackForm};
- command_handler_ = std::make_unique<PromoBrowserCommandHandler>(
+ std::vector<browser_command::mojom::Command> supported_commands = {
+ browser_command::mojom::Command::kOpenFeedbackForm};
+ command_handler_ = std::make_unique<BrowserCommandHandler>(
std::move(pending_handler), profile_, supported_commands);
command_handler_->ConfigureFeedbackCommand(
{GURL(chrome::kChromeUIWhatsNewURL), chrome::kFeedbackSourceWhatsNew,
diff --git a/chromium/chrome/browser/ui/webui/whats_new/whats_new_ui.h b/chromium/chrome/browser/ui/webui/whats_new/whats_new_ui.h
index f97d13ca1ed..28d4eaba170 100644
--- a/chromium/chrome/browser/ui/webui/whats_new/whats_new_ui.h
+++ b/chromium/chrome/browser/ui/webui/whats_new/whats_new_ui.h
@@ -6,12 +6,12 @@
#define CHROME_BROWSER_UI_WEBUI_WHATS_NEW_WHATS_NEW_UI_H_
#include "base/macros.h"
-#include "chrome/browser/promo_browser_command/promo_browser_command.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
-#include "ui/base/resource/scale_factor.h"
+#include "ui/base/resource/resource_scale_factor.h"
#include "ui/webui/mojo_web_ui_controller.h"
+#include "ui/webui/resources/js/browser_command/browser_command.mojom.h"
namespace base {
class RefCountedMemory;
@@ -21,13 +21,13 @@ namespace content {
class WebUI;
}
-class PromoBrowserCommandHandler;
+class BrowserCommandHandler;
class PrefRegistrySimple;
class Profile;
// The Web UI controller for the chrome://whats-new page.
class WhatsNewUI : public ui::MojoWebUIController,
- public promo_browser_command::mojom::CommandHandlerFactory {
+ public browser_command::mojom::CommandHandlerFactory {
public:
explicit WhatsNewUI(content::WebUI* web_ui);
~WhatsNewUI() override;
@@ -38,21 +38,21 @@ class WhatsNewUI : public ui::MojoWebUIController,
ui::ResourceScaleFactor scale_factor);
// Instantiates the implementor of the
- // promo_browser_command::mojom::CommandHandlerFactory mojo interface.
+ // browser_command::mojom::CommandHandlerFactory mojo interface.
void BindInterface(
- mojo::PendingReceiver<promo_browser_command::mojom::CommandHandlerFactory>
+ mojo::PendingReceiver<browser_command::mojom::CommandHandlerFactory>
pending_receiver);
WhatsNewUI(const WhatsNewUI&) = delete;
WhatsNewUI& operator=(const WhatsNewUI&) = delete;
private:
- // promo_browser_command::mojom::CommandHandlerFactory
+ // browser_command::mojom::CommandHandlerFactory
void CreateBrowserCommandHandler(
- mojo::PendingReceiver<promo_browser_command::mojom::CommandHandler>
+ mojo::PendingReceiver<browser_command::mojom::CommandHandler>
pending_handler) override;
- std::unique_ptr<PromoBrowserCommandHandler> command_handler_;
- mojo::Receiver<promo_browser_command::mojom::CommandHandlerFactory>
+ std::unique_ptr<BrowserCommandHandler> command_handler_;
+ mojo::Receiver<browser_command::mojom::CommandHandlerFactory>
browser_command_factory_receiver_;
Profile* profile_;
WEB_UI_CONTROLLER_TYPE_DECL();
diff --git a/chromium/chrome/browser/ui/webui/whats_new/whats_new_util.cc b/chromium/chrome/browser/ui/webui/whats_new/whats_new_util.cc
index 288e44c027f..4092adbab32 100644
--- a/chromium/chrome/browser/ui/webui/whats_new/whats_new_util.cc
+++ b/chromium/chrome/browser/ui/webui/whats_new/whats_new_util.cc
@@ -13,7 +13,15 @@ namespace whats_new {
const char kChromeWhatsNewURL[] = "https://www.google.com/chrome/whats-new/";
const char kChromeWhatsNewURLShort[] = "google.com/chrome/whats-new/";
-bool g_force_enable_for_tests = false;
+bool g_is_remote_content_disabled = false;
+
+void DisableRemoteContentForTests() {
+ g_is_remote_content_disabled = true;
+}
+
+bool IsRemoteContentDisabled() {
+ return g_is_remote_content_disabled;
+}
bool ShouldShowForState(PrefService* local_state) {
if (!local_state)
@@ -22,6 +30,8 @@ bool ShouldShowForState(PrefService* local_state) {
if (!base::FeatureList::IsEnabled(features::kChromeWhatsNewUI))
return false;
+ // Show What's New if the page hasn't yet been shown for the current
+ // milestone.
int last_version = local_state->GetInteger(prefs::kLastWhatsNewVersion);
return CHROME_VERSION_MAJOR > last_version;
}
diff --git a/chromium/chrome/browser/ui/webui/whats_new/whats_new_util.h b/chromium/chrome/browser/ui/webui/whats_new/whats_new_util.h
index 47c68203444..bf19d393487 100644
--- a/chromium/chrome/browser/ui/webui/whats_new/whats_new_util.h
+++ b/chromium/chrome/browser/ui/webui/whats_new/whats_new_util.h
@@ -10,12 +10,20 @@ class PrefService;
namespace whats_new {
extern const char kChromeWhatsNewURL[];
extern const char kChromeWhatsNewURLShort[];
+extern const int kMaxWhatsNewVersion;
-// Allows tests to force What's New to stay open even if loading remote content
-// doesn't succeed, since this does not work in tests.
-extern bool g_force_enable_for_tests;
+// Disables loading remote content for tests, because this can lead to a
+// redirect if it fails. Most tests don't expect redirects to occur.
+void DisableRemoteContentForTests();
+// Whether loading remote content has been disabled via
+// DisableRemoteContentForTests().
+bool IsRemoteContentDisabled();
+
+// Whether the What's New page should be shown, based on |local_state|.
bool ShouldShowForState(PrefService* local_state);
+
+// Sets the last What's New version in |local_state| to the current version.
void SetLastVersion(PrefService* local_state);
} // namespace whats_new