mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 14:42:44 +00:00 
			
		
		
		
	LibWeb: Add the Document.documentElement API
Also change DOM::Document::document_element() to return an Element* and not an HTML::HTMLHtmlElement since that's not the only kind of documentElement we might encounter.
This commit is contained in:
		
							parent
							
								
									64a82100bd
								
							
						
					
					
						commit
						e27726dc92
					
				
					 4 changed files with 12 additions and 3 deletions
				
			
		|  | @ -127,9 +127,9 @@ void Document::fixup() | ||||||
|     this->append_child(html); |     this->append_child(html); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const HTML::HTMLHtmlElement* Document::document_element() const | const Element* Document::document_element() const | ||||||
| { | { | ||||||
|     return first_child_of_type<HTML::HTMLHtmlElement>(); |     return first_child_of_type<Element>(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const HTML::HTMLHeadElement* Document::head() const | const HTML::HTMLHeadElement* Document::head() const | ||||||
|  |  | ||||||
|  | @ -85,7 +85,7 @@ public: | ||||||
|     Node* inspected_node() { return m_inspected_node; } |     Node* inspected_node() { return m_inspected_node; } | ||||||
|     const Node* inspected_node() const { return m_inspected_node; } |     const Node* inspected_node() const { return m_inspected_node; } | ||||||
| 
 | 
 | ||||||
|     const HTML::HTMLHtmlElement* document_element() const; |     const Element* document_element() const; | ||||||
|     const HTML::HTMLHeadElement* head() const; |     const HTML::HTMLHeadElement* head() const; | ||||||
|     const HTML::HTMLElement* body() const; |     const HTML::HTMLElement* body() const; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,6 +9,7 @@ interface Document : Node { | ||||||
|     readonly attribute DOMString compatMode; |     readonly attribute DOMString compatMode; | ||||||
|     readonly attribute DocumentType? doctype; |     readonly attribute DocumentType? doctype; | ||||||
| 
 | 
 | ||||||
|  |     readonly attribute Element? documentElement; | ||||||
|     readonly attribute HTMLElement? body; |     readonly attribute HTMLElement? body; | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										8
									
								
								Libraries/LibWeb/Tests/Document/documentElement.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								Libraries/LibWeb/Tests/Document/documentElement.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | ||||||
|  | loadPage("file:///res/html/misc/blank.html"); | ||||||
|  | 
 | ||||||
|  | afterInitialPageLoad(() => { | ||||||
|  |     test("Basic functionality", () => { | ||||||
|  |         expect(document.documentElement).not.toBe(null); | ||||||
|  |         expect(document.documentElement.nodeName).toBe("html"); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling