Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								bbaa05fcf9 
								
							 
						 
						
							
							
								
								LibWeb: Move DOMException from DOM/ to WebIDL/  
							
							
							
						 
						
							2022-09-25 19:13:31 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								ad04d7ac9b 
								
							 
						 
						
							
							
								
								LibWeb: Move ExceptionOr from DOM/ to WebIDL/  
							
							... 
							
							
							
							This is a concept fully defined in the Web IDL spec and doesn't belong
in the DOM directory/namespace - not even DOMException, despite the name
:^) 
							
						 
						
							2022-09-25 19:13:31 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								f36cbd3b65 
								
							 
						 
						
							
							
								
								LibWeb: Invalidate layout when a DOM node is removed from the tree  
							
							
							
						 
						
							2022-09-25 02:26:36 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								6480faacb6 
								
							 
						 
						
							
							
								
								LibWeb: Move IDLAbstractOperations from Bindings/ to WebIDL/  
							
							
							
						 
						
							2022-09-24 19:31:39 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								4f73851afc 
								
							 
						 
						
							
							
								
								LibWeb: Move CallbackType from Bindings/ to WebIDL/  
							
							... 
							
							
							
							Let's stop putting generic types and AOs from the Web IDL spec into
the Bindings namespace and directory in LibWeb, and instead follow our
usual naming rules of 'directory = namespace = spec name'. The IDL
namespace is already used by LibIDL, so Web::WebIDL seems like a good
choice. 
							
						 
						
							2022-09-24 19:31:39 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								874e64d664 
								
							 
						 
						
							
							
								
								LibWeb: Make queue_an_element_task() use JS::SafeFunction  
							
							
							
						 
						
							2022-09-24 12:23:29 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									MacDue 
								
							 
						 
						
							
							
							
							
								
							
							
								f5052e5017 
								
							 
						 
						
							
							
								
								LibWeb: Don't trigger page_did_layout() on non-active documents  
							
							... 
							
							
							
							PageHost assumes page_did_layout() to be called when the layout
of the active document changes, however, it seems that sometimes
the layout can change on another document before the layout of
the active document has been calculated. This leads to a VERIFY()
being hit.
This commit now makes it so page_did_layout() is only called when
the document is the active document.
Fixes  #15328  
							
						 
						
							2022-09-24 00:38:10 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								4270ede7c4 
								
							 
						 
						
							
							
								
								LibWeb: Remove WRAPPER_HACK() macro  
							
							... 
							
							
							
							We no longer access Bindings::FooWrapper anywhere for a Foo platform
object, so these can be removed :^) 
							
						 
						
							2022-09-21 21:12:24 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								6055b0e850 
								
							 
						 
						
							
							
								
								LibWeb: Remove no-op impl() methods from the WEB_PLATFORM_OBJECT macro  
							
							... 
							
							
							
							These are leftovers from when wrapper objects still had an internal
implementation, which is no longer the case. 
							
						 
						
							2022-09-21 21:12:24 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a5bb30d2ba 
								
							 
						 
						
							
							
								
								LibWeb: Make Node.childNodes vend the same NodeList every time  
							
							
							
						 
						
							2022-09-21 13:51:58 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								0c7ab663c1 
								
							 
						 
						
							
							
								
								LibWeb: Flesh out most of the "unload" algorithm for documents  
							
							... 
							
							
							
							Yet another small steps towards spec-compliant document lifecycles. 
							
						 
						
							2022-09-21 11:51:18 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								797d28adca 
								
							 
						 
						
							
							
								
								LibWeb: Save begin/end timestamps for load and DOMContentLoaded events  
							
							
							
						 
						
							2022-09-21 11:51:18 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								270de12d59 
								
							 
						 
						
							
							
								
								LibWeb: Save document load timing when updating document readiness  
							
							
							
						 
						
							2022-09-21 11:51:17 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								67559b1279 
								
							 
						 
						
							
							
								
								LibWeb: Add load/unload timing structures to Document  
							
							... 
							
							
							
							We don't populate these with information just yet, but we will soon! 
							
						 
						
							2022-09-21 11:51:17 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								92deba7197 
								
							 
						 
						
							
							
								
								LibWeb: Implement Document/BrowsingContext hookup according to spec  
							
							... 
							
							
							
							We now implement the browsing context's "set active document" algorithm
from the spec, as well as the "discard" algorithm for browsing contexts
and documents. 
							
						 
						
							2022-09-20 23:44:59 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								aa4dd6c1bc 
								
							 
						 
						
							
							
								
								LibWeb: Implement Element.insertAdjacentHTML() from DOM Parsing  
							
							... 
							
							
							
							One edge case is left as a TODO() for now, since I'm not entirely sure
