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

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

Issue 2089063005: Schedule sibling invalidation sets for sibling insert/remove. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed minDirectAdjacent optimization. Created 4 years, 5 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 2073 matching lines...) Expand 10 before | Expand all | Expand 10 after
2084 if (!style || (styleAffectedByEmpty() && (!style->emptyState() || hasChildre n()))) 2084 if (!style || (styleAffectedByEmpty() && (!style->emptyState() || hasChildre n())))
2085 pseudoStateChanged(CSSSelector::PseudoEmpty); 2085 pseudoStateChanged(CSSSelector::PseudoEmpty);
2086 } 2086 }
2087 2087
2088 void Element::childrenChanged(const ChildrenChange& change) 2088 void Element::childrenChanged(const ChildrenChange& change)
2089 { 2089 {
2090 ContainerNode::childrenChanged(change); 2090 ContainerNode::childrenChanged(change);
2091 2091
2092 checkForEmptyStyleChange(); 2092 checkForEmptyStyleChange();
2093 if (!change.byParser && change.isChildElementChange()) 2093 if (!change.byParser && change.isChildElementChange())
2094 checkForSiblingStyleChanges(change.type == ElementRemoved ? SiblingEleme ntRemoved : SiblingElementInserted, change.siblingBeforeChange, change.siblingAf terChange); 2094 checkForSiblingStyleChanges(change.type == ElementRemoved ? SiblingEleme ntRemoved : SiblingElementInserted, change.siblingChanged, change.siblingBeforeC hange, change.siblingAfterChange);
2095 2095
2096 // TODO(hayato): Confirm that we can skip this if a shadow tree is v1. 2096 // TODO(hayato): Confirm that we can skip this if a shadow tree is v1.
2097 if (ElementShadow* shadow = this->shadow()) 2097 if (ElementShadow* shadow = this->shadow())
2098 shadow->setNeedsDistributionRecalc(); 2098 shadow->setNeedsDistributionRecalc();
2099 } 2099 }
2100 2100
2101 void Element::finishParsingChildren() 2101 void Element::finishParsingChildren()
2102 { 2102 {
2103 setIsFinishedParsingChildren(true); 2103 setIsFinishedParsingChildren(true);
2104 checkForEmptyStyleChange(); 2104 checkForEmptyStyleChange();
2105 checkForSiblingStyleChanges(FinishedParsingChildren, lastChild(), nullptr); 2105 checkForSiblingStyleChanges(FinishedParsingChildren, nullptr, lastChild(), n ullptr);
2106 } 2106 }
2107 2107
2108 #ifndef NDEBUG 2108 #ifndef NDEBUG
2109 void Element::formatForDebugger(char* buffer, unsigned length) const 2109 void Element::formatForDebugger(char* buffer, unsigned length) const
2110 { 2110 {
2111 StringBuilder result; 2111 StringBuilder result;
2112 String s; 2112 String s;
2113 2113
2114 result.append(nodeName()); 2114 result.append(nodeName());
2115 2115
(...skipping 1606 matching lines...) Expand 10 before | Expand all | Expand 10 after
3722 3722
3723 DEFINE_TRACE_WRAPPERS(Element) 3723 DEFINE_TRACE_WRAPPERS(Element)
3724 { 3724 {
3725 if (hasRareData()) { 3725 if (hasRareData()) {
3726 visitor->traceWrappers(elementRareData()); 3726 visitor->traceWrappers(elementRareData());
3727 } 3727 }
3728 ContainerNode::traceWrappers(visitor); 3728 ContainerNode::traceWrappers(visitor);
3729 } 3729 }
3730 3730
3731 } // namespace blink 3731 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/ContainerNode.cpp ('k') | third_party/WebKit/Source/core/dom/Node.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698