Bug 1647759 - P2: Send connectivity status to socket process r=dragana

Differential Revision: https://phabricator.services.mozilla.com/D82352
This commit is contained in:
Kershaw Chang
2020-07-06 18:26:49 +00:00
parent 0c28a78005
commit 69103c0751
4 changed files with 17 additions and 0 deletions

View File

@@ -223,6 +223,7 @@ static const char* gCallbackPrefsForSocketProcess[] = {
"network.trr.", "network.trr.",
"network.dns.disableIPv6", "network.dns.disableIPv6",
"network.dns.skipTRR-when-parental-control-enabled", "network.dns.skipTRR-when-parental-control-enabled",
"network.offline-mirrors-connectivity",
nullptr, nullptr,
}; };
@@ -1369,6 +1370,9 @@ nsresult nsIOService::SetConnectivityInternal(bool aConnectivity) {
observerService->NotifyObservers(nullptr, observerService->NotifyObservers(nullptr,
NS_IPC_IOSERVICE_SET_CONNECTIVITY_TOPIC, NS_IPC_IOSERVICE_SET_CONNECTIVITY_TOPIC,
aConnectivity ? u"true" : u"false"); aConnectivity ? u"true" : u"false");
if (SocketProcessReady()) {
Unused << mSocketProcess->GetActor()->SendSetConnectivity(aConnectivity);
}
} }
if (mOffline) { if (mOffline) {

View File

@@ -131,6 +131,7 @@ child:
bool minimizeMemoryUsage, bool minimizeMemoryUsage,
FileDescriptor? DMDFile); FileDescriptor? DMDFile);
async SetOffline(bool offline); async SetOffline(bool offline);
async SetConnectivity(bool connectivity);
async InitLinuxSandbox(FileDescriptor? sandboxBroker); async InitLinuxSandbox(FileDescriptor? sandboxBroker);
async InitSocketProcessBridgeParent(ProcessId processId, Endpoint<PSocketProcessBridgeParent> endpoint); async InitSocketProcessBridgeParent(ProcessId processId, Endpoint<PSocketProcessBridgeParent> endpoint);
async InitProfiler(Endpoint<PProfilerChild> aEndpoint); async InitProfiler(Endpoint<PProfilerChild> aEndpoint);

View File

@@ -221,6 +221,17 @@ mozilla::ipc::IPCResult SocketProcessChild::RecvSetOffline(
return IPC_OK(); return IPC_OK();
} }
mozilla::ipc::IPCResult SocketProcessChild::RecvSetConnectivity(
const bool& aConnectivity) {
nsCOMPtr<nsIIOService> io(do_GetIOService());
nsCOMPtr<nsIIOServiceInternal> ioInternal(do_QueryInterface(io));
NS_ASSERTION(ioInternal, "IO Service can not be null");
ioInternal->SetConnectivity(aConnectivity);
return IPC_OK();
}
mozilla::ipc::IPCResult SocketProcessChild::RecvInitLinuxSandbox( mozilla::ipc::IPCResult SocketProcessChild::RecvInitLinuxSandbox(
const Maybe<ipc::FileDescriptor>& aBrokerFd) { const Maybe<ipc::FileDescriptor>& aBrokerFd) {
#if defined(XP_LINUX) && defined(MOZ_SANDBOX) #if defined(XP_LINUX) && defined(MOZ_SANDBOX)

View File

@@ -44,6 +44,7 @@ class SocketProcessChild final
const bool& minimizeMemoryUsage, const bool& minimizeMemoryUsage,
const Maybe<mozilla::ipc::FileDescriptor>& DMDFile); const Maybe<mozilla::ipc::FileDescriptor>& DMDFile);
mozilla::ipc::IPCResult RecvSetOffline(const bool& aOffline); mozilla::ipc::IPCResult RecvSetOffline(const bool& aOffline);
mozilla::ipc::IPCResult RecvSetConnectivity(const bool& aConnectivity);
mozilla::ipc::IPCResult RecvInitLinuxSandbox( mozilla::ipc::IPCResult RecvInitLinuxSandbox(
const Maybe<ipc::FileDescriptor>& aBrokerFd); const Maybe<ipc::FileDescriptor>& aBrokerFd);
mozilla::ipc::IPCResult RecvInitSocketProcessBridgeParent( mozilla::ipc::IPCResult RecvInitSocketProcessBridgeParent(