Files
palemoon27/ipc/glue/Transport_win.cpp
T
roytam1 d2029fd840 import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1153937 - enable PushServiceLauncher. r=nsm (c776df06e)
- Bug 1150683 - Implement nsIPushNotificationService. r=dougt (1257f4275)
- Bug 1150683 - Add xpcshell test hooks to PushService.jsm. r=dougt (122a41a67)
- Bug 1150683 - Add xpcshell tests for nsIPushNotificationService. r=dougt (e4560dc57)
- Bug 1159310 - Remember the push count and last push time for push events. r=kit (a2d222a3a)
- Bug 1159310 - Update the storage xpcshell tests. r=dougt (6e3aa7d5a)
- Bug 1149274 - Clear site-permissions should clear all registered push notifications. r=nsm (b960ddef1)
- Bug 1162414 - Change PushService.jsm db to use promise. r=nsm, r=mt (f1890967d)
- Bug 1103106 - Change will-change to be first-come, first-served. r=roc (85a684e38)
- Bug 1128454 - Add crash report annotations for plugin bridge operation failures. r=billm (92517a23a)
- Bug 1150959 - Log rejected Promise error message to browser console (9c1b6b28e)
- Bug 1160527 - Patch 1 - Support PushEvent.waitUntil(). r=baku. (24548bec1)
- Bug 1114554 - Patch 1 - Notification ServiceWorker API stubs. r=wchen,baku (0c1a8eb51)
- Bug 1163410 - Ensure that JSAPI is properly initialized before calling ServiceWorkerClientPostMessageRunnable::DispatchDOMEvent; r=nsm (2029815da)
- Bug 1163410 - Skip test_request_context.html on Android for frequent crashes. (010675bc5)
- Bug 1167808 P4 Test that respondWith() for a browser load reads the body correctly. r=ehsan (38e28a07d)
- Bug 1174803 - Simplify RuntimeService::WorkerPrefChanged. r=bent (4be7d6b07)
- Bug 1167808 P1 Add dom.serviceWorkers.interception.opaque.enabled pref. r=ehsan (7784735d2)
- Bug 1167808 P2 Block opaque response interception if pref is disabled. r=ehsan (4a7ce8268)
- Bug 1167808 P3 FetchEvent.respondWith() should use opaque response internal body. r=nsm (3c9834bf7)
- Bug 1169296 - Intercepting top-level document loads is not working with JAR channels. r=jdm (b558e4322)
- Bug 1171651 - Disable the interception of app:// URIs in service workers on release builds. r=baku (8a2caf031)
- Bug 1167808 P0 Cache.put() should use internal body of opaque Response. r=nsm (4aa703c92)
- Bug 1180887 - Part 1: Separate out the JS code inside test_request_context.html; r=baku (0d0f2a5a5)
- Bug 1180887 - Part 2: Split test_request_context.html into one test file per chunk; r=baku (8277083d4)
- Bug 1114554 - Patch 2 - ServiceWorkerRegistration.showNotification(). r=wchen,baku (1f8530996)
- Bug 1152264 - Push API constantly doing requests. r=nsm (dc368cb8f)
- Bug 1157732 - Allow ws (insecure) connections to localhost. r=kcambridge (02a3b1f8a)
- Bug 1160316 - Bump IndexedDB name. r=nsm (f2a485f1e)
- missing bit of Bug 1150683 - Add xpcshell test hooks to PushService.jsm (986aaff97)
- Bug 1150812 - Split PushService - separate webSocket part. r=nsm, r=mt (97415d6e0)
- Bug 1150812 - Split PushService - make the separation more common for webSocket and http2. r=nsm, r=mt (30f78714b)
- Bug 1150812 - Adapt xpcshell test and add mochi tests for WebSocket version. r=nsm, r=mt (582b0c606)
- Bug 1150812 - Add Http2 Push service. r=nsm, r=mt (bbada37cc)
- Bug 1171261 - Only track pending channel registrations. r=dragana (82b643c38)
- Bug 1159944 - more alt-svc tests r=hurley (41dd4dd11)
- Bug 1150812 - xcpshell test for PushService with http2. r=nsm, r=mt (2911245f1)
- Bug 1166350 - Push fixes for principals. r=kitcambridge,bholley (4ccf3cf4d)
- Bug 1115379 - Streamline DownloadsViewItemController construction and remove now unneeded identifiers. r=mak (9aba8987f)
- Bug 1114554 - Patch 3 - Fire notificationclick event on ServiceWorkerGlobalScope. r=wchen,baku (5b4e6a8bb)
- fix AppleMedia test (a34b276e0)
2021-07-02 11:32:29 +08:00

73 lines
2.0 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
* vim: sw=2 ts=8 et :
*/
/* 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/. */
#include "base/message_loop.h"
#include "chrome/common/child_process_info.h"
#include "mozilla/ipc/Transport.h"
#include "mozilla/ipc/ProtocolUtils.h"
using namespace std;
using base::ProcessHandle;
namespace mozilla {
namespace ipc {
nsresult
CreateTransport(base::ProcessId aProcIdOne,
TransportDescriptor* aOne,
TransportDescriptor* aTwo)
{
wstring id = IPC::Channel::GenerateVerifiedChannelID(std::wstring());
// Use MODE_SERVER to force creation of the pipe
Transport t(id, Transport::MODE_SERVER, nullptr);
HANDLE serverPipe = t.GetServerPipeHandle();
if (!serverPipe) {
return NS_ERROR_TRANSPORT_INIT;
}
// NB: we create the server pipe immediately, instead of just
// grabbing an ID, on purpose. In the current setup, the client
// needs to connect to an existing server pipe, so to prevent race
// conditions, we create the server side here and then dup it to the
// eventual server process.
HANDLE serverDup;
DWORD access = 0;
DWORD options = DUPLICATE_SAME_ACCESS;
if (!DuplicateHandle(serverPipe, aProcIdOne, &serverDup, access, options)) {
return NS_ERROR_DUPLICATE_HANDLE;
}
aOne->mPipeName = aTwo->mPipeName = id;
aOne->mServerPipe = serverDup;
aTwo->mServerPipe = INVALID_HANDLE_VALUE;
return NS_OK;
}
Transport*
OpenDescriptor(const TransportDescriptor& aTd, Transport::Mode aMode)
{
return new Transport(aTd.mPipeName, aTd.mServerPipe, aMode, nullptr);
}
Transport*
OpenDescriptor(const FileDescriptor& aFd, Transport::Mode aMode)
{
NS_NOTREACHED("Not implemented!");
return nullptr;
}
void
CloseDescriptor(const TransportDescriptor& aTd)
{
CloseHandle(aTd.mServerPipe);
}
} // namespace ipc
} // namespace mozilla