| 
									
										
										
										
											2023-03-05 23:58:47 +00:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Copyright (c) 2023, Linus Groh <linusg@serenityos.org> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * SPDX-License-Identifier: BSD-2-Clause | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <AK/Forward.h>
 | 
					
						
							|  |  |  | #include <LibWeb/Bindings/PlatformObject.h>
 | 
					
						
							| 
									
										
										
										
											2023-03-07 18:15:52 +00:00
										 |  |  | #include <LibWeb/Fetch/Request.h>
 | 
					
						
							| 
									
										
										
										
											2023-03-05 23:58:47 +00:00
										 |  |  | #include <LibWeb/Forward.h>
 | 
					
						
							| 
									
										
										
										
											2023-03-07 18:21:49 +00:00
										 |  |  | #include <LibWeb/HTML/MessagePort.h>
 | 
					
						
							| 
									
										
										
										
											2023-03-05 23:58:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace Web::HTML { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // https://html.spec.whatwg.org/multipage/webappapis.html#windoworworkerglobalscope
 | 
					
						
							|  |  |  | class WindowOrWorkerGlobalScopeMixin { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual ~WindowOrWorkerGlobalScopeMixin(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual Bindings::PlatformObject& this_impl() = 0; | 
					
						
							|  |  |  |     virtual Bindings::PlatformObject const& this_impl() const = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // JS API functions
 | 
					
						
							|  |  |  |     WebIDL::ExceptionOr<String> origin() const; | 
					
						
							|  |  |  |     bool is_secure_context() const; | 
					
						
							|  |  |  |     bool cross_origin_isolated() const; | 
					
						
							|  |  |  |     WebIDL::ExceptionOr<String> btoa(String const& data) const; | 
					
						
							|  |  |  |     WebIDL::ExceptionOr<String> atob(String const& data) const; | 
					
						
							| 
									
										
										
										
											2023-03-07 18:25:18 +00:00
										 |  |  |     void queue_microtask(WebIDL::CallbackType&); | 
					
						
							| 
									
										
										
										
											2023-03-07 18:21:49 +00:00
										 |  |  |     WebIDL::ExceptionOr<JS::Value> structured_clone(JS::Value, StructuredSerializeOptions const&) const; | 
					
						
							| 
									
										
										
										
											2023-03-07 18:15:52 +00:00
										 |  |  |     JS::NonnullGCPtr<JS::Promise> fetch(Fetch::RequestInfo const&, Fetch::RequestInit const&) const; | 
					
						
							| 
									
										
										
										
											2023-03-05 23:58:47 +00:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |