diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/svg')
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)) |