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

Changeset 287834 in webkit


Ignore:
Timestamp:
Jan 10, 2022, 5:10:42 AM (5 years ago)
Author:
Nikolas Zimmermann
Message:

[LBSE] Begin layer-aware RenderSVGRect implementation
https://bugs.webkit.org/show_bug.cgi?id=234992

Reviewed by Rob Buis.

Create RenderSVGRect as copy of LegacyRenderSVGRect, inheriting from
RenderSVGShape (and thus RenderLayerModelObject) instead of
LegacyRenderSVGShape, as LegacyRenderSVGRect does.

This patch does not yet enable the creation of RenderSVGRect
renderers if LBSE is enabled, this is postponed until more
functionality is fully available in LBSE (such as layout!).

Covered by existing tests, no change in behaviour.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/svg/LegacyRenderSVGModelObject.cpp:

(WebCore::LegacyRenderSVGModelObject::clippedOverflowRect const):
(WebCore::LegacyRenderSVGModelObject::nodeAtPoint):

  • rendering/svg/RenderSVGRect.cpp: Added.

(WebCore::RenderSVGRect::RenderSVGRect):
(WebCore::RenderSVGRect::rectElement const):
(WebCore::RenderSVGRect::updateShapeFromElement):
(WebCore::RenderSVGRect::fillShape const):
(WebCore::RenderSVGRect::strokeShape const):
(WebCore::RenderSVGRect::shapeDependentStrokeContains):
(WebCore::RenderSVGRect::shapeDependentFillContains const):
(WebCore::RenderSVGRect::isRenderingDisabled const):

  • rendering/svg/RenderSVGRect.h: Added.
  • rendering/svg/SVGResources.cpp:
  • svg/SVGRectElement.cpp:

(WebCore::SVGRectElement::createElementRenderer):

