From c30a6232df03e1efbd9f3b226777b07e087a1122 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 12 Oct 2020 14:27:29 +0200 Subject: BASELINE: Update Chromium to 85.0.4183.140 Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen --- .../ca_layer_tree_coordinator.h | 2 +- .../ca_layer_tree_coordinator.mm | 4 +- .../ca_renderer_layer_tree.mm | 1 + .../display_ca_layer_tree.mm | 1 + chromium/ui/accessibility/BUILD.gn | 207 +- .../ui/accessibility/accessibility_features.cc | 32 + chromium/ui/accessibility/accessibility_features.h | 50 +- chromium/ui/accessibility/accessibility_switches.h | 37 +- chromium/ui/accessibility/ax_enum_util.cc | 8 +- chromium/ui/accessibility/ax_enums.mojom | 28 +- chromium/ui/accessibility/ax_event.cc | 2 +- chromium/ui/accessibility/ax_event_generator.cc | 21 +- chromium/ui/accessibility/ax_event_generator.h | 13 +- chromium/ui/accessibility/ax_mode.cc | 3 + chromium/ui/accessibility/ax_mode.h | 7 +- chromium/ui/accessibility/ax_node.cc | 288 +- chromium/ui/accessibility/ax_node.h | 74 +- chromium/ui/accessibility/ax_node_data.cc | 49 +- chromium/ui/accessibility/ax_node_data.h | 7 +- chromium/ui/accessibility/ax_node_position.cc | 5 +- .../ui/accessibility/ax_node_position_unittest.cc | 129 + chromium/ui/accessibility/ax_param_traits_macros.h | 1 + chromium/ui/accessibility/ax_position.h | 27 +- chromium/ui/accessibility/ax_range_unittest.cc | 10 +- chromium/ui/accessibility/ax_role_properties.cc | 12 +- chromium/ui/accessibility/ax_role_properties.h | 8 +- chromium/ui/accessibility/ax_table_fuzzer.cc | 27 +- chromium/ui/accessibility/ax_tree.cc | 88 +- chromium/ui/accessibility/ax_tree.h | 31 +- chromium/ui/accessibility/ax_tree_id.cc | 12 +- chromium/ui/accessibility/ax_tree_unittest.cc | 313 +- chromium/ui/accessibility/ax_tree_update.h | 17 +- .../extensions/chromevoxclassic/BUILD.gn | 6 +- .../testing/chromevox_unittest_base.js | 9 +- .../ui/accessibility/mojom/ax_tree_update.mojom | 2 + .../mojom/ax_tree_update_mojom_traits.cc | 2 +- .../mojom/ax_tree_update_mojom_traits.h | 7 + chromium/ui/accessibility/platform/BUILD.gn | 142 + .../accessibility/platform/ax_fragment_root_win.cc | 66 + .../platform/ax_fragment_root_win_unittest.cc | 104 +- .../ui/accessibility/platform/ax_platform_node.h | 2 +- .../platform/ax_platform_node_auralinux.cc | 169 +- .../platform/ax_platform_node_auralinux.h | 3 +- .../ax_platform_node_auralinux_unittest.cc | 19 +- .../platform/ax_platform_node_base.cc | 108 +- .../accessibility/platform/ax_platform_node_base.h | 54 +- .../platform/ax_platform_node_delegate.h | 30 +- .../platform/ax_platform_node_delegate_base.cc | 56 +- .../platform/ax_platform_node_delegate_base.h | 12 +- .../accessibility/platform/ax_platform_node_mac.h | 1 + .../accessibility/platform/ax_platform_node_mac.mm | 21 +- ...platform_node_textchildprovider_win_unittest.cc | 2 +- .../ax_platform_node_textprovider_win_unittest.cc | 18 +- .../ax_platform_node_textrangeprovider_win.cc | 43 +- .../ax_platform_node_textrangeprovider_win.h | 10 + ...platform_node_textrangeprovider_win_unittest.cc | 27 +- .../platform/ax_platform_node_unittest.cc | 8 +- .../accessibility/platform/ax_platform_node_win.cc | 173 +- .../accessibility/platform/ax_platform_node_win.h | 35 +- .../platform/ax_platform_node_win_unittest.cc | 496 +- .../platform/ax_platform_node_win_unittest.h | 3 + .../platform/ax_platform_relation_win.cc | 6 + .../accessibility/platform/ichromeaccessible.idl | 64 + .../accessibility/platform/test_ax_node_wrapper.cc | 54 +- .../accessibility/platform/test_ax_node_wrapper.h | 4 + .../ui/accessibility/platform/uia_registrar_win.cc | 50 + .../ui/accessibility/platform/uia_registrar_win.h | 45 + chromium/ui/accessibility/test_ax_node_helper.cc | 204 + chromium/ui/accessibility/test_ax_node_helper.h | 50 + chromium/ui/android/BUILD.gn | 24 +- chromium/ui/android/event_forwarder.cc | 17 +- chromium/ui/android/event_forwarder.h | 1 + chromium/ui/android/junit/AndroidManifest.xml | 19 + .../ActivityAndroidPermissionDelegateTest.java | 260 + .../chromium/ui/base/LocalizationUtilsTest.java | 4 +- .../org/chromium/ui/base/SelectFileDialogTest.java | 44 + .../src/org/chromium/ui/base/TestActivity.java | 14 + .../ui/drawable/StateListDrawableBuilderTest.java | 19 +- .../ui/modaldialog/ModalDialogManagerTest.java | 15 +- chromium/ui/android/view_android.cc | 31 +- chromium/ui/android/view_android.h | 12 +- chromium/ui/android/view_android_unittests.cc | 4 +- chromium/ui/aura/BUILD.gn | 11 +- chromium/ui/aura/client/aura_constants.cc | 1 + chromium/ui/aura/client/aura_constants.h | 5 + chromium/ui/aura/client/cursor_client.h | 5 + chromium/ui/aura/env.cc | 14 +- chromium/ui/aura/env.h | 8 + .../aura/gestures/gesture_recognizer_unittest.cc | 19 +- chromium/ui/aura/screen_ozone.cc | 5 +- chromium/ui/aura/screen_ozone.h | 1 + chromium/ui/aura/window.cc | 27 +- chromium/ui/aura/window.h | 18 +- chromium/ui/aura/window_event_dispatcher.cc | 41 +- chromium/ui/aura/window_event_dispatcher.h | 3 +- .../ui/aura/window_event_dispatcher_unittest.cc | 48 + chromium/ui/aura/window_observer.h | 4 - chromium/ui/aura/window_tree_host.cc | 24 +- chromium/ui/aura/window_tree_host.h | 9 +- chromium/ui/aura/window_tree_host_platform.cc | 19 +- chromium/ui/aura/window_tree_host_unittest.cc | 28 +- chromium/ui/aura/window_unittest.cc | 129 +- chromium/ui/base/BUILD.gn | 133 +- chromium/ui/base/DEPS | 1 + chromium/ui/base/accelerators/accelerator.cc | 25 +- chromium/ui/base/accelerators/accelerator.h | 9 +- .../ui/base/accelerators/accelerator_history.h | 4 +- .../ui/base/accelerators/accelerator_manager.h | 4 +- .../accelerators/global_media_keys_listener_win.h | 5 +- .../ui/base/accelerators/media_keys_listener.h | 6 +- .../base/accelerators/media_keys_listener_mac.mm | 1 + chromium/ui/base/accelerators/media_keys_util.h | 9 +- .../accelerators/menu_label_accelerator_util.h | 8 +- .../menu_label_accelerator_util_linux.h | 10 +- .../base/accelerators/platform_accelerator_cocoa.h | 5 +- .../system_media_controls_media_keys_listener.h | 4 +- chromium/ui/base/base_window.h | 3 +- chromium/ui/base/class_property.h | 6 +- chromium/ui/base/clipboard/BUILD.gn | 72 +- chromium/ui/base/clipboard/clipboard.cc | 6 + chromium/ui/base/clipboard/clipboard.h | 11 + chromium/ui/base/clipboard/clipboard_android.cc | 11 +- chromium/ui/base/clipboard/clipboard_aura.cc | 626 - chromium/ui/base/clipboard/clipboard_aura.h | 80 - chromium/ui/base/clipboard/clipboard_constants.h | 7 + .../ui/base/clipboard/clipboard_constants_mac.mm | 5 + chromium/ui/base/clipboard/clipboard_linux.cc | 33 + chromium/ui/base/clipboard/clipboard_mac.h | 2 + chromium/ui/base/clipboard/clipboard_mac.mm | 30 + chromium/ui/base/clipboard/clipboard_metrics.cc | 20 + chromium/ui/base/clipboard/clipboard_metrics.h | 30 + chromium/ui/base/clipboard/clipboard_non_backed.cc | 636 + chromium/ui/base/clipboard/clipboard_non_backed.h | 86 + chromium/ui/base/clipboard/clipboard_ozone.cc | 22 +- .../ui/base/clipboard/clipboard_test_template.h | 80 +- chromium/ui/base/clipboard/clipboard_util_mac.mm | 1 + chromium/ui/base/clipboard/clipboard_win.cc | 9 + chromium/ui/base/clipboard/clipboard_x11.cc | 337 +- .../ui/base/clipboard/scoped_clipboard_writer.cc | 16 + .../ui/base/clipboard/scoped_clipboard_writer.h | 5 + .../ui/base/cocoa/accessibility_focus_overrider.h | 4 +- chromium/ui/base/cocoa/appkit_utils.h | 6 +- chromium/ui/base/cocoa/base_view.h | 8 +- chromium/ui/base/cocoa/base_view.mm | 1 + chromium/ui/base/cocoa/bubble_closer.h | 4 +- chromium/ui/base/cocoa/cocoa_base_utils.h | 20 +- chromium/ui/base/cocoa/command_dispatcher.h | 4 +- chromium/ui/base/cocoa/command_dispatcher.mm | 49 +- .../constrained_window_animation.h | 10 +- .../constrained_window_animation.mm | 1 + chromium/ui/base/cocoa/controls/button_utils.h | 4 +- chromium/ui/base/cocoa/controls/textfield_utils.h | 4 +- chromium/ui/base/cocoa/defaults_utils.h | 6 +- chromium/ui/base/cocoa/find_pasteboard.h | 8 +- chromium/ui/base/cocoa/flipped_view.h | 4 +- chromium/ui/base/cocoa/focus_tracker.h | 4 +- chromium/ui/base/cocoa/focus_window_set.h | 9 +- chromium/ui/base/cocoa/focus_window_set.mm | 1 + chromium/ui/base/cocoa/menu_controller.h | 4 +- chromium/ui/base/cocoa/permissions_utils.h | 4 +- chromium/ui/base/cocoa/quartz_util.h | 6 +- chromium/ui/base/cocoa/remote_accessibility_api.h | 4 +- chromium/ui/base/cocoa/remote_layer_api.h | 4 +- chromium/ui/base/cocoa/secure_password_input.h | 4 +- .../ui/base/cocoa/text_services_context_menu.cc | 22 +- .../ui/base/cocoa/text_services_context_menu.h | 22 +- chromium/ui/base/cocoa/tool_tip_base_view.h | 3 +- chromium/ui/base/cocoa/touch_bar_util.h | 21 +- chromium/ui/base/cocoa/tracking_area.h | 6 +- .../ui/base/cocoa/underlay_opengl_hosting_window.h | 4 +- chromium/ui/base/cocoa/views_hostable.h | 2 +- chromium/ui/base/cocoa/weak_ptr_nsobject.h | 4 +- chromium/ui/base/cocoa/window_size_constants.h | 4 +- chromium/ui/base/cursor/BUILD.gn | 114 +- chromium/ui/base/cursor/DEPS | 3 - chromium/ui/base/cursor/cursor.h | 4 +- chromium/ui/base/cursor/cursor_factory.cc | 68 + chromium/ui/base/cursor/cursor_factory.h | 67 + chromium/ui/base/cursor/cursor_loader.h | 11 +- chromium/ui/base/cursor/cursor_loader_ozone.cc | 65 +- chromium/ui/base/cursor/cursor_loader_ozone.h | 13 +- chromium/ui/base/cursor/cursor_loader_win.cc | 2 +- chromium/ui/base/cursor/cursor_loader_win.h | 5 +- chromium/ui/base/cursor/cursor_loader_x11.cc | 310 - chromium/ui/base/cursor/cursor_loader_x11.h | 93 - chromium/ui/base/cursor/cursor_lookup.h | 8 +- chromium/ui/base/cursor/cursor_ozone.cc | 6 +- chromium/ui/base/cursor/cursor_theme_manager.cc | 47 + chromium/ui/base/cursor/cursor_theme_manager.h | 46 + .../ui/base/cursor/cursor_theme_manager_linux.cc | 42 - .../ui/base/cursor/cursor_theme_manager_linux.h | 52 - .../cursor/cursor_theme_manager_linux_observer.h | 31 - .../ui/base/cursor/cursor_theme_manager_observer.h | 29 + chromium/ui/base/cursor/cursor_unittest.cc | 23 +- chromium/ui/base/cursor/cursor_util.cc | 3 + chromium/ui/base/cursor/cursor_util.h | 21 +- chromium/ui/base/cursor/cursor_util_unittest.cc | 1 + chromium/ui/base/cursor/cursor_x11.cc | 21 - chromium/ui/base/cursor/cursors_aura.cc | 116 +- chromium/ui/base/cursor/cursors_aura.h | 29 +- chromium/ui/base/cursor/image_cursors.cc | 72 +- chromium/ui/base/cursor/image_cursors.h | 23 +- chromium/ui/base/cursor/mojom/BUILD.gn | 4 +- .../cursor/mojom/cursor_mojom_traits_unittest.cc | 15 +- .../cursor/ozone/bitmap_cursor_factory_ozone.cc | 49 +- .../cursor/ozone/bitmap_cursor_factory_ozone.h | 31 +- chromium/ui/base/device_form_factor.h | 4 +- chromium/ui/base/dragdrop/cocoa_dnd_util.h | 15 +- chromium/ui/base/dragdrop/drag_drop_types.h | 4 +- chromium/ui/base/dragdrop/drag_source_win.cc | 2 +- chromium/ui/base/dragdrop/drag_source_win.h | 5 +- chromium/ui/base/dragdrop/drop_target_event.h | 3 +- chromium/ui/base/dragdrop/drop_target_win.h | 4 +- chromium/ui/base/dragdrop/os_exchange_data.cc | 2 +- chromium/ui/base/dragdrop/os_exchange_data.h | 4 +- .../ui/base/dragdrop/os_exchange_data_provider.h | 3 +- .../dragdrop/os_exchange_data_provider_aura.cc | 218 - .../base/dragdrop/os_exchange_data_provider_aura.h | 101 - .../dragdrop/os_exchange_data_provider_factory.cc | 4 +- .../dragdrop/os_exchange_data_provider_factory.h | 4 +- .../base/dragdrop/os_exchange_data_provider_mac.h | 4 +- .../base/dragdrop/os_exchange_data_provider_mac.mm | 6 +- .../os_exchange_data_provider_non_backed.cc | 225 + .../os_exchange_data_provider_non_backed.h | 107 + .../base/dragdrop/os_exchange_data_provider_win.cc | 10 +- .../base/dragdrop/os_exchange_data_provider_win.h | 5 +- .../base/dragdrop/os_exchange_data_provider_x11.cc | 8 +- .../base/dragdrop/os_exchange_data_provider_x11.h | 12 +- .../os_exchange_data_provider_x11_unittest.cc | 26 +- .../ui/base/dragdrop/os_exchange_data_unittest.cc | 35 +- .../base/dragdrop/os_exchange_data_win_unittest.cc | 15 +- chromium/ui/base/emoji/emoji_panel_helper.h | 10 +- chromium/ui/base/idle/BUILD.gn | 1 - chromium/ui/base/idle/idle_query_x11.cc | 41 +- chromium/ui/base/idle/idle_query_x11.h | 8 +- .../ui/base/idle/screensaver_window_finder_x11.cc | 34 +- .../ui/base/idle/screensaver_window_finder_x11.h | 4 +- chromium/ui/base/ime/BUILD.gn | 3 - chromium/ui/base/ime/chromeos/BUILD.gn | 2 + chromium/ui/base/ime/dummy_input_method.cc | 5 - chromium/ui/base/ime/dummy_input_method.h | 4 - chromium/ui/base/ime/dummy_text_input_client.cc | 8 + chromium/ui/base/ime/dummy_text_input_client.h | 6 + .../ui/base/ime/fuchsia/input_method_fuchsia.cc | 4 +- .../input_method_keyboard_controller_fuchsia.cc | 6 +- .../ime/ime_assistive_window_handler_interface.h | 23 +- chromium/ui/base/ime/ime_bridge.cc | 146 - chromium/ui/base/ime/ime_bridge.h | 102 - .../ui/base/ime/ime_engine_handler_interface.h | 15 + .../base/ime/ime_input_context_handler_interface.h | 5 + chromium/ui/base/ime/ime_text_span.h | 7 +- chromium/ui/base/ime/init/BUILD.gn | 3 + chromium/ui/base/ime/init/input_method_factory.cc | 28 +- .../ui/base/ime/init/input_method_initializer.cc | 6 +- chromium/ui/base/ime/input_method.h | 16 - chromium/ui/base/ime/input_method_base.cc | 32 +- chromium/ui/base/ime/input_method_base.h | 11 +- chromium/ui/base/ime/linux/BUILD.gn | 9 +- .../ui/base/ime/linux/input_method_auralinux.cc | 60 - .../ui/base/ime/linux/input_method_auralinux.h | 12 - .../ime/linux/input_method_auralinux_unittest.cc | 22 +- .../ui/base/ime/mock_ime_input_context_handler.cc | 16 +- .../ui/base/ime/mock_ime_input_context_handler.h | 12 +- chromium/ui/base/ime/mock_input_method.cc | 10 +- chromium/ui/base/ime/mock_input_method.h | 4 - chromium/ui/base/ime/mojom/BUILD.gn | 41 +- chromium/ui/base/ime/mojom/ime_types.mojom | 25 + .../ui/base/ime/mojom/ime_types_mojom_traits.cc | 99 + .../ui/base/ime/mojom/ime_types_mojom_traits.h | 41 +- chromium/ui/base/ime/mojom/text_input_state.mojom | 68 + .../ui/base/ime/mojom/virtual_keyboard_types.mojom | 20 + chromium/ui/base/ime/text_input_client.h | 7 + .../base/ime/virtual_keyboard_visibility_request.h | 21 - chromium/ui/base/ime/win/input_method_win_base.cc | 61 - chromium/ui/base/ime/win/input_method_win_base.h | 13 - chromium/ui/base/ime/win/input_method_win_imm32.cc | 19 +- chromium/ui/base/ime/win/input_method_win_tsf.cc | 5 - ...n_screen_keyboard_display_manager_input_pane.cc | 12 +- ...on_screen_keyboard_display_manager_input_pane.h | 10 +- .../on_screen_keyboard_display_manager_tab_tip.h | 1 - chromium/ui/base/ime/win/tsf_bridge.cc | 37 +- chromium/ui/base/ime/win/tsf_text_store.cc | 27 +- chromium/ui/base/ime/win/tsf_text_store.h | 9 + .../ui/base/ime/win/tsf_text_store_unittest.cc | 87 + chromium/ui/base/l10n/formatter.cc | 4 +- chromium/ui/base/l10n/formatter.h | 9 +- chromium/ui/base/l10n/l10n_font_util.h | 19 +- chromium/ui/base/l10n/l10n_util.cc | 1 + chromium/ui/base/l10n/l10n_util.h | 192 +- chromium/ui/base/l10n/l10n_util_android.h | 10 +- chromium/ui/base/l10n/l10n_util_collator.h | 5 +- chromium/ui/base/l10n/l10n_util_mac.h | 105 +- chromium/ui/base/l10n/l10n_util_win.h | 18 +- chromium/ui/base/l10n/time_format.cc | 5 +- chromium/ui/base/l10n/time_format.h | 4 +- chromium/ui/base/layout.cc | 12 +- chromium/ui/base/layout.h | 19 +- chromium/ui/base/models/button_menu_item_model.h | 6 +- chromium/ui/base/models/combobox_model.cc | 20 +- chromium/ui/base/models/combobox_model.h | 25 +- chromium/ui/base/models/combobox_model_observer.h | 5 +- chromium/ui/base/models/image_model.cc | 8 + chromium/ui/base/models/image_model.h | 7 +- chromium/ui/base/models/image_model_unittest.cc | 8 + chromium/ui/base/models/list_model.h | 2 +- chromium/ui/base/models/list_model_observer.h | 4 +- chromium/ui/base/models/list_selection_model.h | 4 +- chromium/ui/base/models/menu_model.cc | 12 + chromium/ui/base/models/menu_model.h | 18 +- chromium/ui/base/models/simple_combobox_model.cc | 4 +- chromium/ui/base/models/simple_combobox_model.h | 7 +- chromium/ui/base/models/simple_menu_model.cc | 20 + chromium/ui/base/models/simple_menu_model.h | 15 +- .../ui/base/models/simple_menu_model_unittest.cc | 32 + chromium/ui/base/models/table_model.h | 6 +- chromium/ui/base/models/table_model_observer.h | 4 +- chromium/ui/base/models/tree_model.h | 6 +- chromium/ui/base/models/tree_node_iterator.h | 2 +- chromium/ui/base/models/tree_node_model.h | 2 +- chromium/ui/base/mojom/BUILD.gn | 9 + chromium/ui/base/mojom/attributed_string.mojom | 32 + .../mojom/window_open_disposition_mojom_traits.h | 2 +- chromium/ui/base/nine_image_painter_factory.h | 5 +- chromium/ui/base/page_transition_types.h | 36 +- chromium/ui/base/pointer/pointer_device.h | 22 +- .../ui/base/pointer/touch_editing_controller.h | 15 +- chromium/ui/base/pointer/touch_ui_controller.cc | 48 +- chromium/ui/base/pointer/touch_ui_controller.h | 14 +- chromium/ui/base/resource/data_pack.cc | 23 +- chromium/ui/base/resource/resource_bundle.cc | 53 +- chromium/ui/base/resource/resource_bundle.h | 24 +- .../ui/base/resource/resource_bundle_android.cc | 38 +- .../ui/base/resource/resource_bundle_android.h | 42 +- chromium/ui/base/resource/resource_bundle_ios.mm | 11 +- chromium/ui/base/resource/resource_bundle_mac.mm | 12 +- .../ui/base/resource/resource_bundle_unittest.cc | 8 +- chromium/ui/base/resource/resource_bundle_win.h | 6 +- chromium/ui/base/scoped_visibility_tracker.h | 4 +- chromium/ui/base/template_expressions.cc | 2 + chromium/ui/base/template_expressions.h | 16 +- chromium/ui/base/text/bytes_formatting.h | 15 +- chromium/ui/base/theme_provider.h | 4 +- chromium/ui/base/ui_base_export.h | 37 - chromium/ui/base/ui_base_features.cc | 44 +- chromium/ui/base/ui_base_features.h | 23 +- chromium/ui/base/ui_base_paths.h | 4 +- chromium/ui/base/ui_base_switches.h | 52 +- chromium/ui/base/ui_base_switches_util.h | 4 +- chromium/ui/base/ui_base_types.h | 5 +- .../ui/base/user_activity/user_activity_detector.h | 5 +- .../ui/base/user_activity/user_activity_observer.h | 4 +- chromium/ui/base/view_prop.cc | 4 +- chromium/ui/base/view_prop.h | 4 +- chromium/ui/base/webui/i18n_source_stream.h | 5 +- chromium/ui/base/webui/jstemplate_builder.cc | 2 +- chromium/ui/base/webui/jstemplate_builder.h | 23 +- chromium/ui/base/webui/web_ui_util.cc | 8 - chromium/ui/base/webui/web_ui_util.h | 61 +- chromium/ui/base/win/accessibility_misc_utils.h | 4 +- chromium/ui/base/win/event_creation_utils.cc | 37 + chromium/ui/base/win/event_creation_utils.h | 23 + chromium/ui/base/win/foreground_helper.h | 6 +- chromium/ui/base/win/hidden_window.cc | 1 + chromium/ui/base/win/hidden_window.h | 4 +- chromium/ui/base/win/hwnd_metrics.h | 4 +- chromium/ui/base/win/hwnd_subclass.h | 6 +- chromium/ui/base/win/internal_constants.h | 7 +- chromium/ui/base/win/lock_state.h | 4 +- chromium/ui/base/win/message_box_win.h | 11 +- chromium/ui/base/win/mouse_wheel_util.h | 10 +- chromium/ui/base/win/scoped_ole_initializer.h | 4 +- chromium/ui/base/win/session_change_observer.h | 4 +- chromium/ui/base/win/shell.h | 48 +- chromium/ui/base/win/touch_input.h | 11 +- chromium/ui/base/win/window_event_target.h | 4 +- chromium/ui/base/window_open_disposition.h | 28 +- chromium/ui/base/x/BUILD.gn | 25 +- chromium/ui/base/x/selection_owner.cc | 233 +- chromium/ui/base/x/selection_owner.h | 42 +- chromium/ui/base/x/selection_requestor.cc | 172 +- chromium/ui/base/x/selection_requestor.h | 52 +- chromium/ui/base/x/selection_requestor_unittest.cc | 86 +- chromium/ui/base/x/selection_utils.cc | 53 +- chromium/ui/base/x/selection_utils.h | 32 +- chromium/ui/base/x/x11_cursor.cc | 48 + chromium/ui/base/x/x11_cursor.h | 55 + chromium/ui/base/x/x11_cursor_factory.cc | 118 + chromium/ui/base/x/x11_cursor_factory.h | 67 + chromium/ui/base/x/x11_cursor_factory_unittest.cc | 32 + chromium/ui/base/x/x11_display_manager.cc | 56 +- chromium/ui/base/x/x11_display_manager.h | 11 +- chromium/ui/base/x/x11_display_util.cc | 381 +- chromium/ui/base/x/x11_display_util.h | 4 +- chromium/ui/base/x/x11_drag_context.cc | 71 +- chromium/ui/base/x/x11_drag_context.h | 36 +- chromium/ui/base/x/x11_drag_drop_client.cc | 285 +- chromium/ui/base/x/x11_drag_drop_client.h | 61 +- chromium/ui/base/x/x11_error_handler.cc | 104 + chromium/ui/base/x/x11_error_handler.h | 26 + chromium/ui/base/x/x11_gl_egl_utility.cc | 14 +- chromium/ui/base/x/x11_menu_list.cc | 8 +- chromium/ui/base/x/x11_menu_list.h | 15 +- chromium/ui/base/x/x11_menu_registrar.cc | 15 +- chromium/ui/base/x/x11_menu_registrar.h | 7 +- .../ui/base/x/x11_os_exchange_data_provider.cc | 84 +- chromium/ui/base/x/x11_os_exchange_data_provider.h | 17 +- chromium/ui/base/x/x11_pointer_grab.cc | 21 +- chromium/ui/base/x/x11_pointer_grab.h | 2 +- chromium/ui/base/x/x11_shm_image_pool.cc | 20 +- chromium/ui/base/x/x11_shm_image_pool.h | 9 +- .../ui/base/x/x11_software_bitmap_presenter.cc | 62 +- chromium/ui/base/x/x11_software_bitmap_presenter.h | 2 +- chromium/ui/base/x/x11_topmost_window_finder.h | 2 +- chromium/ui/base/x/x11_util.cc | 1011 +- chromium/ui/base/x/x11_util.h | 311 +- chromium/ui/base/x/x11_util_internal.h | 49 +- chromium/ui/base/x/x11_whole_screen_move_loop.cc | 79 +- chromium/ui/base/x/x11_whole_screen_move_loop.h | 4 +- chromium/ui/base/x/x11_window.cc | 1043 +- chromium/ui/base/x/x11_window.h | 66 +- chromium/ui/base/x/x11_workspace_handler.cc | 19 +- chromium/ui/base/x/x11_workspace_handler.h | 7 +- chromium/ui/base/x/xwmstartupcheck/BUILD.gn | 13 + .../ui/base/x/xwmstartupcheck/xwmstartupcheck.cc | 125 + chromium/ui/chromeos/BUILD.gn | 39 +- chromium/ui/color/color_id.h | 2 +- chromium/ui/compositor/BUILD.gn | 3 + .../ui/compositor/animation_metrics_reporter.h | 20 + .../ui/compositor/animation_throughput_reporter.cc | 151 + .../ui/compositor/animation_throughput_reporter.h | 66 + .../animation_throughput_reporter_unittest.cc | 271 + .../callback_layer_animation_observer.cc | 1 + chromium/ui/compositor/compositor.cc | 13 +- chromium/ui/compositor/compositor.h | 8 + chromium/ui/compositor/compositor_unittest.cc | 13 + chromium/ui/compositor/layer.cc | 54 +- chromium/ui/compositor/layer.h | 11 +- chromium/ui/compositor/layer_animation_observer.cc | 9 +- chromium/ui/compositor/layer_animation_observer.h | 6 + chromium/ui/compositor/layer_animation_sequence.cc | 6 + chromium/ui/compositor/layer_animator.cc | 17 +- chromium/ui/compositor/layer_animator.h | 1 + chromium/ui/compositor/layer_animator_unittest.cc | 5 +- chromium/ui/compositor/layer_owner.cc | 6 +- chromium/ui/compositor/layer_owner.h | 4 +- chromium/ui/compositor/layer_tree_owner.h | 2 +- chromium/ui/compositor/layer_unittest.cc | 131 +- .../compositor/overscroll/scroll_input_handler.cc | 8 +- chromium/ui/compositor/paint_context.h | 2 +- chromium/ui/compositor/throughput_tracker.cc | 23 +- chromium/ui/compositor/throughput_tracker.h | 5 +- chromium/ui/display/BUILD.gn | 2 + chromium/ui/display/display.cc | 1 + chromium/ui/display/display_features.cc | 8 +- chromium/ui/display/display_features.h | 2 +- chromium/ui/display/display_observer.h | 2 + chromium/ui/display/display_switches.cc | 3 - chromium/ui/display/display_switches.h | 1 - chromium/ui/display/fake/fake_display_snapshot.cc | 22 +- chromium/ui/display/fake/fake_display_snapshot.h | 8 +- .../ui/display/manager/configure_displays_task.cc | 1 + .../ui/display/manager/display_change_observer.cc | 64 +- .../ui/display/manager/display_change_observer.h | 2 + .../manager/display_change_observer_unittest.cc | 134 +- .../ui/display/manager/display_configurator.cc | 22 +- chromium/ui/display/manager/display_manager.cc | 12 +- chromium/ui/display/manager/display_manager.h | 2 +- chromium/ui/display/manager/display_util.cc | 8 +- chromium/ui/display/manager/display_util.h | 3 + .../ui/display/manager/managed_display_info.cc | 17 +- chromium/ui/display/manager/managed_display_info.h | 10 +- .../manager/managed_display_info_unittest.cc | 4 +- .../ui/display/manager/touch_device_manager.cc | 1 + .../display/manager/touch_transform_controller.cc | 1 + .../manager/update_display_configuration_task.cc | 1 + chromium/ui/display/mojom/BUILD.gn | 13 + .../mojom/display_configuration_params.mojom | 15 + .../display_configuration_params_mojom_traits.cc | 29 + .../display_configuration_params_mojom_traits.h | 39 + .../ui/display/scoped_display_for_new_windows.cc | 24 + .../ui/display/scoped_display_for_new_windows.h | 27 + chromium/ui/display/screen.cc | 20 +- chromium/ui/display/screen.h | 8 + chromium/ui/display/screen_unittest.cc | 23 +- chromium/ui/display/types/BUILD.gn | 2 + .../display/types/display_configuration_params.cc | 21 + .../display/types/display_configuration_params.h | 31 + chromium/ui/display/util/edid_parser.cc | 12 +- chromium/ui/display/util/edid_parser_unittest.cc | 30 + chromium/ui/display/win/scaling_util.cc | 5 +- chromium/ui/display/win/scaling_util.h | 4 +- chromium/ui/display/win/scaling_util_unittest.cc | 10 +- chromium/ui/display/win/screen_win.cc | 5 + chromium/ui/display/win/screen_win_unittest.cc | 199 +- chromium/ui/display/win/uwp_text_scale_factor.cc | 1 + chromium/ui/events/android/motion_event_android.cc | 9 + chromium/ui/events/android/motion_event_android.h | 3 + .../android/motion_event_android_unittest.cc | 15 +- chromium/ui/events/blink/blink_event_util.cc | 21 - chromium/ui/events/blink/blink_event_util.h | 5 - .../ui/events/blink/web_input_event_unittest.cc | 16 +- .../events/devices/x11/device_data_manager_x11.cc | 232 +- .../events/devices/x11/device_data_manager_x11.h | 51 +- .../ui/events/devices/x11/touch_factory_x11.cc | 6 +- chromium/ui/events/devices/x11/touch_factory_x11.h | 2 +- chromium/ui/events/event.cc | 117 +- chromium/ui/events/event.h | 87 +- chromium/ui/events/event_dispatcher.cc | 4 +- chromium/ui/events/event_dispatcher_unittest.cc | 13 +- chromium/ui/events/event_rewriter_unittest.cc | 3 +- chromium/ui/events/event_unittest.cc | 216 +- .../ui/events/fuchsia/input_event_dispatcher.cc | 2 + chromium/ui/events/gesture_detection/bitset_32.h | 2 +- .../gesture_detection/gesture_configuration.cc | 5 - .../gesture_detection/gesture_configuration.h | 2 - .../gesture_configuration_aura.cc | 6 + .../events/gesture_detection/gesture_detector.cc | 50 +- .../ui/events/gesture_detection/gesture_detector.h | 10 +- .../gesture_detection/gesture_provider_unittest.cc | 28 + .../ui/events/gesture_detection/motion_event.cc | 5 + .../ui/events/gesture_detection/motion_event.h | 9 + chromium/ui/events/gesture_event_details.h | 2 +- chromium/ui/events/keycodes/dom/dom_key.h | 4 +- .../keycodes/dom/dom_keyboard_layout_map_mac.mm | 1 + .../keycodes/dom/dom_keyboard_layout_map_win.cc | 1 + .../events/keycodes/keyboard_code_conversion_x.cc | 211 +- .../ozone/device/udev/device_manager_udev.cc | 1 + .../ozone/evdev/event_converter_evdev_impl.cc | 1 + .../ui/events/ozone/evdev/event_device_info.cc | 3 + .../ozone/evdev/gamepad_event_converter_evdev.cc | 1 + .../events/ozone/evdev/input_controller_evdev.cc | 19 + .../ui/events/ozone/evdev/input_controller_evdev.h | 9 + .../ui/events/ozone/evdev/input_injector_evdev.cc | 1 + .../libgestures_glue/event_reader_libevdev_cros.cc | 1 + .../gesture_interpreter_libevdev_cros.cc | 1 + .../libgestures_glue/gesture_timer_provider.cc | 1 + .../evdev/stylus_button_event_converter_evdev.cc | 1 + .../ozone/evdev/tablet_event_converter_evdev.cc | 1 + .../neural_stylus_palm_detection_filter.cc | 73 +- .../neural_stylus_palm_detection_filter.h | 8 + .../neural_stylus_palm_detection_filter_model.h | 11 + ...neural_stylus_palm_detection_filter_unittest.cc | 39 +- .../touch_filter/palm_detection_filter_factory.cc | 15 + .../palm_detection_filter_factory_unittest.cc | 9 +- ...device_train_palm_detection_filter_inference.cc | 31150 ++++++++++--------- ...edevice_train_palm_detection_filter_inference.h | 4 +- .../onedevice_train_palm_detection_filter_model.cc | 1 + chromium/ui/events/ozone/events_ozone.cc | 11 +- chromium/ui/events/ozone/events_ozone.h | 3 +- chromium/ui/events/ozone/features.cc | 5 + chromium/ui/events/ozone/features.h | 9 + .../ui/events/ozone/gamepad/gamepad_observer.h | 1 - .../ozone/layout/keyboard_layout_engine_manager.h | 2 +- .../ui/events/platform/platform_event_source.cc | 3 +- .../ui/events/platform/x11/x11_event_source.cc | 265 +- chromium/ui/events/platform/x11/x11_event_source.h | 89 +- .../events/platform/x11/x11_event_watcher_glib.cc | 17 +- .../platform/x11/x11_hotplug_event_handler.cc | 45 +- chromium/ui/events/scoped_target_handler.cc | 2 +- chromium/ui/events/win/keyboard_hook_win_base.cc | 2 + chromium/ui/events/win/keyboard_hook_win_base.h | 2 +- chromium/ui/events/x/events_x_unittest.cc | 212 +- chromium/ui/events/x/events_x_utils.cc | 247 +- chromium/ui/events/x/events_x_utils.h | 54 +- chromium/ui/events/x/keyboard_hook_x11.cc | 6 +- chromium/ui/events/x/x11_event_translation.cc | 87 +- chromium/ui/events/x/x11_event_translation.h | 14 +- .../ui/events/x/x11_event_translation_unittest.cc | 43 +- chromium/ui/events/x/x11_window_event_manager.cc | 55 +- chromium/ui/events/x/x11_window_event_manager.h | 18 +- .../file_manager/background/js/BUILD.gn | 2 + .../file_manager/foreground/elements/BUILD.gn | 4 + .../file_manager/foreground/js/BUILD.gn | 44 +- .../file_manager/foreground/js/ui/BUILD.gn | 15 + .../ui/file_manager/file_manager/test/BUILD.gn | 1 - chromium/ui/file_manager/image_loader/BUILD.gn | 16 +- .../ui/file_manager/integration_tests/BUILD.gn | 2 +- .../integration_tests/file_manager/BUILD.gn | 213 +- chromium/ui/gfx/BUILD.gn | 3 +- chromium/ui/gfx/animation/animation.cc | 3 +- .../ui/gfx/animation/animation_delegate_notifier.h | 2 +- chromium/ui/gfx/break_list.h | 2 +- chromium/ui/gfx/codec/jpeg_codec.cc | 1 + chromium/ui/gfx/codec/png_codec.cc | 11 +- chromium/ui/gfx/codec/vector_wstream.h | 2 +- chromium/ui/gfx/color_palette.h | 2 +- chromium/ui/gfx/color_space.cc | 64 +- chromium/ui/gfx/color_space.h | 33 +- chromium/ui/gfx/color_space_unittest.cc | 101 +- chromium/ui/gfx/color_transform.cc | 33 +- chromium/ui/gfx/color_transform.h | 25 +- chromium/ui/gfx/color_transform_fuzzer.cc | 1 + chromium/ui/gfx/color_transform_unittest.cc | 71 +- chromium/ui/gfx/geometry/matrix3_f.h | 2 +- chromium/ui/gfx/geometry/mojom/geometry.mojom | 9 +- chromium/ui/gfx/geometry/quad_f.h | 2 +- chromium/ui/gfx/geometry/rect.h | 2 +- chromium/ui/gfx/gpu_fence.cc | 47 + chromium/ui/gfx/gpu_fence.h | 9 + chromium/ui/gfx/image/image_generic.cc | 1 + chromium/ui/gfx/image/image_util.cc | 10 +- chromium/ui/gfx/image/image_util_unittest.cc | 17 +- .../ui/gfx/linux/client_native_pixmap_dmabuf.cc | 34 +- chromium/ui/gfx/linux/drm_util_linux.cc | 9 - chromium/ui/gfx/linux/gbm_util.cc | 3 +- chromium/ui/gfx/mac/cocoa_scrollbar_painter.cc | 334 - chromium/ui/gfx/mac/cocoa_scrollbar_painter.h | 57 - chromium/ui/gfx/mac/display_icc_profiles.cc | 1 + chromium/ui/gfx/mojom/BUILD.gn | 40 +- chromium/ui/gfx/mojom/mojom_traits_unittest.cc | 9 + chromium/ui/gfx/mojom/presentation_feedback.mojom | 4 + .../gfx/mojom/presentation_feedback_mojom_traits.h | 20 +- chromium/ui/gfx/native_widget_types.h | 18 +- chromium/ui/gfx/nine_image_painter.h | 1 - chromium/ui/gfx/paint_throbber.cc | 87 +- chromium/ui/gfx/paint_throbber.h | 4 - chromium/ui/gfx/path_mac.mm | 3 + chromium/ui/gfx/path_mac_unittest.mm | 1 + chromium/ui/gfx/platform_font_ios.mm | 1 + chromium/ui/gfx/presentation_feedback.h | 30 +- chromium/ui/gfx/range/mojom/BUILD.gn | 1 + chromium/ui/gfx/render_text.cc | 202 +- chromium/ui/gfx/render_text.h | 106 +- chromium/ui/gfx/render_text_api_fuzzer.cc | 1 + chromium/ui/gfx/render_text_fuzzer.cc | 1 + chromium/ui/gfx/render_text_harfbuzz.cc | 17 +- chromium/ui/gfx/render_text_harfbuzz.h | 2 +- chromium/ui/gfx/render_text_test_api.h | 4 +- chromium/ui/gfx/render_text_unittest.cc | 187 +- chromium/ui/gfx/rrect_f.cc | 2 +- chromium/ui/gfx/selection_model.cc | 2 +- chromium/ui/gfx/swap_result.cc | 29 + chromium/ui/gfx/swap_result.h | 26 + chromium/ui/gfx/switches.cc | 4 + chromium/ui/gfx/switches.h | 2 +- chromium/ui/gfx/system_fonts_win.cc | 1 + chromium/ui/gfx/text_utils.cc | 36 + chromium/ui/gfx/text_utils.h | 74 + chromium/ui/gfx/text_utils_unittest.cc | 80 + chromium/ui/gfx/transform.cc | 27 +- chromium/ui/gfx/transform.h | 1 + chromium/ui/gfx/transform_unittest.cc | 41 + chromium/ui/gfx/win/hwnd_util.cc | 42 +- chromium/ui/gfx/win/hwnd_util.h | 6 +- chromium/ui/gfx/win/rendering_window_manager.cc | 1 + chromium/ui/gfx/win/scoped_set_map_mode.h | 2 +- chromium/ui/gfx/win/window_impl.cc | 6 +- chromium/ui/gfx/win/window_impl.h | 2 +- chromium/ui/gfx/x/BUILD.gn | 117 +- chromium/ui/gfx/x/connection.cc | 222 +- chromium/ui/gfx/x/connection.h | 100 +- chromium/ui/gfx/x/connection_unittest.cc | 108 + chromium/ui/gfx/x/event.cc | 103 + chromium/ui/gfx/x/event.h | 92 + chromium/ui/gfx/x/gen_xproto.py | 1124 +- chromium/ui/gfx/x/request_queue.cc | 29 - chromium/ui/gfx/x/request_queue.h | 51 - chromium/ui/gfx/x/x11.h | 21 +- chromium/ui/gfx/x/x11_atom_cache.cc | 151 +- chromium/ui/gfx/x/x11_atom_cache.h | 8 +- chromium/ui/gfx/x/x11_error_tracker.cc | 6 +- chromium/ui/gfx/x/x11_path.cc | 29 +- chromium/ui/gfx/x/x11_path.h | 8 +- chromium/ui/gfx/x/x11_types.cc | 6 +- chromium/ui/gfx/x/x11_types.h | 3 +- chromium/ui/gfx/x/xproto_internal.h | 104 +- chromium/ui/gfx/x/xproto_types.cc | 76 + chromium/ui/gfx/x/xproto_types.h | 138 +- chromium/ui/gfx/x/xproto_util.cc | 6 +- chromium/ui/gl/BUILD.gn | 5 + chromium/ui/gl/DEPS | 2 +- .../gl/android/android_surface_control_compat.cc | 21 +- .../ui/gl/android/android_surface_control_compat.h | 1 - chromium/ui/gl/angle_platform_impl.cc | 23 +- chromium/ui/gl/buffer_format_utils.cc | 1 + chromium/ui/gl/child_window_win.cc | 6 +- chromium/ui/gl/child_window_win.h | 5 +- chromium/ui/gl/dc_layer_tree.cc | 14 + .../ui/gl/direct_composition_child_surface_win.cc | 26 +- .../ui/gl/direct_composition_child_surface_win.h | 1 + chromium/ui/gl/direct_composition_surface_win.cc | 129 +- chromium/ui/gl/direct_composition_surface_win.h | 5 + chromium/ui/gl/egl_bindings_autogen_mock.cc | 30 + chromium/ui/gl/egl_bindings_autogen_mock.h | 5 + chromium/ui/gl/generate_bindings.py | 79 + chromium/ui/gl/gl_bindings.h | 12 + chromium/ui/gl/gl_bindings_api_autogen_egl.h | 3 + chromium/ui/gl/gl_bindings_api_autogen_gl.h | 19 + chromium/ui/gl/gl_bindings_autogen_egl.cc | 71 + chromium/ui/gl/gl_bindings_autogen_egl.h | 21 + chromium/ui/gl/gl_bindings_autogen_gl.cc | 305 + chromium/ui/gl/gl_bindings_autogen_gl.h | 65 + chromium/ui/gl/gl_bindings_autogen_mock.cc | 160 + chromium/ui/gl/gl_bindings_autogen_mock.h | 42 + chromium/ui/gl/gl_context.cc | 7 +- chromium/ui/gl/gl_context.h | 5 + chromium/ui/gl/gl_context_egl.cc | 12 + chromium/ui/gl/gl_context_egl.h | 1 + chromium/ui/gl/gl_context_glx.h | 1 + chromium/ui/gl/gl_context_glx_unittest.cc | 35 +- chromium/ui/gl/gl_features.cc | 2 +- .../ui/gl/gl_fence_android_native_fence_sync.cc | 36 +- .../ui/gl/gl_fence_android_native_fence_sync.h | 3 - chromium/ui/gl/gl_gl_api_implementation.cc | 4 +- chromium/ui/gl/gl_image_ahardwarebuffer.cc | 5 +- chromium/ui/gl/gl_image_io_surface_egl.mm | 4 +- chromium/ui/gl/gl_image_memory.cc | 7 +- chromium/ui/gl/gl_implementation_wrapper.h | 1 - chromium/ui/gl/gl_mock.h | 1 + chromium/ui/gl/gl_mock_autogen_egl.h | 3 + chromium/ui/gl/gl_mock_autogen_gl.h | 20 + chromium/ui/gl/gl_share_group.h | 1 - chromium/ui/gl/gl_stub_autogen_gl.cc | 4 + chromium/ui/gl/gl_stub_autogen_gl.h | 19 + chromium/ui/gl/gl_surface.h | 3 +- chromium/ui/gl/gl_surface_egl.cc | 55 + chromium/ui/gl/gl_surface_egl_surface_control.cc | 69 +- chromium/ui/gl/gl_surface_egl_surface_control.h | 19 + chromium/ui/gl/gl_surface_egl_x11.cc | 13 +- chromium/ui/gl/gl_surface_egl_x11.h | 5 +- chromium/ui/gl/gl_surface_egl_x11_gles2.cc | 53 +- chromium/ui/gl/gl_surface_egl_x11_gles2.h | 7 +- chromium/ui/gl/gl_surface_glx.cc | 150 +- chromium/ui/gl/gl_surface_glx.h | 5 +- chromium/ui/gl/gl_surface_glx_x11.cc | 5 +- chromium/ui/gl/gl_surface_glx_x11.h | 3 +- chromium/ui/gl/gl_surface_overlay.h | 3 + chromium/ui/gl/gl_surface_presentation_helper.cc | 1 + chromium/ui/gl/gl_switches.cc | 10 + chromium/ui/gl/gl_switches.h | 2 + chromium/ui/gl/gl_visual_picker_glx.cc | 4 +- chromium/ui/gl/init/BUILD.gn | 40 +- chromium/ui/gl/init/DEPS | 1 + chromium/ui/gl/init/create_gr_gl_interface.cc | 1 + chromium/ui/gl/init/gl_factory_linux_x11.cc | 163 + chromium/ui/gl/init/gl_factory_linux_x11.h | 98 + chromium/ui/gl/init/gl_factory_ozone.cc | 73 + chromium/ui/gl/init/gl_factory_x11.cc | 162 - chromium/ui/gl/init/gl_initializer_linux_x11.cc | 209 + chromium/ui/gl/init/gl_initializer_linux_x11.h | 38 + chromium/ui/gl/init/gl_initializer_mac.cc | 1 + chromium/ui/gl/init/gl_initializer_ozone.cc | 29 + chromium/ui/gl/init/gl_initializer_x11.cc | 209 - chromium/ui/gl/scoped_binders.cc | 14 +- chromium/ui/gl/scoped_cgl.cc | 3 + chromium/ui/gl/swap_chain_presenter.cc | 16 +- chromium/ui/gl/vsync_thread_win.cc | 43 +- chromium/ui/gl/vsync_thread_win.h | 2 + chromium/ui/gl/yuv_to_rgb_converter.cc | 3 +- chromium/ui/gl/yuv_to_rgb_converter.h | 2 +- chromium/ui/gtk/BUILD.gn | 10 +- chromium/ui/gtk/gtk_ui.cc | 6 +- chromium/ui/gtk/print_dialog_gtk.cc | 541 - chromium/ui/gtk/print_dialog_gtk.h | 92 - chromium/ui/gtk/printing/OWNERS | 3 + chromium/ui/gtk/printing/print_dialog_gtk.cc | 551 + chromium/ui/gtk/printing/print_dialog_gtk.h | 89 + chromium/ui/gtk/printing/printing_gtk_util.cc | 96 + chromium/ui/gtk/printing/printing_gtk_util.h | 27 + chromium/ui/gtk/printing_gtk_util.cc | 96 - chromium/ui/gtk/printing_gtk_util.h | 27 - chromium/ui/gtk/select_file_dialog_impl_kde.cc | 73 +- chromium/ui/gtk/x/gtk_event_loop_x11.cc | 47 +- chromium/ui/gtk/x/gtk_ui_delegate_x11.cc | 9 +- chromium/ui/latency/average_lag_tracker.cc | 153 +- chromium/ui/latency/average_lag_tracker.h | 6 + chromium/ui/latency/latency_info.cc | 1 + chromium/ui/latency/latency_tracker.cc | 14 - chromium/ui/latency/latency_tracker.h | 11 +- chromium/ui/latency/mojom/BUILD.gn | 22 +- .../ui/latency/mojom/latency_info_mojom_traits.h | 10 +- .../login/account_picker/chromeos_user_pod_row.js | 5 +- chromium/ui/login/display_manager.js | 199 +- chromium/ui/login/display_manager_types.js | 7 - chromium/ui/login/screen_container.css | 6 +- chromium/ui/message_center/notification_list.cc | 10 +- .../public/cpp/message_center_constants.h | 3 - .../ui/message_center/public/cpp/notification.h | 17 + .../vector_icons/vector_icons.cc.template | 1 - .../views/message_popup_collection.cc | 23 +- .../views/message_popup_collection.h | 5 + .../views/message_popup_collection_unittest.cc | 42 + chromium/ui/message_center/views/message_view.h | 4 +- .../views/notification_header_view.cc | 42 +- .../views/notification_header_view.h | 11 +- .../views/notification_header_view_unittest.cc | 4 +- .../message_center/views/notification_view_md.cc | 27 +- .../ui/message_center/views/notification_view_md.h | 2 +- .../views/notification_view_md_unittest.cc | 110 +- chromium/ui/native_theme/common_theme.cc | 6 + chromium/ui/native_theme/native_theme.cc | 21 +- chromium/ui/native_theme/native_theme.h | 52 +- chromium/ui/native_theme/native_theme_aura.cc | 42 +- chromium/ui/native_theme/native_theme_base.cc | 79 +- chromium/ui/native_theme/native_theme_base.h | 18 +- chromium/ui/native_theme/native_theme_color_id.h | 4 +- chromium/ui/native_theme/native_theme_mac.h | 60 + chromium/ui/native_theme/native_theme_mac.mm | 296 + .../ui/native_theme/native_theme_mac_unittest.cc | 27 + chromium/ui/native_theme/native_theme_win.cc | 17 +- .../ui/native_theme/native_theme_win_unittest.cc | 108 +- chromium/ui/native_theme/themed_vector_icon.cc | 7 +- chromium/ui/native_theme/themed_vector_icon.h | 7 +- chromium/ui/ozone/BUILD.gn | 9 +- chromium/ui/ozone/demo/gl_renderer.cc | 14 +- chromium/ui/ozone/demo/gl_renderer.h | 4 +- chromium/ui/ozone/demo/skia/skia_gl_renderer.cc | 17 +- chromium/ui/ozone/demo/skia/skia_gl_renderer.h | 4 +- .../ui/ozone/demo/skia/skia_renderer_factory.h | 1 + .../demo/skia/skia_surfaceless_gl_renderer.cc | 9 +- .../ozone/demo/skia/skia_surfaceless_gl_renderer.h | 3 +- chromium/ui/ozone/demo/surfaceless_gl_renderer.cc | 11 +- chromium/ui/ozone/demo/surfaceless_gl_renderer.h | 3 +- chromium/ui/ozone/demo/vulkan_renderer.cc | 1 + chromium/ui/ozone/ozone.gni | 7 + chromium/ui/ozone/platform/cast/BUILD.gn | 1 + .../ui/ozone/platform/cast/ozone_platform_cast.cc | 10 +- chromium/ui/ozone/platform/drm/BUILD.gn | 3 + chromium/ui/ozone/platform/drm/common/drm_util.cc | 3 +- chromium/ui/ozone/platform/drm/gpu/drm_device.h | 1 + .../ozone/platform/drm/gpu/drm_device_manager.cc | 1 + chromium/ui/ozone/platform/drm/gpu/drm_display.cc | 70 +- chromium/ui/ozone/platform/drm/gpu/drm_display.h | 11 +- .../ozone/platform/drm/gpu/drm_display_unittest.cc | 192 + .../ui/ozone/platform/drm/gpu/drm_framebuffer.cc | 1 + .../platform/drm/gpu/drm_gpu_display_manager.cc | 12 + .../platform/drm/gpu/drm_gpu_display_manager.h | 6 + chromium/ui/ozone/platform/drm/gpu/drm_gpu_util.cc | 1 + chromium/ui/ozone/platform/drm/gpu/drm_thread.cc | 46 +- chromium/ui/ozone/platform/drm/gpu/drm_thread.h | 17 +- .../ui/ozone/platform/drm/gpu/drm_window_proxy.cc | 7 + .../ui/ozone/platform/drm/gpu/drm_window_proxy.h | 6 + .../ui/ozone/platform/drm/gpu/gbm_surfaceless.cc | 33 +- .../ui/ozone/platform/drm/gpu/gbm_surfaceless.h | 9 + .../platform/drm/gpu/hardware_display_plane.cc | 9 +- .../drm/gpu/hardware_display_plane_atomic.cc | 1 + .../drm/gpu/hardware_display_plane_manager.h | 2 +- .../gpu/hardware_display_plane_manager_atomic.cc | 1 + .../gpu/hardware_display_plane_manager_legacy.cc | 1 + .../ui/ozone/platform/drm/gpu/screen_manager.cc | 1 + .../platform/drm/gpu/vulkan_implementation_gbm.cc | 1 + .../ozone/platform/drm/host/drm_device_handle.cc | 1 + .../ui/ozone/platform/drm/host/drm_display_host.cc | 12 +- .../ozone/platform/drm/host/gpu_thread_adapter.h | 11 +- .../ui/ozone/platform/drm/host/host_drm_device.cc | 27 +- .../ui/ozone/platform/drm/host/host_drm_device.h | 7 +- .../ui/ozone/platform/drm/ozone_platform_gbm.cc | 10 +- chromium/ui/ozone/platform/headless/BUILD.gn | 2 + .../platform/headless/ozone_platform_headless.cc | 10 +- chromium/ui/ozone/platform/scenic/BUILD.gn | 2 + .../ozone/platform/scenic/ozone_platform_scenic.cc | 10 +- .../ui/ozone/platform/scenic/scenic_surface.cc | 17 +- chromium/ui/ozone/platform/scenic/scenic_surface.h | 6 +- .../platform/scenic/scenic_surface_factory.cc | 7 +- chromium/ui/ozone/platform/scenic/scenic_window.cc | 26 +- chromium/ui/ozone/platform/scenic/scenic_window.h | 4 - .../ozone/platform/scenic/scenic_window_manager.cc | 4 +- .../platform/scenic/sysmem_buffer_collection.cc | 58 +- .../platform/scenic/sysmem_buffer_collection.h | 15 +- .../ozone/platform/scenic/sysmem_buffer_manager.cc | 8 +- .../ozone/platform/scenic/sysmem_buffer_manager.h | 5 +- .../scenic/vulkan_implementation_scenic.cc | 14 +- .../platform/scenic/vulkan_implementation_scenic.h | 4 +- chromium/ui/ozone/platform/wayland/BUILD.gn | 21 +- chromium/ui/ozone/platform/wayland/DEPS | 2 +- chromium/ui/ozone/platform/wayland/OWNERS | 1 + .../ui/ozone/platform/wayland/common/data_util.cc | 218 + .../ui/ozone/platform/wayland/common/data_util.h | 40 + .../platform/wayland/common/wayland_object.cc | 11 + .../ozone/platform/wayland/common/wayland_object.h | 14 + .../platform/wayland/gpu/drm_render_node_handle.cc | 2 + .../wayland/gpu/gbm_surfaceless_wayland.cc | 68 +- .../platform/wayland/gpu/gbm_surfaceless_wayland.h | 17 +- .../wayland/gpu/gl_surface_egl_readback_wayland.cc | 3 +- .../gpu/wayland_surface_factory_unittest.cc | 4 +- .../wayland/host/gtk_primary_selection_device.cc | 9 + .../wayland/host/gtk_primary_selection_device.h | 3 + .../host/gtk_primary_selection_device_manager.cc | 31 +- .../host/gtk_primary_selection_device_manager.h | 26 +- .../wayland/host/gtk_primary_selection_source.cc | 76 - .../wayland/host/gtk_primary_selection_source.h | 46 - .../platform/wayland/host/shell_object_factory.cc | 3 +- .../platform/wayland/host/shell_popup_wrapper.cc | 3 + .../wayland/host/wayland_buffer_manager_host.cc | 192 +- .../wayland/host/wayland_buffer_manager_host.h | 1 + .../platform/wayland/host/wayland_clipboard.cc | 221 +- .../platform/wayland/host/wayland_clipboard.h | 54 +- .../platform/wayland/host/wayland_connection.cc | 112 +- .../platform/wayland/host/wayland_connection.h | 83 +- .../ozone/platform/wayland/host/wayland_cursor.cc | 1 + .../platform/wayland/host/wayland_data_device.cc | 478 +- .../platform/wayland/host/wayland_data_device.h | 139 +- .../wayland/host/wayland_data_device_base.cc | 3 +- .../wayland/host/wayland_data_device_base.h | 1 + .../wayland/host/wayland_data_device_manager.cc | 22 +- .../wayland/host/wayland_data_device_manager.h | 20 +- .../wayland/host/wayland_data_device_unittest.cc | 293 - .../wayland/host/wayland_data_drag_controller.cc | 355 + .../wayland/host/wayland_data_drag_controller.h | 136 + .../host/wayland_data_drag_controller_unittest.cc | 406 + .../platform/wayland/host/wayland_data_source.cc | 226 +- .../platform/wayland/host/wayland_data_source.h | 126 +- .../wayland/host/wayland_data_source_base.cc | 21 - .../wayland/host/wayland_data_source_base.h | 38 - .../ui/ozone/platform/wayland/host/wayland_drm.cc | 1 + .../platform/wayland/host/wayland_event_source.cc | 54 +- .../platform/wayland/host/wayland_event_source.h | 22 +- .../platform/wayland/host/wayland_keyboard.cc | 26 +- .../ozone/platform/wayland/host/wayland_keyboard.h | 21 +- .../ozone/platform/wayland/host/wayland_pointer.cc | 11 +- .../ozone/platform/wayland/host/wayland_pointer.h | 1 - .../wayland/host/wayland_pointer_unittest.cc | 2 +- .../ozone/platform/wayland/host/wayland_popup.cc | 4 +- .../platform/wayland/host/wayland_shm_buffer.cc | 1 + .../platform/wayland/host/wayland_subsurface.cc | 10 +- .../ozone/platform/wayland/host/wayland_surface.cc | 347 +- .../ozone/platform/wayland/host/wayland_surface.h | 129 +- .../wayland/host/wayland_toplevel_window.cc | 368 + .../wayland/host/wayland_toplevel_window.h | 131 + .../ozone/platform/wayland/host/wayland_window.cc | 63 +- .../ozone/platform/wayland/host/wayland_window.h | 23 +- .../wayland/host/wayland_window_drag_controller.cc | 325 + .../wayland/host/wayland_window_drag_controller.h | 126 + .../wayland_window_drag_controller_unittest.cc | 519 + .../wayland/host/wayland_window_factory.cc | 6 +- .../wayland/host/wayland_window_manager.cc | 5 + .../platform/wayland/host/wayland_window_manager.h | 4 + .../wayland/host/wayland_window_observer.cc | 2 + .../wayland/host/wayland_window_observer.h | 3 + .../wayland/host/wayland_window_unittest.cc | 204 +- .../wayland/host/xdg_popup_wrapper_impl.cc | 157 +- .../platform/wayland/host/xdg_popup_wrapper_impl.h | 6 + .../wayland/host/xdg_surface_wrapper_impl.cc | 2 + .../platform/wayland/ozone_platform_wayland.cc | 7 +- .../platform/wayland/test/mock_wp_presentation.cc | 16 + .../platform/wayland/test/mock_wp_presentation.h | 5 +- .../ozone/platform/wayland/test/scoped_wl_array.cc | 41 + .../ozone/platform/wayland/test/scoped_wl_array.h | 31 + .../platform/wayland/test/test_data_device.cc | 21 +- .../ozone/platform/wayland/test/test_data_device.h | 15 + .../platform/wayland/test/test_data_source.cc | 18 +- .../ozone/platform/wayland/test/test_data_source.h | 10 + .../ozone/platform/wayland/test/test_subsurface.cc | 2 +- .../ui/ozone/platform/wayland/test/wayland_test.cc | 35 + .../ui/ozone/platform/wayland/test/wayland_test.h | 13 + .../wayland/wayland_buffer_manager_unittest.cc | 322 +- chromium/ui/ozone/platform/windows/BUILD.gn | 2 + .../platform/windows/ozone_platform_windows.cc | 10 +- chromium/ui/ozone/platform/x11/BUILD.gn | 14 +- .../ui/ozone/platform/x11/ozone_platform_x11.cc | 47 +- .../ui/ozone/platform/x11/x11_clipboard_ozone.cc | 229 +- .../ui/ozone/platform/x11/x11_clipboard_ozone.h | 39 +- .../ozone/platform/x11/x11_cursor_factory_ozone.cc | 118 - .../ozone/platform/x11/x11_cursor_factory_ozone.h | 55 - .../x11/x11_cursor_factory_ozone_unittest.cc | 31 - chromium/ui/ozone/platform/x11/x11_cursor_ozone.cc | 56 - chromium/ui/ozone/platform/x11/x11_cursor_ozone.h | 55 - .../x11/x11_os_exchange_data_provider_ozone.cc | 14 +- .../x11/x11_os_exchange_data_provider_ozone.h | 5 +- chromium/ui/ozone/platform/x11/x11_screen_ozone.cc | 10 +- chromium/ui/ozone/platform/x11/x11_screen_ozone.h | 3 +- .../platform/x11/x11_screen_ozone_unittest.cc | 6 +- .../ui/ozone/platform/x11/x11_surface_factory.cc | 3 +- chromium/ui/ozone/platform/x11/x11_window_ozone.cc | 158 - chromium/ui/ozone/platform/x11/x11_window_ozone.h | 66 - .../platform/x11/x11_window_ozone_chromeos.cc | 28 - .../ozone/platform/x11/x11_window_ozone_chromeos.h | 33 - .../platform/x11/x11_window_ozone_unittest.cc | 27 +- chromium/ui/ozone/public/cursor_factory_ozone.cc | 63 - chromium/ui/ozone/public/cursor_factory_ozone.h | 61 - chromium/ui/ozone/public/input_controller.cc | 2 + chromium/ui/ozone/public/input_controller.h | 2 + chromium/ui/ozone/public/mojom/drm_device.mojom | 11 +- chromium/ui/ozone/public/ozone_platform.cc | 17 +- chromium/ui/ozone/public/ozone_platform.h | 34 +- chromium/ui/ozone/public/platform_clipboard.h | 1 + chromium/ui/ozone/public/platform_screen.cc | 2 +- chromium/ui/ozone/public/platform_window_surface.h | 16 +- chromium/ui/platform_window/BUILD.gn | 4 +- .../fuchsia/initialize_presenter_api_view.cc | 15 +- .../platform_window_handler/wm_drag_handler.cc | 2 + .../platform_window_handler/wm_drag_handler.h | 22 +- chromium/ui/platform_window/x11/BUILD.gn | 35 + .../ui/platform_window/x11/atk_event_conversion.cc | 12 +- .../ui/platform_window/x11/atk_event_conversion.h | 3 +- .../x11/x11_topmost_window_finder.cc | 25 +- .../x11/x11_topmost_window_finder.h | 11 +- chromium/ui/platform_window/x11/x11_window.cc | 224 +- chromium/ui/platform_window/x11/x11_window.h | 71 +- chromium/ui/shell_dialogs/BUILD.gn | 9 + .../ui/shell_dialogs/select_file_dialog_android.cc | 8 +- .../ui/shell_dialogs/select_file_dialog_lacros.cc | 60 + .../ui/shell_dialogs/select_file_dialog_lacros.h | 60 + .../ui/shell_dialogs/select_file_dialog_mac.mm | 2 +- .../ui/shell_dialogs/select_file_dialog_win.cc | 9 +- chromium/ui/snapshot/snapshot_aura.cc | 3 + chromium/ui/strings/translations/ui_strings_af.xtb | 8 +- chromium/ui/strings/translations/ui_strings_am.xtb | 8 +- chromium/ui/strings/translations/ui_strings_ar.xtb | 8 +- chromium/ui/strings/translations/ui_strings_as.xtb | 8 +- chromium/ui/strings/translations/ui_strings_az.xtb | 8 +- chromium/ui/strings/translations/ui_strings_be.xtb | 8 +- chromium/ui/strings/translations/ui_strings_bg.xtb | 8 +- chromium/ui/strings/translations/ui_strings_bn.xtb | 8 +- chromium/ui/strings/translations/ui_strings_bs.xtb | 8 +- chromium/ui/strings/translations/ui_strings_ca.xtb | 8 +- chromium/ui/strings/translations/ui_strings_cs.xtb | 8 +- chromium/ui/strings/translations/ui_strings_da.xtb | 8 +- chromium/ui/strings/translations/ui_strings_de.xtb | 8 +- chromium/ui/strings/translations/ui_strings_el.xtb | 8 +- .../ui/strings/translations/ui_strings_en-GB.xtb | 8 +- .../ui/strings/translations/ui_strings_es-419.xtb | 8 +- chromium/ui/strings/translations/ui_strings_es.xtb | 8 +- chromium/ui/strings/translations/ui_strings_et.xtb | 8 +- chromium/ui/strings/translations/ui_strings_eu.xtb | 8 +- chromium/ui/strings/translations/ui_strings_fa.xtb | 8 +- chromium/ui/strings/translations/ui_strings_fi.xtb | 8 +- .../ui/strings/translations/ui_strings_fil.xtb | 8 +- .../ui/strings/translations/ui_strings_fr-CA.xtb | 8 +- chromium/ui/strings/translations/ui_strings_fr.xtb | 8 +- chromium/ui/strings/translations/ui_strings_gl.xtb | 8 +- chromium/ui/strings/translations/ui_strings_gu.xtb | 8 +- chromium/ui/strings/translations/ui_strings_hi.xtb | 8 +- chromium/ui/strings/translations/ui_strings_hr.xtb | 8 +- chromium/ui/strings/translations/ui_strings_hu.xtb | 8 +- chromium/ui/strings/translations/ui_strings_hy.xtb | 8 +- chromium/ui/strings/translations/ui_strings_id.xtb | 8 +- chromium/ui/strings/translations/ui_strings_is.xtb | 8 +- chromium/ui/strings/translations/ui_strings_it.xtb | 8 +- chromium/ui/strings/translations/ui_strings_iw.xtb | 8 +- chromium/ui/strings/translations/ui_strings_ja.xtb | 8 +- chromium/ui/strings/translations/ui_strings_ka.xtb | 8 +- chromium/ui/strings/translations/ui_strings_kk.xtb | 8 +- chromium/ui/strings/translations/ui_strings_km.xtb | 8 +- chromium/ui/strings/translations/ui_strings_kn.xtb | 8 +- chromium/ui/strings/translations/ui_strings_ko.xtb | 8 +- chromium/ui/strings/translations/ui_strings_ky.xtb | 8 +- chromium/ui/strings/translations/ui_strings_lo.xtb | 8 +- chromium/ui/strings/translations/ui_strings_lt.xtb | 8 +- chromium/ui/strings/translations/ui_strings_lv.xtb | 8 +- chromium/ui/strings/translations/ui_strings_mk.xtb | 8 +- chromium/ui/strings/translations/ui_strings_ml.xtb | 8 +- chromium/ui/strings/translations/ui_strings_mn.xtb | 8 +- chromium/ui/strings/translations/ui_strings_mr.xtb | 8 +- chromium/ui/strings/translations/ui_strings_ms.xtb | 8 +- chromium/ui/strings/translations/ui_strings_my.xtb | 8 +- chromium/ui/strings/translations/ui_strings_ne.xtb | 8 +- chromium/ui/strings/translations/ui_strings_nl.xtb | 8 +- chromium/ui/strings/translations/ui_strings_no.xtb | 8 +- chromium/ui/strings/translations/ui_strings_or.xtb | 8 +- chromium/ui/strings/translations/ui_strings_pa.xtb | 8 +- chromium/ui/strings/translations/ui_strings_pl.xtb | 8 +- .../ui/strings/translations/ui_strings_pt-BR.xtb | 8 +- .../ui/strings/translations/ui_strings_pt-PT.xtb | 8 +- chromium/ui/strings/translations/ui_strings_ro.xtb | 8 +- chromium/ui/strings/translations/ui_strings_ru.xtb | 8 +- chromium/ui/strings/translations/ui_strings_si.xtb | 8 +- chromium/ui/strings/translations/ui_strings_sk.xtb | 8 +- chromium/ui/strings/translations/ui_strings_sl.xtb | 8 +- chromium/ui/strings/translations/ui_strings_sq.xtb | 8 +- .../ui/strings/translations/ui_strings_sr-Latn.xtb | 8 +- chromium/ui/strings/translations/ui_strings_sr.xtb | 8 +- chromium/ui/strings/translations/ui_strings_sv.xtb | 8 +- chromium/ui/strings/translations/ui_strings_sw.xtb | 8 +- chromium/ui/strings/translations/ui_strings_ta.xtb | 8 +- chromium/ui/strings/translations/ui_strings_te.xtb | 8 +- chromium/ui/strings/translations/ui_strings_th.xtb | 8 +- chromium/ui/strings/translations/ui_strings_tr.xtb | 8 +- chromium/ui/strings/translations/ui_strings_uk.xtb | 8 +- chromium/ui/strings/translations/ui_strings_ur.xtb | 8 +- chromium/ui/strings/translations/ui_strings_uz.xtb | 8 +- chromium/ui/strings/translations/ui_strings_vi.xtb | 8 +- .../ui/strings/translations/ui_strings_zh-CN.xtb | 8 +- .../ui/strings/translations/ui_strings_zh-HK.xtb | 8 +- .../ui/strings/translations/ui_strings_zh-TW.xtb | 8 +- chromium/ui/strings/translations/ui_strings_zu.xtb | 8 +- chromium/ui/strings/ui_strings.grd | 22 +- .../IDS_APP_LIST_MANAGE_SETTINGS.png.sha1 | 1 + ...EARCH_BOX_ACCESSIBILITY_NAME_CLAMSHELL.png.sha1 | 1 + ...T_SEARCH_BOX_ACCESSIBILITY_NAME_TABLET.png.sha1 | 1 + .../IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER.png.sha1 | 1 + .../IDS_APP_LIST_SUGGESTED_CONTENT_INFO.png.sha1 | 1 + .../IDS_MENU_ITEM_NEW_BADGE.png.sha1 | 1 + chromium/ui/touch_selection/touch_handle.h | 1 - chromium/ui/views/BUILD.gn | 31 +- .../accessibility/ax_tree_source_views_unittest.cc | 2 +- chromium/ui/views/accessibility/ax_virtual_view.cc | 14 +- chromium/ui/views/accessibility/ax_virtual_view.h | 5 + .../accessibility/ax_virtual_view_unittest.cc | 13 +- .../views/accessibility/ax_widget_obj_wrapper.cc | 9 + .../ui/views/accessibility/ax_widget_obj_wrapper.h | 1 + .../views/accessibility/ax_window_obj_wrapper.cc | 28 + .../ui/views/accessibility/ax_window_obj_wrapper.h | 10 +- .../ui/views/accessibility/view_accessibility.cc | 25 +- .../ui/views/accessibility/view_accessibility.h | 15 +- .../view_ax_platform_node_delegate.cc | 96 +- .../accessibility/view_ax_platform_node_delegate.h | 13 +- ...ax_platform_node_delegate_auralinux_unittest.cc | 42 +- .../view_ax_platform_node_delegate_win_unittest.cc | 16 +- .../ui/views/animation/animation_delegate_views.cc | 22 +- .../ui/views/animation/animation_delegate_views.h | 2 +- chromium/ui/views/animation/bounds_animator.cc | 18 +- .../ui/views/animation/bounds_animator_unittest.cc | 148 +- .../views/animation/compositor_animation_runner.cc | 1 + .../views/animation/compositor_animation_runner.h | 8 +- .../installable_ink_drop_painter_unittest.cc | 87 + .../animation/installable_ink_drop_unittest.cc | 69 +- .../ui/views/bubble/bubble_dialog_delegate_view.cc | 313 +- .../ui/views/bubble/bubble_dialog_delegate_view.h | 436 +- .../bubble/bubble_dialog_delegate_view_unittest.cc | 75 +- chromium/ui/views/bubble/bubble_frame_view.cc | 79 +- chromium/ui/views/bubble/bubble_frame_view.h | 17 +- .../ui/views/bubble/bubble_frame_view_unittest.cc | 28 +- chromium/ui/views/controls/button/button.cc | 9 +- chromium/ui/views/controls/button/button.h | 4 +- .../ui/views/controls/button/button_unittest.cc | 34 +- .../ui/views/controls/button/checkbox_unittest.cc | 4 +- .../views/controls/button/image_button_factory.cc | 14 +- .../views/controls/button/image_button_factory.h | 6 +- .../button/image_button_factory_unittest.cc | 10 +- chromium/ui/views/controls/button/label_button.cc | 39 +- .../controls/button/label_button_label_unittest.cc | 26 +- .../views/controls/button/label_button_unittest.cc | 23 +- .../ui/views/controls/button/md_text_button.cc | 14 +- chromium/ui/views/controls/button/md_text_button.h | 7 + .../controls/button/md_text_button_unittest.cc | 25 + .../views/controls/button/radio_button_unittest.cc | 3 +- chromium/ui/views/controls/combobox/combobox.cc | 97 +- chromium/ui/views/controls/combobox/combobox.h | 4 +- .../views/controls/combobox/combobox_unittest.cc | 82 +- .../editable_combobox/editable_combobox.cc | 78 +- .../controls/editable_combobox/editable_combobox.h | 18 +- chromium/ui/views/controls/focus_ring.cc | 33 +- chromium/ui/views/controls/focus_ring.h | 32 +- chromium/ui/views/controls/label.cc | 25 +- chromium/ui/views/controls/label.h | 14 +- chromium/ui/views/controls/label_unittest.cc | 5 + chromium/ui/views/controls/menu/menu_controller.cc | 33 +- chromium/ui/views/controls/menu/menu_controller.h | 10 +- .../controls/menu/menu_controller_unittest.cc | 21 + chromium/ui/views/controls/menu/menu_delegate.h | 1 - chromium/ui/views/controls/menu/menu_host.cc | 1 + chromium/ui/views/controls/menu/menu_item_view.cc | 161 +- chromium/ui/views/controls/menu/menu_item_view.h | 32 +- .../views/controls/menu/menu_item_view_unittest.cc | 33 +- .../ui/views/controls/menu/menu_model_adapter.cc | 17 +- .../controls/menu/menu_model_adapter_unittest.cc | 22 + chromium/ui/views/controls/menu/submenu_view.cc | 33 +- chromium/ui/views/controls/prefix_selector.cc | 9 + chromium/ui/views/controls/prefix_selector.h | 5 + chromium/ui/views/controls/scroll_view.h | 2 +- .../ui/views/controls/scrollbar/cocoa_scroll_bar.h | 3 +- .../views/controls/scrollbar/cocoa_scroll_bar.mm | 48 +- .../ui/views/controls/tabbed_pane/tabbed_pane.cc | 15 +- .../ui/views/controls/tabbed_pane/tabbed_pane.h | 2 - .../controls/tabbed_pane/tabbed_pane_unittest.cc | 2 +- chromium/ui/views/controls/table/table_view.cc | 2 + chromium/ui/views/controls/table/table_view.h | 3 +- chromium/ui/views/controls/textfield/textfield.cc | 34 +- chromium/ui/views/controls/textfield/textfield.h | 13 +- .../views/controls/textfield/textfield_test_api.cc | 7 - .../views/controls/textfield/textfield_test_api.h | 10 +- .../views/controls/textfield/textfield_unittest.cc | 77 +- chromium/ui/views/controls/tree/tree_view.cc | 341 +- chromium/ui/views/controls/tree/tree_view.h | 41 + .../ui/views/controls/tree/tree_view_unittest.cc | 273 +- .../controls/views_text_services_context_menu.cc | 28 - .../controls/views_text_services_context_menu.h | 21 +- .../views_text_services_context_menu_base.cc | 29 +- .../views_text_services_context_menu_base.h | 27 +- .../views_text_services_context_menu_mac.mm | 187 +- chromium/ui/views/controls/webview/webview.cc | 8 - chromium/ui/views/controls/webview/webview.h | 2 - .../ui/views/controls/webview/webview_unittest.cc | 4 +- chromium/ui/views/corewm/tooltip_aura.cc | 107 +- chromium/ui/views/corewm/tooltip_aura.h | 12 +- chromium/ui/views/corewm/tooltip_controller.cc | 25 +- chromium/ui/views/corewm/tooltip_controller.h | 4 + .../views/corewm/tooltip_controller_test_helper.h | 1 - .../ui/views/corewm/tooltip_controller_unittest.cc | 7 +- chromium/ui/views/examples/combobox_example.cc | 2 +- .../ui/views/examples/example_combobox_model.cc | 2 +- .../ui/views/examples/example_combobox_model.h | 2 +- chromium/ui/views/examples/examples_main_proc.cc | 1 - .../examples/examples_skia_gold_pixel_diff.cc | 4 +- .../views/examples/examples_skia_gold_pixel_diff.h | 2 +- chromium/ui/views/examples/examples_window.cc | 7 +- chromium/ui/views/focus/focus_manager.cc | 38 +- chromium/ui/views/focus/focus_manager.h | 3 - chromium/ui/views/focus/focus_manager_unittest.cc | 53 +- chromium/ui/views/focus/focus_search.cc | 7 +- .../ui/views/focus/focus_traversal_unittest.cc | 2 +- chromium/ui/views/layout/grid_layout.h | 2 +- chromium/ui/views/linux_ui/linux_ui.cc | 1 - chromium/ui/views/linux_ui/linux_ui.h | 4 +- chromium/ui/views/native_cursor_mac.mm | 2 + .../touchui/touch_selection_controller_impl.cc | 134 +- .../touchui/touch_selection_controller_impl.h | 20 +- .../touch_selection_controller_impl_unittest.cc | 2 +- .../ui/views/touchui/touch_selection_menu_views.cc | 19 +- .../ui/views/touchui/touch_selection_menu_views.h | 4 +- .../ui/views/vector_icons/vector_icons.cc.template | 1 - chromium/ui/views/view.cc | 55 +- chromium/ui/views/view.h | 6 +- chromium/ui/views/view_class_properties.cc | 4 +- chromium/ui/views/view_class_properties.h | 6 +- chromium/ui/views/view_model.h | 2 +- chromium/ui/views/view_targeter_unittest.cc | 25 +- chromium/ui/views/view_unittest.cc | 10 + chromium/ui/views/views_features.cc | 5 + chromium/ui/views/views_features.h | 1 + .../views/widget/ax_native_widget_mac_unittest.mm | 2 +- .../desktop_drag_drop_client_aurax11.cc | 61 +- .../desktop_drag_drop_client_aurax11.h | 10 +- .../desktop_drag_drop_client_aurax11_unittest.cc | 468 +- .../desktop_aura/desktop_drag_drop_client_ozone.cc | 313 +- .../desktop_aura/desktop_drag_drop_client_ozone.h | 86 +- .../desktop_drag_drop_client_ozone_unittest.cc | 77 +- .../desktop_aura/desktop_drag_drop_client_win.cc | 51 +- .../desktop_aura/desktop_drag_drop_client_win.h | 10 +- .../widget/desktop_aura/desktop_drop_target_win.cc | 11 +- .../ui/views/widget/desktop_aura/desktop_screen.cc | 2 +- .../widget/desktop_aura/desktop_screen_linux.cc | 35 + .../widget/desktop_aura/desktop_screen_ozone.cc | 6 + .../widget/desktop_aura/desktop_screen_win.cc | 4 +- .../views/widget/desktop_aura/desktop_screen_win.h | 2 + .../widget/desktop_aura/desktop_screen_x11.cc | 34 +- .../views/widget/desktop_aura/desktop_screen_x11.h | 9 +- .../desktop_aura/desktop_window_tree_host_linux.cc | 17 - .../desktop_aura/desktop_window_tree_host_linux.h | 8 +- .../desktop_window_tree_host_linux_unittest.cc | 228 + .../desktop_window_tree_host_platform_unittest.cc | 64 + .../desktop_aura/desktop_window_tree_host_win.cc | 26 +- .../desktop_aura/desktop_window_tree_host_win.h | 8 + .../desktop_aura/desktop_window_tree_host_x11.cc | 16 +- .../desktop_aura/desktop_window_tree_host_x11.h | 5 +- ...ktop_window_tree_host_x11_interactive_uitest.cc | 52 +- .../desktop_window_tree_host_x11_unittest.cc | 675 - .../desktop_aura/x11_drag_drop_client_unittest.cc | 827 + ...x11_topmost_window_finder_interactive_uitest.cc | 217 +- .../ui/views/widget/native_widget_aura_unittest.cc | 21 +- chromium/ui/views/widget/root_view_unittest.cc | 28 +- chromium/ui/views/widget/unique_widget_ptr.cc | 97 + chromium/ui/views/widget/unique_widget_ptr.h | 43 + .../ui/views/widget/unique_widget_ptr_unittest.cc | 133 + chromium/ui/views/widget/widget.cc | 24 +- chromium/ui/views/widget/widget_delegate.cc | 47 +- chromium/ui/views/widget/widget_delegate.h | 68 +- .../ui/views/widget/widget_deletion_observer.cc | 1 + chromium/ui/views/widget/widget_hwnd_utils.cc | 2 + .../ui/views/widget/widget_interactive_uitest.cc | 30 +- .../ui/views/widget/window_reorderer_unittest.cc | 12 +- chromium/ui/views/win/hwnd_message_handler.cc | 83 +- chromium/ui/views/win/hwnd_message_handler.h | 26 +- .../ui/views/window/custom_frame_view_unittest.cc | 53 +- chromium/ui/views/window/dialog_delegate.cc | 7 + chromium/ui/views/window/dialog_delegate.h | 20 + .../ui/views/window/dialog_delegate_unittest.cc | 19 + .../window/vector_icons/vector_icons.cc.template | 1 - ...views_content_client_main_parts_desktop_aura.cc | 2 +- chromium/ui/webui/PLATFORM_OWNERS | 2 +- chromium/ui/webui/mojo_web_ui_controller.h | 8 +- .../certificate_manager/ca_trust_edit_dialog.js | 11 +- .../certificate_delete_confirmation_dialog.js | 11 +- .../certificate_manager/certificate_entry.js | 9 +- .../certificate_manager/certificate_list.js | 9 +- .../certificate_manager/certificate_manager.js | 15 +- .../certificate_password_decryption_dialog.js | 9 +- .../certificate_password_encryption_dialog.js | 11 +- .../certificate_manager/certificate_shared_css.js | 2 +- .../certificate_manager/certificate_subentry.js | 15 +- .../certificates_browser_proxy.js | 2 +- .../certificates_error_dialog.js | 9 +- .../resources/cr_components/chromeos/BUILD.gn | 30 +- .../cr_components/chromeos/bluetooth/BUILD.gn | 68 + .../chromeos/bluetooth/bluetooth_dialog.html | 156 + .../chromeos/bluetooth/bluetooth_dialog.js | 623 + .../cr_components/chromeos/bluetooth_dialog.html | 155 - .../cr_components/chromeos/bluetooth_dialog.js | 623 - .../chromeos/cellular_setup/base_page.html | 4 +- .../chromeos/cellular_setup/button_bar.html | 10 +- .../chromeos/cellular_setup/cellular_setup.html | 14 +- .../chromeos/cellular_setup/final_page.html | 6 +- .../cellular_setup/mojo_interface_provider.html | 2 +- .../chromeos/cellular_setup/provisioning_page.html | 10 +- .../chromeos/cellular_setup/sim_detect_page.html | 8 +- .../chromeos/multidevice_setup/BUILD.gn | 3 +- .../chromeos/multidevice_setup/button_bar.html | 6 +- .../multidevice_setup/fake_mojo_service.html | 4 +- .../chromeos/multidevice_setup/icons.html | 2 +- .../chromeos/multidevice_setup/mojo_api.html | 4 +- .../multidevice_setup/multidevice_setup.html | 24 +- .../multidevice_setup_browser_proxy.html | 4 +- .../multidevice_setup_delegate.html | 4 +- .../multidevice_setup_shared_css.html | 8 +- .../chromeos/multidevice_setup/password_page.html | 14 +- .../multidevice_setup/setup_succeeded_page.html | 14 +- .../multidevice_setup/setup_succeeded_page.js | 5 +- .../multidevice_setup/start_setup_page.html | 18 +- .../chromeos/multidevice_setup/ui_page.html | 8 +- .../ui_page_container_behavior.html | 6 +- .../cr_components/chromeos/network/BUILD.gn | 3 +- .../cr_components/chromeos/network/cellular_0.svg | 4 +- .../chromeos/network/cellular_0_with_x.svg | 8 +- .../cr_components/chromeos/network/cellular_1.svg | 6 +- .../cr_components/chromeos/network/cellular_2.svg | 6 +- .../cr_components/chromeos/network/cellular_3.svg | 6 +- .../cr_components/chromeos/network/cellular_4.svg | 4 +- .../chromeos/network/cellular_off.svg | 4 +- .../cr_components/chromeos/network/ethernet.svg | 6 +- .../chromeos/network/mojo_interface_provider.html | 2 +- .../chromeos/network/network_apnlist.html | 8 +- .../chromeos/network/network_choose_mobile.html | 10 +- .../chromeos/network/network_config.html | 33 +- .../network/network_config_element_behavior.js | 2 +- .../chromeos/network/network_config_input.html | 10 +- .../chromeos/network/network_config_select.html | 14 +- .../chromeos/network/network_config_toggle.html | 15 +- .../chromeos/network/network_config_toggle.js | 19 + .../chromeos/network/network_icon.html | 6 +- .../chromeos/network/network_icons.html | 23 +- .../chromeos/network/network_ip_config.html | 10 +- .../chromeos/network/network_list.html | 4 +- .../cr_components/chromeos/network/network_list.js | 2 +- .../chromeos/network/network_list_item.html | 16 +- .../chromeos/network/network_nameservers.html | 16 +- .../chromeos/network/network_password_input.html | 16 +- .../network/network_property_list_mojo.html | 12 +- .../chromeos/network/network_proxy.html | 18 +- .../chromeos/network/network_proxy_exclusions.html | 8 +- .../chromeos/network/network_proxy_input.html | 6 +- .../chromeos/network/network_select.html | 4 +- .../chromeos/network/network_select.js | 9 +- .../chromeos/network/network_shared_css.html | 2 +- .../chromeos/network/network_siminfo.html | 18 +- .../cr_components/chromeos/network/onc_mojo.html | 2 +- .../cr_components/chromeos/network/onc_mojo.js | 35 +- .../cr_components/chromeos/network/wifi_0.svg | 4 +- .../chromeos/network/wifi_0_with_x.svg | 9 +- .../cr_components/chromeos/network/wifi_1.svg | 6 +- .../cr_components/chromeos/network/wifi_2.svg | 5 +- .../cr_components/chromeos/network/wifi_3.svg | 5 +- .../cr_components/chromeos/network/wifi_4.svg | 4 +- .../cr_components/chromeos/network/wifi_off.svg | 4 +- .../cr_components/chromeos/network_health/BUILD.gn | 53 + .../network_health/network_health_summary.html | 49 + .../network_health/network_health_summary.js | 94 + .../quick_unlock/lock_screen_constants.html | 2 +- .../chromeos/quick_unlock/pin_keyboard.html | 23 +- .../chromeos/quick_unlock/pin_keyboard_icon.html | 4 +- .../chromeos/quick_unlock/setup_pin_keyboard.html | 14 +- .../chromeos/smb_shares/add_smb_share_dialog.html | 40 +- .../chromeos/smb_shares/smb_browser_proxy.html | 4 +- .../chromeos/smb_shares/smb_browser_proxy.js | 2 +- .../cr_components/cr_components_images.grdp | 40 +- .../cr_components/cr_components_resources.grdp | 319 +- .../cr_components/cr_components_resources_v3.grdp | 64 +- .../cr_elements/chromeos/cr_picture/cr_camera.html | 4 - .../chromeos/cr_picture/cr_picture_pane.html | 1 - .../cr_elements/cr_action_menu/cr_action_menu.html | 2 +- .../cr_elements/cr_action_menu/cr_action_menu.js | 5 +- .../resources/cr_elements/cr_dialog/cr_dialog.html | 5 - .../cr_fingerprint/cr_fingerprint_progress_arc.js | 24 +- .../cr_elements/cr_icon_button/cr_icon_button.html | 22 - .../cr_elements/cr_icon_button/cr_icon_button.js | 15 +- .../resources/cr_elements/cr_input/cr_input.html | 24 +- .../resources/cr_elements/cr_input/cr_input.js | 3 + .../cr_elements/cr_input/cr_input_style_css.html | 7 +- .../webui/resources/cr_elements/cr_toast/BUILD.gn | 8 +- .../resources/cr_elements/cr_toast/cr_toast.js | 1 + .../cr_elements/cr_toast/cr_toast_manager.js | 9 +- .../cr_elements/cr_toolbar/cr_toolbar.html | 4 +- .../cr_toolbar/cr_toolbar_search_field.html | 24 +- .../cr_toolbar/cr_toolbar_search_field.js | 11 + .../policy/cr_policy_network_behavior_mojo.js | 2 +- .../cr_elements/policy/cr_policy_pref_indicator.js | 38 +- .../resources/cr_elements/shared_vars_css.html | 12 +- .../ui/webui/resources/cr_elements_images.grdp | 48 +- .../ui/webui/resources/cr_elements_resources.grdp | 294 +- .../webui/resources/cr_elements_resources_v3.grdp | 153 +- .../ui/webui/resources/cr_polymer_resources.grdp | 49 +- .../webui/resources/cr_polymer_resources_v3.grdp | 12 +- chromium/ui/webui/resources/css/cros_colors.json5 | 6 +- chromium/ui/webui/resources/js/BUILD.gn | 5 + chromium/ui/webui/resources/js/cr/ui/command.js | 2 +- chromium/ui/webui/resources/js/load_time_data.js | 6 +- .../ui/webui/resources/js/parse_html_subset.js | 155 +- .../ui/webui/resources/js/plural_string_proxy.js | 33 + chromium/ui/webui/resources/polymer_resources.grdp | 368 +- .../ui/webui/resources/polymer_resources_v3.grdp | 204 +- chromium/ui/webui/resources/webui_resources.grd | 319 +- chromium/ui/webui/webui_features.gni | 5 - chromium/ui/wm/BUILD.gn | 6 +- chromium/ui/wm/core/compound_event_filter.cc | 11 +- .../ui/wm/core/compound_event_filter_unittest.cc | 6 + chromium/ui/wm/core/cursor_manager.cc | 30 +- chromium/ui/wm/core/cursor_manager.h | 3 + chromium/ui/wm/core/default_activation_client.h | 1 - chromium/ui/wm/core/focus_controller_unittest.cc | 49 +- chromium/ui/wm/core/transient_window_manager.cc | 4 +- chromium/ui/wm/core/visibility_controller.h | 1 - chromium/ui/wm/core/window_animations.cc | 8 +- chromium/ui/wm/core/window_animations.h | 2 +- chromium/ui/wm/public/scoped_tooltip_disabler.cc | 4 +- chromium/ui/wm/public/scoped_tooltip_disabler.h | 8 +- 1405 files changed, 51433 insertions(+), 35300 deletions(-) create mode 100644 chromium/ui/accessibility/platform/BUILD.gn create mode 100644 chromium/ui/accessibility/platform/ichromeaccessible.idl create mode 100644 chromium/ui/accessibility/platform/uia_registrar_win.cc create mode 100644 chromium/ui/accessibility/platform/uia_registrar_win.h create mode 100644 chromium/ui/accessibility/test_ax_node_helper.cc create mode 100644 chromium/ui/accessibility/test_ax_node_helper.h create mode 100644 chromium/ui/android/junit/AndroidManifest.xml create mode 100644 chromium/ui/android/junit/src/org/chromium/ui/base/ActivityAndroidPermissionDelegateTest.java create mode 100644 chromium/ui/android/junit/src/org/chromium/ui/base/TestActivity.java delete mode 100644 chromium/ui/base/clipboard/clipboard_aura.cc delete mode 100644 chromium/ui/base/clipboard/clipboard_aura.h create mode 100644 chromium/ui/base/clipboard/clipboard_linux.cc create mode 100644 chromium/ui/base/clipboard/clipboard_metrics.cc create mode 100644 chromium/ui/base/clipboard/clipboard_metrics.h create mode 100644 chromium/ui/base/clipboard/clipboard_non_backed.cc create mode 100644 chromium/ui/base/clipboard/clipboard_non_backed.h delete mode 100644 chromium/ui/base/cursor/DEPS create mode 100644 chromium/ui/base/cursor/cursor_factory.cc create mode 100644 chromium/ui/base/cursor/cursor_factory.h delete mode 100644 chromium/ui/base/cursor/cursor_loader_x11.cc delete mode 100644 chromium/ui/base/cursor/cursor_loader_x11.h create mode 100644 chromium/ui/base/cursor/cursor_theme_manager.cc create mode 100644 chromium/ui/base/cursor/cursor_theme_manager.h delete mode 100644 chromium/ui/base/cursor/cursor_theme_manager_linux.cc delete mode 100644 chromium/ui/base/cursor/cursor_theme_manager_linux.h delete mode 100644 chromium/ui/base/cursor/cursor_theme_manager_linux_observer.h create mode 100644 chromium/ui/base/cursor/cursor_theme_manager_observer.h delete mode 100644 chromium/ui/base/cursor/cursor_x11.cc delete mode 100644 chromium/ui/base/dragdrop/os_exchange_data_provider_aura.cc delete mode 100644 chromium/ui/base/dragdrop/os_exchange_data_provider_aura.h create mode 100644 chromium/ui/base/dragdrop/os_exchange_data_provider_non_backed.cc create mode 100644 chromium/ui/base/dragdrop/os_exchange_data_provider_non_backed.h delete mode 100644 chromium/ui/base/ime/ime_bridge.cc delete mode 100644 chromium/ui/base/ime/ime_bridge.h create mode 100644 chromium/ui/base/ime/mojom/text_input_state.mojom create mode 100644 chromium/ui/base/ime/mojom/virtual_keyboard_types.mojom delete mode 100644 chromium/ui/base/ime/virtual_keyboard_visibility_request.h create mode 100644 chromium/ui/base/mojom/attributed_string.mojom delete mode 100644 chromium/ui/base/ui_base_export.h create mode 100644 chromium/ui/base/win/event_creation_utils.cc create mode 100644 chromium/ui/base/win/event_creation_utils.h create mode 100644 chromium/ui/base/x/x11_cursor.cc create mode 100644 chromium/ui/base/x/x11_cursor.h create mode 100644 chromium/ui/base/x/x11_cursor_factory.cc create mode 100644 chromium/ui/base/x/x11_cursor_factory.h create mode 100644 chromium/ui/base/x/x11_cursor_factory_unittest.cc create mode 100644 chromium/ui/base/x/x11_error_handler.cc create mode 100644 chromium/ui/base/x/x11_error_handler.h create mode 100644 chromium/ui/base/x/xwmstartupcheck/BUILD.gn create mode 100644 chromium/ui/base/x/xwmstartupcheck/xwmstartupcheck.cc create mode 100644 chromium/ui/compositor/animation_throughput_reporter.cc create mode 100644 chromium/ui/compositor/animation_throughput_reporter.h create mode 100644 chromium/ui/compositor/animation_throughput_reporter_unittest.cc create mode 100644 chromium/ui/display/mojom/display_configuration_params.mojom create mode 100644 chromium/ui/display/mojom/display_configuration_params_mojom_traits.cc create mode 100644 chromium/ui/display/mojom/display_configuration_params_mojom_traits.h create mode 100644 chromium/ui/display/scoped_display_for_new_windows.cc create mode 100644 chromium/ui/display/scoped_display_for_new_windows.h create mode 100644 chromium/ui/display/types/display_configuration_params.cc create mode 100644 chromium/ui/display/types/display_configuration_params.h delete mode 100644 chromium/ui/gfx/mac/cocoa_scrollbar_painter.cc delete mode 100644 chromium/ui/gfx/mac/cocoa_scrollbar_painter.h create mode 100644 chromium/ui/gfx/swap_result.cc create mode 100644 chromium/ui/gfx/x/connection_unittest.cc create mode 100644 chromium/ui/gfx/x/event.cc create mode 100644 chromium/ui/gfx/x/event.h delete mode 100644 chromium/ui/gfx/x/request_queue.cc delete mode 100644 chromium/ui/gfx/x/request_queue.h create mode 100644 chromium/ui/gfx/x/xproto_types.cc create mode 100644 chromium/ui/gl/init/gl_factory_linux_x11.cc create mode 100644 chromium/ui/gl/init/gl_factory_linux_x11.h delete mode 100644 chromium/ui/gl/init/gl_factory_x11.cc create mode 100644 chromium/ui/gl/init/gl_initializer_linux_x11.cc create mode 100644 chromium/ui/gl/init/gl_initializer_linux_x11.h delete mode 100644 chromium/ui/gl/init/gl_initializer_x11.cc delete mode 100644 chromium/ui/gtk/print_dialog_gtk.cc delete mode 100644 chromium/ui/gtk/print_dialog_gtk.h create mode 100644 chromium/ui/gtk/printing/OWNERS create mode 100644 chromium/ui/gtk/printing/print_dialog_gtk.cc create mode 100644 chromium/ui/gtk/printing/print_dialog_gtk.h create mode 100644 chromium/ui/gtk/printing/printing_gtk_util.cc create mode 100644 chromium/ui/gtk/printing/printing_gtk_util.h delete mode 100644 chromium/ui/gtk/printing_gtk_util.cc delete mode 100644 chromium/ui/gtk/printing_gtk_util.h create mode 100644 chromium/ui/ozone/platform/drm/gpu/drm_display_unittest.cc create mode 100644 chromium/ui/ozone/platform/wayland/common/data_util.cc create mode 100644 chromium/ui/ozone/platform/wayland/common/data_util.h delete mode 100644 chromium/ui/ozone/platform/wayland/host/gtk_primary_selection_source.cc delete mode 100644 chromium/ui/ozone/platform/wayland/host/gtk_primary_selection_source.h create mode 100644 chromium/ui/ozone/platform/wayland/host/wayland_data_drag_controller.cc create mode 100644 chromium/ui/ozone/platform/wayland/host/wayland_data_drag_controller.h create mode 100644 chromium/ui/ozone/platform/wayland/host/wayland_data_drag_controller_unittest.cc delete mode 100644 chromium/ui/ozone/platform/wayland/host/wayland_data_source_base.cc delete mode 100644 chromium/ui/ozone/platform/wayland/host/wayland_data_source_base.h create mode 100644 chromium/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc create mode 100644 chromium/ui/ozone/platform/wayland/host/wayland_toplevel_window.h create mode 100644 chromium/ui/ozone/platform/wayland/host/wayland_window_drag_controller.cc create mode 100644 chromium/ui/ozone/platform/wayland/host/wayland_window_drag_controller.h create mode 100644 chromium/ui/ozone/platform/wayland/host/wayland_window_drag_controller_unittest.cc create mode 100644 chromium/ui/ozone/platform/wayland/test/scoped_wl_array.cc create mode 100644 chromium/ui/ozone/platform/wayland/test/scoped_wl_array.h delete mode 100644 chromium/ui/ozone/platform/x11/x11_cursor_factory_ozone.cc delete mode 100644 chromium/ui/ozone/platform/x11/x11_cursor_factory_ozone.h delete mode 100644 chromium/ui/ozone/platform/x11/x11_cursor_factory_ozone_unittest.cc delete mode 100644 chromium/ui/ozone/platform/x11/x11_cursor_ozone.cc delete mode 100644 chromium/ui/ozone/platform/x11/x11_cursor_ozone.h delete mode 100644 chromium/ui/ozone/platform/x11/x11_window_ozone.cc delete mode 100644 chromium/ui/ozone/platform/x11/x11_window_ozone.h delete mode 100644 chromium/ui/ozone/platform/x11/x11_window_ozone_chromeos.cc delete mode 100644 chromium/ui/ozone/platform/x11/x11_window_ozone_chromeos.h delete mode 100644 chromium/ui/ozone/public/cursor_factory_ozone.cc delete mode 100644 chromium/ui/ozone/public/cursor_factory_ozone.h create mode 100644 chromium/ui/shell_dialogs/select_file_dialog_lacros.cc create mode 100644 chromium/ui/shell_dialogs/select_file_dialog_lacros.h create mode 100644 chromium/ui/strings/ui_strings_grd/IDS_APP_LIST_MANAGE_SETTINGS.png.sha1 create mode 100644 chromium/ui/strings/ui_strings_grd/IDS_APP_LIST_SEARCH_BOX_ACCESSIBILITY_NAME_CLAMSHELL.png.sha1 create mode 100644 chromium/ui/strings/ui_strings_grd/IDS_APP_LIST_SEARCH_BOX_ACCESSIBILITY_NAME_TABLET.png.sha1 create mode 100644 chromium/ui/strings/ui_strings_grd/IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER.png.sha1 create mode 100644 chromium/ui/strings/ui_strings_grd/IDS_APP_LIST_SUGGESTED_CONTENT_INFO.png.sha1 create mode 100644 chromium/ui/strings/ui_strings_grd/IDS_MENU_ITEM_NEW_BADGE.png.sha1 create mode 100644 chromium/ui/views/animation/installable_ink_drop_painter_unittest.cc create mode 100644 chromium/ui/views/controls/button/md_text_button_unittest.cc delete mode 100644 chromium/ui/views/controls/views_text_services_context_menu.cc create mode 100644 chromium/ui/views/widget/desktop_aura/desktop_screen_linux.cc create mode 100644 chromium/ui/views/widget/desktop_aura/desktop_window_tree_host_linux_unittest.cc delete mode 100644 chromium/ui/views/widget/desktop_aura/desktop_window_tree_host_x11_unittest.cc create mode 100644 chromium/ui/views/widget/desktop_aura/x11_drag_drop_client_unittest.cc create mode 100644 chromium/ui/views/widget/unique_widget_ptr.cc create mode 100644 chromium/ui/views/widget/unique_widget_ptr.h create mode 100644 chromium/ui/views/widget/unique_widget_ptr_unittest.cc create mode 100644 chromium/ui/webui/resources/cr_components/chromeos/bluetooth/BUILD.gn create mode 100644 chromium/ui/webui/resources/cr_components/chromeos/bluetooth/bluetooth_dialog.html create mode 100644 chromium/ui/webui/resources/cr_components/chromeos/bluetooth/bluetooth_dialog.js delete mode 100644 chromium/ui/webui/resources/cr_components/chromeos/bluetooth_dialog.html delete mode 100644 chromium/ui/webui/resources/cr_components/chromeos/bluetooth_dialog.js create mode 100644 chromium/ui/webui/resources/cr_components/chromeos/network_health/BUILD.gn create mode 100644 chromium/ui/webui/resources/cr_components/chromeos/network_health/network_health_summary.html create mode 100644 chromium/ui/webui/resources/cr_components/chromeos/network_health/network_health_summary.js create mode 100644 chromium/ui/webui/resources/js/plural_string_proxy.js (limited to 'chromium/ui') diff --git a/chromium/ui/accelerated_widget_mac/ca_layer_tree_coordinator.h b/chromium/ui/accelerated_widget_mac/ca_layer_tree_coordinator.h index 5fb42fd647d..c6ae9a055f3 100644 --- a/chromium/ui/accelerated_widget_mac/ca_layer_tree_coordinator.h +++ b/chromium/ui/accelerated_widget_mac/ca_layer_tree_coordinator.h @@ -36,7 +36,7 @@ class ACCELERATED_WIDGET_MAC_EXPORT CALayerTreeCoordinator { // Commit the pending frame's OpenGL backbuffer or CALayer tree to be // attached to the root CALayer. - void CommitPendingTreesToCA(const gfx::Rect& pixel_damage_rect); + void CommitPendingTreesToCA(); // Get the root CALayer to display the current frame. This does not change // over the lifetime of the object. diff --git a/chromium/ui/accelerated_widget_mac/ca_layer_tree_coordinator.mm b/chromium/ui/accelerated_widget_mac/ca_layer_tree_coordinator.mm index c86751a944f..2d50aa7207e 100644 --- a/chromium/ui/accelerated_widget_mac/ca_layer_tree_coordinator.mm +++ b/chromium/ui/accelerated_widget_mac/ca_layer_tree_coordinator.mm @@ -6,6 +6,7 @@ #import +#include "base/logging.h" #include "base/mac/mac_util.h" #include "base/trace_event/trace_event.h" #include "ui/base/cocoa/animation_utils.h" @@ -40,8 +41,7 @@ CARendererLayerTree* CALayerTreeCoordinator::GetPendingCARendererLayerTree() { return pending_ca_renderer_layer_tree_.get(); } -void CALayerTreeCoordinator::CommitPendingTreesToCA( - const gfx::Rect& pixel_damage_rect) { +void CALayerTreeCoordinator::CommitPendingTreesToCA() { // Update the CALayer hierarchy. ScopedCAActionDisabler disabler; if (pending_ca_renderer_layer_tree_) { diff --git a/chromium/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm b/chromium/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm index 90ebd774026..f66002644bf 100644 --- a/chromium/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm +++ b/chromium/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm @@ -12,6 +12,7 @@ #include #include "base/command_line.h" +#include "base/logging.h" #include "base/trace_event/trace_event.h" #include "components/metal_util/hdr_copier_layer.h" #include "third_party/skia/include/core/SkColor.h" diff --git a/chromium/ui/accelerated_widget_mac/display_ca_layer_tree.mm b/chromium/ui/accelerated_widget_mac/display_ca_layer_tree.mm index 38f25d6314f..0db8f3e223e 100644 --- a/chromium/ui/accelerated_widget_mac/display_ca_layer_tree.mm +++ b/chromium/ui/accelerated_widget_mac/display_ca_layer_tree.mm @@ -8,6 +8,7 @@ #include #include "base/debug/dump_without_crashing.h" +#include "base/logging.h" #include "base/mac/mac_util.h" #include "base/mac/scoped_cftyperef.h" #include "base/trace_event/trace_event.h" diff --git a/chromium/ui/accessibility/BUILD.gn b/chromium/ui/accessibility/BUILD.gn index fc74899db46..0297bff6f13 100644 --- a/chromium/ui/accessibility/BUILD.gn +++ b/chromium/ui/accessibility/BUILD.gn @@ -16,6 +16,10 @@ if (is_android) { import("//build/config/android/rules.gni") } +if (is_win) { + import("//build/toolchain/win/midl.gni") +} + # Reset sources_assignment_filter for the BUILD.gn file to prevent # regression during the migration of Chromium away from the feature. # See docs/no_sources_assignment_filter.md for more information. @@ -41,6 +45,10 @@ jumbo_component("ax_base") { defines = [ "AX_BASE_IMPLEMENTATION" ] sources = [ + "accessibility_features.cc", + "accessibility_features.h", + "accessibility_switches.cc", + "accessibility_switches.h", "ax_base_export.h", "ax_enum_util.cc", "ax_enum_util.h", @@ -70,14 +78,18 @@ jumbo_component("ax_base") { ] } +#if (is_win) { +# midl("ichromeaccessible") { +# sources = [ +# "platform/ichromeaccessible.idl", +# ] +# } +#} + jumbo_component("accessibility") { defines = [ "AX_IMPLEMENTATION" ] sources = [ - "accessibility_features.cc", - "accessibility_features.h", - "accessibility_switches.cc", - "accessibility_switches.h", "ax_action_data.cc", "ax_action_data.h", "ax_action_handler.cc", @@ -132,85 +144,21 @@ jumbo_component("accessibility") { "ax_tree_update_forward.h", "null_ax_action_target.cc", "null_ax_action_target.h", - - # ax_android_constants* are used in ax_assistant_structure.cc. - "platform/ax_android_constants.cc", - "platform/ax_android_constants.h", - - # ax_platform_node* are used for enable/disable accessibility and - # test_ax_node_wrapper. - "platform/ax_platform_node.cc", - "platform/ax_platform_node.h", - "platform/ax_platform_node_base.cc", - "platform/ax_platform_node_base.h", - "platform/ax_platform_node_delegate.h", - "platform/ax_platform_node_delegate_base.cc", - "platform/ax_platform_node_delegate_base.h", - - # ax_platform_node_test_helper.{cc,h} are used in - # browser_view_browsertest.cc - "platform/ax_platform_node_test_helper.cc", - "platform/ax_platform_node_test_helper.h", - - # ax_unique_id.{cc,h} are used in browser_accessibility.cc and - # view_accessibility.cc - "platform/ax_unique_id.cc", - "platform/ax_unique_id.h", - - # compute_attributes.{cc,h} are used in - # accessibility_tree_formatter_blink.cc - "platform/compute_attributes.cc", - "platform/compute_attributes.h", ] - deps = [ "//third_party/cld_3/src/src:cld_3" ] + deps = [ + "//base/util/values:values_util", + "//third_party/cld_3/src/src:cld_3", + ] public_deps = [ ":ax_base", - "//ui/display", + "//ui/accessibility/platform", ] - if (has_native_accessibility) { - sources += [ - "platform/ax_platform_text_boundary.cc", - "platform/ax_platform_text_boundary.h", - ] - - if (use_atk) { - # ax_platform_text_boundary.h includes atk.h, so ATK is needed as a public - # config to ensure anything that includes this is able to find atk.h. - public_configs = [ "//build/config/linux/atk" ] - } - } - - if (is_win) { - sources += [ - "platform/ax_fragment_root_delegate_win.h", - "platform/ax_fragment_root_win.cc", - "platform/ax_fragment_root_win.h", - "platform/ax_platform_node_delegate_utils_win.cc", - "platform/ax_platform_node_delegate_utils_win.h", - "platform/ax_platform_node_textchildprovider_win.cc", - "platform/ax_platform_node_textchildprovider_win.h", - "platform/ax_platform_node_textprovider_win.cc", - "platform/ax_platform_node_textprovider_win.h", - "platform/ax_platform_node_textrangeprovider_win.cc", - "platform/ax_platform_node_textrangeprovider_win.h", - "platform/ax_platform_node_win.cc", - "platform/ax_platform_node_win.h", - "platform/ax_platform_relation_win.cc", - "platform/ax_platform_relation_win.h", - "platform/ax_system_caret_win.cc", - "platform/ax_system_caret_win.h", - ] - - public_deps += [ "//third_party/iaccessible2" ] - - libs = [ - "oleacc.lib", - "uiautomationcore.lib", - ] - } + # Allows the files from //ui/accessibility/platform includes headers + # from this directory. + allow_circular_includes_from = [ "//ui/accessibility/platform" ] if (!is_ios) { sources += [ @@ -225,40 +173,6 @@ jumbo_component("accessibility") { ] } - if (is_mac) { - sources += [ - "platform/ax_platform_node_mac.h", - "platform/ax_platform_node_mac.mm", - ] - - libs = [ - "AppKit.framework", - "Foundation.framework", - ] - } - - if (use_atk) { - sources += [ - "platform/atk_util_auralinux.cc", - "platform/atk_util_auralinux.h", - "platform/atk_util_auralinux_gtk.cc", - "platform/ax_platform_atk_hyperlink.cc", - "platform/ax_platform_atk_hyperlink.h", - "platform/ax_platform_node_auralinux.cc", - "platform/ax_platform_node_auralinux.h", - ] - - configs += [ "//build/config/linux/atk" ] - - if (use_glib) { - configs += [ "//build/config/linux:glib" ] - } - - if (use_x11) { - public_deps += [ "//ui/gfx/x" ] - } - } - if (use_aura) { sources += [ "aura/aura_window_properties.cc", @@ -281,15 +195,21 @@ source_set("ax_assistant") { static_library("test_support") { testonly = true sources = [ - # test_ax_node_wrapper.{cc,h} are used in ax_range_unittest.cc - "platform/test_ax_node_wrapper.cc", - "platform/test_ax_node_wrapper.h", + "test_ax_node_helper.cc", + "test_ax_node_helper.h", "test_ax_tree_manager.cc", "test_ax_tree_manager.h", "tree_generator.cc", "tree_generator.h", ] + if (has_native_accessibility) { + sources += [ + "platform/test_ax_node_wrapper.cc", + "platform/test_ax_node_wrapper.h", + ] + } + deps = [ ":accessibility" ] } @@ -325,23 +245,6 @@ test("accessibility_unittests") { "run_all_unittests.cc", ] - if (is_win) { - sources += [ - "platform/ax_fragment_root_win_unittest.cc", - "platform/ax_platform_node_textchildprovider_win_unittest.cc", - "platform/ax_platform_node_textprovider_win_unittest.cc", - "platform/ax_platform_node_textrangeprovider_win_unittest.cc", - "platform/ax_platform_node_win_unittest.cc", - "platform/ax_platform_node_win_unittest.h", - ] - } - - if (has_native_accessibility) { - # This test depends heavily on NativeViewAccessible, which is only - # implemented on these platforms. - sources += [ "platform/ax_platform_node_base_unittest.cc" ] - } - deps = [ ":accessibility", ":test_support", @@ -357,22 +260,40 @@ test("accessibility_unittests") { "//ui/gfx:test_support", ] - if (is_win) { - deps += [ "//third_party/iaccessible2" ] + if (has_native_accessibility) { + # This test depends heavily on NativeViewAccessible, which is only + # implemented on these platforms. + sources += [ "platform/ax_platform_node_base_unittest.cc" ] - libs = [ - "oleacc.lib", - "uiautomationcore.lib", - ] - } + if (is_win) { + sources += [ + "platform/ax_fragment_root_win_unittest.cc", + "platform/ax_platform_node_textchildprovider_win_unittest.cc", + "platform/ax_platform_node_textprovider_win_unittest.cc", + "platform/ax_platform_node_textrangeprovider_win_unittest.cc", + "platform/ax_platform_node_win_unittest.cc", + "platform/ax_platform_node_win_unittest.h", + ] + + deps += [ + "//third_party/iaccessible2", + "//ui/accessibility/platform:ichromeaccessible", + ] + + libs = [ + "oleacc.lib", + "uiautomationcore.lib", + ] + } - if (use_atk) { - sources += [ - "platform/atk_util_auralinux_unittest.cc", - "platform/ax_platform_node_auralinux_unittest.cc", - ] + if (use_atk) { + sources += [ + "platform/atk_util_auralinux_unittest.cc", + "platform/ax_platform_node_auralinux_unittest.cc", + ] - configs += [ "//build/config/linux/atk" ] + configs += [ "//build/config/linux/atk" ] + } } } diff --git a/chromium/ui/accessibility/accessibility_features.cc b/chromium/ui/accessibility/accessibility_features.cc index 6b6f63f1b90..4a52188c1b6 100644 --- a/chromium/ui/accessibility/accessibility_features.cc +++ b/chromium/ui/accessibility/accessibility_features.cc @@ -47,4 +47,36 @@ bool IsAccessibilityTreeForViewsEnabled() { ::features::kEnableAccessibilityTreeForViews); } +const base::Feature kAccessibilityFocusHighlight{ + "AccessibilityFocusHighlight", base::FEATURE_DISABLED_BY_DEFAULT}; + +bool IsAccessibilityFocusHighlightEnabled() { + return base::FeatureList::IsEnabled(::features::kAccessibilityFocusHighlight); +} + +#if defined(OS_WIN) +const base::Feature kIChromeAccessible{"IChromeAccessible", + base::FEATURE_DISABLED_BY_DEFAULT}; + +bool IsIChromeAccessibleEnabled() { + return base::FeatureList::IsEnabled(::features::kIChromeAccessible); +} +#endif // defined(OS_WIN) + +#if defined(OS_CHROMEOS) +const base::Feature kAccessibilityCursorColor{ + "AccessibilityCursorColor", base::FEATURE_DISABLED_BY_DEFAULT}; + +bool IsAccessibilityCursorColorEnabled() { + return base::FeatureList::IsEnabled(::features::kAccessibilityCursorColor); +} +#endif // defined(OS_CHROMEOS) + +const base::Feature kAugmentExistingImageLabels{ + "AugmentExistingImageLabels", base::FEATURE_DISABLED_BY_DEFAULT}; + +bool IsAugmentExistingImageLabelsEnabled() { + return base::FeatureList::IsEnabled(::features::kAugmentExistingImageLabels); +} + } // namespace features diff --git a/chromium/ui/accessibility/accessibility_features.h b/chromium/ui/accessibility/accessibility_features.h index b7fa71ec600..743a32c5bc7 100644 --- a/chromium/ui/accessibility/accessibility_features.h +++ b/chromium/ui/accessibility/accessibility_features.h @@ -8,35 +8,67 @@ #include "base/feature_list.h" #include "build/build_config.h" -#include "ui/accessibility/ax_export.h" +#include "ui/accessibility/ax_base_export.h" namespace features { -AX_EXPORT extern const base::Feature kEnableAccessibilityExposeARIAAnnotations; +AX_BASE_EXPORT extern const base::Feature + kEnableAccessibilityExposeARIAAnnotations; // Returns true if ARIA annotations should be exposed to the browser AX Tree. -AX_EXPORT bool IsAccessibilityExposeARIAAnnotationsEnabled(); +AX_BASE_EXPORT bool IsAccessibilityExposeARIAAnnotationsEnabled(); -AX_EXPORT extern const base::Feature kEnableAccessibilityExposeDisplayNone; +AX_BASE_EXPORT extern const base::Feature kEnableAccessibilityExposeDisplayNone; // Returns true if "display: none" nodes should be exposed to the // browser process AXTree. -AX_EXPORT bool IsAccessibilityExposeDisplayNoneEnabled(); +AX_BASE_EXPORT bool IsAccessibilityExposeDisplayNoneEnabled(); -AX_EXPORT extern const base::Feature kEnableAccessibilityExposeHTMLElement; +AX_BASE_EXPORT extern const base::Feature kEnableAccessibilityExposeHTMLElement; // Returns true if the element should be exposed to the // browser process AXTree (as an ignored node). -AX_EXPORT bool IsAccessibilityExposeHTMLElementEnabled(); +AX_BASE_EXPORT bool IsAccessibilityExposeHTMLElementEnabled(); // Serializes accessibility information from the Views tree and deserializes it // into an AXTree in the browser process. -AX_EXPORT extern const base::Feature kEnableAccessibilityTreeForViews; +AX_BASE_EXPORT extern const base::Feature kEnableAccessibilityTreeForViews; // Returns true if the Views tree is exposed using an AXTree in the browser // process. Returns false if the Views tree is exposed to accessibility // directly. -AX_EXPORT bool IsAccessibilityTreeForViewsEnabled(); +AX_BASE_EXPORT bool IsAccessibilityTreeForViewsEnabled(); + +AX_BASE_EXPORT extern const base::Feature kAccessibilityFocusHighlight; + +// Returns true if the accessibility focus highlight feature is enabled, +// which draws a visual highlight around the focused element on the page +// briefly whenever focus changes. +AX_BASE_EXPORT bool IsAccessibilityFocusHighlightEnabled(); + +#if defined(OS_WIN) +// Enables an experimental Chrome-specific accessibility COM API +AX_BASE_EXPORT extern const base::Feature kIChromeAccessible; + +// Returns true if the IChromeAccessible COM API is enabled. +AX_BASE_EXPORT bool IsIChromeAccessibleEnabled(); + +#endif // defined(OS_WIN) + +#if defined(OS_CHROMEOS) +AX_BASE_EXPORT extern const base::Feature kAccessibilityCursorColor; + +// Returns true if the accessibility cursor color feature is enabled, letting +// users pick a custom cursor color. +AX_BASE_EXPORT bool IsAccessibilityCursorColorEnabled(); +#endif // defined(OS_CHROMEOS) + +// Enables Get Image Descriptions to augment existing images labels, +// rather than only provide descriptions for completely unlabeled images. +AX_BASE_EXPORT extern const base::Feature kAugmentExistingImageLabels; + +// Returns true if augmenting existing image labels is enabled. +AX_BASE_EXPORT bool IsAugmentExistingImageLabelsEnabled(); } // namespace features diff --git a/chromium/ui/accessibility/accessibility_switches.h b/chromium/ui/accessibility/accessibility_switches.h index 3cc38c37f10..2d3b9f2761b 100644 --- a/chromium/ui/accessibility/accessibility_switches.h +++ b/chromium/ui/accessibility/accessibility_switches.h @@ -7,41 +7,46 @@ #define UI_ACCESSIBILITY_ACCESSIBILITY_SWITCHES_H_ #include "build/build_config.h" -#include "ui/accessibility/ax_export.h" +#include "ui/accessibility/ax_base_export.h" namespace switches { -AX_EXPORT extern const char kEnableExperimentalAccessibilityAutoclick[]; -AX_EXPORT extern const char kEnableExperimentalAccessibilityLabelsDebugging[]; -AX_EXPORT extern const char kEnableExperimentalAccessibilityLanguageDetection[]; -AX_EXPORT extern const char +AX_BASE_EXPORT extern const char kEnableExperimentalAccessibilityAutoclick[]; +AX_BASE_EXPORT extern const char + kEnableExperimentalAccessibilityLabelsDebugging[]; +AX_BASE_EXPORT extern const char + kEnableExperimentalAccessibilityLanguageDetection[]; +AX_BASE_EXPORT extern const char kEnableExperimentalAccessibilityLanguageDetectionDynamic[]; -AX_EXPORT extern const char kEnableExperimentalAccessibilitySwitchAccess[]; -AX_EXPORT extern const char kEnableExperimentalAccessibilitySwitchAccessText[]; -AX_EXPORT extern const char +AX_BASE_EXPORT extern const char kEnableExperimentalAccessibilitySwitchAccess[]; +AX_BASE_EXPORT extern const char + kEnableExperimentalAccessibilitySwitchAccessText[]; +AX_BASE_EXPORT extern const char kEnableExperimentalAccessibilityChromeVoxAnnotations[]; -AX_EXPORT extern const char +AX_BASE_EXPORT extern const char kDisableExperimentalAccessibilityChromeVoxLanguageSwitching[]; -AX_EXPORT extern const char +AX_BASE_EXPORT extern const char kDisableExperimentalAccessibilityChromeVoxSearchMenus[]; -AX_EXPORT extern const char kEnableExperimentalAccessibilityChromeVoxTutorial[]; +AX_BASE_EXPORT extern const char + kEnableExperimentalAccessibilityChromeVoxTutorial[]; // Returns true if experimental accessibility language detection is enabled. -AX_EXPORT bool IsExperimentalAccessibilityLanguageDetectionEnabled(); +AX_BASE_EXPORT bool IsExperimentalAccessibilityLanguageDetectionEnabled(); // Returns true if experimental accessibility language detection support for // dynamic content is enabled. -AX_EXPORT bool IsExperimentalAccessibilityLanguageDetectionDynamicEnabled(); +AX_BASE_EXPORT bool +IsExperimentalAccessibilityLanguageDetectionDynamicEnabled(); // Returns true if experimental accessibility Switch Access text is enabled. -AX_EXPORT bool IsExperimentalAccessibilitySwitchAccessTextEnabled(); +AX_BASE_EXPORT bool IsExperimentalAccessibilitySwitchAccessTextEnabled(); #if defined(OS_WIN) -AX_EXPORT extern const char kEnableExperimentalUIAutomation[]; +AX_BASE_EXPORT extern const char kEnableExperimentalUIAutomation[]; #endif // Returns true if experimental support for UIAutomation is enabled. -AX_EXPORT bool IsExperimentalAccessibilityPlatformUIAEnabled(); +AX_BASE_EXPORT bool IsExperimentalAccessibilityPlatformUIAEnabled(); } // namespace switches diff --git a/chromium/ui/accessibility/ax_enum_util.cc b/chromium/ui/accessibility/ax_enum_util.cc index 35bbef5afc6..6d592227fc2 100644 --- a/chromium/ui/accessibility/ax_enum_util.cc +++ b/chromium/ui/accessibility/ax_enum_util.cc @@ -81,8 +81,6 @@ const char* ToString(ax::mojom::Event event) { return "menuListValueChanged"; case ax::mojom::Event::kMenuPopupEnd: return "menuPopupEnd"; - case ax::mojom::Event::kMenuPopupHide: - return "menuPopupHide"; case ax::mojom::Event::kMenuPopupStart: return "menuPopupStart"; case ax::mojom::Event::kMenuStart: @@ -211,8 +209,6 @@ ax::mojom::Event ParseEvent(const char* event) { return ax::mojom::Event::kMenuListValueChanged; if (0 == strcmp(event, "menuPopupEnd")) return ax::mojom::Event::kMenuPopupEnd; - if (0 == strcmp(event, "menuPopupHide")) - return ax::mojom::Event::kMenuPopupHide; if (0 == strcmp(event, "menuPopupStart")) return ax::mojom::Event::kMenuPopupStart; if (0 == strcmp(event, "menuStart")) @@ -1884,6 +1880,8 @@ const char* ToString(ax::mojom::BoolAttribute bool_attribute) { return "clipsChildren"; case ax::mojom::BoolAttribute::kSelected: return "selected"; + case ax::mojom::BoolAttribute::kSelectedFromFocus: + return "selectedFromFocus"; case ax::mojom::BoolAttribute::kSupportsTextLocation: return "supportsTextLocation"; case ax::mojom::BoolAttribute::kIsLineBreakingObject: @@ -1926,6 +1924,8 @@ ax::mojom::BoolAttribute ParseBoolAttribute(const char* bool_attribute) { return ax::mojom::BoolAttribute::kClipsChildren; if (0 == strcmp(bool_attribute, "selected")) return ax::mojom::BoolAttribute::kSelected; + if (0 == strcmp(bool_attribute, "selectedFromFocus")) + return ax::mojom::BoolAttribute::kSelectedFromFocus; if (0 == strcmp(bool_attribute, "supportsTextLocation")) return ax::mojom::BoolAttribute::kSupportsTextLocation; if (0 == strcmp(bool_attribute, "isLineBreakingObject")) diff --git a/chromium/ui/accessibility/ax_enums.mojom b/chromium/ui/accessibility/ax_enums.mojom index a5c0fc5884f..b1523555d3b 100644 --- a/chromium/ui/accessibility/ax_enums.mojom +++ b/chromium/ui/accessibility/ax_enums.mojom @@ -27,7 +27,7 @@ module ax.mojom; enum Event { kNone, - kActiveDescendantChanged, // Web + kActiveDescendantChanged, kAlert, kAriaAttributeChanged, // Implicit kAutocorrectionOccured, // Unknown: http://crbug.com/392498 @@ -56,13 +56,12 @@ enum Event { kLocationChanged, // Web kMediaStartedPlaying, // Native / Automation kMediaStoppedPlaying, // Native / Automation - kMenuEnd, // Native / Win + kMenuEnd, // Native / web: menu interaction has ended. kMenuListItemSelected, // Web kMenuListValueChanged, // Web - kMenuPopupEnd, // Native - kMenuPopupHide, // Native / AuraLinux - kMenuPopupStart, // Native - kMenuStart, // Native / Win + kMenuPopupEnd, // Native / web: a menu/submenu is hidden/closed. + kMenuPopupStart, // Native / web: a menu/submenu is shown/opened. + kMenuStart, // Native / web: menu interaction has begun. kMouseCanceled, kMouseDragged, kMouseMoved, @@ -77,7 +76,7 @@ enum Event { kSelection, // Native kSelectionAdd, // Native kSelectionRemove, // Native - kShow, // Remove: http://crbug.com/392502 + kShow, // Native / Automation kStateChanged, // Native / Automation kTextChanged, kWindowActivated, // Native @@ -734,6 +733,9 @@ enum BoolAttribute { // Indicates whether this node is selected or unselected. kSelected, + // Indicates whether this node is selected due to selection follows focus. + kSelectedFromFocus, + // Indicates whether this node supports text location. kSupportsTextLocation, @@ -984,14 +986,14 @@ enum SortDirection { enum NameFrom { kNone, kUninitialized, - kAttribute, + kAttribute, // E.g. aria-label. kAttributeExplicitlyEmpty, - kCaption, + kCaption, // E.g. in the case of a table, from a caption element. kContents, - kPlaceholder, - kRelatedElement, - kTitle, - kValue, + kPlaceholder, // E.g. from an HTML placeholder attribute on a text field. + kRelatedElement, // E.g. from a figcaption Element in a figure. + kTitle, // E.g. . + kValue, // E.g. . }; enum DescriptionFrom { diff --git a/chromium/ui/accessibility/ax_event.cc b/chromium/ui/accessibility/ax_event.cc index 34327f466f1..ecb80d908e4 100644 --- a/chromium/ui/accessibility/ax_event.cc +++ b/chromium/ui/accessibility/ax_event.cc @@ -29,7 +29,7 @@ AXEvent::AXEvent(const AXEvent& event) = default; AXEvent& AXEvent::operator=(const AXEvent& event) = default; std::string AXEvent::ToString() const { - std::string result = "AXEvent"; + std::string result = "AXEvent "; result += ui::ToString(event_type); result += " on node id=" + base::NumberToString(id); diff --git a/chromium/ui/accessibility/ax_event_generator.cc b/chromium/ui/accessibility/ax_event_generator.cc index 472dd5b1579..7561e537be6 100644 --- a/chromium/ui/accessibility/ax_event_generator.cc +++ b/chromium/ui/accessibility/ax_event_generator.cc @@ -49,9 +49,13 @@ void RemoveEvent(std::set* node_events, } // namespace -AXEventGenerator::EventParams::EventParams(Event event, - ax::mojom::EventFrom event_from) - : event(event), event_from(event_from) {} +AXEventGenerator::EventParams::EventParams( + Event event, + ax::mojom::EventFrom event_from, + const std::vector& event_intents) + : event(event), event_from(event_from), event_intents(event_intents) {} + +AXEventGenerator::EventParams::~EventParams() = default; AXEventGenerator::TargetedEvent::TargetedEvent(AXNode* node, const EventParams& event_params) @@ -138,7 +142,8 @@ void AXEventGenerator::AddEvent(AXNode* node, AXEventGenerator::Event event) { return; std::set& node_events = tree_events_[node]; - node_events.emplace(event, ax::mojom::EventFrom::kNone); + node_events.emplace(event, ax::mojom::EventFrom::kNone, + tree_->event_intents()); } void AXEventGenerator::OnNodeDataChanged(AXTree* tree, @@ -154,7 +159,8 @@ void AXEventGenerator::OnNodeDataChanged(AXTree* tree, new_node_data.role != ax::mojom::Role::kStaticText) { AXNode* node = tree_->GetFromId(new_node_data.id); tree_events_[node].emplace(Event::CHILDREN_CHANGED, - ax::mojom::EventFrom::kNone); + ax::mojom::EventFrom::kNone, + tree_->event_intents()); } } @@ -543,7 +549,7 @@ void AXEventGenerator::FireLiveRegionEvents(AXNode* node) { .GetStringAttribute(ax::mojom::StringAttribute::kName) .empty()) AddEvent(node, Event::LIVE_REGION_NODE_CHANGED); - // Fire LIVE_REGION_CHANGED on the root of the live region. + // Fire LIVE_REGION_NODE_CHANGED on the root of the live region. AddEvent(live_root, Event::LIVE_REGION_CHANGED); } } @@ -610,6 +616,9 @@ void AXEventGenerator::FireRelationSourceEvents(AXTree* tree, // Attempts to suppress load-related events that we presume no AT will be // interested in under any circumstances, such as pages which have no size. bool AXEventGenerator::ShouldFireLoadEvents(AXNode* node) { + if (always_fire_load_complete_) + return true; + const AXNodeData& data = node->data(); return data.relative_bounds.bounds.width() || data.relative_bounds.bounds.height(); diff --git a/chromium/ui/accessibility/ax_event_generator.h b/chromium/ui/accessibility/ax_event_generator.h index 61d860b1e64..47c64ef7b80 100644 --- a/chromium/ui/accessibility/ax_event_generator.h +++ b/chromium/ui/accessibility/ax_event_generator.h @@ -11,6 +11,7 @@ #include #include "base/scoped_observer.h" +#include "ui/accessibility/ax_event_intent.h" #include "ui/accessibility/ax_export.h" #include "ui/accessibility/ax_tree.h" #include "ui/accessibility/ax_tree_observer.h" @@ -90,9 +91,13 @@ class AX_EXPORT AXEventGenerator : public AXTreeObserver { }; struct EventParams { - EventParams(Event event, ax::mojom::EventFrom event_from); + EventParams(Event event, + ax::mojom::EventFrom event_from, + const std::vector& event_intents); + ~EventParams(); Event event; ax::mojom::EventFrom event_from; + std::vector event_intents; bool operator==(const EventParams& rhs); bool operator<(const EventParams& rhs) const; @@ -165,6 +170,10 @@ class AX_EXPORT AXEventGenerator : public AXTreeObserver { // same order they were added. void AddEvent(ui::AXNode* node, Event event); + void set_always_fire_load_complete(bool val) { + always_fire_load_complete_ = val; + } + protected: // AXTreeObserver overrides. void OnNodeDataChanged(AXTree* tree, @@ -236,6 +245,8 @@ class AX_EXPORT AXEventGenerator : public AXTreeObserver { // OnAtomicUpdateFinished. List of nodes whose active descendant changed. std::vector active_descendant_changed_; + bool always_fire_load_complete_ = false; + // Please make sure that this ScopedObserver is always declared last in order // to prevent any use-after-free. ScopedObserver tree_event_observer_{this}; diff --git a/chromium/ui/accessibility/ax_mode.cc b/chromium/ui/accessibility/ax_mode.cc index 55d0fc130db..7919464eb0a 100644 --- a/chromium/ui/accessibility/ax_mode.cc +++ b/chromium/ui/accessibility/ax_mode.cc @@ -41,6 +41,9 @@ std::string AXMode::ToString() const { case AXMode::kLabelImages: flag_name = "kLabelImages"; break; + case AXMode::kPDF: + flag_name = "kPDF"; + break; } DCHECK(flag_name); diff --git a/chromium/ui/accessibility/ax_mode.h b/chromium/ui/accessibility/ax_mode.h index 8e0b2dc5fc0..2536ad56236 100644 --- a/chromium/ui/accessibility/ax_mode.h +++ b/chromium/ui/accessibility/ax_mode.h @@ -10,7 +10,6 @@ #include #include -#include "base/logging.h" #include "ui/accessibility/ax_export.h" namespace ui { @@ -60,10 +59,14 @@ class AX_EXPORT AXMode { // The accessibility tree will contain automatic image annotations. static constexpr uint32_t kLabelImages = 1 << 5; + // The accessibility tree will contain enough information to export + // an accessible PDF. + static constexpr uint32_t kPDF = 1 << 6; + // Update this to include the last supported mode flag. If you add // another, be sure to update the stream insertion operator for // logging and debugging. - static constexpr uint32_t kLastModeFlag = 1 << 5; + static constexpr uint32_t kLastModeFlag = 1 << 6; constexpr AXMode() : flags_(0) {} constexpr AXMode(uint32_t flags) : flags_(flags) {} diff --git a/chromium/ui/accessibility/ax_node.cc b/chromium/ui/accessibility/ax_node.cc index b81f1491c31..3c7b06ecd91 100644 --- a/chromium/ui/accessibility/ax_node.cc +++ b/chromium/ui/accessibility/ax_node.cc @@ -10,6 +10,7 @@ #include "base/strings/string16.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" +#include "build/build_config.h" #include "ui/accessibility/ax_enums.mojom.h" #include "ui/accessibility/ax_language_detection.h" #include "ui/accessibility/ax_role_properties.h" @@ -36,6 +37,7 @@ AXNode::AXNode(AXNode::OwnerTree* tree, AXNode::~AXNode() = default; size_t AXNode::GetUnignoredChildCount() const { + // TODO(nektar): Should DCHECK if the node is not ignored. DCHECK(!tree_->GetTreeUpdateInProgressState()); return unignored_child_count_; } @@ -320,7 +322,7 @@ AXNode::UnignoredChildIterator AXNode::UnignoredChildrenEnd() const { // The first (direct) child, ignored or unignored. AXNode* AXNode::GetFirstChild() const { - if (children().size() == 0) + if (children().empty()) return nullptr; return children()[0]; } @@ -354,9 +356,13 @@ AXNode* AXNode::GetNextSibling() const { } bool AXNode::IsText() const { - return data().role == ax::mojom::Role::kStaticText || - data().role == ax::mojom::Role::kLineBreak || - data().role == ax::mojom::Role::kInlineTextBox; + // In Legacy Layout, a list marker has no children and is thus represented on + // all platforms as a leaf node that exposes the marker itself, i.e., it forms + // part of the AX tree's text representation. In contrast, in Layout NG, a + // list marker has a static text child. + if (data().role == ax::mojom::Role::kListMarker) + return !children().size(); + return ui::IsText(data().role); } bool AXNode::IsLineBreak() const { @@ -477,6 +483,61 @@ void AXNode::ClearLanguageInfo() { language_info_.reset(); } +std::string AXNode::GetInnerText() const { + // If a text field has no descendants, then we compute its inner text from its + // value or its placeholder. Otherwise we prefer to look at its descendant + // text nodes because Blink doesn't always add all trailing white space to the + // value attribute. + if (data().IsTextField() && children().empty()) { + std::string value = + data().GetStringAttribute(ax::mojom::StringAttribute::kValue); + // If the value is empty, then there might be some placeholder text in the + // text field, or any other name that is derived from visible contents, even + // if the text field has no children. + if (!value.empty()) + return value; + } + + // Ordinarily, plain text fields are leaves. We need to exclude them from the + // set of leaf nodes when they expose any descendants if we want to compute + // their inner text from their descendant text nodes. + if (IsLeaf() && !(data().IsTextField() && !children().empty())) { + switch (data().GetNameFrom()) { + case ax::mojom::NameFrom::kNone: + case ax::mojom::NameFrom::kUninitialized: + // The accessible name is not displayed on screen, e.g. aria-label, or is + // not displayed directly inside the node, e.g. an associated label + // element. + case ax::mojom::NameFrom::kAttribute: + // The node's accessible name is explicitly empty. + case ax::mojom::NameFrom::kAttributeExplicitlyEmpty: + // The accessible name does not represent the entirety of the node's inner + // text, e.g. a table's caption or a figure's figcaption. + case ax::mojom::NameFrom::kCaption: + case ax::mojom::NameFrom::kRelatedElement: + // The accessible name is not displayed directly inside the node but is + // visible via e.g. a tooltip. + case ax::mojom::NameFrom::kTitle: + return std::string(); + + case ax::mojom::NameFrom::kContents: + // The placeholder text is initially displayed inside the text field and + // takes the place of its value. + case ax::mojom::NameFrom::kPlaceholder: + // The value attribute takes the place of the node's inner text, e.g. the + // value of a submit button is displayed inside the button itself. + case ax::mojom::NameFrom::kValue: + return data().GetStringAttribute(ax::mojom::StringAttribute::kName); + } + } + + std::string inner_text; + for (auto it = UnignoredChildrenBegin(); it != UnignoredChildrenEnd(); ++it) { + inner_text += it->GetInnerText(); + } + return inner_text; +} + std::string AXNode::GetLanguage() const { // Walk up tree considering both detected and author declared languages. for (const AXNode* cur = this; cur; cur = cur->parent()) { @@ -584,44 +645,52 @@ AXNode* AXNode::GetTableCellFromCoords(int row_index, int col_index) const { table_info->cell_ids[size_t{row_index}][size_t{col_index}]); } -void AXNode::GetTableColHeaderNodeIds( - int col_index, - std::vector* col_header_ids) const { - DCHECK(col_header_ids); +std::vector AXNode::GetTableColHeaderNodeIds() const { + const AXTableInfo* table_info = GetAncestorTableInfo(); + if (!table_info) + return std::vector(); + + std::vector col_header_ids; + // Flatten and add column header ids of each column to |col_header_ids|. + for (std::vector col_headers_at_index : + table_info->col_headers) { + col_header_ids.insert(col_header_ids.end(), col_headers_at_index.begin(), + col_headers_at_index.end()); + } + + return col_header_ids; +} + +std::vector AXNode::GetTableColHeaderNodeIds( + int col_index) const { const AXTableInfo* table_info = GetAncestorTableInfo(); if (!table_info) - return; + return std::vector(); if (col_index < 0 || size_t{col_index} >= table_info->col_count) - return; + return std::vector(); - for (size_t i = 0; i < table_info->col_headers[size_t{col_index}].size(); i++) - col_header_ids->push_back(table_info->col_headers[size_t{col_index}][i]); + return std::vector(table_info->col_headers[size_t{col_index}]); } -void AXNode::GetTableRowHeaderNodeIds( - int row_index, - std::vector* row_header_ids) const { - DCHECK(row_header_ids); +std::vector AXNode::GetTableRowHeaderNodeIds( + int row_index) const { const AXTableInfo* table_info = GetAncestorTableInfo(); if (!table_info) - return; + return std::vector(); if (row_index < 0 || size_t{row_index} >= table_info->row_count) - return; + return std::vector(); - for (size_t i = 0; i < table_info->row_headers[size_t{row_index}].size(); i++) - row_header_ids->push_back(table_info->row_headers[size_t{row_index}][i]); + return std::vector(table_info->row_headers[size_t{row_index}]); } -void AXNode::GetTableUniqueCellIds(std::vector* cell_ids) const { - DCHECK(cell_ids); +std::vector AXNode::GetTableUniqueCellIds() const { const AXTableInfo* table_info = GetAncestorTableInfo(); if (!table_info) - return; + return std::vector(); - cell_ids->assign(table_info->unique_cell_ids.begin(), - table_info->unique_cell_ids.end()); + return std::vector(table_info->unique_cell_ids); } const std::vector* AXNode::GetExtraMacNodes() const { @@ -792,47 +861,39 @@ base::Optional AXNode::GetTableCellAriaRowIndex() const { return int{table_info->cell_data_vector[*index].aria_row_index}; } -void AXNode::GetTableCellColHeaderNodeIds( - std::vector* col_header_ids) const { - DCHECK(col_header_ids); +std::vector AXNode::GetTableCellColHeaderNodeIds() const { const AXTableInfo* table_info = GetAncestorTableInfo(); if (!table_info || table_info->col_count <= 0) - return; + return std::vector(); // If this node is not a cell, then return the headers for the first column. int col_index = GetTableCellColIndex().value_or(0); - const auto& col = table_info->col_headers[col_index]; - for (int header : col) - col_header_ids->push_back(header); + + return std::vector(table_info->col_headers[col_index]); } void AXNode::GetTableCellColHeaders(std::vector* col_headers) const { DCHECK(col_headers); - std::vector col_header_ids; - GetTableCellColHeaderNodeIds(&col_header_ids); + std::vector col_header_ids = GetTableCellColHeaderNodeIds(); IdVectorToNodeVector(col_header_ids, col_headers); } -void AXNode::GetTableCellRowHeaderNodeIds( - std::vector* row_header_ids) const { - DCHECK(row_header_ids); +std::vector AXNode::GetTableCellRowHeaderNodeIds() const { const AXTableInfo* table_info = GetAncestorTableInfo(); if (!table_info || table_info->row_count <= 0) - return; + return std::vector(); // If this node is not a cell, then return the headers for the first row. int row_index = GetTableCellRowIndex().value_or(0); - const auto& row = table_info->row_headers[row_index]; - for (int header : row) - row_header_ids->push_back(header); + + return std::vector(table_info->row_headers[row_index]); } void AXNode::GetTableCellRowHeaders(std::vector* row_headers) const { DCHECK(row_headers); - std::vector row_header_ids; - GetTableCellRowHeaderNodeIds(&row_header_ids); + std::vector row_header_ids = GetTableCellRowHeaderNodeIds(); IdVectorToNodeVector(row_header_ids, row_headers); } @@ -902,51 +963,14 @@ bool AXNode::IsOrderedSet() const { return ui::IsSetLike(data().role); } -// pos_in_set and set_size related functions. -// Uses AXTree's cache to calculate node's pos_in_set. +// Uses AXTree's cache to calculate node's PosInSet. base::Optional AXNode::GetPosInSet() { - // Only allow this to be called on nodes that can hold pos_in_set values, - // which are defined in the ARIA spec. - if (!IsOrderedSetItem() || IsIgnored()) - return base::nullopt; - - const AXNode* ordered_set = GetOrderedSet(); - if (!ordered_set) { - return base::nullopt; - } - - // If tree is being updated, return no value. - if (tree()->GetTreeUpdateInProgressState()) - return base::nullopt; - - // See AXTree::GetPosInSet - return tree_->GetPosInSet(*this, ordered_set); + return tree_->GetPosInSet(*this); } -// Uses AXTree's cache to calculate node's set_size. +// Uses AXTree's cache to calculate node's SetSize. base::Optional AXNode::GetSetSize() { - // Only allow this to be called on nodes that can hold set_size values, which - // are defined in the ARIA spec. - if ((!IsOrderedSetItem() && !IsOrderedSet()) || IsIgnored()) - return base::nullopt; - - // If node is item-like, find its outerlying ordered set. Otherwise, - // this node is the ordered set. - const AXNode* ordered_set = this; - if (IsItemLike(data().role)) - ordered_set = GetOrderedSet(); - if (!ordered_set) - return base::nullopt; - - // If tree is being updated, return no value. - if (tree()->GetTreeUpdateInProgressState()) - return base::nullopt; - - // See AXTree::GetSetSize - int32_t set_size = tree_->GetSetSize(*this, ordered_set); - if (set_size < 0) - return base::nullopt; - return set_size; + return tree_->GetSetSize(*this); } // Returns true if the role of ordered set matches the role of item. @@ -1001,7 +1025,8 @@ bool AXNode::SetRoleMatchesItemRole(const AXNode* ordered_set) const { } bool AXNode::IsIgnoredContainerForOrderedSet() const { - return IsIgnored() || data().role == ax::mojom::Role::kListItem || + return IsIgnored() || IsEmbeddedGroup() || + data().role == ax::mojom::Role::kListItem || data().role == ax::mojom::Role::kGenericContainer || data().role == ax::mojom::Role::kUnknown; } @@ -1020,17 +1045,16 @@ int AXNode::UpdateUnignoredCachedValuesRecursive(int startIndex) { return count; } -// Finds ordered set that immediately contains node. +// Finds ordered set that contains node. // Is not required for set's role to match node's role. AXNode* AXNode::GetOrderedSet() const { AXNode* result = parent(); // Continue walking up while parent is invalid, ignored, a generic container, - // or unknown. - while (result && (result->IsIgnored() || - result->data().role == ax::mojom::Role::kGenericContainer || - result->data().role == ax::mojom::Role::kUnknown)) { + // unknown, or embedded group. + while (result && result->IsIgnoredContainerForOrderedSet()) { result = result->parent(); } + return result; } @@ -1069,6 +1093,70 @@ bool AXNode::IsIgnored() const { return data().IsIgnored(); } +bool AXNode::IsChildOfLeaf() const { + const AXNode* ancestor = GetUnignoredParent(); + while (ancestor) { + if (ancestor->IsLeaf()) + return true; + ancestor = ancestor->GetUnignoredParent(); + } + return false; +} + +bool AXNode::IsLeaf() const { + return !GetUnignoredChildCount() || IsLeafIncludingIgnored(); +} + +bool AXNode::IsLeafIncludingIgnored() const { + if (children().empty()) + return true; + +#if defined(OS_WIN) + // On Windows, we want to hide the subtree of a collapsed , ,