Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-10-14 | LibWeb: Make intrinsic width/height/ratio a Box concept and simplify it | Andreas Kling | |
Apparently it's not only replaced elements that can have intrinsic sizes, so let's move this concept from ReplacedBox to Box. To avoid bloating Box, we make the accessors virtual. | |||
2021-10-14 | LibJS: Change normal_completion() parameter to Optional<Value> | Linus Groh | |
The Completion constructor `VERIFY()`s that the passed argument is not an empty Value, so normal_completion({}) would crash (although it's currently not being used anywhere). We want to pass an empty Optional<Value> instead. | |||
2021-10-14 | LibWeb: Stub out a basic IntersectionObserver interface | Timothy Flynn | |
Note there are a couple of type differences between the spec and the IDL file added in this commit. For example, we will need to support a type of Variant to handle spec types such as "(double or sequence<double>)". But for now, this allows web pages to construct an IntersectionObserver with any valid type. | |||
2021-10-14 | LibJS: Implement ShadowRealm.prototype.evaluate() | Linus Groh | |
2021-10-14 | LibJS: Implement ShadowRealm.prototype[@@toStringTag] | Linus Groh | |
2021-10-14 | LibJS: Start implementing ShadowRealm | Linus Groh | |
This commit adds the ShadowRealm object itself, its constructor, and prototype (currently empty). | |||
2021-10-14 | LibJS: Implement Wrapped Function Exotic Objects | Linus Groh | |
This is a new concept from the ShadowRealm API stage 3 proposal: https://tc39.es/proposal-shadowrealm/#sec-wrapped-function-exotic-objects | |||
2021-10-13 | LibWeb: Add spec comments to FFC layout algorithm step 2 | Andreas Kling | |
2021-10-13 | LibWeb: Add spec comments to FFC layout algorithm step 5 | Andreas Kling | |
2021-10-13 | LibWeb: Tidy up and add spec comments to FFC layout algorithm step 3 | Andreas Kling | |
2021-10-13 | LibWeb: Add CSS::FlexBasisData::is_definite() | Andreas Kling | |
This will allow some more expressive code in FlexFormattingContext. | |||
2021-10-13 | LibWeb: Add FFC::flex_container() and use throughout | Andreas Kling | |
Since FFC is only ever run() on the flex container, we can assume (but verify) that the run box is the flex container and use an accessor throughout. The end result: less parameter passing. | |||
2021-10-13 | LibWeb: Make FFC line and item vectors members instead of locals | Andreas Kling | |
This gives all member functions access to these vectors without having to pass them as arguments. | |||
2021-10-13 | LibWeb: Make various function parameters const in FlexFormattingContext | Andreas Kling | |
This is mainly to validate that inputs are treated as inputs only and don't get written to. | |||
2021-10-13 | LibWeb: Move FFC layout algorithm step 16 to a separate function | Andreas Kling | |
2021-10-13 | LibWeb: Move FFC layout algorithm step 15 to a separate function | Andreas Kling | |
2021-10-13 | LibWeb: Move FFC layout algorithm step 14 to a separate function | Andreas Kling | |
2021-10-13 | LibWeb: Move FFC layout algorithm step 12 to a separate function | Andreas Kling | |
2021-10-13 | LibWeb: Move FFC layout algorithm step 11 to a separate function | Andreas Kling | |
2021-10-13 | LibWeb: Move FFC layout algorithm step 8 to a separate function | Andreas Kling | |
2021-10-13 | LibWeb: Move FFC layout algorithm step 7 to a separate function | Andreas Kling | |
2021-10-13 | LibWeb: Move FFC layout algorithm step 6 to a separate function | Andreas Kling | |
2021-10-13 | LibWeb: Move FFC layout algorithm step 5 to a separate function | Andreas Kling | |
2021-10-13 | LibWeb: Move FFC layout algorithm step 4 to a separate function | Andreas Kling | |
2021-10-13 | LibWeb: Move FFC layout algorithm step 3 to a separate function | Andreas Kling | |
2021-10-13 | LibWeb: Move FFC layout algorithm step 2 into a separate function | Andreas Kling | |
Determining the available main and cross space is now done by a separate function. The signature is a little bit hairy since this function computes some things that are used by subsequent algorithm steps. Factoring can definitely be improved further. | |||
2021-10-13 | LibWeb: Turn FlexFormattingContext helper lambdas into member functions | Andreas Kling | |
Continuing on the quest towards making FlexFormattingContext readable. | |||
2021-10-13 | LibWeb: Call the FlexFormattingContext context box "flow_container" | Andreas Kling | |
This is what the spec calls it and makes the code much less ambiguous. | |||
2021-10-13 | LibWeb: Split out FFC's "generate anonymous flex items" to a function | Andreas Kling | |
Let's begin splitting the FlexFormattingContext layout algorithm into separate functions to make it more manageable. | |||
2021-10-13 | LibWeb: Fix bogus 'none' values for resolved min-width and min-height | Andreas Kling | |
In CSS 'none' is not a valid value for min-width or min-height. The fallback resolved value should be 'auto' for them. | |||
2021-10-13 | LibWeb: CSS display:position does not imply definite size | Andreas Kling | |
Per css-sizing-3: Additionally, the size of the containing block of an absolutely positioned element is always definite with respect to that element. As I understand this, it doesn't mean that all absolutely positioned boxes have definite size, but that the containing block of an absolutely positioned descendant has definite size from the perspective of the descendant. | |||
2021-10-13 | LibC: Use the new pread syscall to implement pread | Rodrigo Tobar | |
This new implementation of pread saves two lseek system calls and is thread-safe thanks to it simply forwarding the call to the pread system call. | |||
2021-10-13 | LibJS: Convert to_object() to ThrowCompletionOr | Linus Groh | |
2021-10-13 | LibJS: Convert to_primitive() to ThrowCompletionOr | Linus Groh | |
2021-10-13 | LibJS: Convert to_primitive_string() to ThrowCompletionOr | Linus Groh | |
2021-10-13 | LibJS: Convert to_utf16_string() to ThrowCompletionOr | Linus Groh | |
2021-10-13 | LibJS: Convert to_string() to ThrowCompletionOr | Linus Groh | |
Also update get_function_name() to use ThrowCompletionOr, but this is not a standard AO and should be refactored out of existence eventually. | |||
2021-10-12 | LibWeb: Mark elements for style update after their children change | Andreas Kling | |
2021-10-12 | LibWeb: Re-mark nodes as needing style after moving between documents | Andreas Kling | |
Since style update is driven by Document, moving a node with dirty style from one document to another means that we have to schedule a style update in the new document. | |||
2021-10-12 | LibWeb: Style update must recurse into nodes with dirty children | Andreas Kling | |
It's not enough to only visit nodes which are themselves dirty, we have to also visit those with dirty children. | |||
2021-10-12 | LibWeb: Remove a bunch of pointless "else" in EventHandler | Andreas Kling | |
2021-10-12 | LibWeb: Use strong pointers and null checks in handle_keydown() | Andreas Kling | |
2021-10-12 | LibWeb: Use strong pointers and null checks in handle_keyup() | Andreas Kling | |
2021-10-12 | LibWeb: Stop the style/layout update timers after updating style/layout | Andreas Kling | |
If we had a scheduled update of either of these kind, make sure to cancel it after performing an update. Otherwise we might do a redundant second update with the same results. This could happen if something schedules an async layout, and before it can happen, something requires a sync layout, which we do right away. | |||
2021-10-12 | LibWeb: Add missing upcalls in HTMLSelectElement | Andreas Kling | |
2021-10-12 | LibWeb: Add missing upcalls in HTMLInputElement | Andreas Kling | |
We need to call the base class in overrides of inserted() and removed_from(), or things like style invalidation will break. | |||
2021-10-11 | LibJS+LibWeb: Let WrapperGenerator deal with legacy_null_to_empty_string | Linus Groh | |
This concept is not present in ECMAScript, and it bothers me every time I see it. It's only used by WrapperGenerator, and even there only relevant in two places, so let's fully remove it from LibJS and use a simple ternary expression instead: cpp_name = js_name.is_null() && legacy_null_to_empty_string ? String::empty() : js_name.to_string(global_object); | |||
2021-10-11 | LibJS: Make sure queued promise jobs have an execution context when run | Andreas Kling | |
2021-10-11 | LibWeb: Flexbox: Assume container size before layouting children | Tobias Christiansen | |
Before layouting the children of a flex container we now either assume the parent's size or the specified size of the container. | |||
2021-10-11 | LibWeb: Flexbox: Use right margins when direction is column | Tobias Christiansen | |
Previously both branches of the if were the same which is obviously not correct. |