From e995befcd0772ff9cd917e776403e4c151a5d4cb Mon Sep 17 00:00:00 2001 From: Paul Betts Date: Wed, 18 May 2016 11:07:30 -0700 Subject: [PATCH] Move everything into atom_bindings --- atom/common/api/atom_api_process_stats.cc | 67 ----------------------- atom/common/api/atom_bindings.cc | 44 +++++++++++++++ atom/common/node_bindings.cc | 1 - filenames.gypi | 2 - lib/common/init.js | 2 - 5 files changed, 44 insertions(+), 72 deletions(-) delete mode 100644 atom/common/api/atom_api_process_stats.cc diff --git a/atom/common/api/atom_api_process_stats.cc b/atom/common/api/atom_api_process_stats.cc deleted file mode 100644 index 05cbd3fed..000000000 --- a/atom/common/api/atom_api_process_stats.cc +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) 2015 GitHub, Inc. -// Use of this source code is governed by the MIT license that can be -// found in the LICENSE file. - -#include "atom/common/api/atom_api_native_image.h" - -#include -#include - -#include "atom/common/node_includes.h" -#include "base/process/process_metrics.h" -#include "native_mate/dictionary.h" - -namespace { - -v8::Local GetProcessMemoryInfo(v8::Isolate* isolate) { - mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate); - std::unique_ptr metrics( - base::ProcessMetrics::CreateCurrentProcessMetrics()); - - dict.Set("workingSetSize", - static_cast(metrics->GetWorkingSetSize() >> 10)); - dict.Set("peakWorkingSetSize", - static_cast(metrics->GetPeakWorkingSetSize() >> 10)); - - size_t private_bytes, shared_bytes; - if (metrics->GetMemoryBytes(&private_bytes, &shared_bytes)) { - dict.Set("privateBytes", static_cast(private_bytes >> 10)); - dict.Set("sharedBytes", static_cast(shared_bytes >> 10)); - } - - return dict.GetHandle(); -} - -v8::Local GetSystemMemoryInfo( - v8::Isolate* isolate, - mate::Arguments* args) { - mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate); - base::SystemMemoryInfoKB memInfo; - - if (!base::GetSystemMemoryInfo(&memInfo)) { - args->ThrowError("Unable to retrieve system memory information"); - return v8::Undefined(isolate); - } - - dict.Set("total", memInfo.total); - dict.Set("free", memInfo.free); - - // NB: These return bogus values on OS X -#if !defined(OS_MACOSX) - dict.Set("swapTotal", memInfo.swap_total); - dict.Set("swapFree", memInfo.swap_free); -#endif - - return dict.GetHandle(); -} - -void Initialize(v8::Local exports, v8::Local unused, - v8::Local context, void* priv) { - mate::Dictionary dict(context->GetIsolate(), exports); - dict.SetMethod("getProcessMemoryInfo", &GetProcessMemoryInfo); - dict.SetMethod("getSystemMemoryInfo", &GetSystemMemoryInfo); -} - -} // namespace - -NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_common_process_stats, Initialize) diff --git a/atom/common/api/atom_bindings.cc b/atom/common/api/atom_bindings.cc index f518caf5c..6b75ddd97 100644 --- a/atom/common/api/atom_bindings.cc +++ b/atom/common/api/atom_bindings.cc @@ -33,6 +33,48 @@ void Hang() { base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(1)); } +v8::Local GetProcessMemoryInfo(v8::Isolate* isolate) { + mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate); + std::unique_ptr metrics( + base::ProcessMetrics::CreateCurrentProcessMetrics()); + + dict.Set("workingSetSize", + static_cast(metrics->GetWorkingSetSize() >> 10)); + dict.Set("peakWorkingSetSize", + static_cast(metrics->GetPeakWorkingSetSize() >> 10)); + + size_t private_bytes, shared_bytes; + if (metrics->GetMemoryBytes(&private_bytes, &shared_bytes)) { + dict.Set("privateBytes", static_cast(private_bytes >> 10)); + dict.Set("sharedBytes", static_cast(shared_bytes >> 10)); + } + + return dict.GetHandle(); +} + +v8::Local GetSystemMemoryInfo( + v8::Isolate* isolate, + mate::Arguments* args) { + mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate); + base::SystemMemoryInfoKB memInfo; + + if (!base::GetSystemMemoryInfo(&memInfo)) { + args->ThrowError("Unable to retrieve system memory information"); + return v8::Undefined(isolate); + } + + dict.Set("total", memInfo.total); + dict.Set("free", memInfo.free); + + // NB: These return bogus values on OS X +#if !defined(OS_MACOSX) + dict.Set("swapTotal", memInfo.swap_total); + dict.Set("swapFree", memInfo.swap_free); +#endif + + return dict.GetHandle(); +} + // Called when there is a fatal error in V8, we just crash the process here so // we can get the stack trace. void FatalErrorCallback(const char* location, const char* message) { @@ -63,6 +105,8 @@ void AtomBindings::BindTo(v8::Isolate* isolate, dict.SetMethod("crash", &Crash); dict.SetMethod("hang", &Hang); dict.SetMethod("log", &Log); + dict.SetMethod("getProcessMemoryInfo", &GetProcessMemoryInfo); + dict.SetMethod("getSystemMemoryInfo", &GetSystemMemoryInfo); #if defined(OS_POSIX) dict.SetMethod("setFdLimit", &base::SetFdLimit); #endif diff --git a/atom/common/node_bindings.cc b/atom/common/node_bindings.cc index d2d5ebd48..b3c36fdd8 100644 --- a/atom/common/node_bindings.cc +++ b/atom/common/node_bindings.cc @@ -54,7 +54,6 @@ REFERENCE_MODULE(atom_common_clipboard); REFERENCE_MODULE(atom_common_crash_reporter); REFERENCE_MODULE(atom_common_native_image); REFERENCE_MODULE(atom_common_screen); -REFERENCE_MODULE(atom_common_process_stats); REFERENCE_MODULE(atom_common_shell); REFERENCE_MODULE(atom_common_v8_util); REFERENCE_MODULE(atom_renderer_ipc); diff --git a/filenames.gypi b/filenames.gypi index 162396bcc..f9bbe8f75 100644 --- a/filenames.gypi +++ b/filenames.gypi @@ -44,7 +44,6 @@ 'lib/common/api/deprecations.js', 'lib/common/api/exports/electron.js', 'lib/common/api/native-image.js', - 'lib/common/api/process-stats.js', 'lib/common/api/shell.js', 'lib/common/init.js', 'lib/common/reset-search-paths.js', @@ -293,7 +292,6 @@ 'atom/common/api/atom_api_native_image.cc', 'atom/common/api/atom_api_native_image.h', 'atom/common/api/atom_api_native_image_mac.mm', - 'atom/common/api/atom_api_process_stats.cc', 'atom/common/api/atom_api_shell.cc', 'atom/common/api/atom_api_v8_util.cc', 'atom/common/api/atom_bindings.cc', diff --git a/lib/common/init.js b/lib/common/init.js index 8df576831..257249f0a 100644 --- a/lib/common/init.js +++ b/lib/common/init.js @@ -46,5 +46,3 @@ if (process.type === 'browser') { if (process.platform === 'win32' && __dirname.indexOf('\\Program Files\\WindowsApps\\') === 2) { process.windowsStore = true } - -Object.assign(Object.getPrototypeOf(process), process.atomBinding('process_stats')) -- 2.34.1