Matthew Olsson
7c0c1c8f49
LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr
2023-03-15 08:48:49 +01: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
1cf5737e9e
LibWeb: Add fast_is<T>() for various types stood out in a profile
2023-03-11 10:46:26 +01:00
Andreas Kling
e8f5085669
LibWeb: Implement Range.createContextualFragment()
2023-03-10 14:58:55 +01:00
Andreas Kling
fb6d6a985f
LibWeb: Implement Element.setAttributeNode{,NS}()
2023-03-10 14:56:29 +01:00
Andreas Kling
8c5c78f1f1
LibWeb: Implement Document.createAttribute{,NS}()
2023-03-10 14:56:03 +01:00
Andreas Kling
a504ac3e2a
Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_case
...
Let's make it clear that these functions deal with ASCII case only.
2023-03-10 13:15:44 +01:00
Aliaksandr Kalenik
9d03b57c96
LibWeb: Add readiness()
getter in Document
...
This getter returns the same readiness state of document as
`ready_state()` getter that is already present returns but without
allocating string.
2023-03-08 13:08:04 -05: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
2b6d9cca1a
LibWeb/HTML: Port Window.scroll() to IDL
...
...with various changes required due to ScrollBehavior / ScrollOptions
moving from Element.idl to Window.idl.
2023-03-07 23:33:34 +00:00
Linus Groh
40b4ee88de
LibWeb/HTML: Port Window.scroll{X,Y} / Window.page{X,Y}Offset 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
Luke Wilde
80fad65e5b
LibWeb: Add function to EventTarget that says if it has any listeners
...
Required by XHR to determine if it should use CORS-preflight if its
upload object has any event listeners.
2023-03-07 11:51:12 +00:00
Andreas Kling
689ca370d4
Everywhere: Remove NonnullRefPtr.h includes
2023-03-06 23:46:35 +01: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
Linus Groh
11b40dbcf5
LibWeb/WebIDL: Store SimpleException message as a String{,View} variant
2023-03-03 19:50:36 +00:00
Timothy Flynn
4734214ac1
LibWeb: Skip over grapheme clusters on left/right arrow key presses
...
Currently, if you use the left/right arrow keys to move over a multi-
code point glyph, we will move through that glyph one code point at a
time. This means you can "pause" your movement in the middle of a glyph
and delete a subsection of a grapheme cluster. This now moves the cursor
across the entire cluster.
2023-03-01 14:24:01 +00:00
Timothy Flynn
2c4acba883
LibWeb: Convert Web::DOM::Position::to_deprecated_string to String
2023-03-01 14:24:01 +00:00
Luke Wilde
54f58e2662
LibWeb: Restore proper functionality of legacy platform objects
...
With the GC heap conversion, the functionality of legacy platform
objects was broken. This is because the generated implementation of one
of them was used for all of them, removing functionality such as
deletion.
This re-adds all functionality, where questions such as "does the
object support indexed properties?" is instead answered by virtual
functions instead of by the IDL generator checking the presence of
certain keywords/attributes.
2023-02-28 12:36:14 +01: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
ec0049441c
LibWeb: Make factory methods of Geometry::DOMRect fallible
2023-02-22 09:55:33 +01:00
Kenneth Myhra
9b190b9509
LibWeb: Make factory method of Geometry::DOMRectList 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
1f48081ee4
LibWeb: Make factory methods of IDLEventListener and NodeFilter 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
Andreas Kling
f11899f885
LibWeb+LibIDL: Fix (or paper over) various const-correctness issues
...
There's definitely stuff to iterate on here, but this takes care of
making the libraries compile with stricter RP and NNRP.
2023-02-21 00:54:04 +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
Jonah
da5c9189b2
LibWeb: Implement Accessible Name and Description Calculation
...
This is an initial implementation of the accname standard. There is
still some of the algorithm left unimplemented that we will need
to implement in the future. However, as is, this implementation is
sufficient for basic pages.
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
200d22c650
LibWeb: Make factory method of DOM::Text fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
2411dadc35
LibWeb: Make factory method of DOM::StaticNodeList 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
e3e281addd
LibWeb: Make factory method of DOM::NamedNodeMap fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
ce18dfc417
LibWeb: Make factory method of DOM::MutationRecord fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
7852915dd3
LibWeb: Make factory method of DOM::MutationObserver fallible
2023-02-18 00:52:47 +01:00
Kenneth Myhra
24d7e688fc
LibWeb: Make factory method of DOM::LiveNodeList 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