blob: dd0a0acaa65adc689975c520d3f0488f17aa8ae4 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/public/common/zygote/zygote_handle.h"
#include "content/common/zygote/zygote_communication_linux.h"
#include "content/common/zygote/zygote_handle_impl_linux.h"
namespace content {
namespace {
// Intentionally leaked.
ZygoteHandle g_generic_zygote = nullptr;
ZygoteHandle g_unsandboxed_zygote = nullptr;
} // namespace
ZygoteHandle CreateGenericZygote(ZygoteLaunchCallback launch_cb) {
CHECK(!g_generic_zygote);
g_generic_zygote =
new ZygoteCommunication(ZygoteCommunication::ZygoteType::kSandboxed);
g_generic_zygote->Init(std::move(launch_cb));
return g_generic_zygote;
}
ZygoteHandle GetGenericZygote() {
CHECK(g_generic_zygote);
return g_generic_zygote;
}
ZygoteHandle CreateUnsandboxedZygote(ZygoteLaunchCallback launch_cb) {
CHECK(!g_unsandboxed_zygote);
g_unsandboxed_zygote =
new ZygoteCommunication(ZygoteCommunication::ZygoteType::kUnsandboxed);
g_unsandboxed_zygote->Init(std::move(launch_cb));
return g_unsandboxed_zygote;
}
ZygoteHandle GetUnsandboxedZygote() {
CHECK(g_unsandboxed_zygote);
return g_unsandboxed_zygote;
}
} // namespace content