feat: add process.uptime() to sandboxed renderers (#26684)

This commit is contained in:
Milan Burda 2020-11-30 08:49:18 +01:00 committed by GitHub
parent c8c41fb727
commit 14c8e000cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 0 deletions

View file

@ -22,6 +22,7 @@ In sandboxed renderers the `process` object contains only a subset of the APIs:
* `getSystemVersion()`
* `getCPUUsage()`
* `getIOCounters()`
* `uptime()`
* `argv`
* `execPath`
* `env`

View file

@ -90,6 +90,11 @@ v8::Local<v8::Value> CreatePreloadScript(v8::Isolate* isolate,
preloadSrc);
}
double Uptime() {
return (base::Time::Now() - base::Process::Current().CreationTime())
.InSecondsF();
}
void InvokeHiddenCallback(v8::Handle<v8::Context> context,
const std::string& hidden_key,
const std::string& callback_name) {
@ -137,6 +142,7 @@ void ElectronSandboxedRendererClient::InitializeBindings(
ElectronBindings::BindProcess(isolate, &process, metrics_.get());
process.SetMethod("uptime", Uptime);
process.Set("argv", base::CommandLine::ForCurrentProcess()->argv());
process.SetReadOnly("pid", base::GetCurrentProcId());
process.SetReadOnly("sandboxed", true);

View file

@ -2533,6 +2533,7 @@ describe('BrowserWindow module', () => {
expect(test.systemVersion).to.be.a('string');
expect(test.cpuUsage).to.be.an('object');
expect(test.ioCounters).to.be.an('object');
expect(test.uptime).to.be.a('number');
expect(test.arch).to.equal(process.arch);
expect(test.platform).to.equal(process.platform);
expect(test.env).to.deep.equal(process.env);

View file

@ -33,6 +33,7 @@
systemVersion: invoke(() => process.getSystemVersion()),
cpuUsage: invoke(() => process.getCPUUsage()),
ioCounters: invoke(() => process.getIOCounters()),
uptime: invoke(() => process.uptime()),
env: process.env,
execPath: process.execPath,
pid: process.pid,