1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-09 17:44:56 +09:00
Commit graph

46804 commits

Author SHA1 Message Date
Ollrogge
361df6eff8 AK: Add conversion functions for packed DOS time format
This also adjusts the FATFS code to use the new functions and removes
the now redundant old conversion functions.
2023-02-12 13:13:15 -07:00
Nico Weber
7e915b145b LibGfx: Let ICC code validate tag data alignment
Both when reading the main tag table and when reading embedded
curve data in lutAToBType or lutBToAType.
2023-02-12 20:07:45 +00:00
Nico Weber
b15a889ca4 icc: Dump some of lutAToBType and lutBToAType curve data 2023-02-12 20:07:45 +00:00
Nico Weber
c4b650cf4e LibGfx: Implement curve parsing for lutAToBType and lutBToAType
With this, we parse all data of all permitted tag types of all
required tags in all ICC profile types :^)

(`icc` doesn't dump this data yet, though.)
2023-02-12 20:07:45 +00:00
Nico Weber
bb19dc00af LibGfx: Add a size-less ParametricCurveTagData::from_bytes() overload
The curve data in lutAToBType and lutBToAType can store 'para' data, but
other than in the main ICC tag table, the size of the tag data isn't
explicitly stored. So it must be computed from the data contents.

Extract the function body into a helper can call that from both
variants.
2023-02-12 20:07:45 +00:00
Nico Weber
8ed3f7c4c2 LibGfx: Add a size-less CurveTagData::from_bytes() overload in ICC code
The curve data in lutAToBType and lutBToAType can store 'curv' data, but
other than in the main ICC tag table, the size of the tag data isn't
explicitly stored. So it must be computed from the data contents.

Extract the function body into a helper can call that from both
variants.
2023-02-12 20:07:45 +00:00
Liav A
38ce053296 Utilities/netstat: Don't unveil /tmp/portal/lookup for numerical output
It's not needed in such case, and in the near-future when we would want
to use this utility in an initramfs environment where there's no service
such as LookupServer being running, it's still useful to have the option
to invoke this utility with the mentioned limited output functionality.
2023-02-12 19:38:40 +00:00
Zaggy1024
4f26b35640 LibVideo: Create Resuming handler for seek/buffer handlers to inherit
This allows the logic for keeping track of whether to resume to the
paused or the playing state when exiting these states. The new
StartingStateHandler also uses the class, since it can also be paused
and unpaused while waiting for samples.

The pause/play actions on the handlers inheriting from the resuming
handler will also now notify the owner that the state has changed so
that it can change icons, etc.
2023-02-12 18:47:56 +01:00
Zaggy1024
a6b938b407 LibVideo/VideoPlayer: Dispatch state change events and update play icon
The PlaybackStateChangeEvent wasn't connected up anymore, so the player
wouldn't change icons when stopping playback due to reaching the end of
the stream or encountering an error.
2023-02-12 18:47:56 +01:00
Zaggy1024
aa0f7d9c89 LibVideo: Display the first frame when paused after opening a video 2023-02-12 18:47:56 +01:00
Zaggy1024
789bc99b8d LibVideo: Add StartingStateHandler to prepare the first frames of video
This new state handler will retrieve and display the first frame, while
ensuring that playback can start as soon as possible by buffering two
frames on top of the first frame for the PlayingStateHandler to set its
next frame timer by.
2023-02-12 18:47:56 +01:00
Zaggy1024
f9a65c1502 LibVideo: Check whether it's time to present frames before doing so
Previously, we assumed the timer was hitting at the correct time. This
meant that if we changed states and the previous state handler had
prepared a next frame, we would immediately display it without checking
the timestamp.
2023-02-12 18:47:56 +01:00
Zaggy1024
5da0c6f916 LibVideo: Delay playback errors by their sample timestamps when we can
If we encounter an error in the video decoder, we can set a timestamp
for the error item in the queue so that it will display the error only
when the frame that caused the error would have been displayed.
2023-02-12 18:47:56 +01:00
Zaggy1024
2a228e8a6e LibVideo: Deduplicate logic for dispatching video frame queue items
Previously we had dispatch_decoder_error and on_decoder_error serving
the same function, with one not handling the end of stream properly.

There is also a new function to dispatch either an error or a frame to
the owner of this playback manager, so that PlaybackStateHandlers don't
have to duplicate this logic.
2023-02-12 18:47:56 +01:00
Zaggy1024
e813b8fd19 LibVideo/Matroska: Fix out-of-bounds access when seeking to cues 2023-02-12 18:47:56 +01:00
Andreas Kling
dadabb58eb LibWeb: Implement location.hash setter
This stops a lot of the whining about uncaught exceptions on the
Speedometer benchmark.
2023-02-12 13:00:33 +01:00
Kenneth Myhra
4d27b9e553 LibWeb: Use 'auto& vm =' once at beginning to reduce noise 2023-02-12 11:53:52 +00:00
Julian Offenhäuser
1f27c47973 LibPDF: Check for end of stream in Reader::matches_regular_character()
The way this was set up before, this function would return "true" if
the underlying stream had ended, which would cause us to try to read
past the end in some edge cases.
2023-02-12 10:55:37 +00:00
Julian Offenhäuser
a2b57dd188 LibPDF: Return an error if we fail to load a replacement font 2023-02-12 10:55:37 +00:00
Julian Offenhäuser
96064ec5af LibPDF: Allow filter DecodeParms array entries to be null
Filters will use the default values in this case.
2023-02-12 10:55:37 +00:00
Julian Offenhäuser
34350ee9e7 LibPDF: Allow reading documents with incremental updates
The PDF spec allows incremental changes of a document by appending a
new XRef table and file trailer to it. These will only contain the
changed objects and will point back to the previous change, forming an
arbitrarily long chain of XRef sections and file trailers.

Every one of those XRef sections may be encoded as an XRef stream as
well, in which case the trailer is part of the stream dictionary as
usual. To make this easier, I made it so every XRef table may "own" a
trailer. This means that the main file trailer is now part of the main
XRef table.
2023-02-12 10:55:37 +00:00
Zaggy1024
0c230f5ff0 LibGUI: Callback with the clamped value of Sliders on a jump to cursor 2023-02-12 09:53:05 +01:00
Kenneth Myhra
2f20f16292 Base: Add a test using FormData and FormDataEvent 2023-02-12 00:18:09 +00:00
Kenneth Myhra
fc886b4556 LibWeb: Implement algorithm 'construct the entry list given a form' 2023-02-12 00:18:09 +00:00
Kenneth Myhra
9d13537fc7 AK: Add function 'shallow_clone()' to HashMap
This makes a shallow clone of the HashMap, the items temselves are not
cloned in any way.
2023-02-12 00:18:09 +00:00
Kenneth Myhra
3bc5fcaccc LibWeb: Add accessor function HTMLFormElement::constructing_entry_list()
Each form element has a constructing entry list boolean, initially
false.
2023-02-12 00:18:09 +00:00
Kenneth Myhra
2363c2a572 LibWeb: Implement HTMLFormElement::get_submittable_elements()
This implements a convenience method on HTMLFormElement to retrieve a
list in tree order of submittable elements associated with the form
element.
2023-02-12 00:18:09 +00:00
Kenneth Myhra
a6cdf6374f LibWeb: Introduce the FormDataEvent interface 2023-02-12 00:18:09 +00:00
Kenneth Myhra
d5b5b94a35 LibWeb: Introduce the FormData interface from the XHR specification 2023-02-12 00:18:09 +00:00
Kenneth Myhra
b74d5a423d LibWeb: Add convert string into scalar value from Infra spec 2023-02-12 00:18:09 +00:00
Linus Groh
2ad9c1fd6c LibWeb: Re-implement checkbox painting using the UA stylesheet
The checkbox provided by ClassicStylePainter is not scaling-aware and
generally unflexible, instead use the UA default stylesheet with a
handful of properties, the same way we already style buttons and text
inputs.

Thanks to Xexxa for the nice checkmark image!

Co-Authored-By: Xexxa <93391300+Xexxa@users.noreply.github.com>
2023-02-12 00:15:52 +00:00
Linus Groh
a8bf2f8e4c LibJS: Port Symbol to String
This includes the VM's global_symbol_registry HashMap, which can now
store String keys.
2023-02-11 21:47:57 +00:00
Linus Groh
5e72fde954 LibJS: Unify Symbol::description() and raw_description()
Let callers take care of handling the empty optional case (undefined in
the spec).
2023-02-11 21:47:57 +00:00
Linus Groh
fcdabd179a LibJS: Remove unused forwarding getters from SymbolObject 2023-02-11 21:47:57 +00:00
Linus Groh
89700a2101 LibJS: Rename Symbol::to_deprecated_string() to descriptive_string()
This implements the spec's SymbolDescriptiveString AO and should be
named accordingly.
2023-02-11 21:47:57 +00:00
Aliaksandr Kalenik
ac440e6c0e LibWeb: Scale font size to device pixels 2023-02-11 20:59:13 +00:00
Aliaksandr Kalenik
1cc8895e4b LibGfx: Introduce with_size method for Font 2023-02-11 20:59:13 +00:00
Tim Ledbetter
d910dd345e Assistant: Allow arguments in AppProvider queries 2023-02-11 19:32:24 +00:00
Tim Ledbetter
3b446fba34 LibDesktop: Pass an optional arguments list to AppFile::spawn() 2023-02-11 19:32:24 +00:00
Tim Ledbetter
baaf97787b FileManager: Show directory size and file count in PropertiesWindow
When displaying properties for a directory, the PropertiesWindow now
shows: the total number of files, the total number of subdirectories,
and the total size of all files, in bytes.

These numbers are calculated on a background thread, and current
progress is displayed to the user every 100ms.
2023-02-11 19:32:07 +00:00
Tim Ledbetter
d2e1f6ff57 FileManager: Propagate errors from PropertiesWindow initialization 2023-02-11 19:32:07 +00:00
Luke Wilde
588dae8aa6 LibJS/Temporal: Allow annotations after YYYY-MM and MM-DD
This is a normative change in the Temporal spec.

See: 160e836
2023-02-11 18:42:32 +00:00
Karol Kosek
421b1eee49 WindowServer: Restore cursor animation
This regressed in 6edc0cf5ab.
2023-02-11 14:34:56 +00:00
Lucas CHOLLET
db80425a65 LibGUI: Remove the Core::File overload of write_to_file()
One less usage of `Core::File`, yay!
2023-02-11 14:20:26 +00:00
Lucas CHOLLET
107e15c5bc LibGUI: Base write_to_file(StringView path) on the stream overload
`write_to_file(StringView path)` was based on the `Core::File` overload.
The return type also changed from `bool` to `ErrorOr<void>` to ease
error propagation.
2023-02-11 14:20:26 +00:00
Lucas CHOLLET
be28800e0d FileManager: Factorize code to handle drag-and-drop
The treeview and the breadcrumbbar used to be on one side, sharing
drag-and-drop handling and on the other side the directory view had
its one logic.

This patch factorizes both versions, in the meantime upgrading the
version used by the treeview/breadcrumbbar that was left behind. It now
uses the copy dialog :^).
2023-02-11 14:18:13 +00:00
Nico Weber
0c4bbf5be3 AK: Move try_make_ref_counted() to NonnullRefPtr.h 2023-02-11 08:53:00 -05:00
Nico Weber
3c842d9d76 AK: Move try_make() to NonnullOwnPtr.h 2023-02-11 08:53:00 -05:00
Linus Groh
6bc6085219 Meta: Mark myself as a CODEOWNER of a few more things
Browser, Ladybird, the neofetch & python3 ports I added.
2023-02-11 13:26:47 +00:00
Linus Groh
ee68eba0ac LibWeb: Implement Headers.getSetCookie()
This is a normative change in the Fetch spec.
See: e4d3480

This also implements the changes to the 'sort and combine' algorithm,
which now treats "set-cookie" headers differently, and is exposed to JS
via the Headers' iterator.

Passes all 21 WPT tests :^)
http://wpt.live/fetch/api/headers/header-setcookie.any.html
2023-02-11 13:14:26 +00:00