Changeset 283441 in webkit
- Timestamp:
- Oct 2, 2021, 6:40:20 AM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
dom/Element.h (modified) (2 diffs)
-
rendering/RenderLayer.cpp (modified) (1 diff)
-
style/StyleAdjuster.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r283440 r283441 1 2021-10-02 Cathie Chen <cathiechen@igalia.com> 2 3 [Performance] Optimize RenderLayer::establishesTopLayer 4 https://bugs.webkit.org/show_bug.cgi?id=231016 5 6 Reviewed by Simon Fraser. 7 8 This patch added isInTopLayerOrBackdrop to reduce the times of calling renderer().element() in RenderLayer::establishesTopLayer. 9 And isInTopLayerOrBackdrop can be shared in Adjuster. 10 11 * dom/Element.h: 12 (WebCore::isInTopLayerOrBackdrop): 13 * rendering/RenderLayer.cpp: 14 (WebCore::RenderLayer::establishesTopLayer const): 15 * style/StyleAdjuster.cpp: 16 (WebCore::Style::Adjuster::adjust const): 17 (WebCore::Style::Adjuster::adjustDisplayContentsStyle const): 18 1 19 2021-10-02 Alan Bujtas <zalan@apple.com> 2 20 -
trunk/Source/WebCore/dom/Element.h
r282628 r283441 30 30 #include "FocusOptions.h" 31 31 #include "HTMLNames.h" 32 #include "RenderStyle.h" 32 33 #include "ScrollTypes.h" 33 34 #include "ShadowRootInit.h" … … 872 873 } 873 874 875 inline bool isInTopLayerOrBackdrop(const RenderStyle& style, const Element* element) 876 { 877 return (element && element->isInTopLayer()) || style.styleType() == PseudoId::Backdrop; 878 } 879 874 880 } // namespace WebCore 875 881 -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r283354 r283441 3982 3982 bool RenderLayer::establishesTopLayer() const 3983 3983 { 3984 if (!renderer().element()) 3985 return renderer().style().styleType() == PseudoId::Backdrop; 3986 3987 return renderer().element()->isInTopLayer(); 3984 return isInTopLayerOrBackdrop(renderer().style(), renderer().element()); 3988 3985 } 3989 3986 -
trunk/Source/WebCore/style/StyleAdjuster.cpp
r283269 r283441 317 317 // Top layer elements are always position: absolute; unless the position is set to fixed. 318 318 // https://fullscreen.spec.whatwg.org/#new-stacking-layer 319 bool isInTopLayer = style.styleType() == PseudoId::Backdrop || (m_element && m_element->isInTopLayer());319 bool isInTopLayer = isInTopLayerOrBackdrop(style, m_element); 320 320 if (style.position() != PositionType::Absolute && style.position() != PositionType::Fixed && isInTopLayer) 321 321 style.setPosition(PositionType::Absolute); … … 597 597 void Adjuster::adjustDisplayContentsStyle(RenderStyle& style) const 598 598 { 599 bool isInTopLayer = style.styleType() == PseudoId::Backdrop || (m_element && m_element->isInTopLayer());599 bool isInTopLayer = isInTopLayerOrBackdrop(style, m_element); 600 600 if (isInTopLayer || m_document.documentElement() == m_element) { 601 601 style.setEffectiveDisplay(DisplayType::Block);
Note:
See TracChangeset
for help on using the changeset viewer.