/* 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 "nsISupports.idl" [scriptable, uuid(1341f571-ebed-4305-b264-4d8fc3b6b11c)] interface nsIProcessToolsService: nsISupports { /** * Kill a process running on this system. * * Does not cause a crash report to be generated and sent. * * # Note * * `pid` is the unique-to-the-system process identifier, as * obtained with attribute `pid` of this service. * * Under Un*ix, that's what you obtain with `getpid()`, etc. * Under Windows, that's what you obtain with `GetCurrentProcessId()`, * NOT the same thing as the process `HANDLE`. * * # Failure * * Under Windows, if two processes race to `kill()` a third process, * or two threads race to `kill()` a process there is a (small) window * during which this can cause a crash in the losing process. * * # Caveats * * Under Windows, process killing is asynchronous. Therefore, this * function can return before process `pid` is actually dead. */ void kill(in unsigned long long pid); /** * Crash a process running on this system. Generates a SIGABRT on Linux and * macOS, and a STATUS_ILLEGAL_INSTRUCTION on Windows. * * Does cause a crash report to be generated. */ void crash(in unsigned long long pid); /** * The pid for the current process. */ readonly attribute unsigned long long pid; };