Bug 236077

Summary: [LBSE] Handle RenderSVGShape in SVGRenderSupport::applyStrokeStyleToContext()
Product: WebKit Reporter: Nikolas Zimmermann <zimmermann>
Component: SVGAssignee: Nikolas Zimmermann <zimmermann>
Status: RESOLVED FIXED    
Severity: Normal CC: changseok, darin, dino, esprehn+autocc, ews-watchlist, fmalita, glenn, gyuyoung.kim, kondapallykalyan, pdr, rbuis, sabouhallawa, schenney, sergio, webkit-bug-importer, zimmermann
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 90738    
Attachments:
Description Flags
Patch, v1 darin: review+, ews-feeder: commit-queue-

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>