Bug 1778052 - Don't reset ignored signals when starting a sandboxed child process on Linux. r=gcp
We uninstall signal handlers in child processes after clone(), because
they probably won't do the right thing if invoked in that context.
However, the current code also resets signals which were ignored;
if that disposition was set by an outside program like `nohup`, the
expectation is that it should be inherited. This patch omits those
signals when resetting handlers (similar to what `exec` does).
Differential Revision:
https://phabricator.services.mozilla.com/D151336
/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 4; -*- */
/* 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/. */
#ifndef SHARED_SURFACE_GL_H_
#define SHARED_SURFACE_GL_H_
#include "SharedSurface.h"
namespace mozilla {
namespace gl {
class MozFramebuffer;
// For readback and bootstrapping:
class SharedSurface_Basic final : public SharedSurface {
public:
static UniquePtr<SharedSurface_Basic> Create(const SharedSurfaceDesc&);
private:
SharedSurface_Basic(const SharedSurfaceDesc& desc,
UniquePtr<MozFramebuffer>&& fb);
public:
Maybe<layers::SurfaceDescriptor> ToSurfaceDescriptor() override;
};
class SurfaceFactory_Basic final : public SurfaceFactory {
public:
explicit SurfaceFactory_Basic(GLContext& gl);
virtual UniquePtr<SharedSurface> CreateSharedImpl(
const SharedSurfaceDesc& desc) override {
return SharedSurface_Basic::Create(desc);
}
};
} // namespace gl
} // namespace mozilla
#endif // SHARED_SURFACE_GL_H_