⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 283441 in webkit


Ignore:
Timestamp:
Oct 2, 2021, 6:40:20 AM (5 years ago)
Author:
cathiechen
Message:

[Performance] Optimize RenderLayer::establishesTopLayer
https://bugs.webkit.org/show_bug.cgi?id=231016

Reviewed by Simon Fraser.

This patch added isInTopLayerOrBackdrop to reduce the times of calling renderer().element() in RenderLayer::establishesTopLayer.
And isInTopLayerOrBackdrop can be shared in Adjuster.

  • dom/Element.h:

(WebCore::isInTopLayerOrBackdrop):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::establishesTopLayer const):

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjust const):
(WebCore::Style::Adjuster::adjustDisplayContentsStyle const):

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r283440 r283441  
     12021-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
    1192021-10-02  Alan Bujtas  <zalan@apple.com>
    220
  • trunk/Source/WebCore/dom/Element.h

    r282628 r283441  
    3030#include "FocusOptions.h"
    3131#include "HTMLNames.h"
     32#include "RenderStyle.h"
    3233#include "ScrollTypes.h"
    3334#include "ShadowRootInit.h"
     
    872873}
    873874
     875inline bool isInTopLayerOrBackdrop(const RenderStyle& style, const Element* element)
     876{
     877    return (element && element->isInTopLayer()) || style.styleType() == PseudoId::Backdrop;
     878}
     879
    874880} // namespace WebCore
    875881
  • trunk/Source/WebCore/rendering/RenderLayer.cpp

    r283354 r283441  
    39823982bool RenderLayer::establishesTopLayer() const
    39833983{
    3984     if (!renderer().element())
    3985         return renderer().style().styleType() == PseudoId::Backdrop;
    3986 
    3987     return renderer().element()->isInTopLayer();
     3984    return isInTopLayerOrBackdrop(renderer().style(), renderer().element());
    39883985}
    39893986
  • trunk/Source/WebCore/style/StyleAdjuster.cpp

    r283269 r283441  
    317317        // Top layer elements are always position: absolute; unless the position is set to fixed.
    318318        // 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);
    320320        if (style.position() != PositionType::Absolute && style.position() != PositionType::Fixed && isInTopLayer)
    321321            style.setPosition(PositionType::Absolute);
     
    597597void Adjuster::adjustDisplayContentsStyle(RenderStyle& style) const
    598598{
    599     bool isInTopLayer = style.styleType() == PseudoId::Backdrop || (m_element && m_element->isInTopLayer());
     599    bool isInTopLayer = isInTopLayerOrBackdrop(style, m_element);
    600600    if (isInTopLayer || m_document.documentElement() == m_element) {
    601601        style.setEffectiveDisplay(DisplayType::Block);
Note: See TracChangeset for help on using the changeset viewer.