chromium/third_party/blink/renderer/core/layout/build.gni

# Copyright 2020 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This target always builds with -O3. Hot path functions that are sensitive
# to the difference between optimization profiles should be placed here.
#
# Some functions are extremely sensitive to the optimizer profile setting on
# architectures like ARM32. For example, in ARM32 using -Oz instead of -O2
# results in different choices for inlining, loop vectorization, and register
# spilling that can yield 10%-15% regressions in blink_perf benchmarks.
#
# If adding more translations units, the convention is, for a given foo.cc
# file, create a foo-hot.cc file which can hold any functions that require
# -O2 optimization. If there is common inlined implementations, put this in
# foo-inl.h and include that in both foo.cc and foo-hot.cc.

blink_core_hot_sources_layout = [
  "layout_block_flow_hot.cc",
  "layout_box_hot.cc",
  "layout_object_hot.cc",
  "layout_object_inl.h",
  "text_autosizer.cc",
  "text_autosizer.h",
]

blink_core_sources_layout = [
  "absolute_utils.cc",
  "absolute_utils.h",
  "anchor_evaluator_impl.cc",
  "anchor_evaluator_impl.h",
  "anchor_position_scroll_data.cc",
  "anchor_position_scroll_data.h",
  "anchor_position_visibility_observer.cc",
  "anchor_position_visibility_observer.h",
  "anchor_query_map.cc",
  "anchor_query_map.h",
  "background_bleed_avoidance.h",
  "baseline_utils.h",
  "block_break_token.cc",
  "block_break_token.h",
  "block_break_token_data.h",
  "block_child_iterator.cc",
  "block_child_iterator.h",
  "block_layout_algorithm.cc",
  "block_layout_algorithm.h",
  "block_layout_algorithm_utils.cc",
  "block_layout_algorithm_utils.h",
  "block_node.cc",
  "block_node.h",
  "box_fragment_builder.cc",
  "box_fragment_builder.h",
  "break_appeal.h",
  "break_token.cc",
  "break_token.h",
  "column_layout_algorithm.cc",
  "column_layout_algorithm.h",
  "column_spanner_path.h",
  "constraint_space.cc",
  "constraint_space.h",
  "constraint_space_builder.cc",
  "constraint_space_builder.h",
  "content_change_type.h",
  "custom/css_layout_definition.cc",
  "custom/css_layout_definition.h",
  "custom/css_layout_worklet.cc",
  "custom/css_layout_worklet.h",
  "custom/custom_intrinsic_sizes.cc",
  "custom/custom_intrinsic_sizes.h",
  "custom/custom_layout_algorithm.cc",
  "custom/custom_layout_algorithm.h",
  "custom/custom_layout_child.cc",
  "custom/custom_layout_child.h",
  "custom/custom_layout_constraints.cc",
  "custom/custom_layout_constraints.h",
  "custom/custom_layout_edges.h",
  "custom/custom_layout_fragment.cc",
  "custom/custom_layout_fragment.h",
  "custom/custom_layout_scope.cc",
  "custom/custom_layout_scope.h",
  "custom/custom_layout_work_task.cc",
  "custom/custom_layout_work_task.h",
  "custom/document_layout_definition.cc",
  "custom/document_layout_definition.h",
  "custom/layout_custom.cc",
  "custom/layout_custom.h",
  "custom/layout_worklet.cc",
  "custom/layout_worklet.h",
  "custom/layout_worklet_global_scope.cc",
  "custom/layout_worklet_global_scope.h",
  "custom/layout_worklet_global_scope_proxy.cc",
  "custom/layout_worklet_global_scope_proxy.h",
  "custom/pending_layout_registry.cc",
  "custom/pending_layout_registry.h",
  "custom_scrollbar.cc",
  "custom_scrollbar.h",
  "depth_ordered_layout_object_list.cc",
  "depth_ordered_layout_object_list.h",
  "disable_layout_side_effects_scope.cc",
  "disable_layout_side_effects_scope.h",
  "early_break.h",
  "exclusions/exclusion_area.cc",
  "exclusions/exclusion_area.h",
  "exclusions/exclusion_space.cc",
  "exclusions/exclusion_space.h",
  "exclusions/layout_opportunity.cc",
  "exclusions/layout_opportunity.h",
  "exclusions/line_layout_opportunity.h",
  "exclusions/shape_exclusions.h",
  "flex/devtools_flex_info.h",
  "flex/flex_break_token_data.h",
  "flex/flex_child_iterator.cc",
  "flex/flex_child_iterator.h",
  "flex/flex_item_iterator.cc",
  "flex/flex_item_iterator.h",
  "flex/flex_layout_algorithm.cc",
  "flex/flex_layout_algorithm.h",
  "flex/flexible_box_algorithm.cc",
  "flex/flexible_box_algorithm.h",
  "flex/layout_flexible_box.cc",
  "flex/layout_flexible_box.h",
  "flex/ng_flex_line.h",
  "floats_utils.cc",
  "floats_utils.h",
  "forms/fieldset_break_token_data.h",
  "forms/fieldset_layout_algorithm.cc",
  "forms/fieldset_layout_algorithm.h",
  "forms/layout_fieldset.cc",
  "forms/layout_fieldset.h",
  "forms/layout_text_control.cc",
  "forms/layout_text_control.h",
  "forms/layout_text_control_inner_editor.h",
  "forms/layout_text_control_multi_line.cc",
  "forms/layout_text_control_multi_line.h",
  "forms/layout_text_control_single_line.cc",
  "forms/layout_text_control_single_line.h",
  "fragment_builder.cc",
  "fragment_builder.h",
  "fragment_repeater.cc",
  "fragment_repeater.h",
  "fragmentainer_iterator.cc",
  "fragmentainer_iterator.h",
  "fragmentation_utils.cc",
  "fragmentation_utils.h",
  "frame_set_layout_algorithm.cc",
  "frame_set_layout_algorithm.h",
  "frame_set_layout_data.h",
  "generated_children.h",
  "geometry/axis.h",
  "geometry/bfc_offset.cc",
  "geometry/bfc_offset.h",
  "geometry/bfc_rect.cc",
  "geometry/bfc_rect.h",
  "geometry/box_sides.h",
  "geometry/box_strut.cc",
  "geometry/box_strut.h",
  "geometry/flex_offset.cc",
  "geometry/flex_offset.h",
  "geometry/fragment_geometry.h",
  "geometry/logical_offset.cc",
  "geometry/logical_offset.h",
  "geometry/logical_rect.cc",
  "geometry/logical_rect.h",
  "geometry/logical_size.cc",
  "geometry/logical_size.h",
  "geometry/margin_strut.cc",
  "geometry/margin_strut.h",
  "geometry/physical_offset.cc",
  "geometry/physical_offset.h",
  "geometry/physical_rect.cc",
  "geometry/physical_rect.h",
  "geometry/physical_size.cc",
  "geometry/physical_size.h",
  "geometry/scroll_offset_range.cc",
  "geometry/scroll_offset_range.h",
  "geometry/static_position.h",
  "geometry/transform_state.cc",
  "geometry/transform_state.h",
  "geometry/writing_mode_converter.cc",
  "geometry/writing_mode_converter.h",
  "grid/grid_break_token_data.h",
  "grid/grid_data.h",
  "grid/grid_item.cc",
  "grid/grid_item.h",
  "grid/grid_layout_algorithm.cc",
  "grid/grid_layout_algorithm.h",
  "grid/grid_line_resolver.cc",
  "grid/grid_line_resolver.h",
  "grid/grid_named_line_collection.cc",
  "grid/grid_named_line_collection.h",
  "grid/grid_node.cc",
  "grid/grid_node.h",
  "grid/grid_placement.cc",
  "grid/grid_placement.h",
  "grid/grid_sizing_tree.cc",
  "grid/grid_sizing_tree.h",
  "grid/grid_subtree.h",
  "grid/grid_track_collection.cc",
  "grid/grid_track_collection.h",
  "grid/layout_grid.cc",
  "grid/layout_grid.h",
  "grid/subgrid_min_max_sizes_cache.h",
  "hit_test_cache.cc",
  "hit_test_cache.h",
  "hit_test_canvas_result.cc",
  "hit_test_canvas_result.h",
  "hit_test_location.cc",
  "hit_test_location.h",
  "hit_test_phase.h",
  "hit_test_request.cc",
  "hit_test_request.h",
  "hit_test_result.cc",
  "hit_test_result.h",
  "ink_overflow.cc",
  "ink_overflow.h",
  "inline/abstract_inline_text_box.cc",
  "inline/abstract_inline_text_box.h",
  "inline/caret_rect.cc",
  "inline/caret_rect.h",
  "inline/empty_offset_mapping_builder.h",
  "inline/fragment_item.cc",
  "inline/fragment_item.h",
  "inline/fragment_items.cc",
  "inline/fragment_items.h",
  "inline/fragment_items_builder.cc",
  "inline/fragment_items_builder.h",
  "inline/hyphen_result.cc",
  "inline/hyphen_result.h",
  "inline/initial_letter_utils.cc",
  "inline/initial_letter_utils.h",
  "inline/inline_box_state.cc",
  "inline/inline_box_state.h",
  "inline/inline_break_token.cc",
  "inline/inline_break_token.h",
  "inline/inline_caret_position.cc",
  "inline/inline_caret_position.h",
  "inline/inline_child_layout_context.cc",
  "inline/inline_child_layout_context.h",
  "inline/inline_containing_block_utils.cc",
  "inline/inline_containing_block_utils.h",
  "inline/inline_cursor.cc",
  "inline/inline_cursor.h",
  "inline/inline_item.cc",
  "inline/inline_item.h",
  "inline/inline_item_result.cc",
  "inline/inline_item_result.h",
  "inline/inline_item_result_ruby_column.h",
  "inline/inline_item_segment.cc",
  "inline/inline_item_segment.h",
  "inline/inline_item_span.h",
  "inline/inline_item_text_index.h",
  "inline/inline_items_builder.cc",
  "inline/inline_items_builder.h",
  "inline/inline_items_data.cc",
  "inline/inline_items_data.h",
  "inline/inline_layout_algorithm.cc",
  "inline/inline_layout_algorithm.h",
  "inline/inline_node.cc",
  "inline/inline_node.h",
  "inline/inline_node_data.cc",
  "inline/inline_node_data.h",
  "inline/inline_text_auto_space.cc",
  "inline/inline_text_auto_space.h",
  "inline/justification_utils.cc",
  "inline/justification_utils.h",
  "inline/leading_floats.h",
  "inline/line_box_fragment_builder.cc",
  "inline/line_box_fragment_builder.h",
  "inline/line_break_candidate.cc",
  "inline/line_break_candidate.h",
  "inline/line_break_point.h",
  "inline/line_breaker.cc",
  "inline/line_breaker.h",
  "inline/line_info.cc",
  "inline/line_info.h",
  "inline/line_info_list.h",
  "inline/line_truncator.cc",
  "inline/line_truncator.h",
  "inline/line_utils.cc",
  "inline/line_utils.h",
  "inline/line_widths.cc",
  "inline/line_widths.h",
  "inline/logical_line_builder.cc",
  "inline/logical_line_builder.h",
  "inline/logical_line_container.cc",
  "inline/logical_line_container.h",
  "inline/logical_line_item.cc",
  "inline/logical_line_item.h",
  "inline/offset_mapping.cc",
  "inline/offset_mapping.h",
  "inline/offset_mapping_builder.cc",
  "inline/offset_mapping_builder.h",
  "inline/paragraph_line_breaker.cc",
  "inline/paragraph_line_breaker.h",
  "inline/physical_line_box_fragment.cc",
  "inline/physical_line_box_fragment.h",
  "inline/ruby_utils.cc",
  "inline/ruby_utils.h",
  "inline/score_line_break_context.h",
  "inline/score_line_breaker.cc",
  "inline/score_line_breaker.h",
  "inline/text_item_type.h",
  "inline/text_offset_range.cc",
  "inline/text_offset_range.h",
  "inline/transformed_string.cc",
  "inline/transformed_string.h",
  "intrinsic_sizing_info.cc",
  "intrinsic_sizing_info.h",
  "layout_algorithm.h",
  "layout_block.cc",
  "layout_block.h",
  "layout_block_flow.cc",
  "layout_block_flow.h",
  "layout_box.cc",
  "layout_box.h",
  "layout_box_model_object.cc",
  "layout_box_model_object.h",
  "layout_box_utils.cc",
  "layout_box_utils.h",
  "layout_br.cc",
  "layout_br.h",
  "layout_counter.cc",
  "layout_counter.h",
  "layout_custom_scrollbar_part.cc",
  "layout_custom_scrollbar_part.h",
  "layout_embedded_content.cc",
  "layout_embedded_content.h",
  "layout_embedded_object.cc",
  "layout_embedded_object.h",
  "layout_flow_thread.cc",
  "layout_flow_thread.h",
  "layout_frame.cc",
  "layout_frame.h",
  "layout_frame_set.cc",
  "layout_frame_set.h",
  "layout_html_canvas.cc",
  "layout_html_canvas.h",
  "layout_iframe.cc",
  "layout_iframe.h",
  "layout_image.cc",
  "layout_image.h",
  "layout_image_resource.cc",
  "layout_image_resource.h",
  "layout_image_resource_style_image.cc",
  "layout_image_resource_style_image.h",
  "layout_inline.cc",
  "layout_inline.h",
  "layout_input_node.cc",
  "layout_input_node.h",
  "layout_media.cc",
  "layout_media.h",
  "layout_multi_column_flow_thread.cc",
  "layout_multi_column_flow_thread.h",
  "layout_multi_column_set.cc",
  "layout_multi_column_set.h",
  "layout_multi_column_spanner_placeholder.cc",
  "layout_multi_column_spanner_placeholder.h",
  "layout_object.cc",
  "layout_object.h",
  "layout_object_child_list.cc",
  "layout_object_child_list.h",
  "layout_object_inlines.h",
  "layout_progress.cc",
  "layout_progress.h",
  "layout_quote.cc",
  "layout_quote.h",
  "layout_replaced.cc",
  "layout_replaced.h",
  "layout_result.cc",
  "layout_result.h",
  "layout_ruby.cc",
  "layout_ruby.h",
  "layout_ruby_as_block.cc",
  "layout_ruby_as_block.h",
  "layout_ruby_base.cc",
  "layout_ruby_base.h",
  "layout_ruby_column.cc",
  "layout_ruby_column.h",
  "layout_ruby_text.cc",
  "layout_ruby_text.h",
  "layout_shift_region.cc",
  "layout_shift_region.h",
  "layout_shift_tracker.cc",
  "layout_shift_tracker.h",
  "layout_text.cc",
  "layout_text.h",
  "layout_text_combine.cc",
  "layout_text_combine.h",
  "layout_text_fragment.cc",
  "layout_text_fragment.h",
  "layout_theme.cc",
  "layout_theme.h",
  "layout_theme_default.cc",
  "layout_theme_default.h",
  "layout_theme_font_provider.cc",
  "layout_theme_font_provider.h",
  "layout_theme_mobile.cc",
  "layout_theme_mobile.h",
  "layout_tree_as_text.cc",
  "layout_tree_as_text.h",
  "layout_utils.cc",
  "layout_utils.h",
  "layout_video.cc",
  "layout_video.h",
  "layout_view.cc",
  "layout_view.h",
  "layout_view_transition_content.cc",
  "layout_view_transition_content.h",
  "layout_view_transition_root.cc",
  "layout_view_transition_root.h",
  "layout_word_break.cc",
  "layout_word_break.h",
  "legacy_layout_tree_walking.h",
  "length_utils.cc",
  "length_utils.h",
  "list/layout_inline_list_item.cc",
  "list/layout_inline_list_item.h",
  "list/layout_inside_list_marker.cc",
  "list/layout_inside_list_marker.h",
  "list/layout_list_item.cc",
  "list/layout_list_item.h",
  "list/layout_list_marker_image.cc",
  "list/layout_list_marker_image.h",
  "list/layout_outside_list_marker.cc",
  "list/layout_outside_list_marker.h",
  "list/list_marker.cc",
  "list/list_marker.h",
  "list/unpositioned_list_marker.cc",
  "list/unpositioned_list_marker.h",
  "line_clamp_data.h",
  "logical_box_fragment.cc",
  "logical_box_fragment.h",
  "logical_fragment.h",
  "logical_fragment_link.h",
  "map_coordinates_flags.h",
  "masonry/layout_masonry.cc",
  "masonry/layout_masonry.h",
  "masonry/masonry_layout_algorithm.cc",
  "masonry/masonry_layout_algorithm.h",
  "mathml/layout_mathml_block.cc",
  "mathml/layout_mathml_block.h",
  "mathml/layout_mathml_block_flow.cc",
  "mathml/layout_mathml_block_flow.h",
  "mathml/layout_mathml_block_with_anonymous_mrow.cc",
  "mathml/layout_mathml_block_with_anonymous_mrow.h",
  "mathml/layout_table_cell_with_anonymous_mrow.cc",
  "mathml/layout_table_cell_with_anonymous_mrow.h",
  "mathml/math_fraction_layout_algorithm.cc",
  "mathml/math_fraction_layout_algorithm.h",
  "mathml/math_layout_utils.cc",
  "mathml/math_layout_utils.h",
  "mathml/math_operator_layout_algorithm.cc",
  "mathml/math_operator_layout_algorithm.h",
  "mathml/math_padded_layout_algorithm.cc",
  "mathml/math_padded_layout_algorithm.h",
  "mathml/math_radical_layout_algorithm.cc",
  "mathml/math_radical_layout_algorithm.h",
  "mathml/math_row_layout_algorithm.cc",
  "mathml/math_row_layout_algorithm.h",
  "mathml/math_scripts_layout_algorithm.cc",
  "mathml/math_scripts_layout_algorithm.h",
  "mathml/math_space_layout_algorithm.cc",
  "mathml/math_space_layout_algorithm.h",
  "mathml/math_token_layout_algorithm.cc",
  "mathml/math_token_layout_algorithm.h",
  "mathml/math_under_over_layout_algorithm.cc",
  "mathml/math_under_over_layout_algorithm.h",
  "mathml/mathml_paint_info.h",
  "measure_cache.cc",
  "measure_cache.h",
  "min_max_sizes.cc",
  "min_max_sizes.h",
  "min_max_sizes_cache.h",
  "multi_column_fragmentainer_group.cc",
  "multi_column_fragmentainer_group.h",
  "non_overflowing_scroll_range.h",
  "oof_positioned_node.cc",
  "oof_positioned_node.h",
  "out_of_flow_layout_part.cc",
  "out_of_flow_layout_part.h",
  "outline_rect_collector.cc",
  "outline_rect_collector.h",
  "outline_type.h",
  "outline_utils.cc",
  "outline_utils.h",
  "overflow_model.h",
  "paginated_root_layout_algorithm.cc",
  "paginated_root_layout_algorithm.h",
  "pagination_utils.cc",
  "pagination_utils.h",
  "page_border_box_layout_algorithm.cc",
  "page_border_box_layout_algorithm.h",
  "page_container_layout_algorithm.cc",
  "page_container_layout_algorithm.h",
  "physical_box_fragment.cc",
  "physical_box_fragment.h",
  "physical_fragment.cc",
  "physical_fragment.h",
  "physical_fragment_link.h",
  "physical_fragment_rare_data.cc",
  "physical_fragment_rare_data.h",
  "pointer_events_hit_rules.cc",
  "pointer_events_hit_rules.h",
  "positioned_float.cc",
  "positioned_float.h",
  "relative_utils.cc",
  "relative_utils.h",
  "replaced_layout_algorithm.cc",
  "replaced_layout_algorithm.h",
  "ruby_container.cc",
  "ruby_container.h",
  "scroll_anchor.cc",
  "scroll_anchor.h",
  "scrollable_overflow_calculator.cc",
  "scrollable_overflow_calculator.h",
  "selection_state.cc",
  "selection_state.h",
  "shapes/box_shape.cc",
  "shapes/box_shape.h",
  "shapes/ellipse_shape.cc",
  "shapes/ellipse_shape.h",
  "shapes/polygon_shape.cc",
  "shapes/polygon_shape.h",
  "shapes/raster_shape.cc",
  "shapes/raster_shape.h",
  "shapes/shape.cc",
  "shapes/shape.h",
  "shapes/shape_interval.h",
  "shapes/shape_outside_info.cc",
  "shapes/shape_outside_info.h",
  "simplified_layout_algorithm.cc",
  "simplified_layout_algorithm.h",
  "simplified_oof_layout_algorithm.cc",
  "simplified_oof_layout_algorithm.h",
  "space_utils.cc",
  "space_utils.h",
  "style_variant.h",
  "svg/layout_svg_block.cc",
  "svg/layout_svg_block.h",
  "svg/layout_svg_container.cc",
  "svg/layout_svg_container.h",
  "svg/layout_svg_ellipse.cc",
  "svg/layout_svg_ellipse.h",
  "svg/layout_svg_filter_primitive.cc",
  "svg/layout_svg_filter_primitive.h",
  "svg/layout_svg_foreign_object.cc",
  "svg/layout_svg_foreign_object.h",
  "svg/layout_svg_hidden_container.cc",
  "svg/layout_svg_hidden_container.h",
  "svg/layout_svg_image.cc",
  "svg/layout_svg_image.h",
  "svg/layout_svg_inline.cc",
  "svg/layout_svg_inline.h",
  "svg/layout_svg_inline_text.cc",
  "svg/layout_svg_inline_text.h",
  "svg/layout_svg_model_object.cc",
  "svg/layout_svg_model_object.h",
  "svg/layout_svg_path.cc",
  "svg/layout_svg_path.h",
  "svg/layout_svg_rect.cc",
  "svg/layout_svg_rect.h",
  "svg/layout_svg_resource_clipper.cc",
  "svg/layout_svg_resource_clipper.h",
  "svg/layout_svg_resource_container.cc",
  "svg/layout_svg_resource_container.h",
  "svg/layout_svg_resource_filter.cc",
  "svg/layout_svg_resource_filter.h",
  "svg/layout_svg_resource_gradient.cc",
  "svg/layout_svg_resource_gradient.h",
  "svg/layout_svg_resource_linear_gradient.cc",
  "svg/layout_svg_resource_linear_gradient.h",
  "svg/layout_svg_resource_marker.cc",
  "svg/layout_svg_resource_marker.h",
  "svg/layout_svg_resource_masker.cc",
  "svg/layout_svg_resource_masker.h",
  "svg/layout_svg_resource_paint_server.cc",
  "svg/layout_svg_resource_paint_server.h",
  "svg/layout_svg_resource_pattern.cc",
  "svg/layout_svg_resource_pattern.h",
  "svg/layout_svg_resource_radial_gradient.cc",
  "svg/layout_svg_resource_radial_gradient.h",
  "svg/layout_svg_root.cc",
  "svg/layout_svg_root.h",
  "svg/layout_svg_shape.cc",
  "svg/layout_svg_shape.h",
  "svg/layout_svg_text.cc",
  "svg/layout_svg_text.h",
  "svg/layout_svg_text_path.cc",
  "svg/layout_svg_text_path.h",
  "svg/layout_svg_transformable_container.cc",
  "svg/layout_svg_transformable_container.h",
  "svg/layout_svg_tspan.cc",
  "svg/layout_svg_tspan.h",
  "svg/layout_svg_viewport_container.cc",
  "svg/layout_svg_viewport_container.h",
  "svg/resolved_text_layout_attributes_iterator.h",
  "svg/svg_character_data.cc",
  "svg/svg_character_data.h",
  "svg/svg_content_container.cc",
  "svg/svg_content_container.h",
  "svg/svg_inline_node_data.h",
  "svg/svg_layout_info.h",
  "svg/svg_layout_support.cc",
  "svg/svg_layout_support.h",
  "svg/svg_layout_tree_as_text.cc",
  "svg/svg_layout_tree_as_text.h",
  "svg/svg_marker_data.cc",
  "svg/svg_marker_data.h",
  "svg/svg_resources.cc",
  "svg/svg_resources.h",
  "svg/svg_text_layout_algorithm.cc",
  "svg/svg_text_layout_algorithm.h",
  "svg/svg_text_layout_attributes_builder.cc",
  "svg/svg_text_layout_attributes_builder.h",
  "svg/svg_text_query.cc",
  "svg/svg_text_query.h",
  "svg/transform_helper.cc",
  "svg/transform_helper.h",
  "svg/transformed_hit_test_location.cc",
  "svg/transformed_hit_test_location.h",
  "table/layout_table.cc",
  "table/layout_table.h",
  "table/layout_table_caption.cc",
  "table/layout_table_caption.h",
  "table/layout_table_cell.cc",
  "table/layout_table_cell.h",
  "table/layout_table_column.cc",
  "table/layout_table_column.h",
  "table/layout_table_column_visitor.h",
  "table/layout_table_row.cc",
  "table/layout_table_row.h",
  "table/layout_table_section.cc",
  "table/layout_table_section.h",
  "table/table_borders.cc",
  "table/table_borders.h",
  "table/table_break_token_data.h",
  "table/table_child_iterator.cc",
  "table/table_child_iterator.h",
  "table/table_column_location.h",
  "table/table_constraint_space_data.h",
  "table/table_fragment_data.h",
  "table/table_layout_algorithm.cc",
  "table/table_layout_algorithm.h",
  "table/table_layout_algorithm_types.cc",
  "table/table_layout_algorithm_types.h",
  "table/table_layout_utils.cc",
  "table/table_layout_utils.h",
  "table/table_node.cc",
  "table/table_node.h",
  "table/table_row_break_token_data.h",
  "table/table_row_layout_algorithm.cc",
  "table/table_row_layout_algorithm.h",
  "table/table_section_layout_algorithm.cc",
  "table/table_section_layout_algorithm.h",
  "text_decoration_offset.cc",
  "text_decoration_offset.h",
  "text_utils.cc",
  "text_utils.h",
  "traced_layout_object.cc",
  "traced_layout_object.h",
  "unpositioned_float.h",
]

