Bug 1263991 part 6: Add e10s support for incoming websocket connections to FlyWebPublishedServer. r=baku,michal
This commit is contained in:
@@ -436,7 +436,9 @@ WebSocketChannelChild::AsyncOpen(nsIURI *aURI,
|
||||
LOG(("WebSocketChannelChild::AsyncOpen() %p\n", this));
|
||||
|
||||
MOZ_ASSERT(NS_IsMainThread(), "not main thread");
|
||||
MOZ_ASSERT(aURI && aListener && !mListenerMT,
|
||||
MOZ_ASSERT((aURI && !mIsServerSide) || (!aURI && mIsServerSide),
|
||||
"Invalid aURI for WebSocketChannelChild::AsyncOpen");
|
||||
MOZ_ASSERT(aListener && !mListenerMT,
|
||||
"Invalid state for WebSocketChannelChild::AsyncOpen");
|
||||
|
||||
mozilla::dom::TabChild* tabChild = nullptr;
|
||||
@@ -451,25 +453,42 @@ WebSocketChannelChild::AsyncOpen(nsIURI *aURI,
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
}
|
||||
|
||||
URIParams uri;
|
||||
SerializeURI(aURI, uri);
|
||||
|
||||
// Corresponding release in DeallocPWebSocket
|
||||
AddIPDLReference();
|
||||
|
||||
OptionalURIParams uri;
|
||||
OptionalLoadInfoArgs loadInfoArgs;
|
||||
nsresult rv = LoadInfoToLoadInfoArgs(mLoadInfo, &loadInfoArgs);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
OptionalTransportProvider transportProvider;
|
||||
|
||||
if (!mIsServerSide) {
|
||||
uri = URIParams();
|
||||
SerializeURI(aURI, uri.get_URIParams());
|
||||
nsresult rv = LoadInfoToLoadInfoArgs(mLoadInfo, &loadInfoArgs);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
transportProvider = void_t();
|
||||
} else {
|
||||
uri = void_t();
|
||||
loadInfoArgs = void_t();
|
||||
|
||||
MOZ_ASSERT(mServerTransportProvider);
|
||||
transportProvider = mServerTransportProvider->GetIPCChild();
|
||||
}
|
||||
|
||||
gNeckoChild->SendPWebSocketConstructor(this, tabChild,
|
||||
IPC::SerializedLoadContext(this),
|
||||
mSerial);
|
||||
if (!SendAsyncOpen(uri, nsCString(aOrigin), aInnerWindowID, mProtocol,
|
||||
mEncrypted, mPingInterval, mClientSetPingInterval,
|
||||
mPingResponseTimeout, mClientSetPingTimeout, loadInfoArgs)) {
|
||||
mPingResponseTimeout, mClientSetPingTimeout, loadInfoArgs,
|
||||
transportProvider, mNegotiatedExtensions)) {
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
|
||||
if (mIsServerSide) {
|
||||
mServerTransportProvider = nullptr;
|
||||
}
|
||||
|
||||
mOriginalURI = aURI;
|
||||
mURI = mOriginalURI;
|
||||
mListenerMT = new ListenerAndContextContainer(aListener, aContext);
|
||||
|
||||
Reference in New Issue
Block a user