fune/netwerk/base/InterceptionInfo.h
Eden Chuang 2aa93e45f4 Bug 1658869 - Propagate the InterceptedHttpChannel information to fetch's channel casued by FetchEvent.request. r=dom-worker-reviewers,dragana,jesup
When a network load needs to be intercepted by ServiceWorker, we extract the Request from the InterceptedHttpChannel, and propagate the Request through FetchEvent.request.

However, some needed information is not extracted or is modified during the Request propagation, so getting the wrong result when using the Request to fetch resources in the ServiceWorker script.

Differential Revision: https://phabricator.services.mozilla.com/D145969
2022-09-30 22:39:23 +00:00

44 lines
1.3 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_net_InterceptionInfo_h
#define mozilla_net_InterceptionInfo_h
#include "nsIContentSecurityPolicy.h"
#include "nsIInterceptionInfo.h"
#include "nsIPrincipal.h"
#include "nsIRedirectHistoryEntry.h"
#include "nsTArray.h"
#include "nsCOMPtr.h"
namespace mozilla::net {
using RedirectHistoryArray = nsTArray<nsCOMPtr<nsIRedirectHistoryEntry>>;
class InterceptionInfo final : public nsIInterceptionInfo {
public:
NS_DECL_THREADSAFE_ISUPPORTS
NS_DECL_NSIINTERCEPTIONINFO
InterceptionInfo(nsIPrincipal* aTriggeringPrincipal,
nsContentPolicyType aContentPolicyType,
const RedirectHistoryArray& aRedirectChain,
bool aFromThirdParty);
using nsIInterceptionInfo::GetExtContentPolicyType;
private:
~InterceptionInfo() = default;
nsCOMPtr<nsIPrincipal> mTriggeringPrincipal;
nsContentPolicyType mContentPolicyType{nsIContentPolicy::TYPE_INVALID};
RedirectHistoryArray mRedirectChain;
bool mFromThirdParty = false;
};
} // namespace mozilla::net
#endif