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

Side by Side Diff: third_party/WebKit/Source/core/dom/Element.cpp

Issue 2059163002: Schedule sibling invalidation sets for sibling insert/remove. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 6 months 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Peter Kelly (pmk@post.com) 4 * (C) 2001 Peter Kelly (pmk@post.com)
5 * (C) 2001 Dirk Mueller (mueller@kde.org) 5 * (C) 2001 Dirk Mueller (mueller@kde.org)
6 * (C) 2007 David Smith (catfish.man@gmail.com) 6 * (C) 2007 David Smith (catfish.man@gmail.com)
7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc. All rights reserved. 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc. All rights reserved.
8 * (C) 2007 Eric Seidel (eric@webkit.org) 8 * (C) 2007 Eric Seidel (eric@webkit.org)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 2074 matching lines...) Expand 10 before | Expand all | Expand 10 after
2085 if (!style || (styleAffectedByEmpty() && (!style->emptyState() || hasChildre n()))) 2085 if (!style || (styleAffectedByEmpty() && (!style->emptyState() || hasChildre n())))
2086 pseudoStateChanged(CSSSelector::PseudoEmpty); 2086 pseudoStateChanged(CSSSelector::PseudoEmpty);
2087 } 2087 }
2088 2088
2089 void Element::childrenChanged(const ChildrenChange& change) 2089 void Element::childrenChanged(const ChildrenChange& change)
2090 { 2090 {
2091 ContainerNode::childrenChanged(change); 2091 ContainerNode::childrenChanged(change);
2092 2092
2093 checkForEmptyStyleChange(); 2093 checkForEmptyStyleChange();
2094 if (!change.byParser && change.isChildElementChange()) 2094 if (!change.byParser && change.isChildElementChange())
2095 checkForSiblingStyleChanges(change.type == ElementRemoved ? SiblingEleme ntRemoved : SiblingElementInserted, change.siblingBeforeChange, change.siblingAf terChange); 2095 checkForSiblingStyleChanges(change.type == ElementRemoved ? SiblingEleme ntRemoved : SiblingElementInserted, change.siblingChanged, change.siblingBeforeC hange, change.siblingAfterChange);
2096 2096
2097 // TODO(hayato): Confirm that we can skip this if a shadow tree is v1. 2097 // TODO(hayato): Confirm that we can skip this if a shadow tree is v1.
2098 if (ElementShadow* shadow = this->shadow()) 2098 if (ElementShadow* shadow = this->shadow())
2099 shadow->setNeedsDistributionRecalc(); 2099 shadow->setNeedsDistributionRecalc();
2100 } 2100 }
2101 2101
2102 void Element::finishParsingChildren() 2102 void Element::finishParsingChildren()
2103 { 2103 {
2104 setIsFinishedParsingChildren(true); 2104 setIsFinishedParsingChildren(true);
2105 checkForEmptyStyleChange(); 2105 checkForEmptyStyleChange();
2106 checkForSiblingStyleChanges(FinishedParsingChildren, lastChild(), nullptr); 2106 checkForSiblingStyleChanges(FinishedParsingChildren, nullptr, lastChild(), n ullptr);
2107 } 2107 }
2108 2108
2109 #ifndef NDEBUG 2109 #ifndef NDEBUG
2110 void Element::formatForDebugger(char* buffer, unsigned length) const 2110 void Element::formatForDebugger(char* buffer, unsigned length) const
2111 { 2111 {
2112 StringBuilder result; 2112 StringBuilder result;
2113 String s; 2113 String s;
2114 2114
2115 result.append(nodeName()); 2115 result.append(nodeName());
2116 2116
(...skipping 1606 matching lines...) Expand 10 before | Expand all | Expand 10 after
3723 3723
3724 DEFINE_TRACE_WRAPPERS(Element) 3724 DEFINE_TRACE_WRAPPERS(Element)
3725 { 3725 {
3726 if (hasRareData()) { 3726 if (hasRareData()) {
3727 visitor->traceWrappers(elementRareData()); 3727 visitor->traceWrappers(elementRareData());
3728 } 3728 }
3729 ContainerNode::traceWrappers(visitor); 3729 ContainerNode::traceWrappers(visitor);
3730 } 3730 }
3731 3731
3732 } // namespace blink 3732 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698