mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-10-31 21:30:58 +00:00 
			
		
		
		
	 8a3c66d8a6
			
		
	
	
		8a3c66d8a6
		
	
	
	
	
		
			
			These are not associated with a javascript realm, so to avoid confusion about which realm these need to be created in, make all of these objects a GC::Cell, and deal with the fallout.
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2024, Andrew Kaster <akaster@serenityos.org>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #include <LibWeb/HTML/Scripting/EnvironmentSettingsSnapshot.h>
 | |
| 
 | |
| namespace Web::HTML {
 | |
| 
 | |
| GC_DEFINE_ALLOCATOR(EnvironmentSettingsSnapshot);
 | |
| 
 | |
| EnvironmentSettingsSnapshot::EnvironmentSettingsSnapshot(JS::Realm& realm, NonnullOwnPtr<JS::ExecutionContext> execution_context, SerializedEnvironmentSettingsObject const& serialized_settings)
 | |
|     : EnvironmentSettingsObject(move(execution_context))
 | |
|     , m_api_url_character_encoding(serialized_settings.api_url_character_encoding)
 | |
|     , m_url(serialized_settings.api_base_url)
 | |
|     , m_origin(serialized_settings.origin)
 | |
|     , m_policy_container(create_a_policy_container_from_serialized_policy_container(realm.heap(), serialized_settings.policy_container))
 | |
|     , m_time_origin(serialized_settings.time_origin)
 | |
| {
 | |
|     // Why can't we put these in the init list? grandparent class members are strange it seems
 | |
|     this->id = serialized_settings.id;
 | |
|     this->creation_url = serialized_settings.creation_url;
 | |
|     this->top_level_creation_url = serialized_settings.top_level_creation_url;
 | |
| }
 | |
| 
 | |
| // Out of line to ensure this class has a key function
 | |
| EnvironmentSettingsSnapshot::~EnvironmentSettingsSnapshot() = default;
 | |
| 
 | |
| void EnvironmentSettingsSnapshot::visit_edges(Cell::Visitor& visitor)
 | |
| {
 | |
|     Base::visit_edges(visitor);
 | |
|     visitor.visit(m_policy_container);
 | |
| }
 | |
| 
 | |
| }
 |