Summary: | WebKitTestRunner: Non-Cocoa TestController::platformAdjustContext should recreate WKPreferences | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Fujii Hironori <Hironori.Fujii> | ||||||||
Component: | Platform | Assignee: | Fujii Hironori <Hironori.Fujii> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | darin, webkit-bug-importer | ||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||
Version: | WebKit Nightly Build | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Attachments: |
|
Description
Fujii Hironori
2023-02-19 23:21:20 PST
Created attachment 465103 [details]
WIP patch
This isn't producible with Mac port. How does it reset the pref?
> run-webkit-tests http/tests/misc/favicon-loads-with-icon-loading-override.html http/tests/misc/image-blocked-src-change.html --iterations=2 --child-processes=1
The implementations of TestController::platformPreferences and TestController::platformAdjustContext are different. TestController::ensureViewSupportsOptionsForTest decides to create a new webview because test options don't match. However, non-Cocoa TestController::platformPreferences constantly returns a same preference object. Cocoa's TestController::platformAdjustContext re-initializes it. The result of "grep -r LoadsImagesAutomatically *" in LayoutTests directory: > fast/loader/display-image-unset-can-block-image-and-can-reload-in-place.html\012: internals.settings.setLoadsImagesAutomatically(false); > fast/loader/display-image-unset-can-block-image-and-can-reload-in-place.html\024: internals.settings.setLoadsImagesAutomatically(true); > http/tests/cache/display-image-unset-allows-cached-image-load.html\021: window.internals.settings.setLoadsImagesAutomatically(false); > http/tests/misc/favicon-loads-with-icon-loading-override.html\01:<html><!-- webkit-test-runner [ LoadsImagesAutomatically=false ] --> > http/tests/misc/favicon-loads-with-images-disabled.html\01:<html><!-- webkit-test-runner [ LoadsImagesAutomatically=false LoadsSiteIconsIgnoringImageLoadingPreference=false ] --> > svg/as-image/svg-image-with-data-uri-images-disabled.html\014: internals.settings.setLoadsImagesAutomatically(false); LoadsImagesAutomatically=false webkit-test-runner header is used only by two tests. wk2/TestExpectations skipps both. > webkit.org/b/115809 http/tests/misc/favicon-loads-with-images-disabled.html > webkit.org/b/115809 http/tests/misc/favicon-loads-with-icon-loading-override.html This is the reason GTK and WPE layout tests don't observe this bug. wincairo/TestExpectations marks it as Failure for WinCairo WK1. > http/tests/misc/favicon-loads-with-icon-loading-override.html [ Failure ] This is the reason only WinCairo detects. Created attachment 465113 [details]
Patch
Comment on attachment 465113 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=465113&action=review > Tools/WebKitTestRunner/TestController.cpp:3082 > + WKPageGroupSetPreferences(m_pageGroup.get(), WKPreferencesCreate()); This pref leaks. I have to adopt it. Created attachment 465123 [details]
[fast-cq] Patch
Comment on attachment 465123 [details]
[fast-cq] Patch
Glad you caught the need to adopt!
Committed 260699@main (b9b283e66f3d): <https://commits.webkit.org/260699@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 465123 [details]. |