Sam Atkins
b684bab5f1
LibWeb: Make :host()
take a <compound-selector>
...
This matches the spec:
https://drafts.csswg.org/css-scoping-1/#selectordef-host
2023-08-12 16:26:32 +02:00
Sam Atkins
f76c614a84
LibWeb: Generate PseudoClass metadata
...
The usual to/from-string functions, and metadata about whether the
pseudo-class is a a function or not, and what type of parameter it
takes.
2023-08-12 16:26:32 +02:00
Jonah
cce50b1841
LibWeb: Add MathML Namespace to IDL Generator
...
This will make the codegen produce code for MathML IDL that doesn't
fail to compile in confusing ways.
2023-08-12 07:59:23 +01:00
Andreas Kling
97ebfd9f0f
LibJS: Make Value::to_string_without_side_effects() infallible
...
Work towards #20449 .
2023-08-09 17:09:16 +02:00
Andreas Kling
1a27c525d5
LibJS: Make PrimitiveString::create() infallible
...
Work towards #20449 .
2023-08-09 17:09:16 +02:00
Andreas Kling
18c54d8d40
LibJS: Make Cell::initialize() return void
...
Stop worrying about tiny OOMs.
Work towards #20405
2023-08-08 07:39:11 +02:00
Lucas CHOLLET
3f35ffb648
Userland: Prefer _string
over _short_string
...
As `_string` can't fail anymore (since 3434412
), there are no real
benefits to use the short variant in most cases.
2023-08-08 07:37:21 +02:00
Andreas Kling
34344120f2
AK: Make "foo"_string infallible
...
Stop worrying about tiny OOMs.
Work towards #20405 .
2023-08-07 16:03:27 +02:00
Andreas Kling
ec24d7555a
LibWeb: Add a simple internals
objects only available during testing
...
This object is available as `window.internals` (or just `internals`) and
is only accessible while running in "test mode".
This first version only has one API: gc(), which triggers a garbage
collection immediately.
In the future, we can add more APIs here to help us test parts of the
engine that are hard or impossible to reach via public web APIs.
2023-08-06 15:26:34 +02:00
Andrew Kaster
de1726caee
BindingsGenerator: Only truncate generated files if they have changed
...
Rework the write_if_changed logic to properly truncate the output file.
The original logic would not truncate the file, leading to extra junk
at the end of files if the IDL files shrunk between builds.
2023-08-04 10:06:41 -06:00
Karol Kosek
d94a0623d0
Meta: Truncate generated IDL source files
...
3dd3120a8a
changed open mode from Write to
ReadWrite, which stopped truncating files.
This could be noticed by building a slightly older branch, as compiling
it gave compile errors.
2023-08-04 15:59:16 +02:00
Nico Weber
ecef13338e
Meta: Only write first output file to depfile
...
There's no advantage to writing more than one file, and it lets the
depfile work with older versions of ninja.
2023-07-31 14:55:03 -06:00
Andreas Kling
cb8664e2e1
LibWeb/BindingsGenerator: Fix the build
...
I'm not sure why this didn't break on CI, but none of my machines were
able to build without this change.
2023-07-31 07:39:49 +02:00
Andrew Kaster
3dd3120a8a
Meta+BindingsGenerator: Only invoke BindingsGenerator once per IDL file
...
This reduces the number of tasks to schedule, and the complexity of the
build system integrations for the BindingsGenerator. As a bonus, we move
the "only write if changed" feature into the generator to reduce the
build system load on generated files for this generator.
2023-07-30 17:50:44 -06:00
Andreas Kling
13d5d47b56
LibWeb: Implement the CSS all
property
...
This sets all longhand values to one of initial, inherit, unset or
revert. Note that revert is not supported yet, but will be soon.
2023-07-29 19:16:08 +02:00
Timothy Flynn
9d7215c636
LibJS+LibWeb: Move IteratorOperations.h AOs to Iterator.h
...
Rather than splitting the Iterator type and its AOs into two files,
let's combine them into one file to match every other JS runtime object
that we have.
2023-07-19 14:11:43 +01:00
Timothy Flynn
5703833116
LibJS+LibWeb: Refactor GetIterator to use GetIteratorFromMethod
...
This is an editorial change in the ECMA-262 spec. See:
956e5af
This splits the GetIterator AO into two AOs, to remove some recursion
and to (soon) remove optional parameters.
2023-07-19 06:56:51 +02:00
Kenneth Myhra
90fdd598c2
LibWeb: Make sure we do not generate duplicate variable names
2023-07-15 11:59:39 +02:00
Sam Atkins
618c0402a7
LibWeb: Generate parsing code for CSS math functions
2023-07-15 10:23:33 +02:00
Ali Mohammad Pur
efa55673cd
Meta/CodeGenerators+LibWeb: Add support for 'easing-function' CSS values
...
This commit makes it possible to let properties accept easing functions
as values, which will be used in a later commit to implement
animation-timing-function.
2023-07-13 05:10:41 +02:00
Ali Mohammad Pur
dd073b2711
Meta/CodeGenerators+LibWeb: Implement parsing CSS easing functions
...
This only implements the parser bits, no functionality is implemented,
and no properties are parsed because of this.
2023-07-13 05:10:41 +02:00
Luke Wilde
165abafb80
LibWeb: Add initial implementation of IntersectionObserver
...
The main missing features are rootMargin, proper nested browsing
context support and content clip/clip-path support.
This makes images appear on some sites, such as YouTube and
howstuffworks.com.
2023-07-07 05:27:25 +02:00
Jonah
e9840bfd4e
LibWeb: Build out the ARIA role model
...
We now have implemented the ARIA role model. These classes will
control which states and properties are exposed to end users.
2023-07-06 11:21:36 +01:00
Sam Atkins
38f954cba5
LibWeb: Generate function for what properties resolve percentages to
...
This is required by "determine the type of a calculation".
https://www.w3.org/TR/css-values-4/#determine-the-type-of-a-calculation
2023-07-06 09:28:16 +02:00
Daniel
30e67721ae
Meta: Fix IDL binding generation for dictionary members
...
- Previously was generating bad syntax and missed a snakecase conversion
2023-06-28 05:22:51 +02:00
Sam Atkins
acaf2368ad
CodeGenerators: Port GenerateCSSValueID to new SourceGenerator API
2023-06-17 17:48:06 +01:00
Sam Atkins
acb600496b
CodeGenerators: Port GenerateCSSTransformFunctions to new SourceGen API
2023-06-17 17:48:06 +01:00
Sam Atkins
d197b4b051
CodeGenerators: Port GenerateCSSPropertyID to new SourceGenerator API
2023-06-17 17:48:06 +01:00
Sam Atkins
e7dd5e5b05
CodeGenerators: Port GenerateCSSMediaFeatureID to new SourceGen API
2023-06-17 17:48:06 +01:00
Sam Atkins
17473e3d5e
CodeGenerators: Port GenerateCSSEnums to new SourceGenerator API
2023-06-17 17:48:06 +01:00
Sam Atkins
8e53e5afc4
AK: Propagate errors from SourceGenerator::fork()
2023-06-17 17:48:06 +01:00
Sam Atkins
540cc42618
CodeGenerators: Convert GeneratorUtil to String
...
I may have got a little carried away propagating some of the errors. :^)
2023-06-17 17:48:06 +01:00
Sam Atkins
5cdcd135ab
LibWeb: Add parsing for CSS <paint>
values
...
This gets rid of a couple of FIXMEs in Properties.json :^)
2023-06-16 07:03:57 +02:00
Timothy Flynn
6520a9a849
LibWeb: Support TrackEvent instances with an AudioTrack track type
2023-06-14 17:54:40 +02:00
Sam Atkins
5e3da93f1a
LibWeb: Add RatioStyleValue and parsing
2023-06-09 20:37:51 +02:00
Andreas Kling
7f90b0cab7
LibWeb: Don't override prototype on generated iterator prototypes
...
Generated iterator prototypes already have the IteratorPrototype as
their prototype, but we were incorrectly hijacking them and rerouting
to ObjectPrototype.
Regressed in cfe663435e
.
2023-06-08 10:05:56 +02:00
Andreas Kling
941092e3ad
LibWeb: Make CSS/Properties.json "logical-aliases-for" an array
...
This allows us to specify all aliases properties instead of just one.
2023-06-06 21:02:04 +02:00
Sam Atkins
2d7308cb88
LibWeb: Support infinite range for CSS properties
...
This makes `[-∞,∞]` generate valid code, instead of `return ;`
2023-06-02 20:04:23 +02:00
Sam Atkins
51f75d7071
LibWeb: Generate bounds-checking functions for CSS basic types
2023-06-02 17:46:35 +02:00
Ali Mohammad Pur
0e3fb39a0a
LibWeb: Make 'optional BufferSource' IDL arguments actually optional
...
Previously this was compiled to require an object despite the IDL file
specifying 'optional'.
This commit makes IDLGenerator respect this modifier, and fixes the only
affected instance.
2023-05-30 12:50:13 +02:00
Ali Mohammad Pur
279924242d
LibWeb: Add CSS CompositeStyleValue
...
This represents the value of properties assigned via their shorthands,
and is expanded when computing actual property values.
2023-05-29 05:35:41 +02:00
Karthik Karanth
72507c318a
LibWeb: Add logical-alias-for in Properties.json
...
This allows for succint definitions of logical properties, by allowing
them to inherit initial values, valid identifiers, etc from another
property
2023-05-27 16:02:33 +02:00
Matthew Olsson
f63d027b0b
Meta: Fix unresolvable reference to WebIDL::OperationReturnsPromise
2023-05-27 13:55:14 +02:00
Sam Atkins
f6fae315e3
LibWeb: Add CustomIdentStyleValue, along with parsing for it
...
This corresponds to the `<custom-ident>` type in CSS grammar.
2023-05-25 15:31:20 +01:00
Sam Atkins
6b8f484114
LibWeb: Stop generating now-unused property_accepts_value()
function
2023-05-25 06:36:10 +02:00
Sam Atkins
465ecf37c2
LibWeb: Make property_id_from_string()
return Optional
2023-05-25 06:36:10 +02:00
Sam Atkins
03613dc14d
LibWeb: Make value_id_from_string()
return Optional
2023-05-25 06:36:10 +02:00
Sam Atkins
9b61f79eae
LibWeb: Generate property_accepts_[identifier/type]()
functions
...
These will be used to parse StyleValues more intelligently.
2023-05-25 06:36:10 +02:00
Luke Wilde
a5936864d9
LibWeb: Stub AudioContext constructor
...
This is enough to make Discord not throw up "Well this is awkward" on
login.
2023-05-22 06:07:05 +02:00
Andreas Kling
cfe663435e
LibWeb+LibJS: Don't lazily construct web prototypes in cell constructors
...
It's not safe to allocate from the GC heap while in the constructor of a
GC heap cell. (Because if this ends up triggering a collection, we may
end up trying to call through an uninitialized vtable).
This was already done safely in the initialize() virtual in much of
LibJS and LibWeb. This patch moves the logic for prototypes, mixins,
and CSSStyleDeclaration as well.
Fixes a long-standing GC crash that was pretty easy to reproduce by
refreshing https://vercel.com/
2023-05-21 14:23:58 +02:00