diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-29 10:46:47 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-11-02 12:02:10 +0000 |
commit | 99677208ff3b216fdfec551fbe548da5520cd6fb (patch) | |
tree | 476a4865c10320249360e859d8fdd3e01833b03a /chromium/third_party/blink/public | |
parent | c30a6232df03e1efbd9f3b226777b07e087a1122 (diff) | |
download | qtwebengine-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')
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&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&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 & 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&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&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&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">ପ୍ରଶ୍ନ&ଉତ୍ତର</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&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&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 |