mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
2bd9b287e1
We are going to infer all RequestContext types from the corresponding nsContentPolicyType. It no longer makes sense to store both of these on InternalRequest. This has the extra benefit that we don't need to worry about keeping them in sync any more.
132 lines
2.8 KiB
C++
132 lines
2.8 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* 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/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);
|
|
|
|
JSObject*
|
|
WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
|
|
{
|
|
return RequestBinding::Wrap(aCx, this, aGivenProto);
|
|
}
|
|
|
|
void
|
|
GetUrl(nsAString& aUrl) const
|
|
{
|
|
CopyUTF8toUTF16(mRequest->mURL, aUrl);
|
|
}
|
|
|
|
void
|
|
GetMethod(nsCString& aMethod) const
|
|
{
|
|
aMethod = mRequest->mMethod;
|
|
}
|
|
|
|
RequestMode
|
|
Mode() const
|
|
{
|
|
if (mRequest->mMode == RequestMode::Cors_with_forced_preflight) {
|
|
return RequestMode::Cors;
|
|
}
|
|
return mRequest->mMode;
|
|
}
|
|
|
|
RequestCredentials
|
|
Credentials() const
|
|
{
|
|
return mRequest->mCredentialsMode;
|
|
}
|
|
|
|
RequestCache
|
|
Cache() const
|
|
{
|
|
return mRequest->GetCacheMode();
|
|
}
|
|
|
|
RequestContext
|
|
Context() const
|
|
{
|
|
return mRequest->Context();
|
|
}
|
|
|
|
void
|
|
SetContentPolicyType(nsContentPolicyType aContentPolicyType)
|
|
{
|
|
mRequest->SetContentPolicyType(aContentPolicyType);
|
|
}
|
|
|
|
void
|
|
GetReferrer(nsAString& aReferrer) const
|
|
{
|
|
mRequest->GetReferrer(aReferrer);
|
|
}
|
|
|
|
InternalHeaders*
|
|
GetInternalHeaders() const
|
|
{
|
|
return mRequest->Headers();
|
|
}
|
|
|
|
Headers* Headers_();
|
|
|
|
void
|
|
GetBody(nsIInputStream** aStream) { return mRequest->GetBody(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) const;
|
|
|
|
already_AddRefed<InternalRequest>
|
|
GetInternalRequest();
|
|
private:
|
|
~Request();
|
|
|
|
nsCOMPtr<nsIGlobalObject> mOwner;
|
|
nsRefPtr<InternalRequest> mRequest;
|
|
// Lazily created.
|
|
nsRefPtr<Headers> mHeaders;
|
|
};
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
#endif // mozilla_dom_Request_h
|