how to construct an element to those specifications.
With this patch, we can now run the Speedometer benchmark! :^) 
							
						 
						
							2022-09-20 18:28:41 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								77d947b8ad 
								
							 
						 
						
							
							
								
								LibWeb: Initialize document referrer from Fetch Request if available  
							
							
							
						 
						
							2022-09-20 14:48:07 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d4acdac317 
								
							 
						 
						
							
							
								
								LibWeb+WebContent+Browser: Plumb visibility state from GUI to web pages  
							
							... 
							
							
							
							OOPWV now reacts to show/hide events and informs LibWeb about the state
change. This makes visibilitychange events fire when switching tabs. :^) 
							
						 
						
							2022-09-20 10:32:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e5f6d36616 
								
							 
						 
						
							
							
								
								LibWeb: Keep more of the navigation parameters in Document  
							
							
							
						 
						
							2022-09-20 10:32:13 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								42b8656db3 
								
							 
						 
						
							
							
								
								LibWeb: Flesh out "document visibility" state a bit more  
							
							... 
							
							
							
							We can now "update the visibility state", which also causes
`visibilitychange` events to fire on the document.
This still needs GUI integration work at the BrowsingContext level. 
							
						 
						
							2022-09-20 10:32:13 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								0810e77d77 
								
							 
						 
						
							
							
								
								LibWeb: Set the document "completely loaded time" when appropriate  
							
							
							
						 
						
							2022-09-20 10:32:12 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								8ead228202 
								
							 
						 
						
							
							
								
								LibWeb: Implement "browsing context group" concept from the HTML spec  
							
							
							
						 
						
							2022-09-20 10:32:12 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e6ef366859 
								
							 
						 
						
							
							
								
								LibWeb: Implement basic support for Document.all  
							
							... 
							
							
							
							The finer details are missing here, but the basic API is up. 
							
						 
						
							2022-09-18 02:17:29 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								fa2dd4cbe3 
								
							 
						 
						
							
							
								
								LibWeb: Make Document vend the same HTMLCollections every time  
							
							
							
						 
						
							2022-09-18 02:08:01 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1903dff365 
								
							 
						 
						
							
							
								
								LibWeb: Support getting and setting Attr.textContent  
							
							
							
						 
						
							2022-09-18 02:08:01 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								530675993b 
								
							 
						 
						
							
							
								
								LibWeb: Rename Attribute to Attr  
							
							... 
							
							
							
							This name is not very good, but it's what the specification calls it. 
							
						 
						
							2022-09-18 02:08:01 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								3c3ae3a768 
								
							 
						 
						
							
							
								
								LibWeb: Only uppercase qualified names in HTML documents  
							
							... 
							
							
							
							This takes care of an old FIXME now that we can distinguish between HTML
and non-HTML documents. 
							
						 
						
							2022-09-18 00:53:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								dc6e625680 
								
							 
						 
						
							
							
								
								LibWeb: Make ParentNode.children vend the same HTMLCollection every time  
							
							... 
							
							
							
							Instead of creating a new HTMLCollection every time you access
.children, we now follow the spec and vend the same object.
This was annoyingly difficult before, and trivial now that the DOM is
garbage-collected. :^) 
							
						 
						
							2022-09-18 00:42:33 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								6b3293a74b 
								
							 
						 
						
							
							
								
								LibWeb: Support getElementsByTagName() properly in non-HTML documents  
							
							
							
						 
						
							2022-09-18 00:39:42 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								bd0648a492 
								
							 
						 
						
							
							
								
								LibWeb: Simplify getElementsByTagName{,NS}() filters  
							
							... 
							
							
							
							Everything below the collection root is a descendant of the collection
root, so there's no need to check is_descendant_of() :^) 
							
						 
						
							2022-09-18 00:37:24 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								da451467b1 
								
							 
						 
						
							
							
								
								LibWeb: Implement basic "scroll" events at the document level  
							
							
							
						 
						
							2022-09-17 18:53:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								07c4bf03b5 
								
							 
						 
						
							
							
								
								LibWeb: Add "scripts to execute in order as soon as possible"  
							
							... 
							
							
							
							Previously, we had accidentally conflated this set with the
similar-but-distinct "scripts to execute as soon as possible". 
							
						 
						
							2022-09-17 18:53:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								df7e64d103 
								
							 
						 
						
							
							
								
								LibWeb: Handle multiple class names in getElementsByClassName()  
							
							... 
							
							
							
							The input string is actually a space-separated list of class names,
not a single class name. 
							
						 
						
							2022-09-17 18:53:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9e274d9501 
								
							 
						 
						
							
							
								
								LibWeb: Make Document.createElement() lowercase HTML local names  
							
							... 
							
							
							
							Bring createElement() a little bit closer to spec-compliance. 
							
						 
						
							2022-09-17 18:53:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d9c64ee876 
								
							 
						 
						
							
							
								
								LibWeb: Hoist case sensitivity check out of loop in Element::has_class()  
							
							
							
						 
						
							2022-09-15 16:16:56 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Luke Wilde 
								
							 
						 
						
							
							
							
							
								
							
							
								6a4934a030 
								
							 
						 
						
							
							
								
								LibWeb: Implement document.domain getter  
							
							... 
							
							
							
							The document.domain setter is currently stubbed as that is a doozy to
