Bug 236077 - [LBSE] Handle RenderSVGShape in SVGRenderSupport::applyStrokeStyleToContext()
Summary: [LBSE] Handle RenderSVGShape in SVGRenderSupport::applyStrokeStyleToContext()
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: SVG (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nikolas Zimmermann
URL:
Keywords: InRadar
Depends on:
Blocks: 90738
  Show dependency treegraph
 
Reported: 2022-02-03 04:59 PST by Nikolas Zimmermann
Modified: 2022-02-05 15:43 PST (History)
16 users (show)

See Also:


Attachments
Patch, v1 (2.27 KB, patch)
2022-02-03 05:03 PST, Nikolas Zimmermann
darin: review+
ews-feeder: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Nikolas Zimmermann 2022-02-03 04:59:42 PST
[LBSE] Handle RenderSVGShape in SVGRenderSupport::applyStrokeStyleToContext()
Comment 1 Nikolas Zimmermann 2022-02-03 05:03:37 PST
Created attachment 450763 [details]
Patch, v1
Comment 2 Darin Adler 2022-02-03 05:10:06 PST
Comment on attachment 450763 [details]
Patch, v1

Checking in untested code is worrisome but I trust this will be tested once we switch on this new engine
Comment 3 Nikolas Zimmermann 2022-02-05 15:21:43 PST
(In reply to Darin Adler from comment #2)
> Comment on attachment 450763 [details]
> Patch, v1
> 
> Checking in untested code is worrisome but I trust this will be tested once
> we switch on this new engine

Thanks a lot Darin, it's highly appreciated!

I do hope things come in place soon that it makes sense to start running tests with LBSE enabled. When enough is upstreamed, so that first tests have a chance to pass we should talk about the best way to run LBSE enable builds/tests.

A possible solution is to deploy dedicated EWS workers that run with --layer-based-svg-engine -- would be easy to setup for Igalia folks for WPE/Gtk. Does that work for Apple too?

In the short-term feature, I plan to introduce a decision logic which selectively turns on LBSE if a given SVG document fragment adheres to certain criteria (e.g. no text/images in document, no clipping, etc.). This allows us to bring up LBSE in parallel to using legacy SVG as fallback and get test coverage early on -- simple documents would be rendered using LBSE, more complex ones with the legacy engine. This should hopefully address your concerns :-)

If you wonder about the current status of the work:

I will post a minimal patch series soon that will enable <rect> painting in LBSE. No container support yet, therefore only direct <rect> children of the outermost <svg> element can be painted -- a basic set of features to start with on purpose. Besides the lack of containers and other SVG primitives, there is no transform support yet: CSS/SVG transform integration with RenderLayer(Backing) is left out on purpose, as it can be introduced as separated patch series. 

After containers and (2D) transform support is in-place, we're only a few steps away before it finally makes sense to enable testing and before we can replace 'rely on trust' by 'rely on test progressions' :-)
Comment 4 Nikolas Zimmermann 2022-02-05 15:42:51 PST
Committed r289163 (246859@trunk): <https://commits.webkit.org/246859@trunk>
Comment 5 Radar WebKit Bug Importer 2022-02-05 15:43:18 PST
<rdar://problem/88531964>