ladybird/Libraries/LibWeb
Andreas Kling 3cda08b6bf LibWeb: Numerically interpolate rotation angles for same-axis rotations
Per the CSS Transforms spec, when interpolating rotate3d() functions
with equal normalized direction vectors (or when one angle is zero),
the rotation angle should be interpolated numerically rather than
using quaternion slerp.

Previously we always used quaternion slerp, which cannot represent
rotations beyond 360 degrees. This meant that animating from
rotateY(0deg) to rotateY(3600deg) produced no visual animation, since
both quaternions are identical (3600 mod 360 = 0).

Now we detect when axes match and interpolate the angle directly,
correctly preserving multi-turn rotations. This fixes 168 WPT tests.
2026-03-21 23:16:32 -05:00
..
Animations LibWeb: Apply animation-timing-function per keyframe interval 2026-03-21 23:16:32 -05:00
ARIA LibWeb: Shave 168 bytes off of ARIAMixin 2025-11-07 16:59:26 +01:00
Bindings LibJS: Remove C++ AST 2026-03-19 21:55:10 -05:00
Clipboard LibWeb: Make more use of Value::{as,as_if,is} in LibWeb 2026-02-28 10:24:37 -05:00
Compression Everywhere: Make ByteBuffer::bytes() lvalue-only 2025-12-10 07:43:22 -05:00
ContentSecurityPolicy LibWeb: Make more use of Value::{as,as_if,is} in LibWeb 2026-02-28 10:24:37 -05: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 LibCrypto: Implement KMAC authentication support 2026-03-19 10:46:49 +01:00
CSS LibWeb: Numerically interpolate rotation angles for same-axis rotations 2026-03-21 23:16:32 -05:00
DOM LibWeb: Start fetching CSS image resources before document load event 2026-03-21 10:29:54 +01:00
DOMURL LibJS+LibWeb: Return GC::Ptr from Value::as_if 2026-02-27 17:19:33 +01:00
Editing LibWeb: Replace is<T> + as<T> with as_if<T> 2026-03-10 15:17:51 +01: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: Allow file:// pages to load fonts from file:// URLs 2026-03-14 22:21:55 -05:00
FileAPI LibWeb: Use interface_name instead of serialize_type virtual 2026-02-14 20:22:40 +01:00
Fullscreen LibWeb: Implement exitFullscreen algorithm 2026-02-23 18:44:26 +00: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
HighResolutionTime LibWeb: Use enum instead of bool for CanUseCrossOriginIsolatedAPIs 2026-02-13 16:47:42 +00:00
HTML LibWeb: Use PlaybackManager's states to progress media ready state 2026-03-21 23:11:47 -05:00
IndexedDB LibWeb: Heap-allocate SerializationRecord in IndexedDB ObjectStoreRecord 2026-03-21 08:41:13 -05:00
Infra LibTextCodec+LibWeb: Move isomorphic coders to LibTextCodec 2025-11-27 14:57:29 +01:00
Internals Everywhere: Consolidate double/triple click handling to use click count 2026-03-17 04:01:29 -05:00
IntersectionObserver LibWeb: Reduce recompilation impact of DOM/Element.h 2026-02-11 20:02:28 +01:00
Layout LibWeb: Fix static position of inline-level abspos elements in BFC 2026-03-21 21:42:44 -05:00
Loader LibWeb: Bump Chrome version in SAD_COMPATIBILITY_HACK 2026-03-13 18:44:47 +01:00
MathML LibWeb: Reject negative mathsize presentational hint values 2026-03-17 09:43:59 +01: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 a queue to process fullscreen request completions 2026-03-17 18:58:37 -05:00
Painting LibWeb: Ensure hosted document layout is up to date before painting 2026-03-20 22:55:44 -05:00
PerformanceTimeline
PermissionsPolicy LibWeb/PermissionsPolicy: Allow autoplay of file:// media from file:// 2026-03-01 01:04:10 +01:00
Platform LibWeb+LibWebView+WebContent: Send service sockets over IPC channel 2026-03-12 20:32:55 +01:00
ReferrerPolicy LibWeb: Store HTTP methods and headers as ByteString 2025-11-26 09:15:06 -05:00
RequestIdleCallback
ResizeObserver LibWeb: Use unsafe layout/paintable accessors where appropriate 2026-02-26 21:09:08 +01:00
ResourceTiming
SecureContexts LibWeb/SecureContexts: Make use of Origin::is_opaque_file_origin 2026-03-01 01:04:10 +01:00
Selection LibWeb: Prevent cursor movement when collapsing text selection 2026-03-10 02:53:27 +01:00
Serial
ServiceWorker LibWeb: Mark CacheStorage as Experimental 2026-02-24 17:08:48 +01: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 LibWeb: Make more use of Value::{as,as_if,is} in LibWeb 2026-02-28 10:24:37 -05:00
SVG LibGfx+LibWeb: Move Skia backend context to process level singleton 2026-03-19 13:35:16 +01:00
TrustedTypes LibWeb: Make more use of Value::{as,as_if,is} in LibWeb 2026-02-28 10:24:37 -05:00
UIEvents LibWeb: Set button MouseEvents' detail attributes to the click count 2026-03-17 04:01:29 -05:00
URLPattern
UserTiming
ViewTransition LibWeb: Clean up invoking the update callback in ViewTransition 2026-03-12 10:38:43 +01:00
WebAssembly LibWeb: Make more use of Value::{as,as_if,is} in LibWeb 2026-02-28 10:24:37 -05:00
WebAudio Everywhere: Run clang-format 2026-02-18 08:02:45 -05:00
WebDriver LibJS+LibWeb: Port remaining callers to Rust pipeline 2026-03-19 21:55:10 -05:00
WebGL LibGfx+LibWeb: Move Skia backend context to process level singleton 2026-03-19 13:35:16 +01:00
WebIDL LibJS: Split packed and holey asm indexed fast paths 2026-03-17 22:28:35 -05:00
WebSockets LibGC+LibWeb: Add and use GC::weak_callback() 2026-02-26 08:03:50 -05:00
WebVTT
WebXR LibWeb: Implement the very basics of XRSession 2026-02-04 15:08:37 +01:00
Worker LibIPC+LibWeb+LibWebView: Remove clone_from_transport() API 2026-03-13 15:34:15 +01:00
XHR LibWeb: Pre-allocate XHR received bytes buffer using Content-Length 2026-03-16 08:29:37 -04:00
XLink
XML LibWeb: Reduce recompilation impact of DOM/Document.h 2026-02-11 20:02:28 +01:00
XPath LibWeb/Bindings: Implement callback interface object bindings 2026-03-11 21:16:44 +01:00
CMakeLists.txt LibWeb: Implement IndexedDB request/transaction reverts 2026-03-20 23:59:35 -05:00
Dump.cpp LibWeb: Use unsafe layout/paintable accessors where appropriate 2026-02-26 21:09:08 +01:00
Dump.h LibWeb: Make dump_sheet() indentable 2025-12-04 16:24:04 +00:00
Forward.h LibWeb: Add a generic <color-interpolation-method> parsing method 2026-03-18 13:21:57 +00:00
GraphemeEdgeTracker.cpp LibWeb: Use unsafe layout/paintable accessors where appropriate 2026-02-26 21:09:08 +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/SVG: Implement the feDisplacementMap filter 2026-03-02 14:03:32 +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 Everywhere: Use AK::SaturatingMath and remove Checked saturating APIs 2026-03-21 18:20:09 -05:00
TraversalDecision.h
TraversalOrder.h
TreeNode.h Everywhere: Remove double // on comments 2026-02-11 13:28:01 -06:00