summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/svg
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-02-13 15:05:36 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-02-14 10:33:47 +0000
commite684a3455bcc29a6e3e66a004e352dea4e1141e7 (patch)
treed55b4003bde34d7d05f558f02cfd82b2a66a7aac /chromium/third_party/blink/renderer/core/svg
parent2b94bfe47ccb6c08047959d1c26e392919550e86 (diff)
downloadqtwebengine-chromium-e684a3455bcc29a6e3e66a004e352dea4e1141e7.tar.gz
BASELINE: Update Chromium to 72.0.3626.110 and Ninja to 1.9.0
Change-Id: Ic57220b00ecc929a893c91f5cc552f5d3e99e922 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/core/svg')
-rw-r--r--chromium/third_party/blink/renderer/core/svg/BUILD.gn2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/animation/smil_time_container.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/animation/smil_time_container.h6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/animation/svg_smil_element.cc87
-rw-r--r--chromium/third_party/blink/renderer/core/svg/animation/svg_smil_element.h27
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.h5
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h8
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/svg_image.cc7
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.cc7
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc3
-rw-r--r--chromium/third_party/blink/renderer/core/svg/linear_gradient_attributes.h6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/pattern_attributes.h6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/properties/svg_animated_property.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/radial_gradient_attributes.h6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_a_element.cc12
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_angle.cc26
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_angle.h18
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_angle_tear_off.h10
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animate_element.cc25
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animate_element.h12
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animate_motion_element.cc8
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animate_transform_element.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_angle.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_angle.h6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_boolean.h14
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_color.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_color.h6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration.h23
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_href.cc10
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_href.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_integer.h28
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.h12
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_length.h21
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_length_list.h15
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_number.h28
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_number_list.h14
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.h12
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_path.h9
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_point_list.h5
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_preserve_aspect_ratio.h14
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_rect.h14
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_string.h16
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_transform_list.h15
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animation_element.cc57
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animation_element.h6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animation_element.idl1
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_boolean.h6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_circle_element.cc12
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_clip_path_element.cc11
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.cc52
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_defs_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_desc_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_discard_element.cc3
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_discard_element.idl1
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_document_extensions.cc11
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_element.cc463
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_element_rare_data.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_ellipse_element.cc14
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_enumeration.cc30
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_enumeration.h41
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_enumeration_map.cc19
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_enumeration_map.h63
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.cc72
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.h31
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.idl11
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.cc36
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.h3
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_composite_element.cc66
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_composite_element.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.cc71
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.h3
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.cc42
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.cc41
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_distant_light_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.cc21
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_flood_element.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_func_a_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_func_b_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_func_g_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_func_r_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.cc10
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_image_element.cc13
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_image_element.h1
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_light_element.cc37
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_light_element.h6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_merge_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_morphology_element.cc33
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_morphology_element.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_offset_element.cc12
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_point_light_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.cc46
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_spot_light_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_tile_element.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.cc59
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.h6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_filter_element.cc29
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.cc19
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fit_to_view_box.cc15
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_foreign_object_element.cc16
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_g_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_geometry_element.cc60
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_gradient_element.cc41
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_gradient_element.h8
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_graphics_element.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_image_element.cc31
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_image_element.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_image_loader.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_image_loader.h5
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_integer.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_integer.h8
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_integer_optional_integer.h9
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_length.cc59
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_length.h11
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_length_context.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_length_context.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_length_list.h5
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_length_list_tear_off.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_length_tear_off.h12
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_line_element.cc14
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_linear_gradient_element.cc16
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_marker_element.cc49
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_marker_element.h3
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_mask_element.cc27
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_matrix_tear_off.h10
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_metadata_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_mpath_element.cc3
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_mpath_element.idl1
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_number.h15
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_number_list.h7
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_number_list_tear_off.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_number_optional_number.h7
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_number_tear_off.h10
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_path.h9
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_path_element.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_path_parser.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_path_parser_test.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_path_string_source.cc18
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_path_string_source.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_path_utilities.cc10
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_pattern_element.cc36
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_point.h10
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_point_list.h5
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_point_list_tear_off.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_point_tear_off.h16
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_poly_element.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_poly_element.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_polygon_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_polyline_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_preserve_aspect_ratio.h6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_preserve_aspect_ratio_tear_off.h13
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_radial_gradient_element.cc22
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_rect.h14
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_rect_element.cc21
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_rect_tear_off.h12
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_resource.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_script_element.cc18
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_script_element.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_set_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_static_string_list.h12
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_stop_element.cc8
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_string.h12
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_string_list_tear_off.h12
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_style_element.cc23
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_style_element.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_svg_element.cc78
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_svg_element.idl10
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_switch_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_symbol_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_tag_names.json523
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_tests.cc8
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_text_content_element.cc46
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_text_content_element.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_text_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_text_path_element.cc41
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_text_path_element.h9
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_text_positioning_element.cc16
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_title_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_transform.cc3
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_transform.h21
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_transform_list.h7
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_transform_list_tear_off.h11
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_transform_tear_off.h10
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_tree_scope_resources.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_tspan_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_unit_types.cc17
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_unit_types.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_uri_reference.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_use_element.cc71
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_use_element.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_view_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_view_spec.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_view_spec.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_zoom_and_pan.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/unsafe_svg_attribute_sanitization_test.cc34
200 files changed, 1678 insertions, 1661 deletions
diff --git a/chromium/third_party/blink/renderer/core/svg/BUILD.gn b/chromium/third_party/blink/renderer/core/svg/BUILD.gn
index 37f9e033280..43c997e602c 100644
--- a/chromium/third_party/blink/renderer/core/svg/BUILD.gn
+++ b/chromium/third_party/blink/renderer/core/svg/BUILD.gn
@@ -113,6 +113,8 @@ blink_core_sources("svg") {
"svg_ellipse_element.h",
"svg_enumeration.cc",
"svg_enumeration.h",
+ "svg_enumeration_map.cc",
+ "svg_enumeration_map.h",
"svg_fe_blend_element.cc",
"svg_fe_blend_element.h",
"svg_fe_color_matrix_element.cc",
diff --git a/chromium/third_party/blink/renderer/core/svg/animation/smil_time_container.cc b/chromium/third_party/blink/renderer/core/svg/animation/smil_time_container.cc
index d5c29f46d4d..e9d898324ed 100644
--- a/chromium/third_party/blink/renderer/core/svg/animation/smil_time_container.cc
+++ b/chromium/third_party/blink/renderer/core/svg/animation/smil_time_container.cc
@@ -85,7 +85,7 @@ void SMILTimeContainer::Schedule(SVGSMILElement* animation,
Member<AnimationsLinkedHashSet>& scheduled =
attribute_map.insert(attribute_name, nullptr).stored_value->value;
if (!scheduled)
- scheduled = new AnimationsLinkedHashSet;
+ scheduled = MakeGarbageCollected<AnimationsLinkedHashSet>();
DCHECK(!scheduled->Contains(animation));
scheduled->insert(animation);
diff --git a/chromium/third_party/blink/renderer/core/svg/animation/smil_time_container.h b/chromium/third_party/blink/renderer/core/svg/animation/smil_time_container.h
index 231d376e6b4..eaee06b4402 100644
--- a/chromium/third_party/blink/renderer/core/svg/animation/smil_time_container.h
+++ b/chromium/third_party/blink/renderer/core/svg/animation/smil_time_container.h
@@ -46,8 +46,10 @@ class SVGSVGElement;
class SMILTimeContainer : public GarbageCollectedFinalized<SMILTimeContainer> {
public:
static SMILTimeContainer* Create(SVGSVGElement& owner) {
- return new SMILTimeContainer(owner);
+ return MakeGarbageCollected<SMILTimeContainer>(owner);
}
+
+ explicit SMILTimeContainer(SVGSVGElement& owner);
~SMILTimeContainer();
void Schedule(SVGSMILElement*, SVGElement*, const QualifiedName&);
@@ -75,8 +77,6 @@ class SMILTimeContainer : public GarbageCollectedFinalized<SMILTimeContainer> {
void Trace(blink::Visitor*);
private:
- explicit SMILTimeContainer(SVGSVGElement& owner);
-
enum FrameSchedulingState {
// No frame scheduled.
kIdle,
diff --git a/chromium/third_party/blink/renderer/core/svg/animation/svg_smil_element.cc b/chromium/third_party/blink/renderer/core/svg/animation/svg_smil_element.cc
index c38da07146b..4325e7cc096 100644
--- a/chromium/third_party/blink/renderer/core/svg/animation/svg_smil_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/animation/svg_smil_element.cc
@@ -38,6 +38,7 @@
#include "third_party/blink/renderer/core/svg/svg_uri_reference.h"
#include "third_party/blink/renderer/core/xlink_names.h"
#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/wtf/functional.h"
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
#include "third_party/blink/renderer/platform/wtf/vector.h"
@@ -47,21 +48,20 @@ namespace blink {
class RepeatEvent final : public Event {
public:
static RepeatEvent* Create(const AtomicString& type, int repeat) {
- return new RepeatEvent(type, Bubbles::kNo, Cancelable::kNo, repeat);
+ return MakeGarbageCollected<RepeatEvent>(type, Bubbles::kNo,
+ Cancelable::kNo, repeat);
}
- ~RepeatEvent() override = default;
-
- int Repeat() const { return repeat_; }
-
- void Trace(blink::Visitor* visitor) override { Event::Trace(visitor); }
-
- protected:
RepeatEvent(const AtomicString& type,
Bubbles bubbles,
Cancelable cancelable,
int repeat = -1)
: Event(type, bubbles, cancelable), repeat_(repeat) {}
+ ~RepeatEvent() override = default;
+
+ int Repeat() const { return repeat_; }
+
+ void Trace(blink::Visitor* visitor) override { Event::Trace(visitor); }
private:
int repeat_;
@@ -105,7 +105,7 @@ class ConditionEventListener final : public EventListener {
animation_(animation),
condition_(condition) {}
- void handleEvent(ExecutionContext*, Event*) override;
+ void Invoke(ExecutionContext*, Event*) override;
Member<SVGSMILElement> animation_;
Member<SVGSMILElement::Condition> condition_;
@@ -119,7 +119,7 @@ bool ConditionEventListener::operator==(const EventListener& listener) const {
return false;
}
-void ConditionEventListener::handleEvent(ExecutionContext*, Event* event) {
+void ConditionEventListener::Invoke(ExecutionContext*, Event* event) {
if (!animation_)
return;
if (event->type() == "repeatn" &&
@@ -324,7 +324,7 @@ Node::InsertionNotificationRequest SVGSMILElement::InsertedInto(
// "If no attribute is present, the default begin value (an offset-value of 0)
// must be evaluated."
- if (!FastHasAttribute(SVGNames::beginAttr))
+ if (!FastHasAttribute(svg_names::kBeginAttr))
begin_times_.push_back(SMILTimeWithOrigin());
if (is_waiting_for_first_interval_)
@@ -508,10 +508,10 @@ void SVGSMILElement::ParseBeginOrEnd(const String& parse_string,
void SVGSMILElement::ParseAttribute(const AttributeModificationParams& params) {
const QualifiedName& name = params.name;
const AtomicString& value = params.new_value;
- if (name == SVGNames::beginAttr) {
+ if (name == svg_names::kBeginAttr) {
if (!conditions_.IsEmpty()) {
ClearConditions();
- ParseBeginOrEnd(FastGetAttribute(SVGNames::endAttr), kEnd);
+ ParseBeginOrEnd(FastGetAttribute(svg_names::kEndAttr), kEnd);
}
ParseBeginOrEnd(value.GetString(), kBegin);
if (isConnected()) {
@@ -520,10 +520,10 @@ void SVGSMILElement::ParseAttribute(const AttributeModificationParams& params) {
BeginListChanged(Elapsed());
}
AnimationAttributeChanged();
- } else if (name == SVGNames::endAttr) {
+ } else if (name == svg_names::kEndAttr) {
if (!conditions_.IsEmpty()) {
ClearConditions();
- ParseBeginOrEnd(FastGetAttribute(SVGNames::beginAttr), kBegin);
+ ParseBeginOrEnd(FastGetAttribute(svg_names::kBeginAttr), kBegin);
}
ParseBeginOrEnd(value.GetString(), kEnd);
if (isConnected()) {
@@ -532,23 +532,23 @@ void SVGSMILElement::ParseAttribute(const AttributeModificationParams& params) {
EndListChanged(Elapsed());
}
AnimationAttributeChanged();
- } else if (name == SVGNames::onbeginAttr) {
- SetAttributeEventListener(EventTypeNames::beginEvent,
+ } else if (name == svg_names::kOnbeginAttr) {
+ SetAttributeEventListener(event_type_names::kBeginEvent,
CreateAttributeEventListener(this, name, value));
- } else if (name == SVGNames::onendAttr) {
- SetAttributeEventListener(EventTypeNames::endEvent,
+ } else if (name == svg_names::kOnendAttr) {
+ SetAttributeEventListener(event_type_names::kEndEvent,
CreateAttributeEventListener(this, name, value));
- } else if (name == SVGNames::onrepeatAttr) {
- SetAttributeEventListener(EventTypeNames::repeatEvent,
+ } else if (name == svg_names::kOnrepeatAttr) {
+ SetAttributeEventListener(event_type_names::kRepeatEvent,
CreateAttributeEventListener(this, name, value));
- } else if (name == SVGNames::restartAttr) {
+ } else if (name == svg_names::kRestartAttr) {
if (value == "never")
restart_ = kRestartNever;
else if (value == "whenNotActive")
restart_ = kRestartWhenNotActive;
else
restart_ = kRestartAlways;
- } else if (name == SVGNames::fillAttr) {
+ } else if (name == svg_names::kFillAttr) {
fill_ = value == "freeze" ? kFillFreeze : kFillRemove;
} else {
SVGElement::ParseAttribute(params);
@@ -556,18 +556,18 @@ void SVGSMILElement::ParseAttribute(const AttributeModificationParams& params) {
}
void SVGSMILElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::durAttr) {
+ if (attr_name == svg_names::kDurAttr) {
cached_dur_ = kInvalidCachedTime;
- } else if (attr_name == SVGNames::repeatDurAttr) {
+ } else if (attr_name == svg_names::kRepeatDurAttr) {
cached_repeat_dur_ = kInvalidCachedTime;
- } else if (attr_name == SVGNames::repeatCountAttr) {
+ } else if (attr_name == svg_names::kRepeatCountAttr) {
cached_repeat_count_ = kInvalidCachedTime;
- } else if (attr_name == SVGNames::minAttr) {
+ } else if (attr_name == svg_names::kMinAttr) {
cached_min_ = kInvalidCachedTime;
- } else if (attr_name == SVGNames::maxAttr) {
+ } else if (attr_name == svg_names::kMaxAttr) {
cached_max_ = kInvalidCachedTime;
- } else if (attr_name.Matches(SVGNames::hrefAttr) ||
- attr_name.Matches(XLinkNames::hrefAttr)) {
+ } else if (attr_name.Matches(svg_names::kHrefAttr) ||
+ attr_name.Matches(xlink_names::kHrefAttr)) {
// TODO(fs): Could be smarter here when 'href' is specified and 'xlink:href'
// is changed.
SVGElement::InvalidationGuard invalidation_guard(this);
@@ -647,7 +647,7 @@ bool SVGSMILElement::IsFrozen() const {
SMILTime SVGSMILElement::Dur() const {
if (cached_dur_ != kInvalidCachedTime)
return cached_dur_;
- const AtomicString& value = FastGetAttribute(SVGNames::durAttr);
+ const AtomicString& value = FastGetAttribute(svg_names::kDurAttr);
SMILTime clock_value = ParseClockValue(value);
return cached_dur_ = clock_value <= 0 ? SMILTime::Unresolved() : clock_value;
}
@@ -655,7 +655,7 @@ SMILTime SVGSMILElement::Dur() const {
SMILTime SVGSMILElement::RepeatDur() const {
if (cached_repeat_dur_ != kInvalidCachedTime)
return cached_repeat_dur_;
- const AtomicString& value = FastGetAttribute(SVGNames::repeatDurAttr);
+ const AtomicString& value = FastGetAttribute(svg_names::kRepeatDurAttr);
SMILTime clock_value = ParseClockValue(value);
cached_repeat_dur_ = clock_value <= 0 ? SMILTime::Unresolved() : clock_value;
return cached_repeat_dur_;
@@ -666,7 +666,7 @@ SMILTime SVGSMILElement::RepeatCount() const {
if (cached_repeat_count_ != kInvalidCachedTime)
return cached_repeat_count_;
SMILTime computed_repeat_count = SMILTime::Unresolved();
- const AtomicString& value = FastGetAttribute(SVGNames::repeatCountAttr);
+ const AtomicString& value = FastGetAttribute(svg_names::kRepeatCountAttr);
if (!value.IsNull()) {
DEFINE_STATIC_LOCAL(const AtomicString, indefinite_value, ("indefinite"));
if (value == indefinite_value) {
@@ -685,7 +685,7 @@ SMILTime SVGSMILElement::RepeatCount() const {
SMILTime SVGSMILElement::MaxValue() const {
if (cached_max_ != kInvalidCachedTime)
return cached_max_;
- const AtomicString& value = FastGetAttribute(SVGNames::maxAttr);
+ const AtomicString& value = FastGetAttribute(svg_names::kMaxAttr);
SMILTime result = ParseClockValue(value);
return cached_max_ = (result.IsUnresolved() || result <= 0)
? SMILTime::Indefinite()
@@ -695,7 +695,7 @@ SMILTime SVGSMILElement::MaxValue() const {
SMILTime SVGSMILElement::MinValue() const {
if (cached_min_ != kInvalidCachedTime)
return cached_min_;
- const AtomicString& value = FastGetAttribute(SVGNames::minAttr);
+ const AtomicString& value = FastGetAttribute(svg_names::kMinAttr);
SMILTime result = ParseClockValue(value);
return cached_min_ = (result.IsUnresolved() || result < 0) ? 0 : result;
}
@@ -1130,7 +1130,7 @@ bool SVGSMILElement::Progress(double elapsed, bool seek_to_time) {
if (animation_is_contributing) {
if (old_active_state == kInactive ||
restarted_interval == kDidRestartInterval) {
- ScheduleEvent(EventTypeNames::beginEvent);
+ ScheduleEvent(event_type_names::kBeginEvent);
StartedActiveInterval();
}
@@ -1143,14 +1143,14 @@ bool SVGSMILElement::Progress(double elapsed, bool seek_to_time) {
if ((old_active_state == kActive && GetActiveState() != kActive) ||
restarted_interval == kDidRestartInterval) {
- ScheduleEvent(EventTypeNames::endEvent);
+ ScheduleEvent(event_type_names::kEndEvent);
EndedActiveInterval();
}
// Triggering all the pending events if the animation timeline is changed.
if (seek_to_time) {
if (GetActiveState() == kInactive)
- ScheduleEvent(EventTypeNames::beginEvent);
+ ScheduleEvent(event_type_names::kBeginEvent);
if (repeat) {
for (unsigned repeat_event_count = 1; repeat_event_count < repeat;
@@ -1161,7 +1161,7 @@ bool SVGSMILElement::Progress(double elapsed, bool seek_to_time) {
}
if (GetActiveState() == kInactive || GetActiveState() == kFrozen)
- ScheduleEvent(EventTypeNames::endEvent);
+ ScheduleEvent(event_type_names::kEndEvent);
}
next_progress_time_ = CalculateNextProgressTime(elapsed);
@@ -1232,7 +1232,7 @@ void SVGSMILElement::EndedActiveInterval() {
void SVGSMILElement::ScheduleRepeatEvents(unsigned count) {
repeat_event_count_list_.push_back(count);
- ScheduleEvent(EventTypeNames::repeatEvent);
+ ScheduleEvent(event_type_names::kRepeatEvent);
ScheduleEvent(AtomicString("repeatn"));
}
@@ -1244,9 +1244,10 @@ void SVGSMILElement::ScheduleEvent(const AtomicString& event_type) {
}
void SVGSMILElement::DispatchPendingEvent(const AtomicString& event_type) {
- DCHECK(event_type == EventTypeNames::endEvent ||
- event_type == EventTypeNames::beginEvent ||
- event_type == EventTypeNames::repeatEvent || event_type == "repeatn");
+ DCHECK(event_type == event_type_names::kEndEvent ||
+ event_type == event_type_names::kBeginEvent ||
+ event_type == event_type_names::kRepeatEvent ||
+ event_type == "repeatn");
if (event_type == "repeatn") {
unsigned repeat_event_count = repeat_event_count_list_.front();
repeat_event_count_list_.EraseAt(0);
diff --git a/chromium/third_party/blink/renderer/core/svg/animation/svg_smil_element.h b/chromium/third_party/blink/renderer/core/svg/animation/svg_smil_element.h
index b6545a42e20..ccca384b6ea 100644
--- a/chromium/third_party/blink/renderer/core/svg/animation/svg_smil_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/animation/svg_smil_element.h
@@ -192,8 +192,16 @@ class CORE_EXPORT SVGSMILElement : public SVGElement, public SVGTests {
const AtomicString& name,
SMILTime offset,
int repeat = -1) {
- return new Condition(type, begin_or_end, base_id, name, offset, repeat);
+ return MakeGarbageCollected<Condition>(type, begin_or_end, base_id, name,
+ offset, repeat);
}
+
+ Condition(Type,
+ BeginOrEnd,
+ const AtomicString& base_id,
+ const AtomicString& name,
+ SMILTime offset,
+ int repeat);
~Condition();
void Trace(blink::Visitor*);
@@ -213,13 +221,6 @@ class CORE_EXPORT SVGSMILElement : public SVGElement, public SVGTests {
void DisconnectEventBase(SVGSMILElement&);
private:
- Condition(Type,
- BeginOrEnd,
- const AtomicString& base_id,
- const AtomicString& name,
- SMILTime offset,
- int repeat);
-
Type type_;
BeginOrEnd begin_or_end_;
AtomicString base_id_;
@@ -298,11 +299,11 @@ class CORE_EXPORT SVGSMILElement : public SVGElement, public SVGTests {
};
inline bool IsSVGSMILElement(const SVGElement& element) {
- return element.HasTagName(SVGNames::setTag) ||
- element.HasTagName(SVGNames::animateTag) ||
- element.HasTagName(SVGNames::animateMotionTag) ||
- element.HasTagName(SVGNames::animateTransformTag) ||
- element.HasTagName((SVGNames::discardTag));
+ return element.HasTagName(svg_names::kSetTag) ||
+ element.HasTagName(svg_names::kAnimateTag) ||
+ element.HasTagName(svg_names::kAnimateMotionTag) ||
+ element.HasTagName(svg_names::kAnimateTransformTag) ||
+ element.HasTagName((svg_names::kDiscardTag));
}
DEFINE_SVGELEMENT_TYPE_CASTS_WITH_FUNCTION(SVGSMILElement);
diff --git a/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.cc b/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.cc
index 5464eb85da9..73d1f564544 100644
--- a/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.cc
+++ b/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.cc
@@ -69,7 +69,8 @@ FEImage* FEImage::CreateWithImage(
Filter* filter,
scoped_refptr<Image> image,
SVGPreserveAspectRatio* preserve_aspect_ratio) {
- return new FEImage(filter, std::move(image), preserve_aspect_ratio);
+ return MakeGarbageCollected<FEImage>(filter, std::move(image),
+ preserve_aspect_ratio);
}
FEImage* FEImage::CreateWithIRIReference(
@@ -77,7 +78,8 @@ FEImage* FEImage::CreateWithIRIReference(
TreeScope& tree_scope,
const String& href,
SVGPreserveAspectRatio* preserve_aspect_ratio) {
- return new FEImage(filter, tree_scope, href, preserve_aspect_ratio);
+ return MakeGarbageCollected<FEImage>(filter, tree_scope, href,
+ preserve_aspect_ratio);
}
static FloatRect GetLayoutObjectRepaintRect(LayoutObject* layout_object) {
diff --git a/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.h b/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.h
index 9628569647d..7e318cee9e9 100644
--- a/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.h
+++ b/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.h
@@ -43,6 +43,9 @@ class FEImage final : public FilterEffect {
const String&,
SVGPreserveAspectRatio*);
+ FEImage(Filter*, scoped_refptr<Image>, SVGPreserveAspectRatio*);
+ FEImage(Filter*, TreeScope&, const String&, SVGPreserveAspectRatio*);
+
// feImage does not perform color interpolation of any kind, so doesn't
// depend on the value of color-interpolation-filters.
void SetOperatingInterpolationSpace(InterpolationSpace) override {}
@@ -54,8 +57,6 @@ class FEImage final : public FilterEffect {
private:
~FEImage() override = default;
- FEImage(Filter*, scoped_refptr<Image>, SVGPreserveAspectRatio*);
- FEImage(Filter*, TreeScope&, const String&, SVGPreserveAspectRatio*);
LayoutObject* ReferencedLayoutObject() const;
FilterEffectType GetFilterEffectType() const override {
diff --git a/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h b/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h
index e0bfa7826ee..f112e888ff8 100644
--- a/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h
+++ b/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h
@@ -42,7 +42,11 @@ class SVGFilterElement;
class SVGFilterGraphNodeMap final
: public GarbageCollected<SVGFilterGraphNodeMap> {
public:
- static SVGFilterGraphNodeMap* Create() { return new SVGFilterGraphNodeMap; }
+ static SVGFilterGraphNodeMap* Create() {
+ return MakeGarbageCollected<SVGFilterGraphNodeMap>();
+ }
+
+ SVGFilterGraphNodeMap();
typedef HeapHashSet<Member<FilterEffect>> FilterEffectSet;
@@ -66,8 +70,6 @@ class SVGFilterGraphNodeMap final
void Trace(blink::Visitor*);
private:
- SVGFilterGraphNodeMap();
-
// The value is a list, which contains those filter effects,
// which depends on the key filter effect.
HeapHashMap<Member<FilterEffect>, FilterEffectSet> effect_references_;
diff --git a/chromium/third_party/blink/renderer/core/svg/graphics/svg_image.cc b/chromium/third_party/blink/renderer/core/svg/graphics/svg_image.cc
index 2ed010aa064..59a27fd3ddb 100644
--- a/chromium/third_party/blink/renderer/core/svg/graphics/svg_image.cc
+++ b/chromium/third_party/blink/renderer/core/svg/graphics/svg_image.cc
@@ -53,6 +53,7 @@
#include "third_party/blink/renderer/core/svg/svg_svg_element.h"
#include "third_party/blink/renderer/platform/bindings/script_forbidden_scope.h"
#include "third_party/blink/renderer/platform/geometry/int_rect.h"
+#include "third_party/blink/renderer/platform/geometry/length_functions.h"
#include "third_party/blink/renderer/platform/graphics/color.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context.h"
#include "third_party/blink/renderer/platform/graphics/image_observer.h"
@@ -62,7 +63,6 @@
#include "third_party/blink/renderer/platform/graphics/paint/paint_record.h"
#include "third_party/blink/renderer/platform/graphics/paint/paint_record_builder.h"
#include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
-#include "third_party/blink/renderer/platform/length_functions.h"
namespace blink {
@@ -680,7 +680,7 @@ void SVGImage::AdvanceAnimationForTesting() {
page_->Animator().ServiceScriptedAnimations(
base::TimeTicks() +
base::TimeDelta::FromSecondsD(root_element->getCurrentTime()));
- GetImageObserver()->AnimationAdvanced(this);
+ GetImageObserver()->Changed(this);
}
}
@@ -766,7 +766,6 @@ Image::SizeAvailability SVGImage::DataChanged(bool all_data_received) {
page = Page::Create(page_clients);
page->GetSettings().SetScriptEnabled(false);
page->GetSettings().SetPluginsEnabled(false);
- page->GetSettings().SetAcceleratedCompositingEnabled(false);
// Because this page is detached, it can't get default font settings
// from the embedder. Copy over font settings so we have sensible
@@ -791,7 +790,7 @@ Image::SizeAvailability SVGImage::DataChanged(bool all_data_received) {
{
TRACE_EVENT0("blink", "SVGImage::dataChanged::createFrame");
DCHECK(!frame_client_);
- frame_client_ = new SVGImageLocalFrameClient(this);
+ frame_client_ = MakeGarbageCollected<SVGImageLocalFrameClient>(this);
frame = LocalFrame::Create(frame_client_, *page, nullptr);
frame->SetView(LocalFrameView::Create(*frame));
frame->Init();
diff --git a/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.cc b/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.cc
index 2ffa6b17050..fe25613cd1d 100644
--- a/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.cc
+++ b/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.cc
@@ -44,16 +44,13 @@ static constexpr TimeDelta kAnimationFrameDelay =
SVGImageChromeClient::SVGImageChromeClient(SVGImage* image)
: image_(image),
animation_timer_(std::make_unique<TaskRunnerTimer<SVGImageChromeClient>>(
- blink::Platform::Current()
- ->CurrentThread()
- ->Scheduler()
- ->CompositorTaskRunner(),
+ ThreadScheduler::Current()->CompositorTaskRunner(),
this,
&SVGImageChromeClient::AnimationTimerFired)),
timeline_state_(kRunning) {}
SVGImageChromeClient* SVGImageChromeClient::Create(SVGImage* image) {
- return new SVGImageChromeClient(image);
+ return MakeGarbageCollected<SVGImageChromeClient>(image);
}
bool SVGImageChromeClient::IsSVGImageChromeClient() const {
diff --git a/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.h b/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.h
index 059446061e1..a6177c2c389 100644
--- a/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.h
+++ b/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_chrome_client.h
@@ -43,6 +43,8 @@ class CORE_EXPORT SVGImageChromeClient final : public EmptyChromeClient {
public:
static SVGImageChromeClient* Create(SVGImage*);
+ explicit SVGImageChromeClient(SVGImage*);
+
bool IsSVGImageChromeClient() const override;
SVGImage* GetImage() const { return image_; }
@@ -54,8 +56,6 @@ class CORE_EXPORT SVGImageChromeClient final : public EmptyChromeClient {
bool IsSuspended() const { return timeline_state_ >= kSuspended; }
private:
- explicit SVGImageChromeClient(SVGImage*);
-
void ChromeDestroyed() override;
void InvalidateRect(const IntRect&) override;
void ScheduleAnimation(const LocalFrameView*) override;
diff --git a/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc b/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc
index 629d8d3d0df..c1d26a3b287 100644
--- a/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc
+++ b/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc
@@ -33,7 +33,7 @@ class SVGImageTest : public testing::Test {
SVGImage& GetImage() { return *image_; }
void Load(const char* data, bool should_pause) {
- observer_ = new PauseControlImageObserver(should_pause);
+ observer_ = MakeGarbageCollected<PauseControlImageObserver>(should_pause);
image_ = SVGImage::Create(observer_);
image_->SetData(SharedBuffer::Create(data, strlen(data)), true);
}
@@ -62,7 +62,6 @@ class SVGImageTest : public testing::Test {
void DecodedSizeChangedTo(const Image*, size_t new_size) override {}
bool ShouldPauseAnimation(const Image*) override { return should_pause_; }
- void AnimationAdvanced(const Image*) override {}
void Changed(const Image*) override {}
diff --git a/chromium/third_party/blink/renderer/core/svg/linear_gradient_attributes.h b/chromium/third_party/blink/renderer/core/svg/linear_gradient_attributes.h
index 775fffaba5a..a4de407df19 100644
--- a/chromium/third_party/blink/renderer/core/svg/linear_gradient_attributes.h
+++ b/chromium/third_party/blink/renderer/core/svg/linear_gradient_attributes.h
@@ -95,9 +95,11 @@ class LinearGradientAttributesWrapper
: public GarbageCollectedFinalized<LinearGradientAttributesWrapper> {
public:
static LinearGradientAttributesWrapper* Create() {
- return new LinearGradientAttributesWrapper;
+ return MakeGarbageCollected<LinearGradientAttributesWrapper>();
}
+ LinearGradientAttributesWrapper() = default;
+
LinearGradientAttributes& Attributes() { return attributes_; }
void Set(const LinearGradientAttributes& attributes) {
attributes_ = attributes;
@@ -105,8 +107,6 @@ class LinearGradientAttributesWrapper
void Trace(blink::Visitor* visitor) { visitor->Trace(attributes_); }
private:
- LinearGradientAttributesWrapper() = default;
-
LinearGradientAttributes attributes_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/pattern_attributes.h b/chromium/third_party/blink/renderer/core/svg/pattern_attributes.h
index b19ea533a5c..85e7696b836 100644
--- a/chromium/third_party/blink/renderer/core/svg/pattern_attributes.h
+++ b/chromium/third_party/blink/renderer/core/svg/pattern_attributes.h
@@ -172,16 +172,16 @@ class PatternAttributesWrapper
: public GarbageCollected<PatternAttributesWrapper> {
public:
static PatternAttributesWrapper* Create() {
- return new PatternAttributesWrapper;
+ return MakeGarbageCollected<PatternAttributesWrapper>();
}
+ PatternAttributesWrapper() = default;
+
PatternAttributes& Attributes() { return attributes_; }
void Set(const PatternAttributes& attributes) { attributes_ = attributes; }
void Trace(blink::Visitor* visitor) { visitor->Trace(attributes_); }
private:
- PatternAttributesWrapper() = default;
-
PatternAttributes attributes_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/properties/svg_animated_property.h b/chromium/third_party/blink/renderer/core/svg/properties/svg_animated_property.h
index 2ecf29619a6..cd8948bb20a 100644
--- a/chromium/third_party/blink/renderer/core/svg/properties/svg_animated_property.h
+++ b/chromium/third_party/blink/renderer/core/svg/properties/svg_animated_property.h
@@ -32,7 +32,7 @@
#define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_PROPERTIES_SVG_ANIMATED_PROPERTY_H_
#include "base/macros.h"
-#include "third_party/blink/renderer/core/css_property_names.h"
+#include "third_party/blink/renderer/core/css/css_property_names.h"
#include "third_party/blink/renderer/core/dom/qualified_name.h"
#include "third_party/blink/renderer/core/svg/properties/svg_property_info.h"
#include "third_party/blink/renderer/core/svg/properties/svg_property_tear_off.h"
diff --git a/chromium/third_party/blink/renderer/core/svg/radial_gradient_attributes.h b/chromium/third_party/blink/renderer/core/svg/radial_gradient_attributes.h
index 1fe61dd8cf6..747d1d3655a 100644
--- a/chromium/third_party/blink/renderer/core/svg/radial_gradient_attributes.h
+++ b/chromium/third_party/blink/renderer/core/svg/radial_gradient_attributes.h
@@ -117,9 +117,11 @@ class RadialGradientAttributesWrapper
: public GarbageCollectedFinalized<RadialGradientAttributesWrapper> {
public:
static RadialGradientAttributesWrapper* Create() {
- return new RadialGradientAttributesWrapper;
+ return MakeGarbageCollected<RadialGradientAttributesWrapper>();
}
+ RadialGradientAttributesWrapper() = default;
+
RadialGradientAttributes& Attributes() { return attributes_; }
void Set(const RadialGradientAttributes& attributes) {
attributes_ = attributes;
@@ -127,8 +129,6 @@ class RadialGradientAttributesWrapper
void Trace(blink::Visitor* visitor) { visitor->Trace(attributes_); }
private:
- RadialGradientAttributesWrapper() = default;
-
RadialGradientAttributes attributes_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_a_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_a_element.cc
index 14afe3d3752..3e252ea711c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_a_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_a_element.cc
@@ -47,12 +47,12 @@
namespace blink {
-using namespace HTMLNames;
+using namespace html_names;
inline SVGAElement::SVGAElement(Document& document)
- : SVGGraphicsElement(SVGNames::aTag, document),
+ : SVGGraphicsElement(svg_names::kATag, document),
SVGURIReference(this),
- svg_target_(SVGAnimatedString::Create(this, SVGNames::targetAttr)) {
+ svg_target_(SVGAnimatedString::Create(this, svg_names::kTargetAttr)) {
AddToPropertyMap(svg_target_);
}
@@ -66,7 +66,7 @@ DEFINE_NODE_FACTORY(SVGAElement)
String SVGAElement::title() const {
// If the xlink:title is set (non-empty string), use it.
- const AtomicString& title = FastGetAttribute(XLinkNames::titleAttr);
+ const AtomicString& title = FastGetAttribute(xlink_names::kTitleAttr);
if (!title.IsEmpty())
return title;
@@ -126,7 +126,7 @@ void SVGAElement::DefaultEventHandler(Event& event) {
}
AtomicString target(svg_target_->CurrentValue()->Value());
- if (target.IsEmpty() && FastGetAttribute(XLinkNames::showAttr) == "new")
+ if (target.IsEmpty() && FastGetAttribute(xlink_names::kShowAttr) == "new")
target = AtomicString("_blank");
event.SetDefaultHandled();
@@ -172,7 +172,7 @@ bool SVGAElement::ShouldHaveFocusAppearance() const {
}
bool SVGAElement::IsURLAttribute(const Attribute& attribute) const {
- return attribute.GetName().LocalName() == hrefAttr ||
+ return attribute.GetName().LocalName() == kHrefAttr ||
SVGGraphicsElement::IsURLAttribute(attribute);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_angle.cc b/chromium/third_party/blink/renderer/core/svg/svg_angle.cc
index cccd5e46a7c..f6e5f5d4814 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_angle.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_angle.cc
@@ -22,6 +22,7 @@
#include "third_party/blink/renderer/core/svg/svg_angle.h"
#include "third_party/blink/renderer/core/svg/svg_animation_element.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
#include "third_party/blink/renderer/core/svg/svg_parser_utilities.h"
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
@@ -29,23 +30,16 @@
namespace blink {
template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGMarkerOrientType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(std::make_pair(kSVGMarkerOrientAuto, "auto"));
- entries.push_back(std::make_pair(kSVGMarkerOrientAngle, "angle"));
- entries.push_back(
- std::make_pair(kSVGMarkerOrientAutoStartReverse, "auto-start-reverse"));
- }
+const SVGEnumerationMap& GetEnumerationMap<SVGMarkerOrientType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {kSVGMarkerOrientAuto, "auto"},
+ {kSVGMarkerOrientAngle, "angle"},
+ {kSVGMarkerOrientAutoStartReverse, "auto-start-reverse"},
+ };
+ static const SVGEnumerationMap entries(enum_items, kSVGMarkerOrientAngle);
return entries;
}
-template <>
-unsigned short GetMaxExposedEnumValue<SVGMarkerOrientType>() {
- return kSVGMarkerOrientAngle;
-}
-
SVGMarkerOrientEnumeration::SVGMarkerOrientEnumeration(SVGAngle* angle)
: SVGEnumeration<SVGMarkerOrientType>(kSVGMarkerOrientAngle),
angle_(angle) {}
@@ -109,8 +103,8 @@ void SVGAngle::Trace(blink::Visitor* visitor) {
}
SVGAngle* SVGAngle::Clone() const {
- return new SVGAngle(unit_type_, value_in_specified_units_,
- orient_type_->EnumValue());
+ return MakeGarbageCollected<SVGAngle>(unit_type_, value_in_specified_units_,
+ orient_type_->EnumValue());
}
float SVGAngle::Value() const {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_angle.h b/chromium/third_party/blink/renderer/core/svg/svg_angle.h
index 1ce89a2f040..0ceab5ed1d9 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_angle.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_angle.h
@@ -38,19 +38,16 @@ enum SVGMarkerOrientType {
kSVGMarkerOrientAngle,
kSVGMarkerOrientAutoStartReverse
};
-template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGMarkerOrientType>();
-template <>
-unsigned short GetMaxExposedEnumValue<SVGMarkerOrientType>();
+DECLARE_SVG_ENUM_MAP(SVGMarkerOrientType);
class SVGMarkerOrientEnumeration final
: public SVGEnumeration<SVGMarkerOrientType> {
public:
static SVGMarkerOrientEnumeration* Create(SVGAngle* angle) {
- return new SVGMarkerOrientEnumeration(angle);
+ return MakeGarbageCollected<SVGMarkerOrientEnumeration>(angle);
}
+ SVGMarkerOrientEnumeration(SVGAngle*);
~SVGMarkerOrientEnumeration() override;
void Add(SVGPropertyBase*, SVGElement*) override;
@@ -66,8 +63,6 @@ class SVGMarkerOrientEnumeration final
void Trace(blink::Visitor*) override;
private:
- SVGMarkerOrientEnumeration(SVGAngle*);
-
void NotifyChange() override;
Member<SVGAngle> angle_;
@@ -86,8 +81,10 @@ class SVGAngle final : public SVGPropertyHelper<SVGAngle> {
kSvgAngletypeTurn = 5
};
- static SVGAngle* Create() { return new SVGAngle(); }
+ static SVGAngle* Create() { return MakeGarbageCollected<SVGAngle>(); }
+ SVGAngle();
+ SVGAngle(SVGAngleType, float, SVGMarkerOrientType);
~SVGAngle() override;
SVGAngleType UnitType() const { return unit_type_; }
@@ -142,9 +139,6 @@ class SVGAngle final : public SVGPropertyHelper<SVGAngle> {
void Trace(blink::Visitor*) override;
private:
- SVGAngle();
- SVGAngle(SVGAngleType, float, SVGMarkerOrientType);
-
void Assign(const SVGAngle&);
SVGAngleType unit_type_;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_angle_tear_off.h b/chromium/third_party/blink/renderer/core/svg/svg_angle_tear_off.h
index 951cf98744a..991960bbea5 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_angle_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_angle_tear_off.h
@@ -43,7 +43,8 @@ class SVGAngleTearOff final : public SVGPropertyTearOff<SVGAngle> {
static SVGAngleTearOff* Create(SVGAngle* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val) {
- return new SVGAngleTearOff(target, binding, property_is_anim_val);
+ return MakeGarbageCollected<SVGAngleTearOff>(target, binding,
+ property_is_anim_val);
}
static SVGAngleTearOff* CreateDetached();
@@ -55,6 +56,9 @@ class SVGAngleTearOff final : public SVGPropertyTearOff<SVGAngle> {
kSvgAngletypeGrad = SVGAngle::kSvgAngletypeGrad
};
+ SVGAngleTearOff(SVGAngle*,
+ SVGAnimatedPropertyBase* binding,
+ PropertyIsAnimValType);
~SVGAngleTearOff() override;
unsigned short unitType() {
@@ -80,10 +84,6 @@ class SVGAngleTearOff final : public SVGPropertyTearOff<SVGAngle> {
void setValueAsString(const String&, ExceptionState&);
private:
- SVGAngleTearOff(SVGAngle*,
- SVGAnimatedPropertyBase* binding,
- PropertyIsAnimValType);
-
bool HasExposedAngleUnit() {
return Target()->UnitType() <= SVGAngle::kSvgAngletypeGrad;
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animate_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_animate_element.cc
index a642c1cc0ac..c88b7c7abd1 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animate_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animate_element.cc
@@ -91,8 +91,8 @@ QualifiedName ConstructQualifiedName(const SVGElement& svg_element,
// "Animation elements treat attributeName='xlink:href' as being an alias
// for targetting the 'href' attribute."
// https://svgwg.org/svg2-draft/types.html#__svg__SVGURIReference__href
- if (resolved_attr_name == XLinkNames::hrefAttr)
- return SVGNames::hrefAttr;
+ if (resolved_attr_name == xlink_names::kHrefAttr)
+ return svg_names::kHrefAttr;
return resolved_attr_name;
}
@@ -108,19 +108,20 @@ SVGAnimateElement::SVGAnimateElement(const QualifiedName& tag_name,
attribute_type_(kAttributeTypeAuto) {}
SVGAnimateElement* SVGAnimateElement::Create(Document& document) {
- return new SVGAnimateElement(SVGNames::animateTag, document);
+ return MakeGarbageCollected<SVGAnimateElement>(svg_names::kAnimateTag,
+ document);
}
SVGAnimateElement::~SVGAnimateElement() = default;
bool SVGAnimateElement::IsSVGAnimationAttributeSettingJavaScriptURL(
const Attribute& attribute) const {
- if ((attribute.GetName() == SVGNames::fromAttr ||
- attribute.GetName() == SVGNames::toAttr) &&
+ if ((attribute.GetName() == svg_names::kFromAttr ||
+ attribute.GetName() == svg_names::kToAttr) &&
AttributeValueIsJavaScriptURL(attribute))
return true;
- if (attribute.GetName() == SVGNames::valuesAttr) {
+ if (attribute.GetName() == svg_names::kValuesAttr) {
Vector<String> parts;
if (!ParseValues(attribute.Value(), parts)) {
// Assume the worst.
@@ -140,7 +141,7 @@ Node::InsertionNotificationRequest SVGAnimateElement::InsertedInto(
SVGAnimationElement::InsertedInto(root_parent);
if (root_parent.isConnected()) {
SetAttributeName(ConstructQualifiedName(
- *this, FastGetAttribute(SVGNames::attributeNameAttr)));
+ *this, FastGetAttribute(svg_names::kAttributeNameAttr)));
}
return kInsertionDone;
}
@@ -153,12 +154,12 @@ void SVGAnimateElement::RemovedFrom(ContainerNode& root_parent) {
void SVGAnimateElement::ParseAttribute(
const AttributeModificationParams& params) {
- if (params.name == SVGNames::attributeTypeAttr) {
+ if (params.name == svg_names::kAttributeTypeAttr) {
SetAttributeType(params.new_value);
AnimationAttributeChanged();
return;
}
- if (params.name == SVGNames::attributeNameAttr) {
+ if (params.name == svg_names::kAttributeNameAttr) {
SetAttributeName(ConstructQualifiedName(*this, params.new_value));
AnimationAttributeChanged();
return;
@@ -465,8 +466,8 @@ void SVGAnimateElement::ClearAnimatedType() {
target_element->EnsureAnimatedSMILStyleProperties();
if (property_set->RemoveProperty(css_property_id_)) {
target_element->SetNeedsStyleRecalc(
- kLocalStyleChange,
- StyleChangeReasonForTracing::Create(StyleChangeReason::kAnimation));
+ kLocalStyleChange, StyleChangeReasonForTracing::Create(
+ style_change_reason::kAnimation));
}
}
}
@@ -507,7 +508,7 @@ void SVGAnimateElement::ApplyResultsToTarget() {
.did_change) {
targetElement()->SetNeedsStyleRecalc(
kLocalStyleChange,
- StyleChangeReasonForTracing::Create(StyleChangeReason::kAnimation));
+ StyleChangeReasonForTracing::Create(style_change_reason::kAnimation));
}
}
if (IsAnimatingSVGDom()) {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animate_element.h b/chromium/third_party/blink/renderer/core/svg/svg_animate_element.h
index 0a300c31b9e..796237f1dfa 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animate_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animate_element.h
@@ -25,7 +25,7 @@
#include <base/gtest_prod_util.h>
#include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/core/css_property_names.h"
+#include "third_party/blink/renderer/core/css/css_property_names.h"
#include "third_party/blink/renderer/core/svg/svg_animation_element.h"
#include "third_party/blink/renderer/core/svg_names.h"
#include "third_party/blink/renderer/platform/heap/handle.h"
@@ -41,6 +41,8 @@ class CORE_EXPORT SVGAnimateElement : public SVGAnimationElement {
public:
static SVGAnimateElement* Create(Document&);
+
+ SVGAnimateElement(const QualifiedName&, Document&);
~SVGAnimateElement() override;
void Trace(blink::Visitor*) override;
@@ -52,8 +54,6 @@ class CORE_EXPORT SVGAnimateElement : public SVGAnimationElement {
bool AnimatedPropertyTypeSupportsAddition();
protected:
- SVGAnimateElement(const QualifiedName&, Document&);
-
bool HasValidTarget() override;
void WillChangeAnimationTarget() final;
@@ -133,9 +133,9 @@ class CORE_EXPORT SVGAnimateElement : public SVGAnimationElement {
};
inline bool IsSVGAnimateElement(const SVGElement& element) {
- return element.HasTagName(SVGNames::animateTag) ||
- element.HasTagName(SVGNames::animateTransformTag) ||
- element.HasTagName(SVGNames::setTag);
+ return element.HasTagName(svg_names::kAnimateTag) ||
+ element.HasTagName(svg_names::kAnimateTransformTag) ||
+ element.HasTagName(svg_names::kSetTag);
}
DEFINE_SVGELEMENT_TYPE_CASTS_WITH_FUNCTION(SVGAnimateElement);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animate_motion_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_animate_motion_element.cc
index 5467317ab2a..0c229b5e601 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animate_motion_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animate_motion_element.cc
@@ -57,7 +57,7 @@ bool TargetCanHaveMotionTransform(const SVGElement& target) {
}
inline SVGAnimateMotionElement::SVGAnimateMotionElement(Document& document)
- : SVGAnimationElement(SVGNames::animateMotionTag, document),
+ : SVGAnimationElement(svg_names::kAnimateMotionTag, document),
has_to_point_at_end_of_duration_(false) {
SetCalcMode(kCalcModePaced);
}
@@ -73,7 +73,7 @@ bool SVGAnimateMotionElement::HasValidTarget() {
void SVGAnimateMotionElement::ParseAttribute(
const AttributeModificationParams& params) {
- if (params.name == SVGNames::pathAttr) {
+ if (params.name == svg_names::kPathAttr) {
path_ = Path();
BuildPathFromString(params.new_value, path_);
UpdateAnimationPath();
@@ -87,7 +87,7 @@ SVGAnimateMotionElement::RotateMode SVGAnimateMotionElement::GetRotateMode()
const {
DEFINE_STATIC_LOCAL(const AtomicString, auto_val, ("auto"));
DEFINE_STATIC_LOCAL(const AtomicString, auto_reverse, ("auto-reverse"));
- const AtomicString& rotate = getAttribute(SVGNames::rotateAttr);
+ const AtomicString& rotate = getAttribute(svg_names::kRotateAttr);
if (rotate == auto_val)
return kRotateAuto;
if (rotate == auto_reverse)
@@ -108,7 +108,7 @@ void SVGAnimateMotionElement::UpdateAnimationPath() {
}
}
- if (!found_m_path && FastHasAttribute(SVGNames::pathAttr))
+ if (!found_m_path && FastHasAttribute(svg_names::kPathAttr))
animation_path_ = path_;
UpdateAnimationMode();
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animate_transform_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_animate_transform_element.cc
index 12ecd8caa71..4972e03e215 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animate_transform_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animate_transform_element.cc
@@ -30,7 +30,7 @@ namespace blink {
inline SVGAnimateTransformElement::SVGAnimateTransformElement(
Document& document)
- : SVGAnimateElement(SVGNames::animateTransformTag, document),
+ : SVGAnimateElement(svg_names::kAnimateTransformTag, document),
transform_type_(kSvgTransformUnknown) {}
DEFINE_NODE_FACTORY(SVGAnimateTransformElement)
@@ -67,7 +67,7 @@ SVGPropertyBase* SVGAnimateTransformElement::CreatePropertyForAnimation(
void SVGAnimateTransformElement::ParseAttribute(
const AttributeModificationParams& params) {
- if (params.name == SVGNames::typeAttr) {
+ if (params.name == svg_names::kTypeAttr) {
transform_type_ = ParseTransformType(params.new_value);
if (transform_type_ == kSvgTransformMatrix)
transform_type_ = kSvgTransformUnknown;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_angle.cc b/chromium/third_party/blink/renderer/core/svg/svg_animated_angle.cc
index 47ddc36a7e5..2f69e0eb03c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_angle.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_angle.cc
@@ -36,11 +36,11 @@ namespace blink {
SVGAnimatedAngle::SVGAnimatedAngle(SVGElement* context_element)
: SVGAnimatedProperty<SVGAngle>(context_element,
- SVGNames::orientAttr,
+ svg_names::kOrientAttr,
SVGAngle::Create()),
orient_type_(SVGAnimatedEnumeration<SVGMarkerOrientType>::Create(
context_element,
- SVGNames::orientAttr,
+ svg_names::kOrientAttr,
BaseValue()->OrientType())) {}
SVGAnimatedAngle::~SVGAnimatedAngle() = default;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_angle.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_angle.h
index 3e8761e6faf..a7edb0aca21 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_angle.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_angle.h
@@ -45,9 +45,10 @@ class SVGAnimatedAngle final : public ScriptWrappable,
public:
static SVGAnimatedAngle* Create(SVGElement* context_element) {
- return new SVGAnimatedAngle(context_element);
+ return MakeGarbageCollected<SVGAnimatedAngle>(context_element);
}
+ explicit SVGAnimatedAngle(SVGElement* context_element);
~SVGAnimatedAngle() override;
SVGAnimatedEnumeration<SVGMarkerOrientType>* OrientType() {
@@ -63,9 +64,6 @@ class SVGAnimatedAngle final : public ScriptWrappable,
void Trace(blink::Visitor*) override;
- protected:
- explicit SVGAnimatedAngle(SVGElement* context_element);
-
private:
Member<SVGAnimatedEnumeration<SVGMarkerOrientType>> orient_type_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_boolean.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_boolean.h
index 1220c930907..b7c06b10871 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_boolean.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_boolean.h
@@ -45,20 +45,20 @@ class SVGAnimatedBoolean final : public ScriptWrappable,
public:
static SVGAnimatedBoolean* Create(SVGElement* context_element,
const QualifiedName& attribute_name) {
- return new SVGAnimatedBoolean(context_element, attribute_name);
+ return MakeGarbageCollected<SVGAnimatedBoolean>(context_element,
+ attribute_name);
}
- void Trace(blink::Visitor* visitor) override {
- SVGAnimatedProperty<SVGBoolean>::Trace(visitor);
- ScriptWrappable::Trace(visitor);
- }
-
- protected:
SVGAnimatedBoolean(SVGElement* context_element,
const QualifiedName& attribute_name)
: SVGAnimatedProperty<SVGBoolean>(context_element,
attribute_name,
SVGBoolean::Create()) {}
+
+ void Trace(blink::Visitor* visitor) override {
+ SVGAnimatedProperty<SVGBoolean>::Trace(visitor);
+ ScriptWrappable::Trace(visitor);
+ }
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_color.cc b/chromium/third_party/blink/renderer/core/svg/svg_animated_color.cc
index ea32f72178e..906aca80cf7 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_color.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_color.cc
@@ -19,6 +19,7 @@
#include "third_party/blink/renderer/core/svg/svg_animated_color.h"
+#include "third_party/blink/renderer/core/css/css_color_value.h"
#include "third_party/blink/renderer/core/css/parser/css_parser.h"
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/core/svg/color_distance.h"
@@ -36,7 +37,8 @@ SVGColorProperty::SVGColorProperty(const String& color_string)
String SVGColorProperty::ValueAsString() const {
return style_color_.IsCurrentColor()
? "currentColor"
- : style_color_.GetColor().SerializedAsCSSComponentValue();
+ : cssvalue::CSSColorValue::SerializeAsCSSComponentValue(
+ style_color_.GetColor());
}
SVGPropertyBase* SVGColorProperty::CloneForAnimation(const String&) const {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_color.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_color.h
index 0747ef29358..f59a49d17f2 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_color.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_color.h
@@ -44,9 +44,11 @@ class SVGAnimationElement;
class SVGColorProperty final : public SVGPropertyBase {
public:
static SVGColorProperty* Create(const String& color_string) {
- return new SVGColorProperty(color_string);
+ return MakeGarbageCollected<SVGColorProperty>(color_string);
}
+ explicit SVGColorProperty(const String&);
+
SVGPropertyBase* CloneForAnimation(const String&) const override;
String ValueAsString() const override;
@@ -64,8 +66,6 @@ class SVGColorProperty final : public SVGPropertyBase {
AnimatedPropertyType GetType() const override { return ClassType(); }
private:
- explicit SVGColorProperty(const String&);
-
StyleColor style_color_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration.h
index b64f188d34c..cb8dfe6c45d 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration.h
@@ -42,7 +42,7 @@ class SVGAnimatedEnumeration : public SVGAnimatedEnumerationBase {
SVGElement* context_element,
const QualifiedName& attribute_name,
Enum initial_value) {
- return new SVGAnimatedEnumeration(
+ return MakeGarbageCollected<SVGAnimatedEnumeration>(
context_element, attribute_name,
SVGEnumeration<Enum>::Create(initial_value),
static_cast<unsigned>(initial_value));
@@ -52,11 +52,20 @@ class SVGAnimatedEnumeration : public SVGAnimatedEnumerationBase {
SVGElement* context_element,
const QualifiedName& attribute_name,
SVGEnumeration<Enum>* initial_value) {
- return new SVGAnimatedEnumeration(
+ return MakeGarbageCollected<SVGAnimatedEnumeration>(
context_element, attribute_name, initial_value,
static_cast<unsigned>(initial_value->EnumValue()));
}
+ SVGAnimatedEnumeration(SVGElement* context_element,
+ const QualifiedName& attribute_name,
+ SVGEnumeration<Enum>* initial_value,
+ unsigned initial_enum_value)
+ : SVGAnimatedEnumerationBase(context_element,
+ attribute_name,
+ initial_value,
+ initial_enum_value) {}
+
SVGEnumeration<Enum>* BaseValue() {
return static_cast<SVGEnumeration<Enum>*>(
SVGAnimatedEnumerationBase::BaseValue());
@@ -71,16 +80,6 @@ class SVGAnimatedEnumeration : public SVGAnimatedEnumerationBase {
return static_cast<const SVGEnumeration<Enum>*>(
SVGAnimatedEnumerationBase::CurrentValue());
}
-
- protected:
- SVGAnimatedEnumeration(SVGElement* context_element,
- const QualifiedName& attribute_name,
- SVGEnumeration<Enum>* initial_value,
- unsigned initial_enum_value)
- : SVGAnimatedEnumerationBase(context_element,
- attribute_name,
- initial_value,
- initial_enum_value) {}
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_href.cc b/chromium/third_party/blink/renderer/core/svg/svg_animated_href.cc
index 2cfdfe71a05..accfa5b6398 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_href.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_href.cc
@@ -12,7 +12,7 @@
namespace blink {
SVGAnimatedHref* SVGAnimatedHref::Create(SVGElement* context_element) {
- return new SVGAnimatedHref(context_element);
+ return MakeGarbageCollected<SVGAnimatedHref>(context_element);
}
void SVGAnimatedHref::Trace(blink::Visitor* visitor) {
@@ -21,9 +21,9 @@ void SVGAnimatedHref::Trace(blink::Visitor* visitor) {
}
SVGAnimatedHref::SVGAnimatedHref(SVGElement* context_element)
- : SVGAnimatedString(context_element, SVGNames::hrefAttr),
+ : SVGAnimatedString(context_element, svg_names::kHrefAttr),
xlink_href_(
- SVGAnimatedString::Create(context_element, XLinkNames::hrefAttr)) {}
+ SVGAnimatedString::Create(context_element, xlink_names::kHrefAttr)) {}
void SVGAnimatedHref::AddToPropertyMap(SVGElement* element) {
element->AddToPropertyMap(this);
@@ -31,8 +31,8 @@ void SVGAnimatedHref::AddToPropertyMap(SVGElement* element) {
}
bool SVGAnimatedHref::IsKnownAttribute(const QualifiedName& attr_name) {
- return attr_name.Matches(SVGNames::hrefAttr) ||
- attr_name.Matches(XLinkNames::hrefAttr);
+ return attr_name.Matches(svg_names::kHrefAttr) ||
+ attr_name.Matches(xlink_names::kHrefAttr);
}
SVGString* SVGAnimatedHref::CurrentValue() {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_href.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_href.h
index a1aae285c84..041276d6b8f 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_href.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_href.h
@@ -21,6 +21,8 @@ class SVGAnimatedHref final : public SVGAnimatedString {
public:
static SVGAnimatedHref* Create(SVGElement* context_element);
+ explicit SVGAnimatedHref(SVGElement* context_element);
+
SVGString* CurrentValue();
const SVGString* CurrentValue() const;
@@ -38,8 +40,6 @@ class SVGAnimatedHref final : public SVGAnimatedString {
void Trace(blink::Visitor*) override;
private:
- explicit SVGAnimatedHref(SVGElement* context_element);
-
SVGAnimatedString* BackingString();
const SVGAnimatedString* BackingString() const;
bool UseXLink() const;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_integer.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_integer.h
index aed647f75b9..ab271dbb255 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_integer.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_integer.h
@@ -51,26 +51,16 @@ class SVGAnimatedInteger : public ScriptWrappable,
const QualifiedName& attribute_name,
int initial) {
SVGInteger* initial_value = SVGInteger::Create(initial);
- return new SVGAnimatedInteger(context_element, attribute_name,
- initial_value);
+ return MakeGarbageCollected<SVGAnimatedInteger>(
+ context_element, attribute_name, initial_value);
}
static SVGAnimatedInteger* Create(SVGElement* context_element,
const QualifiedName& attribute_name,
SVGInteger* initial_value) {
- return new SVGAnimatedInteger(context_element, attribute_name,
- initial_value);
+ return MakeGarbageCollected<SVGAnimatedInteger>(
+ context_element, attribute_name, initial_value);
}
- void SynchronizeAttribute() override;
-
- void SetParentOptionalInteger(
- SVGAnimatedIntegerOptionalInteger* number_optional_integer) {
- parent_integer_optional_integer_ = number_optional_integer;
- }
-
- void Trace(blink::Visitor*) override;
-
- protected:
SVGAnimatedInteger(SVGElement* context_element,
const QualifiedName& attribute_name,
SVGInteger* initial_value)
@@ -81,6 +71,16 @@ class SVGAnimatedInteger : public ScriptWrappable,
initial_value->Value()),
parent_integer_optional_integer_(nullptr) {}
+ void SynchronizeAttribute() override;
+
+ void SetParentOptionalInteger(
+ SVGAnimatedIntegerOptionalInteger* number_optional_integer) {
+ parent_integer_optional_integer_ = number_optional_integer;
+ }
+
+ void Trace(blink::Visitor*) override;
+
+ protected:
Member<SVGAnimatedIntegerOptionalInteger> parent_integer_optional_integer_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.h
index a7a095bcbe9..776c9a5644c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.h
@@ -53,10 +53,14 @@ class SVGAnimatedIntegerOptionalInteger
SVGElement* context_element,
const QualifiedName& attribute_name,
int initial_value) {
- return new SVGAnimatedIntegerOptionalInteger(context_element,
- attribute_name, initial_value);
+ return MakeGarbageCollected<SVGAnimatedIntegerOptionalInteger>(
+ context_element, attribute_name, initial_value);
}
+ SVGAnimatedIntegerOptionalInteger(SVGElement* context_element,
+ const QualifiedName& attribute_name,
+ int initial_value);
+
void SetAnimatedValue(SVGPropertyBase*) override;
bool NeedsSynchronizeAttribute() const override;
void AnimationEnded() override;
@@ -67,10 +71,6 @@ class SVGAnimatedIntegerOptionalInteger
void Trace(blink::Visitor*) override;
protected:
- SVGAnimatedIntegerOptionalInteger(SVGElement* context_element,
- const QualifiedName& attribute_name,
- int initial_value);
-
Member<SVGAnimatedInteger> first_integer_;
Member<SVGAnimatedInteger> second_integer_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_length.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_length.h
index 0f2cff3c3c4..587c23eeed6 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_length.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_length.h
@@ -49,19 +49,10 @@ class SVGAnimatedLength : public ScriptWrappable,
SVGLengthMode mode,
SVGLength::Initial initial_value,
CSSPropertyID css_property_id = CSSPropertyInvalid) {
- return new SVGAnimatedLength(context_element, attribute_name, mode,
- initial_value, css_property_id);
+ return MakeGarbageCollected<SVGAnimatedLength>(
+ context_element, attribute_name, mode, initial_value, css_property_id);
}
- SVGParsingError AttributeChanged(const String&) override;
-
- const CSSValue& CssValue() const {
- return CurrentValue()->AsCSSPrimitiveValue();
- }
-
- void Trace(blink::Visitor*) override;
-
- protected:
SVGAnimatedLength(SVGElement* context_element,
const QualifiedName& attribute_name,
SVGLengthMode mode,
@@ -72,6 +63,14 @@ class SVGAnimatedLength : public ScriptWrappable,
SVGLength::Create(initial_value, mode),
css_property_id,
static_cast<unsigned>(initial_value)) {}
+
+ SVGParsingError AttributeChanged(const String&) override;
+
+ const CSSValue& CssValue() const {
+ return CurrentValue()->AsCSSPrimitiveValue();
+ }
+
+ void Trace(blink::Visitor*) override;
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_length_list.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_length_list.h
index 3738a2012b8..91905177f91 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_length_list.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_length_list.h
@@ -48,22 +48,21 @@ class SVGAnimatedLengthList final : public ScriptWrappable,
static SVGAnimatedLengthList* Create(SVGElement* context_element,
const QualifiedName& attribute_name,
SVGLengthList* initial_value) {
- return new SVGAnimatedLengthList(context_element, attribute_name,
- initial_value);
+ return MakeGarbageCollected<SVGAnimatedLengthList>(
+ context_element, attribute_name, initial_value);
}
- void Trace(blink::Visitor* visitor) override {
- SVGAnimatedProperty<SVGLengthList>::Trace(visitor);
- ScriptWrappable::Trace(visitor);
- }
-
- protected:
SVGAnimatedLengthList(SVGElement* context_element,
const QualifiedName& attribute_name,
SVGLengthList* initial_value)
: SVGAnimatedProperty<SVGLengthList>(context_element,
attribute_name,
initial_value) {}
+
+ void Trace(blink::Visitor* visitor) override {
+ SVGAnimatedProperty<SVGLengthList>::Trace(visitor);
+ ScriptWrappable::Trace(visitor);
+ }
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_number.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_number.h
index cbf8d4b7f78..317ca37274f 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_number.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_number.h
@@ -51,26 +51,16 @@ class SVGAnimatedNumber : public ScriptWrappable,
const QualifiedName& attribute_name,
float initial_number) {
SVGNumber* initial_value = SVGNumber::Create(initial_number);
- return new SVGAnimatedNumber(context_element, attribute_name,
- initial_value);
+ return MakeGarbageCollected<SVGAnimatedNumber>(
+ context_element, attribute_name, initial_value);
}
static SVGAnimatedNumber* Create(SVGElement* context_element,
const QualifiedName& attribute_name,
SVGNumber* initial_value) {
- return new SVGAnimatedNumber(context_element, attribute_name,
- initial_value);
+ return MakeGarbageCollected<SVGAnimatedNumber>(
+ context_element, attribute_name, initial_value);
}
- void SynchronizeAttribute() override;
-
- void SetParentOptionalNumber(
- SVGAnimatedNumberOptionalNumber* number_optional_number) {
- parent_number_optional_number_ = number_optional_number;
- }
-
- void Trace(blink::Visitor*) override;
-
- protected:
SVGAnimatedNumber(SVGElement* context_element,
const QualifiedName& attribute_name,
SVGNumber* initial_value)
@@ -82,6 +72,16 @@ class SVGAnimatedNumber : public ScriptWrappable,
static_cast<unsigned>(initial_value->Value())),
parent_number_optional_number_(nullptr) {}
+ void SynchronizeAttribute() override;
+
+ void SetParentOptionalNumber(
+ SVGAnimatedNumberOptionalNumber* number_optional_number) {
+ parent_number_optional_number_ = number_optional_number;
+ }
+
+ void Trace(blink::Visitor*) override;
+
+ protected:
Member<SVGAnimatedNumberOptionalNumber> parent_number_optional_number_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_number_list.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_number_list.h
index e06f6ac5a78..df7e2fe994e 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_number_list.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_number_list.h
@@ -47,20 +47,20 @@ class SVGAnimatedNumberList final : public ScriptWrappable,
public:
static SVGAnimatedNumberList* Create(SVGElement* context_element,
const QualifiedName& attribute_name) {
- return new SVGAnimatedNumberList(context_element, attribute_name);
+ return MakeGarbageCollected<SVGAnimatedNumberList>(context_element,
+ attribute_name);
}
- void Trace(blink::Visitor* visitor) override {
- SVGAnimatedProperty<SVGNumberList>::Trace(visitor);
- ScriptWrappable::Trace(visitor);
- }
-
- protected:
SVGAnimatedNumberList(SVGElement* context_element,
const QualifiedName& attribute_name)
: SVGAnimatedProperty<SVGNumberList>(context_element,
attribute_name,
SVGNumberList::Create()) {}
+
+ void Trace(blink::Visitor* visitor) override {
+ SVGAnimatedProperty<SVGNumberList>::Trace(visitor);
+ ScriptWrappable::Trace(visitor);
+ }
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.h
index 658b1462ac2..b8185ca5daa 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.h
@@ -53,10 +53,14 @@ class SVGAnimatedNumberOptionalNumber
SVGElement* context_element,
const QualifiedName& attribute_name,
float initial_value) {
- return new SVGAnimatedNumberOptionalNumber(context_element, attribute_name,
- initial_value);
+ return MakeGarbageCollected<SVGAnimatedNumberOptionalNumber>(
+ context_element, attribute_name, initial_value);
}
+ SVGAnimatedNumberOptionalNumber(SVGElement* context_element,
+ const QualifiedName& attribute_name,
+ float initial_value);
+
void SetAnimatedValue(SVGPropertyBase*) override;
bool NeedsSynchronizeAttribute() const override;
void AnimationEnded() override;
@@ -67,10 +71,6 @@ class SVGAnimatedNumberOptionalNumber
void Trace(blink::Visitor*) override;
protected:
- SVGAnimatedNumberOptionalNumber(SVGElement* context_element,
- const QualifiedName& attribute_name,
- float initial_value);
-
Member<SVGAnimatedNumber> first_number_;
Member<SVGAnimatedNumber> second_number_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_path.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_path.h
index 8e0dbee9fe7..8cb6a9b3b28 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_path.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_path.h
@@ -47,16 +47,15 @@ class SVGAnimatedPath final : public GarbageCollectedFinalized<SVGAnimatedPath>,
SVGElement* context_element,
const QualifiedName& attribute_name,
CSSPropertyID css_property_id = CSSPropertyInvalid) {
- return new SVGAnimatedPath(context_element, attribute_name,
- css_property_id);
+ return MakeGarbageCollected<SVGAnimatedPath>(
+ context_element, attribute_name, css_property_id);
}
- const CSSValue& CssValue() const;
-
- protected:
SVGAnimatedPath(SVGElement*,
const QualifiedName&,
CSSPropertyID = CSSPropertyInvalid);
+
+ const CSSValue& CssValue() const;
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_point_list.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_point_list.h
index 903d3a0bdfa..26844d948a2 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_point_list.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_point_list.h
@@ -47,11 +47,10 @@ class SVGAnimatedPointList final
const QualifiedName& attribute_name,
SVGPointList* initial_value,
CSSPropertyID css_property_id = CSSPropertyInvalid) {
- return new SVGAnimatedPointList(context_element, attribute_name,
- initial_value, css_property_id);
+ return MakeGarbageCollected<SVGAnimatedPointList>(
+ context_element, attribute_name, initial_value, css_property_id);
}
- protected:
SVGAnimatedPointList(SVGElement* context_element,
const QualifiedName& attribute_name,
SVGPointList* initial_value,
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_preserve_aspect_ratio.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_preserve_aspect_ratio.h
index 9a5a2708c06..c26839054c9 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_preserve_aspect_ratio.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_preserve_aspect_ratio.h
@@ -47,21 +47,21 @@ class SVGAnimatedPreserveAspectRatio
static SVGAnimatedPreserveAspectRatio* Create(
SVGElement* context_element,
const QualifiedName& attribute_name) {
- return new SVGAnimatedPreserveAspectRatio(context_element, attribute_name);
+ return MakeGarbageCollected<SVGAnimatedPreserveAspectRatio>(context_element,
+ attribute_name);
}
- void Trace(blink::Visitor* visitor) override {
- SVGAnimatedProperty<SVGPreserveAspectRatio>::Trace(visitor);
- ScriptWrappable::Trace(visitor);
- }
-
- protected:
SVGAnimatedPreserveAspectRatio(SVGElement* context_element,
const QualifiedName& attribute_name)
: SVGAnimatedProperty<SVGPreserveAspectRatio>(
context_element,
attribute_name,
SVGPreserveAspectRatio::Create()) {}
+
+ void Trace(blink::Visitor* visitor) override {
+ SVGAnimatedProperty<SVGPreserveAspectRatio>::Trace(visitor);
+ ScriptWrappable::Trace(visitor);
+ }
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_rect.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_rect.h
index c400d9c3840..ad95d13a810 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_rect.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_rect.h
@@ -45,20 +45,20 @@ class SVGAnimatedRect : public ScriptWrappable,
public:
static SVGAnimatedRect* Create(SVGElement* context_element,
const QualifiedName& attribute_name) {
- return new SVGAnimatedRect(context_element, attribute_name);
+ return MakeGarbageCollected<SVGAnimatedRect>(context_element,
+ attribute_name);
}
- void Trace(blink::Visitor* visitor) override {
- SVGAnimatedProperty<SVGRect>::Trace(visitor);
- ScriptWrappable::Trace(visitor);
- }
-
- protected:
SVGAnimatedRect(SVGElement* context_element,
const QualifiedName& attribute_name)
: SVGAnimatedProperty<SVGRect>(context_element,
attribute_name,
SVGRect::CreateInvalid()) {}
+
+ void Trace(blink::Visitor* visitor) override {
+ SVGAnimatedProperty<SVGRect>::Trace(visitor);
+ ScriptWrappable::Trace(visitor);
+ }
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_string.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_string.h
index 13b213d5b6a..dc9399f2bce 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_string.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_string.h
@@ -45,21 +45,21 @@ class SVGAnimatedString : public ScriptWrappable,
public:
static SVGAnimatedString* Create(SVGElement* context_element,
const QualifiedName& attribute_name) {
- return new SVGAnimatedString(context_element, attribute_name);
+ return MakeGarbageCollected<SVGAnimatedString>(context_element,
+ attribute_name);
}
- virtual String baseVal();
- virtual void setBaseVal(const String&, ExceptionState&);
- virtual String animVal();
-
- void Trace(blink::Visitor*) override;
-
- protected:
SVGAnimatedString(SVGElement* context_element,
const QualifiedName& attribute_name)
: SVGAnimatedProperty<SVGString>(context_element,
attribute_name,
SVGString::Create()) {}
+
+ virtual String baseVal();
+ virtual void setBaseVal(const String&, ExceptionState&);
+ virtual String animVal();
+
+ void Trace(blink::Visitor*) override;
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_transform_list.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_transform_list.h
index e40b3dc092b..31bae649dd0 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_transform_list.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_transform_list.h
@@ -50,16 +50,10 @@ class SVGAnimatedTransformList final
SVGElement* context_element,
const QualifiedName& attribute_name,
CSSPropertyID css_property_id = CSSPropertyInvalid) {
- return new SVGAnimatedTransformList(context_element, attribute_name,
- css_property_id);
+ return MakeGarbageCollected<SVGAnimatedTransformList>(
+ context_element, attribute_name, css_property_id);
}
- void Trace(blink::Visitor* visitor) override {
- SVGAnimatedProperty<SVGTransformList>::Trace(visitor);
- ScriptWrappable::Trace(visitor);
- }
-
- protected:
SVGAnimatedTransformList(SVGElement* context_element,
const QualifiedName& attribute_name,
CSSPropertyID css_property_id)
@@ -67,6 +61,11 @@ class SVGAnimatedTransformList final
attribute_name,
SVGTransformList::Create(),
css_property_id) {}
+
+ void Trace(blink::Visitor* visitor) override {
+ SVGAnimatedProperty<SVGTransformList>::Trace(visitor);
+ ScriptWrappable::Trace(visitor);
+ }
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animation_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_animation_element.cc
index 1c8e310b5b1..6c4c0b34cd7 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animation_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animation_element.cc
@@ -40,7 +40,6 @@ SVGAnimationElement::SVGAnimationElement(const QualifiedName& tag_name,
animation_valid_(false),
calc_mode_(kCalcModeLinear),
animation_mode_(kNoAnimation) {
- DCHECK(RuntimeEnabledFeatures::SMILEnabled());
UseCounter::Count(document, WebFeature::kSVGAnimationElement);
}
@@ -156,7 +155,7 @@ static bool ParseKeySplines(const String& string,
void SVGAnimationElement::ParseAttribute(
const AttributeModificationParams& params) {
const QualifiedName& name = params.name;
- if (name == SVGNames::valuesAttr) {
+ if (name == svg_names::kValuesAttr) {
if (!ParseValues(params.new_value, values_)) {
ReportAttributeParsingError(SVGParseStatus::kParsingFailed, name,
params.new_value);
@@ -166,7 +165,7 @@ void SVGAnimationElement::ParseAttribute(
return;
}
- if (name == SVGNames::keyTimesAttr) {
+ if (name == svg_names::kKeyTimesAttr) {
if (!ParseKeyTimes(params.new_value, key_times_, true)) {
ReportAttributeParsingError(SVGParseStatus::kParsingFailed, name,
params.new_value);
@@ -174,7 +173,7 @@ void SVGAnimationElement::ParseAttribute(
return;
}
- if (name == SVGNames::keyPointsAttr) {
+ if (name == svg_names::kKeyPointsAttr) {
if (IsSVGAnimateMotionElement(*this)) {
// This is specified to be an animateMotion attribute only but it is
// simpler to put it here where the other timing calculatations are.
@@ -186,7 +185,7 @@ void SVGAnimationElement::ParseAttribute(
return;
}
- if (name == SVGNames::keySplinesAttr) {
+ if (name == svg_names::kKeySplinesAttr) {
if (!ParseKeySplines(params.new_value, key_splines_)) {
ReportAttributeParsingError(SVGParseStatus::kParsingFailed, name,
params.new_value);
@@ -194,13 +193,13 @@ void SVGAnimationElement::ParseAttribute(
return;
}
- if (name == SVGNames::calcModeAttr) {
+ if (name == svg_names::kCalcModeAttr) {
SetCalcMode(params.new_value);
return;
}
- if (name == SVGNames::fromAttr || name == SVGNames::toAttr ||
- name == SVGNames::byAttr) {
+ if (name == svg_names::kFromAttr || name == svg_names::kToAttr ||
+ name == svg_names::kByAttr) {
UpdateAnimationMode();
return;
}
@@ -209,12 +208,12 @@ void SVGAnimationElement::ParseAttribute(
}
void SVGAnimationElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::valuesAttr || attr_name == SVGNames::byAttr ||
- attr_name == SVGNames::fromAttr || attr_name == SVGNames::toAttr ||
- attr_name == SVGNames::calcModeAttr ||
- attr_name == SVGNames::keySplinesAttr ||
- attr_name == SVGNames::keyPointsAttr ||
- attr_name == SVGNames::keyTimesAttr) {
+ if (attr_name == svg_names::kValuesAttr || attr_name == svg_names::kByAttr ||
+ attr_name == svg_names::kFromAttr || attr_name == svg_names::kToAttr ||
+ attr_name == svg_names::kCalcModeAttr ||
+ attr_name == svg_names::kKeySplinesAttr ||
+ attr_name == svg_names::kKeyPointsAttr ||
+ attr_name == svg_names::kKeyTimesAttr) {
AnimationAttributeChanged();
return;
}
@@ -272,7 +271,7 @@ void SVGAnimationElement::endElementAt(float offset) {
void SVGAnimationElement::UpdateAnimationMode() {
// http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncValues
- if (hasAttribute(SVGNames::valuesAttr))
+ if (hasAttribute(svg_names::kValuesAttr))
SetAnimationMode(kValuesAnimation);
else if (!ToValue().IsEmpty())
SetAnimationMode(FromValue().IsEmpty() ? kToAnimation : kFromToAnimation);
@@ -310,26 +309,26 @@ void SVGAnimationElement::SetCalcMode(const AtomicString& calc_mode) {
}
String SVGAnimationElement::ToValue() const {
- return FastGetAttribute(SVGNames::toAttr);
+ return FastGetAttribute(svg_names::kToAttr);
}
String SVGAnimationElement::ByValue() const {
- return FastGetAttribute(SVGNames::byAttr);
+ return FastGetAttribute(svg_names::kByAttr);
}
String SVGAnimationElement::FromValue() const {
- return FastGetAttribute(SVGNames::fromAttr);
+ return FastGetAttribute(svg_names::kFromAttr);
}
bool SVGAnimationElement::IsAdditive() {
DEFINE_STATIC_LOCAL(const AtomicString, sum, ("sum"));
- const AtomicString& value = FastGetAttribute(SVGNames::additiveAttr);
+ const AtomicString& value = FastGetAttribute(svg_names::kAdditiveAttr);
return value == sum || GetAnimationMode() == kByAnimation;
}
bool SVGAnimationElement::IsAccumulated() const {
DEFINE_STATIC_LOCAL(const AtomicString, sum, ("sum"));
- const AtomicString& value = FastGetAttribute(SVGNames::accumulateAttr);
+ const AtomicString& value = FastGetAttribute(svg_names::kAccumulateAttr);
return value == sum && GetAnimationMode() != kToAnimation;
}
@@ -524,7 +523,7 @@ void SVGAnimationElement::StartedActiveInterval() {
return;
// These validations are appropriate for all animation modes.
- if (FastHasAttribute(SVGNames::keyPointsAttr) &&
+ if (FastHasAttribute(svg_names::kKeyPointsAttr) &&
key_points_.size() != key_times_.size())
return;
@@ -533,11 +532,11 @@ void SVGAnimationElement::StartedActiveInterval() {
if (calc_mode == kCalcModeSpline) {
unsigned splines_count = key_splines_.size();
if (!splines_count ||
- (FastHasAttribute(SVGNames::keyPointsAttr) &&
+ (FastHasAttribute(svg_names::kKeyPointsAttr) &&
key_points_.size() - 1 != splines_count) ||
(animation_mode == kValuesAnimation &&
values_.size() - 1 != splines_count) ||
- (FastHasAttribute(SVGNames::keyTimesAttr) &&
+ (FastHasAttribute(svg_names::kKeyTimesAttr) &&
key_times_.size() - 1 != splines_count))
return;
}
@@ -550,8 +549,8 @@ void SVGAnimationElement::StartedActiveInterval() {
if ((animation_mode == kFromToAnimation ||
animation_mode == kFromByAnimation || animation_mode == kToAnimation ||
animation_mode == kByAnimation) &&
- (FastHasAttribute(SVGNames::keyPointsAttr) &&
- FastHasAttribute(SVGNames::keyTimesAttr) &&
+ (FastHasAttribute(svg_names::kKeyPointsAttr) &&
+ FastHasAttribute(svg_names::kKeyTimesAttr) &&
(key_times_.size() < 2 || key_times_.size() != key_points_.size())))
return;
if (animation_mode == kFromToAnimation) {
@@ -569,8 +568,8 @@ void SVGAnimationElement::StartedActiveInterval() {
animation_valid_ =
values_.size() >= 1 &&
(calc_mode == kCalcModePaced ||
- !FastHasAttribute(SVGNames::keyTimesAttr) ||
- FastHasAttribute(SVGNames::keyPointsAttr) ||
+ !FastHasAttribute(svg_names::kKeyTimesAttr) ||
+ FastHasAttribute(svg_names::kKeyPointsAttr) ||
(values_.size() == key_times_.size())) &&
(calc_mode == kCalcModeDiscrete || !key_times_.size() ||
key_times_.back() == 1) &&
@@ -578,7 +577,7 @@ void SVGAnimationElement::StartedActiveInterval() {
((key_splines_.size() &&
(key_splines_.size() == values_.size() - 1)) ||
key_splines_.size() == key_points_.size() - 1)) &&
- (!FastHasAttribute(SVGNames::keyPointsAttr) ||
+ (!FastHasAttribute(svg_names::kKeyPointsAttr) ||
(key_times_.size() > 1 && key_times_.size() == key_points_.size()));
if (animation_valid_)
animation_valid_ = CalculateToAtEndOfDurationValue(values_.back());
@@ -587,7 +586,7 @@ void SVGAnimationElement::StartedActiveInterval() {
} else if (animation_mode == kPathAnimation) {
animation_valid_ =
calc_mode == kCalcModePaced ||
- !FastHasAttribute(SVGNames::keyPointsAttr) ||
+ !FastHasAttribute(svg_names::kKeyPointsAttr) ||
(key_times_.size() > 1 && key_times_.size() == key_points_.size());
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animation_element.h b/chromium/third_party/blink/renderer/core/svg/svg_animation_element.h
index d9129f870e6..9c03ef7264c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animation_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animation_element.h
@@ -65,9 +65,9 @@ class CORE_EXPORT SVGAnimationElement : public SVGSMILElement {
void endElement() { endElementAt(0); }
void endElementAt(float offset);
- DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER(begin, beginEvent);
- DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER(end, endEvent);
- DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER(repeat, repeatEvent);
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(begin, kBeginEvent);
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(end, kEndEvent);
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(repeat, kRepeatEvent);
virtual bool IsAdditive();
bool IsAccumulated() const;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animation_element.idl b/chromium/third_party/blink/renderer/core/svg/svg_animation_element.idl
index 0eaf56fe27f..a56ef3dc1d6 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animation_element.idl
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animation_element.idl
@@ -26,7 +26,6 @@
// https://svgwg.org/specs/animations/#InterfaceSVGAnimationElement
-[RuntimeEnabled=SMIL]
interface SVGAnimationElement : SVGElement {
readonly attribute SVGElement targetElement;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_boolean.h b/chromium/third_party/blink/renderer/core/svg/svg_boolean.h
index 84cd9b11e0d..5a266f603b0 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_boolean.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_boolean.h
@@ -43,9 +43,11 @@ class SVGBoolean final : public SVGPropertyHelper<SVGBoolean> {
typedef bool PrimitiveType;
static SVGBoolean* Create(bool value = false) {
- return new SVGBoolean(value);
+ return MakeGarbageCollected<SVGBoolean>(value);
}
+ SVGBoolean(bool value) : value_(value) {}
+
SVGBoolean* Clone() const { return Create(value_); }
String ValueAsString() const override;
@@ -67,8 +69,6 @@ class SVGBoolean final : public SVGPropertyHelper<SVGBoolean> {
static AnimatedPropertyType ClassType() { return kAnimatedBoolean; }
private:
- SVGBoolean(bool value) : value_(value) {}
-
bool value_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_circle_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_circle_element.cc
index 41d800695ed..317133f6ebe 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_circle_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_circle_element.cc
@@ -26,19 +26,19 @@
namespace blink {
inline SVGCircleElement::SVGCircleElement(Document& document)
- : SVGGeometryElement(SVGNames::circleTag, document),
+ : SVGGeometryElement(svg_names::kCircleTag, document),
cx_(SVGAnimatedLength::Create(this,
- SVGNames::cxAttr,
+ svg_names::kCxAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero,
CSSPropertyCx)),
cy_(SVGAnimatedLength::Create(this,
- SVGNames::cyAttr,
+ svg_names::kCyAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero,
CSSPropertyCy)),
r_(SVGAnimatedLength::Create(this,
- SVGNames::rAttr,
+ svg_names::kRAttr,
SVGLengthMode::kOther,
SVGLength::Initial::kUnitlessZero,
CSSPropertyR)) {
@@ -96,8 +96,8 @@ void SVGCircleElement::CollectStyleForPresentationAttribute(
}
void SVGCircleElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::rAttr || attr_name == SVGNames::cxAttr ||
- attr_name == SVGNames::cyAttr) {
+ if (attr_name == svg_names::kRAttr || attr_name == svg_names::kCxAttr ||
+ attr_name == svg_names::kCyAttr) {
UpdateRelativeLengthsInformation();
GeometryPresentationAttributeChanged(attr_name);
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_clip_path_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_clip_path_element.cc
index 82b66e13d50..eb5fe77b7e0 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_clip_path_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_clip_path_element.cc
@@ -26,11 +26,11 @@
namespace blink {
inline SVGClipPathElement::SVGClipPathElement(Document& document)
- : SVGGraphicsElement(SVGNames::clipPathTag, document),
+ : SVGGraphicsElement(svg_names::kClipPathTag, document),
clip_path_units_(
SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::Create(
this,
- SVGNames::clipPathUnitsAttr,
+ svg_names::kClipPathUnitsAttr,
SVGUnitTypes::kSvgUnitTypeUserspaceonuse)) {
AddToPropertyMap(clip_path_units_);
}
@@ -43,7 +43,7 @@ void SVGClipPathElement::Trace(blink::Visitor* visitor) {
DEFINE_NODE_FACTORY(SVGClipPathElement)
void SVGClipPathElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::clipPathUnitsAttr) {
+ if (attr_name == svg_names::kClipPathUnitsAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
LayoutSVGResourceContainer* layout_object =
@@ -62,9 +62,10 @@ void SVGClipPathElement::ChildrenChanged(const ChildrenChange& change) {
if (change.by_parser)
return;
- if (LayoutObject* object = GetLayoutObject())
+ if (LayoutObject* object = GetLayoutObject()) {
object->SetNeedsLayoutAndFullPaintInvalidation(
- LayoutInvalidationReason::kChildChanged);
+ layout_invalidation_reason::kChildChanged);
+ }
}
LayoutObject* SVGClipPathElement::CreateLayoutObject(const ComputedStyle&) {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.cc
index 2781cab9a1c..b9a59d421a2 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.cc
@@ -20,7 +20,7 @@
#include "third_party/blink/renderer/core/svg/svg_component_transfer_function_element.h"
-#include "third_party/blink/renderer/core/dom/attribute.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
#include "third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.h"
#include "third_party/blink/renderer/core/svg/svg_number_list.h"
#include "third_party/blink/renderer/core/svg_names.h"
@@ -28,19 +28,15 @@
namespace blink {
template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<ComponentTransferType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(
- std::make_pair(FECOMPONENTTRANSFER_TYPE_IDENTITY, "identity"));
- entries.push_back(std::make_pair(FECOMPONENTTRANSFER_TYPE_TABLE, "table"));
- entries.push_back(
- std::make_pair(FECOMPONENTTRANSFER_TYPE_DISCRETE, "discrete"));
- entries.push_back(
- std::make_pair(FECOMPONENTTRANSFER_TYPE_LINEAR, "linear"));
- entries.push_back(std::make_pair(FECOMPONENTTRANSFER_TYPE_GAMMA, "gamma"));
- }
+const SVGEnumerationMap& GetEnumerationMap<ComponentTransferType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {FECOMPONENTTRANSFER_TYPE_IDENTITY, "identity"},
+ {FECOMPONENTTRANSFER_TYPE_TABLE, "table"},
+ {FECOMPONENTTRANSFER_TYPE_DISCRETE, "discrete"},
+ {FECOMPONENTTRANSFER_TYPE_LINEAR, "linear"},
+ {FECOMPONENTTRANSFER_TYPE_GAMMA, "gamma"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
@@ -49,16 +45,16 @@ SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement(
Document& document)
: SVGElement(tag_name, document),
table_values_(
- SVGAnimatedNumberList::Create(this, SVGNames::tableValuesAttr)),
- slope_(SVGAnimatedNumber::Create(this, SVGNames::slopeAttr, 1)),
+ SVGAnimatedNumberList::Create(this, svg_names::kTableValuesAttr)),
+ slope_(SVGAnimatedNumber::Create(this, svg_names::kSlopeAttr, 1)),
intercept_(
- SVGAnimatedNumber::Create(this, SVGNames::interceptAttr, 0.0f)),
- amplitude_(SVGAnimatedNumber::Create(this, SVGNames::amplitudeAttr, 1)),
- exponent_(SVGAnimatedNumber::Create(this, SVGNames::exponentAttr, 1)),
- offset_(SVGAnimatedNumber::Create(this, SVGNames::offsetAttr, 0.0f)),
+ SVGAnimatedNumber::Create(this, svg_names::kInterceptAttr, 0.0f)),
+ amplitude_(SVGAnimatedNumber::Create(this, svg_names::kAmplitudeAttr, 1)),
+ exponent_(SVGAnimatedNumber::Create(this, svg_names::kExponentAttr, 1)),
+ offset_(SVGAnimatedNumber::Create(this, svg_names::kOffsetAttr, 0.0f)),
type_(SVGAnimatedEnumeration<ComponentTransferType>::Create(
this,
- SVGNames::typeAttr,
+ svg_names::kTypeAttr,
FECOMPONENTTRANSFER_TYPE_IDENTITY)) {
AddToPropertyMap(table_values_);
AddToPropertyMap(slope_);
@@ -82,13 +78,13 @@ void SVGComponentTransferFunctionElement::Trace(blink::Visitor* visitor) {
void SVGComponentTransferFunctionElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::typeAttr ||
- attr_name == SVGNames::tableValuesAttr ||
- attr_name == SVGNames::slopeAttr ||
- attr_name == SVGNames::interceptAttr ||
- attr_name == SVGNames::amplitudeAttr ||
- attr_name == SVGNames::exponentAttr ||
- attr_name == SVGNames::offsetAttr) {
+ if (attr_name == svg_names::kTypeAttr ||
+ attr_name == svg_names::kTableValuesAttr ||
+ attr_name == svg_names::kSlopeAttr ||
+ attr_name == svg_names::kInterceptAttr ||
+ attr_name == svg_names::kAmplitudeAttr ||
+ attr_name == svg_names::kExponentAttr ||
+ attr_name == svg_names::kOffsetAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
InvalidateFilterPrimitiveParent(*this);
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.h b/chromium/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.h
index fdfd53e651b..1d1eeb8162e 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.h
@@ -30,9 +30,7 @@
namespace blink {
-template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<ComponentTransferType>();
+DECLARE_SVG_ENUM_MAP(ComponentTransferType);
class SVGComponentTransferFunctionElement : public SVGElement {
DEFINE_WRAPPERTYPEINFO();
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_defs_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_defs_element.cc
index 598a160f63f..7e8fbcf0c9b 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_defs_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_defs_element.cc
@@ -26,7 +26,7 @@
namespace blink {
inline SVGDefsElement::SVGDefsElement(Document& document)
- : SVGGraphicsElement(SVGNames::defsTag, document) {}
+ : SVGGraphicsElement(svg_names::kDefsTag, document) {}
DEFINE_NODE_FACTORY(SVGDefsElement)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_desc_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_desc_element.cc
index fbab758166f..64364cd5506 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_desc_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_desc_element.cc
@@ -25,7 +25,7 @@
namespace blink {
inline SVGDescElement::SVGDescElement(Document& document)
- : SVGElement(SVGNames::descTag, document) {}
+ : SVGElement(svg_names::kDescTag, document) {}
DEFINE_NODE_FACTORY(SVGDescElement)
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_discard_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_discard_element.cc
index 3604e8db060..25456931c44 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_discard_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_discard_element.cc
@@ -35,8 +35,7 @@
namespace blink {
inline SVGDiscardElement::SVGDiscardElement(Document& document)
- : SVGSMILElement(SVGNames::discardTag, document) {
- DCHECK(RuntimeEnabledFeatures::SMILEnabled());
+ : SVGSMILElement(svg_names::kDiscardTag, document) {
}
DEFINE_NODE_FACTORY(SVGDiscardElement)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_discard_element.idl b/chromium/third_party/blink/renderer/core/svg/svg_discard_element.idl
index a6db8fac1e3..be85d164920 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_discard_element.idl
+++ b/chromium/third_party/blink/renderer/core/svg/svg_discard_element.idl
@@ -30,6 +30,5 @@
// https://svgwg.org/specs/animations/#InterfaceSVGDiscardElement
-[RuntimeEnabled=SMIL]
interface SVGDiscardElement : SVGElement {
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_document_extensions.cc b/chromium/third_party/blink/renderer/core/svg/svg_document_extensions.cc
index 32838316fa3..4d1b965d5da 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_document_extensions.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_document_extensions.cc
@@ -43,7 +43,6 @@ void SVGDocumentExtensions::RemoveTimeContainer(SVGSVGElement* element) {
void SVGDocumentExtensions::AddWebAnimationsPendingSVGElement(
SVGElement& element) {
- DCHECK(RuntimeEnabledFeatures::WebAnimationsSVGEnabled());
web_animations_pending_svg_elements_.insert(&element);
}
@@ -54,12 +53,10 @@ void SVGDocumentExtensions::ServiceOnAnimationFrame(Document& document) {
}
void SVGDocumentExtensions::ServiceAnimations() {
- if (RuntimeEnabledFeatures::SMILEnabled()) {
- HeapVector<Member<SVGSVGElement>> time_containers;
- CopyToVector(time_containers_, time_containers);
- for (const auto& container : time_containers)
- container->TimeContainer()->ServiceAnimations();
- }
+ HeapVector<Member<SVGSVGElement>> time_containers;
+ CopyToVector(time_containers_, time_containers);
+ for (const auto& container : time_containers)
+ container->TimeContainer()->ServiceAnimations();
SVGElementSet web_animations_pending_svg_elements;
web_animations_pending_svg_elements.swap(
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_element.cc
index aab9d982f41..c4df89477b8 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_element.cc
@@ -38,6 +38,7 @@
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/element_traversal.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
+#include "third_party/blink/renderer/core/dom/flat_tree_traversal.h"
#include "third_party/blink/renderer/core/dom/node_computed_style.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h"
#include "third_party/blink/renderer/core/frame/csp/content_security_policy.h"
@@ -61,15 +62,15 @@
namespace blink {
-using namespace HTMLNames;
-using namespace SVGNames;
+using namespace html_names;
+using namespace svg_names;
SVGElement::SVGElement(const QualifiedName& tag_name,
Document& document,
ConstructionType construction_type)
: Element(tag_name, &document, construction_type),
svg_rare_data_(nullptr),
- class_name_(SVGAnimatedString::Create(this, HTMLNames::classAttr)) {
+ class_name_(SVGAnimatedString::Create(this, html_names::kClassAttr)) {
AddToPropertyMap(class_name_);
SetHasCustomStyleCallbacks();
}
@@ -119,7 +120,7 @@ void SVGElement::WillRecalcStyle(StyleRecalcChange change) {
SVGElementRareData* SVGElement::EnsureSVGRareData() {
if (!svg_rare_data_)
- svg_rare_data_ = new SVGElementRareData();
+ svg_rare_data_ = MakeGarbageCollected<SVGElementRareData>();
return svg_rare_data_.Get();
}
@@ -376,12 +377,12 @@ Node::InsertionNotificationRequest SVGElement::InsertedInto(
Element::InsertedInto(root_parent);
UpdateRelativeLengthsInformation();
- const AtomicString& nonce_value = FastGetAttribute(nonceAttr);
+ const AtomicString& nonce_value = FastGetAttribute(kNonceAttr);
if (!nonce_value.IsEmpty()) {
setNonce(nonce_value);
if (InActiveDocument() &&
GetDocument().GetContentSecurityPolicy()->HasHeaderDeliveredPolicy()) {
- setAttribute(nonceAttr, g_empty_atom);
+ setAttribute(kNonceAttr, g_empty_atom);
}
}
return kInsertionDone;
@@ -436,64 +437,64 @@ CSSPropertyID SVGElement::CssPropertyIdForSVGAttributeName(
// This is a list of all base CSS and SVG CSS properties which are exposed
// as SVG XML attributes
const QualifiedName* const attr_names[] = {
- &alignment_baselineAttr,
- &baseline_shiftAttr,
- &buffered_renderingAttr,
- &clipAttr,
- &clip_pathAttr,
- &clip_ruleAttr,
- &SVGNames::colorAttr,
- &color_interpolationAttr,
- &color_interpolation_filtersAttr,
- &color_renderingAttr,
- &cursorAttr,
- &SVGNames::directionAttr,
- &displayAttr,
- &dominant_baselineAttr,
- &fillAttr,
- &fill_opacityAttr,
- &fill_ruleAttr,
- &filterAttr,
- &flood_colorAttr,
- &flood_opacityAttr,
- &font_familyAttr,
- &font_sizeAttr,
- &font_stretchAttr,
- &font_styleAttr,
- &font_variantAttr,
- &font_weightAttr,
- &image_renderingAttr,
- &letter_spacingAttr,
- &lighting_colorAttr,
- &marker_endAttr,
- &marker_midAttr,
- &marker_startAttr,
- &maskAttr,
- &mask_typeAttr,
- &opacityAttr,
- &overflowAttr,
- &paint_orderAttr,
- &pointer_eventsAttr,
- &shape_renderingAttr,
- &stop_colorAttr,
- &stop_opacityAttr,
- &strokeAttr,
- &stroke_dasharrayAttr,
- &stroke_dashoffsetAttr,
- &stroke_linecapAttr,
- &stroke_linejoinAttr,
- &stroke_miterlimitAttr,
- &stroke_opacityAttr,
- &stroke_widthAttr,
- &text_anchorAttr,
- &text_decorationAttr,
- &text_renderingAttr,
- &transform_originAttr,
- &unicode_bidiAttr,
- &vector_effectAttr,
- &visibilityAttr,
- &word_spacingAttr,
- &writing_modeAttr,
+ &kAlignmentBaselineAttr,
+ &kBaselineShiftAttr,
+ &kBufferedRenderingAttr,
+ &kClipAttr,
+ &kClipPathAttr,
+ &kClipRuleAttr,
+ &svg_names::kColorAttr,
+ &kColorInterpolationAttr,
+ &kColorInterpolationFiltersAttr,
+ &kColorRenderingAttr,
+ &kCursorAttr,
+ &svg_names::kDirectionAttr,
+ &kDisplayAttr,
+ &kDominantBaselineAttr,
+ &kFillAttr,
+ &kFillOpacityAttr,
+ &kFillRuleAttr,
+ &kFilterAttr,
+ &kFloodColorAttr,
+ &kFloodOpacityAttr,
+ &kFontFamilyAttr,
+ &kFontSizeAttr,
+ &kFontStretchAttr,
+ &kFontStyleAttr,
+ &kFontVariantAttr,
+ &kFontWeightAttr,
+ &kImageRenderingAttr,
+ &kLetterSpacingAttr,
+ &kLightingColorAttr,
+ &kMarkerEndAttr,
+ &kMarkerMidAttr,
+ &kMarkerStartAttr,
+ &kMaskAttr,
+ &kMaskTypeAttr,
+ &kOpacityAttr,
+ &kOverflowAttr,
+ &kPaintOrderAttr,
+ &kPointerEventsAttr,
+ &kShapeRenderingAttr,
+ &kStopColorAttr,
+ &kStopOpacityAttr,
+ &kStrokeAttr,
+ &kStrokeDasharrayAttr,
+ &kStrokeDashoffsetAttr,
+ &kStrokeLinecapAttr,
+ &kStrokeLinejoinAttr,
+ &kStrokeMiterlimitAttr,
+ &kStrokeOpacityAttr,
+ &kStrokeWidthAttr,
+ &kTextAnchorAttr,
+ &kTextDecorationAttr,
+ &kTextRenderingAttr,
+ &kTransformOriginAttr,
+ &kUnicodeBidiAttr,
+ &kVectorEffectAttr,
+ &kVisibilityAttr,
+ &kWordSpacingAttr,
+ &kWritingModeAttr,
};
for (size_t i = 0; i < arraysize(attr_names); i++) {
CSSPropertyID property_id = cssPropertyID(attr_names[i]->LocalName());
@@ -575,10 +576,10 @@ void SVGElement::InvalidateRelativeLengthClients(
if (HasRelativeLengths() && layout_object->IsSVGResourceContainer()) {
ToLayoutSVGResourceContainer(layout_object)
->InvalidateCacheAndMarkForLayout(
- LayoutInvalidationReason::kSizeChanged, layout_scope);
+ layout_invalidation_reason::kSizeChanged, layout_scope);
} else if (SelfHasRelativeLengths()) {
layout_object->SetNeedsLayoutAndFullPaintInvalidation(
- LayoutInvalidationReason::kUnknown, kMarkContainerChain,
+ layout_invalidation_reason::kUnknown, kMarkContainerChain,
layout_scope);
}
}
@@ -641,9 +642,9 @@ void SVGElement::RemoveInstanceMapping(SVGElement* instance) {
}
static HeapHashSet<WeakMember<SVGElement>>& EmptyInstances() {
- DEFINE_STATIC_LOCAL(Persistent<HeapHashSet<WeakMember<SVGElement>>>,
- empty_instances,
- (new HeapHashSet<WeakMember<SVGElement>>));
+ DEFINE_STATIC_LOCAL(
+ Persistent<HeapHashSet<WeakMember<SVGElement>>>, empty_instances,
+ (MakeGarbageCollected<HeapHashSet<WeakMember<SVGElement>>>()));
return *empty_instances;
}
@@ -725,59 +726,59 @@ AnimatedPropertyType SVGElement::AnimatedPropertyTypeForCSSAttribute(
const AnimatedPropertyType prop_type;
};
const AttrToTypeEntry attr_to_types[] = {
- {alignment_baselineAttr, kAnimatedString},
- {baseline_shiftAttr, kAnimatedString},
- {buffered_renderingAttr, kAnimatedString},
- {clip_pathAttr, kAnimatedString},
- {clip_ruleAttr, kAnimatedString},
- {SVGNames::colorAttr, kAnimatedColor},
- {color_interpolationAttr, kAnimatedString},
- {color_interpolation_filtersAttr, kAnimatedString},
- {color_renderingAttr, kAnimatedString},
- {cursorAttr, kAnimatedString},
- {displayAttr, kAnimatedString},
- {dominant_baselineAttr, kAnimatedString},
- {fillAttr, kAnimatedColor},
- {fill_opacityAttr, kAnimatedNumber},
- {fill_ruleAttr, kAnimatedString},
- {filterAttr, kAnimatedString},
- {flood_colorAttr, kAnimatedColor},
- {flood_opacityAttr, kAnimatedNumber},
- {font_familyAttr, kAnimatedString},
- {font_sizeAttr, kAnimatedLength},
- {font_stretchAttr, kAnimatedString},
- {font_styleAttr, kAnimatedString},
- {font_variantAttr, kAnimatedString},
- {font_weightAttr, kAnimatedString},
- {image_renderingAttr, kAnimatedString},
- {letter_spacingAttr, kAnimatedLength},
- {lighting_colorAttr, kAnimatedColor},
- {marker_endAttr, kAnimatedString},
- {marker_midAttr, kAnimatedString},
- {marker_startAttr, kAnimatedString},
- {maskAttr, kAnimatedString},
- {mask_typeAttr, kAnimatedString},
- {opacityAttr, kAnimatedNumber},
- {overflowAttr, kAnimatedString},
- {paint_orderAttr, kAnimatedString},
- {pointer_eventsAttr, kAnimatedString},
- {shape_renderingAttr, kAnimatedString},
- {stop_colorAttr, kAnimatedColor},
- {stop_opacityAttr, kAnimatedNumber},
- {strokeAttr, kAnimatedColor},
- {stroke_dasharrayAttr, kAnimatedLengthList},
- {stroke_dashoffsetAttr, kAnimatedLength},
- {stroke_linecapAttr, kAnimatedString},
- {stroke_linejoinAttr, kAnimatedString},
- {stroke_miterlimitAttr, kAnimatedNumber},
- {stroke_opacityAttr, kAnimatedNumber},
- {stroke_widthAttr, kAnimatedLength},
- {text_anchorAttr, kAnimatedString},
- {text_decorationAttr, kAnimatedString},
- {text_renderingAttr, kAnimatedString},
- {vector_effectAttr, kAnimatedString},
- {visibilityAttr, kAnimatedString},
- {word_spacingAttr, kAnimatedLength},
+ {kAlignmentBaselineAttr, kAnimatedString},
+ {kBaselineShiftAttr, kAnimatedString},
+ {kBufferedRenderingAttr, kAnimatedString},
+ {kClipPathAttr, kAnimatedString},
+ {kClipRuleAttr, kAnimatedString},
+ {svg_names::kColorAttr, kAnimatedColor},
+ {kColorInterpolationAttr, kAnimatedString},
+ {kColorInterpolationFiltersAttr, kAnimatedString},
+ {kColorRenderingAttr, kAnimatedString},
+ {kCursorAttr, kAnimatedString},
+ {kDisplayAttr, kAnimatedString},
+ {kDominantBaselineAttr, kAnimatedString},
+ {kFillAttr, kAnimatedColor},
+ {kFillOpacityAttr, kAnimatedNumber},
+ {kFillRuleAttr, kAnimatedString},
+ {kFilterAttr, kAnimatedString},
+ {kFloodColorAttr, kAnimatedColor},
+ {kFloodOpacityAttr, kAnimatedNumber},
+ {kFontFamilyAttr, kAnimatedString},
+ {kFontSizeAttr, kAnimatedLength},
+ {kFontStretchAttr, kAnimatedString},
+ {kFontStyleAttr, kAnimatedString},
+ {kFontVariantAttr, kAnimatedString},
+ {kFontWeightAttr, kAnimatedString},
+ {kImageRenderingAttr, kAnimatedString},
+ {kLetterSpacingAttr, kAnimatedLength},
+ {kLightingColorAttr, kAnimatedColor},
+ {kMarkerEndAttr, kAnimatedString},
+ {kMarkerMidAttr, kAnimatedString},
+ {kMarkerStartAttr, kAnimatedString},
+ {kMaskAttr, kAnimatedString},
+ {kMaskTypeAttr, kAnimatedString},
+ {kOpacityAttr, kAnimatedNumber},
+ {kOverflowAttr, kAnimatedString},
+ {kPaintOrderAttr, kAnimatedString},
+ {kPointerEventsAttr, kAnimatedString},
+ {kShapeRenderingAttr, kAnimatedString},
+ {kStopColorAttr, kAnimatedColor},
+ {kStopOpacityAttr, kAnimatedNumber},
+ {kStrokeAttr, kAnimatedColor},
+ {kStrokeDasharrayAttr, kAnimatedLengthList},
+ {kStrokeDashoffsetAttr, kAnimatedLength},
+ {kStrokeLinecapAttr, kAnimatedString},
+ {kStrokeLinejoinAttr, kAnimatedString},
+ {kStrokeMiterlimitAttr, kAnimatedNumber},
+ {kStrokeOpacityAttr, kAnimatedNumber},
+ {kStrokeWidthAttr, kAnimatedLength},
+ {kTextAnchorAttr, kAnimatedString},
+ {kTextDecorationAttr, kAnimatedString},
+ {kTextRenderingAttr, kAnimatedString},
+ {kVectorEffectAttr, kAnimatedString},
+ {kVisibilityAttr, kAnimatedString},
+ {kWordSpacingAttr, kAnimatedLength},
};
for (size_t i = 0; i < arraysize(attr_to_types); i++)
css_property_map.Set(attr_to_types[i].attr, attr_to_types[i].prop_type);
@@ -855,7 +856,7 @@ void SVGElement::AddedEventListener(
// Add event listener to all shadow tree DOM element instances
HeapHashSet<WeakMember<SVGElement>> instances;
CollectInstancesForSVGElement(this, instances);
- AddEventListenerOptionsResolved options = registered_listener.Options();
+ AddEventListenerOptionsResolved* options = registered_listener.Options();
EventListener* listener = registered_listener.Callback();
for (SVGElement* element : instances) {
bool result =
@@ -872,7 +873,7 @@ void SVGElement::RemovedEventListener(
// Remove event listener from all shadow tree DOM element instances
HeapHashSet<WeakMember<SVGElement>> instances;
CollectInstancesForSVGElement(this, instances);
- EventListenerOptions options = registered_listener.Options();
+ EventListenerOptions* options = registered_listener.Options();
const EventListener* listener = registered_listener.Callback();
for (SVGElement* shadow_tree_element : instances) {
DCHECK(shadow_tree_element);
@@ -883,13 +884,13 @@ void SVGElement::RemovedEventListener(
}
static bool HasLoadListener(Element* element) {
- if (element->HasEventListeners(EventTypeNames::load))
+ if (element->HasEventListeners(event_type_names::kLoad))
return true;
for (element = element->ParentOrShadowHostElement(); element;
element = element->ParentOrShadowHostElement()) {
EventListenerVector* entry =
- element->GetEventListeners(EventTypeNames::load);
+ element->GetEventListeners(event_type_names::kLoad);
if (!entry)
continue;
for (wtf_size_t i = 0; i < entry->size(); ++i) {
@@ -906,7 +907,7 @@ bool SVGElement::SendSVGLoadEventIfPossible() {
return false;
if ((IsStructurallyExternal() || IsSVGSVGElement(*this)) &&
HasLoadListener(this))
- DispatchEvent(*Event::Create(EventTypeNames::load));
+ DispatchEvent(*Event::Create(event_type_names::kLoad));
return true;
}
@@ -936,7 +937,7 @@ void SVGElement::SendSVGLoadEventToSelfAndAncestorChainIfPossible() {
void SVGElement::AttributeChanged(const AttributeModificationParams& params) {
Element::AttributeChanged(params);
- if (params.name == HTMLNames::idAttr) {
+ if (params.name == html_names::kIdAttr) {
RebuildAllIncomingReferences();
InvalidateInstances();
return;
@@ -945,7 +946,7 @@ void SVGElement::AttributeChanged(const AttributeModificationParams& params) {
// Changes to the style attribute are processed lazily (see
// Element::getAttribute() and related methods), so we don't want changes to
// the style attribute to result in extra work here.
- if (params.name == HTMLNames::styleAttr)
+ if (params.name == html_names::kStyleAttr)
return;
SvgAttributeBaseValChanged(params.name);
@@ -959,7 +960,7 @@ void SVGElement::SvgAttributeChanged(const QualifiedName& attr_name) {
return;
}
- if (attr_name == HTMLNames::classAttr) {
+ if (attr_name == html_names::kClassAttr) {
ClassAttributeChanged(AtomicString(class_name_->CurrentValue()->Value()));
InvalidateInstances();
return;
@@ -1035,10 +1036,8 @@ bool SVGElement::LayoutObjectIsNeeded(const ComputedStyle& style) const {
}
bool SVGElement::HasSVGParent() const {
- // Should we use the flat tree parent instead? If so, we should probably fix a
- // few other checks.
- return ParentOrShadowHostElement() &&
- ParentOrShadowHostElement()->IsSVGElement();
+ Element* parent = FlatTreeTraversal::ParentElement(*this);
+ return parent && parent->IsSVGElement();
}
MutableCSSPropertyValueSet* SVGElement::AnimatedSMILStyleProperties() const {
@@ -1071,10 +1070,10 @@ const ComputedStyle* SVGElement::EnsureComputedStyle(
}
bool SVGElement::HasFocusEventListeners() const {
- return HasEventListeners(EventTypeNames::focusin) ||
- HasEventListeners(EventTypeNames::focusout) ||
- HasEventListeners(EventTypeNames::focus) ||
- HasEventListeners(EventTypeNames::blur);
+ return HasEventListeners(event_type_names::kFocusin) ||
+ HasEventListeners(event_type_names::kFocusout) ||
+ HasEventListeners(event_type_names::kFocus) ||
+ HasEventListeners(event_type_names::kBlur);
}
void SVGElement::MarkForLayoutAndParentResourceInvalidation(
@@ -1133,100 +1132,100 @@ bool SVGElement::IsAnimatableAttribute(const QualifiedName& name) const {
// a race when dumping debug data for a layer.
DEFINE_THREAD_SAFE_STATIC_LOCAL(HashSet<QualifiedName>, animatable_attributes,
({
- SVGNames::amplitudeAttr,
- SVGNames::azimuthAttr,
- SVGNames::baseFrequencyAttr,
- SVGNames::biasAttr,
- SVGNames::clipPathUnitsAttr,
- SVGNames::cxAttr,
- SVGNames::cyAttr,
- SVGNames::diffuseConstantAttr,
- SVGNames::divisorAttr,
- SVGNames::dxAttr,
- SVGNames::dyAttr,
- SVGNames::edgeModeAttr,
- SVGNames::elevationAttr,
- SVGNames::exponentAttr,
- SVGNames::filterUnitsAttr,
- SVGNames::fxAttr,
- SVGNames::fyAttr,
- SVGNames::gradientTransformAttr,
- SVGNames::gradientUnitsAttr,
- SVGNames::heightAttr,
- SVGNames::hrefAttr,
- SVGNames::in2Attr,
- SVGNames::inAttr,
- SVGNames::interceptAttr,
- SVGNames::k1Attr,
- SVGNames::k2Attr,
- SVGNames::k3Attr,
- SVGNames::k4Attr,
- SVGNames::kernelMatrixAttr,
- SVGNames::kernelUnitLengthAttr,
- SVGNames::lengthAdjustAttr,
- SVGNames::limitingConeAngleAttr,
- SVGNames::markerHeightAttr,
- SVGNames::markerUnitsAttr,
- SVGNames::markerWidthAttr,
- SVGNames::maskContentUnitsAttr,
- SVGNames::maskUnitsAttr,
- SVGNames::methodAttr,
- SVGNames::modeAttr,
- SVGNames::numOctavesAttr,
- SVGNames::offsetAttr,
- SVGNames::operatorAttr,
- SVGNames::orderAttr,
- SVGNames::orientAttr,
- SVGNames::pathLengthAttr,
- SVGNames::patternContentUnitsAttr,
- SVGNames::patternTransformAttr,
- SVGNames::patternUnitsAttr,
- SVGNames::pointsAtXAttr,
- SVGNames::pointsAtYAttr,
- SVGNames::pointsAtZAttr,
- SVGNames::preserveAlphaAttr,
- SVGNames::preserveAspectRatioAttr,
- SVGNames::primitiveUnitsAttr,
- SVGNames::radiusAttr,
- SVGNames::rAttr,
- SVGNames::refXAttr,
- SVGNames::refYAttr,
- SVGNames::resultAttr,
- SVGNames::rotateAttr,
- SVGNames::rxAttr,
- SVGNames::ryAttr,
- SVGNames::scaleAttr,
- SVGNames::seedAttr,
- SVGNames::slopeAttr,
- SVGNames::spacingAttr,
- SVGNames::specularConstantAttr,
- SVGNames::specularExponentAttr,
- SVGNames::spreadMethodAttr,
- SVGNames::startOffsetAttr,
- SVGNames::stdDeviationAttr,
- SVGNames::stitchTilesAttr,
- SVGNames::surfaceScaleAttr,
- SVGNames::tableValuesAttr,
- SVGNames::targetAttr,
- SVGNames::targetXAttr,
- SVGNames::targetYAttr,
- SVGNames::transformAttr,
- SVGNames::typeAttr,
- SVGNames::valuesAttr,
- SVGNames::viewBoxAttr,
- SVGNames::widthAttr,
- SVGNames::x1Attr,
- SVGNames::x2Attr,
- SVGNames::xAttr,
- SVGNames::xChannelSelectorAttr,
- SVGNames::y1Attr,
- SVGNames::y2Attr,
- SVGNames::yAttr,
- SVGNames::yChannelSelectorAttr,
- SVGNames::zAttr,
+ svg_names::kAmplitudeAttr,
+ svg_names::kAzimuthAttr,
+ svg_names::kBaseFrequencyAttr,
+ svg_names::kBiasAttr,
+ svg_names::kClipPathUnitsAttr,
+ svg_names::kCxAttr,
+ svg_names::kCyAttr,
+ svg_names::kDiffuseConstantAttr,
+ svg_names::kDivisorAttr,
+ svg_names::kDxAttr,
+ svg_names::kDyAttr,
+ svg_names::kEdgeModeAttr,
+ svg_names::kElevationAttr,
+ svg_names::kExponentAttr,
+ svg_names::kFilterUnitsAttr,
+ svg_names::kFxAttr,
+ svg_names::kFyAttr,
+ svg_names::kGradientTransformAttr,
+ svg_names::kGradientUnitsAttr,
+ svg_names::kHeightAttr,
+ svg_names::kHrefAttr,
+ svg_names::kIn2Attr,
+ svg_names::kInAttr,
+ svg_names::kInterceptAttr,
+ svg_names::kK1Attr,
+ svg_names::kK2Attr,
+ svg_names::kK3Attr,
+ svg_names::kK4Attr,
+ svg_names::kKernelMatrixAttr,
+ svg_names::kKernelUnitLengthAttr,
+ svg_names::kLengthAdjustAttr,
+ svg_names::kLimitingConeAngleAttr,
+ svg_names::kMarkerHeightAttr,
+ svg_names::kMarkerUnitsAttr,
+ svg_names::kMarkerWidthAttr,
+ svg_names::kMaskContentUnitsAttr,
+ svg_names::kMaskUnitsAttr,
+ svg_names::kMethodAttr,
+ svg_names::kModeAttr,
+ svg_names::kNumOctavesAttr,
+ svg_names::kOffsetAttr,
+ svg_names::kOperatorAttr,
+ svg_names::kOrderAttr,
+ svg_names::kOrientAttr,
+ svg_names::kPathLengthAttr,
+ svg_names::kPatternContentUnitsAttr,
+ svg_names::kPatternTransformAttr,
+ svg_names::kPatternUnitsAttr,
+ svg_names::kPointsAtXAttr,
+ svg_names::kPointsAtYAttr,
+ svg_names::kPointsAtZAttr,
+ svg_names::kPreserveAlphaAttr,
+ svg_names::kPreserveAspectRatioAttr,
+ svg_names::kPrimitiveUnitsAttr,
+ svg_names::kRadiusAttr,
+ svg_names::kRAttr,
+ svg_names::kRefXAttr,
+ svg_names::kRefYAttr,
+ svg_names::kResultAttr,
+ svg_names::kRotateAttr,
+ svg_names::kRxAttr,
+ svg_names::kRyAttr,
+ svg_names::kScaleAttr,
+ svg_names::kSeedAttr,
+ svg_names::kSlopeAttr,
+ svg_names::kSpacingAttr,
+ svg_names::kSpecularConstantAttr,
+ svg_names::kSpecularExponentAttr,
+ svg_names::kSpreadMethodAttr,
+ svg_names::kStartOffsetAttr,
+ svg_names::kStdDeviationAttr,
+ svg_names::kStitchTilesAttr,
+ svg_names::kSurfaceScaleAttr,
+ svg_names::kTableValuesAttr,
+ svg_names::kTargetAttr,
+ svg_names::kTargetXAttr,
+ svg_names::kTargetYAttr,
+ svg_names::kTransformAttr,
+ svg_names::kTypeAttr,
+ svg_names::kValuesAttr,
+ svg_names::kViewBoxAttr,
+ svg_names::kWidthAttr,
+ svg_names::kX1Attr,
+ svg_names::kX2Attr,
+ svg_names::kXAttr,
+ svg_names::kXChannelSelectorAttr,
+ svg_names::kY1Attr,
+ svg_names::kY2Attr,
+ svg_names::kYAttr,
+ svg_names::kYChannelSelectorAttr,
+ svg_names::kZAttr,
}));
- if (name == classAttr)
+ if (name == kClassAttr)
return true;
return animatable_attributes.Contains(name);
@@ -1250,7 +1249,7 @@ SVGElementSet& SVGElement::GetDependencyTraversalVisitedSet() {
// This strong reference is safe, as it is guaranteed that this set will be
// emptied at the end of recursion in NotifyIncomingReferences.
DEFINE_STATIC_LOCAL(Persistent<SVGElementSet>, invalidating_dependencies,
- (new SVGElementSet));
+ (MakeGarbageCollected<SVGElementSet>()));
return *invalidating_dependencies;
}
@@ -1270,7 +1269,7 @@ void SVGElement::RebuildAllIncomingReferences() {
// Before rebuilding |sourceElement| ensure it was not removed from under
// us.
if (incoming_references.Contains(source_element))
- source_element->SvgAttributeChanged(SVGNames::hrefAttr);
+ source_element->SvgAttributeChanged(svg_names::kHrefAttr);
}
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_element_rare_data.cc b/chromium/third_party/blink/renderer/core/svg/svg_element_rare_data.cc
index c8e0334db2a..6f51b651723 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_element_rare_data.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_element_rare_data.cc
@@ -45,7 +45,7 @@ void SVGElementRareData::ClearOverriddenComputedStyle() {
SVGResourceClient& SVGElementRareData::EnsureSVGResourceClient(
SVGElement* element) {
if (!resource_client_)
- resource_client_ = new SVGElementResourceClient(element);
+ resource_client_ = MakeGarbageCollected<SVGElementResourceClient>(element);
return *resource_client_;
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_ellipse_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_ellipse_element.cc
index a20bdbccaed..8815419a5f3 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_ellipse_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_ellipse_element.cc
@@ -26,24 +26,24 @@
namespace blink {
inline SVGEllipseElement::SVGEllipseElement(Document& document)
- : SVGGeometryElement(SVGNames::ellipseTag, document),
+ : SVGGeometryElement(svg_names::kEllipseTag, document),
cx_(SVGAnimatedLength::Create(this,
- SVGNames::cxAttr,
+ svg_names::kCxAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero,
CSSPropertyCx)),
cy_(SVGAnimatedLength::Create(this,
- SVGNames::cyAttr,
+ svg_names::kCyAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero,
CSSPropertyCy)),
rx_(SVGAnimatedLength::Create(this,
- SVGNames::rxAttr,
+ svg_names::kRxAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero,
CSSPropertyRx)),
ry_(SVGAnimatedLength::Create(this,
- SVGNames::ryAttr,
+ svg_names::kRyAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero,
CSSPropertyRy)) {
@@ -111,8 +111,8 @@ void SVGEllipseElement::CollectStyleForPresentationAttribute(
}
void SVGEllipseElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::cxAttr || attr_name == SVGNames::cyAttr ||
- attr_name == SVGNames::rxAttr || attr_name == SVGNames::ryAttr) {
+ if (attr_name == svg_names::kCxAttr || attr_name == svg_names::kCyAttr ||
+ attr_name == svg_names::kRxAttr || attr_name == svg_names::kRyAttr) {
UpdateRelativeLengthsInformation();
GeometryPresentationAttributeChanged(attr_name);
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_enumeration.cc b/chromium/third_party/blink/renderer/core/svg/svg_enumeration.cc
index fc9d5518bf6..64e58a8dbc5 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_enumeration.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_enumeration.cc
@@ -31,6 +31,7 @@
#include "third_party/blink/renderer/core/svg/svg_enumeration.h"
#include "third_party/blink/renderer/core/svg/svg_animation_element.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
namespace blink {
@@ -46,10 +47,8 @@ SVGPropertyBase* SVGEnumerationBase::CloneForAnimation(
}
String SVGEnumerationBase::ValueAsString() const {
- for (const auto& entry : entries_) {
- if (value_ == entry.first)
- return entry.second;
- }
+ if (const char* enum_name = map_.NameFromValue(value_))
+ return String(enum_name);
DCHECK_LT(value_, MaxInternalEnumValue());
return g_empty_string;
@@ -61,17 +60,12 @@ void SVGEnumerationBase::SetValue(unsigned short value) {
}
SVGParsingError SVGEnumerationBase::SetValueAsString(const String& string) {
- for (const auto& entry : entries_) {
- if (string == entry.second) {
- // 0 corresponds to _UNKNOWN enumeration values, and should not be
- // settable.
- DCHECK(entry.first);
- value_ = entry.first;
- NotifyChange();
- return SVGParseStatus::kNoError;
- }
+ unsigned short value = map_.ValueFromName(string);
+ if (value) {
+ value_ = value;
+ NotifyChange();
+ return SVGParseStatus::kNoError;
}
-
NotifyChange();
return SVGParseStatus::kExpectedEnumeration;
}
@@ -104,4 +98,12 @@ float SVGEnumerationBase::CalculateDistance(SVGPropertyBase*, SVGElement*) {
return -1;
}
+unsigned short SVGEnumerationBase::MaxExposedEnumValue() const {
+ return map_.MaxExposedValue();
+}
+
+unsigned short SVGEnumerationBase::MaxInternalEnumValue() const {
+ return map_.ValueOfLast();
+}
+
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_enumeration.h b/chromium/third_party/blink/renderer/core/svg/svg_enumeration.h
index 4b4a0749312..9e70421b56e 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_enumeration.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_enumeration.h
@@ -36,11 +36,10 @@
namespace blink {
+class SVGEnumerationMap;
+
class SVGEnumerationBase : public SVGPropertyBase {
public:
- typedef std::pair<unsigned short, String> StringEntry;
- typedef Vector<StringEntry> StringEntries;
-
// SVGEnumeration does not have a tear-off type.
typedef void TearOffType;
typedef unsigned short PrimitiveType;
@@ -72,13 +71,9 @@ class SVGEnumerationBase : public SVGPropertyBase {
static AnimatedPropertyType ClassType() { return kAnimatedEnumeration; }
AnimatedPropertyType GetType() const override { return ClassType(); }
- static unsigned short ValueOfLastEnum(const StringEntries& entries) {
- return entries.back().first;
- }
-
// This is the maximum value that is exposed as an IDL constant on the
// relevant interface.
- unsigned short MaxExposedEnumValue() const { return max_exposed_; }
+ unsigned short MaxExposedEnumValue() const;
void SetInitial(unsigned value) {
SetValue(static_cast<unsigned short>(value));
@@ -86,32 +81,26 @@ class SVGEnumerationBase : public SVGPropertyBase {
static constexpr int kInitialValueBits = 3;
protected:
- SVGEnumerationBase(unsigned short value,
- const StringEntries& entries,
- unsigned short max_exposed)
- : value_(value), max_exposed_(max_exposed), entries_(entries) {}
+ SVGEnumerationBase(unsigned short value, const SVGEnumerationMap& map)
+ : value_(value), map_(map) {}
// This is the maximum value of all the internal enumeration values.
- // This assumes that |m_entries| are sorted.
- unsigned short MaxInternalEnumValue() const {
- return ValueOfLastEnum(entries_);
- }
+ // This assumes that the map is sorted on the enumeration value.
+ unsigned short MaxInternalEnumValue() const;
// Used by SVGMarkerOrientEnumeration.
virtual void NotifyChange() {}
unsigned short value_;
- const unsigned short max_exposed_;
- const StringEntries& entries_;
+ const SVGEnumerationMap& map_;
};
-typedef SVGEnumerationBase::StringEntries SVGEnumerationStringEntries;
template <typename Enum>
-const SVGEnumerationStringEntries& GetStaticStringEntries();
-template <typename Enum>
-unsigned short GetMaxExposedEnumValue() {
- return SVGEnumerationBase::ValueOfLastEnum(GetStaticStringEntries<Enum>());
-}
+const SVGEnumerationMap& GetEnumerationMap();
+
+#define DECLARE_SVG_ENUM_MAP(cpp_enum_type) \
+ template <> \
+ const SVGEnumerationMap& GetEnumerationMap<cpp_enum_type>()
template <typename Enum>
class SVGEnumeration : public SVGEnumerationBase {
@@ -136,9 +125,7 @@ class SVGEnumeration : public SVGEnumerationBase {
protected:
explicit SVGEnumeration(Enum new_value)
- : SVGEnumerationBase(new_value,
- GetStaticStringEntries<Enum>(),
- GetMaxExposedEnumValue<Enum>()) {}
+ : SVGEnumerationBase(new_value, GetEnumerationMap<Enum>()) {}
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_enumeration_map.cc b/chromium/third_party/blink/renderer/core/svg/svg_enumeration_map.cc
new file mode 100644
index 00000000000..446efe950ad
--- /dev/null
+++ b/chromium/third_party/blink/renderer/core/svg/svg_enumeration_map.cc
@@ -0,0 +1,19 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
+
+#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
+
+namespace blink {
+
+unsigned short SVGEnumerationMap::ValueFromName(const String& name) const {
+ for (const Entry& entry : *this) {
+ if (name == entry.name)
+ return entry.value;
+ }
+ return 0;
+}
+
+} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_enumeration_map.h b/chromium/third_party/blink/renderer/core/svg/svg_enumeration_map.h
new file mode 100644
index 00000000000..6cecee9db33
--- /dev/null
+++ b/chromium/third_party/blink/renderer/core/svg/svg_enumeration_map.h
@@ -0,0 +1,63 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_ENUMERATION_MAP_H_
+#define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_ENUMERATION_MAP_H_
+
+#include "third_party/blink/renderer/platform/wtf/assertions.h"
+#include "third_party/blink/renderer/platform/wtf/forward.h"
+
+namespace blink {
+
+// Helper class for SVG enumerations. Maps between name (string) and value.
+//
+// It is assumed that enumeration values are contiguous, non-zero and
+// starting at 1.
+//
+// For enumerations that have had new values added since SVG 1.1, the
+// |max_exposed_value| should be set to the last old value. From this also
+// follow that the new values should sort last - after the |max_exposed_value|.
+// (This is currently always the case in the spec too.)
+class SVGEnumerationMap {
+ public:
+ struct Entry {
+ const unsigned short value;
+ const char* const name;
+ };
+
+ template <unsigned entries_length>
+ constexpr SVGEnumerationMap(const Entry (&entries)[entries_length])
+ : SVGEnumerationMap(entries, entries[entries_length - 1].value) {}
+ template <unsigned entries_length>
+ constexpr SVGEnumerationMap(const Entry (&entries)[entries_length],
+ unsigned short max_exposed_value)
+ : entries_(entries),
+ num_entries_(entries_length),
+ max_exposed_value_(max_exposed_value) {}
+
+ const char* NameFromValue(unsigned short value) const {
+ DCHECK(value); // We should never store 0 (*_UNKNOWN) in the map.
+ DCHECK_LT(value - 1, num_entries_);
+ DCHECK_EQ(entries_[value - 1].value, value);
+ return entries_[value - 1].name;
+ }
+ unsigned short ValueFromName(const String&) const;
+
+ unsigned short ValueOfLast() const {
+ return entries_[num_entries_ - 1].value;
+ }
+ unsigned short MaxExposedValue() const { return max_exposed_value_; }
+
+ private:
+ const Entry* begin() const { return entries_; }
+ const Entry* end() const { return entries_ + num_entries_; }
+
+ const Entry* const entries_;
+ const unsigned short num_entries_;
+ const unsigned short max_exposed_value_;
+};
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_ENUMERATION_MAP_H_
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.cc
index 3f123235949..fba813e976d 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.cc
@@ -21,6 +21,7 @@
#include "third_party/blink/renderer/core/svg/svg_fe_blend_element.h"
#include "third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
#include "third_party/blink/renderer/core/svg_names.h"
#include "third_party/blink/renderer/platform/graphics/filters/fe_blend.h"
@@ -56,53 +57,36 @@ static BlendMode ToBlendMode(SVGFEBlendElement::Mode mode) {
}
template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGFEBlendElement::Mode>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(std::make_pair(SVGFEBlendElement::kModeNormal, "normal"));
- entries.push_back(
- std::make_pair(SVGFEBlendElement::kModeMultiply, "multiply"));
- entries.push_back(std::make_pair(SVGFEBlendElement::kModeScreen, "screen"));
- entries.push_back(std::make_pair(SVGFEBlendElement::kModeDarken, "darken"));
- entries.push_back(
- std::make_pair(SVGFEBlendElement::kModeLighten, "lighten"));
- entries.push_back(
- std::make_pair(SVGFEBlendElement::kModeOverlay, "overlay"));
- entries.push_back(
- std::make_pair(SVGFEBlendElement::kModeColorDodge, "color-dodge"));
- entries.push_back(
- std::make_pair(SVGFEBlendElement::kModeColorBurn, "color-burn"));
- entries.push_back(
- std::make_pair(SVGFEBlendElement::kModeHardLight, "hard-light"));
- entries.push_back(
- std::make_pair(SVGFEBlendElement::kModeSoftLight, "soft-light"));
- entries.push_back(
- std::make_pair(SVGFEBlendElement::kModeDifference, "difference"));
- entries.push_back(
- std::make_pair(SVGFEBlendElement::kModeExclusion, "exclusion"));
- entries.push_back(std::make_pair(SVGFEBlendElement::kModeHue, "hue"));
- entries.push_back(
- std::make_pair(SVGFEBlendElement::kModeSaturation, "saturation"));
- entries.push_back(std::make_pair(SVGFEBlendElement::kModeColor, "color"));
- entries.push_back(
- std::make_pair(SVGFEBlendElement::kModeLuminosity, "luminosity"));
- }
+const SVGEnumerationMap& GetEnumerationMap<SVGFEBlendElement::Mode>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {SVGFEBlendElement::kModeNormal, "normal"},
+ {SVGFEBlendElement::kModeMultiply, "multiply"},
+ {SVGFEBlendElement::kModeScreen, "screen"},
+ {SVGFEBlendElement::kModeDarken, "darken"},
+ {SVGFEBlendElement::kModeLighten, "lighten"},
+ {SVGFEBlendElement::kModeOverlay, "overlay"},
+ {SVGFEBlendElement::kModeColorDodge, "color-dodge"},
+ {SVGFEBlendElement::kModeColorBurn, "color-burn"},
+ {SVGFEBlendElement::kModeHardLight, "hard-light"},
+ {SVGFEBlendElement::kModeSoftLight, "soft-light"},
+ {SVGFEBlendElement::kModeDifference, "difference"},
+ {SVGFEBlendElement::kModeExclusion, "exclusion"},
+ {SVGFEBlendElement::kModeHue, "hue"},
+ {SVGFEBlendElement::kModeSaturation, "saturation"},
+ {SVGFEBlendElement::kModeColor, "color"},
+ {SVGFEBlendElement::kModeLuminosity, "luminosity"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
-template <>
-unsigned short GetMaxExposedEnumValue<SVGFEBlendElement::Mode>() {
- return SVGFEBlendElement::kModeLighten;
-}
-
inline SVGFEBlendElement::SVGFEBlendElement(Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feBlendTag, document),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)),
- in2_(SVGAnimatedString::Create(this, SVGNames::in2Attr)),
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFEBlendTag, document),
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)),
+ in2_(SVGAnimatedString::Create(this, svg_names::kIn2Attr)),
mode_(SVGAnimatedEnumeration<Mode>::Create(
this,
- SVGNames::modeAttr,
+ svg_names::kModeAttr,
SVGFEBlendElement::kModeNormal)) {
AddToPropertyMap(in1_);
AddToPropertyMap(in2_);
@@ -122,7 +106,7 @@ bool SVGFEBlendElement::SetFilterEffectAttribute(
FilterEffect* effect,
const QualifiedName& attr_name) {
FEBlend* blend = static_cast<FEBlend*>(effect);
- if (attr_name == SVGNames::modeAttr)
+ if (attr_name == svg_names::kModeAttr)
return blend->SetBlendMode(ToBlendMode(mode_->CurrentValue()->EnumValue()));
return SVGFilterPrimitiveStandardAttributes::SetFilterEffectAttribute(
@@ -130,13 +114,13 @@ bool SVGFEBlendElement::SetFilterEffectAttribute(
}
void SVGFEBlendElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::modeAttr) {
+ if (attr_name == svg_names::kModeAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
PrimitiveAttributeChanged(attr_name);
return;
}
- if (attr_name == SVGNames::inAttr || attr_name == SVGNames::in2Attr) {
+ if (attr_name == svg_names::kInAttr || attr_name == svg_names::kIn2Attr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.h
index 0ca38c0be5e..cc6cf833568 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.h
@@ -38,20 +38,17 @@ class SVGFEBlendElement final : public SVGFilterPrimitiveStandardAttributes {
kModeScreen = 3,
kModeDarken = 4,
kModeLighten = 5,
-
- // The following modes do not map to IDL constants on
- // SVGFEBlendElement.
- kModeOverlay,
- kModeColorDodge,
- kModeColorBurn,
- kModeHardLight,
- kModeSoftLight,
- kModeDifference,
- kModeExclusion,
- kModeHue,
- kModeSaturation,
- kModeColor,
- kModeLuminosity,
+ kModeOverlay = 6,
+ kModeColorDodge = 7,
+ kModeColorBurn = 8,
+ kModeHardLight = 9,
+ kModeSoftLight = 10,
+ kModeDifference = 11,
+ kModeExclusion = 12,
+ kModeHue = 13,
+ kModeSaturation = 14,
+ kModeColor = 15,
+ kModeLuminosity = 16,
};
DECLARE_NODE_FACTORY(SVGFEBlendElement);
@@ -74,11 +71,7 @@ class SVGFEBlendElement final : public SVGFilterPrimitiveStandardAttributes {
Member<SVGAnimatedEnumeration<Mode>> mode_;
};
-template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGFEBlendElement::Mode>();
-template <>
-unsigned short GetMaxExposedEnumValue<SVGFEBlendElement::Mode>();
+DECLARE_SVG_ENUM_MAP(SVGFEBlendElement::Mode);
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.idl b/chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.idl
index 88bc48c9c99..5f7487b76a7 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.idl
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.idl
@@ -36,6 +36,17 @@
[MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_SCREEN = 3;
[MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_DARKEN = 4;
[MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_LIGHTEN = 5;
+ [MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_OVERLAY = 6;
+ [MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_COLOR_DODGE = 7;
+ [MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_COLOR_BURN = 8;
+ [MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_HARD_LIGHT = 9;
+ [MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_SOFT_LIGHT = 10;
+ [MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_DIFFERENCE = 11;
+ [MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_EXCLUSION = 12;
+ [MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_HUE = 13;
+ [MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_SATURATION = 14;
+ [MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_COLOR = 15;
+ [MeasureAs=SVG1DOMFilter] const unsigned short SVG_FEBLEND_MODE_LUMINOSITY = 16;
[MeasureAs=SVG1DOMFilter] readonly attribute SVGAnimatedString in1;
[MeasureAs=SVG1DOMFilter] readonly attribute SVGAnimatedString in2;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.cc
index 1d4ec5d95b4..46cb2d95219 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.cc
@@ -21,32 +21,31 @@
#include "third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.h"
#include "third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
#include "third_party/blink/renderer/core/svg_names.h"
namespace blink {
template <>
-const SVGEnumerationStringEntries& GetStaticStringEntries<ColorMatrixType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(std::make_pair(FECOLORMATRIX_TYPE_MATRIX, "matrix"));
- entries.push_back(std::make_pair(FECOLORMATRIX_TYPE_SATURATE, "saturate"));
- entries.push_back(
- std::make_pair(FECOLORMATRIX_TYPE_HUEROTATE, "hueRotate"));
- entries.push_back(std::make_pair(FECOLORMATRIX_TYPE_LUMINANCETOALPHA,
- "luminanceToAlpha"));
- }
+const SVGEnumerationMap& GetEnumerationMap<ColorMatrixType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {FECOLORMATRIX_TYPE_MATRIX, "matrix"},
+ {FECOLORMATRIX_TYPE_SATURATE, "saturate"},
+ {FECOLORMATRIX_TYPE_HUEROTATE, "hueRotate"},
+ {FECOLORMATRIX_TYPE_LUMINANCETOALPHA, "luminanceToAlpha"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
inline SVGFEColorMatrixElement::SVGFEColorMatrixElement(Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feColorMatrixTag,
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFEColorMatrixTag,
document),
- values_(SVGAnimatedNumberList::Create(this, SVGNames::valuesAttr)),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)),
+ values_(SVGAnimatedNumberList::Create(this, svg_names::kValuesAttr)),
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)),
type_(SVGAnimatedEnumeration<ColorMatrixType>::Create(
this,
- SVGNames::typeAttr,
+ svg_names::kTypeAttr,
FECOLORMATRIX_TYPE_MATRIX)) {
AddToPropertyMap(values_);
AddToPropertyMap(in1_);
@@ -66,9 +65,9 @@ bool SVGFEColorMatrixElement::SetFilterEffectAttribute(
FilterEffect* effect,
const QualifiedName& attr_name) {
FEColorMatrix* color_matrix = static_cast<FEColorMatrix*>(effect);
- if (attr_name == SVGNames::typeAttr)
+ if (attr_name == svg_names::kTypeAttr)
return color_matrix->SetType(type_->CurrentValue()->EnumValue());
- if (attr_name == SVGNames::valuesAttr)
+ if (attr_name == svg_names::kValuesAttr)
return color_matrix->SetValues(values_->CurrentValue()->ToFloatVector());
return SVGFilterPrimitiveStandardAttributes::SetFilterEffectAttribute(
@@ -77,13 +76,14 @@ bool SVGFEColorMatrixElement::SetFilterEffectAttribute(
void SVGFEColorMatrixElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::typeAttr || attr_name == SVGNames::valuesAttr) {
+ if (attr_name == svg_names::kTypeAttr ||
+ attr_name == svg_names::kValuesAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
PrimitiveAttributeChanged(attr_name);
return;
}
- if (attr_name == SVGNames::inAttr) {
+ if (attr_name == svg_names::kInAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.h
index 6263a90f7e8..6342432ac8b 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.h
@@ -29,8 +29,7 @@
namespace blink {
-template <>
-const SVGEnumerationStringEntries& GetStaticStringEntries<ColorMatrixType>();
+DECLARE_SVG_ENUM_MAP(ColorMatrixType);
class SVGFEColorMatrixElement final
: public SVGFilterPrimitiveStandardAttributes {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.cc
index 756642087e9..6255f1e907e 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.cc
@@ -33,9 +33,9 @@ namespace blink {
inline SVGFEComponentTransferElement::SVGFEComponentTransferElement(
Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feComponentTransferTag,
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFEComponentTransferTag,
document),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)) {
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)) {
AddToPropertyMap(in1_);
}
@@ -48,7 +48,7 @@ DEFINE_NODE_FACTORY(SVGFEComponentTransferElement)
void SVGFEComponentTransferElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::inAttr) {
+ if (attr_name == svg_names::kInAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_composite_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_composite_element.cc
index a86fdd0e2d7..68c63e6478d 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_composite_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_composite_element.cc
@@ -21,43 +21,39 @@
#include "third_party/blink/renderer/core/svg/svg_fe_composite_element.h"
#include "third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
#include "third_party/blink/renderer/core/svg_names.h"
namespace blink {
template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<CompositeOperationType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(std::make_pair(FECOMPOSITE_OPERATOR_OVER, "over"));
- entries.push_back(std::make_pair(FECOMPOSITE_OPERATOR_IN, "in"));
- entries.push_back(std::make_pair(FECOMPOSITE_OPERATOR_OUT, "out"));
- entries.push_back(std::make_pair(FECOMPOSITE_OPERATOR_ATOP, "atop"));
- entries.push_back(std::make_pair(FECOMPOSITE_OPERATOR_XOR, "xor"));
- entries.push_back(
- std::make_pair(FECOMPOSITE_OPERATOR_ARITHMETIC, "arithmetic"));
- entries.push_back(std::make_pair(FECOMPOSITE_OPERATOR_LIGHTER, "lighter"));
- }
+const SVGEnumerationMap& GetEnumerationMap<CompositeOperationType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {FECOMPOSITE_OPERATOR_OVER, "over"},
+ {FECOMPOSITE_OPERATOR_IN, "in"},
+ {FECOMPOSITE_OPERATOR_OUT, "out"},
+ {FECOMPOSITE_OPERATOR_ATOP, "atop"},
+ {FECOMPOSITE_OPERATOR_XOR, "xor"},
+ {FECOMPOSITE_OPERATOR_ARITHMETIC, "arithmetic"},
+ {FECOMPOSITE_OPERATOR_LIGHTER, "lighter"},
+ };
+ static const SVGEnumerationMap entries(enum_items,
+ FECOMPOSITE_OPERATOR_ARITHMETIC);
return entries;
}
-template <>
-unsigned short GetMaxExposedEnumValue<CompositeOperationType>() {
- return FECOMPOSITE_OPERATOR_ARITHMETIC;
-}
-
inline SVGFECompositeElement::SVGFECompositeElement(Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feCompositeTag, document),
- k1_(SVGAnimatedNumber::Create(this, SVGNames::k1Attr, 0.0f)),
- k2_(SVGAnimatedNumber::Create(this, SVGNames::k2Attr, 0.0f)),
- k3_(SVGAnimatedNumber::Create(this, SVGNames::k3Attr, 0.0f)),
- k4_(SVGAnimatedNumber::Create(this, SVGNames::k4Attr, 0.0f)),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)),
- in2_(SVGAnimatedString::Create(this, SVGNames::in2Attr)),
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFECompositeTag,
+ document),
+ k1_(SVGAnimatedNumber::Create(this, svg_names::kK1Attr, 0.0f)),
+ k2_(SVGAnimatedNumber::Create(this, svg_names::kK2Attr, 0.0f)),
+ k3_(SVGAnimatedNumber::Create(this, svg_names::kK3Attr, 0.0f)),
+ k4_(SVGAnimatedNumber::Create(this, svg_names::kK4Attr, 0.0f)),
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)),
+ in2_(SVGAnimatedString::Create(this, svg_names::kIn2Attr)),
svg_operator_(SVGAnimatedEnumeration<CompositeOperationType>::Create(
this,
- SVGNames::operatorAttr,
+ svg_names::kOperatorAttr,
FECOMPOSITE_OPERATOR_OVER)) {
AddToPropertyMap(k1_);
AddToPropertyMap(k2_);
@@ -85,15 +81,15 @@ bool SVGFECompositeElement::SetFilterEffectAttribute(
FilterEffect* effect,
const QualifiedName& attr_name) {
FEComposite* composite = static_cast<FEComposite*>(effect);
- if (attr_name == SVGNames::operatorAttr)
+ if (attr_name == svg_names::kOperatorAttr)
return composite->SetOperation(svg_operator_->CurrentValue()->EnumValue());
- if (attr_name == SVGNames::k1Attr)
+ if (attr_name == svg_names::kK1Attr)
return composite->SetK1(k1_->CurrentValue()->Value());
- if (attr_name == SVGNames::k2Attr)
+ if (attr_name == svg_names::kK2Attr)
return composite->SetK2(k2_->CurrentValue()->Value());
- if (attr_name == SVGNames::k3Attr)
+ if (attr_name == svg_names::kK3Attr)
return composite->SetK3(k3_->CurrentValue()->Value());
- if (attr_name == SVGNames::k4Attr)
+ if (attr_name == svg_names::kK4Attr)
return composite->SetK4(k4_->CurrentValue()->Value());
return SVGFilterPrimitiveStandardAttributes::SetFilterEffectAttribute(
@@ -102,15 +98,15 @@ bool SVGFECompositeElement::SetFilterEffectAttribute(
void SVGFECompositeElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::operatorAttr || attr_name == SVGNames::k1Attr ||
- attr_name == SVGNames::k2Attr || attr_name == SVGNames::k3Attr ||
- attr_name == SVGNames::k4Attr) {
+ if (attr_name == svg_names::kOperatorAttr ||
+ attr_name == svg_names::kK1Attr || attr_name == svg_names::kK2Attr ||
+ attr_name == svg_names::kK3Attr || attr_name == svg_names::kK4Attr) {
SVGElement::InvalidationGuard invalidation_guard(this);
PrimitiveAttributeChanged(attr_name);
return;
}
- if (attr_name == SVGNames::inAttr || attr_name == SVGNames::in2Attr) {
+ if (attr_name == svg_names::kInAttr || attr_name == svg_names::kIn2Attr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_composite_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_composite_element.h
index 319cf54c665..e3f74eed510 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_composite_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_composite_element.h
@@ -29,9 +29,7 @@
namespace blink {
-template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<CompositeOperationType>();
+DECLARE_SVG_ENUM_MAP(CompositeOperationType);
class SVGFECompositeElement final
: public SVGFilterPrimitiveStandardAttributes {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.cc
index 78cda0dfc92..e699329735a 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.cc
@@ -21,6 +21,7 @@
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
#include "third_party/blink/renderer/core/svg_names.h"
#include "third_party/blink/renderer/platform/geometry/int_point.h"
#include "third_party/blink/renderer/platform/geometry/int_size.h"
@@ -28,30 +29,30 @@
namespace blink {
template <>
-const SVGEnumerationStringEntries& GetStaticStringEntries<EdgeModeType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(std::make_pair(EDGEMODE_DUPLICATE, "duplicate"));
- entries.push_back(std::make_pair(EDGEMODE_WRAP, "wrap"));
- entries.push_back(std::make_pair(EDGEMODE_NONE, "none"));
- }
+const SVGEnumerationMap& GetEnumerationMap<EdgeModeType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {EDGEMODE_DUPLICATE, "duplicate"},
+ {EDGEMODE_WRAP, "wrap"},
+ {EDGEMODE_NONE, "none"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
class SVGAnimatedOrder : public SVGAnimatedIntegerOptionalInteger {
public:
static SVGAnimatedOrder* Create(SVGElement* context_element) {
- return new SVGAnimatedOrder(context_element);
+ return MakeGarbageCollected<SVGAnimatedOrder>(context_element);
}
- SVGParsingError AttributeChanged(const String&) override;
-
- protected:
SVGAnimatedOrder(SVGElement* context_element)
: SVGAnimatedIntegerOptionalInteger(context_element,
- SVGNames::orderAttr,
+ svg_names::kOrderAttr,
3) {}
+ SVGParsingError AttributeChanged(const String&) override;
+
+ protected:
static SVGParsingError CheckValue(SVGParsingError parse_status, int value) {
if (parse_status != SVGParseStatus::kNoError)
return parse_status;
@@ -75,26 +76,26 @@ SVGParsingError SVGAnimatedOrder::AttributeChanged(const String& value) {
inline SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement(
Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feConvolveMatrixTag,
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFEConvolveMatrixTag,
document),
- bias_(SVGAnimatedNumber::Create(this, SVGNames::biasAttr, 0.0f)),
- divisor_(SVGAnimatedNumber::Create(this, SVGNames::divisorAttr, 1)),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)),
+ bias_(SVGAnimatedNumber::Create(this, svg_names::kBiasAttr, 0.0f)),
+ divisor_(SVGAnimatedNumber::Create(this, svg_names::kDivisorAttr, 1)),
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)),
edge_mode_(
SVGAnimatedEnumeration<EdgeModeType>::Create(this,
- SVGNames::edgeModeAttr,
+ svg_names::kEdgeModeAttr,
EDGEMODE_DUPLICATE)),
kernel_matrix_(
- SVGAnimatedNumberList::Create(this, SVGNames::kernelMatrixAttr)),
+ SVGAnimatedNumberList::Create(this, svg_names::kKernelMatrixAttr)),
kernel_unit_length_(SVGAnimatedNumberOptionalNumber::Create(
this,
- SVGNames::kernelUnitLengthAttr,
+ svg_names::kKernelUnitLengthAttr,
0.0f)),
order_(SVGAnimatedOrder::Create(this)),
preserve_alpha_(
- SVGAnimatedBoolean::Create(this, SVGNames::preserveAlphaAttr)),
- target_x_(SVGAnimatedInteger::Create(this, SVGNames::targetXAttr, 0)),
- target_y_(SVGAnimatedInteger::Create(this, SVGNames::targetYAttr, 0)) {
+ SVGAnimatedBoolean::Create(this, svg_names::kPreserveAlphaAttr)),
+ target_x_(SVGAnimatedInteger::Create(this, svg_names::kTargetXAttr, 0)),
+ target_y_(SVGAnimatedInteger::Create(this, svg_names::kTargetYAttr, 0)) {
AddToPropertyMap(preserve_alpha_);
AddToPropertyMap(divisor_);
AddToPropertyMap(bias_);
@@ -158,16 +159,17 @@ bool SVGFEConvolveMatrixElement::SetFilterEffectAttribute(
FilterEffect* effect,
const QualifiedName& attr_name) {
FEConvolveMatrix* convolve_matrix = static_cast<FEConvolveMatrix*>(effect);
- if (attr_name == SVGNames::edgeModeAttr)
+ if (attr_name == svg_names::kEdgeModeAttr)
return convolve_matrix->SetEdgeMode(
edge_mode_->CurrentValue()->EnumValue());
- if (attr_name == SVGNames::divisorAttr)
+ if (attr_name == svg_names::kDivisorAttr)
return convolve_matrix->SetDivisor(ComputeDivisor());
- if (attr_name == SVGNames::biasAttr)
+ if (attr_name == svg_names::kBiasAttr)
return convolve_matrix->SetBias(bias_->CurrentValue()->Value());
- if (attr_name == SVGNames::targetXAttr || attr_name == SVGNames::targetYAttr)
+ if (attr_name == svg_names::kTargetXAttr ||
+ attr_name == svg_names::kTargetYAttr)
return convolve_matrix->SetTargetOffset(TargetPoint());
- if (attr_name == SVGNames::preserveAlphaAttr)
+ if (attr_name == svg_names::kPreserveAlphaAttr)
return convolve_matrix->SetPreserveAlpha(
preserve_alpha_->CurrentValue()->Value());
return SVGFilterPrimitiveStandardAttributes::SetFilterEffectAttribute(
@@ -176,18 +178,19 @@ bool SVGFEConvolveMatrixElement::SetFilterEffectAttribute(
void SVGFEConvolveMatrixElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::edgeModeAttr ||
- attr_name == SVGNames::divisorAttr || attr_name == SVGNames::biasAttr ||
- attr_name == SVGNames::targetXAttr ||
- attr_name == SVGNames::targetYAttr ||
- attr_name == SVGNames::preserveAlphaAttr) {
+ if (attr_name == svg_names::kEdgeModeAttr ||
+ attr_name == svg_names::kDivisorAttr ||
+ attr_name == svg_names::kBiasAttr ||
+ attr_name == svg_names::kTargetXAttr ||
+ attr_name == svg_names::kTargetYAttr ||
+ attr_name == svg_names::kPreserveAlphaAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
PrimitiveAttributeChanged(attr_name);
return;
}
- if (attr_name == SVGNames::inAttr || attr_name == SVGNames::orderAttr ||
- attr_name == SVGNames::kernelMatrixAttr) {
+ if (attr_name == svg_names::kInAttr || attr_name == svg_names::kOrderAttr ||
+ attr_name == svg_names::kKernelMatrixAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.h
index d87032740f3..2b633845a25 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.h
@@ -33,8 +33,7 @@
namespace blink {
-template <>
-const SVGEnumerationStringEntries& GetStaticStringEntries<EdgeModeType>();
+DECLARE_SVG_ENUM_MAP(EdgeModeType);
class SVGFEConvolveMatrixElement final
: public SVGFilterPrimitiveStandardAttributes {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.cc
index 737f65248af..ab43b2a009e 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.cc
@@ -29,17 +29,17 @@ namespace blink {
inline SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement(
Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feDiffuseLightingTag,
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFEDiffuseLightingTag,
document),
diffuse_constant_(
- SVGAnimatedNumber::Create(this, SVGNames::diffuseConstantAttr, 1)),
+ SVGAnimatedNumber::Create(this, svg_names::kDiffuseConstantAttr, 1)),
surface_scale_(
- SVGAnimatedNumber::Create(this, SVGNames::surfaceScaleAttr, 1)),
+ SVGAnimatedNumber::Create(this, svg_names::kSurfaceScaleAttr, 1)),
kernel_unit_length_(SVGAnimatedNumberOptionalNumber::Create(
this,
- SVGNames::kernelUnitLengthAttr,
+ svg_names::kKernelUnitLengthAttr,
0.0f)),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)) {
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)) {
AddToPropertyMap(diffuse_constant_);
AddToPropertyMap(surface_scale_);
AddToPropertyMap(kernel_unit_length_);
@@ -61,15 +61,15 @@ bool SVGFEDiffuseLightingElement::SetFilterEffectAttribute(
const QualifiedName& attr_name) {
FEDiffuseLighting* diffuse_lighting = static_cast<FEDiffuseLighting*>(effect);
- if (attr_name == SVGNames::lighting_colorAttr) {
+ if (attr_name == svg_names::kLightingColorAttr) {
const ComputedStyle& style = ComputedStyleRef();
return diffuse_lighting->SetLightingColor(
style.VisitedDependentColor(GetCSSPropertyLightingColor()));
}
- if (attr_name == SVGNames::surfaceScaleAttr)
+ if (attr_name == svg_names::kSurfaceScaleAttr)
return diffuse_lighting->SetSurfaceScale(
surface_scale_->CurrentValue()->Value());
- if (attr_name == SVGNames::diffuseConstantAttr)
+ if (attr_name == svg_names::kDiffuseConstantAttr)
return diffuse_lighting->SetDiffuseConstant(
diffuse_constant_->CurrentValue()->Value());
@@ -81,25 +81,25 @@ bool SVGFEDiffuseLightingElement::SetFilterEffectAttribute(
DCHECK(light_element);
DCHECK(effect->GetFilter());
- if (attr_name == SVGNames::azimuthAttr)
+ if (attr_name == svg_names::kAzimuthAttr)
return light_source->SetAzimuth(
light_element->azimuth()->CurrentValue()->Value());
- if (attr_name == SVGNames::elevationAttr)
+ if (attr_name == svg_names::kElevationAttr)
return light_source->SetElevation(
light_element->elevation()->CurrentValue()->Value());
- if (attr_name == SVGNames::xAttr || attr_name == SVGNames::yAttr ||
- attr_name == SVGNames::zAttr)
+ if (attr_name == svg_names::kXAttr || attr_name == svg_names::kYAttr ||
+ attr_name == svg_names::kZAttr)
return light_source->SetPosition(
effect->GetFilter()->Resolve3dPoint(light_element->GetPosition()));
- if (attr_name == SVGNames::pointsAtXAttr ||
- attr_name == SVGNames::pointsAtYAttr ||
- attr_name == SVGNames::pointsAtZAttr)
+ if (attr_name == svg_names::kPointsAtXAttr ||
+ attr_name == svg_names::kPointsAtYAttr ||
+ attr_name == svg_names::kPointsAtZAttr)
return light_source->SetPointsAt(
effect->GetFilter()->Resolve3dPoint(light_element->PointsAt()));
- if (attr_name == SVGNames::specularExponentAttr)
+ if (attr_name == svg_names::kSpecularExponentAttr)
return light_source->SetSpecularExponent(
light_element->specularExponent()->CurrentValue()->Value());
- if (attr_name == SVGNames::limitingConeAngleAttr)
+ if (attr_name == svg_names::kLimitingConeAngleAttr)
return light_source->SetLimitingConeAngle(
light_element->limitingConeAngle()->CurrentValue()->Value());
@@ -109,15 +109,15 @@ bool SVGFEDiffuseLightingElement::SetFilterEffectAttribute(
void SVGFEDiffuseLightingElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::surfaceScaleAttr ||
- attr_name == SVGNames::diffuseConstantAttr ||
- attr_name == SVGNames::lighting_colorAttr) {
+ if (attr_name == svg_names::kSurfaceScaleAttr ||
+ attr_name == svg_names::kDiffuseConstantAttr ||
+ attr_name == svg_names::kLightingColorAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
PrimitiveAttributeChanged(attr_name);
return;
}
- if (attr_name == SVGNames::inAttr) {
+ if (attr_name == svg_names::kInAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.cc
index 653f37e208a..9ae2dddc0b5 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.cc
@@ -20,37 +20,34 @@
#include "third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.h"
#include "third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
#include "third_party/blink/renderer/core/svg_names.h"
namespace blink {
template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<ChannelSelectorType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(std::make_pair(CHANNEL_R, "R"));
- entries.push_back(std::make_pair(CHANNEL_G, "G"));
- entries.push_back(std::make_pair(CHANNEL_B, "B"));
- entries.push_back(std::make_pair(CHANNEL_A, "A"));
- }
+const SVGEnumerationMap& GetEnumerationMap<ChannelSelectorType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {CHANNEL_R, "R"}, {CHANNEL_G, "G"}, {CHANNEL_B, "B"}, {CHANNEL_A, "A"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
inline SVGFEDisplacementMapElement::SVGFEDisplacementMapElement(
Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feDisplacementMapTag,
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFEDisplacementMapTag,
document),
- scale_(SVGAnimatedNumber::Create(this, SVGNames::scaleAttr, 0.0f)),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)),
- in2_(SVGAnimatedString::Create(this, SVGNames::in2Attr)),
+ scale_(SVGAnimatedNumber::Create(this, svg_names::kScaleAttr, 0.0f)),
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)),
+ in2_(SVGAnimatedString::Create(this, svg_names::kIn2Attr)),
x_channel_selector_(SVGAnimatedEnumeration<ChannelSelectorType>::Create(
this,
- SVGNames::xChannelSelectorAttr,
+ svg_names::kXChannelSelectorAttr,
CHANNEL_A)),
y_channel_selector_(SVGAnimatedEnumeration<ChannelSelectorType>::Create(
this,
- SVGNames::yChannelSelectorAttr,
+ svg_names::kYChannelSelectorAttr,
CHANNEL_A)) {
AddToPropertyMap(scale_);
AddToPropertyMap(in1_);
@@ -74,13 +71,13 @@ bool SVGFEDisplacementMapElement::SetFilterEffectAttribute(
FilterEffect* effect,
const QualifiedName& attr_name) {
FEDisplacementMap* displacement_map = static_cast<FEDisplacementMap*>(effect);
- if (attr_name == SVGNames::xChannelSelectorAttr)
+ if (attr_name == svg_names::kXChannelSelectorAttr)
return displacement_map->SetXChannelSelector(
x_channel_selector_->CurrentValue()->EnumValue());
- if (attr_name == SVGNames::yChannelSelectorAttr)
+ if (attr_name == svg_names::kYChannelSelectorAttr)
return displacement_map->SetYChannelSelector(
y_channel_selector_->CurrentValue()->EnumValue());
- if (attr_name == SVGNames::scaleAttr)
+ if (attr_name == svg_names::kScaleAttr)
return displacement_map->SetScale(scale_->CurrentValue()->Value());
return SVGFilterPrimitiveStandardAttributes::SetFilterEffectAttribute(
@@ -89,15 +86,15 @@ bool SVGFEDisplacementMapElement::SetFilterEffectAttribute(
void SVGFEDisplacementMapElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::xChannelSelectorAttr ||
- attr_name == SVGNames::yChannelSelectorAttr ||
- attr_name == SVGNames::scaleAttr) {
+ if (attr_name == svg_names::kXChannelSelectorAttr ||
+ attr_name == svg_names::kYChannelSelectorAttr ||
+ attr_name == svg_names::kScaleAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
PrimitiveAttributeChanged(attr_name);
return;
}
- if (attr_name == SVGNames::inAttr || attr_name == SVGNames::in2Attr) {
+ if (attr_name == svg_names::kInAttr || attr_name == svg_names::kIn2Attr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.h
index a2ea61a18fc..29175d2d618 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.h
@@ -28,9 +28,7 @@
namespace blink {
-template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<ChannelSelectorType>();
+DECLARE_SVG_ENUM_MAP(ChannelSelectorType);
class SVGFEDisplacementMapElement final
: public SVGFilterPrimitiveStandardAttributes {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_distant_light_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_distant_light_element.cc
index 99645e252d2..f6b135f4747 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_distant_light_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_distant_light_element.cc
@@ -25,7 +25,7 @@
namespace blink {
inline SVGFEDistantLightElement::SVGFEDistantLightElement(Document& document)
- : SVGFELightElement(SVGNames::feDistantLightTag, document) {}
+ : SVGFELightElement(svg_names::kFEDistantLightTag, document) {}
DEFINE_NODE_FACTORY(SVGFEDistantLightElement)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.cc
index 64656ded04e..561173cc518 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.cc
@@ -29,14 +29,15 @@
namespace blink {
inline SVGFEDropShadowElement::SVGFEDropShadowElement(Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feDropShadowTag, document),
- dx_(SVGAnimatedNumber::Create(this, SVGNames::dxAttr, 2)),
- dy_(SVGAnimatedNumber::Create(this, SVGNames::dyAttr, 2)),
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFEDropShadowTag,
+ document),
+ dx_(SVGAnimatedNumber::Create(this, svg_names::kDxAttr, 2)),
+ dy_(SVGAnimatedNumber::Create(this, svg_names::kDyAttr, 2)),
std_deviation_(
SVGAnimatedNumberOptionalNumber::Create(this,
- SVGNames::stdDeviationAttr,
+ svg_names::kStdDeviationAttr,
2)),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)) {
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)) {
AddToPropertyMap(dx_);
AddToPropertyMap(dy_);
AddToPropertyMap(std_deviation_);
@@ -65,12 +66,12 @@ bool SVGFEDropShadowElement::SetFilterEffectAttribute(
const ComputedStyle& style = ComputedStyleRef();
FEDropShadow* drop_shadow = static_cast<FEDropShadow*>(effect);
- if (attr_name == SVGNames::flood_colorAttr) {
+ if (attr_name == svg_names::kFloodColorAttr) {
drop_shadow->SetShadowColor(
style.VisitedDependentColor(GetCSSPropertyFloodColor()));
return true;
}
- if (attr_name == SVGNames::flood_opacityAttr) {
+ if (attr_name == svg_names::kFloodOpacityAttr) {
drop_shadow->SetShadowOpacity(style.SvgStyle().FloodOpacity());
return true;
}
@@ -80,9 +81,9 @@ bool SVGFEDropShadowElement::SetFilterEffectAttribute(
void SVGFEDropShadowElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::inAttr ||
- attr_name == SVGNames::stdDeviationAttr ||
- attr_name == SVGNames::dxAttr || attr_name == SVGNames::dyAttr) {
+ if (attr_name == svg_names::kInAttr ||
+ attr_name == svg_names::kStdDeviationAttr ||
+ attr_name == svg_names::kDxAttr || attr_name == svg_names::kDyAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_flood_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_flood_element.cc
index 318b3f46be5..3b436135fb6 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_flood_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_flood_element.cc
@@ -29,7 +29,7 @@
namespace blink {
inline SVGFEFloodElement::SVGFEFloodElement(Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feFloodTag, document) {}
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFEFloodTag, document) {}
DEFINE_NODE_FACTORY(SVGFEFloodElement)
@@ -39,11 +39,11 @@ bool SVGFEFloodElement::SetFilterEffectAttribute(
const ComputedStyle& style = ComputedStyleRef();
FEFlood* flood = static_cast<FEFlood*>(effect);
- if (attr_name == SVGNames::flood_colorAttr) {
+ if (attr_name == svg_names::kFloodColorAttr) {
return flood->SetFloodColor(
style.VisitedDependentColor(GetCSSPropertyFloodColor()));
}
- if (attr_name == SVGNames::flood_opacityAttr)
+ if (attr_name == svg_names::kFloodOpacityAttr)
return flood->SetFloodOpacity(style.SvgStyle().FloodOpacity());
return SVGFilterPrimitiveStandardAttributes::SetFilterEffectAttribute(
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_func_a_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_func_a_element.cc
index b725ce5c976..c7b40eebb7e 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_func_a_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_func_a_element.cc
@@ -23,7 +23,7 @@
namespace blink {
inline SVGFEFuncAElement::SVGFEFuncAElement(Document& document)
- : SVGComponentTransferFunctionElement(SVGNames::feFuncATag, document) {}
+ : SVGComponentTransferFunctionElement(svg_names::kFEFuncATag, document) {}
DEFINE_NODE_FACTORY(SVGFEFuncAElement)
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_func_b_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_func_b_element.cc
index bcb4d9d35df..00f0835cb0f 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_func_b_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_func_b_element.cc
@@ -23,7 +23,7 @@
namespace blink {
inline SVGFEFuncBElement::SVGFEFuncBElement(Document& document)
- : SVGComponentTransferFunctionElement(SVGNames::feFuncBTag, document) {}
+ : SVGComponentTransferFunctionElement(svg_names::kFEFuncBTag, document) {}
DEFINE_NODE_FACTORY(SVGFEFuncBElement)
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_func_g_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_func_g_element.cc
index 78bbcad47be..ab64f16e365 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_func_g_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_func_g_element.cc
@@ -23,7 +23,7 @@
namespace blink {
inline SVGFEFuncGElement::SVGFEFuncGElement(Document& document)
- : SVGComponentTransferFunctionElement(SVGNames::feFuncGTag, document) {}
+ : SVGComponentTransferFunctionElement(svg_names::kFEFuncGTag, document) {}
DEFINE_NODE_FACTORY(SVGFEFuncGElement)
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_func_r_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_func_r_element.cc
index 1f6aa0db6f1..1b3b77bc9ab 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_func_r_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_func_r_element.cc
@@ -23,7 +23,7 @@
namespace blink {
inline SVGFEFuncRElement::SVGFEFuncRElement(Document& document)
- : SVGComponentTransferFunctionElement(SVGNames::feFuncRTag, document) {}
+ : SVGComponentTransferFunctionElement(svg_names::kFEFuncRTag, document) {}
DEFINE_NODE_FACTORY(SVGFEFuncRElement)
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.cc
index 2c234c1354a..6bee7ecb4ca 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.cc
@@ -27,13 +27,13 @@
namespace blink {
inline SVGFEGaussianBlurElement::SVGFEGaussianBlurElement(Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feGaussianBlurTag,
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFEGaussianBlurTag,
document),
std_deviation_(
SVGAnimatedNumberOptionalNumber::Create(this,
- SVGNames::stdDeviationAttr,
+ svg_names::kStdDeviationAttr,
0.0f)),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)) {
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)) {
AddToPropertyMap(std_deviation_);
AddToPropertyMap(in1_);
}
@@ -54,8 +54,8 @@ void SVGFEGaussianBlurElement::setStdDeviation(float x, float y) {
void SVGFEGaussianBlurElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::inAttr ||
- attr_name == SVGNames::stdDeviationAttr) {
+ if (attr_name == svg_names::kInAttr ||
+ attr_name == svg_names::kStdDeviationAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_image_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_image_element.cc
index 475a22e09c6..92106996649 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_image_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_image_element.cc
@@ -35,11 +35,11 @@
namespace blink {
inline SVGFEImageElement::SVGFEImageElement(Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feImageTag, document),
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFEImageTag, document),
SVGURIReference(this),
preserve_aspect_ratio_(SVGAnimatedPreserveAspectRatio::Create(
this,
- SVGNames::preserveAspectRatioAttr)) {
+ svg_names::kPreserveAspectRatioAttr)) {
AddToPropertyMap(preserve_aspect_ratio_);
}
@@ -108,7 +108,7 @@ void SVGFEImageElement::BuildPendingResource() {
}
void SVGFEImageElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::preserveAspectRatioAttr) {
+ if (attr_name == svg_names::kPreserveAspectRatioAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
@@ -162,4 +162,11 @@ FilterEffect* SVGFEImageElement::Build(SVGFilterBuilder*, Filter* filter) {
preserve_aspect_ratio_->CurrentValue());
}
+bool SVGFEImageElement::TaintsOrigin(bool inputs_taint_origin) const {
+ const SecurityOrigin* security_origin = GetDocument().GetSecurityOrigin();
+ if (cached_image_ && cached_image_->IsAccessAllowed(security_origin))
+ return inputs_taint_origin;
+ return true;
+}
+
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_image_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_image_element.h
index 759f6ad3cb2..2c9f4eb08bc 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_image_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_image_element.h
@@ -67,6 +67,7 @@ class SVGFEImageElement final : public SVGFilterPrimitiveStandardAttributes,
void BuildPendingResource() override;
InsertionNotificationRequest InsertedInto(ContainerNode&) override;
void RemovedFrom(ContainerNode&) override;
+ bool TaintsOrigin(bool inputs_taint_origin) const override;
Member<SVGAnimatedPreserveAspectRatio> preserve_aspect_ratio_;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_light_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_light_element.cc
index fc0d2d72c43..3c9ae10456c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_light_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_light_element.cc
@@ -32,23 +32,23 @@ namespace blink {
SVGFELightElement::SVGFELightElement(const QualifiedName& tag_name,
Document& document)
: SVGElement(tag_name, document),
- azimuth_(SVGAnimatedNumber::Create(this, SVGNames::azimuthAttr, 0.0f)),
+ azimuth_(SVGAnimatedNumber::Create(this, svg_names::kAzimuthAttr, 0.0f)),
elevation_(
- SVGAnimatedNumber::Create(this, SVGNames::elevationAttr, 0.0f)),
- x_(SVGAnimatedNumber::Create(this, SVGNames::xAttr, 0.0f)),
- y_(SVGAnimatedNumber::Create(this, SVGNames::yAttr, 0.0f)),
- z_(SVGAnimatedNumber::Create(this, SVGNames::zAttr, 0.0f)),
+ SVGAnimatedNumber::Create(this, svg_names::kElevationAttr, 0.0f)),
+ x_(SVGAnimatedNumber::Create(this, svg_names::kXAttr, 0.0f)),
+ y_(SVGAnimatedNumber::Create(this, svg_names::kYAttr, 0.0f)),
+ z_(SVGAnimatedNumber::Create(this, svg_names::kZAttr, 0.0f)),
points_at_x_(
- SVGAnimatedNumber::Create(this, SVGNames::pointsAtXAttr, 0.0f)),
+ SVGAnimatedNumber::Create(this, svg_names::kPointsAtXAttr, 0.0f)),
points_at_y_(
- SVGAnimatedNumber::Create(this, SVGNames::pointsAtYAttr, 0.0f)),
+ SVGAnimatedNumber::Create(this, svg_names::kPointsAtYAttr, 0.0f)),
points_at_z_(
- SVGAnimatedNumber::Create(this, SVGNames::pointsAtZAttr, 0.0f)),
+ SVGAnimatedNumber::Create(this, svg_names::kPointsAtZAttr, 0.0f)),
specular_exponent_(
- SVGAnimatedNumber::Create(this, SVGNames::specularExponentAttr, 1)),
+ SVGAnimatedNumber::Create(this, svg_names::kSpecularExponentAttr, 1)),
limiting_cone_angle_(
SVGAnimatedNumber::Create(this,
- SVGNames::limitingConeAngleAttr,
+ svg_names::kLimitingConeAngleAttr,
0.0f)) {
AddToPropertyMap(azimuth_);
AddToPropertyMap(elevation_);
@@ -94,14 +94,15 @@ FloatPoint3D SVGFELightElement::PointsAt() const {
}
void SVGFELightElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::azimuthAttr ||
- attr_name == SVGNames::elevationAttr || attr_name == SVGNames::xAttr ||
- attr_name == SVGNames::yAttr || attr_name == SVGNames::zAttr ||
- attr_name == SVGNames::pointsAtXAttr ||
- attr_name == SVGNames::pointsAtYAttr ||
- attr_name == SVGNames::pointsAtZAttr ||
- attr_name == SVGNames::specularExponentAttr ||
- attr_name == SVGNames::limitingConeAngleAttr) {
+ if (attr_name == svg_names::kAzimuthAttr ||
+ attr_name == svg_names::kElevationAttr ||
+ attr_name == svg_names::kXAttr || attr_name == svg_names::kYAttr ||
+ attr_name == svg_names::kZAttr ||
+ attr_name == svg_names::kPointsAtXAttr ||
+ attr_name == svg_names::kPointsAtYAttr ||
+ attr_name == svg_names::kPointsAtZAttr ||
+ attr_name == svg_names::kSpecularExponentAttr ||
+ attr_name == svg_names::kLimitingConeAngleAttr) {
ContainerNode* parent = parentNode();
if (!parent)
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_light_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_light_element.h
index 7ffddd7342b..aad4aad8f38 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_light_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_light_element.h
@@ -91,9 +91,9 @@ class SVGFELightElement : public SVGElement {
};
inline bool IsSVGFELightElement(const SVGElement& element) {
- return element.HasTagName(SVGNames::feDistantLightTag) ||
- element.HasTagName(SVGNames::fePointLightTag) ||
- element.HasTagName(SVGNames::feSpotLightTag);
+ return element.HasTagName(svg_names::kFEDistantLightTag) ||
+ element.HasTagName(svg_names::kFEPointLightTag) ||
+ element.HasTagName(svg_names::kFESpotLightTag);
}
DEFINE_SVGELEMENT_TYPE_CASTS_WITH_FUNCTION(SVGFELightElement);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_merge_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_merge_element.cc
index c32f8ee387c..aa7b48e4a86 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_merge_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_merge_element.cc
@@ -29,7 +29,7 @@
namespace blink {
inline SVGFEMergeElement::SVGFEMergeElement(Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feMergeTag, document) {}
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFEMergeTag, document) {}
DEFINE_NODE_FACTORY(SVGFEMergeElement)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.cc
index 7662fc4bfe9..4f8b7b38df9 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.cc
@@ -25,8 +25,8 @@
namespace blink {
inline SVGFEMergeNodeElement::SVGFEMergeNodeElement(Document& document)
- : SVGElement(SVGNames::feMergeNodeTag, document),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)) {
+ : SVGElement(svg_names::kFEMergeNodeTag, document),
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)) {
AddToPropertyMap(in1_);
}
@@ -39,7 +39,7 @@ DEFINE_NODE_FACTORY(SVGFEMergeNodeElement)
void SVGFEMergeNodeElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::inAttr) {
+ if (attr_name == svg_names::kInAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
InvalidateFilterPrimitiveParent(*this);
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_morphology_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_morphology_element.cc
index f67392902f7..15e75d0a099 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_morphology_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_morphology_element.cc
@@ -20,30 +20,31 @@
#include "third_party/blink/renderer/core/svg/svg_fe_morphology_element.h"
#include "third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
#include "third_party/blink/renderer/core/svg_names.h"
namespace blink {
template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<MorphologyOperatorType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(std::make_pair(FEMORPHOLOGY_OPERATOR_ERODE, "erode"));
- entries.push_back(std::make_pair(FEMORPHOLOGY_OPERATOR_DILATE, "dilate"));
- }
+const SVGEnumerationMap& GetEnumerationMap<MorphologyOperatorType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {FEMORPHOLOGY_OPERATOR_ERODE, "erode"},
+ {FEMORPHOLOGY_OPERATOR_DILATE, "dilate"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
inline SVGFEMorphologyElement::SVGFEMorphologyElement(Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feMorphologyTag, document),
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFEMorphologyTag,
+ document),
radius_(SVGAnimatedNumberOptionalNumber::Create(this,
- SVGNames::radiusAttr,
+ svg_names::kRadiusAttr,
0.0f)),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)),
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)),
svg_operator_(SVGAnimatedEnumeration<MorphologyOperatorType>::Create(
this,
- SVGNames::operatorAttr,
+ svg_names::kOperatorAttr,
FEMORPHOLOGY_OPERATOR_ERODE)) {
AddToPropertyMap(radius_);
AddToPropertyMap(in1_);
@@ -63,10 +64,10 @@ bool SVGFEMorphologyElement::SetFilterEffectAttribute(
FilterEffect* effect,
const QualifiedName& attr_name) {
FEMorphology* morphology = static_cast<FEMorphology*>(effect);
- if (attr_name == SVGNames::operatorAttr)
+ if (attr_name == svg_names::kOperatorAttr)
return morphology->SetMorphologyOperator(
svg_operator_->CurrentValue()->EnumValue());
- if (attr_name == SVGNames::radiusAttr) {
+ if (attr_name == svg_names::kRadiusAttr) {
// Both setRadius functions should be evaluated separately.
bool is_radius_x_changed =
morphology->SetRadiusX(radiusX()->CurrentValue()->Value());
@@ -80,14 +81,14 @@ bool SVGFEMorphologyElement::SetFilterEffectAttribute(
void SVGFEMorphologyElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::operatorAttr ||
- attr_name == SVGNames::radiusAttr) {
+ if (attr_name == svg_names::kOperatorAttr ||
+ attr_name == svg_names::kRadiusAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
PrimitiveAttributeChanged(attr_name);
return;
}
- if (attr_name == SVGNames::inAttr) {
+ if (attr_name == svg_names::kInAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_morphology_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_morphology_element.h
index 21d55b3e085..53d796f640b 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_morphology_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_morphology_element.h
@@ -28,9 +28,7 @@
namespace blink {
-template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<MorphologyOperatorType>();
+DECLARE_SVG_ENUM_MAP(MorphologyOperatorType);
class SVGFEMorphologyElement final
: public SVGFilterPrimitiveStandardAttributes {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_offset_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_offset_element.cc
index 05dd198c465..349fc64d492 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_offset_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_offset_element.cc
@@ -27,10 +27,10 @@
namespace blink {
inline SVGFEOffsetElement::SVGFEOffsetElement(Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feOffsetTag, document),
- dx_(SVGAnimatedNumber::Create(this, SVGNames::dxAttr, 0.0f)),
- dy_(SVGAnimatedNumber::Create(this, SVGNames::dyAttr, 0.0f)),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)) {
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFEOffsetTag, document),
+ dx_(SVGAnimatedNumber::Create(this, svg_names::kDxAttr, 0.0f)),
+ dy_(SVGAnimatedNumber::Create(this, svg_names::kDyAttr, 0.0f)),
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)) {
AddToPropertyMap(dx_);
AddToPropertyMap(dy_);
AddToPropertyMap(in1_);
@@ -46,8 +46,8 @@ void SVGFEOffsetElement::Trace(blink::Visitor* visitor) {
DEFINE_NODE_FACTORY(SVGFEOffsetElement)
void SVGFEOffsetElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::inAttr || attr_name == SVGNames::dxAttr ||
- attr_name == SVGNames::dyAttr) {
+ if (attr_name == svg_names::kInAttr || attr_name == svg_names::kDxAttr ||
+ attr_name == svg_names::kDyAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_point_light_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_point_light_element.cc
index b6d7cd27ac7..4d2d8fefbcc 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_point_light_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_point_light_element.cc
@@ -26,7 +26,7 @@
namespace blink {
inline SVGFEPointLightElement::SVGFEPointLightElement(Document& document)
- : SVGFELightElement(SVGNames::fePointLightTag, document) {}
+ : SVGFELightElement(svg_names::kFEPointLightTag, document) {}
DEFINE_NODE_FACTORY(SVGFEPointLightElement)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.cc
index 3f56237449f..f2bda029e61 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.cc
@@ -31,19 +31,19 @@ namespace blink {
inline SVGFESpecularLightingElement::SVGFESpecularLightingElement(
Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feSpecularLightingTag,
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFESpecularLightingTag,
document),
specular_constant_(
- SVGAnimatedNumber::Create(this, SVGNames::specularConstantAttr, 1)),
+ SVGAnimatedNumber::Create(this, svg_names::kSpecularConstantAttr, 1)),
specular_exponent_(
- SVGAnimatedNumber::Create(this, SVGNames::specularExponentAttr, 1)),
+ SVGAnimatedNumber::Create(this, svg_names::kSpecularExponentAttr, 1)),
surface_scale_(
- SVGAnimatedNumber::Create(this, SVGNames::surfaceScaleAttr, 1)),
+ SVGAnimatedNumber::Create(this, svg_names::kSurfaceScaleAttr, 1)),
kernel_unit_length_(SVGAnimatedNumberOptionalNumber::Create(
this,
- SVGNames::kernelUnitLengthAttr,
+ svg_names::kKernelUnitLengthAttr,
0.0f)),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)) {
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)) {
AddToPropertyMap(specular_constant_);
AddToPropertyMap(specular_exponent_);
AddToPropertyMap(surface_scale_);
@@ -68,18 +68,18 @@ bool SVGFESpecularLightingElement::SetFilterEffectAttribute(
FESpecularLighting* specular_lighting =
static_cast<FESpecularLighting*>(effect);
- if (attr_name == SVGNames::lighting_colorAttr) {
+ if (attr_name == svg_names::kLightingColorAttr) {
const ComputedStyle& style = ComputedStyleRef();
return specular_lighting->SetLightingColor(
style.VisitedDependentColor(GetCSSPropertyLightingColor()));
}
- if (attr_name == SVGNames::surfaceScaleAttr)
+ if (attr_name == svg_names::kSurfaceScaleAttr)
return specular_lighting->SetSurfaceScale(
surface_scale_->CurrentValue()->Value());
- if (attr_name == SVGNames::specularConstantAttr)
+ if (attr_name == svg_names::kSpecularConstantAttr)
return specular_lighting->SetSpecularConstant(
specular_constant_->CurrentValue()->Value());
- if (attr_name == SVGNames::specularExponentAttr)
+ if (attr_name == svg_names::kSpecularExponentAttr)
return specular_lighting->SetSpecularExponent(
specular_exponent_->CurrentValue()->Value());
@@ -90,25 +90,25 @@ bool SVGFESpecularLightingElement::SetFilterEffectAttribute(
DCHECK(light_element);
DCHECK(effect->GetFilter());
- if (attr_name == SVGNames::azimuthAttr)
+ if (attr_name == svg_names::kAzimuthAttr)
return light_source->SetAzimuth(
light_element->azimuth()->CurrentValue()->Value());
- if (attr_name == SVGNames::elevationAttr)
+ if (attr_name == svg_names::kElevationAttr)
return light_source->SetElevation(
light_element->elevation()->CurrentValue()->Value());
- if (attr_name == SVGNames::xAttr || attr_name == SVGNames::yAttr ||
- attr_name == SVGNames::zAttr)
+ if (attr_name == svg_names::kXAttr || attr_name == svg_names::kYAttr ||
+ attr_name == svg_names::kZAttr)
return light_source->SetPosition(
effect->GetFilter()->Resolve3dPoint(light_element->GetPosition()));
- if (attr_name == SVGNames::pointsAtXAttr ||
- attr_name == SVGNames::pointsAtYAttr ||
- attr_name == SVGNames::pointsAtZAttr)
+ if (attr_name == svg_names::kPointsAtXAttr ||
+ attr_name == svg_names::kPointsAtYAttr ||
+ attr_name == svg_names::kPointsAtZAttr)
return light_source->SetPointsAt(
effect->GetFilter()->Resolve3dPoint(light_element->PointsAt()));
- if (attr_name == SVGNames::specularExponentAttr)
+ if (attr_name == svg_names::kSpecularExponentAttr)
return light_source->SetSpecularExponent(
light_element->specularExponent()->CurrentValue()->Value());
- if (attr_name == SVGNames::limitingConeAngleAttr)
+ if (attr_name == svg_names::kLimitingConeAngleAttr)
return light_source->SetLimitingConeAngle(
light_element->limitingConeAngle()->CurrentValue()->Value());
@@ -118,15 +118,15 @@ bool SVGFESpecularLightingElement::SetFilterEffectAttribute(
void SVGFESpecularLightingElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::surfaceScaleAttr ||
- attr_name == SVGNames::specularConstantAttr ||
- attr_name == SVGNames::specularExponentAttr) {
+ if (attr_name == svg_names::kSurfaceScaleAttr ||
+ attr_name == svg_names::kSpecularConstantAttr ||
+ attr_name == svg_names::kSpecularExponentAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
PrimitiveAttributeChanged(attr_name);
return;
}
- if (attr_name == SVGNames::inAttr) {
+ if (attr_name == svg_names::kInAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_spot_light_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_spot_light_element.cc
index 7e63ff4e8aa..3d6be8223bf 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_spot_light_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_spot_light_element.cc
@@ -26,7 +26,7 @@
namespace blink {
inline SVGFESpotLightElement::SVGFESpotLightElement(Document& document)
- : SVGFELightElement(SVGNames::feSpotLightTag, document) {}
+ : SVGFELightElement(svg_names::kFESpotLightTag, document) {}
DEFINE_NODE_FACTORY(SVGFESpotLightElement)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_tile_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_tile_element.cc
index 0be047e2af6..aa39c46c9fe 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_tile_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_tile_element.cc
@@ -27,8 +27,8 @@
namespace blink {
inline SVGFETileElement::SVGFETileElement(Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feTileTag, document),
- in1_(SVGAnimatedString::Create(this, SVGNames::inAttr)) {
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFETileTag, document),
+ in1_(SVGAnimatedString::Create(this, svg_names::kInAttr)) {
AddToPropertyMap(in1_);
}
@@ -40,7 +40,7 @@ void SVGFETileElement::Trace(blink::Visitor* visitor) {
DEFINE_NODE_FACTORY(SVGFETileElement)
void SVGFETileElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::inAttr) {
+ if (attr_name == svg_names::kInAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.cc
index 6ace7ca2b54..091ce6697dd 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.cc
@@ -20,49 +20,48 @@
#include "third_party/blink/renderer/core/svg/svg_fe_turbulence_element.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
#include "third_party/blink/renderer/core/svg_names.h"
namespace blink {
template <>
-const SVGEnumerationStringEntries& GetStaticStringEntries<SVGStitchOptions>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(std::make_pair(kSvgStitchtypeStitch, "stitch"));
- entries.push_back(std::make_pair(kSvgStitchtypeNostitch, "noStitch"));
- }
+const SVGEnumerationMap& GetEnumerationMap<SVGStitchOptions>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {kSvgStitchtypeStitch, "stitch"}, {kSvgStitchtypeNostitch, "noStitch"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
template <>
-const SVGEnumerationStringEntries& GetStaticStringEntries<TurbulenceType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(
- std::make_pair(FETURBULENCE_TYPE_FRACTALNOISE, "fractalNoise"));
- entries.push_back(
- std::make_pair(FETURBULENCE_TYPE_TURBULENCE, "turbulence"));
- }
+const SVGEnumerationMap& GetEnumerationMap<TurbulenceType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {FETURBULENCE_TYPE_FRACTALNOISE, "fractalNoise"},
+ {FETURBULENCE_TYPE_TURBULENCE, "turbulence"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
inline SVGFETurbulenceElement::SVGFETurbulenceElement(Document& document)
- : SVGFilterPrimitiveStandardAttributes(SVGNames::feTurbulenceTag, document),
+ : SVGFilterPrimitiveStandardAttributes(svg_names::kFETurbulenceTag,
+ document),
base_frequency_(
SVGAnimatedNumberOptionalNumber::Create(this,
- SVGNames::baseFrequencyAttr,
+ svg_names::kBaseFrequencyAttr,
0.0f)),
- seed_(SVGAnimatedNumber::Create(this, SVGNames::seedAttr, 0.0f)),
+ seed_(SVGAnimatedNumber::Create(this, svg_names::kSeedAttr, 0.0f)),
stitch_tiles_(SVGAnimatedEnumeration<SVGStitchOptions>::Create(
this,
- SVGNames::stitchTilesAttr,
+ svg_names::kStitchTilesAttr,
kSvgStitchtypeNostitch)),
type_(SVGAnimatedEnumeration<TurbulenceType>::Create(
this,
- SVGNames::typeAttr,
+ svg_names::kTypeAttr,
FETURBULENCE_TYPE_TURBULENCE)),
num_octaves_(
- SVGAnimatedInteger::Create(this, SVGNames::numOctavesAttr, 1)) {
+ SVGAnimatedInteger::Create(this, svg_names::kNumOctavesAttr, 1)) {
AddToPropertyMap(base_frequency_);
AddToPropertyMap(seed_);
AddToPropertyMap(stitch_tiles_);
@@ -85,21 +84,21 @@ bool SVGFETurbulenceElement::SetFilterEffectAttribute(
FilterEffect* effect,
const QualifiedName& attr_name) {
FETurbulence* turbulence = static_cast<FETurbulence*>(effect);
- if (attr_name == SVGNames::typeAttr)
+ if (attr_name == svg_names::kTypeAttr)
return turbulence->SetType(type_->CurrentValue()->EnumValue());
- if (attr_name == SVGNames::stitchTilesAttr)
+ if (attr_name == svg_names::kStitchTilesAttr)
return turbulence->SetStitchTiles(
stitch_tiles_->CurrentValue()->EnumValue() == kSvgStitchtypeStitch);
- if (attr_name == SVGNames::baseFrequencyAttr) {
+ if (attr_name == svg_names::kBaseFrequencyAttr) {
bool base_frequency_x_changed = turbulence->SetBaseFrequencyX(
baseFrequencyX()->CurrentValue()->Value());
bool base_frequency_y_changed = turbulence->SetBaseFrequencyY(
baseFrequencyY()->CurrentValue()->Value());
return (base_frequency_x_changed || base_frequency_y_changed);
}
- if (attr_name == SVGNames::seedAttr)
+ if (attr_name == svg_names::kSeedAttr)
return turbulence->SetSeed(seed_->CurrentValue()->Value());
- if (attr_name == SVGNames::numOctavesAttr)
+ if (attr_name == svg_names::kNumOctavesAttr)
return turbulence->SetNumOctaves(num_octaves_->CurrentValue()->Value());
return SVGFilterPrimitiveStandardAttributes::SetFilterEffectAttribute(
@@ -108,11 +107,11 @@ bool SVGFETurbulenceElement::SetFilterEffectAttribute(
void SVGFETurbulenceElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::baseFrequencyAttr ||
- attr_name == SVGNames::numOctavesAttr ||
- attr_name == SVGNames::seedAttr ||
- attr_name == SVGNames::stitchTilesAttr ||
- attr_name == SVGNames::typeAttr) {
+ if (attr_name == svg_names::kBaseFrequencyAttr ||
+ attr_name == svg_names::kNumOctavesAttr ||
+ attr_name == svg_names::kSeedAttr ||
+ attr_name == svg_names::kStitchTilesAttr ||
+ attr_name == svg_names::kTypeAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
PrimitiveAttributeChanged(attr_name);
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.h
index 916dd74b8fa..3540909aac6 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.h
@@ -36,11 +36,9 @@ enum SVGStitchOptions {
kSvgStitchtypeStitch = 1,
kSvgStitchtypeNostitch = 2
};
-template <>
-const SVGEnumerationStringEntries& GetStaticStringEntries<SVGStitchOptions>();
+DECLARE_SVG_ENUM_MAP(SVGStitchOptions);
-template <>
-const SVGEnumerationStringEntries& GetStaticStringEntries<TurbulenceType>();
+DECLARE_SVG_ENUM_MAP(TurbulenceType);
class SVGFETurbulenceElement final
: public SVGFilterPrimitiveStandardAttributes {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_filter_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_filter_element.cc
index 137c33ff9df..8cc60f85e04 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_filter_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_filter_element.cc
@@ -30,36 +30,36 @@
namespace blink {
inline SVGFilterElement::SVGFilterElement(Document& document)
- : SVGElement(SVGNames::filterTag, document),
+ : SVGElement(svg_names::kFilterTag, document),
SVGURIReference(this),
// Spec: If the x/y attribute is not specified, the effect is as if a
// value of "-10%" were specified.
x_(SVGAnimatedLength::Create(this,
- SVGNames::xAttr,
+ svg_names::kXAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kPercentMinus10)),
y_(SVGAnimatedLength::Create(this,
- SVGNames::yAttr,
+ svg_names::kYAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kPercentMinus10)),
// Spec: If the width/height attribute is not specified, the effect is as
// if a value of "120%" were specified.
width_(SVGAnimatedLength::Create(this,
- SVGNames::widthAttr,
+ svg_names::kWidthAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kPercent120)),
height_(SVGAnimatedLength::Create(this,
- SVGNames::heightAttr,
+ svg_names::kHeightAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kPercent120)),
filter_units_(SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::Create(
this,
- SVGNames::filterUnitsAttr,
+ svg_names::kFilterUnitsAttr,
SVGUnitTypes::kSvgUnitTypeObjectboundingbox)),
primitive_units_(
SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::Create(
this,
- SVGNames::primitiveUnitsAttr,
+ svg_names::kPrimitiveUnitsAttr,
SVGUnitTypes::kSvgUnitTypeUserspaceonuse)) {
AddToPropertyMap(x_);
AddToPropertyMap(y_);
@@ -85,14 +85,14 @@ void SVGFilterElement::Trace(blink::Visitor* visitor) {
}
void SVGFilterElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- bool is_xywh = attr_name == SVGNames::xAttr || attr_name == SVGNames::yAttr ||
- attr_name == SVGNames::widthAttr ||
- attr_name == SVGNames::heightAttr;
+ bool is_xywh =
+ attr_name == svg_names::kXAttr || attr_name == svg_names::kYAttr ||
+ attr_name == svg_names::kWidthAttr || attr_name == svg_names::kHeightAttr;
if (is_xywh)
UpdateRelativeLengthsInformation();
- if (is_xywh || attr_name == SVGNames::filterUnitsAttr ||
- attr_name == SVGNames::primitiveUnitsAttr) {
+ if (is_xywh || attr_name == svg_names::kFilterUnitsAttr ||
+ attr_name == svg_names::kPrimitiveUnitsAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
InvalidateFilterChain();
return;
@@ -132,9 +132,10 @@ void SVGFilterElement::ChildrenChanged(const ChildrenChange& change) {
if (change.by_parser)
return;
- if (LayoutObject* object = GetLayoutObject())
+ if (LayoutObject* object = GetLayoutObject()) {
object->SetNeedsLayoutAndFullPaintInvalidation(
- LayoutInvalidationReason::kChildChanged);
+ layout_invalidation_reason::kChildChanged);
+ }
InvalidateFilterChain();
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.cc b/chromium/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.cc
index 0edfa01206f..20ee4603490 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.cc
@@ -38,24 +38,24 @@ SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes(
// Spec: If the x/y attribute is not specified, the effect is as if a
// value of "0%" were specified.
x_(SVGAnimatedLength::Create(this,
- SVGNames::xAttr,
+ svg_names::kXAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kPercent0)),
y_(SVGAnimatedLength::Create(this,
- SVGNames::yAttr,
+ svg_names::kYAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kPercent0)),
// Spec: If the width/height attribute is not specified, the effect is as
// if a value of "100%" were specified.
width_(SVGAnimatedLength::Create(this,
- SVGNames::widthAttr,
+ svg_names::kWidthAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kPercent100)),
height_(SVGAnimatedLength::Create(this,
- SVGNames::heightAttr,
+ svg_names::kHeightAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kPercent100)),
- result_(SVGAnimatedString::Create(this, SVGNames::resultAttr)) {
+ result_(SVGAnimatedString::Create(this, svg_names::kResultAttr)) {
AddToPropertyMap(x_);
AddToPropertyMap(y_);
AddToPropertyMap(width_);
@@ -75,7 +75,7 @@ void SVGFilterPrimitiveStandardAttributes::Trace(blink::Visitor* visitor) {
bool SVGFilterPrimitiveStandardAttributes::SetFilterEffectAttribute(
FilterEffect* effect,
const QualifiedName& attr_name) {
- DCHECK(attr_name == SVGNames::color_interpolation_filtersAttr);
+ DCHECK(attr_name == svg_names::kColorInterpolationFiltersAttr);
DCHECK(GetLayoutObject());
EColorInterpolation color_interpolation =
GetLayoutObject()->StyleRef().SvgStyle().ColorInterpolationFilters();
@@ -89,9 +89,10 @@ bool SVGFilterPrimitiveStandardAttributes::SetFilterEffectAttribute(
void SVGFilterPrimitiveStandardAttributes::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::xAttr || attr_name == SVGNames::yAttr ||
- attr_name == SVGNames::widthAttr || attr_name == SVGNames::heightAttr ||
- attr_name == SVGNames::resultAttr) {
+ if (attr_name == svg_names::kXAttr || attr_name == svg_names::kYAttr ||
+ attr_name == svg_names::kWidthAttr ||
+ attr_name == svg_names::kHeightAttr ||
+ attr_name == svg_names::kResultAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
Invalidate();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fit_to_view_box.cc b/chromium/third_party/blink/renderer/core/svg/svg_fit_to_view_box.cc
index 4fab93100d3..2b71a02216a 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fit_to_view_box.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fit_to_view_box.cc
@@ -32,14 +32,13 @@ namespace blink {
class SVGAnimatedViewBoxRect : public SVGAnimatedRect {
public:
static SVGAnimatedRect* Create(SVGElement* context_element) {
- return new SVGAnimatedViewBoxRect(context_element);
+ return MakeGarbageCollected<SVGAnimatedViewBoxRect>(context_element);
}
- SVGParsingError AttributeChanged(const String&) override;
-
- protected:
SVGAnimatedViewBoxRect(SVGElement* context_element)
- : SVGAnimatedRect(context_element, SVGNames::viewBoxAttr) {}
+ : SVGAnimatedRect(context_element, svg_names::kViewBoxAttr) {}
+
+ SVGParsingError AttributeChanged(const String&) override;
};
SVGParsingError SVGAnimatedViewBoxRect::AttributeChanged(const String& value) {
@@ -57,7 +56,7 @@ SVGFitToViewBox::SVGFitToViewBox(SVGElement* element)
: view_box_(SVGAnimatedViewBoxRect::Create(element)),
preserve_aspect_ratio_(SVGAnimatedPreserveAspectRatio::Create(
element,
- SVGNames::preserveAspectRatioAttr)) {
+ svg_names::kPreserveAspectRatioAttr)) {
DCHECK(element);
element->AddToPropertyMap(view_box_);
element->AddToPropertyMap(preserve_aspect_ratio_);
@@ -83,8 +82,8 @@ AffineTransform SVGFitToViewBox::ViewBoxToViewTransform(
}
bool SVGFitToViewBox::IsKnownAttribute(const QualifiedName& attr_name) {
- return attr_name == SVGNames::viewBoxAttr ||
- attr_name == SVGNames::preserveAspectRatioAttr;
+ return attr_name == svg_names::kViewBoxAttr ||
+ attr_name == svg_names::kPreserveAspectRatioAttr;
}
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_foreign_object_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_foreign_object_element.cc
index 1356e6937df..96ba4d10177 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_foreign_object_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_foreign_object_element.cc
@@ -29,24 +29,24 @@
namespace blink {
inline SVGForeignObjectElement::SVGForeignObjectElement(Document& document)
- : SVGGraphicsElement(SVGNames::foreignObjectTag, document),
+ : SVGGraphicsElement(svg_names::kForeignObjectTag, document),
x_(SVGAnimatedLength::Create(this,
- SVGNames::xAttr,
+ svg_names::kXAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero,
CSSPropertyX)),
y_(SVGAnimatedLength::Create(this,
- SVGNames::yAttr,
+ svg_names::kYAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero,
CSSPropertyY)),
width_(SVGAnimatedLength::Create(this,
- SVGNames::widthAttr,
+ svg_names::kWidthAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero,
CSSPropertyWidth)),
height_(SVGAnimatedLength::Create(this,
- SVGNames::heightAttr,
+ svg_names::kHeightAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero,
CSSPropertyHeight)) {
@@ -94,9 +94,9 @@ void SVGForeignObjectElement::CollectStyleForPresentationAttribute(
void SVGForeignObjectElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
bool is_width_height_attribute =
- attr_name == SVGNames::widthAttr || attr_name == SVGNames::heightAttr;
+ attr_name == svg_names::kWidthAttr || attr_name == svg_names::kHeightAttr;
bool is_xy_attribute =
- attr_name == SVGNames::xAttr || attr_name == SVGNames::yAttr;
+ attr_name == svg_names::kXAttr || attr_name == svg_names::kYAttr;
if (is_xy_attribute || is_width_height_attribute) {
SVGElement::InvalidationGuard invalidation_guard(this);
@@ -106,7 +106,7 @@ void SVGForeignObjectElement::SvgAttributeChanged(
kLocalStyleChange,
is_width_height_attribute
? StyleChangeReasonForTracing::Create(
- StyleChangeReason::kSVGContainerSizeChange)
+ style_change_reason::kSVGContainerSizeChange)
: StyleChangeReasonForTracing::FromAttribute(attr_name));
UpdateRelativeLengthsInformation();
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_g_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_g_element.cc
index b13a737d2c4..3ecd67566fa 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_g_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_g_element.cc
@@ -28,7 +28,7 @@ namespace blink {
inline SVGGElement::SVGGElement(Document& document,
ConstructionType construction_type)
- : SVGGraphicsElement(SVGNames::gTag, document, construction_type) {}
+ : SVGGraphicsElement(svg_names::kGTag, document, construction_type) {}
DEFINE_NODE_FACTORY(SVGGElement)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_geometry_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_geometry_element.cc
index d5f452f6c46..a4fb066e0a4 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_geometry_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_geometry_element.cc
@@ -31,33 +31,32 @@
#include "third_party/blink/renderer/core/svg/svg_geometry_element.h"
#include "third_party/blink/renderer/core/css/style_change_reason.h"
-#include "third_party/blink/renderer/core/layout/hit_test_request.h"
-#include "third_party/blink/renderer/core/layout/pointer_events_hit_rules.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_path.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_shape.h"
+#include "third_party/blink/renderer/core/layout/svg/svg_layout_support.h"
#include "third_party/blink/renderer/core/svg/svg_point_tear_off.h"
#include "third_party/blink/renderer/core/svg_names.h"
+#include "third_party/blink/renderer/platform/graphics/stroke_data.h"
namespace blink {
class SVGAnimatedPathLength final : public SVGAnimatedNumber {
public:
static SVGAnimatedPathLength* Create(SVGGeometryElement* context_element) {
- return new SVGAnimatedPathLength(context_element);
+ return MakeGarbageCollected<SVGAnimatedPathLength>(context_element);
}
+ explicit SVGAnimatedPathLength(SVGGeometryElement* context_element)
+ : SVGAnimatedNumber(context_element,
+ svg_names::kPathLengthAttr,
+ SVGNumber::Create()) {}
+
SVGParsingError AttributeChanged(const String& value) override {
SVGParsingError parse_status = SVGAnimatedNumber::AttributeChanged(value);
if (parse_status == SVGParseStatus::kNoError && BaseValue()->Value() < 0)
parse_status = SVGParseStatus::kNegativeValue;
return parse_status;
}
-
- private:
- explicit SVGAnimatedPathLength(SVGGeometryElement* context_element)
- : SVGAnimatedNumber(context_element,
- SVGNames::pathLengthAttr,
- SVGNumber::Create()) {}
};
SVGGeometryElement::SVGGeometryElement(const QualifiedName& tag_name,
@@ -69,7 +68,7 @@ SVGGeometryElement::SVGGeometryElement(const QualifiedName& tag_name,
}
void SVGGeometryElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::pathLengthAttr) {
+ if (attr_name == svg_names::kPathLengthAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
if (LayoutObject* layout_object = GetLayoutObject())
MarkForLayoutAndParentResourceInvalidation(*layout_object);
@@ -89,17 +88,13 @@ bool SVGGeometryElement::isPointInFill(SVGPointTearOff* point) const {
// FIXME: Eventually we should support isPointInFill for display:none
// elements.
- if (!GetLayoutObject() || !GetLayoutObject()->IsSVGShape())
+ const LayoutObject* layout_object = GetLayoutObject();
+ if (!layout_object)
return false;
- HitTestRequest request(HitTestRequest::kReadOnly);
- PointerEventsHitRules hit_rules(
- PointerEventsHitRules::SVG_GEOMETRY_HITTESTING, request,
- GetLayoutObject()->StyleRef().PointerEvents());
- hit_rules.can_hit_stroke = false;
- HitTestLocation location(point->Target()->Value());
- return ToLayoutSVGShape(GetLayoutObject())
- ->NodeAtPointInternal(request, location, hit_rules);
+ // Path::Contains will reject points with a non-finite component.
+ WindRule fill_rule = layout_object->StyleRef().SvgStyle().FillRule();
+ return AsPath().Contains(point->Target()->Value(), fill_rule);
}
bool SVGGeometryElement::isPointInStroke(SVGPointTearOff* point) const {
@@ -107,17 +102,26 @@ bool SVGGeometryElement::isPointInStroke(SVGPointTearOff* point) const {
// FIXME: Eventually we should support isPointInStroke for display:none
// elements.
- if (!GetLayoutObject() || !GetLayoutObject()->IsSVGShape())
+ const LayoutObject* layout_object = GetLayoutObject();
+ if (!layout_object)
return false;
+ const LayoutSVGShape& layout_shape = ToLayoutSVGShape(*layout_object);
+
+ StrokeData stroke_data;
+ SVGLayoutSupport::ApplyStrokeStyleToStrokeData(
+ stroke_data, layout_shape.StyleRef(), layout_shape,
+ PathLengthScaleFactor());
- HitTestRequest request(HitTestRequest::kReadOnly);
- PointerEventsHitRules hit_rules(
- PointerEventsHitRules::SVG_GEOMETRY_HITTESTING, request,
- GetLayoutObject()->StyleRef().PointerEvents());
- hit_rules.can_hit_fill = false;
- HitTestLocation location(point->Target()->Value());
- return ToLayoutSVGShape(GetLayoutObject())
- ->NodeAtPointInternal(request, location, hit_rules);
+ Path path = AsPath();
+ FloatPoint local_point(point->Target()->Value());
+ if (layout_shape.HasNonScalingStroke()) {
+ const AffineTransform transform =
+ layout_shape.ComputeNonScalingStrokeTransform();
+ path.Transform(transform);
+ local_point = transform.MapPoint(local_point);
+ }
+ // Path::StrokeContains will reject points with a non-finite component.
+ return path.StrokeContains(local_point, stroke_data);
}
Path SVGGeometryElement::ToClipPath() const {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_gradient_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_gradient_element.cc
index 033e8c5177c..5f29ecaf0f8 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_gradient_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_gradient_element.cc
@@ -22,25 +22,24 @@
#include "third_party/blink/renderer/core/svg/svg_gradient_element.h"
#include "third_party/blink/renderer/core/css/style_change_reason.h"
-#include "third_party/blink/renderer/core/dom/attribute.h"
#include "third_party/blink/renderer/core/dom/element_traversal.h"
#include "third_party/blink/renderer/core/dom/id_target_observer.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_resource_container.h"
#include "third_party/blink/renderer/core/svg/gradient_attributes.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
#include "third_party/blink/renderer/core/svg/svg_stop_element.h"
#include "third_party/blink/renderer/core/svg/svg_transform_list.h"
namespace blink {
template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGSpreadMethodType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(std::make_pair(kSVGSpreadMethodPad, "pad"));
- entries.push_back(std::make_pair(kSVGSpreadMethodReflect, "reflect"));
- entries.push_back(std::make_pair(kSVGSpreadMethodRepeat, "repeat"));
- }
+const SVGEnumerationMap& GetEnumerationMap<SVGSpreadMethodType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {kSVGSpreadMethodPad, "pad"},
+ {kSVGSpreadMethodReflect, "reflect"},
+ {kSVGSpreadMethodRepeat, "repeat"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
@@ -50,15 +49,15 @@ SVGGradientElement::SVGGradientElement(const QualifiedName& tag_name,
SVGURIReference(this),
gradient_transform_(
SVGAnimatedTransformList::Create(this,
- SVGNames::gradientTransformAttr,
+ svg_names::kGradientTransformAttr,
CSSPropertyTransform)),
spread_method_(SVGAnimatedEnumeration<SVGSpreadMethodType>::Create(
this,
- SVGNames::spreadMethodAttr,
+ svg_names::kSpreadMethodAttr,
kSVGSpreadMethodPad)),
gradient_units_(SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::Create(
this,
- SVGNames::gradientUnitsAttr,
+ svg_names::kGradientUnitsAttr,
SVGUnitTypes::kSvgUnitTypeObjectboundingbox)) {
AddToPropertyMap(gradient_transform_);
AddToPropertyMap(spread_method_);
@@ -82,7 +81,7 @@ void SVGGradientElement::BuildPendingResource() {
if (auto* gradient = ToSVGGradientElementOrNull(target))
AddReferenceTo(gradient);
- InvalidateGradient(LayoutInvalidationReason::kSvgResourceInvalidated);
+ InvalidateGradient(layout_invalidation_reason::kSvgResourceInvalidated);
}
void SVGGradientElement::ClearResourceReferences() {
@@ -94,7 +93,7 @@ void SVGGradientElement::CollectStyleForPresentationAttribute(
const QualifiedName& name,
const AtomicString& value,
MutableCSSPropertyValueSet* style) {
- if (name == SVGNames::gradientTransformAttr) {
+ if (name == svg_names::kGradientTransformAttr) {
AddPropertyToPresentationAttributeStyle(
style, CSSPropertyTransform,
*gradient_transform_->CurrentValue()->CssValue());
@@ -104,17 +103,17 @@ void SVGGradientElement::CollectStyleForPresentationAttribute(
}
void SVGGradientElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::gradientTransformAttr) {
+ if (attr_name == svg_names::kGradientTransformAttr) {
InvalidateSVGPresentationAttributeStyle();
SetNeedsStyleRecalc(kLocalStyleChange,
StyleChangeReasonForTracing::FromAttribute(attr_name));
}
- if (attr_name == SVGNames::gradientUnitsAttr ||
- attr_name == SVGNames::gradientTransformAttr ||
- attr_name == SVGNames::spreadMethodAttr) {
+ if (attr_name == svg_names::kGradientUnitsAttr ||
+ attr_name == svg_names::kGradientTransformAttr ||
+ attr_name == svg_names::kSpreadMethodAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
- InvalidateGradient(LayoutInvalidationReason::kAttributeChanged);
+ InvalidateGradient(layout_invalidation_reason::kAttributeChanged);
return;
}
@@ -147,7 +146,7 @@ void SVGGradientElement::ChildrenChanged(const ChildrenChange& change) {
if (change.by_parser)
return;
- InvalidateGradient(LayoutInvalidationReason::kChildChanged);
+ InvalidateGradient(layout_invalidation_reason::kChildChanged);
}
void SVGGradientElement::InvalidateGradient(
@@ -160,7 +159,7 @@ void SVGGradientElement::InvalidateDependentGradients() {
NotifyIncomingReferences([](SVGElement& element) {
if (auto* gradient = ToSVGGradientElementOrNull(element)) {
gradient->InvalidateGradient(
- LayoutInvalidationReason::kSvgResourceInvalidated);
+ layout_invalidation_reason::kSvgResourceInvalidated);
}
});
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_gradient_element.h b/chromium/third_party/blink/renderer/core/svg/svg_gradient_element.h
index 2e6116e01cc..0376e5dfd46 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_gradient_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_gradient_element.h
@@ -41,9 +41,7 @@ enum SVGSpreadMethodType {
kSVGSpreadMethodReflect,
kSVGSpreadMethodRepeat
};
-template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGSpreadMethodType>();
+DECLARE_SVG_ENUM_MAP(SVGSpreadMethodType);
class SVGGradientElement : public SVGElement, public SVGURIReference {
DEFINE_WRAPPERTYPEINFO();
@@ -97,8 +95,8 @@ class SVGGradientElement : public SVGElement, public SVGURIReference {
};
inline bool IsSVGGradientElement(const SVGElement& element) {
- return element.HasTagName(SVGNames::radialGradientTag) ||
- element.HasTagName(SVGNames::linearGradientTag);
+ return element.HasTagName(svg_names::kRadialGradientTag) ||
+ element.HasTagName(svg_names::kLinearGradientTag);
}
DEFINE_SVGELEMENT_TYPE_CASTS_WITH_FUNCTION(SVGGradientElement);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_graphics_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_graphics_element.cc
index 288eed1fcb0..bfca480f88b 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_graphics_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_graphics_element.cc
@@ -37,7 +37,7 @@ SVGGraphicsElement::SVGGraphicsElement(const QualifiedName& tag_name,
: SVGElement(tag_name, document, construction_type),
SVGTests(this),
transform_(SVGAnimatedTransformList::Create(this,
- SVGNames::transformAttr,
+ svg_names::kTransformAttr,
CSSPropertyTransform)) {
AddToPropertyMap(transform_);
}
@@ -103,7 +103,7 @@ void SVGGraphicsElement::CollectStyleForPresentationAttribute(
const QualifiedName& name,
const AtomicString& value,
MutableCSSPropertyValueSet* style) {
- if (name == SVGNames::transformAttr) {
+ if (name == svg_names::kTransformAttr) {
AddPropertyToPresentationAttributeStyle(
style, CSSPropertyTransform, *transform_->CurrentValue()->CssValue());
return;
@@ -124,7 +124,7 @@ void SVGGraphicsElement::SvgAttributeChanged(const QualifiedName& attr_name) {
return;
}
- if (attr_name == SVGNames::transformAttr) {
+ if (attr_name == svg_names::kTransformAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
InvalidateSVGPresentationAttributeStyle();
// TODO(fs): The InvalidationGuard will make sure all instances are
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_image_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_image_element.cc
index 31cb70339bd..2556bfc7f2b 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_image_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_image_element.cc
@@ -21,8 +21,9 @@
#include "third_party/blink/renderer/core/svg/svg_image_element.h"
+#include "third_party/blink/public/mojom/feature_policy/feature_policy.mojom-blink.h"
+#include "third_party/blink/renderer/core/css/css_property_names.h"
#include "third_party/blink/renderer/core/css/style_change_reason.h"
-#include "third_party/blink/renderer/core/css_property_names.h"
#include "third_party/blink/renderer/core/frame/use_counter.h"
#include "third_party/blink/renderer/core/html/media/media_element_parser_helpers.h"
#include "third_party/blink/renderer/core/inspector/console_message.h"
@@ -34,32 +35,32 @@
namespace blink {
inline SVGImageElement::SVGImageElement(Document& document)
- : SVGGraphicsElement(SVGNames::imageTag, document),
+ : SVGGraphicsElement(svg_names::kImageTag, document),
SVGURIReference(this),
is_default_overridden_intrinsic_size_(false),
x_(SVGAnimatedLength::Create(this,
- SVGNames::xAttr,
+ svg_names::kXAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero,
CSSPropertyX)),
y_(SVGAnimatedLength::Create(this,
- SVGNames::yAttr,
+ svg_names::kYAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero,
CSSPropertyY)),
width_(SVGAnimatedLength::Create(this,
- SVGNames::widthAttr,
+ svg_names::kWidthAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero,
CSSPropertyWidth)),
height_(SVGAnimatedLength::Create(this,
- SVGNames::heightAttr,
+ svg_names::kHeightAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero,
CSSPropertyHeight)),
preserve_aspect_ratio_(SVGAnimatedPreserveAspectRatio::Create(
this,
- SVGNames::preserveAspectRatioAttr)),
+ svg_names::kPreserveAspectRatioAttr)),
image_loader_(SVGImageLoader::Create(this)) {
AddToPropertyMap(x_);
AddToPropertyMap(y_);
@@ -67,8 +68,8 @@ inline SVGImageElement::SVGImageElement(Document& document)
AddToPropertyMap(height_);
AddToPropertyMap(preserve_aspect_ratio_);
- if (MediaElementParserHelpers::IsMediaElement(this) &&
- !MediaElementParserHelpers::IsUnsizedMediaEnabled(document)) {
+ if (media_element_parser_helpers::IsMediaElement(this) &&
+ !document.IsFeatureEnabled(mojom::FeaturePolicyFeature::kUnsizedMedia)) {
is_default_overridden_intrinsic_size_ = true;
overridden_intrinsic_size_ =
IntSize(LayoutReplaced::kDefaultWidth, LayoutReplaced::kDefaultHeight);
@@ -131,10 +132,10 @@ void SVGImageElement::CollectStyleForPresentationAttribute(
void SVGImageElement::SvgAttributeChanged(const QualifiedName& attr_name) {
bool is_length_attribute =
- attr_name == SVGNames::xAttr || attr_name == SVGNames::yAttr ||
- attr_name == SVGNames::widthAttr || attr_name == SVGNames::heightAttr;
+ attr_name == svg_names::kXAttr || attr_name == svg_names::kYAttr ||
+ attr_name == svg_names::kWidthAttr || attr_name == svg_names::kHeightAttr;
- if (is_length_attribute || attr_name == SVGNames::preserveAspectRatioAttr) {
+ if (is_length_attribute || attr_name == svg_names::kPreserveAspectRatioAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
if (is_length_attribute) {
@@ -168,15 +169,15 @@ void SVGImageElement::SvgAttributeChanged(const QualifiedName& attr_name) {
void SVGImageElement::ParseAttribute(
const AttributeModificationParams& params) {
- if (params.name == SVGNames::decodingAttr) {
+ if (params.name == svg_names::kDecodingAttr) {
UseCounter::Count(GetDocument(), WebFeature::kImageDecodingAttribute);
decoding_mode_ = ParseImageDecodingMode(params.new_value);
- } else if (params.name == SVGNames::intrinsicsizeAttr &&
+ } else if (params.name == svg_names::kIntrinsicsizeAttr &&
RuntimeEnabledFeatures::
ExperimentalProductivityFeaturesEnabled()) {
String message;
bool intrinsic_size_changed =
- MediaElementParserHelpers::ParseIntrinsicSizeAttribute(
+ media_element_parser_helpers::ParseIntrinsicSizeAttribute(
params.new_value, this, &overridden_intrinsic_size_,
&is_default_overridden_intrinsic_size_, &message);
if (!message.IsEmpty()) {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_image_element.h b/chromium/third_party/blink/renderer/core/svg/svg_image_element.h
index 711256cc38c..333eb0dd6a3 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_image_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_image_element.h
@@ -73,6 +73,10 @@ class CORE_EXPORT SVGImageElement final
return is_default_overridden_intrinsic_size_;
}
+ void SetImageForTest(ImageResourceContent* content) {
+ GetImageLoader().SetImageForTest(content);
+ }
+
private:
explicit SVGImageElement(Document&);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_image_loader.cc b/chromium/third_party/blink/renderer/core/svg/svg_image_loader.cc
index a7ce9fe9322..ed5b0f33c40 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_image_loader.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_image_loader.cc
@@ -29,7 +29,7 @@ SVGImageLoader::SVGImageLoader(SVGImageElement* node) : ImageLoader(node) {}
void SVGImageLoader::DispatchLoadEvent() {
if (GetContent()->ErrorOccurred()) {
- GetElement()->DispatchEvent(*Event::Create(EventTypeNames::error));
+ GetElement()->DispatchEvent(*Event::Create(event_type_names::kError));
} else {
SVGImageElement* image_element = ToSVGImageElement(GetElement());
image_element->SendSVGLoadEventToSelfAndAncestorChainIfPossible();
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_image_loader.h b/chromium/third_party/blink/renderer/core/svg/svg_image_loader.h
index ef8ab6ba358..3b1381140e0 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_image_loader.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_image_loader.h
@@ -29,11 +29,12 @@ class SVGImageElement;
class SVGImageLoader final : public ImageLoader {
public:
static SVGImageLoader* Create(SVGImageElement* element) {
- return new SVGImageLoader(element);
+ return MakeGarbageCollected<SVGImageLoader>(element);
}
- private:
explicit SVGImageLoader(SVGImageElement*);
+
+ private:
void DispatchLoadEvent() override;
String DebugName() const override { return "SVGImageLoader"; }
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_integer.cc b/chromium/third_party/blink/renderer/core/svg/svg_integer.cc
index e8f277eff7c..a160403c146 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_integer.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_integer.cc
@@ -79,7 +79,7 @@ void SVGInteger::CalculateAnimatedValue(SVGAnimationElement* animation_element,
animation_element->AnimateAdditiveNumber(
percentage, repeat_count, from_integer->Value(), to_integer->Value(),
to_at_end_of_duration_integer->Value(), animated_float);
- value_ = static_cast<int>(roundf(animated_float));
+ value_ = clampTo<int>(roundf(animated_float));
}
float SVGInteger::CalculateDistance(SVGPropertyBase* other, SVGElement*) {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_integer.h b/chromium/third_party/blink/renderer/core/svg/svg_integer.h
index 2abffc47da1..0b4e7338c10 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_integer.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_integer.h
@@ -41,7 +41,11 @@ class SVGInteger final : public SVGPropertyHelper<SVGInteger> {
typedef void TearOffType;
typedef int PrimitiveType;
- static SVGInteger* Create(int value = 0) { return new SVGInteger(value); }
+ static SVGInteger* Create(int value = 0) {
+ return MakeGarbageCollected<SVGInteger>(value);
+ }
+
+ explicit SVGInteger(int);
virtual SVGInteger* Clone() const;
@@ -68,8 +72,6 @@ class SVGInteger final : public SVGPropertyHelper<SVGInteger> {
static constexpr int kInitialValueBits = 2;
protected:
- explicit SVGInteger(int);
-
int value_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_integer_optional_integer.h b/chromium/third_party/blink/renderer/core/svg/svg_integer_optional_integer.h
index 2caaf582355..50acdcdfed2 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_integer_optional_integer.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_integer_optional_integer.h
@@ -45,9 +45,13 @@ class SVGIntegerOptionalInteger final : public SVGPropertyBase {
static SVGIntegerOptionalInteger* Create(SVGInteger* first_integer,
SVGInteger* second_integer) {
- return new SVGIntegerOptionalInteger(first_integer, second_integer);
+ return MakeGarbageCollected<SVGIntegerOptionalInteger>(first_integer,
+ second_integer);
}
+ SVGIntegerOptionalInteger(SVGInteger* first_integer,
+ SVGInteger* second_integer);
+
SVGIntegerOptionalInteger* Clone() const;
SVGPropertyBase* CloneForAnimation(const String&) const override;
@@ -78,9 +82,6 @@ class SVGIntegerOptionalInteger final : public SVGPropertyBase {
void Trace(blink::Visitor*) override;
protected:
- SVGIntegerOptionalInteger(SVGInteger* first_integer,
- SVGInteger* second_integer);
-
Member<SVGInteger> first_integer_;
Member<SVGInteger> second_integer_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_length.cc b/chromium/third_party/blink/renderer/core/svg/svg_length.cc
index 8a82679b154..1297ba1791c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_length.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_length.cc
@@ -51,7 +51,7 @@ void SVGLength::Trace(blink::Visitor* visitor) {
}
SVGLength* SVGLength::Clone() const {
- return new SVGLength(*this);
+ return MakeGarbageCollected<SVGLength>(*this);
}
SVGPropertyBase* SVGLength::CloneForAnimation(const String& value) const {
@@ -191,30 +191,30 @@ SVGLengthMode SVGLength::LengthModeForAnimatedLengthAttribute(
DEFINE_STATIC_LOCAL(LengthModeForLengthAttributeMap, length_mode_map, ());
if (length_mode_map.IsEmpty()) {
- length_mode_map.Set(SVGNames::xAttr, SVGLengthMode::kWidth);
- length_mode_map.Set(SVGNames::yAttr, SVGLengthMode::kHeight);
- length_mode_map.Set(SVGNames::cxAttr, SVGLengthMode::kWidth);
- length_mode_map.Set(SVGNames::cyAttr, SVGLengthMode::kHeight);
- length_mode_map.Set(SVGNames::dxAttr, SVGLengthMode::kWidth);
- length_mode_map.Set(SVGNames::dyAttr, SVGLengthMode::kHeight);
- length_mode_map.Set(SVGNames::frAttr, SVGLengthMode::kOther);
- length_mode_map.Set(SVGNames::fxAttr, SVGLengthMode::kWidth);
- length_mode_map.Set(SVGNames::fyAttr, SVGLengthMode::kHeight);
- length_mode_map.Set(SVGNames::rAttr, SVGLengthMode::kOther);
- length_mode_map.Set(SVGNames::rxAttr, SVGLengthMode::kWidth);
- length_mode_map.Set(SVGNames::ryAttr, SVGLengthMode::kHeight);
- length_mode_map.Set(SVGNames::widthAttr, SVGLengthMode::kWidth);
- length_mode_map.Set(SVGNames::heightAttr, SVGLengthMode::kHeight);
- length_mode_map.Set(SVGNames::x1Attr, SVGLengthMode::kWidth);
- length_mode_map.Set(SVGNames::x2Attr, SVGLengthMode::kWidth);
- length_mode_map.Set(SVGNames::y1Attr, SVGLengthMode::kHeight);
- length_mode_map.Set(SVGNames::y2Attr, SVGLengthMode::kHeight);
- length_mode_map.Set(SVGNames::refXAttr, SVGLengthMode::kWidth);
- length_mode_map.Set(SVGNames::refYAttr, SVGLengthMode::kHeight);
- length_mode_map.Set(SVGNames::markerWidthAttr, SVGLengthMode::kWidth);
- length_mode_map.Set(SVGNames::markerHeightAttr, SVGLengthMode::kHeight);
- length_mode_map.Set(SVGNames::textLengthAttr, SVGLengthMode::kWidth);
- length_mode_map.Set(SVGNames::startOffsetAttr, SVGLengthMode::kWidth);
+ length_mode_map.Set(svg_names::kXAttr, SVGLengthMode::kWidth);
+ length_mode_map.Set(svg_names::kYAttr, SVGLengthMode::kHeight);
+ length_mode_map.Set(svg_names::kCxAttr, SVGLengthMode::kWidth);
+ length_mode_map.Set(svg_names::kCyAttr, SVGLengthMode::kHeight);
+ length_mode_map.Set(svg_names::kDxAttr, SVGLengthMode::kWidth);
+ length_mode_map.Set(svg_names::kDyAttr, SVGLengthMode::kHeight);
+ length_mode_map.Set(svg_names::kFrAttr, SVGLengthMode::kOther);
+ length_mode_map.Set(svg_names::kFxAttr, SVGLengthMode::kWidth);
+ length_mode_map.Set(svg_names::kFyAttr, SVGLengthMode::kHeight);
+ length_mode_map.Set(svg_names::kRAttr, SVGLengthMode::kOther);
+ length_mode_map.Set(svg_names::kRxAttr, SVGLengthMode::kWidth);
+ length_mode_map.Set(svg_names::kRyAttr, SVGLengthMode::kHeight);
+ length_mode_map.Set(svg_names::kWidthAttr, SVGLengthMode::kWidth);
+ length_mode_map.Set(svg_names::kHeightAttr, SVGLengthMode::kHeight);
+ length_mode_map.Set(svg_names::kX1Attr, SVGLengthMode::kWidth);
+ length_mode_map.Set(svg_names::kX2Attr, SVGLengthMode::kWidth);
+ length_mode_map.Set(svg_names::kY1Attr, SVGLengthMode::kHeight);
+ length_mode_map.Set(svg_names::kY2Attr, SVGLengthMode::kHeight);
+ length_mode_map.Set(svg_names::kRefXAttr, SVGLengthMode::kWidth);
+ length_mode_map.Set(svg_names::kRefYAttr, SVGLengthMode::kHeight);
+ length_mode_map.Set(svg_names::kMarkerWidthAttr, SVGLengthMode::kWidth);
+ length_mode_map.Set(svg_names::kMarkerHeightAttr, SVGLengthMode::kHeight);
+ length_mode_map.Set(svg_names::kTextLengthAttr, SVGLengthMode::kWidth);
+ length_mode_map.Set(svg_names::kStartOffsetAttr, SVGLengthMode::kWidth);
}
if (length_mode_map.Contains(attr_name))
@@ -228,9 +228,10 @@ bool SVGLength::NegativeValuesForbiddenForAnimatedLengthAttribute(
DEFINE_STATIC_LOCAL(
HashSet<QualifiedName>, no_negative_values_set,
({
- SVGNames::frAttr, SVGNames::rAttr, SVGNames::rxAttr, SVGNames::ryAttr,
- SVGNames::widthAttr, SVGNames::heightAttr, SVGNames::markerWidthAttr,
- SVGNames::markerHeightAttr, SVGNames::textLengthAttr,
+ svg_names::kFrAttr, svg_names::kRAttr, svg_names::kRxAttr,
+ svg_names::kRyAttr, svg_names::kWidthAttr, svg_names::kHeightAttr,
+ svg_names::kMarkerWidthAttr, svg_names::kMarkerHeightAttr,
+ svg_names::kTextLengthAttr,
}));
return no_negative_values_set.Contains(attr_name);
}
@@ -326,7 +327,7 @@ const CSSPrimitiveValue& CreateInitialCSSValue(
} // namespace
SVGLength* SVGLength::Create(Initial initial, SVGLengthMode mode) {
- return new SVGLength(CreateInitialCSSValue(initial), mode);
+ return MakeGarbageCollected<SVGLength>(CreateInitialCSSValue(initial), mode);
}
void SVGLength::SetInitial(unsigned initial_value) {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_length.h b/chromium/third_party/blink/renderer/core/svg/svg_length.h
index c757faa1bab..27b03f6a3f9 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_length.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_length.h
@@ -38,7 +38,7 @@ class SVGLength final : public SVGPropertyBase {
typedef SVGLengthTearOff TearOffType;
static SVGLength* Create(SVGLengthMode mode = SVGLengthMode::kOther) {
- return new SVGLength(mode);
+ return MakeGarbageCollected<SVGLength>(mode);
}
// Initial values for SVGLength properties. If adding a new initial value,
@@ -56,6 +56,11 @@ class SVGLength final : public SVGPropertyBase {
};
static constexpr int kInitialValueBits = 3;
static SVGLength* Create(Initial, SVGLengthMode);
+
+ explicit SVGLength(SVGLengthMode);
+ SVGLength(const CSSPrimitiveValue&, SVGLengthMode);
+ SVGLength(const SVGLength&);
+
void SetInitial(unsigned);
void Trace(blink::Visitor*) override;
@@ -133,10 +138,6 @@ class SVGLength final : public SVGPropertyBase {
AnimatedPropertyType GetType() const override { return ClassType(); }
private:
- explicit SVGLength(SVGLengthMode);
- SVGLength(const CSSPrimitiveValue&, SVGLengthMode);
- SVGLength(const SVGLength&);
-
Member<const CSSPrimitiveValue> value_;
unsigned unit_mode_ : 2;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_length_context.cc b/chromium/third_party/blink/renderer/core/svg/svg_length_context.cc
index ae0f267f3ea..06d9526f952 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_length_context.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_length_context.cc
@@ -31,7 +31,7 @@
#include "third_party/blink/renderer/core/style/computed_style.h"
#include "third_party/blink/renderer/core/svg/svg_svg_element.h"
#include "third_party/blink/renderer/platform/fonts/font_metrics.h"
-#include "third_party/blink/renderer/platform/length_functions.h"
+#include "third_party/blink/renderer/platform/geometry/length_functions.h"
namespace blink {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_length_context.h b/chromium/third_party/blink/renderer/core/svg/svg_length_context.h
index 920e8426866..ba97426dd50 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_length_context.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_length_context.h
@@ -23,7 +23,7 @@
#include "third_party/blink/renderer/core/css/css_primitive_value.h"
#include "third_party/blink/renderer/core/svg/svg_unit_types.h"
#include "third_party/blink/renderer/platform/geometry/float_rect.h"
-#include "third_party/blink/renderer/platform/length.h"
+#include "third_party/blink/renderer/platform/geometry/length.h"
namespace blink {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_length_list.h b/chromium/third_party/blink/renderer/core/svg/svg_length_list.h
index 8fe98b4edcc..e83176244b0 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_length_list.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_length_list.h
@@ -45,9 +45,10 @@ class SVGLengthList final
typedef SVGLengthListTearOff TearOffType;
static SVGLengthList* Create(SVGLengthMode mode = SVGLengthMode::kOther) {
- return new SVGLengthList(mode);
+ return MakeGarbageCollected<SVGLengthList>(mode);
}
+ explicit SVGLengthList(SVGLengthMode);
~SVGLengthList() override;
SVGParsingError SetValueAsString(const String&);
@@ -72,8 +73,6 @@ class SVGLengthList final
AnimatedPropertyType GetType() const override { return ClassType(); }
private:
- explicit SVGLengthList(SVGLengthMode);
-
// Create SVGLength items used to adjust the list length
// when animation from/to lists are longer than this list.
SVGLength* CreatePaddingItem() const override;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_length_list_tear_off.h b/chromium/third_party/blink/renderer/core/svg/svg_length_list_tear_off.h
index cd50f249b38..fac130c0fec 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_length_list_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_length_list_tear_off.h
@@ -45,10 +45,10 @@ class SVGLengthListTearOff final
SVGLengthList* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val) {
- return new SVGLengthListTearOff(target, binding, property_is_anim_val);
+ return MakeGarbageCollected<SVGLengthListTearOff>(target, binding,
+ property_is_anim_val);
}
- private:
SVGLengthListTearOff(SVGLengthList* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_length_tear_off.h b/chromium/third_party/blink/renderer/core/svg/svg_length_tear_off.h
index 0181b86b45d..95f39325f3d 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_length_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_length_tear_off.h
@@ -58,10 +58,15 @@ class SVGLengthTearOff final : public SVGPropertyTearOff<SVGLength> {
static SVGLengthTearOff* Create(SVGLength* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val) {
- return new SVGLengthTearOff(target, binding, property_is_anim_val);
+ return MakeGarbageCollected<SVGLengthTearOff>(target, binding,
+ property_is_anim_val);
}
static SVGLengthTearOff* CreateDetached();
+ SVGLengthTearOff(SVGLength*,
+ SVGAnimatedPropertyBase* binding,
+ PropertyIsAnimValType);
+
unsigned short unitType();
SVGLengthMode UnitMode();
float value(ExceptionState&);
@@ -76,11 +81,6 @@ class SVGLengthTearOff final : public SVGPropertyTearOff<SVGLength> {
void convertToSpecifiedUnits(unsigned short unit_type, ExceptionState&);
bool HasExposedLengthUnit();
-
- private:
- SVGLengthTearOff(SVGLength*,
- SVGAnimatedPropertyBase* binding,
- PropertyIsAnimValType);
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_line_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_line_element.cc
index 056d4ff06dd..b7bd1435de4 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_line_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_line_element.cc
@@ -26,21 +26,21 @@
namespace blink {
inline SVGLineElement::SVGLineElement(Document& document)
- : SVGGeometryElement(SVGNames::lineTag, document),
+ : SVGGeometryElement(svg_names::kLineTag, document),
x1_(SVGAnimatedLength::Create(this,
- SVGNames::x1Attr,
+ svg_names::kX1Attr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero)),
y1_(SVGAnimatedLength::Create(this,
- SVGNames::y1Attr,
+ svg_names::kY1Attr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero)),
x2_(SVGAnimatedLength::Create(this,
- SVGNames::x2Attr,
+ svg_names::kX2Attr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero)),
y2_(SVGAnimatedLength::Create(this,
- SVGNames::y2Attr,
+ svg_names::kY2Attr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero)) {
AddToPropertyMap(x1_);
@@ -72,8 +72,8 @@ Path SVGLineElement::AsPath() const {
}
void SVGLineElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::x1Attr || attr_name == SVGNames::y1Attr ||
- attr_name == SVGNames::x2Attr || attr_name == SVGNames::y2Attr) {
+ if (attr_name == svg_names::kX1Attr || attr_name == svg_names::kY1Attr ||
+ attr_name == svg_names::kX2Attr || attr_name == svg_names::kY2Attr) {
UpdateRelativeLengthsInformation();
GeometryAttributeChanged();
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_linear_gradient_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_linear_gradient_element.cc
index 80a243db1e7..2345cb111cd 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_linear_gradient_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_linear_gradient_element.cc
@@ -30,25 +30,25 @@
namespace blink {
inline SVGLinearGradientElement::SVGLinearGradientElement(Document& document)
- : SVGGradientElement(SVGNames::linearGradientTag, document),
+ : SVGGradientElement(svg_names::kLinearGradientTag, document),
// Spec: If the x1|y1|y2 attribute is not specified, the effect is as if a
// value of "0%" were specified.
// Spec: If the x2 attribute is not specified, the effect is as if a value
// of "100%" were specified.
x1_(SVGAnimatedLength::Create(this,
- SVGNames::x1Attr,
+ svg_names::kX1Attr,
SVGLengthMode::kWidth,
SVGLength::Initial::kPercent0)),
y1_(SVGAnimatedLength::Create(this,
- SVGNames::y1Attr,
+ svg_names::kY1Attr,
SVGLengthMode::kHeight,
SVGLength::Initial::kPercent0)),
x2_(SVGAnimatedLength::Create(this,
- SVGNames::x2Attr,
+ svg_names::kX2Attr,
SVGLengthMode::kWidth,
SVGLength::Initial::kPercent100)),
y2_(SVGAnimatedLength::Create(this,
- SVGNames::y2Attr,
+ svg_names::kY2Attr,
SVGLengthMode::kHeight,
SVGLength::Initial::kPercent0)) {
AddToPropertyMap(x1_);
@@ -69,11 +69,11 @@ DEFINE_NODE_FACTORY(SVGLinearGradientElement)
void SVGLinearGradientElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::x1Attr || attr_name == SVGNames::x2Attr ||
- attr_name == SVGNames::y1Attr || attr_name == SVGNames::y2Attr) {
+ if (attr_name == svg_names::kX1Attr || attr_name == svg_names::kX2Attr ||
+ attr_name == svg_names::kY1Attr || attr_name == svg_names::kY2Attr) {
SVGElement::InvalidationGuard invalidation_guard(this);
UpdateRelativeLengthsInformation();
- InvalidateGradient(LayoutInvalidationReason::kAttributeChanged);
+ InvalidateGradient(layout_invalidation_reason::kAttributeChanged);
return;
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_marker_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_marker_element.cc
index f4968f96318..e4675e246c8 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_marker_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_marker_element.cc
@@ -24,48 +24,46 @@
#include "third_party/blink/renderer/core/layout/svg/layout_svg_resource_marker.h"
#include "third_party/blink/renderer/core/svg/svg_angle_tear_off.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
#include "third_party/blink/renderer/core/svg_names.h"
namespace blink {
template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGMarkerUnitsType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(
- std::make_pair(kSVGMarkerUnitsUserSpaceOnUse, "userSpaceOnUse"));
- entries.push_back(
- std::make_pair(kSVGMarkerUnitsStrokeWidth, "strokeWidth"));
- }
+const SVGEnumerationMap& GetEnumerationMap<SVGMarkerUnitsType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {kSVGMarkerUnitsUserSpaceOnUse, "userSpaceOnUse"},
+ {kSVGMarkerUnitsStrokeWidth, "strokeWidth"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
inline SVGMarkerElement::SVGMarkerElement(Document& document)
- : SVGElement(SVGNames::markerTag, document),
+ : SVGElement(svg_names::kMarkerTag, document),
SVGFitToViewBox(this),
ref_x_(SVGAnimatedLength::Create(this,
- SVGNames::refXAttr,
+ svg_names::kRefXAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero)),
ref_y_(SVGAnimatedLength::Create(this,
- SVGNames::refYAttr,
+ svg_names::kRefYAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero)),
// Spec: If the markerWidth/markerHeight attribute is not specified, the
// effect is as if a value of "3" were specified.
marker_width_(SVGAnimatedLength::Create(this,
- SVGNames::markerWidthAttr,
+ svg_names::kMarkerWidthAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kNumber3)),
marker_height_(SVGAnimatedLength::Create(this,
- SVGNames::markerHeightAttr,
+ svg_names::kMarkerHeightAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kNumber3)),
orient_angle_(SVGAnimatedAngle::Create(this)),
marker_units_(SVGAnimatedEnumeration<SVGMarkerUnitsType>::Create(
this,
- SVGNames::markerUnitsAttr,
+ svg_names::kMarkerUnitsAttr,
kSVGMarkerUnitsStrokeWidth)) {
AddToPropertyMap(ref_x_);
AddToPropertyMap(ref_y_);
@@ -98,16 +96,16 @@ AffineTransform SVGMarkerElement::ViewBoxToViewTransform(
void SVGMarkerElement::SvgAttributeChanged(const QualifiedName& attr_name) {
bool viewbox_attribute_changed = SVGFitToViewBox::IsKnownAttribute(attr_name);
- bool length_attribute_changed = attr_name == SVGNames::refXAttr ||
- attr_name == SVGNames::refYAttr ||
- attr_name == SVGNames::markerWidthAttr ||
- attr_name == SVGNames::markerHeightAttr;
+ bool length_attribute_changed = attr_name == svg_names::kRefXAttr ||
+ attr_name == svg_names::kRefYAttr ||
+ attr_name == svg_names::kMarkerWidthAttr ||
+ attr_name == svg_names::kMarkerHeightAttr;
if (length_attribute_changed)
UpdateRelativeLengthsInformation();
if (viewbox_attribute_changed || length_attribute_changed ||
- attr_name == SVGNames::markerUnitsAttr ||
- attr_name == SVGNames::orientAttr) {
+ attr_name == svg_names::kMarkerUnitsAttr ||
+ attr_name == svg_names::kOrientAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
auto* resource_container = ToLayoutSVGResourceContainer(GetLayoutObject());
if (resource_container) {
@@ -130,19 +128,20 @@ void SVGMarkerElement::ChildrenChanged(const ChildrenChange& change) {
if (change.by_parser)
return;
- if (LayoutObject* object = GetLayoutObject())
+ if (LayoutObject* object = GetLayoutObject()) {
object->SetNeedsLayoutAndFullPaintInvalidation(
- LayoutInvalidationReason::kChildChanged);
+ layout_invalidation_reason::kChildChanged);
+ }
}
void SVGMarkerElement::setOrientToAuto() {
- setAttribute(SVGNames::orientAttr, "auto");
+ setAttribute(svg_names::kOrientAttr, "auto");
}
void SVGMarkerElement::setOrientToAngle(SVGAngleTearOff* angle) {
DCHECK(angle);
SVGAngle* target = angle->Target();
- setAttribute(SVGNames::orientAttr, AtomicString(target->ValueAsString()));
+ setAttribute(svg_names::kOrientAttr, AtomicString(target->ValueAsString()));
}
LayoutObject* SVGMarkerElement::CreateLayoutObject(const ComputedStyle&) {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_marker_element.h b/chromium/third_party/blink/renderer/core/svg/svg_marker_element.h
index 453f1ab7ee9..e667e9f152e 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_marker_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_marker_element.h
@@ -36,8 +36,7 @@ enum SVGMarkerUnitsType {
kSVGMarkerUnitsUserSpaceOnUse,
kSVGMarkerUnitsStrokeWidth
};
-template <>
-const SVGEnumerationStringEntries& GetStaticStringEntries<SVGMarkerUnitsType>();
+DECLARE_SVG_ENUM_MAP(SVGMarkerUnitsType);
class SVGMarkerElement final : public SVGElement, public SVGFitToViewBox {
DEFINE_WRAPPERTYPEINFO();
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_mask_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_mask_element.cc
index 0d6cd764251..cac840f1d9d 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_mask_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_mask_element.cc
@@ -29,40 +29,40 @@
namespace blink {
inline SVGMaskElement::SVGMaskElement(Document& document)
- : SVGElement(SVGNames::maskTag, document),
+ : SVGElement(svg_names::kMaskTag, document),
SVGTests(this),
// Spec: If the x/y attribute is not specified, the effect is as if a
// value of "-10%" were specified.
x_(SVGAnimatedLength::Create(this,
- SVGNames::xAttr,
+ svg_names::kXAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kPercentMinus10,
CSSPropertyX)),
y_(SVGAnimatedLength::Create(this,
- SVGNames::yAttr,
+ svg_names::kYAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kPercentMinus10,
CSSPropertyY)),
// Spec: If the width/height attribute is not specified, the effect is as
// if a value of "120%" were specified.
width_(SVGAnimatedLength::Create(this,
- SVGNames::widthAttr,
+ svg_names::kWidthAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kPercent120,
CSSPropertyWidth)),
height_(SVGAnimatedLength::Create(this,
- SVGNames::heightAttr,
+ svg_names::kHeightAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kPercent120,
CSSPropertyHeight)),
mask_units_(SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::Create(
this,
- SVGNames::maskUnitsAttr,
+ svg_names::kMaskUnitsAttr,
SVGUnitTypes::kSvgUnitTypeObjectboundingbox)),
mask_content_units_(
SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::Create(
this,
- SVGNames::maskContentUnitsAttr,
+ svg_names::kMaskContentUnitsAttr,
SVGUnitTypes::kSvgUnitTypeUserspaceonuse)) {
AddToPropertyMap(x_);
AddToPropertyMap(y_);
@@ -109,11 +109,11 @@ void SVGMaskElement::CollectStyleForPresentationAttribute(
void SVGMaskElement::SvgAttributeChanged(const QualifiedName& attr_name) {
bool is_length_attr =
- attr_name == SVGNames::xAttr || attr_name == SVGNames::yAttr ||
- attr_name == SVGNames::widthAttr || attr_name == SVGNames::heightAttr;
+ attr_name == svg_names::kXAttr || attr_name == svg_names::kYAttr ||
+ attr_name == svg_names::kWidthAttr || attr_name == svg_names::kHeightAttr;
- if (is_length_attr || attr_name == SVGNames::maskUnitsAttr ||
- attr_name == SVGNames::maskContentUnitsAttr ||
+ if (is_length_attr || attr_name == svg_names::kMaskUnitsAttr ||
+ attr_name == svg_names::kMaskContentUnitsAttr ||
SVGTests::IsKnownAttribute(attr_name)) {
SVGElement::InvalidationGuard invalidation_guard(this);
@@ -142,9 +142,10 @@ void SVGMaskElement::ChildrenChanged(const ChildrenChange& change) {
if (change.by_parser)
return;
- if (LayoutObject* object = GetLayoutObject())
+ if (LayoutObject* object = GetLayoutObject()) {
object->SetNeedsLayoutAndFullPaintInvalidation(
- LayoutInvalidationReason::kChildChanged);
+ layout_invalidation_reason::kChildChanged);
+ }
}
LayoutObject* SVGMaskElement::CreateLayoutObject(const ComputedStyle&) {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_matrix_tear_off.h b/chromium/third_party/blink/renderer/core/svg/svg_matrix_tear_off.h
index aa78ee20ee0..8c735691f30 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_matrix_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_matrix_tear_off.h
@@ -51,13 +51,16 @@ class CORE_EXPORT SVGMatrixTearOff final : public ScriptWrappable {
public:
static SVGMatrixTearOff* Create(const AffineTransform& value) {
- return new SVGMatrixTearOff(value);
+ return MakeGarbageCollected<SVGMatrixTearOff>(value);
}
static SVGMatrixTearOff* Create(SVGTransformTearOff* target) {
- return new SVGMatrixTearOff(target);
+ return MakeGarbageCollected<SVGMatrixTearOff>(target);
}
+ explicit SVGMatrixTearOff(const AffineTransform&);
+ explicit SVGMatrixTearOff(SVGTransformTearOff*);
+
double a() { return Value().A(); }
double b() { return Value().B(); }
double c() { return Value().C(); }
@@ -91,9 +94,6 @@ class CORE_EXPORT SVGMatrixTearOff final : public ScriptWrappable {
void Trace(blink::Visitor*) override;
private:
- explicit SVGMatrixTearOff(const AffineTransform&);
- explicit SVGMatrixTearOff(SVGTransformTearOff*);
-
AffineTransform* MutableValue();
void CommitChange();
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_metadata_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_metadata_element.cc
index 6caa0d60709..0fd9920e170 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_metadata_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_metadata_element.cc
@@ -25,7 +25,7 @@
namespace blink {
inline SVGMetadataElement::SVGMetadataElement(Document& document)
- : SVGElement(SVGNames::metadataTag, document) {}
+ : SVGElement(svg_names::kMetadataTag, document) {}
DEFINE_NODE_FACTORY(SVGMetadataElement)
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_mpath_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_mpath_element.cc
index 8256e3f48f1..b49d09d5f5c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_mpath_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_mpath_element.cc
@@ -28,8 +28,7 @@
namespace blink {
inline SVGMPathElement::SVGMPathElement(Document& document)
- : SVGElement(SVGNames::mpathTag, document), SVGURIReference(this) {
- DCHECK(RuntimeEnabledFeatures::SMILEnabled());
+ : SVGElement(svg_names::kMPathTag, document), SVGURIReference(this) {
}
void SVGMPathElement::Trace(blink::Visitor* visitor) {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_mpath_element.idl b/chromium/third_party/blink/renderer/core/svg/svg_mpath_element.idl
index c3933b2b691..7889bbb94ff 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_mpath_element.idl
+++ b/chromium/third_party/blink/renderer/core/svg/svg_mpath_element.idl
@@ -25,7 +25,6 @@
// https://svgwg.org/specs/animations/#InterfaceSVGMPathElement
-[RuntimeEnabled=SMIL]
interface SVGMPathElement : SVGElement {
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_number.h b/chromium/third_party/blink/renderer/core/svg/svg_number.h
index 7cb5255ad9e..efd281a268c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_number.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_number.h
@@ -44,7 +44,11 @@ class SVGNumber : public SVGPropertyHelper<SVGNumber> {
typedef SVGNumberTearOff TearOffType;
typedef float PrimitiveType;
- static SVGNumber* Create(float value = 0.0f) { return new SVGNumber(value); }
+ static SVGNumber* Create(float value = 0.0f) {
+ return MakeGarbageCollected<SVGNumber>(value);
+ }
+
+ explicit SVGNumber(float);
virtual SVGNumber* Clone() const;
@@ -71,8 +75,6 @@ class SVGNumber : public SVGPropertyHelper<SVGNumber> {
static constexpr int kInitialValueBits = 2;
protected:
- explicit SVGNumber(float);
-
template <typename CharType>
SVGParsingError Parse(const CharType*& ptr, const CharType* end);
@@ -88,14 +90,13 @@ DEFINE_SVG_PROPERTY_TYPE_CASTS(SVGNumber);
class SVGNumberAcceptPercentage final : public SVGNumber {
public:
static SVGNumberAcceptPercentage* Create(float value = 0) {
- return new SVGNumberAcceptPercentage(value);
+ return MakeGarbageCollected<SVGNumberAcceptPercentage>(value);
}
+ explicit SVGNumberAcceptPercentage(float);
+
SVGNumber* Clone() const override;
SVGParsingError SetValueAsString(const String&) override;
-
- private:
- explicit SVGNumberAcceptPercentage(float);
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_number_list.h b/chromium/third_party/blink/renderer/core/svg/svg_number_list.h
index ebf00bd2303..ca3c6c4332f 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_number_list.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_number_list.h
@@ -44,8 +44,11 @@ class SVGNumberList final
public:
typedef SVGNumberListTearOff TearOffType;
- static SVGNumberList* Create() { return new SVGNumberList(); }
+ static SVGNumberList* Create() {
+ return MakeGarbageCollected<SVGNumberList>();
+ }
+ SVGNumberList();
~SVGNumberList() override;
SVGParsingError SetValueAsString(const String&);
@@ -69,8 +72,6 @@ class SVGNumberList final
Vector<float> ToFloatVector() const;
private:
- SVGNumberList();
-
template <typename CharType>
SVGParsingError Parse(const CharType*& ptr, const CharType* end);
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_number_list_tear_off.h b/chromium/third_party/blink/renderer/core/svg/svg_number_list_tear_off.h
index dab0a184dd6..7e5878f3596 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_number_list_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_number_list_tear_off.h
@@ -45,10 +45,10 @@ class SVGNumberListTearOff final
SVGNumberList* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val) {
- return new SVGNumberListTearOff(target, binding, property_is_anim_val);
+ return MakeGarbageCollected<SVGNumberListTearOff>(target, binding,
+ property_is_anim_val);
}
- private:
SVGNumberListTearOff(SVGNumberList* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_number_optional_number.h b/chromium/third_party/blink/renderer/core/svg/svg_number_optional_number.h
index 07f8e51f55c..5224a522648 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_number_optional_number.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_number_optional_number.h
@@ -45,9 +45,12 @@ class SVGNumberOptionalNumber final : public SVGPropertyBase {
static SVGNumberOptionalNumber* Create(SVGNumber* first_number,
SVGNumber* second_number) {
- return new SVGNumberOptionalNumber(first_number, second_number);
+ return MakeGarbageCollected<SVGNumberOptionalNumber>(first_number,
+ second_number);
}
+ SVGNumberOptionalNumber(SVGNumber* first_number, SVGNumber* second_number);
+
SVGNumberOptionalNumber* Clone() const;
SVGPropertyBase* CloneForAnimation(const String&) const override;
@@ -78,8 +81,6 @@ class SVGNumberOptionalNumber final : public SVGPropertyBase {
void Trace(blink::Visitor*) override;
protected:
- SVGNumberOptionalNumber(SVGNumber* first_number, SVGNumber* second_number);
-
Member<SVGNumber> first_number_;
Member<SVGNumber> second_number_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_number_tear_off.h b/chromium/third_party/blink/renderer/core/svg/svg_number_tear_off.h
index cdc90fcb7f6..7748b332636 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_number_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_number_tear_off.h
@@ -43,17 +43,17 @@ class SVGNumberTearOff : public SVGPropertyTearOff<SVGNumber> {
static SVGNumberTearOff* Create(SVGNumber* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val) {
- return new SVGNumberTearOff(target, binding, property_is_anim_val);
+ return MakeGarbageCollected<SVGNumberTearOff>(target, binding,
+ property_is_anim_val);
}
static SVGNumberTearOff* CreateDetached();
- void setValue(float, ExceptionState&);
- float value() { return Target()->Value(); }
-
- protected:
SVGNumberTearOff(SVGNumber*,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType);
+
+ void setValue(float, ExceptionState&);
+ float value() { return Target()->Value(); }
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_path.h b/chromium/third_party/blink/renderer/core/svg/svg_path.h
index c3b5d0aa0a8..696cc58d4a4 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_path.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_path.h
@@ -42,11 +42,13 @@ class SVGPath final : public SVGPropertyBase {
public:
typedef void TearOffType;
- static SVGPath* Create() { return new SVGPath(); }
+ static SVGPath* Create() { return MakeGarbageCollected<SVGPath>(); }
static SVGPath* Create(cssvalue::CSSPathValue* path_value) {
- return new SVGPath(path_value);
+ return MakeGarbageCollected<SVGPath>(path_value);
}
+ SVGPath();
+ explicit SVGPath(cssvalue::CSSPathValue*);
~SVGPath() override;
const SVGPathByteStream& ByteStream() const {
@@ -77,9 +79,6 @@ class SVGPath final : public SVGPropertyBase {
void Trace(blink::Visitor*) override;
private:
- SVGPath();
- explicit SVGPath(cssvalue::CSSPathValue*);
-
Member<cssvalue::CSSPathValue> path_value_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_path_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_path_element.cc
index 1f96415490b..6b8cffd0da8 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_path_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_path_element.cc
@@ -29,8 +29,8 @@
namespace blink {
inline SVGPathElement::SVGPathElement(Document& document)
- : SVGGeometryElement(SVGNames::pathTag, document),
- path_(SVGAnimatedPath::Create(this, SVGNames::dAttr, CSSPropertyD)) {
+ : SVGGeometryElement(svg_names::kPathTag, document),
+ path_(SVGAnimatedPath::Create(this, svg_names::kDAttr, CSSPropertyD)) {
AddToPropertyMap(path_);
}
@@ -83,7 +83,7 @@ SVGPointTearOff* SVGPathElement::getPointAtLength(float length) {
}
void SVGPathElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::dAttr) {
+ if (attr_name == svg_names::kDAttr) {
InvalidateMPathDependencies();
GeometryPresentationAttributeChanged(attr_name);
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_path_parser.h b/chromium/third_party/blink/renderer/core/svg/svg_path_parser.h
index b8cc12131be..32191f188d1 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_path_parser.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_path_parser.h
@@ -33,7 +33,7 @@ namespace blink {
class SVGPathConsumer;
-namespace SVGPathParser {
+namespace svg_path_parser {
template <typename SourceType, typename ConsumerType>
inline bool ParsePath(SourceType& source, ConsumerType& consumer) {
@@ -47,7 +47,7 @@ inline bool ParsePath(SourceType& source, ConsumerType& consumer) {
return true;
}
-} // namespace SVGPathParser
+} // namespace svg_path_parser
class SVGPathNormalizer {
STACK_ALLOCATED();
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_path_parser_test.cc b/chromium/third_party/blink/renderer/core/svg/svg_path_parser_test.cc
index f4c64252802..231dbe7d212 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_path_parser_test.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_path_parser_test.cc
@@ -16,7 +16,7 @@ bool ParsePath(const char* input, String& output) {
String input_string(input);
SVGPathStringSource source(input_string);
SVGPathStringBuilder builder;
- bool had_error = SVGPathParser::ParsePath(source, builder);
+ bool had_error = svg_path_parser::ParsePath(source, builder);
output = builder.Result();
// Coerce a null result to empty.
if (output.IsNull())
@@ -160,7 +160,7 @@ SVGParsingError ParsePathWithError(const char* input) {
String input_string(input);
SVGPathStringSource source(input_string);
SVGPathStringBuilder builder;
- SVGPathParser::ParsePath(source, builder);
+ svg_path_parser::ParsePath(source, builder);
return source.ParseError();
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_path_string_source.cc b/chromium/third_party/blink/renderer/core/svg/svg_path_string_source.cc
index 223f7801ca5..befbe62ddcc 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_path_string_source.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_path_string_source.cc
@@ -26,12 +26,12 @@
namespace blink {
SVGPathStringSource::SVGPathStringSource(const String& string)
- : is8_bit_source_(string.Is8Bit()),
+ : is_8bit_source_(string.Is8Bit()),
previous_command_(kPathSegUnknown),
string_(string) {
DCHECK(!string.IsNull());
- if (is8_bit_source_) {
+ if (is_8bit_source_) {
current_.character8_ = string.Characters8();
end_.character8_ = current_.character8_ + string.length();
} else {
@@ -42,7 +42,7 @@ SVGPathStringSource::SVGPathStringSource(const String& string)
}
void SVGPathStringSource::EatWhitespace() {
- if (is8_bit_source_)
+ if (is_8bit_source_)
SkipOptionalSVGSpaces(current_.character8_, end_.character8_);
else
SkipOptionalSVGSpaces(current_.character16_, end_.character16_);
@@ -124,7 +124,7 @@ static bool MaybeImplicitCommand(unsigned lookahead,
void SVGPathStringSource::SetErrorMark(SVGParseStatus status) {
if (error_.Status() != SVGParseStatus::kNoError)
return;
- size_t locus = is8_bit_source_
+ size_t locus = is_8bit_source_
? current_.character8_ - string_.Characters8()
: current_.character16_ - string_.Characters16();
error_ = SVGParsingError(status, locus);
@@ -133,7 +133,7 @@ void SVGPathStringSource::SetErrorMark(SVGParseStatus status) {
float SVGPathStringSource::ParseNumberWithError() {
float number_value = 0;
bool error;
- if (is8_bit_source_)
+ if (is_8bit_source_)
error = !ParseNumber(current_.character8_, end_.character8_, number_value);
else
error =
@@ -146,7 +146,7 @@ float SVGPathStringSource::ParseNumberWithError() {
bool SVGPathStringSource::ParseArcFlagWithError() {
bool flag_value = false;
bool error;
- if (is8_bit_source_)
+ if (is_8bit_source_)
error = !ParseArcFlag(current_.character8_, end_.character8_, flag_value);
else
error = !ParseArcFlag(current_.character16_, end_.character16_, flag_value);
@@ -159,7 +159,7 @@ PathSegmentData SVGPathStringSource::ParseSegment() {
DCHECK(HasMoreData());
PathSegmentData segment;
unsigned lookahead =
- is8_bit_source_ ? *current_.character8_ : *current_.character16_;
+ is_8bit_source_ ? *current_.character8_ : *current_.character16_;
SVGPathSegType command = MapLetterToSegmentType(lookahead);
if (UNLIKELY(previous_command_ == kPathSegUnknown)) {
// First command has to be a moveto.
@@ -168,7 +168,7 @@ PathSegmentData SVGPathStringSource::ParseSegment() {
return segment;
}
// Consume command letter.
- if (is8_bit_source_)
+ if (is_8bit_source_)
current_.character8_++;
else
current_.character16_++;
@@ -181,7 +181,7 @@ PathSegmentData SVGPathStringSource::ParseSegment() {
}
} else {
// Valid explicit command.
- if (is8_bit_source_)
+ if (is_8bit_source_)
current_.character8_++;
else
current_.character16_++;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_path_string_source.h b/chromium/third_party/blink/renderer/core/svg/svg_path_string_source.h
index a20acbe5463..ba18f114c6f 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_path_string_source.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_path_string_source.h
@@ -36,7 +36,7 @@ class CORE_EXPORT SVGPathStringSource {
explicit SVGPathStringSource(const String&);
bool HasMoreData() const {
- if (is8_bit_source_)
+ if (is_8bit_source_)
return current_.character8_ < end_.character8_;
return current_.character16_ < end_.character16_;
}
@@ -50,7 +50,7 @@ class CORE_EXPORT SVGPathStringSource {
bool ParseArcFlagWithError();
void SetErrorMark(SVGParseStatus);
- bool is8_bit_source_;
+ bool is_8bit_source_;
union {
const LChar* character8_;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_path_utilities.cc b/chromium/third_party/blink/renderer/core/svg/svg_path_utilities.cc
index 4fb92cd2d88..37e46ea7d10 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_path_utilities.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_path_utilities.cc
@@ -34,7 +34,7 @@ bool BuildPathFromString(const String& d, Path& result) {
SVGPathBuilder builder(result);
SVGPathStringSource source(d);
- return SVGPathParser::ParsePath(source, builder);
+ return svg_path_parser::ParsePath(source, builder);
}
bool BuildPathFromByteStream(const SVGPathByteStream& stream, Path& result) {
@@ -43,7 +43,7 @@ bool BuildPathFromByteStream(const SVGPathByteStream& stream, Path& result) {
SVGPathBuilder builder(result);
SVGPathByteStreamSource source(stream);
- return SVGPathParser::ParsePath(source, builder);
+ return svg_path_parser::ParsePath(source, builder);
}
String BuildStringFromByteStream(const SVGPathByteStream& stream,
@@ -55,9 +55,9 @@ String BuildStringFromByteStream(const SVGPathByteStream& stream,
SVGPathByteStreamSource source(stream);
if (format == kTransformToAbsolute) {
SVGPathAbsolutizer absolutizer(&builder);
- SVGPathParser::ParsePath(source, absolutizer);
+ svg_path_parser::ParsePath(source, absolutizer);
} else {
- SVGPathParser::ParsePath(source, builder);
+ svg_path_parser::ParsePath(source, builder);
}
return builder.Result();
}
@@ -74,7 +74,7 @@ SVGParsingError BuildByteStreamFromString(const String& d,
SVGPathByteStreamBuilder builder(result);
SVGPathStringSource source(d);
- SVGPathParser::ParsePath(source, builder);
+ svg_path_parser::ParsePath(source, builder);
result.ShrinkToFit();
return source.ParseError();
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_pattern_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_pattern_element.cc
index 1ed75ec4aa9..c165ccb2a8a 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_pattern_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_pattern_element.cc
@@ -34,38 +34,38 @@
namespace blink {
inline SVGPatternElement::SVGPatternElement(Document& document)
- : SVGElement(SVGNames::patternTag, document),
+ : SVGElement(svg_names::kPatternTag, document),
SVGURIReference(this),
SVGTests(this),
SVGFitToViewBox(this),
x_(SVGAnimatedLength::Create(this,
- SVGNames::xAttr,
+ svg_names::kXAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero)),
y_(SVGAnimatedLength::Create(this,
- SVGNames::yAttr,
+ svg_names::kYAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero)),
width_(SVGAnimatedLength::Create(this,
- SVGNames::widthAttr,
+ svg_names::kWidthAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero)),
height_(SVGAnimatedLength::Create(this,
- SVGNames::heightAttr,
+ svg_names::kHeightAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero)),
pattern_transform_(
SVGAnimatedTransformList::Create(this,
- SVGNames::patternTransformAttr,
+ svg_names::kPatternTransformAttr,
CSSPropertyTransform)),
pattern_units_(SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::Create(
this,
- SVGNames::patternUnitsAttr,
+ svg_names::kPatternUnitsAttr,
SVGUnitTypes::kSvgUnitTypeObjectboundingbox)),
pattern_content_units_(
SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::Create(
this,
- SVGNames::patternContentUnitsAttr,
+ svg_names::kPatternContentUnitsAttr,
SVGUnitTypes::kSvgUnitTypeUserspaceonuse)) {
AddToPropertyMap(x_);
AddToPropertyMap(y_);
@@ -105,7 +105,7 @@ void SVGPatternElement::BuildPendingResource() {
if (resource_)
resource_->AddClient(EnsureSVGResourceClient());
- InvalidatePattern(LayoutInvalidationReason::kSvgResourceInvalidated);
+ InvalidatePattern(layout_invalidation_reason::kSvgResourceInvalidated);
if (auto* layout_object = GetLayoutObject())
SVGResourcesCache::ResourceReferenceChanged(*layout_object);
}
@@ -121,7 +121,7 @@ void SVGPatternElement::CollectStyleForPresentationAttribute(
const QualifiedName& name,
const AtomicString& value,
MutableCSSPropertyValueSet* style) {
- if (name == SVGNames::patternTransformAttr) {
+ if (name == svg_names::kPatternTransformAttr) {
AddPropertyToPresentationAttributeStyle(
style, CSSPropertyTransform,
*pattern_transform_->CurrentValue()->CssValue());
@@ -132,18 +132,18 @@ void SVGPatternElement::CollectStyleForPresentationAttribute(
void SVGPatternElement::SvgAttributeChanged(const QualifiedName& attr_name) {
bool is_length_attr =
- attr_name == SVGNames::xAttr || attr_name == SVGNames::yAttr ||
- attr_name == SVGNames::widthAttr || attr_name == SVGNames::heightAttr;
+ attr_name == svg_names::kXAttr || attr_name == svg_names::kYAttr ||
+ attr_name == svg_names::kWidthAttr || attr_name == svg_names::kHeightAttr;
- if (attr_name == SVGNames::patternTransformAttr) {
+ if (attr_name == svg_names::kPatternTransformAttr) {
InvalidateSVGPresentationAttributeStyle();
SetNeedsStyleRecalc(kLocalStyleChange,
StyleChangeReasonForTracing::FromAttribute(attr_name));
}
- if (is_length_attr || attr_name == SVGNames::patternUnitsAttr ||
- attr_name == SVGNames::patternContentUnitsAttr ||
- attr_name == SVGNames::patternTransformAttr ||
+ if (is_length_attr || attr_name == svg_names::kPatternUnitsAttr ||
+ attr_name == svg_names::kPatternContentUnitsAttr ||
+ attr_name == svg_names::kPatternTransformAttr ||
SVGFitToViewBox::IsKnownAttribute(attr_name) ||
SVGTests::IsKnownAttribute(attr_name)) {
SVGElement::InvalidationGuard invalidation_guard(this);
@@ -151,7 +151,7 @@ void SVGPatternElement::SvgAttributeChanged(const QualifiedName& attr_name) {
if (is_length_attr)
UpdateRelativeLengthsInformation();
- InvalidatePattern(LayoutInvalidationReason::kAttributeChanged);
+ InvalidatePattern(layout_invalidation_reason::kAttributeChanged);
return;
}
@@ -184,7 +184,7 @@ void SVGPatternElement::ChildrenChanged(const ChildrenChange& change) {
if (change.by_parser)
return;
- InvalidatePattern(LayoutInvalidationReason::kChildChanged);
+ InvalidatePattern(layout_invalidation_reason::kChildChanged);
}
void SVGPatternElement::InvalidatePattern(
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_point.h b/chromium/third_party/blink/renderer/core/svg/svg_point.h
index fc39e06ee5a..13c5246f692 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_point.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_point.h
@@ -44,12 +44,15 @@ class SVGPoint final : public SVGPropertyHelper<SVGPoint> {
public:
typedef SVGPointTearOff TearOffType;
- static SVGPoint* Create() { return new SVGPoint(); }
+ static SVGPoint* Create() { return MakeGarbageCollected<SVGPoint>(); }
static SVGPoint* Create(const FloatPoint& point) {
- return new SVGPoint(point);
+ return MakeGarbageCollected<SVGPoint>(point);
}
+ SVGPoint();
+ explicit SVGPoint(const FloatPoint&);
+
SVGPoint* Clone() const;
const FloatPoint& Value() const { return value_; }
@@ -79,9 +82,6 @@ class SVGPoint final : public SVGPropertyHelper<SVGPoint> {
static AnimatedPropertyType ClassType() { return kAnimatedPoint; }
private:
- SVGPoint();
- explicit SVGPoint(const FloatPoint&);
-
template <typename CharType>
SVGParsingError Parse(const CharType*& ptr, const CharType* end);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_point_list.h b/chromium/third_party/blink/renderer/core/svg/svg_point_list.h
index 98eae93939d..76a1973bc83 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_point_list.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_point_list.h
@@ -44,8 +44,9 @@ class SVGPointList final
public:
typedef SVGPointListTearOff TearOffType;
- static SVGPointList* Create() { return new SVGPointList(); }
+ static SVGPointList* Create() { return MakeGarbageCollected<SVGPointList>(); }
+ SVGPointList();
~SVGPointList() override;
SVGParsingError SetValueAsString(const String&);
@@ -67,8 +68,6 @@ class SVGPointList final
AnimatedPropertyType GetType() const override { return ClassType(); }
private:
- SVGPointList();
-
template <typename CharType>
SVGParsingError Parse(const CharType*& ptr, const CharType* end);
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_point_list_tear_off.h b/chromium/third_party/blink/renderer/core/svg/svg_point_list_tear_off.h
index e29f06e308e..0dacaf36c61 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_point_list_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_point_list_tear_off.h
@@ -45,10 +45,10 @@ class SVGPointListTearOff final
SVGPointList* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val) {
- return new SVGPointListTearOff(target, binding, property_is_anim_val);
+ return MakeGarbageCollected<SVGPointListTearOff>(target, binding,
+ property_is_anim_val);
}
- private:
SVGPointListTearOff(SVGPointList* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_point_tear_off.h b/chromium/third_party/blink/renderer/core/svg/svg_point_tear_off.h
index 2caab949654..dcc63e148ff 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_point_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_point_tear_off.h
@@ -45,26 +45,26 @@ class SVGPointTearOff : public SVGPropertyTearOff<SVGPoint> {
static SVGPointTearOff* Create(SVGPoint* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val) {
- return new SVGPointTearOff(target, binding, property_is_anim_val);
+ return MakeGarbageCollected<SVGPointTearOff>(target, binding,
+ property_is_anim_val);
}
static SVGPointTearOff* Create(SVGPoint* target,
SVGElement* context_element) {
- return new SVGPointTearOff(target, context_element);
+ return MakeGarbageCollected<SVGPointTearOff>(target, context_element);
}
static SVGPointTearOff* CreateDetached(const FloatPoint&);
+ SVGPointTearOff(SVGPoint*,
+ SVGAnimatedPropertyBase* binding,
+ PropertyIsAnimValType);
+ SVGPointTearOff(SVGPoint*, SVGElement*);
+
void setX(float, ExceptionState&);
void setY(float, ExceptionState&);
float x() { return Target()->X(); }
float y() { return Target()->Y(); }
SVGPointTearOff* matrixTransform(SVGMatrixTearOff*);
-
- protected:
- SVGPointTearOff(SVGPoint*,
- SVGAnimatedPropertyBase* binding,
- PropertyIsAnimValType);
- SVGPointTearOff(SVGPoint*, SVGElement*);
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_poly_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_poly_element.cc
index b1d40b4b03f..dacf9445c35 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_poly_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_poly_element.cc
@@ -29,7 +29,7 @@ SVGPolyElement::SVGPolyElement(const QualifiedName& tag_name,
Document& document)
: SVGGeometryElement(tag_name, document),
points_(SVGAnimatedPointList::Create(this,
- SVGNames::pointsAttr,
+ svg_names::kPointsAttr,
SVGPointList::Create())) {
AddToPropertyMap(points_);
}
@@ -59,7 +59,7 @@ Path SVGPolyElement::AsPathFromPoints() const {
}
void SVGPolyElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::pointsAttr) {
+ if (attr_name == svg_names::kPointsAttr) {
GeometryAttributeChanged();
return;
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_poly_element.h b/chromium/third_party/blink/renderer/core/svg/svg_poly_element.h
index 37c66133615..87a146ced44 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_poly_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_poly_element.h
@@ -50,8 +50,8 @@ class SVGPolyElement : public SVGGeometryElement {
};
inline bool IsSVGPolyElement(const SVGElement& element) {
- return element.HasTagName(SVGNames::polygonTag) ||
- element.HasTagName(SVGNames::polylineTag);
+ return element.HasTagName(svg_names::kPolygonTag) ||
+ element.HasTagName(svg_names::kPolylineTag);
}
DEFINE_SVGELEMENT_TYPE_CASTS_WITH_FUNCTION(SVGPolyElement);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_polygon_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_polygon_element.cc
index b2ba991e2c4..4149711d37c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_polygon_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_polygon_element.cc
@@ -25,7 +25,7 @@
namespace blink {
inline SVGPolygonElement::SVGPolygonElement(Document& document)
- : SVGPolyElement(SVGNames::polygonTag, document) {}
+ : SVGPolyElement(svg_names::kPolygonTag, document) {}
DEFINE_NODE_FACTORY(SVGPolygonElement)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_polyline_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_polyline_element.cc
index 5e355c9bc0f..1d2b1f18e03 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_polyline_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_polyline_element.cc
@@ -25,7 +25,7 @@
namespace blink {
SVGPolylineElement::SVGPolylineElement(Document& document)
- : SVGPolyElement(SVGNames::polylineTag, document) {}
+ : SVGPolyElement(svg_names::kPolylineTag, document) {}
DEFINE_NODE_FACTORY(SVGPolylineElement)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_preserve_aspect_ratio.h b/chromium/third_party/blink/renderer/core/svg/svg_preserve_aspect_ratio.h
index 8aa69f0d98c..24750bea9ff 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_preserve_aspect_ratio.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_preserve_aspect_ratio.h
@@ -56,9 +56,11 @@ class SVGPreserveAspectRatio final
typedef SVGPreserveAspectRatioTearOff TearOffType;
static SVGPreserveAspectRatio* Create() {
- return new SVGPreserveAspectRatio();
+ return MakeGarbageCollected<SVGPreserveAspectRatio>();
}
+ SVGPreserveAspectRatio();
+
virtual SVGPreserveAspectRatio* Clone() const;
bool operator==(const SVGPreserveAspectRatio&) const;
@@ -106,8 +108,6 @@ class SVGPreserveAspectRatio final
void SetDefault();
private:
- SVGPreserveAspectRatio();
-
template <typename CharType>
SVGParsingError ParseInternal(const CharType*& ptr,
const CharType* end,
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_preserve_aspect_ratio_tear_off.h b/chromium/third_party/blink/renderer/core/svg/svg_preserve_aspect_ratio_tear_off.h
index a2b3d6d9600..240844fc1be 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_preserve_aspect_ratio_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_preserve_aspect_ratio_tear_off.h
@@ -77,19 +77,18 @@ class SVGPreserveAspectRatioTearOff final
SVGPreserveAspectRatio* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val) {
- return new SVGPreserveAspectRatioTearOff(target, binding,
- property_is_anim_val);
+ return MakeGarbageCollected<SVGPreserveAspectRatioTearOff>(
+ target, binding, property_is_anim_val);
}
+ SVGPreserveAspectRatioTearOff(SVGPreserveAspectRatio*,
+ SVGAnimatedPropertyBase* binding,
+ PropertyIsAnimValType);
+
void setAlign(unsigned short, ExceptionState&);
unsigned short align() { return Target()->Align(); }
void setMeetOrSlice(unsigned short, ExceptionState&);
unsigned short meetOrSlice() { return Target()->MeetOrSlice(); }
-
- private:
- SVGPreserveAspectRatioTearOff(SVGPreserveAspectRatio*,
- SVGAnimatedPropertyBase* binding,
- PropertyIsAnimValType);
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_radial_gradient_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_radial_gradient_element.cc
index c855caf7683..e5800f6be35 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_radial_gradient_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_radial_gradient_element.cc
@@ -29,33 +29,33 @@
namespace blink {
inline SVGRadialGradientElement::SVGRadialGradientElement(Document& document)
- : SVGGradientElement(SVGNames::radialGradientTag, document),
+ : SVGGradientElement(svg_names::kRadialGradientTag, document),
// Spec: If the cx/cy/r attribute is not specified, the effect is as if a
// value of "50%" were specified.
cx_(SVGAnimatedLength::Create(this,
- SVGNames::cxAttr,
+ svg_names::kCxAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kPercent50)),
cy_(SVGAnimatedLength::Create(this,
- SVGNames::cyAttr,
+ svg_names::kCyAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kPercent50)),
r_(SVGAnimatedLength::Create(this,
- SVGNames::rAttr,
+ svg_names::kRAttr,
SVGLengthMode::kOther,
SVGLength::Initial::kPercent50)),
fx_(SVGAnimatedLength::Create(this,
- SVGNames::fxAttr,
+ svg_names::kFxAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kPercent50)),
fy_(SVGAnimatedLength::Create(this,
- SVGNames::fyAttr,
+ svg_names::kFyAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kPercent50)),
// SVG2-Draft Spec: If the fr attribute is not specified, the effect is as
// if a value of "0%" were specified.
fr_(SVGAnimatedLength::Create(this,
- SVGNames::frAttr,
+ svg_names::kFrAttr,
SVGLengthMode::kOther,
SVGLength::Initial::kPercent0)) {
AddToPropertyMap(cx_);
@@ -80,12 +80,12 @@ DEFINE_NODE_FACTORY(SVGRadialGradientElement)
void SVGRadialGradientElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::cxAttr || attr_name == SVGNames::cyAttr ||
- attr_name == SVGNames::fxAttr || attr_name == SVGNames::fyAttr ||
- attr_name == SVGNames::rAttr || attr_name == SVGNames::frAttr) {
+ if (attr_name == svg_names::kCxAttr || attr_name == svg_names::kCyAttr ||
+ attr_name == svg_names::kFxAttr || attr_name == svg_names::kFyAttr ||
+ attr_name == svg_names::kRAttr || attr_name == svg_names::kFrAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
UpdateRelativeLengthsInformation();
- InvalidateGradient(LayoutInvalidationReason::kAttributeChanged);
+ InvalidateGradient(layout_invalidation_reason::kAttributeChanged);
return;
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_rect.h b/chromium/third_party/blink/renderer/core/svg/svg_rect.h
index be77de53b23..de2a678a5fc 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_rect.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_rect.h
@@ -33,15 +33,20 @@ class SVGRect final : public SVGPropertyHelper<SVGRect> {
public:
typedef SVGRectTearOff TearOffType;
- static SVGRect* Create() { return new SVGRect(); }
+ static SVGRect* Create() { return MakeGarbageCollected<SVGRect>(); }
static SVGRect* CreateInvalid() {
- SVGRect* rect = new SVGRect();
+ SVGRect* rect = MakeGarbageCollected<SVGRect>();
rect->SetInvalid();
return rect;
}
- static SVGRect* Create(const FloatRect& rect) { return new SVGRect(rect); }
+ static SVGRect* Create(const FloatRect& rect) {
+ return MakeGarbageCollected<SVGRect>(rect);
+ }
+
+ SVGRect();
+ SVGRect(const FloatRect&);
SVGRect* Clone() const;
@@ -77,9 +82,6 @@ class SVGRect final : public SVGPropertyHelper<SVGRect> {
static AnimatedPropertyType ClassType() { return kAnimatedRect; }
private:
- SVGRect();
- SVGRect(const FloatRect&);
-
template <typename CharType>
SVGParsingError Parse(const CharType*& ptr, const CharType* end);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_rect_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_rect_element.cc
index ed62484c0f7..9bfa8676d0f 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_rect_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_rect_element.cc
@@ -26,34 +26,34 @@
namespace blink {
inline SVGRectElement::SVGRectElement(Document& document)
- : SVGGeometryElement(SVGNames::rectTag, document),
+ : SVGGeometryElement(svg_names::kRectTag, document),
x_(SVGAnimatedLength::Create(this,
- SVGNames::xAttr,
+ svg_names::kXAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero,
CSSPropertyX)),
y_(SVGAnimatedLength::Create(this,
- SVGNames::yAttr,
+ svg_names::kYAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero,
CSSPropertyY)),
width_(SVGAnimatedLength::Create(this,
- SVGNames::widthAttr,
+ svg_names::kWidthAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero,
CSSPropertyWidth)),
height_(SVGAnimatedLength::Create(this,
- SVGNames::heightAttr,
+ svg_names::kHeightAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero,
CSSPropertyHeight)),
rx_(SVGAnimatedLength::Create(this,
- SVGNames::rxAttr,
+ svg_names::kRxAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero,
CSSPropertyRx)),
ry_(SVGAnimatedLength::Create(this,
- SVGNames::ryAttr,
+ svg_names::kRyAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero,
CSSPropertyRy)) {
@@ -139,9 +139,10 @@ void SVGRectElement::CollectStyleForPresentationAttribute(
}
void SVGRectElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::xAttr || attr_name == SVGNames::yAttr ||
- attr_name == SVGNames::widthAttr || attr_name == SVGNames::heightAttr ||
- attr_name == SVGNames::rxAttr || attr_name == SVGNames::ryAttr) {
+ if (attr_name == svg_names::kXAttr || attr_name == svg_names::kYAttr ||
+ attr_name == svg_names::kWidthAttr ||
+ attr_name == svg_names::kHeightAttr || attr_name == svg_names::kRxAttr ||
+ attr_name == svg_names::kRyAttr) {
UpdateRelativeLengthsInformation();
GeometryPresentationAttributeChanged(attr_name);
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_rect_tear_off.h b/chromium/third_party/blink/renderer/core/svg/svg_rect_tear_off.h
index dad272d61b5..36976210c43 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_rect_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_rect_tear_off.h
@@ -43,10 +43,15 @@ class SVGRectTearOff : public SVGPropertyTearOff<SVGRect> {
static SVGRectTearOff* Create(SVGRect* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val) {
- return new SVGRectTearOff(target, binding, property_is_anim_val);
+ return MakeGarbageCollected<SVGRectTearOff>(target, binding,
+ property_is_anim_val);
}
static SVGRectTearOff* CreateDetached(const FloatRect&);
+ SVGRectTearOff(SVGRect*,
+ SVGAnimatedPropertyBase* binding,
+ PropertyIsAnimValType);
+
void setX(float, ExceptionState&);
void setY(float, ExceptionState&);
void setWidth(float, ExceptionState&);
@@ -55,11 +60,6 @@ class SVGRectTearOff : public SVGPropertyTearOff<SVGRect> {
float y() { return Target()->Y(); }
float width() { return Target()->Width(); }
float height() { return Target()->Height(); }
-
- private:
- SVGRectTearOff(SVGRect*,
- SVGAnimatedPropertyBase* binding,
- PropertyIsAnimValType);
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_resource.cc b/chromium/third_party/blink/renderer/core/svg/svg_resource.cc
index 7e633505609..bf7c8a10c7b 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_resource.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_resource.cc
@@ -126,7 +126,7 @@ void ExternalSVGResource::Load(const Document& document) {
if (resource_document_)
return;
ResourceLoaderOptions options;
- options.initiator_info.name = FetchInitiatorTypeNames::css;
+ options.initiator_info.name = fetch_initiator_type_names::kCSS;
FetchParameters params(ResourceRequest(url_), options);
params.MutableResourceRequest().SetFetchRequestMode(
network::mojom::FetchRequestMode::kSameOrigin);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_script_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_script_element.cc
index 0d76d329616..d6b017bf1d4 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_script_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_script_element.cc
@@ -35,21 +35,21 @@ namespace blink {
inline SVGScriptElement::SVGScriptElement(Document& document,
const CreateElementFlags flags)
- : SVGElement(SVGNames::scriptTag, document),
+ : SVGElement(svg_names::kScriptTag, document),
SVGURIReference(this),
loader_(InitializeScriptLoader(flags.IsCreatedByParser(),
flags.WasAlreadyStarted())) {}
SVGScriptElement* SVGScriptElement::Create(Document& document,
const CreateElementFlags flags) {
- return new SVGScriptElement(document, flags);
+ return MakeGarbageCollected<SVGScriptElement>(document, flags);
}
void SVGScriptElement::ParseAttribute(
const AttributeModificationParams& params) {
- if (params.name == HTMLNames::onerrorAttr) {
+ if (params.name == html_names::kOnerrorAttr) {
SetAttributeEventListener(
- EventTypeNames::error,
+ event_type_names::kError,
CreateAttributeEventListener(
this, params.name, params.new_value,
JSEventHandler::HandlerType::kOnErrorEventHandler));
@@ -109,7 +109,7 @@ String SVGScriptElement::SourceAttributeValue() const {
}
String SVGScriptElement::TypeAttributeValue() const {
- return getAttribute(SVGNames::typeAttr).GetString();
+ return getAttribute(svg_names::kTypeAttr).GetString();
}
String SVGScriptElement::TextFromChildren() {
@@ -156,12 +156,12 @@ Element* SVGScriptElement::CloneWithoutAttributesAndChildren(
}
void SVGScriptElement::DispatchLoadEvent() {
- DispatchEvent(*Event::Create(EventTypeNames::load));
+ DispatchEvent(*Event::Create(event_type_names::kLoad));
have_fired_load_ = true;
}
void SVGScriptElement::DispatchErrorEvent() {
- DispatchEvent(*Event::Create(EventTypeNames::error));
+ DispatchEvent(*Event::Create(event_type_names::kError));
}
void SVGScriptElement::SetScriptElementForBinding(
@@ -172,8 +172,8 @@ void SVGScriptElement::SetScriptElementForBinding(
#if DCHECK_IS_ON()
bool SVGScriptElement::IsAnimatableAttribute(const QualifiedName& name) const {
- if (name == SVGNames::typeAttr || name == SVGNames::hrefAttr ||
- name == XLinkNames::hrefAttr)
+ if (name == svg_names::kTypeAttr || name == svg_names::kHrefAttr ||
+ name == xlink_names::kHrefAttr)
return false;
return SVGElement::IsAnimatableAttribute(name);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_script_element.h b/chromium/third_party/blink/renderer/core/svg/svg_script_element.h
index 157afbae070..4525f28fb1c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_script_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_script_element.h
@@ -41,6 +41,8 @@ class SVGScriptElement final : public SVGElement,
public:
static SVGScriptElement* Create(Document&, const CreateElementFlags);
+ SVGScriptElement(Document&, const CreateElementFlags);
+
ScriptLoader* Loader() const final { return loader_.Get(); }
#if DCHECK_IS_ON()
@@ -52,8 +54,6 @@ class SVGScriptElement final : public SVGElement,
void Trace(blink::Visitor*) override;
private:
- SVGScriptElement(Document&, const CreateElementFlags);
-
void ParseAttribute(const AttributeModificationParams&) override;
InsertionNotificationRequest InsertedInto(ContainerNode&) override;
void DidNotifySubtreeInsertionsToDocument() override;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_set_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_set_element.cc
index 9d5836e485f..8d889dafe45 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_set_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_set_element.cc
@@ -25,7 +25,7 @@
namespace blink {
inline SVGSetElement::SVGSetElement(Document& document)
- : SVGAnimateElement(SVGNames::setTag, document) {
+ : SVGAnimateElement(svg_names::kSetTag, document) {
SetAnimationMode(kToAnimation);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_static_string_list.h b/chromium/third_party/blink/renderer/core/svg/svg_static_string_list.h
index 1b3867c58b4..cf134e39937 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_static_string_list.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_static_string_list.h
@@ -51,10 +51,14 @@ class SVGStaticStringList final
template <char list_delimiter>
static SVGStaticStringList* Create(SVGElement* context_element,
const QualifiedName& attribute_name) {
- return new SVGStaticStringList(context_element, attribute_name,
- SVGStringList<list_delimiter>::Create());
+ return MakeGarbageCollected<SVGStaticStringList>(
+ context_element, attribute_name,
+ SVGStringList<list_delimiter>::Create());
}
+ SVGStaticStringList(SVGElement*,
+ const QualifiedName&,
+ SVGStringListBase* initial_value);
~SVGStaticStringList() override;
// SVGAnimatedPropertyBase:
@@ -73,10 +77,6 @@ class SVGStaticStringList final
void Trace(blink::Visitor*) override;
private:
- SVGStaticStringList(SVGElement*,
- const QualifiedName&,
- SVGStringListBase* initial_value);
-
Member<SVGStringListBase> value_;
Member<SVGStringListTearOff> tear_off_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_stop_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_stop_element.cc
index 214b3359f0e..03ecf0e995d 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_stop_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_stop_element.cc
@@ -26,9 +26,9 @@
namespace blink {
inline SVGStopElement::SVGStopElement(Document& document)
- : SVGElement(SVGNames::stopTag, document),
+ : SVGElement(svg_names::kStopTag, document),
offset_(SVGAnimatedNumber::Create(this,
- SVGNames::offsetAttr,
+ svg_names::kOffsetAttr,
SVGNumberAcceptPercentage::Create())) {
AddToPropertyMap(offset_);
@@ -51,13 +51,13 @@ void InvalidateInstancesAndAncestorResources(SVGStopElement* stop_element) {
Element* parent = stop_element->parentElement();
if (auto* gradient = ToSVGGradientElementOrNull(parent))
- gradient->InvalidateGradient(LayoutInvalidationReason::kChildChanged);
+ gradient->InvalidateGradient(layout_invalidation_reason::kChildChanged);
}
} // namespace
void SVGStopElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::offsetAttr) {
+ if (attr_name == svg_names::kOffsetAttr) {
InvalidateInstancesAndAncestorResources(this);
return;
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_string.h b/chromium/third_party/blink/renderer/core/svg/svg_string.h
index 143f7e0d461..2343bcc8a7c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_string.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_string.h
@@ -42,9 +42,14 @@ class SVGString final : public SVGPropertyBase {
typedef void TearOffType;
typedef String PrimitiveType;
- static SVGString* Create() { return new SVGString(); }
+ static SVGString* Create() { return MakeGarbageCollected<SVGString>(); }
- static SVGString* Create(const String& value) { return new SVGString(value); }
+ static SVGString* Create(const String& value) {
+ return MakeGarbageCollected<SVGString>(value);
+ }
+
+ SVGString() = default;
+ explicit SVGString(const String& value) : value_(value) {}
SVGString* Clone() const { return Create(value_); }
SVGPropertyBase* CloneForAnimation(const String& value) const override {
@@ -74,9 +79,6 @@ class SVGString final : public SVGPropertyBase {
AnimatedPropertyType GetType() const override { return ClassType(); }
private:
- SVGString() = default;
- explicit SVGString(const String& value) : value_(value) {}
-
String value_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_string_list_tear_off.h b/chromium/third_party/blink/renderer/core/svg/svg_string_list_tear_off.h
index bf18847e41a..48d730e34bb 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_string_list_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_string_list_tear_off.h
@@ -44,9 +44,14 @@ class SVGStringListTearOff : public SVGPropertyTearOff<SVGStringListBase> {
SVGStringListBase* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val) {
- return new SVGStringListTearOff(target, binding, property_is_anim_val);
+ return MakeGarbageCollected<SVGStringListTearOff>(target, binding,
+ property_is_anim_val);
}
+ SVGStringListTearOff(SVGStringListBase*,
+ SVGAnimatedPropertyBase* binding,
+ PropertyIsAnimValType);
+
// SVGStringList DOM interface:
// WebIDL requires "unsigned long" type which is uint32_t.
@@ -125,11 +130,6 @@ class SVGStringListTearOff : public SVGPropertyTearOff<SVGStringListBase> {
CommitChange();
return item;
}
-
- protected:
- SVGStringListTearOff(SVGStringListBase*,
- SVGAnimatedPropertyBase* binding,
- PropertyIsAnimValType);
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_style_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_style_element.cc
index 6c25bb52ae3..25f587b66f9 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_style_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_style_element.cc
@@ -26,20 +26,21 @@
#include "third_party/blink/renderer/core/css/css_style_sheet.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/media_type_names.h"
+#include "third_party/blink/renderer/platform/wtf/functional.h"
#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
namespace blink {
inline SVGStyleElement::SVGStyleElement(Document& document,
const CreateElementFlags flags)
- : SVGElement(SVGNames::styleTag, document),
+ : SVGElement(svg_names::kStyleTag, document),
StyleElement(&document, flags.IsCreatedByParser()) {}
SVGStyleElement::~SVGStyleElement() = default;
SVGStyleElement* SVGStyleElement::Create(Document& document,
const CreateElementFlags flags) {
- return new SVGStyleElement(document, flags);
+ return MakeGarbageCollected<SVGStyleElement>(document, flags);
}
bool SVGStyleElement::disabled() const {
@@ -56,34 +57,34 @@ void SVGStyleElement::setDisabled(bool set_disabled) {
const AtomicString& SVGStyleElement::type() const {
DEFINE_STATIC_LOCAL(const AtomicString, default_value, ("text/css"));
- const AtomicString& n = getAttribute(SVGNames::typeAttr);
+ const AtomicString& n = getAttribute(svg_names::kTypeAttr);
return n.IsNull() ? default_value : n;
}
void SVGStyleElement::setType(const AtomicString& type) {
- setAttribute(SVGNames::typeAttr, type);
+ setAttribute(svg_names::kTypeAttr, type);
}
const AtomicString& SVGStyleElement::media() const {
- const AtomicString& n = FastGetAttribute(SVGNames::mediaAttr);
- return n.IsNull() ? MediaTypeNames::all : n;
+ const AtomicString& n = FastGetAttribute(svg_names::kMediaAttr);
+ return n.IsNull() ? media_type_names::kAll : n;
}
void SVGStyleElement::setMedia(const AtomicString& media) {
- setAttribute(SVGNames::mediaAttr, media);
+ setAttribute(svg_names::kMediaAttr, media);
}
String SVGStyleElement::title() const {
- return FastGetAttribute(SVGNames::titleAttr);
+ return FastGetAttribute(svg_names::kTitleAttr);
}
void SVGStyleElement::setTitle(const AtomicString& title) {
- setAttribute(SVGNames::titleAttr, title);
+ setAttribute(svg_names::kTitleAttr, title);
}
void SVGStyleElement::ParseAttribute(
const AttributeModificationParams& params) {
- if (params.name == SVGNames::titleAttr) {
+ if (params.name == svg_names::kTitleAttr) {
if (sheet_ && IsInDocumentTree())
sheet_->SetTitle(params.new_value);
@@ -139,7 +140,7 @@ void SVGStyleElement::NotifyLoadedSheetAndAllCriticalSubresources(
}
void SVGStyleElement::DispatchPendingEvent() {
- DispatchEvent(*Event::Create(EventTypeNames::error));
+ DispatchEvent(*Event::Create(event_type_names::kError));
}
void SVGStyleElement::Trace(blink::Visitor* visitor) {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_style_element.h b/chromium/third_party/blink/renderer/core/svg/svg_style_element.h
index 763e0b14fe0..8fba25f8e55 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_style_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_style_element.h
@@ -33,6 +33,8 @@ class SVGStyleElement final : public SVGElement, public StyleElement {
public:
static SVGStyleElement* Create(Document&, const CreateElementFlags);
+
+ SVGStyleElement(Document&, const CreateElementFlags);
~SVGStyleElement() override;
using StyleElement::sheet;
@@ -54,8 +56,6 @@ class SVGStyleElement final : public SVGElement, public StyleElement {
void Trace(blink::Visitor*) override;
private:
- SVGStyleElement(Document&, const CreateElementFlags);
-
void ParseAttribute(const AttributeModificationParams&) override;
InsertionNotificationRequest InsertedInto(ContainerNode&) override;
void RemovedFrom(ContainerNode&) override;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_svg_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_svg_element.cc
index e80aac4a38a..ee1c8b05cd7 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_svg_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_svg_element.cc
@@ -54,7 +54,7 @@
#include "third_party/blink/renderer/core/svg/svg_view_spec.h"
#include "third_party/blink/renderer/core/svg_names.h"
#include "third_party/blink/renderer/platform/geometry/float_rect.h"
-#include "third_party/blink/renderer/platform/length_functions.h"
+#include "third_party/blink/renderer/platform/geometry/length_functions.h"
#include "third_party/blink/renderer/platform/transforms/affine_transform.h"
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
@@ -62,25 +62,25 @@
namespace blink {
inline SVGSVGElement::SVGSVGElement(Document& doc)
- : SVGGraphicsElement(SVGNames::svgTag, doc),
+ : SVGGraphicsElement(svg_names::kSVGTag, doc),
SVGFitToViewBox(this),
x_(SVGAnimatedLength::Create(this,
- SVGNames::xAttr,
+ svg_names::kXAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero,
CSSPropertyX)),
y_(SVGAnimatedLength::Create(this,
- SVGNames::yAttr,
+ svg_names::kYAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero,
CSSPropertyY)),
width_(SVGAnimatedLength::Create(this,
- SVGNames::widthAttr,
+ svg_names::kWidthAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kPercent100,
CSSPropertyWidth)),
height_(SVGAnimatedLength::Create(this,
- SVGNames::heightAttr,
+ svg_names::kHeightAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kPercent100,
CSSPropertyHeight)),
@@ -118,17 +118,16 @@ void SVGSVGElement::setCurrentScale(float scale) {
class SVGCurrentTranslateTearOff : public SVGPointTearOff {
public:
static SVGCurrentTranslateTearOff* Create(SVGSVGElement* context_element) {
- return new SVGCurrentTranslateTearOff(context_element);
+ return MakeGarbageCollected<SVGCurrentTranslateTearOff>(context_element);
}
+ SVGCurrentTranslateTearOff(SVGSVGElement* context_element)
+ : SVGPointTearOff(context_element->translation_, context_element) {}
+
void CommitChange() override {
DCHECK(ContextElement());
ToSVGSVGElement(ContextElement())->UpdateUserTransform();
}
-
- private:
- SVGCurrentTranslateTearOff(SVGSVGElement* context_element)
- : SVGPointTearOff(context_element->translation_, context_element) {}
};
SVGPointTearOff* SVGSVGElement::currentTranslateFromJavascript() {
@@ -141,9 +140,10 @@ void SVGSVGElement::SetCurrentTranslate(const FloatPoint& point) {
}
void SVGSVGElement::UpdateUserTransform() {
- if (LayoutObject* object = GetLayoutObject())
+ if (LayoutObject* object = GetLayoutObject()) {
object->SetNeedsLayoutAndFullPaintInvalidation(
- LayoutInvalidationReason::kUnknown);
+ layout_invalidation_reason::kUnknown);
+ }
}
bool SVGSVGElement::ZoomAndPanEnabled() const {
@@ -160,17 +160,17 @@ void SVGSVGElement::ParseAttribute(const AttributeModificationParams& params) {
bool set_listener = true;
// Only handle events if we're the outermost <svg> element
- if (name == HTMLNames::onunloadAttr) {
+ if (name == html_names::kOnunloadAttr) {
GetDocument().SetWindowAttributeEventListener(
- EventTypeNames::unload,
+ event_type_names::kUnload,
CreateAttributeEventListener(GetDocument().GetFrame(), name, value));
- } else if (name == HTMLNames::onresizeAttr) {
+ } else if (name == html_names::kOnresizeAttr) {
GetDocument().SetWindowAttributeEventListener(
- EventTypeNames::resize,
+ event_type_names::kResize,
CreateAttributeEventListener(GetDocument().GetFrame(), name, value));
- } else if (name == HTMLNames::onscrollAttr) {
+ } else if (name == html_names::kOnscrollAttr) {
GetDocument().SetWindowAttributeEventListener(
- EventTypeNames::scroll,
+ event_type_names::kScroll,
CreateAttributeEventListener(GetDocument().GetFrame(), name, value));
} else {
set_listener = false;
@@ -180,13 +180,13 @@ void SVGSVGElement::ParseAttribute(const AttributeModificationParams& params) {
return;
}
- if (name == HTMLNames::onabortAttr) {
+ if (name == html_names::kOnabortAttr) {
GetDocument().SetWindowAttributeEventListener(
- EventTypeNames::abort,
+ event_type_names::kAbort,
CreateAttributeEventListener(GetDocument().GetFrame(), name, value));
- } else if (name == HTMLNames::onerrorAttr) {
+ } else if (name == html_names::kOnerrorAttr) {
GetDocument().SetWindowAttributeEventListener(
- EventTypeNames::error,
+ event_type_names::kError,
CreateAttributeEventListener(
GetDocument().GetFrame(), name, value,
JSEventHandler::HandlerType::kOnErrorEventHandler));
@@ -197,7 +197,7 @@ void SVGSVGElement::ParseAttribute(const AttributeModificationParams& params) {
}
bool SVGSVGElement::IsPresentationAttribute(const QualifiedName& name) const {
- if ((name == SVGNames::widthAttr || name == SVGNames::heightAttr) &&
+ if ((name == svg_names::kWidthAttr || name == svg_names::kHeightAttr) &&
!IsOutermostSVGSVGElement())
return false;
return SVGGraphicsElement::IsPresentationAttribute(name);
@@ -205,7 +205,7 @@ bool SVGSVGElement::IsPresentationAttribute(const QualifiedName& name) const {
bool SVGSVGElement::IsPresentationAttributeWithSVGDOM(
const QualifiedName& attr_name) const {
- if (attr_name == SVGNames::widthAttr || attr_name == SVGNames::heightAttr)
+ if (attr_name == svg_names::kWidthAttr || attr_name == svg_names::kHeightAttr)
return false;
return SVGGraphicsElement::IsPresentationAttributeWithSVGDOM(attr_name);
}
@@ -239,9 +239,9 @@ void SVGSVGElement::CollectStyleForPresentationAttribute(
void SVGSVGElement::SvgAttributeChanged(const QualifiedName& attr_name) {
bool update_relative_lengths_or_view_box = false;
bool width_or_height_changed =
- attr_name == SVGNames::widthAttr || attr_name == SVGNames::heightAttr;
- if (width_or_height_changed || attr_name == SVGNames::xAttr ||
- attr_name == SVGNames::yAttr) {
+ attr_name == svg_names::kWidthAttr || attr_name == svg_names::kHeightAttr;
+ if (width_or_height_changed || attr_name == svg_names::kXAttr ||
+ attr_name == svg_names::kYAttr) {
update_relative_lengths_or_view_box = true;
UpdateRelativeLengthsInformation();
InvalidateRelativeLengthClients();
@@ -258,7 +258,7 @@ void SVGSVGElement::SvgAttributeChanged(const QualifiedName& attr_name) {
InvalidateSVGPresentationAttributeStyle();
SetNeedsStyleRecalc(kLocalStyleChange,
StyleChangeReasonForTracing::Create(
- StyleChangeReason::kSVGContainerSizeChange));
+ style_change_reason::kSVGContainerSizeChange));
if (layout_object)
ToLayoutSVGRoot(layout_object)->IntrinsicSizingInfoChanged();
}
@@ -275,7 +275,7 @@ void SVGSVGElement::SvgAttributeChanged(const QualifiedName& attr_name) {
InvalidateRelativeLengthClients();
if (LayoutObject* object = GetLayoutObject()) {
object->SetNeedsTransformUpdate();
- if (attr_name == SVGNames::viewBoxAttr && object->IsSVGRoot())
+ if (attr_name == svg_names::kViewBoxAttr && object->IsSVGRoot())
ToLayoutSVGRoot(object)->IntrinsicSizingInfoChanged();
}
}
@@ -514,17 +514,15 @@ Node::InsertionNotificationRequest SVGSVGElement::InsertedInto(
if (root_parent.GetDocument().IsXMLDocument())
UseCounter::Count(GetDocument(), WebFeature::kSVGSVGElementInXMLDocument);
- if (RuntimeEnabledFeatures::SMILEnabled()) {
- GetDocument().AccessSVGExtensions().AddTimeContainer(this);
+ GetDocument().AccessSVGExtensions().AddTimeContainer(this);
- // Animations are started at the end of document parsing and after firing
- // the load event, but if we miss that train (deferred programmatic
- // element insertion for example) we need to initialize the time container
- // here.
- if (!GetDocument().Parsing() && GetDocument().LoadEventFinished() &&
- !TimeContainer()->IsStarted())
- TimeContainer()->Start();
- }
+ // Animations are started at the end of document parsing and after firing
+ // the load event, but if we miss that train (deferred programmatic
+ // element insertion for example) we need to initialize the time container
+ // here.
+ if (!GetDocument().Parsing() && GetDocument().LoadEventFinished() &&
+ !TimeContainer()->IsStarted())
+ TimeContainer()->Start();
}
return SVGGraphicsElement::InsertedInto(root_parent);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_svg_element.idl b/chromium/third_party/blink/renderer/core/svg/svg_svg_element.idl
index 4cc98bb6e62..0643aed5a90 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_svg_element.idl
+++ b/chromium/third_party/blink/renderer/core/svg/svg_svg_element.idl
@@ -59,11 +59,11 @@ interface SVGSVGElement : SVGGraphicsElement {
// SVG Animations
// https://svgwg.org/specs/animations/#InterfaceSVGSVGElement
- [MeasureAs=SVGSMILPausing, RuntimeEnabled=SMIL] void pauseAnimations();
- [MeasureAs=SVGSMILPausing, RuntimeEnabled=SMIL] void unpauseAnimations();
- [MeasureAs=SVGSMILPausing, RuntimeEnabled=SMIL] boolean animationsPaused();
- [MeasureAs=SVGSMILCurrentTime, RuntimeEnabled=SMIL] float getCurrentTime();
- [MeasureAs=SVGSMILCurrentTime, RuntimeEnabled=SMIL] void setCurrentTime(float seconds);
+ [MeasureAs=SVGSMILPausing] void pauseAnimations();
+ [MeasureAs=SVGSMILPausing] void unpauseAnimations();
+ [MeasureAs=SVGSMILPausing] boolean animationsPaused();
+ [MeasureAs=SVGSMILCurrentTime] float getCurrentTime();
+ [MeasureAs=SVGSMILCurrentTime] void setCurrentTime(float seconds);
};
SVGSVGElement implements SVGFitToViewBox;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_switch_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_switch_element.cc
index 4612379f922..7b516fcb941 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_switch_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_switch_element.cc
@@ -27,7 +27,7 @@
namespace blink {
inline SVGSwitchElement::SVGSwitchElement(Document& document)
- : SVGGraphicsElement(SVGNames::switchTag, document) {
+ : SVGGraphicsElement(svg_names::kSwitchTag, document) {
UseCounter::Count(document, WebFeature::kSVGSwitchElement);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_symbol_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_symbol_element.cc
index 3e6fd018caa..d13c35ebce5 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_symbol_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_symbol_element.cc
@@ -26,7 +26,7 @@
namespace blink {
inline SVGSymbolElement::SVGSymbolElement(Document& document)
- : SVGElement(SVGNames::symbolTag, document), SVGFitToViewBox(this) {}
+ : SVGElement(svg_names::kSymbolTag, document), SVGFitToViewBox(this) {}
void SVGSymbolElement::Trace(blink::Visitor* visitor) {
SVGElement::Trace(visitor);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_tag_names.json5 b/chromium/third_party/blink/renderer/core/svg/svg_tag_names.json5
index 2591fb1930f..53fc167c31b 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_tag_names.json5
+++ b/chromium/third_party/blink/renderer/core/svg/svg_tag_names.json5
@@ -12,35 +12,21 @@
{
name: "animate",
noTypeHelpers: true,
- runtimeEnabled: "SMIL",
},
{
name: "animateColor",
JSInterfaceName: "SVGElement",
interfaceName: "SVGUnknownElement",
noConstructor: true,
- runtimeEnabled: "SMIL",
- },
- {
- name: "animateMotion",
- runtimeEnabled: "SMIL",
- },
- {
- name: "animateTransform",
- runtimeEnabled: "SMIL",
- },
- {
- name: "set",
- runtimeEnabled: "SMIL",
},
+ "animateMotion",
+ "animateTransform",
+ "set",
"circle",
"clipPath",
"defs",
"desc",
- {
- name: "discard",
- runtimeEnabled: "SMIL",
- },
+ "discard",
"ellipse",
"feBlend",
"feColorMatrix",
@@ -79,7 +65,6 @@
{
name: "mpath",
interfaceName: "SVGMPathElement",
- runtimeEnabled: "SMIL",
},
"path",
"pattern",
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_tests.cc b/chromium/third_party/blink/renderer/core/svg/svg_tests.cc
index ca20e9174d6..dbbc2e9e5e7 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_tests.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_tests.cc
@@ -32,10 +32,10 @@ namespace blink {
SVGTests::SVGTests(SVGElement* context_element)
: required_extensions_(
SVGStaticStringList::Create<' '>(context_element,
- SVGNames::requiredExtensionsAttr)),
+ svg_names::kRequiredExtensionsAttr)),
system_language_(
SVGStaticStringList::Create<','>(context_element,
- SVGNames::systemLanguageAttr)) {
+ svg_names::kSystemLanguageAttr)) {
DCHECK(context_element);
context_element->AddToPropertyMap(required_extensions_);
@@ -98,8 +98,8 @@ bool SVGTests::IsValid() const {
}
bool SVGTests::IsKnownAttribute(const QualifiedName& attr_name) {
- return attr_name == SVGNames::requiredExtensionsAttr ||
- attr_name == SVGNames::systemLanguageAttr;
+ return attr_name == svg_names::kRequiredExtensionsAttr ||
+ attr_name == svg_names::kSystemLanguageAttr;
}
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_text_content_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_text_content_element.cc
index 99abac1b520..307267cab67 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_text_content_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_text_content_element.cc
@@ -20,13 +20,14 @@
#include "third_party/blink/renderer/core/svg/svg_text_content_element.h"
-#include "third_party/blink/renderer/core/css_property_names.h"
+#include "third_party/blink/renderer/core/css/css_property_names.h"
#include "third_party/blink/renderer/core/css_value_keywords.h"
#include "third_party/blink/renderer/core/editing/frame_selection.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/use_counter.h"
#include "third_party/blink/renderer/core/layout/api/line_layout_item.h"
#include "third_party/blink/renderer/core/layout/svg/svg_text_query.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
#include "third_party/blink/renderer/core/svg/svg_point_tear_off.h"
#include "third_party/blink/renderer/core/svg/svg_rect_tear_off.h"
#include "third_party/blink/renderer/core/svg_names.h"
@@ -37,14 +38,12 @@
namespace blink {
template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGLengthAdjustType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(std::make_pair(kSVGLengthAdjustSpacing, "spacing"));
- entries.push_back(
- std::make_pair(kSVGLengthAdjustSpacingAndGlyphs, "spacingAndGlyphs"));
- }
+const SVGEnumerationMap& GetEnumerationMap<SVGLengthAdjustType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {kSVGLengthAdjustSpacing, "spacing"},
+ {kSVGLengthAdjustSpacingAndGlyphs, "spacingAndGlyphs"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
@@ -54,9 +53,15 @@ GetStaticStringEntries<SVGLengthAdjustType>() {
class SVGAnimatedTextLength final : public SVGAnimatedLength {
public:
static SVGAnimatedTextLength* Create(SVGTextContentElement* context_element) {
- return new SVGAnimatedTextLength(context_element);
+ return MakeGarbageCollected<SVGAnimatedTextLength>(context_element);
}
+ SVGAnimatedTextLength(SVGTextContentElement* context_element)
+ : SVGAnimatedLength(context_element,
+ svg_names::kTextLengthAttr,
+ SVGLengthMode::kWidth,
+ SVGLength::Initial::kUnitlessZero) {}
+
SVGLengthTearOff* baseVal() override {
SVGTextContentElement* text_content_element =
ToSVGTextContentElement(ContextElement());
@@ -67,13 +72,6 @@ class SVGAnimatedTextLength final : public SVGAnimatedLength {
return SVGAnimatedLength::baseVal();
}
-
- private:
- SVGAnimatedTextLength(SVGTextContentElement* context_element)
- : SVGAnimatedLength(context_element,
- SVGNames::textLengthAttr,
- SVGLengthMode::kWidth,
- SVGLength::Initial::kUnitlessZero) {}
};
SVGTextContentElement::SVGTextContentElement(const QualifiedName& tag_name,
@@ -83,7 +81,7 @@ SVGTextContentElement::SVGTextContentElement(const QualifiedName& tag_name,
text_length_is_specified_by_user_(false),
length_adjust_(SVGAnimatedEnumeration<SVGLengthAdjustType>::Create(
this,
- SVGNames::lengthAdjustAttr,
+ svg_names::kLengthAdjustAttr,
kSVGLengthAdjustSpacing)) {
AddToPropertyMap(text_length_);
AddToPropertyMap(length_adjust_);
@@ -224,7 +222,7 @@ void SVGTextContentElement::selectSubString(unsigned charnum,
bool SVGTextContentElement::IsPresentationAttribute(
const QualifiedName& name) const {
- if (name.Matches(XMLNames::spaceAttr))
+ if (name.Matches(xml_names::kSpaceAttr))
return true;
return SVGGraphicsElement::IsPresentationAttribute(name);
}
@@ -233,7 +231,7 @@ void SVGTextContentElement::CollectStyleForPresentationAttribute(
const QualifiedName& name,
const AtomicString& value,
MutableCSSPropertyValueSet* style) {
- if (name.Matches(XMLNames::spaceAttr)) {
+ if (name.Matches(xml_names::kSpaceAttr)) {
DEFINE_STATIC_LOCAL(const AtomicString, preserve_string, ("preserve"));
if (value == preserve_string) {
@@ -254,12 +252,12 @@ void SVGTextContentElement::CollectStyleForPresentationAttribute(
void SVGTextContentElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
- if (attr_name == SVGNames::textLengthAttr)
+ if (attr_name == svg_names::kTextLengthAttr)
text_length_is_specified_by_user_ = true;
- if (attr_name == SVGNames::textLengthAttr ||
- attr_name == SVGNames::lengthAdjustAttr ||
- attr_name == XMLNames::spaceAttr) {
+ if (attr_name == svg_names::kTextLengthAttr ||
+ attr_name == svg_names::kLengthAdjustAttr ||
+ attr_name == xml_names::kSpaceAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
if (LayoutObject* layout_object = GetLayoutObject())
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_text_content_element.h b/chromium/third_party/blink/renderer/core/svg/svg_text_content_element.h
index 6aeb290ea6e..e6b76611395 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_text_content_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_text_content_element.h
@@ -37,9 +37,7 @@ enum SVGLengthAdjustType {
kSVGLengthAdjustSpacing,
kSVGLengthAdjustSpacingAndGlyphs
};
-template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGLengthAdjustType>();
+DECLARE_SVG_ENUM_MAP(SVGLengthAdjustType);
class CORE_EXPORT SVGTextContentElement : public SVGGraphicsElement {
DEFINE_WRAPPERTYPEINFO();
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_text_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_text_element.cc
index 49862d01f09..2a034fd29bf 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_text_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_text_element.cc
@@ -25,7 +25,7 @@
namespace blink {
inline SVGTextElement::SVGTextElement(Document& doc)
- : SVGTextPositioningElement(SVGNames::textTag, doc) {}
+ : SVGTextPositioningElement(svg_names::kTextTag, doc) {}
DEFINE_NODE_FACTORY(SVGTextElement)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_text_path_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_text_path_element.cc
index e0c5228c442..63f9cb629ef 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_text_path_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_text_path_element.cc
@@ -22,46 +22,44 @@
#include "third_party/blink/renderer/core/dom/id_target_observer.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_text_path.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
namespace blink {
template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGTextPathMethodType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(std::make_pair(kSVGTextPathMethodAlign, "align"));
- entries.push_back(std::make_pair(kSVGTextPathMethodStretch, "stretch"));
- }
+const SVGEnumerationMap& GetEnumerationMap<SVGTextPathMethodType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {kSVGTextPathMethodAlign, "align"},
+ {kSVGTextPathMethodStretch, "stretch"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGTextPathSpacingType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(std::make_pair(kSVGTextPathSpacingAuto, "auto"));
- entries.push_back(std::make_pair(kSVGTextPathSpacingExact, "exact"));
- }
+const SVGEnumerationMap& GetEnumerationMap<SVGTextPathSpacingType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {kSVGTextPathSpacingAuto, "auto"}, {kSVGTextPathSpacingExact, "exact"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
inline SVGTextPathElement::SVGTextPathElement(Document& document)
- : SVGTextContentElement(SVGNames::textPathTag, document),
+ : SVGTextContentElement(svg_names::kTextPathTag, document),
SVGURIReference(this),
start_offset_(
SVGAnimatedLength::Create(this,
- SVGNames::startOffsetAttr,
+ svg_names::kStartOffsetAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero)),
method_(SVGAnimatedEnumeration<SVGTextPathMethodType>::Create(
this,
- SVGNames::methodAttr,
+ svg_names::kMethodAttr,
kSVGTextPathMethodAlign)),
spacing_(SVGAnimatedEnumeration<SVGTextPathSpacingType>::Create(
this,
- SVGNames::spacingAttr,
+ svg_names::kSpacingAttr,
kSVGTextPathSpacingExact)) {
AddToPropertyMap(start_offset_);
AddToPropertyMap(method_);
@@ -93,11 +91,12 @@ void SVGTextPathElement::SvgAttributeChanged(const QualifiedName& attr_name) {
return;
}
- if (attr_name == SVGNames::startOffsetAttr)
+ if (attr_name == svg_names::kStartOffsetAttr)
UpdateRelativeLengthsInformation();
- if (attr_name == SVGNames::startOffsetAttr ||
- attr_name == SVGNames::methodAttr || attr_name == SVGNames::spacingAttr) {
+ if (attr_name == svg_names::kStartOffsetAttr ||
+ attr_name == svg_names::kMethodAttr ||
+ attr_name == svg_names::kSpacingAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
if (LayoutObject* object = GetLayoutObject())
MarkForLayoutAndParentResourceInvalidation(*object);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_text_path_element.h b/chromium/third_party/blink/renderer/core/svg/svg_text_path_element.h
index a1816bc891e..48a53d9510a 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_text_path_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_text_path_element.h
@@ -31,19 +31,14 @@ enum SVGTextPathMethodType {
kSVGTextPathMethodAlign,
kSVGTextPathMethodStretch
};
+DECLARE_SVG_ENUM_MAP(SVGTextPathMethodType);
enum SVGTextPathSpacingType {
kSVGTextPathSpacingUnknown = 0,
kSVGTextPathSpacingAuto,
kSVGTextPathSpacingExact
};
-
-template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGTextPathMethodType>();
-template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGTextPathSpacingType>();
+DECLARE_SVG_ENUM_MAP(SVGTextPathSpacingType);
class SVGTextPathElement final : public SVGTextContentElement,
public SVGURIReference {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_text_positioning_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_text_positioning_element.cc
index d529137a169..1d41c7a261c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_text_positioning_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_text_positioning_element.cc
@@ -33,21 +33,21 @@ SVGTextPositioningElement::SVGTextPositioningElement(
: SVGTextContentElement(tag_name, document),
x_(SVGAnimatedLengthList::Create(
this,
- SVGNames::xAttr,
+ svg_names::kXAttr,
SVGLengthList::Create(SVGLengthMode::kWidth))),
y_(SVGAnimatedLengthList::Create(
this,
- SVGNames::yAttr,
+ svg_names::kYAttr,
SVGLengthList::Create(SVGLengthMode::kHeight))),
dx_(SVGAnimatedLengthList::Create(
this,
- SVGNames::dxAttr,
+ svg_names::kDxAttr,
SVGLengthList::Create(SVGLengthMode::kWidth))),
dy_(SVGAnimatedLengthList::Create(
this,
- SVGNames::dyAttr,
+ svg_names::kDyAttr,
SVGLengthList::Create(SVGLengthMode::kHeight))),
- rotate_(SVGAnimatedNumberList::Create(this, SVGNames::rotateAttr)) {
+ rotate_(SVGAnimatedNumberList::Create(this, svg_names::kRotateAttr)) {
AddToPropertyMap(x_);
AddToPropertyMap(y_);
AddToPropertyMap(dx_);
@@ -67,13 +67,13 @@ void SVGTextPositioningElement::Trace(blink::Visitor* visitor) {
void SVGTextPositioningElement::SvgAttributeChanged(
const QualifiedName& attr_name) {
bool update_relative_lengths =
- attr_name == SVGNames::xAttr || attr_name == SVGNames::yAttr ||
- attr_name == SVGNames::dxAttr || attr_name == SVGNames::dyAttr;
+ attr_name == svg_names::kXAttr || attr_name == svg_names::kYAttr ||
+ attr_name == svg_names::kDxAttr || attr_name == svg_names::kDyAttr;
if (update_relative_lengths)
UpdateRelativeLengthsInformation();
- if (update_relative_lengths || attr_name == SVGNames::rotateAttr) {
+ if (update_relative_lengths || attr_name == svg_names::kRotateAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
LayoutObject* layout_object = GetLayoutObject();
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_title_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_title_element.cc
index c98d0599bfc..8609f51dace 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_title_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_title_element.cc
@@ -29,7 +29,7 @@
namespace blink {
inline SVGTitleElement::SVGTitleElement(Document& document)
- : SVGElement(SVGNames::titleTag, document),
+ : SVGElement(svg_names::kTitleTag, document),
ignore_title_updates_when_children_change_(false) {}
DEFINE_NODE_FACTORY(SVGTitleElement)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_transform.cc b/chromium/third_party/blink/renderer/core/svg/svg_transform.cc
index 8a5841959f2..0c8ca92dc36 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_transform.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_transform.cc
@@ -51,7 +51,8 @@ SVGTransform::SVGTransform(SVGTransformType transform_type,
SVGTransform::~SVGTransform() = default;
SVGTransform* SVGTransform::Clone() const {
- return new SVGTransform(transform_type_, angle_, center_, matrix_);
+ return MakeGarbageCollected<SVGTransform>(transform_type_, angle_, center_,
+ matrix_);
}
SVGPropertyBase* SVGTransform::CloneForAnimation(const String&) const {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_transform.h b/chromium/third_party/blink/renderer/core/svg/svg_transform.h
index a304c587747..b356a94a8b6 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_transform.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_transform.h
@@ -50,18 +50,25 @@ class SVGTransform final : public SVGPropertyBase {
kConstructZeroTransform
};
- static SVGTransform* Create() { return new SVGTransform(); }
+ static SVGTransform* Create() { return MakeGarbageCollected<SVGTransform>(); }
static SVGTransform* Create(
SVGTransformType type,
ConstructionMode mode = kConstructIdentityTransform) {
- return new SVGTransform(type, mode);
+ return MakeGarbageCollected<SVGTransform>(type, mode);
}
static SVGTransform* Create(const AffineTransform& affine_transform) {
- return new SVGTransform(affine_transform);
+ return MakeGarbageCollected<SVGTransform>(affine_transform);
}
+ SVGTransform();
+ SVGTransform(SVGTransformType, ConstructionMode);
+ explicit SVGTransform(const AffineTransform&);
+ SVGTransform(SVGTransformType,
+ float,
+ const FloatPoint&,
+ const AffineTransform&);
~SVGTransform() override;
SVGTransform* Clone() const;
@@ -106,14 +113,6 @@ class SVGTransform final : public SVGPropertyBase {
AnimatedPropertyType GetType() const override { return ClassType(); }
private:
- SVGTransform();
- SVGTransform(SVGTransformType, ConstructionMode);
- explicit SVGTransform(const AffineTransform&);
- SVGTransform(SVGTransformType,
- float,
- const FloatPoint&,
- const AffineTransform&);
-
SVGTransformType transform_type_;
float angle_;
FloatPoint center_;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_transform_list.h b/chromium/third_party/blink/renderer/core/svg/svg_transform_list.h
index bad9ad5a722..561f8546d0e 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_transform_list.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_transform_list.h
@@ -44,10 +44,13 @@ class SVGTransformList final
public:
typedef SVGTransformListTearOff TearOffType;
- static SVGTransformList* Create() { return new SVGTransformList(); }
+ static SVGTransformList* Create() {
+ return MakeGarbageCollected<SVGTransformList>();
+ }
static SVGTransformList* Create(SVGTransformType, const String&);
+ SVGTransformList();
~SVGTransformList() override;
SVGTransform* Consolidate();
@@ -77,8 +80,6 @@ class SVGTransformList final
const CSSValue* CssValue() const;
private:
- SVGTransformList();
-
template <typename CharType>
SVGParsingError ParseInternal(const CharType*& ptr, const CharType* end);
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_transform_list_tear_off.h b/chromium/third_party/blink/renderer/core/svg/svg_transform_list_tear_off.h
index 4819715f240..70fcd0a606f 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_transform_list_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_transform_list_tear_off.h
@@ -49,18 +49,17 @@ class SVGTransformListTearOff final
SVGTransformList* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val) {
- return new SVGTransformListTearOff(target, binding, property_is_anim_val);
+ return MakeGarbageCollected<SVGTransformListTearOff>(target, binding,
+ property_is_anim_val);
}
+ SVGTransformListTearOff(SVGTransformList*,
+ SVGAnimatedPropertyBase* binding,
+ PropertyIsAnimValType);
~SVGTransformListTearOff() override;
SVGTransformTearOff* createSVGTransformFromMatrix(SVGMatrixTearOff*) const;
SVGTransformTearOff* consolidate(ExceptionState&);
-
- private:
- SVGTransformListTearOff(SVGTransformList*,
- SVGAnimatedPropertyBase* binding,
- PropertyIsAnimValType);
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_transform_tear_off.h b/chromium/third_party/blink/renderer/core/svg/svg_transform_tear_off.h
index c9901d9a6ad..2a2c695cc23 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_transform_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_transform_tear_off.h
@@ -56,11 +56,15 @@ class SVGTransformTearOff final : public SVGPropertyTearOff<SVGTransform> {
SVGTransform* target,
SVGAnimatedPropertyBase* binding,
PropertyIsAnimValType property_is_anim_val) {
- return new SVGTransformTearOff(target, binding, property_is_anim_val);
+ return MakeGarbageCollected<SVGTransformTearOff>(target, binding,
+ property_is_anim_val);
}
static SVGTransformTearOff* CreateDetached();
static SVGTransformTearOff* Create(SVGMatrixTearOff*);
+ SVGTransformTearOff(SVGTransform*,
+ SVGAnimatedPropertyBase* binding,
+ PropertyIsAnimValType);
~SVGTransformTearOff() override;
unsigned short transformType() { return Target()->TransformType(); }
@@ -77,10 +81,6 @@ class SVGTransformTearOff final : public SVGPropertyTearOff<SVGTransform> {
void Trace(blink::Visitor*) override;
private:
- SVGTransformTearOff(SVGTransform*,
- SVGAnimatedPropertyBase* binding,
- PropertyIsAnimValType);
-
Member<SVGMatrixTearOff> matrix_tearoff_;
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_tree_scope_resources.cc b/chromium/third_party/blink/renderer/core/svg/svg_tree_scope_resources.cc
index 4fbdf635b12..f4f4d4b74d5 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_tree_scope_resources.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_tree_scope_resources.cc
@@ -21,7 +21,7 @@ LocalSVGResource* SVGTreeScopeResources::ResourceForId(const AtomicString& id) {
return nullptr;
auto& entry = resources_.insert(id, nullptr).stored_value->value;
if (!entry)
- entry = new LocalSVGResource(*tree_scope_, id);
+ entry = MakeGarbageCollected<LocalSVGResource>(*tree_scope_, id);
return entry;
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_tspan_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_tspan_element.cc
index 1bc48d8d606..7b6047f2ba6 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_tspan_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_tspan_element.cc
@@ -26,7 +26,7 @@
namespace blink {
inline SVGTSpanElement::SVGTSpanElement(Document& document)
- : SVGTextPositioningElement(SVGNames::tspanTag, document) {}
+ : SVGTextPositioningElement(svg_names::kTSpanTag, document) {}
DEFINE_NODE_FACTORY(SVGTSpanElement)
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_unit_types.cc b/chromium/third_party/blink/renderer/core/svg/svg_unit_types.cc
index 93f88967d0a..fa37657628d 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_unit_types.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_unit_types.cc
@@ -30,18 +30,17 @@
#include "third_party/blink/renderer/core/svg/svg_unit_types.h"
+#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
+
namespace blink {
template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGUnitTypes::SVGUnitType>() {
- DEFINE_STATIC_LOCAL(SVGEnumerationStringEntries, entries, ());
- if (entries.IsEmpty()) {
- entries.push_back(std::make_pair(SVGUnitTypes::kSvgUnitTypeUserspaceonuse,
- "userSpaceOnUse"));
- entries.push_back(std::make_pair(
- SVGUnitTypes::kSvgUnitTypeObjectboundingbox, "objectBoundingBox"));
- }
+const SVGEnumerationMap& GetEnumerationMap<SVGUnitTypes::SVGUnitType>() {
+ static const SVGEnumerationMap::Entry enum_items[] = {
+ {SVGUnitTypes::kSvgUnitTypeUserspaceonuse, "userSpaceOnUse"},
+ {SVGUnitTypes::kSvgUnitTypeObjectboundingbox, "objectBoundingBox"},
+ };
+ static const SVGEnumerationMap entries(enum_items);
return entries;
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_unit_types.h b/chromium/third_party/blink/renderer/core/svg/svg_unit_types.h
index 7abf0ef0c15..c15bba841fa 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_unit_types.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_unit_types.h
@@ -40,9 +40,7 @@ class SVGUnitTypes final : public ScriptWrappable {
SVGUnitTypes() = delete; // No instantiation.
};
-template <>
-const SVGEnumerationStringEntries&
-GetStaticStringEntries<SVGUnitTypes::SVGUnitType>();
+DECLARE_SVG_ENUM_MAP(SVGUnitTypes::SVGUnitType);
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_uri_reference.cc b/chromium/third_party/blink/renderer/core/svg/svg_uri_reference.cc
index e7a380160f8..bce67926c47 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_uri_reference.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_uri_reference.cc
@@ -61,9 +61,9 @@ bool SVGURIReference::IsKnownAttribute(const QualifiedName& attr_name) {
const AtomicString& SVGURIReference::LegacyHrefString(
const SVGElement& element) {
- if (element.hasAttribute(SVGNames::hrefAttr))
- return element.getAttribute(SVGNames::hrefAttr);
- return element.getAttribute(XLinkNames::hrefAttr);
+ if (element.hasAttribute(svg_names::kHrefAttr))
+ return element.getAttribute(svg_names::kHrefAttr);
+ return element.getAttribute(xlink_names::kHrefAttr);
}
KURL SVGURIReference::LegacyHrefURL(const Document& document) const {
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_use_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_use_element.cc
index 8d2a8427c2c..93c756faa29 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_use_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_use_element.cc
@@ -49,24 +49,24 @@
namespace blink {
inline SVGUseElement::SVGUseElement(Document& document)
- : SVGGraphicsElement(SVGNames::useTag, document),
+ : SVGGraphicsElement(svg_names::kUseTag, document),
SVGURIReference(this),
x_(SVGAnimatedLength::Create(this,
- SVGNames::xAttr,
+ svg_names::kXAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero,
CSSPropertyX)),
y_(SVGAnimatedLength::Create(this,
- SVGNames::yAttr,
+ svg_names::kYAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero,
CSSPropertyY)),
width_(SVGAnimatedLength::Create(this,
- SVGNames::widthAttr,
+ svg_names::kWidthAttr,
SVGLengthMode::kWidth,
SVGLength::Initial::kUnitlessZero)),
height_(SVGAnimatedLength::Create(this,
- SVGNames::heightAttr,
+ svg_names::kHeightAttr,
SVGLengthMode::kHeight,
SVGLength::Initial::kUnitlessZero)),
element_url_is_local_(true),
@@ -82,7 +82,7 @@ inline SVGUseElement::SVGUseElement(Document& document)
SVGUseElement* SVGUseElement::Create(Document& document) {
// Always build a user agent #shadow-root for SVGUseElement.
- SVGUseElement* use = new SVGUseElement(document);
+ SVGUseElement* use = MakeGarbageCollected<SVGUseElement>(document);
use->AttachShadowRootInternal(ShadowRootType::kClosed);
return use;
}
@@ -150,12 +150,12 @@ static void TransferUseWidthAndHeightIfNeeded(
// width and/or height are not specified, the generated 'svg' element
// will use values of 100% for these attributes.
shadow_element.setAttribute(
- SVGNames::widthAttr,
+ svg_names::kWidthAttr,
use.width()->IsSpecified()
? AtomicString(use.width()->CurrentValue()->ValueAsString())
: hundred_percent_string);
shadow_element.setAttribute(
- SVGNames::heightAttr,
+ svg_names::kHeightAttr,
use.height()->IsSpecified()
? AtomicString(use.height()->CurrentValue()->ValueAsString())
: hundred_percent_string);
@@ -164,15 +164,15 @@ static void TransferUseWidthAndHeightIfNeeded(
// provided on the 'use' element, then these values will override the
// corresponding attributes on the 'svg' in the generated tree.
shadow_element.setAttribute(
- SVGNames::widthAttr,
+ svg_names::kWidthAttr,
use.width()->IsSpecified()
? AtomicString(use.width()->CurrentValue()->ValueAsString())
- : original_element.getAttribute(SVGNames::widthAttr));
+ : original_element.getAttribute(svg_names::kWidthAttr));
shadow_element.setAttribute(
- SVGNames::heightAttr,
+ svg_names::kHeightAttr,
use.height()->IsSpecified()
? AtomicString(use.height()->CurrentValue()->ValueAsString())
- : original_element.getAttribute(SVGNames::heightAttr));
+ : original_element.getAttribute(svg_names::kHeightAttr));
}
}
@@ -220,11 +220,12 @@ void SVGUseElement::UpdateTargetReference() {
}
void SVGUseElement::SvgAttributeChanged(const QualifiedName& attr_name) {
- if (attr_name == SVGNames::xAttr || attr_name == SVGNames::yAttr ||
- attr_name == SVGNames::widthAttr || attr_name == SVGNames::heightAttr) {
+ if (attr_name == svg_names::kXAttr || attr_name == svg_names::kYAttr ||
+ attr_name == svg_names::kWidthAttr ||
+ attr_name == svg_names::kHeightAttr) {
SVGElement::InvalidationGuard invalidation_guard(this);
- if (attr_name == SVGNames::xAttr || attr_name == SVGNames::yAttr) {
+ if (attr_name == svg_names::kXAttr || attr_name == svg_names::kYAttr) {
InvalidateSVGPresentationAttributeStyle();
SetNeedsStyleRecalc(
kLocalStyleChange,
@@ -264,17 +265,19 @@ static bool IsDisallowedElement(const Element& element) {
if (!element.IsSVGElement())
return true;
- DEFINE_STATIC_LOCAL(
- HashSet<QualifiedName>, allowed_element_tags,
- ({
- SVGNames::aTag, SVGNames::circleTag, SVGNames::descTag,
- SVGNames::ellipseTag, SVGNames::gTag, SVGNames::imageTag,
- SVGNames::lineTag, SVGNames::metadataTag, SVGNames::pathTag,
- SVGNames::polygonTag, SVGNames::polylineTag, SVGNames::rectTag,
- SVGNames::svgTag, SVGNames::switchTag, SVGNames::symbolTag,
- SVGNames::textTag, SVGNames::textPathTag, SVGNames::titleTag,
- SVGNames::tspanTag, SVGNames::useTag,
- }));
+ DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, allowed_element_tags,
+ ({
+ svg_names::kATag, svg_names::kCircleTag,
+ svg_names::kDescTag, svg_names::kEllipseTag,
+ svg_names::kGTag, svg_names::kImageTag,
+ svg_names::kLineTag, svg_names::kMetadataTag,
+ svg_names::kPathTag, svg_names::kPolygonTag,
+ svg_names::kPolylineTag, svg_names::kRectTag,
+ svg_names::kSVGTag, svg_names::kSwitchTag,
+ svg_names::kSymbolTag, svg_names::kTextTag,
+ svg_names::kTextPathTag, svg_names::kTitleTag,
+ svg_names::kTSpanTag, svg_names::kUseTag,
+ }));
return !allowed_element_tags.Contains<SVGAttributeHashTranslator>(
element.TagQName());
}
@@ -577,12 +580,12 @@ bool SVGUseElement::HasCycleUseReferencing(const ContainerNode& target_instance,
// xlink:href are transferred to the generated 'g' element.
static void RemoveAttributesFromReplacementElement(
SVGElement& replacement_element) {
- replacement_element.removeAttribute(SVGNames::xAttr);
- replacement_element.removeAttribute(SVGNames::yAttr);
- replacement_element.removeAttribute(SVGNames::widthAttr);
- replacement_element.removeAttribute(SVGNames::heightAttr);
- replacement_element.removeAttribute(SVGNames::hrefAttr);
- replacement_element.removeAttribute(XLinkNames::hrefAttr);
+ replacement_element.removeAttribute(svg_names::kXAttr);
+ replacement_element.removeAttribute(svg_names::kYAttr);
+ replacement_element.removeAttribute(svg_names::kWidthAttr);
+ replacement_element.removeAttribute(svg_names::kHeightAttr);
+ replacement_element.removeAttribute(svg_names::kHrefAttr);
+ replacement_element.removeAttribute(xlink_names::kHrefAttr);
}
void SVGUseElement::ExpandUseElementsInShadowTree() {
@@ -686,7 +689,7 @@ FloatRect SVGUseElement::GetBBox() {
void SVGUseElement::DispatchPendingEvent() {
DCHECK(IsStructurallyExternal());
DCHECK(have_fired_load_event_);
- DispatchEvent(*Event::Create(EventTypeNames::load));
+ DispatchEvent(*Event::Create(event_type_names::kLoad));
}
void SVGUseElement::NotifyFinished(Resource* resource) {
@@ -696,7 +699,7 @@ void SVGUseElement::NotifyFinished(Resource* resource) {
InvalidateShadowTree();
if (!ResourceIsValid()) {
- DispatchEvent(*Event::Create(EventTypeNames::error));
+ DispatchEvent(*Event::Create(event_type_names::kError));
} else if (!resource->WasCanceled()) {
if (have_fired_load_event_)
return;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_use_element.h b/chromium/third_party/blink/renderer/core/svg/svg_use_element.h
index 5e853d81ea8..d7dc58afceb 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_use_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_use_element.h
@@ -40,6 +40,8 @@ class SVGUseElement final : public SVGGraphicsElement,
public:
static SVGUseElement* Create(Document&);
+
+ explicit SVGUseElement(Document&);
~SVGUseElement() override;
void InvalidateShadowTree();
@@ -62,8 +64,6 @@ class SVGUseElement final : public SVGGraphicsElement,
void Trace(blink::Visitor*) override;
private:
- explicit SVGUseElement(Document&);
-
void Dispose();
FloatRect GetBBox() override;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_view_element.cc b/chromium/third_party/blink/renderer/core/svg/svg_view_element.cc
index 0b75e9ad2ab..3406b2b94fe 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_view_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_view_element.cc
@@ -26,7 +26,7 @@
namespace blink {
inline SVGViewElement::SVGViewElement(Document& document)
- : SVGElement(SVGNames::viewTag, document), SVGFitToViewBox(this) {
+ : SVGElement(svg_names::kViewTag, document), SVGFitToViewBox(this) {
UseCounter::Count(document, WebFeature::kSVGViewElement);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_view_spec.cc b/chromium/third_party/blink/renderer/core/svg/svg_view_spec.cc
index 3fff52025ff..7e255936c37 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_view_spec.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_view_spec.cc
@@ -37,21 +37,21 @@ void SVGViewSpec::Trace(Visitor* visitor) {
}
SVGViewSpec* SVGViewSpec::CreateFromFragment(const String& fragment) {
- SVGViewSpec* view_spec = new SVGViewSpec();
+ SVGViewSpec* view_spec = MakeGarbageCollected<SVGViewSpec>();
if (!view_spec->ParseViewSpec(fragment))
return nullptr;
return view_spec;
}
SVGViewSpec* SVGViewSpec::CreateForViewElement(const SVGViewElement& view) {
- SVGViewSpec* view_spec = new SVGViewSpec();
+ SVGViewSpec* view_spec = MakeGarbageCollected<SVGViewSpec>();
if (view.HasValidViewBox())
view_spec->view_box_ = view.viewBox()->CurrentValue()->Clone();
if (view.preserveAspectRatio()->IsSpecified()) {
view_spec->preserve_aspect_ratio_ =
view.preserveAspectRatio()->CurrentValue()->Clone();
}
- if (view.hasAttribute(SVGNames::zoomAndPanAttr))
+ if (view.hasAttribute(svg_names::kZoomAndPanAttr))
view_spec->zoom_and_pan_ = view.zoomAndPan();
return view_spec;
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_view_spec.h b/chromium/third_party/blink/renderer/core/svg/svg_view_spec.h
index ff9fa2a4b77..6b8dee6edc7 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_view_spec.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_view_spec.h
@@ -35,6 +35,8 @@ class SVGViewSpec final : public GarbageCollectedFinalized<SVGViewSpec> {
static SVGViewSpec* CreateFromFragment(const String&);
static SVGViewSpec* CreateForViewElement(const SVGViewElement&);
+ SVGViewSpec();
+
const SVGRect* ViewBox() const { return view_box_; }
const SVGPreserveAspectRatio* PreserveAspectRatio() const {
return preserve_aspect_ratio_;
@@ -45,8 +47,6 @@ class SVGViewSpec final : public GarbageCollectedFinalized<SVGViewSpec> {
void Trace(Visitor*);
private:
- SVGViewSpec();
-
bool ParseViewSpec(const String&);
template <typename CharType>
bool ParseViewSpecInternal(const CharType* ptr, const CharType* end);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_zoom_and_pan.cc b/chromium/third_party/blink/renderer/core/svg/svg_zoom_and_pan.cc
index 5ae806fc7ea..967dff1231f 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_zoom_and_pan.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_zoom_and_pan.cc
@@ -28,12 +28,12 @@ namespace blink {
SVGZoomAndPan::SVGZoomAndPan() : zoom_and_pan_(kSVGZoomAndPanMagnify) {}
bool SVGZoomAndPan::IsKnownAttribute(const QualifiedName& attr_name) {
- return attr_name == SVGNames::zoomAndPanAttr;
+ return attr_name == svg_names::kZoomAndPanAttr;
}
bool SVGZoomAndPan::ParseAttribute(const QualifiedName& name,
const AtomicString& value) {
- if (name != SVGNames::zoomAndPanAttr)
+ if (name != svg_names::kZoomAndPanAttr)
return false;
zoom_and_pan_ = kSVGZoomAndPanUnknown;
if (!value.IsEmpty()) {
diff --git a/chromium/third_party/blink/renderer/core/svg/unsafe_svg_attribute_sanitization_test.cc b/chromium/third_party/blink/renderer/core/svg/unsafe_svg_attribute_sanitization_test.cc
index 9f003f031bc..f046a182192 100644
--- a/chromium/third_party/blink/renderer/core/svg/unsafe_svg_attribute_sanitization_test.cc
+++ b/chromium/third_party/blink/renderer/core/svg/unsafe_svg_attribute_sanitization_test.cc
@@ -59,7 +59,7 @@ String ContentAfterPastingHTML(DummyPageHolder* page_holder,
HTMLElement* body = page_holder->GetDocument().body();
// Make the body editable, and put the caret in it.
- body->setAttribute(HTMLNames::contenteditableAttr, "true");
+ body->setAttribute(html_names::kContenteditableAttr, "true");
body->focus();
frame.GetDocument()->UpdateStyleAndLayout();
frame.Selection().SetSelectionAndEndTyping(
@@ -277,14 +277,14 @@ TEST(UnsafeSVGAttributeSanitizationTest, stringsShouldNotSupportAddition) {
SVGElement* target = SVGAElement::Create(*document);
SVGAnimateElement* element = SVGAnimateElement::Create(*document);
element->SetTargetElement(target);
- element->SetAttributeName(XLinkNames::hrefAttr);
+ element->SetAttributeName(xlink_names::kHrefAttr);
// Sanity check that xlink:href was identified as a "string" attribute
EXPECT_EQ(kAnimatedString, element->GetAnimatedPropertyType());
EXPECT_FALSE(element->AnimatedPropertyTypeSupportsAddition());
- element->SetAttributeName(SVGNames::hrefAttr);
+ element->SetAttributeName(svg_names::kHrefAttr);
// Sanity check that href was identified as a "string" attribute
EXPECT_EQ(kAnimatedString, element->GetAnimatedPropertyType());
@@ -295,10 +295,10 @@ TEST(UnsafeSVGAttributeSanitizationTest, stringsShouldNotSupportAddition) {
TEST(UnsafeSVGAttributeSanitizationTest,
stripScriptingAttributes_animateElement) {
Vector<Attribute> attributes;
- attributes.push_back(Attribute(XLinkNames::hrefAttr, "javascript:alert()"));
- attributes.push_back(Attribute(SVGNames::hrefAttr, "javascript:alert()"));
- attributes.push_back(Attribute(SVGNames::fromAttr, "/home"));
- attributes.push_back(Attribute(SVGNames::toAttr, "javascript:own3d()"));
+ attributes.push_back(Attribute(xlink_names::kHrefAttr, "javascript:alert()"));
+ attributes.push_back(Attribute(svg_names::kHrefAttr, "javascript:alert()"));
+ attributes.push_back(Attribute(svg_names::kFromAttr, "/home"));
+ attributes.push_back(Attribute(svg_names::kToAttr, "javascript:own3d()"));
Document* document = Document::CreateForTest();
Element* element = SVGAnimateElement::Create(*document);
@@ -306,20 +306,20 @@ TEST(UnsafeSVGAttributeSanitizationTest,
EXPECT_EQ(3ul, attributes.size())
<< "One of the attributes should have been stripped.";
- EXPECT_EQ(XLinkNames::hrefAttr, attributes[0].GetName())
+ EXPECT_EQ(xlink_names::kHrefAttr, attributes[0].GetName())
<< "The 'xlink:href' attribute should not have been stripped from "
"<animate> because it is not a URL attribute of <animate>.";
- EXPECT_EQ(SVGNames::hrefAttr, attributes[1].GetName())
+ EXPECT_EQ(svg_names::kHrefAttr, attributes[1].GetName())
<< "The 'href' attribute should not have been stripped from "
"<animate> because it is not a URL attribute of <animate>.";
- EXPECT_EQ(SVGNames::fromAttr, attributes[2].GetName())
+ EXPECT_EQ(svg_names::kFromAttr, attributes[2].GetName())
<< "The 'from' attribute should not have been strippef from <animate> "
"because its value is innocuous.";
}
TEST(UnsafeSVGAttributeSanitizationTest,
isJavaScriptURLAttribute_hrefContainingJavascriptURL) {
- Attribute attribute(SVGNames::hrefAttr, "javascript:alert()");
+ Attribute attribute(svg_names::kHrefAttr, "javascript:alert()");
Document* document = Document::CreateForTest();
Element* element = SVGAElement::Create(*document);
EXPECT_TRUE(element->IsJavaScriptURLAttribute(attribute))
@@ -329,7 +329,7 @@ TEST(UnsafeSVGAttributeSanitizationTest,
TEST(UnsafeSVGAttributeSanitizationTest,
isJavaScriptURLAttribute_xlinkHrefContainingJavascriptURL) {
- Attribute attribute(XLinkNames::hrefAttr, "javascript:alert()");
+ Attribute attribute(xlink_names::kHrefAttr, "javascript:alert()");
Document* document = Document::CreateForTest();
Element* element = SVGAElement::Create(*document);
EXPECT_TRUE(element->IsJavaScriptURLAttribute(attribute))
@@ -341,7 +341,7 @@ TEST(
UnsafeSVGAttributeSanitizationTest,
isJavaScriptURLAttribute_xlinkHrefContainingJavascriptURL_alternatePrefix) {
QualifiedName href_alternate_prefix("foo", "href",
- XLinkNames::xlinkNamespaceURI);
+ xlink_names::kNamespaceURI);
Attribute evil_attribute(href_alternate_prefix, "javascript:alert()");
Document* document = Document::CreateForTest();
Element* element = SVGAElement::Create(*document);
@@ -353,7 +353,7 @@ TEST(
TEST(UnsafeSVGAttributeSanitizationTest,
isSVGAnimationAttributeSettingJavaScriptURL_fromContainingJavaScriptURL) {
- Attribute evil_attribute(SVGNames::fromAttr, "javascript:alert()");
+ Attribute evil_attribute(svg_names::kFromAttr, "javascript:alert()");
Document* document = Document::CreateForTest();
Element* element = SVGAnimateElement::Create(*document);
EXPECT_TRUE(
@@ -364,7 +364,7 @@ TEST(UnsafeSVGAttributeSanitizationTest,
TEST(UnsafeSVGAttributeSanitizationTest,
isSVGAnimationAttributeSettingJavaScriptURL_toContainingJavaScripURL) {
- Attribute evil_attribute(SVGNames::toAttr, "javascript:window.close()");
+ Attribute evil_attribute(svg_names::kToAttr, "javascript:window.close()");
Document* document = Document::CreateForTest();
Element* element = SVGSetElement::Create(*document);
EXPECT_TRUE(
@@ -376,7 +376,7 @@ TEST(UnsafeSVGAttributeSanitizationTest,
TEST(
UnsafeSVGAttributeSanitizationTest,
isSVGAnimationAttributeSettingJavaScriptURL_valuesContainingJavaScriptURL) {
- Attribute evil_attribute(SVGNames::valuesAttr, "hi!; javascript:confirm()");
+ Attribute evil_attribute(svg_names::kValuesAttr, "hi!; javascript:confirm()");
Document* document = Document::CreateForTest();
Element* element = SVGAnimateElement::Create(*document);
element = SVGAnimateElement::Create(*document);
@@ -388,7 +388,7 @@ TEST(
TEST(UnsafeSVGAttributeSanitizationTest,
isSVGAnimationAttributeSettingJavaScriptURL_innocuousAnimationAttribute) {
- Attribute fine_attribute(SVGNames::fromAttr, "hello, world!");
+ Attribute fine_attribute(svg_names::kFromAttr, "hello, world!");
Document* document = Document::CreateForTest();
Element* element = SVGSetElement::Create(*document);
EXPECT_FALSE(