summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/Bindings
AgeCommit message (Collapse)Author
2022-06-29LibWeb: Use CSO if running script is null in HostPromiseRejectionTrackerLuke Wilde
2022-06-29LibWeb: Implement WindowEventHandlersLuke Wilde
2022-06-27LibWeb: Add CDATASectionLuke Wilde
Not used for anything currently other than exposing it on the Window object. This allows Web Components Polyfills to patch its prototype.
2022-06-13LibWeb: Add the ability to retrieve a WebGL context from getContextLuke Wilde
2022-06-13LibWeb: Introduce the WebGL namespace and add WebGLContextEventLuke Wilde
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.