implement, given how much restrictions there are in place to try and
prevent use of it and potential multi-process implications.
This was the only thing preventing us from being able to start
displaying ads delivered via Google Syndication. 
							
						 
						
							2022-09-15 09:46:04 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								df49a6ae9b 
								
							 
						 
						
							
							
								
								LibWeb: Schedule a layout update in Document::invalidate_layout()  
							
							... 
							
							
							
							Otherwise, nothing will repaint until someone else decides to trigger
an update. 
							
						 
						
							2022-09-14 21:23:39 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4b9c5635b3 
								
							 
						 
						
							
							
								
								LibWeb: Make :link selector behave according to spec  
							
							... 
							
							
							
							It should match any `a` or `area` element that has an `href` attribute,
not any element *inside* an enclosing linked element. 
							
						 
						
							2022-09-14 14:43:17 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Hendiadyoin1 
								
							 
						 
						
							
							
							
							
								
							
							
								34439a04e8 
								
							 
						 
						
							
							
								
								LibWeb: Add a visit_edges for DOM/Event  
							
							
							
						 
						
							2022-09-13 20:55:21 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Hendiadyoin1 
								
							 
						 
						
							
							
							
							
								
							
							
								5bd34f115e 
								
							 
						 
						
							
							
								
								LibWeb: Add some missing includes  
							
							
							
						 
						
							2022-09-13 20:55:21 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Luke Wilde 
								
							 
						 
						
							
							
							
							
								
							
							
								875ca2fb68 
								
							 
						 
						
							
							
								
								LibWeb: Set prototype for both TextDecoder and AbortSignal  
							
							... 
							
							
							
							These were forgotten to be set during the GC heap conversion. 
							
						 
						
							2022-09-09 20:47:43 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b7d8fbbd70 
								
							 
						 
						
							
							
								
								LibWeb: Update layout in Element.client{Left,Top}  
							
							... 
							
							
							
							We have to flush any pending layout changes before getting metrics. 
							
						 
						
							2022-09-09 15:20:10 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								67b3af8025 
								
							 
						 
						
							
							
								
								LibWeb: Avoid layout in Element.client{Width,Height} if possible  
							
							... 
							
							
							
							When querying the HTML element (in strict mode) or the BODY element
(in quirks mode), we return the viewport dimensions.
Layout doesn't change the size of the viewport, so we can actually
reorder the steps here and avoid performing layout in some cases.
This removes a bunch of synchronous layouts on pages with reCAPTCHA. 
							
						 
						
							2022-09-09 15:20:10 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								524ec95bcd 
								
							 
						 
						
							
							
								
								LibWeb: Keep CSS sheets sorted in document tree order  
							
							... 
							
							
							
							This ensures that style is applied consistently, even if the document
has external CSS resources that don't always arrive in the same order. 
							
						 
						
							2022-09-09 15:20:10 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9567e211e7 
								
							 
						 
						
							
							
								
								LibWeb+WebContent: Add abstraction layer for event loop and timers  
							
							... 
							
							
							
							Instead of using Core::EventLoop and Core::Timer directly, LibWeb now
goes through a Web::Platform abstraction layer instead.
This will allow us to plug in Qt's event loop (and QTimer) over in
Ladybird, to avoid having to deal with multiple event loops. 
							
						 
						
							2022-09-07 20:30:31 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4c665c3749 
								
							 
						 
						
							
							
								
								LibWeb: Remove some unnecessary use of the internal realm in EventTarget  
							
							... 
							
							
							
							Now that EventTarget is GC-allocated, it can find the GC heap by just
calling heap() on itself, no need to get this via the internal realm. 
							
						 
						
							2022-09-06 01:07:59 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								8f110e0fb1 
								
							 
						 
						
							
							
								
								LibWeb: Remove the NoInstanceWrapper extended IDL attribute  
							
							... 
							
							
							
							No interfaces require wrappers anymore, so we can just make this the
default mode. 
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9176a0de99 
								
							 
						 
						
							
							
								
								LibWeb: Stop using Bindings::wrap() in a bunch of places  
							
							... 
							
							
							
							wrap() is now basically a no-op so we should stop using it everywhere
and eventually remove it. This patch removes uses of wrap() in
non-generated code. 
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								45425de849 
								
							 
						 
						
							
							
								
								LibWeb: Use the WRAPPER_HACK() macro instead of hand-coding wrap()  
							
							... 
							
							
							
							This macro will soon go away, but let's start by replacing all the
hand-coded versions of wrap() with this macro that expands to the same
exact thing. 
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								3768743a0a 
								
							 
						 
						
							
							
								
								LibWeb: Remove now-unused Bindings::Wrappable class  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00