mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-26 04:22:07 +00:00 
			
		
		
		
	 7f9ddcf420
			
		
	
	
		7f9ddcf420
		
	
	
	
	
		
			
			Since BodyInit and Headers are tightly coupled to both Request and Response, I chose to do all of them at once instead of introducing a bunch of temporary conversion glue code.
		
			
				
	
	
		
			70 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #import <DOM/AbortSignal.idl>
 | |
| #import <Fetch/Body.idl>
 | |
| #import <Fetch/BodyInit.idl>
 | |
| #import <Fetch/Headers.idl>
 | |
| 
 | |
| typedef (Request or USVString) RequestInfo;
 | |
| 
 | |
| // https://fetch.spec.whatwg.org/#request
 | |
| [Exposed=(Window,Worker), UseNewAKString]
 | |
| interface Request {
 | |
|     constructor(RequestInfo input, optional RequestInit init = {});
 | |
| 
 | |
|     readonly attribute ByteString method;
 | |
|     readonly attribute USVString url;
 | |
|     [SameObject] readonly attribute Headers headers;
 | |
| 
 | |
|     readonly attribute RequestDestination destination;
 | |
|     readonly attribute USVString referrer;
 | |
|     readonly attribute ReferrerPolicy referrerPolicy;
 | |
|     readonly attribute RequestMode mode;
 | |
|     readonly attribute RequestCredentials credentials;
 | |
|     readonly attribute RequestCache cache;
 | |
|     readonly attribute RequestRedirect redirect;
 | |
|     readonly attribute DOMString integrity;
 | |
|     readonly attribute boolean keepalive;
 | |
|     readonly attribute boolean isReloadNavigation;
 | |
|     readonly attribute boolean isHistoryNavigation;
 | |
|     readonly attribute AbortSignal signal;
 | |
|     readonly attribute RequestDuplex duplex;
 | |
| 
 | |
|     [NewObject] Request clone();
 | |
| };
 | |
| Request includes Body;
 | |
| 
 | |
| dictionary RequestInit {
 | |
|     ByteString method;
 | |
|     HeadersInit headers;
 | |
|     BodyInit? body;
 | |
|     USVString referrer;
 | |
|     ReferrerPolicy referrerPolicy;
 | |
|     RequestMode mode;
 | |
|     RequestCredentials credentials;
 | |
|     RequestCache cache;
 | |
|     RequestRedirect redirect;
 | |
|     DOMString integrity;
 | |
|     boolean keepalive;
 | |
|     AbortSignal? signal;
 | |
|     RequestDuplex duplex;
 | |
|     any window; // can only be set to null
 | |
| };
 | |
| 
 | |
| enum RequestDestination { "", "audio", "audioworklet", "document", "embed", "font", "frame", "iframe", "image", "manifest", "object", "paintworklet", "report", "script", "sharedworker", "style",  "track", "video", "worker", "xslt" };
 | |
| enum RequestMode { "navigate", "same-origin", "no-cors", "cors" };
 | |
| enum RequestCredentials { "omit", "same-origin", "include" };
 | |
| enum RequestCache { "default", "no-store", "reload", "no-cache", "force-cache", "only-if-cached" };
 | |
| enum RequestRedirect { "follow", "error", "manual" };
 | |
| enum RequestDuplex { "half" };
 | |
| 
 | |
| // https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy
 | |
| enum ReferrerPolicy {
 | |
|     "",
 | |
|     "no-referrer",
 | |
|     "no-referrer-when-downgrade",
 | |
|     "same-origin",
 | |
|     "origin",
 | |
|     "strict-origin",
 | |
|     "origin-when-cross-origin",
 | |
|     "strict-origin-when-cross-origin",
 | |
|     "unsafe-url"
 | |
| };
 |