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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								497ead37bc 
								
							 
						 
						
							
							
								
								LibWeb: Make DOMException GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								57db2529cf 
								
							 
						 
						
							
							
								
								LibWeb: Make DOMRect, DOMRectReadOnly and DOMRectList GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b30e95eb27 
								
							 
						 
						
							
							
								
								LibWeb: Don't allocate NamedNodeMap in Element constructor  
							
							... 
							
							
							
							Allocations should happen in the initialize() virtual, so move it there. 
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ffad902c07 
								
							 
						 
						
							
							
								
								LibWeb: Use cached_web_prototype() as much as possible  
							
							... 
							
							
							
							Unlike ensure_web_prototype<T>(), the cached version doesn't require the
prototype type to be fully formed, so we can use it without including
the FooPrototype.h header. It's also a bit less verbose. :^) 
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								dd9cd3050b 
								
							 
						 
						
							
							
								
								LibWeb: Use correct Window object when dispatching Document load event  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1029ea4b32 
								
							 
						 
						
							
							
								
								LibWeb: Use correct relevant settings object in Document initialization  
							
							... 
							
							
							
							The code was not in line with the spec comment right above it. 
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a835f313f7 
								
							 
						 
						
							
							
								
								LibWeb: Make Document::is_fully_active() more robust  
							
							... 
							
							
							
							We were missing a check for null browsing context container documents. 
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4901f69345 
								
							 
						 
						
							
							
								
								LibWeb: Don't capture raw ptr in Document::completely_finish_loading()  
							
							... 
							
							
							
							It's not safe to capture a raw pointer in a HTML task, as the garbage
collector doesn't have visibility into the task captures. 
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b8d485e6f0 
								
							 
						 
						
							
							
								
								LibWeb: Make AbortController GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								16fbb91aa1 
								
							 
						 
						
							
							
								
								LibWeb: Make History GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								2bba97964b 
								
							 
						 
						
							
							
								
								LibWeb: Make HTMLCollection and subclasses GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4c887bf6c3 
								
							 
						 
						
							
							
								
								LibWeb: Remove Document::interpreter()  
							
							... 
							
							
							
							Nobody needs this anymore, so we can finally remove it. :^) 
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								2d72abc3d4 
								
							 
						 
						
							
							
								
								LibWeb+WebContent: Store Realm instead of Interpreter in ConsoleClient  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								905eb8cb4d 
								
							 
						 
						
							
							
								
								LibWeb: Make MutationObserver GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								43ec0f734f 
								
							 
						 
						
							
							
								
								LibWeb: Make MutationRecord GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								48e0066371 
								
							 
						 
						
							
							
								
								LibWeb: Make NodeList GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								6f433c8656 
								
							 
						 
						
							
							
								
								LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated  
							
							... 
							
							
							
							This is a monster patch that turns all EventTargets into GC-allocated
PlatformObjects. Their C++ wrapper classes are removed, and the LibJS
garbage collector is now responsible for their lifetimes.
There's a fair amount of hacks and band-aids in this patch, and we'll
have a lot of cleanup to do after this. 
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								bb547ce1c4 
								
							 
						 
						
							
							
								
								LibWeb: Make AbstractRange and subclasses GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								7c3db526b0 
								
							 
						 
						
							
							
								
								LibWeb: Make DOM::Event and all its subclasses GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a4ddb0ef87 
								
							 
						 
						
							
							
								
								LibWeb: Make TreeWalker GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								bd629c45b5 
								
							 
						 
						
							
							
								
								LibWeb: Make NodeIterator GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								8cda70c892 
								
							 
						 
						
							
							
								
								LibWeb: Move event listeners, handlers and callbacks to the GC heap  
							
							... 
							
							
							
							This patch moves the following things to being GC-allocated:
- Bindings::CallbackType
- HTML::EventHandler
- DOM::IDLEventListener
- DOM::DOMEventListener
- DOM::NodeFilter
Note that we only use PlatformObject for things that might be exposed
to web content. Anything that is only used internally inherits directly
from JS::Cell instead, making them a bit more lightweight. 
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								967a3e5a45 
								
							 
						 
						
							
							
								
								LibWeb: Make DOMImplementation GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								0176d42f49 
								
							 
						 
						
							
							
								
								LibWeb: Make DOMTokenList GC-allocated  
							
							
							
						 
						
							2022-09-06 00:27:09 +02:00