summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/Forward.h
AgeCommit message (Collapse)Author
2022-11-01LibWeb: Add ConicGradientStyleValueMacDue
This commit adds a simple style value (which is an abstract image) to represent conic-gradient()s. This commit also starts to factor out some reusable parts of the linear-gradient() style value for other gradient types.
2022-11-01LibWeb: Refactor GridTrackSize classesmartinfalisse
Refactor various classes in the GridTrackSize file for the incoming named_tracks feature. Previously the ExplicitTrackSizing had mixed responsiblities with the newly-named GridRepeat class. This made it so it was not possible to have multiple repeats within a single 'GridTrackSizeList' definition. The MetaGridTrackSize class had both the responsibilities of being a container for minmax values as well as for simple GridSizes. By uniting the different possible values (repeat, minmax, default) into the ExplicitGridTrack class are able to be more expressive as to the different grid size modalities. The GridTrackSizeList will be useful as compared to a Vector<ExplicitGridTrack> since this way can keep track of the declared line names. These same line names are able to be declared within the values of a repeat function, hence the presence of a GridTrackSizeList inside the GridRepeat class.
2022-10-30LibWeb: Implement most of the 'Fetching' AOsLinus Groh
This implements the following operations from section 4 of the Fetch spec (https://fetch.spec.whatwg.org/#fetching): - Fetch - Main fetch - Fetch response handover - Scheme fetch - HTTP fetch - HTTP-redirect fetch - HTTP-network-or-cache fetch (without caching) It does *not* implement: - HTTP-network fetch - CORS-preflight fetch Instead, we let ResourceLoader handle the actual networking for now, which isn't ideal, but certainly enough to get enough functionality up and running for most websites to not complain.
2022-10-30LibWeb: Implement 'fetch params' structLinus Groh
2022-10-30LibWeb: Implement container class for fetch algorithmsLinus Groh
2022-10-30LibWeb: Implement 'fetch controller' structLinus Groh
2022-10-30LibWeb: Implement 'fetch timing info' structLinus Groh
2022-10-30LibWeb: Implement 'connection timing info' structLinus Groh
2022-10-29LibWeb: Remove outdated forward declarationsLinus Groh
2022-10-15LibWeb: Add parent classes for managing GridTrackSizesmartinfalisse
Add classes ExplicitTrackSizing and MetaGridTrackSize which will allow for managing properties like auto-fill and minmax. In the following CSS example there are 3 classes that will be used: grid-template-column: repeat(auto-fill, minmax(50px, 1fr) 75px); ExplicitTrackSizing - will contain the entire value. e.g. repeat(auto-fill, minmax(50px, 1fr) 75px) With a flag if it's a repeat, as well as references to the MetaGridTrackSizes which is the next step down. MetaGridTrackSize: Contain the individual grid track sizes. Here there are two: minmax(50px, 1fr) as well as 75px. This way can keep track if it's a minmax function or not, and the references to both GridTrackSizes in the case it is, or in just the one if it is not. GridTrackSize: Is the most basic element, in this case there are three in total; two of which are held by the first MetaGridTrackSize, and the third is held by the second MetaGridTrackSize. Examples: 50px, 1fr and 75px.
2022-10-09LibWeb: Re-implement HTML::Navigator using IDLAndrew Kaster
Get rid of the bespoke NavigatorObject class and use the modern IDL strategies for creating platform objects to re-implement Navigator and its associcated mixin interfaces. While we're here, implement it in a way that brings WorkerNavigator up to spec :^)
2022-10-01LibWeb: Move Web prototypes and constructors to new Intrinsics objectAndrew Kaster
This Intrinsics object hangs off of a new HostDefined struct that takes the place of EnvironmentSettingsObject as the true [[HostDefined]] slot on JS::Realm objects created by LibWeb. This gets the intrinsics off of the GlobalObject, Window, similar to the previous refactor of LibJS to move the intrinsics into the Realm's [[Intrinics]] internal slot. A side effect of this change is that we cannot fully initialize a Window object until the [[HostDefined]] slot has been installed into the realm, which happens with the creation of the WindowEnvironmentSettingsObject. As such, any Window usage that has not been funned through a WindowESO will not have any cached Web prototyped or constructors, and will not have Window APIs available to javascript code. Currently this seems limited to usage of Window in the CSS parser, but a subsequent commit will clean those up to take Realm as well. However, this commit compiles so let's cut it off here :^).
2022-09-27LibWeb: Implement '5.5. Response class' from the Fetch API :^)Linus Groh
2022-09-27LibWeb: Implement '5.4. Request class' from the Fetch API :^)Linus Groh
2022-09-27LibWeb: Implement '5.3. Body mixin' from the Fetch API :^)Linus Groh
This will be used to share functionality between Request and Response.
2022-09-27LibWeb: Add referrer policy to Fetch::Infrastructure::RequestLinus Groh
The enum is in its own directory and namespace as there's a standalone spec for it, that will later also house AOs. - https://w3c.github.io/webappsec-referrer-policy/ - https://www.w3.org/TR/referrer-policy/
2022-09-25LibWeb: Move DOMException from DOM/ to WebIDL/Linus Groh
2022-09-25LibWeb: Move ExceptionOr from DOM/ to WebIDL/Linus Groh
This is a concept fully defined in the Web IDL spec and doesn't belong in the DOM directory/namespace - not even DOMException, despite the name :^)
2022-09-25LibWeb: Add CSS::Size to represent the full range of CSS size valuesAndreas Kling
Until now, we've been using CSS::LengthPercentage, sometimes wrapped in Optional, to represent CSS sizes. This meant we could not support modern values like `min-content`, `max-content`, `fit-content(<length>)`. We were also conflating `none` and `auto` which made the `min-*` and `max-*` properties confusing. The new CSS::Size class covers all possible size values as individual substates. It'll be quite a bit of work to make all layout code aware of the additional features, this patch merely makes the new type available.
2022-09-24LibWeb: Move WindowProxy from Bindings/ to HTML/Linus Groh
2022-09-24LibWeb: Move CallbackType from Bindings/ to WebIDL/Linus Groh
Let's stop putting generic types and AOs from the Web IDL spec into the Bindings namespace and directory in LibWeb, and instead follow our usual naming rules of 'directory = namespace = spec name'. The IDL namespace is already used by LibIDL, so Web::WebIDL seems like a good choice.
2022-09-22LibWeb: Move extract_body() into FetchLinus Groh
2022-09-22LibWeb: Start fleshing out the ReadableStream interfaceLinus Groh
This is so we can just assume it exists in Fetch APIs (while still skipping functionality that relies on a full implementation, of course).
2022-09-20LibWeb: Implement "browsing context group" concept from the HTML specAndreas Kling
2022-09-18LibWeb: Add missing includesBen Wiederhake
This remained undetected for a long time as HeaderCheck is disabled by default. This commit makes the following file compile again: // file: compile_me.cpp #include <LibWeb/HTML/CrossOrigin/CrossOriginOpenerPolicy.h> // That's it, this was enough to cause a compilation error. Likewise for most other files touched by this commit.
2022-09-18LibWeb: Rename Attribute to AttrAndreas Kling
This name is not very good, but it's what the specification calls it.
2022-09-16LibWeb: Add FilterValueListStyleValueMacDue
This style value holds a list of CSS filter function calls e.g. blur(10px) invert() grayscale() It will be used to implement backdrop-filter, but the same style value can be used for the image filter property. (The name is a little awkward but it's referenced to as filter-value-list in the spec too).
2022-09-15LibWeb: Resolve cyclic declaration/definitions involving LengthBen Wiederhake
This remained undetected for a long time as HeaderCheck is disabled by default. This commit makes the following file compile again: // file: compile_me.cpp #include <LibWeb/CSS/GridTrackSize.h> // That's it, this was enough to cause a compilation error.
2022-09-07LibWeb+WebContent: Add abstraction layer for event loop and timersAndreas Kling
Instead of using Core::EventLoop and Core::Timer directly, LibWeb now goes through a Web::Platform abstraction layer instead. This will allow us to plug in Qt's event loop (and QTimer) over in Ladybird, to avoid having to deal with multiple event loops.
2022-09-06LibWeb: Make DOMException GC-allocatedAndreas Kling
2022-09-06LibWeb: Make WorkerNavigator GC-allocatedAndreas Kling
2022-09-06LibWeb: Make WorkerLocation GC-allocatedAndreas Kling
2022-09-06LibWeb: Make IntersectionObserver GC-allocatedAndreas Kling
2022-09-06LibWeb: Make URL, URLSearchParams & URLSearchParamsIterator GC-allocatedAndreas Kling
2022-09-06LibWeb: Make ResizeObserver GC-allocatedAndreas Kling
2022-09-06LibWeb: Make IdleDeadline GC-allocatedAndreas Kling
2022-09-06LibWeb: Make Selection GC-allocatedAndreas Kling
2022-09-06LibWeb: Make Crypto GC-allocatedAndreas Kling
2022-09-06LibWeb: Make Headers and HeadersIterator GC-allocatedAndreas Kling
2022-09-06LibWeb: Make Blob and File GC-allocatedAndreas Kling
2022-09-06LibWeb: Make TextDecoder GC-allocatedAndreas Kling
2022-09-06LibWeb: Make TextEncoder GC-allocatedAndreas Kling
2022-09-06LibWeb: Make DOMRect, DOMRectReadOnly and DOMRectList GC-allocatedAndreas Kling
2022-09-06LibWeb: Make DOMPoint and DOMPointReadOnly GC-allocatedAndreas Kling
2022-09-06LibWeb: Make SubtleCrypto GC-allocatedAndreas Kling
2022-09-06LibWeb: Make Storage GC-allocatedAndreas Kling
2022-09-06LibWeb: Make XMLSerializer GC-allocatedAndreas Kling
2022-09-06LibWeb: Make TextMetrics GC-allocatedAndreas Kling
2022-09-06LibWeb: Make Path2D GC-allocatedAndreas Kling
2022-09-06LibWeb: Make CanvasGradient GC-allocatedAndreas Kling