if (is_mac) {
  blink_core_sources_layout += [
    "layout_theme_mac.h",
    "layout_theme_mac.mm",
  ]
}

if (is_ios) {
  blink_core_sources_layout += [
    "layout_theme_ios.h",
    "layout_theme_ios.mm",
  ]
}

if (is_win) {
  blink_core_sources_layout += [
    "layout_theme_font_provider_win.cc",
    "layout_theme_win.cc",
    "layout_theme_win.h",
    "web_font_rendering_win.cc",
    "layout_font_accessor_win.h",
    "layout_font_accessor_win.cc",
  ]
} else {  # Not Windows.
  blink_core_sources_layout += [ "layout_theme_font_provider_default.cc" ]
}

if (is_linux || is_chromeos) {
  blink_core_sources_layout += [
    "layout_theme_linux.cc",
    "layout_theme_linux.h",
  ]
}

if (is_android) {
  blink_core_sources_layout += [
    "layout_theme_android.cc",
    "layout_theme_android.h",
  ]
}

if (is_fuchsia) {
  blink_core_sources_layout += [ "layout_theme_fuchsia.cc" ]
}

blink_core_tests_layout = [
  "absolute_utils_test.cc",
  "anchor_evaluator_impl_test.cc",
  "anchor_position_scroll_data_test.cc",
  "base_layout_algorithm_test.cc",
  "base_layout_algorithm_test.h",
  "block_child_iterator_test.cc",
  "block_layout_algorithm_test.cc",
  "block_node_test.cc",
  "column_layout_algorithm_test.cc",
  "constraint_space_builder_test.cc",
  "custom/layout_worklet_test.cc",
  "exclusions/exclusion_space_test.cc",
  "flex/flex_layout_algorithm_test.cc",
  "forms/fieldset_layout_algorithm_test.cc",
  "forms/layout_fieldset_test.cc",
  "forms/layout_text_control_single_line_test.cc",
  "forms/layout_text_control_test.cc",
  "fragmentation_test.cc",
  "geometry/axis_test.cc",
  "geometry/box_strut_test.cc",
  "geometry/logical_rect_test.cc",
  "geometry/physical_rect_test.cc",
  "geometry/physical_size_test.cc",
  "geometry/static_position_test.cc",
  "geometry/writing_mode_converter_test.cc",
  "grid/grid_layout_algorithm_test.cc",
  "grid/grid_track_collection_test.cc",
  "hit_testing_test.cc",
  "ink_overflow_test.cc",
  "inline/abstract_inline_text_box_test.cc",
  "inline/fragment_item_test.cc",
  "inline/fragment_items_builder_test.cc",
  "inline/fragment_items_test.cc",
  "inline/inline_caret_position_test.cc",
  "inline/inline_cursor_test.cc",
  "inline/inline_items_builder_test.cc",
  "inline/inline_layout_algorithm_test.cc",
  "inline/inline_node_test.cc",
  "inline/inline_text_auto_space_test.cc",
  "inline/line_break_candidate_test.cc",
  "inline/line_breaker_test.cc",
  "inline/line_info_list_test.cc",
  "inline/line_info_test.cc",
  "inline/line_widths_test.cc",
  "inline/offset_mapping_test.cc",
  "inline/paragraph_line_breaker_test.cc",
  "inline/physical_line_box_fragment_test.cc",
  "inline/ruby_utils_test.cc",
  "inline/score_line_breaker_test.cc",
  "inline/transformed_string_test.cc",
  "inline_layout_test.cc",
  "layout_block_flow_test.cc",
  "layout_block_test.cc",
  "layout_box_model_object_test.cc",
  "layout_box_test.cc",
  "layout_br_test.cc",
  "layout_embedded_content_test.cc",
  "layout_flexible_box_test.cc",
  "layout_frame_set_test.cc",
  "layout_image_resource_test.cc",
  "layout_image_test.cc",
  "layout_inline_test.cc",
  "layout_input_node_test.cc",
  "layout_media_test.cc",
  "layout_multi_column_flow_thread_test.cc",
  "layout_multi_column_set_test.cc",
  "layout_object_test.cc",
  "layout_progress_test.cc",
  "layout_quote_test.cc",
  "layout_replaced_test.cc",
  "layout_result_caching_test.cc",
  "layout_ruby_as_block_test.cc",
  "layout_ruby_base_test.cc",
  "layout_ruby_column_test.cc",
  "layout_shift_region_test.cc",
  "layout_shift_tracker_test.cc",
  "layout_text_combine_test.cc",
  "layout_text_fragment_test.cc",
  "layout_text_test.cc",
  "layout_theme_test.cc",
  "layout_video_test.cc",
  "layout_view_test.cc",
  "length_utils_test.cc",
  "list/layout_inline_list_item_test.cc",
  "list/layout_list_item_test.cc",
  "list/list_marker_test.cc",
  "map_coordinates_test.cc",
  "masonry/masonry_layout_algorithm_test.cc",
  "min_max_size_test.cc",
  "min_max_sizes_cache_test.cc",
  "multi_column_fragmentainer_group_test.cc",
  "out_of_flow_layout_part_test.cc",
  "outline_rect_collector_test.cc",
  "overflow_model_test.cc",
  "paint_containment_test.cc",
  "physical_box_fragment_test.cc",
  "physical_fragment_test.cc",
  "relative_utils_test.cc",
  "scroll_anchor_test.cc",
  "scrollbars_test.cc",
  "selection_state_test.cc",
  "shapes/box_shape_test.cc",
  "shapes/ellipse_shape_test.cc",
  "svg/layout_svg_container_test.cc",
  "svg/layout_svg_foreign_object_test.cc",
  "svg/layout_svg_inline_test.cc",
  "svg/layout_svg_root_test.cc",
  "svg/layout_svg_shape_test.cc",
  "svg/layout_svg_text_test.cc",
  "svg/svg_layout_support_test.cc",
  "svg/svg_text_layout_algorithm_test.cc",
  "svg/svg_text_layout_attributes_builder_test.cc",
  "table/layout_table_col_test.cc",
  "table/layout_table_section_test.cc",
  "table/layout_table_test.cc",
  "table/table_layout_utils_test.cc",
  "text_autosizer_test.cc",
  "visual_rect_mapping_test.cc",
]