Backed out changeset db2b968157d6 (bug 1816918) for causing xpc assertion failures in mozilla/Maybe.h CLOSED TREE

This commit is contained in:
Sandor Molnar 2023-03-28 05:30:53 +03:00
parent 4f907068d8
commit f2ead1f335
14 changed files with 19 additions and 73 deletions

View File

@ -147,7 +147,6 @@ inline const char* NS_CP_ContentTypeName(nsContentPolicyType contentType) {
CASE_RETURN(TYPE_INTERNAL_WORKER_STATIC_MODULE);
CASE_RETURN(TYPE_PROXIED_WEBRTC_MEDIA);
CASE_RETURN(TYPE_WEB_IDENTITY);
CASE_RETURN(TYPE_WEB_TRANSPORT);
CASE_RETURN(TYPE_END);
case nsIContentPolicy::TYPE_INVALID:
break;

View File

@ -438,18 +438,13 @@ interface nsIContentPolicy : nsISupports
*/
TYPE_INTERNAL_WORKER_STATIC_MODULE = 58,
/**
* Indicates Webtransport request
*/
TYPE_WEB_TRANSPORT = 59,
/**
* Used to indicate the end of this list, not a content policy. If you want
* to add a new content policy type, place it before this sentinel value
* TYPE_END, have it use TYPE_END's current value, and increment TYPE_END by
* one. (TYPE_END should always have the highest numerical value.)
*/
TYPE_END = 60,
TYPE_END = 59,
/* When adding new content types, please update

View File

@ -344,8 +344,7 @@ static_assert(
nsIContentPolicy::TYPE_UA_FONT == 55 &&
nsIContentPolicy::TYPE_WEB_IDENTITY == 57 &&
nsIContentPolicy::TYPE_INTERNAL_WORKER_STATIC_MODULE == 58 &&
nsIContentPolicy::TYPE_WEB_TRANSPORT == 59 &&
nsIContentPolicy::TYPE_END == 60,
nsIContentPolicy::TYPE_END == 59,
"nsContentPolicyType values are as expected");
namespace {

View File

@ -347,8 +347,6 @@ RequestDestination InternalRequest::MapContentPolicyTypeToRequestDestination(
return RequestDestination::_empty;
case nsIContentPolicy::TYPE_WEB_IDENTITY:
return RequestDestination::_empty;
case nsIContentPolicy::TYPE_WEB_TRANSPORT:
return RequestDestination::_empty;
case nsIContentPolicy::TYPE_INVALID:
case nsIContentPolicy::TYPE_END:
break;

View File

@ -109,8 +109,6 @@ nsCString MapInternalContentPolicyTypeToDest(nsContentPolicyType aType) {
return "empty"_ns;
case nsIContentPolicy::TYPE_WEB_IDENTITY:
return "webidentity"_ns;
case nsIContentPolicy::TYPE_WEB_TRANSPORT:
return "webtransport"_ns;
case nsIContentPolicy::TYPE_END:
case nsIContentPolicy::TYPE_INVALID:
break;

View File

@ -323,7 +323,6 @@ CSPDirective CSP_ContentTypeToDirective(nsContentPolicyType aType) {
case nsIContentPolicy::TYPE_INTERNAL_EVENTSOURCE:
case nsIContentPolicy::TYPE_INTERNAL_FETCH_PRELOAD:
case nsIContentPolicy::TYPE_WEB_IDENTITY:
case nsIContentPolicy::TYPE_WEB_TRANSPORT:
return nsIContentSecurityPolicy::CONNECT_SRC_DIRECTIVE;
case nsIContentPolicy::TYPE_OBJECT:

View File

@ -244,7 +244,6 @@ void WebTransport::Init(const GlobalObject& aGlobal, const nsAString& aURL,
}
nsCOMPtr<nsIPrincipal> principal = mGlobal->PrincipalOrNull();
IPCClientInfo ipcClientInfo(mGlobal->GetClientInfo().ref().ToIPC());
// Create a new IPC connection
Endpoint<PWebTransportParent> parentEndpoint;
Endpoint<PWebTransportChild> childEndpoint;
@ -322,7 +321,7 @@ void WebTransport::Init(const GlobalObject& aGlobal, const nsAString& aURL,
// https://w3c.github.io/webtransport/#webtransport-constructor Spec 5.2
backgroundChild
->SendCreateWebTransportParent(aURL, principal, ipcClientInfo, dedicated,
->SendCreateWebTransportParent(aURL, principal, dedicated,
requireUnreliable,
(uint32_t)congestionControl,
// XXX serverCertHashes,

View File

@ -32,8 +32,7 @@ WebTransportParent::~WebTransportParent() {
}
void WebTransportParent::Create(
const nsAString& aURL, nsIPrincipal* aPrincipal,
const IPCClientInfo& aClientInfo, const bool& aDedicated,
const nsAString& aURL, nsIPrincipal* aPrincipal, const bool& aDedicated,
const bool& aRequireUnreliable, const uint32_t& aCongestionControl,
// Sequence<WebTransportHash>* aServerCertHashes,
Endpoint<PWebTransportParent>&& aParentEndpoint,
@ -89,12 +88,10 @@ void WebTransportParent::Create(
"WebTransport AsyncConnect",
[self = RefPtr{this}, uri = std::move(uri),
principal = RefPtr{aPrincipal},
flags = nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_SEC_CONTEXT_IS_NULL,
aClientInfo] {
flags = nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_SEC_CONTEXT_IS_NULL] {
LOG(("WebTransport %p AsyncConnect", self.get()));
if (NS_FAILED(self->mWebTransport->AsyncConnectWithClient(
uri, principal, flags, self,
mozilla::Some(ClientInfo(aClientInfo))))) {
if (NS_FAILED(self->mWebTransport->AsyncConnect(uri, principal, flags,
self))) {
LOG(("AsyncConnect failure; we should get OnSessionClosed"));
}
});

View File

@ -8,7 +8,6 @@
#define DOM_WEBTRANSPORT_PARENT_WEBTRANSPORTPARENT_H_
#include "ErrorList.h"
#include "mozilla/dom/ClientIPCTypes.h"
#include "mozilla/dom/FlippedOnce.h"
#include "mozilla/dom/PWebTransportParent.h"
#include "mozilla/ipc/Endpoint.h"
@ -32,8 +31,7 @@ class WebTransportParent : public PWebTransportParent,
NS_DECL_WEBTRANSPORTSESSIONEVENTLISTENER
void Create(const nsAString& aURL, nsIPrincipal* aPrincipal,
const IPCClientInfo& aClientInfo, const bool& aDedicated,
const bool& aRequireUnreliable,
const bool& aDedicated, const bool& aRequireUnreliable,
const uint32_t& aCongestionControl,
// Sequence<WebTransportHash>* aServerCertHashes,
Endpoint<PWebTransportParent>&& aParentEndpoint,

View File

@ -490,8 +490,7 @@ mozilla::ipc::IPCResult BackgroundParentImpl::RecvCreateFileSystemManagerParent(
}
mozilla::ipc::IPCResult BackgroundParentImpl::RecvCreateWebTransportParent(
const nsAString& aURL, nsIPrincipal* aPrincipal,
const IPCClientInfo& aClientInfo, const bool& aDedicated,
const nsAString& aURL, nsIPrincipal* aPrincipal, const bool& aDedicated,
const bool& aRequireUnreliable, const uint32_t& aCongestionControl,
// Sequence<WebTransportHash>* aServerCertHashes,
Endpoint<PWebTransportParent>&& aParentEndpoint,
@ -501,10 +500,9 @@ mozilla::ipc::IPCResult BackgroundParentImpl::RecvCreateWebTransportParent(
RefPtr<mozilla::dom::WebTransportParent> webt =
new mozilla::dom::WebTransportParent();
webt->Create(aURL, aPrincipal, aClientInfo, aDedicated, aRequireUnreliable,
aCongestionControl,
/*aServerCertHashes, */ std::move(aParentEndpoint),
std::move(aResolver));
webt->Create(
aURL, aPrincipal, aDedicated, aRequireUnreliable, aCongestionControl,
/*aServerCertHashes, */ std::move(aParentEndpoint), std::move(aResolver));
return IPC_OK();
}

