diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-07-31 15:50:41 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-08-30 12:35:23 +0000 |
commit | 7b2ffa587235a47d4094787d72f38102089f402a (patch) | |
tree | 30e82af9cbab08a7fa028bb18f4f2987a3f74dfa /chromium/third_party/blink/renderer/core/svg/svg_element.cc | |
parent | d94af01c90575348c4e81a418257f254b6f8d225 (diff) | |
download | qtwebengine-chromium-7b2ffa587235a47d4094787d72f38102089f402a.tar.gz |
BASELINE: Update Chromium to 76.0.3809.94
Change-Id: I321c3f5f929c105aec0f98c5091ef6108822e647
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/core/svg/svg_element.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/svg/svg_element.cc | 41 |
1 files changed, 21 insertions, 20 deletions
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 9443f0d9042..506e181d42c 100644 --- a/chromium/third_party/blink/renderer/core/svg/svg_element.cc +++ b/chromium/third_party/blink/renderer/core/svg/svg_element.cc @@ -328,7 +328,7 @@ FloatRect ComputeSVGTransformReferenceBox(const LayoutObject& layout_object) { } else { DCHECK_EQ(style.TransformBox(), ETransformBox::kViewBox); SVGLengthContext length_context( - ToSVGElementOrNull(layout_object.GetNode())); + DynamicTo<SVGElement>(layout_object.GetNode())); FloatSize viewport_size; length_context.DetermineViewport(viewport_size); reference_box.SetSize(viewport_size); @@ -401,24 +401,24 @@ Node::InsertionNotificationRequest SVGElement::InsertedInto( void SVGElement::RemovedFrom(ContainerNode& root_parent) { bool was_in_document = root_parent.isConnected(); - + auto* root_parent_svg_element = DynamicTo<SVGElement>(root_parent); if (was_in_document && HasRelativeLengths()) { // The root of the subtree being removed should take itself out from its // parent's relative length set. For the other nodes in the subtree we don't // need to do anything: they will get their own removedFrom() notification // and just clear their sets. - if (root_parent.IsSVGElement() && !parentNode()) { - DCHECK(ToSVGElement(root_parent) - .elements_with_relative_lengths_.Contains(this)); - ToSVGElement(root_parent).UpdateRelativeLengthsInformation(false, this); + if (root_parent_svg_element && !parentNode()) { + DCHECK(root_parent_svg_element->elements_with_relative_lengths_.Contains( + this)); + root_parent_svg_element->UpdateRelativeLengthsInformation(false, this); } elements_with_relative_lengths_.clear(); } - SECURITY_DCHECK(!root_parent.IsSVGElement() || - !ToSVGElement(root_parent) - .elements_with_relative_lengths_.Contains(this)); + SECURITY_DCHECK( + !root_parent_svg_element || + !root_parent_svg_element->elements_with_relative_lengths_.Contains(this)); Element::RemovedFrom(root_parent); @@ -540,25 +540,25 @@ void SVGElement::UpdateRelativeLengthsInformation( // relative length map. Register the parent in the grandparents map, etc. // Repeat procedure until the root of the SVG tree. for (Node& current_node : NodeTraversal::InclusiveAncestorsOf(*this)) { - if (!current_node.IsSVGElement()) + auto* current_element = DynamicTo<SVGElement>(current_node); + if (!current_element) break; - SVGElement& current_element = ToSVGElement(current_node); #if DCHECK_IS_ON() - DCHECK(!current_element.in_relative_length_clients_invalidation_); + DCHECK(!current_element->in_relative_length_clients_invalidation_); #endif - bool had_relative_lengths = current_element.HasRelativeLengths(); + bool had_relative_lengths = current_element->HasRelativeLengths(); if (client_has_relative_lengths) - current_element.elements_with_relative_lengths_.insert(client_element); + current_element->elements_with_relative_lengths_.insert(client_element); else - current_element.elements_with_relative_lengths_.erase(client_element); + current_element->elements_with_relative_lengths_.erase(client_element); // If the relative length state hasn't changed, we can stop propagating the // notification. - if (had_relative_lengths == current_element.HasRelativeLengths()) + if (had_relative_lengths == current_element->HasRelativeLengths()) return; - client_element = ¤t_element; + client_element = current_element; client_has_relative_lengths = client_element->HasRelativeLengths(); } @@ -620,7 +620,7 @@ SVGElement* SVGElement::viewportElement() const { ContainerNode* n = ParentOrShadowHostNode(); while (n) { if (IsSVGSVGElement(*n) || IsSVGImageElement(*n) || IsSVGSymbolElement(*n)) - return ToSVGElement(n); + return To<SVGElement>(n); n = n->ParentOrShadowHostNode(); } @@ -939,10 +939,11 @@ void SVGElement::SendSVGLoadEventToSelfAndAncestorChainIfPossible() { if (GetDocument().LoadEventFinished()) return; - if (!parent || !parent->IsSVGElement()) + auto* svg_element = DynamicTo<SVGElement>(parent); + if (!svg_element) return; - ToSVGElement(parent)->SendSVGLoadEventToSelfAndAncestorChainIfPossible(); + svg_element->SendSVGLoadEventToSelfAndAncestorChainIfPossible(); } void SVGElement::AttributeChanged(const AttributeModificationParams& params) { |