ladybird/Libraries/LibWebView
ayeteadoe f4c8fd4bef LibCore+LibWebView+UI/Qt: Support TimeZoneWatcher on Windows
To detect system time zone changes on Windows, the event we need to look
for is WM_TIMECHANGE. The problem is how the callback with said message
actually gets invoked is very particular. (1) We must have an active
message pump (event loop) for the message to ever be processed. (2) We
must be a GUI application as WM_TIMECHANGE messages are seemingly sent
to top level windows only. It doesn't say that in the docs for the
event, but attempts of creating a LibTest-based application with a
message pump and a message only window and never receiving the event
point to that probably being true.

This workaround is built off the fact that Qt's message pump defined
internally in QEventDispatcherWin32::processEvents does in fact receive
WM_TIMECHANGE events, even though it is not exposed as a QEvent::Type.
Given the requirements stated above it makes sense that it works here as
the message pump is executing in a QGuiApplication context. So we use a
native event filter to hook into the unexposed WM_TIMECHANGE event and
forward it along to the on_time_zone_changed() callback.

Note that if a Windows GUI framework is done in the future, we'll have
to re-add support to ensure the TimeZoneWatcher still gets invoked.
2025-10-05 15:46:15 +02:00
..
EventLoop LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
Plugins LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
WebUI LibWeb+LibWebView+WebContent: Replace DNT with GPC 2025-09-16 10:38:20 +02:00
Application.cpp LibCore+LibWebView+UI/Qt: Support TimeZoneWatcher on Windows 2025-10-05 15:46:15 +02:00
Application.h LibCore+LibWebView+UI/Qt: Support TimeZoneWatcher on Windows 2025-10-05 15:46:15 +02:00
Attribute.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Attribute.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
Autocomplete.cpp LibWebView: Don't provide autocomplete suggestions for file:// URLs 2025-07-18 10:58:07 +01:00
Autocomplete.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
BrowserProcess.cpp RequestServer: Enable in Windows CI 2025-08-23 16:04:36 -06:00
BrowserProcess.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
CMakeLists.txt LibWebView+UI: Add structures to hold context menu and action data 2025-09-11 14:23:45 -04:00
ConsoleOutput.cpp LibDevTools+LibWebView+WebContent: Report exceptions to DevTools 2025-03-27 14:14:02 +00:00
ConsoleOutput.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
CookieJar.cpp Everywhere: Change west consts caught by clang-format-21 to east consts 2025-08-29 18:18:55 +01:00
CookieJar.h Everywhere: Change west consts caught by clang-format-21 to east consts 2025-08-29 18:18:55 +01:00
Database.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Database.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
DOMNodeProperties.cpp LibDevTools+LibWebView+WebContent: Selectively fetch DOM node properties 2025-03-20 09:01:26 +01:00
DOMNodeProperties.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
Forward.h LibWebView+UI: Add structures to hold context menu and action data 2025-09-11 14:23:45 -04:00
HeadlessWebView.cpp LibWebView+UI: Move clipboard handling from the WebView to the App 2025-09-19 06:38:52 -04:00
HeadlessWebView.h LibWebView+UI: Move clipboard handling from the WebView to the App 2025-09-19 06:38:52 -04:00
HelperProcess.cpp RequestServer: Remove serenity_resource_root argument from main 2025-07-07 09:10:05 +02:00
HelperProcess.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
MachPortServer.cpp Everywhere: Use a forward declaration for pointers to Threading::Thread 2025-09-22 17:28:21 -05:00
MachPortServer.h Everywhere: Use a forward declaration for pointers to Threading::Thread 2025-09-22 17:28:21 -05:00
Menu.cpp LibWebView+UI: Add structures to hold context menu and action data 2025-09-11 14:23:45 -04:00
Menu.h LibWebView+UI: Generate action to enable/disable DevTools 2025-09-18 07:27:24 -04:00
Mutation.cpp LibWeb+LibWebView+WebContent: Inform the UI about DOM mutations 2025-03-08 01:25:55 +01:00
Mutation.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
Native.css Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Options.h LibWebView+UI: Launch the DevTools server if --devtools is specified 2025-07-02 15:27:54 -04:00
PageInfo.h test-web: Dump stacking context tree in layout test output 2025-07-09 14:36:08 +02:00
Process.cpp Everywhere: Make TransportSocket non-movable 2025-04-09 15:27:52 +02:00
Process.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
ProcessHandle.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
ProcessHandle.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
ProcessManager.cpp LibWeb+LibWebView+WebContent: Convert about:processes to a WebUI 2025-03-28 07:31:10 -04:00
ProcessManager.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
ProcessType.h LibWebView: Rename the Chrome process type to Browser 2025-03-15 19:57:27 -04:00
SearchEngine.cpp LibWebView: Support custom search engines 2025-04-06 13:45:10 +02:00
SearchEngine.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
Settings.cpp LibWeb+LibWebView+WebContent: Replace DNT with GPC 2025-09-16 10:38:20 +02:00
Settings.h LibWeb+LibWebView+WebContent: Replace DNT with GPC 2025-09-16 10:38:20 +02:00
SiteIsolation.cpp LibWebView: Keep javascript URL navigations in the same process 2025-03-16 10:59:41 -04:00
SiteIsolation.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
SourceHighlighter.cpp Everywhere: Replace miscellaneous references to the chrome process 2025-03-15 19:57:27 -04:00
SourceHighlighter.h Everywhere: Slap some [[clang::lifetimebound]] where appropriate 2025-09-01 11:11:38 +02:00
StorageJar.cpp Everywhere: Implement persistence of localStorage using sqlite 2025-06-12 17:04:35 +02:00
StorageJar.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
StorageOperationError.h Everywhere: Implement persistence of localStorage using sqlite 2025-06-12 17:04:35 +02:00
UIProcessClient.ipc Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
UIProcessServer.ipc Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
URL.cpp LibWebView: Return a ByteString from WebView::url_text_to_copy 2025-09-11 14:23:45 -04:00
URL.h LibWebView: Return a ByteString from WebView::url_text_to_copy 2025-09-11 14:23:45 -04:00
UserAgent.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
UserAgent.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
Utilities.cpp LibWebView+UI: Migrate some UI process init to LibWebView 2025-06-11 07:26:32 -04:00
Utilities.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
ViewImplementation.cpp LibWebView+UI: Move clipboard handling from the WebView to the App 2025-09-19 06:38:52 -04:00
ViewImplementation.h LibWebView+UI: Move clipboard handling from the WebView to the App 2025-09-19 06:38:52 -04:00
WebContentClient.cpp LibWebView+UI: Move clipboard handling from the WebView to the App 2025-09-19 06:38:52 -04:00
WebContentClient.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
WebUI.cpp Everywhere: Make TransportSocket non-movable 2025-04-09 15:27:52 +02:00
WebUI.h LibWebView: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00