-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cherry-pick 29 ladybird PRs, and update GN build #25570
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
All tests at now pass: http://wpt.live/webstorage/defineProperty.window.html (cherry picked from commit 7a663162975a7193f1d77abf9cb0e574e4017d8e)
Since `Storage::item_value` never returns an empty Optional, and since `PlatformObject::is_supported_property_index` only returns false when `item_value` returns an empty Optional, the loop in `PlatformObject::internal_own_property_keys` will never terminate when executed on a `Storage` instance. This fix allows youtube.com to load successfully :^) (cherry picked from commit cc0fce3983932b27b46eb783adbed10842837852)
This was preventing https://ubereats.com/ from fully loading, because they are attempting to overwrite setItem. They seem to be trying to add error logging to setItem if it throws, as all they do is add a try/catch block that emits an error log to their monitoring service if it throws. However, because Storage is a legacy platform object with a named property setter (setItem), it will call setItem with the stringified version of the function. This is actually expected as per the spec, Firefox (Gecko) and Epiphany (WebKit) does this too, but Chromium does not as it actually overwrites the function with the new function and does not store the stringified function. The problem is that we had the LegacyOverrideBuiltIns flag accidentally set, so it would return the stored string instead of the built-in function (hence the name), then it would try and call it and throw a "not a function" error. This prevented their JS from going any further. This fix allows their UI to fully load and be fully interactive, though it is quite slow at the moment! (cherry picked from commit faf6fd11894ac1c1d8aeeb35cb3723c66f900f1a)
(cherry picked from commit 12442ca4308267b82e7ef81e6db1f326ee19f495)
When the "Consume a component value from input, and do nothing." step in `Parser::consume_the_remnants_of_a_bad_declaration` was executed, it would allocate a `ComponentValue` that was then immediately discarded. Add explicitly `{}_and_do_nothing` functions for this case that never allocate a `ComponentValue` in the first place. Also remove a `(Token)` cast, which was unnecessarily copying a `Token` as well. (cherry picked from commit 3f5e32ee8464a3bc92bc52f12d90914fa74a5f52)
The source code position cache was moved from a line based approach to a "chunk"-based approach to improve performance on large, minified JavaScript files with few lines, but this has had an adverse effect on _multi-line_ source files. Reintroduce some of the old behaviour by caching lines again, with some added sanity limits to avoid caching empty/overly small lines. Source code positions in files with few lines will still be cached less often, since minified JavaScript files can be assumed to be unusually large, and since stack traces for minified JavaScript are less useful as well. On WPT tests with large JavaScript dependencies like `css/css-masking/animations/clip-interpolation.html` this reduces the amount of time spent in `SourceCode::range_from_offsets` by as much as 99.98%, for the small small price of 80KB extra memory usage. (cherry picked from commit 1b3f8e1e9ad14f0777188bd6eba06e42ffd98961)
This makes these values the same as `start` and `end`. While this is not entirely correct, it is better than centering which is what we did previously. This fixes misaligned images on https://nos.nl (cherry picked from commit 2ee7e555f24f04ed370630836c556a7dee6dd23a)
Most computed border-radii contain their initial values, and since the normalized initial border radii are always zero, there is no need to do expensive floating point math to normalize them. (cherry picked from commit acaf01bf7b6bd2d952dda8d5375be8c09bd84294)
m_hover_label did not have checks if the mouse is in the same location. This caused clickable URLs to be hidden. Also shortened the label text to not be longer than half of the window. (cherry picked from commit edf29857f8f8b669c45d673b088d9c0236659d73)
This increases the animation length on this test as it has been failing for me locally. (cherry picked from commit 366f15b441abb2c3c3b244188edaa86e10712dcd)
This was removed from the spec. (cherry picked from commit 7c9a162f994caeeeaf8ca3bfcc4a75bee1609b91)
(cherry picked from commit e27c59047a0deebf132ab0822db32cfe064c14ad)
(cherry picked from commit 6ec06a01a2e3bd8397716fcfac6d301ab09c63bc)
(cherry picked from commit 3e69794c7d78e30591d62b4455a32e8a7ec0f052)
(cherry picked from commit e2b6ab4a699a01981f7c369d845173263e7e2801)
(cherry picked from commit e08f6a69b2e7cfcc363098555b5d90a0aab7e73c)
This aligns with the transition from the MathML Core Working Draft (27 November 2023) to the Editor's Draft (26 November 2024). (cherry picked from commit 10311fba87e3d2ef7029c10dc72524bcc45ada2d)
It is the responsibility of code that deals with TypedArrays to apply the byte offset and byte length. Not doing this caused Unity Web to crash, as they call getRandomValues with views into their full main memory. Previously, it would fill their entire memory of about 33.5 MB with random bytes. (cherry picked from commit 023c3aa5b091605316bf87a9fc516e54d03e5874)
(cherry picked from commit a64432ec130ba1ea2d0ef97f80af4f0393dd1901)
Resolves two FIXMEs in `::collapse()` and `::select_all_children()`. (cherry picked from commit d14fd8a6c88688349b015e5cafa4d7055bc34ad1)
Before, standalone SVG documents were stretched to fit the agent viewport. (cherry picked from commit f5e01192cce526a61d09d364222852ac1937bce8)
SVG document with specified width and height attributes is layed out with this width/height. (cherry picked from commit 5d77104c2f214f0a78d936c014cea21335083eaf)
Tests with different combinations of missing width, height and viewBox. All tests confirmed to work on Ladybird: - exactly the same as Chromium (131.0.6778.85) - almost the same as Firefox (129.0.2) - only difference: standalone-w.svg: same size, different alignment (cherry picked from commit 5d85f3a5c8c7fa5631ca5ece3f1ed95c68e480c4)
This defers accessing TA internal slots until we know we have a valid, attached TA. Our implementation has assertions that guard against this. (cherry picked from commit 962441b3cf34c1350877ac7c73351657c10f675b)
Speeds up the append_gc_graph function by preallocating space. This change reduces the time taken to dump the GC graph by 4% on about:blank. (cherry picked from commit 03ac6e6e87488fdc638cd3a84b2c59890bdba3cc)
Even though calling delete on a super property will ultimately throw a ReferenceError, we must return the allocated register for the result of the delete operation (which would normally be a boolean). If the delete operation is used in a return statement, the bytecode generator for the return statement must be able to assume the statement had some output. (cherry picked from commit 5947c37637f8ea3d4c323a04e5e5dfe9fad5a4d7)
The function AnimationEffect::phase() contained duplicated condition checks for the animation phase determination. This refactor eliminates the redundant checks by simplifying the logic. (cherry picked from commit 108701c8997e8484890adee8dbf1d4cb81a51c39)
(cherry picked from commit c357fbf03668c7da18140864b6317387d3d0fc39)
(cherry picked from commit f29457b61ecd5b7d4a27414259010eb7e1ae6d2c)
There are some special values for CSS::Selector::PseudoElement::Type which are after `KnownPseudoElementCount` and therefore not present in various arrays of pseudo elements, this leads to some errors, if a type after `KnownPseudoElementCount` is used without checking first. This adds explicit checks to all usages (cherry picked from commit d21bfda9001efd1f2303dc86af6c1f0a2d7da182)
This test checks the case, where an unknown pseudo element is used as second argument to getComputedStyle (cherry picked from commit 540c840755755844c84b0b9f41c50d2e835486fe)
In particular, if given a value of -2147483648, we would invoke signed integer overflow (which is UB). (cherry picked from commit edd3b14ddf049048e5d6bd952677133237adb652)
(cherry picked from commit 361c6f1b64393de645c6728712658a6052e857a1)
(cherry picked from commit 4cd1ef12d7bdddc7cbb235350d50fee65fbd5f34)
start_loading_next_url() is a no-op if there's a pending resource load, but not if that resource load has successfully loaded already. There is a delay between the font resource loading, and it being processed into a vector font. Calling font_with_point_size() in that gap would previously erase the previously-loaded font, if the font had multiple URLs to choose from. This fixes the icon font on mods.factorio.com :^) (cherry picked from commit 28388f1fd24c0019d2c4be7900584c6c536527ad)
github-actions
bot
added
the
👀 pr-needs-review
PR needs review from a maintainer or community member
label
Dec 21, 2024
github-actions
bot
removed
the
👀 pr-needs-review
PR needs review from a maintainer or community member
label
Dec 21, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
LadybirdBrowser/ladybird#1889
LadybirdBrowser/ladybird#1931
LadybirdBrowser/ladybird#2298
LadybirdBrowser/ladybird#2652
LadybirdBrowser/ladybird#2662
LadybirdBrowser/ladybird#2695
LadybirdBrowser/ladybird#2684
LadybirdBrowser/ladybird#2663
LadybirdBrowser/ladybird#1176
LadybirdBrowser/ladybird#2552(no LibGC yet)LadybirdBrowser/ladybird#2650
LadybirdBrowser/ladybird#2805(needs an echo server)LadybirdBrowser/ladybird#2801
LadybirdBrowser/ladybird#2722
LadybirdBrowser/ladybird#2834
LadybirdBrowser/ladybird#2487
LadybirdBrowser/ladybird#2838
LadybirdBrowser/ladybird#2852
LadybirdBrowser/ladybird#2857
LadybirdBrowser/ladybird#2842
LadybirdBrowser/ladybird#2880(fails tests)LadybirdBrowser/ladybird#2879
LadybirdBrowser/ladybird#2862(noparse_number_percentage_none_value
yet)LadybirdBrowser/ladybird#2814(noisomorphic_decode
yet)LadybirdBrowser/ladybird#2410(causes crashes at startup)LadybirdBrowser/ladybird#2806
LadybirdBrowser/ladybird#2899
LadybirdBrowser/ladybird#2907
LadybirdBrowser/ladybird#2903
LadybirdBrowser/ladybird#2924
LadybirdBrowser/ladybird#2963
LadybirdBrowser/ladybird#2908
LadybirdBrowser/ladybird#2981
LadybirdBrowser/ladybird#2667
LadybirdBrowser/ladybird#2993