View File

@ -136,8 +136,7 @@ class BackgroundParentImpl : public PBackgroundParent {
CreateFileSystemManagerParentResolver&& aResolver) override;
mozilla::ipc::IPCResult RecvCreateWebTransportParent(
const nsAString& aURL, nsIPrincipal* aPrincipal,
const IPCClientInfo& aClientInfo, const bool& aDedicated,
const nsAString& aURL, nsIPrincipal* aPrincipal, const bool& aDedicated,
const bool& aRequireUnreliable, const uint32_t& aCongestionControl,
// Sequence<WebTransportHash>* aServerCertHashes,
Endpoint<PWebTransportParent>&& aParentEndpoint,

View File

@ -55,7 +55,6 @@ include protocol PWebSocketConnection;
include protocol PWebTransport;
include protocol PFetch;
include ClientIPCTypes;
include DOMTypes;
include IPCBlob;
include IPCServiceWorkerDescriptor;
@ -196,7 +195,6 @@ parent:
async CreateWebTransportParent(
nsString aURL,
nullable nsIPrincipal aPrincipal,
IPCClientInfo aClientInfo,
bool aDedicated,
bool aRequireUnreliable,
uint32_t aCongestionControl,

View File

@ -62,14 +62,6 @@ WebTransportSessionProxy::~WebTransportSessionProxy() {
nsresult WebTransportSessionProxy::AsyncConnect(
nsIURI* aURI, nsIPrincipal* aPrincipal, uint32_t aSecurityFlags,
WebTransportSessionEventListener* aListener) {
return AsyncConnectWithClient(aURI, aPrincipal, aSecurityFlags, aListener,
Maybe<dom::ClientInfo>());
}
nsresult WebTransportSessionProxy::AsyncConnectWithClient(
nsIURI* aURI, nsIPrincipal* aPrincipal, uint32_t aSecurityFlags,
WebTransportSessionEventListener* aListener,
const Maybe<dom::ClientInfo>& aClientInfo) {
MOZ_ASSERT(NS_IsMainThread());
LOG(("WebTransportSessionProxy::AsyncConnect"));
@ -89,24 +81,12 @@ nsresult WebTransportSessionProxy::AsyncConnectWithClient(
nsLoadFlags loadFlags = nsIRequest::LOAD_NORMAL |
nsIRequest::LOAD_BYPASS_CACHE |
nsIRequest::INHIBIT_CACHING;
nsresult rv = NS_ERROR_FAILURE;
if (aClientInfo.isSome()) {
rv = NS_NewChannel(getter_AddRefs(mChannel), aURI, aPrincipal,
aClientInfo.ref(), Maybe<dom::ServiceWorkerDescriptor>(),
flags, nsContentPolicyType::TYPE_WEB_TRANSPORT,
/* aCookieJarSettings */ nullptr,
/* aPerformanceStorage */ nullptr,
/* aLoadGroup */ nullptr,
/* aCallbacks */ this, loadFlags);
} else {
rv = NS_NewChannel(getter_AddRefs(mChannel), aURI, aPrincipal, flags,
nsContentPolicyType::TYPE_WEB_TRANSPORT,
/* aCookieJarSettings */ nullptr,
/* aPerformanceStorage */ nullptr,
/* aLoadGroup */ nullptr,
/* aCallbacks */ this, loadFlags);
}
nsresult rv = NS_NewChannel(getter_AddRefs(mChannel), aURI, aPrincipal, flags,
nsContentPolicyType::TYPE_OTHER,
/* aCookieJarSettings */ nullptr,
/* aPerformanceStorage */ nullptr,
/* aLoadGroup */ nullptr,
/* aCallbacks */ this, loadFlags);
NS_ENSURE_SUCCESS(rv, rv);

View File

@ -14,9 +14,6 @@ interface nsIWebTransportSendStream;
interface nsIWebTransportReceiveStream;
%{C++
namespace mozilla::dom {
class ClientInfo;
}
namespace mozilla::net {
class Http3WebTransportSession;
class Http3WebTransportStream;
@ -26,7 +23,6 @@ class Http3WebTransportStream;
[ptr] native Http3WebTransportSessionPtr(mozilla::net::Http3WebTransportSession);
[ptr] native Http3WebTransportStreamPtr(mozilla::net::Http3WebTransportStream);
native Datagram(nsTArray<uint8_t>&&);
[ref] native const_MaybeClientInfoRef(const mozilla::Maybe<mozilla::dom::ClientInfo>);
[builtinclass, scriptable, uuid(c20d6e77-8cb1-4838-a88d-fff826080aa3)]
interface nsIWebTransport : nsISupports {
@ -40,13 +36,6 @@ interface nsIWebTransport : nsISupports {
in nsIPrincipal aLoadingPrincipal,
in unsigned long aSecurityFlags,
in WebTransportSessionEventListener aListener);
void asyncConnectWithClient(in nsIURI aURI,
in nsIPrincipal aLoadingPrincipal,
in unsigned long aSecurityFlags,
in WebTransportSessionEventListener aListener,
in const_MaybeClientInfoRef aClientInfo);
// Asynchronously get states.
void getStats();