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

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

Issue 2752163003: Clear pseudoElement from ElementRareData when FirstLetterPseudoElement doesn't have a LayoutObject (Closed)
Patch Set: Created 3 years, 9 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. 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc.
8 * All rights reserved. 8 * All rights reserved.
9 * (C) 2007 Eric Seidel (eric@webkit.org) 9 * (C) 2007 Eric Seidel (eric@webkit.org)
10 * 10 *
(...skipping 2044 matching lines...) Expand 10 before | Expand all | Expand 10 after
2055 void Element::rebuildShadowRootLayoutTree() { 2055 void Element::rebuildShadowRootLayoutTree() {
2056 for (ShadowRoot* root = youngestShadowRoot(); root; 2056 for (ShadowRoot* root = youngestShadowRoot(); root;
2057 root = root->olderShadowRoot()) { 2057 root = root->olderShadowRoot()) {
2058 if (root->needsReattachLayoutTree() || root->childNeedsReattachLayoutTree()) 2058 if (root->needsReattachLayoutTree() || root->childNeedsReattachLayoutTree())
2059 root->rebuildLayoutTree(); 2059 root->rebuildLayoutTree();
2060 } 2060 }
2061 } 2061 }
2062 2062
2063 void Element::reattachPseudoElementLayoutTree(PseudoId pseudoId) { 2063 void Element::reattachPseudoElementLayoutTree(PseudoId pseudoId) {
2064 if (PseudoElement* element = pseudoElement(pseudoId)) { 2064 if (PseudoElement* element = pseudoElement(pseudoId)) {
2065 if (element->needsReattachLayoutTree() || 2065 if (pseudoId == PseudoIdFirstLetter &&
nainar 2017/03/17 23:47:40 Change as per discussed by esprehn@ and I in IRL:
2066 element->childNeedsReattachLayoutTree()) 2066 !FirstLetterPseudoElement::firstLetterTextLayoutObject(*element))
2067 elementRareData()->setPseudoElement(pseudoId, nullptr);
2068 else if (element->needsReattachLayoutTree() ||
esprehn 2017/04/06 00:08:59 I think we often add braces when things start to g
nainar 2017/04/06 00:20:45 Done.
2069 element->childNeedsReattachLayoutTree())
2067 element->rebuildLayoutTree(); 2070 element->rebuildLayoutTree();
2068 } else { 2071 } else {
2069 createPseudoElementIfNeeded(pseudoId); 2072 createPseudoElementIfNeeded(pseudoId);
2070 } 2073 }
2071 } 2074 }
2072 2075
2073 void Element::updateCallbackSelectors(const ComputedStyle* oldStyle, 2076 void Element::updateCallbackSelectors(const ComputedStyle* oldStyle,
2074 const ComputedStyle* newStyle) { 2077 const ComputedStyle* newStyle) {
2075 Vector<String> emptyVector; 2078 Vector<String> emptyVector;
2076 const Vector<String>& oldCallbackSelectors = 2079 const Vector<String>& oldCallbackSelectors =
(...skipping 2098 matching lines...) Expand 10 before | Expand all | Expand 10 after
4175 } 4178 }
4176 4179
4177 DEFINE_TRACE_WRAPPERS(Element) { 4180 DEFINE_TRACE_WRAPPERS(Element) {
4178 if (hasRareData()) { 4181 if (hasRareData()) {
4179 visitor->traceWrappers(elementRareData()); 4182 visitor->traceWrappers(elementRareData());
4180 } 4183 }
4181 ContainerNode::traceWrappers(visitor); 4184 ContainerNode::traceWrappers(visitor);
4182 } 4185 }
4183 4186
4184 } // namespace blink 4187 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698