summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/svg
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/svg')
-rw-r--r--chromium/third_party/blink/renderer/core/svg/animation/element_smil_animations.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/animation/element_smil_animations.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/animation/priority_queue.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/animation/priority_queue_test.cc31
-rw-r--r--chromium/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/animation/smil_repeat_count.h2
-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.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/animation/svg_smil_element.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/animation/svg_smil_element.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/svg_image.cc8
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/svg_image.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/svg_image_for_container.h9
-rw-r--r--chromium/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc100
-rw-r--r--chromium/third_party/blink/renderer/core/svg/linear_gradient_attributes.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/pattern_attributes.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/properties/svg_animated_property.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/properties/svg_animated_property.h6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/properties/svg_list_property_helper.h7
-rw-r--r--chromium/third_party/blink/renderer/core/svg/properties/svg_list_property_tear_off_helper.h62
-rw-r--r--chromium/third_party/blink/renderer/core/svg/properties/svg_property.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/properties/svg_property_tear_off.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/properties/svg_property_tear_off.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/radial_gradient_attributes.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_a_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_a_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_angle.cc86
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_angle.h37
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animate_element.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animate_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_angle.cc8
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_angle.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_boolean.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_color.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration.h30
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration_base.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration_base.h21
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_href.cc11
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_href.h8
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_integer.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_integer.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_length.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_length.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_length_list.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_number.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_number.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_number_list.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_preserve_aspect_ratio.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_rect.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_string.cc34
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_string.h9
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_string.idl2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_animated_transform_list.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_circle_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_circle_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_clip_path_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_clip_path_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.cc4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_component_transfer_function_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_document_extensions.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_document_extensions.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_element.h2
-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_element_rare_data.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_ellipse_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_ellipse_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_enumeration.cc40
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_enumeration.h55
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_enumeration_map.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_external_document_cache.cc13
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_external_document_cache.h10
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_blend_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_color_matrix_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_composite_element.cc10
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_composite_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.cc7
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_convolve_matrix_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.cc17
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_displacement_map_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_image_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_image_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_light_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_light_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_morphology_element.cc7
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_morphology_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_offset_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_offset_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_tile_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_tile_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.cc15
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fe_turbulence_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_filter_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_filter_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fit_to_view_box.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_fit_to_view_box.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_foreign_object_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_foreign_object_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_geometry_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_geometry_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_gradient_element.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_gradient_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_graphics_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_graphics_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_image_element.cc8
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_image_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_integer_optional_integer.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_integer_optional_integer.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_length.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_length.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_line_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_line_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_linear_gradient_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_linear_gradient_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_marker_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_marker_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_mask_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_mask_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_matrix_tear_off.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_matrix_tear_off.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_mpath_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_mpath_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_number_optional_number.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_number_optional_number.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_parser_utilities.cc37
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_parsing_error.cc1
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_path.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_path.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_path_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_path_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_pattern_element.cc7
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_pattern_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_poly_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_poly_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_radial_gradient_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_radial_gradient_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_rect.cc12
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_rect_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_rect_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_resource.cc6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_resource.h6
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_script_element.cc7
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_script_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_static_string_list.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_static_string_list.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_stop_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_stop_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_style_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_style_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_svg_element.cc12
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_svg_element.h2
-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_symbol_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_tests.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_tests.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_text_content_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_text_content_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_text_path_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_text_path_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_text_positioning_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_text_positioning_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_transform_list.cc17
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_transform_list.h4
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_transform_list_tear_off.cc8
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_transform_tear_off.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_transform_tear_off.h2
-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_tree_scope_resources.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_uri_reference.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_uri_reference.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_use_element.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_use_element.h2
-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_element.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_view_spec.cc2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/svg_view_spec.h2
-rw-r--r--chromium/third_party/blink/renderer/core/svg/unsafe_svg_attribute_sanitization_test.cc18
202 files changed, 494 insertions, 658 deletions
diff --git a/chromium/third_party/blink/renderer/core/svg/animation/element_smil_animations.cc b/chromium/third_party/blink/renderer/core/svg/animation/element_smil_animations.cc
index a6dce92358f..c9ddae660c6 100644
--- a/chromium/third_party/blink/renderer/core/svg/animation/element_smil_animations.cc
+++ b/chromium/third_party/blink/renderer/core/svg/animation/element_smil_animations.cc
@@ -41,7 +41,7 @@ bool ElementSMILAnimations::Apply(SMILTime elapsed) {
return did_apply;
}
-void ElementSMILAnimations::Trace(Visitor* visitor) {
+void ElementSMILAnimations::Trace(Visitor* visitor) const {
visitor->Trace(sandwiches_);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/animation/element_smil_animations.h b/chromium/third_party/blink/renderer/core/svg/animation/element_smil_animations.h
index b2c905dfa2c..706ff4c7167 100644
--- a/chromium/third_party/blink/renderer/core/svg/animation/element_smil_animations.h
+++ b/chromium/third_party/blink/renderer/core/svg/animation/element_smil_animations.h
@@ -27,7 +27,7 @@ class ElementSMILAnimations : public GarbageCollected<ElementSMILAnimations> {
bool Apply(SMILTime elapsed);
- void Trace(Visitor*);
+ void Trace(Visitor*) const;
private:
HeapHashMap<QualifiedName, Member<SMILAnimationSandwich>> sandwiches_;
diff --git a/chromium/third_party/blink/renderer/core/svg/animation/priority_queue.h b/chromium/third_party/blink/renderer/core/svg/animation/priority_queue.h
index 55c59b33f03..86030bc43e8 100644
--- a/chromium/third_party/blink/renderer/core/svg/animation/priority_queue.h
+++ b/chromium/third_party/blink/renderer/core/svg/animation/priority_queue.h
@@ -55,7 +55,7 @@ class PriorityQueue {
const EntryType& operator[](wtf_size_t index) const { return heap_[index]; }
- void Trace(Visitor* visitor) { visitor->Trace(heap_); }
+ void Trace(Visitor* visitor) const { visitor->Trace(heap_); }
private:
FRIEND_TEST_ALL_PREFIXES(PriorityQueueTest, Updates);
@@ -142,6 +142,8 @@ inline void PriorityQueue<PriorityType, ElementType>::Remove(
Swap(heap_[index], heap_.back());
heap_.pop_back();
element->PriorityQueueHandle() = kNotFound;
+ if (index == heap_.size() || PercolateUp(index) != index)
+ return;
PercolateDown(index);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/animation/priority_queue_test.cc b/chromium/third_party/blink/renderer/core/svg/animation/priority_queue_test.cc
index c59a67911ea..f5619087da1 100644
--- a/chromium/third_party/blink/renderer/core/svg/animation/priority_queue_test.cc
+++ b/chromium/third_party/blink/renderer/core/svg/animation/priority_queue_test.cc
@@ -17,7 +17,7 @@ class TestNode : public GarbageCollected<TestNode> {
wtf_size_t& PriorityQueueHandle() { return handle_; }
- void Trace(Visitor*) {}
+ void Trace(Visitor*) const {}
private:
wtf_size_t handle_;
@@ -84,6 +84,35 @@ TEST(PriorityQueueTest, RemovalMin) {
}
}
+TEST(PriorityQueueTest, RemovalFilledFromOtherSubtree) {
+ TestPriorityQueue queue;
+ using PairType = std::pair<int, Member<TestNode>>;
+ HeapVector<PairType> vector;
+ EXPECT_TRUE(queue.IsEmpty());
+ // Build a heap/queue where the left subtree contains priority 3 and the right
+ // contains priority 4:
+ //
+ // /-{[6]=4} {[index]=priority}
+ // /-{[2]=4}-{[5]=4}
+ // {[0]=3}
+ // \-{[1]=3}-{[4]=3}
+ // \-{[3]=3}
+ // \-{[7]=3}
+ //
+ for (int n : {3, 3, 4, 3, 3, 4, 4, 3}) {
+ TestNode* node = MakeGarbageCollected<TestNode>();
+ queue.Insert(n, node);
+ vector.push_back<PairType>({n, node});
+ }
+ EXPECT_FALSE(queue.IsEmpty());
+ EXPECT_EQ(queue.size(), 8u);
+ VerifyHeap(queue);
+
+ queue.Remove(vector[6].second);
+ EXPECT_EQ(queue.size(), 7u);
+ VerifyHeap(queue);
+}
+
TEST(PriorityQueueTest, RemovalReverse) {
TestPriorityQueue queue;
using PairType = std::pair<int, Member<TestNode>>;
diff --git a/chromium/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.cc b/chromium/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.cc
index 2efc2b2b522..2e8ef9ab3fa 100644
--- a/chromium/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.cc
+++ b/chromium/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.cc
@@ -119,7 +119,7 @@ bool SMILAnimationSandwich::ApplyAnimationValues() {
return true;
}
-void SMILAnimationSandwich::Trace(Visitor* visitor) {
+void SMILAnimationSandwich::Trace(Visitor* visitor) const {
visitor->Trace(sandwich_);
visitor->Trace(active_);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.h b/chromium/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.h
index 7c0f5d26ec8..cce746343e8 100644
--- a/chromium/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.h
+++ b/chromium/third_party/blink/renderer/core/svg/animation/smil_animation_sandwich.h
@@ -106,7 +106,7 @@ class SMILAnimationSandwich : public GarbageCollected<SMILAnimationSandwich> {
bool IsEmpty() { return sandwich_.IsEmpty(); }
- void Trace(Visitor*);
+ void Trace(Visitor*) const;
private:
// Results are accumulated to the first animation element that animates and
diff --git a/chromium/third_party/blink/renderer/core/svg/animation/smil_repeat_count.h b/chromium/third_party/blink/renderer/core/svg/animation/smil_repeat_count.h
index 23d1f4810e3..5cebc9deea0 100644
--- a/chromium/third_party/blink/renderer/core/svg/animation/smil_repeat_count.h
+++ b/chromium/third_party/blink/renderer/core/svg/animation/smil_repeat_count.h
@@ -8,7 +8,7 @@
#include <cmath>
#include <limits>
-#include "base/logging.h"
+#include "base/check_op.h"
namespace blink {
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 ad245c6aec1..7e47120ead8 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
@@ -598,7 +598,7 @@ void SMILTimeContainer::AdvanceFrameForTesting() {
SetElapsed(Elapsed() + kFrameDuration);
}
-void SMILTimeContainer::Trace(Visitor* visitor) {
+void SMILTimeContainer::Trace(Visitor* visitor) const {
visitor->Trace(animated_targets_);
visitor->Trace(priority_queue_);
visitor->Trace(owner_svg_element_);
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 a7201b8dea7..81370a979f0 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
@@ -76,7 +76,7 @@ class CORE_EXPORT SMILTimeContainer final
void AdvanceFrameForTesting();
bool EventsDisabled() const { return !should_dispatch_events_; }
- void Trace(Visitor*);
+ void Trace(Visitor*) const;
private:
enum FrameSchedulingState {
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 016afbac7c9..eaf691d749a 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
@@ -135,7 +135,7 @@ class ConditionEventListener final : public NativeEventListener {
animation_->Elapsed() + condition_->Offset(), SMILTimeOrigin::kEvent);
}
- void Trace(Visitor* visitor) override {
+ void Trace(Visitor* visitor) const override {
visitor->Trace(animation_);
visitor->Trace(condition_);
NativeEventListener::Trace(visitor);
@@ -161,7 +161,7 @@ SVGSMILElement::Condition::Condition(Type type,
SVGSMILElement::Condition::~Condition() = default;
-void SVGSMILElement::Condition::Trace(Visitor* visitor) {
+void SVGSMILElement::Condition::Trace(Visitor* visitor) const {
visitor->Trace(base_element_);
visitor->Trace(base_id_observer_);
visitor->Trace(event_listener_);
@@ -1311,7 +1311,7 @@ void SVGSMILElement::DidChangeAnimationTarget() {
is_scheduled_ = true;
}
-void SVGSMILElement::Trace(Visitor* visitor) {
+void SVGSMILElement::Trace(Visitor* visitor) const {
visitor->Trace(target_element_);
visitor->Trace(target_id_observer_);
visitor->Trace(time_container_);
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 436c4979bb6..953756ce205 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
@@ -148,7 +148,7 @@ class CORE_EXPORT SVGSMILElement : public SVGElement, public SVGTests {
wtf_size_t& PriorityQueueHandle() { return queue_handle_; }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
enum BeginOrEnd { kBegin, kEnd };
@@ -215,7 +215,7 @@ class CORE_EXPORT SVGSMILElement : public SVGElement, public SVGTests {
unsigned repeat);
~Condition();
- void Trace(Visitor*);
+ void Trace(Visitor*) const;
Type GetType() const { return type_; }
BeginOrEnd GetBeginOrEnd() const { return begin_or_end_; }
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 cf6c426f47f..d14e7fe5fe6 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
@@ -56,7 +56,7 @@ FEImage::FEImage(Filter* filter,
FilterEffect::SetOperatingInterpolationSpace(kInterpolationSpaceSRGB);
}
-void FEImage::Trace(Visitor* visitor) {
+void FEImage::Trace(Visitor* visitor) const {
visitor->Trace(element_);
visitor->Trace(preserve_aspect_ratio_);
FilterEffect::Trace(visitor);
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 fd0be877c6b..cbf1cff8164 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
@@ -45,7 +45,7 @@ class FEImage final : public FilterEffect {
WTF::TextStream& ExternalRepresentation(WTF::TextStream&,
int indention) const override;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
~FEImage() override = default;
diff --git a/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.cc b/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.cc
index 10bad549ae3..1ebaa99c828 100644
--- a/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.cc
+++ b/chromium/third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.cc
@@ -97,7 +97,7 @@ void SVGFilterGraphNodeMap::InvalidateDependentEffects(FilterEffect* effect) {
InvalidateDependentEffects(effect_reference);
}
-void SVGFilterGraphNodeMap::Trace(Visitor* visitor) {
+void SVGFilterGraphNodeMap::Trace(Visitor* visitor) const {
visitor->Trace(effect_element_);
visitor->Trace(effect_references_);
}
@@ -165,7 +165,7 @@ void SVGFilterBuilder::BuildGraph(Filter* filter,
EColorInterpolation filter_color_interpolation =
ColorInterpolationForElement(filter_element, CI_AUTO);
SVGUnitTypes::SVGUnitType primitive_units =
- filter_element.primitiveUnits()->CurrentValue()->EnumValue();
+ filter_element.primitiveUnits()->CurrentEnumValue();
for (SVGElement* element = Traversal<SVGElement>::FirstChild(filter_element);
element; element = Traversal<SVGElement>::NextSibling(*element)) {
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 5aa68df7966..29a254455b2 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
@@ -60,7 +60,7 @@ class SVGFilterGraphNodeMap final
void InvalidateDependentEffects(FilterEffect*);
- void Trace(Visitor*);
+ void Trace(Visitor*) const;
private:
FilterEffectSet& EffectReferences(FilterEffect* effect) {
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 6f555dcfa2d..19ba9b12982 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
@@ -61,7 +61,6 @@
#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/dark_mode_image_classifier.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context.h"
#include "third_party/blink/renderer/platform/graphics/image_observer.h"
#include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h"
@@ -925,11 +924,4 @@ String SVGImage::FilenameExtension() const {
return "svg";
}
-DarkModeClassification SVGImage::CheckTypeSpecificConditionsForDarkMode(
- const FloatRect& dest_rect,
- DarkModeImageClassifier* classifier) {
- classifier->SetImageType(DarkModeImageClassifier::ImageType::kSvg);
- return DarkModeClassification::kNotClassified;
-}
-
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/graphics/svg_image.h b/chromium/third_party/blink/renderer/core/svg/graphics/svg_image.h
index 3841f0e2120..2977258ebd8 100644
--- a/chromium/third_party/blink/renderer/core/svg/graphics/svg_image.h
+++ b/chromium/third_party/blink/renderer/core/svg/graphics/svg_image.h
@@ -126,10 +126,6 @@ class CORE_EXPORT SVGImage final : public Image {
PaintImage PaintImageForCurrentFrame() override;
- DarkModeClassification CheckTypeSpecificConditionsForDarkMode(
- const FloatRect& dest_rect,
- DarkModeImageClassifier* classifier) override;
-
protected:
// Whether or not size is available yet.
bool IsSizeAvailable() override;
diff --git a/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_for_container.h b/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_for_container.h
index 3a59c9578a4..1dcec7fa3ce 100644
--- a/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_for_container.h
+++ b/chromium/third_party/blink/renderer/core/svg/graphics/svg_image_for_container.h
@@ -69,6 +69,8 @@ class SVGImageForContainer final : public Image {
image, container_size_without_zoom, zoom, url));
}
+ bool IsSVGImageForContainer() const override { return true; }
+
IntSize Size() const override;
FloatSize SizeAsFloat(RespectImageOrientationEnum) const override;
@@ -89,13 +91,6 @@ class SVGImageForContainer final : public Image {
PaintImage PaintImageForCurrentFrame() override;
- DarkModeClassification CheckTypeSpecificConditionsForDarkMode(
- const FloatRect& dest_rect,
- DarkModeImageClassifier* classifier) override {
- return image_->CheckTypeSpecificConditionsForDarkMode(dest_rect,
- classifier);
- }
-
protected:
void DrawPattern(GraphicsContext&,
const FloatRect&,
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 6a7a5717eed..ea002b2956f 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
@@ -21,8 +21,6 @@
#include "third_party/blink/renderer/core/testing/sim/sim_request.h"
#include "third_party/blink/renderer/core/testing/sim/sim_test.h"
#include "third_party/blink/renderer/platform/geometry/float_rect.h"
-#include "third_party/blink/renderer/platform/graphics/dark_mode_generic_classifier.h"
-#include "third_party/blink/renderer/platform/graphics/dark_mode_image_classifier.h"
#include "third_party/blink/renderer/platform/graphics/paint/paint_canvas.h"
#include "third_party/blink/renderer/platform/graphics/paint/paint_flags.h"
#include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
@@ -32,11 +30,6 @@
#include "third_party/skia/include/utils/SkNullCanvas.h"
namespace blink {
-namespace {
-
-const float kEpsilon = 0.00001;
-
-} // namespace
class SVGImageTest : public testing::Test, private ScopedMockOverlayScrollbars {
public:
@@ -71,30 +64,6 @@ class SVGImageTest : public testing::Test, private ScopedMockOverlayScrollbars {
Image::kSyncDecode);
}
- // Loads the image from |file_name|, computes features into |features|,
- // and returns the classification result.
- bool GetFeaturesAndClassification(
- const String& file_name,
- DarkModeImageClassifier::Features* features) {
- CHECK(features);
- SCOPED_TRACE(file_name);
- LoadUsingFileName(file_name);
- DarkModeImageClassifier dark_mode_image_classifier;
- dark_mode_image_classifier.SetImageType(
- DarkModeImageClassifier::ImageType::kSvg);
- auto features_or_null = dark_mode_image_classifier.GetFeatures(
- image_.get(), FloatRect(0, 0, image_->width(), image_->height()));
- CHECK(features_or_null.has_value());
- (*features) = features_or_null.value();
- DarkModeClassification result =
- dark_mode_generic_classifier_.ClassifyWithFeatures(*features);
- return result == DarkModeClassification::kApplyFilter;
- }
-
- DarkModeGenericClassifier* classifier() {
- return &dark_mode_generic_classifier_;
- }
-
private:
class PauseControlImageObserver
: public GarbageCollected<PauseControlImageObserver>,
@@ -113,14 +82,15 @@ class SVGImageTest : public testing::Test, private ScopedMockOverlayScrollbars {
void AsyncLoadCompleted(const blink::Image*) override {}
- void Trace(Visitor* visitor) override { ImageObserver::Trace(visitor); }
+ void Trace(Visitor* visitor) const override {
+ ImageObserver::Trace(visitor);
+ }
private:
bool should_pause_;
};
Persistent<PauseControlImageObserver> observer_;
scoped_refptr<SVGImage> image_;
- DarkModeGenericClassifier dark_mode_generic_classifier_;
};
const char kAnimatedDocument[] =
@@ -266,70 +236,6 @@ TEST_F(SVGImageTest, DisablesSMILEvents) {
EXPECT_TRUE(time_container->EventsDisabled());
}
-TEST_F(SVGImageTest, DarkModeClassification) {
- DarkModeImageClassifier::Features features;
-
- // Test Case 1:
- // Grayscale
- // Color Buckets Ratio: Low
- // Decision Tree: Apply
- // Neural Network: NA
- EXPECT_TRUE(GetFeaturesAndClassification("/svg/animations/path-animation.svg",
- &features));
- EXPECT_EQ(classifier()->ClassifyUsingDecisionTreeForTesting(features),
- DarkModeClassification::kApplyFilter);
- EXPECT_FALSE(features.is_colorful);
- EXPECT_TRUE(features.is_svg);
- EXPECT_NEAR(0.0625f, features.color_buckets_ratio, kEpsilon);
- EXPECT_NEAR(0.968889f, features.transparency_ratio, kEpsilon);
- EXPECT_NEAR(0.02f, features.background_ratio, kEpsilon);
-
- // Test Case 2:
- // Color
- // Color Buckets Ratio: Low
- // Decision Tree: Apply
- // Neural Network: NA.
- EXPECT_TRUE(GetFeaturesAndClassification(
- "/svg/stroke/zero-length-path-linecap-rendering.svg", &features));
- EXPECT_EQ(classifier()->ClassifyUsingDecisionTreeForTesting(features),
- DarkModeClassification::kApplyFilter);
- EXPECT_TRUE(features.is_colorful);
- EXPECT_TRUE(features.is_svg);
- EXPECT_NEAR(0.00170898f, features.color_buckets_ratio, kEpsilon);
- EXPECT_NEAR(0.0f, features.transparency_ratio, kEpsilon);
- EXPECT_NEAR(0.0f, features.background_ratio, kEpsilon);
-
- // Test Case 3:
- // Color
- // Color Buckets Ratio: Low
- // Decision Tree: Apply
- // Neural Network: NA.
- EXPECT_TRUE(GetFeaturesAndClassification(
- "/svg/foreignObject/fixed-position.svg", &features));
- EXPECT_EQ(classifier()->ClassifyUsingDecisionTreeForTesting(features),
- DarkModeClassification::kApplyFilter);
- EXPECT_TRUE(features.is_colorful);
- EXPECT_TRUE(features.is_svg);
- EXPECT_NEAR(0.000244141f, features.color_buckets_ratio, kEpsilon);
- EXPECT_NEAR(0.777778f, features.transparency_ratio, kEpsilon);
- EXPECT_NEAR(0.0f, features.background_ratio, kEpsilon);
-
- // Test Case 4:
- // Grayscale
- // Color Buckets Ratio: Low
- // Decision Tree: Apply
- // Neural Network: NA.
- EXPECT_TRUE(GetFeaturesAndClassification("/svg/clip-path/clip-in-mask.svg",
- &features));
- EXPECT_EQ(classifier()->ClassifyUsingDecisionTreeForTesting(features),
- DarkModeClassification::kApplyFilter);
- EXPECT_FALSE(features.is_colorful);
- EXPECT_TRUE(features.is_svg);
- EXPECT_NEAR(0.0625f, features.color_buckets_ratio, kEpsilon);
- EXPECT_NEAR(0.888889f, features.transparency_ratio, kEpsilon);
- EXPECT_NEAR(0.11f, features.background_ratio, kEpsilon);
-}
-
class SVGImageSimTest : public SimTest, private ScopedMockOverlayScrollbars {};
TEST_F(SVGImageSimTest, PageVisibilityHiddenToVisible) {
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 aa759fa71bf..bda65f987a5 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
@@ -70,7 +70,7 @@ struct LinearGradientAttributes : GradientAttributes {
bool HasX2() const { return x2_set_; }
bool HasY2() const { return y2_set_; }
- void Trace(Visitor* visitor) {
+ void Trace(Visitor* visitor) const {
visitor->Trace(x1_);
visitor->Trace(y1_);
visitor->Trace(x2_);
@@ -101,7 +101,7 @@ class LinearGradientAttributesWrapper final
void Set(const LinearGradientAttributes& attributes) {
attributes_ = attributes;
}
- void Trace(Visitor* visitor) { visitor->Trace(attributes_); }
+ void Trace(Visitor* visitor) const { visitor->Trace(attributes_); }
private:
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 7aef7ddd25b..70aeb6a58d5 100644
--- a/chromium/third_party/blink/renderer/core/svg/pattern_attributes.h
+++ b/chromium/third_party/blink/renderer/core/svg/pattern_attributes.h
@@ -133,7 +133,7 @@ class PatternAttributes final {
bool HasPatternTransform() const { return pattern_transform_set_; }
bool HasPatternContentElement() const { return pattern_content_element_set_; }
- void Trace(Visitor* visitor) {
+ void Trace(Visitor* visitor) const {
visitor->Trace(x_);
visitor->Trace(y_);
visitor->Trace(width_);
@@ -176,7 +176,7 @@ class PatternAttributesWrapper
PatternAttributes& Attributes() { return attributes_; }
void Set(const PatternAttributes& attributes) { attributes_ = attributes; }
- void Trace(Visitor* visitor) { visitor->Trace(attributes_); }
+ void Trace(Visitor* visitor) const { visitor->Trace(attributes_); }
private:
PatternAttributes attributes_;
diff --git a/chromium/third_party/blink/renderer/core/svg/properties/svg_animated_property.cc b/chromium/third_party/blink/renderer/core/svg/properties/svg_animated_property.cc
index 3b73e215eaa..16d907eafff 100644
--- a/chromium/third_party/blink/renderer/core/svg/properties/svg_animated_property.cc
+++ b/chromium/third_party/blink/renderer/core/svg/properties/svg_animated_property.cc
@@ -58,7 +58,7 @@ SVGAnimatedPropertyBase::SVGAnimatedPropertyBase(
SVGAnimatedPropertyBase::~SVGAnimatedPropertyBase() = default;
-void SVGAnimatedPropertyBase::Trace(Visitor* visitor) {
+void SVGAnimatedPropertyBase::Trace(Visitor* visitor) const {
visitor->Trace(context_element_);
}
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 5acb3121fe0..857e00b6a20 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
@@ -78,7 +78,7 @@ class SVGAnimatedPropertyBase : public GarbageCollectedMixin {
bool IsSpecified() const;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
void BaseValueChanged();
void EnsureAnimValUpdated();
@@ -157,7 +157,7 @@ class SVGAnimatedPropertyCommon : public SVGAnimatedPropertyBase {
current_value_ = base_value_;
}
- void Trace(Visitor* visitor) override {
+ void Trace(Visitor* visitor) const override {
visitor->Trace(base_value_);
visitor->Trace(current_value_);
SVGAnimatedPropertyBase::Trace(visitor);
@@ -269,7 +269,7 @@ class SVGAnimatedProperty<Property, TearOffType, void>
return anim_val_tear_off_;
}
- void Trace(Visitor* visitor) override {
+ void Trace(Visitor* visitor) const override {
visitor->Trace(base_val_tear_off_);
visitor->Trace(anim_val_tear_off_);
SVGAnimatedPropertyCommon<Property>::Trace(visitor);
diff --git a/chromium/third_party/blink/renderer/core/svg/properties/svg_list_property_helper.h b/chromium/third_party/blink/renderer/core/svg/properties/svg_list_property_helper.h
index 24f2aed8241..151a991f8cf 100644
--- a/chromium/third_party/blink/renderer/core/svg/properties/svg_list_property_helper.h
+++ b/chromium/third_party/blink/renderer/core/svg/properties/svg_list_property_helper.h
@@ -101,13 +101,13 @@ class SVGListPropertyHelper : public SVGPropertyHelper<Derived> {
ItemPropertyType* AppendItem(ItemPropertyType*);
ItemPropertyType* ReplaceItem(ItemPropertyType*, uint32_t, ExceptionState&);
- void Trace(Visitor* visitor) override {
+ void Trace(Visitor* visitor) const override {
visitor->Trace(values_);
SVGPropertyHelper<Derived>::Trace(visitor);
}
protected:
- void DeepCopy(Derived*);
+ void DeepCopy(const Derived*);
bool AdjustFromToListValues(Derived* from_list,
Derived* to_list,
@@ -227,7 +227,8 @@ bool SVGListPropertyHelper<Derived, ItemProperty>::CheckIndexBound(
}
template <typename Derived, typename ItemProperty>
-void SVGListPropertyHelper<Derived, ItemProperty>::DeepCopy(Derived* from) {
+void SVGListPropertyHelper<Derived, ItemProperty>::DeepCopy(
+ const Derived* from) {
Clear();
for (const auto& from_value : from->values_)
Append(from_value->Clone());
diff --git a/chromium/third_party/blink/renderer/core/svg/properties/svg_list_property_tear_off_helper.h b/chromium/third_party/blink/renderer/core/svg/properties/svg_list_property_tear_off_helper.h
index a98b0cc5e5b..ae3f6d6a54b 100644
--- a/chromium/third_party/blink/renderer/core/svg/properties/svg_list_property_tear_off_helper.h
+++ b/chromium/third_party/blink/renderer/core/svg/properties/svg_list_property_tear_off_helper.h
@@ -38,48 +38,12 @@
namespace blink {
-template <typename ItemProperty>
-class ListItemPropertyTraits {
- STATIC_ONLY(ListItemPropertyTraits);
-
- public:
- typedef ItemProperty ItemPropertyType;
- typedef typename ItemPropertyType::TearOffType ItemTearOffType;
-
- static ItemPropertyType* GetValueForInsertionFromTearOff(
- ItemTearOffType* new_item,
- SVGAnimatedPropertyBase* binding) {
- // |newItem| is immutable, OR
- // |newItem| belongs to a SVGElement, but it does not belong to an animated
- // list, e.g. "textElement.x.baseVal.appendItem(rectElement.width.baseVal)"
- // Spec: If newItem is already in a list, then a new object is created with
- // the same values as newItem and this item is inserted into the list.
- // Otherwise, newItem itself is inserted into the list.
- if (new_item->IsImmutable() || new_item->Target()->OwnerList() ||
- new_item->ContextElement()) {
- // We have to copy the incoming |newItem|,
- // Otherwise we'll end up having two tearoffs that operate on the same
- // SVGProperty. Consider the example below: SVGRectElements
- // SVGAnimatedLength 'width' property baseVal points to the same tear off
- // object that's inserted into SVGTextElements SVGAnimatedLengthList 'x'.
- // textElement.x.baseVal.getItem(0).value += 150 would mutate the
- // rectElement width _and_ the textElement x list. That's obviously wrong,
- // take care of that.
- return new_item->Target()->Clone();
- }
-
- new_item->Bind(binding);
- return new_item->Target();
- }
-};
-
template <typename Derived, typename ListProperty>
class SVGListPropertyTearOffHelper : public SVGPropertyTearOff<ListProperty> {
public:
typedef ListProperty ListPropertyType;
typedef typename ListPropertyType::ItemPropertyType ItemPropertyType;
typedef typename ItemPropertyType::TearOffType ItemTearOffType;
- typedef ListItemPropertyTraits<ItemPropertyType> ItemTraits;
// SVG*List DOM interface:
@@ -182,9 +146,29 @@ class SVGListPropertyTearOffHelper : public SVGPropertyTearOff<ListProperty> {
binding,
property_is_anim_val) {}
- ItemPropertyType* GetValueForInsertionFromTearOff(ItemTearOffType* new_item) {
- return ItemTraits::GetValueForInsertionFromTearOff(
- new_item, ToDerived()->GetBinding());
+ ItemPropertyType* GetValueForInsertionFromTearOff(
+ ItemTearOffType* item_tear_off) {
+ ItemPropertyType* item = item_tear_off->Target();
+ // |new_item| is immutable, OR
+ // |new_item| belongs to a SVGElement, but it does not belong to an animated
+ // list, e.g. "textElement.x.baseVal.appendItem(rectElement.width.baseVal)"
+ // Spec: If |new_item| is already in a list, then a new object is created
+ // with the same values as |new_item| and this item is inserted into the
+ // list. Otherwise, |new_item| itself is inserted into the list.
+ if (item_tear_off->IsImmutable() || item->OwnerList() ||
+ item_tear_off->ContextElement()) {
+ // We have to copy the incoming |new_item|,
+ // otherwise we'll end up having two tear-offs that operate on the same
+ // SVGProperty. Consider the example below: SVGRectElements
+ // SVGAnimatedLength 'width' property baseVal points to the same tear-off
+ // object that's inserted into SVGTextElements SVGAnimatedLengthList 'x'.
+ // textElement.x.baseVal.getItem(0).value += 150 would mutate the
+ // rectElement width _and_ the textElement x list. That's obviously wrong,
+ // take care of that.
+ return item->Clone();
+ }
+ item_tear_off->Bind(ToDerived()->GetBinding());
+ return item;
}
ItemTearOffType* CreateItemTearOff(ItemPropertyType* value) {
diff --git a/chromium/third_party/blink/renderer/core/svg/properties/svg_property.h b/chromium/third_party/blink/renderer/core/svg/properties/svg_property.h
index a58d5a8ea62..75f40eac663 100644
--- a/chromium/third_party/blink/renderer/core/svg/properties/svg_property.h
+++ b/chromium/third_party/blink/renderer/core/svg/properties/svg_property.h
@@ -85,7 +85,7 @@ class SVGPropertyBase : public GarbageCollected<SVGPropertyBase> {
owner_list_ = owner_list;
}
- virtual void Trace(Visitor* visitor) {}
+ virtual void Trace(Visitor* visitor) const {}
protected:
SVGPropertyBase() : owner_list_(nullptr) {}
diff --git a/chromium/third_party/blink/renderer/core/svg/properties/svg_property_tear_off.cc b/chromium/third_party/blink/renderer/core/svg/properties/svg_property_tear_off.cc
index 1db1f82f94f..d0c0d2a6028 100644
--- a/chromium/third_party/blink/renderer/core/svg/properties/svg_property_tear_off.cc
+++ b/chromium/third_party/blink/renderer/core/svg/properties/svg_property_tear_off.cc
@@ -49,7 +49,7 @@ SVGPropertyTearOffBase::SVGPropertyTearOffBase(SVGElement* context_element)
binding_(nullptr),
property_is_anim_val_(kPropertyIsNotAnimVal) {}
-void SVGPropertyTearOffBase::Trace(Visitor* visitor) {
+void SVGPropertyTearOffBase::Trace(Visitor* visitor) const {
visitor->Trace(context_element_);
visitor->Trace(binding_);
ScriptWrappable::Trace(visitor);
diff --git a/chromium/third_party/blink/renderer/core/svg/properties/svg_property_tear_off.h b/chromium/third_party/blink/renderer/core/svg/properties/svg_property_tear_off.h
index a2c2a97d1c9..e7918d6a1d5 100644
--- a/chromium/third_party/blink/renderer/core/svg/properties/svg_property_tear_off.h
+++ b/chromium/third_party/blink/renderer/core/svg/properties/svg_property_tear_off.h
@@ -61,7 +61,7 @@ class SVGPropertyTearOffBase : public ScriptWrappable {
void Bind(SVGAnimatedPropertyBase* binding);
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
static void ThrowReadOnly(ExceptionState&);
@@ -90,7 +90,7 @@ class SVGPropertyTearOff : public SVGPropertyTearOffBase {
void SetTarget(Property* target) { target_ = target; }
- void Trace(Visitor* visitor) override {
+ void Trace(Visitor* visitor) const override {
visitor->Trace(target_);
SVGPropertyTearOffBase::Trace(visitor);
}
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 9143d140e19..54a6d428ced 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
@@ -86,7 +86,7 @@ struct RadialGradientAttributes final : GradientAttributes {
bool HasFy() const { return fy_set_; }
bool HasFr() const { return fr_set_; }
- void Trace(Visitor* visitor) {
+ void Trace(Visitor* visitor) const {
visitor->Trace(cx_);
visitor->Trace(cy_);
visitor->Trace(r_);
@@ -123,7 +123,7 @@ class RadialGradientAttributesWrapper final
void Set(const RadialGradientAttributes& attributes) {
attributes_ = attributes;
}
- void Trace(Visitor* visitor) { visitor->Trace(attributes_); }
+ void Trace(Visitor* visitor) const { visitor->Trace(attributes_); }
private:
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 b27a8885972..5ac5fdc4411 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
@@ -58,7 +58,7 @@ SVGAElement::SVGAElement(Document& document)
AddToPropertyMap(svg_target_);
}
-void SVGAElement::Trace(Visitor* visitor) {
+void SVGAElement::Trace(Visitor* visitor) const {
visitor->Trace(svg_target_);
SVGGraphicsElement::Trace(visitor);
SVGURIReference::Trace(visitor);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_a_element.h b/chromium/third_party/blink/renderer/core/svg/svg_a_element.h
index 79e0722aa83..a094c7e6e59 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_a_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_a_element.h
@@ -38,7 +38,7 @@ class CORE_EXPORT SVGAElement final : public SVGGraphicsElement,
explicit SVGAElement(Document&);
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
String title() const override;
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 87d2ce53ce4..01ce1928787 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_angle.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_angle.cc
@@ -41,46 +41,28 @@ const SVGEnumerationMap& GetEnumerationMap<SVGMarkerOrientType>() {
return entries;
}
-SVGMarkerOrientEnumeration::SVGMarkerOrientEnumeration(SVGAngle* angle)
- : SVGEnumeration<SVGMarkerOrientType>(kSVGMarkerOrientAngle),
- angle_(angle) {}
+namespace {
-SVGMarkerOrientEnumeration::~SVGMarkerOrientEnumeration() = default;
+class SVGMarkerOrientEnumeration final : public SVGEnumeration {
+ public:
+ explicit SVGMarkerOrientEnumeration(SVGAngle* angle)
+ : SVGEnumeration(kSVGMarkerOrientAngle), angle_(angle) {}
-void SVGMarkerOrientEnumeration::Trace(Visitor* visitor) {
- visitor->Trace(angle_);
- SVGEnumeration<SVGMarkerOrientType>::Trace(visitor);
-}
+ void Trace(Visitor* visitor) const override {
+ visitor->Trace(angle_);
+ SVGEnumeration::Trace(visitor);
+ }
-void SVGMarkerOrientEnumeration::NotifyChange() {
- DCHECK(angle_);
- angle_->OrientTypeChanged();
-}
+ private:
+ void NotifyChange() override {
+ DCHECK(angle_);
+ angle_->OrientTypeChanged();
+ }
-void SVGMarkerOrientEnumeration::Add(SVGPropertyBase*, SVGElement*) {
- // SVGMarkerOrientEnumeration is only animated via SVGAngle
- NOTREACHED();
-}
+ Member<SVGAngle> angle_;
+};
-void SVGMarkerOrientEnumeration::CalculateAnimatedValue(
- const SVGAnimateElement&,
- float percentage,
- unsigned repeat_count,
- SVGPropertyBase* from,
- SVGPropertyBase* to,
- SVGPropertyBase* to_at_end_of_duration_value,
- SVGElement* context_element) {
- // SVGMarkerOrientEnumeration is only animated via SVGAngle
- NOTREACHED();
-}
-
-float SVGMarkerOrientEnumeration::CalculateDistance(
- SVGPropertyBase* to,
- SVGElement* context_element) {
- // SVGMarkerOrientEnumeration is only animated via SVGAngle
- NOTREACHED();
- return -1.0;
-}
+} // namespace
SVGAngle::SVGAngle()
: unit_type_(kSvgAngletypeUnspecified),
@@ -98,14 +80,14 @@ SVGAngle::SVGAngle(SVGAngleType unit_type,
SVGAngle::~SVGAngle() = default;
-void SVGAngle::Trace(Visitor* visitor) {
+void SVGAngle::Trace(Visitor* visitor) const {
visitor->Trace(orient_type_);
SVGPropertyHelper<SVGAngle>::Trace(visitor);
}
SVGAngle* SVGAngle::Clone() const {
return MakeGarbageCollected<SVGAngle>(unit_type_, value_in_specified_units_,
- orient_type_->EnumValue());
+ OrientTypeValue());
}
float SVGAngle::Value() const {
@@ -366,21 +348,19 @@ void SVGAngle::Add(SVGPropertyBase* other, SVGElement*) {
// Only respect by animations, if from and by are both specified in angles
// (and not, for example, 'auto').
- if (OrientType()->EnumValue() != kSVGMarkerOrientAngle ||
- other_angle->OrientType()->EnumValue() != kSVGMarkerOrientAngle)
+ if (!IsNumeric() || !other_angle->IsNumeric())
return;
SetValue(Value() + other_angle->Value());
}
void SVGAngle::Assign(const SVGAngle& other) {
- SVGMarkerOrientType other_orient_type = other.OrientType()->EnumValue();
- if (other_orient_type == kSVGMarkerOrientAngle) {
+ if (other.IsNumeric()) {
NewValueSpecifiedUnits(other.UnitType(), other.ValueInSpecifiedUnits());
return;
}
value_in_specified_units_ = 0;
- orient_type_->SetEnumValue(other_orient_type);
+ orient_type_->SetEnumValue(other.OrientTypeValue());
}
void SVGAngle::CalculateAnimatedValue(
@@ -393,13 +373,10 @@ void SVGAngle::CalculateAnimatedValue(
SVGElement*) {
auto* from_angle = To<SVGAngle>(from);
auto* to_angle = To<SVGAngle>(to);
- SVGMarkerOrientType from_orient_type = from_angle->OrientType()->EnumValue();
- SVGMarkerOrientType to_orient_type = to_angle->OrientType()->EnumValue();
// We can only interpolate between two SVGAngles with orient-type 'angle',
// all other cases will use discrete animation.
- if (from_orient_type != to_orient_type ||
- from_orient_type != kSVGMarkerOrientAngle) {
+ if (!from_angle->IsNumeric() || !to_angle->IsNumeric()) {
Assign(percentage < 0.5f ? *from_angle : *to_angle);
return;
}
@@ -417,11 +394,18 @@ float SVGAngle::CalculateDistance(SVGPropertyBase* other, SVGElement*) {
}
void SVGAngle::OrientTypeChanged() {
- if (OrientType()->EnumValue() == kSVGMarkerOrientAuto ||
- OrientType()->EnumValue() == kSVGMarkerOrientAutoStartReverse) {
- unit_type_ = kSvgAngletypeUnspecified;
- value_in_specified_units_ = 0;
- }
+ if (IsNumeric())
+ return;
+ unit_type_ = kSvgAngletypeUnspecified;
+ value_in_specified_units_ = 0;
+}
+
+SVGMarkerOrientType SVGAngle::OrientTypeValue() const {
+ return orient_type_->EnumValue<SVGMarkerOrientType>();
+}
+
+bool SVGAngle::IsNumeric() const {
+ return OrientTypeValue() == kSVGMarkerOrientAngle;
}
} // namespace blink
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 4ec7825fb0a..df55c4623d3 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_angle.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_angle.h
@@ -41,30 +41,6 @@ enum SVGMarkerOrientType {
};
DECLARE_SVG_ENUM_MAP(SVGMarkerOrientType);
-class SVGMarkerOrientEnumeration final
- : public SVGEnumeration<SVGMarkerOrientType> {
- public:
- SVGMarkerOrientEnumeration(SVGAngle*);
- ~SVGMarkerOrientEnumeration() override;
-
- void Add(SVGPropertyBase*, SVGElement*) override;
- void CalculateAnimatedValue(const SVGAnimateElement&,
- float,
- unsigned,
- SVGPropertyBase*,
- SVGPropertyBase*,
- SVGPropertyBase*,
- SVGElement*) override;
- float CalculateDistance(SVGPropertyBase*, SVGElement*) override;
-
- void Trace(Visitor*) override;
-
- private:
- void NotifyChange() override;
-
- Member<SVGAngle> angle_;
-};
-
class SVGAngle final : public SVGPropertyHelper<SVGAngle> {
public:
typedef SVGAngleTearOff TearOffType;
@@ -103,12 +79,9 @@ class SVGAngle final : public SVGPropertyHelper<SVGAngle> {
float value_in_specified_units);
void ConvertToSpecifiedUnits(SVGAngleType unit_type);
- SVGEnumeration<SVGMarkerOrientType>* OrientType() {
- return orient_type_.Get();
- }
- const SVGEnumeration<SVGMarkerOrientType>* OrientType() const {
- return orient_type_.Get();
- }
+ SVGEnumeration* OrientType() { return orient_type_.Get(); }
+ SVGMarkerOrientType OrientTypeValue() const;
+ bool IsNumeric() const;
void OrientTypeChanged();
// SVGPropertyBase:
@@ -131,14 +104,14 @@ class SVGAngle final : public SVGPropertyHelper<SVGAngle> {
static AnimatedPropertyType ClassType() { return kAnimatedAngle; }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void Assign(const SVGAngle&);
SVGAngleType unit_type_;
float value_in_specified_units_;
- Member<SVGMarkerOrientEnumeration> orient_type_;
+ Member<SVGEnumeration> orient_type_;
};
template <>
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 47090b5d649..07ae0781d64 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
@@ -187,7 +187,7 @@ void SVGAnimateElement::ResolveTargetProperty() {
AttributeName().LocalName())
: CSSPropertyID::kInvalid;
}
- // Blacklist <script> targets here for now to prevent unpleasantries. This
+ // Disallow <script> targets here for now to prevent unpleasantries. This
// also disallows the perfectly "valid" animation of 'className' on said
// element. If SVGScriptElement.href is transitioned off of SVGAnimatedHref,
// this can be removed.
@@ -586,7 +586,7 @@ void SVGAnimateElement::SetAttributeType(
AnimationAttributeChanged();
}
-void SVGAnimateElement::Trace(Visitor* visitor) {
+void SVGAnimateElement::Trace(Visitor* visitor) const {
visitor->Trace(from_property_);
visitor->Trace(to_property_);
visitor->Trace(to_at_end_of_duration_property_);
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 4411ec1b9c5..7646f03ef41 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
@@ -44,7 +44,7 @@ class CORE_EXPORT SVGAnimateElement : public SVGAnimationElement {
SVGAnimateElement(const QualifiedName&, Document&);
~SVGAnimateElement() override;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
bool IsSVGAnimationAttributeSettingJavaScriptURL(
const Attribute&) const override;
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 e1044af8017..6de9f10f22d 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
@@ -47,7 +47,7 @@ SVGAnimatedAngle::SVGAnimatedAngle(SVGElement* context_element)
SVGAnimatedAngle::~SVGAnimatedAngle() = default;
-void SVGAnimatedAngle::Trace(Visitor* visitor) {
+void SVGAnimatedAngle::Trace(Visitor* visitor) const {
visitor->Trace(orient_type_);
SVGAnimatedProperty<SVGAngle>::Trace(visitor);
ScriptWrappable::Trace(visitor);
@@ -59,9 +59,9 @@ bool SVGAnimatedAngle::NeedsSynchronizeAttribute() const {
}
void SVGAnimatedAngle::SynchronizeAttribute() {
- // If the current value is not an <angle> we synchronize the value of the
- // wrapped enumeration.
- if (orient_type_->CurrentValue()->EnumValue() != kSVGMarkerOrientAngle) {
+ // If the value is not an <angle> we synchronize the value of the wrapped
+ // enumeration.
+ if (!BaseValue()->IsNumeric()) {
orient_type_->SynchronizeAttribute();
return;
}
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 4702d1e66b8..6ea0dc8272d 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
@@ -58,7 +58,7 @@ class SVGAnimatedAngle final : public ScriptWrappable,
void SetAnimatedValue(SVGPropertyBase*) override;
void AnimationEnded() override;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
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 1a1d4bd3619..ea23d59dcb9 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
@@ -50,7 +50,7 @@ class SVGAnimatedBoolean final : public ScriptWrappable,
attribute_name,
MakeGarbageCollected<SVGBoolean>()) {}
- void Trace(Visitor* visitor) override {
+ void Trace(Visitor* visitor) const override {
SVGAnimatedProperty<SVGBoolean>::Trace(visitor);
ScriptWrappable::Trace(visitor);
}
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 355977b9ff7..d8afc250aea 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
@@ -21,7 +21,7 @@
#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/dom/node_computed_style.h"
#include "third_party/blink/renderer/core/svg/color_distance.h"
#include "third_party/blink/renderer/core/svg/svg_animate_element.h"
@@ -49,8 +49,8 @@ SVGPropertyBase* SVGColorProperty::CloneForAnimation(const String&) const {
static inline Color FallbackColorForCurrentColor(SVGElement* target_element) {
DCHECK(target_element);
- if (LayoutObject* target_layout_object = target_element->GetLayoutObject())
- return target_layout_object->ResolveColor(GetCSSPropertyColor());
+ if (const ComputedStyle* target_style = target_element->GetComputedStyle())
+ return target_style->VisitedDependentColor(GetCSSPropertyColor());
return Color::kTransparent;
}
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 74b39a25ec9..783fc65acc9 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
@@ -45,40 +45,20 @@ class SVGAnimatedEnumeration : public SVGAnimatedEnumerationBase {
: SVGAnimatedEnumerationBase(
context_element,
attribute_name,
- MakeGarbageCollected<SVGEnumeration<Enum>>(initial_value),
+ MakeGarbageCollected<SVGEnumeration>(initial_value),
static_cast<unsigned>(initial_value)) {}
SVGAnimatedEnumeration(SVGElement* context_element,
const QualifiedName& attribute_name,
- SVGEnumeration<Enum>* initial_value)
+ SVGEnumeration* initial_value)
: SVGAnimatedEnumerationBase(
context_element,
attribute_name,
initial_value,
- static_cast<unsigned>(initial_value->EnumValue())) {}
+ static_cast<unsigned>(initial_value->EnumValue<Enum>())) {}
- 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());
- }
-
- SVGEnumeration<Enum>* CurrentValue() {
- return static_cast<SVGEnumeration<Enum>*>(
- SVGAnimatedEnumerationBase::CurrentValue());
- }
-
- const SVGEnumeration<Enum>* CurrentValue() const {
- return static_cast<const SVGEnumeration<Enum>*>(
- SVGAnimatedEnumerationBase::CurrentValue());
+ Enum CurrentEnumValue() const {
+ return CurrentValue()->template EnumValue<Enum>();
}
};
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration_base.cc b/chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration_base.cc
index c6eae1ae34b..a0628409751 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration_base.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration_base.cc
@@ -52,7 +52,7 @@ void SVGAnimatedEnumerationBase::setBaseVal(uint16_t value,
return;
}
- SVGAnimatedProperty<SVGEnumerationBase>::setBaseVal(value, exception_state);
+ SVGAnimatedProperty<SVGEnumeration>::setBaseVal(value, exception_state);
}
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration_base.h b/chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration_base.h
index 6ed348fb8a5..f2f518cbefa 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration_base.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_enumeration_base.h
@@ -37,9 +37,8 @@
namespace blink {
-class SVGAnimatedEnumerationBase
- : public ScriptWrappable,
- public SVGAnimatedProperty<SVGEnumerationBase> {
+class SVGAnimatedEnumerationBase : public ScriptWrappable,
+ public SVGAnimatedProperty<SVGEnumeration> {
DEFINE_WRAPPERTYPEINFO();
USING_GARBAGE_COLLECTED_MIXIN(SVGAnimatedEnumerationBase);
@@ -48,21 +47,21 @@ class SVGAnimatedEnumerationBase
void setBaseVal(uint16_t, ExceptionState&);
- void Trace(Visitor* visitor) override {
- SVGAnimatedProperty<SVGEnumerationBase>::Trace(visitor);
+ void Trace(Visitor* visitor) const override {
+ SVGAnimatedProperty<SVGEnumeration>::Trace(visitor);
ScriptWrappable::Trace(visitor);
}
protected:
SVGAnimatedEnumerationBase(SVGElement* context_element,
const QualifiedName& attribute_name,
- SVGEnumerationBase* initial_value,
+ SVGEnumeration* initial_value,
unsigned initial_enum_value)
- : SVGAnimatedProperty<SVGEnumerationBase>(context_element,
- attribute_name,
- initial_value,
- CSSPropertyID::kInvalid,
- initial_enum_value) {}
+ : SVGAnimatedProperty<SVGEnumeration>(context_element,
+ attribute_name,
+ initial_value,
+ CSSPropertyID::kInvalid,
+ 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 9d0bce7ecb3..734d8094c70 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
@@ -14,7 +14,9 @@
namespace blink {
-void SVGAnimatedHref::Trace(Visitor* visitor) {
+class StringOrTrustedScriptURL;
+
+void SVGAnimatedHref::Trace(Visitor* visitor) const {
visitor->Trace(xlink_href_);
SVGAnimatedString::Trace(visitor);
}
@@ -43,13 +45,14 @@ const SVGString* SVGAnimatedHref::CurrentValue() const {
return BackingString()->SVGAnimatedString::CurrentValue();
}
-String SVGAnimatedHref::baseVal() {
+void SVGAnimatedHref::baseVal(
+ StringOrTrustedScriptURL& string_or_trusted_script_url) {
UseCounter::Count(ContextElement()->GetDocument(),
WebFeature::kSVGHrefBaseVal);
- return BackingString()->SVGAnimatedString::baseVal();
+ BackingString()->SVGAnimatedString::baseVal(string_or_trusted_script_url);
}
-void SVGAnimatedHref::setBaseVal(const String& value,
+void SVGAnimatedHref::setBaseVal(const StringOrTrustedScriptURL& value,
ExceptionState& exception_state) {
UseCounter::Count(ContextElement()->GetDocument(),
WebFeature::kSVGHrefBaseVal);
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 807f6145b48..cd6d15d0a45 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
@@ -9,6 +9,8 @@
namespace blink {
+class StringOrTrustedScriptURL;
+
// This is an "access wrapper" for the 'href' attribute. The object
// itself holds the value for 'href' in the null/default NS and wraps
// one for 'href' in the XLink NS. Both objects are added to an
@@ -24,8 +26,8 @@ class SVGAnimatedHref final : public SVGAnimatedString {
SVGString* CurrentValue();
const SVGString* CurrentValue() const;
- String baseVal() override;
- void setBaseVal(const String&, ExceptionState&) override;
+ void baseVal(StringOrTrustedScriptURL&) override;
+ void setBaseVal(const StringOrTrustedScriptURL&, ExceptionState&) override;
String animVal() override;
bool IsSpecified() const {
@@ -35,7 +37,7 @@ class SVGAnimatedHref final : public SVGAnimatedString {
static bool IsKnownAttribute(const QualifiedName&);
void AddToPropertyMap(SVGElement*);
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
SVGAnimatedString* BackingString();
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_integer.cc b/chromium/third_party/blink/renderer/core/svg/svg_animated_integer.cc
index 14c630b5ada..ce03d7fe119 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_integer.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_integer.cc
@@ -43,7 +43,7 @@ void SVGAnimatedInteger::SynchronizeAttribute() {
SVGAnimatedProperty<SVGInteger>::SynchronizeAttribute();
}
-void SVGAnimatedInteger::Trace(Visitor* visitor) {
+void SVGAnimatedInteger::Trace(Visitor* visitor) const {
visitor->Trace(parent_integer_optional_integer_);
SVGAnimatedProperty<SVGInteger>::Trace(visitor);
ScriptWrappable::Trace(visitor);
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 ce95e61066c..66d8abe6211 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
@@ -72,7 +72,7 @@ class SVGAnimatedInteger : public ScriptWrappable,
parent_integer_optional_integer_ = number_optional_integer;
}
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
Member<SVGAnimatedIntegerOptionalInteger> parent_integer_optional_integer_;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.cc b/chromium/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.cc
index 4e13a4a7be1..ac626acd41f 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_integer_optional_integer.cc
@@ -58,7 +58,7 @@ SVGAnimatedIntegerOptionalInteger::SVGAnimatedIntegerOptionalInteger(
second_integer_->SetParentOptionalInteger(this);
}
-void SVGAnimatedIntegerOptionalInteger::Trace(Visitor* visitor) {
+void SVGAnimatedIntegerOptionalInteger::Trace(Visitor* visitor) const {
visitor->Trace(first_integer_);
visitor->Trace(second_integer_);
SVGAnimatedPropertyCommon<SVGIntegerOptionalInteger>::Trace(visitor);
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 2378c5ded90..e94f6d975f8 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
@@ -60,7 +60,7 @@ class SVGAnimatedIntegerOptionalInteger
SVGAnimatedInteger* FirstInteger() { return first_integer_.Get(); }
SVGAnimatedInteger* SecondInteger() { return second_integer_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
Member<SVGAnimatedInteger> first_integer_;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_length.cc b/chromium/third_party/blink/renderer/core/svg/svg_animated_length.cc
index bb89af577ec..57963438d49 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_length.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_length.cc
@@ -50,7 +50,7 @@ SVGParsingError SVGAnimatedLength::AttributeChanged(const String& value) {
return parse_status;
}
-void SVGAnimatedLength::Trace(Visitor* visitor) {
+void SVGAnimatedLength::Trace(Visitor* visitor) const {
SVGAnimatedProperty<SVGLength>::Trace(visitor);
ScriptWrappable::Trace(visitor);
}
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 f2fb5351fc6..cd617a0ca13 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
@@ -62,7 +62,7 @@ class SVGAnimatedLength : public ScriptWrappable,
return CurrentValue()->AsCSSPrimitiveValue();
}
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const 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 e65babb3577..827db1acb22 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
@@ -52,7 +52,7 @@ class SVGAnimatedLengthList final : public ScriptWrappable,
attribute_name,
initial_value) {}
- void Trace(Visitor* visitor) override {
+ void Trace(Visitor* visitor) const override {
SVGAnimatedProperty<SVGLengthList>::Trace(visitor);
ScriptWrappable::Trace(visitor);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_number.cc b/chromium/third_party/blink/renderer/core/svg/svg_animated_number.cc
index 5224f2b880e..6e1603b4b7c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_number.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_number.cc
@@ -43,7 +43,7 @@ void SVGAnimatedNumber::SynchronizeAttribute() {
SVGAnimatedProperty<SVGNumber>::SynchronizeAttribute();
}
-void SVGAnimatedNumber::Trace(Visitor* visitor) {
+void SVGAnimatedNumber::Trace(Visitor* visitor) const {
visitor->Trace(parent_number_optional_number_);
SVGAnimatedProperty<SVGNumber>::Trace(visitor);
ScriptWrappable::Trace(visitor);
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 1f31b2675a4..237fb2e641e 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
@@ -73,7 +73,7 @@ class SVGAnimatedNumber : public ScriptWrappable,
parent_number_optional_number_ = number_optional_number;
}
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const 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 ed78b7a454f..d8514e09bf3 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
@@ -53,7 +53,7 @@ class SVGAnimatedNumberList final : public ScriptWrappable,
attribute_name,
MakeGarbageCollected<SVGNumberList>()) {}
- void Trace(Visitor* visitor) override {
+ void Trace(Visitor* visitor) const override {
SVGAnimatedProperty<SVGNumberList>::Trace(visitor);
ScriptWrappable::Trace(visitor);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.cc b/chromium/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.cc
index 4f05129af86..ca2ca9d3451 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_number_optional_number.cc
@@ -46,7 +46,7 @@ SVGAnimatedNumberOptionalNumber::SVGAnimatedNumberOptionalNumber(
second_number_->SetParentOptionalNumber(this);
}
-void SVGAnimatedNumberOptionalNumber::Trace(Visitor* visitor) {
+void SVGAnimatedNumberOptionalNumber::Trace(Visitor* visitor) const {
visitor->Trace(first_number_);
visitor->Trace(second_number_);
SVGAnimatedPropertyCommon<SVGNumberOptionalNumber>::Trace(visitor);
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 a8b0d462136..00169826adc 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
@@ -60,7 +60,7 @@ class SVGAnimatedNumberOptionalNumber
SVGAnimatedNumber* FirstNumber() { return first_number_.Get(); }
SVGAnimatedNumber* SecondNumber() { return second_number_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
Member<SVGAnimatedNumber> first_number_;
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 b9643d84d78..f27ef0225b0 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
@@ -52,7 +52,7 @@ class SVGAnimatedPreserveAspectRatio
attribute_name,
MakeGarbageCollected<SVGPreserveAspectRatio>()) {}
- void Trace(Visitor* visitor) override {
+ void Trace(Visitor* visitor) const override {
SVGAnimatedProperty<SVGPreserveAspectRatio>::Trace(visitor);
ScriptWrappable::Trace(visitor);
}
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 da6dffd7fd6..39b7f8de612 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
@@ -49,7 +49,7 @@ class SVGAnimatedRect : public ScriptWrappable,
attribute_name,
SVGRect::CreateInvalid()) {}
- void Trace(Visitor* visitor) override {
+ void Trace(Visitor* visitor) const override {
SVGAnimatedProperty<SVGRect>::Trace(visitor);
ScriptWrappable::Trace(visitor);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_string.cc b/chromium/third_party/blink/renderer/core/svg/svg_animated_string.cc
index 649221ed5a7..cdce2cd1c92 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_string.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_string.cc
@@ -4,22 +4,44 @@
#include "third_party/blink/renderer/core/svg/svg_animated_string.h"
+#include "third_party/blink/renderer/bindings/core/v8/string_or_trusted_script_url.h"
+#include "third_party/blink/renderer/core/svg/svg_element.h"
+#include "third_party/blink/renderer/core/trustedtypes/trusted_script_url.h"
+#include "third_party/blink/renderer/core/trustedtypes/trusted_types_util.h"
+
namespace blink {
-String SVGAnimatedString::baseVal() {
- return SVGAnimatedProperty<SVGString>::baseVal();
+void SVGAnimatedString::setBaseVal(
+ const StringOrTrustedScriptURL& string_or_trusted_script_url,
+ ExceptionState& exception_state) {
+ String value;
+ // See:
+ // https://w3c.github.io/webappsec-trusted-types/dist/spec/#integration-with-svg
+ if (string_or_trusted_script_url.IsTrustedScriptURL()) {
+ value = string_or_trusted_script_url.GetAsTrustedScriptURL()->toString();
+ } else {
+ value = string_or_trusted_script_url.GetAsString();
+ if (ContextElement()->IsScriptElement()) {
+ value = TrustedTypesCheckForScriptURL(
+ value, ContextElement()->GetExecutionContext(), exception_state);
+ if (exception_state.HadException())
+ return;
+ }
+ }
+ SVGAnimatedProperty<SVGString>::setBaseVal(value, exception_state);
}
-void SVGAnimatedString::setBaseVal(const String& value,
- ExceptionState& exception_state) {
- return SVGAnimatedProperty<SVGString>::setBaseVal(value, exception_state);
+void SVGAnimatedString::baseVal(
+ StringOrTrustedScriptURL& string_or_trusted_script_url) {
+ string_or_trusted_script_url.SetString(
+ SVGAnimatedProperty<SVGString>::baseVal());
}
String SVGAnimatedString::animVal() {
return SVGAnimatedProperty<SVGString>::animVal();
}
-void SVGAnimatedString::Trace(Visitor* visitor) {
+void SVGAnimatedString::Trace(Visitor* visitor) const {
SVGAnimatedProperty<SVGString>::Trace(visitor);
ScriptWrappable::Trace(visitor);
}
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 971ef0b4d9c..6861961102d 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
@@ -38,6 +38,8 @@
namespace blink {
+class StringOrTrustedScriptURL;
+
class SVGAnimatedString : public ScriptWrappable,
public SVGAnimatedProperty<SVGString> {
DEFINE_WRAPPERTYPEINFO();
@@ -50,11 +52,12 @@ class SVGAnimatedString : public ScriptWrappable,
attribute_name,
MakeGarbageCollected<SVGString>()) {}
- virtual String baseVal();
- virtual void setBaseVal(const String&, ExceptionState&);
+ virtual void setBaseVal(const StringOrTrustedScriptURL&, ExceptionState&);
+ virtual void baseVal(StringOrTrustedScriptURL&);
+
virtual String animVal();
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_animated_string.idl b/chromium/third_party/blink/renderer/core/svg/svg_animated_string.idl
index 2b1b8e971de..61550eaabb0 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_animated_string.idl
+++ b/chromium/third_party/blink/renderer/core/svg/svg_animated_string.idl
@@ -27,6 +27,6 @@
[Exposed=Window]
interface SVGAnimatedString {
- [RaisesException=Setter] attribute DOMString baseVal;
+ [RaisesException=Setter] attribute (DOMString or TrustedScriptURL) baseVal;
readonly attribute DOMString animVal;
};
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 5e413bd8ff3..6a6c22f7050 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
@@ -56,7 +56,7 @@ class SVGAnimatedTransformList final
MakeGarbageCollected<SVGTransformList>(),
css_property_id) {}
- void Trace(Visitor* visitor) override {
+ void Trace(Visitor* visitor) const override {
SVGAnimatedProperty<SVGTransformList>::Trace(visitor);
ScriptWrappable::Trace(visitor);
}
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 6ec31ddde90..b322e86fe17 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
@@ -51,7 +51,7 @@ SVGCircleElement::SVGCircleElement(Document& document)
AddToPropertyMap(r_);
}
-void SVGCircleElement::Trace(Visitor* visitor) {
+void SVGCircleElement::Trace(Visitor* visitor) const {
visitor->Trace(cx_);
visitor->Trace(cy_);
visitor->Trace(r_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_circle_element.h b/chromium/third_party/blink/renderer/core/svg/svg_circle_element.h
index 56ef0c7bab8..4866c28304d 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_circle_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_circle_element.h
@@ -39,7 +39,7 @@ class SVGCircleElement final : public SVGGeometryElement {
SVGAnimatedLength* cy() const { return cy_.Get(); }
SVGAnimatedLength* r() const { return r_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
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 c48dd93af9a..52c10601819 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
@@ -36,7 +36,7 @@ SVGClipPathElement::SVGClipPathElement(Document& document)
AddToPropertyMap(clip_path_units_);
}
-void SVGClipPathElement::Trace(Visitor* visitor) {
+void SVGClipPathElement::Trace(Visitor* visitor) const {
visitor->Trace(clip_path_units_);
SVGGraphicsElement::Trace(visitor);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_clip_path_element.h b/chromium/third_party/blink/renderer/core/svg/svg_clip_path_element.h
index 66fb5ba08c4..2ed4287e3e7 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_clip_path_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_clip_path_element.h
@@ -42,7 +42,7 @@ class SVGClipPathElement final : public SVGGraphicsElement {
bool SupportsFocus() const override { return false; }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
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 c4148a8c1e1..5619e4c95e1 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
@@ -79,7 +79,7 @@ SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement(
AddToPropertyMap(type_);
}
-void SVGComponentTransferFunctionElement::Trace(Visitor* visitor) {
+void SVGComponentTransferFunctionElement::Trace(Visitor* visitor) const {
visitor->Trace(table_values_);
visitor->Trace(slope_);
visitor->Trace(intercept_);
@@ -110,7 +110,7 @@ void SVGComponentTransferFunctionElement::SvgAttributeChanged(
ComponentTransferFunction
SVGComponentTransferFunctionElement::TransferFunction() const {
ComponentTransferFunction func;
- func.type = type_->CurrentValue()->EnumValue();
+ func.type = type_->CurrentEnumValue();
func.slope = slope_->CurrentValue()->Value();
func.intercept = intercept_->CurrentValue()->Value();
func.amplitude = amplitude_->CurrentValue()->Value();
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 bb8c936f776..453b1a210b1 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
@@ -46,7 +46,7 @@ class SVGComponentTransferFunctionElement : public SVGElement {
SVGAnimatedNumber* offset() { return offset_.Get(); }
SVGAnimatedEnumeration<ComponentTransferType>* type() { return type_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
SVGComponentTransferFunctionElement(const QualifiedName&, Document&);
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 28834f7ccdd..ae50f287ef6 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
@@ -162,7 +162,7 @@ SVGSVGElement* SVGDocumentExtensions::rootElement() const {
return rootElement(*document_);
}
-void SVGDocumentExtensions::Trace(Visitor* visitor) {
+void SVGDocumentExtensions::Trace(Visitor* visitor) const {
visitor->Trace(document_);
visitor->Trace(time_containers_);
visitor->Trace(web_animations_pending_svg_elements_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_document_extensions.h b/chromium/third_party/blink/renderer/core/svg/svg_document_extensions.h
index cf22eaa6011..c22f7e4387c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_document_extensions.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_document_extensions.h
@@ -71,7 +71,7 @@ class CORE_EXPORT SVGDocumentExtensions final
static SVGSVGElement* rootElement(const Document&);
SVGSVGElement* rootElement() const;
- void Trace(Visitor*);
+ void Trace(Visitor*) const;
private:
Member<Document> document_;
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 3fe6911ca7d..49891db428f 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_element.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_element.cc
@@ -1248,7 +1248,7 @@ SVGElementResourceClient& SVGElement::EnsureSVGResourceClient() {
return EnsureSVGRareData()->EnsureSVGResourceClient(this);
}
-void SVGElement::Trace(Visitor* visitor) {
+void SVGElement::Trace(Visitor* visitor) const {
visitor->Trace(elements_with_relative_lengths_);
visitor->Trace(attribute_to_property_map_);
visitor->Trace(svg_rare_data_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_element.h b/chromium/third_party/blink/renderer/core/svg/svg_element.h
index 3a626772952..42e318b46c0 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_element.h
@@ -209,7 +209,7 @@ class CORE_EXPORT SVGElement : public Element {
void SetNeedsStyleRecalcForInstances(StyleChangeType,
const StyleChangeReasonForTracing&);
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
static const AtomicString& EventParameterName();
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 7e01c8db53f..0d05f255cad 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
@@ -57,7 +57,7 @@ SVGElementResourceClient& SVGElementRareData::EnsureSVGResourceClient(
return *resource_client_;
}
-void SVGElementRareData::Trace(Visitor* visitor) {
+void SVGElementRareData::Trace(Visitor* visitor) const {
visitor->Trace(outgoing_references_);
visitor->Trace(incoming_references_);
visitor->Trace(animated_smil_style_properties_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_element_rare_data.h b/chromium/third_party/blink/renderer/core/svg/svg_element_rare_data.h
index 05881f5f07b..6a60be5ce90 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_element_rare_data.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_element_rare_data.h
@@ -104,7 +104,7 @@ class SVGElementRareData final : public GarbageCollected<SVGElementRareData> {
AffineTransform* AnimateMotionTransform();
- void Trace(Visitor*);
+ void Trace(Visitor*) const;
private:
SVGElementSet outgoing_references_;
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 83220afa1a5..a5098d79428 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
@@ -58,7 +58,7 @@ SVGEllipseElement::SVGEllipseElement(Document& document)
AddToPropertyMap(ry_);
}
-void SVGEllipseElement::Trace(Visitor* visitor) {
+void SVGEllipseElement::Trace(Visitor* visitor) const {
visitor->Trace(cx_);
visitor->Trace(cy_);
visitor->Trace(rx_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_ellipse_element.h b/chromium/third_party/blink/renderer/core/svg/svg_ellipse_element.h
index 7ba0af3f1db..4cce1139d21 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_ellipse_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_ellipse_element.h
@@ -40,7 +40,7 @@ class SVGEllipseElement final : public SVGGeometryElement {
SVGAnimatedLength* rx() const { return rx_.Get(); }
SVGAnimatedLength* ry() const { return ry_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void CollectStyleForPresentationAttribute(
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 3a7a398bf39..7f4ec4d02d8 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_enumeration.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_enumeration.cc
@@ -34,16 +34,13 @@
namespace blink {
-SVGEnumerationBase::~SVGEnumerationBase() = default;
-
-SVGPropertyBase* SVGEnumerationBase::CloneForAnimation(
- const String& value) const {
- SVGEnumerationBase* svg_enumeration = Clone();
+SVGPropertyBase* SVGEnumeration::CloneForAnimation(const String& value) const {
+ SVGEnumeration* svg_enumeration = Clone();
svg_enumeration->SetValueAsString(value);
return svg_enumeration;
}
-String SVGEnumerationBase::ValueAsString() const {
+String SVGEnumeration::ValueAsString() const {
if (const char* enum_name = map_.NameFromValue(value_))
return String(enum_name);
@@ -51,27 +48,34 @@ String SVGEnumerationBase::ValueAsString() const {
return g_empty_string;
}
-void SVGEnumerationBase::SetValue(uint16_t value) {
+void SVGEnumeration::SetValue(uint16_t value) {
value_ = value;
NotifyChange();
}
-SVGParsingError SVGEnumerationBase::SetValueAsString(const String& string) {
+SVGParsingError SVGEnumeration::SetValueAsString(const String& string) {
uint16_t value = map_.ValueFromName(string);
if (value) {
- value_ = value;
- NotifyChange();
+ SetValue(value);
return SVGParseStatus::kNoError;
}
NotifyChange();
return SVGParseStatus::kExpectedEnumeration;
}
-void SVGEnumerationBase::Add(SVGPropertyBase*, SVGElement*) {
+uint16_t SVGEnumeration::MaxExposedEnumValue() const {
+ return map_.MaxExposedValue();
+}
+
+uint16_t SVGEnumeration::MaxInternalEnumValue() const {
+ return map_.ValueOfLast();
+}
+
+void SVGEnumeration::Add(SVGPropertyBase*, SVGElement*) {
NOTREACHED();
}
-void SVGEnumerationBase::CalculateAnimatedValue(
+void SVGEnumeration::CalculateAnimatedValue(
const SVGAnimateElement& animation_element,
float percentage,
unsigned repeat_count,
@@ -82,17 +86,9 @@ void SVGEnumerationBase::CalculateAnimatedValue(
NOTREACHED();
}
-float SVGEnumerationBase::CalculateDistance(SVGPropertyBase*, SVGElement*) {
- // No paced animations for boolean.
+float SVGEnumeration::CalculateDistance(SVGPropertyBase*, SVGElement*) {
+ // No paced animations for enumerations.
return -1;
}
-uint16_t SVGEnumerationBase::MaxExposedEnumValue() const {
- return map_.MaxExposedValue();
-}
-
-uint16_t 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 22ed17f58e3..b1efe1b20e3 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_enumeration.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_enumeration.h
@@ -39,21 +39,42 @@ namespace blink {
class SVGEnumerationMap;
-class SVGEnumerationBase : public SVGPropertyBase {
+template <typename Enum>
+const SVGEnumerationMap& GetEnumerationMap();
+
+class SVGEnumeration : public SVGPropertyBase {
public:
// SVGEnumeration does not have a tear-off type.
typedef void TearOffType;
typedef uint16_t PrimitiveType;
- ~SVGEnumerationBase() override;
+ SVGEnumeration(uint16_t value, const SVGEnumerationMap& map)
+ : value_(value), map_(map) {}
+
+ template <typename Enum>
+ explicit SVGEnumeration(Enum new_value)
+ : SVGEnumeration(new_value, GetEnumerationMap<Enum>()) {}
uint16_t Value() const {
return value_ <= MaxExposedEnumValue() ? value_ : 0;
}
void SetValue(uint16_t);
+ // Typed accessors. These should generally be used instead of the above ones.
+ template <typename Enum>
+ Enum EnumValue() const {
+ DCHECK_LE(value_, MaxInternalEnumValue());
+ return static_cast<Enum>(value_);
+ }
+ template <typename Enum>
+ void SetEnumValue(Enum value) {
+ SetValue(value);
+ }
+
// SVGPropertyBase:
- virtual SVGEnumerationBase* Clone() const = 0;
+ SVGEnumeration* Clone() const {
+ return MakeGarbageCollected<SVGEnumeration>(value_, map_);
+ }
SVGPropertyBase* CloneForAnimation(const String&) const override;
String ValueAsString() const override;
@@ -80,9 +101,6 @@ class SVGEnumerationBase : public SVGPropertyBase {
static constexpr int kInitialValueBits = 3;
protected:
- SVGEnumerationBase(uint16_t value, const SVGEnumerationMap& map)
- : value_(value), map_(map) {}
-
// This is the maximum value of all the internal enumeration values.
// This assumes that the map is sorted on the enumeration value.
uint16_t MaxInternalEnumValue() const;
@@ -94,35 +112,10 @@ class SVGEnumerationBase : public SVGPropertyBase {
const SVGEnumerationMap& map_;
};
-template <typename 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 {
- public:
- explicit SVGEnumeration(Enum new_value)
- : SVGEnumerationBase(new_value, GetEnumerationMap<Enum>()) {}
- ~SVGEnumeration() override = default;
-
- SVGEnumerationBase* Clone() const override {
- return MakeGarbageCollected<SVGEnumeration>(EnumValue());
- }
-
- Enum EnumValue() const {
- DCHECK_LE(value_, MaxInternalEnumValue());
- return static_cast<Enum>(value_);
- }
-
- void SetEnumValue(Enum value) {
- value_ = value;
- NotifyChange();
- }
-};
-
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_ENUMERATION_H_
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
index 06586b5c98b..21114756fe9 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_enumeration_map.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_enumeration_map.h
@@ -5,6 +5,8 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_ENUMERATION_MAP_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_ENUMERATION_MAP_H_
+#include "base/check.h"
+#include "base/check_op.h"
#include "third_party/blink/renderer/platform/wtf/assertions.h"
#include "third_party/blink/renderer/platform/wtf/forward.h"
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_external_document_cache.cc b/chromium/third_party/blink/renderer/core/svg/svg_external_document_cache.cc
index 91a0eaaf0c1..c64e3671352 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_external_document_cache.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_external_document_cache.cc
@@ -48,7 +48,7 @@ void SVGExternalDocumentCache::Entry::AddClient(Client* client) {
clients_.insert(client);
return;
}
- context_document_->GetTaskRunner(TaskType::kInternalLoading)
+ context_->GetTaskRunner(TaskType::kInternalLoading)
->PostTask(
FROM_HERE,
WTF::Bind(&SVGExternalDocumentCache::Client::NotifyFinished,
@@ -70,16 +70,16 @@ Document* SVGExternalDocumentCache::Entry::GetDocument() {
document_ = XMLDocument::CreateSVG(
DocumentInit::Create()
.WithURL(resource->GetResponse().CurrentRequestUrl())
- .WithContextDocument(context_document_));
+ .WithExecutionContext(context_.Get()));
document_->SetContent(resource->DecodedText());
}
return document_.Get();
}
-void SVGExternalDocumentCache::Entry::Trace(Visitor* visitor) {
+void SVGExternalDocumentCache::Entry::Trace(Visitor* visitor) const {
ResourceClient::Trace(visitor);
visitor->Trace(document_);
- visitor->Trace(context_document_);
+ visitor->Trace(context_);
visitor->Trace(clients_);
}
@@ -114,7 +114,8 @@ SVGExternalDocumentCache::Entry* SVGExternalDocumentCache::Get(
params.SetRequestDestination(network::mojom::RequestDestination::kImage);
Document* context_document = GetSupplementable();
- Entry* entry = MakeGarbageCollected<Entry>(context_document);
+ Entry* entry =
+ MakeGarbageCollected<Entry>(context_document->GetExecutionContext());
Resource* resource = TextResource::FetchSVGDocument(
params, context_document->Fetcher(), entry);
// TODO(fs): Handle revalidations that return a new/different resource without
@@ -126,7 +127,7 @@ SVGExternalDocumentCache::Entry* SVGExternalDocumentCache::Get(
return entry;
}
-void SVGExternalDocumentCache::Trace(Visitor* visitor) {
+void SVGExternalDocumentCache::Trace(Visitor* visitor) const {
Supplement<Document>::Trace(visitor);
visitor->Trace(entries_);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_external_document_cache.h b/chromium/third_party/blink/renderer/core/svg/svg_external_document_cache.h
index a5eba9a0da4..8ff0d5f6fe9 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_external_document_cache.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_external_document_cache.h
@@ -32,6 +32,7 @@
namespace blink {
class Document;
+class ExecutionContext;
class CORE_EXPORT SVGExternalDocumentCache
: public GarbageCollected<SVGExternalDocumentCache>,
@@ -42,7 +43,7 @@ class CORE_EXPORT SVGExternalDocumentCache
static const char kSupplementName[];
static SVGExternalDocumentCache* From(Document&);
explicit SVGExternalDocumentCache(Document&);
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
class Client : public GarbageCollectedMixin {
public:
@@ -54,10 +55,9 @@ class CORE_EXPORT SVGExternalDocumentCache
USING_GARBAGE_COLLECTED_MIXIN(Entry);
public:
- explicit Entry(Document* context_document)
- : context_document_(context_document) {}
+ explicit Entry(ExecutionContext* context) : context_(context) {}
~Entry() override = default;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
Document* GetDocument();
const KURL& Url() const { return GetResource()->Url(); }
@@ -70,7 +70,7 @@ class CORE_EXPORT SVGExternalDocumentCache
String DebugName() const override { return "SVGExternalDocumentCache"; }
Member<Document> document_;
- Member<Document> context_document_;
+ Member<ExecutionContext> context_;
HeapHashSet<WeakMember<Client>> clients_;
};
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 996a30cc855..bb733f2cdbf 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
@@ -94,7 +94,7 @@ SVGFEBlendElement::SVGFEBlendElement(Document& document)
AddToPropertyMap(mode_);
}
-void SVGFEBlendElement::Trace(Visitor* visitor) {
+void SVGFEBlendElement::Trace(Visitor* visitor) const {
visitor->Trace(in1_);
visitor->Trace(in2_);
visitor->Trace(mode_);
@@ -106,7 +106,7 @@ bool SVGFEBlendElement::SetFilterEffectAttribute(
const QualifiedName& attr_name) {
FEBlend* blend = static_cast<FEBlend*>(effect);
if (attr_name == svg_names::kModeAttr)
- return blend->SetBlendMode(ToBlendMode(mode_->CurrentValue()->EnumValue()));
+ return blend->SetBlendMode(ToBlendMode(mode_->CurrentEnumValue()));
return SVGFilterPrimitiveStandardAttributes::SetFilterEffectAttribute(
effect, attr_name);
@@ -138,7 +138,7 @@ FilterEffect* SVGFEBlendElement::Build(SVGFilterBuilder* filter_builder,
DCHECK(input2);
auto* effect = MakeGarbageCollected<FEBlend>(
- filter, ToBlendMode(mode_->CurrentValue()->EnumValue()));
+ filter, ToBlendMode(mode_->CurrentEnumValue()));
FilterEffectVector& input_effects = effect->InputEffects();
input_effects.ReserveCapacity(2);
input_effects.push_back(input1);
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 4fd2ea96ca0..6a00a00d314 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
@@ -57,7 +57,7 @@ class SVGFEBlendElement final : public SVGFilterPrimitiveStandardAttributes {
SVGAnimatedString* in2() { return in2_.Get(); }
SVGAnimatedEnumeration<Mode>* mode() { return mode_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
bool SetFilterEffectAttribute(FilterEffect*,
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 0a4651ec757..1187739737e 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
@@ -55,7 +55,7 @@ SVGFEColorMatrixElement::SVGFEColorMatrixElement(Document& document)
AddToPropertyMap(type_);
}
-void SVGFEColorMatrixElement::Trace(Visitor* visitor) {
+void SVGFEColorMatrixElement::Trace(Visitor* visitor) const {
visitor->Trace(values_);
visitor->Trace(in1_);
visitor->Trace(type_);
@@ -67,7 +67,7 @@ bool SVGFEColorMatrixElement::SetFilterEffectAttribute(
const QualifiedName& attr_name) {
FEColorMatrix* color_matrix = static_cast<FEColorMatrix*>(effect);
if (attr_name == svg_names::kTypeAttr)
- return color_matrix->SetType(type_->CurrentValue()->EnumValue());
+ return color_matrix->SetType(type_->CurrentEnumValue());
if (attr_name == svg_names::kValuesAttr)
return color_matrix->SetValues(values_->CurrentValue()->ToFloatVector());
@@ -99,7 +99,7 @@ FilterEffect* SVGFEColorMatrixElement::Build(SVGFilterBuilder* filter_builder,
AtomicString(in1_->CurrentValue()->Value()));
DCHECK(input1);
- ColorMatrixType filter_type = type_->CurrentValue()->EnumValue();
+ ColorMatrixType filter_type = type_->CurrentEnumValue();
auto* effect = MakeGarbageCollected<FEColorMatrix>(
filter, filter_type, values_->CurrentValue()->ToFloatVector());
effect->InputEffects().push_back(input1);
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 aedf2140077..bc78acad210 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
@@ -42,7 +42,7 @@ class SVGFEColorMatrixElement final
SVGAnimatedString* in1() { return in1_.Get(); }
SVGAnimatedEnumeration<ColorMatrixType>* type() { return type_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
bool SetFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
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 1464024dc7c..bffacef42fb 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
@@ -39,7 +39,7 @@ SVGFEComponentTransferElement::SVGFEComponentTransferElement(Document& document)
AddToPropertyMap(in1_);
}
-void SVGFEComponentTransferElement::Trace(Visitor* visitor) {
+void SVGFEComponentTransferElement::Trace(Visitor* visitor) const {
visitor->Trace(in1_);
SVGFilterPrimitiveStandardAttributes::Trace(visitor);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.h
index 2c2f3ed758c..ae5f775492e 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_component_transfer_element.h
@@ -35,7 +35,7 @@ class SVGFEComponentTransferElement final
SVGAnimatedString* in1() { return in1_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
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 0613666c59d..1b2f6a6bbcf 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
@@ -74,7 +74,7 @@ SVGFECompositeElement::SVGFECompositeElement(Document& document)
AddToPropertyMap(svg_operator_);
}
-void SVGFECompositeElement::Trace(Visitor* visitor) {
+void SVGFECompositeElement::Trace(Visitor* visitor) const {
visitor->Trace(k1_);
visitor->Trace(k2_);
visitor->Trace(k3_);
@@ -90,7 +90,7 @@ bool SVGFECompositeElement::SetFilterEffectAttribute(
const QualifiedName& attr_name) {
FEComposite* composite = static_cast<FEComposite*>(effect);
if (attr_name == svg_names::kOperatorAttr)
- return composite->SetOperation(svg_operator_->CurrentValue()->EnumValue());
+ return composite->SetOperation(svg_operator_->CurrentEnumValue());
if (attr_name == svg_names::kK1Attr)
return composite->SetK1(k1_->CurrentValue()->Value());
if (attr_name == svg_names::kK2Attr)
@@ -133,9 +133,9 @@ FilterEffect* SVGFECompositeElement::Build(SVGFilterBuilder* filter_builder,
DCHECK(input2);
auto* effect = MakeGarbageCollected<FEComposite>(
- filter, svg_operator_->CurrentValue()->EnumValue(),
- k1_->CurrentValue()->Value(), k2_->CurrentValue()->Value(),
- k3_->CurrentValue()->Value(), k4_->CurrentValue()->Value());
+ filter, svg_operator_->CurrentEnumValue(), k1_->CurrentValue()->Value(),
+ k2_->CurrentValue()->Value(), k3_->CurrentValue()->Value(),
+ k4_->CurrentValue()->Value());
FilterEffectVector& input_effects = effect->InputEffects();
input_effects.ReserveCapacity(2);
input_effects.push_back(input1);
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 63cac0f631b..80f0a1cbc99 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
@@ -48,7 +48,7 @@ class SVGFECompositeElement final
return svg_operator_.Get();
}
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
bool SetFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
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 d37f9815c99..383993435fc 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
@@ -116,7 +116,7 @@ SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement(Document& document)
AddToPropertyMap(target_y_);
}
-void SVGFEConvolveMatrixElement::Trace(Visitor* visitor) {
+void SVGFEConvolveMatrixElement::Trace(Visitor* visitor) const {
visitor->Trace(bias_);
visitor->Trace(divisor_);
visitor->Trace(in1_);
@@ -166,8 +166,7 @@ bool SVGFEConvolveMatrixElement::SetFilterEffectAttribute(
const QualifiedName& attr_name) {
FEConvolveMatrix* convolve_matrix = static_cast<FEConvolveMatrix*>(effect);
if (attr_name == svg_names::kEdgeModeAttr)
- return convolve_matrix->SetEdgeMode(
- edge_mode_->CurrentValue()->EnumValue());
+ return convolve_matrix->SetEdgeMode(edge_mode_->CurrentEnumValue());
if (attr_name == svg_names::kDivisorAttr)
return convolve_matrix->SetDivisor(ComputeDivisor());
if (attr_name == svg_names::kBiasAttr)
@@ -214,7 +213,7 @@ FilterEffect* SVGFEConvolveMatrixElement::Build(
auto* effect = MakeGarbageCollected<FEConvolveMatrix>(
filter, MatrixOrder(), ComputeDivisor(), bias_->CurrentValue()->Value(),
- TargetPoint(), edge_mode_->CurrentValue()->EnumValue(),
+ TargetPoint(), edge_mode_->CurrentEnumValue(),
preserve_alpha_->CurrentValue()->Value(),
kernel_matrix_->CurrentValue()->ToFloatVector());
effect->InputEffects().push_back(input1);
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 c5916541436..4bce746a679 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
@@ -59,7 +59,7 @@ class SVGFEConvolveMatrixElement final
SVGAnimatedInteger* targetX() { return target_x_.Get(); }
SVGAnimatedInteger* targetY() { return target_y_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
IntSize MatrixOrder() const;
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 58e58653468..eba0dc1eeef 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
@@ -50,7 +50,7 @@ SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement(Document& document)
AddToPropertyMap(in1_);
}
-void SVGFEDiffuseLightingElement::Trace(Visitor* visitor) {
+void SVGFEDiffuseLightingElement::Trace(Visitor* visitor) const {
visitor->Trace(diffuse_constant_);
visitor->Trace(surface_scale_);
visitor->Trace(kernel_unit_length_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.h
index d93cf6520e8..0748ed2f0a7 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.h
@@ -49,7 +49,7 @@ class SVGFEDiffuseLightingElement final
}
SVGAnimatedString* in1() { return in1_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
bool SetFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
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 bfd5b1e2997..6d2ce378e22 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
@@ -60,7 +60,7 @@ SVGFEDisplacementMapElement::SVGFEDisplacementMapElement(Document& document)
AddToPropertyMap(y_channel_selector_);
}
-void SVGFEDisplacementMapElement::Trace(Visitor* visitor) {
+void SVGFEDisplacementMapElement::Trace(Visitor* visitor) const {
visitor->Trace(scale_);
visitor->Trace(in1_);
visitor->Trace(in2_);
@@ -73,12 +73,14 @@ bool SVGFEDisplacementMapElement::SetFilterEffectAttribute(
FilterEffect* effect,
const QualifiedName& attr_name) {
FEDisplacementMap* displacement_map = static_cast<FEDisplacementMap*>(effect);
- if (attr_name == svg_names::kXChannelSelectorAttr)
+ if (attr_name == svg_names::kXChannelSelectorAttr) {
return displacement_map->SetXChannelSelector(
- x_channel_selector_->CurrentValue()->EnumValue());
- if (attr_name == svg_names::kYChannelSelectorAttr)
+ x_channel_selector_->CurrentEnumValue());
+ }
+ if (attr_name == svg_names::kYChannelSelectorAttr) {
return displacement_map->SetYChannelSelector(
- y_channel_selector_->CurrentValue()->EnumValue());
+ y_channel_selector_->CurrentEnumValue());
+ }
if (attr_name == svg_names::kScaleAttr)
return displacement_map->SetScale(scale_->CurrentValue()->Value());
@@ -116,9 +118,8 @@ FilterEffect* SVGFEDisplacementMapElement::Build(
DCHECK(input2);
auto* effect = MakeGarbageCollected<FEDisplacementMap>(
- filter, x_channel_selector_->CurrentValue()->EnumValue(),
- y_channel_selector_->CurrentValue()->EnumValue(),
- scale_->CurrentValue()->Value());
+ filter, x_channel_selector_->CurrentEnumValue(),
+ y_channel_selector_->CurrentEnumValue(), scale_->CurrentValue()->Value());
FilterEffectVector& input_effects = effect->InputEffects();
input_effects.ReserveCapacity(2);
input_effects.push_back(input1);
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 0dafd29b177..d345789ef60 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
@@ -49,7 +49,7 @@ class SVGFEDisplacementMapElement final
return y_channel_selector_.Get();
}
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
bool SetFilterEffectAttribute(FilterEffect*,
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 7cced8f4409..85ba2dc6592 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
@@ -45,7 +45,7 @@ SVGFEDropShadowElement::SVGFEDropShadowElement(Document& document)
AddToPropertyMap(in1_);
}
-void SVGFEDropShadowElement::Trace(Visitor* visitor) {
+void SVGFEDropShadowElement::Trace(Visitor* visitor) const {
visitor->Trace(dx_);
visitor->Trace(dy_);
visitor->Trace(std_deviation_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.h
index ce229e782b2..85d93b1252c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.h
@@ -42,7 +42,7 @@ class SVGFEDropShadowElement final
SVGAnimatedNumber* stdDeviationY() { return std_deviation_->SecondNumber(); }
SVGAnimatedString* in1() { return in1_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
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 51933a73a5f..83afab8d521 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
@@ -39,7 +39,7 @@ SVGFEGaussianBlurElement::SVGFEGaussianBlurElement(Document& document)
AddToPropertyMap(in1_);
}
-void SVGFEGaussianBlurElement::Trace(Visitor* visitor) {
+void SVGFEGaussianBlurElement::Trace(Visitor* visitor) const {
visitor->Trace(std_deviation_);
visitor->Trace(in1_);
SVGFilterPrimitiveStandardAttributes::Trace(visitor);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.h
index 9dc19929d39..30cfbb2a427 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_gaussian_blur_element.h
@@ -40,7 +40,7 @@ class SVGFEGaussianBlurElement final
SVGAnimatedNumber* stdDeviationY() { return std_deviation_->SecondNumber(); }
SVGAnimatedString* in1() { return in1_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
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 daa126edaef..7169a9d90c6 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
@@ -51,7 +51,7 @@ void SVGFEImageElement::Dispose() {
ClearImageResource();
}
-void SVGFEImageElement::Trace(Visitor* visitor) {
+void SVGFEImageElement::Trace(Visitor* visitor) const {
visitor->Trace(preserve_aspect_ratio_);
visitor->Trace(cached_image_);
visitor->Trace(target_id_observer_);
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 2366d7b9dac..475a615acba 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
@@ -52,7 +52,7 @@ class SVGFEImageElement final : public SVGFilterPrimitiveStandardAttributes,
void Dispose();
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
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 80aa829c848..4ad379b7662 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
@@ -81,7 +81,7 @@ SVGFELightElement::SVGFELightElement(const QualifiedName& tag_name,
AddToPropertyMap(limiting_cone_angle_);
}
-void SVGFELightElement::Trace(Visitor* visitor) {
+void SVGFELightElement::Trace(Visitor* visitor) const {
visitor->Trace(azimuth_);
visitor->Trace(elevation_);
visitor->Trace(x_);
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 d416833aa04..8a4687f5f6d 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
@@ -65,7 +65,7 @@ class SVGFELightElement : public SVGElement {
return limiting_cone_angle_.Get();
}
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
SVGFELightElement(const QualifiedName&, Document&);
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 6df184e02c3..6b901176d48 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
@@ -31,7 +31,7 @@ SVGFEMergeNodeElement::SVGFEMergeNodeElement(Document& document)
AddToPropertyMap(in1_);
}
-void SVGFEMergeNodeElement::Trace(Visitor* visitor) {
+void SVGFEMergeNodeElement::Trace(Visitor* visitor) const {
visitor->Trace(in1_);
SVGElement::Trace(visitor);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.h
index c6491784fb4..91c8a254d1d 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_merge_node_element.h
@@ -35,7 +35,7 @@ class SVGFEMergeNodeElement final : public SVGElement {
SVGAnimatedString* in1() { return in1_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
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 5ee79e507d3..2049ec50663 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
@@ -54,7 +54,7 @@ SVGFEMorphologyElement::SVGFEMorphologyElement(Document& document)
AddToPropertyMap(svg_operator_);
}
-void SVGFEMorphologyElement::Trace(Visitor* visitor) {
+void SVGFEMorphologyElement::Trace(Visitor* visitor) const {
visitor->Trace(radius_);
visitor->Trace(in1_);
visitor->Trace(svg_operator_);
@@ -66,8 +66,7 @@ bool SVGFEMorphologyElement::SetFilterEffectAttribute(
const QualifiedName& attr_name) {
FEMorphology* morphology = static_cast<FEMorphology*>(effect);
if (attr_name == svg_names::kOperatorAttr)
- return morphology->SetMorphologyOperator(
- svg_operator_->CurrentValue()->EnumValue());
+ return morphology->SetMorphologyOperator(svg_operator_->CurrentEnumValue());
if (attr_name == svg_names::kRadiusAttr) {
// Both setRadius functions should be evaluated separately.
bool is_radius_x_changed =
@@ -114,7 +113,7 @@ FilterEffect* SVGFEMorphologyElement::Build(SVGFilterBuilder* filter_builder,
float x_radius = radiusX()->CurrentValue()->Value();
float y_radius = radiusY()->CurrentValue()->Value();
auto* effect = MakeGarbageCollected<FEMorphology>(
- filter, svg_operator_->CurrentValue()->EnumValue(), x_radius, y_radius);
+ filter, svg_operator_->CurrentEnumValue(), x_radius, y_radius);
effect->InputEffects().push_back(input1);
return effect;
}
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 80ab5105480..fbba044e926 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
@@ -44,7 +44,7 @@ class SVGFEMorphologyElement final
return svg_operator_.Get();
}
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
bool SetFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
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 b08be255166..dc4f2d40b88 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
@@ -41,7 +41,7 @@ SVGFEOffsetElement::SVGFEOffsetElement(Document& document)
AddToPropertyMap(in1_);
}
-void SVGFEOffsetElement::Trace(Visitor* visitor) {
+void SVGFEOffsetElement::Trace(Visitor* visitor) const {
visitor->Trace(dx_);
visitor->Trace(dy_);
visitor->Trace(in1_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_offset_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_offset_element.h
index 908adbda57e..979f3e8c2ea 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_offset_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_offset_element.h
@@ -37,7 +37,7 @@ class SVGFEOffsetElement final : public SVGFilterPrimitiveStandardAttributes {
SVGAnimatedNumber* dy() { return dy_.Get(); }
SVGAnimatedString* in1() { return in1_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
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 e857938b3fb..694ce9d87a5 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
@@ -57,7 +57,7 @@ SVGFESpecularLightingElement::SVGFESpecularLightingElement(Document& document)
AddToPropertyMap(in1_);
}
-void SVGFESpecularLightingElement::Trace(Visitor* visitor) {
+void SVGFESpecularLightingElement::Trace(Visitor* visitor) const {
visitor->Trace(specular_constant_);
visitor->Trace(specular_exponent_);
visitor->Trace(surface_scale_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.h
index 64d75d05b10..9d3d768445b 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.h
@@ -51,7 +51,7 @@ class SVGFESpecularLightingElement final
}
SVGAnimatedString* in1() { return in1_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
bool SetFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
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 220b8e03787..29bcf6359a0 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
@@ -33,7 +33,7 @@ SVGFETileElement::SVGFETileElement(Document& document)
AddToPropertyMap(in1_);
}
-void SVGFETileElement::Trace(Visitor* visitor) {
+void SVGFETileElement::Trace(Visitor* visitor) const {
visitor->Trace(in1_);
SVGFilterPrimitiveStandardAttributes::Trace(visitor);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fe_tile_element.h b/chromium/third_party/blink/renderer/core/svg/svg_fe_tile_element.h
index b22f758db17..faa7e913b47 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fe_tile_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fe_tile_element.h
@@ -34,7 +34,7 @@ class SVGFETileElement final : public SVGFilterPrimitiveStandardAttributes {
SVGAnimatedString* in1() { return in1_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
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 1136c829f3f..06e1c8a98c2 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
@@ -75,7 +75,7 @@ SVGFETurbulenceElement::SVGFETurbulenceElement(Document& document)
AddToPropertyMap(num_octaves_);
}
-void SVGFETurbulenceElement::Trace(Visitor* visitor) {
+void SVGFETurbulenceElement::Trace(Visitor* visitor) const {
visitor->Trace(base_frequency_);
visitor->Trace(seed_);
visitor->Trace(stitch_tiles_);
@@ -89,10 +89,11 @@ bool SVGFETurbulenceElement::SetFilterEffectAttribute(
const QualifiedName& attr_name) {
FETurbulence* turbulence = static_cast<FETurbulence*>(effect);
if (attr_name == svg_names::kTypeAttr)
- return turbulence->SetType(type_->CurrentValue()->EnumValue());
- if (attr_name == svg_names::kStitchTilesAttr)
- return turbulence->SetStitchTiles(
- stitch_tiles_->CurrentValue()->EnumValue() == kSvgStitchtypeStitch);
+ return turbulence->SetType(type_->CurrentEnumValue());
+ if (attr_name == svg_names::kStitchTilesAttr) {
+ return turbulence->SetStitchTiles(stitch_tiles_->CurrentEnumValue() ==
+ kSvgStitchtypeStitch);
+ }
if (attr_name == svg_names::kBaseFrequencyAttr) {
bool base_frequency_x_changed = turbulence->SetBaseFrequencyX(
baseFrequencyX()->CurrentValue()->Value());
@@ -126,11 +127,11 @@ void SVGFETurbulenceElement::SvgAttributeChanged(
FilterEffect* SVGFETurbulenceElement::Build(SVGFilterBuilder*, Filter* filter) {
return MakeGarbageCollected<FETurbulence>(
- filter, type_->CurrentValue()->EnumValue(),
+ filter, type_->CurrentEnumValue(),
baseFrequencyX()->CurrentValue()->Value(),
baseFrequencyY()->CurrentValue()->Value(),
num_octaves_->CurrentValue()->Value(), seed_->CurrentValue()->Value(),
- stitch_tiles_->CurrentValue()->EnumValue() == kSvgStitchtypeStitch);
+ stitch_tiles_->CurrentEnumValue() == kSvgStitchtypeStitch);
}
} // namespace blink
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 39c953c95cd..0abb0b0157b 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
@@ -58,7 +58,7 @@ class SVGFETurbulenceElement final
SVGAnimatedEnumeration<TurbulenceType>* type() { return type_.Get(); }
SVGAnimatedInteger* numOctaves() { return num_octaves_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
// Turbulence takes no inputs and doesn't taint origin, so we can always
// return false.
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 510b134064c..25c0f8392bd 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
@@ -77,7 +77,7 @@ SVGFilterElement::SVGFilterElement(Document& document)
SVGFilterElement::~SVGFilterElement() = default;
-void SVGFilterElement::Trace(Visitor* visitor) {
+void SVGFilterElement::Trace(Visitor* visitor) const {
visitor->Trace(x_);
visitor->Trace(y_);
visitor->Trace(width_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_filter_element.h b/chromium/third_party/blink/renderer/core/svg/svg_filter_element.h
index 39d2c615efb..09508d43aae 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_filter_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_filter_element.h
@@ -42,7 +42,7 @@ class CORE_EXPORT SVGFilterElement final : public SVGElement,
USING_GARBAGE_COLLECTED_MIXIN(SVGFilterElement);
public:
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
explicit SVGFilterElement(Document&);
~SVGFilterElement() override;
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 5654af88baf..07b1b38209a 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
@@ -69,7 +69,7 @@ SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes(
AddToPropertyMap(result_);
}
-void SVGFilterPrimitiveStandardAttributes::Trace(Visitor* visitor) {
+void SVGFilterPrimitiveStandardAttributes::Trace(Visitor* visitor) const {
visitor->Trace(x_);
visitor->Trace(y_);
visitor->Trace(width_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h b/chromium/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h
index 50aba21ab89..79ef104287c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_filter_primitive_standard_attributes.h
@@ -55,7 +55,7 @@ class SVGFilterPrimitiveStandardAttributes : public SVGElement {
SVGAnimatedLength* height() const { return height_.Get(); }
SVGAnimatedString* result() const { return result_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
void PrimitiveAttributeChanged(const QualifiedName&);
void Invalidate();
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 2284b380fae..b3dcf66e47f 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
@@ -60,7 +60,7 @@ SVGFitToViewBox::SVGFitToViewBox(SVGElement* element)
element->AddToPropertyMap(preserve_aspect_ratio_);
}
-void SVGFitToViewBox::Trace(Visitor* visitor) {
+void SVGFitToViewBox::Trace(Visitor* visitor) const {
visitor->Trace(view_box_);
visitor->Trace(preserve_aspect_ratio_);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_fit_to_view_box.h b/chromium/third_party/blink/renderer/core/svg/svg_fit_to_view_box.h
index 54d922bee5a..dec540808bf 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_fit_to_view_box.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_fit_to_view_box.h
@@ -54,7 +54,7 @@ class SVGFitToViewBox : public GarbageCollectedMixin {
return preserve_aspect_ratio_.Get();
}
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
explicit SVGFitToViewBox(SVGElement*);
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 e570ca8bc8e..61a51d300e7 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
@@ -64,7 +64,7 @@ SVGForeignObjectElement::SVGForeignObjectElement(Document& document)
UseCounter::Count(document, WebFeature::kSVGForeignObjectElement);
}
-void SVGForeignObjectElement::Trace(Visitor* visitor) {
+void SVGForeignObjectElement::Trace(Visitor* visitor) const {
visitor->Trace(x_);
visitor->Trace(y_);
visitor->Trace(width_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_foreign_object_element.h b/chromium/third_party/blink/renderer/core/svg/svg_foreign_object_element.h
index b9559036a59..e3b79ee3898 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_foreign_object_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_foreign_object_element.h
@@ -37,7 +37,7 @@ class SVGForeignObjectElement final : public SVGGraphicsElement {
SVGAnimatedLength* width() const { return width_.Get(); }
SVGAnimatedLength* height() const { return height_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void CollectStyleForPresentationAttribute(
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 aad481f8d48..47104211cb5 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
@@ -75,7 +75,7 @@ void SVGGeometryElement::SvgAttributeChanged(const QualifiedName& attr_name) {
SVGGraphicsElement::SvgAttributeChanged(attr_name);
}
-void SVGGeometryElement::Trace(Visitor* visitor) {
+void SVGGeometryElement::Trace(Visitor* visitor) const {
visitor->Trace(path_length_);
SVGGraphicsElement::Trace(visitor);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_geometry_element.h b/chromium/third_party/blink/renderer/core/svg/svg_geometry_element.h
index c6de7fb18db..8ec93d84ceb 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_geometry_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_geometry_element.h
@@ -59,7 +59,7 @@ class SVGGeometryElement : public SVGGraphicsElement {
static float PathLengthScaleFactor(float computed_path_length,
float author_path_length);
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
SVGGeometryElement(const QualifiedName&,
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 749dcbdcbcc..68914717f18 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
@@ -67,7 +67,7 @@ SVGGradientElement::SVGGradientElement(const QualifiedName& tag_name,
AddToPropertyMap(gradient_units_);
}
-void SVGGradientElement::Trace(Visitor* visitor) {
+void SVGGradientElement::Trace(Visitor* visitor) const {
visitor->Trace(gradient_transform_);
visitor->Trace(spread_method_);
visitor->Trace(gradient_units_);
@@ -168,10 +168,10 @@ void SVGGradientElement::InvalidateDependentGradients() {
void SVGGradientElement::CollectCommonAttributes(
GradientAttributes& attributes) const {
if (!attributes.HasSpreadMethod() && spreadMethod()->IsSpecified())
- attributes.SetSpreadMethod(spreadMethod()->CurrentValue()->EnumValue());
+ attributes.SetSpreadMethod(spreadMethod()->CurrentEnumValue());
if (!attributes.HasGradientUnits() && gradientUnits()->IsSpecified())
- attributes.SetGradientUnits(gradientUnits()->CurrentValue()->EnumValue());
+ attributes.SetGradientUnits(gradientUnits()->CurrentEnumValue());
if (!attributes.HasGradientTransform() &&
HasTransform(SVGElement::kExcludeMotionTransform)) {
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 4e8cf91995a..139c5ec99e6 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
@@ -64,7 +64,7 @@ class SVGGradientElement : public SVGElement, public SVGURIReference {
const SVGGradientElement* ReferencedElement() const;
void CollectCommonAttributes(GradientAttributes&) const;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
SVGGradientElement(const QualifiedName&, Document&);
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 37d3f45a698..27adfbc5543 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
@@ -46,7 +46,7 @@ SVGGraphicsElement::SVGGraphicsElement(const QualifiedName& tag_name,
SVGGraphicsElement::~SVGGraphicsElement() = default;
-void SVGGraphicsElement::Trace(Visitor* visitor) {
+void SVGGraphicsElement::Trace(Visitor* visitor) const {
visitor->Trace(transform_);
SVGElement::Trace(visitor);
SVGTests::Trace(visitor);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_graphics_element.h b/chromium/third_party/blink/renderer/core/svg/svg_graphics_element.h
index 5fbcc82e5e2..c2ca7ebacb8 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_graphics_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_graphics_element.h
@@ -64,7 +64,7 @@ class CORE_EXPORT SVGGraphicsElement : public SVGElement, public SVGTests {
CTMScope mode,
const SVGGraphicsElement* ancestor = nullptr) const;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
SVGGraphicsElement(const QualifiedName&,
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 4ab1768f3a5..3dd31c2fb4d 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
@@ -36,8 +36,10 @@ namespace blink {
SVGImageElement::SVGImageElement(Document& document)
: SVGGraphicsElement(svg_names::kImageTag, document),
SVGURIReference(this),
- is_default_overridden_intrinsic_size_(!document.IsFeatureEnabled(
- mojom::blink::DocumentPolicyFeature::kUnsizedMedia)),
+ is_default_overridden_intrinsic_size_(
+ GetExecutionContext() &&
+ !GetExecutionContext()->IsFeatureEnabled(
+ mojom::blink::DocumentPolicyFeature::kUnsizedMedia)),
x_(MakeGarbageCollected<SVGAnimatedLength>(
this,
svg_names::kXAttr,
@@ -74,7 +76,7 @@ SVGImageElement::SVGImageElement(Document& document)
AddToPropertyMap(preserve_aspect_ratio_);
}
-void SVGImageElement::Trace(Visitor* visitor) {
+void SVGImageElement::Trace(Visitor* visitor) const {
visitor->Trace(x_);
visitor->Trace(y_);
visitor->Trace(width_);
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 049e9c7ab63..c529dfbd36b 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
@@ -43,7 +43,7 @@ class CORE_EXPORT SVGImageElement final
public:
explicit SVGImageElement(Document&);
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
bool CurrentFrameHasSingleSecurityOrigin() const;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_integer_optional_integer.cc b/chromium/third_party/blink/renderer/core/svg/svg_integer_optional_integer.cc
index 2c9a363c780..2628466c5ae 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_integer_optional_integer.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_integer_optional_integer.cc
@@ -39,7 +39,7 @@ SVGIntegerOptionalInteger::SVGIntegerOptionalInteger(SVGInteger* first_integer,
SVGInteger* second_integer)
: first_integer_(first_integer), second_integer_(second_integer) {}
-void SVGIntegerOptionalInteger::Trace(Visitor* visitor) {
+void SVGIntegerOptionalInteger::Trace(Visitor* visitor) const {
visitor->Trace(first_integer_);
visitor->Trace(second_integer_);
SVGPropertyBase::Trace(visitor);
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 334fef29f01..3e7eab70703 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
@@ -74,7 +74,7 @@ class SVGIntegerOptionalInteger final : public SVGPropertyBase {
SVGInteger* FirstInteger() const { return first_integer_; }
SVGInteger* SecondInteger() const { return second_integer_; }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
Member<SVGInteger> first_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 77535c4717d..8609421a3d3 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_length.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_length.cc
@@ -85,7 +85,7 @@ SVGLength::SVGLength(const CSSPrimitiveValue& value, SVGLengthMode mode)
DCHECK_EQ(UnitMode(), mode);
}
-void SVGLength::Trace(Visitor* visitor) {
+void SVGLength::Trace(Visitor* visitor) const {
visitor->Trace(value_);
SVGPropertyBase::Trace(visitor);
}
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 bb11984f65d..c49540d8d53 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_length.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_length.h
@@ -61,7 +61,7 @@ class CORE_EXPORT SVGLength final : public SVGPropertyBase {
void SetInitial(unsigned);
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
SVGLength* Clone() const;
SVGPropertyBase* CloneForAnimation(const String&) const override;
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 988db51b0dc..b3013d280be 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
@@ -54,7 +54,7 @@ SVGLineElement::SVGLineElement(Document& document)
AddToPropertyMap(y2_);
}
-void SVGLineElement::Trace(Visitor* visitor) {
+void SVGLineElement::Trace(Visitor* visitor) const {
visitor->Trace(x1_);
visitor->Trace(y1_);
visitor->Trace(x2_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_line_element.h b/chromium/third_party/blink/renderer/core/svg/svg_line_element.h
index 04acb82a98f..07429ed6553 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_line_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_line_element.h
@@ -40,7 +40,7 @@ class SVGLineElement final : public SVGGeometryElement {
SVGAnimatedLength* x2() const { return x2_.Get(); }
SVGAnimatedLength* y2() const { return y2_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
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 9c0c7072b12..604956c40dd 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
@@ -62,7 +62,7 @@ SVGLinearGradientElement::SVGLinearGradientElement(Document& document)
AddToPropertyMap(y2_);
}
-void SVGLinearGradientElement::Trace(Visitor* visitor) {
+void SVGLinearGradientElement::Trace(Visitor* visitor) const {
visitor->Trace(x1_);
visitor->Trace(y1_);
visitor->Trace(x2_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_linear_gradient_element.h b/chromium/third_party/blink/renderer/core/svg/svg_linear_gradient_element.h
index 1b1b218d836..791f5471520 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_linear_gradient_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_linear_gradient_element.h
@@ -42,7 +42,7 @@ class SVGLinearGradientElement final : public SVGGradientElement {
SVGAnimatedLength* x2() const { return x2_.Get(); }
SVGAnimatedLength* y2() const { return y2_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
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 4920b8ba495..45426289b7d 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
@@ -79,7 +79,7 @@ SVGMarkerElement::SVGMarkerElement(Document& document)
AddToPropertyMap(marker_units_);
}
-void SVGMarkerElement::Trace(Visitor* visitor) {
+void SVGMarkerElement::Trace(Visitor* visitor) const {
visitor->Trace(ref_x_);
visitor->Trace(ref_y_);
visitor->Trace(marker_width_);
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 542d5ba1bd5..1bc6a21c5a0 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
@@ -76,7 +76,7 @@ class SVGMarkerElement final : public SVGElement, public SVGFitToViewBox {
return orient_angle_->OrientType();
}
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
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 db873b16b0e..79e116955dd 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
@@ -78,7 +78,7 @@ SVGMaskElement::SVGMaskElement(Document& document)
AddToPropertyMap(mask_content_units_);
}
-void SVGMaskElement::Trace(Visitor* visitor) {
+void SVGMaskElement::Trace(Visitor* visitor) const {
visitor->Trace(x_);
visitor->Trace(y_);
visitor->Trace(width_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_mask_element.h b/chromium/third_party/blink/renderer/core/svg/svg_mask_element.h
index d45cdf20e87..44ad1fb192c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_mask_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_mask_element.h
@@ -47,7 +47,7 @@ class SVGMaskElement final : public SVGElement, public SVGTests {
return mask_content_units_.Get();
}
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
bool IsValid() const override { return SVGTests::IsValid(); }
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_matrix_tear_off.cc b/chromium/third_party/blink/renderer/core/svg/svg_matrix_tear_off.cc
index e7db4ffa088..3afdd7bca1f 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_matrix_tear_off.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_matrix_tear_off.cc
@@ -44,7 +44,7 @@ SVGMatrixTearOff::SVGMatrixTearOff(SVGTransformTearOff* transform)
DCHECK(transform);
}
-void SVGMatrixTearOff::Trace(Visitor* visitor) {
+void SVGMatrixTearOff::Trace(Visitor* visitor) const {
visitor->Trace(context_transform_);
ScriptWrappable::Trace(visitor);
}
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 3b8bf2fa439..6a154dfb432 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
@@ -82,7 +82,7 @@ class CORE_EXPORT SVGMatrixTearOff final : public ScriptWrappable {
const AffineTransform& Value() const;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
AffineTransform* MutableValue();
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 65eb8f47ce1..a626d40594c 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
@@ -30,7 +30,7 @@ namespace blink {
SVGMPathElement::SVGMPathElement(Document& document)
: SVGElement(svg_names::kMPathTag, document), SVGURIReference(this) {}
-void SVGMPathElement::Trace(Visitor* visitor) {
+void SVGMPathElement::Trace(Visitor* visitor) const {
visitor->Trace(target_id_observer_);
SVGElement::Trace(visitor);
SVGURIReference::Trace(visitor);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_mpath_element.h b/chromium/third_party/blink/renderer/core/svg/svg_mpath_element.h
index 89ed7cca9c5..29cb1741d48 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_mpath_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_mpath_element.h
@@ -39,7 +39,7 @@ class SVGMPathElement final : public SVGElement, public SVGURIReference {
void TargetPathChanged();
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void BuildPendingResource() override;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_number_optional_number.cc b/chromium/third_party/blink/renderer/core/svg/svg_number_optional_number.cc
index a1477bae1c3..c97775e2db9 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_number_optional_number.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_number_optional_number.cc
@@ -39,7 +39,7 @@ SVGNumberOptionalNumber::SVGNumberOptionalNumber(SVGNumber* first_number,
SVGNumber* second_number)
: first_number_(first_number), second_number_(second_number) {}
-void SVGNumberOptionalNumber::Trace(Visitor* visitor) {
+void SVGNumberOptionalNumber::Trace(Visitor* visitor) const {
visitor->Trace(first_number_);
visitor->Trace(second_number_);
SVGPropertyBase::Trace(visitor);
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 6f5f810cca4..b1f26f5a140 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
@@ -73,7 +73,7 @@ class SVGNumberOptionalNumber final : public SVGPropertyBase {
SVGNumber* FirstNumber() const { return first_number_; }
SVGNumber* SecondNumber() const { return second_number_; }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
Member<SVGNumber> first_number_;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_parser_utilities.cc b/chromium/third_party/blink/renderer/core/svg/svg_parser_utilities.cc
index c7b613fd34c..34656853629 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_parser_utilities.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_parser_utilities.cc
@@ -24,6 +24,7 @@
#include <limits>
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
+#include "third_party/blink/renderer/platform/wtf/text/character_visitor.h"
namespace blink {
@@ -195,34 +196,22 @@ bool ParseArcFlag(const UChar*& ptr, const UChar* end, bool& flag) {
return GenericParseArcFlag(ptr, end, flag);
}
-template <typename CharType>
-static bool GenericParseNumberOptionalNumber(const CharType*& ptr,
- const CharType* end,
- float& x,
- float& y) {
- if (!ParseNumber(ptr, end, x))
- return false;
-
- if (ptr == end)
- y = x;
- else if (!ParseNumber(ptr, end, y, kAllowLeadingAndTrailingWhitespace))
- return false;
-
- return ptr == end;
-}
-
bool ParseNumberOptionalNumber(const String& string, float& x, float& y) {
if (string.IsEmpty())
return false;
- if (string.Is8Bit()) {
- const LChar* ptr = string.Characters8();
- const LChar* end = ptr + string.length();
- return GenericParseNumberOptionalNumber(ptr, end, x, y);
- }
- const UChar* ptr = string.Characters16();
- const UChar* end = ptr + string.length();
- return GenericParseNumberOptionalNumber(ptr, end, x, y);
+ return WTF::VisitCharacters(string, [&](const auto* ptr, unsigned length) {
+ const auto* end = ptr + length;
+ if (!ParseNumber(ptr, end, x))
+ return false;
+
+ if (ptr == end)
+ y = x;
+ else if (!ParseNumber(ptr, end, y, kAllowLeadingAndTrailingWhitespace))
+ return false;
+
+ return ptr == end;
+ });
}
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_parsing_error.cc b/chromium/third_party/blink/renderer/core/svg/svg_parsing_error.cc
index 1f3e44d5a8c..9c1c01a6830 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_parsing_error.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_parsing_error.cc
@@ -4,6 +4,7 @@
#include "third_party/blink/renderer/core/svg/svg_parsing_error.h"
+#include "base/notreached.h"
#include "third_party/blink/renderer/core/dom/qualified_name.h"
#include "third_party/blink/renderer/platform/json/json_values.h"
#include "third_party/blink/renderer/platform/wtf/text/character_names.h"
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_path.cc b/chromium/third_party/blink/renderer/core/svg/svg_path.cc
index 393b6f1d592..e4468034348 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_path.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_path.cc
@@ -188,7 +188,7 @@ float SVGPath::CalculateDistance(SVGPropertyBase* to, SVGElement*) {
return -1;
}
-void SVGPath::Trace(Visitor* visitor) {
+void SVGPath::Trace(Visitor* visitor) const {
visitor->Trace(path_value_);
SVGPropertyBase::Trace(visitor);
}
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 b6376e5d1e3..cbd3115a73c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_path.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_path.h
@@ -72,7 +72,7 @@ class SVGPath final : public SVGPropertyBase {
static AnimatedPropertyType ClassType() { return kAnimatedPath; }
AnimatedPropertyType GetType() const override { return ClassType(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
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 c57638d1bb9..0a3c9caf75f 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
@@ -37,7 +37,7 @@ SVGPathElement::SVGPathElement(Document& document)
AddToPropertyMap(path_);
}
-void SVGPathElement::Trace(Visitor* visitor) {
+void SVGPathElement::Trace(Visitor* visitor) const {
visitor->Trace(path_);
SVGGeometryElement::Trace(visitor);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_path_element.h b/chromium/third_party/blink/renderer/core/svg/svg_path_element.h
index 2b1540003fd..babb968d63d 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_path_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_path_element.h
@@ -49,7 +49,7 @@ class SVGPathElement final : public SVGGeometryElement {
FloatRect GetBBox() override;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
const StylePath* GetStylePath() const;
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 cf4523d4a8d..a168c2b7dfa 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
@@ -83,7 +83,7 @@ SVGPatternElement::SVGPatternElement(Document& document)
AddToPropertyMap(pattern_content_units_);
}
-void SVGPatternElement::Trace(Visitor* visitor) {
+void SVGPatternElement::Trace(Visitor* visitor) const {
visitor->Trace(x_);
visitor->Trace(y_);
visitor->Trace(width_);
@@ -225,14 +225,13 @@ static void SetPatternAttributes(const SVGPatternElement& element,
}
if (!attributes.HasPatternUnits() && element.patternUnits()->IsSpecified()) {
- attributes.SetPatternUnits(
- element.patternUnits()->CurrentValue()->EnumValue());
+ attributes.SetPatternUnits(element.patternUnits()->CurrentEnumValue());
}
if (!attributes.HasPatternContentUnits() &&
element.patternContentUnits()->IsSpecified()) {
attributes.SetPatternContentUnits(
- element.patternContentUnits()->CurrentValue()->EnumValue());
+ element.patternContentUnits()->CurrentEnumValue());
}
if (!attributes.HasPatternTransform() &&
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_pattern_element.h b/chromium/third_party/blink/renderer/core/svg/svg_pattern_element.h
index 8df0c30ad06..0305681c55f 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_pattern_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_pattern_element.h
@@ -80,7 +80,7 @@ class SVGPatternElement final : public SVGElement,
const SVGPatternElement* ReferencedElement() const;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
bool IsValid() const override { return SVGTests::IsValid(); }
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 43555c37454..d612f35ad18 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
@@ -36,7 +36,7 @@ SVGPolyElement::SVGPolyElement(const QualifiedName& tag_name,
AddToPropertyMap(points_);
}
-void SVGPolyElement::Trace(Visitor* visitor) {
+void SVGPolyElement::Trace(Visitor* visitor) const {
visitor->Trace(points_);
SVGGeometryElement::Trace(visitor);
}
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 dd9c67e8a31..9d9e0fa7ee3 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
@@ -35,7 +35,7 @@ class SVGPolyElement : public SVGGeometryElement {
SVGPointListTearOff* pointsFromJavascript() { return points_->baseVal(); }
SVGPointListTearOff* animatedPoints() { return points_->animVal(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
SVGPolyElement(const QualifiedName&, Document&);
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 3c96ac2b33e..c815b4fd9a7 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
@@ -73,7 +73,7 @@ SVGRadialGradientElement::SVGRadialGradientElement(Document& document)
AddToPropertyMap(fr_);
}
-void SVGRadialGradientElement::Trace(Visitor* visitor) {
+void SVGRadialGradientElement::Trace(Visitor* visitor) const {
visitor->Trace(cx_);
visitor->Trace(cy_);
visitor->Trace(r_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_radial_gradient_element.h b/chromium/third_party/blink/renderer/core/svg/svg_radial_gradient_element.h
index 5aa965d0768..8a96940f121 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_radial_gradient_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_radial_gradient_element.h
@@ -44,7 +44,7 @@ class SVGRadialGradientElement final : public SVGGradientElement {
SVGAnimatedLength* fy() const { return fy_.Get(); }
SVGAnimatedLength* fr() const { return fr_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_rect.cc b/chromium/third_party/blink/renderer/core/svg/svg_rect.cc
index 096bd566ec8..a1ca2ab12d3 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_rect.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_rect.cc
@@ -24,6 +24,7 @@
#include "third_party/blink/renderer/core/svg/svg_animate_element.h"
#include "third_party/blink/renderer/core/svg/svg_parser_utilities.h"
#include "third_party/blink/renderer/platform/heap/heap.h"
+#include "third_party/blink/renderer/platform/wtf/text/character_visitor.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
@@ -68,14 +69,9 @@ SVGParsingError SVGRect::SetValueAsString(const String& string) {
if (string.IsEmpty())
return SVGParsingError(SVGParseStatus::kExpectedNumber, 0);
- if (string.Is8Bit()) {
- const LChar* ptr = string.Characters8();
- const LChar* end = ptr + string.length();
- return Parse(ptr, end);
- }
- const UChar* ptr = string.Characters16();
- const UChar* end = ptr + string.length();
- return Parse(ptr, end);
+ return WTF::VisitCharacters(string, [&](const auto* chars, unsigned length) {
+ return Parse(chars, chars + length);
+ });
}
String SVGRect::ValueAsString() const {
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 d3386c383ee..a98dde36d03 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
@@ -72,7 +72,7 @@ SVGRectElement::SVGRectElement(Document& document)
AddToPropertyMap(ry_);
}
-void SVGRectElement::Trace(Visitor* visitor) {
+void SVGRectElement::Trace(Visitor* visitor) const {
visitor->Trace(x_);
visitor->Trace(y_);
visitor->Trace(width_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_rect_element.h b/chromium/third_party/blink/renderer/core/svg/svg_rect_element.h
index 15a81e7ef33..e58b9df17a4 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_rect_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_rect_element.h
@@ -42,7 +42,7 @@ class SVGRectElement final : public SVGGeometryElement {
SVGAnimatedLength* rx() const { return rx_.Get(); }
SVGAnimatedLength* ry() const { return ry_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void CollectStyleForPresentationAttribute(
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 b10a69917be..6e8fc34a1e2 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_resource.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_resource.cc
@@ -19,7 +19,7 @@ SVGResource::SVGResource() = default;
SVGResource::~SVGResource() = default;
-void SVGResource::Trace(Visitor* visitor) {
+void SVGResource::Trace(Visitor* visitor) const {
visitor->Trace(target_);
visitor->Trace(clients_);
}
@@ -121,7 +121,7 @@ void LocalSVGResource::TargetChanged(const AtomicString& id) {
NotifyElementChanged();
}
-void LocalSVGResource::Trace(Visitor* visitor) {
+void LocalSVGResource::Trace(Visitor* visitor) const {
visitor->Trace(tree_scope_);
visitor->Trace(id_observer_);
SVGResource::Trace(visitor);
@@ -167,7 +167,7 @@ Element* ExternalSVGResource::ResolveTarget() {
return external_document->getElementById(decoded_fragment);
}
-void ExternalSVGResource::Trace(Visitor* visitor) {
+void ExternalSVGResource::Trace(Visitor* visitor) const {
visitor->Trace(cache_entry_);
SVGResource::Trace(visitor);
SVGExternalDocumentCache::Client::Trace(visitor);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_resource.h b/chromium/third_party/blink/renderer/core/svg/svg_resource.h
index 15bc41f5e75..18a974b0619 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_resource.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_resource.h
@@ -71,7 +71,7 @@ class SVGResource : public GarbageCollected<SVGResource> {
void AddClient(SVGResourceClient&);
void RemoveClient(SVGResourceClient&);
- virtual void Trace(Visitor*);
+ virtual void Trace(Visitor*) const;
protected:
SVGResource();
@@ -100,7 +100,7 @@ class LocalSVGResource final : public SVGResource {
void NotifyResourceAttached(LayoutSVGResourceContainer&);
void NotifyResourceDestroyed(LayoutSVGResourceContainer&);
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void TargetChanged(const AtomicString& id);
@@ -120,7 +120,7 @@ class ExternalSVGResource final : public SVGResource,
void Load(Document&) override;
void LoadWithoutCSP(Document&) override;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
Element* ResolveTarget();
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 3d274d2436b..ecebe50b76f 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
@@ -37,8 +37,7 @@ SVGScriptElement::SVGScriptElement(Document& document,
const CreateElementFlags flags)
: SVGElement(svg_names::kScriptTag, document),
SVGURIReference(this),
- loader_(InitializeScriptLoader(flags.IsCreatedByParser(),
- flags.WasAlreadyStarted())) {}
+ loader_(InitializeScriptLoader(flags)) {}
void SVGScriptElement::ParseAttribute(
const AttributeModificationParams& params) {
@@ -138,7 +137,7 @@ bool SVGScriptElement::AllowInlineScriptForCSP(
const AtomicString& nonce,
const WTF::OrdinalNumber& context_line,
const String& script_content) {
- return GetDocument().GetContentSecurityPolicyForWorld()->AllowInline(
+ return GetExecutionContext()->GetContentSecurityPolicyForWorld()->AllowInline(
ContentSecurityPolicy::InlineType::kScript, this, script_content, nonce,
GetDocument().Url(), context_line);
}
@@ -197,7 +196,7 @@ const AttrNameToTrustedType& SVGScriptElement::GetCheckedAttributeTypes()
return attribute_map;
}
-void SVGScriptElement::Trace(Visitor* visitor) {
+void SVGScriptElement::Trace(Visitor* visitor) const {
visitor->Trace(loader_);
SVGElement::Trace(visitor);
SVGURIReference::Trace(visitor);
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 e24d3f074df..e1ac02513fe 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
@@ -52,7 +52,7 @@ class SVGScriptElement final : public SVGElement,
const AttrNameToTrustedType& GetCheckedAttributeTypes() const override;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void ParseAttribute(const AttributeModificationParams&) override;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_static_string_list.cc b/chromium/third_party/blink/renderer/core/svg/svg_static_string_list.cc
index f01b5cedb7f..1ba5b10123c 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_static_string_list.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_static_string_list.cc
@@ -47,7 +47,7 @@ SVGStaticStringList::SVGStaticStringList(SVGElement* context_element,
SVGStaticStringList::~SVGStaticStringList() = default;
-void SVGStaticStringList::Trace(Visitor* visitor) {
+void SVGStaticStringList::Trace(Visitor* visitor) const {
visitor->Trace(value_);
visitor->Trace(tear_off_);
SVGAnimatedPropertyBase::Trace(visitor);
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 611736480b2..f5f26444e61 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
@@ -73,7 +73,7 @@ class SVGStaticStringList final : public GarbageCollected<SVGStaticStringList>,
SVGStringListBase* Value() { return value_.Get(); }
SVGStringListTearOff* TearOff();
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
Member<SVGStringListBase> value_;
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 53d12cfe254..1ea67e85d03 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
@@ -40,7 +40,7 @@ SVGStopElement::SVGStopElement(Document& document)
DCHECK(HasCustomStyleCallbacks());
}
-void SVGStopElement::Trace(Visitor* visitor) {
+void SVGStopElement::Trace(Visitor* visitor) const {
visitor->Trace(offset_);
SVGElement::Trace(visitor);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_stop_element.h b/chromium/third_party/blink/renderer/core/svg/svg_stop_element.h
index 32364f286ce..c414e6c10fb 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_stop_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_stop_element.h
@@ -39,7 +39,7 @@ class SVGStopElement final : public SVGElement {
SVGAnimatedNumber* offset() const { return offset_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
void DidRecalcStyle(const StyleRecalcChange) override;
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 09fd3f44911..836c891372a 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
@@ -138,7 +138,7 @@ void SVGStyleElement::DispatchPendingEvent() {
DispatchEvent(*Event::Create(event_type_names::kError));
}
-void SVGStyleElement::Trace(Visitor* visitor) {
+void SVGStyleElement::Trace(Visitor* visitor) const {
StyleElement::Trace(visitor);
SVGElement::Trace(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 d00ea8a36f5..950fa41fd9e 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
@@ -51,7 +51,7 @@ class SVGStyleElement final : public SVGElement, public StyleElement {
void DispatchPendingEvent();
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void ParseAttribute(const AttributeModificationParams&) 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 116c26092a3..97607e40f74 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
@@ -670,15 +670,9 @@ AffineTransform SVGSVGElement::ViewBoxToViewTransform(float view_width,
view_height);
if (!view_spec_ || !view_spec_->Transform())
return ctm;
-
const SVGTransformList* transform_list = view_spec_->Transform();
- if (transform_list->IsEmpty())
- return ctm;
-
- AffineTransform transform;
- if (transform_list->Concatenate(transform))
- ctm *= transform;
-
+ if (!transform_list->IsEmpty())
+ ctm *= transform_list->Concatenate();
return ctm;
}
@@ -735,7 +729,7 @@ void SVGSVGElement::FinishParsingChildren() {
SendSVGLoadEventIfPossible();
}
-void SVGSVGElement::Trace(Visitor* visitor) {
+void SVGSVGElement::Trace(Visitor* visitor) const {
visitor->Trace(x_);
visitor->Trace(y_);
visitor->Trace(width_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_svg_element.h b/chromium/third_party/blink/renderer/core/svg/svg_svg_element.h
index d153b348082..f74b9c81c96 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_svg_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_svg_element.h
@@ -109,7 +109,7 @@ class SVGSVGElement final : public SVGGraphicsElement,
SVGAnimatedLength* width() const { return width_.Get(); }
SVGAnimatedLength* height() const { return height_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
~SVGSVGElement() override;
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 7341f491adb..60533aab29a 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
@@ -28,7 +28,7 @@ namespace blink {
SVGSymbolElement::SVGSymbolElement(Document& document)
: SVGElement(svg_names::kSymbolTag, document), SVGFitToViewBox(this) {}
-void SVGSymbolElement::Trace(Visitor* visitor) {
+void SVGSymbolElement::Trace(Visitor* visitor) const {
SVGElement::Trace(visitor);
SVGFitToViewBox::Trace(visitor);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_symbol_element.h b/chromium/third_party/blink/renderer/core/svg/svg_symbol_element.h
index f54c16d8535..9d4f99f6ddf 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_symbol_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_symbol_element.h
@@ -33,7 +33,7 @@ class SVGSymbolElement final : public SVGElement, public SVGFitToViewBox {
public:
explicit SVGSymbolElement(Document&);
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void SvgAttributeChanged(const QualifiedName&) override;
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 fff3d4a17f9..7ec00f38dde 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_tests.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_tests.cc
@@ -44,7 +44,7 @@ SVGTests::SVGTests(SVGElement* context_element)
context_element->AddToPropertyMap(system_language_);
}
-void SVGTests::Trace(Visitor* visitor) {
+void SVGTests::Trace(Visitor* visitor) const {
visitor->Trace(required_extensions_);
visitor->Trace(system_language_);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_tests.h b/chromium/third_party/blink/renderer/core/svg/svg_tests.h
index ed920cf8899..cae061887dd 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_tests.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_tests.h
@@ -39,7 +39,7 @@ class CORE_EXPORT SVGTests : public GarbageCollectedMixin {
bool IsValid() const;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
explicit SVGTests(SVGElement* context_element);
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 542db849b2a..3821c2c1f1d 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
@@ -85,7 +85,7 @@ SVGTextContentElement::SVGTextContentElement(const QualifiedName& tag_name,
AddToPropertyMap(length_adjust_);
}
-void SVGTextContentElement::Trace(Visitor* visitor) {
+void SVGTextContentElement::Trace(Visitor* visitor) const {
visitor->Trace(text_length_);
visitor->Trace(length_adjust_);
SVGGraphicsElement::Trace(visitor);
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 8f55e3b9d2a..eb29f8f712f 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
@@ -71,7 +71,7 @@ class CORE_EXPORT SVGTextContentElement : public SVGGraphicsElement {
return length_adjust_.Get();
}
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
SVGTextContentElement(const QualifiedName&, Document&);
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 392c4cb6fa8..a0d586e0973 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
@@ -71,7 +71,7 @@ SVGTextPathElement::SVGTextPathElement(Document& document)
SVGTextPathElement::~SVGTextPathElement() = default;
-void SVGTextPathElement::Trace(Visitor* visitor) {
+void SVGTextPathElement::Trace(Visitor* visitor) const {
visitor->Trace(start_offset_);
visitor->Trace(method_);
visitor->Trace(spacing_);
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 497cd084d99..fa67bedecba 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
@@ -66,7 +66,7 @@ class SVGTextPathElement final : public SVGTextContentElement,
return spacing_.Get();
}
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
~SVGTextPathElement() override;
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 a0cb80821d1..caeca5c57bb 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
@@ -58,7 +58,7 @@ SVGTextPositioningElement::SVGTextPositioningElement(
AddToPropertyMap(rotate_);
}
-void SVGTextPositioningElement::Trace(Visitor* visitor) {
+void SVGTextPositioningElement::Trace(Visitor* visitor) const {
visitor->Trace(x_);
visitor->Trace(y_);
visitor->Trace(dx_);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_text_positioning_element.h b/chromium/third_party/blink/renderer/core/svg/svg_text_positioning_element.h
index ab1f9a77ef1..7f5df05ea99 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_text_positioning_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_text_positioning_element.h
@@ -38,7 +38,7 @@ class SVGTextPositioningElement : public SVGTextContentElement {
SVGAnimatedLengthList* dy() { return dy_.Get(); }
SVGAnimatedNumberList* rotate() { return rotate_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
SVGTextPositioningElement(const QualifiedName&, Document&);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_transform_list.cc b/chromium/third_party/blink/renderer/core/svg/svg_transform_list.cc
index f621334240a..6ec92e28bc6 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_transform_list.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_transform_list.cc
@@ -181,22 +181,11 @@ SVGTransformList::SVGTransformList(SVGTransformType transform_type,
SVGTransformList::~SVGTransformList() = default;
-SVGTransform* SVGTransformList::Consolidate() {
- AffineTransform matrix;
- if (!Concatenate(matrix))
- return nullptr;
-
- return Initialize(MakeGarbageCollected<SVGTransform>(matrix));
-}
-
-bool SVGTransformList::Concatenate(AffineTransform& result) const {
- if (IsEmpty())
- return false;
-
+AffineTransform SVGTransformList::Concatenate() const {
+ AffineTransform result;
for (const auto& item : *this)
result *= item->Matrix();
-
- return true;
+ return result;
}
namespace {
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 28930b5d87d..de6c2748a92 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
@@ -50,9 +50,7 @@ class SVGTransformList final
SVGTransformList(SVGTransformType, const String&);
~SVGTransformList() override;
- SVGTransform* Consolidate();
-
- bool Concatenate(AffineTransform& result) const;
+ AffineTransform Concatenate() const;
// SVGPropertyBase:
SVGPropertyBase* CloneForAnimation(const String&) const override;
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_transform_list_tear_off.cc b/chromium/third_party/blink/renderer/core/svg/svg_transform_list_tear_off.cc
index e49fdf2129b..172a1cb1223 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_transform_list_tear_off.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_transform_list_tear_off.cc
@@ -57,7 +57,13 @@ SVGTransformTearOff* SVGTransformListTearOff::consolidate(
ThrowReadOnly(exception_state);
return nullptr;
}
- return CreateItemTearOff(Target()->Consolidate());
+ SVGTransformList* transform_list = Target();
+ if (transform_list->IsEmpty())
+ return nullptr;
+ auto* concatenated_transform =
+ MakeGarbageCollected<SVGTransform>(transform_list->Concatenate());
+ transform_list->Initialize(concatenated_transform);
+ return CreateItemTearOff(concatenated_transform);
}
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_transform_tear_off.cc b/chromium/third_party/blink/renderer/core/svg/svg_transform_tear_off.cc
index fb466b1f1e8..9408c4d1116 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_transform_tear_off.cc
+++ b/chromium/third_party/blink/renderer/core/svg/svg_transform_tear_off.cc
@@ -48,7 +48,7 @@ SVGTransformTearOff::SVGTransformTearOff(
SVGTransformTearOff::~SVGTransformTearOff() = default;
-void SVGTransformTearOff::Trace(Visitor* visitor) {
+void SVGTransformTearOff::Trace(Visitor* visitor) const {
visitor->Trace(matrix_tearoff_);
SVGPropertyTearOff<SVGTransform>::Trace(visitor);
}
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 3fc02bc4a8c..155549c1ff5 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
@@ -74,7 +74,7 @@ class SVGTransformTearOff final : public SVGPropertyTearOff<SVGTransform> {
void setSkewX(float, ExceptionState&);
void setSkewY(float, ExceptionState&);
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
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 9ad5d0a1c46..5feb50931ff 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
@@ -42,7 +42,7 @@ void SVGTreeScopeResources::ProcessCustomWeakness(const LivenessBroker& info) {
resources_.RemoveAll(to_remove);
}
-void SVGTreeScopeResources::Trace(Visitor* visitor) {
+void SVGTreeScopeResources::Trace(Visitor* visitor) const {
visitor->template RegisterWeakCallbackMethod<
SVGTreeScopeResources, &SVGTreeScopeResources::ProcessCustomWeakness>(
this);
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_tree_scope_resources.h b/chromium/third_party/blink/renderer/core/svg/svg_tree_scope_resources.h
index 5d3c32c85cd..2267e752687 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_tree_scope_resources.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_tree_scope_resources.h
@@ -26,7 +26,7 @@ class SVGTreeScopeResources final
LocalSVGResource* ResourceForId(const AtomicString& id);
LocalSVGResource* ExistingResourceForId(const AtomicString& id) const;
- void Trace(Visitor*);
+ void Trace(Visitor*) const;
private:
void ProcessCustomWeakness(const LivenessBroker&);
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 4a3bb14b8d0..ce4d4969b34 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
@@ -52,7 +52,7 @@ SVGURIReference::SVGURIReference(SVGElement* element)
href_->AddToPropertyMap(element);
}
-void SVGURIReference::Trace(Visitor* visitor) {
+void SVGURIReference::Trace(Visitor* visitor) const {
visitor->Trace(href_);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_uri_reference.h b/chromium/third_party/blink/renderer/core/svg/svg_uri_reference.h
index d36385c2700..8c10c7afa5d 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_uri_reference.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_uri_reference.h
@@ -81,7 +81,7 @@ class CORE_EXPORT SVGURIReference : public GarbageCollectedMixin {
// JS API
SVGAnimatedHref* href() const { return href_.Get(); }
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
protected:
explicit SVGURIReference(SVGElement*);
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 70ece8b9cf4..258f76ac78d 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
@@ -91,7 +91,7 @@ SVGUseElement::SVGUseElement(Document& document)
SVGUseElement::~SVGUseElement() = default;
-void SVGUseElement::Trace(Visitor* visitor) {
+void SVGUseElement::Trace(Visitor* visitor) const {
visitor->Trace(cache_entry_);
visitor->Trace(x_);
visitor->Trace(y_);
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 d74a9b3d64f..cdaa634211b 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
@@ -61,7 +61,7 @@ class SVGUseElement final : public SVGGraphicsElement,
void DispatchPendingEvent();
Path ToClipPath() const;
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
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 ac872c18cd3..7bb80627e98 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
@@ -32,7 +32,7 @@ SVGViewElement::SVGViewElement(Document& document)
UseCounter::Count(document, WebFeature::kSVGViewElement);
}
-void SVGViewElement::Trace(Visitor* visitor) {
+void SVGViewElement::Trace(Visitor* visitor) const {
SVGElement::Trace(visitor);
SVGFitToViewBox::Trace(visitor);
}
diff --git a/chromium/third_party/blink/renderer/core/svg/svg_view_element.h b/chromium/third_party/blink/renderer/core/svg/svg_view_element.h
index f42c137721c..8796a97428b 100644
--- a/chromium/third_party/blink/renderer/core/svg/svg_view_element.h
+++ b/chromium/third_party/blink/renderer/core/svg/svg_view_element.h
@@ -37,7 +37,7 @@ class SVGViewElement final : public SVGElement,
public:
explicit SVGViewElement(Document&);
- void Trace(Visitor*) override;
+ void Trace(Visitor*) const override;
private:
void ParseAttribute(const AttributeModificationParams&) override;
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 be5843487ba..ba36ee103df 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
@@ -31,7 +31,7 @@ namespace blink {
SVGViewSpec::SVGViewSpec() : zoom_and_pan_(kSVGZoomAndPanUnknown) {}
-void SVGViewSpec::Trace(Visitor* visitor) {
+void SVGViewSpec::Trace(Visitor* visitor) const {
visitor->Trace(view_box_);
visitor->Trace(preserve_aspect_ratio_);
visitor->Trace(transform_);
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 41867c78786..932fe94a31c 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
@@ -44,7 +44,7 @@ class SVGViewSpec final : public GarbageCollected<SVGViewSpec> {
const SVGTransformList* Transform() const { return transform_; }
SVGZoomAndPanType ZoomAndPan() const { return zoom_and_pan_; }
- void Trace(Visitor*);
+ void Trace(Visitor*) const;
private:
bool ParseViewSpec(const String&);
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 f34d987083d..826efc707a4 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
@@ -273,7 +273,7 @@ TEST(
// Element::stripScriptingAttributes, perhaps to strip all
// SVG animation attributes.
TEST(UnsafeSVGAttributeSanitizationTest, stringsShouldNotSupportAddition) {
- auto* document = MakeGarbageCollected<Document>();
+ auto* document = Document::CreateForTest();
auto* target = MakeGarbageCollected<SVGAElement>(*document);
auto* element = MakeGarbageCollected<SVGAnimateElement>(*document);
element->SetTargetElement(target);
@@ -300,7 +300,7 @@ TEST(UnsafeSVGAttributeSanitizationTest,
attributes.push_back(Attribute(svg_names::kFromAttr, "/home"));
attributes.push_back(Attribute(svg_names::kToAttr, "javascript:own3d()"));
- auto* document = MakeGarbageCollected<Document>();
+ auto* document = Document::CreateForTest();
auto* element = MakeGarbageCollected<SVGAnimateElement>(*document);
element->StripScriptingAttributes(attributes);
@@ -320,7 +320,7 @@ TEST(UnsafeSVGAttributeSanitizationTest,
TEST(UnsafeSVGAttributeSanitizationTest,
isJavaScriptURLAttribute_hrefContainingJavascriptURL) {
Attribute attribute(svg_names::kHrefAttr, "javascript:alert()");
- auto* document = MakeGarbageCollected<Document>();
+ auto* document = Document::CreateForTest();
auto* element = MakeGarbageCollected<SVGAElement>(*document);
EXPECT_TRUE(element->IsJavaScriptURLAttribute(attribute))
<< "The 'a' element should identify an 'href' attribute with a "
@@ -330,7 +330,7 @@ TEST(UnsafeSVGAttributeSanitizationTest,
TEST(UnsafeSVGAttributeSanitizationTest,
isJavaScriptURLAttribute_xlinkHrefContainingJavascriptURL) {
Attribute attribute(xlink_names::kHrefAttr, "javascript:alert()");
- auto* document = MakeGarbageCollected<Document>();
+ auto* document = Document::CreateForTest();
auto* element = MakeGarbageCollected<SVGAElement>(*document);
EXPECT_TRUE(element->IsJavaScriptURLAttribute(attribute))
<< "The 'a' element should identify an 'xlink:href' attribute with a "
@@ -343,7 +343,7 @@ TEST(
QualifiedName href_alternate_prefix("foo", "href",
xlink_names::kNamespaceURI);
Attribute evil_attribute(href_alternate_prefix, "javascript:alert()");
- auto* document = MakeGarbageCollected<Document>();
+ auto* document = Document::CreateForTest();
auto* element = MakeGarbageCollected<SVGAElement>(*document);
EXPECT_TRUE(element->IsJavaScriptURLAttribute(evil_attribute))
<< "The XLink 'href' attribute with a JavaScript URL value should be "
@@ -354,7 +354,7 @@ TEST(
TEST(UnsafeSVGAttributeSanitizationTest,
isSVGAnimationAttributeSettingJavaScriptURL_fromContainingJavaScriptURL) {
Attribute evil_attribute(svg_names::kFromAttr, "javascript:alert()");
- auto* document = MakeGarbageCollected<Document>();
+ auto* document = Document::CreateForTest();
auto* element = MakeGarbageCollected<SVGAnimateElement>(*document);
EXPECT_TRUE(
element->IsSVGAnimationAttributeSettingJavaScriptURL(evil_attribute))
@@ -365,7 +365,7 @@ TEST(UnsafeSVGAttributeSanitizationTest,
TEST(UnsafeSVGAttributeSanitizationTest,
isSVGAnimationAttributeSettingJavaScriptURL_toContainingJavaScripURL) {
Attribute evil_attribute(svg_names::kToAttr, "javascript:window.close()");
- auto* document = MakeGarbageCollected<Document>();
+ auto* document = Document::CreateForTest();
auto* element = MakeGarbageCollected<SVGSetElement>(*document);
EXPECT_TRUE(
element->IsSVGAnimationAttributeSettingJavaScriptURL(evil_attribute))
@@ -377,7 +377,7 @@ TEST(
UnsafeSVGAttributeSanitizationTest,
isSVGAnimationAttributeSettingJavaScriptURL_valuesContainingJavaScriptURL) {
Attribute evil_attribute(svg_names::kValuesAttr, "hi!; javascript:confirm()");
- auto* document = MakeGarbageCollected<Document>();
+ auto* document = Document::CreateForTest();
auto* element = MakeGarbageCollected<SVGAnimateElement>(*document);
EXPECT_TRUE(
element->IsSVGAnimationAttributeSettingJavaScriptURL(evil_attribute))
@@ -388,7 +388,7 @@ TEST(
TEST(UnsafeSVGAttributeSanitizationTest,
isSVGAnimationAttributeSettingJavaScriptURL_innocuousAnimationAttribute) {
Attribute fine_attribute(svg_names::kFromAttr, "hello, world!");
- auto* document = MakeGarbageCollected<Document>();
+ auto* document = Document::CreateForTest();
auto* element = MakeGarbageCollected<SVGSetElement>(*document);
EXPECT_FALSE(
element->IsSVGAnimationAttributeSettingJavaScriptURL(fine_attribute))