summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/bindings/modules/v8
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/bindings/modules/v8')
-rw-r--r--chromium/third_party/blink/renderer/bindings/modules/v8/BUILD.gn246
-rw-r--r--chromium/third_party/blink/renderer/bindings/modules/v8/custom/custom.gni6
-rw-r--r--chromium/third_party/blink/renderer/bindings/modules/v8/generated.gni206
-rw-r--r--chromium/third_party/blink/renderer/bindings/modules/v8/module_bindings_initializer.cc16
-rw-r--r--chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_deserializer_for_modules.cc55
-rw-r--r--chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_deserializer_for_modules.h4
-rw-r--r--chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.cc39
-rw-r--r--chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.h3
-rw-r--r--chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules_test.cc55
-rw-r--r--chromium/third_party/blink/renderer/bindings/modules/v8/v8.gni42
-rw-r--r--chromium/third_party/blink/renderer/bindings/modules/v8/v8_binding_for_modules.cc15
-rw-r--r--chromium/third_party/blink/renderer/bindings/modules/v8/v8_context_snapshot_external_references.h29
12 files changed, 158 insertions, 558 deletions
diff --git a/chromium/third_party/blink/renderer/bindings/modules/v8/BUILD.gn b/chromium/third_party/blink/renderer/bindings/modules/v8/BUILD.gn
index f52b72568d4..49ceb53b568 100644
--- a/chromium/third_party/blink/renderer/bindings/modules/v8/BUILD.gn
+++ b/chromium/third_party/blink/renderer/bindings/modules/v8/BUILD.gn
@@ -2,13 +2,8 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//build/config/python.gni")
-import("//third_party/blink/renderer/bindings/bindings.gni")
import("//third_party/blink/renderer/bindings/generated_in_modules.gni")
-import("//third_party/blink/renderer/bindings/modules/v8/generated.gni")
-import("//third_party/blink/renderer/bindings/scripts/scripts.gni")
import("//third_party/blink/renderer/modules/modules.gni")
-import("//third_party/blink/renderer/modules/modules_idl_files.gni")
visibility = [ "//third_party/blink/renderer/*" ]
@@ -16,25 +11,16 @@ blink_modules_sources("v8") {
visibility = []
visibility = [ "//third_party/blink/renderer/modules" ]
- sources = generated_enumeration_sources_in_modules
- if (use_blink_v8_binding_new_idl_callback_function) {
- sources += generated_callback_function_sources_in_modules
- }
- if (use_blink_v8_binding_new_idl_callback_interface) {
- sources += generated_callback_interface_sources_in_modules
- }
- if (use_blink_v8_binding_new_idl_dictionary) {
- sources += generated_dictionary_sources_in_modules
- }
- if (use_blink_v8_binding_new_idl_interface) {
- sources += generated_interface_sources_in_modules +
- generated_namespace_sources_in_modules
- }
- sources += generated_typedef_sources_in_modules
- sources += generated_union_sources_in_modules
+ sources =
+ generated_callback_function_sources_in_modules +
+ generated_callback_interface_sources_in_modules +
+ generated_dictionary_sources_in_modules +
+ generated_enumeration_sources_in_modules +
+ generated_interface_sources_in_modules +
+ generated_namespace_sources_in_modules +
+ generated_typedef_sources_in_modules + generated_union_sources_in_modules
deps = [
- ":generate_mojo_bindings",
":generated",
"//third_party/blink/renderer/platform",
"//v8",
@@ -52,15 +38,7 @@ source_set("testing") {
"//third_party/blink/renderer:inside_blink",
]
- sources = []
- if (use_blink_v8_binding_new_idl_interface) {
- sources += generated_interface_sources_for_testing_in_modules
- } else {
- sources += [
- "$bindings_modules_v8_output_dir/v8_internals_partial.cc",
- "$bindings_modules_v8_output_dir/v8_internals_partial.h",
- ]
- }
+ sources = generated_interface_sources_for_testing_in_modules
deps = [
":generated",
@@ -69,9 +47,6 @@ source_set("testing") {
"//third_party/blink/renderer/platform",
"//v8",
]
- if (!use_blink_v8_binding_new_idl_interface) {
- deps += [ ":generate_bindings_modules_v8_partial_interfaces_for_testing" ]
- }
}
group("generated") {
@@ -81,205 +56,6 @@ group("generated") {
"//third_party/blink/renderer/modules/*",
]
- public_deps = [
- ":bindings_modules_v8_generated",
- "//third_party/blink/renderer/bindings:generate_bindings_all",
- ]
-}
-
-group("bindings_modules_v8_generated") {
- public_deps = [
- ":bindings_modules_impl_generated",
- ":bindings_modules_v8_generated_init_partial",
- ":generate_bindings_modules_v8_interfaces",
- ":generate_bindings_modules_v8_partial_interfaces",
- ":generate_bindings_modules_v8_partial_interfaces_for_testing",
- ":generate_v8_context_snapshot_external_references",
- "//third_party/blink/renderer/bindings/core/v8:bindings_core_v8_generated",
- ]
-}
-
-if (!use_blink_v8_binding_new_idl_callback_interface ||
- !use_blink_v8_binding_new_idl_dictionary ||
- !use_blink_v8_binding_new_idl_interface) {
- idl_compiler("generate_bindings_modules_v8_interfaces") {
- sources = []
- if (!use_blink_v8_binding_new_idl_callback_interface) {
- sources += filter_include(modules_idl_files, [ "*_callback.idl" ])
- }
- if (!use_blink_v8_binding_new_idl_dictionary) {
- sources += modules_dictionary_idl_files
- }
- if (!use_blink_v8_binding_new_idl_interface) {
- sources += filter_exclude(modules_idl_files, [ "*_callback.idl" ])
- }
- output_dir = bindings_modules_v8_output_dir
- output_name_suffix = ""
- target_component = "modules"
- }
-} else {
- group("generate_bindings_modules_v8_interfaces") {
- }
-}
-
-idl_impl("bindings_modules_impl_generated") {
- if (use_blink_v8_binding_new_idl_dictionary) {
- dict_idls = []
- } else {
- dict_idls = modules_dictionary_idl_files
- }
- non_dict_outputs = bindings_modules_generated_union_type_files
- if (!use_blink_v8_binding_new_idl_callback_function) {
- non_dict_outputs += generated_modules_callback_function_files
- }
- non_dict_output_dir = bindings_modules_v8_output_dir
- target_component = "modules"
-}
-
-if (use_blink_v8_binding_new_idl_interface) {
- group("generate_bindings_modules_v8_partial_interfaces") {
- }
-} else {
- idl_compiler("generate_bindings_modules_v8_partial_interfaces") {
- sources = core_interface_idl_files_modules_dependent
- output_dir = bindings_modules_v8_output_dir
- output_name_suffix = "_partial"
- target_component = "modules"
- }
-}
-
-if (use_blink_v8_binding_new_idl_interface) {
- group("generate_bindings_modules_v8_partial_interfaces_for_testing") {
- }
-} else {
- idl_compiler("generate_bindings_modules_v8_partial_interfaces_for_testing") {
- sources = webcore_testing_idl_with_modules_dependency_files
- output_dir = bindings_modules_v8_output_dir
- output_name_suffix = "_partial"
- target_component = "modules"
- }
-}
-
-if (use_blink_v8_binding_new_idl_interface) {
- group("bindings_modules_origin_trial_features") {
- }
-} else {
- generate_origin_trial_features("bindings_modules_origin_trial_features") {
- sources = modules_idl_files + modules_generated_dependency_idl_files +
- modules_dependency_idl_files
- component = "modules"
- output_dir = bindings_modules_output_dir + "/v8"
- deps = [
- "//third_party/blink/renderer/bindings:global_constructors_idls",
- "//third_party/blink/renderer/bindings/modules:interfaces_info_modules",
- "//third_party/blink/renderer/bindings/modules:modules_global_constructors_idls",
- ]
- }
-}
-
-if (use_blink_v8_binding_new_idl_interface) {
- group("bindings_modules_v8_generated_init_partial") {
- }
-} else {
- action("bindings_modules_v8_generated_init_partial") {
- script = "$bindings_scripts_dir/generate_init_partial_interfaces.py"
-
- inputs = [ "$bindings_output_dir/interfaces_info.pickle" ]
- outputs = [ bindings_modules_generated_init_partial_interfaces_file ]
-
- # Put the IDL file list in a response file to avoid command-line limits.
- response_file_contents =
- rebase_path(core_interface_idl_files_modules_dependent, root_build_dir)
-
- args = [
- "--idl-files-list",
- "{{response_file_name}}",
- "--output",
- rebase_path(bindings_modules_generated_init_partial_interfaces_file,
- root_build_dir),
- ]
-
- deps = [ "//third_party/blink/renderer/bindings:interfaces_info" ]
- }
-}
-
-# Note that this intentionally depends on the generator target of the mojom
-# target instead of the mojom target itself directly. This is to ensure that the
-# dependencies are header-only and don't link against any bindings code.
-group("generate_mojo_bindings") {
- visibility = [] # Allow re-assignment of list.
- visibility = [ ":*" ]
-
- deps = [
- "//device/gamepad/public/mojom:mojom_blink_headers",
- "//device/vr/public/mojom:vr_service_blink_headers",
- "//media/capture/mojom:image_capture_blink_headers",
- "//media/midi:mojo_blink_headers",
- "//services/device/public/mojom:generic_sensor_headers",
- "//services/device/public/mojom:mojom_blink_headers",
- "//services/device/public/mojom:usb_blink_headers",
- "//services/shape_detection/public/mojom:mojom_blink_headers",
-
- # IndexedDB Mojom Blink headers are provided by the mojom_modules
- # target.
- "//third_party/blink/public/mojom:mojom_modules_blink_headers",
- ]
-}
-
-blink_modules_sources("bindings_modules_impl") {
- # ":generate_bindings_modules_v8_partial_interfaces_for_testing" is not
- # included here.
- sources = get_target_outputs(":bindings_modules_impl_generated")
-
- if (!use_blink_v8_binding_new_idl_callback_interface ||
- !use_blink_v8_binding_new_idl_dictionary ||
- !use_blink_v8_binding_new_idl_interface) {
- sources += get_target_outputs(":generate_bindings_modules_v8_interfaces")
- }
- if (!use_blink_v8_binding_new_idl_interface) {
- sources +=
- get_target_outputs(":generate_bindings_modules_v8_partial_interfaces") +
- get_target_outputs(":bindings_modules_v8_generated_init_partial") +
- get_target_outputs(":bindings_modules_origin_trial_features")
- }
-
- deps = [
- ":bindings_modules_origin_trial_features",
- ":bindings_modules_v8_generated",
- ":generate_mojo_bindings",
- ":generated",
- "//third_party/blink/renderer/modules/mediarecorder:buildflags",
- "//third_party/dawn/src/dawn:dawn_headers",
- ]
-}
-
-action("generate_v8_context_snapshot_external_references") {
- script = "$bindings_scripts_dir/generate_v8_context_snapshot_external_references.py"
- idl_files =
- core_interface_idl_files_core_only +
- core_interface_idl_files_modules_dependent + modules_definition_idl_files
- output = bindings_generated_v8_context_snapshot_external_references_file
-
- inputs = idl_files + [ script ]
- outputs = [ output ]
-
- response_file_contents = rebase_path(idl_files, root_build_dir)
- args = [
- "--cache-dir",
- rebase_path(bindings_scripts_output_dir, root_build_dir),
- "--output",
- rebase_path(output, root_build_dir),
- "--idl-files-list",
- "{{response_file_name}}",
- "--info-dir",
- rebase_path("$bindings_output_dir", root_build_dir),
- "--target-component",
- "modules",
- ]
-
- deps = [
- "//third_party/blink/renderer/bindings:interfaces_info",
- "//third_party/blink/renderer/bindings/scripts:cached_jinja_templates",
- "//third_party/blink/renderer/bindings/scripts:cached_lex_yacc_tables",
- ]
+ public_deps =
+ [ "//third_party/blink/renderer/bindings:generate_bindings_all" ]
}
diff --git a/chromium/third_party/blink/renderer/bindings/modules/v8/custom/custom.gni b/chromium/third_party/blink/renderer/bindings/modules/v8/custom/custom.gni
deleted file mode 100644
index 2b8700cd118..00000000000
--- a/chromium/third_party/blink/renderer/bindings/modules/v8/custom/custom.gni
+++ /dev/null
@@ -1,6 +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.
-
-# Make the files absolute so they can be imported to anywhere.
-bindings_modules_v8_custom_files = get_path_info([], "abspath")
diff --git a/chromium/third_party/blink/renderer/bindings/modules/v8/generated.gni b/chromium/third_party/blink/renderer/bindings/modules/v8/generated.gni
deleted file mode 100644
index baf661b56dd..00000000000
--- a/chromium/third_party/blink/renderer/bindings/modules/v8/generated.gni
+++ /dev/null
@@ -1,206 +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.
-
-import("//build/config/chrome_build.gni")
-import("//third_party/blink/renderer/bindings/bindings.gni")
-import("//third_party/blink/renderer/bindings/scripts/scripts.gni")
-import("//third_party/blink/renderer/core/core_idl_files.gni")
-import("//third_party/blink/renderer/modules/modules_idl_files.gni")
-
-bindings_modules_v8_output_dir = "$bindings_output_dir/modules/v8"
-
-bindings_modules_generated_init_partial_interfaces_file =
- "$bindings_modules_v8_output_dir/init_partial_interfaces_in_modules.cc"
-
-# TODO(bashi): It would be better to have a way to update this list automatically.
-bindings_modules_generated_union_type_files = [
- "$bindings_modules_v8_output_dir/animation_effect_or_animation_effect_sequence.cc",
- "$bindings_modules_v8_output_dir/animation_effect_or_animation_effect_sequence.h",
- "$bindings_modules_v8_output_dir/array_buffer_or_array_buffer_view_or_blob_or_usv_string_or_write_params.cc",
- "$bindings_modules_v8_output_dir/array_buffer_or_array_buffer_view_or_blob_or_usv_string_or_write_params.h",
- "$bindings_modules_v8_output_dir/array_buffer_or_array_buffer_view_or_json_web_key.cc",
- "$bindings_modules_v8_output_dir/array_buffer_or_array_buffer_view_or_json_web_key.h",
- "$bindings_modules_v8_output_dir/array_buffer_or_array_buffer_view_or_readable_stream.cc",
- "$bindings_modules_v8_output_dir/array_buffer_or_array_buffer_view_or_readable_stream.h",
- "$bindings_modules_v8_output_dir/array_buffer_or_array_buffer_view_or_string.cc",
- "$bindings_modules_v8_output_dir/array_buffer_or_array_buffer_view_or_string.h",
- "$bindings_modules_v8_output_dir/array_buffer_or_array_buffer_view_or_usv_string.cc",
- "$bindings_modules_v8_output_dir/array_buffer_or_array_buffer_view_or_usv_string.h",
- "$bindings_modules_v8_output_dir/audio_context_latency_category_or_double.cc",
- "$bindings_modules_v8_output_dir/audio_context_latency_category_or_double.h",
- "$bindings_modules_v8_output_dir/boolean_or_constrain_boolean_parameters.cc",
- "$bindings_modules_v8_output_dir/boolean_or_constrain_boolean_parameters.h",
- "$bindings_modules_v8_output_dir/boolean_or_double_or_constrain_double_range.cc",
- "$bindings_modules_v8_output_dir/boolean_or_double_or_constrain_double_range.h",
- "$bindings_modules_v8_output_dir/boolean_or_media_track_constraints.cc",
- "$bindings_modules_v8_output_dir/boolean_or_media_track_constraints.h",
- "$bindings_modules_v8_output_dir/canvas_filter_dictionary_or_canvas_filter_dictionary_array.cc",
- "$bindings_modules_v8_output_dir/canvas_filter_dictionary_or_canvas_filter_dictionary_array.h",
- "$bindings_modules_v8_output_dir/canvas_image_source.cc",
- "$bindings_modules_v8_output_dir/canvas_image_source.h",
- "$bindings_modules_v8_output_dir/client_or_service_worker_or_message_port.cc",
- "$bindings_modules_v8_output_dir/client_or_service_worker_or_message_port.h",
- "$bindings_modules_v8_output_dir/document_timeline_or_scroll_timeline.cc",
- "$bindings_modules_v8_output_dir/document_timeline_or_scroll_timeline.h",
- "$bindings_modules_v8_output_dir/dom_exception_or_overconstrained_error.cc",
- "$bindings_modules_v8_output_dir/dom_exception_or_overconstrained_error.h",
- "$bindings_modules_v8_output_dir/double_or_constrain_double_range.cc",
- "$bindings_modules_v8_output_dir/double_or_constrain_double_range.h",
- "$bindings_modules_v8_output_dir/double_sequence_or_gpu_color_dict.cc",
- "$bindings_modules_v8_output_dir/double_sequence_or_gpu_color_dict.h",
- "$bindings_modules_v8_output_dir/encoded_audio_chunk_or_encoded_video_chunk.cc",
- "$bindings_modules_v8_output_dir/encoded_audio_chunk_or_encoded_video_chunk.h",
- "$bindings_modules_v8_output_dir/encoded_av_chunk_sequence_or_encoded_av_chunk.cc",
- "$bindings_modules_v8_output_dir/encoded_av_chunk_sequence_or_encoded_av_chunk.h",
- "$bindings_modules_v8_output_dir/float32_array_or_float64_array_or_dom_matrix.cc",
- "$bindings_modules_v8_output_dir/float32_array_or_float64_array_or_dom_matrix.h",
- "$bindings_modules_v8_output_dir/gpu_buffer_or_array_buffer.cc",
- "$bindings_modules_v8_output_dir/gpu_buffer_or_array_buffer.h",
- "$bindings_modules_v8_output_dir/gpu_load_op_or_double_sequence_or_gpu_color_dict.cc",
- "$bindings_modules_v8_output_dir/gpu_load_op_or_double_sequence_or_gpu_color_dict.h",
- "$bindings_modules_v8_output_dir/gpu_load_op_or_float.cc",
- "$bindings_modules_v8_output_dir/gpu_load_op_or_float.h",
- "$bindings_modules_v8_output_dir/gpu_load_op_or_unsigned_long_enforce_range.cc",
- "$bindings_modules_v8_output_dir/gpu_load_op_or_unsigned_long_enforce_range.h",
- "$bindings_modules_v8_output_dir/gpu_out_of_memory_error_or_gpu_validation_error.cc",
- "$bindings_modules_v8_output_dir/gpu_out_of_memory_error_or_gpu_validation_error.h",
- "$bindings_modules_v8_output_dir/gpu_sampler_or_gpu_texture_view_or_gpu_buffer_binding.cc",
- "$bindings_modules_v8_output_dir/gpu_sampler_or_gpu_texture_view_or_gpu_buffer_binding.h",
- "$bindings_modules_v8_output_dir/html_canvas_element_or_offscreen_canvas.cc",
- "$bindings_modules_v8_output_dir/html_canvas_element_or_offscreen_canvas.h",
- "$bindings_modules_v8_output_dir/idb_object_store_or_idb_index.cc",
- "$bindings_modules_v8_output_dir/idb_object_store_or_idb_index.h",
- "$bindings_modules_v8_output_dir/idb_object_store_or_idb_index_or_idb_cursor.cc",
- "$bindings_modules_v8_output_dir/idb_object_store_or_idb_index_or_idb_cursor.h",
- "$bindings_modules_v8_output_dir/image_bitmap_source.cc",
- "$bindings_modules_v8_output_dir/image_bitmap_source.h",
- "$bindings_modules_v8_output_dir/int32_array_or_long_sequence.cc",
- "$bindings_modules_v8_output_dir/int32_array_or_long_sequence.h",
- "$bindings_modules_v8_output_dir/long_or_constrain_long_range.cc",
- "$bindings_modules_v8_output_dir/long_or_constrain_long_range.h",
- "$bindings_modules_v8_output_dir/media_stream_track_or_string.cc",
- "$bindings_modules_v8_output_dir/media_stream_track_or_string.h",
- "$bindings_modules_v8_output_dir/object_or_string.cc",
- "$bindings_modules_v8_output_dir/object_or_string.h",
- "$bindings_modules_v8_output_dir/offscreen_rendering_context.cc",
- "$bindings_modules_v8_output_dir/offscreen_rendering_context.h",
- "$bindings_modules_v8_output_dir/password_credential_data_or_html_form_element.cc",
- "$bindings_modules_v8_output_dir/password_credential_data_or_html_form_element.h",
- "$bindings_modules_v8_output_dir/path_2d_or_string.cc",
- "$bindings_modules_v8_output_dir/path_2d_or_string.h",
- "$bindings_modules_v8_output_dir/point_2d_sequence_or_constrain_point_2d_parameters.cc",
- "$bindings_modules_v8_output_dir/point_2d_sequence_or_constrain_point_2d_parameters.h",
- "$bindings_modules_v8_output_dir/readable_stream_or_xml_http_request_body_init.cc",
- "$bindings_modules_v8_output_dir/readable_stream_or_xml_http_request_body_init.h",
- "$bindings_modules_v8_output_dir/rendering_context.cc",
- "$bindings_modules_v8_output_dir/rendering_context.h",
- "$bindings_modules_v8_output_dir/request_or_usv_string_or_request_or_usv_string_sequence.cc",
- "$bindings_modules_v8_output_dir/request_or_usv_string_or_request_or_usv_string_sequence.h",
- "$bindings_modules_v8_output_dir/string_or_array_buffer_or_array_buffer_view_or_ndef_message_init.cc",
- "$bindings_modules_v8_output_dir/string_or_array_buffer_or_array_buffer_view_or_ndef_message_init.h",
- "$bindings_modules_v8_output_dir/string_or_canvas_filter.cc",
- "$bindings_modules_v8_output_dir/string_or_canvas_filter.h",
- "$bindings_modules_v8_output_dir/string_or_canvas_gradient_or_canvas_pattern_or_css_color_value.cc",
- "$bindings_modules_v8_output_dir/string_or_canvas_gradient_or_canvas_pattern_or_css_color_value.h",
- "$bindings_modules_v8_output_dir/string_or_document_fragment_or_document.cc",
- "$bindings_modules_v8_output_dir/string_or_document_fragment_or_document.h",
- "$bindings_modules_v8_output_dir/string_or_string_sequence_or_constrain_dom_string_parameters.cc",
- "$bindings_modules_v8_output_dir/string_or_string_sequence_or_constrain_dom_string_parameters.h",
- "$bindings_modules_v8_output_dir/string_or_trusted_html_or_document_fragment_or_document.cc",
- "$bindings_modules_v8_output_dir/string_or_trusted_html_or_document_fragment_or_document.h",
- "$bindings_modules_v8_output_dir/string_or_unsigned_long.cc",
- "$bindings_modules_v8_output_dir/string_or_unsigned_long.h",
- "$bindings_modules_v8_output_dir/uint32_array_or_unsigned_long_sequence.cc",
- "$bindings_modules_v8_output_dir/uint32_array_or_unsigned_long_sequence.h",
- "$bindings_modules_v8_output_dir/unrestricted_double_or_dom_point.h",
- "$bindings_modules_v8_output_dir/unrestricted_double_or_dom_point.cc",
- "$bindings_modules_v8_output_dir/unsigned_long_or_unsigned_long_sequence.cc",
- "$bindings_modules_v8_output_dir/unsigned_long_or_unsigned_long_sequence.h",
- "$bindings_modules_v8_output_dir/unsigned_long_enforce_range_sequence_or_gpu_extent_3d_dict.cc",
- "$bindings_modules_v8_output_dir/unsigned_long_enforce_range_sequence_or_gpu_extent_3d_dict.h",
- "$bindings_modules_v8_output_dir/unsigned_long_enforce_range_sequence_or_gpu_origin_2d_dict.cc",
- "$bindings_modules_v8_output_dir/unsigned_long_enforce_range_sequence_or_gpu_origin_2d_dict.h",
- "$bindings_modules_v8_output_dir/unsigned_long_enforce_range_sequence_or_gpu_origin_3d_dict.cc",
- "$bindings_modules_v8_output_dir/unsigned_long_enforce_range_sequence_or_gpu_origin_3d_dict.h",
- "$bindings_modules_v8_output_dir/usv_string_or_uint32_array.cc",
- "$bindings_modules_v8_output_dir/usv_string_or_uint32_array.h",
- "$bindings_modules_v8_output_dir/usv_string_or_url_pattern_init.cc",
- "$bindings_modules_v8_output_dir/usv_string_or_url_pattern_init.h",
- "$bindings_modules_v8_output_dir/usv_string_or_usv_string_sequence.cc",
- "$bindings_modules_v8_output_dir/usv_string_or_usv_string_sequence.h",
- "$bindings_modules_v8_output_dir/webgl_rendering_context_or_webgl2_rendering_context.cc",
- "$bindings_modules_v8_output_dir/webgl_rendering_context_or_webgl2_rendering_context.h",
- "$bindings_modules_v8_output_dir/well_known_directory_or_file_system_handle.cc",
- "$bindings_modules_v8_output_dir/well_known_directory_or_file_system_handle.h",
- "$bindings_modules_v8_output_dir/worklet_animation_effect_or_worklet_group_effect.cc",
- "$bindings_modules_v8_output_dir/worklet_animation_effect_or_worklet_group_effect.h",
-]
-
-generated_modules_callback_function_files = [
- "$bindings_modules_v8_output_dir/v8_animate_callback.cc",
- "$bindings_modules_v8_output_dir/v8_animate_callback.h",
- "$bindings_modules_v8_output_dir/v8_animator_constructor.cc",
- "$bindings_modules_v8_output_dir/v8_animator_constructor.h",
- "$bindings_modules_v8_output_dir/v8_audio_data_output_callback.cc",
- "$bindings_modules_v8_output_dir/v8_audio_data_output_callback.h",
- "$bindings_modules_v8_output_dir/v8_blink_audio_worklet_process_callback.cc",
- "$bindings_modules_v8_output_dir/v8_blink_audio_worklet_process_callback.h",
- "$bindings_modules_v8_output_dir/v8_blink_audio_worklet_processor_constructor.cc",
- "$bindings_modules_v8_output_dir/v8_blink_audio_worklet_processor_constructor.h",
- "$bindings_modules_v8_output_dir/v8_database_callback.cc",
- "$bindings_modules_v8_output_dir/v8_database_callback.h",
- "$bindings_modules_v8_output_dir/v8_decode_error_callback.cc",
- "$bindings_modules_v8_output_dir/v8_decode_error_callback.h",
- "$bindings_modules_v8_output_dir/v8_decode_success_callback.cc",
- "$bindings_modules_v8_output_dir/v8_decode_success_callback.h",
- "$bindings_modules_v8_output_dir/v8_encoded_audio_chunk_output_callback.cc",
- "$bindings_modules_v8_output_dir/v8_encoded_audio_chunk_output_callback.h",
- "$bindings_modules_v8_output_dir/v8_launch_consumer.cc",
- "$bindings_modules_v8_output_dir/v8_launch_consumer.h",
- "$bindings_modules_v8_output_dir/v8_lock_granted_callback.cc",
- "$bindings_modules_v8_output_dir/v8_lock_granted_callback.h",
- "$bindings_modules_v8_output_dir/v8_media_session_action_handler.cc",
- "$bindings_modules_v8_output_dir/v8_media_session_action_handler.h",
- "$bindings_modules_v8_output_dir/v8_navigator_user_media_error_callback.cc",
- "$bindings_modules_v8_output_dir/v8_navigator_user_media_error_callback.h",
- "$bindings_modules_v8_output_dir/v8_navigator_user_media_success_callback.cc",
- "$bindings_modules_v8_output_dir/v8_navigator_user_media_success_callback.h",
- "$bindings_modules_v8_output_dir/v8_notification_permission_callback.cc",
- "$bindings_modules_v8_output_dir/v8_notification_permission_callback.h",
- "$bindings_modules_v8_output_dir/v8_paint_callback.cc",
- "$bindings_modules_v8_output_dir/v8_paint_callback.h",
- "$bindings_modules_v8_output_dir/v8_position_callback.cc",
- "$bindings_modules_v8_output_dir/v8_position_callback.h",
- "$bindings_modules_v8_output_dir/v8_position_error_callback.cc",
- "$bindings_modules_v8_output_dir/v8_position_error_callback.h",
- "$bindings_modules_v8_output_dir/v8_remote_playback_availability_callback.cc",
- "$bindings_modules_v8_output_dir/v8_remote_playback_availability_callback.h",
- "$bindings_modules_v8_output_dir/v8_rtc_peer_connection_error_callback.cc",
- "$bindings_modules_v8_output_dir/v8_rtc_peer_connection_error_callback.h",
- "$bindings_modules_v8_output_dir/v8_rtc_session_description_callback.cc",
- "$bindings_modules_v8_output_dir/v8_rtc_session_description_callback.h",
- "$bindings_modules_v8_output_dir/v8_rtc_stats_callback.cc",
- "$bindings_modules_v8_output_dir/v8_rtc_stats_callback.h",
- "$bindings_modules_v8_output_dir/v8_state_callback.cc",
- "$bindings_modules_v8_output_dir/v8_state_callback.h",
- "$bindings_modules_v8_output_dir/v8_storage_error_callback.cc",
- "$bindings_modules_v8_output_dir/v8_storage_error_callback.h",
- "$bindings_modules_v8_output_dir/v8_storage_quota_callback.cc",
- "$bindings_modules_v8_output_dir/v8_storage_quota_callback.h",
- "$bindings_modules_v8_output_dir/v8_storage_usage_callback.cc",
- "$bindings_modules_v8_output_dir/v8_storage_usage_callback.h",
- "$bindings_modules_v8_output_dir/v8_video_encoder_output_callback.cc",
- "$bindings_modules_v8_output_dir/v8_video_encoder_output_callback.h",
- "$bindings_modules_v8_output_dir/v8_video_frame_output_callback.cc",
- "$bindings_modules_v8_output_dir/v8_video_frame_output_callback.h",
- "$bindings_modules_v8_output_dir/v8_video_frame_request_callback.cc",
- "$bindings_modules_v8_output_dir/v8_video_frame_request_callback.h",
- "$bindings_modules_v8_output_dir/v8_webcodecs_error_callback.cc",
- "$bindings_modules_v8_output_dir/v8_webcodecs_error_callback.h",
- "$bindings_modules_v8_output_dir/v8_xr_frame_request_callback.cc",
- "$bindings_modules_v8_output_dir/v8_xr_frame_request_callback.h",
-]
-
-bindings_generated_v8_context_snapshot_external_references_file =
- "$bindings_modules_v8_output_dir/v8_context_snapshot_external_references.cc"
diff --git a/chromium/third_party/blink/renderer/bindings/modules/v8/module_bindings_initializer.cc b/chromium/third_party/blink/renderer/bindings/modules/v8/module_bindings_initializer.cc
index 50af0c81717..c9e00f023d5 100644
--- a/chromium/third_party/blink/renderer/bindings/modules/v8/module_bindings_initializer.cc
+++ b/chromium/third_party/blink/renderer/bindings/modules/v8/module_bindings_initializer.cc
@@ -4,34 +4,20 @@
#include "third_party/blink/renderer/bindings/modules/v8/module_bindings_initializer.h"
-#include "third_party/blink/renderer/bindings/modules/v8/serialization/serialized_script_value_for_modules_factory.h"
-
-#if defined(USE_BLINK_V8_BINDING_NEW_IDL_INTERFACE)
#include "third_party/blink/renderer/bindings/modules/v8/init_idl_interfaces.h"
#include "third_party/blink/renderer/bindings/modules/v8/properties_per_feature_installer.h"
+#include "third_party/blink/renderer/bindings/modules/v8/serialization/serialized_script_value_for_modules_factory.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_context_snapshot_impl.h"
#include "third_party/blink/renderer/platform/bindings/origin_trial_features.h"
-#else
-#include "third_party/blink/renderer/bindings/modules/v8/origin_trial_features_for_modules.h"
-#endif
namespace blink {
-// initPartialInterfacesInModules is generated by
-// generate_init_partial_interfaces.py.
-void InitPartialInterfacesInModules();
-
void ModuleBindingsInitializer::Init() {
-#if defined(USE_BLINK_V8_BINDING_NEW_IDL_INTERFACE)
bindings::InitIDLInterfaces();
auto* old_installer =
SetInstallPropertiesPerFeatureFunc(bindings::InstallPropertiesPerFeature);
CHECK(!old_installer);
V8ContextSnapshotImpl::Init();
-#else
- RegisterInstallOriginTrialFeaturesForModules();
- InitPartialInterfacesInModules();
-#endif
SerializedScriptValueFactory::Initialize(
new SerializedScriptValueForModulesFactory);
}
diff --git a/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_deserializer_for_modules.cc b/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_deserializer_for_modules.cc
index 91b621dd7be..05f72e22e5f 100644
--- a/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_deserializer_for_modules.cc
+++ b/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_deserializer_for_modules.cc
@@ -25,6 +25,9 @@
#include "third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_delegate.h"
#include "third_party/blink/renderer/modules/webcodecs/audio_data.h"
#include "third_party/blink/renderer/modules/webcodecs/audio_data_attachment.h"
+#include "third_party/blink/renderer/modules/webcodecs/decoder_buffer_attachment.h"
+#include "third_party/blink/renderer/modules/webcodecs/encoded_audio_chunk.h"
+#include "third_party/blink/renderer/modules/webcodecs/encoded_video_chunk.h"
#include "third_party/blink/renderer/modules/webcodecs/video_frame.h"
#include "third_party/blink/renderer/modules/webcodecs/video_frame_attachment.h"
@@ -82,6 +85,10 @@ ScriptWrappable* V8ScriptValueDeserializerForModules::ReadDOMObject(
return ReadAudioData();
case kVideoFrameTag:
return ReadVideoFrame();
+ case kEncodedAudioChunkTag:
+ return ReadEncodedAudioChunk();
+ case kEncodedVideoChunkTag:
+ return ReadEncodedVideoChunk();
default:
break;
}
@@ -467,4 +474,52 @@ VideoFrame* V8ScriptValueDeserializerForModules::ReadVideoFrame() {
return MakeGarbageCollected<VideoFrame>(handles[index]);
}
+EncodedAudioChunk*
+V8ScriptValueDeserializerForModules::ReadEncodedAudioChunk() {
+ if (!RuntimeEnabledFeatures::WebCodecsEnabled(
+ ExecutionContext::From(GetScriptState()))) {
+ return nullptr;
+ }
+
+ uint32_t index;
+ if (!ReadUint32(&index))
+ return nullptr;
+
+ const auto* attachment =
+ GetSerializedScriptValue()
+ ->GetAttachmentIfExists<DecoderBufferAttachment>();
+ if (!attachment)
+ return nullptr;
+
+ const auto& buffers = attachment->Buffers();
+ if (index >= attachment->size())
+ return nullptr;
+
+ return MakeGarbageCollected<EncodedAudioChunk>(buffers[index]);
+}
+
+EncodedVideoChunk*
+V8ScriptValueDeserializerForModules::ReadEncodedVideoChunk() {
+ if (!RuntimeEnabledFeatures::WebCodecsEnabled(
+ ExecutionContext::From(GetScriptState()))) {
+ return nullptr;
+ }
+
+ uint32_t index;
+ if (!ReadUint32(&index))
+ return nullptr;
+
+ const auto* attachment =
+ GetSerializedScriptValue()
+ ->GetAttachmentIfExists<DecoderBufferAttachment>();
+ if (!attachment)
+ return nullptr;
+
+ const auto& buffers = attachment->Buffers();
+ if (index >= attachment->size())
+ return nullptr;
+
+ return MakeGarbageCollected<EncodedVideoChunk>(buffers[index]);
+}
+
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_deserializer_for_modules.h b/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_deserializer_for_modules.h
index bcab84578ea..2e2e0776e4a 100644
--- a/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_deserializer_for_modules.h
+++ b/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_deserializer_for_modules.h
@@ -12,6 +12,8 @@ namespace blink {
class AudioData;
class CryptoKey;
+class EncodedAudioChunk;
+class EncodedVideoChunk;
class FileSystemHandle;
class RTCEncodedAudioFrame;
class RTCEncodedVideoFrame;
@@ -52,6 +54,8 @@ class MODULES_EXPORT V8ScriptValueDeserializerForModules final
RTCEncodedVideoFrame* ReadRTCEncodedVideoFrame();
AudioData* ReadAudioData();
VideoFrame* ReadVideoFrame();
+ EncodedAudioChunk* ReadEncodedAudioChunk();
+ EncodedVideoChunk* ReadEncodedVideoChunk();
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.cc b/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.cc
index 5eb90a3f9f9..fc61325d21d 100644
--- a/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.cc
+++ b/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.cc
@@ -14,6 +14,8 @@
#include "third_party/blink/renderer/bindings/modules/v8/v8_audio_data.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_crypto_key.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_dom_file_system.h"
+#include "third_party/blink/renderer/bindings/modules/v8/v8_encoded_audio_chunk.h"
+#include "third_party/blink/renderer/bindings/modules/v8/v8_encoded_video_chunk.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_file_system_directory_handle.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_file_system_file_handle.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_landmark.h"
@@ -28,6 +30,9 @@
#include "third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_delegate.h"
#include "third_party/blink/renderer/modules/webcodecs/audio_data.h"
#include "third_party/blink/renderer/modules/webcodecs/audio_data_attachment.h"
+#include "third_party/blink/renderer/modules/webcodecs/decoder_buffer_attachment.h"
+#include "third_party/blink/renderer/modules/webcodecs/encoded_audio_chunk.h"
+#include "third_party/blink/renderer/modules/webcodecs/encoded_video_chunk.h"
#include "third_party/blink/renderer/modules/webcodecs/video_frame.h"
#include "third_party/blink/renderer/modules/webcodecs/video_frame_attachment.h"
#include "third_party/blink/renderer/modules/webcodecs/video_frame_transfer_list.h"
@@ -175,6 +180,25 @@ bool V8ScriptValueSerializerForModules::WriteDOMObject(
}
return WriteMediaAudioBuffer(std::move(data));
}
+ if ((wrapper_type_info == V8EncodedAudioChunk::GetWrapperTypeInfo() ||
+ wrapper_type_info == V8EncodedVideoChunk::GetWrapperTypeInfo()) &&
+ RuntimeEnabledFeatures::WebCodecsEnabled(
+ ExecutionContext::From(GetScriptState()))) {
+ if (IsForStorage()) {
+ exception_state.ThrowDOMException(
+ DOMExceptionCode::kDataCloneError,
+ "Encoded chunks cannot be serialized for storage.");
+ return false;
+ }
+
+ if (wrapper_type_info == V8EncodedAudioChunk::GetWrapperTypeInfo()) {
+ auto data = wrappable->ToImpl<EncodedAudioChunk>()->buffer();
+ return WriteDecoderBuffer(std::move(data), /*for_audio=*/true);
+ }
+
+ auto data = wrappable->ToImpl<EncodedVideoChunk>()->buffer();
+ return WriteDecoderBuffer(std::move(data), /*for_audio=*/false);
+ }
return false;
}
@@ -429,4 +453,19 @@ bool V8ScriptValueSerializerForModules::WriteMediaAudioBuffer(
return true;
}
+bool V8ScriptValueSerializerForModules::WriteDecoderBuffer(
+ scoped_refptr<media::DecoderBuffer> data,
+ bool for_audio) {
+ auto* attachment = GetSerializedScriptValue()
+ ->GetOrCreateAttachment<DecoderBufferAttachment>();
+ auto& buffers = attachment->Buffers();
+ buffers.push_back(std::move(data));
+ const uint32_t index = static_cast<uint32_t>(buffers.size() - 1);
+
+ WriteTag(for_audio ? kEncodedAudioChunkTag : kEncodedVideoChunkTag);
+ WriteUint32(index);
+
+ return true;
+}
+
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.h b/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.h
index a31e39f8972..b0566a33d6b 100644
--- a/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.h
+++ b/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.h
@@ -12,6 +12,7 @@
namespace media {
class AudioBuffer;
+class DecoderBuffer;
}
namespace blink {
@@ -50,6 +51,8 @@ class MODULES_EXPORT V8ScriptValueSerializerForModules final
bool WriteRTCEncodedVideoFrame(RTCEncodedVideoFrame*);
bool WriteVideoFrameHandle(scoped_refptr<VideoFrameHandle>);
bool WriteMediaAudioBuffer(scoped_refptr<media::AudioBuffer>);
+ bool WriteDecoderBuffer(scoped_refptr<media::DecoderBuffer> data,
+ bool for_audio);
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules_test.cc b/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules_test.cc
index d0692e169a5..f3b9ef4c042 100644
--- a/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules_test.cc
+++ b/chromium/third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules_test.cc
@@ -11,15 +11,18 @@
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h"
#include "third_party/blink/public/platform/web_crypto_algorithm_params.h"
+#include "third_party/blink/renderer/bindings/core/v8/dictionary.h"
#include "third_party/blink/renderer/bindings/core/v8/script_function.h"
#include "third_party/blink/renderer/bindings/core/v8/script_value.h"
#include "third_party/blink/renderer/bindings/core/v8/to_v8_for_core.h"
-#include "third_party/blink/renderer/bindings/core/v8/v8_array_buffer.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_dom_exception.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_dom_rect_read_only.h"
+#include "third_party/blink/renderer/bindings/core/v8/v8_typedefs.h"
+#include "third_party/blink/renderer/bindings/core/v8/v8_union_arraybuffer_arraybufferview.h"
#include "third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_deserializer_for_modules.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_audio_data.h"
+#include "third_party/blink/renderer/bindings/modules/v8/v8_audio_data_copy_to_options.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_crypto_key.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_dom_file_system.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_certificate.h"
@@ -29,6 +32,7 @@
#include "third_party/blink/renderer/modules/filesystem/dom_file_system.h"
#include "third_party/blink/renderer/modules/peerconnection/rtc_certificate.h"
#include "third_party/blink/renderer/modules/peerconnection/rtc_certificate_generator.h"
+#include "third_party/blink/renderer/modules/webcodecs/allow_shared_buffer_source_util.h"
#include "third_party/blink/renderer/modules/webcodecs/audio_data.h"
#include "third_party/blink/renderer/modules/webcodecs/video_frame.h"
#include "third_party/blink/renderer/modules/webcodecs/video_frame_transfer_list.h"
@@ -265,8 +269,9 @@ WebVector<unsigned char> ConvertCryptoResult<WebVector<unsigned char>>(
v8::Isolate* isolate,
const ScriptValue& value) {
WebVector<unsigned char> vector;
- if (DOMArrayBuffer* buffer =
- V8ArrayBuffer::ToImplWithTypeCheck(isolate, value.V8Value())) {
+ DummyExceptionStateForTesting exception_state;
+ if (DOMArrayBuffer* buffer = NativeValueTraits<DOMArrayBuffer>::NativeValue(
+ isolate, value.V8Value(), exception_state)) {
vector.Assign(reinterpret_cast<const unsigned char*>(buffer->Data()),
buffer->ByteLength());
}
@@ -1086,13 +1091,13 @@ TEST(V8ScriptValueSerializerForModulesTest, RoundTripAudioData) {
auto audio_bus = media::AudioBus::Create(kChannels, kFrames);
- // Populate each frame with a unique value.
- const unsigned kTotalFrames = (kFrames * kChannels);
- const float kFramesMultiplier = 1.0 / kTotalFrames;
+ // Populate each sample with a unique value.
+ const unsigned kTotalSamples = (kFrames * kChannels);
+ const float kSampleMultiplier = 1.0 / kTotalSamples;
for (unsigned ch = 0; ch < kChannels; ++ch) {
float* data = audio_bus->channel(ch);
for (unsigned i = 0; i < kFrames; ++i)
- data[i] = (i + ch * kFrames) * kFramesMultiplier;
+ data[i] = (i + ch * kFrames) * kSampleMultiplier;
}
// Copying the data from an AudioBus instead of creating a media::AudioBuffer
@@ -1108,29 +1113,39 @@ TEST(V8ScriptValueSerializerForModulesTest, RoundTripAudioData) {
v8::Local<v8::Value> result = RoundTripForModules(wrapper, scope);
// The data should have been copied, not transferred.
- EXPECT_TRUE(audio_data->buffer());
+ EXPECT_TRUE(audio_data->data());
ASSERT_TRUE(V8AudioData::HasInstance(result, scope.GetIsolate()));
AudioData* new_data = V8AudioData::ToImpl(result.As<v8::Object>());
EXPECT_EQ(base::TimeDelta::FromMicroseconds(new_data->timestamp()),
kTimestamp);
- EXPECT_EQ(new_data->buffer()->numberOfChannels(), kChannels);
- EXPECT_EQ(new_data->buffer()->sampleRate(), kSampleRate);
- EXPECT_EQ(new_data->buffer()->length(), kFrames);
-
- // Make sure the data wasn't changed during the transfer.
- for (unsigned ch = 0; ch < kChannels; ++ch) {
- float* src_data = audio_data->buffer()->getChannelData(ch)->Data();
- float* dst_data = new_data->buffer()->getChannelData(ch)->Data();
- for (unsigned i = 0; i < kFrames; ++i) {
- EXPECT_EQ(src_data[i], dst_data[i]);
- }
+ EXPECT_EQ(new_data->numberOfChannels(), kChannels);
+ EXPECT_EQ(new_data->numberOfFrames(), kFrames);
+ EXPECT_EQ(new_data->sampleRate(), kSampleRate);
+
+ // Copy out the frames to make sure they haven't been changed during the
+ // transfer.
+ DOMArrayBuffer* copy_dest = DOMArrayBuffer::Create(kFrames, sizeof(float));
+ AllowSharedBufferSource* dest =
+ MakeGarbageCollected<AllowSharedBufferSource>(copy_dest);
+ AudioDataCopyToOptions* options =
+ MakeGarbageCollected<AudioDataCopyToOptions>();
+
+ for (unsigned int ch = 0; ch < kChannels; ++ch) {
+ options->setPlaneIndex(ch);
+ new_data->copyTo(dest, options, scope.GetExceptionState());
+ EXPECT_FALSE(scope.GetExceptionState().HadException());
+
+ float* new_samples = static_cast<float*>(copy_dest->Data());
+
+ for (unsigned int i = 0; i < kFrames; ++i)
+ ASSERT_EQ(new_samples[i], (i + ch * kFrames) * kSampleMultiplier);
}
// Closing the original |audio_data| should not affect |new_data|.
audio_data->close();
- EXPECT_TRUE(new_data->buffer());
+ EXPECT_TRUE(new_data->data());
}
TEST(V8ScriptValueSerializerForModulesTest, ClosedAudioDataThrows) {
diff --git a/chromium/third_party/blink/renderer/bindings/modules/v8/v8.gni b/chromium/third_party/blink/renderer/bindings/modules/v8/v8.gni
deleted file mode 100644
index fc1351072c5..00000000000
--- a/chromium/third_party/blink/renderer/bindings/modules/v8/v8.gni
+++ /dev/null
@@ -1,42 +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.
-
-import("//third_party/blink/renderer/config.gni")
-import("custom/custom.gni")
-
-# Make the files absolute so they can be imported to anywhere.
-bindings_modules_v8_files =
- get_path_info(
- [
- "module_bindings_initializer.cc",
- "module_bindings_initializer.h",
- "serialization/serialized_script_value_for_modules_factory.cc",
- "serialization/serialized_script_value_for_modules_factory.h",
- "serialization/v8_script_value_deserializer_for_modules.cc",
- "serialization/v8_script_value_deserializer_for_modules.h",
- "serialization/v8_script_value_serializer_for_modules.cc",
- "serialization/v8_script_value_serializer_for_modules.h",
- "to_v8_for_modules.h",
- "v8_binding_for_modules.cc",
- "v8_binding_for_modules.h",
- "v8_context_snapshot_external_references.h",
- "webgl_any.cc",
- "webgl_any.h",
- ],
- "abspath") + bindings_modules_v8_custom_files
-if (use_blink_v8_binding_new_idl_interface) {
- bindings_modules_v8_files += get_path_info([
- "v8_context_snapshot_impl.cc",
- "v8_context_snapshot_impl.h",
- ],
- "abspath")
-}
-
-bindings_modules_v8_unittest_files =
- get_path_info(
- [
- "serialization/v8_script_value_serializer_for_modules_test.cc",
- "v8_binding_for_modules_test.cc",
- ],
- "abspath")
diff --git a/chromium/third_party/blink/renderer/bindings/modules/v8/v8_binding_for_modules.cc b/chromium/third_party/blink/renderer/bindings/modules/v8/v8_binding_for_modules.cc
index ab4e9b10afe..6ee74b880b2 100644
--- a/chromium/third_party/blink/renderer/bindings/modules/v8/v8_binding_for_modules.cc
+++ b/chromium/third_party/blink/renderer/bindings/modules/v8/v8_binding_for_modules.cc
@@ -27,15 +27,13 @@
#include "third_party/blink/public/common/indexeddb/indexeddb_key.h"
#include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-blink.h"
+#include "third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h"
#include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h"
#include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_factory.h"
-#include "third_party/blink/renderer/bindings/core/v8/v8_array_buffer.h"
-#include "third_party/blink/renderer/bindings/core/v8/v8_array_buffer_view.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_blob.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_dom_string_list.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_file.h"
-#include "third_party/blink/renderer/bindings/core/v8/v8_uint8_array.h"
#include "third_party/blink/renderer/bindings/modules/v8/to_v8_for_modules.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_idb_cursor.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_idb_cursor_with_value.h"
@@ -189,7 +187,10 @@ static std::unique_ptr<IDBKey> CreateIDBKeyFromSimpleValue(
return IDBKey::CreateDate(value.As<v8::Date>()->ValueOf());
if (value->IsArrayBuffer()) {
- DOMArrayBuffer* buffer = V8ArrayBuffer::ToImpl(value.As<v8::Object>());
+ DOMArrayBuffer* buffer = NativeValueTraits<DOMArrayBuffer>::NativeValue(
+ isolate, value, exception_state);
+ if (exception_state.HadException())
+ return IDBKey::CreateInvalid();
if (buffer->IsDetached()) {
exception_state.ThrowTypeError("The ArrayBuffer is detached.");
return IDBKey::CreateInvalid();
@@ -201,7 +202,11 @@ static std::unique_ptr<IDBKey> CreateIDBKeyFromSimpleValue(
if (value->IsArrayBufferView()) {
DOMArrayBufferView* view =
- V8ArrayBufferView::ToImpl(value.As<v8::Object>());
+ NativeValueTraits<MaybeShared<DOMArrayBufferView>>::NativeValue(
+ isolate, value, exception_state)
+ .Get();
+ if (exception_state.HadException())
+ return IDBKey::CreateInvalid();
if (view->buffer()->IsDetached()) {
exception_state.ThrowTypeError("The viewed ArrayBuffer is detached.");
return IDBKey::CreateInvalid();
diff --git a/chromium/third_party/blink/renderer/bindings/modules/v8/v8_context_snapshot_external_references.h b/chromium/third_party/blink/renderer/bindings/modules/v8/v8_context_snapshot_external_references.h
deleted file mode 100644
index ebdc5303673..00000000000
--- a/chromium/third_party/blink/renderer/bindings/modules/v8/v8_context_snapshot_external_references.h
+++ /dev/null
@@ -1,29 +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.
-
-#ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_MODULES_V8_V8_CONTEXT_SNAPSHOT_EXTERNAL_REFERENCES_H_
-#define THIRD_PARTY_BLINK_RENDERER_BINDINGS_MODULES_V8_V8_CONTEXT_SNAPSHOT_EXTERNAL_REFERENCES_H_
-
-#include <cstdint>
-
-#include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
-
-namespace blink {
-
-// V8ContextSnapshotExternalReferences::GetTable() provides a table of pointers
-// of C++ callbacks exposed to V8. The table contains C++ callbacks for DOM
-// attribute getters, setters, DOM methods, wrapper type info etc.
-class MODULES_EXPORT V8ContextSnapshotExternalReferences {
- STATIC_ONLY(V8ContextSnapshotExternalReferences);
-
- public:
- // The definition of this method is auto-generated in
- // v8_context_snapshot_external_references.cc.
- static const intptr_t* GetTable();
-};
-
-} // namespace blink
-
-#endif // THIRD_PARTY_BLINK_RENDERER_BINDINGS_MODULES_V8_V8_CONTEXT_SNAPSHOT_EXTERNAL_REFERENCES_H_