Bug 213788

Summary: REGRESSION(r260276): Overflow scrolling layers misplaced inside SVG foreign object
Product: WebKit Reporter: Muhammet Olcay <olcaymhmmet>
Component: SVGAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: ap, cdumez, changseok, dino, esprehn+autocc, ews-watchlist, fmalita, fred.wang, glenn, gyuyoung.kim, kangil.han, kondapallykalyan, pdr, sabouhallawa, schenney, sergio, simon.fraser, thorton, webkit-bug-importer, wenson_hsieh, zalan, zimmermann
Priority: P2 Keywords: InRadar
Version: Safari 12   
Hardware: iPhone / iPad   
OS: iOS 13   
See Also: https://bugs.webkit.org/show_bug.cgi?id=23113
Attachments:
Description Flags
example view
none
Example Html
none
safari from simulator iphone 11
none
Patch none

Description Muhammet Olcay 2020-06-30 06:03:32 PDT
Created attachment 403191 [details]
example view

you can see difference between UIWebView and WKWebView svg rendering difference

broken html code part is;

<foreignObject x="24" y="175" width="327" height="120">
    <textarea readonly="" xmlns="http://www.w3.org/1999/xhtml" placeholder="Placeholder text will be display here."></textarea>
</foreignObject>

I faced that problem only when use textarea element in svg objects and I tested all iphone devices which is support version of wkwebview.

regards
Comment 1 Alexey Proskuryakov 2020-07-01 17:42:58 PDT
It looks like the WKWebView rendering is wrong. Can you reproduce this in Safari, and share the complete test case please?
Comment 2 Muhammet Olcay 2020-07-02 02:00:30 PDT
Created attachment 403354 [details]
Example Html
Comment 3 Muhammet Olcay 2020-07-02 03:19:28 PDT
Created attachment 403360 [details]
safari from simulator iphone 11

Hi Alexey,
I just added [https://bugs.webkit.org/attachment.cgi?id=403354] example html file for test case
Open that html file on mobile safari or wkwebview and you will face that problem instantly
Comment 4 Alexey Proskuryakov 2020-07-02 10:09:47 PDT
I get a different yet result from Safari on iOS 14 beta on iPhone 11 Pro. And even though Mac Safari looks good, Mac WebKit2 MiniBrowser does not. In MiniBrowser, I see that the textarea is absolutely positioned, but the text moves as I resize the window.

My guess would be different viewport handling between WKWebView and UIWebView, but CC'ing some experts.
Comment 5 Radar WebKit Bug Importer 2020-07-02 10:10:00 PDT
<rdar://problem/65039637>
Comment 6 Simon Fraser (smfr) 2020-07-09 20:59:42 PDT
This is basically bug 23113.
Comment 7 Simon Fraser (smfr) 2020-07-10 21:21:31 PDT
Created attachment 404042 [details]
Patch
Comment 8 zalan 2020-07-11 10:30:46 PDT
Comment on attachment 404042 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=404042&action=review

> Source/WebCore/dom/Document.h:1275
> +    bool mayHaveRenderedSVGForeignObjects() const { return m_mayHaveRenderedSVGForeignObjects; }
> +    void setMayHaveRenderedSVGForeignObjects() { m_mayHaveRenderedSVGForeignObjects = true; }

It's a pity though that we set this bit on the Document and the only client is the RenderLayer (while we always have a top level layer).
Comment 9 EWS 2020-07-11 10:55:05 PDT
Committed r264269: <https://trac.webkit.org/changeset/264269>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404042 [details].