Timothy Flynn
f78eadf00f
LibWeb: Add an interface to be notified of Document state changes
...
Some HTML elements, e.g. HTMLMediaElement, need to take action when the
document becomes inactive.
2023-05-04 16:48:10 +02:00
Andreas Kling
590723aa3b
LibWeb: Implement the "The html element fills the viewport quirk"
...
Fixes #18037 .
2023-05-03 20:44:30 +02:00
Matthew Olsson
39d8c8d2a9
LibJS+LibWeb: Add missing visit calls in visit_edges implementations
2023-04-30 06:04:33 +02:00
Sigmund Lahn
f2f14ad9bd
LibWeb+WebContent: Make document background and Viewport transparent
...
This means iframes are transparent by default (as in firefox/chrome).
Painting the outermost canvas background is moved to the PageHost.
2023-04-25 09:33:35 +02:00
Aliaksandr Kalenik
3b00636288
LibWeb: Implement "create a new browsing context and document"
...
Co-authored-by: Andreas Kling <kling@serenityos.org>
2023-04-24 07:57:15 +02:00
Aliaksandr Kalenik
3225c39191
LibWeb: Implement Document::make_active()
...
Implementation of "make active" algorithm from the spec for Document.
Co-authored-by: Andreas Kling <kling@serenityos.org>
2023-04-24 07:57:15 +02:00
Aliaksandr Kalenik
9f691b7fe4
LibWeb: Convert navigationId from DeprecatedString to String
2023-04-24 07:55:20 +02:00
Linus Groh
d58b671ff6
LibWeb/DOM: Rename Node::{paint => paintable}_box()
...
It returns a PaintableBox, not a 'PaintBox'.
2023-04-20 20:43:30 +02:00
Andreas Kling
d8ccc2d54e
LibWeb: Rename BrowsingContextContainer => NavigableContainer
...
The "browsing context container" concept in the HTML spec has been
replaced with "navigable container". Renaming this is the first step of
many towards implementing the new world.
Co-authored-by: Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
2023-04-19 18:26:45 +02:00
Timothy Flynn
7966fc4780
LibWeb+LibWebView+WebContent: Add APIs to manage an autoplay allowlist
...
The spec defines a Permissions Policy to control some browser behaviors
on a per-origin basis. Management of these permissions live in their own
spec: https://w3c.github.io/webappsec-permissions-policy/
This implements a somewhat ad-hoc Permissions Policy for autoplaying
media elements. We will need to implement the entire policy spec for
this to be more general.
2023-04-18 16:30:02 +02:00
Kenneth Myhra
cbefab21be
LibWeb: Port fire_a_page_transition_event() to new FlyString
2023-04-09 17:27:27 +02:00
Kenneth Myhra
ad5cbdc51b
LibWeb: Port {Mouse,UI,Wheel,}Event to new String
...
This ports MouseEvent, UIEvent, WheelEvent, and Event to new String.
They all had a dependency to T::create() in
WebDriverConnection::fire_an_event() and therefore had to be ported in
the same commit.
2023-04-07 22:41:01 +02:00
Kenneth Myhra
59a21c6274
LibWeb: Port CustomEvent to new String
2023-04-07 22:41:01 +02:00
Kenneth Myhra
4d87072201
LibWeb: Port {HTML,UIEvents,XHR}::EventNames to new String
2023-04-06 23:49:08 +02:00
Luke Wilde
034aaf3f51
LibWeb: Introduce CustomElementRegistry and creating custom elements
...
The main missing feature here is form associated custom elements.
2023-04-06 11:36:56 +02:00
Kenneth Myhra
03d6cb88ff
LibWeb: Port KeyboardEvent to new String
2023-04-06 08:41:43 +02:00
Srikavin Ramkumar
149e442c24
LibWeb: Iterate codepoints instead of characters in is_valid_name
2023-03-28 07:18:09 -04:00
Linus Groh
4da68384e6
LibWeb/HTML: Make Window::m{location,navigator} lazily allocated
...
This now matches the other window-owned objects, which already do this:
m_crypto, m_performance, m_screen.
2023-03-11 17:53:50 +00:00
Andreas Kling
8c5c78f1f1
LibWeb: Implement Document.createAttribute{,NS}()
2023-03-10 14:56:03 +01:00
Andreas Kling
2042993997
LibWeb: Convert DOM::Element::m_classes to the new AK::FlyString
...
This makes selector matching significantly faster by not forcing us to
convert from FlyString to DeprecatedFlyString when matching class
selectors. :^)
2023-03-08 13:19:15 +01:00
Linus Groh
606b9ff6f3
LibWeb/HTML: Port Window.getSelection() to IDL
2023-03-07 23:33:34 +00:00
Linus Groh
c42496187b
LibWeb/HTML: Port Window.history to IDL
2023-03-07 23:33:34 +00:00
Matthew Olsson
c0b2fa74ac
LibWeb: Fix a few const-ness issues
2023-03-06 13:05:43 +00:00
Matthew Olsson
70a2ca7fc0
LibJS: Handle both const and non-const Ts in Handle<T>::create()
...
Again, the const-ness only really involves Heap-internal metadata, so
the callers shouldn't care about mutations here.
2023-03-06 13:05:43 +00:00
Kenneth Myhra
eed69e5093
LibWeb: Port MessageEvent to new String
2023-03-05 18:25:59 +00:00
Kenneth Myhra
d0f904dd4c
LibWeb: Port MediaQueryListEvent to new String
2023-03-05 18:25:59 +00:00
Andreas Kling
7e76a51cb0
LibWeb: Rename Layout::InitialContainingBlock to Layout::Viewport
...
The name "initial containing block" was wrong for this, as it doesn't
correspond to the HTML element, and that's specifically what it's
supposed to do! :^)
2023-02-28 12:21:56 +01:00
Kenneth Myhra
dcbe927b48
LibWeb: Make factory method of Selection::Selection fallible
2023-02-22 09:55:33 +01:00
Kenneth Myhra
459959b297
LibWeb: Make factory method of HTML::BrowsingContext fallible
2023-02-22 09:55:33 +01:00
Kenneth Myhra
ff92324fa5
LibWeb: Make factory method of DOM::ElementFactory fallible
2023-02-22 09:55:33 +01:00
Kenneth Myhra
587cf355ed
LibWeb: Make factory methods of UIEvents::UIEvent fallible
...
This affects calls to FocusEvent::create() since FocusEvent does not
implement its own create() method.
2023-02-22 09:55:33 +01:00
Kenneth Myhra
a401cff4e2
LibWeb: Make factory methods of UIEvents::KeyboardEvent fallible
2023-02-22 09:55:33 +01:00
Luke Wilde
2ca8cf49ca
LibWeb: Use browsing context creator URL for about:blank documents
...
In about:blank documents, we should use the browsing context's creator
URL as the base URL, if it exists and there is no <base> element.
This means that any about:blank frames will have URLs parse relative to
their parent frame's URL.
Fixes #17394 .
2023-02-21 18:52:46 +01:00
Jonah
29d724d95c
LibWeb: Serialize Accessible Name and Description for Accessibility Tree
...
These will get displayed in the DOM inspector.
2023-02-19 15:58:20 +01:00
Sam Atkins
2026ea557e
LibWeb: Use is_ascii_case_insensitive_match() where the spec says to
2023-02-19 00:46:47 +01:00
Kenneth Myhra
3e834636a6
LibWeb: Make factory method of HTML::Window fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
2f4db60c08
LibWeb: Make factory method of HTML::History fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
d94b59263e
LibWeb: Make factory method of DOM::NodeIterator fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
0791195843
LibWeb: Make factory methods of DOM::Range fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
ff875d353b
LibWeb: Make factory method of DOM::HTMLCollection fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
c120c46acc
LibWeb: Make factory methods of DOM::Event fallible
...
Because of interdependencies between DOM::Event and UIEvents::MouseEvent
to template function fire_an_event() in WebDriverConnection.cpp, the
commit: 'LibWeb: Make factory methods of UIEvents::MouseEvent fallible'
have been squashed into this commit.
2023-02-18 00:52:47 +01:00
Kenneth Myhra
0d9076c9f5
LibWeb: Make factory methods of DOM::Document fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
552663a2ba
LibWeb: Make factory method of DOM::TreeWalker fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
1e03aa0ece
LibWeb: Make factory method of DOM::AccessibilityTreeNode fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
2c8a689390
LibWeb: Make factory methods of DOM::CustomEvent fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
b9c5828fe6
LibWeb: Make factory method of DOM::DOMImplementation fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
719839b882
LibWeb: Make factory method of CSS::StyleSheetList fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
7ec444047c
LibWeb: Make factory methods of HTML::MessageEvent fallible
2023-02-18 00:52:47 +01:00
Karol Kosek
2cc108a15e
LibWeb: Rename DOM::shadow_root() to shadow_root_internal()
...
The shadowRoot property getter that will be added in subsequent commits
has an additional check that checks whether the shadow root is opened.
I didn't update the function logic to match with the IDL interface,
because it's very likely we don't want that check in the existing code,
so that for example closed shadow root elements can still be updated.
2023-02-02 14:43:29 +01:00
Timothy Flynn
b75b7f0c0d
LibJS+Everywhere: Propagate Cell::initialize errors from Heap::allocate
...
Callers that are already in a fallible context will now TRY to allocate
cells. Callers in infallible contexts get a FIXME.
2023-01-29 00:02:45 +00:00