mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 19:42:43 +00:00 
			
		
		
		
	LibWeb: Implement XMLSerializer
The main thing that is missing is validating certain pieces of data
against XML productions in well-formed mode, but nothing uses
well-formed mode right now.
Required by Closure Library for sanitising HTML.
e687b3d8ab/closure/goog/html/sanitizer/safedomtreeprocessor.js (L117)
			
			
This commit is contained in:
		
							parent
							
								
									60fc0ceabb
								
							
						
					
					
						commit
						de88e119a0
					
				
					 10 changed files with 938 additions and 1 deletions
				
			
		
							
								
								
									
										41
									
								
								Userland/Libraries/LibWeb/DOMParsing/XMLSerializer.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								Userland/Libraries/LibWeb/DOMParsing/XMLSerializer.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,41 @@ | |||
| /*
 | ||||
|  * Copyright (c) 2022, Luke Wilde <lukew@serenityos.org> | ||||
|  * | ||||
|  * SPDX-License-Identifier: BSD-2-Clause | ||||
|  */ | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include <AK/RefCounted.h> | ||||
| #include <LibWeb/Bindings/Wrappable.h> | ||||
| #include <LibWeb/Forward.h> | ||||
| 
 | ||||
| namespace Web::DOMParsing { | ||||
| 
 | ||||
| class XMLSerializer final | ||||
|     : public RefCounted<XMLSerializer> | ||||
|     , public Bindings::Wrappable { | ||||
| public: | ||||
|     using WrapperType = Bindings::XMLSerializerWrapper; | ||||
| 
 | ||||
|     static NonnullRefPtr<XMLSerializer> create_with_global_object(Bindings::WindowObject&) | ||||
|     { | ||||
|         return adopt_ref(*new XMLSerializer()); | ||||
|     } | ||||
| 
 | ||||
|     virtual ~XMLSerializer() override; | ||||
| 
 | ||||
|     DOM::ExceptionOr<String> serialize_to_string(NonnullRefPtr<DOM::Node> root); | ||||
| 
 | ||||
| private: | ||||
|     XMLSerializer(); | ||||
| }; | ||||
| 
 | ||||
| enum class RequireWellFormed { | ||||
|     No, | ||||
|     Yes, | ||||
| }; | ||||
| 
 | ||||
| DOM::ExceptionOr<String> serialize_node_to_xml_string(NonnullRefPtr<DOM::Node> root, RequireWellFormed require_well_formed); | ||||
| 
 | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Luke Wilde
						Luke Wilde