1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 07:48:11 +00:00
serenity/Userland/Libraries/LibWeb/HTML
Luke Wilde f52ede23aa LibWeb: Return from "the end" during HTML fragment parsing
This will examine the algorithm known as "the end" from the HTML
specification, which executes when parsing HTML markup has completed,
and it's potential to observably run script or change certain
attributes.

This currently executes in our engine when parsing HTML received from
the internet during navigation, using document.{open,write,close},
setting the innerHTML attribute or using DOMParser. The latter two are
only possible by executing script.

This has been causing some issues in our engine, which will be shown
later, so we are considering removing the call to "the end" for these
two cases.

Spoiler: the implications of running "the end" for DOMParser will be
considered in the future. It is the only script-created HTML/XML parser
remaining after this commit that uses "the end", including it's XML
variant implemented as XMLDocumentBuilder::document_end().

This will only focus on setting the innerHTML attribute, which falls
under "HTML fragment parsing", which starts here in the specification:
https://html.spec.whatwg.org/multipage/parsing.html#parsing-html-fragments
44dd824764/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp (L3491)

While you may notice our HTMLParser::parse_html_fragment returns `void`
and assume this means no scripts are executed because of our use of
`WebIDL::ExceptionOr<T>` and `JS::ThrowCompletionOr<T>`, note that
dispatched events will execute arbitrary script via a callback, catch
any exceptions, report them and not propagate them. This means that
while a function does not return an exception type, it can still
potentially execute script.

A breakdown of the steps of "the end" in the context of HTML fragment
parsing and its observability follows:
https://html.spec.whatwg.org/multipage/parsing.html#the-end
44dd824764/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp (L221)

1. No-op, as we don't currently have speculative HTML parsing. Even if
   we did, we would instantly return after stopping the speculative
   HTML parser anyway.

2. No-op, document.{open,write,close} are not accessible from the
   temporary document.

3. No-op, document.readyState, window.navigation.timing and the
   readystatechange event are not accessible from the created temporary
   document.

4. This is presumably done so that reentrant invocation of the HTML
   parser from document.{write,close} during the firing of the events
   after step 4 ends up parsing from a clean state. This is a no-op, as
   the events after step 4 do not fire and are not accessible.

5. No-op, we set HTMLScriptElement::m_already_started to true when
   creating it whilst parsing an HTML fragment, which causes
   HTMLScriptElement::prepare_script to instantly bail, meaning
   `scripts_to_execute_when_parsing_has_finished` is always empty.

6. No-op, tasks are considered not runnable when the document does not
   have a browsing context, which is always the case in fragment
   parsing. Additionally, window.navigation.timing and the
   DOMContentLoaded event aren't reachable from the temporary document.

7. Almost a no-op, `scripts_to_execute_as_soon_as_possible` is always
   empty for the same reason as step 4. However, this step uses an
   unconditional `spin_until` call, which _is_ observable and causes
   one of the alluded to issues, which will be talked about later.

8. No-op, as delaying the load event has no purpose in this case, as
   the task in step 9 will set the current document readiness to
   "complete" and then return immediately after, as the temporary
   document has no browsing context, skipping the Window load event.
   However, this step causes another alluded to issue, which will be
   talked about later.

9. No-op, for the same reason as step 6. Additionally,
   document.readyState is not accessible from the temporary document
   and the temporary document has no browsing context, so navigation
   timing, the Window load event, the pageshow event, the Document load
   event and the `<iframe>` load steps are not executed at all.

10. No-op, as this flag is only set from window.print(), which is not
    accessible for this document.

11. No-op, as the temporary document is not accessible from anything
    else and will be immediately destroyed after HTML fragment parsing.

Additionally, browsing context containers (`<iframe>`, `<frame>` and
`<object>`) cannot run in documents with no browsing context:

- `<iframe>` and `<frame>` use "create a new child navigable":
https://html.spec.whatwg.org/multipage/document-sequences.html#create-a-new-child-navigable
44dd824764/Userland/Libraries/LibWeb/HTML/BrowsingContextContainer.cpp (L43-L45)

> 2. Let group be element's node document's browsing context's
     top-level browsing context's group.

This requires the element's node document's browsing context to be
non-null, but it is always null with the temporary document created for
HTML fragment parsing.

This is protected against here for `<iframe>`:
https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element:the-iframe-element-6
44dd824764/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.cpp (L45)

> When an iframe element element is inserted into a document whose
  browsing context is non-null, the user agent must run these steps:
  1. Create a new child navigable for element.

This is currently not protected against for `<frame>` in the
specification:
https://html.spec.whatwg.org/multipage/obsolete.html#active-frame-element

> A frame element is said to be an active frame element when it is in a
  document.

> When a frame element element is created as an active frame element,
  or becomes an active frame element after not having been one, the
  user agent must run these steps:
>     1. Create a new child navigable for element.

However, since this would cause a null dereference, this is actually a
specification issue. See: https://github.com/whatwg/html/issues/9136

- `<object>` uses "queue an element task" and has a browsing context
  null check.
https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element:queue-an-element-task
44dd824764/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.cpp (L58)
44dd824764/Userland/Libraries/LibWeb/HTML/HTMLObjectElement.cpp (L105)

> ...the user agent must queue an element task on the DOM manipulation
  task source given the object element to run the following steps to
  (re)determine what the object element represents.

As established above, tasks are not runnable in documents with null
browsing contexts. However, for avoidance of doubt, it checks if the
document's browsing context is null, and if so, it falls back to
representing the element's children and gets rid of any child navigable
the `<object>` element may have.

> 2. If the element has an ancestor media element, or has an ancestor
     object element that is not showing its fallback content, or if the
     element is not in a document whose browsing context is non-null,
     or if the element's node document is not fully active, or if the
     element is still in the stack of open elements of an HTML parser
     or XML parser, or if the element is not being rendered, then jump
     to the step below labeled fallback.

> 4. Fallback: The object element represents the element's children.
     This is the element's fallback content. Destroy a child navigable
     given the element.

This check also protects against an `<object>` element being adopted
from a document which has a browsing context to one that doesn't during
the time between the element task being queued and then executed.

This means a browsing context container cannot be ran, meaning browsing
context containers cannot access their parent document and access the
properties and events mentioned in steps 1-11 above, or use
document.{open,write,close} on the parent document.

Another potential avenue of running script via HTML fragment parsing
is via custom elements being in the markup, which need to be
synchronously upgraded. For example:
```
<custom-element></custom-element>
```

However, this is already protected against in the spec:
https://html.spec.whatwg.org/multipage/parsing.html#create-an-element-for-the-token
44dd824764/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp (L643)

> 7. If definition is non-null and the parser was not created as part
     of the HTML fragment parsing algorithm, then let will execute
     script be true. Otherwise, let it be false.

It is protected against overall by disabling custom elements via
returning `null` for all custom element definition lookups if the
document has no browsing context, which is the case for the temporary
document:
https://html.spec.whatwg.org/multipage/custom-elements.html#look-up-a-custom-element-definition
44dd824764/Userland/Libraries/LibWeb/DOM/Document.cpp (L2106-L2108)

> 2. If document's browsing context is null, return null.

This is because the document doesn't have an associated Window, meaning
there will be no associated CustomElementRegistry object.

After running the HTML fragment parser, all of the child nodes are
removed the temporary document and then adopted into the context
element's node document. Skipping the `pre_remove` steps as they are
not relevant in this case, let's first examine Node::remove()'s
potential to execute script, then examine Document::adopt_node() after.
https://dom.spec.whatwg.org/#concept-node-remove
44dd824764/Userland/Libraries/LibWeb/DOM/Node.cpp (L534)

1-7. Does not run any script, it just keeps a copy of some data that
     will be needed later in the algorithm and directly modifies live
     range attributes. However, since this relies on Range objects
     containing the temporary document, the Range steps are no-ops.

8. Though this uses the temporary document, it does not contain any
   NodeIterator objects as no script should have run, thus this
   callback will not be entered. Even if the document _did_ have
   associated NodeIterators, NodeIterator::run_pre_removing_steps does
   not execute any script.

9-11. Does not run any script, it just keeps a copy of some data that
      will be needed later in the algorithm and performs direct tree
      mutation to remove the node from the node tree.

12-14. "assign slottables" and step 13 queue mutation observer
       microtasks via "signal a slot change". However, since this is
       done _after_ running "the end", the "spin the event loop" steps
       in that algorithm does not affect this. Remember that queued
       microtasks due not execute during this algorithm for the next
       few steps.

Sidenote:
Microtasks are supposed to be executed when the JavaScript execution
context stack is empty. Since HTMLParser::parse_html_fragment is only
called from script, the stack will never be empty whilst it is running,
so microtasks will not run until some time after we exit this function.

15. This could potentially run script, let's have a look at the
    removal steps we currently have implemented in our engine:

- HTMLIFrameElement::removed_from()
  https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element:the-iframe-element-7
  44cf92616e/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.cpp (L102)

  Since browsing context containers cannot create child browsing
  contexts (as shown above), this code will do nothing. This will also
  hold true when we implement HTMLFrameElement::removed_from() in the
  future.

- FormAssociatedElement::removed_from()
  44cf92616e/Userland/Libraries/LibWeb/HTML/FormAssociatedElement.h (L36)
  
  This calls `form_node_was_removed` which can then potentially call
  `reset_form_owner`. However, `reset_form_owner` only does tree
  traversal to find the appropriate form owner and does not execute
  any script. After calling `form_node_was_removed` it then calls
  `form_associated_element_was_removed`, which is a virtual function
  that no one currently overrides, meaning no script is executed.

- HTMLBaseElement::removed_from()
  44dd824764/Userland/Libraries/LibWeb/HTML/HTMLBaseElement.cpp (L45)
  
  This will call `Document::update_base_element` to do tree traversal
  to find out the new first `<base>` element with an href attribute and
  thus does not execute any script.

- HTMLStyleElement::removed_from()
  https://html.spec.whatwg.org/multipage/semantics.html#update-a-style-block
  44dd824764/Userland/Libraries/LibWeb/HTML/HTMLStyleElement.cpp (L49)
  
  This will call `update_a_style_block`, which will parse the `<style>`
  element's text content as CSS and create a style sheet from it. This
  does not execute any script.
  
In summary, step 15 does not currently execute any script and ideally
shouldn't in the future when we implement more `removed_from` steps.

16. Does not run any script, just saves a copy of a variable.

17. Queues a "disconnectedCallback" custom elements callback. This will
    execute script in the future, but not here.
    
18. Performs step 15 and 17 in combination for each of the node's
    descendants. This will not execute any script.
    
19. Does not run any script, it performs a requirement of mutation
    observers by adding certain things to a list.

20. Does not execute any script, as mutation observer callbacks are
    done via microtasks.

21. This will not execute script, as the parent is always the temporary
    document in HTML fragment parsing. There is no Document children
    changed steps, so this step is a no-op.
    
We then do layout invalidation which is our own addition, but this also
does not execute any script.

In short, removing a node does not execute any script. It could execute
script in the future, but since this is done by tasks, it will not
execute until we are outside of HTMLParser::parse_html_fragment.

Let's look at adopting a node:
https://dom.spec.whatwg.org/#concept-node-adopt
44dd824764/Userland/Libraries/LibWeb/DOM/Document.cpp (L1414)

