diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/bindings/modules/v8')
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_ |