Changeset 217599 in webkit
- Timestamp:
- May 31, 2017 5:18:24 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/editing/execCommand/justify-right-then-indent-with-problematic-body-expected.txt
r209756 r217599 1 1 Pass. 2 2 WebKit didn't Crash. 3 -
trunk/Source/WebCore/ChangeLog
r217594 r217599 1 2017-05-31 Emilio Cobos Álvarez <ecobos@igalia.com> 2 3 Use the rare data's RenderStyle for display: contents. 4 https://bugs.webkit.org/show_bug.cgi?id=172721 5 6 Reviewed by Antti Koivisto. 7 8 No new tests, no behavior change. 9 10 * dom/Element.cpp: 11 (WebCore::Element::hasDisplayContents): 12 (WebCore::Element::storeDisplayContentsStyle): 13 * dom/Element.h: 14 * dom/ElementRareData.h: 15 (WebCore::ElementRareData::ElementRareData): 16 * style/RenderTreeUpdater.cpp: 17 (WebCore::RenderTreeUpdater::updateElementRenderer): 18 * style/StyleTreeResolver.cpp: 19 (WebCore::Style::TreeResolver::resolveComposedTree): 20 1 21 2017-05-31 Per Arne Vollan <pvollan@apple.com> 2 22 -
trunk/Source/WebCore/dom/Element.cpp
r217576 r217599 1469 1469 bool Element::hasDisplayContents() const 1470 1470 { 1471 return hasRareData() && elementRareData()->hasDisplayContents(); 1472 } 1473 1474 void Element::setHasDisplayContents(bool value) 1475 { 1476 if (hasDisplayContents() == value) 1477 return; 1478 ensureElementRareData().setHasDisplayContents(value); 1471 if (renderer() || !hasRareData()) 1472 return false; 1473 const RenderStyle* style = elementRareData()->computedStyle(); 1474 return style && style->display() == CONTENTS; 1475 } 1476 1477 void Element::storeDisplayContentsStyle(std::unique_ptr<RenderStyle> style) 1478 { 1479 ASSERT(style && style->display() == CONTENTS); 1480 ASSERT(!renderer()); 1481 ensureElementRareData().setComputedStyle(WTFMove(style)); 1479 1482 } 1480 1483 -
trunk/Source/WebCore/dom/Element.h
r217576 r217599 545 545 546 546 bool hasDisplayContents() const; 547 void s etHasDisplayContents(bool);547 void storeDisplayContentsStyle(std::unique_ptr<RenderStyle>); 548 548 549 549 using ContainerNode::setAttributeEventListener; -
trunk/Source/WebCore/dom/ElementRareData.h
r217477 r217599 118 118 bool hasPendingResources() const { return m_hasPendingResources; } 119 119 void setHasPendingResources(bool has) { m_hasPendingResources = has; } 120 121 bool hasDisplayContents() const { return m_hasDisplayContents; }122 void setHasDisplayContents(bool value) { m_hasDisplayContents = value; }123 120 124 121 private: … … 142 139 unsigned m_childrenAffectedByBackwardPositionalRules : 1; 143 140 unsigned m_childrenAffectedByPropertyBasedBackwardPositionalRules : 1; 144 unsigned m_hasDisplayContents : 1;145 141 unsigned m_isNamedFlowContentElement : 1; 146 142 … … 186 182 , m_childrenAffectedByBackwardPositionalRules(false) 187 183 , m_childrenAffectedByPropertyBasedBackwardPositionalRules(false) 188 , m_hasDisplayContents(false)189 184 , m_isNamedFlowContentElement(false) 190 185 , m_regionOversetState(RegionUndefined) -
trunk/Source/WebCore/style/RenderTreeUpdater.cpp
r216631 r217599 270 270 bool hasDisplayContents = update.style->display() == CONTENTS; 271 271 if (hasDisplayContents != element.hasDisplayContents()) { 272 element.setHasDisplayContents(hasDisplayContents); 272 if (!hasDisplayContents) 273 element.resetComputedStyle(); 274 else 275 element.storeDisplayContentsStyle(RenderStyle::clonePtr(*update.style)); 273 276 // Render tree position needs to be recomputed as rendering siblings may be found from the display:contents subtree. 274 277 renderTreePosition().invalidateNextSibling(); -
trunk/Source/WebCore/style/StyleTreeResolver.cpp
r216631 r217599 422 422 bool shouldResolve = shouldResolveElement(element, parent.change) || affectedByPreviousSibling; 423 423 if (shouldResolve) { 424 element.resetComputedStyle(); 424 if (!element.hasDisplayContents()) 425 element.resetComputedStyle(); 425 426 element.resetStyleRelations(); 426 427
Note: See TracChangeset
for help on using the changeset viewer.