Remove the 'getProcessMemoryInfo' API
* Underlying APIs have been removed in Chromium * https://chromium-review.googlesource.com/c/chromium/src/+/969089 * https://chromium-review.googlesource.com/c/chromium/src/+/953723 * https://bugs.chromium.org/p/chromium/issues/detail?id=819289 * https://github.com/electron/electron/projects/11#card-11509601
This commit is contained in:
		
					parent
					
						
							
								833b55107d
							
						
					
				
			
			
				commit
				
					
						14df89f214
					
				
			
		
					 9 changed files with 27 additions and 67 deletions
				
			
		| 
						 | 
				
			
			@ -55,7 +55,6 @@ void AtomBindings::BindTo(v8::Isolate* isolate, v8::Local<v8::Object> process) {
 | 
			
		|||
  dict.SetMethod("hang", &Hang);
 | 
			
		||||
  dict.SetMethod("log", &Log);
 | 
			
		||||
  dict.SetMethod("getHeapStatistics", &GetHeapStatistics);
 | 
			
		||||
  dict.SetMethod("getProcessMemoryInfo", &GetProcessMemoryInfo);
 | 
			
		||||
  dict.SetMethod("getCreationTime", &GetCreationTime);
 | 
			
		||||
  dict.SetMethod("getSystemMemoryInfo", &GetSystemMemoryInfo);
 | 
			
		||||
  dict.SetMethod("getCPUUsage", base::Bind(&AtomBindings::GetCPUUsage,
 | 
			
		||||
| 
						 | 
				
			
			@ -159,26 +158,6 @@ v8::Local<v8::Value> AtomBindings::GetHeapStatistics(v8::Isolate* isolate) {
 | 
			
		|||
  return dict.GetHandle();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// static
 | 
			
		||||
v8::Local<v8::Value> AtomBindings::GetProcessMemoryInfo(v8::Isolate* isolate) {
 | 
			
		||||
  auto metrics = base::ProcessMetrics::CreateCurrentProcessMetrics();
 | 
			
		||||
 | 
			
		||||
  mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
 | 
			
		||||
  dict.SetHidden("simple", true);
 | 
			
		||||
  dict.Set("workingSetSize",
 | 
			
		||||
           static_cast<double>(metrics->GetWorkingSetSize() >> 10));
 | 
			
		||||
  dict.Set("peakWorkingSetSize",
 | 
			
		||||
           static_cast<double>(metrics->GetPeakWorkingSetSize() >> 10));
 | 
			
		||||
 | 
			
		||||
  size_t private_bytes, shared_bytes;
 | 
			
		||||
  if (metrics->GetMemoryBytes(&private_bytes, &shared_bytes)) {
 | 
			
		||||
    dict.Set("privateBytes", static_cast<double>(private_bytes >> 10));
 | 
			
		||||
    dict.Set("sharedBytes", static_cast<double>(shared_bytes >> 10));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return dict.GetHandle();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// static
 | 
			
		||||
v8::Local<v8::Value> AtomBindings::GetCreationTime(v8::Isolate* isolate) {
 | 
			
		||||
  auto timeValue = base::CurrentProcessInfo::CreationTime();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,7 +36,6 @@ class AtomBindings {
 | 
			
		|||
  static void Crash();
 | 
			
		||||
  static void Hang();
 | 
			
		||||
  static v8::Local<v8::Value> GetHeapStatistics(v8::Isolate* isolate);
 | 
			
		||||
  static v8::Local<v8::Value> GetProcessMemoryInfo(v8::Isolate* isolate);
 | 
			
		||||
  static v8::Local<v8::Value> GetCreationTime(v8::Isolate* isolate);
 | 
			
		||||
  static v8::Local<v8::Value> GetSystemMemoryInfo(v8::Isolate* isolate,
 | 
			
		||||
                                                  mate::Arguments* args);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -153,7 +153,6 @@ void AtomSandboxedRendererClient::InitializeBindings(
 | 
			
		|||
  b.SetMethod("getPid", &base::GetCurrentProcId);
 | 
			
		||||
  b.SetMethod("getResourcesPath", &NodeBindings::GetHelperResourcesPath);
 | 
			
		||||
  b.SetMethod("getHeapStatistics", &AtomBindings::GetHeapStatistics);
 | 
			
		||||
  b.SetMethod("getProcessMemoryInfo", &AtomBindings::GetProcessMemoryInfo);
 | 
			
		||||
  b.SetMethod("getSystemMemoryInfo", &AtomBindings::GetSystemMemoryInfo);
 | 
			
		||||
  b.SetMethod("getCPUUsage", base::Bind(&AtomBindings::GetCPUUsage,
 | 
			
		||||
                                        base::Unretained(metrics_.get())));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -135,8 +135,6 @@ nativeImage.createFromBuffer(buffer, {
 | 
			
		|||
```js
 | 
			
		||||
// Deprecated
 | 
			
		||||
const info = process.getProcessMemoryInfo()
 | 
			
		||||
const privateBytes = info.privateBytes // deprecated property
 | 
			
		||||
const sharedBytes = info.sharedBytes // deprecated property
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## `screen`
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,7 +14,6 @@ In sandboxed renderers the `process` object contains only a subset of the APIs:
 | 
			
		|||
- `crash()`
 | 
			
		||||
- `hang()`
 | 
			
		||||
- `getHeapStatistics()`
 | 
			
		||||
- `getProcessMemoryInfo()`
 | 
			
		||||
- `getSystemMemoryInfo()`
 | 
			
		||||
- `getCPUUsage()`
 | 
			
		||||
- `getIOCounters()`
 | 
			
		||||
| 
						 | 
				
			
			@ -156,22 +155,6 @@ Returns `Object`:
 | 
			
		|||
 | 
			
		||||
Returns an object with V8 heap statistics. Note that all statistics are reported in Kilobytes.
 | 
			
		||||
 | 
			
		||||
### `process.getProcessMemoryInfo()`
 | 
			
		||||
 | 
			
		||||
Returns `Object`:
 | 
			
		||||
 | 
			
		||||
* `workingSetSize` Integer - The amount of memory currently pinned to actual physical
 | 
			
		||||
  RAM.
 | 
			
		||||
* `peakWorkingSetSize` Integer - The maximum amount of memory that has ever been pinned
 | 
			
		||||
  to actual physical RAM.
 | 
			
		||||
* `privateBytes` Integer - The amount of memory not shared by other processes, such as
 | 
			
		||||
  JS heap or HTML content.
 | 
			
		||||
* `sharedBytes` Integer - The amount of memory shared between processes, typically
 | 
			
		||||
  memory consumed by the Electron code itself.
 | 
			
		||||
 | 
			
		||||
Returns an object giving memory usage statistics about the current process. Note
 | 
			
		||||
that all statistics are reported in Kilobytes.
 | 
			
		||||
 | 
			
		||||
### `process.getSystemMemoryInfo()`
 | 
			
		||||
 | 
			
		||||
Returns `Object`:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,7 +49,6 @@ const preloadProcess = new events.EventEmitter()
 | 
			
		|||
preloadProcess.crash = () => binding.crash()
 | 
			
		||||
preloadProcess.hang = () => binding.hang()
 | 
			
		||||
preloadProcess.getHeapStatistics = () => binding.getHeapStatistics()
 | 
			
		||||
preloadProcess.getProcessMemoryInfo = () => binding.getProcessMemoryInfo()
 | 
			
		||||
preloadProcess.getSystemMemoryInfo = () => binding.getSystemMemoryInfo()
 | 
			
		||||
preloadProcess.getCPUUsage = () => binding.getCPUUsage()
 | 
			
		||||
preloadProcess.getIOCounters = () => binding.getIOCounters()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1627,7 +1627,8 @@ describe('BrowserWindow module', () => {
 | 
			
		|||
        w.loadFile(path.join(fixtures, 'pages', 'window-open.html'))
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      it('releases memory after popup is closed', (done) => {
 | 
			
		||||
      // TODO(alexeykuzmin): `GetProcessMemoryInfo()` is not available starting Ch67.
 | 
			
		||||
      xit('releases memory after popup is closed', (done) => {
 | 
			
		||||
        w.destroy()
 | 
			
		||||
        w = new BrowserWindow({
 | 
			
		||||
          show: false,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,15 +34,16 @@ describe('process module', () => {
 | 
			
		|||
    })
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  describe('process.getProcessMemoryInfo()', () => {
 | 
			
		||||
    it('returns process memory info object', () => {
 | 
			
		||||
      const processMemoryInfo = process.getProcessMemoryInfo()
 | 
			
		||||
      expect(processMemoryInfo.peakWorkingSetSize).to.be.a('number')
 | 
			
		||||
      expect(processMemoryInfo.privateBytes).to.be.a('number')
 | 
			
		||||
      expect(processMemoryInfo.sharedBytes).to.be.a('number')
 | 
			
		||||
      expect(processMemoryInfo.workingSetSize).to.be.a('number')
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
  // FIXME: Chromium 67 - getProcessMemoryInfo has been removed
 | 
			
		||||
  // describe('process.getProcessMemoryInfo()', () => {
 | 
			
		||||
  //   it('returns process memory info object', () => {
 | 
			
		||||
  //     const processMemoryInfo = process.getProcessMemoryInfo()
 | 
			
		||||
  //     expect(processMemoryInfo.peakWorkingSetSize).to.be.a('number')
 | 
			
		||||
  //     expect(processMemoryInfo.privateBytes).to.be.a('number')
 | 
			
		||||
  //     expect(processMemoryInfo.sharedBytes).to.be.a('number')
 | 
			
		||||
  //     expect(processMemoryInfo.workingSetSize).to.be.a('number')
 | 
			
		||||
  //   })
 | 
			
		||||
  // })
 | 
			
		||||
 | 
			
		||||
  describe('process.getSystemMemoryInfo()', () => {
 | 
			
		||||
    it('returns system memory info object', () => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										29
									
								
								spec/fixtures/api/sandbox.html
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								spec/fixtures/api/sandbox.html
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -35,20 +35,21 @@
 | 
			
		|||
        await invokeGc()
 | 
			
		||||
        ipcRenderer.send('answer', new Hello().say())
 | 
			
		||||
      },
 | 
			
		||||
      'allocate-memory': async () => {
 | 
			
		||||
        await invokeGc()
 | 
			
		||||
        const {privateBytes: bytesBeforeOpen} = process.getProcessMemoryInfo()
 | 
			
		||||
        let w = open('./allocate-memory.html')
 | 
			
		||||
        await invokeGc()
 | 
			
		||||
        const {privateBytes: bytesAfterOpen} = process.getProcessMemoryInfo()
 | 
			
		||||
        w.close()
 | 
			
		||||
        w = null
 | 
			
		||||
        await invokeGc()
 | 
			
		||||
        const {privateBytes: bytesAfterClose} = process.getProcessMemoryInfo()
 | 
			
		||||
        ipcRenderer.send('answer', {
 | 
			
		||||
          bytesBeforeOpen, bytesAfterOpen, bytesAfterClose
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      // FIXME: Chromium 67 - getProcessMemoryInfo has been removed
 | 
			
		||||
      // 'allocate-memory': async () => {
 | 
			
		||||
      //   await invokeGc()
 | 
			
		||||
      //   const {privateBytes: bytesBeforeOpen} = process.getProcessMemoryInfo()
 | 
			
		||||
      //   let w = open('./allocate-memory.html')
 | 
			
		||||
      //   await invokeGc()
 | 
			
		||||
      //   const {privateBytes: bytesAfterOpen} = process.getProcessMemoryInfo()
 | 
			
		||||
      //   w.close()
 | 
			
		||||
      //   w = null
 | 
			
		||||
      //   await invokeGc()
 | 
			
		||||
      //   const {privateBytes: bytesAfterClose} = process.getProcessMemoryInfo()
 | 
			
		||||
      //   ipcRenderer.send('answer', {
 | 
			
		||||
      //     bytesBeforeOpen, bytesAfterOpen, bytesAfterClose
 | 
			
		||||
      //   })
 | 
			
		||||
      // },
 | 
			
		||||
      'window-events': () => {
 | 
			
		||||
        document.title = 'changed'
 | 
			
		||||
      },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue