summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/public
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-29 10:46:47 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-11-02 12:02:10 +0000
commit99677208ff3b216fdfec551fbe548da5520cd6fb (patch)
tree476a4865c10320249360e859d8fdd3e01833b03a /chromium/third_party/blink/public
parentc30a6232df03e1efbd9f3b226777b07e087a1122 (diff)
downloadqtwebengine-chromium-99677208ff3b216fdfec551fbe548da5520cd6fb.tar.gz
BASELINE: Update Chromium to 86.0.4240.124
Change-Id: Ide0ff151e94cd665ae6521a446995d34a9d1d644 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/blink/public')
-rw-r--r--chromium/third_party/blink/public/BUILD.gn31
-rw-r--r--chromium/third_party/blink/public/common/BUILD.gn30
-rw-r--r--chromium/third_party/blink/public/common/DEPS5
-rw-r--r--chromium/third_party/blink/public/common/action_after_pagehide.h25
-rw-r--r--chromium/third_party/blink/public/common/bluetooth/web_bluetooth_device_id_mojom_traits.h2
-rw-r--r--chromium/third_party/blink/public/common/feature_policy/document_policy.h35
-rw-r--r--chromium/third_party/blink/public/common/feature_policy/document_policy_features.h4
-rw-r--r--chromium/third_party/blink/public/common/feature_policy/feature_policy.h90
-rw-r--r--chromium/third_party/blink/public/common/feature_policy/feature_policy_features.h43
-rw-r--r--chromium/third_party/blink/public/common/feature_policy/feature_policy_forward.h14
-rw-r--r--chromium/third_party/blink/public/common/feature_policy/policy_value.h20
-rw-r--r--chromium/third_party/blink/public/common/features.h51
-rw-r--r--chromium/third_party/blink/public/common/fetch/OWNERS2
-rw-r--r--chromium/third_party/blink/public/common/fetch/fetch_api_request_body.typemap18
-rw-r--r--chromium/third_party/blink/public/common/fetch/fetch_api_request_body_mojom_traits.h4
-rw-r--r--chromium/third_party/blink/public/common/fetch/fetch_api_request_headers.typemap12
-rw-r--r--chromium/third_party/blink/public/common/fetch/fetch_api_request_headers_mojom_traits.h2
-rw-r--r--chromium/third_party/blink/public/common/font_access/OWNERS7
-rw-r--r--chromium/third_party/blink/public/common/font_access/font_enumeration_table.proto20
-rw-r--r--chromium/third_party/blink/public/common/frame/frame_policy.h6
-rw-r--r--chromium/third_party/blink/public/common/frame/user_activation_state.h15
-rw-r--r--chromium/third_party/blink/public/common/indexeddb/OWNERS2
-rw-r--r--chromium/third_party/blink/public/common/indexeddb/indexed_db_default.typemap25
-rw-r--r--chromium/third_party/blink/public/common/indexeddb/indexed_db_default_mojom_traits.h1
-rw-r--r--chromium/third_party/blink/public/common/input/web_mouse_event.h4
-rw-r--r--chromium/third_party/blink/public/common/loader/OWNERS2
-rw-r--r--chromium/third_party/blink/public/common/loader/loading_behavior_flag.h10
-rw-r--r--chromium/third_party/blink/public/common/loader/network_utils.h21
-rw-r--r--chromium/third_party/blink/public/common/loader/previews_state.h88
-rw-r--r--chromium/third_party/blink/public/common/loader/referrer_utils.h28
-rw-r--r--chromium/third_party/blink/public/common/loader/url_loader_factory_bundle.h2
-rw-r--r--chromium/third_party/blink/public/common/loader/url_loader_factory_bundle.typemap14
-rw-r--r--chromium/third_party/blink/public/common/loader/url_loader_factory_bundle_mojom_traits.h1
-rw-r--r--chromium/third_party/blink/public/common/loader/worker_main_script_load_parameters.h35
-rw-r--r--chromium/third_party/blink/public/common/manifest/OWNERS3
-rw-r--r--chromium/third_party/blink/public/common/manifest/manifest.h19
-rw-r--r--chromium/third_party/blink/public/common/manifest/manifest.typemap24
-rw-r--r--chromium/third_party/blink/public/common/manifest/manifest_mojom_traits.h15
-rw-r--r--chromium/third_party/blink/public/common/manifest/manifest_util.h16
-rw-r--r--chromium/third_party/blink/public/common/mediastream/OWNERS2
-rw-r--r--chromium/third_party/blink/public/common/mediastream/media_devices.h6
-rw-r--r--chromium/third_party/blink/public/common/mediastream/media_devices.typemap20
-rw-r--r--chromium/third_party/blink/public/common/mediastream/media_stream.typemap23
-rw-r--r--chromium/third_party/blink/public/common/mediastream/media_stream_request.h18
-rw-r--r--chromium/third_party/blink/public/common/messaging/OWNERS2
-rw-r--r--chromium/third_party/blink/public/common/messaging/message_port_descriptor.typemap12
-rw-r--r--chromium/third_party/blink/public/common/messaging/transferable_message.h11
-rw-r--r--chromium/third_party/blink/public/common/messaging/transferable_message_mojom_traits.h8
-rw-r--r--chromium/third_party/blink/public/common/messaging/web_message_port.h6
-rw-r--r--chromium/third_party/blink/public/common/metrics/form_element_pii_type.h27
-rw-r--r--chromium/third_party/blink/public/common/notifications/OWNERS3
-rw-r--r--chromium/third_party/blink/public/common/notifications/notification_mojom_traits.h3
-rw-r--r--chromium/third_party/blink/public/common/notifications/notification_types.typemap19
-rw-r--r--chromium/third_party/blink/public/common/notifications/platform_notification_data.h2
-rw-r--r--chromium/third_party/blink/public/common/origin_trials/trial_token_validator.h1
-rw-r--r--chromium/third_party/blink/public/common/peerconnection/OWNERS2
-rw-r--r--chromium/third_party/blink/public/common/peerconnection/peer_connection_tracker.typemap16
-rw-r--r--chromium/third_party/blink/public/common/peerconnection/peer_connection_tracker_mojom_traits.h2
-rw-r--r--chromium/third_party/blink/public/common/privacy_budget/BUILD.gn18
-rw-r--r--chromium/third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h17
-rw-r--r--chromium/third_party/blink/public/common/privacy_budget/identifiability_metrics.h4
-rw-r--r--chromium/third_party/blink/public/common/privacy_budget/identifiability_sample_collector.h55
-rw-r--r--chromium/third_party/blink/public/common/privacy_budget/identifiable_sample.h31
-rw-r--r--chromium/third_party/blink/public/common/privacy_budget/identifiable_surface.h80
-rw-r--r--chromium/third_party/blink/public/common/privacy_budget/identifiable_token.h8
-rw-r--r--chromium/third_party/blink/public/common/privacy_budget/identifiable_token_builder.h6
-rw-r--r--chromium/third_party/blink/public/common/privacy_budget/scoped_identifiability_test_sample_collector.h64
-rw-r--r--chromium/third_party/blink/public/common/privacy_budget/scoped_switch_sample_collector.h54
-rw-r--r--chromium/third_party/blink/public/common/scheduler/web_scheduler_tracked_feature.h10
-rw-r--r--chromium/third_party/blink/public/common/screen_orientation/DEPS3
-rw-r--r--chromium/third_party/blink/public/common/screen_orientation/OWNERS9
-rw-r--r--chromium/third_party/blink/public/common/screen_orientation/screen_orientation_lock_types.typemap11
-rw-r--r--chromium/third_party/blink/public/common/screen_orientation/web_screen_orientation_lock_type.h24
-rw-r--r--chromium/third_party/blink/public/common/screen_orientation/web_screen_orientation_mojom_traits.h80
-rw-r--r--chromium/third_party/blink/public/common/screen_orientation/web_screen_orientation_type.h22
-rw-r--r--chromium/third_party/blink/public/common/switches.h1
-rw-r--r--chromium/third_party/blink/public/common/tokens/OWNERS2
-rw-r--r--chromium/third_party/blink/public/common/tokens/README.md29
-rw-r--r--chromium/third_party/blink/public/common/tokens/multi_token.h174
-rw-r--r--chromium/third_party/blink/public/common/tokens/multi_token_internal.h230
-rw-r--r--chromium/third_party/blink/public/common/tokens/token_mojom_traits_helper.h35
-rw-r--r--chromium/third_party/blink/public/common/tokens/tokens.h112
-rw-r--r--chromium/third_party/blink/public/common/tokens/tokens_mojom_traits.h182
-rw-r--r--chromium/third_party/blink/public/common/user_agent/OWNERS3
-rw-r--r--chromium/third_party/blink/public/common/user_agent/user_agent_metadata.typemap17
-rw-r--r--chromium/third_party/blink/public/common/user_agent/user_agent_mojom_traits.h2
-rw-r--r--chromium/third_party/blink/public/common/widget/OWNERS2
-rw-r--r--chromium/third_party/blink/public/common/widget/device_emulation_params.h (renamed from chromium/third_party/blink/public/web/web_device_emulation_params.h)65
-rw-r--r--chromium/third_party/blink/public/common/widget/device_emulation_params_mojom_traits.h72
-rw-r--r--chromium/third_party/blink/public/common/widget/screen_info.h (renamed from chromium/third_party/blink/public/platform/web_screen_info.h)40
-rw-r--r--chromium/third_party/blink/public/common/widget/screen_info_mojom_traits.h60
-rw-r--r--chromium/third_party/blink/public/common/widget/visual_properties.h130
-rw-r--r--chromium/third_party/blink/public/common/widget/visual_properties_mojom_traits.h100
-rw-r--r--chromium/third_party/blink/public/devtools_protocol/browser_protocol.pdl298
-rw-r--r--chromium/third_party/blink/public/mojom/BUILD.gn563
-rw-r--r--chromium/third_party/blink/public/mojom/blob/blob.mojom10
-rw-r--r--chromium/third_party/blink/public/mojom/bluetooth/bluetooth.typemap16
-rw-r--r--chromium/third_party/blink/public/mojom/devtools/inspector_issue.mojom26
-rw-r--r--chromium/third_party/blink/public/mojom/digital_goods/digital_goods.mojom37
-rw-r--r--chromium/third_party/blink/public/mojom/feature_policy/PRESUBMIT.py4
-rw-r--r--chromium/third_party/blink/public/mojom/feature_policy/document_policy_feature.mojom4
-rw-r--r--chromium/third_party/blink/public/mojom/feature_policy/feature_policy.mojom4
-rw-r--r--chromium/third_party/blink/public/mojom/feature_policy/feature_policy_feature.mojom9
-rw-r--r--chromium/third_party/blink/public/mojom/fetch/fetch_api_request.mojom2
-rw-r--r--chromium/third_party/blink/public/mojom/fetch/fetch_api_response.mojom4
-rw-r--r--chromium/third_party/blink/public/mojom/font_access/OWNERS7
-rw-r--r--chromium/third_party/blink/public/mojom/font_access/font_access.mojom32
-rw-r--r--chromium/third_party/blink/public/mojom/frame/BUILD.gn2
-rw-r--r--chromium/third_party/blink/public/mojom/frame/back_forward_cache_controller.mojom18
-rw-r--r--chromium/third_party/blink/public/mojom/frame/frame.mojom149
-rw-r--r--chromium/third_party/blink/public/mojom/frame/fullscreen.mojom9
-rw-r--r--chromium/third_party/blink/public/mojom/frame/sudden_termination_disabler_type.mojom4
-rw-r--r--chromium/third_party/blink/public/mojom/frame/user_activation_notification_type.mojom51
-rw-r--r--chromium/third_party/blink/public/mojom/hid/hid.mojom2
-rw-r--r--chromium/third_party/blink/public/mojom/indexeddb/indexeddb.mojom48
-rw-r--r--chromium/third_party/blink/public/mojom/input/input_handler.mojom10
-rw-r--r--chromium/third_party/blink/public/mojom/input/touch_event.mojom6
-rw-r--r--chromium/third_party/blink/public/mojom/loader/content_security_notifier.mojom30
-rw-r--r--chromium/third_party/blink/public/mojom/loader/previews_resource_loading_hints.mojom5
-rw-r--r--chromium/third_party/blink/public/mojom/loader/referrer.mojom (renamed from chromium/third_party/blink/public/mojom/referrer.mojom)0
-rw-r--r--chromium/third_party/blink/public/mojom/loader/resource_load_info_notifier.mojom34
-rw-r--r--chromium/third_party/blink/public/mojom/loader/transferrable_url_loader.mojom18
-rw-r--r--chromium/third_party/blink/public/mojom/manifest/README.md2
-rw-r--r--chromium/third_party/blink/public/mojom/manifest/manifest.mojom4
-rw-r--r--chromium/third_party/blink/public/mojom/media/OWNERS4
-rw-r--r--chromium/third_party/blink/public/mojom/media/renderer_audio_input_stream_factory.mojom50
-rw-r--r--chromium/third_party/blink/public/mojom/media/renderer_audio_output_stream_factory.mojom30
-rw-r--r--chromium/third_party/blink/public/mojom/messaging/transferable_message.mojom5
-rw-r--r--chromium/third_party/blink/public/mojom/native_file_system/native_file_system_drag_drop_token.mojom24
-rw-r--r--chromium/third_party/blink/public/mojom/native_file_system/native_file_system_error.mojom2
-rw-r--r--chromium/third_party/blink/public/mojom/native_file_system/native_file_system_manager.mojom10
-rw-r--r--chromium/third_party/blink/public/mojom/native_io/native_io.mojom11
-rw-r--r--chromium/third_party/blink/public/mojom/optimization_guide/OWNERS9
-rw-r--r--chromium/third_party/blink/public/mojom/optimization_guide/optimization_guide.mojom32
-rw-r--r--chromium/third_party/blink/public/mojom/page/drag.mojom96
-rw-r--r--chromium/third_party/blink/public/mojom/page/page.mojom35
-rw-r--r--chromium/third_party/blink/public/mojom/page/spatial_navigation.mojom28
-rw-r--r--chromium/third_party/blink/public/mojom/page/widget.mojom78
-rw-r--r--chromium/third_party/blink/public/mojom/payments/payment_credential.mojom37
-rw-r--r--chromium/third_party/blink/public/mojom/payments/payment_request.mojom38
-rw-r--r--chromium/third_party/blink/public/mojom/performance_manager/OWNERS5
-rw-r--r--chromium/third_party/blink/public/mojom/performance_manager/v8_per_frame_memory.mojom74
-rw-r--r--chromium/third_party/blink/public/mojom/permissions/permission.mojom1
-rw-r--r--chromium/third_party/blink/public/mojom/portal/portal.mojom2
-rw-r--r--chromium/third_party/blink/public/mojom/prerender/prerender.mojom2
-rw-r--r--chromium/third_party/blink/public/mojom/push_messaging/push_messaging.mojom2
-rw-r--r--chromium/third_party/blink/public/mojom/push_messaging/push_messaging_status.mojom19
-rw-r--r--chromium/third_party/blink/public/mojom/quota/quota_manager_host.mojom14
-rw-r--r--chromium/third_party/blink/public/mojom/renderer_preferences.mojom8
-rw-r--r--chromium/third_party/blink/public/mojom/screen_enumeration/screen_enumeration.mojom31
-rw-r--r--chromium/third_party/blink/public/mojom/service_worker/embedded_worker.mojom12
-rw-r--r--chromium/third_party/blink/public/mojom/service_worker/service_worker.mojom24
-rw-r--r--chromium/third_party/blink/public/mojom/storage_access/OWNERS4
-rw-r--r--chromium/third_party/blink/public/mojom/storage_access/storage_access_automation.mojom14
-rw-r--r--chromium/third_party/blink/public/mojom/tokens/BUILD.gn106
-rw-r--r--chromium/third_party/blink/public/mojom/tokens/OWNERS2
-rw-r--r--chromium/third_party/blink/public/mojom/tokens/tokens.mojom108
-rw-r--r--chromium/third_party/blink/public/mojom/use_counter/css_property_id.mojom4
-rw-r--r--chromium/third_party/blink/public/mojom/web_feature/web_feature.mojom114
-rw-r--r--chromium/third_party/blink/public/mojom/webauthn/authenticator.mojom39
-rw-r--r--chromium/third_party/blink/public/mojom/widget/OWNERS2
-rw-r--r--chromium/third_party/blink/public/mojom/widget/device_emulation_params.mojom52
-rw-r--r--chromium/third_party/blink/public/mojom/widget/screen_info.mojom49
-rw-r--r--chromium/third_party/blink/public/mojom/widget/screen_orientation.mojom16
-rw-r--r--chromium/third_party/blink/public/mojom/widget/visual_properties.mojom91
-rw-r--r--chromium/third_party/blink/public/mojom/worker/dedicated_worker_host_factory.mojom3
-rw-r--r--chromium/third_party/blink/public/mojom/worker/shared_worker_connector.mojom3
-rw-r--r--chromium/third_party/blink/public/mojom/worker/shared_worker_factory.mojom12
-rw-r--r--chromium/third_party/blink/public/platform/DEPS3
-rw-r--r--chromium/third_party/blink/public/platform/TaskTypes.md5
-rw-r--r--chromium/third_party/blink/public/platform/input/elastic_overscroll_controller.h48
-rw-r--r--chromium/third_party/blink/public/platform/input/input_handler_proxy.h13
-rw-r--r--chromium/third_party/blink/public/platform/input/input_predictor.h85
-rw-r--r--chromium/third_party/blink/public/platform/input/predictor_factory.h4
-rw-r--r--chromium/third_party/blink/public/platform/input/synchronous_compositor_registry.h25
-rw-r--r--chromium/third_party/blink/public/platform/input/synchronous_layer_tree_frame_sink.h71
-rw-r--r--chromium/third_party/blink/public/platform/internet_disconnected_web_url_loader.h74
-rw-r--r--chromium/third_party/blink/public/platform/media/webmediaplayer_delegate.h21
-rw-r--r--chromium/third_party/blink/public/platform/modules/mediastream/web_media_element_source_utils.h23
-rw-r--r--chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream.h (renamed from chromium/third_party/blink/public/platform/web_media_stream.h)31
-rw-r--r--chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream_sink.h4
-rw-r--r--chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream_source.h (renamed from chromium/third_party/blink/public/platform/web_media_stream_source.h)56
-rw-r--r--chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream_track.h (renamed from chromium/third_party/blink/public/platform/web_media_stream_track.h)68
-rw-r--r--chromium/third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_source.h2
-rw-r--r--chromium/third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_track.h50
-rw-r--r--chromium/third_party/blink/public/platform/platform.h65
-rw-r--r--chromium/third_party/blink/public/platform/scheduler/web_thread_scheduler.h5
-rw-r--r--chromium/third_party/blink/public/platform/task_type.h22
-rw-r--r--chromium/third_party/blink/public/platform/viewport_intersection_state.h18
-rw-r--r--chromium/third_party/blink/public/platform/web_battery_savings.h25
-rw-r--r--chromium/third_party/blink/public/platform/web_code_cache_loader.h (renamed from chromium/third_party/blink/public/platform/code_cache_loader.h)23
-rw-r--r--chromium/third_party/blink/public/platform/web_content_decryption_module_session.h13
-rw-r--r--chromium/third_party/blink/public/platform/web_content_settings_client.h5
-rw-r--r--chromium/third_party/blink/public/platform/web_dedicated_worker.h7
-rw-r--r--chromium/third_party/blink/public/platform/web_dedicated_worker_host_factory_client.h4
-rw-r--r--chromium/third_party/blink/public/platform/web_drag_data.h27
-rw-r--r--chromium/third_party/blink/public/platform/web_failing_url_loader_factory.h28
-rw-r--r--chromium/third_party/blink/public/platform/web_frame_request_blocker.h43
-rw-r--r--chromium/third_party/blink/public/platform/web_graphics_context_3d_provider.h4
-rw-r--r--chromium/third_party/blink/public/platform/web_isolate.h24
-rw-r--r--chromium/third_party/blink/public/platform/web_isolated_world_info.h15
-rw-r--r--chromium/third_party/blink/public/platform/web_media_player_client.h5
-rw-r--r--chromium/third_party/blink/public/platform/web_media_player_source.h2
-rw-r--r--chromium/third_party/blink/public/platform/web_mixed_content.h6
-rw-r--r--chromium/third_party/blink/public/platform/web_runtime_features.h12
-rw-r--r--chromium/third_party/blink/public/platform/web_string.h4
-rw-r--r--chromium/third_party/blink/public/platform/web_text_autosizer_page_info.h34
-rw-r--r--chromium/third_party/blink/public/platform/web_text_input_info.h5
-rw-r--r--chromium/third_party/blink/public/platform/web_texttrack_metadata.h35
-rw-r--r--chromium/third_party/blink/public/platform/web_theme_engine.h4
-rw-r--r--chromium/third_party/blink/public/platform/web_url_request.h40
-rw-r--r--chromium/third_party/blink/public/platform/web_worker_fetch_context.h25
-rw-r--r--chromium/third_party/blink/public/platform/webaudiosourceprovider_impl.h1
-rw-r--r--chromium/third_party/blink/public/public_typemaps.gni19
-rw-r--r--chromium/third_party/blink/public/strings/blink_strings.grd9
-rw-r--r--chromium/third_party/blink/public/strings/blink_strings_grd/IDS_AX_MULTISELECTABLE_STATE_DESCRIPTION.png.sha11
-rw-r--r--chromium/third_party/blink/public/strings/blink_strings_grd/IDS_AX_MULTISELECTABLE_STATE_DESCRIPTION_NONE.png.sha11
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_af.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_am.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_ar.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_as.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_az.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_be.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_bg.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_bn.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_bs.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_ca.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_cs.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_da.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_de.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_el.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_en-GB.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_es-419.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_es.xtb5
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_et.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_eu.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_fa.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_fi.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_fil.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_fr-CA.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_fr.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_gl.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_gu.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_hi.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_hr.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_hu.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_hy.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_id.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_is.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_it.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_iw.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_ja.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_ka.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_kk.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_km.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_kn.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_ko.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_ky.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_lo.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_lt.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_lv.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_mk.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_ml.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_mn.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_mr.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_ms.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_my.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_ne.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_nl.xtb5
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_no.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_or.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_pa.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_pl.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_pt-BR.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_pt-PT.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_ro.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_ru.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_si.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_sk.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_sl.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_sq.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_sr-Latn.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_sr.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_sv.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_sw.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_ta.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_te.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_th.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_tr.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_uk.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_ur.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_uz.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_vi.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_zh-CN.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_zh-HK.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_zh-TW.xtb3
-rw-r--r--chromium/third_party/blink/public/strings/translations/blink_strings_zu.xtb3
-rw-r--r--chromium/third_party/blink/public/web/DEPS5
-rw-r--r--chromium/third_party/blink/public/web/mac/web_substring_util.h80
-rw-r--r--chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_sink.h2
-rw-r--r--chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h4
-rw-r--r--chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_track.h199
-rw-r--r--chromium/third_party/blink/public/web/modules/mediastream/web_media_stream_renderer_factory.h51
-rw-r--r--chromium/third_party/blink/public/web/modules/mediastream/web_media_stream_utils.h8
-rw-r--r--chromium/third_party/blink/public/web/modules/mediastream/webmediaplayer_ms.h14
-rw-r--r--chromium/third_party/blink/public/web/web_ax_object.h8
-rw-r--r--chromium/third_party/blink/public/web/web_context_menu_data.h5
-rw-r--r--chromium/third_party/blink/public/web/web_document_loader.h4
-rw-r--r--chromium/third_party/blink/public/web/web_dom_media_stream_track.h2
-rw-r--r--chromium/third_party/blink/public/web/web_embedded_worker_start_data.h7
-rw-r--r--chromium/third_party/blink/public/web/web_external_widget_client.h32
-rw-r--r--chromium/third_party/blink/public/web/web_form_control_element.h6
-rw-r--r--chromium/third_party/blink/public/web/web_frame.h12
-rw-r--r--chromium/third_party/blink/public/web/web_frame_widget.h34
-rw-r--r--chromium/third_party/blink/public/web/web_local_frame.h108
-rw-r--r--chromium/third_party/blink/public/web/web_local_frame_client.h76
-rw-r--r--chromium/third_party/blink/public/web/web_navigation_params.h23
-rw-r--r--chromium/third_party/blink/public/web/web_print_client.h22
-rw-r--r--chromium/third_party/blink/public/web/web_remote_frame.h24
-rw-r--r--chromium/third_party/blink/public/web/web_remote_frame_client.h21
-rw-r--r--chromium/third_party/blink/public/web/web_security_policy.h6
-rw-r--r--chromium/third_party/blink/public/web/web_settings.h6
-rw-r--r--chromium/third_party/blink/public/web/web_shared_worker.h25
-rw-r--r--chromium/third_party/blink/public/web/web_shared_worker_client.h14
-rw-r--r--chromium/third_party/blink/public/web/web_view.h61
-rw-r--r--chromium/third_party/blink/public/web/web_view_client.h18
-rw-r--r--chromium/third_party/blink/public/web/web_widget.h109
-rw-r--r--chromium/third_party/blink/public/web/web_widget_client.h135
328 files changed, 5722 insertions, 2148 deletions
diff --git a/chromium/third_party/blink/public/BUILD.gn b/chromium/third_party/blink/public/BUILD.gn
index d2e930bc641..d24b32acc8e 100644
--- a/chromium/third_party/blink/public/BUILD.gn
+++ b/chromium/third_party/blink/public/BUILD.gn
@@ -82,6 +82,7 @@ if (is_android) {
android_library("blink_headers_java") {
deps = [
"//services/network/public/mojom:mojom_java",
+ "//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_deps:com_android_support_support_annotations_java",
]
srcjar_deps = [ ":blink_headers_java_enums_srcjar" ]
@@ -114,29 +115,30 @@ source_set("blink_headers") {
"common/thread_safe_browser_interface_broker_proxy.h",
"platform/audio/web_audio_device_source_type.h",
"platform/blame_context.h",
- "platform/code_cache_loader.h",
"platform/cross_variant_mojo_util.h",
"platform/file_path_conversion.h",
- "platform/input/elastic_overscroll_controller.h",
"platform/input/input_handler_proxy.h",
"platform/input/input_handler_proxy_client.h",
- "platform/input/input_predictor.h",
"platform/input/predictor_factory.h",
+ "platform/input/synchronous_compositor_registry.h",
"platform/input/synchronous_input_handler_proxy.h",
+ "platform/input/synchronous_layer_tree_frame_sink.h",
"platform/interface_registry.h",
+ "platform/internet_disconnected_web_url_loader.h",
"platform/linux/web_sandbox_support.h",
"platform/mac/web_sandbox_support.h",
"platform/mac/web_scrollbar_theme.h",
"platform/media/webmediaplayer_delegate.h",
"platform/modules/mediastream/media_stream_types.h",
"platform/modules/mediastream/secure_display_link_tracker.h",
- "platform/modules/mediastream/web_media_element_source_utils.h",
+ "platform/modules/mediastream/web_media_stream.h",
"platform/modules/mediastream/web_media_stream_audio_renderer.h",
"platform/modules/mediastream/web_media_stream_audio_sink.h",
"platform/modules/mediastream/web_media_stream_sink.h",
+ "platform/modules/mediastream/web_media_stream_source.h",
+ "platform/modules/mediastream/web_media_stream_track.h",
"platform/modules/mediastream/web_media_stream_video_renderer.h",
"platform/modules/mediastream/web_platform_media_stream_source.h",
- "platform/modules/mediastream/web_platform_media_stream_track.h",
"platform/modules/remoteplayback/web_remote_playback_client.h",
"platform/modules/service_worker/web_service_worker_error.h",
"platform/modules/service_worker/web_service_worker_fetch_context.h",
@@ -164,10 +166,12 @@ source_set("blink_headers") {
"platform/web_audio_device.h",
"platform/web_audio_latency_hint.h",
"platform/web_audio_source_provider.h",
+ "platform/web_battery_savings.h",
"platform/web_blob_info.h",
"platform/web_cache.h",
"platform/web_callbacks.h",
"platform/web_client_hints_type.h",
+ "platform/web_code_cache_loader.h",
"platform/web_color_scheme.h",
"platform/web_common.h",
"platform/web_computed_ax_tree.h",
@@ -197,7 +201,6 @@ source_set("blink_headers") {
"platform/web_encrypted_media_key_information.h",
"platform/web_encrypted_media_request.h",
"platform/web_encrypted_media_types.h",
- "platform/web_failing_url_loader_factory.h",
"platform/web_fetch_client_settings_object.h",
"platform/web_file_system_type.h",
"platform/web_float_rect.h",
@@ -205,6 +208,7 @@ source_set("blink_headers") {
"platform/web_font.h",
"platform/web_font_description.h",
"platform/web_font_render_style.h",
+ "platform/web_frame_request_blocker.h",
"platform/web_gesture_curve.h",
"platform/web_graphics_context_3d_provider.h",
"platform/web_history_scroll_restoration_type.h",
@@ -217,7 +221,6 @@ source_set("blink_headers") {
"platform/web_inband_text_track.h",
"platform/web_inband_text_track_client.h",
"platform/web_input_event_result.h",
- "platform/web_isolate.h",
"platform/web_isolated_world_ids.h",
"platform/web_isolated_world_info.h",
"platform/web_loading_hints_provider.h",
@@ -228,9 +231,6 @@ source_set("blink_headers") {
"platform/web_media_player_encrypted_media_client.h",
"platform/web_media_player_source.h",
"platform/web_media_source.h",
- "platform/web_media_stream.h",
- "platform/web_media_stream_source.h",
- "platform/web_media_stream_track.h",
"platform/web_memory_pressure_level.h",
"platform/web_memory_pressure_listener.h",
"platform/web_mixed_content.h",
@@ -242,7 +242,6 @@ source_set("blink_headers") {
"platform/web_rect.h",
"platform/web_runtime_features.h",
"platform/web_scoped_page_pauser.h",
- "platform/web_screen_info.h",
"platform/web_scroll_anchor_data.h",
"platform/web_scrollbar_overlay_color_theme.h",
"platform/web_security_origin.h",
@@ -253,11 +252,11 @@ source_set("blink_headers") {
"platform/web_spell_check_panel_host_client.h",
"platform/web_string.h",
"platform/web_surface_layer_bridge.h",
- "platform/web_text_autosizer_page_info.h",
"platform/web_text_input_info.h",
"platform/web_text_input_mode.h",
"platform/web_text_input_type.h",
"platform/web_text_run.h",
+ "platform/web_texttrack_metadata.h",
"platform/web_theme_engine.h",
"platform/web_thread_safe_data.h",
"platform/web_time_range.h",
@@ -278,16 +277,12 @@ source_set("blink_headers") {
"platform/webaudiosourceprovider_impl.h",
"platform/websocket_handshake_throttle.h",
"web/blink.h",
- "web/mac/web_substring_util.h",
- "web/mac/web_substring_util.h",
"web/modules/autofill/web_form_element_observer.h",
"web/modules/media/webmediaplayer_util.h",
"web/modules/mediastream/encoded_video_frame.h",
"web/modules/mediastream/media_stream_video_sink.h",
"web/modules/mediastream/media_stream_video_source.h",
- "web/modules/mediastream/media_stream_video_track.h",
"web/modules/mediastream/web_media_stream_device_observer.h",
- "web/modules/mediastream/web_media_stream_renderer_factory.h",
"web/modules/mediastream/web_media_stream_utils.h",
"web/modules/mediastream/webmediaplayer_ms.h",
"web/modules/service_worker/web_service_worker_context_client.h",
@@ -310,7 +305,6 @@ source_set("blink_headers") {
"web/web_context_menu_data.h",
"web/web_crypto_normalize.h",
"web/web_custom_element.h",
- "web/web_device_emulation_params.h",
"web/web_document.h",
"web/web_document_loader.h",
"web/web_dom_activity_logger.h",
@@ -373,6 +367,7 @@ source_set("blink_headers") {
"web/web_plugin_script_forbidden_scope.h",
"web/web_popup_menu_info.h",
"web/web_prerenderer_client.h",
+ "web/web_print_client.h",
"web/web_print_page_description.h",
"web/web_print_params.h",
"web/web_print_preset_options.h",
@@ -424,6 +419,7 @@ source_set("blink_headers") {
":devtools_inspector_resources_grit",
":resources_grit",
"//net",
+ "//services/network/public/mojom:mojom_shared",
"//services/service_manager/public/cpp",
"//skia",
"//third_party/blink/public/common",
@@ -431,6 +427,7 @@ source_set("blink_headers") {
"//ui/base/cursor:cursor_base",
"//ui/base/ime",
"//ui/base/ime/mojom",
+ "//ui/base/prediction:prediction",
"//url",
]
diff --git a/chromium/third_party/blink/public/common/BUILD.gn b/chromium/third_party/blink/public/common/BUILD.gn
index 5e3396552aa..894e71306cd 100644
--- a/chromium/third_party/blink/public/common/BUILD.gn
+++ b/chromium/third_party/blink/public/common/BUILD.gn
@@ -15,6 +15,7 @@ component("common") {
output_name = "blink_common"
public_deps = [
+ "//third_party/blink/common/privacy_budget:privacy_budget",
"//third_party/blink/public/common:headers",
"//third_party/blink/public/mojom:mojom_modules",
"//third_party/blink/public/mojom:web_bluetooth_mojo_bindings",
@@ -32,7 +33,10 @@ buildflag_header("buildflags") {
}
source_set("common_export") {
- visibility = [ "//third_party/blink/public/common/*" ]
+ visibility = [
+ "//third_party/blink/public/common/*",
+ "//third_party/blink/common/*",
+ ]
sources = [ "common_export.h" ]
}
@@ -50,6 +54,7 @@ source_set("headers") {
]
sources = [
+ "action_after_pagehide.h",
"associated_interfaces/associated_interface_provider.h",
"associated_interfaces/associated_interface_registry.h",
"blob/blob_utils.h",
@@ -72,6 +77,8 @@ source_set("headers") {
"feature_policy/document_policy.h",
"feature_policy/document_policy_features.h",
"feature_policy/feature_policy.h",
+ "feature_policy/feature_policy_features.h",
+ "feature_policy/feature_policy_forward.h",
"feature_policy/policy_value.h",
"features.h",
"fetch/fetch_api_request_headers_map.h",
@@ -106,10 +113,14 @@ source_set("headers") {
"loader/loading_behavior_flag.h",
"loader/mime_sniffing_throttle.h",
"loader/mime_sniffing_url_loader.h",
+ "loader/network_utils.h",
+ "loader/previews_state.h",
+ "loader/referrer_utils.h",
"loader/resource_type_util.h",
"loader/url_loader_factory_bundle.h",
"loader/url_loader_factory_bundle_mojom_traits.h",
"loader/url_loader_throttle.h",
+ "loader/worker_main_script_load_parameters.h",
"logging/logging_utils.h",
"manifest/manifest.h",
"manifest/manifest_icon_selector.h",
@@ -130,6 +141,7 @@ source_set("headers") {
"messaging/transferable_message_mojom_traits.h",
"messaging/web_message_port.h",
"metrics/document_update_reason.h",
+ "metrics/form_element_pii_type.h",
"mime_util/mime_util.h",
"navigation/triggering_event_info.h",
"notifications/notification_constants.h",
@@ -149,8 +161,6 @@ source_set("headers") {
"permissions/permission_utils.h",
"prerender/prerender_rel_type.h",
"scheduler/web_scheduler_tracked_feature.h",
- "screen_orientation/web_screen_orientation_lock_type.h",
- "screen_orientation/web_screen_orientation_type.h",
"security/security_style.h",
"security_context/insecure_request_policy.h",
"service_worker/service_worker_status_code.h",
@@ -160,10 +170,18 @@ source_set("headers") {
"sms/sms_receiver_destroyed_reason.h",
"sms/sms_receiver_outcome.h",
"switches.h",
+ "tokens/multi_token.h",
+ "tokens/multi_token_internal.h",
+ "tokens/token_mojom_traits_helper.h",
+ "tokens/tokens.h",
+ "tokens/tokens_mojom_traits.h",
"user_agent/user_agent_metadata.h",
"web_cache/web_cache_resource_type_stats.h",
"web_package/signed_exchange_consts.h",
"web_package/web_package_request_matcher.h",
+ "widget/device_emulation_params.h",
+ "widget/screen_info.h",
+ "widget/visual_properties.h",
]
public_deps = [
@@ -185,6 +203,8 @@ source_set("headers") {
":buildflags",
":common_export",
"//base",
+ "//cc",
+ "//components/viz/common",
"//mojo/public/cpp/bindings",
"//mojo/public/cpp/system",
"//mojo/public/mojom/base",
@@ -224,3 +244,7 @@ if (is_android || is_win) {
sources = [ "font_unique_name_lookup/font_unique_name_table.proto" ]
}
}
+
+proto_library("font_enumeration_table_proto") {
+ sources = [ "font_access/font_enumeration_table.proto" ]
+}
diff --git a/chromium/third_party/blink/public/common/DEPS b/chromium/third_party/blink/public/common/DEPS
index 37c24b27f95..46621c02ad4 100644
--- a/chromium/third_party/blink/public/common/DEPS
+++ b/chromium/third_party/blink/public/common/DEPS
@@ -9,9 +9,12 @@ include_rules = [
"+base",
"+build",
"+cc/paint/element_id.h",
+ "+cc/trees/browser_controls_params.h",
+ "+components/viz/common/surfaces/local_surface_id_allocation.h",
"+net",
"+media",
"+mojo",
+ "+services/device/public/mojom",
"+services/network/public/cpp/resource_request_body.h",
"+services/network/public/cpp/shared_url_loader_factory.h",
"+services/network/public/mojom",
@@ -20,6 +23,8 @@ include_rules = [
"+third_party/blink/public/mojom",
"+ui/events/event_constants.h",
"+ui/events/types",
+ "+ui/gfx/color_space.h",
+ "+ui/gfx/display_color_spaces.h",
"+ui/gfx/geometry",
"+ui/latency/latency_info.h",
"+url",
diff --git a/chromium/third_party/blink/public/common/action_after_pagehide.h b/chromium/third_party/blink/public/common/action_after_pagehide.h
new file mode 100644
index 00000000000..4aff5aea632
--- /dev/null
+++ b/chromium/third_party/blink/public/common/action_after_pagehide.h
@@ -0,0 +1,25 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_ACTION_AFTER_PAGEHIDE_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_ACTION_AFTER_PAGEHIDE_H_
+
+namespace blink {
+
+// This is the enumeration of actions that might happen in a page after pagehide
+// is dispatched that might affect the user after we've navigated away from the
+// old page, such as modifications to storage, navigations, or postMessage.
+// This enum is used for histograms and should not be renumbered.
+enum class ActionAfterPagehide {
+ kNavigation = 0,
+ kSentPostMessage = 1,
+ kReceivedPostMessage = 2,
+ kLocalStorageModification = 3,
+ kSessionStorageModification = 4,
+ kMaxValue = kSessionStorageModification
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_ACTION_AFTER_PAGEHIDE_H_
diff --git a/chromium/third_party/blink/public/common/bluetooth/web_bluetooth_device_id_mojom_traits.h b/chromium/third_party/blink/public/common/bluetooth/web_bluetooth_device_id_mojom_traits.h
index 9ca0c6cf1bc..59e60a00f64 100644
--- a/chromium/third_party/blink/public/common/bluetooth/web_bluetooth_device_id_mojom_traits.h
+++ b/chromium/third_party/blink/public/common/bluetooth/web_bluetooth_device_id_mojom_traits.h
@@ -8,7 +8,7 @@
#include <string>
#include "third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h"
-#include "third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom-forward.h"
+#include "third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom-shared.h"
namespace mojo {
diff --git a/chromium/third_party/blink/public/common/feature_policy/document_policy.h b/chromium/third_party/blink/public/common/feature_policy/document_policy.h
index fe85fbee711..f08eef13c9f 100644
--- a/chromium/third_party/blink/public/common/feature_policy/document_policy.h
+++ b/chromium/third_party/blink/public/common/feature_policy/document_policy.h
@@ -63,16 +63,13 @@ namespace blink {
class BLINK_COMMON_EXPORT DocumentPolicy {
public:
- using FeatureState =
- base::flat_map<mojom::DocumentPolicyFeature, PolicyValue>;
-
// Mapping of feature to endpoint group.
// https://w3c.github.io/reporting/#endpoint-group
using FeatureEndpointMap =
base::flat_map<mojom::DocumentPolicyFeature, std::string>;
struct ParsedDocumentPolicy {
- FeatureState feature_state;
+ DocumentPolicyFeatureState feature_state;
FeatureEndpointMap endpoint_map;
};
@@ -98,34 +95,40 @@ class BLINK_COMMON_EXPORT DocumentPolicy {
// Returns true if the incoming policy is compatible with the given required
// policy, i.e. incoming policy is at least as strict as required policy.
- static bool IsPolicyCompatible(const FeatureState& required_policy,
- const FeatureState& incoming_policy);
+ static bool IsPolicyCompatible(
+ const DocumentPolicyFeatureState& required_policy,
+ const DocumentPolicyFeatureState& incoming_policy);
// Serialize document policy according to http_structured_header.
// returns base::nullopt when http structured header serializer encounters
// problems, e.g. double value out of the range supported.
- static base::Optional<std::string> Serialize(const FeatureState& policy);
+ static base::Optional<std::string> Serialize(
+ const DocumentPolicyFeatureState& policy);
static base::Optional<std::string> SerializeInternal(
- const FeatureState& policy,
+ const DocumentPolicyFeatureState& policy,
const DocumentPolicyFeatureInfoMap&);
- // Merge two FeatureState map. Take stricter value when there is conflict.
- static FeatureState MergeFeatureState(const FeatureState& policy1,
- const FeatureState& policy2);
+ // Merge two FeatureState map.
+ // When there is conflict:
+ // - take the stricter value if PolicyValue is comparable
+ // - take override_policy's value if PolicyValue is not comparable
+ static DocumentPolicyFeatureState MergeFeatureState(
+ const DocumentPolicyFeatureState& base_policy,
+ const DocumentPolicyFeatureState& override_policy);
private:
friend class DocumentPolicyTest;
- DocumentPolicy(const FeatureState& header_policy,
+ DocumentPolicy(const DocumentPolicyFeatureState& header_policy,
const FeatureEndpointMap& endpoint_map,
- const FeatureState& defaults);
+ const DocumentPolicyFeatureState& defaults);
static std::unique_ptr<DocumentPolicy> CreateWithHeaderPolicy(
- const FeatureState& header_policy,
+ const DocumentPolicyFeatureState& header_policy,
const FeatureEndpointMap& endpoint_map,
- const FeatureState& defaults);
+ const DocumentPolicyFeatureState& defaults);
- void UpdateFeatureState(const FeatureState& feature_state);
+ void UpdateFeatureState(const DocumentPolicyFeatureState& feature_state);
// Internal feature state is represented as an array to avoid overhead
// in using container classes.
diff --git a/chromium/third_party/blink/public/common/feature_policy/document_policy_features.h b/chromium/third_party/blink/public/common/feature_policy/document_policy_features.h
index a432e0ed8b2..c18e658bcaf 100644
--- a/chromium/third_party/blink/public/common/feature_policy/document_policy_features.h
+++ b/chromium/third_party/blink/public/common/feature_policy/document_policy_features.h
@@ -14,13 +14,15 @@ namespace blink {
struct DocumentPolicyFeatureInfo {
std::string feature_name;
- std::string feature_param_name;
PolicyValue default_value;
};
using DocumentPolicyFeatureInfoMap =
base::flat_map<mojom::DocumentPolicyFeature, DocumentPolicyFeatureInfo>;
+using DocumentPolicyFeatureState =
+ base::flat_map<mojom::DocumentPolicyFeature, PolicyValue>;
+
using DocumentPolicyNameFeatureMap =
base::flat_map<std::string, mojom::DocumentPolicyFeature>;
diff --git a/chromium/third_party/blink/public/common/feature_policy/feature_policy.h b/chromium/third_party/blink/public/common/feature_policy/feature_policy.h
index c85a2e6053d..93c41d0cd88 100644
--- a/chromium/third_party/blink/public/common/feature_policy/feature_policy.h
+++ b/chromium/third_party/blink/public/common/feature_policy/feature_policy.h
@@ -11,6 +11,7 @@
#include "base/macros.h"
#include "services/network/public/mojom/web_sandbox_flags.mojom-shared.h"
#include "third_party/blink/public/common/common_export.h"
+#include "third_party/blink/public/common/feature_policy/feature_policy_features.h"
#include "third_party/blink/public/mojom/feature_policy/feature_policy.mojom-forward.h"
#include "third_party/blink/public/mojom/feature_policy/feature_policy_feature.mojom-forward.h"
#include "url/origin.h"
@@ -69,9 +70,10 @@ namespace blink {
// feature is available when no policy has been declared, ans determines how the
// feature is inherited across origin boundaries.
//
-// If the default policy is in effect for a frame, then it controls how the
+// If the default policy is in effect for a frame, then it controls how the
// feature is inherited by any cross-origin iframes embedded by the frame. (See
-// the comments below in FeaturePolicy::FeatureDefault for specifics)
+// the comments in |FeaturePolicyFeatureDefault| in feature_policy_features.h
+// for specifics)
//
// Policy Inheritance
// ------------------
@@ -80,7 +82,7 @@ namespace blink {
// receive the same set of enables features as the parent frame. Whether or not
// features are inherited by cross-origin iframes without an explicit policy is
// determined by the feature's default policy. (Again, see the comments in
-// FeaturePolicy::FeatureDefault for details)
+// |FeaturePolicyFeatureDefault| in feature_policy_features.h for details)
// This struct holds feature policy allowlist data that needs to be replicated
// between a RenderFrame and any of its associated RenderFrameProxies. A list of
@@ -92,8 +94,8 @@ struct BLINK_COMMON_EXPORT ParsedFeaturePolicyDeclaration {
explicit ParsedFeaturePolicyDeclaration(mojom::FeaturePolicyFeature feature);
ParsedFeaturePolicyDeclaration(mojom::FeaturePolicyFeature feature,
const std::vector<url::Origin>& values,
- bool fallback_value,
- bool opaque_value);
+ bool matches_all_origins,
+ bool matches_opaque_src);
ParsedFeaturePolicyDeclaration(const ParsedFeaturePolicyDeclaration& rhs);
ParsedFeaturePolicyDeclaration& operator=(
const ParsedFeaturePolicyDeclaration& rhs);
@@ -104,13 +106,13 @@ struct BLINK_COMMON_EXPORT ParsedFeaturePolicyDeclaration {
// An alphabetically sorted list of all the origins allowed.
std::vector<url::Origin> allowed_origins;
// Fallback value is used when feature is enabled for all or disabled for all.
- bool fallback_value;
+ bool matches_all_origins{false};
// This flag is set true for a declared policy on an <iframe sandbox>
// container, for a feature which is supposed to be allowed in the sandboxed
// document. Usually, the 'src' keyword in a declaration will cause the origin
// of the iframe to be present in |origins|, but for sandboxed iframes, this
// flag is set instead.
- bool opaque_value;
+ bool matches_opaque_src{false};
};
using ParsedFeaturePolicy = std::vector<ParsedFeaturePolicyDeclaration>;
@@ -120,10 +122,6 @@ bool BLINK_COMMON_EXPORT operator==(const ParsedFeaturePolicyDeclaration& lhs,
class BLINK_COMMON_EXPORT FeaturePolicy {
public:
- // TODO(iclelland): Generate, instead of this map, a set of bool flags, one
- // for each feature, as all features are supposed to be represented here.
- using FeatureState = std::map<mojom::FeaturePolicyFeature, bool>;
-
// Represents a collection of origins which make up an allowlist in a feature
// policy. This collection may be set to match every origin (corresponding to
// the "*" syntax in the policy string, in which case the Contains() method
@@ -137,22 +135,22 @@ class BLINK_COMMON_EXPORT FeaturePolicy {
// Adds a single origin to the allowlist.
void Add(const url::Origin& origin);
- // Returns the value of the given origin if specified, fallback value
- // otherwise.
- // fallback value should be set to maximum unless it is set to 'none'.
- bool GetValueForOrigin(const url::Origin& origin) const;
+ // Adds all origins to the allowlist.
+ void AddAll();
- // Returns the fallback value.
- bool GetFallbackValue() const;
+ // Sets the allowlist to match the opaque origin implied by the 'src'
+ // keyword.
+ void AddOpaqueSrc();
- // Sets the fallback value.
- void SetFallbackValue(bool fallback_value);
+ // Returns true if the given origin has been added to the allowlist.
+ bool Contains(const url::Origin& origin) const;
- // Returns the opaque value.
- bool GetOpaqueValue() const;
+ // Returns true if the allowlist matches all origins.
+ bool MatchesAll() const;
- // Sets the opaque value.
- void SetOpaqueValue(bool opaque_value);
+ // Returns true if the allowlist should match the opaque origin implied by
+ // the 'src' keyword.
+ bool MatchesOpaqueSrc() const;
const std::vector<url::Origin>& AllowedOrigins() const {
return allowed_origins_;
@@ -160,34 +158,10 @@ class BLINK_COMMON_EXPORT FeaturePolicy {
private:
std::vector<url::Origin> allowed_origins_;
- bool fallback_value_;
- bool opaque_value_;
- };
-
- // The FeaturePolicy::FeatureDefault enum defines the default enable state for
- // a feature when neither it nor any parent frame have declared an explicit
- // policy. The three possibilities map directly to Feature Policy Allowlist
- // semantics.
- //
- // The default values for each feature are set in GetDefaultFeatureList.
- enum class FeatureDefault {
- // Equivalent to []. If this default policy is in effect for a frame, then
- // the feature will not be enabled for that frame or any of its children.
- DisableForAll,
-
- // Equivalent to ["self"]. If this default policy is in effect for a frame,
- // then the feature will be enabled for that frame, and any same-origin
- // child frames, but not for any cross-origin child frames.
- EnableForSelf,
-
- // Equivalent to ["*"]. If in effect for a frame, then the feature is
- // enabled for that frame and all of its children.
- EnableForAll
+ bool matches_all_origins_{false};
+ bool matches_opaque_src_{false};
};
- using FeatureList =
- std::map<mojom::FeaturePolicyFeature, FeaturePolicy::FeatureDefault>;
-
~FeaturePolicy();
static std::unique_ptr<FeaturePolicy> CreateFromParentPolicy(
@@ -196,7 +170,7 @@ class BLINK_COMMON_EXPORT FeaturePolicy {
const url::Origin& origin);
static std::unique_ptr<FeaturePolicy> CreateWithOpenerPolicy(
- const FeatureState& inherited_policies,
+ const FeaturePolicyFeatureState& inherited_policies,
const url::Origin& origin);
bool IsFeatureEnabled(mojom::FeaturePolicyFeature feature) const;
@@ -223,13 +197,12 @@ class BLINK_COMMON_EXPORT FeaturePolicy {
// Returns the current state of feature policies for |origin_|. This includes
// the |inherited_policies_| as well as the header policies.
- FeatureState GetFeatureState() const;
+ FeaturePolicyFeatureState GetFeatureState() const;
const url::Origin& GetOriginForTest() const { return origin_; }
// Returns the list of features which can be controlled by Feature Policy.
- const FeatureList& GetFeatureList() const;
- static const FeatureList& GetDefaultFeatureList();
+ const FeaturePolicyFeatureList& GetFeatureList() const;
static mojom::FeaturePolicyFeature FeatureForSandboxFlag(
network::mojom::WebSandboxFlags flag);
@@ -237,12 +210,13 @@ class BLINK_COMMON_EXPORT FeaturePolicy {
private:
friend class FeaturePolicyTest;
- FeaturePolicy(url::Origin origin, const FeatureList& feature_list);
+ FeaturePolicy(url::Origin origin,
+ const FeaturePolicyFeatureList& feature_list);
static std::unique_ptr<FeaturePolicy> CreateFromParentPolicy(
const FeaturePolicy* parent_policy,
const ParsedFeaturePolicy& container_policy,
const url::Origin& origin,
- const FeatureList& features);
+ const FeaturePolicyFeatureList& features);
// Updates the inherited policy with the declarations from the iframe allow*
// attributes.
@@ -258,14 +232,14 @@ class BLINK_COMMON_EXPORT FeaturePolicy {
// Records whether or not each feature was enabled for this frame by its
// parent frame.
- FeatureState inherited_policies_;
+ FeaturePolicyFeatureState inherited_policies_;
// Temporary member to support metrics. These are the values which would be
// stored in |inherited_policies_| under the proposal in
// https://crbug.com/937131.
- FeatureState proposed_inherited_policies_;
+ FeaturePolicyFeatureState proposed_inherited_policies_;
- const FeatureList& feature_list_;
+ const FeaturePolicyFeatureList& feature_list_;
DISALLOW_COPY_AND_ASSIGN(FeaturePolicy);
};
diff --git a/chromium/third_party/blink/public/common/feature_policy/feature_policy_features.h b/chromium/third_party/blink/public/common/feature_policy/feature_policy_features.h
new file mode 100644
index 00000000000..19ee092e844
--- /dev/null
+++ b/chromium/third_party/blink/public/common/feature_policy/feature_policy_features.h
@@ -0,0 +1,43 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_FEATURE_POLICY_FEATURE_POLICY_FEATURES_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_FEATURE_POLICY_FEATURE_POLICY_FEATURES_H_
+
+#include "base/containers/flat_map.h"
+#include "third_party/blink/public/common/common_export.h"
+#include "third_party/blink/public/mojom/feature_policy/feature_policy_feature.mojom-forward.h"
+
+namespace blink {
+
+// The FeaturePolicyFeatureDefault enum defines the default enable state for
+// a feature when neither it nor any parent frame have declared an explicit
+// policy. The three possibilities map directly to Feature Policy Allowlist
+// semantics.
+//
+// The default values for each feature are set in GetDefaultFeatureList.
+enum class FeaturePolicyFeatureDefault {
+ // Equivalent to ["self"]. If this default policy is in effect for a frame,
+ // then the feature will be enabled for that frame, and any same-origin
+ // child frames, but not for any cross-origin child frames.
+ EnableForSelf,
+
+ // Equivalent to ["*"]. If in effect for a frame, then the feature is
+ // enabled for that frame and all of its children.
+ EnableForAll
+};
+
+using FeaturePolicyFeatureList =
+ std::map<mojom::FeaturePolicyFeature, FeaturePolicyFeatureDefault>;
+
+BLINK_COMMON_EXPORT const FeaturePolicyFeatureList&
+GetFeaturePolicyFeatureList();
+
+// TODO(iclelland): Generate, instead of this map, a set of bool flags, one
+// for each feature, as all features are supposed to be represented here.
+using FeaturePolicyFeatureState = std::map<mojom::FeaturePolicyFeature, bool>;
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_FEATURE_POLICY_FEATURE_POLICY_FEATURES_H_
diff --git a/chromium/third_party/blink/public/common/feature_policy/feature_policy_forward.h b/chromium/third_party/blink/public/common/feature_policy/feature_policy_forward.h
new file mode 100644
index 00000000000..99e41e4a453
--- /dev/null
+++ b/chromium/third_party/blink/public/common/feature_policy/feature_policy_forward.h
@@ -0,0 +1,14 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_FEATURE_POLICY_FEATURE_POLICY_FORWARD_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_FEATURE_POLICY_FEATURE_POLICY_FORWARD_H_
+
+namespace blink {
+
+struct ParsedFeaturePolicyDeclaration;
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_FEATURE_POLICY_FEATURE_POLICY_FORWARD_H_
diff --git a/chromium/third_party/blink/public/common/feature_policy/policy_value.h b/chromium/third_party/blink/public/common/feature_policy/policy_value.h
index 7b745f6ddad..2856e23bc3c 100644
--- a/chromium/third_party/blink/public/common/feature_policy/policy_value.h
+++ b/chromium/third_party/blink/public/common/feature_policy/policy_value.h
@@ -7,7 +7,7 @@
#include "base/macros.h"
#include "third_party/blink/public/common/common_export.h"
-#include "third_party/blink/public/mojom/feature_policy/policy_value.mojom-forward.h"
+#include "third_party/blink/public/mojom/feature_policy/policy_value.mojom-shared.h"
namespace blink {
@@ -48,14 +48,16 @@ class BLINK_COMMON_EXPORT PolicyValue {
// Operater overrides
PolicyValue& operator=(const PolicyValue& rhs);
- // Combine a new PolicyValue to self, by taking the stricter value of the two.
- void Combine(const PolicyValue& value);
- // Combine two PolicyValue_s together by taking the stricter value of the two.
- static PolicyValue Combine(const PolicyValue& lhs, const PolicyValue& rhs);
void SetToMax();
void SetToMin();
+ // Test whether this policy value is compatible with required policy value.
+ // Note: a.IsCompatibleWith(b) == true does not necessary indicate
+ // b.IsCompatibleWith(a) == false, because not all policy value types support
+ // strictness comparison, e.g. enum.
+ bool IsCompatibleWith(const PolicyValue& required) const;
+
private:
mojom::PolicyValueType type_;
bool bool_value_ = false;
@@ -66,14 +68,6 @@ bool BLINK_COMMON_EXPORT operator==(const PolicyValue& lhs,
const PolicyValue& rhs);
bool BLINK_COMMON_EXPORT operator!=(const PolicyValue& lhs,
const PolicyValue& rhs);
-bool BLINK_COMMON_EXPORT operator>(const PolicyValue& lhs,
- const PolicyValue& rhs);
-bool BLINK_COMMON_EXPORT operator>=(const PolicyValue& lhs,
- const PolicyValue& rhs);
-bool BLINK_COMMON_EXPORT operator<(const PolicyValue& lhs,
- const PolicyValue& rhs);
-bool BLINK_COMMON_EXPORT operator<=(const PolicyValue& lhs,
- const PolicyValue& rhs);
} // namespace blink
#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_FEATURE_POLICY_POLICY_VALUE_H_
diff --git a/chromium/third_party/blink/public/common/features.h b/chromium/third_party/blink/public/common/features.h
index 18f5e4a609e..1be981d7e40 100644
--- a/chromium/third_party/blink/public/common/features.h
+++ b/chromium/third_party/blink/public/common/features.h
@@ -29,15 +29,17 @@ BLINK_COMMON_EXPORT extern const base::Feature kFreezeUserAgent;
BLINK_COMMON_EXPORT extern const base::Feature kImplicitRootScroller;
BLINK_COMMON_EXPORT extern const base::Feature kCSSOMViewScrollCoordinates;
BLINK_COMMON_EXPORT extern const base::Feature kDisplayLocking;
-BLINK_COMMON_EXPORT extern const base::Feature kMaxOverlapBoundsForFixed;
+BLINK_COMMON_EXPORT extern const base::Feature kMeasureMemoryExperiment;
BLINK_COMMON_EXPORT extern const base::Feature kJSONModules;
BLINK_COMMON_EXPORT extern const base::Feature kForceSynchronousHTMLParsing;
BLINK_COMMON_EXPORT extern const base::Feature kTopLevelAwait;
BLINK_COMMON_EXPORT extern const base::Feature kLayoutNG;
+BLINK_COMMON_EXPORT extern const base::Feature kLayoutNGFieldset;
BLINK_COMMON_EXPORT extern const base::Feature kLayoutNGRuby;
BLINK_COMMON_EXPORT extern const base::Feature kFragmentItem;
BLINK_COMMON_EXPORT extern const base::Feature kMixedContentAutoupgrade;
BLINK_COMMON_EXPORT extern const base::Feature kNavigationPredictor;
+BLINK_COMMON_EXPORT extern const base::Feature kParentNodeReplaceChildren;
BLINK_COMMON_EXPORT extern const base::Feature kPlzDedicatedWorker;
BLINK_COMMON_EXPORT extern const base::Feature kPortals;
BLINK_COMMON_EXPORT extern const base::Feature kPortalsCrossOrigin;
@@ -52,8 +54,13 @@ BLINK_COMMON_EXPORT extern const base::Feature kRTCOfferExtmapAllowMixed;
BLINK_COMMON_EXPORT extern const base::Feature kV8OptimizeWorkersForPerformance;
BLINK_COMMON_EXPORT extern const base::Feature kWebRtcMultiplexCodec;
BLINK_COMMON_EXPORT extern const base::Feature kWebRtcHideLocalIpsWithMdns;
+
BLINK_COMMON_EXPORT extern const base::Feature kIntensiveWakeUpThrottling;
+BLINK_COMMON_EXPORT extern const char
+ kIntensiveWakeUpThrottling_GracePeriodSeconds_Name[];
+BLINK_COMMON_EXPORT extern const base::Feature
+ kOptOutZeroTimeoutTimersFromThrottling;
BLINK_COMMON_EXPORT extern const base::Feature kOptOutWebRTCFromAllThrottling;
#if BUILDFLAG(RTC_USE_H264) && BUILDFLAG(ENABLE_FFMPEG_VIDEO_DECODERS)
@@ -74,6 +81,8 @@ BLINK_COMMON_EXPORT extern const base::Feature kFileHandlingAPI;
BLINK_COMMON_EXPORT extern const base::Feature kAllowSyncXHRInPageDismissal;
BLINK_COMMON_EXPORT extern const base::Feature kPrefetchPrivacyChanges;
+BLINK_COMMON_EXPORT extern const base::Feature kWebComponentsV0;
+
BLINK_COMMON_EXPORT extern const char kMixedContentAutoupgradeModeParamName[];
BLINK_COMMON_EXPORT extern const char kMixedContentAutoupgradeModeAllPassive[];
@@ -170,7 +179,6 @@ BLINK_COMMON_EXPORT extern const base::Feature kFontPreloadingDelaysRendering;
BLINK_COMMON_EXPORT extern const base::FeatureParam<int>
kFontPreloadingDelaysRenderingParam;
-BLINK_COMMON_EXPORT extern const base::Feature kFlexGaps;
BLINK_COMMON_EXPORT extern const base::Feature kFlexNG;
BLINK_COMMON_EXPORT extern const base::Feature kKeepScriptResourceAlive;
@@ -178,6 +186,7 @@ BLINK_COMMON_EXPORT extern const base::Feature kDelayAsyncScriptExecution;
enum class DelayAsyncScriptDelayType {
kFinishedParsing,
kFirstPaintOrFinishedParsing,
+ kUseOptimizationGuide,
};
BLINK_COMMON_EXPORT extern const base::FeatureParam<DelayAsyncScriptDelayType>
kDelayAsyncScriptExecutionDelayParam;
@@ -214,6 +223,8 @@ BLINK_COMMON_EXPORT extern const base::Feature kInputPredictorTypeChoice;
BLINK_COMMON_EXPORT extern const base::Feature kResamplingInputEvents;
// Enables resampling GestureScroll events on compositor thread.
+// Uses the kPredictorName* values in ui_base_features.h as the 'predictor'
+// feature param.
BLINK_COMMON_EXPORT extern const base::Feature kResamplingScrollEvents;
// Enables the device-memory, resource-width, viewport-width and DPR client
@@ -221,25 +232,11 @@ BLINK_COMMON_EXPORT extern const base::Feature kResamplingScrollEvents;
// receiving client hints, regardless of Feature Policy.
BLINK_COMMON_EXPORT extern const base::Feature kAllowClientHintsToThirdParty;
-// The type of scroll predictor to use for the resampling scroll events. These
-// values are used as the 'predictor' feature param for
-// |kResamplingScrollEvents|.
-BLINK_COMMON_EXPORT extern const char kScrollPredictorNameLsq[];
-BLINK_COMMON_EXPORT extern const char kScrollPredictorNameKalman[];
-BLINK_COMMON_EXPORT extern const char kScrollPredictorNameLinearFirst[];
-BLINK_COMMON_EXPORT extern const char kScrollPredictorNameLinearSecond[];
-BLINK_COMMON_EXPORT extern const char kScrollPredictorNameLinearResampling[];
-BLINK_COMMON_EXPORT extern const char kScrollPredictorNameEmpty[];
-
// Enables filtering of predicted scroll events on compositor thread.
+// Uses the kFilterName* values in ui_base_features.h as the 'filter' feature
+// param.
BLINK_COMMON_EXPORT extern const base::Feature kFilteringScrollPrediction;
-// The type of filter to use for the filtering scroll events. These
-// values are used as the 'filter' feature param for
-// |kFilteringScrollPrediction|.
-BLINK_COMMON_EXPORT extern const char kFilterNameEmpty[];
-BLINK_COMMON_EXPORT extern const char kFilterNameOneEuro[];
-
// Enables changing the influence of acceleration based on change of direction.
BLINK_COMMON_EXPORT extern const base::Feature kKalmanHeuristics;
@@ -274,7 +271,25 @@ BLINK_COMMON_EXPORT extern const base::Feature kWebXrMultiGpu;
BLINK_COMMON_EXPORT extern const base::Feature
kCSSMatchedPropertiesCacheDependencies;
+BLINK_COMMON_EXPORT extern const base::Feature kCompressParkableStrings;
BLINK_COMMON_EXPORT extern const base::Feature kParkableStringsToDisk;
+BLINK_COMMON_EXPORT bool IsParkableStringsToDiskEnabled();
+
+BLINK_COMMON_EXPORT extern const base::Feature kCrOSAutoSelect;
+
+BLINK_COMMON_EXPORT extern const base::Feature kCompositingOptimizations;
+
+BLINK_COMMON_EXPORT extern const base::Feature kReducedReferrerGranularity;
+
+BLINK_COMMON_EXPORT extern const base::Feature
+ kContentCaptureUserActivatedDelay;
+
+BLINK_COMMON_EXPORT extern const base::Feature kTransferableStreams;
+
+BLINK_COMMON_EXPORT extern const base::Feature
+ kBackForwardCacheABExperimentControl;
+BLINK_COMMON_EXPORT
+extern const char kBackForwardCacheABExperimentGroup[];
} // namespace features
} // namespace blink
diff --git a/chromium/third_party/blink/public/common/fetch/OWNERS b/chromium/third_party/blink/public/common/fetch/OWNERS
index e45714cfce5..b2e47ad870e 100644
--- a/chromium/third_party/blink/public/common/fetch/OWNERS
+++ b/chromium/third_party/blink/public/common/fetch/OWNERS
@@ -2,8 +2,6 @@ file://third_party/blink/renderer/core/fetch/OWNERS
per-file *_mojom_traits*.*=set noparent
per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
-per-file *.typemap=set noparent
-per-file *.typemap=file://ipc/SECURITY_OWNERS
# TEAM: blink-network-dev@chromium.org
# COMPONENT: Blink>Network>FetchAPI
diff --git a/chromium/third_party/blink/public/common/fetch/fetch_api_request_body.typemap b/chromium/third_party/blink/public/common/fetch/fetch_api_request_body.typemap
deleted file mode 100644
index bf0937cd01c..00000000000
--- a/chromium/third_party/blink/public/common/fetch/fetch_api_request_body.typemap
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright 2019 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//third_party/blink/public/mojom/fetch/fetch_api_request.mojom"
-public_headers = [
- "//base/memory/scoped_refptr.h",
- "//services/network/public/cpp/resource_request_body.h",
-]
-traits_headers = [ "//third_party/blink/public/common/fetch/fetch_api_request_body_mojom_traits.h" ]
-public_deps = [
- "//base",
- "//services/network/public/cpp:cpp_base",
-]
-type_mappings = [
- "blink.mojom.FetchAPIDataElement=::network::DataElement[move_only]",
- "blink.mojom.FetchAPIRequestBody=::scoped_refptr<::network::ResourceRequestBody>[nullable_is_same_type,copyable_pass_by_value]",
-]
diff --git a/chromium/third_party/blink/public/common/fetch/fetch_api_request_body_mojom_traits.h b/chromium/third_party/blink/public/common/fetch/fetch_api_request_body_mojom_traits.h
index 683ee4042f4..ebe9098404f 100644
--- a/chromium/third_party/blink/public/common/fetch/fetch_api_request_body_mojom_traits.h
+++ b/chromium/third_party/blink/public/common/fetch/fetch_api_request_body_mojom_traits.h
@@ -12,7 +12,7 @@
#include "services/network/public/cpp/resource_request_body.h"
#include "services/network/public/mojom/url_loader.mojom-forward.h"
#include "third_party/blink/public/common/common_export.h"
-#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-forward.h"
+#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-shared.h"
namespace mojo {
@@ -79,7 +79,7 @@ struct BLINK_COMMON_EXPORT
}
static mojo::PendingRemote<network::mojom::ChunkedDataPipeGetter>
chunked_data_pipe_getter(const network::DataElement& element) {
- if (element.type_ != network::mojom::DataElementType::kChunkedDataPipe)
+ if (element.type_ != network::mojom::DataElementType::kReadOnceStream)
return mojo::NullRemote();
return const_cast<network::DataElement&>(element)
.ReleaseChunkedDataPipeGetter();
diff --git a/chromium/third_party/blink/public/common/fetch/fetch_api_request_headers.typemap b/chromium/third_party/blink/public/common/fetch/fetch_api_request_headers.typemap
deleted file mode 100644
index 1957eea7358..00000000000
--- a/chromium/third_party/blink/public/common/fetch/fetch_api_request_headers.typemap
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright 2018 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//third_party/blink/public/mojom/fetch/fetch_api_request.mojom"
-public_headers = [
- "//base/containers/flat_map.h",
- "//base/strings/string_util.h",
- "//third_party/blink/public/common/fetch/fetch_api_request_headers_map.h",
-]
-traits_headers = [ "//third_party/blink/public/common/fetch/fetch_api_request_headers_mojom_traits.h" ]
-type_mappings = [ "blink.mojom.FetchAPIRequestHeaders=::blink::FetchAPIRequestHeadersMap[move_only]" ]
diff --git a/chromium/third_party/blink/public/common/fetch/fetch_api_request_headers_mojom_traits.h b/chromium/third_party/blink/public/common/fetch/fetch_api_request_headers_mojom_traits.h
index 3efb9d6d22b..9595dcfc0c9 100644
--- a/chromium/third_party/blink/public/common/fetch/fetch_api_request_headers_mojom_traits.h
+++ b/chromium/third_party/blink/public/common/fetch/fetch_api_request_headers_mojom_traits.h
@@ -10,7 +10,7 @@
#include "base/containers/flat_map.h"
#include "base/strings/string_util.h"
#include "third_party/blink/public/common/fetch/fetch_api_request_headers_map.h"
-#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-forward.h"
+#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-shared.h"
namespace mojo {
diff --git a/chromium/third_party/blink/public/common/font_access/OWNERS b/chromium/third_party/blink/public/common/font_access/OWNERS
new file mode 100644
index 00000000000..070d02eff14
--- /dev/null
+++ b/chromium/third_party/blink/public/common/font_access/OWNERS
@@ -0,0 +1,7 @@
+oyiptong@chromium.org
+jsbell@Chromium.org
+
+# COMPONENT: Blink>Storage>FontAccess
+
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/chromium/third_party/blink/public/common/font_access/font_enumeration_table.proto b/chromium/third_party/blink/public/common/font_access/font_enumeration_table.proto
new file mode 100644
index 00000000000..15e55e4237b
--- /dev/null
+++ b/chromium/third_party/blink/public/common/font_access/font_enumeration_table.proto
@@ -0,0 +1,20 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+package blink;
+
+message FontEnumerationTable {
+ // Represents font metadata to be enumerated.
+ message FontMetadata {
+ required string postscript_name = 10;
+ required string full_name = 20;
+ required string family = 30;
+ }
+
+ repeated FontMetadata fonts = 10;
+}
diff --git a/chromium/third_party/blink/public/common/frame/frame_policy.h b/chromium/third_party/blink/public/common/frame/frame_policy.h
index 9b8806414e4..e49c34c4c78 100644
--- a/chromium/third_party/blink/public/common/frame/frame_policy.h
+++ b/chromium/third_party/blink/public/common/frame/frame_policy.h
@@ -6,7 +6,7 @@
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_FRAME_FRAME_POLICY_H_
#include "services/network/public/mojom/web_sandbox_flags.mojom-shared.h"
-#include "third_party/blink/public/common/feature_policy/document_policy.h"
+#include "third_party/blink/public/common/feature_policy/document_policy_features.h"
#include "third_party/blink/public/common/feature_policy/feature_policy.h"
namespace blink {
@@ -27,7 +27,7 @@ struct BLINK_COMMON_EXPORT FramePolicy {
FramePolicy();
FramePolicy(network::mojom::WebSandboxFlags sandbox_flags,
const ParsedFeaturePolicy& container_policy,
- const DocumentPolicy::FeatureState& required_document_policy,
+ const DocumentPolicyFeatureState& required_document_policy,
bool allowed_to_download = true,
bool disallow_document_access = false);
FramePolicy(const FramePolicy& lhs);
@@ -39,7 +39,7 @@ struct BLINK_COMMON_EXPORT FramePolicy {
// - iframe 'policy' attribute
// - 'Require-Document-Policy' http header
// - |required_document_policy| of parent frame
- DocumentPolicy::FeatureState required_document_policy;
+ DocumentPolicyFeatureState required_document_policy;
// With FeaturePolicyForSandbox, as a policy affecting the document,
// "downloads" is included in |container_policy|.
// However, in certain cases where the initiator of the navigation is not the
diff --git a/chromium/third_party/blink/public/common/frame/user_activation_state.h b/chromium/third_party/blink/public/common/frame/user_activation_state.h
index cf1f6dc933f..341a3cdf91b 100644
--- a/chromium/third_party/blink/public/common/frame/user_activation_state.h
+++ b/chromium/third_party/blink/public/common/frame/user_activation_state.h
@@ -7,6 +7,7 @@
#include "base/time/time_override.h"
#include "third_party/blink/public/common/common_export.h"
+#include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-forward.h"
namespace blink {
@@ -87,12 +88,19 @@ namespace blink {
// https://docs.google.com/document/d/1XL3vCedkqL65ueaGVD-kfB5RnnrnTaxLc7kmU91oerg
class BLINK_COMMON_EXPORT UserActivationState {
public:
- void Activate();
+ UserActivationState();
+
+ // Marks the user activation state as active, which sets the sticky state to
+ // true and updates the transient state timestamp to "now".
+ //
+ // The |notification_type| parameter is used for histograms only.
+ void Activate(mojom::UserActivationNotificationType notification_type);
+
void Clear();
// Returns the sticky activation state, which is |true| if the frame has ever
// seen an activation.
- bool HasBeenActive() const { return has_been_active_; }
+ bool HasBeenActive() const;
// Returns the transient activation state, which is |true| if the frame has
// recently been activated and the transient state hasn't been consumed yet.
@@ -115,6 +123,9 @@ class BLINK_COMMON_EXPORT UserActivationState {
bool has_been_active_ = false;
base::TimeTicks transient_state_expiry_time_;
+
+ // Tracks the type of notification for UMA data.
+ mojom::UserActivationNotificationType notification_type_;
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/common/indexeddb/OWNERS b/chromium/third_party/blink/public/common/indexeddb/OWNERS
index 4d50d635c42..1c17e0230e6 100644
--- a/chromium/third_party/blink/public/common/indexeddb/OWNERS
+++ b/chromium/third_party/blink/public/common/indexeddb/OWNERS
@@ -2,8 +2,6 @@ file://content/browser/indexed_db/OWNERS
per-file *_mojom_traits*.*=set noparent
per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
-per-file *.typemap=set noparent
-per-file *.typemap=file://ipc/SECURITY_OWNERS
# TEAM: storage-dev@chromium.org
# COMPONENT: Blink>Storage>IndexedDB
diff --git a/chromium/third_party/blink/public/common/indexeddb/indexed_db_default.typemap b/chromium/third_party/blink/public/common/indexeddb/indexed_db_default.typemap
deleted file mode 100644
index a0777f0f495..00000000000
--- a/chromium/third_party/blink/public/common/indexeddb/indexed_db_default.typemap
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2018 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//third_party/blink/public/mojom/indexeddb/indexeddb.mojom"
-public_headers = [
- "//third_party/blink/public/common/indexeddb/indexeddb_key.h",
- "//third_party/blink/public/common/indexeddb/indexeddb_key_path.h",
- "//third_party/blink/public/common/indexeddb/indexeddb_key_range.h",
- "//third_party/blink/public/common/indexeddb/indexeddb_metadata.h",
- "//third_party/blink/public/common/indexeddb/web_idb_types.h",
-]
-traits_headers = [
- "//mojo/public/cpp/bindings/array_traits_span.h",
- "//third_party/blink/public/common/indexeddb/indexed_db_default_mojom_traits.h",
-]
-type_mappings = [
- "blink.mojom.IDBDatabaseMetadata=::blink::IndexedDBDatabaseMetadata",
- "blink.mojom.IDBIndexKeys=::blink::IndexedDBIndexKeys",
- "blink.mojom.IDBIndexMetadata=::blink::IndexedDBIndexMetadata",
- "blink.mojom.IDBKey=::blink::IndexedDBKey",
- "blink.mojom.IDBKeyPath=::blink::IndexedDBKeyPath",
- "blink.mojom.IDBKeyRange=::blink::IndexedDBKeyRange",
- "blink.mojom.IDBObjectStoreMetadata=::blink::IndexedDBObjectStoreMetadata",
-]
diff --git a/chromium/third_party/blink/public/common/indexeddb/indexed_db_default_mojom_traits.h b/chromium/third_party/blink/public/common/indexeddb/indexed_db_default_mojom_traits.h
index 8a530d4f852..98681da52e6 100644
--- a/chromium/third_party/blink/public/common/indexeddb/indexed_db_default_mojom_traits.h
+++ b/chromium/third_party/blink/public/common/indexeddb/indexed_db_default_mojom_traits.h
@@ -6,6 +6,7 @@
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_INDEXEDDB_INDEXED_DB_DEFAULT_MOJOM_TRAITS_H_
#include "base/containers/span.h"
+#include "mojo/public/cpp/bindings/array_traits_span.h"
#include "third_party/blink/public/common/common_export.h"
#include "third_party/blink/public/common/indexeddb/indexeddb_key.h"
#include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-forward.h"
diff --git a/chromium/third_party/blink/public/common/input/web_mouse_event.h b/chromium/third_party/blink/public/common/input/web_mouse_event.h
index 23bac1a224d..6886c7cbd46 100644
--- a/chromium/third_party/blink/public/common/input/web_mouse_event.h
+++ b/chromium/third_party/blink/public/common/input/web_mouse_event.h
@@ -59,6 +59,10 @@ class BLINK_COMMON_EXPORT WebMouseEvent : public WebInputEvent,
return (GetModifiers() & kIsCompatibilityEventForTouch) != 0;
}
+ int ClickCount() const { return click_count; }
+
+ WebMenuSourceType GetMenuSourceType() const { return menu_source_type; }
+
WebMouseEvent(Type type_param,
const WebGestureEvent&,
Button button_param,
diff --git a/chromium/third_party/blink/public/common/loader/OWNERS b/chromium/third_party/blink/public/common/loader/OWNERS
index 10f8abcc7b7..e4c226c9e60 100644
--- a/chromium/third_party/blink/public/common/loader/OWNERS
+++ b/chromium/third_party/blink/public/common/loader/OWNERS
@@ -1,7 +1,5 @@
per-file *_mojom_traits*.*=set noparent
per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
-per-file *.typemap=set noparent
-per-file *.typemap=file://ipc/SECURITY_OWNERS
# TEAM: loading-dev@chromium.org
# COMPONENT: Blink>Loader
diff --git a/chromium/third_party/blink/public/common/loader/loading_behavior_flag.h b/chromium/third_party/blink/public/common/loader/loading_behavior_flag.h
index 845f70243a4..7b35e73ac25 100644
--- a/chromium/third_party/blink/public/common/loader/loading_behavior_flag.h
+++ b/chromium/third_party/blink/public/common/loader/loading_behavior_flag.h
@@ -37,10 +37,12 @@ enum LoadingBehaviorFlag {
kLoadingBehaviorSubresourceFilterMatch = 1 << 6,
// Indicates that the page is an AMP document, with <html amp> tag.
kLoadingBehaviorAmpDocumentLoaded = 1 << 7,
- // Indicates that font preloading (via <link rel=preload> or Font JS API) has
- // occurred before the first rendering cycle begins. Used to study the
- // effects of delaying the first rendering cycle for web font loading.
- kLoadingBehaviorFontPreloadStartedBeforeRendering = 1 << 8,
+ // Indicates that the page uses the Next.js JavaScript framework (via a
+ // window variable)
+ kLoadingBehaviorNextJSFrameworkUsed = 1 << 8,
+ // Indicates that an async script was ready to execute before the script
+ // element's node document has finished parsing.
+ kLoadingBehaviorAsyncScriptReadyBeforeDocumentFinishedParsing = 1 << 9,
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/common/loader/network_utils.h b/chromium/third_party/blink/public/common/loader/network_utils.h
new file mode 100644
index 00000000000..54fbf06bd82
--- /dev/null
+++ b/chromium/third_party/blink/public/common/loader/network_utils.h
@@ -0,0 +1,21 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_LOADER_NETWORK_UTILS_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_LOADER_NETWORK_UTILS_H_
+
+#include "base/memory/scoped_refptr.h"
+#include "net/http/http_response_headers.h"
+#include "third_party/blink/public/common/common_export.h"
+
+namespace blink {
+
+// Returns true if the headers indicate that this resource should always be
+// revalidated or not cached.
+BLINK_COMMON_EXPORT bool AlwaysAccessNetwork(
+ const scoped_refptr<net::HttpResponseHeaders>& headers);
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_LOADER_NETWORK_UTILS_H_
diff --git a/chromium/third_party/blink/public/common/loader/previews_state.h b/chromium/third_party/blink/public/common/loader/previews_state.h
new file mode 100644
index 00000000000..7344d99bc49
--- /dev/null
+++ b/chromium/third_party/blink/public/common/loader/previews_state.h
@@ -0,0 +1,88 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_LOADER_PREVIEWS_STATE_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_LOADER_PREVIEWS_STATE_H_
+
+namespace blink {
+
+typedef int PreviewsState;
+
+// The Previews types which determines whether to request a Preview version of
+// the resource. Previews are optimizations that change the format and
+// content of web pages to improve data savings and / or performance. This enum
+// determines which Previews types to request.
+// Deprecated values should be commented out and not reused since this bitmask
+// is persisted on disk.
+// TODO(nhiroki): Remove snake-case enum values (e.g., PREVIEWS_UNSPECIFIED) in
+// favor of camel-case enum values (e.g., kPreviewsUnspecified).
+enum PreviewsTypes {
+ PREVIEWS_UNSPECIFIED = 0, // Let the browser process decide whether or
+ // not to request Preview types.
+ kPreviewsUnspecified = PREVIEWS_UNSPECIFIED,
+
+ // DEPRECATED: SERVER_LOFI_ON = 1 << 0, Request a Lo-Fi version of the
+ // resource from the server. This preview type has been deprecated and should
+ // no longer be used.
+ // DEPRECATED: CLIENT_LOFI_ON = 1 << 1, Request a Lo-Fi version of the
+ // resource from the client. This preview type has been deprecated and should
+ // no longer be used.
+ CLIENT_LOFI_AUTO_RELOAD = 1 << 2, // Request the original version of the
+ // resource after a decoding error occurred
+ // when attempting to use Client Lo-Fi.
+ kClientLoFiAutoReload = CLIENT_LOFI_AUTO_RELOAD,
+
+ SERVER_LITE_PAGE_ON = 1 << 3, // Request a Lite Page version of the
+ // resource from the server.
+ kServiceLitePageOn = SERVER_LITE_PAGE_ON,
+
+ PREVIEWS_NO_TRANSFORM = 1 << 4, // Explicitly forbid Previews
+ // transformations.
+ kPreviewsNoTransform = PREVIEWS_NO_TRANSFORM,
+
+ PREVIEWS_OFF = 1 << 5, // Request a normal (non-Preview) version of
+ // the resource. Server transformations may
+ // still happen if the page is heavy.
+ kPreviewsOff = PREVIEWS_OFF,
+
+ NOSCRIPT_ON = 1 << 6, // Request that script be disabled for page load.
+ kNoScriptOn = NOSCRIPT_ON,
+
+ RESOURCE_LOADING_HINTS_ON =
+ 1 << 7, // Request that resource loading hints be used during pageload.
+ kResourceLoadingHintsOn = RESOURCE_LOADING_HINTS_ON,
+
+ OFFLINE_PAGE_ON =
+ 1 << 8, // Request that an offline page be used if one is stored.
+ kOfflinePageOn = OFFLINE_PAGE_ON,
+
+ // DEPRECATED: LITE_PAGE_REDIRECT_ON = 1 << 9, // Allow the browser to
+ // redirect the resource to a Lite Page server. Support for this functionality
+ // has been removed.
+ DEFER_ALL_SCRIPT_ON = 1 << 10, // Request that script execution be deferred
+ // until parsing completes.
+ kDeferAllScriptOn = DEFER_ALL_SCRIPT_ON,
+
+ SUBRESOURCE_REDIRECT_ON =
+ 1 << 11, // Allow the subresources in the page to be redirected to
+ // serve better optimized resources. Set on subresources.
+ kSubresourceRedirectOn = SUBRESOURCE_REDIRECT_ON,
+
+ PREVIEWS_STATE_LAST = SUBRESOURCE_REDIRECT_ON,
+ kPreviewsStateLast = PREVIEWS_STATE_LAST
+};
+
+// Combination of all previews that are guaranteed not to provide partial
+// content.
+// const PreviewsState PARTIAL_CONTENT_SAFE_PREVIEWS = SERVER_LOFI_ON;
+// deprecated
+
+// Combination of all currently supported previews.
+const PreviewsState ALL_SUPPORTED_PREVIEWS = SERVER_LITE_PAGE_ON | NOSCRIPT_ON |
+ RESOURCE_LOADING_HINTS_ON |
+ OFFLINE_PAGE_ON;
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_LOADER_PREVIEWS_STATE_H_
diff --git a/chromium/third_party/blink/public/common/loader/referrer_utils.h b/chromium/third_party/blink/public/common/loader/referrer_utils.h
new file mode 100644
index 00000000000..466255c9f1e
--- /dev/null
+++ b/chromium/third_party/blink/public/common/loader/referrer_utils.h
@@ -0,0 +1,28 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_LOADER_REFERRER_UTILS_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_LOADER_REFERRER_UTILS_H_
+
+#include "base/optional.h"
+#include "net/url_request/referrer_policy.h"
+#include "services/network/public/mojom/referrer_policy.mojom-shared.h"
+#include "third_party/blink/public/common/common_export.h"
+
+namespace blink {
+
+class ReferrerUtils {
+ public:
+ static BLINK_COMMON_EXPORT network::mojom::ReferrerPolicy
+ NetToMojoReferrerPolicy(net::ReferrerPolicy net_policy);
+
+ static BLINK_COMMON_EXPORT net::ReferrerPolicy GetDefaultNetReferrerPolicy();
+
+ static BLINK_COMMON_EXPORT bool ReadModifyWriteForceLegacyPolicyFlag(
+ base::Optional<bool> maybe_new_value);
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_LOADER_REFERRER_UTILS_H_
diff --git a/chromium/third_party/blink/public/common/loader/url_loader_factory_bundle.h b/chromium/third_party/blink/public/common/loader/url_loader_factory_bundle.h
index 711fc3a607c..4361ec8e5e6 100644
--- a/chromium/third_party/blink/public/common/loader/url_loader_factory_bundle.h
+++ b/chromium/third_party/blink/public/common/loader/url_loader_factory_bundle.h
@@ -119,6 +119,8 @@ class BLINK_COMMON_EXPORT URLLoaderFactoryBundle
// existing bundle.
void Update(std::unique_ptr<PendingURLLoaderFactoryBundle> pending_factories);
+ bool HasBoundDefaultFactory() const { return default_factory_.is_bound(); }
+
protected:
~URLLoaderFactoryBundle() override;
diff --git a/chromium/third_party/blink/public/common/loader/url_loader_factory_bundle.typemap b/chromium/third_party/blink/public/common/loader/url_loader_factory_bundle.typemap
deleted file mode 100644
index 086527b0188..00000000000
--- a/chromium/third_party/blink/public/common/loader/url_loader_factory_bundle.typemap
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom =
- "//third_party/blink/public/mojom/loader/url_loader_factory_bundle.mojom"
-public_headers =
- [ "//third_party/blink/public/common/loader/url_loader_factory_bundle.h" ]
-traits_headers = [
- "//third_party/blink/public/common/loader/url_loader_factory_bundle_mojom_traits.h",
- "//url/mojom/origin_mojom_traits.h",
-]
-
-type_mappings = [ "blink.mojom.URLLoaderFactoryBundle=::std::unique_ptr<::blink::PendingURLLoaderFactoryBundle>[move_only,nullable_is_same_type]" ]
diff --git a/chromium/third_party/blink/public/common/loader/url_loader_factory_bundle_mojom_traits.h b/chromium/third_party/blink/public/common/loader/url_loader_factory_bundle_mojom_traits.h
index e2c33696b32..0d9f2183796 100644
--- a/chromium/third_party/blink/public/common/loader/url_loader_factory_bundle_mojom_traits.h
+++ b/chromium/third_party/blink/public/common/loader/url_loader_factory_bundle_mojom_traits.h
@@ -12,6 +12,7 @@
#include "third_party/blink/public/common/common_export.h"
#include "third_party/blink/public/common/loader/url_loader_factory_bundle.h"
#include "third_party/blink/public/mojom/loader/url_loader_factory_bundle.mojom-shared.h"
+#include "url/mojom/origin_mojom_traits.h"
namespace mojo {
diff --git a/chromium/third_party/blink/public/common/loader/worker_main_script_load_parameters.h b/chromium/third_party/blink/public/common/loader/worker_main_script_load_parameters.h
new file mode 100644
index 00000000000..27c8c51cf96
--- /dev/null
+++ b/chromium/third_party/blink/public/common/loader/worker_main_script_load_parameters.h
@@ -0,0 +1,35 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_LOADER_WORKER_MAIN_SCRIPT_LOAD_PARAMETERS_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_LOADER_WORKER_MAIN_SCRIPT_LOAD_PARAMETERS_H_
+
+#include <vector>
+
+#include "net/url_request/redirect_info.h"
+#include "services/network/public/mojom/url_loader.mojom.h"
+#include "services/network/public/mojom/url_response_head.mojom.h"
+#include "third_party/blink/public/common/common_export.h"
+#include "url/gurl.h"
+
+namespace blink {
+
+// Used to load the main script for dedicated workers (PlzDedicatedWorker) and
+// shared workers, which is pre-requested by browser process.
+struct BLINK_COMMON_EXPORT WorkerMainScriptLoadParameters {
+ public:
+ WorkerMainScriptLoadParameters() = default;
+ ~WorkerMainScriptLoadParameters() = default;
+
+ std::vector<GURL> redirects;
+ std::vector<network::mojom::URLResponseHeadPtr> redirect_responses;
+ std::vector<net::RedirectInfo> redirect_infos;
+ network::mojom::URLResponseHeadPtr response_head;
+ mojo::ScopedDataPipeConsumerHandle response_body;
+ network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints;
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_LOADER_WORKER_MAIN_SCRIPT_LOAD_PARAMETERS_H_
diff --git a/chromium/third_party/blink/public/common/manifest/OWNERS b/chromium/third_party/blink/public/common/manifest/OWNERS
index a7035e887c3..aa75e1416ee 100644
--- a/chromium/third_party/blink/public/common/manifest/OWNERS
+++ b/chromium/third_party/blink/public/common/manifest/OWNERS
@@ -1,8 +1,5 @@
file://third_party/blink/renderer/modules/manifest/OWNERS
-per-file *.typemap=set noparent
-per-file *.typemap=file://ipc/SECURITY_OWNERS
-
per-file *_mojom_traits*.*=set noparent
per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
diff --git a/chromium/third_party/blink/public/common/manifest/manifest.h b/chromium/third_party/blink/public/common/manifest/manifest.h
index 917736c1aa9..ea05f8119bf 100644
--- a/chromium/third_party/blink/public/common/manifest/manifest.h
+++ b/chromium/third_party/blink/public/common/manifest/manifest.h
@@ -13,8 +13,8 @@
#include "base/optional.h"
#include "base/strings/nullable_string16.h"
#include "base/strings/string16.h"
+#include "services/device/public/mojom/screen_orientation_lock_types.mojom-shared.h"
#include "third_party/blink/public/common/common_export.h"
-#include "third_party/blink/public/common/screen_orientation/web_screen_orientation_lock_type.h"
#include "third_party/blink/public/mojom/manifest/display_mode.mojom.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/gfx/geometry/size.h"
@@ -31,7 +31,7 @@ struct BLINK_COMMON_EXPORT Manifest {
struct BLINK_COMMON_EXPORT ImageResource {
enum class Purpose {
ANY = 0,
- BADGE,
+ MONOCHROME,
MASKABLE,
IMAGE_RESOURCE_PURPOSE_LAST = MASKABLE,
};
@@ -171,11 +171,16 @@ struct BLINK_COMMON_EXPORT Manifest {
// Set to DisplayMode::kUndefined if the parsing failed or the field was not
// present.
- blink::mojom::DisplayMode display;
+ blink::mojom::DisplayMode display = blink::mojom::DisplayMode::kUndefined;
- // Set to blink::WebScreenOrientationLockDefault if the parsing failed or the
- // field was not present.
- blink::WebScreenOrientationLockType orientation;
+ // Empty if the parsing failed, the field was not present, or all the
+ // values inside the JSON array were invalid.
+ std::vector<blink::mojom::DisplayMode> display_override;
+
+ // Set to device::mojom::ScreenOrientationLockType::DEFAULT if the parsing
+ // failed or the field was not present.
+ device::mojom::ScreenOrientationLockType orientation =
+ device::mojom::ScreenOrientationLockType::DEFAULT;
// Empty if the parsing failed, the field was not present, or all the
// icons inside the JSON array were invalid.
@@ -209,7 +214,7 @@ struct BLINK_COMMON_EXPORT Manifest {
// A boolean that is used as a hint for the user agent to say that related
// applications should be preferred over the web application. False if missing
// or there is a parsing failure.
- bool prefer_related_applications;
+ bool prefer_related_applications = false;
// Null if field is not present or parsing failed.
base::Optional<SkColor> theme_color;
diff --git a/chromium/third_party/blink/public/common/manifest/manifest.typemap b/chromium/third_party/blink/public/common/manifest/manifest.typemap
deleted file mode 100644
index 7b18d1a618d..00000000000
--- a/chromium/third_party/blink/public/common/manifest/manifest.typemap
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//third_party/blink/public/mojom/manifest/manifest.mojom"
-public_headers = [
- "//third_party/blink/public/common/manifest/manifest.h",
- "//third_party/blink/public/common/common_export.h",
-]
-traits_headers =
- [ "//third_party/blink/public/common/manifest/manifest_mojom_traits.h" ]
-sources = [
- "//third_party/blink/common/manifest/manifest_mojom_traits.cc",
-]
-deps = [
- "//ui/gfx/geometry/mojom:mojom_traits",
-]
-type_mappings = [
- "blink.mojom.Manifest=::blink::Manifest[nullable_is_same_type]",
- "blink.mojom.ManifestImageResource=::blink::Manifest::ImageResource",
- "blink.mojom.ManifestRelatedApplication=::blink::Manifest::RelatedApplication",
- "blink.mojom.ManifestShareTarget=::blink::Manifest::ShareTarget",
- "blink.mojom.ManifestShortcutItem=::blink::Manifest::ShortcutItem",
-]
diff --git a/chromium/third_party/blink/public/common/manifest/manifest_mojom_traits.h b/chromium/third_party/blink/public/common/manifest/manifest_mojom_traits.h
index b6476d35944..c639c0d3d3e 100644
--- a/chromium/third_party/blink/public/common/manifest/manifest_mojom_traits.h
+++ b/chromium/third_party/blink/public/common/manifest/manifest_mojom_traits.h
@@ -71,7 +71,12 @@ struct BLINK_COMMON_EXPORT
return manifest.display;
}
- static blink::WebScreenOrientationLockType orientation(
+ static const std::vector<blink::mojom::DisplayMode> display_override(
+ const ::blink::Manifest& manifest) {
+ return manifest.display_override;
+ }
+
+ static device::mojom::ScreenOrientationLockType orientation(
const ::blink::Manifest& manifest) {
return manifest.orientation;
}
@@ -328,8 +333,8 @@ struct BLINK_COMMON_EXPORT
switch (purpose) {
case ::blink::Manifest::ImageResource::Purpose::ANY:
return blink::mojom::ManifestImageResource_Purpose::ANY;
- case ::blink::Manifest::ImageResource::Purpose::BADGE:
- return blink::mojom::ManifestImageResource_Purpose::BADGE;
+ case ::blink::Manifest::ImageResource::Purpose::MONOCHROME:
+ return blink::mojom::ManifestImageResource_Purpose::MONOCHROME;
case ::blink::Manifest::ImageResource::Purpose::MASKABLE:
return blink::mojom::ManifestImageResource_Purpose::MASKABLE;
}
@@ -342,8 +347,8 @@ struct BLINK_COMMON_EXPORT
case blink::mojom::ManifestImageResource_Purpose::ANY:
*out = ::blink::Manifest::ImageResource::Purpose::ANY;
return true;
- case blink::mojom::ManifestImageResource_Purpose::BADGE:
- *out = ::blink::Manifest::ImageResource::Purpose::BADGE;
+ case blink::mojom::ManifestImageResource_Purpose::MONOCHROME:
+ *out = ::blink::Manifest::ImageResource::Purpose::MONOCHROME;
return true;
case blink::mojom::ManifestImageResource_Purpose::MASKABLE:
*out = ::blink::Manifest::ImageResource::Purpose::MASKABLE;
diff --git a/chromium/third_party/blink/public/common/manifest/manifest_util.h b/chromium/third_party/blink/public/common/manifest/manifest_util.h
index 63a862720b7..ce80ecc89b1 100644
--- a/chromium/third_party/blink/public/common/manifest/manifest_util.h
+++ b/chromium/third_party/blink/public/common/manifest/manifest_util.h
@@ -7,8 +7,8 @@
#include <string>
+#include "services/device/public/mojom/screen_orientation_lock_types.mojom-shared.h"
#include "third_party/blink/public/common/common_export.h"
-#include "third_party/blink/public/common/screen_orientation/web_screen_orientation_lock_type.h"
#include "third_party/blink/public/mojom/manifest/display_mode.mojom-forward.h"
namespace blink {
@@ -27,19 +27,19 @@ BLINK_COMMON_EXPORT std::string DisplayModeToString(
BLINK_COMMON_EXPORT blink::mojom::DisplayMode DisplayModeFromString(
const std::string& display);
-// Converts a blink::WebScreenOrientationLockType to a string. Returns one of
-// https://www.w3.org/TR/screen-orientation/#orientationlocktype-enum. Return
+// Converts a device::mojom::ScreenOrientationLockType to a string. Returns one
+// of https://www.w3.org/TR/screen-orientation/#orientationlocktype-enum. Return
// values are lowercase. Returns an empty string for
-// blink::WebScreenOrientationLockDefault.
+// device::mojom::ScreenOrientationLockType::DEFAULT.
BLINK_COMMON_EXPORT std::string WebScreenOrientationLockTypeToString(
- blink::WebScreenOrientationLockType);
+ device::mojom::ScreenOrientationLockType);
-// Returns the blink::WebScreenOrientationLockType which matches
+// Returns the device::mojom::ScreenOrientationLockType which matches
// |orientation|. |orientation| should be one of
// https://www.w3.org/TR/screen-orientation/#orientationlocktype-enum.
// |orientation| is case insensitive. Returns
-// blink::WebScreenOrientationLockDefault if there is no match.
-BLINK_COMMON_EXPORT blink::WebScreenOrientationLockType
+// device::mojom::ScreenOrientationLockType::DEFAULT if there is no match.
+BLINK_COMMON_EXPORT device::mojom::ScreenOrientationLockType
WebScreenOrientationLockTypeFromString(const std::string& orientation);
} // namespace blink
diff --git a/chromium/third_party/blink/public/common/mediastream/OWNERS b/chromium/third_party/blink/public/common/mediastream/OWNERS
index f247c7f2b01..7f3f5708d20 100644
--- a/chromium/third_party/blink/public/common/mediastream/OWNERS
+++ b/chromium/third_party/blink/public/common/mediastream/OWNERS
@@ -3,8 +3,6 @@ hbos@chromium.org
per-file *_mojom_traits*.*=set noparent
per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
-per-file *.typemap=set noparent
-per-file *.typemap=file://ipc/SECURITY_OWNERS
# TEAM: webrtc-dev@chromium.org
# COMPONENT: Blink>GetUserMedia
diff --git a/chromium/third_party/blink/public/common/mediastream/media_devices.h b/chromium/third_party/blink/public/common/mediastream/media_devices.h
index c0ba8bd3415..63324f0800b 100644
--- a/chromium/third_party/blink/public/common/mediastream/media_devices.h
+++ b/chromium/third_party/blink/public/common/mediastream/media_devices.h
@@ -33,8 +33,8 @@ struct BLINK_COMMON_EXPORT WebMediaDeviceInfo {
const std::string& device_id,
const std::string& label,
const std::string& group_id,
- media::VideoFacingMode video_facing = media::MEDIA_VIDEO_FACING_NONE,
- const base::Optional<bool>& pan_tilt_zoom_supported = base::nullopt);
+ bool pan_tilt_zoom_supported = false,
+ media::VideoFacingMode video_facing = media::MEDIA_VIDEO_FACING_NONE);
explicit WebMediaDeviceInfo(
const media::VideoCaptureDeviceDescriptor& descriptor);
~WebMediaDeviceInfo();
@@ -44,9 +44,9 @@ struct BLINK_COMMON_EXPORT WebMediaDeviceInfo {
std::string device_id;
std::string label;
std::string group_id;
+ bool pan_tilt_zoom_supported = false;
media::VideoFacingMode video_facing =
media::VideoFacingMode::MEDIA_VIDEO_FACING_NONE;
- base::Optional<bool> pan_tilt_zoom_supported;
};
using WebMediaDeviceInfoArray = std::vector<WebMediaDeviceInfo>;
diff --git a/chromium/third_party/blink/public/common/mediastream/media_devices.typemap b/chromium/third_party/blink/public/common/mediastream/media_devices.typemap
deleted file mode 100644
index e1a2de05655..00000000000
--- a/chromium/third_party/blink/public/common/mediastream/media_devices.typemap
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2018 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//third_party/blink/public/mojom/mediastream/media_devices.mojom"
-
-public_headers = [
- "//third_party/blink/public/common/mediastream/media_devices.h",
- "//third_party/blink/public/common/common_export.h",
-]
-
-traits_headers = [
- "//third_party/blink/public/common/mediastream/media_devices_mojom_traits.h",
-]
-
-type_mappings = [
- "blink.mojom.MediaDeviceType=::blink::MediaDeviceType",
- "blink.mojom.MediaDeviceInfo=::blink::WebMediaDeviceInfo",
- "blink.mojom.FacingMode=::media::VideoFacingMode",
-]
diff --git a/chromium/third_party/blink/public/common/mediastream/media_stream.typemap b/chromium/third_party/blink/public/common/mediastream/media_stream.typemap
deleted file mode 100644
index a33ee4fd532..00000000000
--- a/chromium/third_party/blink/public/common/mediastream/media_stream.typemap
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2018 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//third_party/blink/public/mojom/mediastream/media_stream.mojom"
-
-public_headers = [
- "//third_party/blink/public/common/mediastream/media_stream_controls.h",
- "//third_party/blink/public/common/mediastream/media_stream_request.h",
- "//third_party/blink/public/common/common_export.h",
-]
-
-traits_headers = [
- "//media/base/ipc/media_param_traits.h",
- "//media/capture/mojom/video_capture_types_mojom_traits.h",
- "//third_party/blink/public/common/mediastream/media_stream_mojom_traits.h",
-]
-
-type_mappings = [
- "blink.mojom.MediaStreamDevice=::blink::MediaStreamDevice",
- "blink.mojom.StreamControls=::blink::StreamControls",
- "blink.mojom.TrackControls=::blink::TrackControls",
-]
diff --git a/chromium/third_party/blink/public/common/mediastream/media_stream_request.h b/chromium/third_party/blink/public/common/mediastream/media_stream_request.h
index 6c530625c4f..71f66046d7e 100644
--- a/chromium/third_party/blink/public/common/mediastream/media_stream_request.h
+++ b/chromium/third_party/blink/public/common/mediastream/media_stream_request.h
@@ -52,13 +52,12 @@ struct BLINK_COMMON_EXPORT MediaStreamDevice {
MediaStreamDevice(mojom::MediaStreamType type,
const std::string& id,
const std::string& name);
- MediaStreamDevice(
- mojom::MediaStreamType type,
- const std::string& id,
- const std::string& name,
- media::VideoFacingMode facing,
- const base::Optional<std::string>& group_id = base::nullopt,
- const base::Optional<bool>& pan_tilt_zoom_supported = base::nullopt);
+ MediaStreamDevice(mojom::MediaStreamType type,
+ const std::string& id,
+ const std::string& name,
+ media::VideoFacingMode facing,
+ const base::Optional<std::string>& group_id = base::nullopt,
+ bool pan_tilt_zoom_supported = false);
MediaStreamDevice(mojom::MediaStreamType type,
const std::string& id,
const std::string& name,
@@ -99,9 +98,8 @@ struct BLINK_COMMON_EXPORT MediaStreamDevice {
// The device's group ID.
base::Optional<std::string> group_id;
- // Whether the device supports pan-tilt-zoom.
- // Only applicable to video devices.
- base::Optional<bool> pan_tilt_zoom_supported;
+ // Whether the video capture device supports PTZ.
+ bool pan_tilt_zoom_supported = false;
// The device id of a matched output device if any (otherwise empty).
// Only applicable to audio devices.
diff --git a/chromium/third_party/blink/public/common/messaging/OWNERS b/chromium/third_party/blink/public/common/messaging/OWNERS
index ec3a4819494..cbec086e708 100644
--- a/chromium/third_party/blink/public/common/messaging/OWNERS
+++ b/chromium/third_party/blink/public/common/messaging/OWNERS
@@ -5,8 +5,6 @@ per-file *.mojom=set noparent
per-file *.mojom=file://ipc/SECURITY_OWNERS
per-file *_mojom_traits*.*=set noparent
per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
-per-file *.typemap=set noparent
-per-file *.typemap=file://ipc/SECURITY_OWNERS
# TEAM: platform-architecture-dev@chromium.org
# COMPONENT: Blink>Messaging
diff --git a/chromium/third_party/blink/public/common/messaging/message_port_descriptor.typemap b/chromium/third_party/blink/public/common/messaging/message_port_descriptor.typemap
deleted file mode 100644
index 50a81d7b5eb..00000000000
--- a/chromium/third_party/blink/public/common/messaging/message_port_descriptor.typemap
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright 2019 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom =
- "//third_party/blink/public/mojom/messaging/message_port_descriptor.mojom"
-public_headers =
- [ "//third_party/blink/public/common/messaging/message_port_descriptor.h" ]
-traits_headers = [ "//third_party/blink/public/common/messaging/message_port_descriptor_mojom_traits.h" ]
-type_mappings = [
- "blink.mojom.MessagePortDescriptor=::blink::MessagePortDescriptor[move_only]",
-]
diff --git a/chromium/third_party/blink/public/common/messaging/transferable_message.h b/chromium/third_party/blink/public/common/messaging/transferable_message.h
index 2d87363d3b1..beb1eaf1b8f 100644
--- a/chromium/third_party/blink/public/common/messaging/transferable_message.h
+++ b/chromium/third_party/blink/public/common/messaging/transferable_message.h
@@ -39,17 +39,6 @@ struct BLINK_COMMON_EXPORT TransferableMessage : public CloneableMessage {
// The state of user activation.
mojom::UserActivationSnapshotPtr user_activation;
- // Whether the state of user activation should be transferred to the
- // destination frame.
- bool transfer_user_activation = false;
-
- // Whether the destination frame is allowed to autoplay.
- //
- // TODO(mustaq): Ideally the |transfer_user_activation| field above should be
- // replaced by bits specific to "safe-to-delegate" capabilities, like the
- // autoplay bit below. See crbug.com/985914.
- bool allow_autoplay = false;
-
private:
DISALLOW_COPY_AND_ASSIGN(TransferableMessage);
};
diff --git a/chromium/third_party/blink/public/common/messaging/transferable_message_mojom_traits.h b/chromium/third_party/blink/public/common/messaging/transferable_message_mojom_traits.h
index 08ebc095316..59be07c80de 100644
--- a/chromium/third_party/blink/public/common/messaging/transferable_message_mojom_traits.h
+++ b/chromium/third_party/blink/public/common/messaging/transferable_message_mojom_traits.h
@@ -47,14 +47,6 @@ struct BLINK_COMMON_EXPORT
return input.user_activation;
}
- static bool transfer_user_activation(blink::TransferableMessage& input) {
- return input.transfer_user_activation;
- }
-
- static bool allow_autoplay(blink::TransferableMessage& input) {
- return input.allow_autoplay;
- }
-
static bool Read(blink::mojom::TransferableMessage::DataView data,
blink::TransferableMessage* out);
};
diff --git a/chromium/third_party/blink/public/common/messaging/web_message_port.h b/chromium/third_party/blink/public/common/messaging/web_message_port.h
index 9e1daff19e5..373ba2038cf 100644
--- a/chromium/third_party/blink/public/common/messaging/web_message_port.h
+++ b/chromium/third_party/blink/public/common/messaging/web_message_port.h
@@ -217,9 +217,9 @@ class BLINK_COMMON_EXPORT WebMessagePort::MessageReceiver {
MessageReceiver& operator=(MessageReceiver&&) = delete;
virtual ~MessageReceiver();
- // Invoked by incoming messages. This should return true if the message was
- // successfully handled, false otherwise. If this returns false the pipe
- // will be torn down and a call to OnPipeError will be made.
+ // Called for each incoming |message|. Returns false if the message could not
+ // be successfully handled, in which case the pipe should be torn-down and
+ // OnPipeError() invoked.
virtual bool OnMessage(Message message);
// Invoked when the underlying pipe has experienced an error.
diff --git a/chromium/third_party/blink/public/common/metrics/form_element_pii_type.h b/chromium/third_party/blink/public/common/metrics/form_element_pii_type.h
new file mode 100644
index 00000000000..64e94868b27
--- /dev/null
+++ b/chromium/third_party/blink/public/common/metrics/form_element_pii_type.h
@@ -0,0 +1,27 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_METRICS_FORM_ELEMENT_PII_TYPE_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_METRICS_FORM_ELEMENT_PII_TYPE_H_
+
+#include <stdint.h>
+#include <string>
+
+namespace blink {
+
+// PII (i.e. Personally identifiable information) type of html form element.
+enum class FormElementPiiType {
+ kUnknown,
+
+ kEmail,
+ kPhone,
+
+ // It's some PII type, but we are currently not interested in the specific
+ // category.
+ kOthers,
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_METRICS_FORM_ELEMENT_PII_TYPE_H_
diff --git a/chromium/third_party/blink/public/common/notifications/OWNERS b/chromium/third_party/blink/public/common/notifications/OWNERS
index 46df3735ce1..0f8fb44038a 100644
--- a/chromium/third_party/blink/public/common/notifications/OWNERS
+++ b/chromium/third_party/blink/public/common/notifications/OWNERS
@@ -3,8 +3,5 @@ file://content/browser/notifications/OWNERS
per-file *_mojom_traits*.*=set noparent
per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
-per-file *.typemap=set noparent
-per-file *.typemap=file://ipc/SECURITY_OWNERS
-
# TEAM: platform-capabilities@chromium.org
# COMPONENT: UI>Notifications
diff --git a/chromium/third_party/blink/public/common/notifications/notification_mojom_traits.h b/chromium/third_party/blink/public/common/notifications/notification_mojom_traits.h
index b2677a60ace..6d849055386 100644
--- a/chromium/third_party/blink/public/common/notifications/notification_mojom_traits.h
+++ b/chromium/third_party/blink/public/common/notifications/notification_mojom_traits.h
@@ -12,8 +12,9 @@
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "skia/public/mojom/bitmap_skbitmap_mojom_traits.h"
#include "third_party/blink/public/common/common_export.h"
+#include "third_party/blink/public/common/notifications/notification_resources.h"
#include "third_party/blink/public/common/notifications/platform_notification_data.h"
-#include "third_party/blink/public/mojom/notifications/notification.mojom-forward.h"
+#include "third_party/blink/public/mojom/notifications/notification.mojom-shared.h"
#include "url/gurl.h"
#include "url/mojom/url_gurl_mojom_traits.h"
diff --git a/chromium/third_party/blink/public/common/notifications/notification_types.typemap b/chromium/third_party/blink/public/common/notifications/notification_types.typemap
deleted file mode 100644
index 0bede122608..00000000000
--- a/chromium/third_party/blink/public/common/notifications/notification_types.typemap
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//third_party/blink/public/mojom/notifications/notification.mojom"
-public_headers = [
- "//third_party/blink/public/common/notifications/notification_resources.h",
- "//third_party/blink/public/common/notifications/platform_notification_data.h",
-]
-traits_headers = [
- "//third_party/blink/public/common/notifications/notification_mojom_traits.h",
-]
-deps = [
- "//mojo/public/cpp/bindings",
-]
-type_mappings = [
- "blink.mojom.NotificationData=::blink::PlatformNotificationData",
- "blink.mojom.NotificationResources=::blink::NotificationResources",
-]
diff --git a/chromium/third_party/blink/public/common/notifications/platform_notification_data.h b/chromium/third_party/blink/public/common/notifications/platform_notification_data.h
index 3d3c8f7a0ec..840bd433212 100644
--- a/chromium/third_party/blink/public/common/notifications/platform_notification_data.h
+++ b/chromium/third_party/blink/public/common/notifications/platform_notification_data.h
@@ -13,7 +13,7 @@
#include "base/strings/string16.h"
#include "base/time/time.h"
#include "third_party/blink/public/common/common_export.h"
-#include "third_party/blink/public/mojom/notifications/notification.mojom-forward.h"
+#include "third_party/blink/public/mojom/notifications/notification.mojom-shared.h"
#include "url/gurl.h"
namespace blink {
diff --git a/chromium/third_party/blink/public/common/origin_trials/trial_token_validator.h b/chromium/third_party/blink/public/common/origin_trials/trial_token_validator.h
index aa27c9cff12..b600d5fd5b1 100644
--- a/chromium/third_party/blink/public/common/origin_trials/trial_token_validator.h
+++ b/chromium/third_party/blink/public/common/origin_trials/trial_token_validator.h
@@ -97,7 +97,6 @@ class BLINK_COMMON_EXPORT TrialTokenValidator {
static void SetOriginTrialPolicyGetter(
base::RepeatingCallback<OriginTrialPolicy*()> policy);
static void ResetOriginTrialPolicyGetter();
- static OriginTrialPolicy* Policy();
static bool IsTrialPossibleOnOrigin(const GURL& url);
}; // class TrialTokenValidator
diff --git a/chromium/third_party/blink/public/common/peerconnection/OWNERS b/chromium/third_party/blink/public/common/peerconnection/OWNERS
index 7f69766290a..5ab7d5845f7 100644
--- a/chromium/third_party/blink/public/common/peerconnection/OWNERS
+++ b/chromium/third_party/blink/public/common/peerconnection/OWNERS
@@ -2,5 +2,3 @@ file://third_party/blink/renderer/modules/peerconnection/OWNERS
per-file *_mojom_traits*.*=set noparent
per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
-per-file *.typemap=set noparent
-per-file *.typemap=file://ipc/SECURITY_OWNERS
diff --git a/chromium/third_party/blink/public/common/peerconnection/peer_connection_tracker.typemap b/chromium/third_party/blink/public/common/peerconnection/peer_connection_tracker.typemap
deleted file mode 100644
index 4edd7c77949..00000000000
--- a/chromium/third_party/blink/public/common/peerconnection/peer_connection_tracker.typemap
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright 2020 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//third_party/blink/public/mojom/peerconnection/peer_connection_tracker.mojom"
-
-public_headers = [
- "//base/power_monitor/power_observer.h",
- "//third_party/blink/public/common/common_export.h",
-]
-
-traits_headers = [ "//third_party/blink/public/common/peerconnection/peer_connection_tracker_mojom_traits.h" ]
-
-type_mappings = [
- "blink.mojom.DeviceThermalState=::base::PowerObserver::DeviceThermalState",
-]
diff --git a/chromium/third_party/blink/public/common/peerconnection/peer_connection_tracker_mojom_traits.h b/chromium/third_party/blink/public/common/peerconnection/peer_connection_tracker_mojom_traits.h
index 12191955e1a..6e237be9e3b 100644
--- a/chromium/third_party/blink/public/common/peerconnection/peer_connection_tracker_mojom_traits.h
+++ b/chromium/third_party/blink/public/common/peerconnection/peer_connection_tracker_mojom_traits.h
@@ -7,7 +7,7 @@
#include "base/power_monitor/power_observer.h"
#include "third_party/blink/public/common/common_export.h"
-#include "third_party/blink/public/mojom/peerconnection/peer_connection_tracker.mojom.h"
+#include "third_party/blink/public/mojom/peerconnection/peer_connection_tracker.mojom-shared.h"
namespace mojo {
diff --git a/chromium/third_party/blink/public/common/privacy_budget/BUILD.gn b/chromium/third_party/blink/public/common/privacy_budget/BUILD.gn
index 2f35bb930b1..3fa0ea78592 100644
--- a/chromium/third_party/blink/public/common/privacy_budget/BUILD.gn
+++ b/chromium/third_party/blink/public/common/privacy_budget/BUILD.gn
@@ -15,9 +15,11 @@ source_set("privacy_budget") {
sources = [
"identifiability_metric_builder.h",
"identifiability_metrics.h",
+ "identifiability_sample_collector.h",
"identifiability_study_participation.h",
"identifiability_study_settings.h",
"identifiability_study_settings_provider.h",
+ "identifiable_sample.h",
"identifiable_surface.h",
"identifiable_token.h",
"identifiable_token_builder.h",
@@ -32,3 +34,19 @@ source_set("privacy_budget") {
"//third_party/blink/public/mojom:web_feature_mojo_bindings",
]
}
+
+source_set("test_support") {
+ testonly = true
+
+ sources = [
+ "scoped_identifiability_test_sample_collector.h",
+ "scoped_switch_sample_collector.h",
+ ]
+
+ public_deps = [ "//third_party/blink/public/common:headers" ]
+
+ deps = [
+ ":internal",
+ "//third_party/blink/public/common:common_export",
+ ]
+}
diff --git a/chromium/third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h b/chromium/third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h
index dc2fcc09555..bce71798e39 100644
--- a/chromium/third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h
+++ b/chromium/third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h
@@ -6,11 +6,13 @@
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_IDENTIFIABILITY_METRIC_BUILDER_H_
#include <cstdint>
+#include <vector>
#include "base/metrics/ukm_source_id.h"
-#include "services/metrics/public/cpp/ukm_entry_builder_base.h"
+#include "services/metrics/public/cpp/ukm_recorder.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
#include "third_party/blink/public/common/common_export.h"
+#include "third_party/blink/public/common/privacy_budget/identifiable_sample.h"
#include "third_party/blink/public/common/privacy_budget/identifiable_surface.h"
#include "third_party/blink/public/common/privacy_budget/identifiable_token.h"
#include "third_party/blink/public/mojom/web_feature/web_feature.mojom-forward.h"
@@ -94,8 +96,7 @@ namespace blink {
// IdentifiableSurface::Type::kFancySurface,
// IdentifiabilityDigestOfBytes(input_as_binary_blob));
// output = IdentifiabilityDigestOfBytes(result_as_binary_blob);
-class BLINK_COMMON_EXPORT IdentifiabilityMetricBuilder
- : public ukm::internal::UkmEntryBuilderBase {
+class BLINK_COMMON_EXPORT IdentifiabilityMetricBuilder {
public:
// Construct a metrics builder for the given |source_id|. The source must be
// known to UKM.
@@ -109,7 +110,7 @@ class BLINK_COMMON_EXPORT IdentifiabilityMetricBuilder
explicit IdentifiabilityMetricBuilder(ukm::SourceId source_id)
: IdentifiabilityMetricBuilder(base::UkmSourceId::FromInt64(source_id)) {}
- ~IdentifiabilityMetricBuilder() override;
+ ~IdentifiabilityMetricBuilder();
// Set the metric using a previously constructed |IdentifiableSurface|.
IdentifiabilityMetricBuilder& Set(IdentifiableSurface surface,
@@ -130,10 +131,12 @@ class BLINK_COMMON_EXPORT IdentifiabilityMetricBuilder
sample);
}
- // Shadow the underlying Record() implementation until the upstream pipeline
- // is ready for identifiability metrics.
- // TODO(crbug.com/973801): Remove once the pipeline is ready.
+ // Record collected metrics to `recorder`.
void Record(ukm::UkmRecorder* recorder);
+
+ private:
+ std::vector<IdentifiableSample> metrics_;
+ const base::UkmSourceId source_id_;
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/common/privacy_budget/identifiability_metrics.h b/chromium/third_party/blink/public/common/privacy_budget/identifiability_metrics.h
index 48ddca2ffc2..c3b02b0b58c 100644
--- a/chromium/third_party/blink/public/common/privacy_budget/identifiability_metrics.h
+++ b/chromium/third_party/blink/public/common/privacy_budget/identifiability_metrics.h
@@ -111,6 +111,10 @@ uint64_t IdentifiabilityDigestHelper(T in, Targs... extra_in) {
base::make_span(reinterpret_cast<uint8_t*>(digests), sizeof(digests)));
}
+// The zero-length digest, i.e. the digest computed for no bytes.
+static constexpr uint64_t kIdentifiabilityDigestOfNoBytes =
+ 0x9ae16a3b2f90404fULL;
+
} // namespace blink
#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_IDENTIFIABILITY_METRICS_H_
diff --git a/chromium/third_party/blink/public/common/privacy_budget/identifiability_sample_collector.h b/chromium/third_party/blink/public/common/privacy_budget/identifiability_sample_collector.h
new file mode 100644
index 00000000000..d7c0f0605bb
--- /dev/null
+++ b/chromium/third_party/blink/public/common/privacy_budget/identifiability_sample_collector.h
@@ -0,0 +1,55 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_IDENTIFIABILITY_SAMPLE_COLLECTOR_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_IDENTIFIABILITY_SAMPLE_COLLECTOR_H_
+
+#include <utility>
+#include <vector>
+
+#include "services/metrics/public/cpp/ukm_recorder.h"
+#include "services/metrics/public/cpp/ukm_source_id.h"
+#include "third_party/blink/public/common/common_export.h"
+#include "third_party/blink/public/common/privacy_budget/identifiable_sample.h"
+
+namespace blink {
+
+// Do not use this directly. Don't report identifiability metrics directly via
+// `UkmRecorder` either.
+//
+// `UkmRecorder` is not designed for the rate and volume with which
+// identifiability metrics are generated. In addition, all of these metrics --
+// which aren't really metrics to begin with -- are only required to be recorded
+// once per client.
+//
+// Therefore, rather than report identifiability samples directly to UKM, they
+// should instead be funnelled through the global instance of
+// `IdentifiabilitySampleCollector` which does the work of de-duplication and
+// rate limiting..
+//
+// `IdentifiabilityMetricBuilder` already uses `IdentifiabilitySampleCollector`
+// internally. Look no further.
+class BLINK_COMMON_EXPORT IdentifiabilitySampleCollector {
+ public:
+ virtual ~IdentifiabilitySampleCollector();
+
+ // Gets the singleton per-process collector. Always returns a valid pointer.
+ static IdentifiabilitySampleCollector* Get();
+
+ // Record a set of identifiability metrics.
+ virtual void Record(ukm::UkmRecorder* recorder,
+ ukm::SourceId source,
+ std::vector<IdentifiableSample> metrics) = 0;
+
+ // Unconditionally write out all pending metrics via `recorder`.
+ virtual void Flush(ukm::UkmRecorder* recorder) = 0;
+
+ // Unconditionally write out all pending metrics from `source` via `recorder`.
+ virtual void FlushSource(ukm::UkmRecorder* recorder,
+ ukm::SourceId source) = 0;
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_IDENTIFIABILITY_SAMPLE_COLLECTOR_H_
diff --git a/chromium/third_party/blink/public/common/privacy_budget/identifiable_sample.h b/chromium/third_party/blink/public/common/privacy_budget/identifiable_sample.h
new file mode 100644
index 00000000000..ee81326490d
--- /dev/null
+++ b/chromium/third_party/blink/public/common/privacy_budget/identifiable_sample.h
@@ -0,0 +1,31 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_IDENTIFIABLE_SAMPLE_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_IDENTIFIABLE_SAMPLE_H_
+
+#include "third_party/blink/public/common/privacy_budget/identifiable_surface.h"
+#include "third_party/blink/public/common/privacy_budget/identifiable_token.h"
+
+namespace blink {
+
+// Represents a single identifiable sample. It's basically an immutable
+// 〈surface, value〉tuple defined as a struct because it's useful in many
+// places.
+struct IdentifiableSample {
+ IdentifiableSample(IdentifiableSurface surface_param,
+ IdentifiableToken value_param)
+ : surface(surface_param), value(value_param) {}
+
+ const IdentifiableSurface surface;
+ const IdentifiableToken value;
+
+ bool operator==(const IdentifiableSample& other) const {
+ return surface == other.surface && value == other.value;
+ }
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_IDENTIFIABLE_SAMPLE_H_
diff --git a/chromium/third_party/blink/public/common/privacy_budget/identifiable_surface.h b/chromium/third_party/blink/public/common/privacy_budget/identifiable_surface.h
index 4f74660be5a..41666cfaf76 100644
--- a/chromium/third_party/blink/public/common/privacy_budget/identifiable_surface.h
+++ b/chromium/third_party/blink/public/common/privacy_budget/identifiable_surface.h
@@ -12,6 +12,7 @@
#include <tuple>
#include "third_party/blink/public/common/common_export.h"
+#include "third_party/blink/public/common/privacy_budget/identifiable_token.h"
namespace blink {
@@ -42,6 +43,25 @@ class IdentifiableSurface {
// {Type::kReservedInternal, 0} which is not possible for a valid surface.
static constexpr uint64_t kInvalidHash = 0;
+ // HTML canvas readback -- bits [0-3] of the 64-bit input are the context type
+ // (Type::kCanvasReadback), bits [4-6] are skipped ops, sensitive ops, and
+ // partial image ops bits, respectively. The remaining bits are for the canvas
+ // operations digest. If the digest wasn't calculated (there's no digest for
+ // webgl, for instance), the digest field is 0.
+ enum CanvasTaintBit : uint64_t {
+ // At least one drawing operation didn't update the digest -- this is ether
+ // due to performance or resource consumption reasons.
+ kSkipped = UINT64_C(0x10),
+
+ // At least one drawing operation operated on a sensitive string. Sensitive
+ // strings use a 16-bit hash digest.
+ kSensitive = UINT64_C(0x20),
+
+ // At least one drawing operation was only partially digested, for
+ // performance reasons.
+ kPartiallyDigested = UINT64_C(0x40)
+ };
+
// Type of identifiable surface.
//
// Even though the data type is uint64_t, we can only use 8 bits due to how we
@@ -61,6 +81,58 @@ class IdentifiableSurface {
// CanvasRenderingContextType.
kCanvasReadback = 2,
+ // Represents loading a font locally based on a name lookup that is allowed
+ // to match either a unique name or a family name. This occurs when a
+ // font-family CSS rule doesn't match any @font-face rule. Input is the
+ // combination of the lookup name and the FontSelectionRequest (i.e. weight,
+ // width and slope).
+ kLocalFontLookupByUniqueOrFamilyName = 3,
+
+ // Represents looking up the family name of a generic font. Input is the
+ // combination of the generic font family name, script code and
+ // GenericFamilyType.
+ kGenericFontLookup = 4,
+
+ // Attempt to access extension URLs.
+ kExtensionFileAccess = 5,
+
+ // Extension running content-script.
+ kExtensionContentScript = 6,
+
+ // Represents making a measurement of one of the above surfacess. This
+ // metric is retained even if filtering discards the surface.
+ kMeasuredSurface = 7,
+
+ // WebGL parameter for WebGLRenderingContext.getParameter().
+ kWebGLParameter = 8,
+
+ // Represents a call to |MediaRecorder.isTypeSupported(mimeType)|. Input is
+ // the mime type supplied to the method.
+ kMediaRecorder_IsTypeSupported = 9,
+
+ // Represents a call to |MediaSource.isTypeSupported(mimeType)|. Input is
+ // the mime type supplied to the method.
+ kMediaSource_IsTypeSupported = 10,
+
+ // Represents a call to |HTMLMediaElement.canPlayType(mimeType)|. Input is
+ // the mime type supplied to the method.
+ kHTMLMediaElement_CanPlayType = 11,
+
+ // Represents loading a font locally based on a name lookup that is only
+ // allowed to match a unique name. This occurs in @font-face CSS rules with
+ // a src:local attribute. Input is the combination of the lookup name and
+ // the FontSelectionRequest (i.e. weight, width and slope).
+ kLocalFontLookupByUniqueNameOnly = 12,
+
+ // Represents loading a font locally based on a fallback character. Input is
+ // the combination of the fallback character, FallbackPriority and the
+ // FontSelectionRequest (i.e. weight, width and slope).
+ kLocalFontLookupByFallbackCharacter = 13,
+
+ // Represents loading a font locally as a last resort. Input is the
+ // FontSelectionRequest (i.e. weight, width and slope).
+ kLocalFontLookupAsLastResort = 14,
+
// We can use values up to and including |kMax|.
kMax = (1 << kTypeBits) - 1
};
@@ -80,6 +152,14 @@ class IdentifiableSurface {
return IdentifiableSurface(KeyFromSurfaceTypeAndInput(type, input));
}
+ // Construct an IdentifiableSurface based on a surface type and an input
+ // token.
+ static constexpr IdentifiableSurface FromTypeAndToken(
+ Type type,
+ IdentifiableToken token) {
+ return IdentifiableSurface(KeyFromSurfaceTypeAndInput(type, token.value_));
+ }
+
// Construct an invalid identifiable surface.
static constexpr IdentifiableSurface Invalid() {
return IdentifiableSurface(kInvalidHash);
diff --git a/chromium/third_party/blink/public/common/privacy_budget/identifiable_token.h b/chromium/third_party/blink/public/common/privacy_budget/identifiable_token.h
index 9c4b39250cc..39465a2249c 100644
--- a/chromium/third_party/blink/public/common/privacy_budget/identifiable_token.h
+++ b/chromium/third_party/blink/public/common/privacy_budget/identifiable_token.h
@@ -95,6 +95,9 @@ class IdentifiableToken {
// Representation type of the sample.
using TokenType = int64_t;
+ // Required for use in certain data structures. Represents no bytes.
+ constexpr IdentifiableToken() : value_(kIdentifiabilityDigestOfNoBytes) {}
+
// A byte buffer specified as a span.
//
// This is essentially the base case. If it were the base case, then
@@ -216,9 +219,14 @@ class IdentifiableToken {
return value_ != that.value_;
}
+ // Returns a value that can be passed into the UKM metrics recording
+ // interfaces.
+ int64_t ToUkmMetricValue() const { return value_; }
+
private:
friend class IdentifiabilityMetricBuilder;
friend class IdentifiableSurface;
+ friend class IdentifiableTokenBuilder;
// TODO(asanka): This should be const. Switch over once the incremental digest
// functions land.
diff --git a/chromium/third_party/blink/public/common/privacy_budget/identifiable_token_builder.h b/chromium/third_party/blink/public/common/privacy_budget/identifiable_token_builder.h
index 616dc7f51f3..cbfb51b7a94 100644
--- a/chromium/third_party/blink/public/common/privacy_budget/identifiable_token_builder.h
+++ b/chromium/third_party/blink/public/common/privacy_budget/identifiable_token_builder.h
@@ -74,6 +74,12 @@ class BLINK_COMMON_EXPORT IdentifiableTokenBuilder {
// AddAtomic().
IdentifiableTokenBuilder& AddAtomic(ByteBuffer buffer);
+ // Feeds the underlying value of the |token| itself to the digest. Use this
+ // when |token| is computed in parallel in order to preserve the ordering of
+ // values that were seen in a concurrent sequence that cannot be
+ // deterministically interleaved into the primary stream.
+ IdentifiableTokenBuilder& AddToken(IdentifiableToken token);
+
// Helper for feeding primitive types by value efficiently. Anything more
// complicated than that should be passed in as a base::span<const uint8_t>.
//
diff --git a/chromium/third_party/blink/public/common/privacy_budget/scoped_identifiability_test_sample_collector.h b/chromium/third_party/blink/public/common/privacy_budget/scoped_identifiability_test_sample_collector.h
new file mode 100644
index 00000000000..bfc545fd049
--- /dev/null
+++ b/chromium/third_party/blink/public/common/privacy_budget/scoped_identifiability_test_sample_collector.h
@@ -0,0 +1,64 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_SCOPED_IDENTIFIABILITY_TEST_SAMPLE_COLLECTOR_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_SCOPED_IDENTIFIABILITY_TEST_SAMPLE_COLLECTOR_H_
+
+#include <memory>
+#include <vector>
+
+#include "base/component_export.h"
+#include "third_party/blink/public/common/privacy_budget/identifiability_sample_collector.h"
+#include "third_party/blink/public/common/privacy_budget/scoped_switch_sample_collector.h"
+
+namespace blink {
+namespace test {
+
+// An `IdentifiabilitySampleCollector` implementation for testing. Allows
+// inspecting recorded metrics.
+//
+// Instantiating this class automatically sets the per-process
+// `IdentifiabilitySampleCollector` to point to the new instance.
+//
+// Note: Unlike the real collector nothing in this class is thread safe.
+class COMPONENT_EXPORT(PRIVACY_BUDGET_TEST_SUPPORT)
+ ScopedIdentifiabilityTestSampleCollector
+ : public IdentifiabilitySampleCollector {
+ public:
+ ScopedIdentifiabilityTestSampleCollector();
+ ~ScopedIdentifiabilityTestSampleCollector() override;
+
+ // IdentifiabilitySampleCollector
+ void Record(ukm::UkmRecorder* recorder,
+ ukm::SourceId source,
+ std::vector<IdentifiableSample> metrics) override;
+ void Flush(ukm::UkmRecorder* recorder) override;
+ void FlushSource(ukm::UkmRecorder* recorder, ukm::SourceId source) override;
+
+ // Each call to `Record()` results in one of these being added to `entries()`
+ // in order of occurrence that faithfully records the arguments to `Record()`.
+ struct Entry {
+ Entry(ukm::SourceId source_in, std::vector<IdentifiableSample> metrics_in)
+ : source(source_in), metrics(std::move(metrics_in)) {}
+
+ const ukm::SourceId source;
+ const std::vector<IdentifiableSample> metrics;
+ };
+
+ // Returns a reference to the list of `Entry` objects representing the
+ // `Record()` calls received so far.
+ const std::vector<Entry>& entries() const { return entries_; }
+
+ // Reset all recorded entries. `entries()` returns an empty list after this.
+ void ClearEntries();
+
+ private:
+ std::vector<Entry> entries_;
+ ScopedSwitchSampleCollector scoped_default_;
+};
+
+} // namespace test
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_SCOPED_IDENTIFIABILITY_TEST_SAMPLE_COLLECTOR_H_
diff --git a/chromium/third_party/blink/public/common/privacy_budget/scoped_switch_sample_collector.h b/chromium/third_party/blink/public/common/privacy_budget/scoped_switch_sample_collector.h
new file mode 100644
index 00000000000..586c9702e76
--- /dev/null
+++ b/chromium/third_party/blink/public/common/privacy_budget/scoped_switch_sample_collector.h
@@ -0,0 +1,54 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_SCOPED_SWITCH_SAMPLE_COLLECTOR_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_SCOPED_SWITCH_SAMPLE_COLLECTOR_H_
+
+#include "base/component_export.h"
+#include "third_party/blink/public/common/common_export.h"
+#include "third_party/blink/public/common/privacy_budget/identifiability_sample_collector.h"
+
+namespace blink {
+namespace test {
+
+// ***NOTE ***
+// If you are looking for an intropspectable `IdentifiabilitySampleCollector`
+// for testing, you are probably looking for
+// `ScopedIdentifiabilityTestSampleCollector` instead.
+//
+// `IdentifiabilitySampleCollector` is a per-process singleton meant to be
+// accessible from anywhere and from any thread. For testing purposes, however,
+// it would be convenient to swap out the default collector and instead use
+// a test stand-in.
+//
+// `ScopedSwitchSampleCollector` sets the default sample collector to
+// a replacement object for the duration of the `ScopedSwitchSampleCollector`'s
+// lifetime.
+//
+// Example usage:
+//
+// TEST(MyTest, Something) {
+// MyFakeSampleCollector collector;
+// ScopedSwitchSampleCollector scoped_default(&collector);
+// ...
+// }
+//
+// `ScopedSwitchSampleCollector` does not nest. Instantiating a new object while
+// there's an active `ScopedSwitchSampleCollector` isn't allowed and will
+// `DCHECK` on debug builds.
+class COMPONENT_EXPORT(PRIVACY_BUDGET_TEST_SUPPORT)
+ ScopedSwitchSampleCollector {
+ public:
+ // Sets `replacement` as the default `IdentifiabilitySampleCollector` for the
+ // duration of this object's lifetime. `replacement` must outlive this object.
+ explicit ScopedSwitchSampleCollector(
+ IdentifiabilitySampleCollector* replacement);
+
+ ~ScopedSwitchSampleCollector();
+};
+
+} // namespace test
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_PRIVACY_BUDGET_SCOPED_SWITCH_SAMPLE_COLLECTOR_H_
diff --git a/chromium/third_party/blink/public/common/scheduler/web_scheduler_tracked_feature.h b/chromium/third_party/blink/public/common/scheduler/web_scheduler_tracked_feature.h
index 0816f730a63..090c0f06052 100644
--- a/chromium/third_party/blink/public/common/scheduler/web_scheduler_tracked_feature.h
+++ b/chromium/third_party/blink/public/common/scheduler/web_scheduler_tracked_feature.h
@@ -22,6 +22,8 @@ enum class WebSchedulerTrackedFeature {
kWebSocket = 0,
kWebRTC = 1,
+ // TODO(rakina): Move tracking of cache-control usage from
+ // WebSchedulerTrackedFeature to RenderFrameHost.
kMainResourceHasCacheControlNoCache = 2,
kMainResourceHasCacheControlNoStore = 3,
kSubresourceHasCacheControlNoCache = 4,
@@ -43,9 +45,8 @@ enum class WebSchedulerTrackedFeature {
// specific context types down below.
kOutstandingNetworkRequestOthers = 15,
- // TODO(altimin): This doesn't include service worker-controlled origins.
- // We need to track them too.
- kServiceWorkerControlledPage = 16,
+ // kServiceWorkerControlledPage = 16. Removed after implementing ServiceWorker
+ // support.
kOutstandingIndexedDBTransaction = 17,
@@ -94,9 +95,10 @@ enum class WebSchedulerTrackedFeature {
kPaymentManager = 49,
kSpeechSynthesis = 50,
kKeyboardLock = 51,
+ kSmsService = 52,
// NB: This enum is used in a bitmask, so kMaxValue must be less than 64.
- kMaxValue = kKeyboardLock
+ kMaxValue = kSmsService
};
static_assert(static_cast<uint32_t>(WebSchedulerTrackedFeature::kMaxValue) < 64,
diff --git a/chromium/third_party/blink/public/common/screen_orientation/DEPS b/chromium/third_party/blink/public/common/screen_orientation/DEPS
deleted file mode 100644
index ec8a862c9ba..00000000000
--- a/chromium/third_party/blink/public/common/screen_orientation/DEPS
+++ /dev/null
@@ -1,3 +0,0 @@
-include_rules = [
- "+services/device/public/mojom/screen_orientation_lock_types.mojom-shared.h",
-]
diff --git a/chromium/third_party/blink/public/common/screen_orientation/OWNERS b/chromium/third_party/blink/public/common/screen_orientation/OWNERS
deleted file mode 100644
index 107f97c491c..00000000000
--- a/chromium/third_party/blink/public/common/screen_orientation/OWNERS
+++ /dev/null
@@ -1,9 +0,0 @@
-mlamouri@chromium.org
-
-per-file *.typemap=set noparent
-per-file *.typemap=file://ipc/SECURITY_OWNERS
-
-per-file *_mojom_traits*.*=set noparent
-per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
-
-# COMPONENT: Blink>ScreenOrientation
diff --git a/chromium/third_party/blink/public/common/screen_orientation/screen_orientation_lock_types.typemap b/chromium/third_party/blink/public/common/screen_orientation/screen_orientation_lock_types.typemap
deleted file mode 100644
index bc2dcf7fd3b..00000000000
--- a/chromium/third_party/blink/public/common/screen_orientation/screen_orientation_lock_types.typemap
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//services/device/public/mojom/screen_orientation_lock_types.mojom"
-public_headers = [ "//third_party/blink/public/common/screen_orientation/web_screen_orientation_lock_type.h" ]
-traits_headers = [ "//third_party/blink/public/common/screen_orientation/web_screen_orientation_mojom_traits.h" ]
-type_mappings = [ "device.mojom.ScreenOrientationLockType=::blink::WebScreenOrientationLockType" ]
-deps = [
- "//third_party/blink/public/common:headers",
-]
diff --git a/chromium/third_party/blink/public/common/screen_orientation/web_screen_orientation_lock_type.h b/chromium/third_party/blink/public/common/screen_orientation/web_screen_orientation_lock_type.h
deleted file mode 100644
index 37a7fbabd7f..00000000000
--- a/chromium/third_party/blink/public/common/screen_orientation/web_screen_orientation_lock_type.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_SCREEN_ORIENTATION_WEB_SCREEN_ORIENTATION_LOCK_TYPE_H_
-#define THIRD_PARTY_BLINK_PUBLIC_COMMON_SCREEN_ORIENTATION_WEB_SCREEN_ORIENTATION_LOCK_TYPE_H_
-
-namespace blink {
-
-enum WebScreenOrientationLockType {
- kWebScreenOrientationLockDefault = 0, // Equivalent to unlock.
- kWebScreenOrientationLockPortraitPrimary,
- kWebScreenOrientationLockPortraitSecondary,
- kWebScreenOrientationLockLandscapePrimary,
- kWebScreenOrientationLockLandscapeSecondary,
- kWebScreenOrientationLockAny,
- kWebScreenOrientationLockLandscape,
- kWebScreenOrientationLockPortrait,
- kWebScreenOrientationLockNatural,
-};
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_SCREEN_ORIENTATION_WEB_SCREEN_ORIENTATION_LOCK_TYPE_H_
diff --git a/chromium/third_party/blink/public/common/screen_orientation/web_screen_orientation_mojom_traits.h b/chromium/third_party/blink/public/common/screen_orientation/web_screen_orientation_mojom_traits.h
deleted file mode 100644
index 05d523feff5..00000000000
--- a/chromium/third_party/blink/public/common/screen_orientation/web_screen_orientation_mojom_traits.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_SCREEN_ORIENTATION_WEB_SCREEN_ORIENTATION_MOJOM_TRAITS_H_
-#define THIRD_PARTY_BLINK_PUBLIC_COMMON_SCREEN_ORIENTATION_WEB_SCREEN_ORIENTATION_MOJOM_TRAITS_H_
-
-#include "services/device/public/mojom/screen_orientation_lock_types.mojom-shared.h"
-#include "third_party/blink/public/common/screen_orientation/web_screen_orientation_lock_type.h"
-
-namespace mojo {
-
-template <>
-struct EnumTraits<::device::mojom::ScreenOrientationLockType,
- ::blink::WebScreenOrientationLockType> {
- static ::device::mojom::ScreenOrientationLockType ToMojom(
- ::blink::WebScreenOrientationLockType lockType) {
- switch (lockType) {
- case ::blink::kWebScreenOrientationLockDefault:
- return ::device::mojom::ScreenOrientationLockType::DEFAULT;
- case ::blink::kWebScreenOrientationLockPortraitPrimary:
- return ::device::mojom::ScreenOrientationLockType::PORTRAIT_PRIMARY;
- case ::blink::kWebScreenOrientationLockPortraitSecondary:
- return ::device::mojom::ScreenOrientationLockType::PORTRAIT_SECONDARY;
- case ::blink::kWebScreenOrientationLockLandscapePrimary:
- return ::device::mojom::ScreenOrientationLockType::LANDSCAPE_PRIMARY;
- case ::blink::kWebScreenOrientationLockLandscapeSecondary:
- return ::device::mojom::ScreenOrientationLockType::LANDSCAPE_SECONDARY;
- case ::blink::kWebScreenOrientationLockAny:
- return ::device::mojom::ScreenOrientationLockType::ANY;
- case ::blink::kWebScreenOrientationLockLandscape:
- return ::device::mojom::ScreenOrientationLockType::LANDSCAPE;
- case ::blink::kWebScreenOrientationLockPortrait:
- return ::device::mojom::ScreenOrientationLockType::PORTRAIT;
- case ::blink::kWebScreenOrientationLockNatural:
- return ::device::mojom::ScreenOrientationLockType::NATURAL;
- }
- NOTREACHED();
- return ::device::mojom::ScreenOrientationLockType::DEFAULT;
- }
-
- static bool FromMojom(::device::mojom::ScreenOrientationLockType lockType,
- ::blink::WebScreenOrientationLockType* out) {
- switch (lockType) {
- case ::device::mojom::ScreenOrientationLockType::DEFAULT:
- *out = ::blink::kWebScreenOrientationLockDefault;
- return true;
- case ::device::mojom::ScreenOrientationLockType::PORTRAIT_PRIMARY:
- *out = ::blink::kWebScreenOrientationLockPortraitPrimary;
- return true;
- case ::device::mojom::ScreenOrientationLockType::PORTRAIT_SECONDARY:
- *out = ::blink::kWebScreenOrientationLockPortraitSecondary;
- return true;
- case ::device::mojom::ScreenOrientationLockType::LANDSCAPE_PRIMARY:
- *out = ::blink::kWebScreenOrientationLockLandscapePrimary;
- return true;
- case ::device::mojom::ScreenOrientationLockType::LANDSCAPE_SECONDARY:
- *out = ::blink::kWebScreenOrientationLockLandscapeSecondary;
- return true;
- case ::device::mojom::ScreenOrientationLockType::ANY:
- *out = ::blink::kWebScreenOrientationLockAny;
- return true;
- case ::device::mojom::ScreenOrientationLockType::LANDSCAPE:
- *out = ::blink::kWebScreenOrientationLockLandscape;
- return true;
- case ::device::mojom::ScreenOrientationLockType::PORTRAIT:
- *out = ::blink::kWebScreenOrientationLockPortrait;
- return true;
- case ::device::mojom::ScreenOrientationLockType::NATURAL:
- *out = ::blink::kWebScreenOrientationLockNatural;
- return true;
- }
- NOTREACHED();
- return false;
- }
-};
-
-} // namespace mojo
-
-#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_SCREEN_ORIENTATION_WEB_SCREEN_ORIENTATION_MOJOM_TRAITS_H_
diff --git a/chromium/third_party/blink/public/common/screen_orientation/web_screen_orientation_type.h b/chromium/third_party/blink/public/common/screen_orientation/web_screen_orientation_type.h
deleted file mode 100644
index 08d0e2f55ea..00000000000
--- a/chromium/third_party/blink/public/common/screen_orientation/web_screen_orientation_type.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_SCREEN_ORIENTATION_WEB_SCREEN_ORIENTATION_TYPE_H_
-#define THIRD_PARTY_BLINK_PUBLIC_COMMON_SCREEN_ORIENTATION_WEB_SCREEN_ORIENTATION_TYPE_H_
-
-namespace blink {
-
-enum WebScreenOrientationType {
- kWebScreenOrientationUndefined = 0,
- kWebScreenOrientationPortraitPrimary,
- kWebScreenOrientationPortraitSecondary,
- kWebScreenOrientationLandscapePrimary,
- kWebScreenOrientationLandscapeSecondary,
-
- WebScreenOrientationTypeLast = kWebScreenOrientationLandscapeSecondary
-};
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_SCREEN_ORIENTATION_WEB_SCREEN_ORIENTATION_TYPE_H_
diff --git a/chromium/third_party/blink/public/common/switches.h b/chromium/third_party/blink/public/common/switches.h
index 12c6799b214..caeae00a676 100644
--- a/chromium/third_party/blink/public/common/switches.h
+++ b/chromium/third_party/blink/public/common/switches.h
@@ -27,6 +27,7 @@ BLINK_COMMON_EXPORT extern const char
BLINK_COMMON_EXPORT extern const char kEnableLowResTiling[];
BLINK_COMMON_EXPORT extern const char kEnableRGBA4444Textures[];
BLINK_COMMON_EXPORT extern const char kEnableZeroCopy[];
+BLINK_COMMON_EXPORT extern const char kForceLegacyDefaultReferrerPolicy[];
BLINK_COMMON_EXPORT extern const char kGpuRasterizationMSAASampleCount[];
BLINK_COMMON_EXPORT extern const char kIntensiveWakeUpThrottlingPolicy[];
BLINK_COMMON_EXPORT extern const char
diff --git a/chromium/third_party/blink/public/common/tokens/OWNERS b/chromium/third_party/blink/public/common/tokens/OWNERS
new file mode 100644
index 00000000000..d5fefd82012
--- /dev/null
+++ b/chromium/third_party/blink/public/common/tokens/OWNERS
@@ -0,0 +1,2 @@
+per-file *_mojom_traits*.*=set noparent
+per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
diff --git a/chromium/third_party/blink/public/common/tokens/README.md b/chromium/third_party/blink/public/common/tokens/README.md
new file mode 100644
index 00000000000..c8bd024d359
--- /dev/null
+++ b/chromium/third_party/blink/public/common/tokens/README.md
@@ -0,0 +1,29 @@
+# Tokens
+
+## Overview
+
+This directory contains strongly-typed wrappers (using
+[`util::TokenType<...>`](/base/util/type_safety/token_type.h)) of
+[`base::UnguessableToken`](/base/unguessable_token.h)
+for tokens that are commonly passed between browsers and renderers. The strong
+typing is to prevent type confusion as these tokens are passed around. To support
+strong typing through the entire stack (including IPC) these tokens additionally
+include `content/` and `blink/` specific typemaps, as well as Mojo struct definitions.
+
+## Adding a new token
+
+Suppose you want to add a new token type. You would do the following:
+
+ - Add a new C++ token type to
+ [`/third_party/blink/public/common/tokens/tokens.h`](/third_party/blink/public/common/tokens/tokens.h).
+ - Add an equivalent Mojom token type to
+ [`/third_party/blink/public/mojom/tokens/tokens.mojom`](/third_party/blink/public/mojom/tokens/tokens.mojom).
+ Be sure to follow the convention that the struct contains a single
+ `base.mojom.UnguessableToken` member named `value`.
+ - Create a new Mojom traits declaration to
+ [`/third_party/blink/public/common/tokens/tokens_mojom_traits.h`](/third_party/blink/public/common/tokens/tokens_mojom_traits.h).
+ Use the templated [`TokenMojomTraitsHelper<...>`](/third_party/blink/public/common/token_mojom_traits_helper.h) helper class.
+ - Update [`mojom/tokens/BUILD.gn`](third_party/blink/public/mojom/tokens/BUILD.gn) and add a new
+ typemap definition for the token to the `shared_cpp_typemaps` section.
+ - If your token needs to be sent via legacy IPC as well, add the appropriate
+ definition to [`/content/common/content_param_traits.h`](/content/common/content_param_traits.h).
diff --git a/chromium/third_party/blink/public/common/tokens/multi_token.h b/chromium/third_party/blink/public/common/tokens/multi_token.h
new file mode 100644
index 00000000000..77d60b559d0
--- /dev/null
+++ b/chromium/third_party/blink/public/common/tokens/multi_token.h
@@ -0,0 +1,174 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Helper class for a strongly-typed multiple variant token. Allows creating
+// a token that can represent one of a collection of distinct token types.
+// It would be great to replace this with a much simpler C++17 std::variant
+// when that is available.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_MULTI_TOKEN_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_MULTI_TOKEN_H_
+
+#include <type_traits>
+
+#include "base/unguessable_token.h"
+#include "third_party/blink/public/common/tokens/multi_token_internal.h"
+
+namespace blink {
+
+// Defines MultiToken, which is effectively a variant over 2 or more
+// instances of util::TokenType.
+//
+// A MultiToken<..> emulates a token like interface. When default constructed
+// it will construct itself as an instance of |TokenVariant0|. Additionally it
+// offers the following functions allowing casting and querying token types at
+// runtime:
+//
+// // Determines whether this token stores an instance of a TokenType.
+// bool Is<TokenType>() const;
+//
+// // Extracts the stored token in its original type. The stored token must
+// // be of the provided type otherwise this will explode at runtime.
+// const TokenType& GetAs<TokenType>() const;
+//
+// A variant must have at least 2 valid input types, but can have arbitrarily
+// many. They must all be distinct, and they must all be instances of
+// util::TokenType.
+template <typename TokenVariant0,
+ typename TokenVariant1,
+ typename... TokenVariants>
+class MultiToken : public internal::MultiTokenBase<TokenVariant0,
+ TokenVariant1,
+ TokenVariants...> {
+ public:
+ using Base =
+ internal::MultiTokenBase<TokenVariant0, TokenVariant1, TokenVariants...>;
+
+ // The total number of types.
+ static const uint32_t kVariantCount = Base::VariantCount::kValue;
+
+ // Default constructor. The resulting token will be a valid token of type
+ // TokenVariant0.
+ MultiToken() = default;
+
+ // Copy constructors.
+ MultiToken(const MultiToken& other) = default;
+ template <typename InputTokenType,
+ typename = typename std::enable_if<
+ Base::template ValidType<InputTokenType>::kValue>::type>
+ // NOLINTNEXTLINE(google-explicit-constructor)
+ MultiToken(const InputTokenType& input_token)
+ : value_(input_token.value()),
+ variant_index_(Base::template TypeIndex<InputTokenType>::kValue) {}
+
+ ~MultiToken() = default;
+
+ // Assignment operators.
+ MultiToken& operator=(const MultiToken& other) = default;
+ template <typename InputTokenType,
+ typename = typename std::enable_if<
+ Base::template ValidType<InputTokenType>::kValue>::type>
+ MultiToken& operator=(const InputTokenType& input_token) {
+ value_ = input_token.value();
+ variant_index_ = Base::template TypeIndex<InputTokenType>::kValue;
+ return *this;
+ }
+
+ const base::UnguessableToken& value() const { return value_; }
+ uint32_t variant_index() const { return variant_index_; }
+ std::string ToString() const { return value().ToString(); }
+
+ // Type checking.
+ template <typename InputTokenType,
+ typename = typename std::enable_if<
+ Base::template ValidType<InputTokenType>::kValue>::type>
+ bool Is() const {
+ return variant_index_ == Base::template TypeIndex<InputTokenType>::kValue;
+ }
+
+ // Type conversion. Allows extracting the underlying token type. This should
+ // only be called for the actual type that is stored in this token. This can
+ // be checked by calling "Is<>" first.
+ template <typename InputTokenType,
+ typename = typename std::enable_if<
+ Base::template ValidType<InputTokenType>::kValue>::type>
+ InputTokenType GetAs() const {
+ CHECK(Is<InputTokenType>()) << "invalid token type cast";
+ // Type-punning via casting is undefined behaviour, so we return by value.
+ return InputTokenType(value_);
+ }
+
+ // Comparison with untyped tokens. Only compares the token value, ignoring the
+ // type.
+ int Compare(const base::UnguessableToken& other) const {
+ return Base::CompareImpl(value_, other);
+ }
+ bool operator<(const base::UnguessableToken& other) const {
+ return Compare(other) == -1;
+ }
+ bool operator==(const base::UnguessableToken& other) const {
+ return Compare(other) == 0;
+ }
+ bool operator!=(const base::UnguessableToken& other) const {
+ return Compare(other) != 0;
+ }
+
+ // Comparison with other MultiTokens. Compares by token, then type.
+ int Compare(const MultiToken& other) const {
+ return Base::CompareImpl(std::tie(value_, variant_index_),
+ std::tie(other.value_, other.variant_index_));
+ }
+ bool operator<(const MultiToken& other) const { return Compare(other) == -1; }
+ bool operator==(const MultiToken& other) const { return Compare(other) == 0; }
+ bool operator!=(const MultiToken& other) const { return Compare(other) != 0; }
+
+ // Comparison with individual typed tokens. Compares by token, then type.
+ template <typename InputTokenType,
+ typename = typename std::enable_if<
+ Base::template ValidType<InputTokenType>::kValue>::type>
+ int Compare(const InputTokenType& other) const {
+ static constexpr uint32_t kInputTokenTypeIndex =
+ Base::template TypeIndex<InputTokenType>::kValue;
+ return Base::CompareImpl(std::tie(value_, variant_index_),
+ std::tie(other.value_, kInputTokenTypeIndex));
+ }
+ template <typename InputTokenType,
+ typename = typename std::enable_if<
+ Base::template ValidType<InputTokenType>::kValue>::type>
+ bool operator<(const InputTokenType& other) const {
+ return Compare(other) == -1;
+ }
+ template <typename InputTokenType,
+ typename = typename std::enable_if<
+ Base::template ValidType<InputTokenType>::kValue>::type>
+ bool operator==(const InputTokenType& other) const {
+ return Compare(other) == 0;
+ }
+ template <typename InputTokenType,
+ typename = typename std::enable_if<
+ Base::template ValidType<InputTokenType>::kValue>::type>
+ bool operator!=(const InputTokenType& other) const {
+ return Compare(other) != 0;
+ }
+
+ // Hash functor for use in unordered containers.
+ struct Hasher {
+ using argument_type = MultiToken;
+ using result_type = size_t;
+ result_type operator()(const MultiToken& token) const {
+ return base::UnguessableTokenHash()(token.value_);
+ }
+ };
+
+ private:
+ // The underlying untyped token value. This will *never* be null initialized.
+ base::UnguessableToken value_ = base::UnguessableToken::Create();
+
+ // The index of the variant type that is currently stored in this token.
+ uint32_t variant_index_ = 0;
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_MULTI_TOKEN_H_
diff --git a/chromium/third_party/blink/public/common/tokens/multi_token_internal.h b/chromium/third_party/blink/public/common/tokens/multi_token_internal.h
new file mode 100644
index 00000000000..8c2f7f37ca1
--- /dev/null
+++ b/chromium/third_party/blink/public/common/tokens/multi_token_internal.h
@@ -0,0 +1,230 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Internal implementation details for MultiToken. Only intended to be included
+// from multi_token.h.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_MULTI_TOKEN_INTERNAL_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_MULTI_TOKEN_INTERNAL_H_
+
+#include <algorithm>
+#include <cstring>
+#include <type_traits>
+
+#include "base/unguessable_token.h"
+#include "base/util/type_safety/token_type.h"
+
+namespace blink {
+
+namespace internal {
+
+////////////////////////////////////////////////////////////////////////////////
+// MultiTokenVariantCount
+//
+// Counts the number of token types.
+
+template <typename... VariantTypes>
+struct MultiTokenVariantCount;
+
+// Recursive case.
+template <typename FirstVariantType, typename... OtherVariantTypes>
+struct MultiTokenVariantCount<FirstVariantType, OtherVariantTypes...> {
+ // Deliberately use uint32_t here so as not to incur an extra 4 bytes of
+ // overhead on 64-bit systems, as this is the same type used by the
+ // |variant_index_|.
+ static constexpr uint32_t kValue =
+ 1 + MultiTokenVariantCount<OtherVariantTypes...>::kValue;
+};
+
+// Base case.
+template <>
+struct MultiTokenVariantCount<> {
+ static constexpr uint32_t kValue = 0;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// MultiTokenVariantIsTokenType
+//
+// Ensures if a QueryType is a a util::TokenType<>.
+
+// Default case.
+template <typename QueryType>
+struct MultiTokenVariantIsTokenType {
+ static constexpr bool kValue = false;
+};
+
+// Specialization for util::TokenType<>.
+template <typename TokenTypeTag>
+struct MultiTokenVariantIsTokenType<::util::TokenType<TokenTypeTag>> {
+ static constexpr bool kValue = true;
+
+ // We expect an identical layout, which allows us to reinterpret_cast between
+ // types. The spec does not guarantee this, but sane compilers do. Thankfully
+ // we can check whether or not the compiler is sane (and if the behaviour is
+ // safe) at compile-time.
+ static_assert(
+ sizeof(::util::TokenType<TokenTypeTag>) ==
+ sizeof(::base::UnguessableToken),
+ "util::TokenType must have the same sizeof as base::UnguessableToken");
+ static_assert(
+ alignof(::util::TokenType<TokenTypeTag>) ==
+ alignof(::base::UnguessableToken),
+ "util::TokenType must have the same alignof as base::UnguessableToken");
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// MultiTokenAllVariantsAreTokenType
+//
+// Ensures that all variants are of type util::TokenType.
+
+template <typename... VariantTypes>
+struct MultiTokenAllVariantsAreTokenType;
+
+// Recursive case.
+template <typename FirstVariantType, typename... OtherVariantTypes>
+struct MultiTokenAllVariantsAreTokenType<FirstVariantType,
+ OtherVariantTypes...> {
+ static constexpr bool kValue =
+ MultiTokenVariantIsTokenType<FirstVariantType>::kValue &&
+ MultiTokenAllVariantsAreTokenType<OtherVariantTypes...>::kValue;
+};
+
+// Base case.
+template <>
+struct MultiTokenAllVariantsAreTokenType<> {
+ static constexpr bool kValue = true;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// MultiTokenTypeRepeated
+//
+// Determines if a QueryType is repeated in a variadic list of types.
+
+template <typename QueryType, typename... VariantTypes>
+struct MultiTokenTypeRepeated;
+
+// Recursive case.
+template <typename QueryType,
+ typename FirstVariantType,
+ typename... OtherVariantTypes>
+struct MultiTokenTypeRepeated<QueryType,
+ FirstVariantType,
+ OtherVariantTypes...> {
+ static constexpr size_t kCount =
+ (std::is_same<QueryType, FirstVariantType>::value ? 1 : 0) +
+ MultiTokenTypeRepeated<QueryType, OtherVariantTypes...>::kCount;
+ static constexpr bool kValue = kCount > 1;
+};
+
+// Base case.
+template <typename QueryType>
+struct MultiTokenTypeRepeated<QueryType> {
+ static constexpr size_t kCount = 0;
+ static constexpr bool kValue = false;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// MultiTokenAnyTypeRepeated
+//
+// Determines if any type is repeated in a variadic list of types.
+
+template <typename... VariantTypes>
+struct MultiTokenAnyTypeRepeated;
+
+// Recursive case.
+template <typename FirstVariantType, typename... OtherVariantTypes>
+struct MultiTokenAnyTypeRepeated<FirstVariantType, OtherVariantTypes...> {
+ static constexpr bool kValue =
+ MultiTokenTypeRepeated<FirstVariantType,
+ FirstVariantType,
+ OtherVariantTypes...>::kValue ||
+ MultiTokenAnyTypeRepeated<OtherVariantTypes...>::kValue;
+};
+
+// Base case.
+template <>
+struct MultiTokenAnyTypeRepeated<> {
+ static constexpr bool kValue = false;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// MultiTokenTypeIndex
+//
+// Returns the index of a QueryType from a variadic list of N types, or N if the
+// QueryType is not found in the list.
+
+template <typename QueryType, typename... VariantTypes>
+struct MultiTokenTypeIndex;
+
+// Recursive case.
+template <typename QueryType,
+ typename FirstVariantType,
+ typename... OtherVariantTypes>
+struct MultiTokenTypeIndex<QueryType, FirstVariantType, OtherVariantTypes...> {
+ static constexpr size_t kValue =
+ (std::is_same<QueryType, FirstVariantType>::value
+ ? 0
+ : (1 +
+ MultiTokenTypeIndex<QueryType, OtherVariantTypes...>::kValue));
+};
+
+// Base case.
+template <typename QueryType>
+struct MultiTokenTypeIndex<QueryType> {
+ static constexpr size_t kValue = 0;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// MultiTokenBase
+//
+// Base class that brings helper structs into a single namespace for
+// convenience.
+template <typename... TokenVariants>
+class MultiTokenBase {
+ public:
+ // Ensures that no types are repeated, as that's non-sensical.
+ using AnyRepeated = internal::MultiTokenAnyTypeRepeated<TokenVariants...>;
+ static_assert(!AnyRepeated::kValue, "input types must not be repeated");
+
+ // Ensures that all variants are instances of util::TokenType.
+ using AllVariantsAreTokenType =
+ internal::MultiTokenAllVariantsAreTokenType<TokenVariants...>;
+ static_assert(AllVariantsAreTokenType::kValue,
+ "input types must be instances of util::TokenType");
+
+ // Counts the number of variants.
+ using VariantCount = internal::MultiTokenVariantCount<TokenVariants...>;
+
+ // For determining the index of a type. Used to assign an integer ID to a
+ // type, as a kind of untyped enum.
+ template <typename QueryType>
+ struct TypeIndex
+ : public internal::MultiTokenTypeIndex<QueryType, TokenVariants...> {};
+
+ // For determining if a type is valid for this variant. Useful in enable_if
+ // statements.
+ template <typename QueryType>
+ struct ValidType {
+ static constexpr bool kValue =
+ TypeIndex<QueryType>::kValue != VariantCount::kValue;
+ };
+
+ // Helper comparator. Compares underlying types using only < and == to
+ // return -1, 0, or 1 depending on their relative values.
+ template <typename InputType>
+ static int CompareImpl(const InputType& lhs, const InputType& rhs) {
+ if (lhs < rhs)
+ return -1;
+ if (lhs == rhs)
+ return 0;
+ DCHECK(rhs < lhs);
+ return 1;
+ }
+};
+
+} // namespace internal
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_MULTI_TOKEN_INTERNAL_H_
diff --git a/chromium/third_party/blink/public/common/tokens/token_mojom_traits_helper.h b/chromium/third_party/blink/public/common/tokens/token_mojom_traits_helper.h
new file mode 100644
index 00000000000..50b6fc9a381
--- /dev/null
+++ b/chromium/third_party/blink/public/common/tokens/token_mojom_traits_helper.h
@@ -0,0 +1,35 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_TOKEN_MOJOM_TRAITS_HELPER_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_TOKEN_MOJOM_TRAITS_HELPER_H_
+
+#include "base/unguessable_token.h"
+
+namespace blink {
+
+// Defines Mojo StructTraits that convert between the given |MojomDataViewType|
+// and the given |TokenType|. It is assumed that TokenType is an instance of
+// util::TokenType<...> and that MojomDataViewType is a simple mojom struct
+// containing only a "base.mojom.UnguessableToken value" field.
+template <typename MojomDataViewType, typename TokenType>
+struct TokenMojomTraitsHelper {
+ // For converting from MojomDataViewType to TokenType.
+ static bool Read(MojomDataViewType& input, TokenType* output) {
+ base::UnguessableToken token;
+ if (!input.ReadValue(&token))
+ return false;
+ *output = TokenType(token);
+ return true;
+ }
+
+ // For converting from TokenType to MojomDataViewType.
+ static const base::UnguessableToken& value(const TokenType& input) {
+ return input.value();
+ }
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_TOKEN_MOJOM_TRAITS_HELPER_H_
diff --git a/chromium/third_party/blink/public/common/tokens/tokens.h b/chromium/third_party/blink/public/common/tokens/tokens.h
new file mode 100644
index 00000000000..33f765ce6e1
--- /dev/null
+++ b/chromium/third_party/blink/public/common/tokens/tokens.h
@@ -0,0 +1,112 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_TOKENS_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_TOKENS_H_
+
+#include "base/util/type_safety/token_type.h"
+#include "third_party/blink/public/common/tokens/multi_token.h"
+
+namespace blink {
+
+// Various token types. These are used as cross-layer and cross-process
+// identifiers for objects that exist in blink, but which have representations
+// in the browser process. They should not be used to identify objects in
+// browser-to-renderer control messages; rather, such messages should exist as
+// methods on the interface bound to the object itself. They are fine to use
+// for informational messages that cross over other interfaces, in both
+// directions.
+//
+// See README.md for more details.
+
+////////////////////////////////////////////////////////////////////////////////
+// FRAME TOKENS
+
+// Uniquely identifies a blink::LocalFrame / blink::WebLocalFrame /
+// content::RenderFrame in a renderer process, and its content::RenderFrameHost
+// counterpart in the browser.
+using LocalFrameToken = util::TokenType<class LocalFrameTokenTypeMarker>;
+
+// Uniquely identifies an blink::RemoteFrame / blink::WebRemoteFrame /
+// content::RenderFrameProxy in a renderer process, and its
+// ontent::RenderFrameProxyHost counterpart in the browser. There can be
+// multiple RemoteFrames corresponding to a single LocalFrame, and each token
+// will be distinct.
+using RemoteFrameToken = util::TokenType<class RemoteFrameTokenTypeMarker>;
+
+// Can represent either type of FrameToken.
+using FrameToken = MultiToken<LocalFrameToken, RemoteFrameToken>;
+
+////////////////////////////////////////////////////////////////////////////////
+// WORKER TOKENS
+
+// Identifies a blink::DedicatedWorkerGlobalScope in the renderer and a
+// content::DedicatedWorkerHost in the browser.
+using DedicatedWorkerToken =
+ util::TokenType<class DedicatedWorkerTokenTypeMarker>;
+
+// Identifies a blink::ServiceWorkerGlobalScope in the renderer and a
+// content::ServiceWorkerVersion in the browser.
+using ServiceWorkerToken = util::TokenType<class ServiceWorkerTokenTypeMarker>;
+
+// Identifies a blink::SharedWorkerGlobalScope in the renderer and a
+// content::SharedWorkerHost in the browser.
+using SharedWorkerToken = util::TokenType<class SharedWorkerTokenTypeMarker>;
+
+// Can represent any type of WorkerToken.
+using WorkerToken =
+ MultiToken<DedicatedWorkerToken, ServiceWorkerToken, SharedWorkerToken>;
+
+////////////////////////////////////////////////////////////////////////////////
+// WORKLET TOKENS
+
+// Identifies an animation worklet.
+using AnimationWorkletToken =
+ util::TokenType<class AnimationWorkletTokenTypeMarker>;
+
+// Identifies an audio worklet.
+using AudioWorkletToken = util::TokenType<class AudioWorkletTokenTypeMarker>;
+
+// Identifies a layout worklet.
+using LayoutWorkletToken = util::TokenType<class LayoutWorkletTokenTypeMarker>;
+
+// Identifies a paint worklet.
+using PaintWorkletToken = util::TokenType<class PaintWorkletTokenTypeMarker>;
+
+// Can represent any type of WorkletToken.
+using WorkletToken = MultiToken<AnimationWorkletToken,
+ AudioWorkletToken,
+ LayoutWorkletToken,
+ PaintWorkletToken>;
+
+////////////////////////////////////////////////////////////////////////////////
+// OTHER TOKENS
+//
+// Keep this section last.
+//
+// If you have multiple tokens that make a thematic group, please lift them to
+// their own section, in alphabetical order. If adding a new token here, please
+// keep the following list in alphabetic order.
+
+// Identifies an arbitrary ExecutionContext. Each concrete implementation of an
+// ExecutionContext has a distinct token type that can be represented here.
+using ExecutionContextToken = MultiToken<LocalFrameToken,
+ DedicatedWorkerToken,
+ ServiceWorkerToken,
+ SharedWorkerToken,
+ AnimationWorkletToken,
+ AudioWorkletToken,
+ LayoutWorkletToken,
+ PaintWorkletToken>;
+
+// Identifies a blink::PortalContents / blink::HTMLPortalElement in the
+// renderer process, and a content::Portal in the browser process.
+using PortalToken = util::TokenType<class PortalTokenTypeMarker>;
+
+// Identifies a v8::Context / blink::ScriptState.
+using V8ContextToken = util::TokenType<class V8ContextTokenTypeMarker>;
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_TOKENS_H_
diff --git a/chromium/third_party/blink/public/common/tokens/tokens_mojom_traits.h b/chromium/third_party/blink/public/common/tokens/tokens_mojom_traits.h
new file mode 100644
index 00000000000..aa038987be1
--- /dev/null
+++ b/chromium/third_party/blink/public/common/tokens/tokens_mojom_traits.h
@@ -0,0 +1,182 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_TOKENS_MOJOM_TRAITS_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_TOKENS_MOJOM_TRAITS_H_
+
+#include "third_party/blink/public/common/common_export.h"
+#include "third_party/blink/public/common/tokens/token_mojom_traits_helper.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
+#include "third_party/blink/public/mojom/tokens/tokens.mojom-shared.h"
+
+namespace mojo {
+
+// Mojom traits for the various token types.
+// See third_party/blink/public/common/tokens/tokens.h for more details.
+
+////////////////////////////////////////////////////////////////////////////////
+// FRAME TOKENS
+
+template <>
+struct StructTraits<blink::mojom::LocalFrameTokenDataView,
+ blink::LocalFrameToken>
+ : public blink::TokenMojomTraitsHelper<
+ blink::mojom::LocalFrameTokenDataView,
+ blink::LocalFrameToken> {};
+
+template <>
+struct StructTraits<blink::mojom::RemoteFrameTokenDataView,
+ blink::RemoteFrameToken>
+ : public blink::TokenMojomTraitsHelper<
+ blink::mojom::RemoteFrameTokenDataView,
+ blink::RemoteFrameToken> {};
+
+template <>
+struct BLINK_COMMON_EXPORT
+ UnionTraits<blink::mojom::FrameTokenDataView, blink::FrameToken> {
+ static bool Read(blink::mojom::FrameTokenDataView input,
+ blink::FrameToken* output);
+ static blink::mojom::FrameTokenDataView::Tag GetTag(
+ const blink::FrameToken& token);
+ static blink::LocalFrameToken local_frame_token(
+ const blink::FrameToken& token);
+ static blink::RemoteFrameToken remote_frame_token(
+ const blink::FrameToken& token);
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// WORKER TOKENS
+
+template <>
+struct StructTraits<blink::mojom::DedicatedWorkerTokenDataView,
+ blink::DedicatedWorkerToken>
+ : public blink::TokenMojomTraitsHelper<
+ blink::mojom::DedicatedWorkerTokenDataView,
+ blink::DedicatedWorkerToken> {};
+
+template <>
+struct StructTraits<blink::mojom::ServiceWorkerTokenDataView,
+ blink::ServiceWorkerToken>
+ : public blink::TokenMojomTraitsHelper<
+ blink::mojom::ServiceWorkerTokenDataView,
+ blink::ServiceWorkerToken> {};
+
+template <>
+struct StructTraits<blink::mojom::SharedWorkerTokenDataView,
+ blink::SharedWorkerToken>
+ : public blink::TokenMojomTraitsHelper<
+ blink::mojom::SharedWorkerTokenDataView,
+ blink::SharedWorkerToken> {};
+
+template <>
+struct BLINK_COMMON_EXPORT
+ UnionTraits<blink::mojom::WorkerTokenDataView, blink::WorkerToken> {
+ static bool Read(blink::mojom::WorkerTokenDataView input,
+ blink::WorkerToken* output);
+ static blink::mojom::WorkerTokenDataView::Tag GetTag(
+ const blink::WorkerToken& token);
+ static blink::DedicatedWorkerToken dedicated_worker_token(
+ const blink::WorkerToken& token);
+ static blink::ServiceWorkerToken service_worker_token(
+ const blink::WorkerToken& token);
+ static blink::SharedWorkerToken shared_worker_token(
+ const blink::WorkerToken& token);
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// WORKLET TOKENS
+
+template <>
+struct StructTraits<blink::mojom::AnimationWorkletTokenDataView,
+ blink::AnimationWorkletToken>
+ : public blink::TokenMojomTraitsHelper<
+ blink::mojom::AnimationWorkletTokenDataView,
+ blink::AnimationWorkletToken> {};
+
+template <>
+struct StructTraits<blink::mojom::AudioWorkletTokenDataView,
+ blink::AudioWorkletToken>
+ : public blink::TokenMojomTraitsHelper<
+ blink::mojom::AudioWorkletTokenDataView,
+ blink::AudioWorkletToken> {};
+
+template <>
+struct StructTraits<blink::mojom::LayoutWorkletTokenDataView,
+ blink::LayoutWorkletToken>
+ : public blink::TokenMojomTraitsHelper<
+ blink::mojom::LayoutWorkletTokenDataView,
+ blink::LayoutWorkletToken> {};
+
+template <>
+struct StructTraits<blink::mojom::PaintWorkletTokenDataView,
+ blink::PaintWorkletToken>
+ : public blink::TokenMojomTraitsHelper<
+ blink::mojom::PaintWorkletTokenDataView,
+ blink::PaintWorkletToken> {};
+
+template <>
+struct BLINK_COMMON_EXPORT
+ UnionTraits<blink::mojom::WorkletTokenDataView, blink::WorkletToken> {
+ static bool Read(blink::mojom::WorkletTokenDataView input,
+ blink::WorkletToken* output);
+ static blink::mojom::WorkletTokenDataView::Tag GetTag(
+ const blink::WorkletToken& token);
+ static blink::AnimationWorkletToken animation_worklet_token(
+ const blink::WorkletToken& token);
+ static blink::AudioWorkletToken audio_worklet_token(
+ const blink::WorkletToken& token);
+ static blink::LayoutWorkletToken layout_worklet_token(
+ const blink::WorkletToken& token);
+ static blink::PaintWorkletToken paint_worklet_token(
+ const blink::WorkletToken& token);
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// OTHER TOKENS
+//
+// Keep this section last.
+//
+// If you have multiple tokens that make a thematic group, please lift them to
+// their own section, in alphabetical order. If adding a new token here, please
+// keep the following list in alphabetic order.
+
+template <>
+struct BLINK_COMMON_EXPORT
+ UnionTraits<blink::mojom::ExecutionContextTokenDataView,
+ blink::ExecutionContextToken> {
+ static bool Read(blink::mojom::ExecutionContextTokenDataView input,
+ blink::ExecutionContextToken* output);
+ static blink::mojom::ExecutionContextTokenDataView::Tag GetTag(
+ const blink::ExecutionContextToken& token);
+ static blink::LocalFrameToken local_frame_token(
+ const blink::ExecutionContextToken& token);
+ static blink::DedicatedWorkerToken dedicated_worker_token(
+ const blink::ExecutionContextToken& token);
+ static blink::ServiceWorkerToken service_worker_token(
+ const blink::ExecutionContextToken& token);
+ static blink::SharedWorkerToken shared_worker_token(
+ const blink::ExecutionContextToken& token);
+ static blink::AnimationWorkletToken animation_worklet_token(
+ const blink::ExecutionContextToken& token);
+ static blink::AudioWorkletToken audio_worklet_token(
+ const blink::ExecutionContextToken& token);
+ static blink::LayoutWorkletToken layout_worklet_token(
+ const blink::ExecutionContextToken& token);
+ static blink::PaintWorkletToken paint_worklet_token(
+ const blink::ExecutionContextToken& token);
+};
+
+template <>
+struct StructTraits<blink::mojom::PortalTokenDataView, blink::PortalToken>
+ : public blink::TokenMojomTraitsHelper<blink::mojom::PortalTokenDataView,
+ blink::PortalToken> {};
+
+template <>
+struct StructTraits<blink::mojom::V8ContextTokenDataView, blink::V8ContextToken>
+ : public blink::TokenMojomTraitsHelper<blink::mojom::V8ContextTokenDataView,
+ blink::V8ContextToken> {};
+
+} // namespace mojo
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_TOKENS_TOKENS_MOJOM_TRAITS_H_
diff --git a/chromium/third_party/blink/public/common/user_agent/OWNERS b/chromium/third_party/blink/public/common/user_agent/OWNERS
index 83a084b3648..bf152e4fbba 100644
--- a/chromium/third_party/blink/public/common/user_agent/OWNERS
+++ b/chromium/third_party/blink/public/common/user_agent/OWNERS
@@ -1,7 +1,4 @@
mkwst@chromium.org
-per-file *.typemap=set noparent
-per-file *.typemap=file://ipc/SECURITY_OWNERS
-
per-file *_mojom_traits*.*=set noparent
per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
diff --git a/chromium/third_party/blink/public/common/user_agent/user_agent_metadata.typemap b/chromium/third_party/blink/public/common/user_agent/user_agent_metadata.typemap
deleted file mode 100644
index cea3743aff5..00000000000
--- a/chromium/third_party/blink/public/common/user_agent/user_agent_metadata.typemap
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright 2019 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//third_party/blink/public/mojom/user_agent/user_agent_metadata.mojom"
-public_headers = [
- "//third_party/blink/public/common/user_agent/user_agent_metadata.h",
- "//third_party/blink/public/common/common_export.h",
-]
-traits_headers =
- [ "//third_party/blink/public/common/user_agent/user_agent_mojom_traits.h" ]
-sources = [ "//third_party/blink/common/user_agent/user_agent_mojom_traits.cc" ]
-type_mappings = [
- "blink.mojom.UserAgentBrandVersion=::blink::UserAgentBrandVersion",
- "blink.mojom.UserAgentMetadata=::blink::UserAgentMetadata",
- "blink.mojom.UserAgentOverride=::blink::UserAgentOverride",
-]
diff --git a/chromium/third_party/blink/public/common/user_agent/user_agent_mojom_traits.h b/chromium/third_party/blink/public/common/user_agent/user_agent_mojom_traits.h
index aa25c415a81..59289954aa1 100644
--- a/chromium/third_party/blink/public/common/user_agent/user_agent_mojom_traits.h
+++ b/chromium/third_party/blink/public/common/user_agent/user_agent_mojom_traits.h
@@ -11,7 +11,7 @@
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "third_party/blink/public/common/common_export.h"
-#include "third_party/blink/public/mojom/user_agent/user_agent_metadata.mojom.h"
+#include "third_party/blink/public/mojom/user_agent/user_agent_metadata.mojom-shared.h"
namespace mojo {
diff --git a/chromium/third_party/blink/public/common/widget/OWNERS b/chromium/third_party/blink/public/common/widget/OWNERS
new file mode 100644
index 00000000000..d5fefd82012
--- /dev/null
+++ b/chromium/third_party/blink/public/common/widget/OWNERS
@@ -0,0 +1,2 @@
+per-file *_mojom_traits*.*=set noparent
+per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
diff --git a/chromium/third_party/blink/public/web/web_device_emulation_params.h b/chromium/third_party/blink/public/common/widget/device_emulation_params.h
index f5f1088b55e..c876cc3fbd9 100644
--- a/chromium/third_party/blink/public/web/web_device_emulation_params.h
+++ b/chromium/third_party/blink/public/common/widget/device_emulation_params.h
@@ -2,28 +2,27 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DEVICE_EMULATION_PARAMS_H_
-#define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DEVICE_EMULATION_PARAMS_H_
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_DEVICE_EMULATION_PARAMS_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_DEVICE_EMULATION_PARAMS_H_
#include "base/optional.h"
-#include "third_party/blink/public/common/screen_orientation/web_screen_orientation_type.h"
-#include "third_party/blink/public/platform/web_rect.h"
-#include "third_party/blink/public/platform/web_size.h"
+#include "third_party/blink/public/mojom/widget/device_emulation_params.mojom-shared.h"
+#include "third_party/blink/public/mojom/widget/screen_orientation.mojom-shared.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/geometry/point_f.h"
+#include "ui/gfx/geometry/rect.h"
+#include "ui/gfx/geometry/size.h"
namespace blink {
// All sizes are measured in device independent pixels.
-struct WebDeviceEmulationParams {
- enum ScreenPosition { kDesktop, kMobile, kScreenPositionLast = kMobile };
-
- ScreenPosition screen_position;
+struct DeviceEmulationParams {
+ mojom::EmulatedScreenType screen_type = mojom::EmulatedScreenType::kDesktop;
// Emulated screen size. Typically full / physical size of the device screen
// in DIP. Empty size means using default value: original one for kDesktop
// screen position, equal to |view_size| for kMobile.
- WebSize screen_size;
+ gfx::Size screen_size;
// Position of view on the screen. Missing position means using default value:
// original one for kDesktop screen position, (0, 0) for kMobile.
@@ -32,53 +31,51 @@ struct WebDeviceEmulationParams {
// Emulated view size. A width or height of 0 means no override in that
// dimension, but the other can still be applied. When both are 0, then the
// |scale| will be applied to the view instead.
- WebSize view_size;
+ gfx::Size view_size;
// If zero, the original device scale factor is preserved.
- float device_scale_factor;
+ float device_scale_factor = 0;
// Scale the contents of the main frame. The view's size will be scaled by
// this number when they are not specified in |view_size|.
- float scale;
+ float scale = 1;
// Forced viewport offset for screenshots during emulation, (-1, -1) for
// disabled.
- gfx::PointF viewport_offset;
+ gfx::PointF viewport_offset = gfx::PointF(-1, -1);
// Viewport scale for screenshots during emulation, 0 for current.
- float viewport_scale;
+ float viewport_scale = 0;
- // Optional screen orientation type, with WebScreenOrientationUndefined
+ // Optional screen orientation type, with mojom::ScreenOrientation::kUndefined
// value meaning no emulation necessary.
- WebScreenOrientationType screen_orientation_type;
+ mojom::ScreenOrientation screen_orientation_type =
+ mojom::ScreenOrientation::kUndefined;
// Screen orientation angle, used together with screenOrientationType.
- int screen_orientation_angle;
-
- WebDeviceEmulationParams()
- : screen_position(kDesktop),
- device_scale_factor(0),
- scale(1),
- viewport_offset(-1, -1),
- viewport_scale(0),
- screen_orientation_type(kWebScreenOrientationUndefined),
- screen_orientation_angle(0) {}
+ uint32_t screen_orientation_angle = 0;
+
+ // Screen window segments dimensions.
+ std::vector<gfx::Rect> window_segments;
+
+ DeviceEmulationParams() = default;
};
-inline bool operator==(const WebDeviceEmulationParams& a,
- const WebDeviceEmulationParams& b) {
- return a.screen_position == b.screen_position &&
- a.screen_size == b.screen_size && a.view_position == b.view_position &&
+inline bool operator==(const DeviceEmulationParams& a,
+ const DeviceEmulationParams& b) {
+ return a.screen_type == b.screen_type && a.screen_size == b.screen_size &&
+ a.view_position == b.view_position &&
a.device_scale_factor == b.device_scale_factor &&
a.view_size == b.view_size && a.scale == b.scale &&
a.screen_orientation_type == b.screen_orientation_type &&
a.screen_orientation_angle == b.screen_orientation_angle &&
a.viewport_offset == b.viewport_offset &&
- a.viewport_scale == b.viewport_scale;
+ a.viewport_scale == b.viewport_scale &&
+ a.window_segments == b.window_segments;
}
-inline bool operator!=(const WebDeviceEmulationParams& a,
- const WebDeviceEmulationParams& b) {
+inline bool operator!=(const DeviceEmulationParams& a,
+ const DeviceEmulationParams& b) {
return !(a == b);
}
diff --git a/chromium/third_party/blink/public/common/widget/device_emulation_params_mojom_traits.h b/chromium/third_party/blink/public/common/widget/device_emulation_params_mojom_traits.h
new file mode 100644
index 00000000000..abcf659a71b
--- /dev/null
+++ b/chromium/third_party/blink/public/common/widget/device_emulation_params_mojom_traits.h
@@ -0,0 +1,72 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_DEVICE_EMULATION_PARAMS_MOJOM_TRAITS_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_DEVICE_EMULATION_PARAMS_MOJOM_TRAITS_H_
+
+#include "third_party/blink/public/common/common_export.h"
+#include "third_party/blink/public/common/widget/device_emulation_params.h"
+#include "third_party/blink/public/mojom/widget/device_emulation_params.mojom-shared.h"
+
+namespace mojo {
+
+template <>
+struct BLINK_COMMON_EXPORT
+ StructTraits<blink::mojom::DeviceEmulationParamsDataView,
+ blink::DeviceEmulationParams> {
+ static blink::mojom::EmulatedScreenType screen_type(
+ const blink::DeviceEmulationParams& r) {
+ return r.screen_type;
+ }
+
+ static const gfx::Size& screen_size(const blink::DeviceEmulationParams& r) {
+ return r.screen_size;
+ }
+
+ static base::Optional<gfx::Point> view_position(
+ const blink::DeviceEmulationParams& r) {
+ return r.view_position;
+ }
+
+ static const gfx::Size& view_size(const blink::DeviceEmulationParams& r) {
+ return r.view_size;
+ }
+
+ static float device_scale_factor(const blink::DeviceEmulationParams& r) {
+ return r.device_scale_factor;
+ }
+
+ static float scale(const blink::DeviceEmulationParams& r) { return r.scale; }
+
+ static const gfx::PointF& viewport_offset(
+ const blink::DeviceEmulationParams& r) {
+ return r.viewport_offset;
+ }
+
+ static float viewport_scale(const blink::DeviceEmulationParams& r) {
+ return r.viewport_scale;
+ }
+
+ static blink::mojom::ScreenOrientation screen_orientation_type(
+ const blink::DeviceEmulationParams& r) {
+ return r.screen_orientation_type;
+ }
+
+ static uint32_t screen_orientation_angle(
+ const blink::DeviceEmulationParams& r) {
+ return r.screen_orientation_angle;
+ }
+
+ static const std::vector<gfx::Rect>& window_segments(
+ const blink::DeviceEmulationParams& r) {
+ return r.window_segments;
+ }
+
+ static bool Read(blink::mojom::DeviceEmulationParamsDataView r,
+ blink::DeviceEmulationParams* out);
+};
+
+} // namespace mojo
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_DEVICE_EMULATION_PARAMS_MOJOM_TRAITS_H_
diff --git a/chromium/third_party/blink/public/platform/web_screen_info.h b/chromium/third_party/blink/public/common/widget/screen_info.h
index 10ec99da5df..058987ad480 100644
--- a/chromium/third_party/blink/public/platform/web_screen_info.h
+++ b/chromium/third_party/blink/public/common/widget/screen_info.h
@@ -28,24 +28,24 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_SCREEN_INFO_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_SCREEN_INFO_H_
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_SCREEN_INFO_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_SCREEN_INFO_H_
-#include "third_party/blink/public/common/screen_orientation/web_screen_orientation_type.h"
-#include "third_party/blink/public/platform/web_rect.h"
-#include "ui/gfx/color_space.h"
+#include "third_party/blink/public/mojom/widget/screen_orientation.mojom-shared.h"
+#include "ui/gfx/display_color_spaces.h"
+#include "ui/gfx/geometry/rect.h"
namespace blink {
-struct WebScreenInfo {
+struct ScreenInfo {
// Device scale factor. Specifies the ratio between physical and logical
// pixels.
float device_scale_factor = 1.f;
- // The color space of the output display.
- gfx::ColorSpace color_space;
+ // The color spaces used by output display for various content types.
+ gfx::DisplayColorSpaces display_color_spaces;
- // The screen depth in bits per pixel
+ // The screen depth in bits per pixel.
int depth = 0;
// The bits per colour component. This assumes that the colours are balanced
@@ -55,12 +55,16 @@ struct WebScreenInfo {
// This can be true for black and white printers
bool is_monochrome = false;
+ // The display frequency in Hz of the monitor. Set to 0 if it fails in the
+ // monitor frequency query.
+ int display_frequency = 0;
+
// This is set from the rcMonitor member of MONITORINFOEX, to whit:
// "A RECT structure that specifies the display monitor rectangle,
// expressed in virtual-screen coordinates. Note that if the monitor
// is not the primary display monitor, some of the rectangle's
// coordinates may be negative values."
- WebRect rect;
+ gfx::Rect rect;
// This is set from the rcWork member of MONITORINFOEX, to whit:
// "A RECT structure that specifies the work area rectangle of the
@@ -70,33 +74,35 @@ struct WebScreenInfo {
// rcMonitor contains system windows such as the task bar and side
// bars. Note that if the monitor is not the primary display monitor,
// some of the rectangle's coordinates may be negative values".
- WebRect available_rect;
+ gfx::Rect available_rect;
// This is the orientation 'type' or 'name', as in landscape-primary or
// portrait-secondary for examples.
- // See WebScreenOrientationType.h for the full list.
- WebScreenOrientationType orientation_type = kWebScreenOrientationUndefined;
+ // See public/mojom/screen_orientation.mojom for the full list.
+ mojom::ScreenOrientation orientation_type =
+ mojom::ScreenOrientation::kUndefined;
// This is the orientation angle of the displayed content in degrees.
// It is the opposite of the physical rotation.
// TODO(crbug.com/840189): we should use an enum rather than a number here.
uint16_t orientation_angle = 0;
- WebScreenInfo() = default;
+ ScreenInfo() = default;
- bool operator==(const WebScreenInfo& other) const {
+ bool operator==(const ScreenInfo& other) const {
return this->device_scale_factor == other.device_scale_factor &&
- this->color_space == other.color_space &&
+ this->display_color_spaces == other.display_color_spaces &&
this->depth == other.depth &&
this->depth_per_component == other.depth_per_component &&
this->is_monochrome == other.is_monochrome &&
+ this->display_frequency == other.display_frequency &&
this->rect == other.rect &&
this->available_rect == other.available_rect &&
this->orientation_type == other.orientation_type &&
this->orientation_angle == other.orientation_angle;
}
- bool operator!=(const WebScreenInfo& other) const {
+ bool operator!=(const ScreenInfo& other) const {
return !this->operator==(other);
}
};
diff --git a/chromium/third_party/blink/public/common/widget/screen_info_mojom_traits.h b/chromium/third_party/blink/public/common/widget/screen_info_mojom_traits.h
new file mode 100644
index 00000000000..1d724c34b93
--- /dev/null
+++ b/chromium/third_party/blink/public/common/widget/screen_info_mojom_traits.h
@@ -0,0 +1,60 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_SCREEN_INFO_MOJOM_TRAITS_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_SCREEN_INFO_MOJOM_TRAITS_H_
+
+#include "third_party/blink/public/common/common_export.h"
+#include "third_party/blink/public/common/widget/screen_info.h"
+#include "third_party/blink/public/mojom/widget/screen_info.mojom-shared.h"
+
+namespace mojo {
+
+template <>
+struct BLINK_COMMON_EXPORT
+ StructTraits<blink::mojom::ScreenInfoDataView, blink::ScreenInfo> {
+ static float device_scale_factor(const blink::ScreenInfo& r) {
+ return r.device_scale_factor;
+ }
+
+ static const gfx::DisplayColorSpaces& display_color_spaces(
+ const blink::ScreenInfo& r) {
+ return r.display_color_spaces;
+ }
+
+ static int depth(const blink::ScreenInfo& r) { return r.depth; }
+
+ static int depth_per_component(const blink::ScreenInfo& r) {
+ return r.depth_per_component;
+ }
+
+ static bool is_monochrome(const blink::ScreenInfo& r) {
+ return r.is_monochrome;
+ }
+
+ static int display_frequency(const blink::ScreenInfo& r) {
+ return r.display_frequency;
+ }
+
+ static const gfx::Rect& rect(const blink::ScreenInfo& r) { return r.rect; }
+
+ static const gfx::Rect& available_rect(const blink::ScreenInfo& r) {
+ return r.available_rect;
+ }
+
+ static blink::mojom::ScreenOrientation orientation_type(
+ const blink::ScreenInfo& r) {
+ return r.orientation_type;
+ }
+
+ static uint16_t orientation_angle(const blink::ScreenInfo& r) {
+ return r.orientation_angle;
+ }
+
+ static bool Read(blink::mojom::ScreenInfoDataView r, blink::ScreenInfo* out);
+};
+
+} // namespace mojo
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_SCREEN_INFO_MOJOM_TRAITS_H_
diff --git a/chromium/third_party/blink/public/common/widget/visual_properties.h b/chromium/third_party/blink/public/common/widget/visual_properties.h
new file mode 100644
index 00000000000..95f4dbf3449
--- /dev/null
+++ b/chromium/third_party/blink/public/common/widget/visual_properties.h
@@ -0,0 +1,130 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_VISUAL_PROPERTIES_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_VISUAL_PROPERTIES_H_
+
+#include "base/optional.h"
+#include "base/time/time.h"
+#include "cc/trees/browser_controls_params.h"
+#include "components/viz/common/surfaces/local_surface_id_allocation.h"
+#include "third_party/blink/public/common/widget/screen_info.h"
+#include "third_party/blink/public/mojom/manifest/display_mode.mojom.h"
+#include "ui/gfx/geometry/size.h"
+
+namespace blink {
+
+// Visual properties contain context required to render a frame tree.
+// For legacy reasons, both Page visual properties [shared by all Renderers] and
+// Widget visual properties [unique to local frame roots] are passed along the
+// same data structure. Separating these is tricky because they both affect
+// rendering, and if updates are received asynchronously, this can cause
+// incorrect behavior.
+// Visual properties are also used for Pepper fullscreen and popups, which are
+// also based on Widgets.
+//
+// The data flow for VisualProperties is tricky. For legacy reasons, visual
+// properties are currently always sent from RenderWidgetHosts to RenderWidgets.
+// However, RenderWidgets can also send visual properties to out-of-process
+// subframes [by bouncing through CrossProcessFrameConnector]. This causes a
+// cascading series of VisualProperty messages. This is necessary due to the
+// current implementation to make sure that cross-process surfaces get
+// simultaneously synchronized. For more details, see:
+// https://docs.google.com/document/d/1VKOLBYlujcn862w9LAyUbv6oW9RZgD65oDCI_G5AEVQ/edit#heading=h.wno2seszsyen
+// https://docs.google.com/document/d/1J7BTRsylGApm6KHaaTu-m6LLvSWJgf1B9CM-USKIp1k/edit#heading=h.ichmoicfam1y
+//
+// Known problems:
+// + It's not clear which properties are page-specific and which are
+// widget-specific. We should document them.
+// + It's not clear which properties are only set by the browser, which are only
+// set by the renderer, and which are set by both.
+// + Given the frame tree A(B(A')) where A and A' are same-origin, same process
+// and B is separate origin separate process:
+// (1) RenderWidget A gets SynchronizeVisualProperties, passes it to proxy for
+// B, sets values on RenderView/Page.
+// (2) RenderWidget B gets SynchronizeVisualProperties, passes it to proxy for
+// A'
+// (3) RenderWidget A' gets SynchronizeVisualProperties.
+// In between (1) and (3), frames associated with RenderWidget A' will see
+// updated page properties from (1) but are still seeing old widget properties.
+
+struct VisualProperties {
+ // Information about the screen (dpi, depth, etc..).
+ ScreenInfo screen_info;
+
+ // Whether or not blink should be in auto-resize mode.
+ bool auto_resize_enabled = false;
+
+ // The minimum size for Blink if auto-resize is enabled.
+ gfx::Size min_size_for_auto_resize;
+
+ // The maximum size for Blink if auto-resize is enabled.
+ gfx::Size max_size_for_auto_resize;
+
+ // The size for the widget in DIPs.
+ gfx::Size new_size;
+
+ // The size of the area of the widget that is visible to the user, in DIPs.
+ // The visible area may be empty if the visible area does not intersect with
+ // the widget, for example in the case of a child frame that is entirely
+ // scrolled out of the main frame's viewport. It may also be smaller than the
+ // widget's size in |new_size| due to the UI hiding part of the widget, such
+ // as with an on-screen keyboard.
+ gfx::Size visible_viewport_size;
+
+ // The rect of compositor's viewport in pixels. Note that for top level
+ // widgets this is roughly the DSF scaled new_size put into a rect. For child
+ // frame widgets it is a pixel-perfect bounds of the visible region of the
+ // widget. The size would be similar to visible_viewport_size, but in physical
+ // pixels and computed via very different means.
+ // TODO(danakj): It would be super nice to remove one of |new_size|,
+ // |visible_viewport_size| and |compositor_viewport_pixel_rect|. Their values
+ // overlap in purpose, creating a very confusing situation about which to use
+ // for what, and how they should relate or not.
+ gfx::Rect compositor_viewport_pixel_rect;
+
+ // Browser controls params such as top and bottom controls heights, whether
+ // controls shrink blink size etc.
+ cc::BrowserControlsParams browser_controls_params;
+
+ // Whether or not the focused node should be scrolled into view after the
+ // resize.
+ bool scroll_focused_node_into_view = false;
+
+ // The local surface ID to use (if valid) and its allocation time.
+ base::Optional<viz::LocalSurfaceIdAllocation> local_surface_id_allocation;
+
+ // Indicates whether tab-initiated fullscreen was granted.
+ bool is_fullscreen_granted = false;
+
+ // The display mode.
+ mojom::DisplayMode display_mode = mojom::DisplayMode::kUndefined;
+
+ // This represents the latest capture sequence number requested. When this is
+ // incremented, that means the caller wants to synchronize surfaces which
+ // should cause a new LocalSurfaceId to be generated.
+ uint32_t capture_sequence_number = 0u;
+
+ // This represents the page zoom level for a WebContents.
+ // (0 is the default value which results in 1.0 zoom factor).
+ double zoom_level = 0;
+
+ // This represents the page's scale factor, which changes during pinch zoom.
+ // It needs to be shared with subframes.
+ float page_scale_factor = 1.f;
+
+ // The logical segments of the root widget, in widget-relative DIPs. This
+ // property is set by the root RenderWidget in the renderer process, then
+ // propagated to child local frame roots via RenderFrameProxy/
+ // CrossProcessFrameConnector.
+ std::vector<gfx::Rect> root_widget_window_segments;
+
+ // Indicates whether a pinch gesture is currently active. Originates in the
+ // main frame's renderer, and needs to be shared with subframes.
+ bool is_pinch_gesture_active = false;
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_VISUAL_PROPERTIES_H_
diff --git a/chromium/third_party/blink/public/common/widget/visual_properties_mojom_traits.h b/chromium/third_party/blink/public/common/widget/visual_properties_mojom_traits.h
new file mode 100644
index 00000000000..625d50268a8
--- /dev/null
+++ b/chromium/third_party/blink/public/common/widget/visual_properties_mojom_traits.h
@@ -0,0 +1,100 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_VISUAL_PROPERTIES_MOJOM_TRAITS_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_VISUAL_PROPERTIES_MOJOM_TRAITS_H_
+
+#include "third_party/blink/public/common/common_export.h"
+#include "third_party/blink/public/common/widget/visual_properties.h"
+#include "third_party/blink/public/mojom/widget/visual_properties.mojom-shared.h"
+
+namespace mojo {
+
+template <>
+struct BLINK_COMMON_EXPORT StructTraits<blink::mojom::VisualPropertiesDataView,
+ blink::VisualProperties> {
+ static const blink::ScreenInfo& screen_info(
+ const blink::VisualProperties& r) {
+ return r.screen_info;
+ }
+
+ static bool auto_resize_enabled(const blink::VisualProperties& r) {
+ return r.auto_resize_enabled;
+ }
+
+ static const gfx::Size& min_size_for_auto_resize(
+ const blink::VisualProperties& r) {
+ return r.min_size_for_auto_resize;
+ }
+
+ static const gfx::Size& max_size_for_auto_resize(
+ const blink::VisualProperties& r) {
+ return r.max_size_for_auto_resize;
+ }
+
+ static const gfx::Size& new_size(const blink::VisualProperties& r) {
+ return r.new_size;
+ }
+
+ static const gfx::Size& visible_viewport_size(
+ const blink::VisualProperties& r) {
+ return r.visible_viewport_size;
+ }
+
+ static const gfx::Rect& compositor_viewport_pixel_rect(
+ const blink::VisualProperties& r) {
+ return r.compositor_viewport_pixel_rect;
+ }
+
+ static base::Optional<cc::BrowserControlsParams> browser_controls_params(
+ const blink::VisualProperties& r) {
+ return r.browser_controls_params;
+ }
+
+ static bool scroll_focused_node_into_view(const blink::VisualProperties& r) {
+ return r.scroll_focused_node_into_view;
+ }
+
+ static base::Optional<viz::LocalSurfaceIdAllocation>
+ local_surface_id_allocation(const blink::VisualProperties& r) {
+ return r.local_surface_id_allocation;
+ }
+
+ static bool is_fullscreen_granted(const blink::VisualProperties& r) {
+ return r.is_fullscreen_granted;
+ }
+
+ static blink::mojom::DisplayMode display_mode(
+ const blink::VisualProperties& r) {
+ return r.display_mode;
+ }
+
+ static uint32_t capture_sequence_number(const blink::VisualProperties& r) {
+ return r.capture_sequence_number;
+ }
+
+ static double zoom_level(const blink::VisualProperties& r) {
+ return r.zoom_level;
+ }
+
+ static double page_scale_factor(const blink::VisualProperties& r) {
+ return r.page_scale_factor;
+ }
+
+ static const std::vector<gfx::Rect>& root_widget_window_segments(
+ const blink::VisualProperties& r) {
+ return r.root_widget_window_segments;
+ }
+
+ static bool is_pinch_gesture_active(const blink::VisualProperties& r) {
+ return r.is_pinch_gesture_active;
+ }
+
+ static bool Read(blink::mojom::VisualPropertiesDataView r,
+ blink::VisualProperties* out);
+};
+
+} // namespace mojo
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_WIDGET_VISUAL_PROPERTIES_MOJOM_TRAITS_H_
diff --git a/chromium/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/chromium/third_party/blink/public/devtools_protocol/browser_protocol.pdl
index a566425ac93..3d94e6bee42 100644
--- a/chromium/third_party/blink/public/devtools_protocol/browser_protocol.pdl
+++ b/chromium/third_party/blink/public/devtools_protocol/browser_protocol.pdl
@@ -472,6 +472,8 @@ experimental domain Audits
enum
ExcludeSameSiteUnspecifiedTreatedAsLax
ExcludeSameSiteNoneInsecure
+ ExcludeSameSiteLax
+ ExcludeSameSiteStrict
type SameSiteCookieWarningReason extends string
enum
@@ -574,7 +576,8 @@ experimental domain Audits
type BlockedByResponseIssueDetails extends object
properties
AffectedRequest request
- optional AffectedFrame frame
+ optional AffectedFrame parentFrame
+ optional AffectedFrame blockedFrame
BlockedByResponseReason reason
type HeavyAdResolutionStatus extends string
@@ -597,6 +600,31 @@ experimental domain Audits
# The frame that was blocked.
AffectedFrame frame
+ type ContentSecurityPolicyViolationType extends string
+ enum
+ kInlineViolation
+ kEvalViolation
+ kURLViolation
+ kTrustedTypesSinkViolation
+ kTrustedTypesPolicyViolation
+
+ type SourceCodeLocation extends object
+ properties
+ string url
+ integer lineNumber
+ integer columnNumber
+
+ type ContentSecurityPolicyIssueDetails extends object
+ properties
+ # The url not included in allowed sources.
+ optional string blockedURL
+ # Specific directive that is violated, causing the CSP issue.
+ string violatedDirective
+ ContentSecurityPolicyViolationType contentSecurityPolicyViolationType
+ optional AffectedFrame frameAncestor
+ optional SourceCodeLocation sourceCodeLocation
+ optional DOM.BackendNodeId violatingNodeId
+
# A unique identifier for the type of issue. Each type may use one of the
# optional fields in InspectorIssueDetails to convey more specific
# information about the kind of issue.
@@ -606,6 +634,7 @@ experimental domain Audits
MixedContentIssue
BlockedByResponseIssue
HeavyAdIssue
+ ContentSecurityPolicyIssue
# This struct holds a list of optional fields with additional information
# specific to the kind of issue. When adding a new issue code, please also
@@ -616,6 +645,7 @@ experimental domain Audits
optional MixedContentIssueDetails mixedContentIssueDetails
optional BlockedByResponseIssueDetails blockedByResponseIssueDetails
optional HeavyAdIssueDetails heavyAdIssueDetails
+ optional ContentSecurityPolicyIssueDetails contentSecurityPolicyIssueDetails
# An inspector issue reported from the back-end.
type InspectorIssue extends object
@@ -1210,7 +1240,22 @@ experimental domain CSS
# Amount of glyphs that were rendered with this font.
number glyphCount
+ # Information about font variation axes for variable fonts
+ type FontVariationAxis extends object
+ properties
+ # The font-variation-setting tag (a.k.a. "axis tag").
+ string tag
+ # Human-readable variation name in the default language (normally, "en").
+ string name
+ # The minimum value (inclusive) the font supports for this tag.
+ number minValue
+ # The maximum value (inclusive) the font supports for this tag.
+ number maxValue
+ # The default value.
+ number defaultValue
+
# Properties of a web font: https://www.w3.org/TR/2008/REC-CSS2-20080411/fonts.html#font-descriptions
+ # and additional information such as platformFontFamily and fontVariationAxes.
type FontFace extends object
properties
# The font-family.
@@ -1229,6 +1274,8 @@ experimental domain CSS
string src
# The resolved platform font family
string platformFontFamily
+ # Available variation settings (a.k.a. "axes").
+ optional array of FontVariationAxis fontVariationAxes
# CSS keyframes rule representation.
type CSSKeyframesRule extends object
@@ -1384,6 +1431,22 @@ experimental domain CSS
# The stylesheet text.
string text
+ # Starts tracking the given computed styles for updates. The specified array of properties
+ # replaces the one previously specified. Pass empty array to disable tracking.
+ # Use takeComputedStyleUpdates to retrieve the list of nodes that had properties modified.
+ # The changes to computed style properties are only tracked for nodes pushed to the front-end
+ # by the DOM agent. If no changes to the tracked properties occur after the node has been pushed
+ # to the front-end, no updates will be issued for the node.
+ experimental command trackComputedStyleUpdates
+ parameters
+ array of CSSComputedStyleProperty propertiesToTrack
+
+ # Polls the next batch of computed style updates.
+ experimental command takeComputedStyleUpdates
+ returns
+ # The list of node Ids that have their tracked computed styles updated
+ array of DOM.NodeId nodeIds
+
# Find a rule with the given active property for the given node and set the new value for this
# property
command setEffectivePropertyValueForNode
@@ -1457,6 +1520,12 @@ experimental domain CSS
# Monotonically increasing time, in seconds.
number timestamp
+ # Enables/disables rendering of local CSS fonts (enabled by default).
+ experimental command setLocalFontsEnabled
+ parameters
+ # Whether rendering of local fonts is enabled.
+ boolean enabled
+
# Fires whenever a web font is updated. A non-empty font parameter indicates a successfully loaded
# web font
event fontsUpdated
@@ -1819,6 +1888,13 @@ domain DOM
# Rectangle height
number height
+ type CSSComputedStyleProperty extends object
+ properties
+ # Computed style property name.
+ string name
+ # Computed style property value.
+ string value
+
# Collects class names for the node with given id and all of it's child nodes.
experimental command collectClassNamesFromSubtree
parameters
@@ -1951,7 +2027,9 @@ domain DOM
Node root
# Returns the root DOM node (and optionally the subtree) to the caller.
- command getFlattenedDocument
+ # Deprecated, as it is not designed to work well with the rest of the DOM agent.
+ # Use DOMSnapshot.captureSnapshot instead.
+ deprecated command getFlattenedDocument
parameters
# The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the
# entire subtree or provide an integer larger than 0.
@@ -1963,6 +2041,20 @@ domain DOM
# Resulting node.
array of Node nodes
+ # Finds nodes with a given computed style in a subtree.
+ experimental command getNodesForSubtreeByStyle
+ parameters
+ # Node ID pointing to the root of a subtree.
+ NodeId nodeId
+ # The style to filter nodes by (includes nodes if any of properties matches).
+ array of CSSComputedStyleProperty computedStyles
+ # Whether or not iframes and shadow roots in the same target should be traversed when returning the
+ # results (default is false).
+ optional boolean pierce
+ returns
+ # Resulting nodes.
+ array of NodeId nodeIds
+
# Returns node id at given location. Depending on whether DOM domain is enabled, nodeId is
# either returned or not.
command getNodeForLocation
@@ -2931,6 +3023,20 @@ domain Emulation
# Orientation angle.
integer angle
+ type DisplayFeature extends object
+ properties
+ # Orientation of a display feature in relation to screen
+ enum orientation
+ vertical
+ horizontal
+ # The offset from the screen origin in either the x (for vertical
+ # orientation) or y (for horizontal orientation) direction.
+ integer offset
+ # A display feature may mask content such that it is not physically
+ # displayed - this length along with the offset describes this area.
+ # A display feature that only splits content will have a 0 mask_length.
+ integer maskLength
+
type MediaFeature extends object
properties
string name
@@ -3029,6 +3135,9 @@ domain Emulation
# If set, the visible area of the page will be overridden to this viewport. This viewport
# change is not observed by the page, e.g. viewport-relative elements do not change positions.
experimental optional Page.Viewport viewport
+ # If set, the display feature of a multi-segment screen. If not set, multi-segment support
+ # is turned-off.
+ experimental optional DisplayFeature displayFeature
experimental command setScrollbarsHidden
parameters
@@ -3080,6 +3189,17 @@ domain Emulation
# Mock accuracy
optional number accuracy
+ # Overrides the Idle state.
+ experimental command setIdleOverride
+ parameters
+ # Mock isUserActive
+ boolean isUserActive
+ # Mock isScreenUnlocked
+ boolean isScreenUnlocked
+
+ # Clears Idle state overrides.
+ experimental command clearIdleOverride
+
# Overrides value returned by the javascript navigator object.
experimental deprecated command setNavigatorOverrides
parameters
@@ -4194,6 +4314,11 @@ domain Network
High
VeryHigh
+ # Post data entry for HTTP request
+ type PostDataEntry extends object
+ properties
+ optional binary bytes
+
# HTTP request data.
type Request extends object
properties
@@ -4209,6 +4334,8 @@ domain Network
optional string postData
# True when the request has POST data. Note that postData might still be omitted when this flag is true when the data is too long.
optional boolean hasPostData
+ # Request body elements. This will be converted from base64 to binary
+ experimental optional array of PostDataEntry postDataEntries
# The mixed content type of the request.
optional Security.MixedContentType mixedContentType
# Priority of the resource request at the time request is sent.
@@ -4787,7 +4914,9 @@ domain Network
# detailed cookie information in the `cookies` field.
command getCookies
parameters
- # The list of URLs for which applicable cookies will be fetched
+ # The list of URLs for which applicable cookies will be fetched.
+ # If not specified, it's assumed to be set to the list containing
+ # the URLs of the page and all of its subframes.
optional array of string urls
returns
# Array of cookie objects.
@@ -5204,12 +5333,53 @@ domain Network
# available, such as in the case of HTTP/2 or QUIC.
optional string headersText
+ experimental type CrossOriginOpenerPolicyValue extends string
+ enum
+ SameOrigin
+ SameOriginAllowPopups
+ UnsafeNone
+ SameOriginPlusCoep
+
+ experimental type CrossOriginOpenerPolicyStatus extends object
+ properties
+ CrossOriginOpenerPolicyValue value
+
+ experimental type CrossOriginEmbedderPolicyValue extends string
+ enum
+ None
+ RequireCorp
+
+ experimental type CrossOriginEmbedderPolicyStatus extends object
+ properties
+ CrossOriginEmbedderPolicyValue value
+
+ experimental type SecurityIsolationStatus extends object
+ properties
+ CrossOriginOpenerPolicyStatus coop
+ CrossOriginEmbedderPolicyStatus coep
+
+ # Returns information about the COEP/COOP isolation status.
+ experimental command getSecurityIsolationStatus
+ parameters
+ # If no frameId is provided, the status of the target is provided.
+ optional Page.FrameId frameId
+ returns
+ SecurityIsolationStatus status
+
# This domain provides various functionality related to drawing atop the inspected page.
experimental domain Overlay
depends on DOM
depends on Page
depends on Runtime
+ # Configuration data for drawing the source order of an elements children.
+ type SourceOrderConfig extends object
+ properties
+ # the color to outline the givent element in.
+ DOM.RGBA parentOutlineColor
+ # the color to outline the child elements in.
+ DOM.RGBA childOutlineColor
+
# Configuration data for the highlighting of Grid elements.
type GridHighlightConfig extends object
properties
@@ -5219,14 +5389,28 @@ experimental domain Overlay
optional boolean showPositiveLineNumbers
# Show Negative line number labels (default: false).
optional boolean showNegativeLineNumbers
+ # Show area name labels (default: false).
+ optional boolean showAreaNames
+ # Show line name labels (default: false).
+ optional boolean showLineNames
+ # Show track size labels (default: false).
+ optional boolean showTrackSizes
# The grid container border highlight color (default: transparent).
optional DOM.RGBA gridBorderColor
- # The cell border color (default: transparent).
- optional DOM.RGBA cellBorderColor
+ # The cell border color (default: transparent). Deprecated, please use rowLineColor and columnLineColor instead.
+ deprecated optional DOM.RGBA cellBorderColor
+ # The row line color (default: transparent).
+ optional DOM.RGBA rowLineColor
+ # The column line color (default: transparent).
+ optional DOM.RGBA columnLineColor
# Whether the grid border is dashed (default: false).
optional boolean gridBorderDash
- # Whether the cell border is dashed (default: false).
- optional boolean cellBorderDash
+ # Whether the cell border is dashed (default: false). Deprecated, please us rowLineDash and columnLineDash instead.
+ deprecated optional boolean cellBorderDash
+ # Whether row lines are dashed (default: false).
+ optional boolean rowLineDash
+ # Whether column lines are dashed (default: false).
+ optional boolean columnLineDash
# The row gap highlight fill color (default: transparent).
optional DOM.RGBA rowGapColor
# The row gap hatching fill color (default: transparent).
@@ -5235,6 +5419,8 @@ experimental domain Overlay
optional DOM.RGBA columnGapColor
# The column gap hatching fill color (default: transparent).
optional DOM.RGBA columnHatchColor
+ # The named grid areas border color (Default: transparent).
+ optional DOM.RGBA areaBorderColor
# Configuration data for the highlighting of page elements.
type HighlightConfig extends object
@@ -5276,6 +5462,14 @@ experimental domain Overlay
hsl
hex
+ # Configurations for Persistent Grid Highlight
+ type GridNodeHighlightConfig extends object
+ properties
+ # A descriptor for the highlight appearance.
+ GridHighlightConfig gridHighlightConfig
+ # Identifier of the node to highlight.
+ DOM.NodeId nodeId
+
# Configuration for dual screen hinge
type HingeConfig extends object
properties
@@ -5317,6 +5511,24 @@ experimental domain Overlay
# Highlight data for the node.
object highlight
+ # For Persistent Grid testing.
+ command getGridHighlightObjectsForTest
+ parameters
+ # Ids of the node to get highlight object for.
+ array of DOM.NodeId nodeIds
+ returns
+ # Grid Highlight data for the node ids provided.
+ object highlights
+
+ # For Source Order Viewer testing.
+ command getSourceOrderHighlightObjectForTest
+ parameters
+ # Id of the node to highlight.
+ DOM.NodeId nodeId
+ returns
+ # Source order highlight data for the node id provided.
+ object highlight
+
# Hides any highlight.
command hideHighlight
@@ -5371,6 +5583,19 @@ experimental domain Overlay
# The highlight outline color (default: transparent).
optional DOM.RGBA outlineColor
+ # Highlights the source order of the children of the DOM node with given id or with the given
+ # JavaScript object wrapper. Either nodeId or objectId must be specified.
+ command highlightSourceOrder
+ parameters
+ # A descriptor for the appearance of the overlay drawing.
+ SourceOrderConfig sourceOrderConfig
+ # Identifier of the node to highlight.
+ optional DOM.NodeId nodeId
+ # Identifier of the backend node to highlight.
+ optional DOM.BackendNodeId backendNodeId
+ # JavaScript object id of the node to be highlighted.
+ optional Runtime.RemoteObjectId objectId
+
# Enters the 'inspect' mode. In this mode, elements that user is hovering over are highlighted.
# Backend then generates 'inspectNodeRequested' event upon element selection.
command setInspectMode
@@ -5404,6 +5629,12 @@ experimental domain Overlay
# True for showing the FPS counter
boolean show
+ # Highlight multiple elements with the CSS Grid overlay.
+ command setShowGridOverlays
+ parameters
+ # An array of node identifiers and descriptors for the highlight appearance.
+ array of GridNodeHighlightConfig gridNodeHighlightConfigs
+
# Requests that backend shows paint rectangles
command setShowPaintRects
parameters
@@ -5472,6 +5703,37 @@ domain Page
# Unique frame identifier.
type FrameId extends string
+ # Indicates whether a frame has been identified as an ad.
+ experimental type AdFrameType extends string
+ enum
+ none
+ # This frame is a subframe of an ad frame.
+ child
+ # This frame is the root of an ad frame.
+ root
+
+ # Indicates whether the frame is a secure context and why it is the case.
+ experimental type SecureContextType extends string
+ enum
+ # The origin is a secure context.
+ Secure
+ # The host is localhost and hence is considered secure.
+ SecureLocalhost
+ # The origin has an insecure scheme and is not localhost.
+ InsecureScheme
+ # One of the ancestor frames is not a secure context.
+ InsecureAncestor
+
+ # Indicates whether the frame is cross-origin isolated and why it is the case.
+ experimental type CrossOriginIsolatedContextType extends string
+ enum
+ # The origin is cross-origin isolated.
+ Isolated
+ # The origin is not cross-origin isolated.
+ NotIsolated
+ # The cross-origin isolation feature is disabled.
+ NotIsolatedFeatureDisabled
+
# Information about the Frame on the page.
type Frame extends object
properties
@@ -5487,12 +5749,23 @@ domain Page
string url
# Frame document's URL fragment including the '#'.
experimental optional string urlFragment
+ # Frame document's registered domain, taking the public suffixes list into account.
+ # Extracted from the Frame's url.
+ # Example URLs: http://www.google.com/file.html -> "google.com"
+ # http://a.b.co.uk/file.html -> "b.co.uk"
+ experimental string domainAndRegistry
# Frame document's security origin.
string securityOrigin
# Frame document's mimeType as determined by the browser.
string mimeType
# If the frame failed to load, this contains the URL that could not be loaded. Note that unlike url above, this URL may contain a fragment.
experimental optional string unreachableUrl
+ # Indicates whether this frame was tagged as an ad.
+ experimental optional AdFrameType adFrameType
+ # Indicates whether the main document is a secure context and explains why that is the case.
+ experimental SecureContextType secureContextType
+ # Indicates whether this is a cross origin isolated context.
+ experimental CrossOriginIsolatedContextType crossOriginIsolatedContextType
# Information about the Resource on the page.
experimental type FrameResource extends object
@@ -7056,6 +7329,8 @@ domain Target
boolean attached
# Opener target Id
optional TargetID openerId
+ # Whether the opened window has access to the originating window.
+ experimental boolean canAccessOpener
experimental optional Browser.BrowserContextID browserContextId
experimental type RemoteLocation extends object
@@ -7531,7 +7806,7 @@ experimental domain Fetch
# If set, the request method is overridden.
optional string method
# If set, overrides the post data in the request.
- optional string postData
+ optional binary postData
# If set, overrides the request headers.
optional array of HeaderEntry headers
@@ -7930,6 +8205,13 @@ experimental domain WebAuthn
AuthenticatorId authenticatorId
boolean isUserVerified
+ # Sets whether tests of user presence will succeed immediately (if true) or fail to resolve (if false) for an authenticator.
+ # The default is true.
+ command setAutomaticPresenceSimulation
+ parameters
+ AuthenticatorId authenticatorId
+ boolean enabled
+
# This domain allows detailed inspection of media elements
experimental domain Media
diff --git a/chromium/third_party/blink/public/mojom/BUILD.gn b/chromium/third_party/blink/public/mojom/BUILD.gn
index 0381b12be2f..4771da903a3 100644
--- a/chromium/third_party/blink/public/mojom/BUILD.gn
+++ b/chromium/third_party/blink/public/mojom/BUILD.gn
@@ -4,6 +4,7 @@
import("//mojo/public/tools/bindings/mojom.gni")
import("//third_party/blink/public/public_features.gni")
+import("//ui/ozone/ozone.gni")
if (is_android) {
import("//build/config/android/config.gni")
@@ -45,7 +46,6 @@ mojom("mojom_platform") {
"devtools/devtools_agent.mojom",
"devtools/devtools_frontend.mojom",
"devtools/inspector_issue.mojom",
- "digital_goods/digital_goods.mojom",
"disk_allocator.mojom",
"favicon/favicon_url.mojom",
"feature_observer/feature_observer.mojom",
@@ -58,6 +58,7 @@ mojom("mojom_platform") {
"fetch/fetch_api_response.mojom",
"file/file_utilities.mojom",
"filesystem/file_system.mojom",
+ "font_access/font_access.mojom",
"geolocation/geolocation_service.mojom",
"hid/hid.mojom",
"hyphenation/hyphenation.mojom",
@@ -77,23 +78,30 @@ mojom("mojom_platform") {
"keyboard_lock/keyboard_lock.mojom",
"leak_detector/leak_detector.mojom",
"loader/code_cache.mojom",
+ "loader/content_security_notifier.mojom",
"loader/fetch_client_settings_object.mojom",
"loader/navigation_predictor.mojom",
"loader/pause_subresource_loading_handle.mojom",
"loader/previews_resource_loading_hints.mojom",
+ "loader/referrer.mojom",
"loader/request_context_frame_type.mojom",
"loader/resource_load_info.mojom",
+ "loader/resource_load_info_notifier.mojom",
+ "loader/transferrable_url_loader.mojom",
"loader/url_loader_factory_bundle.mojom",
"locks/lock_manager.mojom",
"manifest/display_mode.mojom",
"manifest/manifest.mojom",
"manifest/manifest_manager.mojom",
"manifest/manifest_observer.mojom",
+ "media/renderer_audio_input_stream_factory.mojom",
+ "media/renderer_audio_output_stream_factory.mojom",
"mediastream/aec_dump.mojom",
"mediastream/media_devices.mojom",
"mediastream/media_stream.mojom",
"mime/mime_registry.mojom",
"native_file_system/native_file_system_directory_handle.mojom",
+ "native_file_system/native_file_system_drag_drop_token.mojom",
"native_file_system/native_file_system_error.mojom",
"native_file_system/native_file_system_file_handle.mojom",
"native_file_system/native_file_system_file_writer.mojom",
@@ -103,13 +111,16 @@ mojom("mojom_platform") {
"notifications/notification.mojom",
"notifications/notification_service.mojom",
"oom_intervention/oom_intervention.mojom",
+ "optimization_guide/optimization_guide.mojom",
"page/display_cutout.mojom",
+ "page/drag.mojom",
"page/page.mojom",
"page/page_visibility_state.mojom",
- "page/spatial_navigation.mojom",
"page/widget.mojom",
"payments/payment_app.mojom",
+ "payments/payment_credential.mojom",
"peerconnection/peer_connection_tracker.mojom",
+ "performance_manager/v8_per_frame_memory.mojom",
"permissions/permission.mojom",
"permissions/permission_automation.mojom",
"permissions/permission_status.mojom",
@@ -121,7 +132,6 @@ mojom("mojom_platform") {
"push_messaging/push_messaging_status.mojom",
"quota/quota_manager_host.mojom",
"quota/quota_types.mojom",
- "referrer.mojom",
"renderer_preference_watcher.mojom",
"renderer_preferences.mojom",
"reporting/reporting.mojom",
@@ -153,6 +163,7 @@ mojom("mojom_platform") {
"speech/speech_recognition_result.mojom",
"speech/speech_recognizer.mojom",
"speech/speech_synthesis.mojom",
+ "storage_access/storage_access_automation.mojom",
"timing/performance_mark_or_measure.mojom",
"timing/resource_timing.mojom",
"timing/worker_timing_container.mojom",
@@ -166,6 +177,10 @@ mojom("mojom_platform") {
"webdatabase/web_database.mojom",
"websockets/websocket_connector.mojom",
"webtransport/quic_transport_connector.mojom",
+ "widget/device_emulation_params.mojom",
+ "widget/screen_info.mojom",
+ "widget/screen_orientation.mojom",
+ "widget/visual_properties.mojom",
"window_features/window_features.mojom",
"worker/shared_worker_client.mojom",
"worker/shared_worker_creation_context_type.mojom",
@@ -177,13 +192,6 @@ mojom("mojom_platform") {
"worker/worker_options.mojom",
]
- if (is_android) {
- # TODO(crbug.com/1080903): Figure out how to satisfy deps checker properly.
- enable_bytecode_checks = false
- } else {
- sources += [ "serial/serial.mojom" ]
- }
-
if (is_win) {
sources += [ "dwrite_font_proxy/dwrite_font_proxy.mojom" ]
}
@@ -214,9 +222,11 @@ mojom("mojom_platform") {
"//third_party/blink/public/mojom/dom_storage",
"//third_party/blink/public/mojom/frame",
"//third_party/blink/public/mojom/gpu",
+ "//third_party/blink/public/mojom/tokens",
"//third_party/blink/public/mojom/usb",
"//ui/base/cursor/mojom",
"//ui/base/ime/mojom",
+ "//ui/base/mojom/",
"//ui/display/mojom",
"//ui/events/mojom",
"//ui/gfx/geometry/mojom",
@@ -226,8 +236,21 @@ mojom("mojom_platform") {
"//url/mojom:url_mojom_origin",
]
+ if (is_android) {
+ # Direct deps (instead of transitive deps) are necessary for java targets.
+ public_deps += [
+ "//services/network/public/mojom:cookies_mojom",
+ "//ui/latency/mojom",
+ ]
+ } else {
+ sources += [ "serial/serial.mojom" ]
+ }
+
if (is_mac) {
- public_deps += [ "//ui/gfx/range/mojom" ]
+ public_deps += [
+ "//ui/base/mojom",
+ "//ui/gfx/range/mojom",
+ ]
}
# iOS doesn't use and must not depend on //media
@@ -238,8 +261,12 @@ mojom("mojom_platform") {
]
}
+ enabled_features = []
if (is_linux || is_chromeos) {
- enabled_features = [ "renderer_pref_system_font_family_name" ]
+ enabled_features += [ "renderer_pref_system_font_family_name" ]
+ }
+ if (use_x11 || use_ozone) {
+ enabled_features += [ "is_selection_clipboard_buffer_possible" ]
}
shared_cpp_typemaps = [
@@ -270,6 +297,101 @@ mojom("mojom_platform") {
]
traits_headers = [ "//third_party/blink/public/common/input/web_coalesced_input_event_mojom_traits.h" ]
},
+ {
+ types = [
+ {
+ mojom = "blink.mojom.ParsedFeaturePolicyDeclaration"
+ cpp = "::blink::ParsedFeaturePolicyDeclaration"
+ },
+ ]
+ traits_headers = [ "//third_party/blink/public/common/feature_policy/feature_policy_forward.h" ]
+ traits_private_headers = [ "//third_party/blink/common/feature_policy/feature_policy_mojom_traits.h" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.FramePolicy"
+ cpp = "::blink::FramePolicy"
+ },
+ ]
+ traits_headers =
+ [ "//third_party/blink/common/frame/frame_policy_mojom_traits.h" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.MediaDeviceType"
+ cpp = "::blink::MediaDeviceType"
+ },
+ {
+ mojom = "blink.mojom.MediaDeviceInfo"
+ cpp = "::blink::WebMediaDeviceInfo"
+ },
+ {
+ mojom = "blink.mojom.FacingMode"
+ cpp = "::media::VideoFacingMode"
+ },
+ ]
+ traits_headers = [ "//third_party/blink/public/common/mediastream/media_devices_mojom_traits.h" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.MediaStreamDevice"
+ cpp = "::blink::MediaStreamDevice"
+ },
+ {
+ mojom = "blink.mojom.StreamControls"
+ cpp = "::blink::StreamControls"
+ },
+ {
+ mojom = "blink.mojom.TrackControls"
+ cpp = "::blink::TrackControls"
+ },
+ ]
+ traits_headers = [ "//third_party/blink/public/common/mediastream/media_stream_mojom_traits.h" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.ScreenInfo"
+ cpp = "::blink::ScreenInfo"
+ },
+ ]
+ traits_headers = [
+ "//third_party/blink/public/common/widget/screen_info_mojom_traits.h",
+ ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.VisualProperties"
+ cpp = "::blink::VisualProperties"
+ },
+ ]
+ traits_headers = [ "//third_party/blink/public/common/widget/visual_properties_mojom_traits.h" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.DeviceEmulationParams"
+ cpp = "::blink::DeviceEmulationParams"
+ },
+ ]
+ traits_headers = [ "//third_party/blink/public/common/widget/device_emulation_params_mojom_traits.h" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.URLLoaderFactoryBundle"
+ cpp = "::std::unique_ptr<::blink::PendingURLLoaderFactoryBundle>"
+ nullable_is_same_type = true
+ move_only = true
+ },
+ ]
+ traits_headers = [ "//third_party/blink/public/common/loader/url_loader_factory_bundle_mojom_traits.h" ]
+ traits_public_deps = [ "//url/mojom:mojom_traits" ]
+ },
]
cpp_typemaps = [
{
@@ -282,9 +404,173 @@ mojom("mojom_platform") {
traits_headers = [ "//ui/base/mojom/clipboard_blink_mojom_traits.h" ]
traits_public_deps = [ "//ui/base/clipboard:clipboard_types" ]
},
+ {
+ types = [
+ {
+ mojom = "blink.mojom.FetchAPIDataElement"
+ cpp = "::network::DataElement"
+ move_only = true
+ },
+ {
+ mojom = "blink.mojom.FetchAPIRequestBody"
+ cpp = "::scoped_refptr<::network::ResourceRequestBody>"
+ nullable_is_same_type = true
+ copyable_pass_by_value = true
+ },
+ ]
+ traits_headers = [ "//third_party/blink/public/common/fetch/fetch_api_request_body_mojom_traits.h" ]
+ traits_public_deps = [
+ "//base",
+ "//services/network/public/cpp:cpp_base",
+ ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.FetchAPIRequestHeaders"
+ cpp = "::blink::FetchAPIRequestHeadersMap"
+ move_only = true
+ },
+ ]
+ traits_headers = [ "//third_party/blink/public/common/fetch/fetch_api_request_headers_mojom_traits.h" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.Manifest"
+ cpp = "::blink::Manifest"
+ nullable_is_same_type = true
+ },
+
+ {
+ mojom = "blink.mojom.ManifestImageResource"
+ cpp = "::blink::Manifest::ImageResource"
+ },
+
+ {
+ mojom = "blink.mojom.ManifestRelatedApplication"
+ cpp = "::blink::Manifest::RelatedApplication"
+ },
+
+ {
+ mojom = "blink.mojom.ManifestShareTarget"
+ cpp = "::blink::Manifest::ShareTarget"
+ },
+
+ {
+ mojom = "blink.mojom.ManifestShortcutItem"
+ cpp = "::blink::Manifest::ShortcutItem"
+ },
+ ]
+ traits_headers = [
+ "//third_party/blink/public/common/manifest/manifest.h",
+ "//third_party/blink/public/common/common_export.h",
+ ]
+ traits_private_headers = [
+ "//third_party/blink/public/common/manifest/manifest_mojom_traits.h",
+ ]
+ traits_sources =
+ [ "//third_party/blink/common/manifest/manifest_mojom_traits.cc" ]
+ traits_deps = [ "//ui/gfx/geometry/mojom:mojom_traits" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.NotificationData"
+ cpp = "::blink::PlatformNotificationData"
+ },
+
+ {
+ mojom = "blink.mojom.NotificationResources"
+ cpp = "::blink::NotificationResources"
+ },
+ ]
+ traits_headers = [ "//third_party/blink/public/common/notifications/notification_mojom_traits.h" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.DeviceThermalState"
+ cpp = "::base::PowerObserver::DeviceThermalState"
+ },
+ ]
+ traits_headers = [ "//third_party/blink/public/common/peerconnection/peer_connection_tracker_mojom_traits.h" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.PolicyValue"
+ cpp = "::blink::PolicyValue"
+ },
+ ]
+ traits_headers = [
+ "//third_party/blink/common/feature_policy/policy_value_mojom_traits.h",
+ ]
+ traits_sources = [ "//third_party/blink/common/feature_policy/policy_value_mojom_traits.cc" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.UserAgentBrandVersion"
+ cpp = "::blink::UserAgentBrandVersion"
+ },
+
+ {
+ mojom = "blink.mojom.UserAgentMetadata"
+ cpp = "::blink::UserAgentMetadata"
+ },
+
+ {
+ mojom = "blink.mojom.UserAgentOverride"
+ cpp = "::blink::UserAgentOverride"
+ },
+ ]
+ traits_headers = [ "//third_party/blink/public/common/user_agent/user_agent_mojom_traits.h" ]
+
+ traits_sources =
+ [ "//third_party/blink/common/user_agent/user_agent_mojom_traits.cc" ]
+ },
+ ]
+ blink_cpp_typemaps = [
+ {
+ types = [
+ {
+ mojom = "blink.mojom.DragData"
+ cpp = "::blink::WebDragData"
+ },
+ ]
+ traits_headers =
+ [ "//third_party/blink/renderer/platform/mojo/drag_mojom_traits.h" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.FetchAPIRequestBody"
+ cpp = "::blink::ResourceRequestBody"
+ nullable_is_same_type = true
+ move_only = true
+ },
+ ]
+ traits_headers = [
+ "//third_party/blink/renderer/platform/loader/fetch/resource_request.h",
+ ]
+ traits_private_headers = [ "//third_party/blink/renderer/platform/loader/fetch/fetch_api_request_body_mojom_traits.h" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.FetchAPIRequestHeaders"
+ cpp =
+ "::WTF::HashMap<::WTF::String, WTF::String, WTF::CaseFoldingHash>"
+ move_only = true
+ },
+ ]
+ traits_headers = [ "//third_party/blink/renderer/platform/mojo/fetch_api_request_headers_mojom_traits.h" ]
+ traits_public_deps = [ "//third_party/blink/renderer/platform/wtf" ]
+ },
]
cpp_typemaps += shared_cpp_typemaps
- blink_cpp_typemaps = shared_cpp_typemaps
+ blink_cpp_typemaps += shared_cpp_typemaps
export_class_attribute = "BLINK_COMMON_EXPORT"
export_define = "BLINK_COMMON_IMPLEMENTATION=1"
@@ -309,6 +595,7 @@ mojom("android_mojo_bindings") {
"blob/blob_url_store.mojom",
"blob/data_element.mojom",
"blob/serialized_blob.mojom",
+ "digital_goods/digital_goods.mojom",
"document_metadata/document_metadata.mojom",
"font_unique_name_lookup/font_unique_name_lookup.mojom",
"input/input_host.mojom",
@@ -323,9 +610,6 @@ mojom("android_mojo_bindings") {
"webshare/webshare.mojom",
]
- if (is_android) {
- sources += [ "remote_objects/remote_objects.mojom" ]
- }
public_deps = [
"//components/payments/mojom",
"//components/schema_org/common:mojom",
@@ -336,12 +620,32 @@ mojom("android_mojo_bindings") {
"//url/mojom:url_mojom_origin",
]
+ if (is_android) {
+ sources += [ "remote_objects/remote_objects.mojom" ]
+
+ # Direct deps (instead of transitive deps) are necessary for java targets.
+ public_deps += [ "//services/network/public/mojom:data_pipe_interfaces" ]
+ }
+
# This Android unhandled-tap feature uses another mojo source, add it in.
if (enable_unhandled_tap) {
sources += [ "unhandled_tap_notifier/unhandled_tap_notifier.mojom" ]
public_deps += [ "//ui/gfx/geometry/mojom" ]
}
+ blink_cpp_typemaps = [
+ {
+ types = [
+ {
+ mojom = "blink.mojom.SerializedBlob"
+ cpp = "::scoped_refptr<::blink::BlobDataHandle>"
+ nullable_is_same_type = true
+ },
+ ]
+ traits_headers = [ "//third_party/blink/renderer/platform/blob/serialized_blob_mojom_traits.h" ]
+ },
+ ]
+
export_class_attribute = "BLINK_COMMON_EXPORT"
export_define = "BLINK_COMMON_IMPLEMENTATION=1"
export_header = "third_party/blink/public/common/common_export.h"
@@ -423,13 +727,99 @@ mojom("mojom_core") {
]
if (is_android) {
- # TODO(crbug.com/1080903): Figure out how to satisfy deps checker properly.
- enable_bytecode_checks = false
+ # Direct deps (instead of transitive deps) are necessary for java targets.
+ public_deps += [
+ "//services/data_decoder/public/mojom:mojom_resource_snapshot_for_web_bundle",
+ "//services/network/public/mojom:cookies_mojom",
+ "//third_party/blink/public/mojom/frame",
+ "//third_party/blink/public/mojom/tokens",
+ "//ui/events/mojom",
+ ]
}
if (is_mac) {
- public_deps += [ "//ui/gfx/range/mojom" ]
+ public_deps += [
+ "//ui/base/mojom",
+ "//ui/gfx/range/mojom",
+ ]
}
+ shared_cpp_typemaps = [
+ {
+ types = [
+ {
+ mojom = "blink.mojom.MessagePortDescriptor"
+ cpp = "::blink::MessagePortDescriptor"
+ move_only = true
+ },
+ ]
+ traits_headers = [ "//third_party/blink/public/common/messaging/message_port_descriptor_mojom_traits.h" ]
+ },
+ ]
+
+ cpp_typemaps = [
+ {
+ types = [
+ {
+ mojom = "blink.mojom.CloneableMessage"
+ cpp = "::blink::CloneableMessage"
+ move_only = true
+ },
+ ]
+ traits_headers =
+ [ "//third_party/blink/public/common/messaging/cloneable_message.h" ]
+ traits_private_headers = [ "//third_party/blink/public/common/messaging/cloneable_message_mojom_traits.h" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.TransferableMessage"
+ cpp = "::blink::TransferableMessage"
+ move_only = true
+ },
+ ]
+ traits_headers = [
+ "//third_party/blink/public/common/messaging/transferable_message.h",
+ "//third_party/blink/public/common/messaging/message_port_channel.h",
+ ]
+ traits_private_headers = [ "//third_party/blink/public/common/messaging/transferable_message_mojom_traits.h" ]
+ },
+ ]
+ cpp_typemaps += shared_cpp_typemaps
+
+ blink_cpp_typemaps = [
+ {
+ types = [
+ {
+ mojom = "blink.mojom.CloneableMessage"
+ cpp = "::blink::BlinkCloneableMessage"
+ move_only = true
+ },
+ ]
+ traits_headers = [ "//third_party/blink/renderer/core/messaging/blink_cloneable_message_mojom_traits.h" ]
+ traits_public_deps = [ "//third_party/blink/public/common" ]
+ },
+ {
+ types = [
+ {
+ mojom = "blink.mojom.TransferableMessage"
+ cpp = "::blink::BlinkTransferableMessage"
+ move_only = true
+ },
+ {
+ mojom = "blink.mojom.SerializedArrayBufferContents"
+ cpp = "::blink::ArrayBufferContents"
+ move_only = true
+ },
+ ]
+ traits_headers = [ "//third_party/blink/renderer/core/messaging/blink_transferable_message_mojom_traits.h" ]
+ traits_public_deps = [
+ "//third_party/blink/public/common",
+ "//third_party/blink/renderer/platform/wtf",
+ ]
+ },
+ ]
+ blink_cpp_typemaps += shared_cpp_typemaps
+
overridden_deps_blink = [
":android_mojo_bindings",
":mojom_platform",
@@ -471,6 +861,109 @@ mojom("mojom_modules") {
export_class_attribute_blink = "MODULES_EXPORT"
export_define_blink = "BLINK_MODULES_IMPLEMENTATION=1"
export_header_blink = "third_party/blink/renderer/modules/modules_export.h"
+
+ blink_cpp_typemaps = [
+ {
+ types = [
+ {
+ mojom = "blink.mojom.IDBDatabaseMetadata"
+ cpp = "::blink::IDBDatabaseMetadata"
+ },
+
+ {
+ mojom = "blink.mojom.IDBIndexKeys"
+ cpp = "::blink::IDBIndexKeys"
+ move_only = true
+ },
+
+ {
+ mojom = "blink.mojom.IDBIndexMetadata"
+ cpp = "::scoped_refptr<::blink::IDBIndexMetadata>"
+ },
+
+ {
+ mojom = "blink.mojom.IDBKey"
+ cpp = "::std::unique_ptr<::blink::IDBKey>"
+ move_only = true
+ },
+
+ {
+ mojom = "blink.mojom.IDBKeyPath"
+ cpp = "::blink::IDBKeyPath"
+ },
+
+ {
+ mojom = "blink.mojom.IDBObjectStoreMetadata"
+ cpp = "::scoped_refptr<::blink::IDBObjectStoreMetadata>"
+ },
+
+ {
+ mojom = "blink.mojom.IDBValue"
+ cpp = "::std::unique_ptr<::blink::IDBValue>"
+ move_only = true
+ },
+ ]
+ traits_private_headers = [ "//third_party/blink/renderer/modules/indexeddb/indexed_db_blink_mojom_traits.h" ]
+ traits_headers = [
+ "//third_party/blink/public/common/indexeddb/web_idb_types.h",
+ "//third_party/blink/renderer/modules/indexeddb/idb_key_path.h",
+ "//third_party/blink/renderer/modules/indexeddb/idb_key_range.h",
+ "//third_party/blink/renderer/modules/indexeddb/idb_metadata.h",
+ "//third_party/blink/renderer/modules/indexeddb/idb_name_and_version.h",
+ "//third_party/blink/renderer/modules/indexeddb/idb_value.h",
+ ]
+ traits_deps = [ "//third_party/blink/renderer/platform/wtf" ]
+ },
+ ]
+
+ cpp_typemaps = [
+ {
+ types = [
+ {
+ mojom = "blink.mojom.IDBDatabaseMetadata"
+ cpp = "::blink::IndexedDBDatabaseMetadata"
+ },
+
+ {
+ mojom = "blink.mojom.IDBIndexKeys"
+ cpp = "::blink::IndexedDBIndexKeys"
+ },
+
+ {
+ mojom = "blink.mojom.IDBIndexMetadata"
+ cpp = "::blink::IndexedDBIndexMetadata"
+ },
+
+ {
+ mojom = "blink.mojom.IDBKey"
+ cpp = "::blink::IndexedDBKey"
+ },
+
+ {
+ mojom = "blink.mojom.IDBKeyPath"
+ cpp = "::blink::IndexedDBKeyPath"
+ },
+
+ {
+ mojom = "blink.mojom.IDBKeyRange"
+ cpp = "::blink::IndexedDBKeyRange"
+ },
+
+ {
+ mojom = "blink.mojom.IDBObjectStoreMetadata"
+ cpp = "::blink::IndexedDBObjectStoreMetadata"
+ },
+ ]
+ traits_headers = [
+ "//third_party/blink/public/common/indexeddb/indexeddb_key.h",
+ "//third_party/blink/public/common/indexeddb/indexeddb_key_path.h",
+ "//third_party/blink/public/common/indexeddb/indexeddb_key_range.h",
+ "//third_party/blink/public/common/indexeddb/indexeddb_metadata.h",
+ "//third_party/blink/public/common/indexeddb/web_idb_types.h",
+ ]
+ traits_private_headers = [ "//third_party/blink/public/common/indexeddb/indexed_db_default_mojom_traits.h" ]
+ },
+ ]
}
mojom("web_bluetooth_mojo_bindings") {
@@ -491,6 +984,38 @@ mojom("web_bluetooth_mojo_bindings") {
public_deps = [ "//device/bluetooth/public/mojom" ]
+ blink_cpp_typemaps = [
+ {
+ types = [
+ {
+ mojom = "blink.mojom.WebBluetoothDeviceId"
+ cpp = "::WTF::String"
+ },
+ {
+ mojom = "bluetooth.mojom.UUID"
+ cpp = "::WTF::String"
+ nullable_is_same_type = true
+ },
+ ]
+ traits_headers = [
+ "//third_party/blink/renderer/platform/mojo/bluetooth_mojom_traits.h",
+ ]
+ traits_public_deps = [ "//device/bluetooth" ]
+ },
+ ]
+
+ cpp_typemaps = [
+ {
+ types = [
+ {
+ mojom = "blink.mojom.WebBluetoothDeviceId"
+ cpp = "::blink::WebBluetoothDeviceId"
+ },
+ ]
+ traits_headers = [ "//third_party/blink/public/common/bluetooth/web_bluetooth_device_id_mojom_traits.h" ]
+ },
+ ]
+
# The chromium variant must be linked with content and use the same export
# settings in component build because of the WebBluetoothDeviceId typemap
# inside content.
diff --git a/chromium/third_party/blink/public/mojom/blob/blob.mojom b/chromium/third_party/blink/public/mojom/blob/blob.mojom
index 310e4560833..6aea8a00c39 100644
--- a/chromium/third_party/blink/public/mojom/blob/blob.mojom
+++ b/chromium/third_party/blink/public/mojom/blob/blob.mojom
@@ -8,6 +8,7 @@ import "mojo/public/mojom/base/big_buffer.mojom";
import "mojo/public/mojom/base/time.mojom";
import "services/network/public/mojom/data_pipe_getter.mojom";
import "services/network/public/mojom/http_request_headers.mojom";
+import "services/network/public/mojom/url_loader.mojom";
// Interface that can be implemented to be informed of certain information while
// reading the data for a blob.
@@ -49,6 +50,15 @@ interface Blob {
ReadRange(uint64 offset, uint64 length, handle<data_pipe_producer> pipe,
pending_remote<BlobReaderClient>? client);
+ // Provides a response to a request for a blob: URL to a URLLoaderClient.
+ // This takes into account optional Range request headers, but otherwise
+ // ignores the headers. Also verifies the |request_method| is a supported
+ // http request method for blob: URLs, and replies with an error if not.
+ Load(pending_receiver<network.mojom.URLLoader> loader,
+ string request_method,
+ network.mojom.HttpRequestHeaders headers,
+ pending_remote<network.mojom.URLLoaderClient> client);
+
// Reads the side-data (if any) associated with this blob. This is the same
// data that would be passed to OnReceivedCachedMetadata if you were reading
// this blob through a blob URL.
diff --git a/chromium/third_party/blink/public/mojom/bluetooth/bluetooth.typemap b/chromium/third_party/blink/public/mojom/bluetooth/bluetooth.typemap
deleted file mode 100644
index 01bcc5a92e7..00000000000
--- a/chromium/third_party/blink/public/mojom/bluetooth/bluetooth.typemap
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom"
-public_headers =
- [ "//third_party/blink/renderer/platform/wtf/text/wtf_string.h" ]
-traits_headers =
- [ "//third_party/blink/renderer/platform/mojo/bluetooth_mojom_traits.h" ]
-deps = [
- "//device/bluetooth",
-]
-type_mappings = [
- "blink.mojom.WebBluetoothDeviceId=::WTF::String",
- "bluetooth.mojom.UUID=::WTF::String[nullable_is_same_type]",
-]
diff --git a/chromium/third_party/blink/public/mojom/devtools/inspector_issue.mojom b/chromium/third_party/blink/public/mojom/devtools/inspector_issue.mojom
index bcf01f02c17..deb59e24f97 100644
--- a/chromium/third_party/blink/public/mojom/devtools/inspector_issue.mojom
+++ b/chromium/third_party/blink/public/mojom/devtools/inspector_issue.mojom
@@ -7,6 +7,7 @@ module blink.mojom;
import "url/mojom/url.mojom";
import "services/network/public/mojom/cookie_manager.mojom";
import "services/network/public/mojom/blocked_by_response_reason.mojom";
+import "services/network/public/mojom/source_location.mojom";
import "third_party/blink/public/mojom/fetch/fetch_api_request.mojom";
// A code that uniquely identifies an issue. This type should be descriptive
@@ -15,6 +16,7 @@ enum InspectorIssueCode {
kSameSiteCookieIssue,
kMixedContentIssue,
kBlockedByResponseIssue,
+ kContentSecurityPolicyIssue,
};
// Information about a cookie that is affected by an issue.
@@ -35,7 +37,8 @@ struct AffectedFrame {
struct BlockedByResponseIssueDetails {
AffectedRequest request;
- AffectedFrame? frame;
+ AffectedFrame? parentFrame;
+ AffectedFrame? blockedFrame;
network.mojom.BlockedByResponseReason reason;
};
@@ -65,6 +68,24 @@ struct MixedContentIssueDetails {
AffectedFrame? frame;
};
+enum ContentSecurityPolicyViolationType {
+ kInlineViolation,
+ kEvalViolation,
+ kURLViolation,
+ kTrustedTypesSinkViolation,
+ kTrustedTypesPolicyViolation,
+};
+
+struct ContentSecurityPolicyIssueDetails {
+ url.mojom.Url? blocked_url;
+ string violated_directive;
+ ContentSecurityPolicyViolationType content_security_policy_violation_type;
+ AffectedFrame? frame_ancestor;
+ network.mojom.SourceLocation? source_location;
+ // 0 is not a valid node id and is used to indicate absence.
+ int32 violating_node_id = 0;
+};
+
enum SameSiteCookieOperation {
kSetCookie, kReadCookie
};
@@ -72,6 +93,8 @@ enum SameSiteCookieOperation {
enum SameSiteCookieExclusionReason {
kExcludeSameSiteUnspecifiedTreatedAsLax,
kExcludeSameSiteNoneInsecure,
+ kExcludeSameSiteLax,
+ kExcludeSameSiteStrict,
};
enum SameSiteCookieWarningReason {
@@ -102,6 +125,7 @@ struct InspectorIssueDetails {
SameSiteCookieIssueDetails? samesite_cookie_issue_details;
MixedContentIssueDetails? mixed_content_issue_details;
BlockedByResponseIssueDetails? blocked_by_response_issue_details;
+ ContentSecurityPolicyIssueDetails? csp_issue_details;
};
struct InspectorIssueInfo {
diff --git a/chromium/third_party/blink/public/mojom/digital_goods/digital_goods.mojom b/chromium/third_party/blink/public/mojom/digital_goods/digital_goods.mojom
index ef162acb427..3e38bbac144 100644
--- a/chromium/third_party/blink/public/mojom/digital_goods/digital_goods.mojom
+++ b/chromium/third_party/blink/public/mojom/digital_goods/digital_goods.mojom
@@ -8,22 +8,19 @@ import "components/payments/mojom/payment_request_data.mojom";
// https://github.com/WICG/digital-goods/blob/master/explainer.md
-struct GetDetailsParams {
- array<string> item_ids;
-};
-
-struct GetDetailsResponse {
- BillingResponseCode code;
- array<ItemDetails> item_details_list;
-};
-
-struct ConsumeParams {
- string purchase_token;
- bool make_available_again;
-};
-
-struct ConsumeResponse {
- BillingResponseCode code;
+// Allow the renderer to talk to an associated digital goods backend.
+interface DigitalGoods {
+ // Queries the associated backend for information about one or more items.
+ GetDetails(array<string> item_ids)
+ => (BillingResponseCode code, array<ItemDetails> item_details_list);
+
+ // Informs the associated backend that the purchase identified by
+ // |purchase_token| was successfully acknowledged. If |make_available_again|
+ // is true, indicates that the purchase is repeatable (e.g. a consumable
+ // item). If it is false, indicates that the purchase is one-off (e.g. a
+ // permanent upgrade).
+ Acknowledge(string purchase_token, bool make_available_again)
+ => (BillingResponseCode code);
};
// TODO(crbug.com/1061503): Narrow down this list as discussions settle on
@@ -31,15 +28,11 @@ struct ConsumeResponse {
enum BillingResponseCode {
kOk,
kError,
- kBillingUnavailable,
- kDeveloperError,
- kFeatureNotSupported,
kItemAlreadyOwned,
kItemNotOwned,
kItemUnavailable,
- kServiceDisconnected,
- kServiceUnavailable,
- kUserCancelled,
+ kClientAppUnavailable,
+ kClientAppError,
};
struct ItemDetails {
diff --git a/chromium/third_party/blink/public/mojom/feature_policy/PRESUBMIT.py b/chromium/third_party/blink/public/mojom/feature_policy/PRESUBMIT.py
index 416880058cc..b7bd9de2619 100644
--- a/chromium/third_party/blink/public/mojom/feature_policy/PRESUBMIT.py
+++ b/chromium/third_party/blink/public/mojom/feature_policy/PRESUBMIT.py
@@ -131,7 +131,7 @@ def json5_config_checks_factory(mojom_source_path, json5_config_path,
mojom_messages = "{} are missing in mojom file.\n".format(
list(mojom_missing_enums)) if mojom_missing_enums else ""
- return [] if json5_enums == mojom_source_path else [
+ return [] if json5_enums == mojom_enums else [
output_api.PresubmitPromptWarning(
"{} and {} are out of sync: {}{}".format(
json5_config_path, mojom_source_path, json5_messages,
@@ -168,7 +168,7 @@ checks = [
'core', 'feature_policy',
'document_policy_features.json5'),
enum_name="DocumentPolicyFeature",
- ignore_enums={'Default'}),
+ ignore_enums=set()),
]
diff --git a/chromium/third_party/blink/public/mojom/feature_policy/document_policy_feature.mojom b/chromium/third_party/blink/public/mojom/feature_policy/document_policy_feature.mojom
index f388dc7d0bb..9277fe9e296 100644
--- a/chromium/third_party/blink/public/mojom/feature_policy/document_policy_feature.mojom
+++ b/chromium/third_party/blink/public/mojom/feature_policy/document_policy_feature.mojom
@@ -11,11 +11,11 @@ enum DocumentPolicyFeature {
kFontDisplay = 1,
// Takes a parameter, |bpp|, i.e. byte-per-pixel ratio, that images
// needs to obey.
- kUnoptimizedLosslessImages = 2,
+ kLosslessImagesMaxBpp = 2,
// Controls whether the browser should allow navigations that cause the page to scroll.
kForceLoadAtTop = 3,
- kUnoptimizedLosslessImagesStrict = 4,
+ kLosslessImagesStrictMaxBpp = 4,
kUnoptimizedLossyImages = 5,
// Takes a parameter, |scale_ratio|, and restricts source image sizes to be
// no more than |scale_ratio| x larger than the image's containing block.
diff --git a/chromium/third_party/blink/public/mojom/feature_policy/feature_policy.mojom b/chromium/third_party/blink/public/mojom/feature_policy/feature_policy.mojom
index 6bb2ccebe9b..1047f8b0765 100644
--- a/chromium/third_party/blink/public/mojom/feature_policy/feature_policy.mojom
+++ b/chromium/third_party/blink/public/mojom/feature_policy/feature_policy.mojom
@@ -14,6 +14,6 @@ import "third_party/blink/public/mojom/feature_policy/feature_policy_feature.moj
struct ParsedFeaturePolicyDeclaration {
FeaturePolicyFeature feature;
array<url.mojom.Origin> allowed_origins;
- bool fallback_value;
- bool opaque_value;
+ bool matches_all_origins;
+ bool matches_opaque_src;
};
diff --git a/chromium/third_party/blink/public/mojom/feature_policy/feature_policy_feature.mojom b/chromium/third_party/blink/public/mojom/feature_policy/feature_policy_feature.mojom
index aafba2e37d9..4a8a5053186 100644
--- a/chromium/third_party/blink/public/mojom/feature_policy/feature_policy_feature.mojom
+++ b/chromium/third_party/blink/public/mojom/feature_policy/feature_policy_feature.mojom
@@ -125,12 +125,21 @@ enum FeaturePolicyFeature {
// Client Hint for UA platform version.
kClientHintUAPlatformVersion = 74,
+ // cross-origin isolated permission
+ kCrossOriginIsolated = 75,
+
// Controls use of Clipboard API Read.
kClipboardRead = 76,
// Controls use of Clipboard API Write.
kClipboardWrite = 77,
+ // Controls use of Web Share API.
+ kWebShare = 78,
+
+ // Controls access to gamepads interface
+ kGamepad = 79,
+
// Don't change assigned numbers of any item, and don't reuse removed slots.
// Add new features at the end of the enum.
// Also, run update_feature_policy_enum.py in
diff --git a/chromium/third_party/blink/public/mojom/fetch/fetch_api_request.mojom b/chromium/third_party/blink/public/mojom/fetch/fetch_api_request.mojom
index 175bbf62810..f14316862af 100644
--- a/chromium/third_party/blink/public/mojom/fetch/fetch_api_request.mojom
+++ b/chromium/third_party/blink/public/mojom/fetch/fetch_api_request.mojom
@@ -14,7 +14,7 @@ import "services/network/public/mojom/fetch_api.mojom";
import "services/network/public/mojom/url_loader.mojom";
import "third_party/blink/public/mojom/blob/serialized_blob.mojom";
import "third_party/blink/public/mojom/loader/request_context_frame_type.mojom";
-import "third_party/blink/public/mojom/referrer.mojom";
+import "third_party/blink/public/mojom/loader/referrer.mojom";
import "url/mojom/url.mojom";
diff --git a/chromium/third_party/blink/public/mojom/fetch/fetch_api_response.mojom b/chromium/third_party/blink/public/mojom/fetch/fetch_api_response.mojom
index ec7f2752199..b4e4b9a0edb 100644
--- a/chromium/third_party/blink/public/mojom/fetch/fetch_api_response.mojom
+++ b/chromium/third_party/blink/public/mojom/fetch/fetch_api_response.mojom
@@ -46,6 +46,10 @@ struct FetchAPIResponse {
// The mime type of the response, if one has been set.
string? mime_type;
+ // The http request method used to load the response. May be unset for
+ // synthetic Response objects created via the constructor.
+ string? request_method;
+
// Mojo interface to read the response payload.
SerializedBlob? blob;
diff --git a/chromium/third_party/blink/public/mojom/font_access/OWNERS b/chromium/third_party/blink/public/mojom/font_access/OWNERS
new file mode 100644
index 00000000000..0467eaf740b
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/font_access/OWNERS
@@ -0,0 +1,7 @@
+file://content/browser/font_access/OWNERS
+
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
+
+# TEAM: storage-dev@chromium.org
+# COMPONENT: Blink>Storage>FontAccess \ No newline at end of file
diff --git a/chromium/third_party/blink/public/mojom/font_access/font_access.mojom b/chromium/third_party/blink/public/mojom/font_access/font_access.mojom
new file mode 100644
index 00000000000..f2a873f6024
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/font_access/font_access.mojom
@@ -0,0 +1,32 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "third_party/blink/public/mojom/permissions/permission_status.mojom";
+import "mojo/public/mojom/base/shared_memory.mojom";
+
+enum FontEnumerationStatus {
+ kOk,
+ // The functionality has not been implemented yet.
+ kUnimplemented,
+ // The service failed due to an unexpected error.
+ kUnexpectedError,
+ // The site doesn't have permission for the requested operation.
+ kPermissionDenied,
+};
+
+// Implemented in the browser process to pass font data to windows
+// and workers in renderer processes.
+// Provides methods related to enumerating locally installed fonts.
+interface FontAccessManager {
+ // Provides a permission request response. Used on Mac because fonts are
+ // enumerated in-renderer on that platform.
+ [EnableIf=is_mac]
+ RequestPermission() => (PermissionStatus status);
+
+ // Enumerate locally installed fonts. Results will be gated by a permission
+ // check.
+ EnumerateLocalFonts() => (FontEnumerationStatus enumeration_status, mojo_base.mojom.ReadOnlySharedMemoryRegion? enumeration_table);
+};
diff --git a/chromium/third_party/blink/public/mojom/frame/BUILD.gn b/chromium/third_party/blink/public/mojom/frame/BUILD.gn
index 5ff0fb0d05c..a2f9dd6ae63 100644
--- a/chromium/third_party/blink/public/mojom/frame/BUILD.gn
+++ b/chromium/third_party/blink/public/mojom/frame/BUILD.gn
@@ -16,6 +16,7 @@ mojom_component("frame") {
# TODO(crbug.com/1078875): Reorganize how we assign frame/*mojom files to
# mojom GN targets to match better the core/platform separation in C++.
sources = [
+ "back_forward_cache_controller.mojom",
"blocked_navigation_types.mojom",
"find_in_page.mojom",
"frame_owner_element_type.mojom",
@@ -26,6 +27,7 @@ mojom_component("frame") {
"reporting_observer.mojom",
"sudden_termination_disabler_type.mojom",
"tree_scope_type.mojom",
+ "user_activation_notification_type.mojom",
"user_activation_update_types.mojom",
]
diff --git a/chromium/third_party/blink/public/mojom/frame/back_forward_cache_controller.mojom b/chromium/third_party/blink/public/mojom/frame/back_forward_cache_controller.mojom
new file mode 100644
index 00000000000..7d30b07e3dc
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/frame/back_forward_cache_controller.mojom
@@ -0,0 +1,18 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+// This interface defines back-forward cache related methods that will be
+// invoked from the renderer process.
+//
+// Calls to any of the methods defined in this interface must be allowed while
+// the frame is in the back-forward cache. Calls to other (associated) interface
+// methods while the frame is in the back-forward cache are disallowed and may
+// trigger a renderer kill, depending on policy.
+interface BackForwardCacheControllerHost {
+ // Evicts the page from the back/forward cache due to e.g., JavaScript
+ // execution.
+ EvictFromBackForwardCache();
+};
diff --git a/chromium/third_party/blink/public/mojom/frame/frame.mojom b/chromium/third_party/blink/public/mojom/frame/frame.mojom
index 713eca26909..eb61d18ccfb 100644
--- a/chromium/third_party/blink/public/mojom/frame/frame.mojom
+++ b/chromium/third_party/blink/public/mojom/frame/frame.mojom
@@ -13,6 +13,7 @@ import "services/data_decoder/public/mojom/resource_snapshot_for_web_bundle.mojo
import "services/network/public/mojom/content_security_policy.mojom";
import "services/network/public/mojom/fetch_api.mojom";
import "services/network/public/mojom/web_sandbox_flags.mojom";
+import "services/network/public/mojom/cross_origin_opener_policy.mojom";
import "skia/public/mojom/skcolor.mojom";
import "third_party/blink/public/mojom/ad_tagging/ad_frame.mojom";
import "third_party/blink/public/mojom/blob/blob.mojom";
@@ -31,14 +32,17 @@ import "third_party/blink/public/mojom/frame/lifecycle.mojom";
import "third_party/blink/public/mojom/frame/media_player_action.mojom";
import "third_party/blink/public/mojom/frame/reporting_observer.mojom";
import "third_party/blink/public/mojom/frame/sudden_termination_disabler_type.mojom";
+import "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom";
import "third_party/blink/public/mojom/frame/user_activation_update_types.mojom";
import "third_party/blink/public/mojom/frame/frame_owner_properties.mojom";
import "third_party/blink/public/mojom/input/focus_type.mojom";
import "third_party/blink/public/mojom/input/scroll_direction.mojom";
+import "third_party/blink/public/mojom/loader/referrer.mojom";
+import "third_party/blink/public/mojom/portal/portal.mojom";
import "third_party/blink/public/mojom/scroll/scroll_into_view_params.mojom";
-import "third_party/blink/public/mojom/referrer.mojom";
-import "third_party/blink/public/mojom/timing/resource_timing.mojom";
import "third_party/blink/public/mojom/security_context/insecure_request_policy.mojom";
+import "third_party/blink/public/mojom/timing/resource_timing.mojom";
+import "third_party/blink/public/mojom/tokens/tokens.mojom";
import "third_party/blink/public/mojom/web_feature/web_feature.mojom";
import "ui/events/mojom/scroll_granularity.mojom";
import "ui/gfx/geometry/mojom/geometry.mojom";
@@ -48,6 +52,9 @@ import "url/mojom/url.mojom";
[EnableIf=is_mac]
import "ui/gfx/range/mojom/range.mojom";
+[EnableIf=is_mac]
+import "ui/base/mojom/attributed_string.mojom";
+
// Information about a subframe being saved as "complete html".
struct SavableSubframe {
// Original url of the subframe (i.e. based the parent's html sources).
@@ -111,7 +118,7 @@ enum PluginActionType {
const uint16 kMaxTitleChars = 4096; // 4 * 1024;
struct TextAutosizerPageInfo {
- // LocalFrame width in density-independent pixels.
+ // Frame width in density-independent pixels.
int32 main_frame_width;
// Layout width in CSS pixels.
@@ -133,7 +140,7 @@ interface LocalFrameHost {
// Returns either true if fullscreen is allowed to be entered, or false if the
// request to enter fullscreen was denied. Note that the actual transition to
// fullscreen will occur on the next visual update, when the next
- // WidgetMsg_UpdateVisualProperties is sent.
+ // Widget::UpdateVisualProperties is sent.
EnterFullscreen(FullscreenOptions options) => (bool granted);
// Request to the browser to exit fullscreen mode.
@@ -182,10 +189,6 @@ interface LocalFrameHost {
// behavior of 'shifting' the content via insets and a scrollIntoView).
SetVirtualKeyboardOverlayPolicy(bool vk_overlays_content);
- // Evicts the page from the back/forward cache due to e.g., JavaScript
- // execution.
- EvictFromBackForwardCache();
-
// Notifies the browser that the associated frame has changed its visibility
// status. Visibility status changes occur when the frame moves in/out
// of the viewport, or the need for a layout object changes, e.g. if the
@@ -195,9 +198,13 @@ interface LocalFrameHost {
// Notifies the browser that the associated frame has changed theme color.
// This will only be called on main-frames only. |theme_color| is optional
// and indicates if a theme color has been specified or not, e.g. removal
- // of a theme color meta tag will generate a null value.
+ // of a theme color meta tag will generate a null value.
DidChangeThemeColor(skia.mojom.SkColor? theme_color);
+ // Notifies the browser that the associated frame has changed its computed CSS
+ // background color. This will be called on main-frames only.
+ DidChangeBackgroundColor(skia.mojom.SkColor background_color);
+
// Sent when the renderer fails to load with |error_code| which means a net
// error code.
DidFailLoadWithError(url.mojom.Url url, int32 error_code);
@@ -295,7 +302,11 @@ interface LocalFrameHost {
// Indicates that the user activation state in the current frame has been
// updated, so the replicated states need to be synced (in the browser process
// as well as in all other renderer processes).
- UpdateUserActivationState(UserActivationUpdateType update_type);
+ //
+ // The |notification_type| parameter is used for histograms, only for the case
+ // |update_state == kNotifyActivation|.
+ UpdateUserActivationState(UserActivationUpdateType update_type,
+ UserActivationNotificationType notification_type);
// Provides accessibility information about a find in page result.
HandleAccessibilityFindInPageResult(FindInPageResultAXParams params);
@@ -355,7 +366,7 @@ interface LocalFrameHost {
// local root's view, and it will be an empty bounds if there is no focused
// element.
FocusedElementChanged(bool is_editable_element,
- gfx.mojom.Rect bounds_in_frame_widget);
+ gfx.mojom.Rect bounds_in_frame_widget, blink.mojom.FocusType focus_type);
// Show a popup menu using native controls on Mac or Android.
// The popup menu is hidden when the mojo channel is closed.
@@ -401,6 +412,23 @@ interface LocalFrameHost {
DidChangeFramePolicy(
mojo_base.mojom.UnguessableToken child_frame_token,
blink.mojom.FramePolicy frame_policy);
+
+ // Notifies the browser that the frame changed the 'csp' attribute
+ // of one of its child frames.
+ DidChangeCSPAttribute(
+ mojo_base.mojom.UnguessableToken child_frame_token,
+ network.mojom.ContentSecurityPolicy? parsed_csp_attribute);
+
+ // Sent by the renderer to request a paint preview of a subframe. |clip_rect|
+ // is the size of the frame in it's parent. |guid| is an an identifier for
+ // all the capture work (regardless of the process captures are happening in)
+ // that allows the results to be grouped together, even if there are multiple
+ // requests in-flight.
+ CapturePaintPreviewOfSubframe(
+ gfx.mojom.Rect clip_rect, mojo_base.mojom.UnguessableToken guid);
+
+ // Notifies the browser that a child frame is detached from the DOM.
+ Detach();
};
// Implemented in Blink, this interface defines frame-specific methods that will
@@ -560,6 +588,11 @@ interface LocalFrame {
[EnableIf=is_mac]
GetFirstRectForRange(gfx.mojom.Range range);
+ // Requests the text fragment in a given range.
+ [EnableIf=is_mac]
+ GetStringForRange(gfx.mojom.Range range)
+ => (ui.mojom.AttributedString? string, gfx.mojom.Point baseline_point);
+
// Binds |receiver| to the document of this frame.
BindReportingObserver(
pending_receiver<blink.mojom.ReportingObserver> receiver);
@@ -573,6 +606,26 @@ interface LocalFrame {
GetSavableResourceLinks() => (GetSavableResourceLinksReply? reply);
};
+// Also implemented in Blink, this interface defines frame-specific methods
+// that will be invoked from the browser process but processed at a higher
+// priority than methods invoked on the LocalFrame interface.
+//
+// Note this interface does not use legacy IPC channels and as such there are
+// no ordering guarantees for messages sent on this interface. This interface is
+// for experimental purposes.
+interface HighPriorityLocalFrame {
+
+ // Instructs the frame to invoke the beforeunload event handler.
+ //
+ // The closure callback is invoked to acknowledge the browser that
+ // the beforeunload event is handled. |proceed| matches the return value
+ // of the frame's beforeunload handler: true if the user decided to proceed
+ // with leaving the page.
+ DispatchBeforeUnload(bool is_reload)
+ => (bool proceed, mojo_base.mojom.TimeTicks before_unload_start_time,
+ mojo_base.mojom.TimeTicks before_unload_end_time);
+};
+
// Implemented in Browser, this interface defines frame-specific methods that
// will be invoked from the render process (e.g. blink::RemoteFrame).
//
@@ -650,6 +703,18 @@ interface RemoteFrameHost {
mojo_base.mojom.String16 source_origin,
mojo_base.mojom.String16 target_origin,
blink.mojom.TransferableMessage message);
+
+ // Ask the frame host to print a cross-process subframe.
+ // The printed content of this subframe belongs to the document specified by
+ // its document cookie. Document cookie is a unique id for a printed document
+ // associated with a print job.
+ // The content will be rendered in the specified rectangular area in its
+ // parent frame.
+ PrintCrossProcessSubframe(
+ gfx.mojom.Rect frame_content_rect, int32 document_cookie);
+
+ // Notifies the browser that a child frame is detached from the DOM.
+ Detach();
};
// Implemented in Blink, this interface defines frame-specific methods that will
@@ -665,7 +730,7 @@ interface RemoteFrame {
// in another process. Actually entering fullscreen will be done separately
// as part of ViewMsg_Resize, once the browser process has resized the tab for
// fullscreen.
- WillEnterFullscreen();
+ WillEnterFullscreen(FullscreenOptions options);
// Updates replicated ContentSecurityPolicy on the remote frame's
// SecurityContent.
@@ -703,6 +768,10 @@ interface RemoteFrame {
// be an ad frame.
SetReplicatedAdFrameType(blink.mojom.AdFrameType ad_frame_type);
+ // Sets the replicated name and unique name for the frame. Used when the
+ // name of a frame changes.
+ SetReplicatedName(string name, string unique_name);
+
// Sent to dispatch a load event in the frame's owner element.
// (eg. the iframe, portal, or object element).
DispatchLoadEventForFrameOwner();
@@ -734,7 +803,11 @@ interface RemoteFrame {
// Sent to the remote frame placeholder in the parent process to update the
// user activation state in appropriate part of the frame tree (ancestors for
// activation notification and all nodes for consumption).
- UpdateUserActivationState(blink.mojom.UserActivationUpdateType state_update_type);
+ //
+ // The |notification_type| parameter is used for histograms, only for the case
+ // |update_state == kNotifyActivation|.
+ UpdateUserActivationState(blink.mojom.UserActivationUpdateType state_update_type,
+ UserActivationNotificationType notification_type);
// Sent to the process that owns this frame's HTMLFrameOwnerElement to
// set the embedding token. This token uniquely specifies the relationship
@@ -783,10 +856,6 @@ interface RemoteFrame {
// Requests that the blink::RemoteFrame updates its opener to the specified
// frame. The frame token may be "empty" if the opener was disowned.
UpdateOpener(mojo_base.mojom.UnguessableToken? opener_frame_token);
-
- // Transfers user activation state from the source frame to the current frame.
- TransferUserActivationToRenderer(
- mojo_base.mojom.UnguessableToken source_frame_token);
};
// Implemented in Blink, this interface defines main-frame-specific methods that
@@ -822,6 +891,48 @@ interface LocalMainFrame {
// Sent to the main-frame to request performing a zoom-to-find-in-page
// based on the rect provided.
ZoomToFindInPageRect(gfx.mojom.Rect rect_in_root_frame);
+
+ // Cross-Origin-Opener-Policy(COOP):
+ // Check accesses made from this window to |accessed_window|. If this happens,
+ // a report will be sent to |reporter|.
+ InstallCoopAccessMonitor(
+ network.mojom.CoopAccessReportType report_type,
+ mojo_base.mojom.UnguessableToken accessed_window,
+ pending_remote<network.mojom.CrossOriginOpenerPolicyReporter> reporter);
+
+ // Called on the main frame of a page embedded in a Portal when it is
+ // activated. The frame has the option to adopt the previous page as a portal
+ // identified by |portal_token| with the interface |portal|. The activation
+ // can optionally include a message |data| dispatched with the
+ // PortalActivateEvent. The return value |was_adopted| indicates if the portal
+ // for the predecessor (identified by |portal_token|) was adopted by the
+ // current frame.
+ OnPortalActivated(
+ blink.mojom.PortalToken portal_token,
+ pending_associated_remote<blink.mojom.Portal> portal,
+ pending_associated_receiver<blink.mojom.PortalClient> portal_client,
+ blink.mojom.TransferableMessage data)
+ => (blink.mojom.PortalActivateResult result);
+
+ // Forwards a message from a portal's host to the main frame in the portal's
+ // guest contents.
+ ForwardMessageFromHost(blink.mojom.TransferableMessage message,
+ url.mojom.Origin source_origin,
+ url.mojom.Origin? target_origin);
+};
+
+// Implemented in Blink, this interface defines remote main-frame-specific
+// methods that will be invoked from the browser process (e.g.
+// content::RenderFrameProxyHost).
+//
+// There is only ever one remote main frame for a given tab in all renderer
+// processes.
+//
+// This interface will only be provided when the RemoteFrame is a main frame.
+interface RemoteMainFrame {
+ // Makes the TextAutosizerPageInfo received from a local main frame available
+ // to remote main frame renderers.
+ UpdateTextAutosizerPageInfo(blink.mojom.TextAutosizerPageInfo page_info);
};
// Implemented in Browser, this interface defines local-main-frame-specific
@@ -848,4 +959,8 @@ interface LocalMainFrameHost {
interface RemoteMainFrameHost {
// Asks the browser process to activate the page associated to the main frame.
FocusPage();
+
+ // Sent from an inactive renderer for the browser to route to the active
+ // renderer, instructing it to close.
+ RouteCloseEvent();
};
diff --git a/chromium/third_party/blink/public/mojom/frame/fullscreen.mojom b/chromium/third_party/blink/public/mojom/frame/fullscreen.mojom
index dfee43730e4..d70dba70336 100644
--- a/chromium/third_party/blink/public/mojom/frame/fullscreen.mojom
+++ b/chromium/third_party/blink/public/mojom/frame/fullscreen.mojom
@@ -12,5 +12,14 @@ struct FullscreenOptions {
// If the Window Placement experiment is enabled, fullscreen may be requested
// on a particular display. In that case, this is the requested display's id.
int64 display_id = -1;
+
+ // True if this should be treated as a "webkit"-prefixed fullscreen request.
+ // These don't return promises, and fire "webkit"-prefixed events.
+ bool is_prefixed = false;
+
+ // True if this fullscreen request is for WebXR DOM Overlay mode. In that case,
+ // if a subframe is requesting fullscreen mode, the parent frames need to use
+ // a transparent backdrop to keep content visible.
+ bool is_xr_overlay = false;
};
diff --git a/chromium/third_party/blink/public/mojom/frame/sudden_termination_disabler_type.mojom b/chromium/third_party/blink/public/mojom/frame/sudden_termination_disabler_type.mojom
index 649b3cb2818..33141af648e 100644
--- a/chromium/third_party/blink/public/mojom/frame/sudden_termination_disabler_type.mojom
+++ b/chromium/third_party/blink/public/mojom/frame/sudden_termination_disabler_type.mojom
@@ -8,5 +8,7 @@ module blink.mojom;
// renderer process may be prevented.
enum SuddenTerminationDisablerType {
kBeforeUnloadHandler,
- kUnloadHandler
+ kPageHideHandler,
+ kUnloadHandler,
+ kVisibilityChangeHandler
};
diff --git a/chromium/third_party/blink/public/mojom/frame/user_activation_notification_type.mojom b/chromium/third_party/blink/public/mojom/frame/user_activation_notification_type.mojom
new file mode 100644
index 00000000000..7e6f3b16f9a
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/frame/user_activation_notification_type.mojom
@@ -0,0 +1,51 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+// Types of user activation notification triggers. Used for histograms only.
+enum UserActivationNotificationType {
+
+ // This is used only as (temporary) default value parameters in activation
+ // notification related functions in intermediate CLs. This value would go
+ // away when the plumbing is complete.
+ kNone,
+
+ // A trusted user interaction caused the notification call.
+ kInteraction,
+
+ // A Devtools interaction caused the notification call.
+ kDevTools,
+
+ // An extension API event caused the notification call.
+ kExtensionEvent,
+
+ // An extension API caused the notification call through GuestView.
+ kExtensionGuestView,
+
+ // An extension messaging API caused the notification call.
+ kExtensionMessaging,
+
+ // A media API caused the notification call.
+ kMedia,
+
+ // An NFS API caused the notification call.
+ kNativeFileSystem,
+
+ // A plugin API caused the notification call.
+ kPlugin,
+
+ // A test API caused the notification call. This should not affect
+ // any histgrams in production but in the past we have seen (and
+ // sometimes fixed) some test APIs being accidentally used in
+ // production. We want to verify that there is no such callers
+ // left in our code.
+ kTest,
+
+ // A WebScriptExecutor instance caused the notification call.
+ kWebScriptExec,
+
+ // Android voice search API caused the notification call.
+ kVoiceSearch
+};
diff --git a/chromium/third_party/blink/public/mojom/hid/hid.mojom b/chromium/third_party/blink/public/mojom/hid/hid.mojom
index 75272a0354f..bb68311d025 100644
--- a/chromium/third_party/blink/public/mojom/hid/hid.mojom
+++ b/chromium/third_party/blink/public/mojom/hid/hid.mojom
@@ -73,7 +73,7 @@ struct HidDeviceFilter {
interface HidService {
// Registers a HidManagerClient to be notified when HID devices are added or
// removed.
- RegisterClient(associated device.mojom.HidManagerClient client);
+ RegisterClient(pending_associated_remote<device.mojom.HidManagerClient> client);
// Retrieves information about all devices that this client has permission to
// access.
diff --git a/chromium/third_party/blink/public/mojom/indexeddb/indexeddb.mojom b/chromium/third_party/blink/public/mojom/indexeddb/indexeddb.mojom
index 0a1c129ad23..166c4f8c081 100644
--- a/chromium/third_party/blink/public/mojom/indexeddb/indexeddb.mojom
+++ b/chromium/third_party/blink/public/mojom/indexeddb/indexeddb.mojom
@@ -19,6 +19,20 @@ const int32 kIDBMaxMessageSize = 134217728;
// the message we will send. The "usable" size is the max size less this value.
const int32 kIDBMaxMessageOverhead = 1048576; // 1MB; arbitrarily chosen.
+// Default threshold for IDBValueWrapper::WrapIfBiggerThan().
+//
+// This should be tuned to achieve a compromise between short-term IndexedDB
+// throughput and long-term I/O load and memory usage. LevelDB, the underlying
+// storage for IndexedDB, was not designed with large values in mind. At the
+// very least, large values will slow down compaction, causing occasional I/O
+// spikes.
+const int32 kIDBWrapThreshold = 65536;
+
+// To avoid GetAll returning too much data in one mojo message, it is returned
+// in chunks of keys or values. This constant is the max number of keys/values
+// returned per IDBDatabaseGetAllResultSink::Receive call.
+const int32 kIDBGetAllChunkSize = 1000;
+
enum IDBCursorDirection {
Next,
NextNoDuplicate,
@@ -324,6 +338,17 @@ union IDBTransactionPutResult {
IDBKey key;
};
+union IDBTransactionPutAllResult {
+ IDBError error_result; // |error| is reserved, so call this |error_result|.
+ array<IDBKey> keys;
+};
+
+struct IDBPutParams {
+ IDBValue value;
+ IDBKey key;
+ array<IDBIndexKeys> index_keys;
+};
+
interface IDBTransaction {
CreateObjectStore(int64 object_store_id,
mojo_base.mojom.String16 name,
@@ -336,6 +361,9 @@ interface IDBTransaction {
IDBPutMode mode,
array<IDBIndexKeys> index_keys)
=> (IDBTransactionPutResult result);
+ PutAll(int64 object_store_id,
+ array<IDBPutParams> put_params)
+ => (IDBTransactionPutAllResult result);
Commit(int64 num_errors_handled);
};
@@ -346,10 +374,20 @@ union IDBDatabaseGetResult {
IDBReturnValue value;
};
-union IDBDatabaseGetAllResult {
- IDBError error_result; // |error| is reserved, so call this |error_result|.
- IDBKey key;
- array<IDBReturnValue> values;
+// Result receiver type for GetAll to incrementally receive chunks of results.
+// When the mojo connection disconnects, this signals that all of the results
+// have been sent.
+interface IDBDatabaseGetAllResultSink {
+ // Incrementally receive some values.
+ ReceiveValues(array<IDBReturnValue> values);
+
+ // Incrementally receive some keys.
+ ReceiveKeys(array<IDBKey> keys);
+
+ // If any error occurs, call this function. Once this function has been
+ // called, ReceiveValues/ReceiveKeys should not be called again and
+ // the entire result should be considered an error.
+ OnError(IDBError error);
};
struct IDBDatabaseOpenCursorValue {
@@ -395,7 +433,7 @@ interface IDBDatabase {
IDBKeyRange key_range,
bool key_only,
int64 max_count)
- => (IDBDatabaseGetAllResult result);
+ => (pending_receiver<IDBDatabaseGetAllResultSink> receiver);
SetIndexKeys(int64 transaction_id,
int64 object_store_id,
IDBKey primary_key,
diff --git a/chromium/third_party/blink/public/mojom/input/input_handler.mojom b/chromium/third_party/blink/public/mojom/input/input_handler.mojom
index 8864e18d563..d893f30426e 100644
--- a/chromium/third_party/blink/public/mojom/input/input_handler.mojom
+++ b/chromium/third_party/blink/public/mojom/input/input_handler.mojom
@@ -245,6 +245,16 @@ interface WidgetInputHandlerHost {
// should be fetched via the associated interface request so that input calls
// remain in order. See https://goo.gl/x4ee8A for more details.
interface FrameWidgetInputHandler {
+ // Adds text decorations between a given valid start and end offsets in the
+ // currently focused editable field.
+ AddImeTextSpansToExistingText(
+ uint32 start, uint32 end, array<ui.mojom.ImeTextSpan> ime_text_spans);
+
+ // Clears text decorations type between a given valid start and end offsets
+ // in the currently focused editable field.
+ ClearImeTextSpansByType(
+ uint32 start, uint32 end, ui.mojom.ImeTextSpanType type);
+
// Sets the text composition to be between the given start and end offsets in
// the currently focused editable field.
SetCompositionFromExistingText(
diff --git a/chromium/third_party/blink/public/mojom/input/touch_event.mojom b/chromium/third_party/blink/public/mojom/input/touch_event.mojom
index 2f2dff9157f..72a8c92b107 100644
--- a/chromium/third_party/blink/public/mojom/input/touch_event.mojom
+++ b/chromium/third_party/blink/public/mojom/input/touch_event.mojom
@@ -15,3 +15,9 @@ enum TouchState {
kStateMax = kStateCancelled
};
+// Describes which touch event consumers are present in the renderer, for use in
+// touch action and touch event filtering.
+struct TouchEventConsumers {
+ bool has_touch_event_handlers;
+ bool has_hit_testable_scrollbar;
+};
diff --git a/chromium/third_party/blink/public/mojom/loader/content_security_notifier.mojom b/chromium/third_party/blink/public/mojom/loader/content_security_notifier.mojom
new file mode 100644
index 00000000000..240188c7d10
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/loader/content_security_notifier.mojom
@@ -0,0 +1,30 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "url/mojom/url.mojom";
+
+// Notifies an execution context host (RenderFrameHost or DedicatedWorkerHost)
+// of content security events (e.g., mixed contents, certificate errors)
+// happened on the execution context. Currently SharedWorkerHost and
+// ServiceWorkerHost don't bind this interface. See comments in
+// BrowserInterfaceBinders for details. This is typically implemented in the
+// browser process and called from renderers.
+interface ContentSecurityNotifier {
+ // Notifies that an active content (such as a script) that was loaded from a
+ // connection with certificate errors was ran.
+ NotifyContentWithCertificateErrorsRan();
+
+ // Notifies that an inactive content (such as an image) that was loaded from a
+ // connection with certificate errors was displayed.
+ NotifyContentWithCertificateErrorsDisplayed();
+
+ // Notifies that an embedded execution context with |origin| ran active
+ // content (such as a script) from an insecure source.
+ // TODO(nhiroki): Stop passing the origin, and instead take it from the
+ // execution context host.
+ NotifyInsecureContentRan(url.mojom.Url origin,
+ url.mojom.Url insecure_url);
+};
diff --git a/chromium/third_party/blink/public/mojom/loader/previews_resource_loading_hints.mojom b/chromium/third_party/blink/public/mojom/loader/previews_resource_loading_hints.mojom
index bc4c7689af6..ac066d0843a 100644
--- a/chromium/third_party/blink/public/mojom/loader/previews_resource_loading_hints.mojom
+++ b/chromium/third_party/blink/public/mojom/loader/previews_resource_loading_hints.mojom
@@ -5,6 +5,7 @@
module blink.mojom;
import "mojo/public/mojom/base/time.mojom";
+import "third_party/blink/public/mojom/optimization_guide/optimization_guide.mojom";
// Resource loading hints passed by the browser to renderers. Send at most once
// per page load from browser to renderer as part of a preview treatment. The
@@ -58,6 +59,10 @@ interface PreviewsResourceLoadingHintsReceiver {
// media/videos from the browser to renderers.
SetLiteVideoHint(LiteVideoHint lite_video_hint);
+ // Sends the hints for Blink.
+ // TODO(https://crbug.com/1113980): Move this to its own mojo plumbing.
+ SetBlinkOptimizationGuideHints(BlinkOptimizationGuideHints hints);
+
// Notifies the renderers that active media request throttles should be stopped
// and not allow any new throttles.
StopThrottlingMediaRequests();
diff --git a/chromium/third_party/blink/public/mojom/referrer.mojom b/chromium/third_party/blink/public/mojom/loader/referrer.mojom
index 8f3aba5ac0e..8f3aba5ac0e 100644
--- a/chromium/third_party/blink/public/mojom/referrer.mojom
+++ b/chromium/third_party/blink/public/mojom/loader/referrer.mojom
diff --git a/chromium/third_party/blink/public/mojom/loader/resource_load_info_notifier.mojom b/chromium/third_party/blink/public/mojom/loader/resource_load_info_notifier.mojom
new file mode 100644
index 00000000000..179071aba1c
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/loader/resource_load_info_notifier.mojom
@@ -0,0 +1,34 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "services/network/public/mojom/url_loader.mojom";
+import "services/network/public/mojom/url_response_head.mojom";
+import "third_party/blink/public/mojom/loader/resource_load_info.mojom";
+
+// This interface is used to notify loading stats of the resource.
+interface ResourceLoadInfoNotifier {
+ // Called to notify the request has been redirected.
+ NotifyResourceRedirectReceived(network.mojom.URLRequestRedirectInfo redirect_info,
+ network.mojom.URLResponseHead redirect_response);
+
+ // Called to notify the response has been received.
+ NotifyResourceResponseReceived(ResourceLoadInfo resource_load_info,
+ network.mojom.URLResponseHead head,
+ int32 previews_state);
+
+ // Called to notify the transfer size is updated.
+ NotifyResourceTransferSizeUpdated(int32 request_id, int32 transfer_size_diff);
+
+ // Called to notify the request has been completed.
+ NotifyResourceLoadCompleted(ResourceLoadInfo resource_load_info,
+ network.mojom.URLLoaderCompletionStatus status);
+
+ // Called to notify the request has been canceled.
+ NotifyResourceLoadCanceled(int32 request_id);
+
+ // Makes a new endpoint to this ResourceLoadInfoNotifier.
+ Clone(pending_receiver<ResourceLoadInfoNotifier> pending_resource_load_info_notifier);
+};
diff --git a/chromium/third_party/blink/public/mojom/loader/transferrable_url_loader.mojom b/chromium/third_party/blink/public/mojom/loader/transferrable_url_loader.mojom
new file mode 100644
index 00000000000..4c5c4d956e5
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/loader/transferrable_url_loader.mojom
@@ -0,0 +1,18 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "services/network/public/mojom/url_response_head.mojom";
+import "services/network/public/mojom/url_loader.mojom";
+import "url/mojom/url.mojom";
+
+// Used to transfer a URLLoader when after OnReceiveResponse() has been called
+// on the URLLoaderClient.
+struct TransferrableURLLoader {
+ url.mojom.Url url;
+ pending_remote<network.mojom.URLLoader> url_loader;
+ pending_receiver<network.mojom.URLLoaderClient> url_loader_client;
+ network.mojom.URLResponseHead head;
+};
diff --git a/chromium/third_party/blink/public/mojom/manifest/README.md b/chromium/third_party/blink/public/mojom/manifest/README.md
new file mode 100644
index 00000000000..025bf23a59a
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/manifest/README.md
@@ -0,0 +1,2 @@
+Please see blink/renderer/modules/manifest's [README
+file](../../../renderer/modules/manifest/README.md).
diff --git a/chromium/third_party/blink/public/mojom/manifest/manifest.mojom b/chromium/third_party/blink/public/mojom/manifest/manifest.mojom
index a14fa7ea7c3..65e41a53d70 100644
--- a/chromium/third_party/blink/public/mojom/manifest/manifest.mojom
+++ b/chromium/third_party/blink/public/mojom/manifest/manifest.mojom
@@ -24,6 +24,8 @@ struct Manifest {
DisplayMode display;
+ array<DisplayMode> display_override;
+
device.mojom.ScreenOrientationLockType orientation;
array<ManifestImageResource> icons;
@@ -87,7 +89,7 @@ struct ManifestShortcutItem {
struct ManifestImageResource {
enum Purpose {
ANY = 0,
- BADGE,
+ MONOCHROME,
MASKABLE,
};
diff --git a/chromium/third_party/blink/public/mojom/media/OWNERS b/chromium/third_party/blink/public/mojom/media/OWNERS
new file mode 100644
index 00000000000..94ab98ba38b
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/media/OWNERS
@@ -0,0 +1,4 @@
+file://content/common/media/OWNERS
+
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/chromium/third_party/blink/public/mojom/media/renderer_audio_input_stream_factory.mojom b/chromium/third_party/blink/public/mojom/media/renderer_audio_input_stream_factory.mojom
new file mode 100644
index 00000000000..9713cd2fff3
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/media/renderer_audio_input_stream_factory.mojom
@@ -0,0 +1,50 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "media/mojo/mojom/audio_data_pipe.mojom";
+import "media/mojo/mojom/audio_input_stream.mojom";
+import "media/mojo/mojom/audio_parameters.mojom";
+import "media/mojo/mojom/media_types.mojom";
+import "mojo/public/mojom/base/unguessable_token.mojom";
+
+// This interface is used by the renderer to ask the browser to create input
+// streams. The renderer supplies the desired audio parameters, and a client
+// to send the stream to when it's ready. The lifetime of the stream is limited
+// by the lifetime of the client.
+interface RendererAudioInputStreamFactory {
+ CreateStream(
+ pending_remote<RendererAudioInputStreamFactoryClient> client,
+ mojo_base.mojom.UnguessableToken session_id,
+ media.mojom.AudioParameters params,
+ bool automatic_gain_control,
+ uint32 shared_memory_count);
+
+ // Associates an output device with an input stream, so that the input knows
+ // which output device to cancel echo from. |input_stream_id| is the id
+ // returned when the stream was created. |output_device_id| is a device
+ // id HMAC. In case either of the parameters are invalid, the operation will
+ // silently fail.
+ AssociateInputAndOutputForAec(
+ mojo_base.mojom.UnguessableToken input_stream_id,
+ string output_device_id);
+};
+
+interface RendererAudioInputStreamFactoryClient {
+ // Called when a stream has been created. Will only be called once for every
+ // CreateStream call. |stream_id| is a handle used to refer to the stream,
+ // specifically to be able to associate it with an output device for echo
+ // cancellation. Loopback streams don't have ids.
+ // TODO(crbug.com/787806): There are plans to allow this function to be called
+ // serveral times in the future. If the stream is terminated e.g. due to the
+ // process hosting it crashing, this function should be called again with a
+ // fresh stream.
+ StreamCreated(
+ pending_remote<media.mojom.AudioInputStream> stream,
+ pending_receiver<media.mojom.AudioInputStreamClient> client_request,
+ media.mojom.ReadOnlyAudioDataPipe data_pipe,
+ bool initially_muted,
+ mojo_base.mojom.UnguessableToken? stream_id);
+};
diff --git a/chromium/third_party/blink/public/mojom/media/renderer_audio_output_stream_factory.mojom b/chromium/third_party/blink/public/mojom/media/renderer_audio_output_stream_factory.mojom
new file mode 100644
index 00000000000..92cb7885144
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/media/renderer_audio_output_stream_factory.mojom
@@ -0,0 +1,30 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "media/mojo/mojom/audio_output_stream.mojom";
+import "media/mojo/mojom/audio_parameters.mojom";
+import "media/mojo/mojom/media_types.mojom";
+import "mojo/public/mojom/base/unguessable_token.mojom";
+
+// This interface is used to create output streams. The client supplies a
+// mojo receiver for a stream provider, and then supplies the desired audio
+// parameters to that to create the stream.
+interface RendererAudioOutputStreamFactory {
+ // Used to request a device. If successful, |stream_provider_receiver| will be
+ // bound to an AudioOutputStreamProvider implementation, otherwise it will
+ // simply be discarded (won't be bound). If |session_id| is provided, it will
+ // be taken into account together with |device_id| in the selection of the
+ // audio output device to request. If not provided, only |device_id| will be
+ // taken into account in the selection of the audio output device.
+ RequestDeviceAuthorization(
+ pending_receiver<media.mojom.AudioOutputStreamProvider>
+ stream_provider_receiver,
+ mojo_base.mojom.UnguessableToken? session_id,
+ string device_id) =>
+ (media.mojom.OutputDeviceStatus state,
+ media.mojom.AudioParameters output_params,
+ string matched_device_id);
+};
diff --git a/chromium/third_party/blink/public/mojom/messaging/transferable_message.mojom b/chromium/third_party/blink/public/mojom/messaging/transferable_message.mojom
index dda3676649f..988b29c7fec 100644
--- a/chromium/third_party/blink/public/mojom/messaging/transferable_message.mojom
+++ b/chromium/third_party/blink/public/mojom/messaging/transferable_message.mojom
@@ -33,9 +33,4 @@ struct TransferableMessage {
array<skia.mojom.Bitmap> image_bitmap_contents_array;
// The user activation state, null if the frame isn't providing it.
UserActivationSnapshot? user_activation;
- // Whether the state of user activation should be transferred to the
- // destination frame.
- bool transfer_user_activation;
- // Whether the destination frame is allowed to autoplay. See transferable_message.h.
- bool allow_autoplay;
};
diff --git a/chromium/third_party/blink/public/mojom/native_file_system/native_file_system_drag_drop_token.mojom b/chromium/third_party/blink/public/mojom/native_file_system/native_file_system_drag_drop_token.mojom
new file mode 100644
index 00000000000..e40809156d2
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/native_file_system/native_file_system_drag_drop_token.mojom
@@ -0,0 +1,24 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "mojo/public/mojom/base/unguessable_token.mojom";
+
+// This interface represents an opaque token that can be used to pass a dragged
+// and dropped file or directory from the browser process to the renderer
+// process. A mojo::PendingRemote<NativeFileSystemDragDropToken> passed from
+// the browser to the renderer can be redeemed for a NativeFileSystemEntry
+// through NativeFileSystemManager::GetEntryFromDragDropToken.
+interface NativeFileSystemDragDropToken {
+ // Used to retrieve the unique identifier associated with a token remote.
+ // This is used by the NativeFileSystemManager to associate a implementation
+ // with a Remote<NativeFileSystemDragDropToken>.
+ GetInternalId() => (mojo_base.mojom.UnguessableToken id);
+
+ // Used by DataObjectItem to retain it's copy of a
+ // NativeFileSystemDragDropToken while passing a copy back to the browser
+ // process.
+ Clone(pending_receiver<NativeFileSystemDragDropToken> token_clone);
+};
diff --git a/chromium/third_party/blink/public/mojom/native_file_system/native_file_system_error.mojom b/chromium/third_party/blink/public/mojom/native_file_system/native_file_system_error.mojom
index 938e73fb8b0..7a203888065 100644
--- a/chromium/third_party/blink/public/mojom/native_file_system/native_file_system_error.mojom
+++ b/chromium/third_party/blink/public/mojom/native_file_system/native_file_system_error.mojom
@@ -11,6 +11,8 @@ enum NativeFileSystemStatus {
kOk,
// The website doesn't/didn't have permission to do what it tried to do.
kPermissionDenied,
+ // The website wasn't allowed to ask for permission in the current context.
+ kSecurityError,
// The object being operated on was in an invalid state for the operation.
kInvalidState,
// An invalid argument was passed to a method.
diff --git a/chromium/third_party/blink/public/mojom/native_file_system/native_file_system_manager.mojom b/chromium/third_party/blink/public/mojom/native_file_system/native_file_system_manager.mojom
index 7dc9ee4052a..edb7c1795c5 100644
--- a/chromium/third_party/blink/public/mojom/native_file_system/native_file_system_manager.mojom
+++ b/chromium/third_party/blink/public/mojom/native_file_system/native_file_system_manager.mojom
@@ -9,6 +9,7 @@ import "third_party/blink/public/mojom/native_file_system/native_file_system_dir
import "third_party/blink/public/mojom/native_file_system/native_file_system_file_handle.mojom";
import "third_party/blink/public/mojom/native_file_system/native_file_system_error.mojom";
import "third_party/blink/public/mojom/native_file_system/native_file_system_transfer_token.mojom";
+import "third_party/blink/public/mojom/native_file_system/native_file_system_drag_drop_token.mojom";
enum ChooseFileSystemEntryType {
kOpenFile,
@@ -65,4 +66,13 @@ interface NativeFileSystemManager {
GetDirectoryHandleFromToken(
pending_remote<NativeFileSystemTransferToken> token,
pending_receiver<NativeFileSystemDirectoryHandle> directory_handle);
+
+ // Used to redeem NativeFileSystemDragDropToken that are passed to the
+ // renderer from the browser during a drag and drop operation. Token
+ // redemption can fail if the id of the process trying to redeem the token
+ // does not match the id assigned to the token at creation or if the
+ // NativeFileSystemManager does not have record of the token.
+ GetEntryFromDragDropToken(
+ pending_remote<NativeFileSystemDragDropToken> token
+ ) => (NativeFileSystemEntry entry);
};
diff --git a/chromium/third_party/blink/public/mojom/native_io/native_io.mojom b/chromium/third_party/blink/public/mojom/native_io/native_io.mojom
index 178b8a11ede..4f175c3529c 100644
--- a/chromium/third_party/blink/public/mojom/native_io/native_io.mojom
+++ b/chromium/third_party/blink/public/mojom/native_io/native_io.mojom
@@ -38,6 +38,17 @@ interface NativeIOFileHost {
// browser-managed quota on open file descriptors, but compromised renderers
// can already exhaust the system's resources.
[Sync] Close() => ();
+
+ // Extends or truncates a previously opened file.
+ //
+ // The rendererer passes the file handle to the backend to avoid having
+ // multiple file handles to the same file. A compromised renderer may hand
+ // over an arbitrary file. As base::File::SetLength() is allowed by the
+ // Windows, Linux, and macOS 10.15+ sandbox, it is safe to expose this
+ // functionality to the renderer on macOS < 10.15 as well. See
+ // crbug.com/1084565.
+ [Sync] SetLength(int64 length, mojo_base.mojom.File backing_file) => (bool
+ success, mojo_base.mojom.File backing_file);
};
// Origin-scoped implementation of the Web Platform's NativeIO API.
diff --git a/chromium/third_party/blink/public/mojom/optimization_guide/OWNERS b/chromium/third_party/blink/public/mojom/optimization_guide/OWNERS
new file mode 100644
index 00000000000..e3265d788f3
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/optimization_guide/OWNERS
@@ -0,0 +1,9 @@
+dom@chromium.org
+falken@chromium.org
+kinuko@chromium.org
+nhiroki@chromium.org
+
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
+
+# COMPONENT: Internals>OptimizationGuide
diff --git a/chromium/third_party/blink/public/mojom/optimization_guide/optimization_guide.mojom b/chromium/third_party/blink/public/mojom/optimization_guide/optimization_guide.mojom
new file mode 100644
index 00000000000..cb175a283f0
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/optimization_guide/optimization_guide.mojom
@@ -0,0 +1,32 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+// Enumerates the milestones at which execution of async scripts can be delayed
+// until.
+enum DelayAsyncScriptExecutionDelayType {
+ // No delay (default behavior).
+ kUnknown,
+
+ // Delay until parse finish.
+ kFinishedParsing,
+
+ // Delay until first paint or parse finish (first win).
+ kFirstPaintOrFinishedParsing,
+};
+
+// Hints for delay async script execution optimization.
+struct DelayAsyncScriptExecutionHints {
+ DelayAsyncScriptExecutionDelayType delay_type;
+};
+
+// The set of optimization hints for Blink provided by the optimization guide
+// service in the browser process.
+//
+// Each hint is optional as only a part of them might be populated. For now
+// |delay_async_script_execution_hints| is the only hints.
+struct BlinkOptimizationGuideHints {
+ DelayAsyncScriptExecutionHints? delay_async_script_execution_hints;
+};
diff --git a/chromium/third_party/blink/public/mojom/page/drag.mojom b/chromium/third_party/blink/public/mojom/page/drag.mojom
new file mode 100644
index 00000000000..ff0a98504e2
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/page/drag.mojom
@@ -0,0 +1,96 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "mojo/public/mojom/base/file_path.mojom";
+import "mojo/public/mojom/base/string16.mojom";
+import "services/network/public/mojom/referrer_policy.mojom";
+import "url/mojom/url.mojom";
+import "third_party/blink/public/mojom/native_file_system/native_file_system_drag_drop_token.mojom";
+
+// "Verb" of a drag-and-drop operation as negotiated between the source and
+// destination. It's typemapped to blink::WebDragOperation.
+enum DragOperation {
+ kNone,
+ kCopy,
+ kLink,
+ kGeneric,
+ kPrivate,
+ kMove,
+ kDelete,
+};
+
+// This struct encodes what drag-and-drop operations are allowed. It's
+// typemapped to blink::WebDragOperationsMask.
+// TODO(https://crbug.com/1082291): Change this to a bitset if/when mojom
+// supports bitset types.
+struct AllowedDragOperations {
+ bool allow_copy;
+ bool allow_link;
+ bool allow_generic;
+ bool allow_private;
+ bool allow_move;
+ bool allow_delete;
+};
+
+// Used when dragging images, links, plain text, HTML content or other
+// arbitrary data.
+struct DragItemString {
+ // Mime type of the dragged data.
+ string string_type;
+ // Depending of the value of `string_type`, it contains the dragged link,
+ // text, HTML markup or any other data.
+ mojo_base.mojom.String16 string_data;
+
+ // Title associated with a link. Only valid when string_type == "text/uri-list".
+ mojo_base.mojom.String16 title;
+
+ // Stores the base URL for the contained markup. Only valid when string_type
+ // == "text/html".
+ url.mojom.Url base_url;
+};
+
+// Used for dragging a list of files.
+struct DragItemFile {
+ mojo_base.mojom.FilePath path;
+ mojo_base.mojom.FilePath display_name;
+ pending_remote<NativeFileSystemDragDropToken>? native_file_system_token;
+};
+
+// Only used when dragging images out of Blink.
+struct DragItemBinary {
+ // Image data.
+ array<uint8> data;
+ url.mojom.Url source_url;
+ mojo_base.mojom.FilePath filename_extension;
+ // Content-Disposition response header.
+ string content_disposition;
+};
+
+// Used for dragging files using the FileSystem API.
+struct DragItemFileSystemFile {
+ url.mojom.Url url;
+ int64 size;
+ string file_system_id;
+};
+
+union DragItem {
+ DragItemString string;
+ DragItemFile file;
+ DragItemBinary binary;
+ DragItemFileSystemFile file_system_file;
+};
+
+// Holds data that may be exchanged through a drag-n-drop operation.
+struct DragData {
+ array<DragItem> items;
+ string file_system_id; // Only used when dragging into Blink to represent a
+ // new isolated file system to access the dropped
+ // files.
+
+ // Used for DragItemString when string_type == "downloadurl".
+ network.mojom.ReferrerPolicy referrer_policy =
+ network.mojom.ReferrerPolicy.kDefault;
+};
diff --git a/chromium/third_party/blink/public/mojom/page/page.mojom b/chromium/third_party/blink/public/mojom/page/page.mojom
index eabde32aab3..4320f0ea1f2 100644
--- a/chromium/third_party/blink/public/mojom/page/page.mojom
+++ b/chromium/third_party/blink/public/mojom/page/page.mojom
@@ -6,6 +6,15 @@ module blink.mojom;
import "mojo/public/mojom/base/time.mojom";
import "third_party/blink/public/mojom/page/page_visibility_state.mojom";
+enum PagehideDispatch {
+ // We haven't dispatched pagehide and should do so when appropriate.
+ kNotDispatched,
+ // We've dispatched pagehide with persisted == false.
+ kDispatchedNotPersisted,
+ // We've dispatched pagehide with persisted == true.
+ kDispatchedPersisted
+};
+
// We need this structure to be able to atomically update the state of the page
// to avoid it being in an inconsistent state (e.g. frozen but visible).
// TODO(yuzus): Replace
@@ -15,6 +24,21 @@ struct PageLifecycleState {
bool is_frozen;
PageVisibilityState visibility;
bool is_in_back_forward_cache;
+ PagehideDispatch pagehide_dispatch;
+};
+
+// Additional parameters to send with SetPageLifecycleState calls when we're
+// restoring a page from the back-forward cache.
+struct PageRestoreParams {
+ // Timestamp of the start of the navigation restoring this entry from the
+ // back-forward cache.
+ mojo_base.mojom.TimeTicks navigation_start;
+
+ // The offset in the session history list for the page to be restored.
+ int32 pending_history_list_offset;
+
+ // Total size of the session history list.
+ int32 current_history_list_length;
};
// Used for broadcast messages from browser to renderer for messages that need
@@ -22,5 +46,14 @@ struct PageLifecycleState {
// be multiple blink::WebViewImpls when there are out-of-process iframes.
interface PageBroadcast {
// Notifies the renderer about a change in the lifecycle state of the page.
- SetPageLifecycleState(PageLifecycleState state, mojo_base.mojom.TimeTicks? navigation_start) => ();
+ SetPageLifecycleState(
+ PageLifecycleState state,
+ PageRestoreParams? page_restore_params) => ();
+
+ // Notifies the renderer when audio is started or stopped.
+ AudioStateChanged(bool is_audio_playing);
+
+ // Notifies renderers when a portal web contents is activated or if a
+ // web contents is adopted as a portal.
+ SetInsidePortal(bool is_inside_portal);
};
diff --git a/chromium/third_party/blink/public/mojom/page/spatial_navigation.mojom b/chromium/third_party/blink/public/mojom/page/spatial_navigation.mojom
deleted file mode 100644
index 8358e7ebc0d..00000000000
--- a/chromium/third_party/blink/public/mojom/page/spatial_navigation.mojom
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-[JavaPackage="org.chromium.page.mojom"]
-module blink.mojom;
-
-// Represents the current state of Spatial Navigation.
-struct SpatialNavigationState {
- // True if Spatial Navigation's currently focused target can be unfocused.
- bool can_exit_focus;
- // True if Spatial Navigation has a target that can be selected.
- bool can_select_element;
- // True if the currently focused element is a form element.
- bool is_form_focused;
- // True if the currently focused element is a form element, and there is a
- // next form element available to move to.
- bool has_next_form_element;
- // True if the video element has default controls and the element is focused.
- bool has_default_video_controls;
-};
-
-// Mojo service for browser exposing Spatial Navigation state to the browser.
-interface SpatialNavigationHost {
- // Called when the Spatial Navigation state has changed. Null if Spatial
- // Navigation has been disabled.
- SpatialNavigationStateChanged(SpatialNavigationState? state);
-};
diff --git a/chromium/third_party/blink/public/mojom/page/widget.mojom b/chromium/third_party/blink/public/mojom/page/widget.mojom
index 5b297539bf7..de9bc027f99 100644
--- a/chromium/third_party/blink/public/mojom/page/widget.mojom
+++ b/chromium/third_party/blink/public/mojom/page/widget.mojom
@@ -5,38 +5,22 @@
module blink.mojom;
import "cc/mojom/touch_action.mojom";
+import "third_party/blink/public/mojom/input/touch_event.mojom";
import "mojo/public/mojom/base/string16.mojom";
import "mojo/public/mojom/base/text_direction.mojom";
+import "services/viz/public/mojom/compositing/local_surface_id_allocation.mojom";
import "third_party/blink/public/mojom/frame/intrinsic_sizing_info.mojom";
import "third_party/blink/public/mojom/input/input_handler.mojom";
+import "third_party/blink/public/mojom/page/drag.mojom";
+import "third_party/blink/public/mojom/widget/device_emulation_params.mojom";
+import "third_party/blink/public/mojom/widget/visual_properties.mojom";
+import "ui/base/mojom/ui_base_types.mojom";
import "ui/base/ime/mojom/text_input_state.mojom";
import "ui/base/cursor/mojom/cursor.mojom";
import "ui/gfx/geometry/mojom/geometry.mojom";
-// "Verb" of a drag-and-drop operation as negotiated between the source and
-// destination. It's typemapped to blink::WebDragOperation.
-enum DragOperation {
- kNone,
- kCopy,
- kLink,
- kGeneric,
- kPrivate,
- kMove,
- kDelete,
-};
-
-// This struct encodes what drag-and-drop operations are allowed. It's
-// typemapped to blink::WebDragOperationsMask.
-// TODO(https://crbug.com/1082291): Change this to a bitset if/when mojom
-// supports bitset types.
-struct AllowedDragOperations {
- bool allow_copy;
- bool allow_link;
- bool allow_generic;
- bool allow_private;
- bool allow_move;
- bool allow_delete;
-};
+[EnableIf=is_mac]
+import "ui/base/mojom/attributed_string.mojom";
// Implemented in Blink, this interface defines frame-widget-specific methods that
// will be invoked from the browser process (e.g. blink::WebFrameWidget).
@@ -57,6 +41,12 @@ interface FrameWidget {
DragTargetDragLeave(gfx.mojom.PointF point_in_viewport,
gfx.mojom.PointF screen_point);
+ // Notifies the Widget of a drag drop operation.
+ DragTargetDrop(DragData drag_data,
+ gfx.mojom.PointF point_in_viewport,
+ gfx.mojom.PointF screen_point,
+ uint32 key_modifiers);
+
// Notifies the Widget that a drag has terminated.
DragSourceEndedAt(gfx.mojom.PointF point_in_viewport,
gfx.mojom.PointF screen_point,
@@ -85,6 +75,26 @@ interface FrameWidget {
// When a widget is inert, it is unable to process input events.
// https://html.spec.whatwg.org/multipage/interaction.html#inert
SetIsInertForSubFrame(bool inert);
+
+ // Requests the word under the given point relative to the origin of the
+ // widget and its baseline point.
+ [EnableIf=is_mac]
+ GetStringAtPoint(gfx.mojom.Point point_in_local_root)
+ => (ui.mojom.AttributedString? string, gfx.mojom.Point baseline_point);
+
+ // Sent to inform the renderer to invoke a context menu.
+ // The parameter specifies the location in the render widget's coordinates.
+ ShowContextMenu(
+ ui.mojom.MenuSourceType source_type, gfx.mojom.Point location);
+
+ // Enables device emulator.
+ EnableDeviceEmulation(DeviceEmulationParams parameters);
+
+ // Disables device emulator.
+ DisableDeviceEmulation();
+
+ // Binds an WidgetCompositor interface.
+ BindWidgetCompositor(pending_receiver<WidgetCompositor> host);
};
// Implemented in Browser, this interface defines frame-widget-specific methods that
@@ -100,8 +110,9 @@ interface FrameWidgetHost {
// main-frame's widget for find-in-page zoom.
ZoomToFindInPageRectInMainFrame(gfx.mojom.Rect rect_to_zoom);
- // Notifies whether there are JavaScript touch event handlers or not.
- SetHasTouchEventHandlers(bool has_handlers);
+ // Notifies what type of touch event consumers, if any, exist in the renderer,
+ // e.g. JavaScript touch event handlers or hit testable scrollbars.
+ SetHasTouchEventConsumers(TouchEventConsumers touch_event_consumers);
// Sent by a widget to the browser to be used for SVGs inside of <object> and
// not for iframes. Informs the browser that the current frame's intrinsic
@@ -147,6 +158,14 @@ interface Widget {
pending_receiver<blink.mojom.WidgetInputHandler> request,
pending_remote<blink.mojom.WidgetInputHandlerHost> host);
+ // Update the visual properties of the widget.
+ UpdateVisualProperties(VisualProperties visual_properties);
+
+ // Informs the widget of its position on the user's screen, as well as
+ // the position of the native window holding the widget.
+ // TODO(danakj): These should be part of UpdateVisualProperties.
+ UpdateScreenRects(gfx.mojom.Rect widget_screen_rect,
+ gfx.mojom.Rect window_screen_rect) => ();
};
// Implemented in Browser, this interface defines widget-specific methods that
@@ -172,3 +191,10 @@ interface WidgetHost {
mojo_base.mojom.TextDirection focus_dir,
bool is_anchor_first);
};
+
+// This interface is bound on the compositor thread.
+interface WidgetCompositor {
+ // Requests that the RenderWidget sends back a response after the next main
+ // frame is generated and presented in the display compositor.
+ VisualStateRequest() => ();
+};
diff --git a/chromium/third_party/blink/public/mojom/payments/payment_credential.mojom b/chromium/third_party/blink/public/mojom/payments/payment_credential.mojom
new file mode 100644
index 00000000000..f4e3fc5a692
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/payments/payment_credential.mojom
@@ -0,0 +1,37 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module payments.mojom;
+
+import "url/mojom/url.mojom";
+
+enum PaymentCredentialCreationStatus {
+ SUCCESS,
+ FAILED_TO_DOWNLOAD_ICON,
+ FAILED_TO_STORE_INSTRUMENT,
+};
+
+struct PaymentCredentialInstrument {
+ // Friendly name for displaying this instrument to the user.
+ string display_name;
+
+ // URL for an icon to display alongside the display_name.
+ url.mojom.Url icon;
+};
+
+// An interface for storing PaymentCredentials in browser local storage.
+// It is implemented in the browser process and called by the renderer
+// following creation of a PaymentCredential through the Credential
+// Management API.
+interface PaymentCredential {
+
+ // Store a new PaymentCredential which can be later used for
+ // PaymentRequests. This associates a payment instrument with a public
+ // key credential on an authenticator. |credential_id| and |rp_id| are
+ // associated with the public key credential.
+ StorePaymentCredential(PaymentCredentialInstrument instrument,
+ array<uint8> credential_id,
+ string rp_id)
+ => (PaymentCredentialCreationStatus status);
+};
diff --git a/chromium/third_party/blink/public/mojom/payments/payment_request.mojom b/chromium/third_party/blink/public/mojom/payments/payment_request.mojom
index 151052fefbe..7695f1dacc6 100644
--- a/chromium/third_party/blink/public/mojom/payments/payment_request.mojom
+++ b/chromium/third_party/blink/public/mojom/payments/payment_request.mojom
@@ -6,6 +6,8 @@
module payments.mojom;
import "components/payments/mojom/payment_request_data.mojom";
+import "mojo/public/mojom/base/time.mojom";
+import "url/mojom/url.mojom";
struct PaymentResponse {
string method_name;
@@ -55,7 +57,7 @@ enum HasEnrolledInstrumentQueryResult {
};
// Implemented in the renderer process. Sandboxed. Deals with untrusted data.
-// components/payments/content/payment_request.h
+// Implementation: third_party/blink/renderer/modules/payments/payment_request.h
interface PaymentRequestClient {
OnPaymentMethodChange(string method_name, string stringified_details);
OnShippingAddressChange(PaymentAddress address);
@@ -120,6 +122,24 @@ struct GooglePaymentMethodData {
bool shipping_requested;
};
+// Parameters for the "secure-payment-confirmation" payment method identifier.
+// https://github.com/rsolomakhin/secure-payment-confirmation
+struct SecurePaymentConfirmationRequest {
+ // A list of WebAuthn credential identifiers. These values will be looked up
+ // in "secure_payment_confirmation_instrument" table. Upon user gesture, one
+ // of these credentials will be queried from WebAuthn.
+ array<array<uint8>> credential_ids;
+
+ // An indefinite-length blob passed from the relying party server, to be sent
+ // to an authenticator for signing together with the price and merchant
+ // origin.
+ array<uint8> network_data;
+
+ // Time to wait for an authenticator to complete an operation provided by the
+ // relying party.
+ mojo_base.mojom.TimeDelta? timeout;
+};
+
struct PaymentMethodData {
string supported_method;
@@ -150,6 +170,9 @@ struct PaymentMethodData {
// Basic card specific method data is parsed in the renderer.
array<BasicCardNetwork> supported_networks;
+
+ // Parameters for the "secure-payment-confirmation" payment method identifier.
+ SecurePaymentConfirmationRequest? secure_payment_confirmation;
};
struct PaymentDetailsModifier {
@@ -201,8 +224,8 @@ enum PaymentComplete {
// Implemented in the browser process. Not sandboxed. Deals with trusted data.
-// Android implementation:
-// chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
+// Android implementation (Clank, WebLayer):
+// components/payments/content/android/java/src/org/chromium/components/payments/ComponentPaymentRequestImpl.java
// Desktop (Windows, ChromeOS, Linux, MacOS) implementation:
// components/payments/content/payment_request.h
interface PaymentRequest {
@@ -218,10 +241,17 @@ interface PaymentRequest {
[EnableIf=is_android] bool google_pay_bridge_eligible);
// Shows the user interface with the payment details.
+ // |is_user_gesture|: Whether the show is triggered from a user gesture.
+ // |wait_for_updated_details|: It's true when merchant passed in a promise
+ // into PaymentRequest.show(), so Chrome should disregard the initial payment
+ // details and show a spinner until the promise resolves with the correct
+ // payment details.
Show(bool is_user_gesture, bool wait_for_updated_details);
// Updates the payment details in response to new shipping address or shipping
// option.
+ // |details|: The details that the merchant provides to update the payment
+ // request.
UpdateWith(PaymentDetails details);
// Called when the merchant received a new shipping address or shipping
@@ -250,5 +280,5 @@ interface PaymentRequest {
// Queries whether support for the merchant-specified payment method is
// available and the user has an enrolled instrument for that payment method
// that is ready to pay.
- HasEnrolledInstrument(bool per_method_quota);
+ HasEnrolledInstrument();
};
diff --git a/chromium/third_party/blink/public/mojom/performance_manager/OWNERS b/chromium/third_party/blink/public/mojom/performance_manager/OWNERS
new file mode 100644
index 00000000000..7e4c8d7e6b4
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/performance_manager/OWNERS
@@ -0,0 +1,5 @@
+file://components/performance_manager/OWNERS
+
+# For IPC security review
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/chromium/third_party/blink/public/mojom/performance_manager/v8_per_frame_memory.mojom b/chromium/third_party/blink/public/mojom/performance_manager/v8_per_frame_memory.mojom
new file mode 100644
index 00000000000..1511456621c
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/performance_manager/v8_per_frame_memory.mojom
@@ -0,0 +1,74 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "mojo/public/mojom/base/unguessable_token.mojom";
+
+// The amount of heap memory used by V8 in the context of a frame.
+struct V8IsolatedWorldMemoryUsage {
+ const int64 kMainWorldId = 0;
+ int64 world_id;
+
+ // The number of v8 heap bytes used by a V8 isolated world.
+ uint64 bytes_used = 0;
+
+ // An optional tag for this world that does not vary between browser sessions
+ // or between renderers, unlike the world ID which can be randomly assigned.
+ //
+ // The exact meaning depends on the embedder and the type of isolated world.
+ // For example Chrome extensions use the host ID, as per
+ // extensions::ScriptInjection::GetHostIdForIsolatedWorld. Some types of
+ // isolated world will not have a suitable tag so will leave this empty.
+ string? stable_id;
+
+ // An optional human readable name for the world, for debugging. Unlike
+ // stable_id this might not be unique.
+ string? human_readable_name;
+};
+
+// Returns the number of bytes used by the v8 heap per frame.
+struct PerFrameV8MemoryUsageData {
+ // The frame-unique token.
+ mojo_base.mojom.UnguessableToken frame_token;
+
+ // This should actually be a map with world ID keys, but due to limitations
+ // of WTF::HashMap around keys with value = 0, we have to use an array.
+ array<V8IsolatedWorldMemoryUsage> associated_bytes;
+};
+
+// Returns the number of bytes used by the v8 heap in a process.
+struct PerProcessV8MemoryUsageData {
+ // The number of v8 heap bytes that were not associated with a specific
+ // v8 context, most likely because they're shared objects.
+ uint64 unassociated_bytes_used;
+
+ // The number of v8 contexts not associated with a frame, likely web
+ // application leaks, and their associated byte usage. At the present time
+ // (April 2020), it's expected and normal to see one unassociated context per
+ // renderer process accounting for ~70kB.
+ uint64 num_unassociated_contexts;
+ uint64 unassociated_context_bytes_used;
+
+ // The V8 memory usage by individual frames in this process.
+ array<PerFrameV8MemoryUsageData> associated_memory;
+};
+
+// Allows a browser to query the resource usage of sub-processes.
+interface V8PerFrameMemoryReporter {
+ // The mode for performing memory measurement.
+ enum Mode {
+ DEFAULT, // Perform memory measurement on the next garbage collection
+ // and force garbage collection after some timeout.
+
+ EAGER, // Force immediate garbage collection and memory measurement.
+
+ LAZY, // Perform memory measurement on the next garbage collection.
+ };
+ // Requests a per-frame estimate of v8 heap byte usage on the next garbage
+ // collection. Note that this causes extra cost for the next garbage
+ // collection, which can be on the order of 10-20%.
+ GetPerFrameV8MemoryUsageData(Mode mode) => (PerProcessV8MemoryUsageData data);
+};
+
diff --git a/chromium/third_party/blink/public/mojom/permissions/permission.mojom b/chromium/third_party/blink/public/mojom/permissions/permission.mojom
index 372df35d637..7c47d2b47a4 100644
--- a/chromium/third_party/blink/public/mojom/permissions/permission.mojom
+++ b/chromium/third_party/blink/public/mojom/permissions/permission.mojom
@@ -28,6 +28,7 @@ enum PermissionName {
NFC,
STORAGE_ACCESS,
WINDOW_PLACEMENT,
+ FONT_ACCESS,
};
struct MidiPermissionDescriptor {
diff --git a/chromium/third_party/blink/public/mojom/portal/portal.mojom b/chromium/third_party/blink/public/mojom/portal/portal.mojom
index 731da408d1b..9b6a7279c7f 100644
--- a/chromium/third_party/blink/public/mojom/portal/portal.mojom
+++ b/chromium/third_party/blink/public/mojom/portal/portal.mojom
@@ -7,7 +7,7 @@ module blink.mojom;
import "mojo/public/mojom/base/time.mojom";
import "mojo/public/mojom/base/unguessable_token.mojom";
import "third_party/blink/public/mojom/messaging/transferable_message.mojom";
-import "third_party/blink/public/mojom/referrer.mojom";
+import "third_party/blink/public/mojom/loader/referrer.mojom";
import "url/mojom/origin.mojom";
import "url/mojom/url.mojom";
import "url/mojom/origin.mojom";
diff --git a/chromium/third_party/blink/public/mojom/prerender/prerender.mojom b/chromium/third_party/blink/public/mojom/prerender/prerender.mojom
index 6b1564e886c..1ff74e8cfe6 100644
--- a/chromium/third_party/blink/public/mojom/prerender/prerender.mojom
+++ b/chromium/third_party/blink/public/mojom/prerender/prerender.mojom
@@ -4,7 +4,7 @@
module blink.mojom;
-import "third_party/blink/public/mojom/referrer.mojom";
+import "third_party/blink/public/mojom/loader/referrer.mojom";
import "ui/gfx/geometry/mojom/geometry.mojom";
import "url/mojom/origin.mojom";
import "url/mojom/url.mojom";
diff --git a/chromium/third_party/blink/public/mojom/push_messaging/push_messaging.mojom b/chromium/third_party/blink/public/mojom/push_messaging/push_messaging.mojom
index 31ac74ae073..a2066075150 100644
--- a/chromium/third_party/blink/public/mojom/push_messaging/push_messaging.mojom
+++ b/chromium/third_party/blink/public/mojom/push_messaging/push_messaging.mojom
@@ -6,6 +6,7 @@ module blink.mojom;
import "third_party/blink/public/mojom/push_messaging/push_messaging_status.mojom";
import "url/mojom/url.mojom";
+import "mojo/public/mojom/base/time.mojom";
// TODO(heke): The type-mapping struct and enums are duplicately defined. Need
// to remove/replace those defined in content or blink namespace.
@@ -17,6 +18,7 @@ struct PushSubscriptionOptions {
struct PushSubscription {
url.mojom.Url endpoint;
+ mojo_base.mojom.Time? expirationTime;
PushSubscriptionOptions options;
array<uint8> p256dh;
array<uint8> auth;
diff --git a/chromium/third_party/blink/public/mojom/push_messaging/push_messaging_status.mojom b/chromium/third_party/blink/public/mojom/push_messaging/push_messaging_status.mojom
index 48aa00a0b5d..59339976fe7 100644
--- a/chromium/third_party/blink/public/mojom/push_messaging/push_messaging_status.mojom
+++ b/chromium/third_party/blink/public/mojom/push_messaging/push_messaging_status.mojom
@@ -4,29 +4,30 @@
module blink.mojom;
-// Push message event success/error codes for internal use & reporting in UMA.
+// `push` and `pushsubscriptionchange` event success/error codes for internal
+// use & reporting in UMA.
// Enum values can be added, but must never be renumbered or deleted and reused.
-enum PushDeliveryStatus {
- // The message was successfully delivered.
+enum PushEventStatus {
+ // The event was successfully delivered.
SUCCESS = 0,
- // The message could not be delivered because the app id was unknown.
+ // The event could not be delivered because the app id was unknown.
UNKNOWN_APP_ID = 2,
- // The message could not be delivered because origin no longer has permission.
+ // The event could not be delivered because origin no longer has permission.
PERMISSION_DENIED = 3,
- // The message could not be delivered because no service worker was found.
+ // The event could not be delivered because no service worker was found.
NO_SERVICE_WORKER = 4,
- // The message could not be delivered because of a service worker error.
+ // The event could not be delivered because of a service worker error.
SERVICE_WORKER_ERROR = 5,
- // The message was delivered, but the Service Worker passed a Promise to
+ // The event was delivered, but the Service Worker passed a Promise to
// event.waitUntil that got rejected.
EVENT_WAITUNTIL_REJECTED = 6,
- // The message was delivered, but the Service Worker timed out processing it.
+ // The event was delivered, but the Service Worker timed out processing it.
TIMEOUT = 7,
// NOTE: Do not renumber or delete these as that would confuse interpretation
diff --git a/chromium/third_party/blink/public/mojom/quota/quota_manager_host.mojom b/chromium/third_party/blink/public/mojom/quota/quota_manager_host.mojom
index d11d37035ef..b5b6f626f02 100644
--- a/chromium/third_party/blink/public/mojom/quota/quota_manager_host.mojom
+++ b/chromium/third_party/blink/public/mojom/quota/quota_manager_host.mojom
@@ -6,12 +6,26 @@ module blink.mojom;
import "third_party/blink/public/mojom/quota/quota_types.mojom";
+// Receives quota change notifications for a frame or worker.
+//
+// The interface is used to by the quota system in the browser process, to
+// send notifications to Blink in the renderer process.
+interface QuotaChangeListener {
+ // Triggered due to storage pressure.
+ OnQuotaChange();
+};
+
// Implements the Web Platform's quota ("Storage") API.
//
// The interface is consumed by Blink in the renderer process. The interface is
// currently implemented in the browser process, and will eventually move to the
// Storage Service.
interface QuotaManagerHost {
+ // Subscribes to changes in the quota transmitted in a request to an URL.
+ //
+ // The subscription is canceled by closing the pipe.
+ AddChangeListener(pending_remote<QuotaChangeListener> listener) => ();
+
// Retrieves the origin's current usage and quota.
//
// This method can be called from frames and workers.
diff --git a/chromium/third_party/blink/public/mojom/renderer_preferences.mojom b/chromium/third_party/blink/public/mojom/renderer_preferences.mojom
index c5e7fa9320f..f580532b244 100644
--- a/chromium/third_party/blink/public/mojom/renderer_preferences.mojom
+++ b/chromium/third_party/blink/public/mojom/renderer_preferences.mojom
@@ -104,6 +104,9 @@ struct RendererPreferences {
// Determines whether plugins are allowed to enter fullscreen mode.
bool plugin_fullscreen_allowed = true;
+ // Whether or not caret browsing is enabled.
+ bool caret_browsing_enabled = false;
+
[EnableIf=renderer_pref_system_font_family_name]
string system_font_family_name;
@@ -151,4 +154,9 @@ struct RendererPreferences {
// The width of the arrow bitmap on a horizontal scroll bar in dips.
[EnableIf=is_win]
int32 arrow_bitmap_width_horizontal_scroll_bar_in_dips = 0;
+
+ // Whether the selection clipboard buffer is available. Linux environments
+ // may support this.
+ [EnableIf=is_selection_clipboard_buffer_possible]
+ bool selection_clipboard_buffer_available = false;
};
diff --git a/chromium/third_party/blink/public/mojom/screen_enumeration/screen_enumeration.mojom b/chromium/third_party/blink/public/mojom/screen_enumeration/screen_enumeration.mojom
index 6c6e7f9b3da..92ba0dd017c 100644
--- a/chromium/third_party/blink/public/mojom/screen_enumeration/screen_enumeration.mojom
+++ b/chromium/third_party/blink/public/mojom/screen_enumeration/screen_enumeration.mojom
@@ -6,14 +6,27 @@ module blink.mojom;
import "ui/display/mojom/display.mojom";
-// This interface is implemented by the browser process to pass screen data to
-// window and worker processes.
+// A struct containing information about the set of connected displays.
+struct Displays {
+ array<display.mojom.Display> displays; // The list of connected displays.
+ int64 internal_id; // The internal display id or kInvalidDisplayId if none.
+ int64 primary_id; // The primary display id or kInvalidDisplayId if none.
+};
+
+// An enum representing the presence of multiple displays, or an error state.
+enum MultipleDisplays {
+ kFalse, // 0 or 1 displays are connected.
+ kTrue, // 2 or more displays are connected.
+ kError, // The display count is unavailable or access is denied.
+};
+
+// An interface enabling renderers to request information about screens
+// connected to the device from the browser process.
interface ScreenEnumeration {
- // If success is false, other returned values are meaningless. Otherwise,
- // |displays| is the list of connected display devices; |internal_id| and
- // |primary_id| are respectively the ids of the internal and primary displays.
- GetDisplays() => (array<display.mojom.Display> displays,
- int64 internal_id,
- int64 primary_id,
- bool success);
+ // Returns information about the connected displays, or null if an error
+ // occurred (e.g. display information is unavailable or access is denied).
+ GetDisplays() => (Displays? result);
+
+ // Returns information about the presence of multiple displays.
+ HasMultipleDisplays() => (MultipleDisplays result);
};
diff --git a/chromium/third_party/blink/public/mojom/service_worker/embedded_worker.mojom b/chromium/third_party/blink/public/mojom/service_worker/embedded_worker.mojom
index 48c1f71eafd..aa5c35d27a0 100644
--- a/chromium/third_party/blink/public/mojom/service_worker/embedded_worker.mojom
+++ b/chromium/third_party/blink/public/mojom/service_worker/embedded_worker.mojom
@@ -22,6 +22,7 @@ import "third_party/blink/public/mojom/service_worker/service_worker_installed_s
import "third_party/blink/public/mojom/service_worker/service_worker_event_status.mojom";
import "third_party/blink/public/mojom/service_worker/service_worker_provider.mojom";
import "third_party/blink/public/mojom/service_worker/service_worker_registration.mojom";
+import "third_party/blink/public/mojom/tokens/tokens.mojom";
import "third_party/blink/public/mojom/user_agent/user_agent_metadata.mojom";
import "third_party/blink/public/mojom/worker/worker_content_settings_proxy.mojom";
import "third_party/blink/public/mojom/web_feature/web_feature.mojom";
@@ -114,6 +115,17 @@ struct EmbeddedWorkerStartParams {
// Used for updating subresource loaders after NetworkService crash etc.
pending_receiver<SubresourceLoaderUpdater> subresource_loader_updater;
+
+ // A unique token identifying this ServiceWorker. In can be used to identify
+ // this particular ServiceWorker in subsequent renderer -> browser messages
+ // that aren't on the EmbeddedWorkerInstanceHost interface. This is not
+ // persistent across worker restarts.
+ ServiceWorkerToken service_worker_token;
+
+ // The UKM SourceId associated with the service worker. This persists across
+ // service worker restarts, but not browser restarts. It is distinct from the
+ // IDs associated with the connected clients.
+ int64 ukm_source_id;
};
// Holds timing information about the start worker sequence for UMA.
diff --git a/chromium/third_party/blink/public/mojom/service_worker/service_worker.mojom b/chromium/third_party/blink/public/mojom/service_worker/service_worker.mojom
index 4c918440240..26e99fbcdd9 100644
--- a/chromium/third_party/blink/public/mojom/service_worker/service_worker.mojom
+++ b/chromium/third_party/blink/public/mojom/service_worker/service_worker.mojom
@@ -133,10 +133,11 @@ enum FetchHandlerExistence {
DOES_NOT_EXIST,
};
-// The number of seconds for which a 'push' event should be allowed to run.
-// This is not in the spec but for a Chrome-specific timeout. Each
-// event dispatched to service workers has a 5 minute timeout in the Chrome
-// implementation, but this makes the timeout for push events shorter.
+// The number of seconds for which a 'push' and the 'pushsubsciptionchange'
+// event should be allowed to run. This is not in the spec but for a
+// Chrome-specific timeout. Each event dispatched to service workers has a 5
+// minute timeout in the Chrome implementation, but this makes the timeout for
+// push events shorter.
const int32 kPushEventTimeoutSeconds = 90;
// The default number of seconds for idle timeouts. A service worker requests
@@ -248,11 +249,18 @@ interface ServiceWorker {
// content, or null.
DispatchPushEvent(string? payload)
=> (ServiceWorkerEventStatus status);
- // Whenever a PushSubscription changes, a change event is generated with (optionally)
- // the previous subscription and the new subscription.
+ // Whenever a PushSubscription changes, a change event is generated with
+ // (optionally) the previous subscription and the new subscription.
+ // |old_subscription| can be null when there was a partial database corruption
+ // so that the full subscription information about the subscription that is
+ // going to become invalid cannot be found anymore.
+ // |new_subscription| is the subscription that is going to replace the
+ // |old_subscription| and is null when permission is revoked or the
+ // subscription is lost.
+ // Ref: https://w3c.github.io/push-api/#dfn-pushsubscriptionchange
DispatchPushSubscriptionChangeEvent(
- PushSubscription old_subscription,
- PushSubscription new_subscription)
+ PushSubscription? old_subscription,
+ PushSubscription? new_subscription)
=> (ServiceWorkerEventStatus status);
// Arguments are passed to the event handler as parameters of SyncEvent.
// Ref: https://wicg.github.io/BackgroundSync/spec/#sync-event
diff --git a/chromium/third_party/blink/public/mojom/storage_access/OWNERS b/chromium/third_party/blink/public/mojom/storage_access/OWNERS
new file mode 100644
index 00000000000..d370d11ca39
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/storage_access/OWNERS
@@ -0,0 +1,4 @@
+file://chrome/browser/storage_access_api/OWNERS
+
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/chromium/third_party/blink/public/mojom/storage_access/storage_access_automation.mojom b/chromium/third_party/blink/public/mojom/storage_access/storage_access_automation.mojom
new file mode 100644
index 00000000000..4ce53154f30
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/storage_access/storage_access_automation.mojom
@@ -0,0 +1,14 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.test.mojom;
+
+// Provides a way for tests to change the storage access policy.
+// See https://privacycg.github.io/storage-access/#automation
+interface StorageAccessAutomation {
+ // Sets whether |origin| has access to cookies from |embedding_origin|.
+ SetStorageAccess(string origin,
+ string embedding_origin,
+ bool allowed) => (bool success);
+};
diff --git a/chromium/third_party/blink/public/mojom/tokens/BUILD.gn b/chromium/third_party/blink/public/mojom/tokens/BUILD.gn
new file mode 100644
index 00000000000..1be948a80f8
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/tokens/BUILD.gn
@@ -0,0 +1,106 @@
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//mojo/public/tools/bindings/mojom.gni")
+import("//third_party/blink/public/public_features.gni")
+
+mojom_component("tokens") {
+ output_prefix = "tokens_mojom"
+ macro_prefix = "TOKENS_MOJOM"
+
+ sources = [ "tokens.mojom" ]
+
+ shared_cpp_typemaps = [
+ {
+ types = [
+ # FRAME TOKENS
+ {
+ mojom = "blink.mojom.LocalFrameToken"
+ cpp = "::blink::LocalFrameToken"
+ },
+ {
+ mojom = "blink.mojom.RemoteFrameToken"
+ cpp = "::blink::RemoteFrameToken"
+ },
+ {
+ mojom = "blink.mojom.FrameToken"
+ cpp = "::blink::FrameToken"
+ },
+
+ # WORKER TOKENS
+ {
+ mojom = "blink.mojom.DedicatedWorkerToken"
+ cpp = "::blink::DedicatedWorkerToken"
+ },
+ {
+ mojom = "blink.mojom.ServiceWorkerToken"
+ cpp = "::blink::ServiceWorkerToken"
+ },
+ {
+ mojom = "blink.mojom.SharedWorkerToken"
+ cpp = "::blink::SharedWorkerToken"
+ },
+ {
+ mojom = "blink.mojom.WorkerToken"
+ cpp = "::blink::WorkerToken"
+ },
+
+ # WORKLET TOKENS
+ {
+ mojom = "blink.mojom.AnimationWorkletToken"
+ cpp = "::blink::AnimationWorkletToken"
+ },
+ {
+ mojom = "blink.mojom.AudioWorkletToken"
+ cpp = "::blink::AudioWorkletToken"
+ },
+ {
+ mojom = "blink.mojom.PaintWorkletToken"
+ cpp = "::blink::PaintWorkletToken"
+ },
+ {
+ mojom = "blink.mojom.WorkletToken"
+ cpp = "::blink::WorkletToken"
+ },
+
+ # OTHER TOKENS
+ #
+ # Keep this section last.
+ #
+ # If you have multiple tokens that make a thematic group, please lift
+ # them to their own section, in alphabetical order. If adding a new
+ # token here, please keep the following list in alphabetic order.
+ {
+ mojom = "blink.mojom.ExecutionContextToken"
+ cpp = "::blink::ExecutionContextToken"
+ },
+ {
+ mojom = "blink.mojom.PortalToken"
+ cpp = "::blink::PortalToken"
+ },
+ {
+ mojom = "blink.mojom.V8ContextToken"
+ cpp = "::blink::V8ContextToken"
+ },
+ ]
+ traits_headers =
+ [ "//third_party/blink/public/common/tokens/tokens_mojom_traits.h" ]
+ },
+ ]
+
+ cpp_typemaps = shared_cpp_typemaps
+ blink_cpp_typemaps = shared_cpp_typemaps
+
+ public_deps = [ "//mojo/public/mojom/base" ]
+
+ export_class_attribute = "BLINK_COMMON_EXPORT"
+ export_define = "BLINK_COMMON_IMPLEMENTATION=1"
+ export_header = "third_party/blink/public/common/common_export.h"
+
+ export_class_attribute_blink = "PLATFORM_EXPORT"
+ export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
+ export_header_blink = "third_party/blink/renderer/platform/platform_export.h"
+
+ generate_java = true
+}
diff --git a/chromium/third_party/blink/public/mojom/tokens/OWNERS b/chromium/third_party/blink/public/mojom/tokens/OWNERS
new file mode 100644
index 00000000000..08850f42120
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/tokens/OWNERS
@@ -0,0 +1,2 @@
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/chromium/third_party/blink/public/mojom/tokens/tokens.mojom b/chromium/third_party/blink/public/mojom/tokens/tokens.mojom
new file mode 100644
index 00000000000..6db6fbb35f9
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/tokens/tokens.mojom
@@ -0,0 +1,108 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "mojo/public/mojom/base/unguessable_token.mojom";
+
+// Various token types. These are used as cross-layer and cross-process
+// identifiers for objects that exist in blink, but which have representations
+// in the browser process. They should not be used to identify objects in
+// browser-to-renderer control messages; rather, such messages should exist as
+// methods on the interface bound to the object itself. They are fine to use
+// for informational messages that cross over other interfaces, in both
+// directions.
+//
+// See third_party/blink/public/common/tokens/tokens.h for more details.
+
+////////////////////////////////////////////////////////////////////////////////
+// FRAME TOKENS
+
+struct LocalFrameToken {
+ mojo_base.mojom.UnguessableToken value;
+};
+
+struct RemoteFrameToken {
+ mojo_base.mojom.UnguessableToken value;
+};
+
+union FrameToken {
+ LocalFrameToken local_frame_token;
+ RemoteFrameToken remote_frame_token;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// WORKER TOKENS
+
+struct DedicatedWorkerToken {
+ mojo_base.mojom.UnguessableToken value;
+};
+
+struct ServiceWorkerToken {
+ mojo_base.mojom.UnguessableToken value;
+};
+
+struct SharedWorkerToken {
+ mojo_base.mojom.UnguessableToken value;
+};
+
+union WorkerToken {
+ DedicatedWorkerToken dedicated_worker_token;
+ ServiceWorkerToken service_worker_token;
+ SharedWorkerToken shared_worker_token;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// WORKLET TOKENS
+
+struct AnimationWorkletToken {
+ mojo_base.mojom.UnguessableToken value;
+};
+
+struct AudioWorkletToken {
+ mojo_base.mojom.UnguessableToken value;
+};
+
+struct LayoutWorkletToken {
+ mojo_base.mojom.UnguessableToken value;
+};
+
+struct PaintWorkletToken {
+ mojo_base.mojom.UnguessableToken value;
+};
+
+union WorkletToken {
+ AnimationWorkletToken animation_worklet_token;
+ AudioWorkletToken audio_worklet_token;
+ LayoutWorkletToken layout_worklet_token;
+ PaintWorkletToken paint_worklet_token;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// OTHER TOKENS
+//
+// Keep this section last.
+//
+// If you have multiple tokens that make a thematic group, please lift them to
+// their own section, in alphabetical order. If adding a new token here, please
+// keep the following list in alphabetic order.
+
+union ExecutionContextToken {
+ LocalFrameToken local_frame_token;
+ DedicatedWorkerToken dedicated_worker_token;
+ ServiceWorkerToken service_worker_token;
+ SharedWorkerToken shared_worker_token;
+ AnimationWorkletToken animation_worklet_token;
+ AudioWorkletToken audio_worklet_token;
+ LayoutWorkletToken layout_worklet_token;
+ PaintWorkletToken paint_worklet_token;
+};
+
+struct PortalToken {
+ mojo_base.mojom.UnguessableToken value;
+};
+
+struct V8ContextToken {
+ mojo_base.mojom.UnguessableToken value;
+};
diff --git a/chromium/third_party/blink/public/mojom/use_counter/css_property_id.mojom b/chromium/third_party/blink/public/mojom/use_counter/css_property_id.mojom
index 0ce2e2383db..3de5c6604e3 100644
--- a/chromium/third_party/blink/public/mojom/use_counter/css_property_id.mojom
+++ b/chromium/third_party/blink/public/mojom/use_counter/css_property_id.mojom
@@ -715,6 +715,10 @@ enum CSSSampleId {
kEnd = 669,
kTimeRange = 670,
kScrollbarGutter = 671,
+ kAscentOverride = 672,
+ kDescentOverride = 673,
+ kAdvanceOverride = 674,
+ kLineGapOverride = 675,
// 1. Add new features above this line (don't change the assigned numbers of
// the existing items).
// 2. Run the src/tools/metrics/histograms/update_use_counter_css.py script
diff --git a/chromium/third_party/blink/public/mojom/web_feature/web_feature.mojom b/chromium/third_party/blink/public/mojom/web_feature/web_feature.mojom
index d97dacebf0b..ce2a1d97da8 100644
--- a/chromium/third_party/blink/public/mojom/web_feature/web_feature.mojom
+++ b/chromium/third_party/blink/public/mojom/web_feature/web_feature.mojom
@@ -1927,8 +1927,6 @@ enum WebFeature {
kBackgroundFetchRegistrationAbort = 2552,
kBackgroundFetchRegistrationMatch = 2553,
kBackgroundFetchRegistrationMatchAll = 2554,
- kV8AtomicsNotify = 2555,
- kV8AtomicsWake = 2556,
kFormDisabledAttributePresent = 2557,
kFormDisabledAttributePresentAndSubmit = 2558,
kCSSValueAppearanceCheckboxRendered = 2559,
@@ -2130,7 +2128,6 @@ enum WebFeature {
kNoSysexWebMIDIWithoutPermission = 2770,
kNoSysexWebMIDIOnInsecureOrigin = 2771,
kApplicationCacheInstalledButNoManifest = 2772,
- kPerMethodCanMakePaymentQuota = 2773,
kCustomCursorIntersectsViewport = 2776,
kClientHintsLang = 2777,
kLinkRelPreloadImageSrcset = 2778,
@@ -2215,7 +2212,7 @@ enum WebFeature {
kVerticalScrollbarThumbScrollingWithTouch = 2877,
kHorizontalScrollbarThumbScrollingWithMouse = 2878,
kHorizontalScrollbarThumbScrollingWithTouch = 2879,
- kSMSReceiverStart = 2880,
+ kWebOTP = 2880,
kV8Animation_Pending_AttributeGetter = 2881,
kFocusWithoutUserActivationNotSandboxedNotAdFrame = 2882,
kFocusWithoutUserActivationNotSandboxedAdFrame = 2883,
@@ -2535,7 +2532,6 @@ enum WebFeature {
kCoopAndCoepIsolated = 3200,
// The above items are available in M83 branch.
- kWrongBaselineOfButtonElement = 3201,
kV8Document_HasTrustToken_Method = 3202,
kForceLoadAtTop = 3203,
kLegacyLayoutByButton = 3204,
@@ -2543,11 +2539,9 @@ enum WebFeature {
kLegacyLayoutByDetailsMarker = 3206,
kLegacyLayoutByEditing = 3207,
kLegacyLayoutByFieldSet = 3208,
- kLegacyLayoutByFileUploadControl = 3209,
kLegacyLayoutByFlexBox = 3210,
kLegacyLayoutByFrameSet = 3211,
kLegacyLayoutByGrid = 3212,
- kLegacyLayoutByMenuList = 3213,
kLegacyLayoutByMultiCol = 3214,
kLegacyLayoutByPrinting = 3215,
kLegacyLayoutByRuby = 3216,
@@ -2617,7 +2611,7 @@ enum WebFeature {
kV8HTMLVideoElement_RequestVideoFrameCallback_Method = 3280,
kV8HTMLVideoElement_CancelVideoFrameCallback_Method = 3281,
kRubyElementWithDisplayBlock = 3282,
- kLocationFragmentDirectiveAccessed = 3283,
+ kOBSOLETE_LocationFragmentDirectiveAccessed = 3283,
kCanvasRenderingContext = 3284,
kSchemefulSameSiteContextDowngrade = 3285,
kOriginIsolationHeader = 3286,
@@ -2673,11 +2667,115 @@ enum WebFeature {
kInlineOverflowScrollWithInlineEndPadding = 3336,
kCSSSelectorPseudoWebKitDetailsMarker = 3337,
kSerialPortGetInfo = 3338,
+ // The above items are available in M85 branch.
+
+ kFileSystemPickerMethod = 3339,
+ kV8Window_ShowOpenFilePicker_Method = 3340,
+ kV8Window_ShowSaveFilePicker_Method = 3341,
+ kV8Window_ShowDirectoryPicker_Method = 3342,
+ kRTCConstraintEnableRtpDataChannelsTrue = 3344,
+ kRTCConstraintEnableRtpDataChannelsFalse = 3345,
+ kNativeFileSystemDragAndDrop = 3346,
kRTCAdaptivePtime = 3347,
+ kHTMLMetaElementReferrerPolicyMultipleTokensAffectingRequest = 3348,
+ kNavigationTimingL2 = 3349,
+ kResourceTiming = 3350,
+ kV8PointerEvent_AzimuthAngle_AttributeGetter = 3351,
+ kV8PointerEvent_AltitudeAngle_AttributeGetter = 3352,
+ kCrossBrowsingContextGroupMainFrameNulledNonEmptyNameAccessed = 3353,
+ kPositionSticky = 3354,
kCommaSeparatorInAllowAttribute = 3355,
+ kMainFrameCSPViaHTTP = 3359,
+ kMainFrameCSPViaMeta = 3360,
+ kMainFrameCSPViaOriginPolicy = 3361,
+ kHtmlClipboardApiRead = 3362,
+ kHtmlClipboardApiWrite = 3363,
+ kCSSSystemColorComputeToSelf = 3364,
kConversionAPIAll = 3365,
kImpressionRegistration = 3366,
kConversionRegistration = 3367,
+ kWebSharePolicyAllow = 3368,
+ kWebSharePolicyDisallow = 3369,
+ kFormAssociatedCustomElement = 3370,
+ kWindowClosed = 3371,
+ kWrongBaselineOfMultiLineButton = 3372,
+ kWrongBaselineOfEmptyLineButton = 3373,
+ kV8RTCRtpTransceiver_Stopped_AttributeGetter = 3374,
+ kV8RTCRtpTransceiver_Stop_Method = 3375,
+ kSecurePaymentConfirmation = 3376,
+ kCSSInvalidVariableUnset = 3377,
+ kElementInternalsShadowRoot = 3378,
+ kAnyPiiFieldDetected_PredictedTypeMatch = 3379,
+ kEmailFieldDetected_PredictedTypeMatch = 3380,
+ kPhoneFieldDetected_PredictedTypeMatch = 3381,
+ kEmailFieldDetected_PatternMatch = 3382,
+ kLastLetterSpacingAffectsRendering = 3383,
+ kV8FontMetadata_GetTables_Method = 3384,
+ kV8FontMetadata_Blob_Method = 3385,
+ kV8FontManager_Query_Method = 3386,
+ kAudioContextBaseLatency = 3387,
+ kV8Window_GetScreens_Method = 3388,
+ kV8Window_IsMultiScreen_Method = 3389,
+ kV8Window_Onscreenschange_AttributeGetter = 3390,
+ kV8Window_Onscreenschange_AttributeSetter = 3391,
+ kDOMWindowOpenPositioningFeaturesCrossScreen = 3392,
+ kDOMWindowSetWindowRectCrossScreen = 3393,
+ kFullscreenCrossScreen = 3394,
+ kBatterySavingsMeta = 3395,
+ kDigitalGoodsGetDigitalGoodsService = 3396,
+ kDigitalGoodsGetDetails = 3397,
+ kDigitalGoodsAcknowledge = 3398,
+ kMediaRecorder_MimeType = 3399,
+ kMediaRecorder_VideoBitsPerSecond = 3400,
+ kMediaRecorder_AudioBitsPerSecond = 3401,
+ kBluetoothRemoteGATTCharacteristic_Uuid = 3402,
+ kBluetoothRemoteGATTDescriptor_Uuid = 3403,
+ kBluetoothRemoteGATTService_Uuid = 3404,
+ kGPUAdapter_Name = 3405,
+ kWindowScreenInternal = 3406,
+ kWindowScreenPrimary = 3407,
+ kThirdPartyCookieRead = 3408,
+ kThirdPartyCookieWrite = 3409,
+ kRTCLegacyRtpDataChannelNegotiated = 3410,
+ kCrossSitePostMessage = 3411,
+ kSchemelesslySameSitePostMessage = 3412,
+ kSchemefulSameSitePostMessage = 3413,
+ kUnspecifiedTargetOriginPostMessage = 3414,
+ kSchemelesslySameSitePostMessageSecureToInsecure = 3415,
+ kSchemelesslySameSitePostMessageInsecureToSecure = 3416,
+ kBCPBroadcast = 3417,
+ kBCPRead = 3418,
+ kBCPWriteWithoutResponse = 3419,
+ kBCPWrite = 3420,
+ kBCPNotify = 3421,
+ kBCPIndicate = 3422,
+ kBCPAuthenticatedSignedWrites = 3423,
+ kBCPReliableWrite = 3424,
+ kBCPWritableAuxiliaries = 3425,
+ kTextAlignSpecifiedToLegend = 3426,
+ kV8Document_FragmentDirective_AttributeGetter = 3427,
+ kV8StorageManager_GetDirectory_Method = 3428,
+ kBeforematchHandlerRegistered = 3429,
+ kBluetoothAdvertisingEventName = 3430,
+ kBluetoothAdvertisingEventAppearance = 3431,
+ kBluetoothAdvertisingEventTxPower = 3432,
+ kCrossOriginOpenerPolicyReporting= 3433,
+ kGamepadId = 3434,
+ kElementAttachInternals = 3435,
+ kBluetoothDeviceName = 3436,
+ kRTCIceCandidateAddress = 3437,
+ kRTCIceCandidateCandidate = 3438,
+ kRTCIceCandidatePort = 3439,
+ kRTCIceCandidateRelatedAddress = 3440,
+ kRTCIceCandidateRelatedPort = 3441,
+ kSlotAssignNode = 3442,
+ kWebCodecsAudioDecoder = 3456,
+ kWebCodecsVideoDecoder = 3457,
+ kWebCodecsVideoEncoder = 3458,
+ kWebCodecsVideoTrackReader= 3459,
+ kWebCodecsImageDecoder = 3460,
+ kBackForwardCacheExperimentHTTPHeader = 3461,
+ kWebCodecs = 3464,
// Add new features immediately above this line. Don't change assigned
// numbers of any item, and don't reuse removed slots.
diff --git a/chromium/third_party/blink/public/mojom/webauthn/authenticator.mojom b/chromium/third_party/blink/public/mojom/webauthn/authenticator.mojom
index db52c57b1f8..975ffe94d61 100644
--- a/chromium/third_party/blink/public/mojom/webauthn/authenticator.mojom
+++ b/chromium/third_party/blink/public/mojom/webauthn/authenticator.mojom
@@ -94,6 +94,12 @@ struct MakeCredentialAuthenticatorResponse {
bool echo_hmac_create_secret;
bool hmac_create_secret;
+ // True if getClientExtensionResults() called on the returned
+ // PublicKeyCredential instance should contain a `prf` extension output. If
+ // so, |prf| contains the value of the `enabled` member.
+ bool echo_prf;
+ bool prf;
+
// The DER-encoded, ASN.1 public key of the newly created credential. May be
// missing if the browser does not understand the public-key type.
array<uint8>? public_key_der;
@@ -139,6 +145,15 @@ struct GetAssertionAuthenticatorResponse {
bool echo_user_verification_methods;
[EnableIf=is_android]
array<UvmEntry>? user_verification_methods;
+
+ // echo_prf indicates whether the PRF extension should be present in the
+ // output.
+ bool echo_prf;
+ // prf_results contains PRF outputs to include in the extension, if any.
+ PRFValues? prf_results;
+ // prf_not_evaluated indicates the the PRF inputs could not be processed
+ // because of a lack of operating system support.
+ bool prf_not_evaluated;
};
// Information about the relying party. These fields take arbitrary input.
@@ -212,6 +227,16 @@ struct CableRegistration {
array<uint8, 65> relying_party_public_key;
};
+// See https://w3c.github.io/webauthn/#dictdef-authenticationextensionsprfvalues
+struct PRFValues {
+ // In the Javascript-to-native direction, id is the credential ID for these
+ // inputs. If null then these are the default values for when no credential
+ // IDs match. In the other direction, id will always be null.
+ array<uint8>? id;
+ array<uint8, 32> first;
+ array<uint8, 32>? second;
+};
+
// Parameters passed into calls to GetAssertion.
struct PublicKeyCredentialRequestOptions {
// An indefinite-length blob passed from the the relying party server,
@@ -250,6 +275,15 @@ struct PublicKeyCredentialRequestOptions {
// the RP. See https://w3c.github.io/webauthn/#sctn-uvm-extension
[EnableIf=is_android]
bool user_verification_methods;
+
+ // prf is true if the request contained a PRF extension.
+ bool prf;
+
+ // List of PRF inputs. The first element may have a null |id| member,
+ // indicating that it's the default value when none of the elements with a
+ // credential ID match. Otherwise all elements must have an |id| member and
+ // must be sorted lexicographically by it.
+ array<PRFValues> prf_inputs;
};
// See https://w3c.github.io/webauthn/#enumdef-attestationconveyancepreference
@@ -333,6 +367,11 @@ struct PublicKeyCredentialCreationOptions {
// https://fidoalliance.org/specs/fido-v2.0-rd-20180702/fido-client-to-authenticator-protocol-v2.0-rd-20180702.html#sctn-hmac-secret-extension
bool hmac_create_secret;
+ // Whether the PRF extension was present. (Evaluation of the PRF at creation
+ // time is never supported currently, owing to a lack of hardware support.)
+ // https://w3c.github.io/webauthn/#prf-extension
+ bool prf_enable;
+
// Only supported by fido2 devices on android, will eventually supported by
// other platform.
// Whether the user verification method extension is requested by
diff --git a/chromium/third_party/blink/public/mojom/widget/OWNERS b/chromium/third_party/blink/public/mojom/widget/OWNERS
new file mode 100644
index 00000000000..08850f42120
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/widget/OWNERS
@@ -0,0 +1,2 @@
+per-file *.mojom=set noparent
+per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/chromium/third_party/blink/public/mojom/widget/device_emulation_params.mojom b/chromium/third_party/blink/public/mojom/widget/device_emulation_params.mojom
new file mode 100644
index 00000000000..8f21199e31e
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/widget/device_emulation_params.mojom
@@ -0,0 +1,52 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "ui/gfx/geometry/mojom/geometry.mojom";
+import "third_party/blink/public/mojom/widget/screen_orientation.mojom";
+
+enum EmulatedScreenType { kDesktop, kMobile };
+
+struct DeviceEmulationParams {
+ EmulatedScreenType screen_type;
+
+ // Emulated screen size. Typically full / physical size of the device screen
+ // in DIP. Empty size means using default value: original one for kDesktop
+ // screen position, equal to |view_size| for kMobile.
+ gfx.mojom.Size screen_size;
+
+ // Position of view on the screen. Missing position means using default value:
+ // original one for kDesktop screen position, (0, 0) for kMobile.
+ gfx.mojom.Point? view_position;
+
+ // Emulated view size. A width or height of 0 means no override in that
+ // dimension, but the other can still be applied. When both are 0, then the
+ // |scale| will be applied to the view instead.
+ gfx.mojom.Size view_size;
+
+ // If zero, the original device scale factor is preserved.
+ float device_scale_factor;
+
+ // Scale the contents of the main frame. The view's size will be scaled by
+ // this number when they are not specified in |view_size|.
+ float scale;
+
+ // Forced viewport offset for screenshots during emulation, (-1, -1) for
+ // disabled.
+ gfx.mojom.PointF viewport_offset;
+
+ // Viewport scale for screenshots during emulation, 0 for current.
+ float viewport_scale;
+
+ // Optional screen orientation type, with ScreenOrientation::Undefined
+ // value meaning no emulation necessary.
+ ScreenOrientation screen_orientation_type;
+
+ // Screen orientation angle, used together with screen_orientation_type.
+ uint32 screen_orientation_angle;
+
+ // Screen window segments dimensions.
+ array<gfx.mojom.Rect> window_segments;
+};
diff --git a/chromium/third_party/blink/public/mojom/widget/screen_info.mojom b/chromium/third_party/blink/public/mojom/widget/screen_info.mojom
new file mode 100644
index 00000000000..f5510f0edd0
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/widget/screen_info.mojom
@@ -0,0 +1,49 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "third_party/blink/public/mojom/widget/screen_orientation.mojom";
+import "ui/gfx/geometry/mojom/geometry.mojom";
+import "ui/gfx/mojom/display_color_spaces.mojom";
+
+// Information about the screen on which a WidgetBase is being displayed. This
+// is the content counterpart to blink::ScreenInfo.
+struct ScreenInfo {
+ // Device scale factor. Specifies the ratio between physical and logical
+ // pixels.
+ float device_scale_factor = 1;
+
+ // The color spaces and buffer formats that this screen will use for various
+ // content types.
+ gfx.mojom.DisplayColorSpaces display_color_spaces;
+
+ // The screen depth in bits per pixel.
+ uint32 depth;
+
+ // The bits per colour component. This assumes that the colours are balanced
+ // equally.
+ uint32 depth_per_component;
+
+ // This can be true for black and white printers
+ bool is_monochrome = false;
+
+ // The display frequency in Hz of the monitor. Set to 0 if it fails in the
+ // monitor frequency query.
+ uint32 display_frequency;
+
+ // The display monitor rectangle in virtual-screen coordinates. Note that
+ // this may be negative.
+ gfx.mojom.Rect rect;
+
+ // The portion of the monitor's rectangle that can be used by applications.
+ gfx.mojom.Rect available_rect;
+
+ // The monitor's orientation.
+ ScreenOrientation orientation_type = ScreenOrientation.kUndefined;
+
+ // This is the orientation angle of the displayed content in degrees.
+ // It is the opposite of the physical rotation.
+ uint16 orientation_angle;
+};
diff --git a/chromium/third_party/blink/public/mojom/widget/screen_orientation.mojom b/chromium/third_party/blink/public/mojom/widget/screen_orientation.mojom
new file mode 100644
index 00000000000..afdb94e13b7
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/widget/screen_orientation.mojom
@@ -0,0 +1,16 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+// The screen orientation. This is slightly different than the
+// device.mojom.ScreenOrientationLockType which is a request to lock to
+// a specific screen orientation.
+enum ScreenOrientation {
+ kUndefined,
+ kPortraitPrimary,
+ kPortraitSecondary,
+ kLandscapePrimary,
+ kLandscapeSecondary,
+}; \ No newline at end of file
diff --git a/chromium/third_party/blink/public/mojom/widget/visual_properties.mojom b/chromium/third_party/blink/public/mojom/widget/visual_properties.mojom
new file mode 100644
index 00000000000..1786849f9c0
--- /dev/null
+++ b/chromium/third_party/blink/public/mojom/widget/visual_properties.mojom
@@ -0,0 +1,91 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module blink.mojom;
+
+import "cc/mojom/browser_controls_params.mojom";
+import "services/viz/public/mojom/compositing/local_surface_id_allocation.mojom";
+import "third_party/blink/public/mojom/manifest/display_mode.mojom";
+import "third_party/blink/public/mojom/widget/screen_info.mojom";
+import "ui/gfx/geometry/mojom/geometry.mojom";
+
+// See public/common/widget/visual_properties.h
+struct VisualProperties {
+ // Information about the screen (dpi, depth, etc..).
+ ScreenInfo screen_info;
+
+ // Whether or not blink should be in auto-resize mode.
+ bool auto_resize_enabled = false;
+
+ // The minimum size for Blink if auto-resize is enabled.
+ gfx.mojom.Size min_size_for_auto_resize;
+
+ // The maximum size for Blink if auto-resize is enabled.
+ gfx.mojom.Size max_size_for_auto_resize;
+
+ // The size for the widget in DIPs.
+ gfx.mojom.Size new_size;
+
+ // The size of the area of the widget that is visible to the user, in DIPs.
+ // The visible area may be empty if the visible area does not intersect with
+ // the widget, for example in the case of a child frame that is entirely
+ // scrolled out of the main frame's viewport. It may also be smaller than the
+ // widget's size in |new_size| due to the UI hiding part of the widget, such
+ // as with an on-screen keyboard.
+ gfx.mojom.Size visible_viewport_size;
+
+ // The rect of compositor's viewport in pixels. Note that for top level
+ // widgets this is roughly the DSF scaled new_size put into a rect. For child
+ // frame widgets it is a pixel-perfect bounds of the visible region of the
+ // widget. The size would be similar to visible_viewport_size, but in physical
+ // pixels and computed via very different means.
+ // TODO(danakj): It would be super nice to remove one of |new_size|,
+ // |visible_viewport_size| and |compositor_viewport_pixel_rect|. Their values
+ // overlap in purpose, creating a very confusing situation about which to use
+ // for what, and how they should relate or not.
+ gfx.mojom.Rect compositor_viewport_pixel_rect;
+
+ // Browser controls params such as top and bottom controls heights, whether
+ // controls shrink blink size etc.
+ cc.mojom.BrowserControlsParams? browser_controls_params;
+
+ // Whether or not the focused node should be scrolled into view after the
+ // resize.
+ // Page scoped value.
+ bool scroll_focused_node_into_view;
+
+ // The local surface ID to use (if valid) and its allocation time.
+ viz.mojom.LocalSurfaceIdAllocation? local_surface_id_allocation;
+
+ // Indicates whether tab-initiated fullscreen was granted.
+ // Page scoped value.
+ bool is_fullscreen_granted;
+
+ // The display mode. This will be replicated amongst subframes.
+ DisplayMode display_mode = DisplayMode.kUndefined;
+
+ // This represents the latest capture sequence number requested. When this is
+ // incremented, that means the caller wants to synchronize surfaces which
+ // should cause a new LocalSurfaceId to be generated.
+ uint32 capture_sequence_number;
+
+ // This represents the page zoom level for a WebContents.
+ // (0 is the default value which results in 1.0 zoom factor).
+ // Page scoped value.
+ double zoom_level;
+
+ // This represents the page's scale factor, which changes during pinch zoom.
+ // It needs to be shared with subframes.
+ float page_scale_factor = 1;
+
+ // The logical segments of the root widget, in widget-relative DIPs. This
+ // property is set by the root RenderWidget in the renderer process, then
+ // propagated to child local frame roots via RenderFrameProxy/
+ // CrossProcessFrameConnector.
+ array<gfx.mojom.Rect> root_widget_window_segments;
+
+ // Indicates whether a pinch gesture is currently active. Originates in the
+ // main frame's renderer, and needs to be shared with subframes.
+ bool is_pinch_gesture_active;
+};
diff --git a/chromium/third_party/blink/public/mojom/worker/dedicated_worker_host_factory.mojom b/chromium/third_party/blink/public/mojom/worker/dedicated_worker_host_factory.mojom
index ed455c04e5c..b5fe48e4b9d 100644
--- a/chromium/third_party/blink/public/mojom/worker/dedicated_worker_host_factory.mojom
+++ b/chromium/third_party/blink/public/mojom/worker/dedicated_worker_host_factory.mojom
@@ -14,6 +14,7 @@ import "third_party/blink/public/mojom/loader/url_loader_factory_bundle.mojom";
import "third_party/blink/public/mojom/worker/worker_main_script_load_params.mojom";
import "third_party/blink/public/mojom/service_worker/controller_service_worker.mojom";
import "third_party/blink/public/mojom/service_worker/service_worker_container.mojom";
+import "third_party/blink/public/mojom/tokens/tokens.mojom";
import "url/mojom/url.mojom";
// The name of the InterfaceProviderSpec in service manifests used by the
@@ -74,6 +75,7 @@ interface DedicatedWorkerHostFactory {
// Creates a new DedicatedWorkerHost, and requests |browser_interface_broker|
// to provide the worker access to mojo interfaces.
CreateWorkerHost(
+ blink.mojom.DedicatedWorkerToken token,
pending_receiver<blink.mojom.BrowserInterfaceBroker>
browser_interface_broker) =>
(network.mojom.CrossOriginEmbedderPolicy parent_coep);
@@ -89,6 +91,7 @@ interface DedicatedWorkerHostFactory {
// |client| is used for notifying the renderer process of results of worker
// host creation and script loading.
CreateWorkerHostAndStartScriptLoad(
+ blink.mojom.DedicatedWorkerToken token,
url.mojom.Url script_url,
network.mojom.CredentialsMode credentials_mode,
blink.mojom.FetchClientSettingsObject
diff --git a/chromium/third_party/blink/public/mojom/worker/shared_worker_connector.mojom b/chromium/third_party/blink/public/mojom/worker/shared_worker_connector.mojom
index 74f16978a50..f975ea7d34f 100644
--- a/chromium/third_party/blink/public/mojom/worker/shared_worker_connector.mojom
+++ b/chromium/third_party/blink/public/mojom/worker/shared_worker_connector.mojom
@@ -24,5 +24,6 @@ interface SharedWorkerConnector {
pending_remote<SharedWorkerClient> client,
SharedWorkerCreationContextType creation_context_type,
MessagePortDescriptor message_port,
- pending_remote<BlobURLToken>? blob_url_token);
+ pending_remote<BlobURLToken>? blob_url_token,
+ int64 client_ukm_source_id);
};
diff --git a/chromium/third_party/blink/public/mojom/worker/shared_worker_factory.mojom b/chromium/third_party/blink/public/mojom/worker/shared_worker_factory.mojom
index c99df95dd23..dcf0850780c 100644
--- a/chromium/third_party/blink/public/mojom/worker/shared_worker_factory.mojom
+++ b/chromium/third_party/blink/public/mojom/worker/shared_worker_factory.mojom
@@ -12,6 +12,7 @@ import "third_party/blink/public/mojom/renderer_preference_watcher.mojom";
import "third_party/blink/public/mojom/renderer_preferences.mojom";
import "third_party/blink/public/mojom/service_worker/controller_service_worker.mojom";
import "third_party/blink/public/mojom/service_worker/service_worker_container.mojom";
+import "third_party/blink/public/mojom/tokens/tokens.mojom";
import "third_party/blink/public/mojom/worker/shared_worker.mojom";
import "third_party/blink/public/mojom/worker/shared_worker_host.mojom";
import "third_party/blink/public/mojom/worker/shared_worker_info.mojom";
@@ -36,6 +37,11 @@ interface SharedWorkerFactory {
CreateSharedWorker(
SharedWorkerInfo info,
+ // The token that uniquely identifies this worker. Generated in the
+ // browser, and communicated to the worker in the renderer. This token
+ // should not be shared with any renderer except that hosting the worker.
+ SharedWorkerToken token,
+
// The origin of the page where `new SharedWorker()` is called.
// This origin must be able to access shared workers.
// (see blink::SecurityOrigin::CanAccessSharedWorkers())
@@ -80,5 +86,9 @@ interface SharedWorkerFactory {
// BrowserInterfaceBroker for providing browser interfaces.
pending_remote<blink.mojom.BrowserInterfaceBroker>
- browser_interface_broker);
+ browser_interface_broker,
+
+ // The UKM SourceId associated with the SharedWorkerHost. This is distinct
+ // from the IDs that are associated with the connected clients.
+ int64 ukm_source_id);
};
diff --git a/chromium/third_party/blink/public/platform/DEPS b/chromium/third_party/blink/public/platform/DEPS
index 82a64c84b99..cad85583762 100644
--- a/chromium/third_party/blink/public/platform/DEPS
+++ b/chromium/third_party/blink/public/platform/DEPS
@@ -54,12 +54,15 @@ include_rules = [
"+services/service_manager/public/mojom",
"+third_party/blink/public/common/web_cache/web_cache_resource_type_stats.h",
"+third_party/blink/public/platform",
+ "+third_party/blink/public/mojom/tokens",
"-third_party/blink/public/web",
"-third_party/blink/renderer/bindings",
"+third_party/skia",
+ "+ui/base/ime/ime_text_span.h",
"+ui/base/ime/text_input_action.h",
"+ui/base/ime/mojom/virtual_keyboard_types.mojom-shared.h",
"+ui/base/page_transition_types.h",
+ "+ui/base/prediction",
"+ui/base/resource/scale_factor.h",
"+ui/events/types",
"+ui/gfx",
diff --git a/chromium/third_party/blink/public/platform/TaskTypes.md b/chromium/third_party/blink/public/platform/TaskTypes.md
index 76c519a2a93..3a3d28c421f 100644
--- a/chromium/third_party/blink/public/platform/TaskTypes.md
+++ b/chromium/third_party/blink/public/platform/TaskTypes.md
@@ -19,7 +19,8 @@ pausable. Some internal task queues are not.
| MediaElementEvent | No | No | Yes | Yes | Yes |
| CanvasBlobSerialization | No | Yes | Yes | Yes | Yes |
| Microtask | No | Yes | Yes | Yes | Yes |
-| JavascriptTimer | Yes | Yes | Yes | Yes | Yes |
+| JavascriptTimerDelayed | Yes | Yes | Yes | Yes | Yes |
+| JavascriptTimerImmediate [1] | No | Yes | Yes | Yes | Yes |
| RemoteEvent | No | Yes | Yes | Yes | Yes |
| WebSocket | No | Yes | Yes | Yes | Yes |
| PostedMessage | No | No | Yes | Yes | Yes |
@@ -56,3 +57,5 @@ pausable. Some internal task queues are not.
| InternalContinueScriptLoadin | No | No | Yes | Yes | Yes |
Internal Translation queue supports concept of it running only in the foreground. It is disabled if the page that owns it goes in background.
+
+[1] Assuming that the "OptOutZeroTimeoutTimersFromThrottling" feature is enabled.
diff --git a/chromium/third_party/blink/public/platform/input/elastic_overscroll_controller.h b/chromium/third_party/blink/public/platform/input/elastic_overscroll_controller.h
deleted file mode 100644
index ab0b7b3ade0..00000000000
--- a/chromium/third_party/blink/public/platform/input/elastic_overscroll_controller.h
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2020 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_ELASTIC_OVERSCROLL_CONTROLLER_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_ELASTIC_OVERSCROLL_CONTROLLER_H_
-
-#include <memory>
-
-#include "base/macros.h"
-#include "base/memory/weak_ptr.h"
-#include "cc/input/overscroll_behavior.h"
-#include "third_party/blink/public/platform/web_common.h"
-
-namespace cc {
-struct InputHandlerScrollResult;
-class ScrollElasticityHelper;
-} // namespace cc
-
-namespace blink {
-class WebGestureEvent;
-
-// ElasticOverscrollControllers are objects that live on the compositor thread
-// which are responsible for maintaining the elastic scroll amount of the root
-// scroller. They will passively observe scroll results, and if there were any
-// unconsumed deltas for the root scroller (meaning that the user scrolled past
-// the bounds), then they will start the overscroll and filter future events
-// from reaching the intended scroller.
-class BLINK_PLATFORM_EXPORT ElasticOverscrollController {
- public:
- static std::unique_ptr<ElasticOverscrollController> Create(
- cc::ScrollElasticityHelper* helper);
- virtual ~ElasticOverscrollController() = default;
-
- virtual base::WeakPtr<ElasticOverscrollController> GetWeakPtr() = 0;
-
- virtual void ObserveGestureEventAndResult(
- const WebGestureEvent& gesture_event,
- const cc::InputHandlerScrollResult& scroll_result) = 0;
-
- virtual void Animate(base::TimeTicks time) = 0;
-
- virtual void ReconcileStretchAndScroll() = 0;
-};
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_ELASTIC_OVERSCROLL_CONTROLLER_H_
diff --git a/chromium/third_party/blink/public/platform/input/input_handler_proxy.h b/chromium/third_party/blink/public/platform/input/input_handler_proxy.h
index f0483ade089..eecc29e6506 100644
--- a/chromium/third_party/blink/public/platform/input/input_handler_proxy.h
+++ b/chromium/third_party/blink/public/platform/input/input_handler_proxy.h
@@ -13,7 +13,6 @@
#include "cc/paint/element_id.h"
#include "third_party/blink/public/common/input/web_coalesced_input_event.h"
#include "third_party/blink/public/common/input/web_gesture_event.h"
-#include "third_party/blink/public/platform/input/elastic_overscroll_controller.h"
#include "third_party/blink/public/platform/input/synchronous_input_handler_proxy.h"
#include "third_party/blink/public/platform/web_common.h"
@@ -29,6 +28,7 @@ namespace blink {
class WebInputEventAttribution;
class WebMouseWheelEvent;
class WebTouchEvent;
+class ElasticOverscrollController;
} // namespace blink
namespace blink {
@@ -37,12 +37,12 @@ namespace test {
class InputHandlerProxyTest;
class InputHandlerProxyEventQueueTest;
class InputHandlerProxyMomentumScrollJankTest;
+class InputHandlerProxyForceHandlingOnMainThread;
class TestInputHandlerProxy;
class UnifiedScrollingInputHandlerProxyTest;
} // namespace test
class CompositorThreadEventQueue;
-class ElasticOverscrollController;
class EventWithCallback;
class InputHandlerProxyClient;
class ScrollPredictor;
@@ -215,6 +215,7 @@ class BLINK_PLATFORM_EXPORT InputHandlerProxy
friend class test::UnifiedScrollingInputHandlerProxyTest;
friend class test::InputHandlerProxyEventQueueTest;
friend class test::InputHandlerProxyMomentumScrollJankTest;
+ friend class test::InputHandlerProxyForceHandlingOnMainThread;
void DispatchSingleInputEvent(std::unique_ptr<EventWithCallback>,
const base::TimeTicks);
@@ -265,6 +266,10 @@ class BLINK_PLATFORM_EXPORT InputHandlerProxy
const ui::LatencyInfo& original_latency_info,
const blink::WebInputEventAttribution& original_attribution);
+ void set_event_attribution_enabled(bool enabled) {
+ event_attribution_enabled_ = enabled;
+ }
+
InputHandlerProxyClient* client_;
cc::InputHandler* input_handler_;
@@ -341,6 +346,10 @@ class BLINK_PLATFORM_EXPORT InputHandlerProxy
// unification.
bool hit_testing_scroll_begin_on_main_thread_ = false;
+ // This bit can be used to disable event attribution in cases where the
+ // hit test information is unnecessary (e.g. tests).
+ bool event_attribution_enabled_ = true;
+
// Helpers for the momentum scroll jank UMAs.
std::unique_ptr<MomentumScrollJankTracker> momentum_scroll_jank_tracker_;
diff --git a/chromium/third_party/blink/public/platform/input/input_predictor.h b/chromium/third_party/blink/public/platform/input/input_predictor.h
deleted file mode 100644
index 188dab8aa73..00000000000
--- a/chromium/third_party/blink/public/platform/input/input_predictor.h
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_INPUT_PREDICTOR_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_INPUT_PREDICTOR_H_
-
-#include <memory>
-
-#include "base/macros.h"
-#include "base/time/time.h"
-#include "third_party/blink/public/platform/web_common.h"
-#include "ui/gfx/geometry/point_f.h"
-
-namespace blink {
-
-// This class expects a sequence of inputs with their coordinates and timestamps
-// and models the input path. It then can predict the coordinates at any given
-// time.
-class BLINK_PLATFORM_EXPORT InputPredictor {
- public:
- virtual ~InputPredictor() = default;
-
- struct InputData {
- gfx::PointF pos;
- base::TimeTicks time_stamp;
- InputData() {
- pos = gfx::PointF();
- time_stamp = base::TimeTicks();
- }
- InputData(const gfx::PointF& event_pos, const base::TimeTicks& event_time) {
- pos = event_pos;
- time_stamp = event_time;
- }
- };
-
- // Returns the name of the predictor.
- virtual const char* GetName() const = 0;
-
- // Reset should be called each time when a new line start.
- virtual void Reset() = 0;
-
- // Update the predictor with new input points.
- virtual void Update(const InputData& new_input) = 0;
-
- // Return true if the predictor is able to predict points.
- virtual bool HasPrediction() const = 0;
-
- // Generate the prediction based on current points.
- virtual std::unique_ptr<InputData> GeneratePrediction(
- base::TimeTicks predict_time) const = 0;
-
- // Returns the maximum of prediction available for resampling
- // before having side effects (jitter, wrong orientation, etc..)
- const base::TimeDelta MaxResampleTime() const { return kMaxResampleTime; }
-
- // Returns the maximum prediction time available for the predictor
- // before having side effects (jitter, wrong orientation, etc..)
- const base::TimeDelta MaxPredictionTime() const { return kMaxPredictionTime; }
-
- // Return the time interval based on current points.
- virtual base::TimeDelta TimeInterval() const = 0;
-
- protected:
- static constexpr base::TimeDelta kMaxTimeDelta =
- base::TimeDelta::FromMilliseconds(20);
-
- // Default time interval between events.
- static constexpr base::TimeDelta kTimeInterval =
- base::TimeDelta::FromMilliseconds(8);
- // Minimum time interval between events.
- static constexpr base::TimeDelta kMinTimeInterval =
- base::TimeDelta::FromMillisecondsD(2.5);
-
- // Maximum amount of prediction when resampling.
- static constexpr base::TimeDelta kMaxResampleTime =
- base::TimeDelta::FromMilliseconds(20);
- // Maximum time delta for prediction.
- static constexpr base::TimeDelta kMaxPredictionTime =
- base::TimeDelta::FromMilliseconds(25);
-};
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_INPUT_PREDICTOR_H_
diff --git a/chromium/third_party/blink/public/platform/input/predictor_factory.h b/chromium/third_party/blink/public/platform/input/predictor_factory.h
index 46109a7d882..65c86d424ac 100644
--- a/chromium/third_party/blink/public/platform/input/predictor_factory.h
+++ b/chromium/third_party/blink/public/platform/input/predictor_factory.h
@@ -5,8 +5,8 @@
#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_PREDICTOR_FACTORY_H_
#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_PREDICTOR_FACTORY_H_
-#include "third_party/blink/public/platform/input/input_predictor.h"
#include "third_party/blink/public/platform/web_common.h"
+#include "ui/base/prediction/input_predictor.h"
namespace blink {
@@ -31,7 +31,7 @@ class BLINK_PLATFORM_EXPORT PredictorFactory {
// Returns the predictor designed by its type if found, otherwise returns
// PredictorEmpty
- static std::unique_ptr<InputPredictor> GetPredictor(
+ static std::unique_ptr<ui::InputPredictor> GetPredictor(
input_prediction::PredictorType predictor_type);
// Returns the feature enabled kalman predictor options
diff --git a/chromium/third_party/blink/public/platform/input/synchronous_compositor_registry.h b/chromium/third_party/blink/public/platform/input/synchronous_compositor_registry.h
new file mode 100644
index 00000000000..1131bfd7e3f
--- /dev/null
+++ b/chromium/third_party/blink/public/platform/input/synchronous_compositor_registry.h
@@ -0,0 +1,25 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_SYNCHRONOUS_COMPOSITOR_REGISTRY_H_
+#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_SYNCHRONOUS_COMPOSITOR_REGISTRY_H_
+
+#include "third_party/blink/public/platform/input/synchronous_layer_tree_frame_sink.h"
+
+namespace blink {
+
+class SynchronousCompositorRegistry {
+ public:
+ virtual void RegisterLayerTreeFrameSink(
+ SynchronousLayerTreeFrameSink* layer_tree_frame_sink) = 0;
+ virtual void UnregisterLayerTreeFrameSink(
+ SynchronousLayerTreeFrameSink* layer_tree_frame_sink) = 0;
+
+ protected:
+ virtual ~SynchronousCompositorRegistry() {}
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_WIDGET_INPUT_SYNCHRONOUS_COMPOSITOR_REGISTRY_H_
diff --git a/chromium/third_party/blink/public/platform/input/synchronous_layer_tree_frame_sink.h b/chromium/third_party/blink/public/platform/input/synchronous_layer_tree_frame_sink.h
new file mode 100644
index 00000000000..faebf178e01
--- /dev/null
+++ b/chromium/third_party/blink/public/platform/input/synchronous_layer_tree_frame_sink.h
@@ -0,0 +1,71 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_SYNCHRONOUS_LAYER_TREE_FRAME_SINK_H_
+#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_SYNCHRONOUS_LAYER_TREE_FRAME_SINK_H_
+
+#include "cc/trees/layer_tree_frame_sink.h"
+#include "components/viz/common/frame_timing_details_map.h"
+#include "components/viz/common/hit_test/hit_test_region_list.h"
+
+class SkCanvas;
+
+namespace gfx {
+class Rect;
+class Transform;
+} // namespace gfx
+
+namespace viz {
+class CompositorFrame;
+struct BeginFrameArgs;
+} // namespace viz
+
+namespace blink {
+
+// This class represents the client interface for the frame sink
+// created for the synchronous compositor.
+class SynchronousLayerTreeFrameSinkClient {
+ public:
+ virtual void DidActivatePendingTree() = 0;
+ virtual void Invalidate(bool needs_draw) = 0;
+ virtual void SubmitCompositorFrame(
+ uint32_t layer_tree_frame_sink_id,
+ base::Optional<viz::CompositorFrame> frame,
+ base::Optional<viz::HitTestRegionList> hit_test_region_list) = 0;
+ virtual void SetNeedsBeginFrames(bool needs_begin_frames) = 0;
+ virtual void SinkDestroyed() = 0;
+
+ protected:
+ virtual ~SynchronousLayerTreeFrameSinkClient() {}
+};
+
+// This class represents the interface for the frame sink for the synchronous
+// compositor.
+class SynchronousLayerTreeFrameSink : public cc::LayerTreeFrameSink {
+ public:
+ using cc::LayerTreeFrameSink::LayerTreeFrameSink;
+
+ virtual void SetSyncClient(
+ SynchronousLayerTreeFrameSinkClient* compositor) = 0;
+ virtual void DidPresentCompositorFrame(
+ const viz::FrameTimingDetailsMap& timing_details) = 0;
+ virtual void BeginFrame(const viz::BeginFrameArgs& args) = 0;
+ virtual void SetBeginFrameSourcePaused(bool paused) = 0;
+ virtual void SetMemoryPolicy(size_t bytes_limit) = 0;
+ virtual void ReclaimResources(
+ uint32_t layer_tree_frame_sink_id,
+ const std::vector<viz::ReturnedResource>& resources) = 0;
+ virtual void DemandDrawHw(
+ const gfx::Size& viewport_size,
+ const gfx::Rect& viewport_rect_for_tile_priority,
+ const gfx::Transform& transform_for_tile_priority) = 0;
+ virtual void DemandDrawSw(SkCanvas* canvas) = 0;
+ virtual void DemandDrawSwZeroCopy() = 0;
+ virtual void WillSkipDraw() = 0;
+ virtual bool UseZeroCopySoftwareDraw() = 0;
+};
+
+} // namespace blink
+
+#endif // CONTENT_RENDERER_INPUT_SYNCHRONOUS_LAYER_TREE_FRAME_SINK_H_
diff --git a/chromium/third_party/blink/public/platform/internet_disconnected_web_url_loader.h b/chromium/third_party/blink/public/platform/internet_disconnected_web_url_loader.h
new file mode 100644
index 00000000000..d9653050d12
--- /dev/null
+++ b/chromium/third_party/blink/public/platform/internet_disconnected_web_url_loader.h
@@ -0,0 +1,74 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INTERNET_DISCONNECTED_WEB_URL_LOADER_H_
+#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INTERNET_DISCONNECTED_WEB_URL_LOADER_H_
+
+#include <memory>
+
+#include "base/memory/weak_ptr.h"
+#include "third_party/blink/public/platform/scheduler/web_resource_loading_task_runner_handle.h"
+#include "third_party/blink/public/platform/web_common.h"
+#include "third_party/blink/public/platform/web_url_loader.h"
+#include "third_party/blink/public/platform/web_url_loader_factory.h"
+
+namespace blink {
+
+// WebURLLoaderFactory for InternetDisconnectedWebURLLoader.
+class BLINK_PLATFORM_EXPORT InternetDisconnectedWebURLLoaderFactory final
+ : public WebURLLoaderFactory {
+ public:
+ std::unique_ptr<WebURLLoader> CreateURLLoader(
+ const WebURLRequest&,
+ std::unique_ptr<scheduler::WebResourceLoadingTaskRunnerHandle>
+ task_runner_handle) override;
+};
+
+// WebURLLoader which always returns an internet disconnected error. At present,
+// this is used for ServiceWorker's offline-capability-check fetch event.
+class InternetDisconnectedWebURLLoader final : public WebURLLoader {
+ public:
+ explicit InternetDisconnectedWebURLLoader(
+ std::unique_ptr<scheduler::WebResourceLoadingTaskRunnerHandle>
+ task_runner_handle);
+ ~InternetDisconnectedWebURLLoader() override;
+
+ // WebURLLoader implementation:
+ void LoadSynchronously(
+ std::unique_ptr<network::ResourceRequest> request,
+ scoped_refptr<WebURLRequest::ExtraData> request_extra_data,
+ int requestor_id,
+ bool download_to_network_cache_only,
+ bool pass_response_pipe_to_client,
+ bool no_mime_sniffing,
+ base::TimeDelta timeout_interval,
+ WebURLLoaderClient*,
+ WebURLResponse&,
+ base::Optional<WebURLError>&,
+ WebData&,
+ int64_t& encoded_data_length,
+ int64_t& encoded_body_length,
+ WebBlobInfo& downloaded_blob) override;
+ void LoadAsynchronously(
+ std::unique_ptr<network::ResourceRequest> request,
+ scoped_refptr<WebURLRequest::ExtraData> request_extra_data,
+ int requestor_id,
+ bool download_to_network_cache_only,
+ bool no_mime_sniffing,
+ WebURLLoaderClient* client) override;
+ void SetDefersLoading(bool defers) override;
+ void DidChangePriority(WebURLRequest::Priority, int) override;
+ scoped_refptr<base::SingleThreadTaskRunner> GetTaskRunner() override;
+
+ private:
+ void DidFail(WebURLLoaderClient* client, const WebURLError& error);
+
+ std::unique_ptr<scheduler::WebResourceLoadingTaskRunnerHandle>
+ task_runner_handle_;
+ base::WeakPtrFactory<InternetDisconnectedWebURLLoader> weak_factory_{this};
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INTERNET_DISCONNECTED_WEB_URL_LOADER_H_
diff --git a/chromium/third_party/blink/public/platform/media/webmediaplayer_delegate.h b/chromium/third_party/blink/public/platform/media/webmediaplayer_delegate.h
index ff7a2a7cfbe..fc8c71cb4f5 100644
--- a/chromium/third_party/blink/public/platform/media/webmediaplayer_delegate.h
+++ b/chromium/third_party/blink/public/platform/media/webmediaplayer_delegate.h
@@ -67,6 +67,7 @@ class BLINK_PLATFORM_EXPORT WebMediaPlayerDelegate {
virtual void OnSeekBackward(double seconds) = 0;
virtual void OnEnterPictureInPicture() = 0;
virtual void OnExitPictureInPicture() = 0;
+ virtual void OnSetAudioSink(const std::string& sink_id) = 0;
// Called to control audio ducking. Output volume should be set to
// |player_volume| * |multiplier|. The range of |multiplier| is [0, 1],
@@ -95,20 +96,25 @@ class BLINK_PLATFORM_EXPORT WebMediaPlayerDelegate {
// Unsubscribe from observer callbacks.
virtual void RemoveObserver(int player_id) = 0;
+ // Notify about the kind of tracks the media player has, and the type of
+ // content.
+ virtual void DidMediaMetadataChange(
+ int player_id,
+ bool has_audio,
+ bool has_video,
+ media::MediaContentType media_content_type) = 0;
+
// Notify playback started. This will request appropriate wake locks and, if
// applicable, show a pause button in external controls.
//
// DidPlay() should not be called for remote playback.
- virtual void DidPlay(int player_id,
- bool has_video,
- bool has_audio,
- media::MediaContentType media_content_type) = 0;
+ virtual void DidPlay(int player_id) = 0;
// Notify that playback is paused. This will drop wake locks and, if
// applicable, show a play button in external controls.
// TODO(sandersd): It may be helpful to get |has_audio| and |has_video| here,
// so that we can do the right thing with media that starts paused.
- virtual void DidPause(int player_id) = 0;
+ virtual void DidPause(int player_id, bool reached_end_of_stream) = 0;
// Notify that the size of the media player is changed.
virtual void DidPlayerSizeChange(int delegate_id, const gfx::Size& size) = 0;
@@ -125,6 +131,11 @@ class BLINK_PLATFORM_EXPORT WebMediaPlayerDelegate {
virtual void DidPictureInPictureAvailabilityChange(int delegate_id,
bool available) = 0;
+ // Notify that the audio output sink has changed
+ virtual void DidAudioOutputSinkChange(
+ int delegate_id,
+ const std::string& hashed_device_id) = 0;
+
// Notify that a buffer underflow event happened for the media player.
virtual void DidBufferUnderflow(int player_id) = 0;
diff --git a/chromium/third_party/blink/public/platform/modules/mediastream/web_media_element_source_utils.h b/chromium/third_party/blink/public/platform/modules/mediastream/web_media_element_source_utils.h
deleted file mode 100644
index 67cafb09de7..00000000000
--- a/chromium/third_party/blink/public/platform/modules/mediastream/web_media_element_source_utils.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_ELEMENT_SOURCE_UTILS_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_ELEMENT_SOURCE_UTILS_H_
-
-#include "third_party/blink/public/platform/web_common.h"
-
-namespace blink {
-
-class WebMediaPlayerSource;
-class WebMediaStream;
-
-// Obtains a WebMediaStream from a WebMediaPlayerSource. If the
-// WebMediaPlayerSource does not contain a WebMediaStream, a null
-// WebMediaStream is returned.
-BLINK_PLATFORM_EXPORT WebMediaStream
-GetWebMediaStreamFromWebMediaPlayerSource(const WebMediaPlayerSource& source);
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_ELEMENT_SOURCE_UTILS_H_
diff --git a/chromium/third_party/blink/public/platform/web_media_stream.h b/chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream.h
index 556a20cd25b..382edfe6173 100644
--- a/chromium/third_party/blink/public/platform/web_media_stream.h
+++ b/chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream.h
@@ -22,8 +22,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_MEDIA_STREAM_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_MEDIA_STREAM_H_
+#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_H_
+#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_H_
#include "third_party/blink/public/platform/web_common.h"
#include "third_party/blink/public/platform/web_private_ptr.h"
@@ -37,10 +37,12 @@ class WebString;
class BLINK_PLATFORM_EXPORT WebMediaStreamObserver {
public:
- // TrackAdded is called when |track| is added to the observed MediaStream.
- virtual void TrackAdded(const blink::WebMediaStreamTrack&) {}
- // TrackRemoved is called when |track| is added to the observed MediaStream.
- virtual void TrackRemoved(const blink::WebMediaStreamTrack&) {}
+ // TrackAdded is called when the respective track is added to the observed
+ // MediaStream.
+ virtual void TrackAdded(const WebString& track_id) {}
+ // TrackRemoved is called when the respective track is added to the observed
+ // MediaStream.
+ virtual void TrackRemoved(const WebString& track_id) {}
// ActiveStateChanged is called when the observed MediaStream becomes either
// active or inactive.
virtual void ActiveStateChanged(bool is_active) {}
@@ -62,22 +64,12 @@ class WebMediaStream {
BLINK_PLATFORM_EXPORT void Assign(const WebMediaStream&);
- BLINK_PLATFORM_EXPORT void Initialize(
- const WebVector<WebMediaStreamTrack>& audio_tracks,
- const WebVector<WebMediaStreamTrack>& video_tracks);
- BLINK_PLATFORM_EXPORT void Initialize(
- const WebString& label,
- const WebVector<WebMediaStreamTrack>& audio_tracks,
- const WebVector<WebMediaStreamTrack>& video_tracks);
-
BLINK_PLATFORM_EXPORT void Reset();
bool IsNull() const { return private_.IsNull(); }
BLINK_PLATFORM_EXPORT WebString Id() const;
BLINK_PLATFORM_EXPORT int UniqueId() const;
- BLINK_PLATFORM_EXPORT WebVector<WebMediaStreamTrack> AudioTracks() const;
- BLINK_PLATFORM_EXPORT WebVector<WebMediaStreamTrack> VideoTracks() const;
// If a track is not found with the specified id, the returned track's
// |IsNull| will return true.
BLINK_PLATFORM_EXPORT WebMediaStreamTrack
@@ -85,9 +77,6 @@ class WebMediaStream {
BLINK_PLATFORM_EXPORT WebMediaStreamTrack
GetVideoTrack(const WebString& track_id) const;
- BLINK_PLATFORM_EXPORT void AddTrack(const WebMediaStreamTrack&);
- BLINK_PLATFORM_EXPORT void RemoveTrack(const WebMediaStreamTrack&);
-
// These methods add/remove an observer to/from this WebMediaStream. The
// caller is responsible for removing the observer before the destruction of
// the WebMediaStream. Observers cannot be null, cannot be added or removed
@@ -97,7 +86,7 @@ class WebMediaStream {
BLINK_PLATFORM_EXPORT void RemoveObserver(WebMediaStreamObserver*);
#if INSIDE_BLINK
- BLINK_PLATFORM_EXPORT WebMediaStream(MediaStreamDescriptor*);
+ BLINK_PLATFORM_EXPORT explicit WebMediaStream(MediaStreamDescriptor*);
BLINK_PLATFORM_EXPORT operator MediaStreamDescriptor*() const;
BLINK_PLATFORM_EXPORT WebMediaStream& operator=(MediaStreamDescriptor*);
#endif
@@ -108,4 +97,4 @@ class WebMediaStream {
} // namespace blink
-#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_MEDIA_STREAM_H_
+#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_H_
diff --git a/chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream_sink.h b/chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream_sink.h
index 3228996069e..6d28771e5ba 100644
--- a/chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream_sink.h
+++ b/chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream_sink.h
@@ -5,9 +5,9 @@
#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_SINK_H_
#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_SINK_H_
+#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_source.h"
+#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_track.h"
#include "third_party/blink/public/platform/web_common.h"
-#include "third_party/blink/public/platform/web_media_stream_source.h"
-#include "third_party/blink/public/platform/web_media_stream_track.h"
namespace blink {
diff --git a/chromium/third_party/blink/public/platform/web_media_stream_source.h b/chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream_source.h
index 31ddba11a5e..491a86f6db3 100644
--- a/chromium/third_party/blink/public/platform/web_media_stream_source.h
+++ b/chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream_source.h
@@ -28,14 +28,13 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_MEDIA_STREAM_SOURCE_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_MEDIA_STREAM_SOURCE_H_
+#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_SOURCE_H_
+#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_SOURCE_H_
#include <memory>
+#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_track.h"
#include "third_party/blink/public/platform/web_common.h"
-#include "third_party/blink/public/platform/web_media_stream_track.h"
-#include "third_party/blink/public/platform/web_vector.h"
#include "third_party/blink/public/platform/web_private_ptr.h"
#if INSIDE_BLINK
@@ -45,13 +44,11 @@
namespace blink {
class MediaStreamSource;
-class WebAudioDestinationConsumer;
class WebPlatformMediaStreamSource;
class WebString;
class WebMediaStreamSource {
public:
-
enum Type { kTypeAudio, kTypeVideo };
enum ReadyState {
@@ -60,30 +57,6 @@ class WebMediaStreamSource {
kReadyStateEnded = 2
};
- enum class EchoCancellationMode { kDisabled, kBrowser, kAec3, kSystem };
-
- struct Capabilities {
- // WebVector is used to store an optional range for the below numeric
- // fields. All of them should have 0 or 2 values representing min/max.
- WebVector<uint32_t> width;
- WebVector<uint32_t> height;
- WebVector<double> aspect_ratio;
- WebVector<double> frame_rate;
- WebVector<bool> echo_cancellation;
- WebVector<WebString> echo_cancellation_type;
- WebVector<bool> auto_gain_control;
- WebVector<bool> noise_suppression;
- WebVector<int32_t> sample_size;
- WebVector<int32_t> channel_count;
- WebVector<int32_t> sample_rate;
- WebVector<double> latency;
-
- WebMediaStreamTrack::FacingMode facing_mode =
- WebMediaStreamTrack::FacingMode::kNone;
- WebString device_id;
- WebString group_id;
- };
-
WebMediaStreamSource() = default;
WebMediaStreamSource(const WebMediaStreamSource& other) { Assign(other); }
~WebMediaStreamSource() { Reset(); }
@@ -104,11 +77,6 @@ class WebMediaStreamSource {
BLINK_PLATFORM_EXPORT WebString Id() const;
BLINK_PLATFORM_EXPORT Type GetType() const;
- BLINK_PLATFORM_EXPORT WebString GetName() const;
- BLINK_PLATFORM_EXPORT bool Remote() const;
-
- BLINK_PLATFORM_EXPORT void SetGroupId(const WebString& group_id);
- BLINK_PLATFORM_EXPORT WebString GroupId() const;
BLINK_PLATFORM_EXPORT void SetReadyState(ReadyState);
BLINK_PLATFORM_EXPORT ReadyState GetReadyState() const;
@@ -117,22 +85,8 @@ class WebMediaStreamSource {
BLINK_PLATFORM_EXPORT void SetPlatformSource(
std::unique_ptr<WebPlatformMediaStreamSource>);
- BLINK_PLATFORM_EXPORT void SetAudioProcessingProperties(
- EchoCancellationMode echo_cancellation_mode,
- bool auto_gain_control,
- bool noise_supression);
-
- BLINK_PLATFORM_EXPORT void SetCapabilities(const Capabilities&);
-
- // Only used if if this is a WebAudio source.
- // The WebAudioDestinationConsumer is not owned, and has to be disposed of
- // separately after calling removeAudioConsumer.
- BLINK_PLATFORM_EXPORT bool RequiresAudioConsumer() const;
- BLINK_PLATFORM_EXPORT void AddAudioConsumer(WebAudioDestinationConsumer*);
- BLINK_PLATFORM_EXPORT bool RemoveAudioConsumer(WebAudioDestinationConsumer*);
-
#if INSIDE_BLINK
- BLINK_PLATFORM_EXPORT WebMediaStreamSource(MediaStreamSource*);
+ BLINK_PLATFORM_EXPORT explicit WebMediaStreamSource(MediaStreamSource*);
BLINK_PLATFORM_EXPORT WebMediaStreamSource& operator=(MediaStreamSource*);
BLINK_PLATFORM_EXPORT operator scoped_refptr<MediaStreamSource>() const;
BLINK_PLATFORM_EXPORT operator MediaStreamSource*() const;
@@ -144,4 +98,4 @@ class WebMediaStreamSource {
} // namespace blink
-#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_MEDIA_STREAM_SOURCE_H_
+#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_SOURCE_H_
diff --git a/chromium/third_party/blink/public/platform/web_media_stream_track.h b/chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream_track.h
index edca2e0b7ff..589dca15b75 100644
--- a/chromium/third_party/blink/public/platform/web_media_stream_track.h
+++ b/chromium/third_party/blink/public/platform/modules/mediastream/web_media_stream_track.h
@@ -22,8 +22,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_MEDIA_STREAM_TRACK_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_MEDIA_STREAM_TRACK_H_
+#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_TRACK_H_
+#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_TRACK_H_
#include <memory>
@@ -31,17 +31,12 @@
#include "media/mojo/mojom/display_media_information.mojom-shared.h"
#include "third_party/blink/public/platform/web_common.h"
#include "third_party/blink/public/platform/web_private_ptr.h"
-#include "third_party/blink/public/platform/web_string.h"
namespace blink {
-class MediaConstraints;
class MediaStreamComponent;
-class MediaStreamTrack;
class WebAudioSourceProvider;
class WebMediaStreamSource;
-class WebPlatformMediaStreamTrack;
-class WebString;
class WebMediaStreamTrack {
public:
@@ -50,45 +45,6 @@ class WebMediaStreamTrack {
BLINK_PLATFORM_EXPORT static const char kResizeModeNone[];
BLINK_PLATFORM_EXPORT static const char kResizeModeRescale[];
- struct Settings {
- bool HasFrameRate() const { return frame_rate >= 0.0; }
- bool HasWidth() const { return width >= 0; }
- bool HasHeight() const { return height >= 0; }
- bool HasAspectRatio() const { return aspect_ratio >= 0.0; }
- bool HasFacingMode() const { return facing_mode != FacingMode::kNone; }
- bool HasSampleRate() const { return sample_rate >= 0; }
- bool HasSampleSize() const { return sample_size >= 0; }
- bool HasChannelCount() const { return channel_count >= 0; }
- bool HasLatency() const { return latency >= 0; }
- bool HasVideoKind() const { return !video_kind.IsNull(); }
- // The variables are read from
- // MediaStreamTrack::GetSettings only.
- double frame_rate = -1.0;
- int32_t width = -1;
- int32_t height = -1;
- double aspect_ratio = -1.0;
- WebString device_id;
- WebString group_id;
- FacingMode facing_mode = FacingMode::kNone;
- WebString resize_mode;
- base::Optional<bool> echo_cancellation;
- base::Optional<bool> auto_gain_control;
- base::Optional<bool> noise_supression;
- WebString echo_cancellation_type;
- int32_t sample_rate = -1;
- int32_t sample_size = -1;
- int32_t channel_count = -1;
- double latency = -1.0;
-
- // Media Capture Depth Stream Extensions.
- WebString video_kind;
-
- // Screen Capture extensions
- base::Optional<media::mojom::DisplayCaptureSurfaceType> display_surface;
- base::Optional<bool> logical_surface;
- base::Optional<media::mojom::CursorCaptureType> cursor;
- };
-
enum class ContentHintType {
kNone,
kAudioSpeech,
@@ -108,26 +64,10 @@ class WebMediaStreamTrack {
}
BLINK_PLATFORM_EXPORT void Assign(const WebMediaStreamTrack&);
- BLINK_PLATFORM_EXPORT void Initialize(const WebMediaStreamSource&);
- BLINK_PLATFORM_EXPORT void Initialize(const WebString& id,
- const WebMediaStreamSource&);
-
BLINK_PLATFORM_EXPORT void Reset();
bool IsNull() const { return private_.IsNull(); }
- BLINK_PLATFORM_EXPORT WebString Id() const;
- BLINK_PLATFORM_EXPORT int UniqueId() const;
-
BLINK_PLATFORM_EXPORT WebMediaStreamSource Source() const;
- BLINK_PLATFORM_EXPORT bool IsEnabled() const;
- BLINK_PLATFORM_EXPORT bool IsMuted() const;
- BLINK_PLATFORM_EXPORT ContentHintType ContentHint() const;
- BLINK_PLATFORM_EXPORT MediaConstraints Constraints() const;
- BLINK_PLATFORM_EXPORT void SetConstraints(const MediaConstraints&);
-
- BLINK_PLATFORM_EXPORT WebPlatformMediaStreamTrack* GetPlatformTrack() const;
- BLINK_PLATFORM_EXPORT void SetPlatformTrack(
- std::unique_ptr<WebPlatformMediaStreamTrack>);
// The lifetime of the WebAudioSourceProvider should outlive the
// WebMediaStreamTrack, and clients are responsible for calling
@@ -135,7 +75,7 @@ class WebMediaStreamTrack {
BLINK_PLATFORM_EXPORT void SetSourceProvider(WebAudioSourceProvider*);
#if INSIDE_BLINK
- BLINK_PLATFORM_EXPORT WebMediaStreamTrack(MediaStreamComponent*);
+ BLINK_PLATFORM_EXPORT explicit WebMediaStreamTrack(MediaStreamComponent*);
BLINK_PLATFORM_EXPORT WebMediaStreamTrack& operator=(MediaStreamComponent*);
BLINK_PLATFORM_EXPORT operator scoped_refptr<MediaStreamComponent>() const;
BLINK_PLATFORM_EXPORT operator MediaStreamComponent*() const;
@@ -147,4 +87,4 @@ class WebMediaStreamTrack {
} // namespace blink
-#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_MEDIA_STREAM_TRACK_H_
+#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_TRACK_H_
diff --git a/chromium/third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_source.h b/chromium/third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_source.h
index 4c6d14ac9b3..8d2ada32652 100644
--- a/chromium/third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_source.h
+++ b/chromium/third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_source.h
@@ -9,8 +9,8 @@
#include "third_party/blink/public/common/mediastream/media_stream_controls.h"
#include "third_party/blink/public/common/mediastream/media_stream_request.h"
#include "third_party/blink/public/mojom/mediastream/media_stream.mojom-shared.h"
+#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_source.h"
#include "third_party/blink/public/platform/web_common.h"
-#include "third_party/blink/public/platform/web_media_stream_source.h"
#include "third_party/blink/public/platform/web_private_ptr.h"
namespace blink {
diff --git a/chromium/third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_track.h b/chromium/third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_track.h
deleted file mode 100644
index c74a1ce7612..00000000000
--- a/chromium/third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_track.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_PLATFORM_MEDIA_STREAM_TRACK_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_PLATFORM_MEDIA_STREAM_TRACK_H_
-
-#include <string>
-
-#include "base/callback.h"
-#include "third_party/blink/public/platform/web_common.h"
-#include "third_party/blink/public/platform/web_media_stream_track.h"
-
-namespace blink {
-
-// WebPlatformMediaStreamTrack is a low-level object backing a
-// WebMediaStreamTrack.
-class BLINK_PLATFORM_EXPORT WebPlatformMediaStreamTrack {
- public:
- explicit WebPlatformMediaStreamTrack(bool is_local_track);
- virtual ~WebPlatformMediaStreamTrack();
-
- static WebPlatformMediaStreamTrack* GetTrack(
- const WebMediaStreamTrack& track);
-
- virtual void SetEnabled(bool enabled) = 0;
-
- virtual void SetContentHint(
- WebMediaStreamTrack::ContentHintType content_hint) = 0;
-
- // If |callback| is not null, it is invoked when the track has stopped.
- virtual void StopAndNotify(base::OnceClosure callback) = 0;
-
- void Stop() { StopAndNotify(base::OnceClosure()); }
-
- // TODO(hta): Make method pure virtual when all tracks have the method.
- virtual void GetSettings(WebMediaStreamTrack::Settings& settings) {}
-
- bool is_local_track() const { return is_local_track_; }
-
- private:
- const bool is_local_track_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(WebPlatformMediaStreamTrack);
-};
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_MEDIASTREAM_WEB_PLATFORM_MEDIA_STREAM_TRACK_H_
diff --git a/chromium/third_party/blink/public/platform/platform.h b/chromium/third_party/blink/public/platform/platform.h
index 3278250b6d3..abfcd20b894 100644
--- a/chromium/third_party/blink/public/platform/platform.h
+++ b/chromium/third_party/blink/public/platform/platform.h
@@ -39,6 +39,7 @@
#include "base/strings/string_piece.h"
#include "base/threading/thread.h"
#include "base/time/time.h"
+#include "build/build_config.h"
#include "components/viz/common/surfaces/frame_sink_id.h"
#include "media/base/audio_capturer_source.h"
#include "media/base/audio_renderer_sink.h"
@@ -52,10 +53,10 @@
#include "third_party/blink/public/mojom/loader/code_cache.mojom-shared.h"
#include "third_party/blink/public/platform/audio/web_audio_device_source_type.h"
#include "third_party/blink/public/platform/blame_context.h"
-#include "third_party/blink/public/platform/code_cache_loader.h"
#include "third_party/blink/public/platform/cross_variant_mojo_util.h"
#include "third_party/blink/public/platform/user_metrics_action.h"
#include "third_party/blink/public/platform/web_audio_device.h"
+#include "third_party/blink/public/platform/web_code_cache_loader.h"
#include "third_party/blink/public/platform/web_common.h"
#include "third_party/blink/public/platform/web_data.h"
#include "third_party/blink/public/platform/web_dedicated_worker_host_factory_client.h"
@@ -71,6 +72,10 @@ namespace base {
class SingleThreadTaskRunner;
}
+namespace gfx {
+class ColorSpace;
+}
+
namespace gpu {
class GpuMemoryBufferManager;
}
@@ -82,6 +87,12 @@ class MediaPermission;
class GpuVideoAcceleratorFactories;
} // namespace media
+namespace network {
+namespace mojom {
+class URLResponseHead;
+} // namespace mojom
+} // namespace network
+
namespace v8 {
class Context;
template <class T>
@@ -255,26 +266,10 @@ class BLINK_PLATFORM_EXPORT Platform {
// Network -------------------------------------------------------------
- // Returns the platform's default URLLoaderFactory. It is expected that the
- // returned value is stored and to be used for all the CreateURLLoader
- // requests for the same loading context.
- //
- // WARNING: This factory understands http(s) and blob URLs, but it does not
- // understand URLs like chrome-extension:// and file:// as those are provided
- // by the browser process on a per-frame or per-worker basis. If you require
- // support for such URLs, you must add that support manually. Typically you
- // get a factory bundle from the browser process, and compose a new factory
- // using both the bundle and this default.
- //
- // TODO(kinuko): https://crbug.com/891872: See if we can deprecate this too.
- virtual std::unique_ptr<WebURLLoaderFactory> CreateDefaultURLLoaderFactory() {
- return nullptr;
- }
-
- // Returns the CodeCacheLoader that is used to fetch data from code caches.
+ // Returns the WebCodeCacheLoader that is used to fetch data from code caches.
// It is OK to return a nullptr. When a nullptr is returned, data would not
// be fetched from code cache.
- virtual std::unique_ptr<CodeCacheLoader> CreateCodeCacheLoader() {
+ virtual std::unique_ptr<WebCodeCacheLoader> CreateCodeCacheLoader() {
return nullptr;
}
@@ -314,7 +309,7 @@ class BLINK_PLATFORM_EXPORT Platform {
using FetchCachedCodeCallback =
base::OnceCallback<void(base::Time, mojo_base::BigBuffer)>;
virtual void FetchCachedCode(blink::mojom::CodeCacheType cache_type,
- const GURL&,
+ const WebURL&,
FetchCachedCodeCallback) {}
virtual void ClearCodeCacheEntry(blink::mojom::CodeCacheType cache_type,
const GURL&) {}
@@ -329,6 +324,13 @@ class BLINK_PLATFORM_EXPORT Platform {
const blink::WebSecurityOrigin& cache_storage_origin,
const WebString& cache_storage_cache_name) {}
+ // Converts network::mojom::URLResponseHead to WebURLResponse.
+ // TODO(crbug.com/860403): Remove this once it's moved into Blink.
+ virtual void PopulateURLResponse(const WebURL& url,
+ const network::mojom::URLResponseHead& head,
+ WebURLResponse* response,
+ bool report_security_info,
+ int request_id) {}
// Public Suffix List --------------------------------------------------
// May return null on some platforms.
@@ -523,6 +525,27 @@ class BLINK_PLATFORM_EXPORT Platform {
// called by platform/graphics/ is fine.
virtual bool IsGpuCompositingDisabled() { return true; }
+#if defined(OS_ANDROID)
+ // Returns if synchronous compositing is enabled. Only used for Android
+ // webview.
+ virtual bool IsSynchronousCompositingEnabled() { return false; }
+#endif
+
+ // Whether zoom for dsf is enabled. When true, inputs to blink would all be
+ // scaled by the device scale factor so that layout is done in device pixel
+ // space.
+ virtual bool IsUseZoomForDSFEnabled() { return false; }
+
+ // Whether LCD text is enabled.
+ virtual bool IsLcdTextEnabled() { return false; }
+
+ // Whether rubberbanding/elatic on overscrolling is enabled. This usually
+ // varies between each OS and can be configured via user settings in the OS.
+ virtual bool IsElasticOverscrollEnabled() { return false; }
+
+ // Whether the scroll animator that produces smooth scrolling is enabled.
+ virtual bool IsScrollAnimatorEnabled() { return true; }
+
// Media stream ----------------------------------------------------
virtual scoped_refptr<media::AudioCapturerSource> NewAudioCapturerSource(
blink::WebLocalFrame* web_frame,
@@ -660,6 +683,8 @@ class BLINK_PLATFORM_EXPORT Platform {
return nullptr;
}
+ virtual void SetRenderingColorSpace(const gfx::ColorSpace& color_space) {}
+
// Renderer Memory Metrics ----------------------------------------------
virtual void RecordMetricsForBackgroundedRendererPurge() {}
diff --git a/chromium/third_party/blink/public/platform/scheduler/web_thread_scheduler.h b/chromium/third_party/blink/public/platform/scheduler/web_thread_scheduler.h
index 08f8adecf11..d5b741865aa 100644
--- a/chromium/third_party/blink/public/platform/scheduler/web_thread_scheduler.h
+++ b/chromium/third_party/blink/public/platform/scheduler/web_thread_scheduler.h
@@ -80,11 +80,6 @@ class BLINK_PLATFORM_EXPORT WebThreadScheduler {
// Returns the compositor task runner.
virtual scoped_refptr<base::SingleThreadTaskRunner> CompositorTaskRunner();
- virtual scoped_refptr<base::SingleThreadTaskRunner> IPCTaskRunner();
-
- // Returns the cleanup task runner, which is for cleaning up.
- virtual scoped_refptr<base::SingleThreadTaskRunner> CleanupTaskRunner();
-
// Returns a default task runner. This is basically same as the default task
// runner, but is explicitly allowed to run JavaScript. For the detail, see
// the comment at blink::ThreadScheduler::DeprecatedDefaultTaskRunner.
diff --git a/chromium/third_party/blink/public/platform/task_type.h b/chromium/third_party/blink/public/platform/task_type.h
index 3093d1e04ab..d97c40c4b60 100644
--- a/chromium/third_party/blink/public/platform/task_type.h
+++ b/chromium/third_party/blink/public/platform/task_type.h
@@ -73,9 +73,14 @@ enum class TaskType : unsigned char {
kMicrotask = 9,
// https://html.spec.whatwg.org/multipage/webappapis.html#timers
- // This task source is used to queue tasks queued by setInterval() and similar
- // APIs.
- kJavascriptTimer = 10,
+ // For tasks queued by setInterval() and similar APIs. A different type is
+ // used depending on whether the timeout is zero or non-zero. Tasks with
+ // a zero timeout and a nesting level <= 5 will be associated with task
+ // queues that are not throttlable. This complies with the spec since it
+ // does not reduce the timeout to less than zero or bypass the timeout
+ // extension triggered on nesting level >= 5.
+ kJavascriptTimerDelayed = 10,
+ kJavascriptTimerImmediate = 72,
// https://html.spec.whatwg.org/multipage/comms.html#sse-processing-model
// This task source is used for any tasks that are queued by EventSource
@@ -237,6 +242,9 @@ enum class TaskType : unsigned char {
// Tasks used for find-in-page.
kInternalFindInPage = 70,
+ // Tasks that come in on the HighPriorityLocalFrame interface.
+ kInternalHighPriorityLocalFrame = 71,
+
///////////////////////////////////////
// The following task types are only for thread-local queues.
///////////////////////////////////////
@@ -250,9 +258,11 @@ enum class TaskType : unsigned char {
kMainThreadTaskQueueDefault = 39,
kMainThreadTaskQueueInput = 40,
kMainThreadTaskQueueIdle = 41,
- kMainThreadTaskQueueIPC = 42,
+ // Removed:
+ // kMainThreadTaskQueueIPC = 42,
kMainThreadTaskQueueControl = 43,
- kMainThreadTaskQueueCleanup = 52,
+ // Removed:
+ // kMainThreadTaskQueueCleanup = 52,
kMainThreadTaskQueueMemoryPurge = 62,
kMainThreadTaskQueueNonWaking = 69,
kCompositorThreadTaskQueueDefault = 45,
@@ -261,7 +271,7 @@ enum class TaskType : unsigned char {
kWorkerThreadTaskQueueV8 = 47,
kWorkerThreadTaskQueueCompositor = 48,
- kCount = 71,
+ kCount = 73,
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/platform/viewport_intersection_state.h b/chromium/third_party/blink/public/platform/viewport_intersection_state.h
index 071ac5f1e3f..cb6a6f2421c 100644
--- a/chromium/third_party/blink/public/platform/viewport_intersection_state.h
+++ b/chromium/third_party/blink/public/platform/viewport_intersection_state.h
@@ -5,9 +5,11 @@
#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_VIEWPORT_INTERSECTION_STATE_H_
#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_VIEWPORT_INTERSECTION_STATE_H_
-#include "third_party/blink/public/platform/platform.h"
+#include "third_party/blink/public/platform/web_common.h"
#include "third_party/blink/public/platform/web_rect.h"
+#include "third_party/blink/public/platform/web_size.h"
#include "ui/gfx/geometry/point.h"
+#include "ui/gfx/transform.h"
namespace blink {
@@ -34,25 +36,23 @@ static constexpr uint32_t kMinScreenRectStableTimeMs = 500;
// within the viewport of the top-level main frame.
struct BLINK_PLATFORM_EXPORT ViewportIntersectionState {
bool operator==(const ViewportIntersectionState& other) const {
- return viewport_offset == other.viewport_offset &&
- viewport_intersection == other.viewport_intersection &&
+ return viewport_intersection == other.viewport_intersection &&
compositor_visible_rect == other.compositor_visible_rect &&
occlusion_state == other.occlusion_state &&
main_frame_viewport_size == other.main_frame_viewport_size &&
- main_frame_scroll_offset == other.main_frame_scroll_offset;
+ main_frame_scroll_offset == other.main_frame_scroll_offset &&
+ main_frame_intersection == other.main_frame_intersection &&
+ main_frame_transform == other.main_frame_transform;
}
bool operator!=(const ViewportIntersectionState& other) const {
return !(*this == other);
}
- // Child frame's offset from the main frame.
- gfx::Point viewport_offset;
// Portion of the child frame which is within the main frame's scrolling
- // Child frame's offset from the main frame.
WebRect viewport_intersection;
// Same as viewport_intersection, but without applying the main frame's
// document-level overflow clip.
- WebRect main_frame_document_intersection;
+ WebRect main_frame_intersection;
// Area of the child frame that needs to be rastered, in physical pixels.
WebRect compositor_visible_rect;
// Occlusion state, as described above.
@@ -61,6 +61,8 @@ struct BLINK_PLATFORM_EXPORT ViewportIntersectionState {
WebSize main_frame_viewport_size;
// Main frame's scrolling offset.
gfx::Point main_frame_scroll_offset;
+ // Child frame's transform to the coordinate system of the main frame.
+ gfx::Transform main_frame_transform;
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/platform/web_battery_savings.h b/chromium/third_party/blink/public/platform/web_battery_savings.h
new file mode 100644
index 00000000000..6b33becd509
--- /dev/null
+++ b/chromium/third_party/blink/public/platform/web_battery_savings.h
@@ -0,0 +1,25 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_BATTERY_SAVINGS_H_
+#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_BATTERY_SAVINGS_H_
+
+namespace blink {
+
+// These are constants for the various keywords allowed for the battery-savings
+// meta element. For instance:
+//
+// <meta name="battery-savings" content="allow-reduced-framerate">
+//
+// These constants are bits which can be combined.
+enum WebBatterySavings {
+ kAllowReducedFrameRate = 1 << 0,
+ kAllowReducedScriptSpeed = 1 << 1,
+};
+
+using WebBatterySavingsFlags = unsigned;
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_BATTERY_SAVINGS_H_
diff --git a/chromium/third_party/blink/public/platform/code_cache_loader.h b/chromium/third_party/blink/public/platform/web_code_cache_loader.h
index 63721b95032..3b924dc9896 100644
--- a/chromium/third_party/blink/public/platform/code_cache_loader.h
+++ b/chromium/third_party/blink/public/platform/web_code_cache_loader.h
@@ -2,37 +2,42 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_CODE_CACHE_LOADER_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_CODE_CACHE_LOADER_H_
+#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_CODE_CACHE_LOADER_H_
+#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_CODE_CACHE_LOADER_H_
#include "base/callback.h"
#include "mojo/public/cpp/base/big_buffer.h"
#include "third_party/blink/public/mojom/loader/code_cache.mojom-shared.h"
+#include "third_party/blink/public/platform/web_common.h"
+#include "third_party/blink/public/platform/web_url.h"
#include "third_party/blink/public/platform/web_vector.h"
#include "url/gurl.h"
namespace blink {
-// CodeCacheLoader is an abstract class that provides the interface
-// for fetching the data from code cache.
-class CodeCacheLoader {
+// WebCodeCacheLoader is an abstract class that provides the interface for
+// fetching the data from code cache.
+class BLINK_PLATFORM_EXPORT WebCodeCacheLoader {
public:
using FetchCodeCacheCallback =
base::OnceCallback<void(base::Time, mojo_base::BigBuffer)>;
- virtual ~CodeCacheLoader() = default;
+ virtual ~WebCodeCacheLoader() = default;
+
+ static std::unique_ptr<WebCodeCacheLoader> Create(
+ base::WaitableEvent* terminate_sync_load_event = nullptr);
// Fetched code cache corresponding to |url| synchronously and returns
// response in |response_time_out| and |data_out|. |response_time_out| and
// |data_out| cannot be nullptrs.
virtual void FetchFromCodeCacheSynchronously(
- const GURL& url,
+ const WebURL& url,
base::Time* response_time_out,
mojo_base::BigBuffer* data_out) = 0;
virtual void FetchFromCodeCache(blink::mojom::CodeCacheType cache_type,
- const GURL& url,
+ const WebURL& url,
FetchCodeCacheCallback) = 0;
};
} // namespace blink
-#endif
+#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_CODE_CACHE_LOADER_H_
diff --git a/chromium/third_party/blink/public/platform/web_content_decryption_module_session.h b/chromium/third_party/blink/public/platform/web_content_decryption_module_session.h
index 609d7c34d78..cae958bd01b 100644
--- a/chromium/third_party/blink/public/platform/web_content_decryption_module_session.h
+++ b/chromium/third_party/blink/public/platform/web_content_decryption_module_session.h
@@ -57,22 +57,23 @@ class BLINK_PLATFORM_EXPORT WebContentDecryptionModuleSession {
kIndividualizationRequest
};
- virtual void Message(MessageType,
- const unsigned char* message,
- size_t message_length) = 0;
- virtual void Close() = 0;
+ virtual void OnSessionMessage(MessageType,
+ const unsigned char* message,
+ size_t message_length) = 0;
+ virtual void OnSessionClosed() = 0;
// Called when the expiration time for the session changes.
// |updated_expiry_time_in_ms| is specified as the number of milliseconds
// since 01 January, 1970 UTC.
- virtual void ExpirationChanged(double updated_expiry_time_in_ms) = 0;
+ virtual void OnSessionExpirationUpdate(
+ double updated_expiry_time_in_ms) = 0;
// Called when the set of keys for this session changes or existing keys
// change state. |has_additional_usable_key| is set if a key is newly
// usable (e.g. new key available, previously expired key has been
// renewed, etc.) and the browser should attempt to resume playback
// if necessary.
- virtual void KeysStatusesChange(
+ virtual void OnSessionKeysChange(
const WebVector<WebEncryptedMediaKeyInformation>&,
bool has_additional_usable_key) = 0;
diff --git a/chromium/third_party/blink/public/platform/web_content_settings_client.h b/chromium/third_party/blink/public/platform/web_content_settings_client.h
index 3f98347f168..655b11220e8 100644
--- a/chromium/third_party/blink/public/platform/web_content_settings_client.h
+++ b/chromium/third_party/blink/public/platform/web_content_settings_client.h
@@ -62,11 +62,6 @@ class WebContentSettingsClient {
return enabled_per_settings;
}
- // Retrieves the client hints that should be attached to the request for the
- // given URL.
- virtual void GetAllowedClientHintsFromSource(const blink::WebURL& url,
- WebEnabledClientHints*) const {}
-
// Controls whether insecure scripts are allowed to execute for this frame.
virtual bool AllowRunningInsecureContent(bool enabled_per_settings,
const WebURL&) {
diff --git a/chromium/third_party/blink/public/platform/web_dedicated_worker.h b/chromium/third_party/blink/public/platform/web_dedicated_worker.h
index 5cfebb221c7..706755e42e7 100644
--- a/chromium/third_party/blink/public/platform/web_dedicated_worker.h
+++ b/chromium/third_party/blink/public/platform/web_dedicated_worker.h
@@ -5,11 +5,14 @@
#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_DEDICATED_WORKER_H_
#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_DEDICATED_WORKER_H_
+#include <memory>
#include "third_party/blink/public/mojom/browser_interface_broker.mojom-shared.h"
#include "third_party/blink/public/platform/cross_variant_mojo_util.h"
namespace blink {
+struct WorkerMainScriptLoadParameters;
+
// PlzDedicatedWorker:
// WebDedicatedWorker is the interface to access blink::DedicatedWorker from
// content::DedicatedWorkerHostFactoryClient.
@@ -25,7 +28,9 @@ class WebDedicatedWorker {
// Called when content::DedicatedWorkerHost started loading the main worker
// script in the browser process, and the script information is sent back to
// the content::DedicatedWorkerHostFactoryClient.
- virtual void OnScriptLoadStarted() = 0;
+ virtual void OnScriptLoadStarted(
+ std::unique_ptr<WorkerMainScriptLoadParameters>
+ worker_main_script_load_params) = 0;
// Called when content::DedicatedWorkerHost failed to start loading the main
// worker script in the browser process.
diff --git a/chromium/third_party/blink/public/platform/web_dedicated_worker_host_factory_client.h b/chromium/third_party/blink/public/platform/web_dedicated_worker_host_factory_client.h
index fa8c65f74f1..d0230c9a059 100644
--- a/chromium/third_party/blink/public/platform/web_dedicated_worker_host_factory_client.h
+++ b/chromium/third_party/blink/public/platform/web_dedicated_worker_host_factory_client.h
@@ -6,9 +6,11 @@
#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_DEDICATED_WORKER_HOST_FACTORY_CLIENT_H_
#include "base/memory/ref_counted.h"
+#include "base/unguessable_token.h"
#include "mojo/public/cpp/system/message_pipe.h"
#include "services/network/public/mojom/fetch_api.mojom-shared.h"
#include "services/network/public/mojom/referrer_policy.mojom-shared.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
#include "third_party/blink/public/mojom/blob/blob_url_store.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h"
#include "third_party/blink/public/platform/cross_variant_mojo_util.h"
@@ -37,10 +39,12 @@ class WebDedicatedWorkerHostFactoryClient {
// For non-PlzDedicatedWorker. This will be removed once PlzDedicatedWorker is
// enabled by default.
virtual void CreateWorkerHostDeprecated(
+ const DedicatedWorkerToken& dedicated_worker_token,
base::OnceCallback<void(const network::CrossOriginEmbedderPolicy&)>
callback) = 0;
// For PlzDedicatedWorker.
virtual void CreateWorkerHost(
+ const DedicatedWorkerToken& dedicated_worker_token,
const blink::WebURL& script_url,
network::mojom::CredentialsMode credentials_mode,
const blink::WebFetchClientSettingsObject& fetch_client_settings_object,
diff --git a/chromium/third_party/blink/public/platform/web_drag_data.h b/chromium/third_party/blink/public/platform/web_drag_data.h
index 28fcc8ef358..e36e4b3f76f 100644
--- a/chromium/third_party/blink/public/platform/web_drag_data.h
+++ b/chromium/third_party/blink/public/platform/web_drag_data.h
@@ -31,6 +31,10 @@
#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_DRAG_DATA_H_
#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_DRAG_DATA_H_
+#include "base/memory/scoped_refptr.h"
+#include "services/network/public/mojom/referrer_policy.mojom-shared.h"
+#include "third_party/blink/public/mojom/native_file_system/native_file_system_drag_drop_token.mojom-shared.h"
+#include "third_party/blink/public/platform/cross_variant_mojo_util.h"
#include "third_party/blink/public/platform/web_common.h"
#include "third_party/blink/public/platform/web_data.h"
#include "third_party/blink/public/platform/web_string.h"
@@ -38,10 +42,13 @@
#include "third_party/blink/public/platform/web_vector.h"
namespace blink {
-
template <typename T>
class WebVector;
+using NativeFileSystemDropData =
+ base::RefCountedData<blink::CrossVariantMojoRemote<
+ mojom::NativeFileSystemDragDropTokenInterfaceBase>>;
+
// Holds data that may be exchanged through a drag-n-drop operation. It is
// inexpensive to copy a WebDragData object.
class WebDragData {
@@ -77,6 +84,7 @@ class WebDragData {
// Only valid when storage_type == kStorageTypeFilename.
WebString filename_data;
WebString display_name_data;
+ scoped_refptr<NativeFileSystemDropData> native_file_system_entry;
// Only valid when storage_type == kStorageTypeBinaryData.
WebData binary_data;
@@ -90,7 +98,7 @@ class WebDragData {
WebString file_system_id;
};
- WebDragData() : modifier_key_state_(0) {}
+ WebDragData() = default;
WebDragData(const WebDragData& object) = default;
@@ -114,14 +122,23 @@ class WebDragData {
filesystem_id_ = filesystem_id;
}
- int ModifierKeyState() const { return modifier_key_state_; }
+ network::mojom::ReferrerPolicy ReferrerPolicy() const {
+ return referrer_policy_;
+ }
- void SetModifierKeyState(int state) { modifier_key_state_ = state; }
+ void SetReferrerPolicy(network::mojom::ReferrerPolicy referrer_policy) {
+ referrer_policy_ = referrer_policy;
+ }
private:
WebVector<Item> item_list_;
- int modifier_key_state_; // State of Shift/Ctrl/Alt/Meta keys.
WebString filesystem_id_;
+
+ // Used for items where string_type == "downloadurl". Stores the referrer
+ // policy for usage when dragging a link out of the webview results in a
+ // download.
+ network::mojom::ReferrerPolicy referrer_policy_ =
+ network::mojom::ReferrerPolicy::kDefault;
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/platform/web_failing_url_loader_factory.h b/chromium/third_party/blink/public/platform/web_failing_url_loader_factory.h
deleted file mode 100644
index 06747adfcd5..00000000000
--- a/chromium/third_party/blink/public/platform/web_failing_url_loader_factory.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2020 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_FAILING_URL_LOADER_FACTORY_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_FAILING_URL_LOADER_FACTORY_H_
-
-#include "third_party/blink/public/platform/web_common.h"
-#include "third_party/blink/public/platform/web_url_loader_factory.h"
-
-namespace blink {
-
-// A WebURLLoaderFactory implementation that creates WebURLLoaders that
-// always fail loading.
-class BLINK_PLATFORM_EXPORT WebFailingURLLoaderFactory final
- : public WebURLLoaderFactory {
- public:
- WebFailingURLLoaderFactory() = default;
- ~WebFailingURLLoaderFactory() override = default;
-
- std::unique_ptr<WebURLLoader> CreateURLLoader(
- const WebURLRequest&,
- std::unique_ptr<scheduler::WebResourceLoadingTaskRunnerHandle>) override;
-};
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_FAILING_URL_LOADER_FACTORY_H_
diff --git a/chromium/third_party/blink/public/platform/web_frame_request_blocker.h b/chromium/third_party/blink/public/platform/web_frame_request_blocker.h
new file mode 100644
index 00000000000..334b0065c0c
--- /dev/null
+++ b/chromium/third_party/blink/public/platform/web_frame_request_blocker.h
@@ -0,0 +1,43 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_FRAME_REQUEST_BLOCKER_H_
+#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_FRAME_REQUEST_BLOCKER_H_
+
+#include "base/memory/ref_counted.h"
+#include "third_party/blink/public/platform/web_common.h"
+
+namespace blink {
+
+class URLLoaderThrottle;
+
+// Allows the browser to block and then resume requests from a frame. This
+// includes requests from the frame's dedicated workers as well.
+// This class is thread-safe because it can be used on multiple threads, for
+// example by sync XHRs and dedicated workers.
+// TODO(crbug.com/581037): once committed interstitials launch, the remaining
+// use cases should be switched to pause the frame request in the browser and
+// this code can be removed.
+class BLINK_PLATFORM_EXPORT WebFrameRequestBlocker
+ : public base::RefCountedThreadSafe<WebFrameRequestBlocker> {
+ public:
+ virtual ~WebFrameRequestBlocker() = default;
+
+ static scoped_refptr<WebFrameRequestBlocker> Create();
+
+ // Block any new subresource requests.
+ virtual void Block() = 0;
+
+ // Resumes any blocked subresource requests.
+ virtual void Resume() = 0;
+
+ // Cancels any blocked subresource requests.
+ virtual void Cancel() = 0;
+
+ virtual std::unique_ptr<URLLoaderThrottle> GetThrottleIfRequestsBlocked() = 0;
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_FRAME_REQUEST_BLOCKER_H_
diff --git a/chromium/third_party/blink/public/platform/web_graphics_context_3d_provider.h b/chromium/third_party/blink/public/platform/web_graphics_context_3d_provider.h
index 6ef66caa42e..809da8692b3 100644
--- a/chromium/third_party/blink/public/platform/web_graphics_context_3d_provider.h
+++ b/chromium/third_party/blink/public/platform/web_graphics_context_3d_provider.h
@@ -35,7 +35,7 @@
#include "base/callback_forward.h"
#include "third_party/skia/include/core/SkImageInfo.h"
-class GrContext;
+class GrDirectContext;
namespace cc {
class ImageDecodeCache;
@@ -94,7 +94,7 @@ class WebGraphicsContext3DProvider {
virtual gpu::webgpu::WebGPUInterface* WebGPUInterface() = 0;
virtual bool IsContextLost() = 0; // Has the GPU driver lost this context?
virtual bool BindToCurrentThread() = 0;
- virtual GrContext* GetGrContext() = 0;
+ virtual GrDirectContext* GetGrContext() = 0;
virtual const gpu::Capabilities& GetCapabilities() const = 0;
virtual const gpu::GpuFeatureInfo& GetGpuFeatureInfo() const = 0;
virtual const WebglPreferences& GetWebglPreferences() const = 0;
diff --git a/chromium/third_party/blink/public/platform/web_isolate.h b/chromium/third_party/blink/public/platform/web_isolate.h
deleted file mode 100644
index 89c4b5ae29c..00000000000
--- a/chromium/third_party/blink/public/platform/web_isolate.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2020 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_ISOLATE_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_ISOLATE_H_
-
-#include <memory>
-
-#include "third_party/blink/public/platform/web_common.h"
-
-namespace blink {
-
-// WebIsolate is an interface to expose blink::BlinkIsolate to content/.
-class WebIsolate {
- public:
- BLINK_EXPORT static std::unique_ptr<WebIsolate> Create();
-
- virtual ~WebIsolate() = default;
-};
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_ISOLATE_H_
diff --git a/chromium/third_party/blink/public/platform/web_isolated_world_info.h b/chromium/third_party/blink/public/platform/web_isolated_world_info.h
index 71c66ecbd9c..1f1ba5f6f07 100644
--- a/chromium/third_party/blink/public/platform/web_isolated_world_info.h
+++ b/chromium/third_party/blink/public/platform/web_isolated_world_info.h
@@ -2,8 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "third_party/blink/public/platform/web_common.h"
#include "third_party/blink/public/platform/web_security_origin.h"
#include "third_party/blink/public/platform/web_string.h"
+#include "v8/include/v8.h"
#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_ISOLATED_WORLD_INFO_H_
#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_ISOLATED_WORLD_INFO_H_
@@ -49,6 +51,19 @@ struct WebIsolatedWorldInfo {
WebString stable_id;
};
+// Sets up an isolated world by associating a |world_id| with |info|.
+// worldID must be > 0 (as 0 represents the main world).
+// worldID must be < kEmbedderWorldIdLimit, high number used internally.
+BLINK_EXPORT void SetIsolatedWorldInfo(int32_t world_id,
+ const WebIsolatedWorldInfo& info);
+
+// Returns the stable ID that was set with SetIsolatedWorldInfo.
+BLINK_EXPORT WebString GetIsolatedWorldStableId(v8::Local<v8::Context>);
+
+// Returns the human readable name that was set with SetIsolatedWorldInfo.
+BLINK_EXPORT WebString
+ GetIsolatedWorldHumanReadableName(v8::Local<v8::Context>);
+
} // namespace blink
#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_ISOLATED_WORLD_INFO_H_
diff --git a/chromium/third_party/blink/public/platform/web_media_player_client.h b/chromium/third_party/blink/public/platform/web_media_player_client.h
index b2616e6925c..0ed06742ddd 100644
--- a/chromium/third_party/blink/public/platform/web_media_player_client.h
+++ b/chromium/third_party/blink/public/platform/web_media_player_client.h
@@ -36,6 +36,8 @@
#include "third_party/blink/public/platform/web_media_player.h"
#include "ui/gfx/color_space.h"
+#include "third_party/blink/public/platform/web_texttrack_metadata.h"
+
namespace cc {
class Layer;
}
@@ -136,6 +138,9 @@ class BLINK_PLATFORM_EXPORT WebMediaPlayerClient {
// any.
virtual WebRemotePlaybackClient* RemotePlaybackClient() { return nullptr; }
+ // Returns metadata for out-of-band text tracks declared as <track> elements.
+ virtual std::vector<TextTrackMetadata> GetTextTrackMetadata() = 0;
+
// Returns the color space to render media into if.
// Rendering media into this color space may avoid some conversions.
virtual gfx::ColorSpace TargetColorSpace() { return gfx::ColorSpace(); }
diff --git a/chromium/third_party/blink/public/platform/web_media_player_source.h b/chromium/third_party/blink/public/platform/web_media_player_source.h
index 77d66d03c34..dac082ce240 100644
--- a/chromium/third_party/blink/public/platform/web_media_player_source.h
+++ b/chromium/third_party/blink/public/platform/web_media_player_source.h
@@ -5,8 +5,8 @@
#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_MEDIA_PLAYER_SOURCE_H_
#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_MEDIA_PLAYER_SOURCE_H_
+#include "third_party/blink/public/platform/modules/mediastream/web_media_stream.h"
#include "third_party/blink/public/platform/web_common.h"
-#include "third_party/blink/public/platform/web_media_stream.h"
#include "third_party/blink/public/platform/web_url.h"
namespace blink {
diff --git a/chromium/third_party/blink/public/platform/web_mixed_content.h b/chromium/third_party/blink/public/platform/web_mixed_content.h
index 902f582e1c3..ce1c06da554 100644
--- a/chromium/third_party/blink/public/platform/web_mixed_content.h
+++ b/chromium/third_party/blink/public/platform/web_mixed_content.h
@@ -39,9 +39,11 @@ namespace blink {
// Helper functions related to mixed content checks.
class WebMixedContent {
public:
+ enum class CheckModeForPlugin { kStrict, kLax };
+
BLINK_PLATFORM_EXPORT static WebMixedContentContextType
- ContextTypeFromRequestContext(mojom::RequestContextType,
- bool strict_mixed_content_checking_for_plugin);
+ ContextTypeFromRequestContext(mojom::RequestContextType,
+ CheckModeForPlugin);
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/platform/web_runtime_features.h b/chromium/third_party/blink/public/platform/web_runtime_features.h
index 0256e624c46..ce3a4125331 100644
--- a/chromium/third_party/blink/public/platform/web_runtime_features.h
+++ b/chromium/third_party/blink/public/platform/web_runtime_features.h
@@ -105,6 +105,7 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnableDecodeLossyWebPImagesToYUV(bool);
BLINK_PLATFORM_EXPORT static void EnableDisplayCutoutAPI(bool);
BLINK_PLATFORM_EXPORT static void EnableDocumentPolicy(bool);
+ BLINK_PLATFORM_EXPORT static void EnableDocumentPolicyNegotiation(bool);
BLINK_PLATFORM_EXPORT static void EnableFeaturePolicyForSandbox(bool);
BLINK_PLATFORM_EXPORT static void EnableFileSystem(bool);
BLINK_PLATFORM_EXPORT static void EnableForceSynchronousHTMLParsing(bool);
@@ -144,6 +145,7 @@ class WebRuntimeFeatures {
bool);
BLINK_PLATFORM_EXPORT static void EnablePeriodicBackgroundSync(bool);
BLINK_PLATFORM_EXPORT static void EnablePermissionsAPI(bool);
+ BLINK_PLATFORM_EXPORT static void EnablePermissionsPolicyHeader(bool);
BLINK_PLATFORM_EXPORT static void EnablePictureInPicture(bool);
BLINK_PLATFORM_EXPORT static void EnablePictureInPictureAPI(bool);
BLINK_PLATFORM_EXPORT static void EnablePointerLockOptions(bool);
@@ -151,12 +153,14 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnablePreciseMemoryInfo(bool);
BLINK_PLATFORM_EXPORT static void EnablePresentationAPI(bool);
BLINK_PLATFORM_EXPORT static void EnablePushMessaging(bool);
+ BLINK_PLATFORM_EXPORT static void EnablePushSubscriptionChangeEvent(bool);
BLINK_PLATFORM_EXPORT static void EnableReducedReferrerGranularity(bool);
BLINK_PLATFORM_EXPORT static void EnableRemotePlaybackAPI(bool);
BLINK_PLATFORM_EXPORT static void
EnableRestrictAutomaticLazyFrameLoadingToDataSaver(bool);
BLINK_PLATFORM_EXPORT static void
EnableRestrictAutomaticLazyImageLoadingToDataSaver(bool);
+ BLINK_PLATFORM_EXPORT static void EnableSecurePaymentConfirmationDebug(bool);
BLINK_PLATFORM_EXPORT static void EnableScriptedSpeechRecognition(bool);
BLINK_PLATFORM_EXPORT static void EnableScriptedSpeechSynthesis(bool);
BLINK_PLATFORM_EXPORT static void EnableAutoLazyLoadOnReloads(bool);
@@ -165,8 +169,6 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnableTextFragmentAnchor(bool);
BLINK_PLATFORM_EXPORT static void EnableTouchEventFeatureDetection(bool);
BLINK_PLATFORM_EXPORT static void EnableScrollUnification(bool);
- BLINK_PLATFORM_EXPORT static void EnableUserActivationPostMessageTransfer(
- bool);
BLINK_PLATFORM_EXPORT static void EnableUserActivationSameOriginVisibility(
bool);
BLINK_PLATFORM_EXPORT static void EnableV8IdleTasks(bool);
@@ -183,7 +185,6 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnableWebGPU(bool);
BLINK_PLATFORM_EXPORT static void EnableWebNfc(bool);
BLINK_PLATFORM_EXPORT static void EnableWebShare(bool);
- BLINK_PLATFORM_EXPORT static void EnableWebShareV2(bool);
BLINK_PLATFORM_EXPORT static void EnableWebUsb(bool);
BLINK_PLATFORM_EXPORT static void EnableWebXR(bool);
BLINK_PLATFORM_EXPORT static void EnableWebXRAnchors(bool);
@@ -249,6 +250,11 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnableVideoWakeLockOptimisationHiddenMuted(
bool);
BLINK_PLATFORM_EXPORT static void EnableContentIndex(bool);
+ BLINK_PLATFORM_EXPORT static void EnableRestrictGamepadAccess(bool);
+ BLINK_PLATFORM_EXPORT static void EnableConversionMeasurementInfraSupport(
+ bool);
+
+ BLINK_PLATFORM_EXPORT static void EnableCompositingOptimizations(bool);
private:
WebRuntimeFeatures();
diff --git a/chromium/third_party/blink/public/platform/web_string.h b/chromium/third_party/blink/public/platform/web_string.h
index b9f774c190c..c8a5974221e 100644
--- a/chromium/third_party/blink/public/platform/web_string.h
+++ b/chromium/third_party/blink/public/platform/web_string.h
@@ -32,6 +32,7 @@
#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_STRING_H_
#include <cstring>
+#include <limits>
#include <string>
#include "base/memory/scoped_refptr.h"
@@ -122,6 +123,9 @@ class WebString {
BLINK_PLATFORM_EXPORT std::string Utf8(
UTF8ConversionMode = UTF8ConversionMode::kLenient) const;
+ BLINK_PLATFORM_EXPORT WebString
+ Substring(size_t pos, size_t len = std::numeric_limits<size_t>::max()) const;
+
BLINK_PLATFORM_EXPORT static WebString FromUTF8(const char* data,
size_t length);
static WebString FromUTF8(const std::string& s) {
diff --git a/chromium/third_party/blink/public/platform/web_text_autosizer_page_info.h b/chromium/third_party/blink/public/platform/web_text_autosizer_page_info.h
deleted file mode 100644
index 3299eca5b46..00000000000
--- a/chromium/third_party/blink/public/platform/web_text_autosizer_page_info.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_TEXT_AUTOSIZER_PAGE_INFO_H_
-#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_TEXT_AUTOSIZER_PAGE_INFO_H_
-
-namespace blink {
-
-struct WebTextAutosizerPageInfo {
- WebTextAutosizerPageInfo() = default;
-
- int main_frame_width; // LocalFrame width in density-independent pixels.
- int main_frame_layout_width; // Layout width in CSS pixels.
- float device_scale_adjustment;
-};
-
-inline bool operator==(const WebTextAutosizerPageInfo& lhs,
- const WebTextAutosizerPageInfo& rhs) {
- return lhs.main_frame_width == rhs.main_frame_width &&
- lhs.main_frame_layout_width == rhs.main_frame_layout_width &&
- lhs.device_scale_adjustment == rhs.device_scale_adjustment;
-}
-
-inline bool operator!=(const WebTextAutosizerPageInfo& lhs,
- const WebTextAutosizerPageInfo& rhs) {
- return lhs.main_frame_width != rhs.main_frame_width ||
- lhs.main_frame_layout_width != rhs.main_frame_layout_width ||
- lhs.device_scale_adjustment != rhs.device_scale_adjustment;
-}
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_TEXT_AUTOSIZER_PAGE_INFO_H_
diff --git a/chromium/third_party/blink/public/platform/web_text_input_info.h b/chromium/third_party/blink/public/platform/web_text_input_info.h
index 58a89160fb5..666bc7b8dfe 100644
--- a/chromium/third_party/blink/public/platform/web_text_input_info.h
+++ b/chromium/third_party/blink/public/platform/web_text_input_info.h
@@ -30,6 +30,8 @@
#include "third_party/blink/public/platform/web_string.h"
#include "third_party/blink/public/platform/web_text_input_mode.h"
#include "third_party/blink/public/platform/web_text_input_type.h"
+#include "third_party/blink/public/platform/web_vector.h"
+#include "ui/base/ime/ime_text_span.h"
#include "ui/base/ime/mojom/virtual_keyboard_types.mojom-shared.h"
#include "ui/base/ime/text_input_action.h"
@@ -67,6 +69,9 @@ struct WebTextInputInfo {
ui::mojom::VirtualKeyboardPolicy virtual_keyboard_policy =
ui::mojom::VirtualKeyboardPolicy::AUTO;
+ // The array of ime_text_spans at the current caret position.
+ WebVector<ui::ImeTextSpan> ime_text_spans;
+
BLINK_PLATFORM_EXPORT bool Equals(const WebTextInputInfo&) const;
WebTextInputInfo()
diff --git a/chromium/third_party/blink/public/platform/web_texttrack_metadata.h b/chromium/third_party/blink/public/platform/web_texttrack_metadata.h
new file mode 100644
index 00000000000..3e616c51719
--- /dev/null
+++ b/chromium/third_party/blink/public/platform/web_texttrack_metadata.h
@@ -0,0 +1,35 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_TEXTTRACK_METADATA_H_
+#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_TEXTTRACK_METADATA_H_
+
+#include "third_party/blink/public/platform/web_common.h"
+
+namespace blink {
+
+class BLINK_PLATFORM_EXPORT TextTrackMetadata {
+ public:
+ TextTrackMetadata(const std::string& lang,
+ const std::string& kind,
+ const std::string& label,
+ const std::string& id)
+ : language_(lang), kind_(kind), label_(label), id_(id) {}
+ ~TextTrackMetadata() = default;
+
+ const std::string& language() const { return language_; }
+ const std::string& kind() const { return kind_; }
+ const std::string& label() const { return label_; }
+ const std::string& id() const { return id_; }
+
+ private:
+ std::string language_;
+ std::string kind_;
+ std::string label_;
+ std::string id_;
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_TEXTTRACK_METADATA_H_
diff --git a/chromium/third_party/blink/public/platform/web_theme_engine.h b/chromium/third_party/blink/public/platform/web_theme_engine.h
index 721e50be9c5..adbbb99d5a3 100644
--- a/chromium/third_party/blink/public/platform/web_theme_engine.h
+++ b/chromium/third_party/blink/public/platform/web_theme_engine.h
@@ -176,7 +176,7 @@ class WebThemeEngine {
bool right_to_left;
};
-#if defined(OS_MACOSX)
+#if defined(OS_MAC)
enum ScrollbarOrientation {
// Vertical scrollbar on the right side of content.
kVerticalOnRight,
@@ -204,7 +204,7 @@ class WebThemeEngine {
ProgressBarExtraParams progress_bar;
ScrollbarThumbExtraParams scrollbar_thumb;
ScrollbarButtonExtraParams scrollbar_button;
-#if defined(OS_MACOSX)
+#if defined(OS_MAC)
ScrollbarExtraParams scrollbar_extra;
#endif
};
diff --git a/chromium/third_party/blink/public/platform/web_url_request.h b/chromium/third_party/blink/public/platform/web_url_request.h
index 82c319733e2..9b92647d952 100644
--- a/chromium/third_party/blink/public/platform/web_url_request.h
+++ b/chromium/third_party/blink/public/platform/web_url_request.h
@@ -36,6 +36,7 @@
#include "base/optional.h"
#include "base/time/time.h"
#include "base/unguessable_token.h"
+#include "third_party/blink/public/common/loader/previews_state.h"
#include "third_party/blink/public/platform/web_common.h"
#include "ui/base/page_transition_types.h"
@@ -87,43 +88,6 @@ class WebURLRequest {
kHighest = kVeryHigh,
};
- typedef int PreviewsState;
-
- // The Previews types which determines whether to request a Preview version of
- // the resource.
- enum PreviewsTypes {
- kPreviewsUnspecified = 0, // Let the browser process decide whether or
- // not to request Preview types.
- kServerLoFiOn_DEPRECATED =
- 1 << 0, // Request a Lo-Fi version of the resource
- // from the server. Deprecated and should not be used.
- kClientLoFiOn = 1 << 1, // Request a Lo-Fi version of the resource
- // from the client.
- kClientLoFiAutoReload = 1 << 2, // Request the original version of the
- // resource after a decoding error occurred
- // when attempting to use Client Lo-Fi.
- kServerLitePageOn = 1 << 3, // Request a Lite Page version of the
- // resource from the server.
- kPreviewsNoTransform = 1 << 4, // Explicitly forbid Previews
- // transformations.
- kPreviewsOff = 1 << 5, // Request a normal (non-Preview) version of
- // the resource. Server transformations may
- // still happen if the page is heavy.
- kNoScriptOn = 1 << 6, // Request that script be disabled for page load.
- kResourceLoadingHintsOn = 1 << 7, // Request that resource loading hints be
- // used during pageload.
- kOfflinePageOn = 1 << 8,
- kLitePageRedirectOn_DEPRECATED =
- 1 << 9, // Allow the browser to redirect the resource
- // to a Lite Page server. Deprecated and should not be used.
- kDeferAllScriptOn = 1 << 10, // Request that script execution be deferred
- // until parsing completes.
- kSubresourceRedirectOn =
- 1 << 11, // Allow the subresources in the page to be redirected
- // to serve better optimized resources.
- kPreviewsStateLast = kSubresourceRedirectOn
- };
-
class ExtraData : public base::RefCounted<ExtraData> {
public:
void set_render_frame_id(int render_frame_id) {
@@ -267,6 +231,8 @@ class WebURLRequest {
BLINK_PLATFORM_EXPORT bool HasUserGesture() const;
BLINK_PLATFORM_EXPORT void SetHasUserGesture(bool);
+ BLINK_PLATFORM_EXPORT bool HasTextFragmentToken() const;
+
// A consumer controlled value intended to be used to identify the
// requestor.
BLINK_PLATFORM_EXPORT int RequestorID() const;
diff --git a/chromium/third_party/blink/public/platform/web_worker_fetch_context.h b/chromium/third_party/blink/public/platform/web_worker_fetch_context.h
index db6c05b7f85..7ccb7ab8680 100644
--- a/chromium/third_party/blink/public/platform/web_worker_fetch_context.h
+++ b/chromium/third_party/blink/public/platform/web_worker_fetch_context.h
@@ -11,10 +11,11 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_refptr.h"
#include "services/network/public/mojom/url_loader_factory.mojom-shared.h"
+#include "third_party/blink/public/mojom/loader/resource_load_info_notifier.mojom-shared.h"
#include "third_party/blink/public/mojom/service_worker/controller_service_worker_mode.mojom-shared.h"
#include "third_party/blink/public/mojom/timing/worker_timing_container.mojom-shared.h"
-#include "third_party/blink/public/platform/code_cache_loader.h"
#include "third_party/blink/public/platform/cross_variant_mojo_util.h"
+#include "third_party/blink/public/platform/web_code_cache_loader.h"
#include "third_party/blink/public/platform/web_document_subresource_filter.h"
#include "third_party/blink/public/platform/web_security_origin.h"
#include "third_party/blink/public/platform/web_string.h"
@@ -80,10 +81,10 @@ class WebWorkerFetchContext : public base::RefCounted<WebWorkerFetchContext> {
CrossVariantMojoRemote<network::mojom::URLLoaderFactoryInterfaceBase>
url_loader_factory) = 0;
- // Returns a CodeCacheLoader that fetches data from code caches. If
+ // Returns a WebCodeCacheLoader that fetches data from code caches. If
// a nullptr is returned then data would not be fetched from the code
// cache.
- virtual std::unique_ptr<CodeCacheLoader> CreateCodeCacheLoader() {
+ virtual std::unique_ptr<WebCodeCacheLoader> CreateCodeCacheLoader() {
return nullptr;
}
@@ -117,15 +118,6 @@ class WebWorkerFetchContext : public base::RefCounted<WebWorkerFetchContext> {
// or a service worker this is unset.
virtual base::Optional<WebSecurityOrigin> TopFrameOrigin() const = 0;
- // Reports the certificate error to the browser process.
- virtual void DidRunContentWithCertificateErrors() {}
- virtual void DidDisplayContentWithCertificateErrors() {}
-
- // Reports that the security origin has run active content from an insecure
- // source.
- virtual void DidRunInsecureContent(const WebSecurityOrigin&,
- const WebURL& insecure_url) {}
-
// Sets the builder object of WebDocumentSubresourceFilter on the main thread
// which will be used in TakeSubresourceFilter() to create a
// WebDocumentSubresourceFilter on the worker thread.
@@ -161,6 +153,15 @@ class WebWorkerFetchContext : public base::RefCounted<WebWorkerFetchContext> {
// This flag is set to disallow all network accesses in the context. Used for
// offline capability detection in service workers.
virtual void SetIsOfflineMode(bool is_offline_mode) = 0;
+
+ // Clones a valid notifier held by this context which is used to notify
+ // loading status only when
+ // IsLoadMainScriptForPlzDedicatedWorkerByParamsEnabled() is true.
+ virtual CrossVariantMojoRemote<mojom::ResourceLoadInfoNotifierInterfaceBase>
+ CloneResourceLoadInfoNotifier() {
+ return CrossVariantMojoRemote<mojom::ResourceLoadInfoNotifierInterfaceBase>(
+ mojo::NullRemote());
+ }
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/platform/webaudiosourceprovider_impl.h b/chromium/third_party/blink/public/platform/webaudiosourceprovider_impl.h
index 5383074dcbf..bbf2a0b3d28 100644
--- a/chromium/third_party/blink/public/platform/webaudiosourceprovider_impl.h
+++ b/chromium/third_party/blink/public/platform/webaudiosourceprovider_impl.h
@@ -75,6 +75,7 @@ class BLINK_PLATFORM_EXPORT WebAudioSourceProviderImpl
bool CurrentThreadIsRenderingThread() override;
void SwitchOutputDevice(const std::string& device_id,
media::OutputDeviceStatusCB callback) override;
+ void TaintOrigin();
// These methods allow a client to get a copy of the rendered audio.
void SetCopyAudioCallback(CopyAudioCB callback);
diff --git a/chromium/third_party/blink/public/public_typemaps.gni b/chromium/third_party/blink/public/public_typemaps.gni
deleted file mode 100644
index 0b492445953..00000000000
--- a/chromium/third_party/blink/public/public_typemaps.gni
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# These are typemaps which are exposed by Blink to its embedder.
-typemaps = [
- "//third_party/blink/public/common/fetch/fetch_api_request_body.typemap",
- "//third_party/blink/public/common/fetch/fetch_api_request_headers.typemap",
- "//third_party/blink/public/common/indexeddb/indexed_db_default.typemap",
- "//third_party/blink/public/common/loader/url_loader_factory_bundle.typemap",
- "//third_party/blink/public/common/manifest/manifest.typemap",
- "//third_party/blink/public/common/mediastream/media_devices.typemap",
- "//third_party/blink/public/common/mediastream/media_stream.typemap",
- "//third_party/blink/public/common/messaging/message_port_descriptor.typemap",
- "//third_party/blink/public/common/notifications/notification_types.typemap",
- "//third_party/blink/public/common/peerconnection/peer_connection_tracker.typemap",
- "//third_party/blink/public/common/screen_orientation/screen_orientation_lock_types.typemap",
- "//third_party/blink/public/common/user_agent/user_agent_metadata.typemap",
-]
diff --git a/chromium/third_party/blink/public/strings/blink_strings.grd b/chromium/third_party/blink/public/strings/blink_strings.grd
index c7f732c88cf..85cab9967d4 100644
--- a/chromium/third_party/blink/public/strings/blink_strings.grd
+++ b/chromium/third_party/blink/public/strings/blink_strings.grd
@@ -706,9 +706,6 @@ below:
<message name="IDS_AX_ROLE_MENU_BAR" desc="Accessibility role description for a menu bar">
menu bar
</message>
- <message name="IDS_AX_ROLE_MENU_BUTTON" desc="Accessibility role description for a menu button, a button that opens a menu">
- menu button
- </message>
<message name="IDS_AX_ROLE_MENU_ITEM" desc="Accessibility role description for a menu item">
menu item
</message>
@@ -781,6 +778,12 @@ below:
<message name="IDS_AX_ROLE_TREE_ITEM" desc="Accessibility role description for a tree item">
tree item
</message>
+ <message name="IDS_AX_MULTISELECTABLE_STATE_DESCRIPTION" desc="Accessibility state description for a multiselectable node when some children are selected">
+ multiselectable, <ph name="SELECTED">$1<ex>3</ex></ph> of <ph name="COUNT">$2<ex>10</ex></ph> selected.
+ </message>
+ <message name="IDS_AX_MULTISELECTABLE_STATE_DESCRIPTION_NONE" desc="Accessibility state description for a multiselectable node when no children are selected">
+ multiselectable, none selected.
+ </message>
</if>
<!-- Automatic image annotations for accessibility -->
diff --git a/chromium/third_party/blink/public/strings/blink_strings_grd/IDS_AX_MULTISELECTABLE_STATE_DESCRIPTION.png.sha1 b/chromium/third_party/blink/public/strings/blink_strings_grd/IDS_AX_MULTISELECTABLE_STATE_DESCRIPTION.png.sha1
new file mode 100644
index 00000000000..fe30810fc01
--- /dev/null
+++ b/chromium/third_party/blink/public/strings/blink_strings_grd/IDS_AX_MULTISELECTABLE_STATE_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+7aea0db8d50cfd1db94a7c44fd56cb793dc98cb6 \ No newline at end of file
diff --git a/chromium/third_party/blink/public/strings/blink_strings_grd/IDS_AX_MULTISELECTABLE_STATE_DESCRIPTION_NONE.png.sha1 b/chromium/third_party/blink/public/strings/blink_strings_grd/IDS_AX_MULTISELECTABLE_STATE_DESCRIPTION_NONE.png.sha1
new file mode 100644
index 00000000000..11852bd5029
--- /dev/null
+++ b/chromium/third_party/blink/public/strings/blink_strings_grd/IDS_AX_MULTISELECTABLE_STATE_DESCRIPTION_NONE.png.sha1
@@ -0,0 +1 @@
+3e059c4858bc962428a3ec4dc857f75d90f39c14 \ No newline at end of file
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_af.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_af.xtb
index 3f77808451a..27aa35ad39c 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_af.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_af.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">erkennings</translation>
<translation id="1342835525016946179">artikel</translation>
<translation id="1359897965706325498">banier</translation>
+<translation id="1480676835519562650">kan meer as een kies; <ph name="SELECTED" /> van <ph name="COUNT" /> is gekies.</translation>
<translation id="1589122976691792535">streek</translation>
<translation id="1591562245178063882">Vandeesmaand</translation>
<translation id="1637811476055996098">Kies lêers</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dag</translation>
<translation id="2507943997699731163">Vul asseblief hierdie veld in.</translation>
<translation id="2508569020611168319">oortjielys</translation>
+<translation id="2530182415807757784">kan meer as een kies; niks is gekies nie.</translation>
<translation id="2561842179657104141">wys meer mediakontroles</translation>
<translation id="2572483411312390101">speel</translation>
<translation id="2613802280814924224">Voer asseblief 'n geldige waarde in. Die naaste geldige waarde is <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">kieslysbalk</translation>
<translation id="4360991593054037559">Voer asseblief 'n geldige waarde in. Die twee naaste geldige waardes is <ph name="VALID_VALUE_LOW" /> en <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">V&amp;A</translation>
-<translation id="4413860115965805769">kieslysknoppie</translation>
<translation id="4444765639179266822">Lyk of dit sê: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">woordelysverwysing</translation>
<translation id="4522570452068850558">Besonderhede</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_am.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_am.xtb
index 2b8bd198a4f..fa391984ad1 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_am.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_am.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">ክሬዲቶች</translation>
<translation id="1342835525016946179">ጽሑፍ</translation>
<translation id="1359897965706325498">ሰንደቅ</translation>
+<translation id="1480676835519562650">በብዛት ሊመረጥ የሚችል፣ <ph name="SELECTED" /> ከ<ph name="COUNT" /> ተመርጠዋል።</translation>
<translation id="1589122976691792535">ክልል</translation>
<translation id="1591562245178063882">በዚህ ወር</translation>
<translation id="1637811476055996098">ፋይሎችን ይምረጡ</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">ቀን</translation>
<translation id="2507943997699731163">እባክዎ ይህን መስክ ይሙሉት።</translation>
<translation id="2508569020611168319">የትር ዝርዝር</translation>
+<translation id="2530182415807757784">በብዛት ሊመረጥ የሚችል፣ ምንም አልተመረጠም።</translation>
<translation id="2561842179657104141">ተጨማሪ የማህደረ መረጃ ቁጥጥሮችን አሳይ</translation>
<translation id="2572483411312390101">አጫውት</translation>
<translation id="2613802280814924224">እባክዎ የሚሰራ ዋጋ ያስገቡ። የሚቀርበው ዋጋ <ph name="VALID_VALUE" /> ነው።</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">የምናሌ አሞሌ</translation>
<translation id="4360991593054037559">እባክዎ የሚሰራ ዋጋ ያስገቡ። ሁለቱ የሚቀርቡ ዋጋዎች <ph name="VALID_VALUE_LOW" /> እና <ph name="VALID_VALUE_HIGHER" /> ናቸው።</translation>
<translation id="4384583879834880242">ጥያቄ እና መልስ</translation>
-<translation id="4413860115965805769">የምናሌ አዝራር</translation>
<translation id="4444765639179266822">እንዲህ የሚል ይመስላል፦ <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">የሙዳየ ቃላት ዋቢ</translation>
<translation id="4522570452068850558">ዝርዝሮች</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_ar.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_ar.xtb
index 6fda4b58b62..dcd184c1803 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_ar.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_ar.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">إسهامات</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">إعلان بانر</translation>
+<translation id="1480676835519562650">اختيار متعدد، تم اختيار <ph name="SELECTED" /> من أصل <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">منطقة</translation>
<translation id="1591562245178063882">هذا الشهر</translation>
<translation id="1637811476055996098">اختيار الملفات</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">يوم</translation>
<translation id="2507943997699731163">يُرجى ملء هذا الحقل.</translation>
<translation id="2508569020611168319">قائمة علامات التبويب</translation>
+<translation id="2530182415807757784">اختيار متعدد، لم يتم الاختيار.</translation>
<translation id="2561842179657104141">عرض المزيد من عناصر التحكم في الوسائط</translation>
<translation id="2572483411312390101">تشغيل</translation>
<translation id="2613802280814924224">يُرجى إدخال قيمة صالحة. علمًا بأن أقرب قيمة صالحة هي <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">شريط قوائم</translation>
<translation id="4360991593054037559">يُرجى إدخال قيمة صالحة. علمًا بأن القيم الصالحة تتراوح بين <ph name="VALID_VALUE_LOW" /> و<ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">سين وجيم</translation>
-<translation id="4413860115965805769">زر القائمة</translation>
<translation id="4444765639179266822">يبدو أنه يقول: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">مرجع مسرد مصطلحات</translation>
<translation id="4522570452068850558">التفاصيل</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_as.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_as.xtb
index 229cf4f6091..ee569ad6fd1 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_as.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_as.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">ক্ৰেডিট</translation>
<translation id="1342835525016946179">প্ৰৱন্ধ</translation>
<translation id="1359897965706325498">বেনাৰ</translation>
+<translation id="1480676835519562650">একাধিক বাছনি কৰিব পৰা, <ph name="COUNT" />ৰ ভিতৰত <ph name="SELECTED" /> টি বাছনি কৰা হ'ল।</translation>
<translation id="1589122976691792535">অঞ্চল</translation>
<translation id="1591562245178063882">এইটো মাহ</translation>
<translation id="1637811476055996098">ফাইল বাছনি কৰক</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">দিন</translation>
<translation id="2507943997699731163">অনুগ্ৰহ কৰি এই খালী ঠাই পূৰ কৰক।</translation>
<translation id="2508569020611168319">টেবৰ তালিকা</translation>
+<translation id="2530182415807757784">একাধিক বাছনি কৰিব পৰা, একো বাছনি কৰা নাই।</translation>
<translation id="2561842179657104141">অধিক মিডিয়া নিয়ন্ত্ৰণ দেখুৱাওক</translation>
<translation id="2572483411312390101">প্লে’ কৰক</translation>
<translation id="2613802280814924224">অনুগ্ৰহ কৰি এটা মান্য মান দিয়ক। নিকটতম মান্য মান হৈছে <ph name="VALID_VALUE" />।</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">মেনু বাৰ</translation>
<translation id="4360991593054037559">অনুগ্ৰহ কৰি এক মান্য মান দিয়ক। নিকটৱর্তী মান্য মান দুটা হৈছে <ph name="VALID_VALUE_LOW" /> আৰু <ph name="VALID_VALUE_HIGHER" />।</translation>
<translation id="4384583879834880242">প্ৰশ্ন আৰু উত্তৰ</translation>
-<translation id="4413860115965805769">মেনু বুটাম</translation>
<translation id="4444765639179266822">এনেকুৱা কিহবাৰ কথা কোৱা যেন লাগিছে: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">শব্দাৱলীৰ প্ৰসংগ</translation>
<translation id="4522570452068850558">সবিশেষ</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_az.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_az.xtb
index f4acccfd19c..87451c5cba1 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_az.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_az.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">kreditlər</translation>
<translation id="1342835525016946179">məqalə</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">çox sayda seçilə bilər, <ph name="SELECTED" />/<ph name="COUNT" /> seçilib.</translation>
<translation id="1589122976691792535">region</translation>
<translation id="1591562245178063882">Bu ay</translation>
<translation id="1637811476055996098">Faylları seçin</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Gün</translation>
<translation id="2507943997699731163">Lütfən, bu sahəni doldurun.</translation>
<translation id="2508569020611168319">panel siyahısı</translation>
+<translation id="2530182415807757784">çox sayda seçilə bilər, heç biri seçilməyib.</translation>
<translation id="2561842179657104141">daha çox media kontrolları göstərin</translation>
<translation id="2572483411312390101">oxudun</translation>
<translation id="2613802280814924224">Düzgün dəyər daxil edin. Ən yaxın düzgün dəyər: <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">menyu paneli</translation>
<translation id="4360991593054037559">Düzgün dəyər daxil edin. Ən uyğun düzgün dəyərlər: <ph name="VALID_VALUE_LOW" /> və <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Sual-Cavab</translation>
-<translation id="4413860115965805769">menyu düyməsi</translation>
<translation id="4444765639179266822">Ola bilər: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">lüğət istinadı</translation>
<translation id="4522570452068850558">Detallar</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_be.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_be.xtb
index f6d29790e19..53ec52e0b9a 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_be.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_be.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">падзякі</translation>
<translation id="1342835525016946179">артыкул</translation>
<translation id="1359897965706325498">банер</translation>
+<translation id="1480676835519562650">ёсць магчымасць множнага выбару, выбрана: <ph name="SELECTED" /> з <ph name="COUNT" /></translation>
<translation id="1589122976691792535">рэгіён</translation>
<translation id="1591562245178063882">Гэты месяц</translation>
<translation id="1637811476055996098">Выбраць файлы</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Дзень</translation>
<translation id="2507943997699731163">Запоўніце гэта поле.</translation>
<translation id="2508569020611168319">спіс укладак</translation>
+<translation id="2530182415807757784">ёсць магчымасць множнага выбару, нічога не выбрана</translation>
<translation id="2561842179657104141">паказаць больш элементаў кіравання мультымедыя</translation>
<translation id="2572483411312390101">прайграць</translation>
<translation id="2613802280814924224">Увядзіце дапушчальнае значэнне. Найбліжэйшае дапушчальнае значэнне: <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">панэль меню</translation>
<translation id="4360991593054037559">Увядзіце дапушчальнае значэнне. Два найбліжэйшыя дапушчальныя значэнні: <ph name="VALID_VALUE_LOW" /> і <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Пытанні і адказы</translation>
-<translation id="4413860115965805769">кнопка меню</translation>
<translation id="4444765639179266822">Здаецца, напісана наступнае: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">спасылка на гласарый</translation>
<translation id="4522570452068850558">Падрабязнасці</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_bg.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_bg.xtb
index 6cf4fa4ea15..74382833da6 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_bg.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_bg.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">признания за източника</translation>
<translation id="1342835525016946179">статия</translation>
<translation id="1359897965706325498">банер</translation>
+<translation id="1480676835519562650">възможност за избиране на няколко опции, избрани са <ph name="SELECTED" /> от <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">регион</translation>
<translation id="1591562245178063882">Този месец</translation>
<translation id="1637811476055996098">Избор на файлове</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Ден</translation>
<translation id="2507943997699731163">Моля, попълнете това поле.</translation>
<translation id="2508569020611168319">списък с раздели</translation>
+<translation id="2530182415807757784">възможност за избиране на няколко опции, не е избрано нищо.</translation>
<translation id="2561842179657104141">показване на още контроли за мултимедия</translation>
<translation id="2572483411312390101">пускане</translation>
<translation id="2613802280814924224">Моля, въведете валидна стойност. Най-близката такава е <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">лента с менюта</translation>
<translation id="4360991593054037559">Моля, въведете валидна стойност. Двете най-близки такива са <ph name="VALID_VALUE_LOW" /> и <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Въпроси и отговори</translation>
-<translation id="4413860115965805769">бутон за меню</translation>
<translation id="4444765639179266822">Изглежда, че пише: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">препратка към определение в терминологичния речник</translation>
<translation id="4522570452068850558">Подробности</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_bn.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_bn.xtb
index 4bf0ab51037..bc876f1a264 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_bn.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_bn.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">ক্রেডিট</translation>
<translation id="1342835525016946179">নিবন্ধ</translation>
<translation id="1359897965706325498">ব্যানার</translation>
+<translation id="1480676835519562650">অনেক বিকল্প বেছে নেওয়ার সুবিধা, <ph name="COUNT" />টির মধ্যে <ph name="SELECTED" />টি বেছে নেওয়া হয়েছে।</translation>
<translation id="1589122976691792535">অঞ্চল</translation>
<translation id="1591562245178063882">এই মাস</translation>
<translation id="1637811476055996098">ফাইল বেছে নিন</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">দিন</translation>
<translation id="2507943997699731163">দয়া করে এই ক্ষেত্রটি পূরণ করুন৷</translation>
<translation id="2508569020611168319">ট্যাব তালিকা</translation>
+<translation id="2530182415807757784">অনেক বিকল্প বেছে নেওয়ার সুবিধা, কিন্তু কিছুই বাছা হয়নি।</translation>
<translation id="2561842179657104141">আরও মিডিয়া নিয়ন্ত্রণ দেখান</translation>
<translation id="2572483411312390101">চালনা করুন</translation>
<translation id="2613802280814924224">দয়া করে একটি বৈধ মান লিখুন৷ কাছাকাছির বৈধ মান হল <ph name="VALID_VALUE" />৷</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">মেনু বার</translation>
<translation id="4360991593054037559">দয়া করে একটি বৈধ মান লিখুন৷ দুটি কাছাকাছির বৈধ মান হল <ph name="VALID_VALUE_LOW" /> এবং <ph name="VALID_VALUE_HIGHER" />৷</translation>
<translation id="4384583879834880242">প্রশ্ন এবং উত্তর</translation>
-<translation id="4413860115965805769">মেনু বোতাম</translation>
<translation id="4444765639179266822">মনে হচ্ছে বলতে চাইছে: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">শব্দকোষের রেফারেন্স</translation>
<translation id="4522570452068850558">বিশদ বিবরণ</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_bs.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_bs.xtb
index 76b9dd9f719..125330659ec 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_bs.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_bs.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">zahvale</translation>
<translation id="1342835525016946179">članak</translation>
<translation id="1359897965706325498">oglasni natpis</translation>
+<translation id="1480676835519562650">moguće je odabrati više stavki, odabranih: <ph name="SELECTED" /> od <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">regija</translation>
<translation id="1591562245178063882">Ovaj mjesec</translation>
<translation id="1637811476055996098">Odaberite fajlove</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dan</translation>
<translation id="2507943997699731163">Ispunite ovo polje.</translation>
<translation id="2508569020611168319">lista kartica</translation>
+<translation id="2530182415807757784">moguće je odabrati više stavki, nijedna nije odabrana.</translation>
<translation id="2561842179657104141">prikaži više kontrola medija</translation>
<translation id="2572483411312390101">reproduciraj</translation>
<translation id="2613802280814924224">Unesite važeću vrijednost. Najbliža važeća vrijednost je <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">traka menija</translation>
<translation id="4360991593054037559">Unesite važeću vrijednost. Dvije najbliže važeće vrijednosti su <ph name="VALID_VALUE_LOW" /> i <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Pitanja i odgovori</translation>
-<translation id="4413860115965805769">dugme menija</translation>
<translation id="4444765639179266822">Čini se da piše: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">referenca iz rječnika</translation>
<translation id="4522570452068850558">Detalji</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_ca.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_ca.xtb
index 1961c51b438..80880c4bb68 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_ca.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_ca.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">crèdits</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">bàner</translation>
+<translation id="1480676835519562650">multiseleccionable; se n'han seleccionat <ph name="SELECTED" /> de <ph name="COUNT" /></translation>
<translation id="1589122976691792535">regió</translation>
<translation id="1591562245178063882">Aquest mes</translation>
<translation id="1637811476055996098">Trieu els fitxers</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dia</translation>
<translation id="2507943997699731163">Empleneu aquest camp.</translation>
<translation id="2508569020611168319">llista de pestanyes</translation>
+<translation id="2530182415807757784">multiseleccionable; no se n'ha seleccionat cap</translation>
<translation id="2561842179657104141">mostra més controls multimèdia</translation>
<translation id="2572483411312390101">reprodueix</translation>
<translation id="2613802280814924224">Introduïu un valor vàlid. El valor vàlid més proper és <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">barra de menús</translation>
<translation id="4360991593054037559">Introduïu un valor vàlid. Els valors vàlids més propers són <ph name="VALID_VALUE_LOW" /> i <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Preguntes</translation>
-<translation id="4413860115965805769">botó de menú</translation>
<translation id="4444765639179266822">Sembla que diu "<ph name="OCR_TEXT" />"</translation>
<translation id="4446524499724042288">referència del glossari</translation>
<translation id="4522570452068850558">Detalls</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_cs.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_cs.xtb
index ed930ad07b0..e990a0bf300 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_cs.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_cs.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">poděkování</translation>
<translation id="1342835525016946179">čl</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">možnost výběru více možností, vybráno <ph name="SELECTED" /> z <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">oblast</translation>
<translation id="1591562245178063882">Tento měsíc</translation>
<translation id="1637811476055996098">Zvolit soubory</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Den</translation>
<translation id="2507943997699731163">Vyplňte prosím toto pole.</translation>
<translation id="2508569020611168319">seznam karet</translation>
+<translation id="2530182415807757784">možnost výběru více možností, nic nevybráno.</translation>
<translation id="2561842179657104141">zobrazit více ovládacích prvků médií</translation>
<translation id="2572483411312390101">přehrát</translation>
<translation id="2613802280814924224">Zadejte platnou hodnotu. Nejbližší platná hodnota je <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">panel nabídky</translation>
<translation id="4360991593054037559">Zadejte platnou hodnotu. Dvě nejbližší hodnoty jsou <ph name="VALID_VALUE_LOW" /> a <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Dotazy</translation>
-<translation id="4413860115965805769">tlačítko nabídky</translation>
<translation id="4444765639179266822">Vypadá jako: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">odkaz na glosář</translation>
<translation id="4522570452068850558">Podrobnosti</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_da.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_da.xtb
index 15bb82eba6c..6cd3d88a22d 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_da.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_da.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">anerkendelser</translation>
<translation id="1342835525016946179">artikel</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">listefelt med flere valg, <ph name="SELECTED" /> af <ph name="COUNT" /> er valgt.</translation>
<translation id="1589122976691792535">område</translation>
<translation id="1591562245178063882">Denne måned</translation>
<translation id="1637811476055996098">Vælg filer</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dag</translation>
<translation id="2507943997699731163">Udfyld dette felt.</translation>
<translation id="2508569020611168319">faneliste</translation>
+<translation id="2530182415807757784">listefelt med flere valg, ingen valgt.</translation>
<translation id="2561842179657104141">vis flere knapper til mediestyring</translation>
<translation id="2572483411312390101">afspil</translation>
<translation id="2613802280814924224">Angiv en gyldig værdi. Den nærmeste gyldige værdi er <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">menulinje</translation>
<translation id="4360991593054037559">Angiv en gyldig værdi. De to nærmeste gyldige værdier er <ph name="VALID_VALUE_LOW" /> og <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Spørgsmål og svar</translation>
-<translation id="4413860115965805769">menuknap</translation>
<translation id="4444765639179266822">Der lader til at stå: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">reference på ordliste</translation>
<translation id="4522570452068850558">Detaljer</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_de.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_de.xtb
index 4e10c4898e6..c58ebc34350 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_de.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_de.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">Mitwirkende</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">Banner</translation>
+<translation id="1480676835519562650">Mehrfachauswahl, <ph name="SELECTED" /> von <ph name="COUNT" /> ausgewählt.</translation>
<translation id="1589122976691792535">Region</translation>
<translation id="1591562245178063882">Aktueller Monat</translation>
<translation id="1637811476055996098">Dateien auswählen</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Tag</translation>
<translation id="2507943997699731163">Füllen Sie dieses Feld aus.</translation>
<translation id="2508569020611168319">Tabliste</translation>
+<translation id="2530182415807757784">Mehrfachauswahl, nichts ausgewählt.</translation>
<translation id="2561842179657104141">weitere Mediensteuerelemente anzeigen</translation>
<translation id="2572483411312390101">Wiedergeben</translation>
<translation id="2613802280814924224">Geben Sie einen gültigen Wert ein. Der nächstliegende gültige Wert ist <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">Menüleiste</translation>
<translation id="4360991593054037559">Geben Sie einen gültigen Wert ein. Die zwei nächstliegenden gültigen Werte sind <ph name="VALID_VALUE_LOW" /> und <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Fragen und Antworten</translation>
-<translation id="4413860115965805769">Menüschaltfläche</translation>
<translation id="4444765639179266822">Es sieht aus wie: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">Glossarreferenz</translation>
<translation id="4522570452068850558">Details</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_el.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_el.xtb
index 4f6f3278721..e220282fbcf 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_el.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_el.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">συντελεστές</translation>
<translation id="1342835525016946179">άρθρο</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">πολλαπλής επιλογής, έγινε επιλογή <ph name="SELECTED" /> από <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">περιοχή</translation>
<translation id="1591562245178063882">Αυτόν το μήνα</translation>
<translation id="1637811476055996098">Επιλογή αρχείων</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Ημέρα</translation>
<translation id="2507943997699731163">Συμπληρώστε αυτό το πεδίο.</translation>
<translation id="2508569020611168319">λίστα καρτελών</translation>
+<translation id="2530182415807757784">πολλαπλής επιλογής, καμία επιλογή.</translation>
<translation id="2561842179657104141">εμφάνιση περισσότερων στοιχείων ελέγχου μέσων</translation>
<translation id="2572483411312390101">αναπαραγωγή</translation>
<translation id="2613802280814924224">Καταχωρίστε μια έγκυρη τιμή. Η κοντινότερη έγκυρη τιμή είναι <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">γραμμή μενού</translation>
<translation id="4360991593054037559">Καταχωρίστε μια έγκυρη τιμή. Οι δύο πιο κοντινές έγκυρες τιμές είναι <ph name="VALID_VALUE_LOW" /> και <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Ερωτήσεις και απαντήσεις</translation>
-<translation id="4413860115965805769">κουμπί μενού</translation>
<translation id="4444765639179266822">Φαίνεται πως λέει: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">αναφορά στο γλωσσάρι</translation>
<translation id="4522570452068850558">Λεπτομέρειες</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_en-GB.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_en-GB.xtb
index e86ed7b3d6c..02b3faa7349 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_en-GB.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_en-GB.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">credits</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">multiselectable, <ph name="SELECTED" /> of <ph name="COUNT" /> selected.</translation>
<translation id="1589122976691792535">region</translation>
<translation id="1591562245178063882">This month</translation>
<translation id="1637811476055996098">Choose Files</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Day</translation>
<translation id="2507943997699731163">Please fill in this field.</translation>
<translation id="2508569020611168319">tab list</translation>
+<translation id="2530182415807757784">multiselectable, none selected.</translation>
<translation id="2561842179657104141">show more media controls</translation>
<translation id="2572483411312390101">play</translation>
<translation id="2613802280814924224">Please enter a valid value. The nearest valid value is <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">menu bar</translation>
<translation id="4360991593054037559">Please enter a valid value. The two nearest valid values are <ph name="VALID_VALUE_LOW" /> and <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Q&amp;A</translation>
-<translation id="4413860115965805769">menu button</translation>
<translation id="4444765639179266822">Appears to say: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">glossary reference</translation>
<translation id="4522570452068850558">Details</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_es-419.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_es-419.xtb
index 3d1c750a033..4b9e64ebaf5 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_es-419.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_es-419.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">créditos</translation>
<translation id="1342835525016946179">artículo</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">varias opciones disponibles; se seleccionaron <ph name="SELECTED" /> de <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">región</translation>
<translation id="1591562245178063882">Este mes</translation>
<translation id="1637811476055996098">Elegir archivos</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Día</translation>
<translation id="2507943997699731163">Completa este campo</translation>
<translation id="2508569020611168319">lista de pestañas</translation>
+<translation id="2530182415807757784">varias opciones disponibles; no se seleccionó ninguna.</translation>
<translation id="2561842179657104141">mostrar más controles de medios</translation>
<translation id="2572483411312390101">reproducir</translation>
<translation id="2613802280814924224">Ingresa un valor válido. El valor válido más aproximado es <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">barra de menús</translation>
<translation id="4360991593054037559">Ingresa un valor válido. Los dos valores válidos más aproximados son <ph name="VALID_VALUE_LOW" /> y <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Preguntas y respuestas</translation>
-<translation id="4413860115965805769">botón de menú</translation>
<translation id="4444765639179266822">Parece decir: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">referencia de glosario</translation>
<translation id="4522570452068850558">Detalles</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_es.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_es.xtb
index de60d172a3f..3b31f79f4b6 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_es.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_es.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">créditos</translation>
<translation id="1342835525016946179">artículo</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">selección múltiple, <ph name="SELECTED" /> elementos seleccionados de <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">región</translation>
<translation id="1591562245178063882">Este mes</translation>
<translation id="1637811476055996098">Elegir archivos</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Día</translation>
<translation id="2507943997699731163">Completa este campo</translation>
<translation id="2508569020611168319">lista de pestañas</translation>
+<translation id="2530182415807757784">selección múltiple, ningún elemento seleccionado.</translation>
<translation id="2561842179657104141">mostrar más controles multimedia</translation>
<translation id="2572483411312390101">reproducir</translation>
<translation id="2613802280814924224">Introduce un valor válido. El valor válido más aproximado es <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">barra de menús</translation>
<translation id="4360991593054037559">Introduce un valor válido. Los dos valores válidos más aproximados son <ph name="VALID_VALUE_LOW" /> y <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Preguntas</translation>
-<translation id="4413860115965805769">botón de menú</translation>
<translation id="4444765639179266822">Parece que pone: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">referencia de glosario</translation>
<translation id="4522570452068850558">Detalles</translation>
@@ -255,7 +256,7 @@
<translation id="8474886197722836894">dedicatoria</translation>
<translation id="8531739829932800271">errata</translation>
<translation id="8534579021159131403">Minutos</translation>
-<translation id="8541249477527128034">control de medios</translation>
+<translation id="8541249477527128034">control multimedia</translation>
<translation id="8550857728288566671">símbolo gráfico</translation>
<translation id="8583702881314752957">lista de definiciones</translation>
<translation id="8597182159515967513">cabecera</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_et.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_et.xtb
index bde7cf8c466..a681d68df82 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_et.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_et.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">tiitrid</translation>
<translation id="1342835525016946179">artikkel</translation>
<translation id="1359897965706325498">bänner</translation>
+<translation id="1480676835519562650">mitme valikuga, valitud on <ph name="SELECTED" /> <ph name="COUNT" />-st.</translation>
<translation id="1589122976691792535">piirkond</translation>
<translation id="1591562245178063882">See kuu</translation>
<translation id="1637811476055996098">Vali failid</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">päev</translation>
<translation id="2507943997699731163">Täitke see väli.</translation>
<translation id="2508569020611168319">vahelehtede loend</translation>
+<translation id="2530182415807757784">mitme valikuga, ühtegi pole valitud.</translation>
<translation id="2561842179657104141">kuva rohkem meedia juhtnuppe</translation>
<translation id="2572483411312390101">esitus</translation>
<translation id="2613802280814924224">Sisestage kehtiv väärtus. Lähim kehtiv väärtus on <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">menüüriba</translation>
<translation id="4360991593054037559">Sisestage kehtiv väärtus. Kaks lähimat kehtivat väärtust on <ph name="VALID_VALUE_LOW" /> ja <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Küsimused ja vastused</translation>
-<translation id="4413860115965805769">menüünupp</translation>
<translation id="4444765639179266822">Näib ütlevat: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">sõnastiku viide</translation>
<translation id="4522570452068850558">Üksikasjad</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_eu.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_eu.xtb
index 2c34eead0d0..6a06255a420 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_eu.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_eu.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">kredituak</translation>
<translation id="1342835525016946179">artikulua</translation>
<translation id="1359897965706325498">iragarki-banda</translation>
+<translation id="1480676835519562650">aukera anitzekoa, <ph name="COUNT" />/<ph name="SELECTED" /> haur hautatu dira.</translation>
<translation id="1589122976691792535">lurraldea</translation>
<translation id="1591562245178063882">Uneko hilabetea</translation>
<translation id="1637811476055996098">Aukeratu fitxategiak</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Eguna</translation>
<translation id="2507943997699731163">Bete eremu hau.</translation>
<translation id="2508569020611168319">fitxen zerrenda</translation>
+<translation id="2530182415807757784">aukera anitzekoa, ez da bat ere hautatu.</translation>
<translation id="2561842179657104141">erakutsi multimedia-edukia kontrolatzeko aukerak</translation>
<translation id="2572483411312390101">erreproduzitu</translation>
<translation id="2613802280814924224">Idatzi baliozko balioa. Idatzi duzunetik gertuen duzuna <ph name="VALID_VALUE" /> da.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">menu-barra</translation>
<translation id="4360991593054037559">Idatzi balio egoki bat. <ph name="VALID_VALUE_LOW" /> eta <ph name="VALID_VALUE_HIGHER" /> dira gertuen dauden bi balio egokiak.</translation>
<translation id="4384583879834880242">Galde-erantzunak</translation>
-<translation id="4413860115965805769">menu-botoia</translation>
<translation id="4444765639179266822">Badirudi hau dioela: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">glosarioaren erreferentzia</translation>
<translation id="4522570452068850558">Xehetasunak</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_fa.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_fa.xtb
index f79c0ea48d1..7c9560bdb7f 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_fa.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_fa.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">دست‌اندرکاران</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">برنما</translation>
+<translation id="1480676835519562650">قابلیت چند انتخابی، <ph name="SELECTED" /> مورد از <ph name="COUNT" /> مورد انتخاب شده است.</translation>
<translation id="1589122976691792535">منطقه</translation>
<translation id="1591562245178063882">این ماه</translation>
<translation id="1637811476055996098">انتخاب فایل‌ها</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">روز</translation>
<translation id="2507943997699731163">لطفاً این قسمت را تکمیل کنید.</translation>
<translation id="2508569020611168319">فهرست برگه</translation>
+<translation id="2530182415807757784">قابلیت چند انتخابی، هیچ موردی انتخاب نشده است.</translation>
<translation id="2561842179657104141">نمایش کنترل‌های رسانه بیشتر</translation>
<translation id="2572483411312390101">پخش</translation>
<translation id="2613802280814924224">لطفاً یک مقدار معتبر وارد کنید. نزدیک‌ترین مقدار معتبر <ph name="VALID_VALUE" /> است.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">نوار منو</translation>
<translation id="4360991593054037559">لطفاً یک مقدار معتبر وارد کنید. نزدیک‌ترین مقادیر معتبر <ph name="VALID_VALUE_LOW" /> و <ph name="VALID_VALUE_HIGHER" /> هستند.</translation>
<translation id="4384583879834880242">پرسش و پاسخ</translation>
-<translation id="4413860115965805769">دکمه منو</translation>
<translation id="4444765639179266822">ظاهراً <ph name="OCR_TEXT" /> را نشان می‌دهد</translation>
<translation id="4446524499724042288">مرجع واژه‌نامه</translation>
<translation id="4522570452068850558">جزئیات</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_fi.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_fi.xtb
index a33b8387980..76fbe202131 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_fi.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_fi.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">tunnustukset</translation>
<translation id="1342835525016946179">artikkeli</translation>
<translation id="1359897965706325498">banneri</translation>
+<translation id="1480676835519562650">monta valittavissa, <ph name="SELECTED" />/<ph name="COUNT" /> valittu.</translation>
<translation id="1589122976691792535">alue</translation>
<translation id="1591562245178063882">Tässä kuussa</translation>
<translation id="1637811476055996098">Valitse tiedostot</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Päivä</translation>
<translation id="2507943997699731163">Täytä tämä kenttä.</translation>
<translation id="2508569020611168319">välilehtiluettelo</translation>
+<translation id="2530182415807757784">monta valittavissa, mitään ei ole valittu.</translation>
<translation id="2561842179657104141">näytä lisää mediaohjaimia</translation>
<translation id="2572483411312390101">toista</translation>
<translation id="2613802280814924224">Syötä kelvollinen arvo. Lähin kelvollinen arvo on <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">valikkopalkki</translation>
<translation id="4360991593054037559">Syötä kelvollinen arvo. Kaksi lähintä kelvollista arvoa ovat <ph name="VALID_VALUE_LOW" /> ja <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">K &amp; V</translation>
-<translation id="4413860115965805769">valikkopainike</translation>
<translation id="4444765639179266822">Kuuluu sanovan: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">sanastoviittaus</translation>
<translation id="4522570452068850558">Tiedot</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_fil.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_fil.xtb
index def9585e762..28135d82ab3 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_fil.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_fil.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">mga credit</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">multiselectable, <ph name="SELECTED" /> sa <ph name="COUNT" /> ang pinili.</translation>
<translation id="1589122976691792535">rehiyon</translation>
<translation id="1591562245178063882">Buwang ito</translation>
<translation id="1637811476055996098">Pumili ng Mga File</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Araw</translation>
<translation id="2507943997699731163">Pakipunan ang field na ito.</translation>
<translation id="2508569020611168319">listahan ng tab</translation>
+<translation id="2530182415807757784">multiselectable, walang pinili.</translation>
<translation id="2561842179657104141">magpakita ng higit pang kontrol sa media</translation>
<translation id="2572483411312390101">i-play</translation>
<translation id="2613802280814924224">Mangyaring maglagay ng isang wastong value. Ang pinakamalapit na wastong value ay <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">menu bar</translation>
<translation id="4360991593054037559">Mangyaring maglagay ng isang wastong value. Ang dalawang pinakamalapit na wastong value ay <ph name="VALID_VALUE_LOW" /> at <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Q&amp;A</translation>
-<translation id="4413860115965805769">button ng menu</translation>
<translation id="4444765639179266822">Mukhang ang sabi ay: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">sanggunian sa glosaryo</translation>
<translation id="4522570452068850558">Mga Detalye</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_fr-CA.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_fr-CA.xtb
index ba3342a3a1d..39ec5e50de4 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_fr-CA.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_fr-CA.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">crédits</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">bannière</translation>
+<translation id="1480676835519562650">plusieurs éléments sélectionnables, <ph name="SELECTED" /> sur <ph name="COUNT" /> sélectionné.</translation>
<translation id="1589122976691792535">région</translation>
<translation id="1591562245178063882">Ce mois-ci</translation>
<translation id="1637811476055996098">Sélect. fichiers</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Jour</translation>
<translation id="2507943997699731163">Veuillez remplir ce champ.</translation>
<translation id="2508569020611168319">liste d'onglets</translation>
+<translation id="2530182415807757784">plusieurs éléments sélectionnables, aucun n'a été sélectionné.</translation>
<translation id="2561842179657104141">afficher plus de commandes multimédias</translation>
<translation id="2572483411312390101">jouer</translation>
<translation id="2613802280814924224">Veuillez entrer une valeur valide. La valeur valide la plus proche est <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">barre de menu</translation>
<translation id="4360991593054037559">Veuillez entrer une valeur valide. Les deux valeurs valides les plus proches sont « <ph name="VALID_VALUE_LOW" /> » et « <ph name="VALID_VALUE_HIGHER" /> ».</translation>
<translation id="4384583879834880242">Questions/réponses</translation>
-<translation id="4413860115965805769">bouton de menu</translation>
<translation id="4444765639179266822">La photo semble contenir le texte suivant : <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">référence du glossaire</translation>
<translation id="4522570452068850558">Détails</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_fr.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_fr.xtb
index b7339c33a38..738184fa0c5 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_fr.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_fr.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">crédits</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">bannière</translation>
+<translation id="1480676835519562650">sélection multiple possible, <ph name="SELECTED" /> éléments sur <ph name="COUNT" /> sélectionnés.</translation>
<translation id="1589122976691792535">région</translation>
<translation id="1591562245178063882">Ce mois</translation>
<translation id="1637811476055996098">Sélect. fichiers</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Jour</translation>
<translation id="2507943997699731163">Veuillez renseigner ce champ.</translation>
<translation id="2508569020611168319">liste d'onglets</translation>
+<translation id="2530182415807757784">sélection multiple possible, aucun élément sélectionné.</translation>
<translation id="2561842179657104141">afficher plus de commandes multimédias</translation>
<translation id="2572483411312390101">lire</translation>
<translation id="2613802280814924224">Veuillez saisir une valeur valide. La valeur valide la plus proche est "<ph name="VALID_VALUE" />".</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">barre de menu</translation>
<translation id="4360991593054037559">Veuillez saisir une valeur valide. Les deux valeurs valides les plus proches sont "<ph name="VALID_VALUE_LOW" />" et "<ph name="VALID_VALUE_HIGHER" />".</translation>
<translation id="4384583879834880242">Questions/Réponses</translation>
-<translation id="4413860115965805769">bouton de menu</translation>
<translation id="4444765639179266822">Voici la mention que contient probablement l'image : <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">référence de glossaire</translation>
<translation id="4522570452068850558">Détails</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_gl.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_gl.xtb
index 5cfc10f4986..499454d1586 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_gl.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_gl.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">créditos</translation>
<translation id="1342835525016946179">artigo</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">selección múltiple, <ph name="SELECTED" /> de <ph name="COUNT" /> seleccionados.</translation>
<translation id="1589122976691792535">rexión</translation>
<translation id="1591562245178063882">Este mes</translation>
<translation id="1637811476055996098">Seleccionar ficheiros</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Día</translation>
<translation id="2507943997699731163">Completa este campo.</translation>
<translation id="2508569020611168319">lista de pestanas</translation>
+<translation id="2530182415807757784">selección múltiple, nada seleccionado.</translation>
<translation id="2561842179657104141">mostrar máis controis multimedia</translation>
<translation id="2572483411312390101">reproducir</translation>
<translation id="2613802280814924224">Introduce un valor válido. O valor válido máis próximo é <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">barra de menú</translation>
<translation id="4360991593054037559">Introduce un valor válido. Os dous valores válidos máis próximos son <ph name="VALID_VALUE_LOW" /> e <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Preguntas</translation>
-<translation id="4413860115965805769">botón de menú</translation>
<translation id="4444765639179266822">Parece que pon: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">referencia do glosario</translation>
<translation id="4522570452068850558">Detalles</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_gu.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_gu.xtb
index 30d02d77a3f..1cb6db8cb9c 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_gu.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_gu.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">ક્રેડિટ</translation>
<translation id="1342835525016946179">લેખ</translation>
<translation id="1359897965706325498">બેનર</translation>
+<translation id="1480676835519562650">એકથી વધુ પસંદ કરવા યોગ્ય, <ph name="COUNT" />માંથી <ph name="SELECTED" /> બાળક પસંદ કરવામાં આવ્યા.</translation>
<translation id="1589122976691792535">પ્રદેશ</translation>
<translation id="1591562245178063882">આ મહિને</translation>
<translation id="1637811476055996098">ફાઇલો પસંદ કરો</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">દિવસ</translation>
<translation id="2507943997699731163">કૃપા કરીને આ ફીલ્ડ ભરો.</translation>
<translation id="2508569020611168319">ટેબ સૂચિ</translation>
+<translation id="2530182415807757784">એકથી વધુ પસંદ કરવા યોગ્ય, કોઈ પસંદ કર્યું નથી.</translation>
<translation id="2561842179657104141">વધુ મીડિયા નિયંત્રણો બતાવો</translation>
<translation id="2572483411312390101">ચલાવો</translation>
<translation id="2613802280814924224">કૃપા કરીને એક માન્ય મૂલ્ય દાખલ કરો. નિકટતમ માન્ય મૂલ્ય <ph name="VALID_VALUE" /> છે.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">મેનૂ બાર</translation>
<translation id="4360991593054037559">કૃપા કરીને એક માન્ય મૂલ્ય દાખલ કરો. બે નિકટતમ માન્ય મૂલ્યો <ph name="VALID_VALUE_LOW" /> અને <ph name="VALID_VALUE_HIGHER" /> છે.</translation>
<translation id="4384583879834880242">પ્રશ્ન અને જવાબ</translation>
-<translation id="4413860115965805769">મેનૂ બટન</translation>
<translation id="4444765639179266822">આવું બોલતા જણાય છે: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">શબ્દાવલીનો સંદર્ભ</translation>
<translation id="4522570452068850558">વિગતો</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_hi.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_hi.xtb
index 006756783cc..9b3e68b11f3 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_hi.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_hi.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">क्रेडिट</translation>
<translation id="1342835525016946179">लेख</translation>
<translation id="1359897965706325498">बैनर</translation>
+<translation id="1480676835519562650">कई विकल्प चुनने की सुविधा, <ph name="COUNT" /> में से <ph name="SELECTED" /> चुने गए.</translation>
<translation id="1589122976691792535">क्षेत्र</translation>
<translation id="1591562245178063882">इस माह</translation>
<translation id="1637811476055996098">फ़ाइलें चुनें</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">दिन</translation>
<translation id="2507943997699731163">कृपया इस फ़ील्ड को भरें.</translation>
<translation id="2508569020611168319">टैब सूची</translation>
+<translation id="2530182415807757784">कई विकल्प चुनने की सुविधा, किसी को चुना नहीं गया.</translation>
<translation id="2561842179657104141">ज़्यादा मीडिया नियंत्रण दिखाएं</translation>
<translation id="2572483411312390101">चलाएं</translation>
<translation id="2613802280814924224">कृपया कोई मान्य मान डालें. निकटतम मान्य मान <ph name="VALID_VALUE" /> है.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">मेन्यू बार</translation>
<translation id="4360991593054037559">कृपया कोई मान्य मान डालें. दो निकटतम मान्य मान <ph name="VALID_VALUE_LOW" /> और <ph name="VALID_VALUE_HIGHER" /> हैं.</translation>
<translation id="4384583879834880242">सवाल और जवाब</translation>
-<translation id="4413860115965805769">मेन्यू बटन</translation>
<translation id="4444765639179266822">यह जानकारी इस बारे में लगती है: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">संदर्भ के लिए शब्दावली</translation>
<translation id="4522570452068850558">विवरण</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_hr.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_hr.xtb
index a35bca0c8d0..2dc6139738c 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_hr.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_hr.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">zasluge</translation>
<translation id="1342835525016946179">članak</translation>
<translation id="1359897965706325498">natpis</translation>
+<translation id="1480676835519562650">Moguć je višestruki odabir, odabrano je <ph name="SELECTED" /> od <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">regija</translation>
<translation id="1591562245178063882">Ovaj mjesec</translation>
<translation id="1637811476055996098">Odabir datoteka</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dan</translation>
<translation id="2507943997699731163">Ispunite ovo polje.</translation>
<translation id="2508569020611168319">popis kartica</translation>
+<translation id="2530182415807757784">Moguć je višestruki odabir, ništa nije odabrano.</translation>
<translation id="2561842179657104141">prikaži više kontrola za medije</translation>
<translation id="2572483411312390101">reprodukcija</translation>
<translation id="2613802280814924224">Unesite važeću vrijednost. Najbliža je važeća vrijednost <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">traka izbornika</translation>
<translation id="4360991593054037559">Unesite važeću vrijednost. Dvije su najbliže važeće vrijednosti <ph name="VALID_VALUE_LOW" /> i <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Pitanja i odgovori</translation>
-<translation id="4413860115965805769">gumb izbornika</translation>
<translation id="4444765639179266822">Čini se da piše: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">referenca iz pojmovnika</translation>
<translation id="4522570452068850558">Detalji</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_hu.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_hu.xtb
index 0ee7387454f..bdb5d0f0514 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_hu.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_hu.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">készítők</translation>
<translation id="1342835525016946179">cikk</translation>
<translation id="1359897965706325498">szalaghirdetés</translation>
+<translation id="1480676835519562650">több is választható, <ph name="COUNT" />/<ph name="SELECTED" /> van kiválasztva.</translation>
<translation id="1589122976691792535">régió</translation>
<translation id="1591562245178063882">Ebben a hónapban</translation>
<translation id="1637811476055996098">Fájlok kiválasztása</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">nap</translation>
<translation id="2507943997699731163">Kérjük, töltse ki ezt a mezőt.</translation>
<translation id="2508569020611168319">laplista</translation>
+<translation id="2530182415807757784">több is választható, egy sincs kiválasztva.</translation>
<translation id="2561842179657104141">további médiavezérlők megjelenítése</translation>
<translation id="2572483411312390101">lejátszás</translation>
<translation id="2613802280814924224">Kérjük, érvényes értéket adjon meg. A legközelebbi érvényes érték <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">menüsor</translation>
<translation id="4360991593054037559">Kérjük, érvényes értéket adjon meg. A két legközelebbi érvényes érték <ph name="VALID_VALUE_LOW" /> és <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Kérdések és válaszok</translation>
-<translation id="4413860115965805769">menügomb</translation>
<translation id="4444765639179266822">Úgy tűnik, hogy a következő látható rajta: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">szószedet-hivatkozás</translation>
<translation id="4522570452068850558">Részletek</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_hy.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_hy.xtb
index 872485a9e10..ecfdf67bfd2 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_hy.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_hy.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">երախտիքի խոսքեր</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">ազդերիզ</translation>
+<translation id="1480676835519562650">հնարավոր է ընտրել մի քանի տարբերակ, ընտրվել է <ph name="SELECTED" />-ը՝ <ph name="COUNT" />-ից։</translation>
<translation id="1589122976691792535">մարզ</translation>
<translation id="1591562245178063882">Այս ամիս</translation>
<translation id="1637811476055996098">Ընտրել ֆայլեր</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Օր</translation>
<translation id="2507943997699731163">Խնդրում ենք լրացնել այս դաշտը:</translation>
<translation id="2508569020611168319">ներդիրների ցանկ</translation>
+<translation id="2530182415807757784">հնարավոր է ընտրել մի քանի տարբերակ, ոչ մեկը չի ընտրվել։</translation>
<translation id="2561842179657104141">լրացուցիչ մեդիա կառավարներ</translation>
<translation id="2572483411312390101">նվագարկել</translation>
<translation id="2613802280814924224">Մուտքագրեք ճիշտ արժեք: Ամենամոտ ճիշտ արժեքը <ph name="VALID_VALUE" />-ն է:</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">ընտրացանկի գոտի</translation>
<translation id="4360991593054037559">Մուտքագրեք ճիշտ արժեք: Մոտակա երկու ճիշտ արժեքներն են՝ <ph name="VALID_VALUE_LOW" /> և <ph name="VALID_VALUE_HIGHER" />:</translation>
<translation id="4384583879834880242">Հարց ու պատասխան</translation>
-<translation id="4413860115965805769">ընտրացանկի կոճակ</translation>
<translation id="4444765639179266822">Կարծես թե ասում է <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">մեջբերում բառացանկից</translation>
<translation id="4522570452068850558">Մանրամասներ</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_id.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_id.xtb
index f51c1530a49..5a000fdabd4 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_id.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_id.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">daftar penghargaan</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">spanduk</translation>
+<translation id="1480676835519562650">dapat dipilih banyak, <ph name="SELECTED" /> dari <ph name="COUNT" /> dipilih.</translation>
<translation id="1589122976691792535">wilayah</translation>
<translation id="1591562245178063882">Bulan ini</translation>
<translation id="1637811476055996098">Pilih File</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Hari</translation>
<translation id="2507943997699731163">Harap isi bidang ini.</translation>
<translation id="2508569020611168319">daftar tab</translation>
+<translation id="2530182415807757784">dapat dipilih banyak, tidak ada yang dipilih.</translation>
<translation id="2561842179657104141">tampilkan kontrol media lainnya</translation>
<translation id="2572483411312390101">main</translation>
<translation id="2613802280814924224">Masukkan nilai yang valid. Nilai valid terdekatnya adalah <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">bilah menu</translation>
<translation id="4360991593054037559">Masukkan nilai yang valid. Dua nilai valid terdekat adalah <ph name="VALID_VALUE_LOW" /> dan <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Tanya Jawab</translation>
-<translation id="4413860115965805769">tombol menu</translation>
<translation id="4444765639179266822">Muncul dengan menyatakan: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">referensi glosarium</translation>
<translation id="4522570452068850558">Detail</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_is.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_is.xtb
index fce0780de77..43af7f315db 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_is.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_is.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">samstarfsaðilar</translation>
<translation id="1342835525016946179">grein</translation>
<translation id="1359897965706325498">borði</translation>
+<translation id="1480676835519562650">hægt að velja mörg atriði, <ph name="SELECTED" /> af <ph name="COUNT" /> valin.</translation>
<translation id="1589122976691792535">svæði</translation>
<translation id="1591562245178063882">Þessi mánuður</translation>
<translation id="1637811476055996098">Veldu skrár</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dagur</translation>
<translation id="2507943997699731163">Fylltu þennan reit út.</translation>
<translation id="2508569020611168319">flipalisti</translation>
+<translation id="2530182415807757784">hægt að velja mörg atriði, ekkert valið.</translation>
<translation id="2561842179657104141">sýna fleiri stjórntæki miðlaefnis</translation>
<translation id="2572483411312390101">spila</translation>
<translation id="2613802280814924224">Sláðu inn gilt gildi. Nálægasta gilda gildi er <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">valmyndarstika</translation>
<translation id="4360991593054037559">Sláðu inn gilt gildi. Næstu tvö gildu gildi eru <ph name="VALID_VALUE_LOW" /> og <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Spurt og svarað</translation>
-<translation id="4413860115965805769">valmyndarhnappur</translation>
<translation id="4444765639179266822">Þarna virðist standa: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">tilvísun í orðalista</translation>
<translation id="4522570452068850558">Upplýsingar</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_it.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_it.xtb
index 17b520debdb..e04cad05b39 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_it.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_it.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">ringraziamenti</translation>
<translation id="1342835525016946179">articolo</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">selezione multipla, selezionati: <ph name="SELECTED" /> su <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">regione</translation>
<translation id="1591562245178063882">Questo mese</translation>
<translation id="1637811476055996098">Scegli file</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Giorno</translation>
<translation id="2507943997699731163">Compila questo campo.</translation>
<translation id="2508569020611168319">elenco schede</translation>
+<translation id="2530182415807757784">selezione multipla, nessuno selezionato.</translation>
<translation id="2561842179657104141">mostra altri controlli multimediali</translation>
<translation id="2572483411312390101">riproduci</translation>
<translation id="2613802280814924224">Inserisci un valore valido. Il valore valido più vicino è <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">barra dei menu</translation>
<translation id="4360991593054037559">Inserisci un valore valido. I due valori validi più vicini sono <ph name="VALID_VALUE_LOW" /> e <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Domande e risposte</translation>
-<translation id="4413860115965805769">pulsante di menu</translation>
<translation id="4444765639179266822">Sembra che dica: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">riferimento glossario</translation>
<translation id="4522570452068850558">Dettagli</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_iw.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_iw.xtb
index 003169ba1cd..f8e4d971d7a 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_iw.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_iw.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">קרדיטים</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">מודעת באנר</translation>
+<translation id="1480676835519562650">ניתן לבחור יותר מאפשרות אחת, נבחרו <ph name="SELECTED" /> מתוך <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">אזור</translation>
<translation id="1591562245178063882">החודש</translation>
<translation id="1637811476055996098">בחר קבצים</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">יום</translation>
<translation id="2507943997699731163">זהו שדה חובה.</translation>
<translation id="2508569020611168319">רשימת כרטיסיות</translation>
+<translation id="2530182415807757784">ניתן לבחור יותר מאפשרות אחת, לא נבחרה אף אפשרות.</translation>
<translation id="2561842179657104141">הצג עוד פקדי מדיה</translation>
<translation id="2572483411312390101">הפעל</translation>
<translation id="2613802280814924224">הזן ערך חוקי. הערך החוקי הקרוב ביותר הוא <ph name="VALID_VALUE" /></translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">שורת תפריטים</translation>
<translation id="4360991593054037559">הזן ערך חוקי. שני הערכים החוקיים הקרובים ביותר הם <ph name="VALID_VALUE_LOW" /> ו-<ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">שאלות ותשובות</translation>
-<translation id="4413860115965805769">לחצן תפריט</translation>
<translation id="4444765639179266822">נראה שכתובים כאן הדברים הבאים: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">הפניה למילון מונחים</translation>
<translation id="4522570452068850558">פרטים</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_ja.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_ja.xtb
index b262fbbaa30..1417d13df26 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_ja.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_ja.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">クレジット</translation>
<translation id="1342835525016946179">記事</translation>
<translation id="1359897965706325498">バナー</translation>
+<translation id="1480676835519562650">複数の選択が可能です。<ph name="COUNT" /> 件中 <ph name="SELECTED" /> 件が選択されています。</translation>
<translation id="1589122976691792535">地域</translation>
<translation id="1591562245178063882">今月</translation>
<translation id="1637811476055996098">ファイル選択</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">日</translation>
<translation id="2507943997699731163">このフィールドを入力してください。</translation>
<translation id="2508569020611168319">タブリスト</translation>
+<translation id="2530182415807757784">複数の選択が可能です。項目が選択されていません。</translation>
<translation id="2561842179657104141">その他のメディア コントロールを表示</translation>
<translation id="2572483411312390101">再生</translation>
<translation id="2613802280814924224">有効な値を入力してください。有効な値として最も近いのは <ph name="VALID_VALUE" /> です。</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">メニューバー</translation>
<translation id="4360991593054037559">有効な値を入力してください。有効な値として最も近いのは <ph name="VALID_VALUE_LOW" /> と <ph name="VALID_VALUE_HIGHER" /> です。</translation>
<translation id="4384583879834880242">Q&A</translation>
-<translation id="4413860115965805769">メニューボタン</translation>
<translation id="4444765639179266822"><ph name="OCR_TEXT" /> というテキストのようです</translation>
<translation id="4446524499724042288">用語参照</translation>
<translation id="4522570452068850558">詳細</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_ka.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_ka.xtb
index 66400bdd8dc..99b1cc7f60d 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_ka.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_ka.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">შემქმნელები</translation>
<translation id="1342835525016946179">არტიკლი</translation>
<translation id="1359897965706325498">ბანერი</translation>
+<translation id="1480676835519562650">შესაძლებელია რამდენიმე ვარიანტის არჩევა, არჩეულია <ph name="SELECTED" /> / <ph name="COUNT" />-დან.</translation>
<translation id="1589122976691792535">რეგიონი</translation>
<translation id="1591562245178063882">ამ თვეში</translation>
<translation id="1637811476055996098">აირჩიეთ ფაილები</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">დღე</translation>
<translation id="2507943997699731163">შეავსეთ ეს ველი.</translation>
<translation id="2508569020611168319">ჩანართების სია</translation>
+<translation id="2530182415807757784">შესაძლებელია რამდენიმე ვარიანტის არჩევა, არცერთი არ არის არჩეული.</translation>
<translation id="2561842179657104141">მედია-ფაილების მართვის მეტი საშუალების ჩვენება</translation>
<translation id="2572483411312390101">დაკვრა</translation>
<translation id="2613802280814924224">შეიყვანეთ სწორი მნიშვნელობა. უახლოესი სწორი მნიშვნელობაა <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">მენიუს ზოლი</translation>
<translation id="4360991593054037559">შეიყვანეთ სწორი მნიშვნელობა. ორი უახლოესი მნიშვნელობაა <ph name="VALID_VALUE_LOW" /> და <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">კითხვა-პასუხი</translation>
-<translation id="4413860115965805769">მენიუს ღილაკი</translation>
<translation id="4444765639179266822">როგორც ჩანს, აქ წერია: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">მითითება ტერმინების ლექსიკონზე</translation>
<translation id="4522570452068850558">დეტალები</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_kk.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_kk.xtb
index 6d04f21bb5e..5e6b1a8dcb1 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_kk.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_kk.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">рұқсаттар</translation>
<translation id="1342835525016946179">мақала</translation>
<translation id="1359897965706325498">баннер</translation>
+<translation id="1480676835519562650">бірнешеуін таңдауға болады, <ph name="SELECTED" />/<ph name="COUNT" /> таңдалды.</translation>
<translation id="1589122976691792535">аймақ</translation>
<translation id="1591562245178063882">Осы айда</translation>
<translation id="1637811476055996098">Файлдарды таңдау</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Күн</translation>
<translation id="2507943997699731163">Бұл өрісті толтырыңыз.</translation>
<translation id="2508569020611168319">қойындылар тізімі</translation>
+<translation id="2530182415807757784">бірнешеуін таңдауға болады, ешқайсысы таңдалмады.</translation>
<translation id="2561842179657104141">басқа да мультимедиа басқару элементтерін көрсету</translation>
<translation id="2572483411312390101">ойнату</translation>
<translation id="2613802280814924224">Жарамды мән енгізіңіз. Ең жақын жарамды мән <ph name="VALID_VALUE" /> болып табылады.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">мәзір жолағы</translation>
<translation id="4360991593054037559">Жарамды мән енгізіңіз. Екі ең жақын жарамды мән — <ph name="VALID_VALUE_LOW" /> және <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Сұрақ-жауап</translation>
-<translation id="4413860115965805769">мәзір түймесі</translation>
<translation id="4444765639179266822">Келесі сөз шығатын сияқты: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">глоссарий анықтамасы</translation>
<translation id="4522570452068850558">Мәліметтер</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_km.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_km.xtb
index ea74c47a545..63fbc60c45e 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_km.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_km.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">ការថ្លែងអំណរគុណ</translation>
<translation id="1342835525016946179">អត្ថបទ</translation>
<translation id="1359897965706325498">បដា</translation>
+<translation id="1480676835519562650">អាចជ្រើសរើសបានច្រើន បានជ្រើសរើស <ph name="SELECTED" /> ក្នុងចំណោម <ph name="COUNT" />។</translation>
<translation id="1589122976691792535">តំបន់</translation>
<translation id="1591562245178063882">ខែនេះ</translation>
<translation id="1637811476055996098">ជ្រើសរើសឯកសារ</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">ថ្ងៃ</translation>
<translation id="2507943997699731163">សូមបំពេញប្រអប់នេះ។</translation>
<translation id="2508569020611168319">បញ្ជីផ្ទាំង</translation>
+<translation id="2530182415807757784">អាចជ្រើសរើសបានច្រើន មិនបានជ្រើសរើស។</translation>
<translation id="2561842179657104141">បង្ហាញការគ្រប់គ្រងមេឌៀជាច្រើនទៀត</translation>
<translation id="2572483411312390101">លេង</translation>
<translation id="2613802280814924224">សូមបញ្ចូលតម្លៃដែលមានសុពលភាព។ តម្លៃដែលមានសុពលភាពក្បែរបំផុតគឺ <ph name="VALID_VALUE" />។</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">របារម៉ឺនុយ</translation>
<translation id="4360991593054037559">សូមបញ្ចូលតម្លៃដែលមានសុពលភាព។ តម្លៃដែលមានសុពលភាពដែលក្បែរបំផុតគឺ <ph name="VALID_VALUE_LOW" /> និង <ph name="VALID_VALUE_HIGHER" />។</translation>
<translation id="4384583879834880242">សំណួរ​ចម្លើយ</translation>
-<translation id="4413860115965805769">ប៊ូតុងម៉ឺនុយ</translation>
<translation id="4444765639179266822">ហាក់ដូចជា​និយាយថា៖ <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">ឯកសារ​យោង​នៃ​សទ្ទានុក្រម</translation>
<translation id="4522570452068850558">ព័ត៌មានលំអិត</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_kn.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_kn.xtb
index 25bc09cc36a..0362870c5e3 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_kn.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_kn.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">ಕ್ರೆಡಿಟ್‌ಗಳು</translation>
<translation id="1342835525016946179">ಲೇಖನ</translation>
<translation id="1359897965706325498">ಬ್ಯಾನರ್</translation>
+<translation id="1480676835519562650">ಬಹು ಆಯ್ಕೆ ಮಾಡಬಹುದಾದ್ದು, <ph name="SELECTED" />/<ph name="COUNT" /> ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ.</translation>
<translation id="1589122976691792535">ಪ್ರದೇಶ</translation>
<translation id="1591562245178063882">ಈ ತಿಂಗಳು</translation>
<translation id="1637811476055996098">ಫೈಲ್‌ಗಳನ್ನು ಆರಿಸಿ</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">ದಿನ</translation>
<translation id="2507943997699731163">ದಯವಿಟ್ಟು ಈ ಕ್ಷೇತ್ರವನ್ನು ಭರ್ತಿ ಮಾಡಿ.</translation>
<translation id="2508569020611168319">ಟ್ಯಾಬ್ ಪಟ್ಟಿ</translation>
+<translation id="2530182415807757784">ಬಹು ಆಯ್ಕೆ ಮಾಡಬಹುದಾದ್ದು, ಯಾವುದನ್ನೂ ಆಯ್ಕೆ ಮಾಡಿಲ್ಲ.</translation>
<translation id="2561842179657104141">ಇನ್ನಷ್ಟು ಮಾಧ್ಯಮ ನಿಯಂತ್ರಣಗಳನ್ನು ತೋರಿಸು</translation>
<translation id="2572483411312390101">ಪ್ಲೇ ಮಾಡಿ</translation>
<translation id="2613802280814924224">ಮಾನ್ಯ ಮೌಲ್ಯವನ್ನು ನಮೂದಿಸಿ. ಹತ್ತಿರದ ಮಾನ್ಯ ಮೌಲ್ಯವು <ph name="VALID_VALUE" /> ಆಗಿದೆ.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">ಮೆನು ಬಾರ್‌</translation>
<translation id="4360991593054037559">ಮಾನ್ಯವಾದ ಮೌಲ್ಯವನ್ನು ನಮೂದಿಸಿ. <ph name="VALID_VALUE_LOW" /> ಮತ್ತು <ph name="VALID_VALUE_HIGHER" /> ಎರಡು ಹತ್ತಿರದ ಮಾನ್ಯ ಮೌಲ್ಯಗಳಾಗಿವೆ.</translation>
<translation id="4384583879834880242">ಪ್ರಶ್ನೋತ್ತರ</translation>
-<translation id="4413860115965805769">ಮೆನು ಬಟನ್</translation>
<translation id="4444765639179266822">ಹೀಗೆ ಹೇಳುತ್ತಿರಬಹುದು: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">ಪದಕೋಶ ಉಲ್ಲೇಖ</translation>
<translation id="4522570452068850558">ವಿವರಗಳು</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_ko.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_ko.xtb
index 5a99e9a18df..f0858653325 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_ko.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_ko.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">저작권 표시</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">배너</translation>
+<translation id="1480676835519562650">여러 항목 선택 가능, <ph name="COUNT" />개 중 <ph name="SELECTED" />개 선택됨.</translation>
<translation id="1589122976691792535">지역</translation>
<translation id="1591562245178063882">이번 달</translation>
<translation id="1637811476055996098">파일 선택</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">일</translation>
<translation id="2507943997699731163">이 입력란을 작성하세요.</translation>
<translation id="2508569020611168319">탭 목록</translation>
+<translation id="2530182415807757784">여러 항목 선택 가능, 선택된 항목 없음.</translation>
<translation id="2561842179657104141">미디어 컨트롤 더보기</translation>
<translation id="2572483411312390101">재생</translation>
<translation id="2613802280814924224">유효한 값을 입력해 주세요. 가장 근접한 유효 값은 <ph name="VALID_VALUE" />입니다.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">메뉴 표시줄</translation>
<translation id="4360991593054037559">유효한 값을 입력해 주세요. 가장 근접한 유효 값 2개는 <ph name="VALID_VALUE_LOW" /> 및 <ph name="VALID_VALUE_HIGHER" />입니다.</translation>
<translation id="4384583879834880242">Q&amp;A</translation>
-<translation id="4413860115965805769">메뉴 버튼</translation>
<translation id="4444765639179266822">텍스트가 <ph name="OCR_TEXT" />인 것으로 보입니다</translation>
<translation id="4446524499724042288">용어 참조</translation>
<translation id="4522570452068850558">세부정보</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_ky.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_ky.xtb
index 83523e6cb44..a780b109fad 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_ky.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_ky.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">китептин чыгышы жөнүндөгү маалыматтар</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">баннер</translation>
+<translation id="1480676835519562650">бир нечесин тандаса болот, <ph name="COUNT" /> ичинен <ph name="SELECTED" /> тандалды.</translation>
<translation id="1589122976691792535">аймак</translation>
<translation id="1591562245178063882">Үстүбүздөгү ай</translation>
<translation id="1637811476055996098">Файлдарды тандаңыз</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Күн</translation>
<translation id="2507943997699731163">Бул талааны толтуруңуз.</translation>
<translation id="2508569020611168319">өтмөк тизмеси</translation>
+<translation id="2530182415807757784">бир нечесин тандаса болот, тандалган жок.</translation>
<translation id="2561842179657104141">көбүрөөк медианы көзөмөлдөө каражаттарын көрсөтүү</translation>
<translation id="2572483411312390101">ойнотуу</translation>
<translation id="2613802280814924224">Жарактуу маани киргизиңиз. Кыйла жарактуу маани: <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">меню тилкеси</translation>
<translation id="4360991593054037559">Жарактуу маанини киргизиңиз. Эң жакын жарактуу эки маани <ph name="VALID_VALUE_LOW" /> жана <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Суроолор жана жооптор</translation>
-<translation id="4413860115965805769">меню баскычы</translation>
<translation id="4444765639179266822">Төмөнкү жазылыптыр: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">глоссарийге шилтеме</translation>
<translation id="4522570452068850558">Чоо-жайлары</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_lo.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_lo.xtb
index 52e82a546d2..b7ad1656858 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_lo.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_lo.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">ເຄຣດິດ</translation>
<translation id="1342835525016946179">ບົດ​ຄວາມ</translation>
<translation id="1359897965706325498">ປ້າຍ​ໂຄ​ສະ​ນາ</translation>
+<translation id="1480676835519562650">ເລືອກໄດ້ຫຼາຍລາຍການ, ເລືອກ <ph name="SELECTED" /> ຈາກທັງໝົດ <ph name="COUNT" /> ແລ້ວ.</translation>
<translation id="1589122976691792535">ພາກພື້ນ</translation>
<translation id="1591562245178063882">ເດືອນ​ນີ້</translation>
<translation id="1637811476055996098">ເລືອກ​ໄຟລ​໌</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">ວັນ</translation>
<translation id="2507943997699731163">ກະລຸນາຕື່ມຂໍ້ມູນໃສ່ປ່ອງນີ້.</translation>
<translation id="2508569020611168319">ລາຍການແຖບ</translation>
+<translation id="2530182415807757784">ເລືອກໄດ້ຫຼາຍລາຍການ, ບໍ່ໄດ້ເລືອກລາຍການໃດເລີຍ.</translation>
<translation id="2561842179657104141">ສະແດງການຄວບຄຸມສື່ເພີ່ມເຕີມ</translation>
<translation id="2572483411312390101">ຫຼິ້ນ</translation>
<translation id="2613802280814924224">ກະ​ລຸ​ນາ​ປ້ອນຄ່າທີ່ໃຊ້ໄດ້ເຂົ້າໄປ​. ຄ່າໃຊ້ໄດ້ໃກ້ທີ່ສຸດແມ່ນ <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">ແຖບເມນູ</translation>
<translation id="4360991593054037559">ກະ​ລຸ​ນາ​ປ້ອນຄ່າທີ່ໃຊ້ໄດ້ເຂົ້າໄປ​. ຄ່າທີ່ໃຊ້ໄດ້ຢູ່ໃກ້ທີ່ສຸດທັງສອງ​ແມ່ນ <ph name="VALID_VALUE_LOW" /> ແລະ <ph name="VALID_VALUE_HIGHER" /> .</translation>
<translation id="4384583879834880242">ຖາມ-ຕອບ</translation>
-<translation id="4413860115965805769">ປຸ່ມເມນູ</translation>
<translation id="4444765639179266822">ປາກົດວ່າຈະເວົ້າ: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">ການອ້າງອີງປະມວນຄຳສັບ</translation>
<translation id="4522570452068850558">ລາຍ​ລະ​ອຽດ</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_lt.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_lt.xtb
index 743517a5fa1..c291ce83271 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_lt.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_lt.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">titrai</translation>
<translation id="1342835525016946179">artikelis</translation>
<translation id="1359897965706325498">reklamjuostė</translation>
+<translation id="1480676835519562650">keli pasirenkami, pasirinkta: <ph name="SELECTED" /> iš <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">regionas</translation>
<translation id="1591562245178063882">Šis mėnuo</translation>
<translation id="1637811476055996098">Pasirinkti failus</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Diena</translation>
<translation id="2507943997699731163">Užpildykite šį lauką.</translation>
<translation id="2508569020611168319">skirtukų sąrašas</translation>
+<translation id="2530182415807757784">keli pasirenkami, niekas nepasirinkta.</translation>
<translation id="2561842179657104141">rodyti daugiau medijos valdiklių</translation>
<translation id="2572483411312390101">paleisti</translation>
<translation id="2613802280814924224">Įveskite tinkamą vertę. Artimiausia tinkama vertė yra <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">meniu juosta</translation>
<translation id="4360991593054037559">Įveskite galiojančią vertę. Dvi artimiausios vertės yra <ph name="VALID_VALUE_LOW" /> ir <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Klausimai ir atsakymai</translation>
-<translation id="4413860115965805769">meniu mygtukas</translation>
<translation id="4444765639179266822">Tai tikriausiai reiškia: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">aiškinamojo terminų žodyno nuoroda</translation>
<translation id="4522570452068850558">Išsami informacija</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_lv.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_lv.xtb
index 732c0da42ab..aa0972cf050 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_lv.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_lv.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">pateicības</translation>
<translation id="1342835525016946179">raksts</translation>
<translation id="1359897965706325498">reklāmkarogs</translation>
+<translation id="1480676835519562650">vairākas atlasāmas iespējas; tika atlasītas <ph name="SELECTED" /> no <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">reģions</translation>
<translation id="1591562245178063882">Šis mēnesis</translation>
<translation id="1637811476055996098">Izvēlēties failus</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Diena</translation>
<translation id="2507943997699731163">Aizpildiet šo lauku.</translation>
<translation id="2508569020611168319">ciļņu saraksts</translation>
+<translation id="2530182415807757784">vairākas atlasāmas iespējas; nekas nav atlasīts</translation>
<translation id="2561842179657104141">rādīt citas multivides vadīklas</translation>
<translation id="2572483411312390101">atskaņot</translation>
<translation id="2613802280814924224">Lūdzu, ievadiet derīgu vērtību. Tuvākā derīgā vērtība ir <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">izvēļņu josla</translation>
<translation id="4360991593054037559">Lūdzu, ievadiet derīgu vērtību. Divas tuvākās derīgās vērtības ir <ph name="VALID_VALUE_LOW" /> un <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Jautājumi un atbildes</translation>
-<translation id="4413860115965805769">izvēlnes poga</translation>
<translation id="4444765639179266822">Izklausās: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">atsauce uz glosāriju</translation>
<translation id="4522570452068850558">Informācija</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_mk.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_mk.xtb
index 920ab169d03..8c401004e87 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_mk.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_mk.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">благодарност</translation>
<translation id="1342835525016946179">статија</translation>
<translation id="1359897965706325498">банер</translation>
+<translation id="1480676835519562650">повеќе опции за избор, избрани се <ph name="SELECTED" /> од <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">регион</translation>
<translation id="1591562245178063882">Овој месец</translation>
<translation id="1637811476055996098">Избери датотеки</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Ден</translation>
<translation id="2507943997699731163">Пополнете го ова поле.</translation>
<translation id="2508569020611168319">список со картички</translation>
+<translation id="2530182415807757784">повеќе опции за избор, ниедна не е избрана.</translation>
<translation id="2561842179657104141">прикажи повеќе контроли на аудио-визуелни содржини</translation>
<translation id="2572483411312390101">репродуцирај</translation>
<translation id="2613802280814924224">Внесете важечка вредност. Најблиската важечка вредност е <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">лента за мени</translation>
<translation id="4360991593054037559">Внесете важечка вредност. Двете најблиски важечки вредности се <ph name="VALID_VALUE_LOW" /> и <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">П и О</translation>
-<translation id="4413860115965805769">копче за мени</translation>
<translation id="4444765639179266822">Се чини дека вели: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">референца за поимник</translation>
<translation id="4522570452068850558">Детали</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_ml.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_ml.xtb
index c179188b32d..7b4f5bcbe90 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_ml.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_ml.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">ക്രെഡിറ്റുകൾ</translation>
<translation id="1342835525016946179">ലേഖനം</translation>
<translation id="1359897965706325498">ബാനർ</translation>
+<translation id="1480676835519562650">ഒന്നിലധികം തിരഞ്ഞെടുക്കാവുന്നത്, <ph name="COUNT" />-ൽ <ph name="SELECTED" /> എണ്ണം തിരഞ്ഞെടുത്തു.</translation>
<translation id="1589122976691792535">പ്രദേശം</translation>
<translation id="1591562245178063882">ഈ മാസം</translation>
<translation id="1637811476055996098">ഫയലുകൾ തിരഞ്ഞെടുക്കുക</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">ദിവസം</translation>
<translation id="2507943997699731163">ദയവായി ഈ ഫീല്‍ഡ് പൂരിപ്പിക്കുക.</translation>
<translation id="2508569020611168319">ടാബ് ലിസ്റ്റ്</translation>
+<translation id="2530182415807757784">ഒന്നിലധികം തിരഞ്ഞെടുക്കാവുന്നത്, ഒന്നും തിരഞ്ഞെടുത്തിട്ടില്ല.</translation>
<translation id="2561842179657104141">കൂടുതൽ മീഡിയ നിയന്ത്രണങ്ങൾ കാണിക്കുക</translation>
<translation id="2572483411312390101">പ്ലേ ചെയ്യുക</translation>
<translation id="2613802280814924224">സാധുവായ ഒരു മൂല്യം നൽകുക. ഏറ്റവുമടുത്ത സാധുവായ മൂല്യം <ph name="VALID_VALUE" /> ആണ്.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">മെനു ബാർ</translation>
<translation id="4360991593054037559">സാധുവായ മൂല്യം നൽകുക. സാധുവായ ഏറ്റവുമടുത്ത രണ്ട് മൂല്യങ്ങൾ <ph name="VALID_VALUE_LOW" />, <ph name="VALID_VALUE_HIGHER" /> എന്നിവയാണ്.</translation>
<translation id="4384583879834880242">ചോദ്യോത്തരം</translation>
-<translation id="4413860115965805769">മെനു ബട്ടൺ</translation>
<translation id="4444765639179266822">പറയാൻ ദൃശ്യമാകുന്നത്: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">പദസഞ്ചയ റെഫറൻസ്</translation>
<translation id="4522570452068850558">വിശദാംശങ്ങൾ‌</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_mn.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_mn.xtb
index b07d6bb9c4e..42f9fb593ec 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_mn.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_mn.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">оролцогчид</translation>
<translation id="1342835525016946179">Гарчиг</translation>
<translation id="1359897965706325498">баннер</translation>
+<translation id="1480676835519562650">олныг сонгох боломжтой, <ph name="COUNT" />-c <ph name="SELECTED" />-г сонгосон</translation>
<translation id="1589122976691792535">хамрах бүс</translation>
<translation id="1591562245178063882">Энэ сар</translation>
<translation id="1637811476055996098">Файлуудыг сонгох</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Өдөр</translation>
<translation id="2507943997699731163">Энэ талбарыг бөглөнө үү.</translation>
<translation id="2508569020611168319">чихтэй хуудасны жагсаалт</translation>
+<translation id="2530182415807757784">олныг сонгох боломжтой, алийг нь ч сонгоогүй.</translation>
<translation id="2561842179657104141">бусад медиа хяналтыг харуулах</translation>
<translation id="2572483411312390101">Тоглуулах</translation>
<translation id="2613802280814924224">Хүчинтэй утга оруулна уу. Хамгийн ойролцоо хүчинтэй утга нь <ph name="VALID_VALUE" /> юм.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">цэсний мөр</translation>
<translation id="4360991593054037559">Хүчинтэй утгыг оруулна уу. Хамгийн ойрын хүчинтэй дараах хоёр <ph name="VALID_VALUE_LOW" /> болон <ph name="VALID_VALUE_HIGHER" /> утгууд байна.</translation>
<translation id="4384583879834880242">Асуулт, хариулт</translation>
-<translation id="4413860115965805769">цэсний товчлуур</translation>
<translation id="4444765639179266822"><ph name="OCR_TEXT" /> гэж хэлж байгаа бололтой</translation>
<translation id="4446524499724042288">тайлбар толины лавлагаа</translation>
<translation id="4522570452068850558">дэлгэрэнгүй мэдээлэл</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_mr.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_mr.xtb
index 133f1c0c6d4..ac8920dfcea 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_mr.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_mr.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">श्रेय</translation>
<translation id="1342835525016946179">लेख</translation>
<translation id="1359897965706325498">बॅनर</translation>
+<translation id="1480676835519562650">एकाहून अधिक निवडण्यायोग्य, <ph name="COUNT" /> पैकी <ph name="SELECTED" /> निवडले.</translation>
<translation id="1589122976691792535">प्रदेश</translation>
<translation id="1591562245178063882">या महिन्यात</translation>
<translation id="1637811476055996098">फाइल निवडा</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">दिवस</translation>
<translation id="2507943997699731163">कृपया हे फील्ड भरा.</translation>
<translation id="2508569020611168319">टॅब सूची</translation>
+<translation id="2530182415807757784">एकाहून अधिक निवडण्यायोग्य, काहीही निवडले नाही.</translation>
<translation id="2561842179657104141">आणखी मीडिया नियंत्रणे दर्शवा</translation>
<translation id="2572483411312390101">प्ले करा</translation>
<translation id="2613802280814924224">कृपया एक वैध मूल्य एंटर करा. जवळील वैध मूल्य <ph name="VALID_VALUE" /> आहे.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">मेनू बार</translation>
<translation id="4360991593054037559">कृपया एक वैध मूल्य एंटर करा. दोन जवळील वैध मूल्ये <ph name="VALID_VALUE_LOW" /> आणि <ph name="VALID_VALUE_HIGHER" /> आहेत.</translation>
<translation id="4384583879834880242">प्रश्नोत्तरे</translation>
-<translation id="4413860115965805769">मेनू बटण</translation>
<translation id="4444765639179266822">असे म्हणत असल्याचे दिसत आहे: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">शब्दावली संदर्भ</translation>
<translation id="4522570452068850558">तपशील</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_ms.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_ms.xtb
index f6958734e59..7bd14d6456b 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_ms.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_ms.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">kredit</translation>
<translation id="1342835525016946179">artikel</translation>
<translation id="1359897965706325498">sepanduk</translation>
+<translation id="1480676835519562650">pelbagai pilihan, <ph name="SELECTED" /> daripada <ph name="COUNT" /> dipilih.</translation>
<translation id="1589122976691792535">wilayah</translation>
<translation id="1591562245178063882">Bulan ini</translation>
<translation id="1637811476055996098">Pilih Fail</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Hari</translation>
<translation id="2507943997699731163">Sila isikan medan ini.</translation>
<translation id="2508569020611168319">senarai tab</translation>
+<translation id="2530182415807757784">banyak boleh dipilih, tiada apa-apa dipilih.</translation>
<translation id="2561842179657104141">tunjukkan lagi kawalan media</translation>
<translation id="2572483411312390101">main</translation>
<translation id="2613802280814924224">Sila masukkan nilai yang sah. Nilai sah yang terdekat ialah <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">bar menu</translation>
<translation id="4360991593054037559">Sila masukkan nilai yang sah. Dua nilai sah yang terdekat ialah <ph name="VALID_VALUE_LOW" /> dan <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Soal Jawab</translation>
-<translation id="4413860115965805769">butang menu</translation>
<translation id="4444765639179266822">Nampaknya menyatakan: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">rujukan glosari</translation>
<translation id="4522570452068850558">Butiran</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_my.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_my.xtb
index 3ebae16b586..28ddfc7a031 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_my.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_my.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">မှတ်တမ်းတင်ထိုက်သူများ စာရင်း</translation>
<translation id="1342835525016946179">ဆောင်းပါး</translation>
<translation id="1359897965706325498">နဖူးစည်းစာတန်း</translation>
+<translation id="1480676835519562650">အများအပြားရွေးချယ်၍ရသည်၊ <ph name="COUNT" /> မှ <ph name="SELECTED" /> ခု ရွေးချယ်ထားသည်။</translation>
<translation id="1589122976691792535">ဒေသ</translation>
<translation id="1591562245178063882">ဤလ</translation>
<translation id="1637811476055996098">ဖိုင်များရွေး</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">ရက်</translation>
<translation id="2507943997699731163">ကျေးဇူးပြုပြီး ဒီအကွက်ကို ​ရေးဖြည့်ပါ။</translation>
<translation id="2508569020611168319">တဘ်စာရင်း</translation>
+<translation id="2530182415807757784">အများအပြားရွေးနိုင်သည်၊ တစ်ခုမျှရွေးမထားပါ။</translation>
<translation id="2561842179657104141">နောက်ထပ် မီဒီယာထိန်းချုပ်မှုများကို ပြပါ</translation>
<translation id="2572483411312390101">ဖွင့်ရန်</translation>
<translation id="2613802280814924224">ကျေးဇူးပြု၍ မှန်ကန်သည့် တန်ဖိုးထည့်ပါ။ အနီးဆုံး တန်ဖိုးသည် <ph name="VALID_VALUE" />။</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">မီနူးဘားတန်း</translation>
<translation id="4360991593054037559">ကျေးဇူးပြုပြီး မှန်ကန်သည့် တန်ဖိုးကို ရိုက်ထည့်ပါ။ မှန်ကန်သည့် အနီးဆုံး တန်ဖိုး နှစ်ခုမှာ <ph name="VALID_VALUE_LOW" /> နှင့် <ph name="VALID_VALUE_HIGHER" /> ဖြစ်သည်။</translation>
<translation id="4384583879834880242">အမေးအဖြေ</translation>
-<translation id="4413860115965805769">မီနူးခလုတ်</translation>
<translation id="4444765639179266822">အောက်ပါကို ပြောပုံရသည်- <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">ခက်ဆစ်အညွှန်း</translation>
<translation id="4522570452068850558">အသေးစိတ်များ</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_ne.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_ne.xtb
index 0be28547510..a1397afc091 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_ne.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_ne.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">श्रेय</translation>
<translation id="1342835525016946179">लेख</translation>
<translation id="1359897965706325498">ब्यानर</translation>
+<translation id="1480676835519562650">धेरै विकल्प चयन गर्ने सुविधा, <ph name="COUNT" /> मध्ये <ph name="SELECTED" /> चयन गरियो।</translation>
<translation id="1589122976691792535">क्षेत्र</translation>
<translation id="1591562245178063882">यो महिना</translation>
<translation id="1637811476055996098">फाइलहरू छान्नुहोस्</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">दिन</translation>
<translation id="2507943997699731163">कृपया यस क्षेत्रमा भर्नुहोस्।</translation>
<translation id="2508569020611168319">ट्याब सूची</translation>
+<translation id="2530182415807757784">धेरै विकल्प चयन गर्ने सुविधा, कसैलाई पनि चयन गरिएन।</translation>
<translation id="2561842179657104141">थप मिडिया नियन्त्रणहरू देखाउनुहोस्</translation>
<translation id="2572483411312390101">प्ले गर्नुहोस्</translation>
<translation id="2613802280814924224">कृपया एक वैध परिमाण प्रविष्टि गर्नुहोस्। सबैभन्दा नजिकको वैध परिमाण <ph name="VALID_VALUE" /> हो।</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">मेनु बार</translation>
<translation id="4360991593054037559">कृपया एउटा वैध मान प्रविष्टि गर्नुहोस्। दुईवा सबैभण्दा नजिकका वैध मानहरू <ph name="VALID_VALUE_LOW" /> र <ph name="VALID_VALUE_HIGHER" /> हुन्।</translation>
<translation id="4384583879834880242">प्रश्नोत्तर</translation>
-<translation id="4413860115965805769">मेनु बटन</translation>
<translation id="4444765639179266822">निम्न कुरा भन्न खोजे जस्तो छ: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">शब्दावलीको सन्दर्भ</translation>
<translation id="4522570452068850558">विवरणहरू</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_nl.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_nl.xtb
index de5d3645edc..ef9e6868e6f 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_nl.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_nl.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">bronvermelding</translation>
<translation id="1342835525016946179">artikel</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">Meerdere selecties mogelijk. <ph name="SELECTED" /> van <ph name="COUNT" /> geselecteerd.</translation>
<translation id="1589122976691792535">regio</translation>
<translation id="1591562245178063882">Deze maand</translation>
<translation id="1637811476055996098">Bestanden kiezen</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dag</translation>
<translation id="2507943997699731163">Vul dit veld in.</translation>
<translation id="2508569020611168319">tabbladlijst</translation>
+<translation id="2530182415807757784">Meerdere selecties mogelijk. Niets geselecteerd.</translation>
<translation id="2561842179657104141">meer mediabedieningselementen weergeven</translation>
<translation id="2572483411312390101">afspelen</translation>
<translation id="2613802280814924224">Geef een geldige waarde op. De dichtstbijzijnde geldige waarde is <ph name="VALID_VALUE" />.</translation>
@@ -58,7 +60,7 @@
<translation id="2653659639078652383">Verzenden</translation>
<translation id="2657045182931379222">grafisch object</translation>
<translation id="2674318244760992338">voettekst</translation>
-<translation id="2709516037105925701">Automatisch aanvullen</translation>
+<translation id="2709516037105925701">Automatisch invullen</translation>
<translation id="2723001399770238859">audio</translation>
<translation id="2746543609216772311">Waarde moet <ph name="MINIMUM_DATE_OR_TIME" /> of later zijn.</translation>
<translation id="2759744352195237655">pop-upknop</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">menubalk</translation>
<translation id="4360991593054037559">Geef een geldige waarde op. De twee dichtstbijzijnde geldige waarden zijn <ph name="VALID_VALUE_LOW" /> en <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Q&amp;A</translation>
-<translation id="4413860115965805769">menuknop</translation>
<translation id="4444765639179266822">Lijkt het volgende te zeggen: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">woordenlijstreferentie</translation>
<translation id="4522570452068850558">Details</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_no.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_no.xtb
index 985be2a92ca..3be00e1209a 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_no.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_no.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">anerkjennelser</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">node med flere mulige valg – <ph name="SELECTED" /> av <ph name="COUNT" /> er valgt.</translation>
<translation id="1589122976691792535">område</translation>
<translation id="1591562245178063882">Denne måneden</translation>
<translation id="1637811476055996098">Velg filer</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dag</translation>
<translation id="2507943997699731163">Vennligst fyll ut dette feltet.</translation>
<translation id="2508569020611168319">faneliste</translation>
+<translation id="2530182415807757784">node med flere mulige valg – ingen er valgt.</translation>
<translation id="2561842179657104141">vis flere mediakontroller</translation>
<translation id="2572483411312390101">spill av</translation>
<translation id="2613802280814924224">Skriv inn en gyldig verdi. Den nærmeste, gyldige verdien er <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">menyrad</translation>
<translation id="4360991593054037559">Skriv inn en gyldig verdi. De to nærmeste, gyldige verdiene er <ph name="VALID_VALUE_LOW" /> og <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Spørsmål og svar</translation>
-<translation id="4413860115965805769">menyknapp</translation>
<translation id="4444765639179266822">Det ser ut til at det står <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">ordlistereferanse</translation>
<translation id="4522570452068850558">Detaljer</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_or.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_or.xtb
index 2977288926f..16de82a2328 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_or.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_or.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">କ୍ରେଡିଟ୍</translation>
<translation id="1342835525016946179">ଆର୍ଟିକଲ୍‍</translation>
<translation id="1359897965706325498">ବ୍ୟାନର୍</translation>
+<translation id="1480676835519562650">ଏକାଧିକ ଚୟନ କରାଯାଇପାରୁଥିବା, <ph name="COUNT" />ଟିରୁ <ph name="SELECTED" />ଟି ଚୟନ କରାଯାଇଛି ।</translation>
<translation id="1589122976691792535">ଅଞ୍ଚଳ</translation>
<translation id="1591562245178063882">ଏହି ମାସ</translation>
<translation id="1637811476055996098">ଫାଇଲ୍‌ଗୁଡ଼ିକ ବାଛନ୍ତୁ</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">ଦିନ</translation>
<translation id="2507943997699731163">ଦୟାକରି ଏହି କ୍ଷେତ୍ର ପୂରଣ କରନ୍ତୁ।</translation>
<translation id="2508569020611168319">ଟାବ୍‍ ତାଲିକା</translation>
+<translation id="2530182415807757784">ଏକାଧିକ ଚୟନ କରାଯାଇପାରୁଥିବା, କିଛି ଚୟନ କରାଯାଇନାହିଁ।</translation>
<translation id="2561842179657104141">ଅଧିକ ମିଡିଆ ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ ଦେଖାନ୍ତୁ</translation>
<translation id="2572483411312390101">ଚଲାନ୍ତୁ</translation>
<translation id="2613802280814924224">ଦୟାକରି ଏକ ବୈଧ ମୂଲ୍ୟ ଲେଖନ୍ତୁ। ନିକଟତମ ବୈଧ ମୂଲ୍ୟ <ph name="VALID_VALUE" /> ଅଟେ।</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">ମେନୁ ବାର୍</translation>
<translation id="4360991593054037559">ଦୟାକରି, ଏକ ବୈଧ ମୂଲ୍ୟ ଲେଖନ୍ତୁ ଦୁଇଟି ନିକଟସ୍ଥ ବୈଧ ମାନ <ph name="VALID_VALUE_LOW" /> ଏବଂ <ph name="VALID_VALUE_HIGHER" />ଅଟେ।</translation>
<translation id="4384583879834880242">ପ୍ରଶ୍ନ&amp;ଉତ୍ତର</translation>
-<translation id="4413860115965805769">ମେନୁ ବଟନ୍</translation>
<translation id="4444765639179266822">ଏହି ସୂଚନା ଏହି ବିଷୟରେ ଲାଗୁଛି: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">ଶବ୍ଦାବଳୀର ସନ୍ଦର୍ଭ</translation>
<translation id="4522570452068850558">ବିବରଣୀ</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_pa.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_pa.xtb
index ec07a13642b..787e7fb0b63 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_pa.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_pa.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">ਕ੍ਰੈਡਿਟ</translation>
<translation id="1342835525016946179">ਲੇਖ</translation>
<translation id="1359897965706325498">ਬੈਨਰ</translation>
+<translation id="1480676835519562650">ਇੱਕ ਤੋਂ ਵੱਧ ਚੁਣਨਯੋਗ, <ph name="COUNT" /> ਵਿੱਚੋਂ <ph name="SELECTED" /> ਨੂੰ ਚੁਣਿਆ ਗਿਆ।</translation>
<translation id="1589122976691792535">ਖੇਤਰ</translation>
<translation id="1591562245178063882">ਇਸ ਮਹੀਨੇ</translation>
<translation id="1637811476055996098">ਫਾਈਲਾਂ ਚੁਣੋ</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">ਦਿਨ</translation>
<translation id="2507943997699731163">ਕਿਰਪਾ ਕਰਕੇ ਇਹ ਖੇਤਰ ਭਰੋ।</translation>
<translation id="2508569020611168319">ਟੈਬ ਸੂਚੀ</translation>
+<translation id="2530182415807757784">ਇੱਕ ਤੋਂ ਵੱਧ ਚੁਣਨਯੋਗ, ਕਿਸੇ ਨੂੰ ਨਹੀਂ ਚੁਣਿਆ ਗਿਆ।</translation>
<translation id="2561842179657104141">ਹੋਰ ਮੀਡੀਆ ਕੰਟਰੋਲ ਦਿਖਾਓ </translation>
<translation id="2572483411312390101">ਪਲੇ ਕਰੋ</translation>
<translation id="2613802280814924224">ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਪ੍ਰਮਾਣਿਕ ਵੈਲਯੂ ਦਰਜ ਕਰੋ। ਸਭ ਤੋਂ ਵੱਧ ਨੇੜੇ ਦੀ ਪ੍ਰਮਾਣਿਤ ਵੈਲਯੂ <ph name="VALID_VALUE" /> ਹੈ।</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">ਮੀਨੂ ਬਾਰ</translation>
<translation id="4360991593054037559">ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਪ੍ਰਮਾਣਿਕ ਵੈਲਯੂ ਦਰਜ ਕਰੋ। ਦੋ ਲਗਭਗ ਵੈਲਯੂਜ <ph name="VALID_VALUE_LOW" /> ਅਤੇ <ph name="VALID_VALUE_HIGHER" /> ਹਨ।</translation>
<translation id="4384583879834880242">ਸਵਾਲ-ਜਵਾਬ</translation>
-<translation id="4413860115965805769">ਮੀਨੂ ਬਟਨ</translation>
<translation id="4444765639179266822">ਲੱਗਦਾ ਹੈ ਕਿ ਇਹ ਕਿਹਾ ਜਾ ਰਿਹਾ ਹੈ: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">ਸ਼ਬਦਾਵਲੀ ਦਾ ਹਵਾਲਾ</translation>
<translation id="4522570452068850558">ਵੇਰਵੇ</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_pl.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_pl.xtb
index 09abb7515e6..92659d37342 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_pl.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_pl.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">autorzy</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">baner</translation>
+<translation id="1480676835519562650">wielokrotny wybór, wybrano <ph name="SELECTED" /> z <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">region</translation>
<translation id="1591562245178063882">W tym miesiącu</translation>
<translation id="1637811476055996098">Wybierz pliki</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dzień</translation>
<translation id="2507943997699731163">Wypełnij to pole.</translation>
<translation id="2508569020611168319">lista kart</translation>
+<translation id="2530182415807757784">wybór wielokrotny, nic nie wybrano.</translation>
<translation id="2561842179657104141">pokaż więcej opcji sterowania multimediami</translation>
<translation id="2572483411312390101">odtwórz</translation>
<translation id="2613802280814924224">Podaj prawidłową wartość. Najbliższa prawidłowa wartość to <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">pasek menu</translation>
<translation id="4360991593054037559">Podaj prawidłową wartość. Dwie najbliższe prawidłowe wartości to <ph name="VALID_VALUE_LOW" /> i <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Pytania i odpowiedzi</translation>
-<translation id="4413860115965805769">przycisk menu</translation>
<translation id="4444765639179266822">Wygląda jak napis: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">odniesienie do słownika</translation>
<translation id="4522570452068850558">Szczegóły</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_pt-BR.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_pt-BR.xtb
index dcf4c7a461e..68a6c04b28c 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_pt-BR.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_pt-BR.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">créditos</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">vários selecionáveis, <ph name="SELECTED" /> de <ph name="COUNT" /> selecionados.</translation>
<translation id="1589122976691792535">região</translation>
<translation id="1591562245178063882">Este mês</translation>
<translation id="1637811476055996098">Escolher arquivos</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dia</translation>
<translation id="2507943997699731163">Preencha este campo.</translation>
<translation id="2508569020611168319">lista de guias</translation>
+<translation id="2530182415807757784">vários selecionáveis, nenhum selecionado.</translation>
<translation id="2561842179657104141">mostrar mais controles de mídia</translation>
<translation id="2572483411312390101">reproduzir</translation>
<translation id="2613802280814924224">Insira um valor válido. O valor válido mais próximo é <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">barra de menu</translation>
<translation id="4360991593054037559">Insira um valor válido. Os dois valores válidos mais próximos são <ph name="VALID_VALUE_LOW" /> e <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Perguntas e respostas</translation>
-<translation id="4413860115965805769">botão de menu</translation>
<translation id="4444765639179266822">Parece dizer: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">referência de glossário</translation>
<translation id="4522570452068850558">Saiba mais</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_pt-PT.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_pt-PT.xtb
index 74d91137325..f1e09b6c6c4 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_pt-PT.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_pt-PT.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">créditos</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">vários selecionáveis, <ph name="SELECTED" /> de <ph name="COUNT" /> selecionados.</translation>
<translation id="1589122976691792535">região</translation>
<translation id="1591562245178063882">Este mês</translation>
<translation id="1637811476055996098">Escolher Ficheiros</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dia</translation>
<translation id="2507943997699731163">Preencha este campo.</translation>
<translation id="2508569020611168319">lista de separadores</translation>
+<translation id="2530182415807757784">vários selecionáveis, nenhum selecionado.</translation>
<translation id="2561842179657104141">mostrar mais controlos de multimédia</translation>
<translation id="2572483411312390101">reproduzir</translation>
<translation id="2613802280814924224">Introduza um valor válido. O valor válido mais próximo é <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">barra de menu</translation>
<translation id="4360991593054037559">Introduza um valor válido. Os dois valores válidos mais próximos são <ph name="VALID_VALUE_LOW" /> e <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Perg e Resp</translation>
-<translation id="4413860115965805769">botão de menu</translation>
<translation id="4444765639179266822">Parece indicar: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">referência do glossário</translation>
<translation id="4522570452068850558">Detalhes</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_ro.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_ro.xtb
index aa761fa5e64..f7a45ca20e0 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_ro.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_ro.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">mulțumiri</translation>
<translation id="1342835525016946179">articol</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">Este posibilă selectarea multiplă, ai selectat <ph name="SELECTED" /> din <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">regiune</translation>
<translation id="1591562245178063882">Luna aceasta</translation>
<translation id="1637811476055996098">Alege fișierele</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Zi</translation>
<translation id="2507943997699731163">Completează acest câmp.</translation>
<translation id="2508569020611168319">listă de file</translation>
+<translation id="2530182415807757784">Este posibilă selectarea multiplă, nu s-a selectat nicio opțiune.</translation>
<translation id="2561842179657104141">afișează mai multe comenzi media</translation>
<translation id="2572483411312390101">redați</translation>
<translation id="2613802280814924224">Introduceți o valoare validă. Cea mai apropiată valoare validă este <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">bară de meniu</translation>
<translation id="4360991593054037559">Introduceți o valoare validă. Cele mai apropiate valori valide sunt <ph name="VALID_VALUE_LOW" /> și <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Întrebări și răspunsuri</translation>
-<translation id="4413860115965805769">buton de meniu</translation>
<translation id="4444765639179266822">Se pare că spune: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">trimitere la glosar</translation>
<translation id="4522570452068850558">Detalii</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_ru.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_ru.xtb
index 4548c76eb11..7d63e9fc087 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_ru.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_ru.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">выходные сведения</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">баннер</translation>
+<translation id="1480676835519562650">можно выбрать несколько. Выбрано: <ph name="SELECTED" /> из <ph name="COUNT" /></translation>
<translation id="1589122976691792535">регион</translation>
<translation id="1591562245178063882">В этом месяце</translation>
<translation id="1637811476055996098">Выбрать файлы</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">День</translation>
<translation id="2507943997699731163">Заполните это поле.</translation>
<translation id="2508569020611168319">список вкладок</translation>
+<translation id="2530182415807757784">можно выбрать несколько. Ничего не выбрано</translation>
<translation id="2561842179657104141">ещё элементы управления</translation>
<translation id="2572483411312390101">воспроизведение</translation>
<translation id="2613802280814924224">Введите допустимое значение. Ближайшее допустимое значение: <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">панель меню</translation>
<translation id="4360991593054037559">Введите допустимое значение. Ближайшие допустимые значения: <ph name="VALID_VALUE_LOW" /> и <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Вопросы и ответы</translation>
-<translation id="4413860115965805769">кнопка меню</translation>
<translation id="4444765639179266822">Похоже, тут написано "<ph name="OCR_TEXT" />"</translation>
<translation id="4446524499724042288">ссылка на словарную статью</translation>
<translation id="4522570452068850558">Подробнее</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_si.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_si.xtb
index 0acff570dea..804df2822ff 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_si.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_si.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">සම්මාන</translation>
<translation id="1342835525016946179">ලිපිය</translation>
<translation id="1359897965706325498">බැනරය</translation>
+<translation id="1480676835519562650">බහුතේරිය හැකි, <ph name="COUNT" />කින් <ph name="SELECTED" />ක් තෝරන ලදි.</translation>
<translation id="1589122976691792535">කලාපය</translation>
<translation id="1591562245178063882">මෙම මාසය</translation>
<translation id="1637811476055996098">ගොනු තෝරන්න</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">දිනය</translation>
<translation id="2507943997699731163">කරුණාකර මෙම ක්ෂේත්‍රය පුරවන්න.</translation>
<translation id="2508569020611168319">ටැබ ලැයිස්තුව</translation>
+<translation id="2530182415807757784">බහු තේරිය හැකි, කිසිවක් තෝරා නැත.</translation>
<translation id="2561842179657104141">තවත් මාධ්‍ය පාලන පෙන්වන්න</translation>
<translation id="2572483411312390101">වාදනය කරන්න</translation>
<translation id="2613802280814924224">වලංගු අගයක් ඇතුළත් කරන්න. ආසන්නතම වලංගු අගය <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">මෙනු තීරුව</translation>
<translation id="4360991593054037559">කරුණාකර වලංගු අගයක් ඇතුළු කරන්න. ආසන්නතම වලංගු අගයයන් දෙක වනුයේ <ph name="VALID_VALUE_LOW" /> සහ <ph name="VALID_VALUE_HIGHER" />වේ.</translation>
<translation id="4384583879834880242">ප්‍රශ්න සහ පිළිතුරු</translation>
-<translation id="4413860115965805769">මෙනු බොත්තම</translation>
<translation id="4444765639179266822">මෙසේ කියන බව පෙනේ: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">ශබ්ද මාලා යොමුව</translation>
<translation id="4522570452068850558">විස්තර</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_sk.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_sk.xtb
index 8764b8ba33f..8d2363a7f91 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_sk.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_sk.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">titulky</translation>
<translation id="1342835525016946179">článok</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">s viacerými výbermi, vybrané: <ph name="SELECTED" /> z <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">oblasť</translation>
<translation id="1591562245178063882">Tento mesiac</translation>
<translation id="1637811476055996098">Vybrať súbory</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Deň</translation>
<translation id="2507943997699731163">Vyplňte toto pole.</translation>
<translation id="2508569020611168319">zoznam kariet</translation>
+<translation id="2530182415807757784">s viacerými výbermi, žiadne vybrané</translation>
<translation id="2561842179657104141">zobraziť ďalšie ovládacie prvky médií</translation>
<translation id="2572483411312390101">prehrať</translation>
<translation id="2613802280814924224">Zadajte platnú hodnotu. Najbližšia platná hodnota je <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">panel s ponukami</translation>
<translation id="4360991593054037559">Zadajte platnú hodnotu. Najbližšie platné hodnoty sú <ph name="VALID_VALUE_LOW" /> a <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Otázky a odpovede</translation>
-<translation id="4413860115965805769">tlačidlo ponuky</translation>
<translation id="4444765639179266822">Zrejme znamená: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">glosárový termín</translation>
<translation id="4522570452068850558">Podrobnosti</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_sl.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_sl.xtb
index 2c30204effe..3ec8a46af06 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_sl.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_sl.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">seznam sodelujočih</translation>
<translation id="1342835525016946179">člnk</translation>
<translation id="1359897965706325498">pasica</translation>
+<translation id="1480676835519562650">Izbrati je mogoče več otrok, izbranih je toliko: <ph name="SELECTED" /> od <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">območje</translation>
<translation id="1591562245178063882">Ta mesec</translation>
<translation id="1637811476055996098">Izberi datoteke</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dan</translation>
<translation id="2507943997699731163">Izpolnite to polje</translation>
<translation id="2508569020611168319">seznam zavihkov</translation>
+<translation id="2530182415807757784">Mogoče je izbrati več otrok, izbran ni noben.</translation>
<translation id="2561842179657104141">prikaz več kontrolnikov za predstavnost</translation>
<translation id="2572483411312390101">predvajanje</translation>
<translation id="2613802280814924224">Vnesite veljavno vrednost. Najbližja veljavna vrednost je <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">menijska vrstica</translation>
<translation id="4360991593054037559">Vnesite veljavno vrednost. Najbližji veljavni vrednosti sta <ph name="VALID_VALUE_LOW" /> in <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Vprašanja</translation>
-<translation id="4413860115965805769">menijski gumb</translation>
<translation id="4444765639179266822">Videti je, da piše: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">vnos v glosarju</translation>
<translation id="4522570452068850558">Podrobnosti</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_sq.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_sq.xtb
index ea02170df8b..9fed34b1b49 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_sq.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_sq.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">kredite</translation>
<translation id="1342835525016946179">artikull</translation>
<translation id="1359897965706325498">banderolë</translation>
+<translation id="1480676835519562650">me zgjedhje të shumëfishtë, <ph name="SELECTED" /> nga <ph name="COUNT" /> të zgjedhura.</translation>
<translation id="1589122976691792535">rajoni</translation>
<translation id="1591562245178063882">Këtë muaj</translation>
<translation id="1637811476055996098">Zgjidh skedarët</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dita</translation>
<translation id="2507943997699731163">Plotësoje këtë fushë.</translation>
<translation id="2508569020611168319">lista e skedave</translation>
+<translation id="2530182415807757784">me zgjedhje të shumëfishtë, nuk është zgjedhur asnjë.</translation>
<translation id="2561842179657104141">shfaq më shumë kontrolle të medias</translation>
<translation id="2572483411312390101">luaj</translation>
<translation id="2613802280814924224">Fut një vlerë të vlefshme. Vlera më e afërt e vlefshme është <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">shiriti i menysë</translation>
<translation id="4360991593054037559">Fut një vlerë të vlefshme. Dy vlerat më e afërta të vlefshme janë <ph name="VALID_VALUE_LOW" /> dhe <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Pyetje dhe përgjigje</translation>
-<translation id="4413860115965805769">butoni i menysë</translation>
<translation id="4444765639179266822">Duket se thotë: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">referencë fjalorthi</translation>
<translation id="4522570452068850558">Detajet</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_sr-Latn.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_sr-Latn.xtb
index cba6078b05c..da1c40c889f 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_sr-Latn.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_sr-Latn.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">zasluge</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">baner</translation>
+<translation id="1480676835519562650">više opcija za izbor, izabranih: <ph name="SELECTED" /> od <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">region</translation>
<translation id="1591562245178063882">Ovaj mesec</translation>
<translation id="1637811476055996098">Izbor datoteka</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dan</translation>
<translation id="2507943997699731163">Popunite ovo polje.</translation>
<translation id="2508569020611168319">lista kartica</translation>
+<translation id="2530182415807757784">više opcija za izbor, nijedna nije izabrana.</translation>
<translation id="2561842179657104141">prikaži više kontrola za medije</translation>
<translation id="2572483411312390101">pustite</translation>
<translation id="2613802280814924224">Unesite važeću vrednost. Najbliža važeća vrednost je <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">traka sa menijima</translation>
<translation id="4360991593054037559">Unesite važeću vrednost. Dve najbliže važeće vrednosti su <ph name="VALID_VALUE_LOW" /> i <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Pitanja i odgovori</translation>
-<translation id="4413860115965805769">dugme menija</translation>
<translation id="4444765639179266822">Izgleda da piše: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">referenca rečnika termina</translation>
<translation id="4522570452068850558">Detalji</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_sr.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_sr.xtb
index 029a5c738f2..7d80ce056f7 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_sr.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_sr.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">заслуге</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">банер</translation>
+<translation id="1480676835519562650">више опција за избор, изабраних: <ph name="SELECTED" /> од <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">регион</translation>
<translation id="1591562245178063882">Овај месец</translation>
<translation id="1637811476055996098">Избор датотека</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Дан</translation>
<translation id="2507943997699731163">Попуните ово поље.</translation>
<translation id="2508569020611168319">листа картица</translation>
+<translation id="2530182415807757784">више опција за избор, ниједна није изабрана.</translation>
<translation id="2561842179657104141">прикажи више контрола за медије</translation>
<translation id="2572483411312390101">пустите</translation>
<translation id="2613802280814924224">Унесите важећу вредност. Најближа важећа вредност је <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">трака са менијима</translation>
<translation id="4360991593054037559">Унесите важећу вредност. Две најближе важеће вредности су <ph name="VALID_VALUE_LOW" /> и <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Питања и одговори</translation>
-<translation id="4413860115965805769">дугме менија</translation>
<translation id="4444765639179266822">Изгледа да пише: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">референца речника термина</translation>
<translation id="4522570452068850558">Детаљи</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_sv.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_sv.xtb
index e886386bd51..24e48ff5f82 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_sv.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_sv.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">medverkande</translation>
<translation id="1342835525016946179">artikel</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">kan välja flera, <ph name="SELECTED" /> av <ph name="COUNT" /> har valts.</translation>
<translation id="1589122976691792535">område</translation>
<translation id="1591562245178063882">Den här månaden</translation>
<translation id="1637811476055996098">Välj filer</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Dag</translation>
<translation id="2507943997699731163">Fyll i det här fältet.</translation>
<translation id="2508569020611168319">fliklista</translation>
+<translation id="2530182415807757784">kan välja flera, inga har valts.</translation>
<translation id="2561842179657104141">visa fler mediereglage</translation>
<translation id="2572483411312390101">spela upp</translation>
<translation id="2613802280814924224">Ange ett giltigt värde. Det närmast giltiga värdet är <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">menyfält</translation>
<translation id="4360991593054037559">Ange ett giltigt värde. De två närmaste giltiga värdena är <ph name="VALID_VALUE_LOW" /> och <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Frågor och svar</translation>
-<translation id="4413860115965805769">menyknapp</translation>
<translation id="4444765639179266822">Säger troligen: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">hänvisning till ordlista</translation>
<translation id="4522570452068850558">Info</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_sw.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_sw.xtb
index b3009df38f5..2fa7bd21221 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_sw.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_sw.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">walioshiriki</translation>
<translation id="1342835525016946179">makala</translation>
<translation id="1359897965706325498">bango</translation>
+<translation id="1480676835519562650">unaweza kuchagua wengi, umechagua <ph name="SELECTED" /> kati ya <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">eneo</translation>
<translation id="1591562245178063882">Mwezi huu</translation>
<translation id="1637811476055996098">Chagua Faili</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Siku</translation>
<translation id="2507943997699731163">Tafadhali jaza sehemu hii.</translation>
<translation id="2508569020611168319">orodha ya vichupo</translation>
+<translation id="2530182415807757784">unaweza kuchagua wengi, hujachagua yeyote.</translation>
<translation id="2561842179657104141">onyesha vidhibiti zaidi vya maudhui</translation>
<translation id="2572483411312390101">cheza</translation>
<translation id="2613802280814924224">Tafadhali ingiza thamani halali.Thamani halali ya karibu ni <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">upau wa menyu</translation>
<translation id="4360991593054037559">Tafadhali ingiza thamani halali. Thamani mbili halali za karibu ni <ph name="VALID_VALUE_LOW" /> na <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Maswali na Majibu</translation>
-<translation id="4413860115965805769">kitufe cha menyu</translation>
<translation id="4444765639179266822">Inaonekana kusema: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">marejeleo ya farahasa</translation>
<translation id="4522570452068850558">Maelezo</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_ta.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_ta.xtb
index 5fdb4152c45..d1680bff3ea 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_ta.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_ta.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">பங்களித்தவர்கள்</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">பேனர்</translation>
+<translation id="1480676835519562650">பலவற்றைத் தேர்ந்தெடுக்கலாம், <ph name="SELECTED" />/<ph name="COUNT" /> தேர்ந்தெடுக்கப்பட்டுள்ளன.</translation>
<translation id="1589122976691792535">மண்டலம்</translation>
<translation id="1591562245178063882">இந்த மாதம்</translation>
<translation id="1637811476055996098">கோப்புகளைத் தேர்வுசெய்க</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">நாள்</translation>
<translation id="2507943997699731163">இந்தப் புலத்தை நிரப்புக.</translation>
<translation id="2508569020611168319">தாவல் பட்டியல்</translation>
+<translation id="2530182415807757784">பலவற்றைத் தேர்ந்தெடுக்கலாம், எதுவும் தேர்ந்தெடுக்கப்படவில்லை.</translation>
<translation id="2561842179657104141">மேலும் மீடியா கட்டுப்பாடுகளைக் காட்டு</translation>
<translation id="2572483411312390101">இயக்கு</translation>
<translation id="2613802280814924224">சரியான மதிப்பை உள்ளிடவும். <ph name="VALID_VALUE" /> என்பது நெருக்கமாக உள்ள சரியான மதிப்பாகும்.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">மெனுப் பட்டி</translation>
<translation id="4360991593054037559">சரியான மதிப்பை உள்ளிடவும். <ph name="VALID_VALUE_LOW" /> மற்றும் <ph name="VALID_VALUE_HIGHER" /> ஆகியவை மிக நெருக்கமான சரியான இரண்டு மதிப்புகளாகும்.</translation>
<translation id="4384583879834880242">கேள்வி-பதில்</translation>
-<translation id="4413860115965805769">மெனு பொத்தான்</translation>
<translation id="4444765639179266822"><ph name="OCR_TEXT" /> என்று சொல்வதாகத் தோன்றுகிறது</translation>
<translation id="4446524499724042288">அருஞ்சொல் திரட்டு மேற்கோள்</translation>
<translation id="4522570452068850558">விவரங்கள்</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_te.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_te.xtb
index f343c12f6b6..f4432b196dd 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_te.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_te.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">సహకారులు</translation>
<translation id="1342835525016946179">కథనం</translation>
<translation id="1359897965706325498">బ్యానర్</translation>
+<translation id="1480676835519562650">బహుళంగా ఎంచుకోదగినది, <ph name="COUNT" />లో <ph name="SELECTED" /> ఎంచుకోబడ్డాయి.</translation>
<translation id="1589122976691792535">ప్రాంతం</translation>
<translation id="1591562245178063882">ఈ నెల</translation>
<translation id="1637811476055996098">ఫైల్‌లను ఎంచుకోండి</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">రోజు</translation>
<translation id="2507943997699731163">దయచేసి ఈ ఫీల్డ్‌ను పూర్తి చేయండి.</translation>
<translation id="2508569020611168319">ట్యాబ్ జాబితా</translation>
+<translation id="2530182415807757784">బహుళ వాటిని ఎంచుకోగలిగేది, ఏదీ ఎంచుకోలేదు.</translation>
<translation id="2561842179657104141">మరిన్ని మీడియా నియంత్రణలను చూపు</translation>
<translation id="2572483411312390101">ప్లే చేయి</translation>
<translation id="2613802280814924224">దయచేసి చెల్లుబాటు అయ్యే విలువను నమోదు చేయండి. <ph name="VALID_VALUE" /> అనేది సమీప చెల్లుబాటు విలువ.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">మెనూ బార్</translation>
<translation id="4360991593054037559">దయచేసి చెల్లుబాటు అయ్యే విలువను నమోదు చేయండి. <ph name="VALID_VALUE_LOW" /> మరియు <ph name="VALID_VALUE_HIGHER" /> అనేవి రెండు సమీప చెల్లుబాటు విలువలు.</translation>
<translation id="4384583879834880242">Q&amp;A</translation>
-<translation id="4413860115965805769">మెను బటన్</translation>
<translation id="4444765639179266822">ఇది చెబుతున్నట్లుగా ఉంది: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">పదకోశ సూచన</translation>
<translation id="4522570452068850558">వివరాలు</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_th.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_th.xtb
index 17662b2b9f9..e5af1fd7256 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_th.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_th.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">เครดิต</translation>
<translation id="1342835525016946179">บทความ</translation>
<translation id="1359897965706325498">แบนเนอร์</translation>
+<translation id="1480676835519562650">เลือกได้หลายรายการ และมีการเลือกไว้ <ph name="SELECTED" /> จาก <ph name="COUNT" /> รายการ</translation>
<translation id="1589122976691792535">ภูมิภาค</translation>
<translation id="1591562245178063882">เดือนนี้</translation>
<translation id="1637811476055996098">เลือกไฟล์</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">วัน</translation>
<translation id="2507943997699731163">โปรดกรอกฟิลด์นี้</translation>
<translation id="2508569020611168319">รายการแท็บ</translation>
+<translation id="2530182415807757784">เลือกได้หลายรายการ แต่ยังไม่ได้เลือกรายการใดเลย</translation>
<translation id="2561842179657104141">แสดงส่วนควบคุมสื่อเพิ่มเติม</translation>
<translation id="2572483411312390101">เล่น</translation>
<translation id="2613802280814924224">โปรดป้อนค่าที่ถูกต้อง ค่าใกล้เคียงที่สุดที่ถูกต้องคือ <ph name="VALID_VALUE" /></translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">แถบเมนู</translation>
<translation id="4360991593054037559">โปรดป้อนค่าที่ถูกต้อง ค่าใกล้เคียงที่สุดที่ถูกต้องสองรายการคือ <ph name="VALID_VALUE_LOW" /> และ <ph name="VALID_VALUE_HIGHER" /></translation>
<translation id="4384583879834880242">ถามและตอบ</translation>
-<translation id="4413860115965805769">ปุ่มเมนู</translation>
<translation id="4444765639179266822">ดูเหมือนจะพูดว่า <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">ข้อมูลอ้างอิงอภิธานศัพท์</translation>
<translation id="4522570452068850558">รายละเอียด</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_tr.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_tr.xtb
index 8f400416baf..7dfe43a49a8 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_tr.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_tr.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">katkıda bulunanlar</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">çoklu seçilebilir, <ph name="SELECTED" />/<ph name="COUNT" /> seçildi.</translation>
<translation id="1589122976691792535">bölge</translation>
<translation id="1591562245178063882">Bu ay</translation>
<translation id="1637811476055996098">Dosyaları Seç</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Gün</translation>
<translation id="2507943997699731163">Lütfen bu alanı doldurun.</translation>
<translation id="2508569020611168319">sekme listesi</translation>
+<translation id="2530182415807757784">çoklu seçilebilir, hiçbiri seçilmedi.</translation>
<translation id="2561842179657104141">diğer medya kontrollerini göster</translation>
<translation id="2572483411312390101">oynat</translation>
<translation id="2613802280814924224">Lütfen geçerli bir değer girin. En yakın geçerli değer şudur: <ph name="VALID_VALUE" /></translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">menü çubuğu</translation>
<translation id="4360991593054037559">Lütfen geçerli bir değer girin. En yakın iki geçerli değer şunlardır: <ph name="VALID_VALUE_LOW" /> ve <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Soru-Cevap</translation>
-<translation id="4413860115965805769">menü düğmesi</translation>
<translation id="4444765639179266822">Şöyle diyor olabilir: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">terimler sözlüğü referansı</translation>
<translation id="4522570452068850558">Ayrıntılar</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_uk.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_uk.xtb
index 93371ca6b2d..f7ec591dc59 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_uk.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_uk.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">подяки</translation>
<translation id="1342835525016946179">стаття</translation>
<translation id="1359897965706325498">банер</translation>
+<translation id="1480676835519562650">можна вибрати кілька параметрів, вибрано <ph name="SELECTED" /> з <ph name="COUNT" />.</translation>
<translation id="1589122976691792535">регіон</translation>
<translation id="1591562245178063882">Цей місяць</translation>
<translation id="1637811476055996098">Вибрати файли</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">День</translation>
<translation id="2507943997699731163">Заповніть це поле.</translation>
<translation id="2508569020611168319">cписок вкладок</translation>
+<translation id="2530182415807757784">можна вибрати кілька параметрів, не вибрано жодного.</translation>
<translation id="2561842179657104141">показати більше елементів керування мультимедійним вмістом</translation>
<translation id="2572483411312390101">відтворити</translation>
<translation id="2613802280814924224">Введіть дійсне значення. Найближче дійсне значення: <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">панель меню</translation>
<translation id="4360991593054037559">Введіть дійсне значення. Два найближчі дійсні значення: <ph name="VALID_VALUE_LOW" /> і <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Запитання</translation>
-<translation id="4413860115965805769">кнопка меню</translation>
<translation id="4444765639179266822">Схоже, на зображенні написано "<ph name="OCR_TEXT" />"</translation>
<translation id="4446524499724042288">посилання на глосарій</translation>
<translation id="4522570452068850558">Деталі</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_ur.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_ur.xtb
index df67d380120..cc1f4d96ca4 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_ur.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_ur.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">کریڈٹس</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">بینر</translation>
+<translation id="1480676835519562650">متعدد قابل انتخاب، <ph name="COUNT" /> میں سے <ph name="SELECTED" /> کو منتخب کیا گیا۔</translation>
<translation id="1589122976691792535">علاقہ</translation>
<translation id="1591562245178063882">اس مہینے</translation>
<translation id="1637811476055996098">فائلوں کا انتخاب کریں</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">دن</translation>
<translation id="2507943997699731163">براہ کرم یہ فیلڈ پُر کریں۔</translation>
<translation id="2508569020611168319">ٹیب کی فہرست</translation>
+<translation id="2530182415807757784">متعدد قابل انتخاب، کوئی بھی منتخب نہیں کیا گیا۔</translation>
<translation id="2561842179657104141">مزید میڈیا کنٹرولز دکھائیں</translation>
<translation id="2572483411312390101">چلائیں</translation>
<translation id="2613802280814924224">براہ کرم ایک درست قدر درج کریں۔ قریب ترین درست قدر <ph name="VALID_VALUE" /> ہے۔</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">مینو بار</translation>
<translation id="4360991593054037559">براہ کرم ایک درست قدر درج کریں۔ دو قریب ترین درست اقدار <ph name="VALID_VALUE_LOW" /> اور <ph name="VALID_VALUE_HIGHER" /> ہیں۔</translation>
<translation id="4384583879834880242">سوال و جواب</translation>
-<translation id="4413860115965805769">مینو بٹن</translation>
<translation id="4444765639179266822">بظاہر یہ لکھا ہے: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">فرہنگ کا حوالہ</translation>
<translation id="4522570452068850558">تفصیلات</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_uz.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_uz.xtb
index defdbecc266..717d8ef0559 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_uz.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_uz.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">mualliflar</translation>
<translation id="1342835525016946179">article</translation>
<translation id="1359897965706325498">banner</translation>
+<translation id="1480676835519562650">multitanlovli, <ph name="SELECTED" /> / <ph name="COUNT" /> tanlandi.</translation>
<translation id="1589122976691792535">hudud</translation>
<translation id="1591562245178063882">Bu oy</translation>
<translation id="1637811476055996098">Fayllarni tanlash</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Kun</translation>
<translation id="2507943997699731163">Bu maydonni to‘ldiring.</translation>
<translation id="2508569020611168319">sahifalar ro‘yxati</translation>
+<translation id="2530182415807757784">multi-tanlov, hech biri tanlanmagan.</translation>
<translation id="2561842179657104141">yana boshqa boshqaruv elementlari</translation>
<translation id="2572483411312390101">ijro etish</translation>
<translation id="2613802280814924224">Yaroqli qiymat kiriting. Eng yaqin yaroqli qiymat: <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">menyu paneli</translation>
<translation id="4360991593054037559">Yaroqli qiymat kiriting. Eng yaqin yaroqli qiymatlar: <ph name="VALID_VALUE_LOW" /> va <ph name="VALID_VALUE_HIGHER" /></translation>
<translation id="4384583879834880242">Savol-javoblar</translation>
-<translation id="4413860115965805769">menyu tugmasi</translation>
<translation id="4444765639179266822">Bunday yozilgan shekilli: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">lug‘at havolasi</translation>
<translation id="4522570452068850558">Tafsilotlar</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_vi.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_vi.xtb
index 188a6f52b66..7964dea8567 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_vi.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_vi.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">ghi nhận tác giả</translation>
<translation id="1342835525016946179">bài viết</translation>
<translation id="1359897965706325498">biểu ngữ</translation>
+<translation id="1480676835519562650">có thể chọn nhiều mục, đã chọn <ph name="SELECTED" />/<ph name="COUNT" /> mục.</translation>
<translation id="1589122976691792535">khu vực</translation>
<translation id="1591562245178063882">Tháng này</translation>
<translation id="1637811476055996098">Chọn tệp</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Ngày</translation>
<translation id="2507943997699731163">Vui lòng điền vào trường này.</translation>
<translation id="2508569020611168319">danh sách thẻ</translation>
+<translation id="2530182415807757784">có thể chọn nhiều mục; chưa chọn mục nào.</translation>
<translation id="2561842179657104141">hiển thị các kiểm soát phương tiện khác</translation>
<translation id="2572483411312390101">phát</translation>
<translation id="2613802280814924224">Vui lòng nhập giá trị hợp lệ. Giá trị hợp lệ gần nhất là <ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">thanh menu</translation>
<translation id="4360991593054037559">Vui lòng nhập giá trị hợp lệ. Hai giá trị hợp lệ gần nhất là <ph name="VALID_VALUE_LOW" /> và <ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">Hỏi và đáp</translation>
-<translation id="4413860115965805769">nút menu</translation>
<translation id="4444765639179266822">Có vẻ như nội dung là: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">tham chiếu bảng thuật ngữ</translation>
<translation id="4522570452068850558">Chi tiết</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_zh-CN.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_zh-CN.xtb
index b6b080289f1..d1212d81c2f 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_zh-CN.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_zh-CN.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">参与者名单</translation>
<translation id="1342835525016946179">文章标记</translation>
<translation id="1359897965706325498">横幅</translation>
+<translation id="1480676835519562650">可选择多项,已选择 <ph name="SELECTED" /> 项(共 <ph name="COUNT" /> 项)。</translation>
<translation id="1589122976691792535">区域</translation>
<translation id="1591562245178063882">本月</translation>
<translation id="1637811476055996098">选择文件</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">日</translation>
<translation id="2507943997699731163">请填写此字段。</translation>
<translation id="2508569020611168319">标签列表</translation>
+<translation id="2530182415807757784">可选择多项,已选择 0 项。</translation>
<translation id="2561842179657104141">显示更多媒体控件</translation>
<translation id="2572483411312390101">播放</translation>
<translation id="2613802280814924224">请输入有效值。最接近的有效值为<ph name="VALID_VALUE" />。</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">菜单栏</translation>
<translation id="4360991593054037559">请输入有效值。两个最接近的有效值分别为<ph name="VALID_VALUE_LOW" />和<ph name="VALID_VALUE_HIGHER" />。</translation>
<translation id="4384583879834880242">问答</translation>
-<translation id="4413860115965805769">菜单按钮</translation>
<translation id="4444765639179266822">似乎是说:<ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">词汇表参考资料</translation>
<translation id="4522570452068850558">详细信息</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_zh-HK.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_zh-HK.xtb
index 46690524440..8c0e425bcd5 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_zh-HK.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_zh-HK.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">參與名單</translation>
<translation id="1342835525016946179">文章</translation>
<translation id="1359897965706325498">橫額</translation>
+<translation id="1480676835519562650">可以揀幾個項目,揀咗 <ph name="SELECTED" /> 個,總共有 <ph name="COUNT" /> 個。</translation>
<translation id="1589122976691792535">區域</translation>
<translation id="1591562245178063882">本月</translation>
<translation id="1637811476055996098">選擇檔案</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">日</translation>
<translation id="2507943997699731163">請填寫這個欄位。</translation>
<translation id="2508569020611168319">分頁清單</translation>
+<translation id="2530182415807757784">可選取多個項目,未選取任何項目。</translation>
<translation id="2561842179657104141">顯示更多媒體控制項</translation>
<translation id="2572483411312390101">播放</translation>
<translation id="2613802280814924224">請輸入有效值。最接近的有效值是 <ph name="VALID_VALUE" />。</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">選單列</translation>
<translation id="4360991593054037559">請輸入有效值。最接近的兩個有效值分別是 <ph name="VALID_VALUE_LOW" /> 和 <ph name="VALID_VALUE_HIGHER" />。</translation>
<translation id="4384583879834880242">問答</translation>
-<translation id="4413860115965805769">選單按鈕</translation>
<translation id="4444765639179266822">圖片上面嘅字似乎係:<ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">詞彙表參考資料</translation>
<translation id="4522570452068850558">詳情</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_zh-TW.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_zh-TW.xtb
index 716759ee52f..5ad37c72403 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_zh-TW.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_zh-TW.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">參與名單</translation>
<translation id="1342835525016946179">文章</translation>
<translation id="1359897965706325498">橫幅</translation>
+<translation id="1480676835519562650">可選取多個項目,已選取 <ph name="SELECTED" /> 個,總共 <ph name="COUNT" /> 個。</translation>
<translation id="1589122976691792535">區域</translation>
<translation id="1591562245178063882">本月</translation>
<translation id="1637811476055996098">選擇檔案</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">日</translation>
<translation id="2507943997699731163">請填寫這個欄位。</translation>
<translation id="2508569020611168319">分頁清單</translation>
+<translation id="2530182415807757784">可選取多個項目,未選取任何項目。</translation>
<translation id="2561842179657104141">顯示更多媒體控制項</translation>
<translation id="2572483411312390101">播放</translation>
<translation id="2613802280814924224">請輸入有效值。最接近的有效值是 <ph name="VALID_VALUE" />。</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">選單列</translation>
<translation id="4360991593054037559">請輸入有效值。最接近的兩個有效值分別是 <ph name="VALID_VALUE_LOW" /> 和 <ph name="VALID_VALUE_HIGHER" />。</translation>
<translation id="4384583879834880242">問與答</translation>
-<translation id="4413860115965805769">選單按鈕</translation>
<translation id="4444765639179266822">圖片上的文字似乎是:<ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">詞彙解釋參考資料</translation>
<translation id="4522570452068850558">詳細資訊</translation>
diff --git a/chromium/third_party/blink/public/strings/translations/blink_strings_zu.xtb b/chromium/third_party/blink/public/strings/translations/blink_strings_zu.xtb
index 01c5fd05463..f2cc40e71df 100644
--- a/chromium/third_party/blink/public/strings/translations/blink_strings_zu.xtb
+++ b/chromium/third_party/blink/public/strings/translations/blink_strings_zu.xtb
@@ -16,6 +16,7 @@
<translation id="1335095011850992622">amakhredithi</translation>
<translation id="1342835525016946179">i-athikili</translation>
<translation id="1359897965706325498">isibhengezo</translation>
+<translation id="1480676835519562650">i-multiselectable, okungu-<ph name="SELECTED" /> kokukhethiwe okungu-<ph name="COUNT" />.</translation>
<translation id="1589122976691792535">isifunda</translation>
<translation id="1591562245178063882">Le nyanga</translation>
<translation id="1637811476055996098">Khetha amafayela</translation>
@@ -51,6 +52,7 @@
<translation id="248395913932153421">Usuku</translation>
<translation id="2507943997699731163">Sicela ugcwalise le nkambu.</translation>
<translation id="2508569020611168319">uhlu lwethebhu</translation>
+<translation id="2530182415807757784">i-multiselectable, akukho okukhethiwe.</translation>
<translation id="2561842179657104141">bonisa izilawuli eziningi zemidiya</translation>
<translation id="2572483411312390101">dlala</translation>
<translation id="2613802280814924224">Sicela ufake inani elivumelekile. Inani elivumelekile eliseduze ngu-<ph name="VALID_VALUE" />.</translation>
@@ -102,7 +104,6 @@
<translation id="4248100235867064564">ibha yemenyu</translation>
<translation id="4360991593054037559">Sicela ufake inani elivumelekile. Amanani amabili avumelekile asondele kakhulu ngu-<ph name="VALID_VALUE_LOW" /> no-<ph name="VALID_VALUE_HIGHER" />.</translation>
<translation id="4384583879834880242">I-Q&amp;A</translation>
-<translation id="4413860115965805769">inkinobho yemenyu</translation>
<translation id="4444765639179266822">Ibonakala ithi: <ph name="OCR_TEXT" /></translation>
<translation id="4446524499724042288">ireferensi yeglosari</translation>
<translation id="4522570452068850558">Imininingwane</translation>
diff --git a/chromium/third_party/blink/public/web/DEPS b/chromium/third_party/blink/public/web/DEPS
index 1876ad2f492..8f75c80957c 100644
--- a/chromium/third_party/blink/public/web/DEPS
+++ b/chromium/third_party/blink/public/web/DEPS
@@ -6,9 +6,12 @@ include_rules = [
"+base/macros.h",
"+base/memory/ref_counted.h",
"+base/memory/scoped_refptr.h",
+ "+base/memory/weak_ptr.h",
"+base/strings",
"+base/time/time.h",
"+base/threading/thread_checker.h",
+ "+build/build_config.h",
+ "+build/buildflag.h",
"+cc/input/browser_controls_state.h",
"+cc/input/event_listener_properties.h",
"+cc/input/overscroll_behavior.h",
@@ -29,6 +32,7 @@ include_rules = [
"+printing/mojom/print.mojom-shared.h",
"+services/metrics/public/cpp/ukm_source_id.h",
"+services/network/public/cpp/web_sandbox_flags.h",
+ "+services/network/public/mojom/web_client_hints_types.mojom-shared.h",
"+services/network/public/mojom/web_sandbox_flags.mojom-shared.h",
"+services/network/public/mojom/web_sandbox_flags.mojom-blink-forward.h",
"+services/network/public/mojom/content_security_policy.mojom-shared.h",
@@ -49,6 +53,7 @@ include_rules = [
"+third_party/blink/public/web",
"+ui/accessibility/ax_enums.mojom-shared.h",
"+ui/accessibility/ax_event.h",
+ "+ui/accessibility/ax_tree_id.h",
"+ui/base/ime/mojom/ime_types.mojom-shared.h",
"+ui/base/ime/mojom/virtual_keyboard_types.mojom-shared.h",
diff --git a/chromium/third_party/blink/public/web/mac/web_substring_util.h b/chromium/third_party/blink/public/web/mac/web_substring_util.h
deleted file mode 100644
index f6cf37b8a99..00000000000
--- a/chromium/third_party/blink/public/web/mac/web_substring_util.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_MAC_WEB_SUBSTRING_UTIL_H_
-#define THIRD_PARTY_BLINK_PUBLIC_WEB_MAC_WEB_SUBSTRING_UTIL_H_
-
-#include "third_party/blink/public/platform/web_common.h"
-
-#if __OBJC__
-@class NSAttributedString;
-#else
-class NSAttributedString;
-#endif
-
-namespace gfx {
-class Point;
-} // namespace gfx
-
-namespace blink {
-
-class WebFrameWidget;
-class WebLocalFrame;
-
-class WebSubstringUtil {
- public:
- // Returns an autoreleased NSAttributedString that is the word under
- // the given point inside the given WebFrameWidget or nil on error.
- // Upon return, |baselinePoint| is set to the left baseline point in
- // AppKit coordinates.
- BLINK_EXPORT static NSAttributedString* AttributedWordAtPoint(
- WebFrameWidget*,
- gfx::Point,
- gfx::Point& baseline_point);
-
- // Returns an autoreleased NSAttributedString that is a substring of the
- // Frame at the given range, or nil on error.
- BLINK_EXPORT static NSAttributedString*
- AttributedSubstringInRange(WebLocalFrame*, size_t location, size_t length);
-
- // Returns an autoreleased NSAttributedString that is a substring of the
- // Frame at the given range, or nil on error.
- // It also gets the baseline point for the given range for showing
- // dictionary lookup bubble.
- BLINK_EXPORT static NSAttributedString* AttributedSubstringInRange(
- WebLocalFrame*,
- size_t location,
- size_t length,
- gfx::Point* baseline_point);
-};
-
-} // namespace blink
-
-#endif
diff --git a/chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_sink.h b/chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_sink.h
index 53a758118b5..17e8dc66a7a 100644
--- a/chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_sink.h
+++ b/chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_sink.h
@@ -8,8 +8,8 @@
#include "media/capture/video_capture_types.h"
#include "third_party/blink/public/common/media/video_capture.h"
#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_sink.h"
+#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_track.h"
#include "third_party/blink/public/platform/web_common.h"
-#include "third_party/blink/public/platform/web_media_stream_track.h"
#include "third_party/blink/public/web/modules/mediastream/encoded_video_frame.h"
namespace blink {
diff --git a/chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h b/chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h
index 90967a518f4..eeb1433788b 100644
--- a/chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h
+++ b/chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h
@@ -20,10 +20,10 @@
#include "third_party/blink/public/mojom/mediastream/media_stream.mojom-shared.h"
#include "third_party/blink/public/platform/modules/mediastream/media_stream_types.h"
#include "third_party/blink/public/platform/modules/mediastream/secure_display_link_tracker.h"
+#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_source.h"
+#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_track.h"
#include "third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_source.h"
#include "third_party/blink/public/platform/web_common.h"
-#include "third_party/blink/public/platform/web_media_stream_source.h"
-#include "third_party/blink/public/platform/web_media_stream_track.h"
#include "third_party/blink/public/web/modules/mediastream/encoded_video_frame.h"
namespace base {
diff --git a/chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_track.h b/chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_track.h
deleted file mode 100644
index c859d75f7b0..00000000000
--- a/chromium/third_party/blink/public/web/modules/mediastream/media_stream_video_track.h
+++ /dev/null
@@ -1,199 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_MEDIASTREAM_MEDIA_STREAM_VIDEO_TRACK_H_
-#define THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_MEDIASTREAM_MEDIA_STREAM_VIDEO_TRACK_H_
-
-#include <memory>
-#include <vector>
-
-#include "base/compiler_specific.h"
-#include "base/gtest_prod_util.h"
-#include "base/macros.h"
-#include "base/memory/weak_ptr.h"
-#include "base/threading/thread_checker.h"
-#include "third_party/blink/public/platform/modules/mediastream/secure_display_link_tracker.h"
-#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_sink.h"
-#include "third_party/blink/public/platform/modules/mediastream/web_platform_media_stream_track.h"
-#include "third_party/blink/public/platform/web_common.h"
-#include "third_party/blink/public/platform/web_media_stream_track.h"
-#include "third_party/blink/public/web/modules/mediastream/encoded_video_frame.h"
-#include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
-
-namespace blink {
-
-class VideoTrackAdapterSettings;
-
-// MediaStreamVideoTrack is a video specific representation of a
-// blink::WebMediaStreamTrack in content. It is owned by the blink object
-// and can be retrieved from a blink object using
-// WebMediaStreamTrack::getExtraData() or MediaStreamVideoTrack::GetVideoTrack.
-class BLINK_MODULES_EXPORT MediaStreamVideoTrack
- : public blink::WebPlatformMediaStreamTrack {
- public:
- // Help method to create a blink::WebMediaStreamTrack and a
- // MediaStreamVideoTrack instance. The MediaStreamVideoTrack object is owned
- // by the blink object in its WebMediaStreamTrack::ExtraData member.
- // |callback| is triggered if the track is added to the source
- // successfully and will receive video frames that match the given settings
- // or if the source fails to provide video frames.
- // If |enabled| is true, sinks added to the track will
- // receive video frames when the source delivers frames to the track.
- static blink::WebMediaStreamTrack CreateVideoTrack(
- MediaStreamVideoSource* source,
- MediaStreamVideoSource::ConstraintsOnceCallback callback,
- bool enabled);
- static blink::WebMediaStreamTrack CreateVideoTrack(
- MediaStreamVideoSource* source,
- const VideoTrackAdapterSettings& adapter_settings,
- const base::Optional<bool>& noise_reduction,
- bool is_screencast,
- const base::Optional<double>& min_frame_rate,
- MediaStreamVideoSource::ConstraintsOnceCallback callback,
- bool enabled);
-
- static MediaStreamVideoTrack* GetVideoTrack(
- const blink::WebMediaStreamTrack& track);
-
- // Constructors for video tracks.
- MediaStreamVideoTrack(
- MediaStreamVideoSource* source,
- MediaStreamVideoSource::ConstraintsOnceCallback callback,
- bool enabled);
- MediaStreamVideoTrack(
- MediaStreamVideoSource* source,
- const VideoTrackAdapterSettings& adapter_settings,
- const base::Optional<bool>& noise_reduction,
- bool is_screen_cast,
- const base::Optional<double>& min_frame_rate,
- MediaStreamVideoSource::ConstraintsOnceCallback callback,
- bool enabled);
- ~MediaStreamVideoTrack() override;
-
- // MediaStreamTrack overrides.
- void SetEnabled(bool enabled) override;
- void SetContentHint(
- blink::WebMediaStreamTrack::ContentHintType content_hint) override;
- void StopAndNotify(base::OnceClosure callback) override;
- void GetSettings(blink::WebMediaStreamTrack::Settings& settings) override;
-
- // Add |sink| to receive state changes on the main render thread and video
- // frames in the |callback| method on the IO-thread.
- // |callback| will be reset on the render thread.
- void AddSink(blink::WebMediaStreamSink* sink,
- const blink::VideoCaptureDeliverFrameCB& callback,
- bool is_sink_secure);
- void RemoveSink(blink::WebMediaStreamSink* sink);
-
- // Adds |callback| for encoded frame output on the IO thread. The function
- // will cause generation of a keyframe from the source.
- // Encoded sinks are not secure.
- void AddEncodedSink(blink::WebMediaStreamSink* sink,
- EncodedVideoFrameCB callback);
-
- // Removes encoded callbacks associated with |sink|.
- void RemoveEncodedSink(blink::WebMediaStreamSink* sink);
-
- // Returns the number of currently present encoded sinks.
- size_t CountEncodedSinks() const;
-
- void OnReadyStateChanged(blink::WebMediaStreamSource::ReadyState state);
-
- const base::Optional<bool>& noise_reduction() const {
- return noise_reduction_;
- }
- bool is_screencast() const { return is_screencast_; }
- const base::Optional<double>& min_frame_rate() const {
- return min_frame_rate_;
- }
- const base::Optional<double>& max_frame_rate() const {
- return max_frame_rate_;
- }
- const VideoTrackAdapterSettings& adapter_settings() const {
- return *adapter_settings_;
- }
-
- // Setting information about the track size.
- // Called from MediaStreamVideoSource at track initialization.
- void SetTargetSizeAndFrameRate(int width, int height, double frame_rate) {
- width_ = width;
- height_ = height;
- frame_rate_ = frame_rate;
- }
-
- // Setting information about the track size.
- // Passed as callback on MediaStreamVideoTrack::AddTrack, and run from
- // VideoFrameResolutionAdapter on frame delivery to update track settings.
- void SetSizeAndComputedFrameRate(gfx::Size frame_size, double frame_rate) {
- width_ = frame_size.width();
- height_ = frame_size.height();
- computed_frame_rate_ = frame_rate;
- }
-
- // Setting information about the source format. The format is computed based
- // on incoming frames and it's used for applying constraints for remote video
- // tracks. Passed as callback on MediaStreamVideoTrack::AddTrack, and run from
- // VideoFrameResolutionAdapter on frame delivery.
- void set_computed_source_format(const media::VideoCaptureFormat& format) {
- computed_source_format_ = format;
- }
-
- void SetTrackAdapterSettings(const VideoTrackAdapterSettings& settings);
-
- media::VideoCaptureFormat GetComputedSourceFormat();
-
- MediaStreamVideoSource* source() const { return source_.get(); }
-
- void OnFrameDropped(media::VideoCaptureFrameDropReason reason);
-
- private:
- FRIEND_TEST_ALL_PREFIXES(MediaStreamRemoteVideoSourceTest, StartTrack);
- FRIEND_TEST_ALL_PREFIXES(MediaStreamRemoteVideoSourceTest, RemoteTrackStop);
- FRIEND_TEST_ALL_PREFIXES(MediaStreamRemoteVideoSourceTest,
- PreservesColorSpace);
- FRIEND_TEST_ALL_PREFIXES(PepperToVideoTrackAdapterTest, PutFrame);
-
- void UpdateSourceCapturingSecure();
- void UpdateSourceHasConsumers();
-
- // In debug builds, check that all methods that could cause object graph
- // or data flow changes are being called on the main thread.
- THREAD_CHECKER(main_render_thread_checker_);
-
- std::vector<blink::WebMediaStreamSink*> sinks_;
- std::vector<blink::WebMediaStreamSink*> encoded_sinks_;
-
- // |FrameDeliverer| is an internal helper object used for delivering video
- // frames on the IO-thread using callbacks to all registered tracks.
- class FrameDeliverer;
- scoped_refptr<FrameDeliverer> frame_deliverer_;
-
- // TODO(guidou): Make this field a regular field instead of a unique_ptr.
- std::unique_ptr<VideoTrackAdapterSettings> adapter_settings_;
- base::Optional<bool> noise_reduction_;
- bool is_screencast_;
- base::Optional<double> min_frame_rate_;
- base::Optional<double> max_frame_rate_;
-
- // Weak ref to the source this tracks is connected to.
- base::WeakPtr<MediaStreamVideoSource> source_;
-
- // This is used for tracking if all connected video sinks are secure.
- blink::SecureDisplayLinkTracker<blink::WebMediaStreamSink> secure_tracker_;
-
- // Remembering our desired video size and frame rate.
- int width_ = 0;
- int height_ = 0;
- double frame_rate_ = 0.0;
- base::Optional<double> computed_frame_rate_;
- media::VideoCaptureFormat computed_source_format_;
-
- base::WeakPtrFactory<MediaStreamVideoTrack> weak_factory_{this};
-
- DISALLOW_COPY_AND_ASSIGN(MediaStreamVideoTrack);
-};
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_MEDIASTREAM_MEDIA_STREAM_VIDEO_TRACK_H_
diff --git a/chromium/third_party/blink/public/web/modules/mediastream/web_media_stream_renderer_factory.h b/chromium/third_party/blink/public/web/modules/mediastream/web_media_stream_renderer_factory.h
deleted file mode 100644
index 2949c3f4bb1..00000000000
--- a/chromium/third_party/blink/public/web/modules/mediastream/web_media_stream_renderer_factory.h
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_RENDERER_FACTORY_H_
-#define THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_RENDERER_FACTORY_H_
-
-#include "base/memory/ref_counted.h"
-#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_audio_renderer.h"
-#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_video_renderer.h"
-#include "third_party/blink/public/platform/web_common.h"
-#include "third_party/blink/public/platform/web_string.h"
-
-namespace base {
-class SingleThreadTaskRunner;
-} // namespace base
-
-namespace blink {
-
-class WebMediaStream;
-class WebLocalFrame;
-
-// WebMediaStreamRendererFactory is used by WebMediaPlayerMS to create audio and
-// video feeds from a MediaStream provided an URL.
-// The factory methods are virtual in order for Blink web tests to be able to
-// override them.
-class BLINK_MODULES_EXPORT WebMediaStreamRendererFactory {
- public:
- virtual ~WebMediaStreamRendererFactory() {}
-
- // Returns a WebMediaStreamVideoRenderer that uses the given task runners.
- // |io_task_runner| is used for passing video frames.
- virtual scoped_refptr<WebMediaStreamVideoRenderer> GetVideoRenderer(
- const WebMediaStream& web_stream,
- const WebMediaStreamVideoRenderer::RepaintCB& repaint_cb,
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
- scoped_refptr<base::SingleThreadTaskRunner> main_render_task_runner) = 0;
-
- virtual scoped_refptr<WebMediaStreamAudioRenderer> GetAudioRenderer(
- const WebMediaStream& web_stream,
- WebLocalFrame* web_frame,
- const WebString& device_id,
- base::RepeatingCallback<void()> on_render_error_callback) = 0;
-};
-
-BLINK_MODULES_EXPORT std::unique_ptr<WebMediaStreamRendererFactory>
-CreateWebMediaStreamRendererFactory();
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_RENDERER_FACTORY_H_
diff --git a/chromium/third_party/blink/public/web/modules/mediastream/web_media_stream_utils.h b/chromium/third_party/blink/public/web/modules/mediastream/web_media_stream_utils.h
index 922018fd3da..8ff910ba8ed 100644
--- a/chromium/third_party/blink/public/web/modules/mediastream/web_media_stream_utils.h
+++ b/chromium/third_party/blink/public/web/modules/mediastream/web_media_stream_utils.h
@@ -10,6 +10,7 @@
#include "media/capture/video_capture_types.h"
#include "third_party/blink/public/common/media/video_capture.h"
#include "third_party/blink/public/platform/web_common.h"
+#include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
namespace blink {
@@ -40,6 +41,13 @@ BLINK_MODULES_EXPORT void AddSinkToMediaStreamTrack(
BLINK_MODULES_EXPORT void RemoveSinkFromMediaStreamTrack(
const WebMediaStreamTrack& track,
WebMediaStreamSink* sink);
+
+// See documentation of MediaStreamVideoTrack::CreateVideoTrack().
+BLINK_MODULES_EXPORT WebMediaStreamTrack CreateWebMediaStreamVideoTrack(
+ MediaStreamVideoSource* source,
+ MediaStreamVideoSource::ConstraintsOnceCallback callback,
+ bool enabled);
+
} // namespace blink
#endif // THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_MEDIASTREAM_WEB_MEDIA_STREAM_UTILS_H_
diff --git a/chromium/third_party/blink/public/web/modules/mediastream/webmediaplayer_ms.h b/chromium/third_party/blink/public/web/modules/mediastream/webmediaplayer_ms.h
index c2c9efba4d7..7166dbc4a5a 100644
--- a/chromium/third_party/blink/public/web/modules/mediastream/webmediaplayer_ms.h
+++ b/chromium/third_party/blink/public/web/modules/mediastream/webmediaplayer_ms.h
@@ -17,9 +17,9 @@
#include "media/renderers/paint_canvas_video_renderer.h"
#include "media/video/gpu_video_accelerator_factories.h"
#include "third_party/blink/public/platform/media/webmediaplayer_delegate.h"
+#include "third_party/blink/public/platform/modules/mediastream/web_media_stream.h"
#include "third_party/blink/public/platform/web_common.h"
#include "third_party/blink/public/platform/web_media_player.h"
-#include "third_party/blink/public/platform/web_media_stream.h"
#include "third_party/blink/public/platform/web_surface_layer_bridge.h"
namespace media {
@@ -51,7 +51,7 @@ class WebLocalFrame;
class WebMediaPlayerClient;
class WebMediaStreamAudioRenderer;
class WebMediaPlayerMSCompositor;
-class WebMediaStreamRendererFactory;
+class MediaStreamRendererFactory;
class WebMediaStreamVideoRenderer;
class WebString;
class WebVideoFrameSubmitter;
@@ -83,7 +83,6 @@ class BLINK_MODULES_EXPORT WebMediaPlayerMS
WebMediaPlayerClient* client,
WebMediaPlayerDelegate* delegate,
std::unique_ptr<media::MediaLog> media_log,
- std::unique_ptr<WebMediaStreamRendererFactory> factory,
scoped_refptr<base::SingleThreadTaskRunner> main_render_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner,
@@ -183,6 +182,7 @@ class BLINK_MODULES_EXPORT WebMediaPlayerMS
void OnSeekBackward(double seconds) override;
void OnEnterPictureInPicture() override;
void OnExitPictureInPicture() override;
+ void OnSetAudioSink(const std::string& sink_id) override;
void OnVolumeMultiplierUpdate(double multiplier) override;
void OnBecamePersistentVideo(bool value) override;
@@ -232,8 +232,8 @@ class BLINK_MODULES_EXPORT WebMediaPlayerMS
bool premultiply_alpha) override;
// WebMediaStreamObserver implementation
- void TrackAdded(const WebMediaStreamTrack& track) override;
- void TrackRemoved(const WebMediaStreamTrack& track) override;
+ void TrackAdded(const WebString& track_id) override;
+ void TrackRemoved(const WebString& track_id) override;
void ActiveStateChanged(bool is_active) override;
int GetDelegateId() override;
base::Optional<viz::SurfaceId> GetSurfaceId() override;
@@ -277,6 +277,8 @@ class BLINK_MODULES_EXPORT WebMediaPlayerMS
// Helper method used for testing.
void SetGpuMemoryBufferVideoForTesting(
media::GpuMemoryBufferVideoFramePool* gpu_memory_buffer_pool);
+ void SetMediaStreamRendererFactoryForTesting(
+ std::unique_ptr<MediaStreamRendererFactory>);
// Callback used to fulfill video.requestVideoFrameCallback() requests.
void OnNewFramePresentedCallback();
@@ -333,7 +335,7 @@ class BLINK_MODULES_EXPORT WebMediaPlayerMS
std::unique_ptr<media::MediaLog> media_log_;
- std::unique_ptr<WebMediaStreamRendererFactory> renderer_factory_;
+ std::unique_ptr<MediaStreamRendererFactory> renderer_factory_;
const scoped_refptr<base::SingleThreadTaskRunner> main_render_task_runner_;
const scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
diff --git a/chromium/third_party/blink/public/web/web_ax_object.h b/chromium/third_party/blink/public/web/web_ax_object.h
index b9bf20f29b2..e857de89af7 100644
--- a/chromium/third_party/blink/public/web/web_ax_object.h
+++ b/chromium/third_party/blink/public/web/web_ax_object.h
@@ -191,7 +191,7 @@ class WebAXObject {
BLINK_EXPORT ax::mojom::Role Role() const;
BLINK_EXPORT WebString StringValue() const;
BLINK_EXPORT ax::mojom::ListStyle GetListStyle() const;
- BLINK_EXPORT ax::mojom::TextDirection GetTextDirection() const;
+ BLINK_EXPORT ax::mojom::WritingDirection GetTextDirection() const;
BLINK_EXPORT ax::mojom::TextPosition GetTextPosition() const;
BLINK_EXPORT void GetTextStyleAndTextDecorationStyle(
int32_t* text_style,
@@ -390,6 +390,12 @@ class WebAXObject {
SkMatrix44& container_transform,
bool* clips_children = nullptr) const;
+ // Retrieves a vector of all WebAXObjects in this document whose
+ // bounding boxes may have changed since the last query. Can be called
+ // on any object.
+ BLINK_EXPORT void GetAllObjectsWithChangedBounds(
+ WebVector<WebAXObject>& out_changed_bounds_objects) const;
+
// Blink-internal DOM Node ID. Currently used for PDF exporting.
BLINK_EXPORT int GetDOMNodeId() const;
diff --git a/chromium/third_party/blink/public/web/web_context_menu_data.h b/chromium/third_party/blink/public/web/web_context_menu_data.h
index 7dfdb13b1d5..0fe75546c9c 100644
--- a/chromium/third_party/blink/public/web/web_context_menu_data.h
+++ b/chromium/third_party/blink/public/web/web_context_menu_data.h
@@ -35,6 +35,7 @@
#include "third_party/blink/public/common/context_menu_data/input_field_type.h"
#include "third_party/blink/public/common/context_menu_data/media_type.h"
#include "third_party/blink/public/common/input/web_menu_source_type.h"
+#include "third_party/blink/public/platform/web_impression.h"
#include "third_party/blink/public/platform/web_rect.h"
#include "third_party/blink/public/platform/web_string.h"
#include "third_party/blink/public/platform/web_url.h"
@@ -88,6 +89,10 @@ struct WebContextMenuData {
// The text of the link that is in the context.
WebString link_text;
+ // If the node is a link, the impression declared by the link's conversion
+ // measurement attributes.
+ base::Optional<WebImpression> impression;
+
// The raw text of the selection in context.
WebString selected_text;
diff --git a/chromium/third_party/blink/public/web/web_document_loader.h b/chromium/third_party/blink/public/web/web_document_loader.h
index 6dfec032462..9bff1691039 100644
--- a/chromium/third_party/blink/public/web/web_document_loader.h
+++ b/chromium/third_party/blink/public/web/web_document_loader.h
@@ -36,10 +36,10 @@
#include "base/time/time.h"
#include "services/network/public/mojom/ip_address_space.mojom-shared.h"
#include "services/network/public/mojom/referrer_policy.mojom-shared.h"
+#include "third_party/blink/public/common/loader/previews_state.h"
#include "third_party/blink/public/platform/web_archive_info.h"
#include "third_party/blink/public/platform/web_common.h"
#include "third_party/blink/public/platform/web_source_location.h"
-#include "third_party/blink/public/platform/web_url_request.h"
#include "third_party/blink/public/web/web_navigation_type.h"
namespace blink {
@@ -153,7 +153,7 @@ class BLINK_EXPORT WebDocumentLoader {
virtual bool HasBeenLoadedAsWebArchive() const = 0;
// Returns the previews state for the document.
- virtual WebURLRequest::PreviewsState GetPreviewsState() const = 0;
+ virtual PreviewsState GetPreviewsState() const = 0;
// Returns archive info for the archive.
virtual WebArchiveInfo GetArchiveInfo() const = 0;
diff --git a/chromium/third_party/blink/public/web/web_dom_media_stream_track.h b/chromium/third_party/blink/public/web/web_dom_media_stream_track.h
index 16d97e50937..b6053d5fe8e 100644
--- a/chromium/third_party/blink/public/web/web_dom_media_stream_track.h
+++ b/chromium/third_party/blink/public/web/web_dom_media_stream_track.h
@@ -31,7 +31,7 @@
#ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOM_MEDIA_STREAM_TRACK_H_
#define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOM_MEDIA_STREAM_TRACK_H_
-#include "third_party/blink/public/platform/web_media_stream_track.h"
+#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_track.h"
#include "third_party/blink/public/platform/web_private_ptr.h"
namespace v8 {
diff --git a/chromium/third_party/blink/public/web/web_embedded_worker_start_data.h b/chromium/third_party/blink/public/web/web_embedded_worker_start_data.h
index f1c1a743055..989f0b47ca9 100644
--- a/chromium/third_party/blink/public/web/web_embedded_worker_start_data.h
+++ b/chromium/third_party/blink/public/web/web_embedded_worker_start_data.h
@@ -32,7 +32,9 @@
#define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_EMBEDDED_WORKER_START_DATA_H_
#include "base/unguessable_token.h"
+#include "services/metrics/public/cpp/ukm_source_id.h"
#include "services/network/public/mojom/ip_address_space.mojom-shared.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
#include "third_party/blink/public/mojom/service_worker/service_worker_registration.mojom-shared.h"
#include "third_party/blink/public/platform/web_fetch_client_settings_object.h"
@@ -54,11 +56,16 @@ struct WebEmbeddedWorkerStartData {
// Unique worker token used by DevTools to attribute different instrumentation
// to the same worker.
base::UnguessableToken devtools_worker_token;
+ ukm::SourceId ukm_source_id = ukm::kInvalidSourceId;
network::mojom::IPAddressSpace address_space;
WebFetchClientSettingsObject outside_fetch_client_settings_object;
+ // Unique token that identifies this worker across the browser and renderer
+ // processes. This is not persistent across worker restarts.
+ blink::ServiceWorkerToken service_worker_token;
+
explicit WebEmbeddedWorkerStartData(
WebFetchClientSettingsObject outside_fetch_client_settings_object)
: wait_for_debugger_mode(kDontWaitForDebugger),
diff --git a/chromium/third_party/blink/public/web/web_external_widget_client.h b/chromium/third_party/blink/public/web/web_external_widget_client.h
index 4d63d0fbb59..073fb9b8e7c 100644
--- a/chromium/third_party/blink/public/web/web_external_widget_client.h
+++ b/chromium/third_party/blink/public/web/web_external_widget_client.h
@@ -12,6 +12,7 @@
#include "ui/gfx/geometry/size.h"
namespace blink {
+struct VisualProperties;
class WebCoalescedInputEvent;
class WebGestureEvent;
@@ -69,32 +70,17 @@ class WebExternalWidgetClient {
const cc::OverscrollBehavior& overscroll_behavior,
bool event_processed) {}
- // Connect the Widget Input Handler to the channels provided.
- virtual void GetWidgetInputHandler(
- CrossVariantMojoReceiver<mojom::WidgetInputHandlerInterfaceBase>
- widget_input_receiver,
- CrossVariantMojoRemote<mojom::WidgetInputHandlerHostInterfaceBase>
- widget_input_host_remote) {}
-
- // Since the widget input IPC channel is still on the content side send this
- // message back to the embedder to then send it on that channel. All bounds
- // are in window coordinates.
- virtual void SendCompositionRangeChanged(
- const gfx::Range& range,
- const std::vector<gfx::Rect>& character_bounds) {}
-
- // The IME guard prevents sending IPC messages while messages are being
- // processed. Returns true if there is a current guard.
- // |request_to_show_virtual_keyboard| is whether the message that would have
- // been sent would have requested the keyboard. This method will eventually be
- // removed when all input handling is moved into blink.
- virtual bool HasCurrentImeGuard(bool request_to_show_virtual_keyboard) {
- return false;
- }
-
// The state of the focus has changed for the WebWidget. |enabled|
// is the new state.
virtual void FocusChanged(bool enabled) {}
+
+ // Apply the visual properties to the widget.
+ virtual void UpdateVisualProperties(
+ const VisualProperties& visual_properties) {}
+
+ // Apply the updated screen rects.
+ virtual void UpdateScreenRects(const gfx::Rect& widget_screen_rect,
+ const gfx::Rect& window_screen_rect) {}
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/web/web_form_control_element.h b/chromium/third_party/blink/public/web/web_form_control_element.h
index 82086d39a8b..894572a018f 100644
--- a/chromium/third_party/blink/public/web/web_form_control_element.h
+++ b/chromium/third_party/blink/public/web/web_form_control_element.h
@@ -31,6 +31,7 @@
#ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_FORM_CONTROL_ELEMENT_H_
#define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_FORM_CONTROL_ELEMENT_H_
+#include "third_party/blink/public/common/metrics/form_element_pii_type.h"
#include "third_party/blink/public/platform/web_string.h"
#include "third_party/blink/public/web/web_autofill_state.h"
#include "third_party/blink/public/web/web_element.h"
@@ -144,6 +145,11 @@ class BLINK_EXPORT WebFormControlElement : public WebElement {
// tree. The ax node id is consistent across renderer and browser processes.
int32_t GetAxId() const;
+ // Getter and setter for the PII type of the element derived from the autofill
+ // field semantic prediction.
+ FormElementPiiType GetFormElementPiiType() const;
+ void SetFormElementPiiType(FormElementPiiType form_element_pii_type);
+
#if INSIDE_BLINK
WebFormControlElement(HTMLFormControlElement*);
WebFormControlElement& operator=(HTMLFormControlElement*);
diff --git a/chromium/third_party/blink/public/web/web_frame.h b/chromium/third_party/blink/public/web/web_frame.h
index 1fd3970fcbd..521f5f69a33 100644
--- a/chromium/third_party/blink/public/web/web_frame.h
+++ b/chromium/third_party/blink/public/web/web_frame.h
@@ -33,6 +33,7 @@
#include <memory>
#include "cc/paint/paint_canvas.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
#include "third_party/blink/public/mojom/frame/tree_scope_type.mojom-shared.h"
#include "third_party/blink/public/mojom/security_context/insecure_request_policy.mojom-shared.h"
#include "third_party/blink/public/platform/web_common.h"
@@ -43,7 +44,6 @@
namespace blink {
class Frame;
-class OpenedFrameTracker;
class Visitor;
class WebLocalFrame;
class WebRemoteFrame;
@@ -73,7 +73,9 @@ class BLINK_EXPORT WebFrame {
// Returns the number of live WebFrame objects, used for leak checking.
static int InstanceCount();
+ // TODO(crbug.com/1096617): Remove the UnguessableToken version of this.
static WebFrame* FromFrameToken(const base::UnguessableToken&);
+ static WebFrame* FromFrameToken(const FrameToken&);
virtual bool IsWebLocalFrame() const = 0;
virtual WebLocalFrame* ToWebLocalFrame() = 0;
@@ -110,9 +112,6 @@ class BLINK_EXPORT WebFrame {
// Returns the frame that opened this frame or 0 if there is none.
WebFrame* Opener() const;
- // Sets the frame that opened this one or 0 if there is none.
- void SetOpener(WebFrame*);
-
// Reset the frame that opened this frame to 0.
// This is executed between web tests runs
void ClearOpener();
@@ -159,6 +158,7 @@ class BLINK_EXPORT WebFrame {
// This identifier represents the stable identifier between a
// LocalFrame <--> RenderFrameHostImpl or a
// RemoteFrame <--> RenderFrameProxyHost in the browser process.
+ // TODO(crbug.com/1096617): Make this return a FrameToken instead.
const base::UnguessableToken& GetFrameToken() const { return frame_token_; }
#if INSIDE_BLINK
@@ -177,7 +177,7 @@ class BLINK_EXPORT WebFrame {
protected:
explicit WebFrame(mojom::TreeScopeType,
const base::UnguessableToken& frame_token);
- virtual ~WebFrame();
+ virtual ~WebFrame() = default;
// Sets the parent WITHOUT fulling adding it to the frame tree.
// Used to lie to a local frame that is replacing a remote frame,
@@ -194,7 +194,6 @@ class BLINK_EXPORT WebFrame {
private:
#if INSIDE_BLINK
- friend class OpenedFrameTracker;
friend class WebFrameTest;
static void TraceFrame(Visitor*, const WebFrame*);
@@ -218,7 +217,6 @@ class BLINK_EXPORT WebFrame {
WebFrame* last_child_;
WebFrame* opener_;
- std::unique_ptr<OpenedFrameTracker> opened_frame_tracker_;
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/web/web_frame_widget.h b/chromium/third_party/blink/public/web/web_frame_widget.h
index af3d39a107e..b9d4b6286c2 100644
--- a/chromium/third_party/blink/public/web/web_frame_widget.h
+++ b/chromium/third_party/blink/public/web/web_frame_widget.h
@@ -54,6 +54,7 @@ class WebFrameWidget : public WebWidget {
public:
// Makes a WebFrameWidget that wraps a pre-existing WebWidget from the
// RenderView/WebView, for a new local main frame.
+ // Main frames can be nested in cases like Portals or GuestViews.
BLINK_EXPORT static WebFrameWidget* CreateForMainFrame(
WebWidgetClient*,
WebLocalFrame* main_frame,
@@ -63,7 +64,8 @@ class WebFrameWidget : public WebWidget {
frame_widget,
CrossVariantMojoAssociatedRemote<mojom::WidgetHostInterfaceBase>
widget_host,
- CrossVariantMojoAssociatedReceiver<mojom::WidgetInterfaceBase> widget);
+ CrossVariantMojoAssociatedReceiver<mojom::WidgetInterfaceBase> widget,
+ bool is_for_nested_main_frame = false);
// Makes a WebFrameWidget that wraps a WebLocalFrame that is not a main frame,
// providing a WebWidget to interact with the child local root frame.
BLINK_EXPORT static WebFrameWidget* CreateForChildLocalRoot(
@@ -99,19 +101,19 @@ class WebFrameWidget : public WebWidget {
const gfx::PointF& point_in_viewport,
const gfx::PointF& screen_point,
WebDragOperationsMask operations_allowed,
- int modifiers) = 0;
+ uint32_t key_modifiers) = 0;
virtual void DragTargetDragOver(
const gfx::PointF& point_in_viewport,
const gfx::PointF& screen_point,
WebDragOperationsMask operations_allowed,
- uint32_t modifiers,
+ uint32_t key_modifiers,
base::OnceCallback<void(blink::WebDragOperation)> callback) = 0;
virtual void DragTargetDragLeave(const gfx::PointF& point_in_viewport,
const gfx::PointF& screen_point) = 0;
virtual void DragTargetDrop(const WebDragData&,
const gfx::PointF& point_in_viewport,
const gfx::PointF& screen_point,
- int modifiers) = 0;
+ uint32_t key_modifiers) = 0;
// Notifies the WebFrameWidget that a drag has terminated.
virtual void DragSourceEndedAt(const gfx::PointF& point_in_viewport,
@@ -180,6 +182,30 @@ class WebFrameWidget : public WebWidget {
// Clear any active edit commands that are pending.
virtual void ClearEditCommands() = 0;
+ // If the widget is currently handling a paste.
+ virtual bool IsPasting() = 0;
+
+ // If the widget is currently selecting a range.
+ virtual bool HandlingSelectRange() = 0;
+
+ // If fullscreen has been granted.
+ virtual bool IsFullscreenGranted() = 0;
+
+ // Returns true if a pinch gesture is currently active in main frame.
+ virtual bool PinchGestureActiveInMainFrame() = 0;
+
+ // Returns page scale in main frame..
+ virtual float PageScaleInMainFrame() = 0;
+
+ // Override the zoom level for testing.
+ virtual void SetZoomLevelForTesting(double zoom_level) = 0;
+
+ // Remove the override for zoom level.
+ virtual void ResetZoomLevelForTesting() = 0;
+
+ // Override the device scale factor for testing.
+ virtual void SetDeviceScaleFactorForTesting(float factor) = 0;
+
private:
// This private constructor and the class/friend declaration ensures that
// WebFrameWidgetBase is the only concrete subclass that implements
diff --git a/chromium/third_party/blink/public/web/web_local_frame.h b/chromium/third_party/blink/public/web/web_local_frame.h
index 2b6ac1ab437..345860ae12b 100644
--- a/chromium/third_party/blink/public/web/web_local_frame.h
+++ b/chromium/third_party/blink/public/web/web_local_frame.h
@@ -10,14 +10,16 @@
#include "base/callback.h"
#include "base/i18n/rtl.h"
+#include "base/memory/weak_ptr.h"
#include "base/optional.h"
#include "base/unguessable_token.h"
#include "services/network/public/mojom/fetch_api.mojom-shared.h"
#include "services/network/public/mojom/web_sandbox_flags.mojom-shared.h"
#include "third_party/blink/public/common/css/page_size_type.h"
-#include "third_party/blink/public/common/feature_policy/feature_policy.h"
+#include "third_party/blink/public/common/feature_policy/feature_policy_features.h"
#include "third_party/blink/public/common/frame/user_activation_update_source.h"
#include "third_party/blink/public/common/messaging/transferable_message.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
#include "third_party/blink/public/mojom/ad_tagging/ad_frame.mojom-shared.h"
#include "third_party/blink/public/mojom/blob/blob_url_store.mojom-shared.h"
#include "third_party/blink/public/mojom/commit_result/commit_result.mojom-shared.h"
@@ -27,6 +29,8 @@
#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/media_player_action.mojom-shared.h"
+#include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-shared.h"
+#include "third_party/blink/public/mojom/optimization_guide/optimization_guide.mojom-shared.h"
#include "third_party/blink/public/mojom/portal/portal.mojom-shared.h"
#include "third_party/blink/public/mojom/selection_menu/selection_menu_behavior.mojom-shared.h"
#include "third_party/blink/public/mojom/web_feature/web_feature.mojom-shared.h"
@@ -39,6 +43,8 @@
#include "third_party/blink/public/web/web_frame.h"
#include "third_party/blink/public/web/web_frame_load_type.h"
#include "third_party/blink/public/web/web_navigation_params.h"
+#include "ui/accessibility/ax_tree_id.h"
+#include "ui/base/ime/ime_text_span.h"
#include "v8/include/v8.h"
namespace gfx {
@@ -63,8 +69,8 @@ class WebFrameWidget;
class WebInputMethodController;
class WebPerformance;
class WebPlugin;
+class WebPrintClient;
class WebRange;
-class WebSecurityOrigin;
class WebScriptExecutionCallback;
class WebSpellCheckPanelHostClient;
class WebString;
@@ -72,7 +78,6 @@ class WebTextCheckClient;
class WebURL;
class WebView;
struct FramePolicy;
-struct TransferableMessage;
struct WebAssociatedURLLoaderOptions;
struct WebConsoleMessage;
struct WebIsolatedWorldInfo;
@@ -105,8 +110,8 @@ class WebLocalFrame : public WebFrame {
WebFrame* opener = nullptr,
const WebString& name = WebString(),
network::mojom::WebSandboxFlags = network::mojom::WebSandboxFlags::kNone,
- const FeaturePolicy::FeatureState& opener_feature_state =
- FeaturePolicy::FeatureState());
+ const FeaturePolicyFeatureState& opener_feature_state =
+ FeaturePolicyFeatureState());
// Used to create a provisional local frame. Currently, it's possible for a
// provisional navigation not to commit (i.e. it might turn into a download),
@@ -169,6 +174,10 @@ class WebLocalFrame : public WebFrame {
// Basic properties ---------------------------------------------------
+ LocalFrameToken GetLocalFrameToken() const {
+ return LocalFrameToken(GetFrameToken());
+ }
+
virtual WebDocument GetDocument() const = 0;
// The name of this frame. If no name is given, empty string is returned.
@@ -177,6 +186,12 @@ class WebLocalFrame : public WebFrame {
// Sets the name of this frame.
virtual void SetName(const WebString&) = 0;
+ // Returns the AXTreeID associated to the current frame. It is tied to the
+ // frame's associated EmbeddingToken, and so it will only be a valid one after
+ // the first time that document has been loaded, and will change whenever the
+ // loaded document changes (e.g. frame navigated to a different document).
+ virtual ui::AXTreeID GetAXTreeID() const = 0;
+
// Hierarchy ----------------------------------------------------------
// Returns true if the current frame is a provisional frame.
@@ -208,7 +223,8 @@ class WebLocalFrame : public WebFrame {
// Returns the embedding token for this frame or nullopt if the frame hasn't
// committed a navigation. This token changes when a new document is committed
// in this WebLocalFrame.
- virtual const base::Optional<base::UnguessableToken>& GetEmbeddingToken() = 0;
+ virtual const base::Optional<base::UnguessableToken>& GetEmbeddingToken()
+ const = 0;
// Navigation Ping --------------------------------------------------------
@@ -316,21 +332,6 @@ class WebLocalFrame : public WebFrame {
// Document.
virtual void ClearIsolatedWorldCSPForTesting(int32_t world_id) = 0;
- // Sets up an isolated world by associating a |world_id| with |info|.
- // worldID must be > 0 (as 0 represents the main world).
- // worldID must be < kEmbedderWorldIdLimit, high number used internally.
- // TODO(karandeepb): This modifies the global isolated world info and hence
- // should ideally be moved out of WebLocalFrame.
- virtual void SetIsolatedWorldInfo(int32_t world_id,
- const WebIsolatedWorldInfo& info) = 0;
-
- // Returns the stable ID that was set with SetIsolatedWorldInfo.
- virtual WebString GetIsolatedWorldStableId(v8::Local<v8::Context>) const = 0;
-
- // Returns the human readable name that was set with SetIsolatedWorldInfo.
- virtual WebString GetIsolatedWorldHumanReadableName(
- v8::Local<v8::Context>) const = 0;
-
// Executes script in the context of the current page and returns the value
// that the script evaluated to.
// DEPRECATED: Use WebLocalFrame::requestExecuteScriptAndReturnValue.
@@ -493,6 +494,13 @@ class WebLocalFrame : public WebFrame {
virtual void MoveCaretSelection(const gfx::Point&) = 0;
virtual bool SetEditableSelectionOffsets(int start, int end) = 0;
+ virtual bool AddImeTextSpansToExistingText(
+ const WebVector<ui::ImeTextSpan>& ime_text_spans,
+ unsigned text_start,
+ unsigned text_end) = 0;
+ virtual bool ClearImeTextSpansByType(ui::ImeTextSpan::Type type,
+ unsigned text_start,
+ unsigned text_end) = 0;
virtual bool SetCompositionFromExistingText(
int composition_start,
int composition_end,
@@ -541,15 +549,6 @@ class WebLocalFrame : public WebFrame {
// Iframe sandbox ---------------------------------------------------------
- // TODO(ekaramad): This method is only exposed for testing for certain tests
- // outside of blink/ that are interested in approximate value of the
- // FrameReplicationState. This method should be replaced with one in content/
- // where the notion of FrameReplicationState is relevant to.
- // Returns the effective sandbox flags which are inherited from their parent
- // frame.
- virtual network::mojom::WebSandboxFlags EffectiveSandboxFlagsForTesting()
- const = 0;
-
// Returns false if this frame, or any parent frame is sandboxed and does not
// have the flag "allow-downloads" set.
virtual bool IsAllowedToDownload() const = 0;
@@ -572,7 +571,8 @@ class WebLocalFrame : public WebFrame {
bool forward,
bool new_session,
bool force,
- bool wrap_within_frame) = 0;
+ bool wrap_within_frame,
+ bool async) = 0;
// Set the tickmarks for the frame. This will override the default tickmarks
// generated by find results. If this is called with an empty array, the
@@ -594,29 +594,12 @@ class WebLocalFrame : public WebFrame {
// This will be removed following the deprecation.
virtual void UsageCountChromeLoadTimes(const WebString& metric) = 0;
- // Portals -------------------------------------------------------------
-
- // Dispatches an event when a Portal gets activated. |portal_token| is the
- // portal's unique identifier, the message pipe |portal_pipe| is the
- // portal's mojo interface, and the message pipe |portal_client_pipe| is
- // a mojo interface to communicate back with the caller of the portal's
- // mojo interface. |data| is an optional message sent together with the
- // portal's activation.
- using OnPortalActivatedCallback =
- base::OnceCallback<void(mojom::PortalActivateResult)>;
- virtual void OnPortalActivated(
- const base::UnguessableToken& portal_token,
- CrossVariantMojoAssociatedRemote<mojom::PortalInterfaceBase> portal,
- CrossVariantMojoAssociatedReceiver<mojom::PortalClientInterfaceBase>
- portal_client,
- TransferableMessage data,
- OnPortalActivatedCallback callback) = 0;
-
- // Forwards message to the PortalHost object exposed by the frame.
- virtual void ForwardMessageFromHost(
- TransferableMessage message,
- const WebSecurityOrigin& source_origin,
- const base::Optional<WebSecurityOrigin>& target_origin) = 0;
+ // Whether we've dispatched "pagehide" on the current document in this frame
+ // previously, and haven't dispatched the "pageshow" event after the last time
+ // we dispatched "pagehide". This means that we've navigated away from the
+ // document and it's still hidden (possibly preserved in the back-forward
+ // cache, or unloaded).
+ virtual bool DispatchedPagehideAndStillHidden() const = 0;
// Scheduling ---------------------------------------------------------------
@@ -669,7 +652,9 @@ class WebLocalFrame : public WebFrame {
// Dispatch |beforeprint| event, and execute event handlers. They might detach
// this frame from the owner WebView.
// This function should be called before pairs of PrintBegin() and PrintEnd().
- virtual void DispatchBeforePrintEvent() = 0;
+ // |print_client| is an optional weak pointer to the caller.
+ virtual void DispatchBeforePrintEvent(
+ base::WeakPtr<WebPrintClient> print_client) = 0;
// Get the plugin to print, if any. The |constrain_to_node| parameter is the
// same as the one for PrintBegin() below.
@@ -739,7 +724,8 @@ class WebLocalFrame : public WebFrame {
// User activation -----------------------------------------------------------
// See blink::LocalFrame::NotifyUserActivation().
- virtual void NotifyUserActivation() = 0;
+ virtual void NotifyUserActivation(
+ mojom::UserActivationNotificationType notification_type) = 0;
// See blink::LocalFrame::HasStickyUserActivation().
virtual bool HasStickyUserActivation() = 0;
@@ -752,6 +738,16 @@ class WebLocalFrame : public WebFrame {
UserActivationUpdateSource update_source =
UserActivationUpdateSource::kRenderer) = 0;
+ // Optimization Guide --------------------------------------------------------
+
+ // Sets the optimization hints provided by the optimization guide service. See
+ // //components/optimization_guide/README.md.
+ //
+ // For now, DelayAsyncScriptExecutionDelayType is the only hint. If more hints
+ // are added, this can be struct, etc.
+ virtual void SetOptimizationGuideHints(
+ mojom::DelayAsyncScriptExecutionDelayType delay_type) = 0;
+
// Testing ------------------------------------------------------------------
// Get the total spool size (the bounding box of all the pages placed after
diff --git a/chromium/third_party/blink/public/web/web_local_frame_client.h b/chromium/third_party/blink/public/web/web_local_frame_client.h
index f0a05ead42b..55fcd230465 100644
--- a/chromium/third_party/blink/public/web/web_local_frame_client.h
+++ b/chromium/third_party/blink/public/web/web_local_frame_client.h
@@ -43,6 +43,7 @@
#include "third_party/blink/public/common/loader/loading_behavior_flag.h"
#include "third_party/blink/public/common/loader/url_loader_factory_bundle.h"
#include "third_party/blink/public/common/navigation/triggering_event_info.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
#include "third_party/blink/public/mojom/frame/blocked_navigation_types.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/frame_owner_element_type.mojom-shared.h"
@@ -214,21 +215,19 @@ class BLINK_EXPORT WebLocalFrameClient {
}
// Request the creation of a new portal.
- virtual std::pair<WebRemoteFrame*, base::UnguessableToken> CreatePortal(
+ virtual std::pair<WebRemoteFrame*, PortalToken> CreatePortal(
CrossVariantMojoAssociatedReceiver<mojom::PortalInterfaceBase>
portal_endpoint,
CrossVariantMojoAssociatedRemote<mojom::PortalClientInterfaceBase>
client_endpoint,
const WebElement& portal_element) {
- return std::pair<WebRemoteFrame*, base::UnguessableToken>(
- nullptr, base::UnguessableToken());
+ return std::pair<WebRemoteFrame*, PortalToken>(nullptr, PortalToken());
}
// Request the creation of a remote frame which corresponds to an existing
// portal.
- virtual blink::WebRemoteFrame* AdoptPortal(
- const base::UnguessableToken& portal_token,
- const WebElement& portal_element) {
+ virtual blink::WebRemoteFrame* AdoptPortal(const PortalToken& portal_token,
+ const WebElement& portal_element) {
return nullptr;
}
@@ -237,14 +236,13 @@ class BLINK_EXPORT WebLocalFrameClient {
// from outside of the browsing instance.
virtual WebFrame* FindFrame(const WebString& name) { return nullptr; }
- // Specifies the reason for the detachment.
- enum class DetachType { kRemove, kSwap };
+ // Notifies observers that the frame is being detached and sends the current
+ // frame's navigation state to the browser.
+ virtual void WillDetach() {}
// This frame has been detached. Embedders should release any resources
- // associated with this frame. If the DetachType is Remove, the frame should
- // also be removed from the frame tree; otherwise, if the DetachType is
- // Swap, the frame is being replaced in-place by WebFrame::swap().
- virtual void FrameDetached(DetachType) {}
+ // associated with this frame.
+ virtual void FrameDetached() {}
// This frame's name has changed.
virtual void DidChangeName(const WebString& name) {}
@@ -255,17 +253,13 @@ class BLINK_EXPORT WebLocalFrameClient {
virtual void DidSetFramePolicyHeaders(
network::mojom::WebSandboxFlags flags,
const ParsedFeaturePolicy& feature_policy_header,
- const DocumentPolicy::FeatureState& document_policy_header) {}
+ const DocumentPolicyFeatureState& document_policy_header) {}
// Called when a watched CSS selector matches or stops matching.
virtual void DidMatchCSS(
const WebVector<WebString>& newly_matching_selectors,
const WebVector<WebString>& stopped_matching_selectors) {}
- // Called when a frame is capturing mouse input, such as when a scrollbar
- // is being dragged.
- virtual void SetMouseCapture(bool capture) {}
-
// Console messages ----------------------------------------------------
// Whether or not we should report a detailed message for the given source.
@@ -323,6 +317,15 @@ class BLINK_EXPORT WebLocalFrameClient {
// datasource will become the provisional datasource for the frame.
virtual void DidCreateDocumentLoader(WebDocumentLoader*) {}
+ // Used to inform the embedder that `WebNavigationControl::CommitNavigation`
+ // call will fail to commit a new document.
+ //
+ // TODO(https://crbug.com/1117282): Remove the need for these exceptions.
+ enum class CommitFailureReason {
+ kNoPluginForMimeType,
+ };
+ virtual void WillFailCommitNavigation(CommitFailureReason) {}
+
// The navigation has been committed, as a result of
// WebNavigationControl::CommitNavigation call. The newly created document
// is committed to the frame, the encoding of the response body is known,
@@ -432,8 +435,9 @@ class BLINK_EXPORT WebLocalFrameClient {
// UI ------------------------------------------------------------------
// Shows a context menu with commands relevant to a specific element on
- // the given frame. Additional context data is supplied.
- virtual void ShowContextMenu(const WebContextMenuData&) {}
+ // the given frame. Additional context data and location are supplied.
+ virtual void ShowContextMenu(const WebContextMenuData&,
+ const base::Optional<gfx::Point>&) {}
// Called when the frame rects changed.
virtual void FrameRectsChanged(const WebRect&) {}
@@ -442,38 +446,25 @@ class BLINK_EXPORT WebLocalFrameClient {
// focused element, |to_element| is the newly focused one. Either can be null.
virtual void FocusedElementChanged(const WebElement& element) {}
- // Called when a frame's intersection with the main frame's document has
- // changed.
- virtual void OnMainFrameDocumentIntersectionChanged(
+ // Called when a frame's intersection with the main frame has changed.
+ virtual void OnMainFrameIntersectionChanged(
const WebRect& intersection_rect) {}
// Low-level resource notifications ------------------------------------
+ using ForRedirect = util::StrongAlias<class ForRedirectTag, bool>;
// A request is about to be sent out, and the client may modify it. Request
// is writable, and changes to the URL, for example, will change the request
// made.
- virtual void WillSendRequest(WebURLRequest&) {}
+ virtual void WillSendRequest(WebURLRequest&, ForRedirect) {}
// The specified request was satified from WebCore's memory cache.
virtual void DidLoadResourceFromMemoryCache(const WebURLRequest&,
const WebURLResponse&) {}
- // The indicated security origin has run active content (such as a
- // script) from an insecure source. Note that the insecure content can
- // spread to other frames in the same origin.
- virtual void DidRunInsecureContent(const WebSecurityOrigin&,
- const WebURL& insecure_url) {}
-
// A PingLoader was created, and a request dispatched to a URL.
virtual void DidDispatchPingLoader(const WebURL&) {}
- // This frame has displayed inactive content (such as an image) from
- // a connection with certificate errors.
- virtual void DidDisplayContentWithCertificateErrors() {}
- // This frame has run active content (such as a script) from a
- // connection with certificate errors.
- virtual void DidRunContentWithCertificateErrors() {}
-
// A performance timing event (e.g. first paint) occurred
virtual void DidChangePerformanceTiming() {}
@@ -666,9 +657,6 @@ class BLINK_EXPORT WebLocalFrameClient {
return v8::Local<v8::Object>();
}
- // Transfers user activation state from |source_frame| to the current frame.
- virtual void TransferUserActivationFrom(WebLocalFrame* source_frame) {}
-
// Returns true if it has a focused plugin. |rect| is an output parameter to
// get a caret bounds from the focused plugin.
virtual bool GetCaretBoundsFromFocusedPlugin(gfx::Rect& rect) {
@@ -682,6 +670,16 @@ class BLINK_EXPORT WebLocalFrameClient {
int aggregated_percent,
int impl_percent,
base::Optional<int> main_percent) {}
+
+ // Update the current frame selection to the browser.
+ virtual void SyncSelectionIfRequired() {}
+
+ // Scroll the focused editable element into the rect. This should eventually
+ // be removed and all be done inside blink.
+ virtual void ScrollFocusedEditableElementIntoRect(const gfx::Rect& rect) {}
+
+ // Reset the currently tracked scrolled focused node.
+ virtual void ResetHasScrolledFocusedEditableIntoView() {}
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/web/web_navigation_params.h b/chromium/third_party/blink/public/web/web_navigation_params.h
index 62d8c3d12fe..488e05af7b9 100644
--- a/chromium/third_party/blink/public/web/web_navigation_params.h
+++ b/chromium/third_party/blink/public/web/web_navigation_params.h
@@ -14,6 +14,7 @@
#include "services/network/public/mojom/ip_address_space.mojom-shared.h"
#include "services/network/public/mojom/referrer_policy.mojom-shared.h"
#include "services/network/public/mojom/url_loader_factory.mojom-shared.h"
+#include "services/network/public/mojom/web_client_hints_types.mojom-shared.h"
#include "third_party/blink/public/common/frame/frame_policy.h"
#include "third_party/blink/public/common/navigation/triggering_event_info.h"
#include "third_party/blink/public/mojom/blob/blob_url_store.mojom-shared.h"
@@ -330,13 +331,16 @@ struct BLINK_EXPORT WebNavigationParams {
bool had_transient_activation = false;
// Whether this navigation has a sticky user activation flag.
bool is_user_activated = false;
+ // Whether the navigation should be allowed to invoke a text fragment anchor.
+ // This is based on a user activation but is different from the above bit as
+ // it can be propagated across redirects and is consumed on use.
+ bool has_text_fragment_token = false;
// Whether this navigation was browser initiated.
bool is_browser_initiated = false;
// Whether the document should be able to access local file:// resources.
bool grant_load_local_resources = false;
// The previews state which should be used for this navigation.
- WebURLRequest::PreviewsState previews_state =
- WebURLRequest::kPreviewsUnspecified;
+ PreviewsState previews_state = PreviewsTypes::kPreviewsUnspecified;
// The service worker network provider to be used in the new
// document.
std::unique_ptr<blink::WebServiceWorkerNetworkProvider>
@@ -391,8 +395,19 @@ struct BLINK_EXPORT WebNavigationParams {
// A list of origin trial names to enable for the document being loaded.
WebVector<WebString> force_enabled_origin_trials;
- // Whether origin isolation is restricting certain cross-origin web APIs.
- bool origin_isolation_restricted = false;
+ // Whether the page is origin isolated.
+ // https://github.com/WICG/origin-isolation
+ bool origin_isolated = false;
+
+ // List of client hints enabled for top-level frame. These still need to be
+ // checked against feature policy before use.
+ WebVector<network::mojom::WebClientHintsType> enabled_client_hints;
+
+ // Whether the navigation is cross browsing context group (browsing instance).
+ bool is_cross_browsing_context_group_navigation = false;
+
+ // A list of additional content security policies to be enforced by blink.
+ WebVector<WebString> forced_content_security_policies;
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/web/web_print_client.h b/chromium/third_party/blink/public/web/web_print_client.h
new file mode 100644
index 00000000000..72a33386df9
--- /dev/null
+++ b/chromium/third_party/blink/public/web/web_print_client.h
@@ -0,0 +1,22 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_PRINT_CLIENT_H_
+#define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_PRINT_CLIENT_H_
+
+namespace blink {
+
+class WebPrintClient {
+ public:
+ // Let the client know it will be destroyed soon, to give it a chance to do
+ // any necessary cleanup work.
+ virtual void WillBeDestroyed() {}
+
+ protected:
+ virtual ~WebPrintClient() = default;
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_PRINT_CLIENT_H_
diff --git a/chromium/third_party/blink/public/web/web_remote_frame.h b/chromium/third_party/blink/public/web/web_remote_frame.h
index 818a048b585..e9f09106d89 100644
--- a/chromium/third_party/blink/public/web/web_remote_frame.h
+++ b/chromium/third_party/blink/public/web/web_remote_frame.h
@@ -7,8 +7,10 @@
#include "services/network/public/mojom/content_security_policy.mojom-shared.h"
#include "third_party/blink/public/common/feature_policy/feature_policy.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
#include "third_party/blink/public/mojom/ad_tagging/ad_frame.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/frame_owner_element_type.mojom-shared.h"
+#include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/user_activation_update_types.mojom-shared.h"
#include "third_party/blink/public/mojom/security_context/insecure_request_policy.mojom-shared.h"
#include "third_party/blink/public/web/web_frame.h"
@@ -107,8 +109,9 @@ class WebRemoteFrame : public WebFrame {
// Set sandbox flags replicated from another process.
virtual void SetReplicatedSandboxFlags(network::mojom::WebSandboxFlags) = 0;
- // Set frame |name| replicated from another process.
- virtual void SetReplicatedName(const WebString&) = 0;
+ // Set frame |name| and |unique_name| replicated from another process.
+ virtual void SetReplicatedName(const WebString& name,
+ const WebString& unique_name) = 0;
// Sets the FeaturePolicy header and the FeatureState (from opener) for the
// main frame. Once a non-empty |opener_feature_state| is set, it can no
@@ -116,7 +119,7 @@ class WebRemoteFrame : public WebFrame {
// down the FeatureState cannot be modified either).
virtual void SetReplicatedFeaturePolicyHeaderAndOpenerPolicies(
const ParsedFeaturePolicy& parsed_header,
- const FeaturePolicy::FeatureState& opener_feature_state) = 0;
+ const FeaturePolicyFeatureState& opener_feature_state) = 0;
// Adds |header| to the set of replicated CSP headers.
virtual void AddReplicatedContentSecurityPolicyHeader(
@@ -144,12 +147,25 @@ class WebRemoteFrame : public WebFrame {
// Update the user activation state in appropriate part of this frame's
// "local" frame tree (ancestors-only vs all-nodes).
- virtual void UpdateUserActivationState(mojom::UserActivationUpdateType) = 0;
+ //
+ // The |notification_type| parameter is used for histograms, only for the case
+ // |update_state == kNotifyActivation|.
+ virtual void UpdateUserActivationState(
+ mojom::UserActivationUpdateType update_type,
+ mojom::UserActivationNotificationType notification_type) = 0;
virtual void SetHadStickyUserActivationBeforeNavigation(bool value) = 0;
virtual WebRect GetCompositingRect() = 0;
+ // Unique name is an opaque identifier for maintaining association with
+ // session restore state for this frame.
+ virtual WebString UniqueName() const = 0;
+
+ RemoteFrameToken GetRemoteFrameToken() const {
+ return RemoteFrameToken(GetFrameToken());
+ }
+
protected:
explicit WebRemoteFrame(mojom::TreeScopeType scope,
const base::UnguessableToken& frame_token)
diff --git a/chromium/third_party/blink/public/web/web_remote_frame_client.h b/chromium/third_party/blink/public/web/web_remote_frame_client.h
index 99f3495ec6f..d647379b220 100644
--- a/chromium/third_party/blink/public/web/web_remote_frame_client.h
+++ b/chromium/third_party/blink/public/web/web_remote_frame_client.h
@@ -20,6 +20,7 @@
#include "third_party/blink/public/web/web_remote_frame.h"
namespace blink {
+struct ScreenInfo;
class WebURLRequest;
struct WebRect;
@@ -61,14 +62,18 @@ class WebRemoteFrameClient {
return base::UnguessableToken::Create();
}
- // Print out this frame.
- // |rect| is the rectangular area where this frame resides in its parent
- // frame.
- // |canvas| is the canvas we are printing on.
- // Returns the id of the placeholder content.
- virtual uint32_t Print(const WebRect& rect, cc::PaintCanvas* canvas) {
- return 0;
- }
+ // Called when the main frame's zoom level is changed and should be propagated
+ // to the remote's associated view.
+ virtual void ZoomLevelChanged(double zoom_level) {}
+
+ // Called when the local root's capture sequence number has changed.
+ virtual void UpdateCaptureSequenceNumber(uint32_t sequence_number) {}
+
+ // Called when the local page scale factor changed.
+ virtual void PageScaleFactorChanged(float page_scale_factor,
+ bool is_pinch_gesture_active) {}
+
+ virtual void DidChangeScreenInfo(const ScreenInfo& original_screen_info) {}
protected:
virtual ~WebRemoteFrameClient() = default;
diff --git a/chromium/third_party/blink/public/web/web_security_policy.h b/chromium/third_party/blink/public/web/web_security_policy.h
index fb3b59c69a6..0c010e243de 100644
--- a/chromium/third_party/blink/public/web/web_security_policy.h
+++ b/chromium/third_party/blink/public/web/web_security_policy.h
@@ -65,6 +65,12 @@ class WebSecurityPolicy {
BLINK_EXPORT static void RegisterURLSchemeAsFirstPartyWhenTopLevel(
const WebString&);
+ // Registers a URL scheme which will be considered first-party when loaded in
+ // a top-level context for child contexts which were loaded over secure
+ // schemes.
+ BLINK_EXPORT static void
+ RegisterURLSchemeAsFirstPartyWhenTopLevelEmbeddingSecure(const WebString&);
+
// Support for managing allow/block access lists to origins beyond the
// same-origin policy. The block list takes priority over the allow list.
// When an origin matches an entry on both the allow list and block list
diff --git a/chromium/third_party/blink/public/web/web_settings.h b/chromium/third_party/blink/public/web/web_settings.h
index b3a40076827..3095b4dfa10 100644
--- a/chromium/third_party/blink/public/web/web_settings.h
+++ b/chromium/third_party/blink/public/web/web_settings.h
@@ -53,7 +53,7 @@ class WebSettings {
public:
enum class ImageAnimationPolicy { kAllowed, kAnimateOnce, kNoAnimation };
- enum class EditingBehavior { kMac, kWin, kUnix, kAndroid };
+ enum class EditingBehavior { kMac, kWin, kUnix, kAndroid, kChromeOS };
enum class V8CacheOptions {
kDefault,
@@ -156,7 +156,6 @@ class WebSettings {
virtual void SetEditingBehavior(EditingBehavior) = 0;
virtual void SetEnableScrollAnimator(bool) = 0;
virtual void SetPrefersReducedMotion(bool) = 0;
- virtual void SetEnableTouchAdjustment(bool) = 0;
virtual void SetSmoothScrollForFindEnabled(bool) = 0;
virtual void SetWebGL1Enabled(bool) = 0;
virtual void SetWebGL2Enabled(bool) = 0;
@@ -258,6 +257,7 @@ class WebSettings {
virtual void SetTextTrackWindowRadius(const WebString&) = 0;
virtual void SetThreadedScrollingEnabled(bool) = 0;
virtual void SetTouchDragDropEnabled(bool) = 0;
+ virtual void SetTouchDragEndContextMenu(bool) = 0;
virtual void SetBarrelButtonForDragEnabled(bool) = 0;
virtual void SetUseLegacyBackgroundSizeShorthandBehavior(bool) = 0;
virtual void SetViewportStyle(WebViewportStyle) = 0;
@@ -297,6 +297,8 @@ class WebSettings {
virtual void SetPreferredColorScheme(PreferredColorScheme) = 0;
virtual void SetNavigationControls(NavigationControls) = 0;
virtual void SetAriaModalPrunesAXTree(bool) = 0;
+ virtual void SetUseAXMenuList(bool) = 0;
+ virtual void SetSelectionClipboardBufferAvailable(bool) = 0;
protected:
~WebSettings() = default;
diff --git a/chromium/third_party/blink/public/web/web_shared_worker.h b/chromium/third_party/blink/public/web/web_shared_worker.h
index a9f68c0f90f..d744c1bb54f 100644
--- a/chromium/third_party/blink/public/web/web_shared_worker.h
+++ b/chromium/third_party/blink/public/web/web_shared_worker.h
@@ -34,12 +34,15 @@
#include <memory>
#include "base/unguessable_token.h"
+#include "services/metrics/public/cpp/ukm_source_id.h"
#include "services/network/public/mojom/content_security_policy.mojom-shared.h"
#include "services/network/public/mojom/fetch_api.mojom-shared.h"
#include "services/network/public/mojom/ip_address_space.mojom-shared.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
#include "third_party/blink/public/mojom/browser_interface_broker.mojom-shared.h"
#include "third_party/blink/public/mojom/script/script_type.mojom-shared.h"
+#include "third_party/blink/public/mojom/worker/shared_worker_host.mojom-shared.h"
#include "third_party/blink/public/mojom/worker/worker_content_settings_proxy.mojom-shared.h"
#include "third_party/blink/public/platform/cross_variant_mojo_util.h"
#include "third_party/blink/public/platform/task_type.h"
@@ -48,22 +51,23 @@
namespace blink {
-class MessagePortChannel;
class WebString;
class WebSharedWorkerClient;
class WebURL;
+class WebWorkerFetchContext;
struct WebFetchClientSettingsObject;
+struct WorkerMainScriptLoadParameters;
// This is the interface to a SharedWorker thread.
class BLINK_EXPORT WebSharedWorker {
public:
virtual ~WebSharedWorker() {}
- // Instantiate a WebSharedWorker that interacts with the shared worker.
+ // Instantiates a WebSharedWorker that interacts with the shared worker and
+ // starts a worker context.
// WebSharedWorkerClient given here should own this instance.
- static std::unique_ptr<WebSharedWorker> Create(WebSharedWorkerClient*);
-
- virtual void StartWorkerContext(
+ static std::unique_ptr<WebSharedWorker> CreateAndStart(
+ const blink::SharedWorkerToken& token,
const WebURL& script_url,
mojom::ScriptType script_type,
network::mojom::CredentialsMode,
@@ -81,10 +85,17 @@ class BLINK_EXPORT WebSharedWorker {
content_settings,
CrossVariantMojoRemote<mojom::BrowserInterfaceBrokerInterfaceBase>
browser_interface_broker,
- bool pause_worker_context_on_start) = 0;
+ bool pause_worker_context_on_start,
+ std::unique_ptr<blink::WorkerMainScriptLoadParameters>
+ worker_main_script_load_params,
+ scoped_refptr<WebWorkerFetchContext> web_worker_fetch_context,
+ CrossVariantMojoRemote<mojom::SharedWorkerHostInterfaceBase>,
+ WebSharedWorkerClient*,
+ ukm::SourceId ukm_source_id);
// Sends a connect event to the SharedWorker context.
- virtual void Connect(MessagePortChannel) = 0;
+ virtual void Connect(int connection_request_id,
+ MessagePortDescriptor port) = 0;
// Invoked to shutdown the worker when there are no more associated documents.
// This eventually deletes this instance.
diff --git a/chromium/third_party/blink/public/web/web_shared_worker_client.h b/chromium/third_party/blink/public/web/web_shared_worker_client.h
index 81f8fabd133..8cbd68172dc 100644
--- a/chromium/third_party/blink/public/web/web_shared_worker_client.h
+++ b/chromium/third_party/blink/public/web/web_shared_worker_client.h
@@ -47,21 +47,7 @@ namespace blink {
// alive until WorkerScriptLoadFailed() or WorkerContextDestroyed() is called).
class WebSharedWorkerClient {
public:
- virtual void CountFeature(mojom::WebFeature) = 0;
- virtual void WorkerContextClosed() = 0;
virtual void WorkerContextDestroyed() = 0;
- virtual void WorkerReadyForInspection(
- CrossVariantMojoRemote<mojom::DevToolsAgentInterfaceBase>
- devtools_agent_remote,
- CrossVariantMojoReceiver<mojom::DevToolsAgentHostInterfaceBase>
- devtools_agent_host_receiver) {}
- virtual void WorkerScriptLoadFailed(const std::string& error_message) = 0;
- virtual void WorkerScriptEvaluated(bool success) = 0;
-
- // Called on the main thread during initialization. Creates a new
- // WebWorkerFetchContext for the shared worker. This is passed to the worker
- // thread and used loading requests from the shared worker.
- virtual scoped_refptr<WebWorkerFetchContext> CreateWorkerFetchContext() = 0;
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/web/web_view.h b/chromium/third_party/blink/public/web/web_view.h
index baa1cec0752..4d55813fed9 100644
--- a/chromium/third_party/blink/public/web/web_view.h
+++ b/chromium/third_party/blink/public/web/web_view.h
@@ -36,6 +36,7 @@
#include "third_party/blink/public/mojom/input/focus_type.mojom-shared.h"
#include "third_party/blink/public/mojom/page/page.mojom-shared.h"
#include "third_party/blink/public/mojom/page/page_visibility_state.mojom-shared.h"
+#include "third_party/blink/public/mojom/widget/screen_orientation.mojom-shared.h"
#include "third_party/blink/public/platform/cross_variant_mojo_util.h"
#include "third_party/blink/public/platform/web_string.h"
#include "third_party/skia/include/core/SkColor.h"
@@ -47,6 +48,7 @@ struct BrowserControlsParams;
}
namespace gfx {
+class ColorSpace;
class Point;
class PointF;
class Rect;
@@ -67,10 +69,9 @@ class WebSettings;
class WebString;
class WebViewClient;
class WebWidget;
-struct WebDeviceEmulationParams;
+struct DeviceEmulationParams;
struct WebRect;
struct WebSize;
-struct WebTextAutosizerPageInfo;
struct WebWindowFeatures;
class WebView {
@@ -93,6 +94,7 @@ class WebView {
//
// clients may be null, but should both be null or not together.
// |is_hidden| defines the initial visibility of the page.
+ // [is_inside_portal] defines whether the page is inside_portal.
// |compositing_enabled| dictates whether accelerated compositing should be
// enabled for the page. It must be false if no clients are provided, or if a
// LayerTreeView will not be set for the WebWidget.
@@ -104,6 +106,7 @@ class WebView {
BLINK_EXPORT static WebView* Create(
WebViewClient*,
bool is_hidden,
+ bool is_inside_portal,
bool compositing_enabled,
WebView* opener,
CrossVariantMojoAssociatedReceiver<mojom::PageBroadcastInterfaceBase>
@@ -133,6 +136,11 @@ class WebView {
// Initializes the various client interfaces.
virtual void SetPrerendererClient(WebPrerendererClient*) = 0;
+ // Called when some JS code has instructed the window associated to the main
+ // frame to close, which will result in a request to the browser to close the
+ // RenderWidget associated to it.
+ virtual void CloseWindowSoon() = 0;
+
// Options -------------------------------------------------------------
// The returned pointer is valid for the lifetime of the WebView.
@@ -315,20 +323,21 @@ class WebView {
virtual WebSize GetSize() = 0;
- // Auto-Resize -----------------------------------------------------------
+ // Override the screen orientation override.
+ virtual void SetScreenOrientationOverrideForTesting(
+ base::Optional<blink::mojom::ScreenOrientation> orientation) = 0;
- // In auto-resize mode, the view is automatically adjusted to fit the html
- // content within the given bounds.
- virtual void EnableAutoResizeMode(const WebSize& min_size,
- const WebSize& max_size) = 0;
+ // Auto-Resize -----------------------------------------------------------
- // Turn off auto-resize.
- virtual void DisableAutoResizeMode() = 0;
+ // Return the state of the auto resize mode.
+ virtual bool AutoResizeMode() = 0;
- // Media ---------------------------------------------------------------
+ // Enable auto resize.
+ virtual void EnableAutoResizeForTesting(const gfx::Size& min_size,
+ const gfx::Size& max_size) = 0;
- // Notifies WebView when audio is started or stopped.
- virtual void AudioStateChanged(bool is_audio_playing) = 0;
+ // Disable auto resize.
+ virtual void DisableAutoResizeForTesting(const gfx::Size& new_size) = 0;
// Data exchange -------------------------------------------------------
@@ -346,12 +355,11 @@ class WebView {
// Developer tools -----------------------------------------------------
// Enables device emulation as specified in params.
- virtual void EnableDeviceEmulation(const WebDeviceEmulationParams&) = 0;
+ virtual void EnableDeviceEmulation(const DeviceEmulationParams&) = 0;
// Cancel emulation started via |enableDeviceEmulation| call.
virtual void DisableDeviceEmulation() = 0;
-
// Context menu --------------------------------------------------------
virtual void PerformCustomContextMenuAction(unsigned action) = 0;
@@ -390,6 +398,9 @@ class WebView {
// well.
virtual void SetBaseBackgroundColor(SkColor) {}
+ virtual void SetDeviceColorSpaceForTesting(
+ const gfx::ColorSpace& color_space) = 0;
+
// Scheduling -----------------------------------------------------------
virtual PageScheduler* Scheduler() const = 0;
@@ -401,6 +412,21 @@ class WebView {
bool is_initial_state) = 0;
virtual mojom::PageVisibilityState GetVisibilityState() = 0;
+ // PageLifecycleState ----------------------------------------------------
+
+ // Sets the |visibility| and |pagehide_dispatch| properties for the
+ // PageLifecycleState of this page from a new page's commit. Should only be
+ // called from a main-frame same-site navigation where we did a proactive
+ // BrowsingInstance swap and we're reusing the old page's process.
+ // Note that unlike SetPageLifecycleState in PageBroadcast/WebViewImpl, we
+ // don't need to pass a callback here to notify the browser site that the
+ // PageLifecycleState has been successfully updated.
+ // TODO(rakina): When it's possible to pass PageLifecycleState here, pass
+ // PageLifecycleState instead.
+ virtual void SetPageLifecycleStateFromNewPageCommit(
+ mojom::PageVisibilityState visibility,
+ mojom::PagehideDispatch pagehide_dispatch) = 0;
+
// Page Importance Signals ----------------------------------------------
virtual WebPageImportanceSignals* PageImportanceSignals() { return nullptr; }
@@ -458,13 +484,6 @@ class WebView {
// Portals --------------------------------------------------------------
- // Informs the page that it is inside a portal.
- virtual void SetInsidePortal(bool inside_portal) = 0;
-
- // Use to transfer TextAutosizer state from the local main frame renderer to
- // remote main frame renderers.
- virtual void SetTextAutosizerPageInfo(const WebTextAutosizerPageInfo&) {}
-
protected:
~WebView() = default;
};
diff --git a/chromium/third_party/blink/public/web/web_view_client.h b/chromium/third_party/blink/public/web/web_view_client.h
index c799a401d45..dbf2e369e99 100644
--- a/chromium/third_party/blink/public/web/web_view_client.h
+++ b/chromium/third_party/blink/public/web/web_view_client.h
@@ -34,7 +34,7 @@
#include "base/strings/string_piece.h"
#include "services/network/public/mojom/web_sandbox_flags.mojom-shared.h"
#include "third_party/blink/public/common/dom_storage/session_storage_namespace_id.h"
-#include "third_party/blink/public/common/feature_policy/feature_policy.h"
+#include "third_party/blink/public/common/feature_policy/feature_policy_features.h"
#include "third_party/blink/public/mojom/page/page_visibility_state.mojom-forward.h"
#include "third_party/blink/public/platform/web_string.h"
#include "third_party/blink/public/web/web_ax_enums.h"
@@ -70,7 +70,7 @@ class WebViewClient {
const WebString& name,
WebNavigationPolicy policy,
network::mojom::WebSandboxFlags,
- const FeaturePolicy::FeatureState&,
+ const FeaturePolicyFeatureState&,
const SessionStorageNamespaceId& session_storage_namespace_id) {
return nullptr;
}
@@ -85,11 +85,6 @@ class WebViewClient {
// Misc ----------------------------------------------------------------
- // Called when the window for this WebView should be closed. The WebView
- // and its frame tree will be closed asynchronously as a result of this
- // request.
- virtual void CloseWindowSoon() {}
-
// Called when a region of the WebView needs to be re-painted. This is only
// for non-composited WebViews that exist to contribute to a "parent" WebView
// painting. Otherwise invalidations are transmitted to the compositor through
@@ -104,6 +99,8 @@ class WebViewClient {
virtual void OnPageVisibilityChanged(mojom::PageVisibilityState visibility) {}
+ virtual void OnPageFrozenChanged(bool frozen) {}
+
// UI ------------------------------------------------------------------
// Called when hovering over an anchor with the given URL.
@@ -148,6 +145,9 @@ class WebViewClient {
// Called when the View acquires focus.
virtual void DidFocus() {}
+ // Called when the View's zoom has changed.
+ virtual void ZoomLevelChanged() {}
+
// Session history -----------------------------------------------------
// Returns the number of history items before/after the current
@@ -171,6 +171,10 @@ class WebViewClient {
// Policies -------------------------------------------------------------
virtual bool AllowPopupsDuringPageUnload() { return false; }
+
+ // History -------------------------------------------------------------
+ virtual void OnSetHistoryOffsetAndLength(int history_offset,
+ int history_length) {}
};
} // namespace blink
diff --git a/chromium/third_party/blink/public/web/web_widget.h b/chromium/third_party/blink/public/web/web_widget.h
index aad9e1d1c71..529eb6a212a 100644
--- a/chromium/third_party/blink/public/web/web_widget.h
+++ b/chromium/third_party/blink/public/web/web_widget.h
@@ -33,14 +33,19 @@
#include "base/callback.h"
#include "base/time/time.h"
+#include "build/build_config.h"
#include "cc/input/browser_controls_state.h"
#include "cc/metrics/begin_main_frame_metrics.h"
#include "cc/paint/element_id.h"
#include "cc/trees/layer_tree_host_client.h"
#include "third_party/blink/public/common/input/web_menu_source_type.h"
#include "third_party/blink/public/common/metrics/document_update_reason.h"
+#include "third_party/blink/public/common/widget/screen_info.h"
#include "third_party/blink/public/mojom/input/input_event_result.mojom-shared.h"
+#include "third_party/blink/public/mojom/input/pointer_lock_context.mojom-shared.h"
+#include "third_party/blink/public/mojom/input/pointer_lock_result.mojom-shared.h"
#include "third_party/blink/public/mojom/manifest/display_mode.mojom-shared.h"
+#include "third_party/blink/public/platform/cross_variant_mojo_util.h"
#include "third_party/blink/public/platform/input/input_handler_proxy.h"
#include "third_party/blink/public/platform/web_common.h"
#include "third_party/blink/public/platform/web_input_event_result.h"
@@ -55,9 +60,9 @@
namespace cc {
class LayerTreeHost;
+class LayerTreeSettings;
class TaskGraphRunner;
class UkmRecorderFactory;
-class LayerTreeSettings;
}
namespace ui {
@@ -65,29 +70,41 @@ class Cursor;
class LatencyInfo;
}
+namespace viz {
+class LocalSurfaceIdAllocation;
+}
+
namespace blink {
+class SynchronousCompositorRegistry;
+struct VisualProperties;
class WebCoalescedInputEvent;
namespace scheduler {
class WebRenderWidgetSchedulingState;
+class WebThreadScheduler;
}
class WebWidget {
public:
// Initialize compositing. This will create a LayerTreeHost but will not
// allocate a frame sink or begin producing frames until SetCompositorVisible
- // is called.
+ // is called. |settings| is typically null. When |settings| is null
+ // the default settings will be used, tests may provide a |settings| object to
+ // override the defaults.
virtual cc::LayerTreeHost* InitializeCompositing(
+ bool never_composited,
+ scheduler::WebThreadScheduler* main_thread_scheduler,
cc::TaskGraphRunner* task_graph_runner,
- const cc::LayerTreeSettings& settings,
- std::unique_ptr<cc::UkmRecorderFactory> ukm_recorder_factory) = 0;
+ bool for_child_local_root_frame,
+ const ScreenInfo& screen_info,
+ std::unique_ptr<cc::UkmRecorderFactory> ukm_recorder_factory,
+ const cc::LayerTreeSettings* settings) = 0;
// This method closes and deletes the WebWidget. If a |cleanup_task| is
// provided it should run on the |cleanup_runner| after the WebWidget has
// added its own tasks to the |cleanup_runner|.
virtual void Close(
- scoped_refptr<base::SingleThreadTaskRunner> cleanup_runner = nullptr,
- base::OnceCallback<void()> cleanup_task = base::OnceCallback<void()>()) {}
+ scoped_refptr<base::SingleThreadTaskRunner> cleanup_runner = nullptr) {}
// Set the compositor as visible. If |visible| is true, then the compositor
// will request a new layer frame sink and begin producing frames from the
@@ -100,10 +117,6 @@ class WebWidget {
// Called to resize the WebWidget.
virtual void Resize(const WebSize&) {}
- // Called to notify the WebWidget of entering/exiting fullscreen mode.
- virtual void DidEnterFullscreen() {}
- virtual void DidExitFullscreen() {}
-
// Called to run through the entire set of document lifecycle phases needed
// to render a frame of the web widget. This MUST be called before Paint,
// and it may result in calls to WebViewClient::DidInvalidateRect (for
@@ -142,22 +155,18 @@ class WebWidget {
return WebInputEventResult::kNotHandled;
}
- // Called to inform the WebWidget of the mouse cursor's visibility.
- virtual void SetCursorVisibilityState(bool is_visible) {}
-
// Called to inform the WebWidget that mouse capture was lost.
virtual void MouseCaptureLost() {}
+ // Called to inform the WebWidget of the mouse cursor's visibility.
+ virtual void SetCursorVisibilityState(bool is_visible) {}
+
// Called to inform the WebWidget that it has gained or lost keyboard focus.
virtual void SetFocus(bool) {}
// Returns the state of focus for the WebWidget.
virtual bool HasFocus() { return false; }
- // Sets the display mode, which comes from the top-level browsing context and
- // is applied to all widgets.
- virtual void SetDisplayMode(mojom::DisplayMode) {}
-
// Sets the root widget's window segments.
virtual void SetWindowSegments(WebVector<WebRect> window_segments) {}
@@ -177,9 +186,6 @@ class WebWidget {
// reasons such as the user exiting lock, window focus changing, etc.
virtual void DidLosePointerLock() {}
- // Called by client to request showing the context menu.
- virtual void ShowContextMenu(WebMenuSourceType) {}
-
// Accessor to the WebWidget scheduing state.
virtual scheduler::WebRenderWidgetSchedulingState*
RendererWidgetSchedulingState() = 0;
@@ -225,15 +231,22 @@ class WebWidget {
// updated state will be sent to the browser.
virtual void UpdateTextInputState() = 0;
- // Requests the text input state be updated. An updated state will always be
- // sent to the browser.
- virtual void ForceTextInputStateUpdate() = 0;
+ // Request Mouse Lock. This can be removed eventually when the mouse lock
+ // dispatcher is moved into blink.
+ virtual void RequestMouseLock(
+ bool has_transient_user_activation,
+ bool priviledged,
+ bool request_unadjusted_movement,
+ base::OnceCallback<
+ void(mojom::PointerLockResult,
+ CrossVariantMojoRemote<mojom::PointerLockContextInterfaceBase>)>
+ callback) = 0;
+
+ // Flush any pending input.
+ virtual void FlushInputProcessedCallback() = 0;
- // Checks if the composition range or composition character bounds have been
- // changed. If they are changed, the new value will be sent to the browser
- // process. This method does nothing when the browser process is not able to
- // handle composition range and composition character bounds.
- virtual void UpdateCompositionInfo() = 0;
+ // Cancel the current composition.
+ virtual void CancelCompositionForPepper() = 0;
// Requests the selection bounds be updated.
virtual void UpdateSelectionBounds() = 0;
@@ -241,9 +254,43 @@ class WebWidget {
// Request the virtual keyboard be shown.
virtual void ShowVirtualKeyboard() = 0;
- // Request composition updates be sent to the browser.
- virtual void RequestCompositionUpdates(bool immediate_request,
- bool monitor_updates) = 0;
+ // Apply the visual properties to the widget.
+ virtual void ApplyVisualProperties(
+ const VisualProperties& visual_properties) = 0;
+
+ // Update the surface allocation information, compositor viewport rect and
+ // screen info on the widget. This method is temporary as updating visual
+ // properties is shared action between WidgetBase and RenderWidget, and will
+ // be removed when it is all done inside blink proper.
+ // (https://crbug.com/1097816)
+ virtual void UpdateSurfaceAndScreenInfo(
+ const viz::LocalSurfaceIdAllocation& new_local_surface_id_allocation,
+ const gfx::Rect& compositor_viewport_pixel_rect,
+ const ScreenInfo& new_screen_info) = 0;
+
+ // Similar to UpdateSurfaceAndScreenInfo but the surface allocation
+ // and compositor viewport rect remain the same.
+ virtual void UpdateScreenInfo(const ScreenInfo& new_screen_info) = 0;
+
+ // Similar to UpdateSurfaceAndScreenInfo but the surface allocation
+ // remains the same.
+ virtual void UpdateCompositorViewportAndScreenInfo(
+ const gfx::Rect& compositor_viewport_pixel_rect,
+ const ScreenInfo& new_screen_info) = 0;
+
+ // Similar to UpdateSurfaceAndScreenInfo but the surface allocation and screen
+ // info remain the same.
+ virtual void UpdateCompositorViewportRect(
+ const gfx::Rect& compositor_viewport_pixel_rect) = 0;
+
+ // Returns information about the screen where this view's widgets are being
+ // displayed.
+ virtual const ScreenInfo& GetScreenInfo() = 0;
+
+#if defined(OS_ANDROID)
+ // Return the synchronous compositor registry.
+ virtual SynchronousCompositorRegistry* GetSynchronousCompositorRegistry() = 0;
+#endif
protected:
~WebWidget() = default;
diff --git a/chromium/third_party/blink/public/web/web_widget_client.h b/chromium/third_party/blink/public/web/web_widget_client.h
index b7b4802e63c..aaa9df177e6 100644
--- a/chromium/third_party/blink/public/web/web_widget_client.h
+++ b/chromium/third_party/blink/public/web/web_widget_client.h
@@ -37,18 +37,20 @@
#include "base/callback.h"
#include "base/i18n/rtl.h"
#include "base/time/time.h"
+#include "build/buildflag.h"
#include "cc/trees/layer_tree_host.h"
#include "components/viz/common/surfaces/frame_sink_id.h"
#include "services/network/public/mojom/referrer_policy.mojom-shared.h"
#include "third_party/blink/public/common/input/web_coalesced_input_event.h"
#include "third_party/blink/public/common/input/web_gesture_event.h"
#include "third_party/blink/public/common/page/web_drag_operation.h"
+#include "third_party/blink/public/common/widget/device_emulation_params.h"
+#include "third_party/blink/public/common/widget/screen_info.h"
#include "third_party/blink/public/mojom/input/input_handler.mojom-shared.h"
#include "third_party/blink/public/mojom/input/pointer_lock_result.mojom-forward.h"
#include "third_party/blink/public/platform/cross_variant_mojo_util.h"
#include "third_party/blink/public/platform/web_common.h"
#include "third_party/blink/public/platform/web_rect.h"
-#include "third_party/blink/public/platform/web_screen_info.h"
#include "third_party/blink/public/platform/web_text_input_type.h"
#include "third_party/blink/public/platform/web_touch_action.h"
#include "third_party/blink/public/web/web_meaningful_layout.h"
@@ -67,15 +69,18 @@ class PointF;
namespace ui {
class Cursor;
+struct ImeTextSpan;
}
namespace blink {
+struct VisualProperties;
class WebDragData;
class WebMouseEvent;
class WebGestureEvent;
struct WebFloatRect;
class WebWidget;
class WebLocalFrame;
+class WebString;
class WebWidgetClient {
public:
@@ -97,15 +102,20 @@ class WebWidgetClient {
// WebMeaningfulLayout for details.)
virtual void DidMeaningfulLayout(WebMeaningfulLayout) {}
+ // Called when some JS code has instructed the window associated to the main
+ // frame to close, which will result in a request to the browser to close the
+ // RenderWidget associated to it
+ virtual void CloseWidgetSoon() {}
+
// Called when the cursor for the widget changes.
virtual void DidChangeCursor(const ui::Cursor&) {}
// Called to show the widget according to the given policy.
virtual void Show(WebNavigationPolicy) {}
- // Returns information about the screen where this view's widgets are being
- // displayed.
- virtual WebScreenInfo GetScreenInfo() { return {}; }
+ // Returns original (non-emulated) information about the screen where this
+ // view's widgets are being displayed.
+ virtual ScreenInfo GetOriginalScreenInfo() { return {}; }
// Called to get/set the position of the widget's window in screen
// coordinates. Note, the window includes any decorations such as borders,
@@ -117,6 +127,9 @@ class WebWidgetClient {
// content view area, i.e. doesn't include any window decorations.
virtual WebRect ViewRect() { return WebRect(); }
+ // Set the size of the widget.
+ virtual void SetSize(const gfx::Size&) {}
+
// Requests to lock the mouse cursor for the |requester_frame| in the
// widget. If true is returned, the success result will be asynchronously
// returned via a single call to WebWidget::didAcquirePointerLock() or
@@ -144,32 +157,6 @@ class WebWidgetClient {
// Returns true iff the pointer is locked to this widget.
virtual bool IsPointerLocked() { return false; }
- // Called when overscrolled on main thread. All parameters are in
- // viewport-space.
- virtual void DidOverscroll(const gfx::Vector2dF& overscroll_delta,
- const gfx::Vector2dF& accumulated_overscroll,
- const gfx::PointF& position_in_viewport,
- const gfx::Vector2dF& velocity_in_viewport,
- cc::OverscrollBehavior overscroll_behavior) {}
-
- // Called to update if pointerrawupdate events should be sent.
- virtual void SetHasPointerRawUpdateEventHandlers(bool) {}
-
- // Called to update whether low latency input mode is enabled or not.
- virtual void SetNeedsLowLatencyInput(bool) {}
-
- // Requests unbuffered (ie. low latency) input until a pointerup
- // event occurs.
- virtual void RequestUnbufferedInputEvents() {}
-
- // Requests unbuffered (ie. low latency) input due to debugger being
- // attached. Debugger needs to paint when stopped in the event handler.
- virtual void SetNeedsUnbufferedInputForDebugger(bool) {}
-
- // Called during WebWidget::HandleInputEvent for a TouchStart event to inform
- // the embedder of the touch actions that are permitted for this touch.
- virtual void SetTouchAction(WebTouchAction touch_action) {}
-
// Converts the |rect| from Blink's Viewport coordinates to the
// coordinates in the native window used to display the content, in
// DIP. They're identical in tradional world, but will differ when
@@ -192,25 +179,19 @@ class WebWidgetClient {
// is eanbled. TODO(oshima): Update the comment when the
// migration is completed.
virtual void ConvertWindowToViewport(WebFloatRect* rect) {}
+ virtual gfx::Point ConvertWindowPointToViewport(const gfx::Point& point) {
+ return point;
+ }
+ virtual gfx::PointF ConvertWindowPointToViewport(const gfx::PointF& point) {
+ return point;
+ }
// Called when a drag-and-drop operation should begin.
- virtual void StartDragging(network::mojom::ReferrerPolicy,
- const WebDragData&,
+ virtual void StartDragging(const WebDragData&,
WebDragOperationsMask,
const SkBitmap& drag_image,
const gfx::Point& drag_image_offset) {}
- // Sets the current page scale factor and minimum / maximum limits. Both
- // limits are initially 1 (no page scale allowed).
- virtual void SetPageScaleStateAndLimits(float page_scale_factor,
- bool is_pinch_gesture_active,
- float minimum,
- float maximum) {}
-
- // Dispatch any pending input. This method will called before
- // dispatching a RequestAnimationFrame to the widget.
- virtual void DispatchRafAlignedInput(base::TimeTicks frame_time) {}
-
// Requests an image decode and will have the |callback| run asynchronously
// when it completes. Forces a new main frame to occur that will trigger
// pushing the decode through the compositor.
@@ -230,13 +211,6 @@ class WebWidgetClient {
return viz::FrameSinkId();
}
- // Notification that the LayerTreeHost started or stopped deferring main frame
- // updates.
- virtual void OnDeferMainFrameUpdatesChanged(bool defer) {}
-
- // Notification that the LayerTreeHost started or stopped deferring commits.
- virtual void OnDeferCommitsChanged(bool defer) {}
-
// For more information on the sequence of when these callbacks are made
// consult cc/trees/layer_tree_host_client.h.
@@ -289,34 +263,6 @@ class WebWidgetClient {
return false;
}
- // Queue a sythentic event in the MainThreadEventQueue. This is called
- // for when handling scrollbars.
- virtual void QueueSyntheticEvent(
- std::unique_ptr<blink::WebCoalescedInputEvent>) {}
-
- // Connect the Widget Input Handler to the channels provided.
- virtual void GetWidgetInputHandler(
- CrossVariantMojoReceiver<mojom::WidgetInputHandlerInterfaceBase>
- widget_input_receiver,
- CrossVariantMojoRemote<mojom::WidgetInputHandlerHostInterfaceBase>
- widget_input_host_remote) {}
-
- // Since the widget input IPC channel is still on the content side send this
- // message back to the embedder to then send it on that channel. All bounds
- // are in window coordinates.
- virtual void SendCompositionRangeChanged(
- const gfx::Range& range,
- const std::vector<gfx::Rect>& character_bounds) {}
-
- // The IME guard prevents sending IPC messages while messages are being
- // processed. Returns true if there is a current guard.
- // |request_to_show_virtual_keyboard| is whether the message that would have
- // been sent would have requested the keyboard. This method will eventually be
- // removed when all input handling is moved into blink.
- virtual bool HasCurrentImeGuard(bool request_to_show_virtual_keyboard) {
- return false;
- }
-
// Determines whether composition can happen inline.
virtual bool CanComposeInline() { return false; }
@@ -335,6 +281,39 @@ class WebWidgetClient {
// The state of the focus has changed for the WebWidget. |enabled|
// is the new state.
virtual void FocusChanged(bool enabled) {}
+
+ // Set the composition in pepper.
+ virtual void ImeSetCompositionForPepper(
+ const WebString& text,
+ const std::vector<ui::ImeTextSpan>& ime_text_spans,
+ const gfx::Range& replacement_range,
+ int selection_start,
+ int selection_end) {}
+
+ // Commit the text to pepper.
+ virtual void ImeCommitTextForPepper(
+ const WebString& text,
+ const std::vector<ui::ImeTextSpan>& ime_text_spans,
+ const gfx::Range& replacement_range,
+ int relative_cursor_pos) {}
+
+ // Indicate composition is complete to pepper.
+ virtual void ImeFinishComposingTextForPepper(bool keep_selection) {}
+
+ // Called to indicate a syntehtic event was queued.
+ virtual void WillQueueSyntheticEvent(const WebCoalescedInputEvent& event) {}
+
+ // Apply the visual properties to the widget.
+ virtual void UpdateVisualProperties(
+ const VisualProperties& visual_properties) {}
+
+ // Apply the updated screen rects.
+ virtual void UpdateScreenRects(const gfx::Rect& widget_screen_rect,
+ const gfx::Rect& window_screen_rect) {}
+
+ // Device emulation control.
+ virtual void EnableDeviceEmulation(const DeviceEmulationParams& parameters) {}
+ virtual void DisableDeviceEmulation() {}
};
} // namespace blink