gecko-dev/netwerk/base/TRRLoadInfo.h
Tim Huang 97022a04c1 Bug 1824222 - Add an OverriddenFingerprintingSettings attribute to nsILoadInfo. r=tjr,necko-reviewers,jesup
This patch adds a new attribute called OverriddenFingerprintingSettings to
nsILoadInfo. The field will be used to decide the granular fingerprinting
protection override of the corresponding channel.

The OverriddenFingerprintingSettings will only get populated if
there is one defined for the context of the channel. Otherwise, a value
of Nothing indicates no granular overrides are present for the channel..

Differential Revision: https://phabricator.services.mozilla.com/D185011
2023-10-17 22:02:27 +00:00

55 lines
1.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_TRRLoadInfo_h
#define mozilla_TRRLoadInfo_h
#include "nsILoadInfo.h"
#include "nsIURI.h"
#include "nsTArray.h"
#include "mozilla/dom/ClientInfo.h"
#include "mozilla/dom/ServiceWorkerDescriptor.h"
#include "mozilla/OriginAttributes.h"
namespace mozilla {
namespace net {
// TRRLoadInfo is designed to be used by TRRServiceChannel only. Most of
// nsILoadInfo functions are not implemented since TRRLoadInfo needs to
// support off main thread.
class TRRLoadInfo final : public nsILoadInfo {
public:
NS_DECL_THREADSAFE_ISUPPORTS
NS_DECL_NSILOADINFO
TRRLoadInfo(nsIURI* aResultPrincipalURI,
nsContentPolicyType aContentPolicyType);
already_AddRefed<nsILoadInfo> Clone() const;
private:
virtual ~TRRLoadInfo() = default;
nsCOMPtr<nsIURI> mResultPrincipalURI;
nsContentPolicyType mInternalContentPolicyType;
OriginAttributes mOriginAttributes;
nsTArray<nsCOMPtr<nsIRedirectHistoryEntry>> mEmptyRedirectChain;
nsTArray<nsCOMPtr<nsIPrincipal>> mEmptyPrincipals;
nsTArray<uint64_t> mEmptyBrowsingContextIDs;
nsTArray<nsCString> mCorsUnsafeHeaders;
nsID mSandboxedNullPrincipalID;
Maybe<mozilla::dom::ClientInfo> mClientInfo;
Maybe<mozilla::dom::ClientInfo> mReservedClientInfo;
Maybe<mozilla::dom::ClientInfo> mInitialClientInfo;
Maybe<mozilla::dom::ServiceWorkerDescriptor> mController;
Maybe<RFPTarget> mOverriddenFingerprintingSettings;
};
} // namespace net
} // namespace mozilla
#endif // mozilla_TRRLoadInfo_h