forked from mirrors/gecko-dev
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
44 lines
1.3 KiB
C++
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
|