Created attachment 470332 [details] Screenshot of reproduction SUMMARY: Using the old WebView class, elements with 3D transforms do not repaint when their size changes programmatically. STEPS TO REPRODUCE: 1. Create an app that uses an WebView (the pre-WKWebView one) 2. Have code like: <div id="elm" style="transform: rotateY(0deg); height: 100px; width: 100px; background-color:#ccc"></div> <script> window.setTimeout(function() { elm.style.height = "10px"; }, 1000); </script> EXPECTED RESULTS: The height of the div should change from 100px to 10px after one second. ACTUAL RESULTS: It does not change, the div continues to look like it is 100px. (If you do certain things that trigger a repaint though (like click in the webview), you will eventually see it.) FILES: I have attached a screenshot comparing WebView(Legacy) and WKWebView, along with an Xcode project that reproduces the problem. NOTES: - This is a *regression* in macOS 14.4. - It does not occur in macOS 14.3. - It does not occur with WKWebViews. - It does not occur if you remove the 'transform: rotateY(0deg)' style. HARM: This affects all users of Tumult Hype: http://tumult.com/hype/. Resizing elements is a critical function of the application!
Created attachment 470333 [details] Reproduction Xcode project
<rdar://problem/124564409>
This only happens if the layer has no painted content; putting a in the div works around the bug. Nothing seems to trigger a compositing update.
Probably a regression from bug 84393.
Pull request: https://github.com/WebKit/WebKit/pull/27589
Committed 277850@main (1d9888c85e20): <https://commits.webkit.org/277850@main> Reviewed commits have been landed. Closing PR #27589 and removing active labels.
I'm still able to reproduce this bug. Please see the attached video '270898-still-repro.mov'. I downloaded the 278547@main webkit nightly, removed the quarantine bits, and set the DYLD_FRAMEWORK_PATH to the Release folder path. I added an NSLog to look at the com.apple.WebKit and verify I was in fact linked against a different framework. If my setup in doing this is wrong please let me know. How did you verify the fix? (Side note: I changed the delay in the RenderBug.html file to 3 seconds instead of 1 second -- there was something in the WKWebView load that must have tickled it to re-render within this time when linked against the nightly. When at 3s, the bug still reproduces when it should not.)
Created attachment 471332 [details] 270898-still-repro.mov