Location:
trunk/Source/WebCore
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r287832 r287834  
     12022-01-10  Nikolas Zimmermann  <nzimmermann@igalia.com>
     2
     3        [LBSE] Begin layer-aware RenderSVGRect implementation
     4        https://bugs.webkit.org/show_bug.cgi?id=234992
     5
     6        Reviewed by Rob Buis.
     7
     8        Create RenderSVGRect as copy of LegacyRenderSVGRect, inheriting from
     9        RenderSVGShape (and thus RenderLayerModelObject) instead of
     10        LegacyRenderSVGShape, as LegacyRenderSVGRect does.
     11
     12        This patch does not yet enable the creation of RenderSVGRect
     13        renderers if LBSE is enabled, this is postponed until more
     14        functionality is fully available in LBSE (such as layout!).
     15
     16        Covered by existing tests, no change in behaviour.
     17
     18        * Sources.txt:
     19        * WebCore.xcodeproj/project.pbxproj:
     20        * rendering/svg/LegacyRenderSVGModelObject.cpp:
     21        (WebCore::LegacyRenderSVGModelObject::clippedOverflowRect const):
     22        (WebCore::LegacyRenderSVGModelObject::nodeAtPoint):
     23        * rendering/svg/RenderSVGRect.cpp: Added.
     24        (WebCore::RenderSVGRect::RenderSVGRect):
     25        (WebCore::RenderSVGRect::rectElement const):
     26        (WebCore::RenderSVGRect::updateShapeFromElement):
     27        (WebCore::RenderSVGRect::fillShape const):
     28        (WebCore::RenderSVGRect::strokeShape const):
     29        (WebCore::RenderSVGRect::shapeDependentStrokeContains):
     30        (WebCore::RenderSVGRect::shapeDependentFillContains const):
     31        (WebCore::RenderSVGRect::isRenderingDisabled const):
     32        * rendering/svg/RenderSVGRect.h: Added.
     33        * rendering/svg/SVGResources.cpp:
     34        * svg/SVGRectElement.cpp:
     35        (WebCore::SVGRectElement::createElementRenderer):
     36
    1372022-01-10  Nikolas Zimmermann  <nzimmermann@igalia.com>
    238
  • trunk/Source/WebCore/Sources.txt

    r287832 r287834  
    24942494rendering/svg/RenderSVGResourceRadialGradient.cpp
    24952495rendering/svg/RenderSVGResourceSolidColor.cpp
     2496rendering/svg/RenderSVGRect.cpp
    24962497rendering/svg/RenderSVGRoot.cpp
    24972498rendering/svg/RenderSVGShape.cpp
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r287832 r287834  
    32733273                A104F24414C71F7A009E2C23 /* CachedSVGDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = A104F24214C71F7A009E2C23 /* CachedSVGDocument.h */; settings = {ATTRIBUTES = (Private, ); }; };
    32743274                A10BB5851484E3A700B2E87A /* LegacyRenderSVGRect.h in Headers */ = {isa = PBXBuildFile; fileRef = A10BB5831484E3A700B2E87A /* LegacyRenderSVGRect.h */; };
     3275                A10BB5851484E3A700B3AB6D /* RenderSVGRect.h in Headers */ = {isa = PBXBuildFile; fileRef = A10BB5831484E3A700B3AB6D /* RenderSVGRect.h */; };
    32753276                A10BB58B1484E3B300B2E87A /* LegacyRenderSVGShape.h in Headers */ = {isa = PBXBuildFile; fileRef = A10BB5891484E3B300B2E87A /* LegacyRenderSVGShape.h */; };
    32763277                A10BB58B1484E3B300C3F77B /* RenderSVGShape.h in Headers */ = {isa = PBXBuildFile; fileRef = A10BB5891484E3B300C3F77B /* RenderSVGShape.h */; };
     
    1338013381                A104F24214C71F7A009E2C23 /* CachedSVGDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedSVGDocument.h; sourceTree = "<group>"; };
    1338113382                A10BB5821484E3A700B2E87A /* LegacyRenderSVGRect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyRenderSVGRect.cpp; sourceTree = "<group>"; };
     13383                A10BB5821484E3A700B3AB6D /* RenderSVGRect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGRect.cpp; sourceTree = "<group>"; };
    1338213384                A10BB5831484E3A700B2E87A /* LegacyRenderSVGRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyRenderSVGRect.h; sourceTree = "<group>"; };
     13385                A10BB5831484E3A700B3AB6D /* RenderSVGRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGRect.h; sourceTree = "<group>"; };
    1338313386                A10BB5881484E3B300B2E87A /* LegacyRenderSVGShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyRenderSVGShape.cpp; sourceTree = "<group>"; };
    1338413387                A10CC5881473E3B300B2A8BF /* RenderSVGShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGShape.cpp; sourceTree = "<group>"; };
     
    1894618949                                ADDF1AD41257CD9A0003A759 /* RenderSVGPath.cpp */,
    1894718950                                ADDF1AD51257CD9A0003A759 /* RenderSVGPath.h */,
     18951                                A10BB5821484E3A700B3AB6D /* RenderSVGRect.cpp */,
     18952                                A10BB5831484E3A700B3AB6D /* RenderSVGRect.h */,
    1894818953                                4367088D12D9CA4A00044234 /* RenderSVGResource.cpp */,
    1894918954                                4367088E12D9CA4A00044234 /* RenderSVGResource.h */,
     
    3674036745                                43670C9342D9BC4B00044234 /* RenderSVGModelObject.h in Headers */,
    3674136746                                ADDF1AD71257CD9A0003A759 /* RenderSVGPath.h in Headers */,
     36747                                A10BB5851484E3A700B3AB6D /* RenderSVGRect.h in Headers */,
    3674236748                                436708CD12D9CA4B00044234 /* RenderSVGResource.h in Headers */,
    3674336749                                436708CF12D9CA4B00044234 /* RenderSVGResourceClipper.h in Headers */,
  • trunk/Source/WebCore/rendering/svg/LegacyRenderSVGModelObject.cpp

    r287677 r287834  
    5252}
    5353
    54 LayoutRect LegacyRenderSVGModelObject::clippedOverflowRect(const RenderLayerModelObject* repaintContainer, VisibleRectContext context) const
     54LayoutRect LegacyRenderSVGModelObject::clippedOverflowRect(const RenderLayerModelObject* repaintContainer, VisibleRectContext) const
    5555{
    56 #if ENABLE(LAYER_BASED_SVG_ENGINE)
    57     if (document().settings().layerBasedSVGEngineEnabled()) {
    58         if (style().visibility() != Visibility::Visible && !enclosingLayer()->hasVisibleContent())
    59             return LayoutRect();
    60 
    61         ASSERT(!view().frameView().layoutContext().isPaintOffsetCacheEnabled());
    62         return computeRect(visualOverflowRectEquivalent(), repaintContainer, context);
    63     }
    64 #else
    65     UNUSED_PARAM(context);
    66 #endif
    67 
    6856    return SVGRenderSupport::clippedOverflowRectForRepaint(*this, repaintContainer);
    6957}
     
    127115bool LegacyRenderSVGModelObject::nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation&, const LayoutPoint&, HitTestAction)
    128116{
    129 #if ENABLE(LAYER_BASED_SVG_ENGINE)
    130     if (document().settings().layerBasedSVGEngineEnabled()) {
    131         // FIXME: [LBSE] Upstream LegacyRenderSVGModelObject inheritance changes (should inherit from RenderLayerModelObject).
    132         notImplemented();
    133         return false;
    134     }
    135 #endif
    136 
    137117    ASSERT_NOT_REACHED();
    138118    return false;
  • trunk/Source/WebCore/rendering/svg/SVGResources.cpp

    r287232 r287834  
    2424#include "LegacyRenderSVGRoot.h"
    2525#include "PathOperation.h"
    26 #include "RenderSVGResourceClipper.h"
    27 #include "RenderSVGResourceFilter.h"
     26#include "RenderSVGResourceClipperInlines.h"
     27#include "RenderSVGResourceFilterInlines.h"
    2828#include "RenderSVGResourceMarkerInlines.h"
    2929#include "RenderSVGResourceMaskerInlines.h"
  • trunk/Source/WebCore/svg/SVGRectElement.cpp

    r287743 r287834  
    2525
    2626#include "LegacyRenderSVGRect.h"
     27#include "RenderSVGRect.h"
    2728#include "RenderSVGResource.h"
    2829#include "SVGElementInlines.h"
     
    8990RenderPtr<RenderElement> SVGRectElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
    9091{
     92    // FIXME: [LBSE] Upstream enough code to allow the creation of RenderLayerModelObject based SVG renderers.
     93#if ENABLE(LAYER_BASED_SVG_ENGINE)
     94    if (false && document().settings().layerBasedSVGEngineEnabled())
     95        return createRenderer<RenderSVGRect>(*this, WTFMove(style));
     96#endif
     97
    9198    return createRenderer<LegacyRenderSVGRect>(*this, WTFMove(style));
    9299}
Note: See TracChangeset for help on using the changeset viewer.