Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: third_party/WebKit/Source/core/svg/SVGElement.cpp

Issue 1511523002: Align HTMLImageElement relevant mutations to spec (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix removal issue when a text node is between <source> and <img> Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde .org> 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde .org>
3 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org>
4 * Copyright (C) 2008 Apple Inc. All rights reserved. 4 * Copyright (C) 2008 Apple Inc. All rights reserved.
5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> 5 * Copyright (C) 2008 Alp Toker <alp@atoker.com>
6 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> 6 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 } 283 }
284 284
285 Node::InsertionNotificationRequest SVGElement::insertedInto(ContainerNode* rootP arent) 285 Node::InsertionNotificationRequest SVGElement::insertedInto(ContainerNode* rootP arent)
286 { 286 {
287 Element::insertedInto(rootParent); 287 Element::insertedInto(rootParent);
288 updateRelativeLengthsInformation(); 288 updateRelativeLengthsInformation();
289 buildPendingResourcesIfNeeded(); 289 buildPendingResourcesIfNeeded();
290 return InsertionDone; 290 return InsertionDone;
291 } 291 }
292 292
293 void SVGElement::removedFrom(ContainerNode* rootParent) 293 void SVGElement::removedFrom(ContainerNode* rootParent, Node* next)
294 { 294 {
295 bool wasInDocument = rootParent->inDocument(); 295 bool wasInDocument = rootParent->inDocument();
296 296
297 if (wasInDocument && hasRelativeLengths()) { 297 if (wasInDocument && hasRelativeLengths()) {
298 // The root of the subtree being removed should take itself out from its parent's relative 298 // The root of the subtree being removed should take itself out from its parent's relative
299 // length set. For the other nodes in the subtree we don't need to do an ything: they will 299 // length set. For the other nodes in the subtree we don't need to do an ything: they will
300 // get their own removedFrom() notification and just clear their sets. 300 // get their own removedFrom() notification and just clear their sets.
301 if (rootParent->isSVGElement() && !parentNode()) { 301 if (rootParent->isSVGElement() && !parentNode()) {
302 ASSERT(toSVGElement(rootParent)->m_elementsWithRelativeLengths.conta ins(this)); 302 ASSERT(toSVGElement(rootParent)->m_elementsWithRelativeLengths.conta ins(this));
303 toSVGElement(rootParent)->updateRelativeLengthsInformation(false, th is); 303 toSVGElement(rootParent)->updateRelativeLengthsInformation(false, th is);
304 } 304 }
305 305
306 m_elementsWithRelativeLengths.clear(); 306 m_elementsWithRelativeLengths.clear();
307 } 307 }
308 308
309 ASSERT_WITH_SECURITY_IMPLICATION(!rootParent->isSVGElement() || !toSVGElemen t(rootParent)->m_elementsWithRelativeLengths.contains(this)); 309 ASSERT_WITH_SECURITY_IMPLICATION(!rootParent->isSVGElement() || !toSVGElemen t(rootParent)->m_elementsWithRelativeLengths.contains(this));
310 310
311 Element::removedFrom(rootParent); 311 Element::removedFrom(rootParent, next);
312 312
313 if (wasInDocument) { 313 if (wasInDocument) {
314 rebuildAllIncomingReferences(); 314 rebuildAllIncomingReferences();
315 removeAllIncomingReferences(); 315 removeAllIncomingReferences();
316 } 316 }
317 317
318 invalidateInstances(); 318 invalidateInstances();
319 } 319 }
320 320
321 void SVGElement::childrenChanged(const ChildrenChange& change) 321 void SVGElement::childrenChanged(const ChildrenChange& change)
(...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after
1188 Element::trace(visitor); 1188 Element::trace(visitor);
1189 } 1189 }
1190 1190
1191 const AtomicString& SVGElement::eventParameterName() 1191 const AtomicString& SVGElement::eventParameterName()
1192 { 1192 {
1193 DEFINE_STATIC_LOCAL(const AtomicString, evtString, ("evt", AtomicString::Con structFromLiteral)); 1193 DEFINE_STATIC_LOCAL(const AtomicString, evtString, ("evt", AtomicString::Con structFromLiteral));
1194 return evtString; 1194 return evtString;
1195 } 1195 }
1196 1196
1197 } // namespace blink 1197 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698