28 lines
618 B
C++
28 lines
618 B
C++
|
|
// Copyright 2022 The Chromium Authors
|
||
|
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
|
// found in the LICENSE file.
|
||
|
|
|
||
|
|
#include "base/process/process_info.h"
|
||
|
|
|
||
|
|
#include <os/availability.h>
|
||
|
|
#include <stdio.h>
|
||
|
|
#include <stdlib.h>
|
||
|
|
#include <unistd.h>
|
||
|
|
|
||
|
|
extern "C" {
|
||
|
|
pid_t responsibility_get_pid_responsible_for_pid(pid_t)
|
||
|
|
API_AVAILABLE(macosx(10.12));
|
||
|
|
}
|
||
|
|
|
||
|
|
namespace base {
|
||
|
|
|
||
|
|
bool IsProcessSelfResponsible() {
|
||
|
|
if (__builtin_available(macOS 10.14, *)) {
|
||
|
|
const pid_t pid = getpid();
|
||
|
|
return responsibility_get_pid_responsible_for_pid(pid) == pid;
|
||
|
|
}
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
|
||
|
|
} // namespace base
|