1. Does not run script, it just keeps a reference to the temporary
   document.

2. No-op, we removed the node above.

3.1. Does not execute script, it simply updates all descendants of
     the removed node to be in the context element's node document.

3.2. Does not execute script, see node removal step 17.

3.3. This could potentially execute script, let's have a look at the
     adopting steps we have implemented in our engine:

- HTMLTemplateElement::adopted_from()
  https://html.spec.whatwg.org/multipage/scripting.html#the-template-element:concept-node-adopt-ext
  44dd824764/Userland/Libraries/LibWeb/HTML/HTMLTemplateElement.cpp (L38)

  This simply adopts the `<template>` element's DocumentFragment node
  into its inert document. This does not execute any script.
  
We then have our own addition of adopting NodeIterators over to the
context element's document, but this does not execute any script.

In short, adopting a node does not execute any script.

After adopting the nodes to the context element's document, HTML
fragment parsing is complete and the temporary document is no longer
accessible at all.

Document and element event handlers are also not accessible, even if
the event bubbles. This is simply because the temporary document is not
accessible, so tree traversal, IDL event handler attributes and
EventTarget#addEventListener are not accessible, on the document or any
descendants. Document is also not an Element, so element event handler
attributes do not apply.

In summary, this establishes that HTML fragment parsers should not run
any user script or internal C++ code that relies on things set up by
"the end". This means that the attributes set up and events fired by
"the end" are not observable in this case. This may have not explored
every single possible avenue, but the general assertion should still
hold. However, this assertion is violated by "the end" containing two
unconditional "spin the event loop" invocations and causes issues with
live web content, so we seek to avoid them.

As WebKit, Blink and Gecko have been able to get away with doing fast
path optimizations for HTML fragment parsing which don't setup
navigation timing, run events, etc. it is presumed we are able to get
away with not running "the end" for HTML fragment parsing as well.
WebKit: c69be377e1/Source/WebCore/dom/DocumentFragment.cpp (L90-L98)
Blink: 15444426f9/third_party/blink/renderer/core/editing/serializers/serialization.cc (L681-L702)
Gecko: 6fc2f6d533/dom/base/FragmentOrElement.cpp (L1991-L2002)

Removing the call to "the end" fixes at least a couple of issues:
- Inserting `<img>` elements via innerHTML causes us to spin forever.

  This regressed in 2413de7e10
  
  This is because `m_load_event_delayer.clear()` is performed inside an
  element task callback. Because of the reasons stated above, this will
  never execute. This caused us to spin forever on step 8 of "the end",
  which is delaying the load event.
  
  This affected Google Docs and Google Maps, never allowing them to
  progress after performing this action. I have also seen it cause a
  Scorecard Research `<img>` beacon in a `<noscript>` element inserted
  via innerHTML to spin forever. This presumably affects many more
  sites as well.
  
  Given that the Window load event is not fired for HTML fragment
  parsers, spinning the event loop to delay the load event does not
  change anything, meaning this step can be skipped entirely.
  
- Microtask timing is messed up by the unconditional `spin_until`s on
  steps 7 and 8.
  
  "Spin the event loop" causes an unconditional microtask checkpoint:
  https://html.spec.whatwg.org/multipage/webappapis.html#spin-the-event-loop
  44dd824764/Userland/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp (L54)
  
  > 3. Let old stack be a copy of the JavaScript execution context
       stack.
  > 4. Empty the JavaScript execution context stack.
  > 5. Perform a microtask checkpoint.
  > 6.2.1. Replace the JavaScript execution context stack with old
           stack.
           
  This broke YouTube with the introduction of custom elements, as
  custom elements use microtasks to upgrade elements and call
  callbacks. See https://github.com/whatwg/html/issues/8646 for a full
  example reduced from YouTube's JavaScript.
  
  Another potential fix for this issue is to remove the above steps
  from "spin the event loop". However, since we have another issue with
  the use of "spin the event loop", it would be best to just avoid
  both calls to it.

Considering all of the above, removing the call to "the end" is the way
forward for HTML fragment parsing, as all of it should be a no-op.

This is done by not simply returning from "the end" if the HTML parser
was created for HTML fragment parsing.

