Request.idl 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #import <DOM/AbortSignal.idl>
  2. #import <Fetch/Body.idl>
  3. #import <Fetch/BodyInit.idl>
  4. #import <Fetch/Headers.idl>
  5. typedef (Request or USVString) RequestInfo;
  6. // https://fetch.spec.whatwg.org/#request
  7. [Exposed=(Window,Worker)]
  8. interface Request {
  9. constructor(RequestInfo input, optional RequestInit init = {});
  10. readonly attribute ByteString method;
  11. readonly attribute USVString url;
  12. [SameObject] readonly attribute Headers headers;
  13. readonly attribute RequestDestination destination;
  14. readonly attribute USVString referrer;
  15. readonly attribute ReferrerPolicy referrerPolicy;
  16. readonly attribute RequestMode mode;
  17. readonly attribute RequestCredentials credentials;
  18. readonly attribute RequestCache cache;
  19. readonly attribute RequestRedirect redirect;
  20. readonly attribute DOMString integrity;
  21. readonly attribute boolean keepalive;
  22. readonly attribute boolean isReloadNavigation;
  23. readonly attribute boolean isHistoryNavigation;
  24. readonly attribute AbortSignal signal;
  25. readonly attribute RequestDuplex duplex;
  26. [NewObject] Request clone();
  27. };
  28. Request includes Body;
  29. dictionary RequestInit {
  30. ByteString method;
  31. HeadersInit headers;
  32. BodyInit? body;
  33. USVString referrer;
  34. ReferrerPolicy referrerPolicy;
  35. RequestMode mode;
  36. RequestCredentials credentials;
  37. RequestCache cache;
  38. RequestRedirect redirect;
  39. DOMString integrity;
  40. boolean keepalive;
  41. AbortSignal? signal;
  42. RequestDuplex duplex;
  43. RequestPriority priority;
  44. any window; // can only be set to null
  45. };
  46. enum RequestDestination { "", "audio", "audioworklet", "document", "embed", "font", "frame", "iframe", "image", "json", "manifest", "object", "paintworklet", "report", "script", "sharedworker", "style", "track", "video", "worker", "xslt" };
  47. enum RequestMode { "navigate", "same-origin", "no-cors", "cors" };
  48. enum RequestCredentials { "omit", "same-origin", "include" };
  49. enum RequestCache { "default", "no-store", "reload", "no-cache", "force-cache", "only-if-cached" };
  50. enum RequestRedirect { "follow", "error", "manual" };
  51. enum RequestDuplex { "half" };
  52. enum RequestPriority { "high", "low", "auto" };
  53. // https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy
  54. enum ReferrerPolicy {
  55. "",
  56. "no-referrer",
  57. "no-referrer-when-downgrade",
  58. "same-origin",
  59. "origin",
  60. "strict-origin",
  61. "origin-when-cross-origin",
  62. "strict-origin-when-cross-origin",
  63. "unsafe-url"
  64. };