forked from LadybirdBrowser/ladybird
-
Notifications
You must be signed in to change notification settings - Fork 0
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
Ci merge conflict labeler #1
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
In particular, the processBody callback here *can't* move the processBodyError callback. It is needed a few lines after. Passing by value is safe and intended here.
The entire purpose of this AO is to avoid handling exceptions, which we can do now that the underlying AOs do not throw exceptions on OOM.
We now do this step asynchronously.
This will be needed once fetched response bodies are read using streams.
This very partially implements the spec's "finalize" steps for piping streams.
The spec for filtered responses states: Unless stated otherwise a filtered response’s associated concepts (such as its body) refer to the associated concepts of its internal response. This includes setting its associated concepts. In particular, when the filtered response's body is set upon fetching a request with integrity metadata, we must set the internal response's body instead. Further restrictions that apply to filtered response subclasses (such as opaque filtered responses having a status code of 0) are already implemented.
By actually using streams, they get marked as disturbed and the `.bodyUsed` API starts to work. Fixes at least 94 subtests in the WPT `fetch/api/request` test suite. Co-authored-by: Timothy Flynn <trflynn89@pm.me>
We're not converting `WebIDL::DOMException`, but `WebIDL::Exception` instead.
If a function isn't going to be escaped from the current context, there's no need to wrap the lambda in a GC allocation.
These variables are all captured in queued events or other event loop tasks, but are all guarded by event loop spins later in the function. The IGNORE_USE_IN_ESCAPING_LAMBDA will soon be required for all locals that are captured by ref in GC::Function as well as AK::Function.
Using a default reference capture for these kinds of tasks is dangerous and prone to error. Some of the variables should for sure be captured by value so that we can keep a GC object alive rather than trying to refer to stack objects.
Whenever we create a GC function, it should always be so that we can pass it to a platform event loop spin, HTML event loop spin, or some queued task on the HTML event loop. For every use case, any local variables will be out of scope by the time the function executes.
This check asserts that templated types will never escape. Which doesn't hold up at all in practice.
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.9 to 4.7.2. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](JamesIves/github-pages-deploy-action@v4.6.9...v4.7.2) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
This aligns our behaviour with WebKit and Chrome. See: whatwg/html@ddd2d0dd
Before, on *every* mouse-move event, `page_did_request_cursor_change()` virtual function would get called, requesting to change cursor to the event's mouse position's cursor. Now, the page keeps track of the last cursor change that was requested ("page's current cursor") and only requests cursor change again if and only if the current cursor is not already the one that is required.
Before, on a mouse-move event, if the hovered html element did not have a tooltip or it was not a link, `page_did_leave_tooltip_area()` and `page_did_unhover_link()` virtual functions would get called. Now, the page remembers if it is in a tooltip area or hovering a link and only informs of leaving or unhovering only if it was.
Instead of recursively iterating all descendants of the common ancestor of the new line range that are not contained by that range, skip the entire node tree as soon as we determine they're not.
The spec even warned us about the reference potentially being null.
The DOM spec defines what it means for an element to be an "editing host", and the Editing spec does the same for the "editable" concept. Replace our `Node::is_editable()` implementation with these spec-compliant algorithms. An editing host is an element that has the properties to make its contents effectively editable. Editable elements are descendants of an editing host. Concepts like the inheritable contenteditable attribute are propagated through the editable algorithm.
No functional changes.
This triggers a mouse button press without the up event, allowing us to e.g. simulate a selection by moving the mouse while keeping the button depressed.
The relation from a paintable to a DOM node is not always set.
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.
The WebIDL for the `Headers` constructor specifies that the `init` parameter is optional and must be of type `HeadersInit`. While the parameter can be omitted (or explicitly set to `undefined`), `null` is not a valid value. This change fixes at least 2 "Create headers with null should throw" WPT subtests which I have imported in this patch.
Previously it would only register the hook for JavaScript constructed Memory objects. This allows Ruffle to load again.
The presence of padding in the base64 fields and the typo made plenty of WPT tests fail. The issue was discovered while implementing `wrapKey` and `unwrapKey` in the next commits.
The ASN1 structure for PCKS#8 was wrong and missing one wrapping of the key in a OctetString. The issue was discovered while implementing `wrapKey` and `unwrapKey` in the next commits.
This serves as a control for the changes in the next commits. I originally had a regression, but did not notice because the tests were missing.
Previously, if `nullptr` was passed as params for `wrap_in_private_key_info` or `wrap_in_subject_public_key_info` an ASN1 null was serialized. This was not the intended behaviour for many. The issue was discovered while implementing `wrapKey` and `unwrapKey` in the next commits.
The presence of padding in the base64 fields made plenty of WPT tests fail. The issue was discovered while implementing `wrapKey` and `unwrapKey` in the next commits.
The presence of padding in the base64 fields made plenty of WPT tests fail. Additionally, export was performed with the wrong public key. The issue was discovered while implementing `wrapKey` and `unwrapKey` in the next commits.
The ASN1 structure for PCKS#8 was wrong and missing one wrapping of the key in a OctetString. The issue was discovered while implementing `wrapKey` and `unwrapKey` in the next commits.
The ASN1 structure for PCKS#8 was wrong and missing one wrapping of the key in a OctetString. The issue was discovered while implementing `wrapKey` and `unwrapKey` in the next commits.
Add the ability to parse a `JsonWebKey` structure from a raw string.
This implements the last WebCryptoAPI methods `wrapKey` and `unwrapKey`. Most of the functionality is already there because they rely on `encrypt` and `decrypt`. The only test failures are for `AES-GCM` which is not implemented yet.
Deserialize the fetch controllers abort reason according to the spec. Currently fetch does not support a scenario where this actually happens.
When aborting fetch, the request stream now gets closed and the response stream errors.
This allows for the function to be used outside `GHash`. In particular, it'll be used for IV preparation in AES-GCM.
AES-GCM should accept 96-bits keys as is. Any other key should be preprocessed with GHASH.
Adds ~400 WPT test passes.
This change imports the remaining HTML-AAM tests from WPT that haven’t yet been imported in any previous PRs — giving us complete in-tree regression-testing coverage for all available WPT tests for the requirements in the HTML-AAM spec.
Matching DOM::Event.
An AK::String works fine for a USVString as a USVString is just a more strict version of DOMString. Maybe we will have a different String type for it in the future, but for now using an AK::String is fine and we do not need this FIXME.
We do not concern ourselves with small OOM handling any longer. But the main point of this patch is that we are for some reason getting a build error with clang-19 here about ignoring a nodiscard return type inside JsonArray::try_for_each.
Auto popovers now correctly establish a close watcher when shown. This means popovers now correctly close with an escape key press. Also correctly hide open popovers when removed from the document.
Add the AES-KW (Key Wrap) implementation as of https://www.rfc-editor.org/rfc/rfc3394#section-4.2. Tests are taken from section 4 of RFC3394.
Add support for AES-KW for key wrapping/unwrapping. Very similar implementation to other AES modes. Added generic tests for symmetric import and specific AES-KW ones. Adds ~400 test passes on WPT. Now we do better than Firefox in `WebCryptoAPI/wrapKey_unwrapKey`!
This action adds and removes the new "conflicts" label to indicate whether a pull request is in need of conflict resolution. This both automatically informs the author of the PR that this is the case, if they have notifications enabled that is, and makes for an easier evaluation of the PR queue.
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.
No description provided.