ladybird/Libraries/LibWeb
Zaggy1024 21019c2fa9 LibWeb: Use UA shadow DOM for media elements' controls
Instead of using a custom paintable to draw the controls for video and
audio elements, we build them out of plain old HTML elements within a
shadow root.

This required a few hacks in the previous commits in order to allow a
replaced element to host children within a shadow root, but it's
fairly self-contained.

A big benefit is that we can drive all the UI updates off of plain old
DOM events (except the play button overlay on videos, which uses the
video element representation), so we can test our media and input event
handling more thoroughly. :^)

The control bar visibility is now more similar to how other browsers
handle it. It will show upon hovering over the element, but if the
cursor is kept still for more than a second, it will hide again. While
dragging, the controls remain visible, and will then hide after the
mouse button is released.

The icons have been redesigned from scratch, and the mute icon now
visualizes the volume level along with indicating the mute state.
2026-02-23 07:27:31 +01:00
..
Animations LibWeb: Reduce recompilation from editing Enums.json 2026-02-19 11:27:06 +00:00
ARIA LibWeb: Shave 168 bytes off of ARIAMixin 2025-11-07 16:59:26 +01:00
Bindings LibWeb: Treat numeric PropertyKeys as Strings per spec in PlatformObject 2026-02-16 18:49:15 +01:00
Clipboard LibWeb+UI/AppKit: Ignore unknown clipboard MIME types 2025-10-10 15:10:03 -04:00
Compression Everywhere: Make ByteBuffer::bytes() lvalue-only 2025-12-10 07:43:22 -05:00
ContentSecurityPolicy LibWeb/CSP: Prefer use of Optional<StringView> for algorithm matching 2026-02-21 12:37:44 +01:00
CookieStore LibWeb: Reduce recompilation impact of DOM/Document.h 2026-02-11 20:02:28 +01:00
CredentialManagement LibWeb: Do not pass GC::Ptr by reference 2026-02-22 14:55:30 -05:00
Crypto LibWeb: Use interface_name instead of serialize_type virtual 2026-02-14 20:22:40 +01:00
CSS LibWeb: Use UA shadow DOM for media elements' controls 2026-02-23 07:27:31 +01:00
DOM LibWeb: Update the layout tree when setting shadow roots 2026-02-23 07:27:31 +01:00
DOMURL LibWeb: Give IDL exposed PlatformObjects an InterfaceName 2026-02-14 20:22:40 +01:00
Editing AK: Use AK namespace for ValueComparingRefPtr 2026-02-20 22:01:44 +00:00
Encoding
EncryptedMediaExtensions LibWeb: Reduce recompilation impact of DOM/Document.h 2026-02-11 20:02:28 +01:00
EntriesAPI
EventTiming Everywhere: Run clang-format 2026-02-18 08:02:45 -05:00
Fetch LibWeb/Fetch: Prevent file:// URLs from calling fetch() API 2026-02-21 23:00:57 +01:00
FileAPI LibWeb: Use interface_name instead of serialize_type virtual 2026-02-14 20:22:40 +01:00
Gamepad LibWeb: Reduce recompilation impact of DOM/Document.h 2026-02-11 20:02:28 +01:00
Geolocation
Geometry LibWeb: Use interface_name instead of serialize_type virtual 2026-02-14 20:22:40 +01:00
GPC LibWeb+LibWebView+WebContent: Replace DNT with GPC 2025-09-16 10:38:20 +02:00
HighResolutionTime LibWeb: Use enum instead of bool for CanUseCrossOriginIsolatedAPIs 2026-02-13 16:47:42 +00:00
HTML LibWeb: Use UA shadow DOM for media elements' controls 2026-02-23 07:27:31 +01:00
IndexedDB LibWeb/IndexedDB: Store Key's key-array value as Ref not Root 2026-02-17 07:40:03 -05:00
Infra LibTextCodec+LibWeb: Move isomorphic coders to LibTextCodec 2025-11-27 14:57:29 +01:00
Internals LibWeb: Load cookies test from HTTP server 2026-02-21 23:00:57 +01:00
IntersectionObserver LibWeb: Reduce recompilation impact of DOM/Element.h 2026-02-11 20:02:28 +01:00
Layout LibWeb: Use UA shadow DOM for media elements' controls 2026-02-23 07:27:31 +01:00
Loader Everywhere: Abandon Swift adoption 2026-02-17 10:48:09 -05:00
MathML LibWeb: Reduce recompilation from editing CascadedProperties.h 2026-02-19 11:27:06 +00:00
MediaCapabilitiesAPI LibWeb: Extract some CORS and MIME Fetch helpers to their own files 2025-11-27 14:57:29 +01:00
MediaSourceExtensions LibWeb: Mark [Managed]MediaSource[Handle] as experimental 2026-02-17 22:17:50 +01:00
MimeSniff LibHTTP+LibWeb+RequestServer: Move Fetch's HTTP header infra to LibHTTP 2025-11-27 14:57:29 +01:00
MixedContent LibWeb: Reduce recompilation impact of DOM/Document.h 2026-02-11 20:02:28 +01:00
NavigationTiming LibWeb: Reduce recompilation impact of DOM/Document.h 2026-02-11 20:02:28 +01:00
NotificationsAPI LibWeb: Propagate error from Notification contructor 2026-02-22 11:37:33 +01:00
Page LibWeb: Use UA shadow DOM for media elements' controls 2026-02-23 07:27:31 +01:00
Painting LibWeb: Use UA shadow DOM for media elements' controls 2026-02-23 07:27:31 +01:00
PerformanceTimeline
PermissionsPolicy
Platform LibImageDecoderClient+LibWebView: Add animation session client API 2026-02-13 18:34:24 +01:00
ReferrerPolicy LibWeb: Store HTTP methods and headers as ByteString 2025-11-26 09:15:06 -05:00
RequestIdleCallback
ResizeObserver LibWeb: Avoid GC allocation in ResizeObservation::is_active() 2026-02-21 03:51:28 +01:00
ResourceTiming
SecureContexts LibWeb: Consider opaque file scheme origins as potentially trustworthy 2026-02-21 23:00:57 +01:00
Selection LibWeb: Do not scroll cursor into view on programmatic selection changes 2026-02-17 10:24:00 +01:00
Serial
ServiceWorker LibHTTP+LibWeb: Move Infrastructure::Request::CacheMode to LibHTTP 2026-01-22 07:05:06 -05:00
Speech LibWeb: Stub SpeechSynthesis.cancel() 2026-02-10 11:58:23 +01:00
SRI
StorageAPI LibWeb: Reduce recompilation impact of DOM/Document.h 2026-02-11 20:02:28 +01:00
Streams Everywhere: Run clang-format 2026-02-18 08:02:45 -05:00
SVG LibWeb: Cache parsed CSS values for SVG width/height attributes 2026-02-22 16:09:15 +01:00
TrustedTypes LibWeb: Reduce recompilation impact of DOM/Document.h 2026-02-11 20:02:28 +01:00
UIEvents LibWeb: Include KeyCode.h where it's used 2026-02-23 07:27:31 +01:00
URLPattern
UserTiming
ViewTransition LibWeb: Reduce recompilation from editing Enums.json 2026-02-19 11:27:06 +00:00
WebAssembly Everywhere: Remove double // on comments 2026-02-11 13:28:01 -06:00
WebAudio Everywhere: Run clang-format 2026-02-18 08:02:45 -05:00
WebDriver LibJS: Move SharedFunctionInstanceData creation out of FunctionNode 2026-02-11 23:57:41 +01:00
WebGL LibWeb: Use ExternalContentSource for canvas painting 2026-02-20 18:41:33 +01:00
WebIDL LibWeb: Use interface_name instead of serialize_type virtual 2026-02-14 20:22:40 +01:00
WebSockets LibHTTP+Everywhere: Move the cookie implementation to LibHTTP 2026-02-10 12:21:20 +01:00
WebVTT
WebXR LibWeb: Implement the very basics of XRSession 2026-02-04 15:08:37 +01:00
Worker LibHTTP+Everywhere: Move the cookie implementation to LibHTTP 2026-02-10 12:21:20 +01:00
XHR LibWeb: Give IDL exposed PlatformObjects an InterfaceName 2026-02-14 20:22:40 +01:00
XLink
XML LibWeb: Reduce recompilation impact of DOM/Document.h 2026-02-11 20:02:28 +01:00
XPath LibWeb: Reduce recompilation impact of DOM/Document.h 2026-02-11 20:02:28 +01:00
CMakeLists.txt LibWeb: Use UA shadow DOM for media elements' controls 2026-02-23 07:27:31 +01:00
Dump.cpp LibWeb: Dump all paintables attached to a layout node in dump_tree 2026-02-15 17:47:30 +01:00
Dump.h LibWeb: Make dump_sheet() indentable 2025-12-04 16:24:04 +00:00
Forward.h LibWeb: Parse font-variant-alternates functions 2026-02-20 22:01:44 +00:00
GraphemeEdgeTracker.cpp LibWeb: Apply letter-spacing for selection rects and grapheme bounds 2026-02-17 10:51:48 +01:00
GraphemeEdgeTracker.h LibWeb: Expose GraphemeEdgeTracker's find_line_start/find_line_end 2026-02-06 14:18:10 +00:00
idl_files.cmake LibWeb: Implement CSSFontFeatureValuesRule 2026-02-17 12:25:27 +00:00
InvalidateDisplayList.h
Namespace.cpp
Namespace.h
PixelUnits.cpp LibWeb: Inline CSSPixels methods and optimize device pixel math 2026-02-21 15:53:22 +01:00
PixelUnits.h LibWeb: Inline CSSPixels methods and optimize device pixel math 2026-02-21 15:53:22 +01:00
TraversalDecision.h
TraversalOrder.h
TreeNode.h Everywhere: Remove double // on comments 2026-02-11 13:28:01 -06:00