Bug 210544

Summary: TextureMapper renders video element with "object-fit: cover" incorrectly
Product: WebKit Reporter: Tomoki Imai <tomoki.imai>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: aboya, bugs-noreply, cmarcelo, don.olmstead, ews-watchlist, gyuyoung.kim, kondapallykalyan, luiz, mcatanzaro, noam, ryuan.choi, sergio, zan, zeno
Priority: P2    
Version: WebKit Nightly Build   
Hardware: PC   
OS: Linux   
See Also: https://bugs.webkit.org/show_bug.cgi?id=52103
https://bugs.webkit.org/show_bug.cgi?id=177536
https://bugs.webkit.org/show_bug.cgi?id=163528
https://bugs.webkit.org/show_bug.cgi?id=210787
Attachments:
Description Flags
patch none

Description Tomoki Imai 2020-04-15 05:47:29 PDT
WebKitGTK with AC mode renders compositing/video/video-object-fit.html incorrectly.
The video layer spill outside of the box when "object-fit:cover" is specified.

We need to propagate GraphicsLayer::contentsClippingRect (see bug 52103) to TextureMapper.
Comment 1 Tomoki Imai 2020-04-15 05:50:28 PDT
Created attachment 396522 [details]
patch
Comment 2 Tomoki Imai 2020-04-15 05:55:45 PDT
Unfortunately compositing/video/video-object-fit.html is disabled due to bug 177536  and bug 163528.
It might be better to re-enabled it again if possible.
Comment 3 Tomoki Imai 2020-04-15 23:55:19 PDT
I tried to enable compositing/video/video-object-fit.html test in GTK, it doesn't crash for several run-webkit-tests.
But instead of crash, I see some text diff failure.
Where does "(anchor 0.00 0.00)" come from?

--- /app/webkit/WebKitBuild/Release/layout-test-results/compositing/video/video-object-fit-expected.txt
+++ /app/webkit/WebKitBuild/Release/layout-test-results/compositing/video/video-object-fit-actual.txt
@@ -1,5 +1,6 @@
-   
+        
 (GraphicsLayer
+  (anchor 0.00 0.00)
   (bounds 785.00 775.00)
   (children 1
     (GraphicsLayer
Comment 4 Zan Dobersek 2020-04-16 00:00:56 PDT
(In reply to Tomoki Imai from comment #3)
> I tried to enable compositing/video/video-object-fit.html test in GTK, it
> doesn't crash for several run-webkit-tests.
> But instead of crash, I see some text diff failure.
> Where does "(anchor 0.00 0.00)" come from?
> 
> ---
> /app/webkit/WebKitBuild/Release/layout-test-results/compositing/video/video-
> object-fit-expected.txt
> +++
> /app/webkit/WebKitBuild/Release/layout-test-results/compositing/video/video-
> object-fit-actual.txt
> @@ -1,5 +1,6 @@
> -   
> +        
>  (GraphicsLayer
> +  (anchor 0.00 0.00)
>    (bounds 785.00 775.00)
>    (children 1
>      (GraphicsLayer

It's just an extra parameter that's reported for the GraphicsLayer state, compared to the current -expected.txt baseline. It's not incorrect, but the -expected.txt file will require rebaselining.
Comment 5 Zan Dobersek 2020-04-16 00:01:40 PDT
Comment on attachment 396522 [details]
patch

Please do the rebaselining of the relevant test in a follow-up patch.
Comment 6 EWS 2020-04-16 00:11:46 PDT
Committed r260174: <https://trac.webkit.org/changeset/260174>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396522 [details].
Comment 7 Tomoki Imai 2020-04-16 00:24:44 PDT
Thanks for your review!
I will try to re-enable compositing/video/video-object-fit.html and re-baselining in bug 177536 or bug 163528