1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 18:28:12 +00:00
serenity/Userland/Libraries/LibWeb
Timothy Flynn 9df2d6ee0f LibWeb: Implement scrubbing of the media element timeline and volume
This implements the ability to drag the timeline and volume buttons on
UA-rendered media controls. The two behave a bit differently:

Volume is updated as the user drags the volume button. This isn't a very
expensive operation, so updating in real-time and hearing the volume
change feels nice.

The current time, on the other hand, is not committed until the user
releases the mouse button. Performing a seek every time we get a mouse-
move event is pretty laggy, especially for video. However, we still want
to render updates on the timeline itself (so the position of the button
and the timestamp update as you drag). To do so, we internally pause the
media and override the timestamp provided to the layout node.

In the future, we may be able to seek video periodically to provide some
visual feedback. For example, we can seek after every N seconds of
scrubbing, or when the user pauses scrubbing for a while.
2023-06-22 06:58:07 +02:00
..
ARIA Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
Bindings LibWeb: Make Bindings::dom_exception_to_throw_completion public API 2023-06-18 08:34:02 +02:00
Cookie Userland: Remove remaining users of Duration::now_realtime() 2023-05-24 23:18:07 +02:00
Crypto AK+Everywhere: Change AK::fill_with_random to accept a Bytes object 2023-04-03 15:53:49 +02:00
CSS LibWeb: Modernize handling of the CSS flex-basis property 2023-06-21 20:20:59 +02:00
DOM LibWeb: Add HTMLDocument class 2023-06-21 16:30:27 +02:00
DOMParsing LibWeb: Don't include DOM/NamedNodeMap.h from DOM/Element.h 2023-05-08 09:29:44 +02:00
Encoding LibWeb: Make 'optional BufferSource' IDL arguments actually optional 2023-05-30 12:50:13 +02:00
Fetch LibWeb: Make Bindings::dom_exception_to_throw_completion public API 2023-06-18 08:34:02 +02:00
FileAPI LibWeb: Implement Web::FileAPI::Blob::text to spec 2023-06-18 08:34:02 +02:00
Geometry LibWeb: Don't divide by 0 in DOMMatrix::invert_self() 2023-05-04 15:39:34 +02:00
HighResolutionTime Everywhere: Use MonotonicTime instead of Duration 2023-05-24 23:18:07 +02:00
HTML LibWeb: Implement scrubbing of the media element timeline and volume 2023-06-22 06:58:07 +02:00
Infra LibJS: Make intrinsics getters return NonnullGCPtr 2023-04-13 14:29:42 +02:00
IntersectionObserver LibWeb: Make factory method of IntersectionObserver fallible 2023-02-22 09:55:33 +01:00
Layout LibWeb: Implement distributing space to tracks beyond limits in GFC 2023-06-22 06:48:12 +02:00
Loader Everywhere: Correctly report progress of downloads larger than 4GiB 2023-06-19 06:13:19 +02:00
MimeSniff Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
NavigationTiming LibWeb: Specify snake case names for navigation timing entries too 2023-05-13 16:31:10 +02:00
Page Ladybird+LibWeb+WebContent: Add context menu controls for muting audio 2023-06-16 19:34:42 +02:00
Painting LibWeb: Implement scrubbing of the media element timeline and volume 2023-06-22 06:58:07 +02:00
PerformanceTimeline LibWeb: Introduce Performance Timeline and its Performance functions 2023-03-23 21:00:43 +00:00
PermissionsPolicy LibWeb+LibWebView+WebContent: Add APIs to manage an autoplay allowlist 2023-04-18 16:30:02 +02:00
Platform Ladybird+LibWeb+WebContent: Prevent out-of-bounds seeking audio elements 2023-06-22 06:58:07 +02:00
ReferrerPolicy LibWeb: Add ReferrerPolicy::EmptyString 2023-04-25 12:54:01 +02:00
RequestIdleCallback LibWeb/HTML: Port Window.requestIdleCallback() to IDL 2023-03-07 23:33:34 +00:00
ResizeObserver LibWeb: Make factory method of ResizeObserver::ResizeObserver fallible 2023-02-22 09:55:33 +01:00
Scripts LibWeb: Store stylesheet sources as StringViews 2023-02-19 00:51:16 +01:00
SecureContexts LibWeb: Use IPv6Address::loopback() instead of parsing "::1" 2023-06-09 19:38:14 +01:00
Selection LibWeb: Make factory method of Selection::Selection fallible 2023-02-22 09:55:33 +01:00
SRI LibWeb: Implement integrity-metadata part of fetch algorithm 2023-04-21 20:44:47 +01:00
Streams LibWeb: Implement ByteLengthQueuingStrategy highWaterMark property 2023-06-21 12:27:04 +02:00
SVG LibWeb: Do not crash inside SVGDecodedImageData on invalid SVG input 2023-06-21 19:10:37 +02:00
Tests Everywhere: Rename WrapperGenerator to BindingsGenerator 2022-09-21 23:06:08 +01:00
UIEvents LibWeb+WebContent: Forbid access to underlying type of CSSPixels 2023-06-13 06:08:27 +02:00
URL Everywhere: Change spelling of 'behaviour' to 'behavior' 2023-05-07 01:05:09 +02:00
UserTiming LibWeb: Implement performance.{measure,clearMeasures} 2023-05-13 16:31:10 +02:00
WebAssembly LibJS: Port Value::to_object() to NonnullGCPtr 2023-04-14 09:59:29 +02:00
WebAudio LibWeb: Stub AudioContext constructor 2023-05-22 06:07:05 +02:00
WebDriver LibWeb/WebDriver: Close client connection socket when EOF is reached 2023-06-19 09:55:47 -04:00
WebGL LibWeb: Don't include Layout/Node.h from DOM/Element.h 2023-05-08 09:29:44 +02:00
WebIDL LibWeb: Implement IDL overload resolution steps to clamp argument counts 2023-05-07 06:30:27 +02:00
WebSockets LibWeb: Migrate WebSockets::WebSocket to String 2023-06-17 20:38:20 +02:00
XHR LibJS: Port create_iterator_result_object() to NonnullGCPtr 2023-04-15 16:26:42 +02:00
XML LibWeb: Detect when an XML document belongs in the SVG namespace 2023-06-09 01:12:48 +02:00
CMakeLists.txt LibWeb: Add HTMLDocument class 2023-06-21 16:30:27 +02:00
Dump.cpp LibWeb: Add table-column-group to layout tree dump 2023-06-10 11:17:21 +02:00
Dump.h LibWeb+Browser+Ladybird: Add menu action to dump paint tree 2023-03-18 20:23:35 +01:00
FontCache.cpp LibWeb: Scale the font when painting the text on buttons 2023-03-15 23:29:00 +01:00
FontCache.h LibWeb: Scale the font when painting the text on buttons 2023-03-15 23:29:00 +01:00
Forward.h LibWeb: Implement ByteLengthQueuingStrategy highWaterMark property 2023-06-21 12:27:04 +02:00
idl_files.cmake LibWeb: Add HTMLDocument class 2023-06-21 16:30:27 +02:00
Namespace.cpp LibWeb: Initialize static web strings during main-thread VM creation 2023-03-18 19:50:45 +01:00
Namespace.h LibWeb: Initialize static web strings during main-thread VM creation 2023-03-18 19:50:45 +01:00
PixelUnits.h LibWeb+WebContent: Forbid access to underlying type of CSSPixels 2023-06-13 06:08:27 +02:00
TreeNode.h LibJS+LibWeb: Move headers around to allow including Value from Cell 2023-01-29 00:02:45 +00:00