WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
246844
REGRESSION(cairo 1.17.6)[WinCairo] rendering glitches of twitter.com and yahoo.co.jp
https://bugs.webkit.org/show_bug.cgi?id=246844
Summary
REGRESSION(cairo 1.17.6)[WinCairo] rendering glitches of twitter.com and yaho...
Fujii Hironori
Reported
2022-10-20 20:40:05 PDT
[WinCairo] some text aren't painted in 150% page zoom scale factor in twitter
https://twitter.com/PlayStation_jp/status/1582356592640475136
https://twitter.com/AppleMusicJapan/status/1581977079276789761
https://twitter.com/NiziU__official/status/1583276886855192577
Changing the page zoom scale factor resolved the problem. It seems that this issue is happening for tweets containing Japanese text, English texts and an image.
Attachments
Patch to disable async image decoding
(3.95 KB, patch)
2022-10-27 22:03 PDT
,
Fujii Hironori
no flags
Details
Formatted Diff
Diff
test case
(179 bytes, text/html)
2022-10-30 17:48 PDT
,
Fujii Hironori
no flags
Details
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Fujii Hironori
Comment 1
2022-10-20 20:41:27 PDT
This seems a regression between the following revision range: WinCairo
254165@main
OK WinCairo
254443@main
Bad
Fujii Hironori
Comment 2
2022-10-20 22:25:07 PDT
This issue seems reproducible in
https://www.yahoo.co.jp/
. 1. Start WinCairo MiniBrowser with 150% page zoom. WinCairo MiniBrowser adjusts the initial page zoom because it doesn't support device scale factor. If you use 150% DPI display, WinCairo MiniBrowser uses 150% page zoom by default. 2. Load
https://www.yahoo.co.jp/
3. Moving the cursor on the page while scrolling the page with the mouse wheel.
Fujii Hironori
Comment 3
2022-10-20 23:12:04 PDT
Both twitter.com and yahoo.co.jp issues are reproducible with WinCairo WK1.
Fujii Hironori
Comment 4
2022-10-21 01:16:16 PDT
This is not a WebKit regression. WebKitRequirementsWin64.zip v2022.03.05 cairo.dll works fine. v2022.09.06 and v2022.10.20 has this bug.
Fujii Hironori
Comment 5
2022-10-21 14:23:16 PDT
I built Cairo with Meson locally. Cairo 1.17.4: Good Cairo 1.17.6: Bad Cairo latest (2cfd08664): Bad This seems like a Cairo 1.17.6 regression. I'm going to bisect.
Fujii Hironori
Comment 6
2022-10-23 21:40:55 PDT
This is happening after the following commit. atomic: Add support for WIN32 atomic operations (cd2b91c6) · Commits · cairo / cairo · GitLab
https://gitlab.freedesktop.org/cairo/cairo/-/commit/cd2b91c62ea74f6448a8a5cff5dd316f8e692e97
Fujii Hironori
Comment 7
2022-10-24 18:54:07 PDT
Cairo bug ticket:
https://gitlab.freedesktop.org/cairo/cairo/-/issues/598
Fujii Hironori
Comment 8
2022-10-26 14:23:37 PDT
This bug disappears for WinCairo WK2 if I enable UseGPUProcessForDOMRenderingEnabled (
bug#246733
).
Fujii Hironori
Comment 9
2022-10-26 17:30:05 PDT
cairo_surface_destroy is called in ImageDecoder thread. Here is the callstack (taken by WinCairo WK1):
> WebKit.dll!WTF::DefaultRefDerefTraits<_cairo_surface>::derefIfNotNull(_cairo_surface * ptr) Line 52 C++ > WebKit.dll!WTF::RefPtr<_cairo_surface,WTF::RawPtrTraits<_cairo_surface>,WTF::DefaultRefDerefTraits<_cairo_surface>>::~RefPtr<_cairo_surface,WTF::RawPtrTraits<_cairo_surface>,WTF::DefaultRefDerefTraits<_cairo_surface>>() Line 74 C++ > WebKit.dll!WebCore::ImageBackingStore::image() Line 44 C++ > WebKit.dll!WebCore::ScalableImageDecoder::createFrameImageAtIndex(unsigned __int64 index, WebCore::SubsamplingLevel __formal, const WebCore::DecodingOptions & __formal) Line 275 C++ > WebKit.dll!WebCore::ImageSource::startAsyncDecodingQueue::__l2::<lambda_1>::operator()() Line 364 C++ > WebKit.dll!WTF::Detail::CallableWrapper<`WebCore::ImageSource::startAsyncDecodingQueue'::`2'::<lambda_1>,void>::call() Line 53 C++ > WTF.dll!WTF::Function<void __cdecl(void)>::operator()() Line 83 C++ > WTF.dll!WTF::WorkQueueBase::dispatch::__l2::<lambda_1>::operator()() Line 70 C++ > WTF.dll!WTF::Detail::CallableWrapper<`WTF::WorkQueueBase::dispatch'::`2'::<lambda_1>,void>::call() Line 53 C++ > WTF.dll!WTF::Function<void __cdecl(void)>::operator()() Line 83 C++ > WTF.dll!WTF::RunLoop::performWork() Line 147 C++ > WTF.dll!WTF::RunLoop::wndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 57 C++ > WTF.dll!WTF::RunLoop::RunLoopWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 39 C++ > [External Code] > WTF.dll!WTF::RunLoop::run() Line 74 C++ > WTF.dll!WTF::RunLoop::create::__l2::<lambda_1>::operator()() Line 114 C++ > WTF.dll!WTF::Detail::CallableWrapper<`WTF::RunLoop::create'::`2'::<lambda_1>,void>::call() Line 53 C++ > WTF.dll!WTF::Function<void __cdecl(void)>::operator()() Line 83 C++ > WTF.dll!WTF::Thread::entryPoint(WTF::Thread::NewThreadContext * newThreadContext) Line 251 C++ > WTF.dll!WTF::wtfThreadEntryPoint(void * data) Line 151 C++ > [External Code]
Fujii Hironori
Comment 10
2022-10-27 22:03:05 PDT
Created
attachment 463290
[details]
Patch to disable async image decoding I hacked WinCairo WK1 to disable async image decoding. But, this bug is still happening.
Fujii Hironori
Comment 11
2022-10-30 17:48:01 PDT
Created
attachment 463316
[details]
test case
Fujii Hironori
Comment 12
2022-10-30 19:13:49 PDT
Both twitter.com and yahoo.co.jp have a text with font-size:0 and a text decoration. twitter.com hides "https://". yahoo.co.jp hides a text of arrow icons of the real time search trend.
Fujii Hironori
Comment 13
2022-10-30 21:36:31 PDT
PR
https://github.com/WebKitForWindows/WebKitRequirements/pull/100
Fujii Hironori
Comment 14
2022-11-16 18:18:50 PST
This bug hasn't been reprodusible for WinCairo WK2 since
256189@main
turned on UseGPUProcessForDOMRenderingEnabled. WinCairo WK1 still can replicate.
Fujii Hironori
Comment 15
2023-01-04 18:10:36 PST
Fixed by
https://github.com/WebKitForWindows/WebKitRequirements/releases/tag/v2022.12.22
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug