123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- #ifndef mozilla_dom_Request_h
- #define mozilla_dom_Request_h
- #include "nsIContentPolicy.h"
- #include "nsISupportsImpl.h"
- #include "nsWrapperCache.h"
- #include "mozilla/dom/Fetch.h"
- #include "mozilla/dom/AbortSignal.h"
- #include "mozilla/dom/InternalRequest.h"
- // Required here due to certain WebIDL enums/classes being declared in both
- // files.
- #include "mozilla/dom/RequestBinding.h"
- namespace mozilla {
- namespace dom {
- class Headers;
- class InternalHeaders;
- class RequestOrUSVString;
- class Request final : public nsISupports
- , public FetchBody<Request>
- , public nsWrapperCache
- {
- NS_DECL_CYCLE_COLLECTING_ISUPPORTS
- NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(Request)
- public:
- Request(nsIGlobalObject* aOwner, InternalRequest* aRequest, AbortSignal* aSignal);
- static bool
- RequestContextEnabled(JSContext* aCx, JSObject* aObj);
- JSObject*
- WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
- {
- return RequestBinding::Wrap(aCx, this, aGivenProto);
- }
- void
- GetUrl(nsAString& aUrl) const
- {
- nsAutoCString url;
- mRequest->GetURL(url);
- CopyUTF8toUTF16(url, aUrl);
- }
- void
- GetMethod(nsCString& aMethod) const
- {
- aMethod = mRequest->mMethod;
- }
- RequestMode
- Mode() const
- {
- return mRequest->mMode;
- }
- RequestCredentials
- Credentials() const
- {
- return mRequest->mCredentialsMode;
- }
- RequestCache
- Cache() const
- {
- return mRequest->GetCacheMode();
- }
- RequestRedirect
- Redirect() const
- {
- return mRequest->GetRedirectMode();
- }
- void
- GetIntegrity(nsAString& aIntegrity) const
- {
- aIntegrity = mRequest->GetIntegrity();
- }
- RequestContext
- Context() const
- {
- return mRequest->Context();
- }
- void
- OverrideContentPolicyType(nsContentPolicyType aContentPolicyType)
- {
- mRequest->OverrideContentPolicyType(aContentPolicyType);
- }
- bool
- IsContentPolicyTypeOverridden() const
- {
- return mRequest->IsContentPolicyTypeOverridden();
- }
- void
- GetReferrer(nsAString& aReferrer) const
- {
- mRequest->GetReferrer(aReferrer);
- }
- ReferrerPolicy
- ReferrerPolicy_() const
- {
- return mRequest->ReferrerPolicy_();
- }
- InternalHeaders*
- GetInternalHeaders() const
- {
- return mRequest->Headers();
- }
- Headers* Headers_();
- void
- GetBody(nsIInputStream** aStream) { return mRequest->GetBody(aStream); }
- void
- SetBody(nsIInputStream* aStream) { return mRequest->SetBody(aStream); }
- static already_AddRefed<Request>
- Constructor(const GlobalObject& aGlobal, const RequestOrUSVString& aInput,
- const RequestInit& aInit, ErrorResult& rv);
- nsIGlobalObject* GetParentObject() const
- {
- return mOwner;
- }
- already_AddRefed<Request>
- Clone(ErrorResult& aRv);
- already_AddRefed<InternalRequest>
- GetInternalRequest();
- const UniquePtr<mozilla::ipc::PrincipalInfo>&
- GetPrincipalInfo() const
- {
- return mRequest->GetPrincipalInfo();
- }
- AbortSignal*
- GetOrCreateSignal();
- // This can return a null AbortSignal.
- AbortSignal*
- GetSignal() const override;
- private:
- ~Request();
- nsCOMPtr<nsIGlobalObject> mOwner;
- RefPtr<InternalRequest> mRequest;
-
- // Lazily created.
- RefPtr<Headers> mHeaders;
- RefPtr<AbortSignal> mSignal;
- };
- } // namespace dom
- } // namespace mozilla
- #endif // mozilla_dom_Request_h
|