summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/Bindings
AgeCommit message (Collapse)Author
2022-05-13LibWeb: Add window.clientInformation propertyReimarPB
2022-05-11LibWeb: Add CSSSupportsRule wrapperSam Atkins
2022-05-11LibWeb: Add CSSMediaRule wrapperSam Atkins
2022-05-11LibWeb: Add CSSImportRule wrapperSam Atkins
2022-05-11LibWeb: Add CSSConditionRule wrapperSam Atkins
2022-05-11LibWeb: Add CSSGroupingRule wrapperSam Atkins
2022-05-11LibWeb: Add MediaList wrapperSam Atkins
Most of the pieces were already there, I'd just forgotten to actually wire them up.
2022-04-11LibWeb: Add SVGDefsElementSimon Danner
* Similarly to clipPath, this doesn't need to get rendered, so return no LayoutNode.
2022-04-10LibWeb: Sketch out a very basic SVG <clipPath> elementAndreas Kling
This element doesn't actually support anything at the moment, but it still massively speeds up painting performance on Wikipedia! :^) How? Because we no longer paint SVG <path> elements found inside <clipPath> elements. SVGClipPathElement::create_layout_node() returns nullptr which stops the layout tree builder from recursing further into the subtree, and so the <path> element never gets a layout or paint box. Mousing over Wikipedia now barely break 50% CPU usage on my machine :^)
2022-04-06LibWeb: Add basic constructor/prototype to exotic objectsIgor Pissolati
2022-04-04LibWeb: Use correct global object in legacy factoriesIgor Pissolati
2022-04-04LibWeb: Add legacy Option factory functionIgor Pissolati
2022-04-04LibWeb: Add spec comments to ImageConstructor::construct()Igor Pissolati
2022-04-02LibWeb: Add the requestIdleCallback/cancelIdleCallback APISimon Wanner
2022-04-02LibWeb: Expose IdleDeadline on the window objectSimon Wanner
2022-04-01Everywhere: Run clang-formatIdan Horowitz
2022-03-28LibWeb: Implement initial CSSFontFaceRule and FontFace classesSam Atkins
For now, this is the bare minimum that's needed: font-family and src.
2022-03-27LibWeb: Add fast-paths for wrapping already-wrapped C++ objectsAndreas Kling
If a C++ object already has a JS wrapper, we don't need to go through the expensive type checks to figure out which kind of wrapper to create. Instead, just return the wrapper we already have! This gives a noticeable increase in smoothness on Acid3, where ~10% of CPU time was previously spent doing RTTI type checks in wrap(). With these changes, it's down to ~1%.
2022-03-26LibWeb: Support navigator.javaEnabled() (always false)Andreas Kling
This removes exception spam about javaEnabled() on apple.com.
2022-03-20LibWeb: Add a barebones SVGTextContentElement with getNumberOfChars()Andreas Kling
2022-03-19DevTools+LibJS+LibWeb: Change class_name to use StringViewLenny Maiorani
This helps make the overall codebase consistent. `class_name()` in `Kernel` is always `StringView`, but not elsewhere. Additionally, this results in the `strlen` (which needs to be done when printing or other operations) always being computed at compile-time.
2022-03-18LibJS: Add infallible variant of VM::push_execution_context()Linus Groh
It makes no sense to require passing a global object and doing a stack space check in some cases where running out of stack is highly unlikely, we can't recover from errors, and currently ignore the result anyway. This is most commonly in constructors and when setting things up, rather than regular function calls.
2022-03-17Libraries: Use default constructors/destructors in LibWebLenny Maiorani
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#cother-other-default-operation-rules "The compiler is more likely to get the default semantics right and you cannot implement these functions better than the compiler."
2022-03-16LibWeb: Implement window.nameSimon Wanner
Right now the only functionality supported is getting/setting via JS and resetting when browsing cross origin. The HTML Specification (7.11 Browsing the web) also specifies how the name should be restored from history entries, but we don't have those yet.
2022-03-16LibWeb: Add stub implementation of HTMLOptionsCollectionSimon Wanner
This is a subtype of `DOM::HTMLCollection` that only holds `HTMLOptionElement`s. In this stub implementation only `item`, `namedItem` and `length`, inherited from HTMLCollection, are exposed. This is good enough for applications that only read the collection.
2022-03-10LibWeb: Add window.sessionStoragePaul Wratt
2022-03-09LibWeb: Add support for DOM's TreeWalkerAndreas Kling
This patch adds TreeWalker (created via Document.createTreeWalker()) which allows you to traverse a filtered view of the DOM in all directions.
2022-03-09LibWeb: Add basic support for DOM's NodeIterator and NodeFilterAndreas Kling
This patch adds NodeIterator (created via Document.createNodeIterator()) which allows you to iterate through all the nodes in a subtree while filtering with a provided NodeFilter callback along the way. This first cut implements the full API, but does not yet handle nodes being removed from the document while referenced by the iterator. That will be done in a subsequent patch.
2022-03-09LibWeb: Allow returning JS::ThrowCompletionOr<T> from wrapped functionsAndreas Kling
In some cases, we need more nuance than what DOM::ExceptionOr<T> offers.
2022-03-08LibWeb: Implement the WindowProxy exotic objectLinus Groh
A couple steps requiring working relationships between browsing contexts are currently FIXME'd - see #12917.
2022-03-08LibWeb: Implement 'cross-origin accessible window property name' conceptLinus Groh
2022-03-08LibWeb: Move Window from DOM directory & namespace to HTMLLinus Groh
The Window object is part of the HTML spec. :^) https://html.spec.whatwg.org/multipage/window-object.html
2022-03-06LibWeb: Implement the remaining LocationObject internal methodsLinus Groh
2022-03-06LibWeb: Implement the CrossOriginOwnPropertyKeys AOLinus Groh
2022-03-06LibWeb: Implement the CrossOriginSet AOLinus Groh
2022-03-06LibWeb: Implement the CrossOriginGet AOLinus Groh
2022-03-06LibWeb: Implement the CrossOriginGetOwnPropertyHelper AOLinus Groh
2022-03-06LibWeb: Implement the IsPlatformObjectSameOrigin AOLinus Groh
2022-03-06LibWeb: Implement the CrossOriginPropertyFallback AOLinus Groh
2022-03-06LibWeb: Implement the CrossOriginProperties AOLinus Groh
2022-03-06LibWeb: Implement the [[CrossOriginPropertyDescriptorMap]] internal slotLinus Groh
2022-03-05LibWeb: Implement LocationObject URL part getters closer to specLinus Groh
- Perform a typed this check - Use the 'associated URL' as the source of truth - Don't append default port number in the host getter - Don't return default port number in the port getter - Add empty checks to the hash and search getters instead of returning '#' and '?' strings from the string builder
2022-03-05LibWeb: Add LocationObject::url()Linus Groh
https://html.spec.whatwg.org/multipage/history.html#concept-location-url > A Location object has an associated url, which is this Location > object's relevant Document's URL, if this Location object's relevant > Document is non-null, and about:blank otherwise.
2022-03-05LibWeb: Add LocationObject::relevant_document()Linus Groh
https://html.spec.whatwg.org/multipage/history.html#relevant-document > A Location object has an associated relevant Document, which is this > Location object's relevant global object's browsing context's active > document, if this Location object's relevant global object's browsing > context is non-null, and null otherwise.
2022-03-05LibWeb: Add spec comments to LocationObjectLinus Groh
This revealed a variety of issues, mostly missing origin checks, conflating concepts like the 'associated URL', and serialization (incorrect fallback values, string vs number, etc). This commit fixes none of these issues, only adds FIXMEs.
2022-03-04LibWeb: Implement setTimeout/setInterval with ESO according to the specTimothy Flynn
Our setInterval implementation currently crashes on DuckDuckGo when it's invoked with a string argument. In this path, we were creating a native function to evaluate and execute that string. That evaluation was always returning a Completion, but NativeFunction expects ThrowCompletionOr. The conversion from Completion to ThrowCompletionOr would fail a VERIFY because that conversion is only valid if the Completion is an error; but we would trigger this conversion even on success. This change re-implements setTimeout & setInterval in direct accordance with the spec. So we avoid making that NativeFunction altogether, and DDG can progress past its invocation to the timer. With this change, we also have other features we did not previously support, such as passing any number of arguments to the timers. This does not implement handling of nesting levels yet.
2022-03-04LibWeb: Allow calling invoke-a-callback with an existing argument listTimothy Flynn
Some callers, e.g. setTimeout / setInterval, will want to invoke this AO with an arguments list retrieved from the JS VM (as opposed to invoking it with a variadic list at the call site).
2022-03-01LibWeb: Add origin property to window objectAlex M
2022-02-26LibWeb: Add simple ad-hoc version of window.postMessage()Andreas Kling
This allows us to use the wpt.live copy of the ACID3 test, which is kept updated, unlike the acidtests.org version.
2022-02-26LibWeb: Reorganize window.parent so it looks a bit more like the specAndreas Kling