diff --git a/DEPS b/DEPS index 522223ec3a..e1511bf2cf 100644 --- a/DEPS +++ b/DEPS @@ -2,7 +2,7 @@ gclient_gn_args_from = 'src' vars = { 'chromium_version': - '132.0.6834.0', + '133.0.6846.0', 'node_version': 'v22.9.0', 'nan_version': diff --git a/filenames.libcxx.gni b/filenames.libcxx.gni index e18f728140..6d24c651ac 100644 --- a/filenames.libcxx.gni +++ b/filenames.libcxx.gni @@ -332,6 +332,1025 @@ libcxx_headers = [ "//third_party/libc++/src/include/__cstddef/nullptr_t.h", "//third_party/libc++/src/include/__cstddef/ptrdiff_t.h", "//third_party/libc++/src/include/__cstddef/size_t.h", + "//third_party/libc++/src/include/__cxx03/CMakeLists.txt", + "//third_party/libc++/src/include/__cxx03/__algorithm/adjacent_find.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/all_of.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/any_of.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/binary_search.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/clamp.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/comp.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/comp_ref_type.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/copy_backward.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/copy_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/copy_move_common.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/copy_n.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/count.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/count_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/equal.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/equal_range.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/fill.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/fill_n.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/find.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/find_end.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/find_first_of.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/find_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/find_if_not.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/find_segment_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/fold.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/for_each.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/for_each_n.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/for_each_segment.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/generate.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/generate_n.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/half_positive.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/in_found_result.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/in_fun_result.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/in_in_out_result.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/in_in_result.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/in_out_out_result.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/in_out_result.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/includes.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/inplace_merge.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/is_heap.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/is_heap_until.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/is_partitioned.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/is_permutation.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/is_sorted.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/is_sorted_until.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/iter_swap.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/iterator_operations.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/lexicographical_compare.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/lexicographical_compare_three_way.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/lower_bound.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/make_heap.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/make_projected.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/max.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/max_element.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/merge.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/min.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/min_element.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/min_max_result.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/minmax.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/minmax_element.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/mismatch.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/move.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/move_backward.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/next_permutation.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/none_of.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/nth_element.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/partial_sort.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/partial_sort_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/partition.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/partition_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/partition_point.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/pop_heap.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/prev_permutation.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/pstl.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/push_heap.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_adjacent_find.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_all_of.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_any_of.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_binary_search.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_clamp.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_contains.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_contains_subrange.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_copy_backward.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_copy_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_copy_n.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_count.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_count_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_ends_with.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_equal.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_equal_range.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_fill.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_fill_n.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_end.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_first_of.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_if_not.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_find_last.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_for_each.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_for_each_n.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_generate.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_generate_n.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_includes.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_inplace_merge.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_heap.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_heap_until.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_partitioned.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_permutation.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_sorted.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_is_sorted_until.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_iterator_concept.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_lexicographical_compare.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_lower_bound.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_make_heap.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_max.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_max_element.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_merge.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_min.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_min_element.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_minmax.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_minmax_element.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_mismatch.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_move.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_move_backward.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_next_permutation.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_none_of.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_nth_element.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partial_sort.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partial_sort_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partition.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partition_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_partition_point.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_pop_heap.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_prev_permutation.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_push_heap.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_remove.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_remove_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_remove_copy_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_remove_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_replace.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_replace_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_replace_copy_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_replace_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_reverse.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_reverse_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_rotate.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_rotate_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_sample.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_search.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_search_n.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_set_difference.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_set_intersection.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_set_symmetric_difference.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_set_union.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_shuffle.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_sort.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_sort_heap.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_stable_partition.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_stable_sort.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_starts_with.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_swap_ranges.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_transform.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_unique.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_unique_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/ranges_upper_bound.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/remove.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/remove_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/remove_copy_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/remove_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/replace.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/replace_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/replace_copy_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/replace_if.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/reverse.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/reverse_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/rotate.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/rotate_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/sample.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/search.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/search_n.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/set_difference.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/set_intersection.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/set_symmetric_difference.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/set_union.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/shift_left.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/shift_right.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/shuffle.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/sift_down.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/simd_utils.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/sort.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/sort_heap.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/stable_partition.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/stable_sort.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/swap_ranges.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/three_way_comp_ref_type.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/transform.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/uniform_random_bit_generator_adaptor.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/unique.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/unique_copy.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/unwrap_iter.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/unwrap_range.h", + "//third_party/libc++/src/include/__cxx03/__algorithm/upper_bound.h", + "//third_party/libc++/src/include/__cxx03/__assert", + "//third_party/libc++/src/include/__cxx03/__atomic/aliases.h", + "//third_party/libc++/src/include/__cxx03/__atomic/atomic.h", + "//third_party/libc++/src/include/__cxx03/__atomic/atomic_base.h", + "//third_party/libc++/src/include/__cxx03/__atomic/atomic_flag.h", + "//third_party/libc++/src/include/__cxx03/__atomic/atomic_init.h", + "//third_party/libc++/src/include/__cxx03/__atomic/atomic_lock_free.h", + "//third_party/libc++/src/include/__cxx03/__atomic/atomic_ref.h", + "//third_party/libc++/src/include/__cxx03/__atomic/atomic_sync.h", + "//third_party/libc++/src/include/__cxx03/__atomic/check_memory_order.h", + "//third_party/libc++/src/include/__cxx03/__atomic/contention_t.h", + "//third_party/libc++/src/include/__cxx03/__atomic/cxx_atomic_impl.h", + "//third_party/libc++/src/include/__cxx03/__atomic/fence.h", + "//third_party/libc++/src/include/__cxx03/__atomic/is_always_lock_free.h", + "//third_party/libc++/src/include/__cxx03/__atomic/kill_dependency.h", + "//third_party/libc++/src/include/__cxx03/__atomic/memory_order.h", + "//third_party/libc++/src/include/__cxx03/__atomic/to_gcc_order.h", + "//third_party/libc++/src/include/__cxx03/__bit/bit_cast.h", + "//third_party/libc++/src/include/__cxx03/__bit/bit_ceil.h", + "//third_party/libc++/src/include/__cxx03/__bit/bit_floor.h", + "//third_party/libc++/src/include/__cxx03/__bit/bit_log2.h", + "//third_party/libc++/src/include/__cxx03/__bit/bit_width.h", + "//third_party/libc++/src/include/__cxx03/__bit/blsr.h", + "//third_party/libc++/src/include/__cxx03/__bit/byteswap.h", + "//third_party/libc++/src/include/__cxx03/__bit/countl.h", + "//third_party/libc++/src/include/__cxx03/__bit/countr.h", + "//third_party/libc++/src/include/__cxx03/__bit/endian.h", + "//third_party/libc++/src/include/__cxx03/__bit/has_single_bit.h", + "//third_party/libc++/src/include/__cxx03/__bit/invert_if.h", + "//third_party/libc++/src/include/__cxx03/__bit/popcount.h", + "//third_party/libc++/src/include/__cxx03/__bit/rotate.h", + "//third_party/libc++/src/include/__cxx03/__bit_reference", + "//third_party/libc++/src/include/__cxx03/__charconv/chars_format.h", + "//third_party/libc++/src/include/__cxx03/__charconv/from_chars_integral.h", + "//third_party/libc++/src/include/__cxx03/__charconv/from_chars_result.h", + "//third_party/libc++/src/include/__cxx03/__charconv/tables.h", + "//third_party/libc++/src/include/__cxx03/__charconv/to_chars.h", + "//third_party/libc++/src/include/__cxx03/__charconv/to_chars_base_10.h", + "//third_party/libc++/src/include/__cxx03/__charconv/to_chars_floating_point.h", + "//third_party/libc++/src/include/__cxx03/__charconv/to_chars_integral.h", + "//third_party/libc++/src/include/__cxx03/__charconv/to_chars_result.h", + "//third_party/libc++/src/include/__cxx03/__charconv/traits.h", + "//third_party/libc++/src/include/__cxx03/__chrono/calendar.h", + "//third_party/libc++/src/include/__cxx03/__chrono/concepts.h", + "//third_party/libc++/src/include/__cxx03/__chrono/convert_to_timespec.h", + "//third_party/libc++/src/include/__cxx03/__chrono/convert_to_tm.h", + "//third_party/libc++/src/include/__cxx03/__chrono/day.h", + "//third_party/libc++/src/include/__cxx03/__chrono/duration.h", + "//third_party/libc++/src/include/__cxx03/__chrono/exception.h", + "//third_party/libc++/src/include/__cxx03/__chrono/file_clock.h", + "//third_party/libc++/src/include/__cxx03/__chrono/formatter.h", + "//third_party/libc++/src/include/__cxx03/__chrono/hh_mm_ss.h", + "//third_party/libc++/src/include/__cxx03/__chrono/high_resolution_clock.h", + "//third_party/libc++/src/include/__cxx03/__chrono/leap_second.h", + "//third_party/libc++/src/include/__cxx03/__chrono/literals.h", + "//third_party/libc++/src/include/__cxx03/__chrono/local_info.h", + "//third_party/libc++/src/include/__cxx03/__chrono/month.h", + "//third_party/libc++/src/include/__cxx03/__chrono/month_weekday.h", + "//third_party/libc++/src/include/__cxx03/__chrono/monthday.h", + "//third_party/libc++/src/include/__cxx03/__chrono/ostream.h", + "//third_party/libc++/src/include/__cxx03/__chrono/parser_std_format_spec.h", + "//third_party/libc++/src/include/__cxx03/__chrono/statically_widen.h", + "//third_party/libc++/src/include/__cxx03/__chrono/steady_clock.h", + "//third_party/libc++/src/include/__cxx03/__chrono/sys_info.h", + "//third_party/libc++/src/include/__cxx03/__chrono/system_clock.h", + "//third_party/libc++/src/include/__cxx03/__chrono/time_point.h", + "//third_party/libc++/src/include/__cxx03/__chrono/time_zone.h", + "//third_party/libc++/src/include/__cxx03/__chrono/time_zone_link.h", + "//third_party/libc++/src/include/__cxx03/__chrono/tzdb.h", + "//third_party/libc++/src/include/__cxx03/__chrono/tzdb_list.h", + "//third_party/libc++/src/include/__cxx03/__chrono/weekday.h", + "//third_party/libc++/src/include/__cxx03/__chrono/year.h", + "//third_party/libc++/src/include/__cxx03/__chrono/year_month.h", + "//third_party/libc++/src/include/__cxx03/__chrono/year_month_day.h", + "//third_party/libc++/src/include/__cxx03/__chrono/year_month_weekday.h", + "//third_party/libc++/src/include/__cxx03/__chrono/zoned_time.h", + "//third_party/libc++/src/include/__cxx03/__compare/common_comparison_category.h", + "//third_party/libc++/src/include/__cxx03/__compare/compare_partial_order_fallback.h", + "//third_party/libc++/src/include/__cxx03/__compare/compare_strong_order_fallback.h", + "//third_party/libc++/src/include/__cxx03/__compare/compare_three_way.h", + "//third_party/libc++/src/include/__cxx03/__compare/compare_three_way_result.h", + "//third_party/libc++/src/include/__cxx03/__compare/compare_weak_order_fallback.h", + "//third_party/libc++/src/include/__cxx03/__compare/is_eq.h", + "//third_party/libc++/src/include/__cxx03/__compare/ordering.h", + "//third_party/libc++/src/include/__cxx03/__compare/partial_order.h", + "//third_party/libc++/src/include/__cxx03/__compare/strong_order.h", + "//third_party/libc++/src/include/__cxx03/__compare/synth_three_way.h", + "//third_party/libc++/src/include/__cxx03/__compare/three_way_comparable.h", + "//third_party/libc++/src/include/__cxx03/__compare/weak_order.h", + "//third_party/libc++/src/include/__cxx03/__concepts/arithmetic.h", + "//third_party/libc++/src/include/__cxx03/__concepts/assignable.h", + "//third_party/libc++/src/include/__cxx03/__concepts/boolean_testable.h", + "//third_party/libc++/src/include/__cxx03/__concepts/class_or_enum.h", + "//third_party/libc++/src/include/__cxx03/__concepts/common_reference_with.h", + "//third_party/libc++/src/include/__cxx03/__concepts/common_with.h", + "//third_party/libc++/src/include/__cxx03/__concepts/constructible.h", + "//third_party/libc++/src/include/__cxx03/__concepts/convertible_to.h", + "//third_party/libc++/src/include/__cxx03/__concepts/copyable.h", + "//third_party/libc++/src/include/__cxx03/__concepts/derived_from.h", + "//third_party/libc++/src/include/__cxx03/__concepts/destructible.h", + "//third_party/libc++/src/include/__cxx03/__concepts/different_from.h", + "//third_party/libc++/src/include/__cxx03/__concepts/equality_comparable.h", + "//third_party/libc++/src/include/__cxx03/__concepts/invocable.h", + "//third_party/libc++/src/include/__cxx03/__concepts/movable.h", + "//third_party/libc++/src/include/__cxx03/__concepts/predicate.h", + "//third_party/libc++/src/include/__cxx03/__concepts/regular.h", + "//third_party/libc++/src/include/__cxx03/__concepts/relation.h", + "//third_party/libc++/src/include/__cxx03/__concepts/same_as.h", + "//third_party/libc++/src/include/__cxx03/__concepts/semiregular.h", + "//third_party/libc++/src/include/__cxx03/__concepts/swappable.h", + "//third_party/libc++/src/include/__cxx03/__concepts/totally_ordered.h", + "//third_party/libc++/src/include/__cxx03/__condition_variable/condition_variable.h", + "//third_party/libc++/src/include/__cxx03/__config", + "//third_party/libc++/src/include/__cxx03/__config_site.in", + "//third_party/libc++/src/include/__cxx03/__configuration/abi.h", + "//third_party/libc++/src/include/__cxx03/__configuration/availability.h", + "//third_party/libc++/src/include/__cxx03/__configuration/compiler.h", + "//third_party/libc++/src/include/__cxx03/__configuration/language.h", + "//third_party/libc++/src/include/__cxx03/__configuration/platform.h", + "//third_party/libc++/src/include/__cxx03/__coroutine/coroutine_handle.h", + "//third_party/libc++/src/include/__cxx03/__coroutine/coroutine_traits.h", + "//third_party/libc++/src/include/__cxx03/__coroutine/noop_coroutine_handle.h", + "//third_party/libc++/src/include/__cxx03/__coroutine/trivial_awaitables.h", + "//third_party/libc++/src/include/__cxx03/__debug_utils/randomize_range.h", + "//third_party/libc++/src/include/__cxx03/__debug_utils/sanitizers.h", + "//third_party/libc++/src/include/__cxx03/__debug_utils/strict_weak_ordering_check.h", + "//third_party/libc++/src/include/__cxx03/__exception/exception.h", + "//third_party/libc++/src/include/__cxx03/__exception/exception_ptr.h", + "//third_party/libc++/src/include/__cxx03/__exception/nested_exception.h", + "//third_party/libc++/src/include/__cxx03/__exception/operations.h", + "//third_party/libc++/src/include/__cxx03/__exception/terminate.h", + "//third_party/libc++/src/include/__cxx03/__expected/bad_expected_access.h", + "//third_party/libc++/src/include/__cxx03/__expected/expected.h", + "//third_party/libc++/src/include/__cxx03/__expected/unexpect.h", + "//third_party/libc++/src/include/__cxx03/__expected/unexpected.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/copy_options.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/directory_entry.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/directory_iterator.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/directory_options.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/file_status.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/file_time_type.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/file_type.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/filesystem_error.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/operations.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/path.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/path_iterator.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/perm_options.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/perms.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/recursive_directory_iterator.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/space_info.h", + "//third_party/libc++/src/include/__cxx03/__filesystem/u8path.h", + "//third_party/libc++/src/include/__cxx03/__format/buffer.h", + "//third_party/libc++/src/include/__cxx03/__format/concepts.h", + "//third_party/libc++/src/include/__cxx03/__format/container_adaptor.h", + "//third_party/libc++/src/include/__cxx03/__format/enable_insertable.h", + "//third_party/libc++/src/include/__cxx03/__format/escaped_output_table.h", + "//third_party/libc++/src/include/__cxx03/__format/extended_grapheme_cluster_table.h", + "//third_party/libc++/src/include/__cxx03/__format/format_arg.h", + "//third_party/libc++/src/include/__cxx03/__format/format_arg_store.h", + "//third_party/libc++/src/include/__cxx03/__format/format_args.h", + "//third_party/libc++/src/include/__cxx03/__format/format_context.h", + "//third_party/libc++/src/include/__cxx03/__format/format_error.h", + "//third_party/libc++/src/include/__cxx03/__format/format_functions.h", + "//third_party/libc++/src/include/__cxx03/__format/format_parse_context.h", + "//third_party/libc++/src/include/__cxx03/__format/format_string.h", + "//third_party/libc++/src/include/__cxx03/__format/format_to_n_result.h", + "//third_party/libc++/src/include/__cxx03/__format/formatter.h", + "//third_party/libc++/src/include/__cxx03/__format/formatter_bool.h", + "//third_party/libc++/src/include/__cxx03/__format/formatter_char.h", + "//third_party/libc++/src/include/__cxx03/__format/formatter_floating_point.h", + "//third_party/libc++/src/include/__cxx03/__format/formatter_integer.h", + "//third_party/libc++/src/include/__cxx03/__format/formatter_integral.h", + "//third_party/libc++/src/include/__cxx03/__format/formatter_output.h", + "//third_party/libc++/src/include/__cxx03/__format/formatter_pointer.h", + "//third_party/libc++/src/include/__cxx03/__format/formatter_string.h", + "//third_party/libc++/src/include/__cxx03/__format/formatter_tuple.h", + "//third_party/libc++/src/include/__cxx03/__format/indic_conjunct_break_table.h", + "//third_party/libc++/src/include/__cxx03/__format/parser_std_format_spec.h", + "//third_party/libc++/src/include/__cxx03/__format/range_default_formatter.h", + "//third_party/libc++/src/include/__cxx03/__format/range_formatter.h", + "//third_party/libc++/src/include/__cxx03/__format/unicode.h", + "//third_party/libc++/src/include/__cxx03/__format/width_estimation_table.h", + "//third_party/libc++/src/include/__cxx03/__format/write_escaped.h", + "//third_party/libc++/src/include/__cxx03/__functional/binary_function.h", + "//third_party/libc++/src/include/__cxx03/__functional/binary_negate.h", + "//third_party/libc++/src/include/__cxx03/__functional/bind.h", + "//third_party/libc++/src/include/__cxx03/__functional/bind_back.h", + "//third_party/libc++/src/include/__cxx03/__functional/bind_front.h", + "//third_party/libc++/src/include/__cxx03/__functional/binder1st.h", + "//third_party/libc++/src/include/__cxx03/__functional/binder2nd.h", + "//third_party/libc++/src/include/__cxx03/__functional/boyer_moore_searcher.h", + "//third_party/libc++/src/include/__cxx03/__functional/compose.h", + "//third_party/libc++/src/include/__cxx03/__functional/default_searcher.h", + "//third_party/libc++/src/include/__cxx03/__functional/function.h", + "//third_party/libc++/src/include/__cxx03/__functional/hash.h", + "//third_party/libc++/src/include/__cxx03/__functional/identity.h", + "//third_party/libc++/src/include/__cxx03/__functional/invoke.h", + "//third_party/libc++/src/include/__cxx03/__functional/is_transparent.h", + "//third_party/libc++/src/include/__cxx03/__functional/mem_fn.h", + "//third_party/libc++/src/include/__cxx03/__functional/mem_fun_ref.h", + "//third_party/libc++/src/include/__cxx03/__functional/not_fn.h", + "//third_party/libc++/src/include/__cxx03/__functional/operations.h", + "//third_party/libc++/src/include/__cxx03/__functional/perfect_forward.h", + "//third_party/libc++/src/include/__cxx03/__functional/pointer_to_binary_function.h", + "//third_party/libc++/src/include/__cxx03/__functional/pointer_to_unary_function.h", + "//third_party/libc++/src/include/__cxx03/__functional/ranges_operations.h", + "//third_party/libc++/src/include/__cxx03/__functional/reference_wrapper.h", + "//third_party/libc++/src/include/__cxx03/__functional/unary_function.h", + "//third_party/libc++/src/include/__cxx03/__functional/unary_negate.h", + "//third_party/libc++/src/include/__cxx03/__functional/weak_result_type.h", + "//third_party/libc++/src/include/__cxx03/__fwd/array.h", + "//third_party/libc++/src/include/__cxx03/__fwd/bit_reference.h", + "//third_party/libc++/src/include/__cxx03/__fwd/complex.h", + "//third_party/libc++/src/include/__cxx03/__fwd/deque.h", + "//third_party/libc++/src/include/__cxx03/__fwd/format.h", + "//third_party/libc++/src/include/__cxx03/__fwd/fstream.h", + "//third_party/libc++/src/include/__cxx03/__fwd/functional.h", + "//third_party/libc++/src/include/__cxx03/__fwd/ios.h", + "//third_party/libc++/src/include/__cxx03/__fwd/istream.h", + "//third_party/libc++/src/include/__cxx03/__fwd/mdspan.h", + "//third_party/libc++/src/include/__cxx03/__fwd/memory.h", + "//third_party/libc++/src/include/__cxx03/__fwd/memory_resource.h", + "//third_party/libc++/src/include/__cxx03/__fwd/ostream.h", + "//third_party/libc++/src/include/__cxx03/__fwd/pair.h", + "//third_party/libc++/src/include/__cxx03/__fwd/queue.h", + "//third_party/libc++/src/include/__cxx03/__fwd/span.h", + "//third_party/libc++/src/include/__cxx03/__fwd/sstream.h", + "//third_party/libc++/src/include/__cxx03/__fwd/stack.h", + "//third_party/libc++/src/include/__cxx03/__fwd/streambuf.h", + "//third_party/libc++/src/include/__cxx03/__fwd/string.h", + "//third_party/libc++/src/include/__cxx03/__fwd/string_view.h", + "//third_party/libc++/src/include/__cxx03/__fwd/subrange.h", + "//third_party/libc++/src/include/__cxx03/__fwd/tuple.h", + "//third_party/libc++/src/include/__cxx03/__fwd/vector.h", + "//third_party/libc++/src/include/__cxx03/__hash_table", + "//third_party/libc++/src/include/__cxx03/__ios/fpos.h", + "//third_party/libc++/src/include/__cxx03/__iterator/access.h", + "//third_party/libc++/src/include/__cxx03/__iterator/advance.h", + "//third_party/libc++/src/include/__cxx03/__iterator/aliasing_iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/back_insert_iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/bounded_iter.h", + "//third_party/libc++/src/include/__cxx03/__iterator/common_iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/concepts.h", + "//third_party/libc++/src/include/__cxx03/__iterator/counted_iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/cpp17_iterator_concepts.h", + "//third_party/libc++/src/include/__cxx03/__iterator/data.h", + "//third_party/libc++/src/include/__cxx03/__iterator/default_sentinel.h", + "//third_party/libc++/src/include/__cxx03/__iterator/distance.h", + "//third_party/libc++/src/include/__cxx03/__iterator/empty.h", + "//third_party/libc++/src/include/__cxx03/__iterator/erase_if_container.h", + "//third_party/libc++/src/include/__cxx03/__iterator/front_insert_iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/incrementable_traits.h", + "//third_party/libc++/src/include/__cxx03/__iterator/indirectly_comparable.h", + "//third_party/libc++/src/include/__cxx03/__iterator/insert_iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/istream_iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/istreambuf_iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/iter_move.h", + "//third_party/libc++/src/include/__cxx03/__iterator/iter_swap.h", + "//third_party/libc++/src/include/__cxx03/__iterator/iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/iterator_traits.h", + "//third_party/libc++/src/include/__cxx03/__iterator/iterator_with_data.h", + "//third_party/libc++/src/include/__cxx03/__iterator/mergeable.h", + "//third_party/libc++/src/include/__cxx03/__iterator/move_iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/move_sentinel.h", + "//third_party/libc++/src/include/__cxx03/__iterator/next.h", + "//third_party/libc++/src/include/__cxx03/__iterator/ostream_iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/ostreambuf_iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/permutable.h", + "//third_party/libc++/src/include/__cxx03/__iterator/prev.h", + "//third_party/libc++/src/include/__cxx03/__iterator/projected.h", + "//third_party/libc++/src/include/__cxx03/__iterator/ranges_iterator_traits.h", + "//third_party/libc++/src/include/__cxx03/__iterator/readable_traits.h", + "//third_party/libc++/src/include/__cxx03/__iterator/reverse_access.h", + "//third_party/libc++/src/include/__cxx03/__iterator/reverse_iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/segmented_iterator.h", + "//third_party/libc++/src/include/__cxx03/__iterator/size.h", + "//third_party/libc++/src/include/__cxx03/__iterator/sortable.h", + "//third_party/libc++/src/include/__cxx03/__iterator/unreachable_sentinel.h", + "//third_party/libc++/src/include/__cxx03/__iterator/wrap_iter.h", + "//third_party/libc++/src/include/__cxx03/__locale", + "//third_party/libc++/src/include/__cxx03/__locale_dir/locale_base_api/android.h", + "//third_party/libc++/src/include/__cxx03/__locale_dir/locale_base_api/bsd_locale_defaults.h", + "//third_party/libc++/src/include/__cxx03/__locale_dir/locale_base_api/bsd_locale_fallbacks.h", + "//third_party/libc++/src/include/__cxx03/__locale_dir/locale_base_api/fuchsia.h", + "//third_party/libc++/src/include/__cxx03/__locale_dir/locale_base_api/ibm.h", + "//third_party/libc++/src/include/__cxx03/__locale_dir/locale_base_api/locale_guard.h", + "//third_party/libc++/src/include/__cxx03/__locale_dir/locale_base_api/musl.h", + "//third_party/libc++/src/include/__cxx03/__locale_dir/locale_base_api/newlib.h", + "//third_party/libc++/src/include/__cxx03/__locale_dir/locale_base_api/openbsd.h", + "//third_party/libc++/src/include/__cxx03/__locale_dir/locale_base_api/win32.h", + "//third_party/libc++/src/include/__cxx03/__locale_dir/locale_base_api.h", + "//third_party/libc++/src/include/__cxx03/__math/abs.h", + "//third_party/libc++/src/include/__cxx03/__math/copysign.h", + "//third_party/libc++/src/include/__cxx03/__math/error_functions.h", + "//third_party/libc++/src/include/__cxx03/__math/exponential_functions.h", + "//third_party/libc++/src/include/__cxx03/__math/fdim.h", + "//third_party/libc++/src/include/__cxx03/__math/fma.h", + "//third_party/libc++/src/include/__cxx03/__math/gamma.h", + "//third_party/libc++/src/include/__cxx03/__math/hyperbolic_functions.h", + "//third_party/libc++/src/include/__cxx03/__math/hypot.h", + "//third_party/libc++/src/include/__cxx03/__math/inverse_hyperbolic_functions.h", + "//third_party/libc++/src/include/__cxx03/__math/inverse_trigonometric_functions.h", + "//third_party/libc++/src/include/__cxx03/__math/logarithms.h", + "//third_party/libc++/src/include/__cxx03/__math/min_max.h", + "//third_party/libc++/src/include/__cxx03/__math/modulo.h", + "//third_party/libc++/src/include/__cxx03/__math/remainder.h", + "//third_party/libc++/src/include/__cxx03/__math/roots.h", + "//third_party/libc++/src/include/__cxx03/__math/rounding_functions.h", + "//third_party/libc++/src/include/__cxx03/__math/special_functions.h", + "//third_party/libc++/src/include/__cxx03/__math/traits.h", + "//third_party/libc++/src/include/__cxx03/__math/trigonometric_functions.h", + "//third_party/libc++/src/include/__cxx03/__mbstate_t.h", + "//third_party/libc++/src/include/__cxx03/__mdspan/default_accessor.h", + "//third_party/libc++/src/include/__cxx03/__mdspan/extents.h", + "//third_party/libc++/src/include/__cxx03/__mdspan/layout_left.h", + "//third_party/libc++/src/include/__cxx03/__mdspan/layout_right.h", + "//third_party/libc++/src/include/__cxx03/__mdspan/layout_stride.h", + "//third_party/libc++/src/include/__cxx03/__mdspan/mdspan.h", + "//third_party/libc++/src/include/__cxx03/__memory/addressof.h", + "//third_party/libc++/src/include/__cxx03/__memory/align.h", + "//third_party/libc++/src/include/__cxx03/__memory/aligned_alloc.h", + "//third_party/libc++/src/include/__cxx03/__memory/allocate_at_least.h", + "//third_party/libc++/src/include/__cxx03/__memory/allocation_guard.h", + "//third_party/libc++/src/include/__cxx03/__memory/allocator.h", + "//third_party/libc++/src/include/__cxx03/__memory/allocator_arg_t.h", + "//third_party/libc++/src/include/__cxx03/__memory/allocator_destructor.h", + "//third_party/libc++/src/include/__cxx03/__memory/allocator_traits.h", + "//third_party/libc++/src/include/__cxx03/__memory/assume_aligned.h", + "//third_party/libc++/src/include/__cxx03/__memory/auto_ptr.h", + "//third_party/libc++/src/include/__cxx03/__memory/builtin_new_allocator.h", + "//third_party/libc++/src/include/__cxx03/__memory/compressed_pair.h", + "//third_party/libc++/src/include/__cxx03/__memory/concepts.h", + "//third_party/libc++/src/include/__cxx03/__memory/construct_at.h", + "//third_party/libc++/src/include/__cxx03/__memory/destruct_n.h", + "//third_party/libc++/src/include/__cxx03/__memory/inout_ptr.h", + "//third_party/libc++/src/include/__cxx03/__memory/out_ptr.h", + "//third_party/libc++/src/include/__cxx03/__memory/pointer_traits.h", + "//third_party/libc++/src/include/__cxx03/__memory/ranges_construct_at.h", + "//third_party/libc++/src/include/__cxx03/__memory/ranges_uninitialized_algorithms.h", + "//third_party/libc++/src/include/__cxx03/__memory/raw_storage_iterator.h", + "//third_party/libc++/src/include/__cxx03/__memory/shared_ptr.h", + "//third_party/libc++/src/include/__cxx03/__memory/swap_allocator.h", + "//third_party/libc++/src/include/__cxx03/__memory/temp_value.h", + "//third_party/libc++/src/include/__cxx03/__memory/temporary_buffer.h", + "//third_party/libc++/src/include/__cxx03/__memory/uninitialized_algorithms.h", + "//third_party/libc++/src/include/__cxx03/__memory/unique_ptr.h", + "//third_party/libc++/src/include/__cxx03/__memory/uses_allocator.h", + "//third_party/libc++/src/include/__cxx03/__memory/uses_allocator_construction.h", + "//third_party/libc++/src/include/__cxx03/__memory/voidify.h", + "//third_party/libc++/src/include/__cxx03/__memory_resource/memory_resource.h", + "//third_party/libc++/src/include/__cxx03/__memory_resource/monotonic_buffer_resource.h", + "//third_party/libc++/src/include/__cxx03/__memory_resource/polymorphic_allocator.h", + "//third_party/libc++/src/include/__cxx03/__memory_resource/pool_options.h", + "//third_party/libc++/src/include/__cxx03/__memory_resource/synchronized_pool_resource.h", + "//third_party/libc++/src/include/__cxx03/__memory_resource/unsynchronized_pool_resource.h", + "//third_party/libc++/src/include/__cxx03/__mutex/lock_guard.h", + "//third_party/libc++/src/include/__cxx03/__mutex/mutex.h", + "//third_party/libc++/src/include/__cxx03/__mutex/once_flag.h", + "//third_party/libc++/src/include/__cxx03/__mutex/tag_types.h", + "//third_party/libc++/src/include/__cxx03/__mutex/unique_lock.h", + "//third_party/libc++/src/include/__cxx03/__node_handle", + "//third_party/libc++/src/include/__cxx03/__numeric/accumulate.h", + "//third_party/libc++/src/include/__cxx03/__numeric/adjacent_difference.h", + "//third_party/libc++/src/include/__cxx03/__numeric/exclusive_scan.h", + "//third_party/libc++/src/include/__cxx03/__numeric/gcd_lcm.h", + "//third_party/libc++/src/include/__cxx03/__numeric/inclusive_scan.h", + "//third_party/libc++/src/include/__cxx03/__numeric/inner_product.h", + "//third_party/libc++/src/include/__cxx03/__numeric/iota.h", + "//third_party/libc++/src/include/__cxx03/__numeric/midpoint.h", + "//third_party/libc++/src/include/__cxx03/__numeric/partial_sum.h", + "//third_party/libc++/src/include/__cxx03/__numeric/pstl.h", + "//third_party/libc++/src/include/__cxx03/__numeric/reduce.h", + "//third_party/libc++/src/include/__cxx03/__numeric/saturation_arithmetic.h", + "//third_party/libc++/src/include/__cxx03/__numeric/transform_exclusive_scan.h", + "//third_party/libc++/src/include/__cxx03/__numeric/transform_inclusive_scan.h", + "//third_party/libc++/src/include/__cxx03/__numeric/transform_reduce.h", + "//third_party/libc++/src/include/__cxx03/__ostream/basic_ostream.h", + "//third_party/libc++/src/include/__cxx03/__ostream/print.h", + "//third_party/libc++/src/include/__cxx03/__pstl/backend.h", + "//third_party/libc++/src/include/__cxx03/__pstl/backend_fwd.h", + "//third_party/libc++/src/include/__cxx03/__pstl/backends/default.h", + "//third_party/libc++/src/include/__cxx03/__pstl/backends/libdispatch.h", + "//third_party/libc++/src/include/__cxx03/__pstl/backends/serial.h", + "//third_party/libc++/src/include/__cxx03/__pstl/backends/std_thread.h", + "//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/any_of.h", + "//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/cpu_traits.h", + "//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/fill.h", + "//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/find_if.h", + "//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/for_each.h", + "//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/merge.h", + "//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/stable_sort.h", + "//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/transform.h", + "//third_party/libc++/src/include/__cxx03/__pstl/cpu_algos/transform_reduce.h", + "//third_party/libc++/src/include/__cxx03/__pstl/dispatch.h", + "//third_party/libc++/src/include/__cxx03/__pstl/handle_exception.h", + "//third_party/libc++/src/include/__cxx03/__random/bernoulli_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/binomial_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/cauchy_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/chi_squared_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/clamp_to_integral.h", + "//third_party/libc++/src/include/__cxx03/__random/default_random_engine.h", + "//third_party/libc++/src/include/__cxx03/__random/discard_block_engine.h", + "//third_party/libc++/src/include/__cxx03/__random/discrete_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/exponential_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/extreme_value_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/fisher_f_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/gamma_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/generate_canonical.h", + "//third_party/libc++/src/include/__cxx03/__random/geometric_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/independent_bits_engine.h", + "//third_party/libc++/src/include/__cxx03/__random/is_seed_sequence.h", + "//third_party/libc++/src/include/__cxx03/__random/is_valid.h", + "//third_party/libc++/src/include/__cxx03/__random/knuth_b.h", + "//third_party/libc++/src/include/__cxx03/__random/linear_congruential_engine.h", + "//third_party/libc++/src/include/__cxx03/__random/log2.h", + "//third_party/libc++/src/include/__cxx03/__random/lognormal_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/mersenne_twister_engine.h", + "//third_party/libc++/src/include/__cxx03/__random/negative_binomial_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/normal_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/piecewise_constant_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/piecewise_linear_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/poisson_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/random_device.h", + "//third_party/libc++/src/include/__cxx03/__random/ranlux.h", + "//third_party/libc++/src/include/__cxx03/__random/seed_seq.h", + "//third_party/libc++/src/include/__cxx03/__random/shuffle_order_engine.h", + "//third_party/libc++/src/include/__cxx03/__random/student_t_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/subtract_with_carry_engine.h", + "//third_party/libc++/src/include/__cxx03/__random/uniform_int_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/uniform_random_bit_generator.h", + "//third_party/libc++/src/include/__cxx03/__random/uniform_real_distribution.h", + "//third_party/libc++/src/include/__cxx03/__random/weibull_distribution.h", + "//third_party/libc++/src/include/__cxx03/__ranges/access.h", + "//third_party/libc++/src/include/__cxx03/__ranges/all.h", + "//third_party/libc++/src/include/__cxx03/__ranges/as_rvalue_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/chunk_by_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/common_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/concepts.h", + "//third_party/libc++/src/include/__cxx03/__ranges/container_compatible_range.h", + "//third_party/libc++/src/include/__cxx03/__ranges/counted.h", + "//third_party/libc++/src/include/__cxx03/__ranges/dangling.h", + "//third_party/libc++/src/include/__cxx03/__ranges/data.h", + "//third_party/libc++/src/include/__cxx03/__ranges/drop_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/drop_while_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/elements_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/empty.h", + "//third_party/libc++/src/include/__cxx03/__ranges/empty_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/enable_borrowed_range.h", + "//third_party/libc++/src/include/__cxx03/__ranges/enable_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/filter_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/from_range.h", + "//third_party/libc++/src/include/__cxx03/__ranges/iota_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/istream_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/join_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/lazy_split_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/movable_box.h", + "//third_party/libc++/src/include/__cxx03/__ranges/non_propagating_cache.h", + "//third_party/libc++/src/include/__cxx03/__ranges/owning_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/range_adaptor.h", + "//third_party/libc++/src/include/__cxx03/__ranges/rbegin.h", + "//third_party/libc++/src/include/__cxx03/__ranges/ref_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/rend.h", + "//third_party/libc++/src/include/__cxx03/__ranges/repeat_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/reverse_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/single_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/size.h", + "//third_party/libc++/src/include/__cxx03/__ranges/split_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/subrange.h", + "//third_party/libc++/src/include/__cxx03/__ranges/take_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/take_while_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/to.h", + "//third_party/libc++/src/include/__cxx03/__ranges/transform_view.h", + "//third_party/libc++/src/include/__cxx03/__ranges/view_interface.h", + "//third_party/libc++/src/include/__cxx03/__ranges/views.h", + "//third_party/libc++/src/include/__cxx03/__ranges/zip_view.h", + "//third_party/libc++/src/include/__cxx03/__split_buffer", + "//third_party/libc++/src/include/__cxx03/__std_clang_module", + "//third_party/libc++/src/include/__cxx03/__std_mbstate_t.h", + "//third_party/libc++/src/include/__cxx03/__stop_token/atomic_unique_lock.h", + "//third_party/libc++/src/include/__cxx03/__stop_token/intrusive_list_view.h", + "//third_party/libc++/src/include/__cxx03/__stop_token/intrusive_shared_ptr.h", + "//third_party/libc++/src/include/__cxx03/__stop_token/stop_callback.h", + "//third_party/libc++/src/include/__cxx03/__stop_token/stop_source.h", + "//third_party/libc++/src/include/__cxx03/__stop_token/stop_state.h", + "//third_party/libc++/src/include/__cxx03/__stop_token/stop_token.h", + "//third_party/libc++/src/include/__cxx03/__string/char_traits.h", + "//third_party/libc++/src/include/__cxx03/__string/constexpr_c_functions.h", + "//third_party/libc++/src/include/__cxx03/__string/extern_template_lists.h", + "//third_party/libc++/src/include/__cxx03/__support/ibm/gettod_zos.h", + "//third_party/libc++/src/include/__cxx03/__support/ibm/locale_mgmt_zos.h", + "//third_party/libc++/src/include/__cxx03/__support/ibm/nanosleep.h", + "//third_party/libc++/src/include/__cxx03/__support/xlocale/__nop_locale_mgmt.h", + "//third_party/libc++/src/include/__cxx03/__support/xlocale/__posix_l_fallback.h", + "//third_party/libc++/src/include/__cxx03/__support/xlocale/__strtonum_fallback.h", + "//third_party/libc++/src/include/__cxx03/__system_error/errc.h", + "//third_party/libc++/src/include/__cxx03/__system_error/error_category.h", + "//third_party/libc++/src/include/__cxx03/__system_error/error_code.h", + "//third_party/libc++/src/include/__cxx03/__system_error/error_condition.h", + "//third_party/libc++/src/include/__cxx03/__system_error/system_error.h", + "//third_party/libc++/src/include/__cxx03/__thread/formatter.h", + "//third_party/libc++/src/include/__cxx03/__thread/id.h", + "//third_party/libc++/src/include/__cxx03/__thread/jthread.h", + "//third_party/libc++/src/include/__cxx03/__thread/poll_with_backoff.h", + "//third_party/libc++/src/include/__cxx03/__thread/support/c11.h", + "//third_party/libc++/src/include/__cxx03/__thread/support/external.h", + "//third_party/libc++/src/include/__cxx03/__thread/support/pthread.h", + "//third_party/libc++/src/include/__cxx03/__thread/support/windows.h", + "//third_party/libc++/src/include/__cxx03/__thread/support.h", + "//third_party/libc++/src/include/__cxx03/__thread/this_thread.h", + "//third_party/libc++/src/include/__cxx03/__thread/thread.h", + "//third_party/libc++/src/include/__cxx03/__thread/timed_backoff_policy.h", + "//third_party/libc++/src/include/__cxx03/__tree", + "//third_party/libc++/src/include/__cxx03/__tuple/find_index.h", + "//third_party/libc++/src/include/__cxx03/__tuple/ignore.h", + "//third_party/libc++/src/include/__cxx03/__tuple/make_tuple_types.h", + "//third_party/libc++/src/include/__cxx03/__tuple/sfinae_helpers.h", + "//third_party/libc++/src/include/__cxx03/__tuple/tuple_element.h", + "//third_party/libc++/src/include/__cxx03/__tuple/tuple_indices.h", + "//third_party/libc++/src/include/__cxx03/__tuple/tuple_like.h", + "//third_party/libc++/src/include/__cxx03/__tuple/tuple_like_ext.h", + "//third_party/libc++/src/include/__cxx03/__tuple/tuple_like_no_subrange.h", + "//third_party/libc++/src/include/__cxx03/__tuple/tuple_size.h", + "//third_party/libc++/src/include/__cxx03/__tuple/tuple_types.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/add_const.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/add_cv.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/add_lvalue_reference.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/add_pointer.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/add_rvalue_reference.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/add_volatile.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/aligned_storage.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/aligned_union.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/alignment_of.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/can_extract_key.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/common_reference.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/common_type.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/conditional.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/conjunction.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/copy_cv.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/copy_cvref.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/datasizeof.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/decay.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/dependent_type.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/desugars_to.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/disjunction.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/enable_if.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/extent.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/has_unique_object_representation.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/has_virtual_destructor.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/integral_constant.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/invoke.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_abstract.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_aggregate.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_allocator.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_always_bitcastable.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_arithmetic.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_array.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_assignable.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_base_of.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_bounded_array.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_callable.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_char_like_type.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_class.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_compound.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_const.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_constant_evaluated.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_constructible.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_convertible.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_core_convertible.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_destructible.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_empty.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_enum.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_equality_comparable.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_execution_policy.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_final.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_floating_point.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_function.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_fundamental.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_implicitly_default_constructible.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_integral.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_literal_type.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_member_pointer.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_nothrow_assignable.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_nothrow_constructible.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_nothrow_convertible.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_nothrow_destructible.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_null_pointer.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_object.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_pod.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_pointer.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_polymorphic.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_primary_template.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_reference.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_reference_wrapper.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_referenceable.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_same.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_scalar.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_signed.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_signed_integer.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_specialization.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_standard_layout.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_swappable.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_trivial.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_trivially_assignable.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_trivially_constructible.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_trivially_copyable.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_trivially_destructible.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_trivially_lexicographically_comparable.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_trivially_relocatable.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_unbounded_array.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_union.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_unsigned.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_unsigned_integer.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_valid_expansion.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_void.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/is_volatile.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/lazy.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/make_32_64_or_128_bit.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/make_const_lvalue_ref.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/make_signed.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/make_unsigned.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/maybe_const.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/nat.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/negation.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/noexcept_move_assign_container.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/promote.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/rank.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/remove_all_extents.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/remove_const.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/remove_const_ref.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/remove_cv.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/remove_cvref.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/remove_extent.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/remove_pointer.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/remove_reference.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/remove_volatile.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/result_of.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/strip_signature.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/type_identity.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/type_list.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/underlying_type.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/unwrap_ref.h", + "//third_party/libc++/src/include/__cxx03/__type_traits/void_t.h", + "//third_party/libc++/src/include/__cxx03/__undef_macros", + "//third_party/libc++/src/include/__cxx03/__utility/as_const.h", + "//third_party/libc++/src/include/__cxx03/__utility/as_lvalue.h", + "//third_party/libc++/src/include/__cxx03/__utility/auto_cast.h", + "//third_party/libc++/src/include/__cxx03/__utility/cmp.h", + "//third_party/libc++/src/include/__cxx03/__utility/convert_to_integral.h", + "//third_party/libc++/src/include/__cxx03/__utility/declval.h", + "//third_party/libc++/src/include/__cxx03/__utility/empty.h", + "//third_party/libc++/src/include/__cxx03/__utility/exception_guard.h", + "//third_party/libc++/src/include/__cxx03/__utility/exchange.h", + "//third_party/libc++/src/include/__cxx03/__utility/forward.h", + "//third_party/libc++/src/include/__cxx03/__utility/forward_like.h", + "//third_party/libc++/src/include/__cxx03/__utility/in_place.h", + "//third_party/libc++/src/include/__cxx03/__utility/integer_sequence.h", + "//third_party/libc++/src/include/__cxx03/__utility/is_pointer_in_range.h", + "//third_party/libc++/src/include/__cxx03/__utility/is_valid_range.h", + "//third_party/libc++/src/include/__cxx03/__utility/move.h", + "//third_party/libc++/src/include/__cxx03/__utility/no_destroy.h", + "//third_party/libc++/src/include/__cxx03/__utility/pair.h", + "//third_party/libc++/src/include/__cxx03/__utility/piecewise_construct.h", + "//third_party/libc++/src/include/__cxx03/__utility/priority_tag.h", + "//third_party/libc++/src/include/__cxx03/__utility/private_constructor_tag.h", + "//third_party/libc++/src/include/__cxx03/__utility/rel_ops.h", + "//third_party/libc++/src/include/__cxx03/__utility/small_buffer.h", + "//third_party/libc++/src/include/__cxx03/__utility/swap.h", + "//third_party/libc++/src/include/__cxx03/__utility/to_underlying.h", + "//third_party/libc++/src/include/__cxx03/__utility/unreachable.h", + "//third_party/libc++/src/include/__cxx03/__variant/monostate.h", + "//third_party/libc++/src/include/__cxx03/__verbose_abort", + "//third_party/libc++/src/include/__cxx03/algorithm", + "//third_party/libc++/src/include/__cxx03/any", + "//third_party/libc++/src/include/__cxx03/array", + "//third_party/libc++/src/include/__cxx03/atomic", + "//third_party/libc++/src/include/__cxx03/barrier", + "//third_party/libc++/src/include/__cxx03/bit", + "//third_party/libc++/src/include/__cxx03/bitset", + "//third_party/libc++/src/include/__cxx03/cassert", + "//third_party/libc++/src/include/__cxx03/ccomplex", + "//third_party/libc++/src/include/__cxx03/cctype", + "//third_party/libc++/src/include/__cxx03/cerrno", + "//third_party/libc++/src/include/__cxx03/cfenv", + "//third_party/libc++/src/include/__cxx03/cfloat", + "//third_party/libc++/src/include/__cxx03/charconv", + "//third_party/libc++/src/include/__cxx03/chrono", + "//third_party/libc++/src/include/__cxx03/cinttypes", + "//third_party/libc++/src/include/__cxx03/ciso646", + "//third_party/libc++/src/include/__cxx03/climits", + "//third_party/libc++/src/include/__cxx03/clocale", + "//third_party/libc++/src/include/__cxx03/cmath", + "//third_party/libc++/src/include/__cxx03/codecvt", + "//third_party/libc++/src/include/__cxx03/compare", + "//third_party/libc++/src/include/__cxx03/complex", + "//third_party/libc++/src/include/__cxx03/complex.h", + "//third_party/libc++/src/include/__cxx03/concepts", + "//third_party/libc++/src/include/__cxx03/condition_variable", + "//third_party/libc++/src/include/__cxx03/coroutine", + "//third_party/libc++/src/include/__cxx03/csetjmp", + "//third_party/libc++/src/include/__cxx03/csignal", + "//third_party/libc++/src/include/__cxx03/cstdarg", + "//third_party/libc++/src/include/__cxx03/cstdbool", + "//third_party/libc++/src/include/__cxx03/cstddef", + "//third_party/libc++/src/include/__cxx03/cstdint", + "//third_party/libc++/src/include/__cxx03/cstdio", + "//third_party/libc++/src/include/__cxx03/cstdlib", + "//third_party/libc++/src/include/__cxx03/cstring", + "//third_party/libc++/src/include/__cxx03/ctgmath", + "//third_party/libc++/src/include/__cxx03/ctime", + "//third_party/libc++/src/include/__cxx03/ctype.h", + "//third_party/libc++/src/include/__cxx03/cuchar", + "//third_party/libc++/src/include/__cxx03/cwchar", + "//third_party/libc++/src/include/__cxx03/cwctype", + "//third_party/libc++/src/include/__cxx03/deque", + "//third_party/libc++/src/include/__cxx03/errno.h", + "//third_party/libc++/src/include/__cxx03/exception", + "//third_party/libc++/src/include/__cxx03/execution", + "//third_party/libc++/src/include/__cxx03/expected", + "//third_party/libc++/src/include/__cxx03/experimental/__config", + "//third_party/libc++/src/include/__cxx03/experimental/__simd/aligned_tag.h", + "//third_party/libc++/src/include/__cxx03/experimental/__simd/declaration.h", + "//third_party/libc++/src/include/__cxx03/experimental/__simd/reference.h", + "//third_party/libc++/src/include/__cxx03/experimental/__simd/scalar.h", + "//third_party/libc++/src/include/__cxx03/experimental/__simd/simd.h", + "//third_party/libc++/src/include/__cxx03/experimental/__simd/simd_mask.h", + "//third_party/libc++/src/include/__cxx03/experimental/__simd/traits.h", + "//third_party/libc++/src/include/__cxx03/experimental/__simd/utility.h", + "//third_party/libc++/src/include/__cxx03/experimental/__simd/vec_ext.h", + "//third_party/libc++/src/include/__cxx03/experimental/iterator", + "//third_party/libc++/src/include/__cxx03/experimental/memory", + "//third_party/libc++/src/include/__cxx03/experimental/propagate_const", + "//third_party/libc++/src/include/__cxx03/experimental/simd", + "//third_party/libc++/src/include/__cxx03/experimental/type_traits", + "//third_party/libc++/src/include/__cxx03/experimental/utility", + "//third_party/libc++/src/include/__cxx03/ext/__hash", + "//third_party/libc++/src/include/__cxx03/ext/hash_map", + "//third_party/libc++/src/include/__cxx03/ext/hash_set", + "//third_party/libc++/src/include/__cxx03/fenv.h", + "//third_party/libc++/src/include/__cxx03/filesystem", + "//third_party/libc++/src/include/__cxx03/float.h", + "//third_party/libc++/src/include/__cxx03/format", + "//third_party/libc++/src/include/__cxx03/forward_list", + "//third_party/libc++/src/include/__cxx03/fstream", + "//third_party/libc++/src/include/__cxx03/functional", + "//third_party/libc++/src/include/__cxx03/future", + "//third_party/libc++/src/include/__cxx03/initializer_list", + "//third_party/libc++/src/include/__cxx03/inttypes.h", + "//third_party/libc++/src/include/__cxx03/iomanip", + "//third_party/libc++/src/include/__cxx03/ios", + "//third_party/libc++/src/include/__cxx03/iosfwd", + "//third_party/libc++/src/include/__cxx03/iostream", + "//third_party/libc++/src/include/__cxx03/istream", + "//third_party/libc++/src/include/__cxx03/iterator", + "//third_party/libc++/src/include/__cxx03/latch", + "//third_party/libc++/src/include/__cxx03/limits", + "//third_party/libc++/src/include/__cxx03/list", + "//third_party/libc++/src/include/__cxx03/locale", + "//third_party/libc++/src/include/__cxx03/locale.h", + "//third_party/libc++/src/include/__cxx03/map", + "//third_party/libc++/src/include/__cxx03/math.h", + "//third_party/libc++/src/include/__cxx03/mdspan", + "//third_party/libc++/src/include/__cxx03/memory", + "//third_party/libc++/src/include/__cxx03/memory_resource", + "//third_party/libc++/src/include/__cxx03/module.modulemap", + "//third_party/libc++/src/include/__cxx03/mutex", + "//third_party/libc++/src/include/__cxx03/new", + "//third_party/libc++/src/include/__cxx03/numbers", + "//third_party/libc++/src/include/__cxx03/numeric", + "//third_party/libc++/src/include/__cxx03/optional", + "//third_party/libc++/src/include/__cxx03/ostream", + "//third_party/libc++/src/include/__cxx03/print", + "//third_party/libc++/src/include/__cxx03/queue", + "//third_party/libc++/src/include/__cxx03/random", + "//third_party/libc++/src/include/__cxx03/ranges", + "//third_party/libc++/src/include/__cxx03/ratio", + "//third_party/libc++/src/include/__cxx03/regex", + "//third_party/libc++/src/include/__cxx03/scoped_allocator", + "//third_party/libc++/src/include/__cxx03/semaphore", + "//third_party/libc++/src/include/__cxx03/set", + "//third_party/libc++/src/include/__cxx03/shared_mutex", + "//third_party/libc++/src/include/__cxx03/source_location", + "//third_party/libc++/src/include/__cxx03/span", + "//third_party/libc++/src/include/__cxx03/sstream", + "//third_party/libc++/src/include/__cxx03/stack", + "//third_party/libc++/src/include/__cxx03/stdatomic.h", + "//third_party/libc++/src/include/__cxx03/stdbool.h", + "//third_party/libc++/src/include/__cxx03/stddef.h", + "//third_party/libc++/src/include/__cxx03/stdexcept", + "//third_party/libc++/src/include/__cxx03/stdint.h", + "//third_party/libc++/src/include/__cxx03/stdio.h", + "//third_party/libc++/src/include/__cxx03/stdlib.h", + "//third_party/libc++/src/include/__cxx03/stop_token", + "//third_party/libc++/src/include/__cxx03/streambuf", + "//third_party/libc++/src/include/__cxx03/string", + "//third_party/libc++/src/include/__cxx03/string.h", + "//third_party/libc++/src/include/__cxx03/string_view", + "//third_party/libc++/src/include/__cxx03/strstream", + "//third_party/libc++/src/include/__cxx03/syncstream", + "//third_party/libc++/src/include/__cxx03/system_error", + "//third_party/libc++/src/include/__cxx03/tgmath.h", + "//third_party/libc++/src/include/__cxx03/thread", + "//third_party/libc++/src/include/__cxx03/tuple", + "//third_party/libc++/src/include/__cxx03/type_traits", + "//third_party/libc++/src/include/__cxx03/typeindex", + "//third_party/libc++/src/include/__cxx03/typeinfo", + "//third_party/libc++/src/include/__cxx03/uchar.h", + "//third_party/libc++/src/include/__cxx03/unordered_map", + "//third_party/libc++/src/include/__cxx03/unordered_set", + "//third_party/libc++/src/include/__cxx03/utility", + "//third_party/libc++/src/include/__cxx03/valarray", + "//third_party/libc++/src/include/__cxx03/variant", + "//third_party/libc++/src/include/__cxx03/vector", + "//third_party/libc++/src/include/__cxx03/version", + "//third_party/libc++/src/include/__cxx03/wchar.h", + "//third_party/libc++/src/include/__cxx03/wctype.h", "//third_party/libc++/src/include/__debug_utils/randomize_range.h", "//third_party/libc++/src/include/__debug_utils/sanitizers.h", "//third_party/libc++/src/include/__debug_utils/strict_weak_ordering_check.h", diff --git a/patches/boringssl/revert_track_ssl_error_zero_return_explicitly.patch b/patches/boringssl/revert_track_ssl_error_zero_return_explicitly.patch index 1809c230e5..0dc89b13c3 100644 --- a/patches/boringssl/revert_track_ssl_error_zero_return_explicitly.patch +++ b/patches/boringssl/revert_track_ssl_error_zero_return_explicitly.patch @@ -20,10 +20,10 @@ index 7de8923518dbfb69fef62d7781f906b30cf62155..7a4310d6d8e85f07f0ae6c97726d909c case ssl_open_record_error: diff --git a/ssl/ssl_lib.cc b/ssl/ssl_lib.cc -index f52030b8cd97d24d805963fd86a9e2b0da15af48..59cb15d5daa22fb87aa9012e25732e90bf5778a4 100644 +index 82870cda0593bdfa7434154bb7dfd5e1b00f6c4f..d3ad8a596b832af328d5e6bfeb5f36590574cc94 100644 --- a/ssl/ssl_lib.cc +++ b/ssl/ssl_lib.cc -@@ -1339,7 +1339,7 @@ int SSL_get_error(const SSL *ssl, int ret_code) { +@@ -1319,7 +1319,7 @@ int SSL_get_error(const SSL *ssl, int ret_code) { } if (ret_code == 0) { @@ -32,7 +32,7 @@ index f52030b8cd97d24d805963fd86a9e2b0da15af48..59cb15d5daa22fb87aa9012e25732e90 return SSL_ERROR_ZERO_RETURN; } // An EOF was observed which violates the protocol, and the underlying -@@ -2711,13 +2711,7 @@ void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx) { +@@ -2686,13 +2686,7 @@ void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx) { return CRYPTO_get_ex_data(&ctx->ex_data, idx); } diff --git a/patches/chromium/add_didinstallconditionalfeatures.patch b/patches/chromium/add_didinstallconditionalfeatures.patch index 5814444ec9..a79c87d745 100644 --- a/patches/chromium/add_didinstallconditionalfeatures.patch +++ b/patches/chromium/add_didinstallconditionalfeatures.patch @@ -23,10 +23,10 @@ index ad0092ef2e13853e4bb8b923481559a043b00ab7..1c2dfd23f18733e21312992877ae1499 int32_t world_id) {} virtual void DidClearWindowObject() {} diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index 3d0544422f05e2edc02921fc39335bf10184028e..bf44c1ffef7df44448ee7b5b176c33348599f0be 100644 +index 7d40a2d2db8082278832ff1b799a8653c105866e..a614112af549120e95cc8ea2f8b54c2d91cb4e28 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -4792,6 +4792,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, +@@ -4793,6 +4793,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, observer.DidCreateScriptContext(context, world_id); } diff --git a/patches/chromium/add_gin_converter_support_for_arraybufferview.patch b/patches/chromium/add_gin_converter_support_for_arraybufferview.patch index 66626ecac5..29ecfaed47 100644 --- a/patches/chromium/add_gin_converter_support_for_arraybufferview.patch +++ b/patches/chromium/add_gin_converter_support_for_arraybufferview.patch @@ -6,7 +6,7 @@ Subject: add gin::Converter support for ArrayBufferView This should be upstreamed. diff --git a/gin/converter.cc b/gin/converter.cc -index 62209cadaec7314d2d4ec3e63e1bc88394afa4a9..b035bfe1fd16fb6ca8be33bf446ff8578d7cc2a0 100644 +index 04bfeb77157ea168de6a382852e7163e0f8d9949..c4d0c2d332f2e09bfa411998abe4c172b135ca23 100644 --- a/gin/converter.cc +++ b/gin/converter.cc @@ -20,6 +20,7 @@ @@ -17,7 +17,7 @@ index 62209cadaec7314d2d4ec3e63e1bc88394afa4a9..b035bfe1fd16fb6ca8be33bf446ff857 using v8::External; using v8::Function; using v8::Int32; -@@ -246,6 +247,20 @@ bool Converter>::FromV8(Isolate* isolate, +@@ -244,6 +245,20 @@ bool Converter>::FromV8(Isolate* isolate, return true; } diff --git a/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch b/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch index de1474d090..e5fa7125dd 100644 --- a/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch +++ b/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch @@ -116,10 +116,10 @@ index 083af135d890c2837e72c314e170e81931bd2a20..5245ea88441ef84c15b8052a9011ce70 // Visibility ----------------------------------------------------------- diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc -index f5fe2e061448673c788315a167efff1fb70c3ef0..ed0c77c14e8dcf3e6d7328c8a9c640388b7be92d 100644 +index 9e4f1aebd3021a1b1f41cdce43796b0c51f7617b..1b94c78dc66f80c062365fe4f5aaca73d3e7ff5a 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -2452,6 +2452,10 @@ void WebViewImpl::SetPageLifecycleStateInternal( +@@ -2456,6 +2456,10 @@ void WebViewImpl::SetPageLifecycleStateInternal( TRACE_EVENT2("navigation", "WebViewImpl::SetPageLifecycleStateInternal", "old_state", old_state, "new_state", new_state); @@ -155,7 +155,7 @@ index f5fe2e061448673c788315a167efff1fb70c3ef0..ed0c77c14e8dcf3e6d7328c8a9c64038 // Do not throttle if the page should be painting. bool is_visible = diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h -index d5397c53559ba239e46c9485fb30daea89bd392b..4989d9f6a28d519098b16e832c2a36c61ab04c15 100644 +index e4784453b357e2a9c18ccf5acfde43f5afd583ae..2c5a9f08ac34ae4106f25c42dca04f78ae703618 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.h +++ b/third_party/blink/renderer/core/exported/web_view_impl.h @@ -448,6 +448,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, @@ -166,7 +166,7 @@ index d5397c53559ba239e46c9485fb30daea89bd392b..4989d9f6a28d519098b16e832c2a36c6 void SetVisibilityState(mojom::blink::PageVisibilityState visibility_state, bool is_initial_state) override; mojom::blink::PageVisibilityState GetVisibilityState() override; -@@ -933,6 +934,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -936,6 +937,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, // If true, we send IPC messages when |preferred_size_| changes. bool send_preferred_size_changes_ = false; diff --git a/patches/chromium/blink_local_frame.patch b/patches/chromium/blink_local_frame.patch index d741701d42..475829b501 100644 --- a/patches/chromium/blink_local_frame.patch +++ b/patches/chromium/blink_local_frame.patch @@ -49,7 +49,7 @@ index 2f33ec660a975522c473ecd50e633b5edaca707f..65221a51927d9f44bd6adbad88fa1144 // its owning reference back to our owning LocalFrame. client_->Detached(type); diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc -index 5c8c50fc2025a160bfb0587cd46ba45f8d58a175..d918e9d165acefa8ba3a225aec261ebf028c40f7 100644 +index ef53b6f6d9cee47fe37a1ad5d89046b78e6853f7..6790239205233a9707b98215890ff336f02cc3c8 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc @@ -746,10 +746,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { diff --git a/patches/chromium/build_add_electron_tracing_category.patch b/patches/chromium/build_add_electron_tracing_category.patch index 64a01b9131..2ba7d1ef49 100644 --- a/patches/chromium/build_add_electron_tracing_category.patch +++ b/patches/chromium/build_add_electron_tracing_category.patch @@ -8,10 +8,10 @@ categories in use are known / declared. This patch is required for us to introduce a new Electron category for Electron-specific tracing. diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h -index ef993705e4a3624d06e3a74255bbec5c73eb6dfb..d44cae760548fc4ae48ab9406d3ca02b9264f41e 100644 +index 435735a272bea0e67346ee6388e237e190854c8d..230cc8358d1173f51b5b3ca066fcd65685008db2 100644 --- a/base/trace_event/builtin_categories.h +++ b/base/trace_event/builtin_categories.h -@@ -88,6 +88,7 @@ +@@ -93,6 +93,7 @@ X("drm") \ X("drmcursor") \ X("dwrite") \ diff --git a/patches/chromium/build_disable_thin_lto_mac.patch b/patches/chromium/build_disable_thin_lto_mac.patch index 2d1a1a7e9e..27608051d5 100644 --- a/patches/chromium/build_disable_thin_lto_mac.patch +++ b/patches/chromium/build_disable_thin_lto_mac.patch @@ -11,10 +11,10 @@ This patch can (and should) be removed when we can prevent those symbols from being stripped in the release build. diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni -index ac5ce5e5d80facc0bbafe51ced9aba53a8fb0c04..6c457c4e63c4024490b47aaf29dfbbab83bf6f5e 100644 +index c2cda80929d15c926c61225bdf5e0343bd5fd3b3..f792ec19a0692af0298064dd0439dc76d65ed893 100644 --- a/build/config/compiler/compiler.gni +++ b/build/config/compiler/compiler.gni -@@ -86,7 +86,7 @@ declare_args() { +@@ -82,7 +82,7 @@ declare_args() { # have the same LLVM revisions as us, making bitcode useless to them. use_thin_lto = is_cfi || (is_clang && is_official_build && chrome_pgo_phase != 1 && diff --git a/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch b/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch index f621840d6d..7f0c414ad9 100644 --- a/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch +++ b/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch @@ -11,7 +11,7 @@ if we ever align our .pak file generation with Chrome we can remove this patch. diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn -index 9580623c57cb02f7e924742c6cb1638676881115..ad80d8e63dfebbbdb8eaa63bfe38a6f86df9afb6 100644 +index 4a0c2d74f6ce439f562115ee382ea72b1ce6670b..a6562fd7ce1fb11458dfdc21abee462d19414831 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn @@ -200,11 +200,16 @@ if (!is_android && !is_mac) { @@ -33,10 +33,10 @@ index 9580623c57cb02f7e924742c6cb1638676881115..ad80d8e63dfebbbdb8eaa63bfe38a6f8 "//base", "//build:branding_buildflags", diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn -index 1a136cdeb8aea796a8b3f81e4f791c29ae02cf02..9033419bb880830076835e8400276e738b71f428 100644 +index 72aee16421957a0db9fcc5f5e9dd22bbcf623e72..3c6fa910ceadf5f704a72e5fa2bc7cc26b8ceffd 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -4525,7 +4525,7 @@ static_library("browser") { +@@ -4515,7 +4515,7 @@ static_library("browser") { ] } @@ -46,10 +46,10 @@ index 1a136cdeb8aea796a8b3f81e4f791c29ae02cf02..9033419bb880830076835e8400276e73 # than here in :chrome_dll. deps += [ "//chrome:packed_resources_integrity_header" ] diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn -index 7a945c6bac66f8f4c579ae3e2bae6f228c453d8f..48b7b801573cbcc977346a3f80c0c907dd619a06 100644 +index bfa1195a062597fff605155440dca91d20f11092..56f1a67ee991bfe0104cc1b7400bb7c8c4f5666d 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -6818,9 +6818,12 @@ test("unit_tests") { +@@ -6847,9 +6847,12 @@ test("unit_tests") { "//chrome/notification_helper", ] @@ -63,7 +63,7 @@ index 7a945c6bac66f8f4c579ae3e2bae6f228c453d8f..48b7b801573cbcc977346a3f80c0c907 "//chrome//services/util_win:unit_tests", "//chrome/app:chrome_dll_resources", "//chrome/app:win_unit_tests", -@@ -7762,6 +7765,10 @@ test("unit_tests") { +@@ -7787,6 +7790,10 @@ test("unit_tests") { "../browser/performance_manager/policies/background_tab_loading_policy_unittest.cc", ] @@ -74,7 +74,7 @@ index 7a945c6bac66f8f4c579ae3e2bae6f228c453d8f..48b7b801573cbcc977346a3f80c0c907 sources += [ # The importer code is not used on Android. "../common/importer/firefox_importer_utils_unittest.cc", -@@ -7814,7 +7821,6 @@ test("unit_tests") { +@@ -7839,7 +7846,6 @@ test("unit_tests") { # Non-android deps for "unit_tests" target. deps += [ "../browser/screen_ai:screen_ai_install_state", diff --git a/patches/chromium/can_create_window.patch b/patches/chromium/can_create_window.patch index c2575d9622..ebbdbe332e 100644 --- a/patches/chromium/can_create_window.patch +++ b/patches/chromium/can_create_window.patch @@ -9,10 +9,10 @@ potentially prevent a window from being created. TODO(loc): this patch is currently broken. diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc -index d29dac893805535bbbd9aefe096a0ca2825a01aa..4f31803e492d0d05b29659f8bf75b6fee7aff25e 100644 +index b22f297cfec19d2afc029c2c63c8451335c6156f..bf6e476bb9fbf7e5fc68bafc7703d00ecaeb4fa3 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -9170,6 +9170,7 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -9176,6 +9176,7 @@ void RenderFrameHostImpl::CreateNewWindow( last_committed_origin_, params->window_container_type, params->target_url, params->referrer.To(), params->frame_name, params->disposition, *params->features, @@ -21,10 +21,10 @@ index d29dac893805535bbbd9aefe096a0ca2825a01aa..4f31803e492d0d05b29659f8bf75b6fe &no_javascript_access); diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index c93722f2fc5340edeeace5a1690d0fa7d84dffb2..e7e47a9aa5a22aea2aa0eeab7bd661b47c9cbdae 100644 +index 45cc80c684f5e6a721a6e015857f8e01e0497079..bdc268c2d378d65c4ddf2b9c4b0dae8b94f9521c 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4887,6 +4887,12 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -4890,6 +4890,12 @@ FrameTree* WebContentsImpl::CreateNewWindow( SetPartitionedPopinOpenerOnNewWindowIfNeeded(new_contents_impl, params, opener); @@ -37,7 +37,7 @@ index c93722f2fc5340edeeace5a1690d0fa7d84dffb2..e7e47a9aa5a22aea2aa0eeab7bd661b4 // If the new frame has a name, make sure any SiteInstances that can find // this named frame have proxies for it. Must be called after // SetSessionStorageNamespace, since this calls CreateRenderView, which uses -@@ -4928,12 +4934,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -4931,12 +4937,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( AddWebContentsDestructionObserver(new_contents_impl); } @@ -66,7 +66,7 @@ index 8e571dc1371cf2aa7c8354f0b4e492e0d030b485..c878169e7838849cbc23df2ed94ca65d // Operation result when the renderer asks the browser to create a new window. diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc -index a1b6aad3587e7e2d4c24e76aa832e95b31b7ed86..826a2038ebe187a473ac8eabdedf977604ec8337 100644 +index ca50de03ee9718f870155adfbac4df31e1c4cb3c..b95fa410f7a38004e54c6aa6d345be851d5b2d76 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc @@ -785,6 +785,8 @@ bool ContentBrowserClient::CanCreateWindow( @@ -79,10 +79,10 @@ index a1b6aad3587e7e2d4c24e76aa832e95b31b7ed86..826a2038ebe187a473ac8eabdedf9776 bool opener_suppressed, bool* no_javascript_access) { diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 4d96255c40a8eac7804016383da32fd954f91430..187e5f078084436b2ff296f1cbacd009d738c635 100644 +index 472077f2efac793bc3e44b00d06086b1bb1a456e..4b14ef7d2f61f2239876da6f814f0633a2e17f56 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -195,6 +195,7 @@ class NetworkService; +@@ -196,6 +196,7 @@ class NetworkService; class TrustedURLLoaderHeaderClient; } // namespace mojom struct ResourceRequest; @@ -90,7 +90,7 @@ index 4d96255c40a8eac7804016383da32fd954f91430..187e5f078084436b2ff296f1cbacd009 } // namespace network namespace sandbox { -@@ -1348,6 +1349,8 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -1349,6 +1350,8 @@ class CONTENT_EXPORT ContentBrowserClient { const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, @@ -122,7 +122,7 @@ index d4546ddda4a14cd5a826a13d4c8132a7fb8b5a7c..d5a7a639089ad37cb611c2ae253675b1 WebContents* source, const OpenURLParams& params, diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h -index 77ee6ba6c65c95622e41f86906ea813be62f72e9..7f38098505afabe1887a6d98a705f1adce201314 100644 +index c0be779a4c1d89426c30261aff72ea55be900087..7413c1bef86f5e4633db7220c5de4de7fbdcc654 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h @@ -18,6 +18,7 @@ @@ -133,7 +133,7 @@ index 77ee6ba6c65c95622e41f86906ea813be62f72e9..7f38098505afabe1887a6d98a705f1ad #include "content/public/browser/back_forward_transition_animation_manager.h" #include "content/public/browser/eye_dropper.h" #include "content/public/browser/fullscreen_types.h" -@@ -368,6 +369,13 @@ class CONTENT_EXPORT WebContentsDelegate { +@@ -365,6 +366,13 @@ class CONTENT_EXPORT WebContentsDelegate { const StoragePartitionConfig& partition_config, SessionStorageNamespace* session_storage_namespace); @@ -148,10 +148,10 @@ index 77ee6ba6c65c95622e41f86906ea813be62f72e9..7f38098505afabe1887a6d98a705f1ad // typically happens when popups are created. virtual void WebContentsCreated(WebContents* source_contents, diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index 6fed6b4c7ad72bd90aeb9f6eea7a3081972c88f8..3d0544422f05e2edc02921fc39335bf10184028e 100644 +index 60076b652253b30919467eb0f45e7775902d8dbb..7d40a2d2db8082278832ff1b799a8653c105866e 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -6849,6 +6849,10 @@ WebView* RenderFrameImpl::CreateNewWindow( +@@ -6850,6 +6850,10 @@ WebView* RenderFrameImpl::CreateNewWindow( request.HasUserGesture(), GetWebFrame()->IsAdFrame(), GetWebFrame()->IsAdScriptInStack()); @@ -163,10 +163,10 @@ index 6fed6b4c7ad72bd90aeb9f6eea7a3081972c88f8..3d0544422f05e2edc02921fc39335bf1 // moved on send. bool is_background_tab = diff --git a/content/web_test/browser/web_test_content_browser_client.cc b/content/web_test/browser/web_test_content_browser_client.cc -index 4623ebf4ff47e9ec7549659e52c0c5ad7b3ef0ff..83db551286749d8dbf794aa750611e250774e4ff 100644 +index 7ee41873389eaa03331460bdc3195f53fe943816..b4eb16ccd451d181a34de9b65e8fa9ed035c1f21 100644 --- a/content/web_test/browser/web_test_content_browser_client.cc +++ b/content/web_test/browser/web_test_content_browser_client.cc -@@ -521,6 +521,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( +@@ -524,6 +524,8 @@ bool WebTestContentBrowserClient::CanCreateWindow( const std::string& frame_name, WindowOpenDisposition disposition, const blink::mojom::WindowFeatures& features, diff --git a/patches/chromium/chore_add_electron_deps_to_gitignores.patch b/patches/chromium/chore_add_electron_deps_to_gitignores.patch index 4f6d1f168f..26723c1cfa 100644 --- a/patches/chromium/chore_add_electron_deps_to_gitignores.patch +++ b/patches/chromium/chore_add_electron_deps_to_gitignores.patch @@ -18,7 +18,7 @@ index 9056030523807b8023493c0be9c9675da792852e..a1b949528e0a164c1bad98dbfbef282f /googleurl /gpu/gles2_conform_test diff --git a/third_party/.gitignore b/third_party/.gitignore -index 6d2c97019aec77bf73902d69df96284f4b372f3b..99a8a1f352dc361011e0b63140d3efcafb6a06da 100644 +index 55454cd51ab777035560a73d0dc69ba32403fbad..bf22972bf1afbe4c94e780e084fdae3ef7c0ef8d 100644 --- a/third_party/.gitignore +++ b/third_party/.gitignore @@ -45,7 +45,9 @@ @@ -31,7 +31,7 @@ index 6d2c97019aec77bf73902d69df96284f4b372f3b..99a8a1f352dc361011e0b63140d3efca /espresso/lib/ /eyesfree/src /fast_float/src -@@ -92,6 +94,7 @@ +@@ -93,6 +95,7 @@ /mocha /mockito/src /nacl_sdk_binaries/ @@ -39,7 +39,7 @@ index 6d2c97019aec77bf73902d69df96284f4b372f3b..99a8a1f352dc361011e0b63140d3efca /ninja /node/*.tar.gz /node/linux/ -@@ -136,7 +139,7 @@ +@@ -137,7 +140,7 @@ /spirv-cross/src /spirv-headers/src /spirv-tools/src diff --git a/patches/chromium/chore_partial_revert_of.patch b/patches/chromium/chore_partial_revert_of.patch index d5550d8a85..2ec415cf76 100644 --- a/patches/chromium/chore_partial_revert_of.patch +++ b/patches/chromium/chore_partial_revert_of.patch @@ -14,10 +14,10 @@ track down the source of this problem & figure out if we can fix it by changing something in Electron. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 1b748a2e0d803217985847014855b095b53c58e5..0e742f196367bbbe8c4e147ef4db4f8dbbe4cbbe 100644 +index 3ed29244ad407c3fd41879dbf2f7a8554a05236c..c210645cd2a6f2314d648112b50fe02050f7320f 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4813,9 +4813,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -4816,9 +4816,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( bool renderer_started_hidden = params.disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB; diff --git a/patches/chromium/chore_patch_out_partition_attribute_dcheck_for_webviews.patch b/patches/chromium/chore_patch_out_partition_attribute_dcheck_for_webviews.patch index c8629709ca..e5cbe0a99a 100644 --- a/patches/chromium/chore_patch_out_partition_attribute_dcheck_for_webviews.patch +++ b/patches/chromium/chore_patch_out_partition_attribute_dcheck_for_webviews.patch @@ -14,7 +14,7 @@ This change patches it out to prevent the DCHECK. It can be removed once/if we see a better solution to the problem. diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc -index ebe21d861ba3c7725f22d8c59738e49856c030ca..c2fc12ea2d5a4f7e6b33546d2a5e0bcbbe4e4c9d 100644 +index 062921424cc68780749ce79b29e538a3a952162e..d427e011b996997dff46dc92e8ba19f9f33df0a5 100644 --- a/content/browser/site_instance_impl.cc +++ b/content/browser/site_instance_impl.cc @@ -210,7 +210,7 @@ scoped_refptr SiteInstanceImpl::CreateForGuest( diff --git a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch index d975765485..f35e2a31cc 100644 --- a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch +++ b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch @@ -80,10 +80,10 @@ index b078a4a06c7b3f767e2e01f0bef2ba440f729620..0459568581a3073333ae6afabd3680f2 content::WebContents* source, const content::OpenURLParams& params, diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc -index f313979ca1b0a305291c1fb5df57210324000f52..2edfc053ca0bcc9f7e4db36de249aa8a20fbd7c6 100644 +index a62c82aab7a350c01c7b4288977895c4f9bb9c56..bc0f6ac675b93992bd017acbd4c9919552cdd401 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc -@@ -2145,12 +2145,11 @@ bool Browser::IsWebContentsCreationOverridden( +@@ -2176,12 +2176,11 @@ bool Browser::IsWebContentsCreationOverridden( content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -99,10 +99,10 @@ index f313979ca1b0a305291c1fb5df57210324000f52..2edfc053ca0bcc9f7e4db36de249aa8a WebContents* Browser::CreateCustomWebContents( diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h -index 8057f6fcc87c482f2ad477240528191e0043c08c..db6abb4787a57e8b1866fe5d8ae801941a95ef3c 100644 +index 1455dcab97edbd2b2b63401643aa288ed08dd52e..20e411aad535f892d903beb022b248b3a0b184e3 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h -@@ -975,8 +975,7 @@ class Browser : public TabStripModelObserver, +@@ -978,8 +978,7 @@ class Browser : public TabStripModelObserver, content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -155,7 +155,7 @@ index bd31ef4d919c9ddce958024a93edf1aab44436b6..6b7c5c7b2dd0fa83797ef57a34f7eb99 } content::WebContents* CreateCustomWebContents( diff --git a/components/embedder_support/android/delegate/web_contents_delegate_android.cc b/components/embedder_support/android/delegate/web_contents_delegate_android.cc -index a6c3e1047551537b5bf4807019f28bb285252528..92fb3e3c03f9f925c54350dd122fa0e39e9ff9dc 100644 +index 6402c3406ec8808b41c7a6af1075a7ae03d6c545..f7c5950ab8782ed1d738363feeed1a9877a7cf6b 100644 --- a/components/embedder_support/android/delegate/web_contents_delegate_android.cc +++ b/components/embedder_support/android/delegate/web_contents_delegate_android.cc @@ -185,14 +185,13 @@ bool WebContentsDelegateAndroid::IsWebContentsCreationOverridden( @@ -176,7 +176,7 @@ index a6c3e1047551537b5bf4807019f28bb285252528..92fb3e3c03f9f925c54350dd122fa0e3 java_gurl); } diff --git a/components/embedder_support/android/delegate/web_contents_delegate_android.h b/components/embedder_support/android/delegate/web_contents_delegate_android.h -index 6c89a03712b9449e1a7b0e38ed9d019b30029c15..50b324ef3f1163e462ad145e58b42bf3fd053a0a 100644 +index 9484a324478d3fe746a51e645368eb3b602ce91d..0676e60fe7773cfcb22e62abff67a66ef6153128 100644 --- a/components/embedder_support/android/delegate/web_contents_delegate_android.h +++ b/components/embedder_support/android/delegate/web_contents_delegate_android.h @@ -82,8 +82,7 @@ class WebContentsDelegateAndroid : public content::WebContentsDelegate { @@ -218,10 +218,10 @@ index c6838c83ef971b88769b1f3fba8095025ae25464..2da6a4e08340e72ba7de5d03444c2f17 content::WebContents* AddNewContents( content::WebContents* source, diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index de6b544df67c9702b6771b08b003805b4f5fb5a4..4de45e398ec013714302c8cbaafa3bb6aa01ef8e 100644 +index aeb43c34486e5c6e5a6e79487f1964ed3c3aee6f..6da96d1306afb5e6812ca1c9e3b4cafc9c9425bd 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4782,8 +4782,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -4785,8 +4785,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( if (delegate_ && delegate_->IsWebContentsCreationOverridden( source_site_instance, params.window_container_type, @@ -246,10 +246,10 @@ index d5a7a639089ad37cb611c2ae253675b119ac357b..fca239fa24512aed69c420dcdc99be9b } diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h -index 7f38098505afabe1887a6d98a705f1adce201314..735ec45c68dc4951a2b630f93c1994f985ec4d4f 100644 +index 7413c1bef86f5e4633db7220c5de4de7fbdcc654..0d649bcd408eb02968acd9e479b4d3e78ad639b4 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h -@@ -347,8 +347,7 @@ class CONTENT_EXPORT WebContentsDelegate { +@@ -344,8 +344,7 @@ class CONTENT_EXPORT WebContentsDelegate { SiteInstance* source_site_instance, mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -352,10 +352,10 @@ index 6bc6375433f3ad3f79f5762c15a2a2eb5d26590b..ead1a393dd897ef773d8bcfa089a52ac content::RenderFrameHost* opener, content::SiteInstance* source_site_instance, diff --git a/fuchsia_web/webengine/browser/frame_impl.cc b/fuchsia_web/webengine/browser/frame_impl.cc -index 2052ea2d325cf7b6c4c831d92fc493528746d343..04949a2c52feef18f21e10e8f4c5dcea38042b5e 100644 +index 4b6c999c4a2b907f4c3ec97e50218b67dad36e85..d270631108fa348feaf2fe65d8c1a9895c9355f8 100644 --- a/fuchsia_web/webengine/browser/frame_impl.cc +++ b/fuchsia_web/webengine/browser/frame_impl.cc -@@ -574,8 +574,7 @@ bool FrameImpl::IsWebContentsCreationOverridden( +@@ -572,8 +572,7 @@ bool FrameImpl::IsWebContentsCreationOverridden( content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -394,10 +394,10 @@ index b9ee0246ae33b8b66bbd0feb53f56f5f2cc75e2c..16930e15a37a9ccb3cf21c38ac86272c ->options() ->block_new_web_contents(); diff --git a/ui/views/controls/webview/web_dialog_view.cc b/ui/views/controls/webview/web_dialog_view.cc -index fde8b6ded980b38cfbeb44acfd5f8c6b05b5fef8..7f6e2e4b4b413014e42aa428477d151b41fc4503 100644 +index 1a3b4a9408d8dd72ae704b3f48924d56132fe173..2a96dec82efbdbe4fb5fcd714b63b4d9baec2c42 100644 --- a/ui/views/controls/webview/web_dialog_view.cc +++ b/ui/views/controls/webview/web_dialog_view.cc -@@ -449,8 +449,7 @@ bool WebDialogView::IsWebContentsCreationOverridden( +@@ -456,8 +456,7 @@ bool WebDialogView::IsWebContentsCreationOverridden( content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, @@ -408,7 +408,7 @@ index fde8b6ded980b38cfbeb44acfd5f8c6b05b5fef8..7f6e2e4b4b413014e42aa428477d151b return delegate_->HandleShouldOverrideWebContentsCreation(); return false; diff --git a/ui/views/controls/webview/web_dialog_view.h b/ui/views/controls/webview/web_dialog_view.h -index 5ffd43b4907b7083c5fe0eb30279c75aac1a1800..2caa4140f2dca8c81e24d3738800fc0bce40287a 100644 +index c96aeb2571961fa2ad033ca38600006e0e657699..2c733734103bf2cc0af9bcfb32d753053a287775 100644 --- a/ui/views/controls/webview/web_dialog_view.h +++ b/ui/views/controls/webview/web_dialog_view.h @@ -167,8 +167,7 @@ class WEBVIEW_EXPORT WebDialogView : public ClientView, diff --git a/patches/chromium/crash_allow_setting_more_options.patch b/patches/chromium/crash_allow_setting_more_options.patch index 40a9ffe594..0664b56bd4 100644 --- a/patches/chromium/crash_allow_setting_more_options.patch +++ b/patches/chromium/crash_allow_setting_more_options.patch @@ -9,10 +9,10 @@ rate-limiting, compression and global annotations. This should be upstreamed. diff --git a/components/crash/core/app/crash_reporter_client.cc b/components/crash/core/app/crash_reporter_client.cc -index c4535e6ad8dd8951277201e107aaf47071317b02..e37a31fb7febca3ec9ed6bd53f33c0c7c43844de 100644 +index 2284f329488bb85b155516d31f8618f6dbb495f1..43616a86908f0925c0345fadaa71cb4e0f9e776a 100644 --- a/components/crash/core/app/crash_reporter_client.cc +++ b/components/crash/core/app/crash_reporter_client.cc -@@ -122,6 +122,17 @@ bool CrashReporterClient::ReportingIsEnforcedByPolicy(bool* breakpad_enabled) { +@@ -119,6 +119,17 @@ bool CrashReporterClient::ReportingIsEnforcedByPolicy(bool* breakpad_enabled) { return false; } @@ -31,7 +31,7 @@ index c4535e6ad8dd8951277201e107aaf47071317b02..e37a31fb7febca3ec9ed6bd53f33c0c7 unsigned int CrashReporterClient::GetCrashDumpPercentage() { return 100; diff --git a/components/crash/core/app/crash_reporter_client.h b/components/crash/core/app/crash_reporter_client.h -index 4029756b90d1adb2fa6a2ce3a59439d1eccffcf2..6f951fc335db3b9c59172d77e1e65122053b459e 100644 +index 5f3b6d61110c1b02bb23a3a647dd51efa3444ed0..f2221953791ad3a6543c68ab32fe1334075b4a59 100644 --- a/components/crash/core/app/crash_reporter_client.h +++ b/components/crash/core/app/crash_reporter_client.h @@ -7,6 +7,7 @@ @@ -42,7 +42,7 @@ index 4029756b90d1adb2fa6a2ce3a59439d1eccffcf2..6f951fc335db3b9c59172d77e1e65122 #include #include "build/build_config.h" -@@ -129,6 +130,19 @@ class CrashReporterClient { +@@ -132,6 +133,19 @@ class CrashReporterClient { // that case, |breakpad_enabled| is set to the value enforced by policies. virtual bool ReportingIsEnforcedByPolicy(bool* breakpad_enabled); @@ -63,10 +63,10 @@ index 4029756b90d1adb2fa6a2ce3a59439d1eccffcf2..6f951fc335db3b9c59172d77e1e65122 // Used by WebView to sample crashes without generating the unwanted dumps. If // the returned value is less than 100, crash dumping will be sampled to that diff --git a/components/crash/core/app/crashpad_linux.cc b/components/crash/core/app/crashpad_linux.cc -index 171095381e8acff07ae29531537cdadf76b2c462..8963eade0da26f1494ed26e4b6001f37aca82410 100644 +index be28b8449b75b58bbcadc70a31a429f2aaf858c4..f2f09367d83788016d7e4bc3c9df5dfb44c0189c 100644 --- a/components/crash/core/app/crashpad_linux.cc +++ b/components/crash/core/app/crashpad_linux.cc -@@ -231,6 +231,7 @@ bool PlatformCrashpadInitialization( +@@ -230,6 +230,7 @@ bool PlatformCrashpadInitialization( // where crash_reporter provides it's own values for lsb-release. annotations["lsb-release"] = base::GetLinuxDistro(); #endif @@ -74,7 +74,7 @@ index 171095381e8acff07ae29531537cdadf76b2c462..8963eade0da26f1494ed26e4b6001f37 std::vector arguments; if (crash_reporter_client->ShouldMonitorCrashHandlerExpensively()) { -@@ -252,6 +253,13 @@ bool PlatformCrashpadInitialization( +@@ -251,6 +252,13 @@ bool PlatformCrashpadInitialization( } #endif diff --git a/patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch b/patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch index 853bcbfc07..63bbf4ac6e 100644 --- a/patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch +++ b/patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch @@ -7,10 +7,10 @@ By default, chromium sets up one v8 snapshot to be used in all v8 contexts. This to have a dedicated browser process v8 snapshot defined by the file `browser_v8_context_snapshot.bin`. diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc -index bde1ca7a9d076d240056a38437615523f9fa2420..a3259377e3ceecfe181dc2b22a4a86e3aae46c36 100644 +index 2ea73bf0f0e16ad01e547bb0ec8082ddd02286c2..1ce0ff532976d5d2ac61d6ae14699d5c12c8d490 100644 --- a/content/app/content_main_runner_impl.cc +++ b/content/app/content_main_runner_impl.cc -@@ -279,8 +279,13 @@ void AsanProcessInfoCB(const char*, bool*) { +@@ -280,8 +280,13 @@ void AsanProcessInfoCB(const char*, bool*) { } #endif // defined(ADDRESS_SANITIZER) @@ -25,7 +25,7 @@ index bde1ca7a9d076d240056a38437615523f9fa2420..a3259377e3ceecfe181dc2b22a4a86e3 #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) base::FileDescriptorStore& file_descriptor_store = base::FileDescriptorStore::GetInstance(); -@@ -309,11 +314,12 @@ bool ShouldLoadV8Snapshot(const base::CommandLine& command_line, +@@ -310,11 +315,12 @@ bool ShouldLoadV8Snapshot(const base::CommandLine& command_line, #endif // V8_USE_EXTERNAL_STARTUP_DATA @@ -40,7 +40,7 @@ index bde1ca7a9d076d240056a38437615523f9fa2420..a3259377e3ceecfe181dc2b22a4a86e3 #endif // V8_USE_EXTERNAL_STARTUP_DATA } -@@ -989,7 +995,7 @@ int ContentMainRunnerImpl::Initialize(ContentMainParams params) { +@@ -990,7 +996,7 @@ int ContentMainRunnerImpl::Initialize(ContentMainParams params) { return TerminateForFatalInitializationError(); #endif // BUILDFLAG(IS_ANDROID) && (ICU_UTIL_DATA_IMPL == ICU_UTIL_DATA_FILE) diff --git a/patches/chromium/disable_hidden.patch b/patches/chromium/disable_hidden.patch index 0cb36f0bed..c96af08fc3 100644 --- a/patches/chromium/disable_hidden.patch +++ b/patches/chromium/disable_hidden.patch @@ -6,7 +6,7 @@ Subject: disable_hidden.patch Electron uses this to disable background throttling for hidden windows. diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index e8f68eca2104c49d762603f39f93ec44b2afe28f..886d70636aedfa714b29625f58420ad11ede9ffd 100644 +index fc6a4764bbe0a1380583e5c871d9dbb718669ded..6ad5dd5d062cc84b79b36572955a676cb5936ffd 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc @@ -789,6 +789,10 @@ void RenderWidgetHostImpl::WasHidden() { @@ -21,7 +21,7 @@ index e8f68eca2104c49d762603f39f93ec44b2afe28f..886d70636aedfa714b29625f58420ad1 // Prompts should remain open and functional across tab switches. if (!delegate_->IsWaitingForPointerLockPrompt(this)) { diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h -index 01b87c84b32c01b93f04a9b8f477564915b1e8d0..8e08570ab381cbbf70d6729f8f13059bd953a9c2 100644 +index 2e82843467aa4aae672483aabe20b4b896c03717..b1c50b7f7516abcc4023878a9829deb8ef2b2340 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h @@ -1023,6 +1023,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl diff --git a/patches/chromium/expose_setuseragent_on_networkcontext.patch b/patches/chromium/expose_setuseragent_on_networkcontext.patch index 2902669fbb..2963d7e17f 100644 --- a/patches/chromium/expose_setuseragent_on_networkcontext.patch +++ b/patches/chromium/expose_setuseragent_on_networkcontext.patch @@ -33,10 +33,10 @@ index 0ab8187b0db8ae6db46d81738f653a2bc4c566f6..de3d55e85c22317f7f9375eb94d0d5d4 } // namespace net diff --git a/services/network/network_context.cc b/services/network/network_context.cc -index 4be02fdb03038ee4c30ea699cbbf56d1f5aaa7aa..b0a994b7c6d4be648d905bc1e4157bc03b56a428 100644 +index c72e66a92d20a1366b750c976191c7d7628b1ebc..34a92171a8bc09470eb4486543d9836c3ae29825 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1793,6 +1793,13 @@ void NetworkContext::SetNetworkConditions( +@@ -1794,6 +1794,13 @@ void NetworkContext::SetNetworkConditions( std::move(network_conditions)); } @@ -51,10 +51,10 @@ index 4be02fdb03038ee4c30ea699cbbf56d1f5aaa7aa..b0a994b7c6d4be648d905bc1e4157bc0 // This may only be called on NetworkContexts created with the constructor // that calls MakeURLRequestContext(). diff --git a/services/network/network_context.h b/services/network/network_context.h -index e77c58cb996fd90f7c268e1beba8f3f93c458c2a..a1ea5369db65498f7eaac5b3ee7eb1be539b46e8 100644 +index 01b673a5d0796e15f63953455215dd0a1c306ff1..dcb142bf4daac90e2925386ffc18089262c01951 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -316,6 +316,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -317,6 +317,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext void CloseIdleConnections(CloseIdleConnectionsCallback callback) override; void SetNetworkConditions(const base::UnguessableToken& throttling_profile_id, mojom::NetworkConditionsPtr conditions) override; @@ -63,10 +63,10 @@ index e77c58cb996fd90f7c268e1beba8f3f93c458c2a..a1ea5369db65498f7eaac5b3ee7eb1be void SetEnableReferrers(bool enable_referrers) override; #if BUILDFLAG(IS_CT_SUPPORTED) diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom -index da6abf26316a5a0c8b65203a151eb07ec179233a..00539e44efcbbdabad701e0c755a958a588299d4 100644 +index 6d7df96ea41ce10019285c927246208cb3001f8b..8b6fd3726add58937df6a4d91640a8b36f106c52 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1228,6 +1228,9 @@ interface NetworkContext { +@@ -1241,6 +1241,9 @@ interface NetworkContext { SetNetworkConditions(mojo_base.mojom.UnguessableToken throttling_profile_id, NetworkConditions? conditions); @@ -77,10 +77,10 @@ index da6abf26316a5a0c8b65203a151eb07ec179233a..00539e44efcbbdabad701e0c755a958a SetAcceptLanguage(string new_accept_language); diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h -index 0aa64468f433bf6f9f85cdf95ff098b1aa925649..3bfca8debf95d4b9ad822e6cbebeb253e2ac052b 100644 +index 86430711eac5304c96486b0786b6ec3a26ce752b..16800dc67e932f53d679af051fbdd9871f531269 100644 --- a/services/network/test/test_network_context.h +++ b/services/network/test/test_network_context.h -@@ -155,6 +155,7 @@ class TestNetworkContext : public mojom::NetworkContext { +@@ -156,6 +156,7 @@ class TestNetworkContext : public mojom::NetworkContext { void CloseIdleConnections(CloseIdleConnectionsCallback callback) override {} void SetNetworkConditions(const base::UnguessableToken& throttling_profile_id, mojom::NetworkConditionsPtr conditions) override {} diff --git a/patches/chromium/extend_apply_webpreferences.patch b/patches/chromium/extend_apply_webpreferences.patch index 6b687eab78..a2a9433a83 100644 --- a/patches/chromium/extend_apply_webpreferences.patch +++ b/patches/chromium/extend_apply_webpreferences.patch @@ -12,7 +12,7 @@ Ideally we could add an embedder observer pattern here but that can be done in future work. diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc -index ed0c77c14e8dcf3e6d7328c8a9c640388b7be92d..7bf2296e1a3b48cc3aa7f031d5b835fab8488267 100644 +index 1b94c78dc66f80c062365fe4f5aaca73d3e7ff5a..eaeb83e0ae7c5d1088ea097ced5dd7aee97314ea 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc @@ -169,6 +169,7 @@ @@ -23,7 +23,7 @@ index ed0c77c14e8dcf3e6d7328c8a9c640388b7be92d..7bf2296e1a3b48cc3aa7f031d5b835fa #include "third_party/blink/renderer/platform/graphics/image.h" #include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h" #include "third_party/blink/renderer/platform/graphics/paint/paint_record_builder.h" -@@ -1850,6 +1851,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, +@@ -1854,6 +1855,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, #if BUILDFLAG(IS_MAC) web_view_impl->SetMaximumLegibleScale( prefs.default_maximum_page_scale_factor); diff --git a/patches/chromium/feat_allow_usage_of_sccontentsharingpicker_on_supported_platforms.patch b/patches/chromium/feat_allow_usage_of_sccontentsharingpicker_on_supported_platforms.patch index 55964d971d..fc22463646 100644 --- a/patches/chromium/feat_allow_usage_of_sccontentsharingpicker_on_supported_platforms.patch +++ b/patches/chromium/feat_allow_usage_of_sccontentsharingpicker_on_supported_platforms.patch @@ -7,10 +7,10 @@ This is implemented as a magic "window id" that instead of pulling an SCStream m instead farms out to the screen picker. diff --git a/content/browser/media/capture/desktop_capture_device_mac.cc b/content/browser/media/capture/desktop_capture_device_mac.cc -index 88c56f4dfcc1f8517ef1e8b6f1d37f5ba4d0b2c7..a75493a6d4d8ce8340a2d820eff5eed4e6a95109 100644 +index afb657b7c9e1ede1273532b16428d37cc5d75c59..16707cf516cd34682c84ea2ccebddaa0f84e01f8 100644 --- a/content/browser/media/capture/desktop_capture_device_mac.cc +++ b/content/browser/media/capture/desktop_capture_device_mac.cc -@@ -28,7 +28,7 @@ class DesktopCaptureDeviceMac : public IOSurfaceCaptureDeviceBase { +@@ -29,7 +29,7 @@ class DesktopCaptureDeviceMac : public IOSurfaceCaptureDeviceBase { ~DesktopCaptureDeviceMac() override = default; // IOSurfaceCaptureDeviceBase: @@ -20,7 +20,7 @@ index 88c56f4dfcc1f8517ef1e8b6f1d37f5ba4d0b2c7..a75493a6d4d8ce8340a2d820eff5eed4 requested_format_.pixel_format = media::PIXEL_FORMAT_NV12; DCHECK_GT(requested_format_.frame_size.GetArea(), 0); diff --git a/content/browser/media/capture/io_surface_capture_device_base_mac.cc b/content/browser/media/capture/io_surface_capture_device_base_mac.cc -index 8a774911ce0f610b2c993976d108f840696c1d02..5ead7287e2d765d043f8b9c0229a2ee825d9f544 100644 +index e59ed011a70358a4ff61342e4db3e0ce4cad8ab0..e3fa18fbade4c11f5317705bc89a1e2456c924bc 100644 --- a/content/browser/media/capture/io_surface_capture_device_base_mac.cc +++ b/content/browser/media/capture/io_surface_capture_device_base_mac.cc @@ -20,7 +20,7 @@ void IOSurfaceCaptureDeviceBase::AllocateAndStart( diff --git a/patches/chromium/feat_configure_launch_options_for_service_process.patch b/patches/chromium/feat_configure_launch_options_for_service_process.patch index 59ab1a1c95..b5b2919be6 100644 --- a/patches/chromium/feat_configure_launch_options_for_service_process.patch +++ b/patches/chromium/feat_configure_launch_options_for_service_process.patch @@ -187,10 +187,10 @@ index bdd5bec301f5fcff2d3e3d7994ecbc4eae46da36..f6082bada22c5f4e70af60ea6f555b0f host->GetChildProcess()->BindServiceInterface(std::move(receiver)); } diff --git a/content/browser/utility_process_host.cc b/content/browser/utility_process_host.cc -index 62ed305cd55a0243899450592dd6097e6dbbe879..cdc2046f465110b60285da81fb0db7cdce064a59 100644 +index 76cff9038fd48b7373f9a8df265fa8ed0648d1db..03f417e6b0aafc426e068a9bea1880524f983370 100644 --- a/content/browser/utility_process_host.cc +++ b/content/browser/utility_process_host.cc -@@ -179,11 +179,13 @@ const ChildProcessData& UtilityProcessHost::GetData() { +@@ -184,11 +184,13 @@ const ChildProcessData& UtilityProcessHost::GetData() { return process_->GetData(); } @@ -206,7 +206,7 @@ index 62ed305cd55a0243899450592dd6097e6dbbe879..cdc2046f465110b60285da81fb0db7cd bool UtilityProcessHost::Start() { return StartProcess(); -@@ -230,6 +232,30 @@ void UtilityProcessHost::SetZygoteForTesting(ZygoteCommunication* handle) { +@@ -235,6 +237,30 @@ void UtilityProcessHost::SetZygoteForTesting(ZygoteCommunication* handle) { } #endif // BUILDFLAG(USE_ZYGOTE) @@ -237,7 +237,7 @@ index 62ed305cd55a0243899450592dd6097e6dbbe879..cdc2046f465110b60285da81fb0db7cd mojom::ChildProcess* UtilityProcessHost::GetChildProcess() { return static_cast(process_->GetHost()) ->child_process(); -@@ -432,9 +458,26 @@ bool UtilityProcessHost::StartProcess() { +@@ -440,9 +466,26 @@ bool UtilityProcessHost::StartProcess() { } #endif // BUILDFLAG(ENABLE_GPU_CHANNEL_MEDIA_CAPTURE) && !BUILDFLAG(IS_WIN) diff --git a/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch b/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch index af3fe5ee79..3b25efc5ed 100644 --- a/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch +++ b/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch @@ -8,7 +8,7 @@ rendering with the viz compositor by way of a custom HostDisplayClient and LayeredWindowUpdater. diff --git a/components/viz/host/host_display_client.cc b/components/viz/host/host_display_client.cc -index d20063ec5ccbe6a555fe5da92f4c99a405ecb988..96ee427015987b38c9cb341afc8400ce26795fa6 100644 +index abb381d76137d10888380cffc6708df494d3718f..f3da70523976e080c732f9c9dd7048d72b20cd65 100644 --- a/components/viz/host/host_display_client.cc +++ b/components/viz/host/host_display_client.cc @@ -48,9 +48,9 @@ void HostDisplayClient::OnDisplayReceivedCALayerParams( @@ -37,7 +37,7 @@ index d20063ec5ccbe6a555fe5da92f4c99a405ecb988..96ee427015987b38c9cb341afc8400ce +#if BUILDFLAG(IS_WIN) void HostDisplayClient::AddChildWindowToBrowser( gpu::SurfaceHandle child_window) { - NOTREACHED_IN_MIGRATION(); + NOTREACHED(); diff --git a/components/viz/host/host_display_client.h b/components/viz/host/host_display_client.h index 294f99f234006709363d5ae1c7d52aeb19691a7c..e5b9d104e157b588dcd0a2e856a1db2df1cfe658 100644 --- a/components/viz/host/host_display_client.h @@ -117,7 +117,7 @@ index 7fbb05e606fc26364c674c6330b8a5eb9c016fb3..a190a42c2127011ab54aae937a3cab36 virtual gpu::SharedImageManager* GetSharedImageManager() = 0; virtual gpu::SyncPointManager* GetSyncPointManager() = 0; diff --git a/components/viz/service/display_embedder/output_surface_provider_impl.cc b/components/viz/service/display_embedder/output_surface_provider_impl.cc -index 4be4660c007ee5cd9da9947dc61d2497931d0ddb..f382cef64946576c85588ef4d3b334a2ec9e61bd 100644 +index d01e905f155e5e7a43e43a8383fcf9dba360600c..a7432b3192c93b5fdf6b754906f66e9916306b61 100644 --- a/components/viz/service/display_embedder/output_surface_provider_impl.cc +++ b/components/viz/service/display_embedder/output_surface_provider_impl.cc @@ -25,6 +25,7 @@ @@ -521,7 +521,7 @@ index 796ae2688436eb07f19909641d1620dd02f10cdb..c9e0eee0b329caf46669b419b1cd10cf waiting_on_draw_ack_ = true; diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc -index ad65e087075b576222fe9541948afdd777e76cbf..20f0f50e226ce6e488a7636d4d3c08e3d2e2f5e5 100644 +index 2538e963ef714148f2a944da8a73c832ecac69f4..ac73b420cf167a5e1b4ef917a156a6069e20f36b 100644 --- a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc +++ b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc @@ -102,7 +102,8 @@ RootCompositorFrameSinkImpl::Create( diff --git a/patches/chromium/feat_enable_passing_exit_code_on_service_process_crash.patch b/patches/chromium/feat_enable_passing_exit_code_on_service_process_crash.patch index f9b2591d1e..3163e4f9e8 100644 --- a/patches/chromium/feat_enable_passing_exit_code_on_service_process_crash.patch +++ b/patches/chromium/feat_enable_passing_exit_code_on_service_process_crash.patch @@ -52,10 +52,10 @@ index f6082bada22c5f4e70af60ea6f555b0f363919c5..f691676a629bf82f81117599ae0bd0a4 private: diff --git a/content/browser/utility_process_host.cc b/content/browser/utility_process_host.cc -index cdc2046f465110b60285da81fb0db7cdce064a59..8feca9f1c294b3de15d74dfc94508ee2a43e5fc3 100644 +index 03f417e6b0aafc426e068a9bea1880524f983370..6c6b5636d9b25093ff0a2cb1218d9fcc5ee1adfd 100644 --- a/content/browser/utility_process_host.cc +++ b/content/browser/utility_process_host.cc -@@ -515,7 +515,7 @@ void UtilityProcessHost::OnProcessCrashed(int exit_code) { +@@ -523,7 +523,7 @@ void UtilityProcessHost::OnProcessCrashed(int exit_code) { // Take ownership of |client_| so the destructor doesn't notify it of // termination. auto client = std::move(client_); diff --git a/patches/chromium/feat_expose_documentloader_setdefersloading_on_webdocumentloader.patch b/patches/chromium/feat_expose_documentloader_setdefersloading_on_webdocumentloader.patch index a31d0d6c33..13ece77e60 100644 --- a/patches/chromium/feat_expose_documentloader_setdefersloading_on_webdocumentloader.patch +++ b/patches/chromium/feat_expose_documentloader_setdefersloading_on_webdocumentloader.patch @@ -28,7 +28,7 @@ index 23b29fe25bc463ff1d36aa502a27c4222595e7c5..c1ac6172c4cee72f64f42ca64d2db9c0 // Returns the http referrer of original request which initited this load. diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h -index 1738bf073ecb7dcb388758cc50148a07626df5ea..fbfc870a21979dacad95a901fb9a7624e18e4a61 100644 +index abe9239b5863c0cac7623d121580de1f61e83232..3cd9fe38ca4017064d2e17a7d083a8bebbfab34c 100644 --- a/third_party/blink/renderer/core/loader/document_loader.h +++ b/third_party/blink/renderer/core/loader/document_loader.h @@ -325,7 +325,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected, diff --git a/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch b/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch index ed75f4ee79..1b7c94698e 100644 --- a/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch +++ b/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch @@ -37,10 +37,10 @@ index 57713d234ec93e81ad5ee177f0e2978d7fe82e1d..535cb485455d6a2e23fea4042be4ad91 allow_cookies_from_browser == other.allow_cookies_from_browser && include_request_cookies_with_response == diff --git a/services/network/public/cpp/resource_request.h b/services/network/public/cpp/resource_request.h -index 21a29e5d737874e26cee0217b23afda6c1084d0a..214cc2c5033fd5f410e1ffba74b2089c205e5c2f 100644 +index 176db1e8c4b4deafa1b741255474cf6d903d69cd..4ed734888dbeba3099f41767c481da68f5cd0bc3 100644 --- a/services/network/public/cpp/resource_request.h +++ b/services/network/public/cpp/resource_request.h -@@ -74,6 +74,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest { +@@ -75,6 +75,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest { bool has_user_activation = false; bool allow_cookies_from_browser = false; bool include_request_cookies_with_response = false; @@ -49,10 +49,10 @@ index 21a29e5d737874e26cee0217b23afda6c1084d0a..214cc2c5033fd5f410e1ffba74b2089c mojo::PendingRemote trust_token_observer; mojo::PendingRemote diff --git a/services/network/public/cpp/url_request_mojom_traits.cc b/services/network/public/cpp/url_request_mojom_traits.cc -index 169b94af574000dd48c64197334038701a43a4a8..85297b343999014999301e2c512e6ffe087eac89 100644 +index 59a180c4aa3dc1ee424b6c4944bab46b7b259a53..9e3ddf00b824408d4eee70e8eadd1d07e42c3730 100644 --- a/services/network/public/cpp/url_request_mojom_traits.cc +++ b/services/network/public/cpp/url_request_mojom_traits.cc -@@ -94,6 +94,7 @@ bool StructTraitsallow_cookies_from_browser = data.allow_cookies_from_browser(); out->include_request_cookies_with_response = data.include_request_cookies_with_response(); @@ -61,10 +61,10 @@ index 169b94af574000dd48c64197334038701a43a4a8..85297b343999014999301e2c512e6ffe mojo::PendingRemote>(); out->trust_token_observer = data.TakeTrustTokenObserver< diff --git a/services/network/public/cpp/url_request_mojom_traits.h b/services/network/public/cpp/url_request_mojom_traits.h -index 1690318cc495f46b1b6e16888cd05c6d9e93820b..52f4eb61e0e4be10ea0e1a01a4e166e6dd7094e9 100644 +index 5a017a816858ff9748e6eb0fa0dac5a64dd8f2ae..22025bedb1e307fd02314ac0a4250ca90ee3e5bf 100644 --- a/services/network/public/cpp/url_request_mojom_traits.h +++ b/services/network/public/cpp/url_request_mojom_traits.h -@@ -76,6 +76,10 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) +@@ -77,6 +77,10 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) const network::ResourceRequest::TrustedParams& trusted_params) { return trusted_params.include_request_cookies_with_response; } @@ -76,10 +76,10 @@ index 1690318cc495f46b1b6e16888cd05c6d9e93820b..52f4eb61e0e4be10ea0e1a01a4e166e6 cookie_observer( const network::ResourceRequest::TrustedParams& trusted_params) { diff --git a/services/network/public/mojom/url_request.mojom b/services/network/public/mojom/url_request.mojom -index e88bda2cb7d2f22e80b5ac7053a77896b7d47fc8..8e4821a6f2a4ad03b1b8b4dbae7c5d9b53898cf3 100644 +index 0e9546fbcaa0b2999f5e9d163550ef152b21adcc..1608b5662ddbb12cf022f043b699983bc814771a 100644 --- a/services/network/public/mojom/url_request.mojom +++ b/services/network/public/mojom/url_request.mojom -@@ -81,6 +81,9 @@ struct TrustedUrlRequestParams { +@@ -82,6 +82,9 @@ struct TrustedUrlRequestParams { // client which should not be able to see them. bool include_request_cookies_with_response = false; @@ -112,10 +112,10 @@ index 5c4b8a05034f8defacbc13671fe9bc92f76ade5a..e7390e01f113755613f42d592b36108b string mime_type; diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc -index c0fbb04f0717fafedb561acb6ec76a451d541dfe..beb3fe75a654510b60b62ab29380c7ff243bb095 100644 +index 812ad7df20f420033f7d1517a560ececa84c94bd..d425623e120c0fce4a2f32357090910fb8df3790 100644 --- a/services/network/url_loader.cc +++ b/services/network/url_loader.cc -@@ -601,6 +601,9 @@ URLLoader::URLLoader( +@@ -612,6 +612,9 @@ URLLoader::URLLoader( mojo::SimpleWatcher::ArmingPolicy::MANUAL, base::SequencedTaskRunner::GetCurrentDefault()), per_factory_orb_state_(context.GetMutableOrbState()), @@ -125,7 +125,7 @@ index c0fbb04f0717fafedb561acb6ec76a451d541dfe..beb3fe75a654510b60b62ab29380c7ff devtools_request_id_(request.devtools_request_id), request_mode_(request.mode), request_credentials_mode_(request.credentials_mode), -@@ -874,7 +877,7 @@ void URLLoader::ConfigureRequest( +@@ -891,7 +894,7 @@ void URLLoader::ConfigureRequest( &URLLoader::IsSharedDictionaryReadAllowed, base::Unretained(this))); } @@ -134,7 +134,7 @@ index c0fbb04f0717fafedb561acb6ec76a451d541dfe..beb3fe75a654510b60b62ab29380c7ff url_request_->SetResponseHeadersCallback(base::BindRepeating( &URLLoader::SetRawResponseHeaders, base::Unretained(this))); } -@@ -1852,6 +1855,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) { +@@ -1884,6 +1887,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) { } response_ = BuildResponseHead(); @@ -155,10 +155,10 @@ index c0fbb04f0717fafedb561acb6ec76a451d541dfe..beb3fe75a654510b60b62ab29380c7ff // Parse and remove the Trust Tokens response headers, if any are expected, diff --git a/services/network/url_loader.h b/services/network/url_loader.h -index 994bfb1ba0767f526458cc5cf6df179bcf7c2f3d..0baab6334a650bc34b95b0f68978e9aa2e30af59 100644 +index 3647c75f50a85522749fdc5c98c4d25e5f319c34..93d4bc0284e2361f6890078764d68c3ba75d7941 100644 --- a/services/network/url_loader.h +++ b/services/network/url_loader.h -@@ -708,6 +708,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader +@@ -712,6 +712,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader std::unique_ptr resource_scheduler_request_handle_; diff --git a/patches/chromium/fix_adapt_exclusive_access_for_electron_needs.patch b/patches/chromium/fix_adapt_exclusive_access_for_electron_needs.patch index 9e0a4d32a2..5a118eee7a 100644 --- a/patches/chromium/fix_adapt_exclusive_access_for_electron_needs.patch +++ b/patches/chromium/fix_adapt_exclusive_access_for_electron_needs.patch @@ -16,13 +16,13 @@ Linux or Windows to un-fullscreen in some circumstances without this change. diff --git a/chrome/browser/ui/exclusive_access/fullscreen_controller.cc b/chrome/browser/ui/exclusive_access/fullscreen_controller.cc -index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588efdfb0619 100644 +index e9c7ab23a1e9c3eda0f4fb94bf3ef44de7de7ad3..21367db92b195c3883729c3f599694295928f03f 100644 --- a/chrome/browser/ui/exclusive_access/fullscreen_controller.cc +++ b/chrome/browser/ui/exclusive_access/fullscreen_controller.cc -@@ -21,12 +21,16 @@ +@@ -20,12 +20,16 @@ + #include "chrome/browser/browser_process.h" #include "chrome/browser/history/history_service_factory.h" #include "chrome/browser/profiles/profile.h" - #include "chrome/browser/safe_browsing/safe_browsing_service.h" +#if 0 #include "chrome/browser/ui/blocked_content/popunder_preventer.h" +#endif @@ -36,7 +36,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e #include "chrome/common/chrome_switches.h" #include "components/history/core/browser/history_service.h" #include "components/history/core/browser/history_types.h" -@@ -259,10 +263,12 @@ void FullscreenController::EnterFullscreenModeForTab( +@@ -262,10 +266,12 @@ void FullscreenController::EnterFullscreenModeForTab( return; } @@ -49,7 +49,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e // Keep the current state. |SetTabWithExclusiveAccess| may change the return // value of |IsWindowFullscreenForTabOrPending|. -@@ -374,12 +380,14 @@ void FullscreenController::ExitFullscreenModeForTab(WebContents* web_contents) { +@@ -377,12 +383,14 @@ void FullscreenController::ExitFullscreenModeForTab(WebContents* web_contents) { void FullscreenController::FullscreenTabOpeningPopup( content::WebContents* opener, content::WebContents* popup) { @@ -64,7 +64,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e } void FullscreenController::OnTabDeactivated( -@@ -465,10 +473,12 @@ void FullscreenController::FullscreenTransitionCompleted() { +@@ -468,10 +476,12 @@ void FullscreenController::FullscreenTransitionCompleted() { #endif // DCHECK_IS_ON() tab_fullscreen_target_display_id_ = display::kInvalidDisplayId; started_fullscreen_transition_ = false; @@ -77,7 +77,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e } void FullscreenController::RunOrDeferUntilTransitionIsComplete( -@@ -576,18 +586,17 @@ void FullscreenController::EnterFullscreenModeInternal( +@@ -585,18 +595,17 @@ void FullscreenController::EnterFullscreenModeInternal( // Do not enter fullscreen mode if disallowed by pref. This prevents the user // from manually entering fullscreen mode and also disables kiosk mode on // desktop platforms. @@ -101,7 +101,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e if (option == TAB) { url = GetRequestingOrigin(); tab_fullscreen_ = true; -@@ -620,6 +629,7 @@ void FullscreenController::EnterFullscreenModeInternal( +@@ -629,6 +638,7 @@ void FullscreenController::EnterFullscreenModeInternal( if (!extension_caused_fullscreen_.is_empty()) url = extension_caused_fullscreen_; } @@ -109,7 +109,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e fullscreen_start_time_ = base::TimeTicks::Now(); if (option == BROWSER) -@@ -640,6 +650,7 @@ void FullscreenController::ExitFullscreenModeInternal() { +@@ -649,6 +659,7 @@ void FullscreenController::ExitFullscreenModeInternal() { return; } @@ -117,7 +117,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e // `fullscreen_start_time_` is null if a fullscreen tab moves to a new window. if (fullscreen_start_time_ && exclusive_access_tab()) { ukm::SourceId source_id = -@@ -651,15 +662,16 @@ void FullscreenController::ExitFullscreenModeInternal() { +@@ -660,15 +671,16 @@ void FullscreenController::ExitFullscreenModeInternal() { .Record(ukm::UkmRecorder::Get()); fullscreen_start_time_.reset(); } @@ -137,7 +137,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e exclusive_access_manager()->context()->ExitFullscreen(); extension_caused_fullscreen_ = GURL(); exclusive_access_manager()->UpdateBubble(base::NullCallback()); -@@ -721,8 +733,12 @@ GURL FullscreenController::GetEmbeddingOrigin() const { +@@ -730,8 +742,12 @@ GURL FullscreenController::GetEmbeddingOrigin() const { void FullscreenController::RecordMetricsOnFullscreenApiRequested( content::RenderFrameHost* requesting_frame) { history::HistoryService* service = @@ -151,10 +151,10 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e // Check if the origin has been visited more than a day ago and whether it's // on an allowlist, then record those bits of information in a metric. diff --git a/chrome/browser/ui/exclusive_access/fullscreen_controller.h b/chrome/browser/ui/exclusive_access/fullscreen_controller.h -index 97003f03b69c9435ee1f79e42476003b63b8a66d..859b9d21985c14c9e9f95c65edfbd89e13ef16e7 100644 +index 3c7a057de47b35217a6b06a21630bf5f8961f935..9f2493ed7319e730d6064f873d1f5ed3a61cbdeb 100644 --- a/chrome/browser/ui/exclusive_access/fullscreen_controller.h +++ b/chrome/browser/ui/exclusive_access/fullscreen_controller.h -@@ -250,10 +250,12 @@ class FullscreenController : public ExclusiveAccessControllerBase { +@@ -253,10 +253,12 @@ class FullscreenController : public ExclusiveAccessControllerBase { // Used in testing to set the state to tab fullscreen. bool is_tab_fullscreen_for_testing_ = false; diff --git a/patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch b/patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch index eb880149bf..ca8af0d195 100644 --- a/patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch +++ b/patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch @@ -23,10 +23,10 @@ Upstream bug https://bugs.chromium.org/p/chromium/issues/detail?id=1081397. Upstreamed at https://chromium-review.googlesource.com/c/chromium/src/+/3856266. diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc -index f8e18b15a19517b28057dd007adccc0fd222e2e1..6e1656f3bd62b597952528bfee884666111277fc 100644 +index 3fea2b30defa555a72425d8806129ea9a7a66646..1f5700ff184935d0e15eec3b550967df117557d5 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -10802,6 +10802,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() { +@@ -10822,6 +10822,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() { "blob"); } @@ -40,7 +40,7 @@ index f8e18b15a19517b28057dd007adccc0fd222e2e1..6e1656f3bd62b597952528bfee884666 // origin of |common_params.url| and/or |common_params.initiator_origin|. url::Origin resolved_origin = url::Origin::Resolve( diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc -index 8f620599f4ccf8729e1b3de16650e73cbfebfadd..9ceab90b928cebb6208513982b5789b9c045bebe 100644 +index fb11dcea26684440b7b08fe5ca4da619ac4ccb5c..bd3591e3d6f1ee66c31897cdfd1994510a8ebe52 100644 --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc @@ -2308,6 +2308,10 @@ Frame* DocumentLoader::CalculateOwnerFrame() { diff --git a/patches/chromium/fix_crash_when_saving_edited_pdf_files.patch b/patches/chromium/fix_crash_when_saving_edited_pdf_files.patch index bbc796df38..45ae06781d 100644 --- a/patches/chromium/fix_crash_when_saving_edited_pdf_files.patch +++ b/patches/chromium/fix_crash_when_saving_edited_pdf_files.patch @@ -13,10 +13,10 @@ This patch can be removed should we choose to support chrome.fileSystem or support it enough to fix the crash. diff --git a/chrome/browser/resources/pdf/pdf_viewer.ts b/chrome/browser/resources/pdf/pdf_viewer.ts -index f7e98f2c94ac9802062880f9341214f88c85a669..86b0b3b7596e7da68c536c0dea3d95b22bdd9481 100644 +index 25f2145d4202af9c386780366f726fbf6dcf558f..860d19e5ba1aa4dd027f3f5e5f2ccd37f54a99ad 100644 --- a/chrome/browser/resources/pdf/pdf_viewer.ts +++ b/chrome/browser/resources/pdf/pdf_viewer.ts -@@ -1076,28 +1076,27 @@ export class PdfViewerElement extends PdfViewerBaseElement { +@@ -1089,28 +1089,27 @@ export class PdfViewerElement extends PdfViewerBaseElement { dataArray = [result.dataToSave]; } @@ -65,7 +65,7 @@ index f7e98f2c94ac9802062880f9341214f88c85a669..86b0b3b7596e7da68c536c0dea3d95b2 } /** -@@ -1288,36 +1287,33 @@ export class PdfViewerElement extends PdfViewerBaseElement { +@@ -1301,36 +1300,33 @@ export class PdfViewerElement extends PdfViewerBaseElement { fileName = fileName + '.pdf'; } @@ -128,7 +128,7 @@ index f7e98f2c94ac9802062880f9341214f88c85a669..86b0b3b7596e7da68c536c0dea3d95b2 // // Ink2 doesn't need to exit annotation mode after save. -@@ -1464,6 +1460,9 @@ declare global { +@@ -1476,6 +1472,9 @@ declare global { interface HTMLElementTagNameMap { 'pdf-viewer': PdfViewerElement; } diff --git a/patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch b/patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch index 8eac7e7d97..b63fdf0a20 100644 --- a/patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch +++ b/patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch @@ -75,10 +75,10 @@ index 50f1b8711f7e9bd0aa31ba29f7e7be45eed2647c..869f36e70c48e80a0606d156f33fe05c PictureInPictureOcclusionTracker* diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc -index d3e8b53be5a5184c2cca905bebaec5a5a4a84569..e860d49909cebd9259d3fc6fe90e2bde0eb15f8e 100644 +index 55e298e5ba9209e192384c5a0d7dff314d0cd17c..838e4cd7a8f73c68bc1e5096e6d5904cf9f6612c 100644 --- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc -@@ -358,11 +358,13 @@ std::unique_ptr VideoOverlayWindowViews::Create( +@@ -399,11 +399,13 @@ std::unique_ptr VideoOverlayWindowViews::Create( #endif // BUILDFLAG(IS_WIN) diff --git a/patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch b/patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch index 166fec59a8..ce6e859808 100644 --- a/patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch +++ b/patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch @@ -87,10 +87,10 @@ index 51522e60d6dc14f1113cc438558b6b393c3fe73a..153ed02f493a83ef9ca354cc18736f93 // The view with active text input state, i.e., a focused element. // It will be nullptr if no such view exists. Note that the active view diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 9b84cc06795a5bef730cd81908254cf9ad11c836..1b748a2e0d803217985847014855b095b53c58e5 100644 +index 3122f022de3345eb47de9964706e1e93c39e6420..3ed29244ad407c3fd41879dbf2f7a8554a05236c 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -9384,7 +9384,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame( +@@ -9392,7 +9392,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame( "WebContentsImpl::OnFocusedElementChangedInFrame", "render_frame_host", frame); RenderWidgetHostViewBase* root_view = diff --git a/patches/chromium/fix_restore_original_resize_performance_on_macos.patch b/patches/chromium/fix_restore_original_resize_performance_on_macos.patch index 03f9f9f668..bda92fd147 100644 --- a/patches/chromium/fix_restore_original_resize_performance_on_macos.patch +++ b/patches/chromium/fix_restore_original_resize_performance_on_macos.patch @@ -11,7 +11,7 @@ This patch should be upstreamed as a conditional revert of the logic in desktop vs mobile runtimes. i.e. restore the old logic only on desktop platforms diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index 7906b94983733a9deb2365fb2a13461965b6f42b..201ef468e61101a04c078b1c736347c013ea7cf0 100644 +index 4e7947551428495f1fc1b88a17195e8fc03aeedf..e01951f7b3ddeecd9bb97dd0d336ec75b789d81e 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc @@ -2048,9 +2048,8 @@ RenderWidgetHostImpl::GetWidgetInputHandler() { diff --git a/patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch b/patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch index 8280c2a631..8e4e469506 100644 --- a/patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch +++ b/patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch @@ -64,10 +64,10 @@ index cba373664bec3a32abad6fe0396bd67b53b7e67f..7a985067b1371604644d48159f2f5aa7 #endif // THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_SCRIPT_EXECUTION_CALLBACK_H_ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc -index d918e9d165acefa8ba3a225aec261ebf028c40f7..d6cbf553961137429c40fe768f28b104bda0f89b 100644 +index 6790239205233a9707b98215890ff336f02cc3c8..6678eb78463290941311db43c94bf5f59b9b2d90 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -3130,6 +3130,7 @@ void LocalFrame::RequestExecuteScript( +@@ -3135,6 +3135,7 @@ void LocalFrame::RequestExecuteScript( mojom::blink::EvaluationTiming evaluation_timing, mojom::blink::LoadEventBlockingOption blocking_option, WebScriptExecutionCallback callback, @@ -75,7 +75,7 @@ index d918e9d165acefa8ba3a225aec261ebf028c40f7..d6cbf553961137429c40fe768f28b104 BackForwardCacheAware back_forward_cache_aware, mojom::blink::WantResultOption want_result_option, mojom::blink::PromiseResultOption promise_behavior) { -@@ -3162,7 +3163,7 @@ void LocalFrame::RequestExecuteScript( +@@ -3167,7 +3168,7 @@ void LocalFrame::RequestExecuteScript( PausableScriptExecutor::CreateAndRun( script_state, std::move(script_sources), execute_script_policy, user_gesture, evaluation_timing, blocking_option, want_result_option, @@ -85,7 +85,7 @@ index d918e9d165acefa8ba3a225aec261ebf028c40f7..d6cbf553961137429c40fe768f28b104 void LocalFrame::SetEvictCachedSessionStorageOnFreezeOrUnload() { diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h -index 13d1bea90341efbf51c476d3eacae49c8b960537..f508e3e9df98c167740b0574ef554bd17f41447f 100644 +index 7e65f92dbeb987836be447dee2c660cdde8295ed..b5484a84fea067938a9e3d15f49f4c12c3739c20 100644 --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h @@ -824,6 +824,7 @@ class CORE_EXPORT LocalFrame final @@ -97,7 +97,7 @@ index 13d1bea90341efbf51c476d3eacae49c8b960537..f508e3e9df98c167740b0574ef554bd1 mojom::blink::WantResultOption, mojom::blink::PromiseResultOption); diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc -index 0143c528c3ae098c212fc2ca503d2dcd11c8eae0..87a4ac7926ab4f54c0c41f9a6f0b5031d54e8b06 100644 +index 88fafe4cd7652c7e56a24dfcb2528a9a6d2560cc..812a8ebdb6d808bb3fbf7ebfcffe7186921629e6 100644 --- a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc +++ b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc @@ -964,6 +964,7 @@ void LocalFrameMojoHandler::JavaScriptExecuteRequestInIsolatedWorld( @@ -109,7 +109,7 @@ index 0143c528c3ae098c212fc2ca503d2dcd11c8eae0..87a4ac7926ab4f54c0c41f9a6f0b5031 wants_result ? mojom::blink::WantResultOption::kWantResultDateAndRegExpAllowed diff --git a/third_party/blink/renderer/core/frame/pausable_script_executor.cc b/third_party/blink/renderer/core/frame/pausable_script_executor.cc -index 53f0ae7d2a3df5b89900dcbfa89d2b4225859966..6231edeb3540827c5552bf934cd3905bebdae164 100644 +index 2b651a3e5043ff4c174986155a91e7f76d57a4ba..f736bd3f1b5014aa1373737b3d7678697ff2af4b 100644 --- a/third_party/blink/renderer/core/frame/pausable_script_executor.cc +++ b/third_party/blink/renderer/core/frame/pausable_script_executor.cc @@ -246,7 +246,7 @@ void PausableScriptExecutor::CreateAndRun( @@ -204,7 +204,7 @@ index fa65331f40b90d812b71a489fd560e9359152d2b..390714d631dc88ef92d59ef9618a5706 const mojom::blink::UserActivationOption user_activation_option_; const mojom::blink::LoadEventBlockingOption blocking_option_; diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc -index 3979c3987da3dd49218407c41977d9ce7d114edb..7e00f6bdd1d398f22d39823088caf5cde3a34dd9 100644 +index 0802173ce891bcaca8b6bba2762ad2b80d4d5c75..6d31ccae7e6a9e204999d8475808afc11a0665c8 100644 --- a/third_party/blink/renderer/core/frame/web_frame_test.cc +++ b/third_party/blink/renderer/core/frame/web_frame_test.cc @@ -291,6 +291,7 @@ void ExecuteScriptsInMainWorld( diff --git a/patches/chromium/fix_use_delegated_generic_capturer_when_available.patch b/patches/chromium/fix_use_delegated_generic_capturer_when_available.patch index f50a91486a..56a20098eb 100644 --- a/patches/chromium/fix_use_delegated_generic_capturer_when_available.patch +++ b/patches/chromium/fix_use_delegated_generic_capturer_when_available.patch @@ -15,10 +15,10 @@ capturer was window or screen-specific, as the IDs remain valid for generic capturer as well. diff --git a/content/browser/media/capture/desktop_capture_device.cc b/content/browser/media/capture/desktop_capture_device.cc -index 1463ddcc48cbfb796867cd55beb7bb38c2fe3c93..8ad7fbebdf57cde246339956ff1ec96514153ddf 100644 +index ac8f970c54e22da9043d2b5581889059e3afe4ac..41df0b38694fcf39e42e377d5bacf4820166bdd1 100644 --- a/content/browser/media/capture/desktop_capture_device.cc +++ b/content/browser/media/capture/desktop_capture_device.cc -@@ -811,8 +811,14 @@ std::unique_ptr DesktopCaptureDevice::Create( +@@ -812,8 +812,14 @@ std::unique_ptr DesktopCaptureDevice::Create( switch (source.type) { case DesktopMediaID::TYPE_SCREEN: { @@ -35,7 +35,7 @@ index 1463ddcc48cbfb796867cd55beb7bb38c2fe3c93..8ad7fbebdf57cde246339956ff1ec965 if (screen_capturer && screen_capturer->SelectSource(source.id)) { capturer = std::make_unique( std::move(screen_capturer), options); -@@ -825,8 +831,14 @@ std::unique_ptr DesktopCaptureDevice::Create( +@@ -826,8 +832,14 @@ std::unique_ptr DesktopCaptureDevice::Create( } case DesktopMediaID::TYPE_WINDOW: { diff --git a/patches/chromium/frame_host_manager.patch b/patches/chromium/frame_host_manager.patch index 0e9829bb0d..9a9d07fff2 100644 --- a/patches/chromium/frame_host_manager.patch +++ b/patches/chromium/frame_host_manager.patch @@ -6,10 +6,10 @@ Subject: frame_host_manager.patch Allows embedder to intercept site instances created by chromium. diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc -index 260909a2d2761a32687d3fce5ba50509ffde375c..83396cdd7d69c6fd436ebd8bd66edc0fa7df6020 100644 +index c90e1bc281095132f55e4165fb4e3fcfc31d576e..9f2c89f81cdadddb99e71145efff635005048ff1 100644 --- a/content/browser/renderer_host/render_frame_host_manager.cc +++ b/content/browser/renderer_host/render_frame_host_manager.cc -@@ -4617,6 +4617,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( +@@ -4644,6 +4644,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( request->ResetStateForSiteInstanceChange(); } @@ -20,10 +20,10 @@ index 260909a2d2761a32687d3fce5ba50509ffde375c..83396cdd7d69c6fd436ebd8bd66edc0f } diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 187e5f078084436b2ff296f1cbacd009d738c635..fde9dbdf3fe3bcd88c14abead60ff17fad1b2f0e 100644 +index 4b14ef7d2f61f2239876da6f814f0633a2e17f56..e75c03a43540b8f22e491f16211d37f48799f8bf 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -335,6 +335,11 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -336,6 +336,11 @@ class CONTENT_EXPORT ContentBrowserClient { virtual ~ContentBrowserClient() = default; diff --git a/patches/chromium/gritsettings_resource_ids.patch b/patches/chromium/gritsettings_resource_ids.patch index db16666ba2..d8edf549d0 100644 --- a/patches/chromium/gritsettings_resource_ids.patch +++ b/patches/chromium/gritsettings_resource_ids.patch @@ -6,10 +6,10 @@ Subject: gritsettings_resource_ids.patch Add electron resources file to the list of resource ids generation. diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec -index a5b89cfbae1642cb5c714e670d4d76e4b520d961..a9d0739cf4d3e39c486d2a525ad6a778f1611df0 100644 +index b4c1a70fec7e571a17279e54ecf0deaec0a54b8b..99e11e5cb706cf3bff47a75ed59f91ecfc7b645c 100644 --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -1385,6 +1385,11 @@ +@@ -1403,6 +1403,11 @@ "<(SHARED_INTERMEDIATE_DIR)/third_party/blink/public/strings/permission_element_generated_strings.grd": { "META": {"sizes": {"messages": [2000],}}, "messages": [10080], diff --git a/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch b/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch index 744448b8ee..bb7665cf71 100644 --- a/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch +++ b/patches/chromium/hack_to_allow_gclient_sync_with_host_os_mac_on_linux_in_ci.patch @@ -11,7 +11,7 @@ If removing this patch causes no sync failures, it's safe to delete :+1: Ref https://chromium-review.googlesource.com/c/chromium/src/+/2953903 diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py -index f7e967557a15b0986dda0096a28470d81f2246aa..ca50120ec6feec93aa5de85f57a02b26de739003 100755 +index b1b677598374fae555558bdcd7ab1d3b1afd0f53..b24e7a48b1a4273c9a3dc175d39cfaff3d83f7a8 100755 --- a/tools/clang/scripts/update.py +++ b/tools/clang/scripts/update.py @@ -304,6 +304,8 @@ def GetDefaultHostOs(): diff --git a/patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch b/patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch index b8c367d628..ce0f286227 100644 --- a/patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch +++ b/patches/chromium/introduce_ozoneplatform_electron_can_call_x11_property.patch @@ -21,7 +21,7 @@ index 50f3163e57544847f256869b14ed782b35dadd80..ff8364b40c733229d6a7ff1c63eb204b properties->supports_global_application_menus = true; properties->app_modal_dialogs_use_event_blocker = true; diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h -index 9960ad66f3c9d47b00171478e625c9da2e1dd43e..c7a6cfbf4d86b9ba0139d7eb61a7f513be843718 100644 +index abd39cb2459b971a26398d535397e5cd31bb313a..6ba639ccbc697acfff4fb50fad43cd45b53667e2 100644 --- a/ui/ozone/public/ozone_platform.h +++ b/ui/ozone/public/ozone_platform.h @@ -128,6 +128,10 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform { diff --git a/patches/chromium/load_v8_snapshot_in_browser_process.patch b/patches/chromium/load_v8_snapshot_in_browser_process.patch index da847d0de4..2cc72d7887 100644 --- a/patches/chromium/load_v8_snapshot_in_browser_process.patch +++ b/patches/chromium/load_v8_snapshot_in_browser_process.patch @@ -9,10 +9,10 @@ but due to the nature of electron, we need to load the v8 snapshot in the browser process. diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc -index 93957c7a155949c42843aa0a8165860dbc8ac5a5..bde1ca7a9d076d240056a38437615523f9fa2420 100644 +index 74d648de9172e8610d1c665cb5dfd6c8da69e96d..2ea73bf0f0e16ad01e547bb0ec8082ddd02286c2 100644 --- a/content/app/content_main_runner_impl.cc +++ b/content/app/content_main_runner_impl.cc -@@ -300,11 +300,8 @@ void LoadV8SnapshotFile(const base::CommandLine& command_line) { +@@ -301,11 +301,8 @@ void LoadV8SnapshotFile(const base::CommandLine& command_line) { bool ShouldLoadV8Snapshot(const base::CommandLine& command_line, const std::string& process_type) { diff --git a/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch b/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch index d3bb6d5bb4..1bfdc282cb 100644 --- a/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch +++ b/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch @@ -35,10 +35,10 @@ system font by checking if it's kCTFontPriorityAttribute is set to system priority. diff --git a/base/BUILD.gn b/base/BUILD.gn -index 5dee8a9226d2422e98878067e35552ca366dc18e..c81c0140dc45e6f436f478cf3b20c73782226f45 100644 +index c884f31fed70631df74f64bbda076868167ac394..a30a23706aac3a43e80e738bdefc80a09b28901d 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -1017,6 +1017,7 @@ component("base") { +@@ -1021,6 +1021,7 @@ component("base") { "//build:ios_buildflags", "//build/config/compiler:compiler_buildflags", "//third_party/modp_b64", @@ -250,20 +250,20 @@ index e9f4e5131238b9fb5f1b4b3e90a0cb84a7fc15b4..8b5f4cae3123ac5480ad73f0c873fca0 } // namespace diff --git a/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm b/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm -index 1db1e7fc1d86bbca432a4226a24a312cf0b989f8..c4192c16299d291df259902ef8497a65776e3189 100644 +index 19fff43c3daaef5451b6b60b84a610a21311448e..240b954661d34fcc4329d39490be33c485fa8b6e 100644 --- a/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm +++ b/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm -@@ -8,7 +8,9 @@ - +@@ -9,7 +9,9 @@ + #include "components/remote_cocoa/app_shim/features.h" #include "components/remote_cocoa/app_shim/native_widget_ns_window_bridge.h" #include "components/remote_cocoa/common/native_widget_ns_window_host.mojom.h" +#include "electron/mas.h" +#if !IS_MAS_BUILD() - @interface NSWindow (PrivateBrowserNativeWidgetAPI) - + (Class)frameViewClassForStyleMask:(NSUInteger)windowStyle; - @end -@@ -95,10 +97,13 @@ - (void)maybeShowTrafficLights { + namespace { + // Workaround for https://crbug.com/1369643 + const double kThinControllerHeight = 0.5; +@@ -100,12 +102,15 @@ - (void)maybeShowTrafficLights { @end @@ -271,13 +271,15 @@ index 1db1e7fc1d86bbca432a4226a24a312cf0b989f8..c4192c16299d291df259902ef8497a65 + @implementation BrowserNativeWidgetWindow + @synthesize thinTitlebarViewController = _thinTitlebarViewController; + // NSWindow (PrivateAPI) overrides. +#if !IS_MAS_BUILD() + (Class)frameViewClassForStyleMask:(NSUInteger)windowStyle { // - NSThemeFrame and its subclasses will be nil if it's missing at runtime. if ([BrowserWindowFrame class]) -@@ -145,6 +150,8 @@ - (BOOL)_usesCustomDrawing { +@@ -165,6 +170,8 @@ - (BOOL)_usesCustomDrawing { return NO; } @@ -286,7 +288,7 @@ index 1db1e7fc1d86bbca432a4226a24a312cf0b989f8..c4192c16299d291df259902ef8497a65 // Handle "Move focus to the window toolbar" configured in System Preferences -> // Keyboard -> Shortcuts -> Keyboard. Usually Ctrl+F5. The argument (|unknown|) // tends to just be nil. -@@ -155,8 +162,8 @@ - (void)_handleFocusToolbarHotKey:(id)unknown { +@@ -175,8 +182,8 @@ - (void)_handleFocusToolbarHotKey:(id)unknown { } - (void)setAlwaysShowTrafficLights:(BOOL)alwaysShow { @@ -558,7 +560,7 @@ index 6aa74c4137ac7a649e8f79eb628e297e9459b089..c89f25bf49d773f5f77b2434bd6fabcf return kAttributes; } diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn -index 6f0eb1326294a246ce737ff8ee3c1be0944a86b3..83d2719e1db8034dc7487cde81c074daa3180a61 100644 +index bdde3bd488b2018241835436fdaf3548dc453ec2..e47794527c5912a43047cdca48df0f7deb9edf9b 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn @@ -325,6 +325,7 @@ source_set("browser") { @@ -677,10 +679,10 @@ index 34fb29866785ef07c6dca4cfc85966df1c479b5f..e305d25a8f2a34ac90f4d503a9c74dcc /////////////////////////////////////////////////////////////////////////////// diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn -index f1a3573055d86e68e7089b06ea1bb3f97e36df27..e5b0194d583e0a0eb2441514abb65816f595dedc 100644 +index 0b346b5636b5cb62e8d4c9df17067c0d7cf20395..cebc10db18c9896a9ac47a134f9578babddfba14 100644 --- a/content/common/BUILD.gn +++ b/content/common/BUILD.gn -@@ -286,6 +286,7 @@ source_set("common") { +@@ -284,6 +284,7 @@ source_set("common") { "//ui/shell_dialogs", "//url", "//url/ipc:url_ipc", @@ -771,7 +773,7 @@ index a1068589ad844518038ee7bc15a3de9bc5cba525..1ff781c49f086ec8015c7d3c44567dbe } // namespace content diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn -index 9fb80e05154c7882f46e00460ee62742a329eb1d..c7ef928f2ea937d41c07aa9382fa64f6bf9625b6 100644 +index 70deb00ddaf443ecb8bbc1b54b09f9b52ecd3f5a..ccae03f971b51f7388b1ebc23ff121a7a0ab118a 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn @@ -643,6 +643,7 @@ static_library("test_support") { @@ -798,7 +800,7 @@ index 9fb80e05154c7882f46e00460ee62742a329eb1d..c7ef928f2ea937d41c07aa9382fa64f6 ] if (!(is_chromeos_ash && target_cpu == "arm64" && current_cpu == "arm")) { -@@ -3236,6 +3239,7 @@ test("content_unittests") { +@@ -3241,6 +3244,7 @@ test("content_unittests") { "//ui/latency:test_support", "//ui/shell_dialogs:shell_dialogs", "//ui/webui:test_support", @@ -819,7 +821,7 @@ index 99e612f705c5dff041454802033564085718260a..aa37555d9a9c0fda19d0096d035c245e # TODO(crbug.com/40139469): Blink test plugin must be migrated from PPAPI. diff --git a/device/bluetooth/BUILD.gn b/device/bluetooth/BUILD.gn -index 094318e67239ea34ccfe42949f417dece377673a..ba645e2aad56ac007eb6f41cf84cb1e05e4a6a1a 100644 +index 1fb121f31d7a4817a7934d75972a527adecdc91e..35703443b285256286276744e1f6c9f40ed8d595 100644 --- a/device/bluetooth/BUILD.gn +++ b/device/bluetooth/BUILD.gn @@ -258,6 +258,7 @@ component("bluetooth") { @@ -1371,10 +1373,10 @@ index eb81a70e4d5d5cd3e6ae9b45f8cd1c795ea76c51..9921ccb10d3455600eddd85f77f10228 } // namespace sandbox diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn -index 2041934dd6c8f5bb77c286871ff79c1fb56922a5..c6b5bb81023dd7b61b8d429e7cb46f4d37c4d9e1 100644 +index 679005c0d241207646a7aabad5ce896bc5c56558..39547524d6e77954c949d4ac05bec1f9596162fd 100644 --- a/third_party/blink/renderer/core/BUILD.gn +++ b/third_party/blink/renderer/core/BUILD.gn -@@ -408,6 +408,7 @@ component("core") { +@@ -409,6 +409,7 @@ component("core") { "//ui/gfx/geometry", "//ui/gfx/geometry:geometry_skia", "//ui/strings", @@ -1612,10 +1614,10 @@ index c8171f0527fe5194f0ea73b57c4444d4c630fbc4..c2ac4da580e3e7f749a0a4de1e859af6 // Accessible object if (AXElementWrapper::IsValidElement(value)) { diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn -index 12896a91a06e53d623daab137c6a11326659dc2f..180bed4b6900bd6b2ddbe5a3745a28241da8aad6 100644 +index eea697e433fad6ded98ee0db8b6f49760340c364..13351f20f8a965e097281fee9db4f33e29fe704e 100644 --- a/ui/base/BUILD.gn +++ b/ui/base/BUILD.gn -@@ -357,6 +357,13 @@ component("base") { +@@ -358,6 +358,13 @@ component("base") { ] } @@ -1629,7 +1631,7 @@ index 12896a91a06e53d623daab137c6a11326659dc2f..180bed4b6900bd6b2ddbe5a3745a2824 if (is_ios) { sources += [ "device_form_factor_ios.mm", -@@ -500,6 +507,12 @@ component("base") { +@@ -501,6 +508,12 @@ component("base") { "//url", ] @@ -1837,7 +1839,7 @@ index fe3f85073e31de487a08e57d7f9b07aa4eccf8f3..cf5b07203c8bd559a404600cc98cc8ec // enough. return PlatformFontMac::SystemFontType::kGeneral; diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn -index 9cd0b0c5141b49130900172370e191b57bf7ea07..f8e8638374ea3e88fea694fd306bf719dea2a7a6 100644 +index 0d4a2d809d3fa731af0bad5a9d5f50f5b0a838f4..059a995648ec07960ab3a3cd15cbcc7952ec472d 100644 --- a/ui/views/BUILD.gn +++ b/ui/views/BUILD.gn @@ -713,6 +713,8 @@ component("views") { diff --git a/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch b/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch index 4cc0f55677..3fbdea6c0f 100644 --- a/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch +++ b/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch @@ -7,10 +7,10 @@ This adds a callback from the network service that's used to implement session.setCertificateVerifyCallback. diff --git a/services/network/network_context.cc b/services/network/network_context.cc -index cae84c27a26d6198d9da5913b008e748d6680037..4be02fdb03038ee4c30ea699cbbf56d1f5aaa7aa 100644 +index c0f354a0ed2ff8c931f7cf07a3bb68c318f892b7..c72e66a92d20a1366b750c976191c7d7628b1ebc 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -158,6 +158,11 @@ +@@ -160,6 +160,11 @@ #include "services/network/web_transport.h" #include "url/gurl.h" @@ -22,7 +22,7 @@ index cae84c27a26d6198d9da5913b008e748d6680037..4be02fdb03038ee4c30ea699cbbf56d1 #if BUILDFLAG(IS_CT_SUPPORTED) // gn check does not account for BUILDFLAG(). So, for iOS builds, it will // complain about a missing dependency on the target exposing this header. Add a -@@ -606,6 +611,99 @@ void RecordHSTSPreconnectUpgradeReason(HSTSRedirectUpgradeReason reason) { +@@ -604,6 +609,99 @@ void RecordHSTSPreconnectUpgradeReason(HSTSRedirectUpgradeReason reason) { } // namespace @@ -122,7 +122,7 @@ index cae84c27a26d6198d9da5913b008e748d6680037..4be02fdb03038ee4c30ea699cbbf56d1 constexpr uint32_t NetworkContext::kMaxOutstandingRequestsPerProcess; NetworkContext::NetworkContextHttpAuthPreferences:: -@@ -1000,6 +1098,13 @@ void NetworkContext::SetClient( +@@ -1001,6 +1099,13 @@ void NetworkContext::SetClient( client_.Bind(std::move(client)); } @@ -136,7 +136,7 @@ index cae84c27a26d6198d9da5913b008e748d6680037..4be02fdb03038ee4c30ea699cbbf56d1 void NetworkContext::CreateURLLoaderFactory( mojo::PendingReceiver receiver, mojom::URLLoaderFactoryParamsPtr params) { -@@ -2569,6 +2674,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2570,6 +2675,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( std::move(cert_verifier)); cert_verifier = std::move(cert_verifier_with_trust_anchors); #endif // BUILDFLAG(IS_CHROMEOS) @@ -147,7 +147,7 @@ index cae84c27a26d6198d9da5913b008e748d6680037..4be02fdb03038ee4c30ea699cbbf56d1 builder.SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( diff --git a/services/network/network_context.h b/services/network/network_context.h -index 964b2634c0232260a8193e15d543fef9011a5d9d..e77c58cb996fd90f7c268e1beba8f3f93c458c2a 100644 +index a89e2187c8fb0d90318de19ebbb9dc6b5d407f6d..01b673a5d0796e15f63953455215dd0a1c306ff1 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h @@ -114,6 +114,7 @@ class URLMatcher; @@ -158,7 +158,7 @@ index 964b2634c0232260a8193e15d543fef9011a5d9d..e77c58cb996fd90f7c268e1beba8f3f9 class CookieManager; class HostResolver; class MdnsResponderManager; -@@ -245,6 +246,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -246,6 +247,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext void CreateURLLoaderFactory( mojo::PendingReceiver receiver, mojom::URLLoaderFactoryParamsPtr params) override; @@ -167,7 +167,7 @@ index 964b2634c0232260a8193e15d543fef9011a5d9d..e77c58cb996fd90f7c268e1beba8f3f9 void ResetURLLoaderFactories() override; void GetViaObliviousHttp( mojom::ObliviousHttpRequestPtr request, -@@ -932,6 +935,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -937,6 +940,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext std::vector dismount_closures_; #endif // BUILDFLAG(IS_DIRECTORY_TRANSFER_REQUIRED) @@ -177,10 +177,10 @@ index 964b2634c0232260a8193e15d543fef9011a5d9d..e77c58cb996fd90f7c268e1beba8f3f9 std::unique_ptr internal_host_resolver_; std::set, base::UniquePtrComparator> diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom -index f2c8a56442e0a51efa53d5478d4917afbf47073c..da6abf26316a5a0c8b65203a151eb07ec179233a 100644 +index 32c82e61a37b49f1177979f6f7d0fca158f836ad..6d7df96ea41ce10019285c927246208cb3001f8b 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -304,6 +304,16 @@ struct SocketBrokerRemotes { +@@ -306,6 +306,17 @@ struct SocketBrokerRemotes { pending_remote server; }; @@ -194,10 +194,11 @@ index f2c8a56442e0a51efa53d5478d4917afbf47073c..da6abf26316a5a0c8b65203a151eb07e + string? ocsp_response + ) => (int32 error_code, CertVerifyResult result); +}; - ++ // Parameters for constructing a network context. struct NetworkContextParams { -@@ -917,6 +927,9 @@ interface NetworkContext { + // The user agent string. +@@ -924,6 +935,9 @@ interface NetworkContext { // Sets a client for this network context. SetClient(pending_remote client); @@ -205,13 +206,13 @@ index f2c8a56442e0a51efa53d5478d4917afbf47073c..da6abf26316a5a0c8b65203a151eb07e + SetCertVerifierClient(pending_remote? client); + // Creates a new URLLoaderFactory with the given |params|. - CreateURLLoaderFactory(pending_receiver url_loader_factory, - URLLoaderFactoryParams params); + CreateURLLoaderFactory( + pending_receiver url_loader_factory, diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h -index 053c3e927fab11eac532749f4311227d3143a7c5..0aa64468f433bf6f9f85cdf95ff098b1aa925649 100644 +index 2bcbb4fda66214ec24a9dacc69cebcdf58bb9f13..86430711eac5304c96486b0786b6ec3a26ce752b 100644 --- a/services/network/test/test_network_context.h +++ b/services/network/test/test_network_context.h -@@ -63,6 +63,8 @@ class TestNetworkContext : public mojom::NetworkContext { +@@ -64,6 +64,8 @@ class TestNetworkContext : public mojom::NetworkContext { void CreateURLLoaderFactory( mojo::PendingReceiver receiver, mojom::URLLoaderFactoryParamsPtr params) override {} diff --git a/patches/chromium/notification_provenance.patch b/patches/chromium/notification_provenance.patch index 78f017d923..bda8f41791 100644 --- a/patches/chromium/notification_provenance.patch +++ b/patches/chromium/notification_provenance.patch @@ -133,10 +133,10 @@ index 05d3a12dd84c7005d46cc73b312f97ef418d96f5..4765de982802541b3efc7211d106acc7 const GURL& document_url, const WeakDocumentPtr& weak_document_ptr, diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index 07907372f37d3ef5c9eaef7011ebcd4ed6a2fed6..ec5e553d93caf8a24de97465a870567d95944000 100644 +index 2f12a1dc6a97762089d2bcf0d900657bd80efefd..17ddd5003307663a37d741937ea2fb1859be11fe 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -2105,7 +2105,7 @@ void RenderProcessHostImpl::CreateNotificationService( +@@ -2106,7 +2106,7 @@ void RenderProcessHostImpl::CreateNotificationService( case RenderProcessHost::NotificationServiceCreatorType::kSharedWorker: case RenderProcessHost::NotificationServiceCreatorType::kDedicatedWorker: { storage_partition_impl_->GetPlatformNotificationContext()->CreateService( @@ -145,7 +145,7 @@ index 07907372f37d3ef5c9eaef7011ebcd4ed6a2fed6..ec5e553d93caf8a24de97465a870567d creator_type, std::move(receiver)); break; } -@@ -2113,7 +2113,7 @@ void RenderProcessHostImpl::CreateNotificationService( +@@ -2114,7 +2114,7 @@ void RenderProcessHostImpl::CreateNotificationService( CHECK(rfh); storage_partition_impl_->GetPlatformNotificationContext()->CreateService( diff --git a/patches/chromium/partially_revert_is_newly_created_to_allow_for_browser_initiated.patch b/patches/chromium/partially_revert_is_newly_created_to_allow_for_browser_initiated.patch index d3a9467da6..764c72da16 100644 --- a/patches/chromium/partially_revert_is_newly_created_to_allow_for_browser_initiated.patch +++ b/patches/chromium/partially_revert_is_newly_created_to_allow_for_browser_initiated.patch @@ -10,7 +10,7 @@ an about:blank check to this area. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5403876 diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc -index 174b6cb9531237528664bcaff06a6e8dc1677349..144490c1ad76dce306e7e4a25270456d60bbb7f5 100644 +index dc4ad54e8fc41bdb766c28cc8b56a47384272ea6..1f391a6a1cc6b7eede328b11a79dbbf06d2873c9 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc @@ -784,8 +784,8 @@ void VerifyThatBrowserAndRendererCalculatedOriginsToCommitMatch( diff --git a/patches/chromium/picture-in-picture.patch b/patches/chromium/picture-in-picture.patch index fb70e7a99c..fb51c83c89 100644 --- a/patches/chromium/picture-in-picture.patch +++ b/patches/chromium/picture-in-picture.patch @@ -38,10 +38,10 @@ index 91ef40b1c054ffceec006400c18d68b5ab393161..7a33b6e01b57b58a77ec54be59f6f323 ui::ImageModel::FromVectorIcon(*icon, kColorPipWindowForeground, kCloseButtonIconSize)); diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc -index 0ca5d6f5680e5e1342a3ad75e4b0ebbda5122805..d3e8b53be5a5184c2cca905bebaec5a5a4a84569 100644 +index 32de1f4d7329ee8c0fb828a42849542265d7a4eb..55e298e5ba9209e192384c5a0d7dff314d0cd17c 100644 --- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc -@@ -17,9 +17,11 @@ +@@ -18,9 +18,11 @@ #include "build/build_config.h" #include "chrome/browser/picture_in_picture/picture_in_picture_occlusion_tracker.h" #include "chrome/browser/picture_in_picture/picture_in_picture_window_manager.h" @@ -53,7 +53,7 @@ index 0ca5d6f5680e5e1342a3ad75e4b0ebbda5122805..d3e8b53be5a5184c2cca905bebaec5a5 #include "chrome/browser/ui/color/chrome_color_id.h" #include "chrome/browser/ui/views/overlay/back_to_tab_button.h" #include "chrome/browser/ui/views/overlay/back_to_tab_label_button.h" -@@ -63,7 +65,7 @@ +@@ -69,7 +71,7 @@ #include "ui/aura/window.h" #endif @@ -62,7 +62,7 @@ index 0ca5d6f5680e5e1342a3ad75e4b0ebbda5122805..d3e8b53be5a5184c2cca905bebaec5a5 #include "chrome/browser/shell_integration_win.h" #include "content/public/browser/render_widget_host_view.h" #include "ui/aura/window.h" -@@ -323,7 +325,7 @@ std::unique_ptr VideoOverlayWindowViews::Create( +@@ -364,7 +366,7 @@ std::unique_ptr VideoOverlayWindowViews::Create( overlay_window->Init(std::move(params)); overlay_window->OnRootViewReady(); diff --git a/patches/chromium/printing.patch b/patches/chromium/printing.patch index cf5e305e7a..e3c1d7afca 100644 --- a/patches/chromium/printing.patch +++ b/patches/chromium/printing.patch @@ -653,7 +653,7 @@ index 3c2fdc9f9a6c60efc4b0afacbfb83eef55917791..8fd9aff538fa03da6c171927c316d4f6 PrintingFailed(int32 cookie, PrintFailureReason reason); diff --git a/components/printing/renderer/print_render_frame_helper.cc b/components/printing/renderer/print_render_frame_helper.cc -index 423cea4420bc868baad6260fb7c6b33430eaaf95..2b105dc1fb2a7b06fe717df9edf897446aca606c 100644 +index e1e7623427eccb5f7e4d0caf4394b6ee01357049..a8ace3f66e5961a14726faf537ba428f45939f9b 100644 --- a/components/printing/renderer/print_render_frame_helper.cc +++ b/components/printing/renderer/print_render_frame_helper.cc @@ -52,6 +52,7 @@ @@ -722,7 +722,7 @@ index 423cea4420bc868baad6260fb7c6b33430eaaf95..2b105dc1fb2a7b06fe717df9edf89744 if (render_frame_gone_) { return; -@@ -1456,6 +1460,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value::Dict settings) { +@@ -1455,6 +1459,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value::Dict settings) { if (ipc_nesting_level_ > kAllowedIpcDepthForPrint) return; @@ -731,7 +731,7 @@ index 423cea4420bc868baad6260fb7c6b33430eaaf95..2b105dc1fb2a7b06fe717df9edf89744 print_preview_context_.OnPrintPreview(); #if BUILDFLAG(IS_CHROMEOS_ASH) -@@ -2063,17 +2069,19 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { +@@ -2062,17 +2068,19 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) { void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, const blink::WebNode& node, @@ -754,7 +754,7 @@ index 423cea4420bc868baad6260fb7c6b33430eaaf95..2b105dc1fb2a7b06fe717df9edf89744 DidFinishPrinting(PrintingResult::kFailPrintInit); return; } -@@ -2094,8 +2102,15 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, +@@ -2093,8 +2101,15 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame, print_pages_params_->params->print_scaling_option; auto self = weak_ptr_factory_.GetWeakPtr(); @@ -771,7 +771,7 @@ index 423cea4420bc868baad6260fb7c6b33430eaaf95..2b105dc1fb2a7b06fe717df9edf89744 // Check if `this` is still valid. if (!self) return; -@@ -2360,29 +2375,37 @@ void PrintRenderFrameHelper::IPCProcessed() { +@@ -2359,29 +2374,37 @@ void PrintRenderFrameHelper::IPCProcessed() { } bool PrintRenderFrameHelper::InitPrintSettings(blink::WebLocalFrame* frame, @@ -860,10 +860,10 @@ index b8c803184f267d87696c4e72c3d993ff3b69d95b..7278dfae56305cc8669fc2240563450f ScriptingThrottler scripting_throttler_; diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn -index 83d2719e1db8034dc7487cde81c074daa3180a61..53baef7c2f76d8efd187ef5062bf4e0dc1a4f128 100644 +index e47794527c5912a43047cdca48df0f7deb9edf9b..858a54fbbdf83a42a631fe4355fe66e26a85f6db 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -3023,8 +3023,9 @@ source_set("browser") { +@@ -3025,8 +3025,9 @@ source_set("browser") { "//ppapi/shared_impl", ] diff --git a/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch b/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch index 22fa6aabdd..6e214260da 100644 --- a/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch +++ b/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch @@ -30,7 +30,7 @@ index dea7ba2237cea261fe0b526753e1a9c4e355e484..9e3bf5eca5e9ad99112069a28b7fb8c1 // RenderWidgetHost on the primary main frame, and false otherwise. virtual bool IsWidgetForPrimaryMainFrame(RenderWidgetHostImpl*); diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index 886d70636aedfa714b29625f58420ad11ede9ffd..7906b94983733a9deb2365fb2a13461965b6f42b 100644 +index 6ad5dd5d062cc84b79b36572955a676cb5936ffd..4e7947551428495f1fc1b88a17195e8fc03aeedf 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc @@ -1982,6 +1982,9 @@ void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) { @@ -44,10 +44,10 @@ index 886d70636aedfa714b29625f58420ad11ede9ffd..7906b94983733a9deb2365fb2a134619 void RenderWidgetHostImpl::ShowContextMenuAtPoint( diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index e7e47a9aa5a22aea2aa0eeab7bd661b47c9cbdae..de6b544df67c9702b6771b08b003805b4f5fb5a4 100644 +index bdc268c2d378d65c4ddf2b9c4b0dae8b94f9521c..aeb43c34486e5c6e5a6e79487f1964ed3c3aee6f 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -5612,6 +5612,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { +@@ -5615,6 +5615,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { return text_input_manager_.get(); } @@ -60,10 +60,10 @@ index e7e47a9aa5a22aea2aa0eeab7bd661b47c9cbdae..de6b544df67c9702b6771b08b003805b RenderWidgetHostImpl* render_widget_host) { return render_widget_host == GetPrimaryMainFrame()->GetRenderWidgetHost(); diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h -index 88282f2880d2443aca30ec1754bf5e43ed67acfc..60c94fd4508e166e0dd1be9c6eb97dd45e418853 100644 +index a0b35bf72396331ac8c5a5126daef50fbea3e84e..d915536e03123360f9068e95c933fdca05c730c0 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h -@@ -1128,6 +1128,7 @@ class CONTENT_EXPORT WebContentsImpl +@@ -1131,6 +1131,7 @@ class CONTENT_EXPORT WebContentsImpl void SendScreenRects() override; void SendActiveState(bool active) override; TextInputManager* GetTextInputManager() override; @@ -72,7 +72,7 @@ index 88282f2880d2443aca30ec1754bf5e43ed67acfc..60c94fd4508e166e0dd1be9c6eb97dd4 RenderWidgetHostImpl* render_widget_host) override; bool IsShowingContextMenuOnPage() const override; diff --git a/content/public/browser/web_contents_observer.h b/content/public/browser/web_contents_observer.h -index 0379a5ca835e3e9d1b90543bbbe5971148d6c73e..03ed25d04ff0f54d412e1a3044b7770f75384a96 100644 +index f3284b11c2a9d020e85af2fea2057926de4cdd0b..9d58a654ddbabeecef2d9f17e0229c72c0afe6fd 100644 --- a/content/public/browser/web_contents_observer.h +++ b/content/public/browser/web_contents_observer.h @@ -37,6 +37,7 @@ diff --git a/patches/chromium/refactor_unfilter_unresponsive_events.patch b/patches/chromium/refactor_unfilter_unresponsive_events.patch index ec4fc07f74..a2a713bf7f 100644 --- a/patches/chromium/refactor_unfilter_unresponsive_events.patch +++ b/patches/chromium/refactor_unfilter_unresponsive_events.patch @@ -15,10 +15,10 @@ This CL removes these filters so the unresponsive event can still be accessed from our JS event. The filtering is moved into Electron's code. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 0e742f196367bbbe8c4e147ef4db4f8dbbe4cbbe..7026b28c4f228971f74a706b6ad99777e4ca0773 100644 +index c210645cd2a6f2314d648112b50fe02050f7320f..d637599c1127bf7862566b8b119592caa30744c7 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -9518,25 +9518,13 @@ void WebContentsImpl::RendererUnresponsive( +@@ -9526,25 +9526,13 @@ void WebContentsImpl::RendererUnresponsive( base::RepeatingClosure hang_monitor_restarter) { OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RendererUnresponsive", "render_widget_host", render_widget_host); diff --git a/patches/chromium/resource_file_conflict.patch b/patches/chromium/resource_file_conflict.patch index 0eeef4e87e..5c701f2663 100644 --- a/patches/chromium/resource_file_conflict.patch +++ b/patches/chromium/resource_file_conflict.patch @@ -52,10 +52,10 @@ Some alternatives to this patch: None of these options seems like a substantial maintainability win over this patch to me (@nornagon). diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn -index c785db2fe2a24d33db6499da7806defbdec78a7e..9580623c57cb02f7e924742c6cb1638676881115 100644 +index 0566dcb500838b1c5d2b09873a2007bd960a19de..4a0c2d74f6ce439f562115ee382ea72b1ce6670b 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -1557,7 +1557,7 @@ if (is_chrome_branded && !is_android) { +@@ -1559,7 +1559,7 @@ if (is_chrome_branded && !is_android) { } } @@ -64,7 +64,7 @@ index c785db2fe2a24d33db6499da7806defbdec78a7e..9580623c57cb02f7e924742c6cb16386 chrome_paks("packed_resources") { if (is_mac) { output_dir = "$root_gen_dir/repack" -@@ -1596,6 +1596,12 @@ if (!is_android) { +@@ -1598,6 +1598,12 @@ if (!is_android) { } } diff --git a/patches/chromium/short-circuit_permissions_checks_in_mediastreamdevicescontroller.patch b/patches/chromium/short-circuit_permissions_checks_in_mediastreamdevicescontroller.patch index 113300ede3..9742a8e290 100644 --- a/patches/chromium/short-circuit_permissions_checks_in_mediastreamdevicescontroller.patch +++ b/patches/chromium/short-circuit_permissions_checks_in_mediastreamdevicescontroller.patch @@ -15,7 +15,7 @@ short-circuit all the permissions checks in MSDC for now to allow us to unduplicate this code. diff --git a/components/webrtc/media_stream_devices_controller.cc b/components/webrtc/media_stream_devices_controller.cc -index fc6ed7e7de02c6c27dd93cb40a01ab1881c98990..2e745a5cccbae20b9d1e22e2b4fe0d2d3c47a629 100644 +index bf53561282ea03a8d881e9a33db17ad04e9127a6..6f53b97bca9975d9eac6a676edd438d52a90c23e 100644 --- a/components/webrtc/media_stream_devices_controller.cc +++ b/components/webrtc/media_stream_devices_controller.cc @@ -57,7 +57,8 @@ bool PermissionIsRequested(blink::PermissionType permission, @@ -72,7 +72,7 @@ index fc6ed7e7de02c6c27dd93cb40a01ab1881c98990..2e745a5cccbae20b9d1e22e2b4fe0d2d } MediaStreamDevicesController::~MediaStreamDevicesController() { -@@ -429,6 +437,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason( +@@ -426,6 +434,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason( return false; } @@ -80,7 +80,7 @@ index fc6ed7e7de02c6c27dd93cb40a01ab1881c98990..2e745a5cccbae20b9d1e22e2b4fe0d2d // TODO(raymes): This function wouldn't be needed if // PermissionManager::RequestPermissions returned a denial reason. content::PermissionResult result = -@@ -439,6 +448,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason( +@@ -436,6 +445,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason( DCHECK_EQ(blink::mojom::PermissionStatus::DENIED, result.status); return true; } diff --git a/patches/chromium/support_mixed_sandbox_with_zygote.patch b/patches/chromium/support_mixed_sandbox_with_zygote.patch index 262f1b336c..ccba503676 100644 --- a/patches/chromium/support_mixed_sandbox_with_zygote.patch +++ b/patches/chromium/support_mixed_sandbox_with_zygote.patch @@ -22,10 +22,10 @@ However, the patch would need to be reviewed by the security team, as it does touch a security-sensitive class. diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index ec5e553d93caf8a24de97465a870567d95944000..369b4c70bba9363ed8fac184fd843bf1aa49e59e 100644 +index 17ddd5003307663a37d741937ea2fb1859be11fe..dda8404e020a8eecc3d78465c33eba5887737e6a 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -1753,6 +1753,10 @@ bool RenderProcessHostImpl::Init() { +@@ -1754,6 +1754,10 @@ bool RenderProcessHostImpl::Init() { std::unique_ptr sandbox_delegate = std::make_unique( *cmd_line, IsPdf(), IsJitDisabled()); diff --git a/patches/chromium/web_contents.patch b/patches/chromium/web_contents.patch index ae329b0201..c74325b907 100644 --- a/patches/chromium/web_contents.patch +++ b/patches/chromium/web_contents.patch @@ -9,10 +9,10 @@ is needed for OSR. Originally landed in https://github.com/electron/libchromiumcontent/pull/226. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 4de45e398ec013714302c8cbaafa3bb6aa01ef8e..6d0b5e9a3350108f183e958871928623283cbe23 100644 +index 6da96d1306afb5e6812ca1c9e3b4cafc9c9425bd..c54d73745e7bc8faf18ecd169fc10548a827d512 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3754,6 +3754,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -3757,6 +3757,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, params.main_frame_name, GetOpener(), primary_main_frame_policy, base::UnguessableToken::Create()); @@ -26,7 +26,7 @@ index 4de45e398ec013714302c8cbaafa3bb6aa01ef8e..6d0b5e9a3350108f183e958871928623 std::unique_ptr delegate = GetContentClient()->browser()->GetWebContentsViewDelegate(this); -@@ -3764,6 +3771,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -3767,6 +3774,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, view_ = CreateWebContentsView(this, std::move(delegate), &render_view_host_delegate_view_); } @@ -35,10 +35,10 @@ index 4de45e398ec013714302c8cbaafa3bb6aa01ef8e..6d0b5e9a3350108f183e958871928623 CHECK(view_.get()); diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h -index 825e0d9d641bfa8fc5907a6d479d94206d432fb6..0f2ce0476e9b067ea2f678e5683040e29f10fe81 100644 +index 025b7eb0aa7b9f8cc81bfb19a408e98f1870dc0f..7fa7378eccb890e01f48d95c2f3a9f5feaf688d5 100644 --- a/content/public/browser/web_contents.h +++ b/content/public/browser/web_contents.h -@@ -111,10 +111,13 @@ class BrowserPluginGuestDelegate; +@@ -112,10 +112,13 @@ class BrowserPluginGuestDelegate; class GuestPageHolder; class RenderFrameHost; class RenderViewHost; @@ -52,7 +52,7 @@ index 825e0d9d641bfa8fc5907a6d479d94206d432fb6..0f2ce0476e9b067ea2f678e5683040e2 class WebUI; struct DropData; struct MHTMLGenerationParams; -@@ -275,6 +278,10 @@ class WebContents : public PageNavigator, public base::SupportsUserData { +@@ -276,6 +279,10 @@ class WebContents : public PageNavigator, public base::SupportsUserData { network::mojom::WebSandboxFlags starting_sandbox_flags = network::mojom::WebSandboxFlags::kNone; diff --git a/patches/chromium/webview_fullscreen.patch b/patches/chromium/webview_fullscreen.patch index 557bfdff51..8fd19c4278 100644 --- a/patches/chromium/webview_fullscreen.patch +++ b/patches/chromium/webview_fullscreen.patch @@ -15,10 +15,10 @@ Note that we also need to manually update embedder's `api::WebContents::IsFullscreenForTabOrPending` value. diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc -index 4f31803e492d0d05b29659f8bf75b6fee7aff25e..174b6cb9531237528664bcaff06a6e8dc1677349 100644 +index bf6e476bb9fbf7e5fc68bafc7703d00ecaeb4fa3..dc4ad54e8fc41bdb766c28cc8b56a47384272ea6 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -8277,6 +8277,17 @@ void RenderFrameHostImpl::EnterFullscreen( +@@ -8283,6 +8283,17 @@ void RenderFrameHostImpl::EnterFullscreen( } } @@ -37,10 +37,10 @@ index 4f31803e492d0d05b29659f8bf75b6fee7aff25e..174b6cb9531237528664bcaff06a6e8d if (had_fullscreen_token && !GetView()->HasFocus()) GetView()->Focus(); diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 6d0b5e9a3350108f183e958871928623283cbe23..9b84cc06795a5bef730cd81908254cf9ad11c836 100644 +index c54d73745e7bc8faf18ecd169fc10548a827d512..3122f022de3345eb47de9964706e1e93c39e6420 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4011,21 +4011,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent( +@@ -4014,21 +4014,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent( const input::NativeWebKeyboardEvent& event) { OPTIONAL_TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("content.verbose"), "WebContentsImpl::PreHandleKeyboardEvent"); @@ -78,7 +78,7 @@ index 6d0b5e9a3350108f183e958871928623283cbe23..9b84cc06795a5bef730cd81908254cf9 } bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) { -@@ -4184,7 +4188,7 @@ void WebContentsImpl::EnterFullscreenMode( +@@ -4187,7 +4191,7 @@ void WebContentsImpl::EnterFullscreenMode( OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::EnterFullscreenMode"); DCHECK(CanEnterFullscreenMode(requesting_frame)); DCHECK(requesting_frame->IsActive()); diff --git a/patches/chromium/worker_context_will_destroy.patch b/patches/chromium/worker_context_will_destroy.patch index fbfd99a600..da4d30c9da 100644 --- a/patches/chromium/worker_context_will_destroy.patch +++ b/patches/chromium/worker_context_will_destroy.patch @@ -26,7 +26,7 @@ index 42c94f71f09cf9067bac9fd9004dda36708ec441..07c014a28ed1ef5878a50fbb194e38fe // An empty URL is returned if the URL is not overriden. virtual GURL OverrideFlashEmbedWithHTML(const GURL& url); diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc -index 4547a080e06759467e6736c6a76fe55a93a6b3b8..15d304d96426bd7e9c6269feb3cbe66294f3934d 100644 +index e4b0cdb22340cf3ad368de9bde61c85f6b97fa74..0883af83028e8fc10b38ec59257f75e64e66c6e1 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc @@ -875,6 +875,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() { @@ -55,10 +55,10 @@ index 17c01a1f03ad4d4fa8a9783a00e159fff7c67940..1bfec2280e6d1f5cb5c157d237069bde const blink::WebSecurityOrigin& script_origin) override; blink::ProtocolHandlerSecurityLevel GetProtocolHandlerSecurityLevel( diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h -index f2be7de2e13b7cd8e4b3cae47656109d31049502..8c2fb19e53b55d578134fac78d8149bcde0baeed 100644 +index 6bae009bb76ea992d6c34383d75378f4467db5f7..8199839240ecc0abf5b0ce5e042f83bd31cafe9a 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h -@@ -664,6 +664,7 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -660,6 +660,7 @@ class BLINK_PLATFORM_EXPORT Platform { virtual void DidStartWorkerThread() {} virtual void WillStopWorkerThread() {} virtual void WorkerContextCreated(const v8::Local& worker) {} diff --git a/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch b/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch index 382683c044..80f63abe44 100644 --- a/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch +++ b/patches/chromium/worker_feat_add_hook_to_notify_script_ready.patch @@ -35,7 +35,7 @@ index 07c014a28ed1ef5878a50fbb194e38fe762361e9..ae4c9c011024a32354a4cc25c63835a4 // from the worker thread. virtual void WillDestroyWorkerContextOnWorkerThread( diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc -index 15d304d96426bd7e9c6269feb3cbe66294f3934d..ca8ab0a9ad78b694f92c0aa70fb2165cb69a2ce5 100644 +index 0883af83028e8fc10b38ec59257f75e64e66c6e1..a9392803a6675391ffd4c97fee0ad782934006ff 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc @@ -887,6 +887,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated( @@ -65,10 +65,10 @@ index 1bfec2280e6d1f5cb5c157d237069bdee44b9a5d..c327e48cbefa0cbfe7192449a97896f3 bool AllowScriptExtensionForServiceWorker( const blink::WebSecurityOrigin& script_origin) override; diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h -index 8c2fb19e53b55d578134fac78d8149bcde0baeed..92f7e7a87ea5da17b6f49c143d0adf99d0ec90a8 100644 +index 8199839240ecc0abf5b0ce5e042f83bd31cafe9a..40269dcdfb2355067f20f25f4f4f9f31abc6e256 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h -@@ -664,6 +664,8 @@ class BLINK_PLATFORM_EXPORT Platform { +@@ -660,6 +660,8 @@ class BLINK_PLATFORM_EXPORT Platform { virtual void DidStartWorkerThread() {} virtual void WillStopWorkerThread() {} virtual void WorkerContextCreated(const v8::Local& worker) {} diff --git a/patches/v8/.patches b/patches/v8/.patches index 9f1a7025d5..5fdb8b1fbd 100644 --- a/patches/v8/.patches +++ b/patches/v8/.patches @@ -1,3 +1,4 @@ chore_allow_customizing_microtask_policy_per_context.patch deps_add_v8_object_setinternalfieldfornodecore.patch -revert_fastapi_promote_deprecation_of_fastapitypedarray.patch +revert_fastapi_remove_dynamic_overload_resolution.patch +revert_api_delete_deprecated_struct_fastapitypedarray.patch diff --git a/patches/v8/deps_add_v8_object_setinternalfieldfornodecore.patch b/patches/v8/deps_add_v8_object_setinternalfieldfornodecore.patch index 03032d614d..e6288fef36 100644 --- a/patches/v8/deps_add_v8_object_setinternalfieldfornodecore.patch +++ b/patches/v8/deps_add_v8_object_setinternalfieldfornodecore.patch @@ -46,10 +46,10 @@ index 3e57ae8efe33f326ef0e5d609c311d4be5b8afd6..dc521d39c2280dfc3217e97c1e413b2b V8_INLINE static void* GetAlignedPointerFromInternalField( const BasicTracedReference& object, int index) { diff --git a/src/api/api.cc b/src/api/api.cc -index 3e15759b3d30ff0ac8c311fa409b34d19ba7ae2c..522a86c3d58258c8bc7fc63de883a12ba640fd82 100644 +index a08ce424cd1f84ce5f1d781f98a242b70f23b168..86f2d298e4ba37a46a74f4f6eba5adc2106889bb 100644 --- a/src/api/api.cc +++ b/src/api/api.cc -@@ -6418,14 +6418,33 @@ Local v8::Object::SlowGetInternalField(int index) { +@@ -6482,14 +6482,33 @@ Local v8::Object::SlowGetInternalField(int index) { i::Cast(*obj)->GetEmbedderField(index), isolate)); } diff --git a/patches/v8/revert_api_delete_deprecated_struct_fastapitypedarray.patch b/patches/v8/revert_api_delete_deprecated_struct_fastapitypedarray.patch new file mode 100644 index 0000000000..79e5ac4387 --- /dev/null +++ b/patches/v8/revert_api_delete_deprecated_struct_fastapitypedarray.patch @@ -0,0 +1,419 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: John Kleinschmidt +Date: Fri, 15 Nov 2024 10:49:33 -0500 +Subject: Revert "[api] Delete deprecated struct FastApiTypedArray" + +Revert this until Node.js decides how to proceed and then pick up their fix. + +Refs: https://github.com/nodejs/node/issues/55452 +Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5956408 +Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5982984 + +This reverts commit 35a6781f783f037404869f6c9ec22f147dba1c5e. + +diff --git a/include/v8-fast-api-calls.h b/include/v8-fast-api-calls.h +index 12ef5e4f7e66f1bfe2ff3f46ebfa8f47c86e313c..9796601c287c0bb83a2fd85f7735678219c2cd5d 100644 +--- a/include/v8-fast-api-calls.h ++++ b/include/v8-fast-api-calls.h +@@ -271,7 +271,7 @@ class CTypeInfo { + enum class SequenceType : uint8_t { + kScalar, + kIsSequence, // sequence +- kIsTypedArray V8_DEPRECATED( ++ kIsTypedArray V8_DEPRECATE_SOON( + "TypedArrays are not supported directly anymore."), + // is void + kIsArrayBuffer // ArrayBuffer +@@ -326,7 +326,7 @@ class CTypeInfo { + Flags flags_; + }; + +-struct V8_DEPRECATED( ++struct V8_DEPRECATE_SOON( + "With the removal of FastApiTypedArray this type is not needed " + "anymore.") FastApiTypedArrayBase { + public: +@@ -339,6 +339,42 @@ struct V8_DEPRECATED( + size_t length_ = 0; + }; + ++template ++struct V8_DEPRECATE_SOON( ++ "When an API function expects a TypedArray as a parameter, the type in the " ++ "signature should be `v8::Local` instead of " ++ "FastApiTypedArray<>. The API function then has to type-check the " ++ "parameter and convert it to a `v8::Local(reinterpret_cast(data_) + index), ++ sizeof(T)); ++ return tmp; ++ } ++ ++ bool getStorageIfAligned(T** elements) const { ++ if (reinterpret_cast(data_) % alignof(T) != 0) { ++ return false; ++ } ++ *elements = reinterpret_cast(data_); ++ return true; ++ } ++ ++ private: ++ // This pointer should include the typed array offset applied. ++ // It's not guaranteed that it's aligned to sizeof(T), it's only ++ // guaranteed that it's 4-byte aligned, so for 8-byte types we need to ++ // provide a special implementation for reading from it, which hides ++ // the possibly unaligned read in the `get` method. ++ void* data_; ++}; ++ + struct V8_DEPRECATED("This API is dead within V8") FastApiArrayBufferView { + void* data; + size_t byte_length; +@@ -664,6 +700,32 @@ PRIMITIVE_C_TYPES(DEFINE_TYPE_INFO_TRAITS) + #undef PRIMITIVE_C_TYPES + #undef ALL_C_TYPES + ++#define SPECIALIZE_GET_TYPE_INFO_HELPER_FOR_TA(T, Enum) \ ++ template <> \ ++ struct V8_DEPRECATE_SOON( \ ++ "This struct is unnecessary now, because FastApiTypedArray has already " \ ++ "been deprecated as well") TypeInfoHelper&> { \ ++ static constexpr CTypeInfo::Flags Flags() { \ ++ return CTypeInfo::Flags::kNone; \ ++ } \ ++ \ ++ static constexpr CTypeInfo::Type Type() { return CTypeInfo::Type::Enum; } \ ++ static constexpr CTypeInfo::SequenceType SequenceType() { \ ++ return CTypeInfo::SequenceType::kIsTypedArray; \ ++ } \ ++ }; ++ ++#define TYPED_ARRAY_C_TYPES(V) \ ++ V(uint8_t, kUint8) \ ++ V(int32_t, kInt32) \ ++ V(uint32_t, kUint32) \ ++ V(int64_t, kInt64) \ ++ V(uint64_t, kUint64) \ ++ V(float, kFloat32) \ ++ V(double, kFloat64) ++ ++TYPED_ARRAY_C_TYPES(SPECIALIZE_GET_TYPE_INFO_HELPER_FOR_TA) ++ + #undef TYPED_ARRAY_C_TYPES + + template <> +diff --git a/src/compiler/turboshaft/fast-api-call-lowering-reducer.h b/src/compiler/turboshaft/fast-api-call-lowering-reducer.h +index dc27e91ad0da93a5b68053f132f219f95f641ca1..38ba1110da3f77df4681ccb0ebcee78d1500fbd7 100644 +--- a/src/compiler/turboshaft/fast-api-call-lowering-reducer.h ++++ b/src/compiler/turboshaft/fast-api-call-lowering-reducer.h +@@ -188,8 +188,20 @@ class FastApiCallLoweringReducer : public Next { + break; + } + START_ALLOW_USE_DEPRECATED() +- case CTypeInfo::SequenceType::kIsTypedArray: +- UNREACHABLE(); ++ case CTypeInfo::SequenceType::kIsTypedArray: { ++ // Check that the value is a TypedArray with a type that matches the ++ // type declared in the c-function. ++ OpIndex stack_slot = AdaptFastCallTypedArrayArgument( ++ argument, ++ fast_api_call::GetTypedArrayElementsKind( ++ resolution_result.element_type), ++ next); ++ OpIndex target_address = __ ExternalConstant( ++ ExternalReference::Create(c_functions[func_index].address, ++ ExternalReference::FAST_C_CALL)); ++ GOTO(done, target_address, stack_slot); ++ break; ++ } + END_ALLOW_USE_DEPRECATED() + + default: { +@@ -328,8 +340,15 @@ class FastApiCallLoweringReducer : public Next { + return __ AdaptLocalArgument(argument); + } + START_ALLOW_USE_DEPRECATED() +- case CTypeInfo::SequenceType::kIsTypedArray: +- UNREACHABLE(); ++ case CTypeInfo::SequenceType::kIsTypedArray: { ++ // Check that the value is a HeapObject. ++ GOTO_IF(__ ObjectIsSmi(argument), handle_error); ++ ++ return AdaptFastCallTypedArrayArgument( ++ argument, ++ fast_api_call::GetTypedArrayElementsKind(arg_type.GetType()), ++ handle_error); ++ } + END_ALLOW_USE_DEPRECATED() + default: { + UNREACHABLE(); +@@ -387,6 +406,94 @@ class FastApiCallLoweringReducer : public Next { + } + } + ++ OpIndex AdaptFastCallTypedArrayArgument(V argument, ++ ElementsKind expected_elements_kind, ++ Label<>& bailout) { ++ V map = __ LoadMapField(argument); ++ V instance_type = __ LoadInstanceTypeField(map); ++ GOTO_IF_NOT(LIKELY(__ Word32Equal(instance_type, JS_TYPED_ARRAY_TYPE)), ++ bailout); ++ ++ V bitfield2 = ++ __ template LoadField(map, AccessBuilder::ForMapBitField2()); ++ V kind = __ Word32ShiftRightLogical( ++ __ Word32BitwiseAnd(bitfield2, Map::Bits2::ElementsKindBits::kMask), ++ Map::Bits2::ElementsKindBits::kShift); ++ GOTO_IF_NOT(LIKELY(__ Word32Equal(kind, expected_elements_kind)), bailout); ++ ++ V buffer = __ template LoadField( ++ argument, AccessBuilder::ForJSArrayBufferViewBuffer()); ++ V buffer_bitfield = __ template LoadField( ++ buffer, AccessBuilder::ForJSArrayBufferBitField()); ++ ++ // Go to the slow path if the {buffer} was detached. ++ GOTO_IF(UNLIKELY(__ Word32BitwiseAnd(buffer_bitfield, ++ JSArrayBuffer::WasDetachedBit::kMask)), ++ bailout); ++ ++ // Go to the slow path if the {buffer} is shared. ++ GOTO_IF(UNLIKELY(__ Word32BitwiseAnd(buffer_bitfield, ++ JSArrayBuffer::IsSharedBit::kMask)), ++ bailout); ++ ++ // Unpack the store and length, and store them to a struct ++ // FastApiTypedArray. ++ OpIndex external_pointer = ++ __ LoadField(argument, AccessBuilder::ForJSTypedArrayExternalPointer()); ++ ++ // Load the base pointer for the buffer. This will always be Smi ++ // zero unless we allow on-heap TypedArrays, which is only the case ++ // for Chrome. Node and Electron both set this limit to 0. Setting ++ // the base to Smi zero here allows the BuildTypedArrayDataPointer ++ // to optimize away the tricky part of the access later. ++ V data_ptr; ++ if constexpr (JSTypedArray::kMaxSizeInHeap == 0) { ++ data_ptr = external_pointer; ++ } else { ++ V base_pointer = __ template LoadField( ++ argument, AccessBuilder::ForJSTypedArrayBasePointer()); ++ V base = __ BitcastTaggedToWordPtr(base_pointer); ++ if (COMPRESS_POINTERS_BOOL) { ++ // Zero-extend Tagged_t to UintPtr according to current compression ++ // scheme so that the addition with |external_pointer| (which already ++ // contains compensated offset value) will decompress the tagged value. ++ // See JSTypedArray::ExternalPointerCompensationForOnHeapArray() for ++ // details. ++ base = __ ChangeUint32ToUintPtr(__ TruncateWordPtrToWord32(base)); ++ } ++ data_ptr = __ WordPtrAdd(base, external_pointer); ++ } ++ ++ V length_in_bytes = __ template LoadField( ++ argument, AccessBuilder::ForJSTypedArrayLength()); ++ ++ // We hard-code int32_t here, because all specializations of ++ // FastApiTypedArray have the same size. ++ START_ALLOW_USE_DEPRECATED() ++ constexpr int kAlign = alignof(FastApiTypedArray); ++ constexpr int kSize = sizeof(FastApiTypedArray); ++ static_assert(kAlign == alignof(FastApiTypedArray), ++ "Alignment mismatch between different specializations of " ++ "FastApiTypedArray"); ++ static_assert(kSize == sizeof(FastApiTypedArray), ++ "Size mismatch between different specializations of " ++ "FastApiTypedArray"); ++ END_ALLOW_USE_DEPRECATED() ++ static_assert( ++ kSize == sizeof(uintptr_t) + sizeof(size_t), ++ "The size of " ++ "FastApiTypedArray isn't equal to the sum of its expected members."); ++ OpIndex stack_slot = __ StackSlot(kSize, kAlign); ++ __ StoreOffHeap(stack_slot, length_in_bytes, ++ MemoryRepresentation::UintPtr()); ++ __ StoreOffHeap(stack_slot, data_ptr, MemoryRepresentation::UintPtr(), ++ sizeof(size_t)); ++ static_assert(sizeof(uintptr_t) == sizeof(size_t), ++ "The buffer length can't " ++ "fit the PointerRepresentation used to store it."); ++ return stack_slot; ++ } ++ + V DefaultReturnValue(const CFunctionInfo* c_signature) { + switch (c_signature->ReturnInfo().GetType()) { + case CTypeInfo::Type::kVoid: +diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc +index f126b758d050236d88ec49a23b298c54eff50821..1282e2cf8a686475492b253138e367cc44d4f77f 100644 +--- a/test/cctest/test-api.cc ++++ b/test/cctest/test-api.cc +@@ -29762,6 +29762,16 @@ static Trivial* UnwrapTrivialObject(Local object) { + return wrapped; + } + ++START_ALLOW_USE_DEPRECATED() ++void FastCallback1TypedArray(v8::Local receiver, int arg0, ++ const v8::FastApiTypedArray& arg1) { ++ Trivial* self = UnwrapTrivialObject(receiver); ++ CHECK_NOT_NULL(self); ++ CHECK_EQ(arg0, arg1.length()); ++ self->set_x(arg0); ++} ++END_ALLOW_USE_DEPRECATED() ++ + void FastCallback2JSArray(v8::Local receiver, int arg0, + v8::Local arg1) { + Trivial* self = UnwrapTrivialObject(receiver); +@@ -29779,10 +29789,103 @@ void FastCallback4Scalar(v8::Local receiver, int arg0, float arg1) { + void FastCallback5DifferentArity(v8::Local receiver, int arg0, + v8::Local arg1, float arg2) {} + ++void SequenceSlowCallback(const v8::FunctionCallbackInfo& info) { ++ CHECK(i::ValidateCallbackInfo(info)); ++ v8::Isolate* isolate = info.GetIsolate(); ++ Trivial* self = UnwrapTrivialObject(info.This()); ++ if (!self) { ++ isolate->ThrowError("This method is not defined on the given receiver."); ++ return; ++ } ++ self->set_x(1337); ++ ++ HandleScope handle_scope(isolate); ++ ++ if (info.Length() < 2 || !info[0]->IsNumber()) { ++ isolate->ThrowError( ++ "This method expects at least 2 arguments," ++ " first one a number."); ++ return; ++ } ++ int64_t len = info[0]->IntegerValue(isolate->GetCurrentContext()).FromJust(); ++ if (info[1]->IsTypedArray()) { ++ v8::Local typed_array_arg = info[1].As(); ++ size_t length = typed_array_arg->Length(); ++ CHECK_EQ(len, length); ++ return; ++ } ++ if (!info[1]->IsArray()) { ++ isolate->ThrowError("This method expects an array as a second argument."); ++ return; ++ } ++ v8::Local seq_arg = info[1].As(); ++ uint32_t length = seq_arg->Length(); ++ CHECK_EQ(len, length); ++ return; ++} + } // namespace + #endif // !defined(V8_LITE_MODE) && defined(V8_ENABLE_TURBOFAN) + + START_ALLOW_USE_DEPRECATED() ++TEST(FastApiSequenceOverloads) { ++#if !defined(V8_LITE_MODE) && defined(V8_ENABLE_TURBOFAN) ++ if (i::v8_flags.jitless) return; ++ if (i::v8_flags.disable_optimizing_compilers) return; ++ ++ i::v8_flags.turbofan = true; ++ i::v8_flags.turbo_fast_api_calls = true; ++ i::v8_flags.allow_natives_syntax = true; ++ // Disable --always_turbofan, otherwise we haven't generated the necessary ++ // feedback to go down the "best optimization" path for the fast call. ++ i::v8_flags.always_turbofan = false; ++ i::FlagList::EnforceFlagImplications(); ++ ++ v8::Isolate* isolate = CcTest::isolate(); ++ HandleScope handle_scope(isolate); ++ LocalContext env; ++ ++ v8::CFunction typed_array_callback = ++ v8::CFunctionBuilder().Fn(FastCallback1TypedArray).Build(); ++ v8::CFunction js_array_callback = ++ v8::CFunctionBuilder().Fn(FastCallback2JSArray).Build(); ++ const v8::CFunction sequece_overloads[] = { ++ typed_array_callback, ++ js_array_callback, ++ }; ++ ++ Local sequence_callback_templ = ++ v8::FunctionTemplate::NewWithCFunctionOverloads( ++ isolate, SequenceSlowCallback, v8::Number::New(isolate, 42), ++ v8::Local(), 1, v8::ConstructorBehavior::kThrow, ++ v8::SideEffectType::kHasSideEffect, {sequece_overloads, 2}); ++ ++ v8::Local object_template = ++ v8::ObjectTemplate::New(isolate); ++ object_template->SetInternalFieldCount(kV8WrapperObjectIndex + 1); ++ object_template->Set(isolate, "api_func", sequence_callback_templ); ++ ++ std::unique_ptr rcv(new Trivial(42)); ++ v8::Local object = ++ object_template->NewInstance(env.local()).ToLocalChecked(); ++ object->SetAlignedPointerInInternalField(kV8WrapperObjectIndex, rcv.get()); ++ ++ CHECK( ++ (env)->Global()->Set(env.local(), v8_str("receiver"), object).FromJust()); ++ USE(CompileRun( ++ "function func(num, arr) { return receiver.api_func(num, arr); }" ++ "%PrepareFunctionForOptimization(func);" ++ "func(3, [1,2,3]);" ++ "%OptimizeFunctionOnNextCall(func);" ++ "func(3, [1,2,3]);")); ++ CHECK_EQ(3, rcv->x()); ++ ++ USE( ++ CompileRun("const ta = new Int32Array([1, 2, 3, 4]);" ++ "func(4, ta);")); ++ CHECK_EQ(4, rcv->x()); ++#endif // !defined(V8_LITE_MODE) && defined(V8_ENABLE_TURBOFAN) ++} ++ + TEST(FastApiOverloadResolution) { + #if !defined(V8_LITE_MODE) && defined(V8_ENABLE_TURBOFAN) + if (i::v8_flags.jitless) return; +@@ -29796,15 +29899,22 @@ TEST(FastApiOverloadResolution) { + i::v8_flags.always_turbofan = false; + i::FlagList::EnforceFlagImplications(); + ++ v8::CFunction typed_array_callback = ++ v8::CFunctionBuilder().Fn(FastCallback1TypedArray).Build(); + v8::CFunction js_array_callback = + v8::CFunctionBuilder().Fn(FastCallback2JSArray).Build(); + ++ // Check that a general runtime overload resolution is possible. ++ CHECK_EQ(v8::CFunction::OverloadResolution::kAtRuntime, ++ typed_array_callback.GetOverloadResolution(&js_array_callback)); ++ + v8::CFunction swapped_params_callback = + v8::CFunctionBuilder().Fn(FastCallback3SwappedParams).Build(); + + // Check that difference in > 1 position is not possible. +- CHECK_EQ(v8::CFunction::OverloadResolution::kImpossible, +- js_array_callback.GetOverloadResolution(&swapped_params_callback)); ++ CHECK_EQ( ++ v8::CFunction::OverloadResolution::kImpossible, ++ typed_array_callback.GetOverloadResolution(&swapped_params_callback)); + + v8::CFunction scalar_callback = + v8::CFunctionBuilder().Fn(FastCallback4Scalar).Build(); +@@ -29812,7 +29922,7 @@ TEST(FastApiOverloadResolution) { + // Check that resolving when there is a scalar at the difference position + // is not possible. + CHECK_EQ(v8::CFunction::OverloadResolution::kImpossible, +- js_array_callback.GetOverloadResolution(&scalar_callback)); ++ typed_array_callback.GetOverloadResolution(&scalar_callback)); + + v8::CFunction diff_arity_callback = + v8::CFunctionBuilder().Fn(FastCallback5DifferentArity).Build(); +@@ -29820,7 +29930,7 @@ TEST(FastApiOverloadResolution) { + // Check that overload resolution between different number of arguments + // is possible. + CHECK_EQ(v8::CFunction::OverloadResolution::kAtCompileTime, +- js_array_callback.GetOverloadResolution(&diff_arity_callback)); ++ typed_array_callback.GetOverloadResolution(&diff_arity_callback)); + + #endif // !defined(V8_LITE_MODE) && defined(V8_ENABLE_TURBOFAN) + } diff --git a/patches/v8/revert_fastapi_promote_deprecation_of_fastapitypedarray.patch b/patches/v8/revert_fastapi_promote_deprecation_of_fastapitypedarray.patch deleted file mode 100644 index ce221f976f..0000000000 --- a/patches/v8/revert_fastapi_promote_deprecation_of_fastapitypedarray.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: David Sanders -Date: Wed, 30 Oct 2024 21:40:17 -0700 -Subject: Revert "[fastapi] Promote deprecation of FastApiTypedArray" - -This reverts commit 22b9e934bbbc2f026ed2c3a97a72d9f3ec890a68. - -Revert this until Node.js decides how to proceed and then pick up their fix. - -Refs: https://github.com/nodejs/node/issues/55452 -Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5956408 - -diff --git a/include/v8-fast-api-calls.h b/include/v8-fast-api-calls.h -index f10444e3916c5dba41bec74f3d87007466ad9dc2..d470bd1fcfc62cb512b102fdafc2e9a9530fb768 100644 ---- a/include/v8-fast-api-calls.h -+++ b/include/v8-fast-api-calls.h -@@ -340,7 +340,7 @@ struct V8_DEPRECATE_SOON( - }; - - template --struct V8_DEPRECATED( -+struct V8_DEPRECATE_SOON( - "When an API function expects a TypedArray as a parameter, the type in the " - "signature should be `v8::Local` instead of " - "FastApiTypedArray<>. The API function then has to type-check the " diff --git a/patches/v8/revert_fastapi_remove_dynamic_overload_resolution.patch b/patches/v8/revert_fastapi_remove_dynamic_overload_resolution.patch new file mode 100644 index 0000000000..90ce72317f --- /dev/null +++ b/patches/v8/revert_fastapi_remove_dynamic_overload_resolution.patch @@ -0,0 +1,853 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: John Kleinschmidt +Date: Fri, 15 Nov 2024 10:46:43 -0500 +Subject: Revert "[fastapi] Remove dynamic overload resolution" + +Revert this until Node.js decides how to proceed and then pick up their fix. + +Refs: https://github.com/nodejs/node/issues/55452 +Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5956408 +Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5982984 +Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5979766 + +This reverts commit c41f7a0ef99bd1c9752ee79923f634145ebc4153. + +diff --git a/src/api/api.cc b/src/api/api.cc +index 86f2d298e4ba37a46a74f4f6eba5adc2106889bb..ae1de25004bd1d1ba11225bc13472f4cbab3ca33 100644 +--- a/src/api/api.cc ++++ b/src/api/api.cc +@@ -1348,16 +1348,6 @@ Local FunctionTemplate::NewWithCFunctionOverloads( + i::Isolate* i_isolate = reinterpret_cast(v8_isolate); + API_RCS_SCOPE(i_isolate, FunctionTemplate, New); + +- // Check that all overloads of the fast API callback have different numbers of +- // parameters. Since the number of overloads is supposed to be small, just +- // comparing them with each other should be fine. +- for (size_t i = 0; i < c_function_overloads.size(); ++i) { +- for (size_t j = i + 1; j < c_function_overloads.size(); ++j) { +- CHECK_NE(c_function_overloads.data()[i].ArgumentCount(), +- c_function_overloads.data()[j].ArgumentCount()); +- } +- } +- + if (!Utils::ApiCheck( + c_function_overloads.empty() || + behavior == ConstructorBehavior::kThrow, +diff --git a/src/compiler/fast-api-calls.cc b/src/compiler/fast-api-calls.cc +index 2dc99dc83e0f78d2bbb0875cc04064b565deaf06..d560afa2ee9f4384738cddf659a51d4c42b4fe67 100644 +--- a/src/compiler/fast-api-calls.cc ++++ b/src/compiler/fast-api-calls.cc +@@ -62,6 +62,52 @@ ElementsKind GetTypedArrayElementsKind(CTypeInfo::Type type) { + } + } + ++OverloadsResolutionResult ResolveOverloads( ++ const FastApiCallFunctionVector& candidates, unsigned int arg_count) { ++ DCHECK_GT(arg_count, 0); ++ ++ static constexpr int kReceiver = 1; ++ ++ // Only the case of the overload resolution of two functions, one with a ++ // JSArray param and the other with a typed array param is currently ++ // supported. ++ DCHECK_EQ(candidates.size(), 2); ++ ++ for (unsigned int arg_index = kReceiver; arg_index < arg_count; arg_index++) { ++ int index_of_func_with_js_array_arg = -1; ++ int index_of_func_with_typed_array_arg = -1; ++ CTypeInfo::Type element_type = CTypeInfo::Type::kVoid; ++ ++ for (size_t i = 0; i < candidates.size(); i++) { ++ const CTypeInfo& type_info = ++ candidates[i].signature->ArgumentInfo(arg_index); ++ CTypeInfo::SequenceType sequence_type = type_info.GetSequenceType(); ++ ++ START_ALLOW_USE_DEPRECATED() ++ if (sequence_type == CTypeInfo::SequenceType::kIsSequence) { ++ DCHECK_LT(index_of_func_with_js_array_arg, 0); ++ index_of_func_with_js_array_arg = static_cast(i); ++ } else if (sequence_type == CTypeInfo::SequenceType::kIsTypedArray) { ++ DCHECK_LT(index_of_func_with_typed_array_arg, 0); ++ index_of_func_with_typed_array_arg = static_cast(i); ++ element_type = type_info.GetType(); ++ } else { ++ DCHECK_LT(index_of_func_with_js_array_arg, 0); ++ DCHECK_LT(index_of_func_with_typed_array_arg, 0); ++ } ++ END_ALLOW_USE_DEPRECATED() ++ } ++ ++ if (index_of_func_with_js_array_arg >= 0 && ++ index_of_func_with_typed_array_arg >= 0) { ++ return {static_cast(arg_index), element_type}; ++ } ++ } ++ ++ // No overload found with a JSArray and a typed array as i-th argument. ++ return OverloadsResolutionResult::Invalid(); ++} ++ + bool CanOptimizeFastSignature(const CFunctionInfo* c_signature) { + USE(c_signature); + +@@ -149,7 +195,8 @@ class FastApiCallBuilder { + initialize_options_(initialize_options), + generate_slow_api_call_(generate_slow_api_call) {} + +- Node* Build(FastApiCallFunction c_function, Node* data_argument); ++ Node* Build(const FastApiCallFunctionVector& c_functions, ++ const CFunctionInfo* c_signature, Node* data_argument); + + private: + Node* WrapFastCall(const CallDescriptor* call_descriptor, int inputs_size, +@@ -230,15 +277,35 @@ void FastApiCallBuilder::PropagateException() { + __ Call(call_descriptor, count, inputs); + } + +-Node* FastApiCallBuilder::Build(FastApiCallFunction c_function, ++Node* FastApiCallBuilder::Build(const FastApiCallFunctionVector& c_functions, ++ const CFunctionInfo* c_signature, + Node* data_argument) { +- const CFunctionInfo* c_signature = c_function.signature; + const int c_arg_count = c_signature->ArgumentCount(); + + // Hint to fast path. + auto if_success = __ MakeLabel(); + auto if_error = __ MakeDeferredLabel(); + ++ // Overload resolution ++ bool generate_fast_call = false; ++ OverloadsResolutionResult overloads_resolution_result = ++ OverloadsResolutionResult::Invalid(); ++ ++ if (c_functions.size() == 1) { ++ generate_fast_call = true; ++ } else { ++ DCHECK_EQ(c_functions.size(), 2); ++ overloads_resolution_result = ResolveOverloads(c_functions, c_arg_count); ++ if (overloads_resolution_result.is_valid()) { ++ generate_fast_call = true; ++ } ++ } ++ ++ if (!generate_fast_call) { ++ // Only generate the slow call. ++ return generate_slow_api_call_(); ++ } ++ + // Generate fast call. + + const int kFastTargetAddressInputIndex = 0; +@@ -263,11 +330,18 @@ Node* FastApiCallBuilder::Build(FastApiCallFunction c_function, + // address associated to the first and only element in the c_functions vector. + // If there are multiple overloads the value of this input will be set later + // with a Phi node created by AdaptOverloadedFastCallArgument. +- inputs[kFastTargetAddressInputIndex] = __ ExternalConstant( +- ExternalReference::Create(c_function.address, ref_type)); ++ inputs[kFastTargetAddressInputIndex] = ++ (c_functions.size() == 1) ? __ ExternalConstant(ExternalReference::Create( ++ c_functions[0].address, ref_type)) ++ : nullptr; + + for (int i = 0; i < c_arg_count; ++i) { +- inputs[i + kFastTargetAddressInputCount] = get_parameter_(i, &if_error); ++ inputs[i + kFastTargetAddressInputCount] = ++ get_parameter_(i, overloads_resolution_result, &if_error); ++ if (overloads_resolution_result.target_address) { ++ inputs[kFastTargetAddressInputIndex] = ++ overloads_resolution_result.target_address; ++ } + } + DCHECK_NOT_NULL(inputs[kFastTargetAddressInputIndex]); + +@@ -368,7 +442,8 @@ Node* FastApiCallBuilder::Build(FastApiCallFunction c_function, + + Node* BuildFastApiCall(Isolate* isolate, Graph* graph, + GraphAssembler* graph_assembler, +- FastApiCallFunction c_function, Node* data_argument, ++ const FastApiCallFunctionVector& c_functions, ++ const CFunctionInfo* c_signature, Node* data_argument, + const GetParameter& get_parameter, + const ConvertReturnValue& convert_return_value, + const InitializeOptions& initialize_options, +@@ -376,7 +451,7 @@ Node* BuildFastApiCall(Isolate* isolate, Graph* graph, + FastApiCallBuilder builder(isolate, graph, graph_assembler, get_parameter, + convert_return_value, initialize_options, + generate_slow_api_call); +- return builder.Build(c_function, data_argument); ++ return builder.Build(c_functions, c_signature, data_argument); + } + + } // namespace fast_api_call +diff --git a/src/compiler/fast-api-calls.h b/src/compiler/fast-api-calls.h +index 171e66c427991bfe7db5c2875d12559767a24b55..b97b37e5746433d3801de19d4666a19afc223cdc 100644 +--- a/src/compiler/fast-api-calls.h ++++ b/src/compiler/fast-api-calls.h +@@ -40,16 +40,21 @@ struct OverloadsResolutionResult { + + ElementsKind GetTypedArrayElementsKind(CTypeInfo::Type type); + ++OverloadsResolutionResult ResolveOverloads( ++ const FastApiCallFunctionVector& candidates, unsigned int arg_count); ++ + bool CanOptimizeFastSignature(const CFunctionInfo* c_signature); + +-using GetParameter = std::function*)>; ++using GetParameter = std::function*)>; + using ConvertReturnValue = std::function; + using InitializeOptions = std::function; + using GenerateSlowApiCall = std::function; + + Node* BuildFastApiCall(Isolate* isolate, Graph* graph, + GraphAssembler* graph_assembler, +- FastApiCallFunction c_function, Node* data_argument, ++ const FastApiCallFunctionVector& c_functions, ++ const CFunctionInfo* c_signature, Node* data_argument, + const GetParameter& get_parameter, + const ConvertReturnValue& convert_return_value, + const InitializeOptions& initialize_options, +diff --git a/src/compiler/js-call-reducer.cc b/src/compiler/js-call-reducer.cc +index d75a38769d582cd6e5a807f9670732dc92d77b7e..a29bd4a5be0c9a268386898f8a52e98933211b6c 100644 +--- a/src/compiler/js-call-reducer.cc ++++ b/src/compiler/js-call-reducer.cc +@@ -631,11 +631,11 @@ class FastApiCallReducerAssembler : public JSCallReducerAssembler { + FastApiCallReducerAssembler( + JSCallReducer* reducer, Node* node, + const FunctionTemplateInfoRef function_template_info, +- FastApiCallFunction c_function, Node* receiver, Node* holder, +- const SharedFunctionInfoRef shared, Node* target, const int arity, +- Node* effect) ++ const FastApiCallFunctionVector& c_candidate_functions, Node* receiver, ++ Node* holder, const SharedFunctionInfoRef shared, Node* target, ++ const int arity, Node* effect) + : JSCallReducerAssembler(reducer, node), +- c_function_(c_function), ++ c_candidate_functions_(c_candidate_functions), + function_template_info_(function_template_info), + receiver_(receiver), + holder_(holder), +@@ -643,6 +643,7 @@ class FastApiCallReducerAssembler : public JSCallReducerAssembler { + target_(target), + arity_(arity) { + DCHECK_EQ(IrOpcode::kJSCall, node->opcode()); ++ CHECK_GT(c_candidate_functions.size(), 0); + InitializeEffectControl(effect, NodeProperties::GetControlInput(node)); + } + +@@ -654,7 +655,7 @@ class FastApiCallReducerAssembler : public JSCallReducerAssembler { + // All functions in c_candidate_functions_ have the same number of + // arguments, so extract c_argument_count from the first function. + const int c_argument_count = +- static_cast(c_function_.signature->ArgumentCount()); ++ static_cast(c_candidate_functions_[0].signature->ArgumentCount()); + CHECK_GE(c_argument_count, kReceiver); + + const int slow_arg_count = +@@ -755,12 +756,13 @@ class FastApiCallReducerAssembler : public JSCallReducerAssembler { + + TNode FastApiCall(CallDescriptor* descriptor, Node** inputs, + size_t inputs_size) { +- return AddNode(graph()->NewNode( +- simplified()->FastApiCall(c_function_, feedback(), descriptor), +- static_cast(inputs_size), inputs)); ++ return AddNode( ++ graph()->NewNode(simplified()->FastApiCall(c_candidate_functions_, ++ feedback(), descriptor), ++ static_cast(inputs_size), inputs)); + } + +- FastApiCallFunction c_function_; ++ const FastApiCallFunctionVector c_candidate_functions_; + const FunctionTemplateInfoRef function_template_info_; + Node* const receiver_; + Node* const holder_; +@@ -3886,10 +3888,11 @@ Reduction JSCallReducer::ReduceCallWasmFunction(Node* node, + // Returns an array with the indexes of the remaining entries in S, which + // represents the set of "optimizable" function overloads. + +-FastApiCallFunction GetFastApiCallTarget( +- JSHeapBroker* broker, FunctionTemplateInfoRef function_template_info, +- size_t arg_count) { +- if (!v8_flags.turbo_fast_api_calls) return {0, nullptr}; ++FastApiCallFunctionVector CanOptimizeFastCall( ++ JSHeapBroker* broker, Zone* zone, ++ FunctionTemplateInfoRef function_template_info, size_t arg_count) { ++ FastApiCallFunctionVector result(zone); ++ if (!v8_flags.turbo_fast_api_calls) return result; + + static constexpr int kReceiver = 1; + +@@ -3918,15 +3921,15 @@ FastApiCallFunction GetFastApiCallTarget( + static_cast(c_signature->ArgumentInfo(i).GetFlags()); + if (flags & static_cast(CTypeInfo::Flags::kEnforceRangeBit)) { + // Bailout +- return {0, nullptr}; ++ return FastApiCallFunctionVector(zone); + } + } + #endif +- return {functions[i], c_signature}; ++ result.push_back({functions[i], c_signature}); + } + } + +- return {0, nullptr}; ++ return result; + } + + Reduction JSCallReducer::ReduceCallApiFunction(Node* node, +@@ -4109,13 +4112,15 @@ Reduction JSCallReducer::ReduceCallApiFunction(Node* node, + } + + // Handles overloaded functions. +- FastApiCallFunction c_function = +- GetFastApiCallTarget(broker(), function_template_info, argc); + +- if (c_function.address) { ++ FastApiCallFunctionVector c_candidate_functions = CanOptimizeFastCall( ++ broker(), graph()->zone(), function_template_info, argc); ++ DCHECK_LE(c_candidate_functions.size(), 2); ++ ++ if (!c_candidate_functions.empty()) { + FastApiCallReducerAssembler a(this, node, function_template_info, +- c_function, receiver, holder, shared, target, +- argc, effect); ++ c_candidate_functions, receiver, holder, ++ shared, target, argc, effect); + Node* fast_call_subgraph = a.ReduceFastApiCall(); + + return Replace(fast_call_subgraph); +diff --git a/src/compiler/simplified-lowering.cc b/src/compiler/simplified-lowering.cc +index a76784f65355cd7f380cadf0db602668f59cf07b..37e216509163514bc9ee43d7bb25695387e82351 100644 +--- a/src/compiler/simplified-lowering.cc ++++ b/src/compiler/simplified-lowering.cc +@@ -2015,7 +2015,7 @@ class RepresentationSelector { + // argument, which must be a JSArray in one function and a TypedArray in the + // other function, and both JSArrays and TypedArrays have the same UseInfo + // UseInfo::AnyTagged(). All the other argument types must match. +- const CFunctionInfo* c_signature = op_params.c_function().signature; ++ const CFunctionInfo* c_signature = op_params.c_functions()[0].signature; + const int c_arg_count = c_signature->ArgumentCount(); + CallDescriptor* call_descriptor = op_params.descriptor(); + // Arguments for CallApiCallbackOptimizedXXX builtin (including context) +@@ -2057,8 +2057,12 @@ class RepresentationSelector { + + // Effect and Control. + ProcessRemainingInputs(node, value_input_count); ++ if (op_params.c_functions().empty()) { ++ SetOutput(node, MachineRepresentation::kTagged); ++ return; ++ } + +- CTypeInfo return_type = op_params.c_function().signature->ReturnInfo(); ++ CTypeInfo return_type = op_params.c_functions()[0].signature->ReturnInfo(); + switch (return_type.GetType()) { + case CTypeInfo::Type::kBool: + SetOutput(node, MachineRepresentation::kBit); +diff --git a/src/compiler/simplified-operator.cc b/src/compiler/simplified-operator.cc +index a27ea417112518987f95eac5d7d091693149280a..a8fd6fba72b3140016258b8c156aa65701367c59 100644 +--- a/src/compiler/simplified-operator.cc ++++ b/src/compiler/simplified-operator.cc +@@ -2055,21 +2055,26 @@ FastApiCallParameters const& FastApiCallParametersOf(const Operator* op) { + } + + std::ostream& operator<<(std::ostream& os, FastApiCallParameters const& p) { +- FastApiCallFunction c_function = p.c_function(); +- os << c_function.address << ":" << c_function.signature << ", "; ++ const auto& c_functions = p.c_functions(); ++ for (size_t i = 0; i < c_functions.size(); i++) { ++ os << c_functions[i].address << ":" << c_functions[i].signature << ", "; ++ } + return os << p.feedback() << ", " << p.descriptor(); + } + + size_t hash_value(FastApiCallParameters const& p) { +- FastApiCallFunction c_function = p.c_function(); +- size_t hash = base::hash_combine(c_function.address, c_function.signature); ++ const auto& c_functions = p.c_functions(); ++ size_t hash = 0; ++ for (size_t i = 0; i < c_functions.size(); i++) { ++ hash = base::hash_combine(c_functions[i].address, c_functions[i].signature); ++ } + return base::hash_combine(hash, FeedbackSource::Hash()(p.feedback()), + p.descriptor()); + } + + bool operator==(FastApiCallParameters const& lhs, + FastApiCallParameters const& rhs) { +- return lhs.c_function() == rhs.c_function() && ++ return lhs.c_functions() == rhs.c_functions() && + lhs.feedback() == rhs.feedback() && + lhs.descriptor() == rhs.descriptor(); + } +@@ -2279,11 +2284,19 @@ const Operator* SimplifiedOperatorBuilder::TransitionAndStoreNonNumberElement( + } + + const Operator* SimplifiedOperatorBuilder::FastApiCall( +- FastApiCallFunction c_function, FeedbackSource const& feedback, +- CallDescriptor* descriptor) { +- CHECK_NOT_NULL(c_function.signature); +- const CFunctionInfo* signature = c_function.signature; ++ const FastApiCallFunctionVector& c_functions, ++ FeedbackSource const& feedback, CallDescriptor* descriptor) { ++ DCHECK(!c_functions.empty()); ++ ++ // All function overloads have the same number of arguments and options. ++ const CFunctionInfo* signature = c_functions[0].signature; + const int c_arg_count = signature->ArgumentCount(); ++ for (size_t i = 1; i < c_functions.size(); i++) { ++ CHECK_NOT_NULL(c_functions[i].signature); ++ DCHECK_EQ(c_functions[i].signature->ArgumentCount(), c_arg_count); ++ DCHECK_EQ(c_functions[i].signature->HasOptions(), ++ c_functions[0].signature->HasOptions()); ++ } + // Arguments for CallApiCallbackOptimizedXXX builtin (including context) + // plus JS arguments (including receiver). + int slow_arg_count = static_cast(descriptor->ParameterCount()); +@@ -2293,13 +2306,13 @@ const Operator* SimplifiedOperatorBuilder::FastApiCall( + return zone()->New>( + IrOpcode::kFastApiCall, Operator::kNoProperties, "FastApiCall", + value_input_count, 1, 1, 1, 1, 2, +- FastApiCallParameters(c_function, feedback, descriptor)); ++ FastApiCallParameters(c_functions, feedback, descriptor)); + } + + // static + int FastApiCallNode::FastCallArgumentCount(Node* node) { + FastApiCallParameters p = FastApiCallParametersOf(node->op()); +- const CFunctionInfo* signature = p.c_function().signature; ++ const CFunctionInfo* signature = p.c_functions()[0].signature; + CHECK_NOT_NULL(signature); + return signature->ArgumentCount(); + } +diff --git a/src/compiler/simplified-operator.h b/src/compiler/simplified-operator.h +index a4aecbbfe2f82a16dfc136c2bc22614ade9e6bf7..ee61ba530af51cd3b32a62cc5d4b83016f501078 100644 +--- a/src/compiler/simplified-operator.h ++++ b/src/compiler/simplified-operator.h +@@ -716,25 +716,35 @@ struct FastApiCallFunction { + return address == rhs.address && signature == rhs.signature; + } + }; ++typedef ZoneVector FastApiCallFunctionVector; + + class FastApiCallParameters { + public: +- explicit FastApiCallParameters(FastApiCallFunction c_function, ++ explicit FastApiCallParameters(const FastApiCallFunctionVector& c_functions, + FeedbackSource const& feedback, + CallDescriptor* descriptor) +- : c_function_(c_function), feedback_(feedback), descriptor_(descriptor) {} ++ : c_functions_(c_functions), ++ feedback_(feedback), ++ descriptor_(descriptor) {} + +- FastApiCallFunction c_function() const { return c_function_; } ++ const FastApiCallFunctionVector& c_functions() const { return c_functions_; } + FeedbackSource const& feedback() const { return feedback_; } + CallDescriptor* descriptor() const { return descriptor_; } +- const CFunctionInfo* signature() const { return c_function_.signature; } ++ const CFunctionInfo* signature() const { ++ DCHECK(!c_functions_.empty()); ++ return c_functions_[0].signature; ++ } + unsigned int argument_count() const { + const unsigned int count = signature()->ArgumentCount(); ++ DCHECK(base::all_of(c_functions_, [count](const auto& f) { ++ return f.signature->ArgumentCount() == count; ++ })); + return count; + } + + private: +- FastApiCallFunction c_function_; ++ // A single FastApiCall node can represent multiple overloaded functions. ++ const FastApiCallFunctionVector c_functions_; + + const FeedbackSource feedback_; + CallDescriptor* descriptor_; +@@ -1205,9 +1215,9 @@ class V8_EXPORT_PRIVATE SimplifiedOperatorBuilder final + const Operator* Unsigned32Divide(); + + // Represents the inputs necessary to construct a fast and a slow API call. +- const Operator* FastApiCall(FastApiCallFunction c_function, +- FeedbackSource const& feedback, +- CallDescriptor* descriptor); ++ const Operator* FastApiCall( ++ const FastApiCallFunctionVector& c_candidate_functions, ++ FeedbackSource const& feedback, CallDescriptor* descriptor); + + #ifdef V8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA + const Operator* GetContinuationPreservedEmbedderData(); +diff --git a/src/compiler/turbofan-typer.cc b/src/compiler/turbofan-typer.cc +index 51f797d342c4fb20e6833fdebbc8a6417b9a3537..a1ab6f4a314a56db8d1351e81e9640e470c324ae 100644 +--- a/src/compiler/turbofan-typer.cc ++++ b/src/compiler/turbofan-typer.cc +@@ -1186,8 +1186,11 @@ Type Typer::Visitor::TypeCall(Node* node) { return Type::Any(); } + + Type Typer::Visitor::TypeFastApiCall(Node* node) { + FastApiCallParameters const& op_params = FastApiCallParametersOf(node->op()); ++ if (op_params.c_functions().empty()) { ++ return Type::Undefined(); ++ } + +- const CFunctionInfo* c_signature = op_params.c_function().signature; ++ const CFunctionInfo* c_signature = op_params.c_functions()[0].signature; + CTypeInfo return_type = c_signature->ReturnInfo(); + + switch (return_type.GetType()) { +diff --git a/src/compiler/turboshaft/fast-api-call-lowering-reducer.h b/src/compiler/turboshaft/fast-api-call-lowering-reducer.h +index 2dec266f9e648391fe61a62931cca1ad20de719c..dc27e91ad0da93a5b68053f132f219f95f641ca1 100644 +--- a/src/compiler/turboshaft/fast-api-call-lowering-reducer.h ++++ b/src/compiler/turboshaft/fast-api-call-lowering-reducer.h +@@ -29,23 +29,41 @@ class FastApiCallLoweringReducer : public Next { + base::Vector arguments, + const FastApiCallParameters* parameters, + base::Vector out_reps) { +- FastApiCallFunction c_function = parameters->c_function; ++ const auto& c_functions = parameters->c_functions; + const auto& c_signature = parameters->c_signature(); + const int c_arg_count = c_signature->ArgumentCount(); + DCHECK_EQ(c_arg_count, arguments.size()); ++ const auto& resolution_result = parameters->resolution_result; + + Label<> handle_error(this); + Label done(this); + Variable result = __ NewVariable(RegisterRepresentation::FromCTypeInfo( + c_signature->ReturnInfo(), c_signature->GetInt64Representation())); + +- OpIndex callee = __ ExternalConstant(ExternalReference::Create( +- c_function.address, ExternalReference::FAST_C_CALL)); +- ++ OpIndex callee; + base::SmallVector args; + for (int i = 0; i < c_arg_count; ++i) { ++ // Check if this is the argument on which we need to perform overload ++ // resolution. ++ if (i == resolution_result.distinguishable_arg_index) { ++ DCHECK_GT(c_functions.size(), 1); ++ // This only happens when the FastApiCall node represents multiple ++ // overloaded functions and {i} is the index of the distinguishable ++ // argument. ++ OpIndex arg_i; ++ std::tie(callee, arg_i) = AdaptOverloadedFastCallArgument( ++ arguments[i], c_functions, resolution_result, handle_error); ++ args.push_back(arg_i); ++ } else { + CTypeInfo type = c_signature->ArgumentInfo(i); + args.push_back(AdaptFastCallArgument(arguments[i], type, handle_error)); ++ } ++ } ++ ++ if (c_functions.size() == 1) { ++ DCHECK(!callee.valid()); ++ callee = __ ExternalConstant(ExternalReference::Create( ++ c_functions[0].address, ExternalReference::FAST_C_CALL)); + } + + // While adapting the arguments, we might have noticed an inconsistency that +@@ -137,6 +155,56 @@ class FastApiCallLoweringReducer : public Next { + } + + private: ++ std::pair AdaptOverloadedFastCallArgument( ++ OpIndex argument, const FastApiCallFunctionVector& c_functions, ++ const fast_api_call::OverloadsResolutionResult& resolution_result, ++ Label<>& handle_error) { ++ Label done(this); ++ ++ for (size_t func_index = 0; func_index < c_functions.size(); ++func_index) { ++ const CFunctionInfo* c_signature = c_functions[func_index].signature; ++ CTypeInfo arg_type = c_signature->ArgumentInfo( ++ resolution_result.distinguishable_arg_index); ++ ++ Label<> next(this); ++ ++ // Check that the value is a HeapObject. ++ GOTO_IF(__ ObjectIsSmi(argument), handle_error); ++ ++ switch (arg_type.GetSequenceType()) { ++ case CTypeInfo::SequenceType::kIsSequence: { ++ CHECK_EQ(arg_type.GetType(), CTypeInfo::Type::kVoid); ++ ++ // Check that the value is a JSArray. ++ V map = __ LoadMapField(argument); ++ V instance_type = __ LoadInstanceTypeField(map); ++ GOTO_IF_NOT(__ Word32Equal(instance_type, JS_ARRAY_TYPE), next); ++ ++ OpIndex argument_to_pass = __ AdaptLocalArgument(argument); ++ OpIndex target_address = __ ExternalConstant( ++ ExternalReference::Create(c_functions[func_index].address, ++ ExternalReference::FAST_C_CALL)); ++ GOTO(done, target_address, argument_to_pass); ++ break; ++ } ++ START_ALLOW_USE_DEPRECATED() ++ case CTypeInfo::SequenceType::kIsTypedArray: ++ UNREACHABLE(); ++ END_ALLOW_USE_DEPRECATED() ++ ++ default: { ++ UNREACHABLE(); ++ } ++ } ++ ++ BIND(next); ++ } ++ GOTO(handle_error); ++ ++ BIND(done, callee, arg); ++ return {callee, arg}; ++ } ++ + template + V Checked(V> result, Label<>& otherwise) { + V result_state = __ template Projection<1>(result); +diff --git a/src/compiler/turboshaft/graph-builder.cc b/src/compiler/turboshaft/graph-builder.cc +index 806cb4533cc035ee4c95597ba2ab6bbfb6ac81f1..2b597b8798ed235afcd833efbc7a308b2f1db288 100644 +--- a/src/compiler/turboshaft/graph-builder.cc ++++ b/src/compiler/turboshaft/graph-builder.cc +@@ -1974,7 +1974,7 @@ OpIndex GraphBuilder::Process( + DCHECK(dominating_frame_state.valid()); + FastApiCallNode n(node); + const auto& params = n.Parameters(); +- FastApiCallFunction c_function = params.c_function(); ++ const FastApiCallFunctionVector& c_functions = params.c_functions(); + const int c_arg_count = params.argument_count(); + + base::SmallVector slow_call_arguments; +@@ -2141,6 +2141,40 @@ OpIndex GraphBuilder::Process( + Block* catch_block = Map(block->SuccessorAt(1)); + catch_scope.emplace(assembler, catch_block); + } ++ // Overload resolution. ++ auto resolution_result = ++ fast_api_call::OverloadsResolutionResult::Invalid(); ++ if (c_functions.size() != 1) { ++ DCHECK_EQ(c_functions.size(), 2); ++ resolution_result = ++ fast_api_call::ResolveOverloads(c_functions, c_arg_count); ++ if (!resolution_result.is_valid()) { ++ V fallback_result = V::Cast(__ Call( ++ slow_call_callee, dominating_frame_state, ++ base::VectorOf(slow_call_arguments), ++ TSCallDescriptor::Create(params.descriptor(), CanThrow::kYes, ++ LazyDeoptOnThrow::kNo, ++ __ graph_zone()))); ++ Variable result = ++ __ NewVariable(RegisterRepresentation::FromCTypeInfo( ++ c_functions[0].signature->ReturnInfo(), ++ c_functions[0].signature->GetInt64Representation())); ++ convert_fallback_return( ++ result, c_functions[0].signature->GetInt64Representation(), ++ c_functions[0].signature->ReturnInfo().GetType(), ++ fallback_result); ++ V value = __ GetVariable(result); ++ if (is_final_control) { ++ // The `__ Call()` before has already created exceptional ++ // control flow and bound a new block for the success case. So we ++ // can just `Goto` the block that Turbofan designated as the ++ // `IfSuccess` successor. ++ __ Goto(Map(block->SuccessorAt(0))); ++ } ++ return value; ++ } ++ } ++ + // Prepare FastCallApiOp parameters. + base::SmallVector arguments; + for (int i = 0; i < c_arg_count; ++i) { +@@ -2150,8 +2184,8 @@ OpIndex GraphBuilder::Process( + + V context = Map(n.Context()); + +- const FastApiCallParameters* parameters = +- FastApiCallParameters::Create(c_function, __ graph_zone()); ++ const FastApiCallParameters* parameters = FastApiCallParameters::Create( ++ c_functions, resolution_result, __ graph_zone()); + + // There is one return in addition to the return value of the C function, + // which indicates if a fast API call actually happened. +diff --git a/src/compiler/turboshaft/operations.h b/src/compiler/turboshaft/operations.h +index 1b36c56008d4b3c5af0d15f2c6336d260fab56c8..f50f1fd3ba0d0ac1deae2510a483714172560b56 100644 +--- a/src/compiler/turboshaft/operations.h ++++ b/src/compiler/turboshaft/operations.h +@@ -6318,16 +6318,24 @@ struct Float64SameValueOp : FixedArityOperationT<2, Float64SameValueOp> { + }; + + struct FastApiCallParameters : public NON_EXPORTED_BASE(ZoneObject) { +- FastApiCallFunction c_function; ++ const FastApiCallFunctionVector c_functions; ++ fast_api_call::OverloadsResolutionResult resolution_result; + +- const CFunctionInfo* c_signature() const { return c_function.signature; } ++ const CFunctionInfo* c_signature() const { return c_functions[0].signature; } + +- explicit FastApiCallParameters(FastApiCallFunction c_function) +- : c_function(c_function) {} ++ FastApiCallParameters( ++ const FastApiCallFunctionVector& c_functions, ++ const fast_api_call::OverloadsResolutionResult& resolution_result) ++ : c_functions(c_functions), resolution_result(resolution_result) { ++ DCHECK_LT(0, c_functions.size()); ++ } + +- static const FastApiCallParameters* Create(FastApiCallFunction c_function, +- Zone* graph_zone) { +- return graph_zone->New(c_function); ++ static const FastApiCallParameters* Create( ++ const FastApiCallFunctionVector& c_functions, ++ const fast_api_call::OverloadsResolutionResult& resolution_result, ++ Zone* graph_zone) { ++ return graph_zone->New(std::move(c_functions), ++ resolution_result); + } + }; + +diff --git a/src/compiler/wasm-compiler.cc b/src/compiler/wasm-compiler.cc +index b6ded4cd3e2a29af8589862ac31c97fdd0da0c71..14c3378470a34ef8bdda4a4df8211e5a6b8726f7 100644 +--- a/src/compiler/wasm-compiler.cc ++++ b/src/compiler/wasm-compiler.cc +@@ -8351,13 +8351,19 @@ class WasmWrapperGraphBuilder : public WasmGraphBuilder { + wasm::ObjectAccess::ToTagged( + FunctionTemplateInfo::kCallbackDataOffset)); + +- FastApiCallFunction c_function{c_address, c_signature}; ++ FastApiCallFunctionVector fast_api_call_function_vector(mcgraph()->zone()); ++ fast_api_call_function_vector.push_back({c_address, c_signature}); + Node* call = fast_api_call::BuildFastApiCall( +- target->GetIsolate(), graph(), gasm_.get(), c_function, +- api_data_argument, ++ target->GetIsolate(), graph(), gasm_.get(), ++ fast_api_call_function_vector, c_signature, api_data_argument, + // Load and convert parameters passed to C function +- [this, c_signature, receiver_node](int param_index, +- GraphAssemblerLabel<0>*) { ++ [this, c_signature, receiver_node]( ++ int param_index, ++ fast_api_call::OverloadsResolutionResult& overloads, ++ GraphAssemblerLabel<0>*) { ++ // Wasm does not currently support overloads ++ CHECK(!overloads.is_valid()); ++ + if (param_index == 0) { + return gasm_->AdaptLocalArgument(receiver_node); + } +diff --git a/src/d8/d8-test.cc b/src/d8/d8-test.cc +index fd21264ec893850086041c3d7392151a6add2b27..1bc455ed18920588d641cdf9f3a54a5f8f528484 100644 +--- a/src/d8/d8-test.cc ++++ b/src/d8/d8-test.cc +@@ -443,6 +443,20 @@ class FastCApiObject { + } + } + ++ static int32_t AddAllIntInvalidCallback(Local receiver, ++ int32_t arg_i32, ++ FastApiCallbackOptions& options) { ++ // This should never be called ++ UNREACHABLE(); ++ } ++ ++ static int32_t AddAllIntInvalidOverloadCallback( ++ Local receiver, Local seq_arg, ++ FastApiCallbackOptions& options) { ++ // This should never be called ++ UNREACHABLE(); ++ } ++ + #ifdef V8_USE_SIMULATOR_WITH_GENERIC_C_CALLS + static AnyCType Add32BitIntFastCallbackPatch(AnyCType receiver, + AnyCType arg_i32, +@@ -1551,6 +1565,22 @@ Local Shell::CreateTestFastCApiTemplate(Isolate* isolate) { + signature, 1, ConstructorBehavior::kThrow, + SideEffectType::kHasSideEffect, {add_all_overloads, 2})); + ++ CFunction add_all_int_invalid_func = ++ CFunction::Make(FastCApiObject::AddAllIntInvalidCallback); ++ CFunction add_all_int_invalid_overload = ++ CFunction::Make(FastCApiObject::AddAllIntInvalidOverloadCallback); ++ ++ const CFunction add_all_invalid_overloads[] = { ++ add_all_int_invalid_func, ++ add_all_int_invalid_overload, ++ }; ++ api_obj_ctor->PrototypeTemplate()->Set( ++ isolate, "add_all_invalid_overload", ++ FunctionTemplate::NewWithCFunctionOverloads( ++ isolate, FastCApiObject::AddAllSequenceSlowCallback, Local(), ++ signature, 1, ConstructorBehavior::kThrow, ++ SideEffectType::kHasSideEffect, {add_all_invalid_overloads, 2})); ++ + CFunction add_all_32bit_int_8args_c_func = CFunction::Make( + FastCApiObject::AddAll32BitIntFastCallback_8Args V8_IF_USE_SIMULATOR( + FastCApiObject::AddAll32BitIntFastCallback_8ArgsPatch)); +diff --git a/test/mjsunit/compiler/fast-api-sequences.js b/test/mjsunit/compiler/fast-api-sequences.js +index 6a982bbbfe13ae792a3d3a1d3376f71b6b00d38a..4318f60fc70f0a2684c6f233861e513063f8e542 100644 +--- a/test/mjsunit/compiler/fast-api-sequences.js ++++ b/test/mjsunit/compiler/fast-api-sequences.js +@@ -81,6 +81,30 @@ for (let i = 0; i < 100; i++) { + ExpectFastCall(overloaded_test, 62); + })(); + ++// Test function with invalid overloads. ++(function () { ++ function overloaded_test() { ++ return fast_c_api.add_all_invalid_overload( ++ [26, -6, 42]); ++ } ++ ++ %PrepareFunctionForOptimization(overloaded_test); ++ result = overloaded_test(); ++ assertEquals(62, result); ++ ++ fast_c_api.reset_counts(); ++ %OptimizeFunctionOnNextCall(overloaded_test); ++ result = overloaded_test(); ++ assertEquals(62, result); ++ // Here we deopt because with this invalid overload: ++ // - add_all_int_invalid_func(Receiver, Bool, Int32, Options) ++ // - add_all_seq_c_func(Receiver, Bool, JSArray, Options) ++ // we expect that a number will be passed as 3rd argument ++ // (SimplifiedLowering takes the type from the first overloaded function). ++ assertUnoptimized(overloaded_test); ++ assertEquals(0, fast_c_api.fast_call_count()); ++})(); ++ + // ----------- Test different TypedArray functions. ----------- + // ----------- add_all__typed_array ----------- + // `add_all__typed_array` have the following signature: +diff --git a/test/mjsunit/regress/regress-335548148.js b/test/mjsunit/regress/regress-335548148.js +new file mode 100644 +index 0000000000000000000000000000000000000000..4725c48990767fc2a469a5ab3c04ba96e11bf54c +--- /dev/null ++++ b/test/mjsunit/regress/regress-335548148.js +@@ -0,0 +1,29 @@ ++// Copyright 2024 the V8 project authors. All rights reserved. ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++// Flags: --turbo-fast-api-calls --expose-fast-api --allow-natives-syntax --turbofan ++// --always-turbofan is disabled because we rely on particular feedback for ++// optimizing to the fastest path. ++// Flags: --no-always-turbofan ++// The test relies on optimizing/deoptimizing at predictable moments, so ++// it's not suitable for deoptimization fuzzing. ++// Flags: --deopt-every-n-times=0 ++// Flags: --fast-api-allow-float-in-sim ++ ++const __v_0 = new d8.test.FastCAPI(); ++ ++function __f_0(__v_4, __v_5) { ++ try { ++ // Call the API function with an invalid parameter. Because of the invalid ++ // parameter the overload resolution of the fast API cannot figure out ++ // which function should be called, and therefore emits code for a normal ++ // API call. ++ __v_0.add_all_invalid_overload(__v_5, Object.prototype); ++ } catch (e) {} ++} ++ ++%PrepareFunctionForOptimization(__f_0); ++__f_0(Number.MIN_VALUE, Number.MIN_VALUE); ++%OptimizeFunctionOnNextCall(__f_0); ++__f_0(Number.MIN_VALUE, Number.MIN_VALUE); diff --git a/shell/app/electron_crash_reporter_client.cc b/shell/app/electron_crash_reporter_client.cc index 12451eda83..5c87c3c081 100644 --- a/shell/app/electron_crash_reporter_client.cc +++ b/shell/app/electron_crash_reporter_client.cc @@ -96,26 +96,6 @@ void ElectronCrashReporterClient::SetCrashReporterClientIdFromGUID( const std::string& client_guid) { crash_keys::SetMetricsClientIdFromGUID(client_guid); } -void ElectronCrashReporterClient::GetProductNameAndVersion( - const char** product_name, - const char** version) { - DCHECK(product_name); - DCHECK(version); - *product_name = ELECTRON_PRODUCT_NAME; - *version = ELECTRON_VERSION_STRING; -} - -void ElectronCrashReporterClient::GetProductNameAndVersion( - std::string* product_name, - std::string* version, - std::string* channel) { - const char* c_product_name; - const char* c_version; - GetProductNameAndVersion(&c_product_name, &c_version); - *product_name = c_product_name; - *version = c_version; - *channel = ""; -} base::FilePath ElectronCrashReporterClient::GetReporterLogFilename() { return base::FilePath(CrashUploadList::kReporterLogFilename); @@ -202,6 +182,11 @@ std::string ElectronCrashReporterClient::GetUploadUrl() { return upload_url_; } +void ElectronCrashReporterClient::GetProductInfo(ProductInfo* product_info) { + product_info->product_name = ELECTRON_PRODUCT_NAME; + product_info->version = ELECTRON_VERSION_STRING; +} + bool ElectronCrashReporterClient::EnableBreakpadForProcess( const std::string& process_type) { return process_type == switches::kRendererProcess || diff --git a/shell/app/electron_crash_reporter_client.h b/shell/app/electron_crash_reporter_client.h index 81228ea821..8b1c4d1a97 100644 --- a/shell/app/electron_crash_reporter_client.h +++ b/shell/app/electron_crash_reporter_client.h @@ -33,11 +33,6 @@ class ElectronCrashReporterClient : public crash_reporter::CrashReporterClient { #if BUILDFLAG(IS_LINUX) void SetCrashReporterClientIdFromGUID( const std::string& client_guid) override; - void GetProductNameAndVersion(const char** product_name, - const char** version) override; - void GetProductNameAndVersion(std::string* product_name, - std::string* version, - std::string* channel) override; base::FilePath GetReporterLogFilename() override; #endif @@ -73,6 +68,7 @@ class ElectronCrashReporterClient : public crash_reporter::CrashReporterClient { bool ShouldMonitorCrashHandlerExpensively() override; #endif + void GetProductInfo(ProductInfo* product_info) override; bool EnableBreakpadForProcess(const std::string& process_type) override; std::string GetUploadUrl() override; diff --git a/shell/browser/api/electron_api_web_contents.cc b/shell/browser/api/electron_api_web_contents.cc index 0b1a5b2c63..9d4565a19b 100644 --- a/shell/browser/api/electron_api_web_contents.cc +++ b/shell/browser/api/electron_api_web_contents.cc @@ -1368,6 +1368,10 @@ content::WebContents* WebContents::GetWebContentsForExclusiveAccess() { return web_contents(); } +bool WebContents::CanUserEnterFullscreen() const { + return true; +} + bool WebContents::CanUserExitFullscreen() const { return true; } diff --git a/shell/browser/api/electron_api_web_contents.h b/shell/browser/api/electron_api_web_contents.h index fd8fbc065b..1856014477 100644 --- a/shell/browser/api/electron_api_web_contents.h +++ b/shell/browser/api/electron_api_web_contents.h @@ -731,6 +731,7 @@ class WebContents final : public ExclusiveAccessContext, ExclusiveAccessBubbleHideCallback bubble_first_hide_callback) override {} void OnExclusiveAccessUserInput() override {} content::WebContents* GetWebContentsForExclusiveAccess() override; + bool CanUserEnterFullscreen() const override; bool CanUserExitFullscreen() const override; bool IsExclusiveAccessBubbleDisplayed() const override; diff --git a/shell/browser/electron_browser_main_parts_posix.cc b/shell/browser/electron_browser_main_parts_posix.cc index ce0433f843..6c7d48b3d2 100644 --- a/shell/browser/electron_browser_main_parts_posix.cc +++ b/shell/browser/electron_browser_main_parts_posix.cc @@ -114,20 +114,6 @@ ShutdownDetector::ShutdownDetector( CHECK(task_runner_); } -// These functions are used to help us diagnose crash dumps that happen -// during the shutdown process. -NOINLINE void ShutdownFDReadError() { - // Ensure function isn't optimized away. - asm(""); - sleep(UINT_MAX); -} - -NOINLINE void ShutdownFDClosedError() { - // Ensure function isn't optimized away. - asm(""); - sleep(UINT_MAX); -} - NOINLINE void ExitPosted() { // Ensure function isn't optimized away. asm(""); @@ -142,14 +128,10 @@ template while (!bytes.empty()) { const ssize_t rv = HANDLE_EINTR(read(fd, bytes.data(), bytes.size())); if (rv < 0) { - NOTREACHED_IN_MIGRATION() << "Unexpected error: " << strerror(errno); - ShutdownFDReadError(); - return {}; + NOTREACHED() << "Unexpected error: " << strerror(errno); } if (rv == 0) { - NOTREACHED_IN_MIGRATION() << "Unexpected closure of shutdown pipe."; - ShutdownFDClosedError(); - return {}; + NOTREACHED() << "Unexpected closure of shutdown pipe."; } const size_t n_bytes_read = static_cast(rv); bytes = bytes.subspan(n_bytes_read); diff --git a/shell/browser/electron_pdf_document_helper_client.cc b/shell/browser/electron_pdf_document_helper_client.cc index ae1b63d3b5..01cf55a5e6 100644 --- a/shell/browser/electron_pdf_document_helper_client.cc +++ b/shell/browser/electron_pdf_document_helper_client.cc @@ -75,9 +75,10 @@ void ElectronPDFDocumentHelperClient::SetPluginCanSave( } #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) -void ElectronPDFDocumentHelperClient::OnSearchifyStateChange( - bool busy, +void ElectronPDFDocumentHelperClient::OnSearchifyStarted( content::WebContents* contents) { - // TODO(crbug.com/360803943): Show promo and manage progress bubble. + // TODO(crbug.com/360803943): Add test. + // Show the promo only when ScreenAI component is available and OCR can be + // done. } #endif diff --git a/shell/browser/electron_pdf_document_helper_client.h b/shell/browser/electron_pdf_document_helper_client.h index f3da7d2663..94eb3c7452 100644 --- a/shell/browser/electron_pdf_document_helper_client.h +++ b/shell/browser/electron_pdf_document_helper_client.h @@ -25,8 +25,7 @@ class ElectronPDFDocumentHelperClient : public pdf::PDFDocumentHelperClient { void SetPluginCanSave(content::RenderFrameHost* render_frame_host, bool can_save) override; #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) - void OnSearchifyStateChange(bool busy, - content::WebContents* contents) override; + void OnSearchifyStarted(content::WebContents* contents) override; #endif }; diff --git a/shell/browser/extensions/electron_extension_host_delegate.cc b/shell/browser/extensions/electron_extension_host_delegate.cc index 9b4f2331b2..dde1149a2e 100644 --- a/shell/browser/extensions/electron_extension_host_delegate.cc +++ b/shell/browser/extensions/electron_extension_host_delegate.cc @@ -27,13 +27,6 @@ void ElectronExtensionHostDelegate::OnExtensionHostCreated( electron::api::WebContents::FromOrCreate(isolate, web_contents); } -content::JavaScriptDialogManager* -ElectronExtensionHostDelegate::GetJavaScriptDialogManager() { - // TODO(jamescook): Create a JavaScriptDialogManager or reuse the one from - // content_shell. - NOTREACHED(); -} - void ElectronExtensionHostDelegate::CreateTab( std::unique_ptr web_contents, const std::string& extension_id, diff --git a/shell/browser/extensions/electron_extension_host_delegate.h b/shell/browser/extensions/electron_extension_host_delegate.h index ed0d0a7d10..6e8c17434c 100644 --- a/shell/browser/extensions/electron_extension_host_delegate.h +++ b/shell/browser/extensions/electron_extension_host_delegate.h @@ -26,7 +26,6 @@ class ElectronExtensionHostDelegate : public ExtensionHostDelegate { // ExtensionHostDelegate implementation. void OnExtensionHostCreated(content::WebContents* web_contents) override; void OnMainFrameCreatedForBackgroundPage(ExtensionHost* host) override {} - content::JavaScriptDialogManager* GetJavaScriptDialogManager() override; void CreateTab(std::unique_ptr web_contents, const std::string& extension_id, WindowOpenDisposition disposition, diff --git a/shell/browser/extensions/electron_extensions_browser_client.cc b/shell/browser/extensions/electron_extensions_browser_client.cc index a355baed88..59bc8e7ef1 100644 --- a/shell/browser/extensions/electron_extensions_browser_client.cc +++ b/shell/browser/extensions/electron_extensions_browser_client.cc @@ -389,11 +389,6 @@ extensions::KioskDelegate* ElectronExtensionsBrowserClient::GetKioskDelegate() { return kiosk_delegate_.get(); } -bool ElectronExtensionsBrowserClient::IsLockScreenContext( - content::BrowserContext* context) { - return false; -} - std::string ElectronExtensionsBrowserClient::GetApplicationLocale() { return ElectronBrowserClient::Get()->GetApplicationLocale(); } diff --git a/shell/browser/extensions/electron_extensions_browser_client.h b/shell/browser/extensions/electron_extensions_browser_client.h index fc9df91da8..5fa9da2481 100644 --- a/shell/browser/extensions/electron_extensions_browser_client.h +++ b/shell/browser/extensions/electron_extensions_browser_client.h @@ -139,7 +139,6 @@ class ElectronExtensionsBrowserClient extensions::ExtensionWebContentsObserver* GetExtensionWebContentsObserver( content::WebContents* web_contents) override; extensions::KioskDelegate* GetKioskDelegate() override; - bool IsLockScreenContext(content::BrowserContext* context) override; std::string GetApplicationLocale() override; std::string GetUserAgent() const override; void RegisterBrowserInterfaceBindersForFrame( diff --git a/shell/browser/ui/electron_desktop_window_tree_host_linux.cc b/shell/browser/ui/electron_desktop_window_tree_host_linux.cc index eb2999311e..c82733d1cb 100644 --- a/shell/browser/ui/electron_desktop_window_tree_host_linux.cc +++ b/shell/browser/ui/electron_desktop_window_tree_host_linux.cc @@ -122,12 +122,6 @@ void ElectronDesktopWindowTreeHostLinux::UpdateWindowState( break; case ui::PlatformWindowState::kUnknown: case ui::PlatformWindowState::kNormal: - case ui::PlatformWindowState::kSnappedPrimary: - case ui::PlatformWindowState::kSnappedSecondary: - case ui::PlatformWindowState::kFloated: - case ui::PlatformWindowState::kPip: - case ui::PlatformWindowState::kPinnedFullscreen: - case ui::PlatformWindowState::kTrustedPinnedFullscreen: break; } switch (new_state) { @@ -142,12 +136,6 @@ void ElectronDesktopWindowTreeHostLinux::UpdateWindowState( break; case ui::PlatformWindowState::kUnknown: case ui::PlatformWindowState::kNormal: - case ui::PlatformWindowState::kSnappedPrimary: - case ui::PlatformWindowState::kSnappedSecondary: - case ui::PlatformWindowState::kFloated: - case ui::PlatformWindowState::kPip: - case ui::PlatformWindowState::kPinnedFullscreen: - case ui::PlatformWindowState::kTrustedPinnedFullscreen: break; } window_state_ = new_state; diff --git a/shell/common/api/electron_api_url_loader.cc b/shell/common/api/electron_api_url_loader.cc index 0aa8734c9f..8bcfd4fcad 100644 --- a/shell/common/api/electron_api_url_loader.cc +++ b/shell/common/api/electron_api_url_loader.cc @@ -161,8 +161,7 @@ class BufferDataSource : public mojo::DataPipeProducer::DataSource { } result.bytes_read = copyable_size; } else { - NOTREACHED_IN_MIGRATION(); - result.result = MOJO_RESULT_OUT_OF_RANGE; + NOTREACHED(); } return result; }