The end.
2023-04-11 21:32:30 +02:00
..
Canvas Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
CrossOrigin LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
CustomElements LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
EventLoop LibWeb: Support taking matching tasks out of a task queue 2023-04-07 16:02:22 +02:00
Parser LibWeb: Return from "the end" during HTML fragment parsing 2023-04-11 21:32:30 +02:00
Scripting AK+Everywhere: Use Optional for URLParser::parse's base_url parameter 2023-04-11 16:28:20 +02:00
SyntaxHighlighter LibGfx+Userland: Make TextAttributes::underline_style optional 2023-03-15 14:55:49 +01:00
AbstractBrowsingContext.h LibWeb: Port AbstractBrowsingContext to String 2023-04-06 08:41:43 +02:00
ActivateTab.h WebContent+Everywhere: Add an option to not activate new tabs over IPC 2023-03-21 09:39:49 +00:00
AnimationFrameCallbackDriver.h LibJS+LibWeb: Add a bunch of missing includes 2023-03-06 13:05:43 +00:00
AnimationFrameProvider.idl LibWeb/HTML: Port Window.cancelAnimationFrame() to IDL 2023-03-07 23:33:34 +00:00
AttributeNames.cpp LibWeb: Initialize static web strings during main-thread VM creation 2023-03-18 19:50:45 +01:00
AttributeNames.h LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
BrowsingContext.cpp LibWeb: Port fire_a_page_transition_event() to new FlyString 2023-04-09 17:27:27 +02:00
BrowsingContext.h LibWeb: Change "popup"-related storage types to named enums 2023-03-22 00:12:53 +01:00
BrowsingContextContainer.cpp LibWeb: Port AbstractBrowsingContext to String 2023-04-06 08:41:43 +02:00
BrowsingContextContainer.h LibWeb: Make HTMLIFrameElement.contentWindow return the WindowProxy 2022-11-04 10:38:00 +01:00
BrowsingContextGroup.cpp LibWeb: Make BrowsingContext GC-allocated 2022-10-20 15:16:23 +02:00
BrowsingContextGroup.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
CanvasGradient.cpp LibGfx+LibWeb: Propagate OOM when appending CanvasGradient color stops 2023-03-02 11:49:13 +01:00
CanvasGradient.h LibWeb: Make factory methods of HTML::CanvasGradient fallible 2023-02-18 00:52:47 +01:00
CanvasGradient.idl LibWeb: Add barebones CanvasGradient object 2022-02-03 22:35:13 +01:00
CanvasPattern.cpp LibGfx+LibWeb: Propagate OOM when creating PaintStyles 2023-03-02 11:49:13 +01:00
CanvasPattern.h LibGfx+LibWeb: Propagate OOM when creating PaintStyles 2023-03-02 11:49:13 +01:00
CanvasPattern.idl LibWeb: Implement CanvasRenderingContext2D.createPattern() 2023-02-03 20:36:21 +01:00
CanvasRenderingContext2D.cpp LibWeb: Add initial implementation of CRC2D.clip() 2023-04-09 18:42:45 +02:00
CanvasRenderingContext2D.h LibWeb: Add initial implementation of CRC2D.clip() 2023-04-09 18:42:45 +02:00
CanvasRenderingContext2D.idl LibWeb: Implement CRC2D.imageSmoothingEnabled 2023-03-29 22:48:04 +02:00
CloseEvent.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
CloseEvent.h LibWeb: Port CloseEvent to new String 2023-03-05 18:25:59 +00:00
CloseEvent.idl LibWeb: Port CloseEvent to new String 2023-03-05 18:25:59 +00:00
CORSSettingAttribute.cpp LibWeb: Implement 'create a potential-CORS request' algorithm 2023-03-19 14:16:15 +00:00
CORSSettingAttribute.h LibWeb: Implement 'create a potential-CORS request' algorithm 2023-03-19 14:16:15 +00:00
DocumentReadyState.h LibWeb: Store HTML document ready state as an enum 2021-09-26 12:47:51 +02:00
DOMParser.cpp LibWeb: Make factory method of DOM::ElementFactory fallible 2023-02-22 09:55:33 +01:00
DOMParser.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
DOMParser.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
DOMStringMap.cpp LibWeb: Restore proper functionality of legacy platform objects 2023-02-28 12:36:14 +01:00
DOMStringMap.h LibWeb: Restore proper functionality of legacy platform objects 2023-02-28 12:36:14 +01:00
DOMStringMap.idl LibWeb: Add support for HTMLOrSVGElement.dataset 2021-09-26 18:59:56 +02:00
ErrorEvent.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
ErrorEvent.h LibWeb: Port ErrorEvent to new String 2023-03-05 18:25:59 +00:00
ErrorEvent.idl LibWeb: Port ErrorEvent to new String 2023-03-05 18:25:59 +00:00
EventHandler.cpp LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
EventHandler.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
EventNames.cpp LibWeb: Port {HTML,UIEvents,XHR}::EventNames to new String 2023-04-06 23:49:08 +02:00
EventNames.h LibWeb: Move string literals to HTML::EventNames 2023-04-07 22:41:01 +02:00
Focus.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
Focus.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
FormAssociatedElement.cpp Everywhere: Remove unnecessary mutable attributes from lambdas 2022-11-19 14:37:31 +00:00
FormAssociatedElement.h LibWeb: Implement HTMLFormElement::reset 2023-01-03 18:09:40 +01:00
FormControlInfrastructure.cpp LibWeb/HTML: Use correct spec link for multipart/form-data encoding 2023-04-09 17:59:36 +02:00
FormControlInfrastructure.h LibWeb: Implement multipart/form-data encoding algorithm 2023-04-05 09:43:52 +01:00
FormDataEvent.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
FormDataEvent.h LibWeb: Port FormDataEvent to new String 2023-03-05 18:25:59 +00:00
FormDataEvent.idl LibWeb: Port FormDataEvent to new String 2023-03-05 18:25:59 +00:00
GlobalEventHandlers.cpp LibWeb: Move CallbackType from Bindings/ to WebIDL/ 2022-09-24 19:31:39 +01:00
GlobalEventHandlers.h LibWeb: Correct casing of webkitTransitionEnd and webkitAnimation* 2023-04-07 22:41:01 +02:00
History.cpp LibWeb: Make factory method of HTML::History fallible 2023-02-18 00:52:47 +01:00
History.h LibWeb: Make factory method of HTML::History fallible 2023-02-18 00:52:47 +01:00
History.idl LibWeb: Add missing property and methods for history object 2022-10-14 16:01:35 +02:00
HistoryHandlingBehavior.h LibWeb: Move HistoryHandlingBehavior enum to its own header 2022-09-20 10:32:12 +02:00
HTMLAnchorElement.cpp LibWeb: Add HTMLAnchorElement.referrerPolicy property 2023-03-31 11:36:41 +01:00
HTMLAnchorElement.h LibWeb: Add HTMLAnchorElement.referrerPolicy property 2023-03-31 11:36:41 +01:00
HTMLAnchorElement.idl LibWeb: Add HTMLAnchorElement.referrerPolicy property 2023-03-31 11:36:41 +01:00
HTMLAreaElement.cpp LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLAreaElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLAreaElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLAudioElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLAudioElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLAudioElement.idl LibWeb: Add missing constructors to HTMLElement IDLs 2023-03-23 13:37:40 +01:00
HTMLBaseElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLBaseElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLBaseElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLBlinkElement.cpp LibWeb+WebContent: Add abstraction layer for event loop and timers 2022-09-07 20:30:31 +02:00
HTMLBlinkElement.h LibWeb: Remove WRAPPER_HACK() macro 2022-09-21 21:12:24 +01:00
HTMLBodyElement.cpp LibWeb: Port EventTarget to new {Fly}String 2023-04-09 17:27:27 +02:00
HTMLBodyElement.h LibWeb: Port {HTML,UIEvents,XHR}::EventNames to new String 2023-04-06 23:49:08 +02:00
HTMLBodyElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLBRElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLBRElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLBRElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLButtonElement.cpp Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case 2023-03-10 13:15:44 +01:00
HTMLButtonElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLButtonElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLCanvasElement.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
HTMLCanvasElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLCanvasElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLDataElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLDataElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLDataElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLDataListElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLDataListElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLDataListElement.idl LibWeb: Add missing constructors to HTMLElement IDLs 2023-03-23 13:37:40 +01:00
HTMLDetailsElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLDetailsElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLDetailsElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLDialogElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLDialogElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLDialogElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLDirectoryElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLDirectoryElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLDirectoryElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLDivElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLDivElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLDivElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLDListElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLDListElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLDListElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLElement.cpp LibWeb: Port fire_a_synthetic_pointer_event() to new FlySring 2023-04-09 17:27:27 +02:00
HTMLElement.h LibWeb: Port fire_a_synthetic_pointer_event() to new FlySring 2023-04-09 17:27:27 +02:00
HTMLElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLEmbedElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLEmbedElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLEmbedElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLFieldSetElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLFieldSetElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLFieldSetElement.idl LibWeb: Add missing constructors to HTMLElement IDLs 2023-03-23 13:37:40 +01:00
HTMLFontElement.cpp LibWeb: Move PercentageOr and subclasses into PercentageOr.{h,cpp} 2023-03-30 21:29:50 +02:00
HTMLFontElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLFontElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLFormElement.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
HTMLFormElement.h LibWeb: Stub out a few form validation and selection methods 2023-03-19 18:58:50 +00:00
HTMLFormElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLFrameElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLFrameElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLFrameElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLFrameSetElement.cpp LibWeb: Port EventTarget to new {Fly}String 2023-04-09 17:27:27 +02:00
HTMLFrameSetElement.h LibWeb: Port {HTML,UIEvents,XHR}::EventNames to new String 2023-04-06 23:49:08 +02:00
HTMLFrameSetElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLHeadElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLHeadElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLHeadElement.idl LibWeb: Add missing constructors to HTMLElement IDLs 2023-03-23 13:37:40 +01:00
HTMLHeadingElement.cpp LibWeb: Split IdentifierStyleValue out of StyleValue.{h,cpp} 2023-03-25 16:56:04 +00:00
HTMLHeadingElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLHeadingElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLHRElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLHRElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLHRElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLHtmlElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLHtmlElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLHtmlElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLHyperlinkElementUtils.cpp AK+Everywhere: Use Optional for URLParser::parse's base_url parameter 2023-04-11 16:28:20 +02:00
HTMLHyperlinkElementUtils.h LibWeb+WebContent: Change the "noopener" storage type to a named enum 2023-03-22 00:12:53 +01:00
HTMLHyperlinkElementUtils.idl LibWeb: Extract the HTMLHyperlinkElementUtils IDL mixin 2022-07-29 17:15:49 +01:00
HTMLIFrameElement.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
HTMLIFrameElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLIFrameElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLImageElement.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
HTMLImageElement.h LibWeb: Make HTMLImageElement loads delay the document load event 2023-04-02 06:45:44 +02:00
HTMLImageElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLInputElement.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
HTMLInputElement.h LibWeb: Implement indeterminate IDL attribute in HTMLInputElement 2023-03-20 10:15:58 +00:00
HTMLInputElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLLabelElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLLabelElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLLabelElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLLegendElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLLegendElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLLegendElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLLIElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLLIElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLLIElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLLinkElement.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
HTMLLinkElement.h LibWeb: Remove now-unused includes from StyleValue.cpp 2023-03-25 16:56:04 +00:00
HTMLLinkElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLMapElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLMapElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLMapElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLMarqueeElement.cpp LibWeb: Split ColorStyleValue out of StyleValue.{h,cpp} 2023-03-25 16:56:04 +00:00
HTMLMarqueeElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLMarqueeElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLMediaElement.cpp LibWeb: Begin detecting the end of an HTMLMediaElement media resource 2023-04-11 19:27:55 +02:00
HTMLMediaElement.h LibWeb: Begin detecting the end of an HTMLMediaElement media resource 2023-04-11 19:27:55 +02:00
HTMLMediaElement.idl LibWeb: Begin detecting the end of an HTMLMediaElement media resource 2023-04-11 19:27:55 +02:00
HTMLMenuElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLMenuElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLMenuElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLMetaElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLMetaElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLMetaElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLMeterElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLMeterElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLMeterElement.idl LibWeb: Add missing constructors to HTMLElement IDLs 2023-03-23 13:37:40 +01:00
HTMLModElement.cpp LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLModElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLModElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLObjectElement.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
HTMLObjectElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLObjectElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLOListElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLOListElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLOListElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLOptGroupElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLOptGroupElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLOptGroupElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLOptionElement.cpp LibWeb/Infra: Port strip_and_collapse_whitespace() to new String 2023-03-04 23:27:08 +00:00
HTMLOptionElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLOptionElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLOptionsCollection.cpp LibWeb: Make factory method of HTML::HTMLOptionsCollection fallible 2023-02-18 00:52:47 +01:00
HTMLOptionsCollection.h LibWeb: Make factory method of HTML::HTMLOptionsCollection fallible 2023-02-18 00:52:47 +01:00
HTMLOptionsCollection.idl LibWeb: Implement HTMLOptionsCollection.add() 2022-03-22 02:08:15 +01:00
HTMLOutputElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLOutputElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLOutputElement.idl LibWeb: Add missing constructors to HTMLElement IDLs 2023-03-23 13:37:40 +01:00
HTMLParagraphElement.cpp LibWeb: Split IdentifierStyleValue out of StyleValue.{h,cpp} 2023-03-25 16:56:04 +00:00
HTMLParagraphElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLParagraphElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLParamElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLParamElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLParamElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLPictureElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLPictureElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLPictureElement.idl LibWeb: Add missing constructors to HTMLElement IDLs 2023-03-23 13:37:40 +01:00
HTMLPreElement.cpp LibWeb: Split IdentifierStyleValue out of StyleValue.{h,cpp} 2023-03-25 16:56:04 +00:00
HTMLPreElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLPreElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLProgressElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLProgressElement.h LibWeb: Fix is<HTML::HTMLProgressElement>() check 2023-03-17 08:39:37 +01:00
HTMLProgressElement.idl LibWeb: Add missing constructors to HTMLElement IDLs 2023-03-23 13:37:40 +01:00
HTMLQuoteElement.cpp LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLQuoteElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLQuoteElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLScriptElement.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
HTMLScriptElement.h LibWeb: Remove now-unused includes from StyleValue.cpp 2023-03-25 16:56:04 +00:00
HTMLScriptElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLSelectElement.cpp LibJS: Handle both const and non-const Ts in Handle<T>::create() 2023-03-06 13:05:43 +00:00
HTMLSelectElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLSelectElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLSlotElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLSlotElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLSlotElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLSourceElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLSourceElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLSourceElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLSpanElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLSpanElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLSpanElement.idl LibWeb: Add missing constructors to HTMLElement IDLs 2023-03-23 13:37:40 +01:00
HTMLStyleElement.cpp LibWeb: Use is_ascii_case_insensitive_match() where the spec says to 2023-02-19 00:46:47 +01:00
HTMLStyleElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLStyleElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLTableCaptionElement.cpp LibWeb: Split IdentifierStyleValue out of StyleValue.{h,cpp} 2023-03-25 16:56:04 +00:00
HTMLTableCaptionElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLTableCaptionElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLTableCellElement.cpp LibWeb: Split IdentifierStyleValue out of StyleValue.{h,cpp} 2023-03-25 16:56:04 +00:00
HTMLTableCellElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLTableCellElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLTableColElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLTableColElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLTableColElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLTableElement.cpp LibWeb: Split ColorStyleValue out of StyleValue.{h,cpp} 2023-03-25 16:56:04 +00:00
HTMLTableElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLTableElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLTableRowElement.cpp LibWeb: Make factory method of DOM::ElementFactory fallible 2023-02-22 09:55:33 +01:00
HTMLTableRowElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLTableRowElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLTableSectionElement.cpp LibWeb: Make factory method of DOM::ElementFactory fallible 2023-02-22 09:55:33 +01:00
HTMLTableSectionElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLTableSectionElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLTemplateElement.cpp LibJS+Everywhere: Propagate Cell::initialize errors from Heap::allocate 2023-01-29 00:02:45 +00:00
HTMLTemplateElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLTemplateElement.idl LibWeb: Add missing constructors to HTMLElement IDLs 2023-03-23 13:37:40 +01:00
HTMLTextAreaElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLTextAreaElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLTextAreaElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLTimeElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLTimeElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLTimeElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLTitleElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLTitleElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLTitleElement.idl LibWeb: Add missing constructors to HTMLElement IDLs 2023-03-23 13:37:40 +01:00
HTMLTrackElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLTrackElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLTrackElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLUListElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLUListElement.h LibWeb: Move ARIA-related code into the Web::ARIA namespace 2023-01-29 00:02:55 +00:00
HTMLUListElement.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
HTMLUnknownElement.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLUnknownElement.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
HTMLUnknownElement.idl LibWeb: Add missing constructors to HTMLElement IDLs 2023-03-23 13:37:40 +01:00
HTMLVideoElement.cpp LibWeb: Port HTMLVideoElement to play videos with Video::PlaybackManager 2023-04-09 23:55:05 +02:00
HTMLVideoElement.h LibWeb: Move VideoPaintable's cached mouse position to HTMLVideoElement 2023-04-11 19:27:55 +02:00
HTMLVideoElement.idl LibWeb: Implement HTMLVideoElement's video{Width,Height} attributes 2023-04-07 16:02:22 +02:00
ImageData.cpp LibJS+Everywhere: Propagate Cell::initialize errors from Heap::allocate 2023-01-29 00:02:45 +00:00
ImageData.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
ImageData.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
Location.cpp AK+Everywhere: Use Optional for URLParser::parse's base_url parameter 2023-04-11 16:28:20 +02:00
Location.h LibWeb/HTML: Add missing SecurityError checks to Location 2023-03-04 23:27:08 +00:00
Location.idl LibWeb/HTML: Port Location to new String 2023-03-04 23:27:08 +00:00
MessageChannel.cpp LibWeb: Make factory method of HTML::MessagePort fallible 2023-02-18 00:52:47 +01:00
MessageChannel.h LibWeb: Make factory method of HTML::MessageChannel fallible 2023-02-18 00:52:47 +01:00
MessageChannel.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
MessageEvent.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
MessageEvent.h LibWeb: Port MessageEvent to new String 2023-03-05 18:25:59 +00:00
MessageEvent.idl LibWeb: Port MessageEvent to new String 2023-03-05 18:25:59 +00:00
MessagePort.cpp LibWeb: Port {HTML,UIEvents,XHR}::EventNames to new String 2023-04-06 23:49:08 +02:00
MessagePort.h LibWeb/HTML: Port Window.structuredClone() to IDL 2023-03-07 23:33:34 +00:00
MessagePort.idl LibWeb/HTML: Port Window.structuredClone() to IDL 2023-03-07 23:33:34 +00:00
MimeType.cpp LibWeb: Follow-up fixes for Linus's comments in #17658 2023-02-28 13:16:39 +01:00
MimeType.h LibWeb: Follow-up fixes for Linus's comments in #17658 2023-02-28 13:16:39 +01:00
MimeType.idl LibWeb: Implement navigator.{plugins,mimeTypes} 2023-02-28 12:36:14 +01:00
MimeTypeArray.cpp LibWeb: Implement navigator.{plugins,mimeTypes} 2023-02-28 12:36:14 +01:00
MimeTypeArray.h LibWeb: Implement navigator.{plugins,mimeTypes} 2023-02-28 12:36:14 +01:00
MimeTypeArray.idl LibWeb: Implement navigator.{plugins,mimeTypes} 2023-02-28 12:36:14 +01:00
NavigationParams.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Navigator.cpp LibWeb: Implement navigator.{plugins,mimeTypes} 2023-02-28 12:36:14 +01:00
Navigator.h LibWeb: Implement navigator.{plugins,mimeTypes} 2023-02-28 12:36:14 +01:00
Navigator.idl LibWeb: Implement navigator.{plugins,mimeTypes} 2023-02-28 12:36:14 +01:00
NavigatorConcurrentHardware.h LibWeb: Re-implement HTML::Navigator using IDL 2022-10-09 10:14:57 +02:00
NavigatorConcurrentHardware.idl LibWeb: Re-implement HTML::Navigator using IDL 2022-10-09 10:14:57 +02:00
NavigatorID.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
NavigatorID.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
NavigatorID.idl LibWeb: Re-implement HTML::Navigator using IDL 2022-10-09 10:14:57 +02:00
NavigatorLanguage.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
NavigatorLanguage.idl LibWeb: Make navigator.languages an attribute instead of a function 2022-10-13 14:42:14 +02:00
NavigatorOnLine.h LibWeb: Re-implement HTML::Navigator using IDL 2022-10-09 10:14:57 +02:00
NavigatorOnLine.idl LibWeb: Re-implement HTML::Navigator using IDL 2022-10-09 10:14:57 +02:00
Origin.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
PageTransitionEvent.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
PageTransitionEvent.h LibWeb: Port PageTransitionEvent to new String 2023-03-05 18:25:59 +00:00
PageTransitionEvent.idl LibWeb: Port PageTransitionEvent to new String 2023-03-05 18:25:59 +00:00
Path2D.cpp Everywhere: Stop using NonnullRefPtrVector 2023-03-06 23:46:35 +01:00
Path2D.h LibWeb: Implement Path2D#addPath 2023-02-27 20:55:09 +01:00
Path2D.idl LibWeb: Implement Path2D#addPath 2023-02-27 20:55:09 +01:00
Plugin.cpp Everywhere: Use '_{short_,}string' literals more 2023-02-28 15:15:36 +00:00
Plugin.h LibWeb: Follow-up fixes for Linus's comments in #17658 2023-02-28 13:16:39 +01:00
Plugin.idl LibWeb: Implement navigator.{plugins,mimeTypes} 2023-02-28 12:36:14 +01:00
PluginArray.cpp LibWeb: Implement navigator.{plugins,mimeTypes} 2023-02-28 12:36:14 +01:00
PluginArray.h LibWeb: Implement navigator.{plugins,mimeTypes} 2023-02-28 12:36:14 +01:00
PluginArray.idl LibWeb: Implement navigator.{plugins,mimeTypes} 2023-02-28 12:36:14 +01:00
PolicyContainers.h LibWeb: Add referrer policy to PolicyContainer 2022-10-24 22:58:37 +01:00
PotentialCORSRequest.cpp LibWeb: Implement 'create a potential-CORS request' algorithm 2023-03-19 14:16:15 +00:00
PotentialCORSRequest.h LibWeb: Implement 'create a potential-CORS request' algorithm 2023-03-19 14:16:15 +00:00
PromiseRejectionEvent.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
PromiseRejectionEvent.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
PromiseRejectionEvent.idl LibWeb: Port PromiseRejectionEvent to new String 2023-03-05 18:25:59 +00:00
RemoteBrowsingContext.cpp LibWeb: Introduce RemoteBrowsingContext 2023-03-16 13:17:37 -04:00
RemoteBrowsingContext.h LibWeb: Introduce RemoteBrowsingContext 2023-03-16 13:17:37 -04:00
SandboxingFlagSet.h LibWeb: Add missing includes 2022-09-18 13:27:24 -04:00
SessionHistoryEntry.h LibJS+LibWeb: Add a bunch of missing includes 2023-03-06 13:05:43 +00:00
Storage.cpp LibWeb: Restore Storage as a legacy platform object 2023-02-28 12:36:14 +01:00
Storage.h LibWeb: Restore Storage as a legacy platform object 2023-02-28 12:36:14 +01:00
Storage.idl LibWeb: Add Storage interface and window.localStorage 2022-02-08 21:53:20 +01:00
StructuredSerialize.cpp LibWeb: Add initial implementation of structured clone 2022-11-26 00:47:23 +01:00
StructuredSerialize.h LibWeb: Add initial implementation of structured clone 2022-11-26 00:47:23 +01:00
SubmitEvent.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
SubmitEvent.h LibWeb: Port SubmitEvent to new String 2023-03-05 18:25:59 +00:00
SubmitEvent.idl LibWeb: Port SubmitEvent to new String 2023-03-05 18:25:59 +00:00
TagNames.cpp LibWeb: Initialize static web strings during main-thread VM creation 2023-03-18 19:50:45 +01:00
TagNames.h LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
TextMetrics.cpp LibWeb: Make factory method of HTML::TextMetrics fallible 2023-02-18 00:52:47 +01:00
TextMetrics.h LibWeb: Make factory method of HTML::TextMetrics fallible 2023-02-18 00:52:47 +01:00
TextMetrics.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
Timer.cpp LibWeb: Change HTML::Timer to store its owning window as a JS::Object 2023-03-14 09:07:40 -04:00
Timer.h LibWeb: Change HTML::Timer to store its owning window as a JS::Object 2023-03-14 09:07:40 -04:00
TokenizedFeatures.h LibWeb: Change "popup"-related storage types to named enums 2023-03-22 00:12:53 +01:00
TrackEvent.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
TrackEvent.h LibWeb: Implement TrackEvent for media events 2023-04-07 16:02:22 +02:00
TrackEvent.idl LibWeb: Implement TrackEvent for media events 2023-04-07 16:02:22 +02:00
VideoTrack.cpp LibWeb: Begin detecting the end of an HTMLMediaElement media resource 2023-04-11 19:27:55 +02:00
VideoTrack.h LibWeb: Begin tracking HTMLMediaElement playback positions 2023-04-11 19:27:55 +02:00
VideoTrack.idl LibWeb: Implement VideoTrack and VideoTrackList 2023-04-07 16:02:22 +02:00
VideoTrackList.cpp LibWeb: Implement VideoTrack and VideoTrackList 2023-04-07 16:02:22 +02:00
VideoTrackList.h LibWeb: Implement VideoTrack and VideoTrackList 2023-04-07 16:02:22 +02:00
VideoTrackList.idl LibWeb: Implement VideoTrack and VideoTrackList 2023-04-07 16:02:22 +02:00
VisibilityState.h LibWeb+WebContent+Browser: Plumb visibility state from GUI to web pages 2022-09-20 10:32:14 +02:00
Window.cpp LibWeb: Port fire_a_page_transition_event() to new FlyString 2023-04-09 17:27:27 +02:00
Window.h LibWeb: Port fire_a_page_transition_event() to new FlyString 2023-04-09 17:27:27 +02:00
Window.idl LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
WindowEventHandlers.cpp LibWeb: Move CallbackType from Bindings/ to WebIDL/ 2022-09-24 19:31:39 +01:00
WindowEventHandlers.h LibWeb: Move CallbackType from Bindings/ to WebIDL/ 2022-09-24 19:31:39 +01:00
WindowLocalStorage.idl LibWeb/HTML: Port Window.localStorage to IDL 2023-03-07 23:33:34 +00:00
WindowOrWorkerGlobalScope.cpp LibWeb: Implement performance.mark and performance.clearMarks 2023-03-23 21:00:43 +00:00
WindowOrWorkerGlobalScope.h LibWeb: Implement performance.mark and performance.clearMarks 2023-03-23 21:00:43 +00:00
WindowOrWorkerGlobalScope.idl LibWeb: Port {set,clear}{Timeout,Interval} to IDL 2023-03-14 09:07:40 -04:00
WindowProxy.cpp LibWeb/HTML: Port Window.length to IDL 2023-03-07 23:33:34 +00:00
WindowProxy.h LibWeb: Create and hook up a WindowProxy for each BrowsingContext 2022-10-20 15:16:23 +02:00
WindowSessionStorage.idl LibWeb/HTML: Port Window.sessionStorage to IDL 2023-03-07 23:33:34 +00:00
Worker.cpp Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
Worker.h Everywhere: Use _{short_,}string to create Strings from literals 2023-02-25 20:51:49 +01:00
Worker.idl LibWeb: Port Worker to new String 2023-02-23 15:48:38 +00:00
WorkerDebugConsoleClient.cpp LibWeb+LibJS: Format Console arguments with JS::Print 2023-02-21 10:57:44 +01:00
WorkerDebugConsoleClient.h LibWeb: Add partially functioning Worker API 2022-02-17 22:45:21 +01:00
WorkerGlobalScope.cpp LibWeb: Move timer implementations to WindowOrWorkerGlobalScopeMixin 2023-03-14 09:07:40 -04:00
WorkerGlobalScope.h LibWeb: Fix a few const-ness issues 2023-03-06 13:05:43 +00:00
WorkerGlobalScope.idl LibWeb: Port WorkerGlobalScope to new String 2023-02-23 15:48:38 +00:00
WorkerLocation.cpp Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
WorkerLocation.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
WorkerLocation.idl LibWeb: Port WorkerLocation to new String 2023-02-23 15:48:38 +00:00
WorkerNavigator.cpp LibWeb: Make factory method of HTML::WorkerNavigator fallible 2023-02-18 00:52:47 +01:00
WorkerNavigator.h LibWeb: Make factory method of HTML::WorkerNavigator fallible 2023-02-18 00:52:47 +01:00
WorkerNavigator.idl LibWeb: Re-implement HTML::Navigator using IDL 2022-10-09 10:14:57 +02:00