Add app.getGPUFeatureStatus
This commit is contained in:
parent
717a1a666c
commit
0ecfb4e2f8
4 changed files with 64 additions and 0 deletions
|
@ -34,6 +34,7 @@
|
|||
#include "chrome/browser/browser_process.h"
|
||||
#include "chrome/browser/icon_manager.h"
|
||||
#include "chrome/common/chrome_paths.h"
|
||||
#include "content/browser/gpu/compositor_util.h"
|
||||
#include "content/public/browser/browser_accessibility_state.h"
|
||||
#include "content/public/browser/browser_child_process_host.h"
|
||||
#include "content/public/browser/child_process_data.h"
|
||||
|
@ -1021,6 +1022,34 @@ std::vector<mate::Dictionary> App::GetAppMetrics(v8::Isolate* isolate) {
|
|||
return result;
|
||||
}
|
||||
|
||||
static mate::Dictionary ConvertDictionary(
|
||||
v8::Isolate* isolate, const base::DictionaryValue &dict) {
|
||||
auto result = mate::Dictionary::CreateEmpty(isolate);
|
||||
|
||||
for (base::DictionaryValue::Iterator iterator(dict);
|
||||
!iterator.IsAtEnd();
|
||||
iterator.Advance()) {
|
||||
auto& key = iterator.key();
|
||||
auto& value = iterator.value();
|
||||
if (value.is_string()) {
|
||||
std::string strValue;
|
||||
if (value.GetAsString(&strValue)) {
|
||||
result.Set(key, strValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
mate::Dictionary App::GetGPUFeatureStatus(v8::Isolate* isolate) {
|
||||
if (auto status = content::GetFeatureStatus()) {
|
||||
return ConvertDictionary(isolate, *status);
|
||||
} else {
|
||||
return mate::Dictionary::CreateEmpty(isolate);
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
mate::Handle<App> App::Create(v8::Isolate* isolate) {
|
||||
return mate::CreateHandle(isolate, new App(isolate));
|
||||
|
@ -1094,6 +1123,7 @@ void App::BuildPrototype(
|
|||
&App::DisableHardwareAcceleration)
|
||||
.SetMethod("getFileIcon", &App::GetFileIcon)
|
||||
.SetMethod("getAppMetrics", &App::GetAppMetrics)
|
||||
.SetMethod("getGPUFeatureStatus", &App::GetGPUFeatureStatus)
|
||||
// TODO(juturu): Remove in 2.0, deprecate before then with warnings
|
||||
.SetMethod("getAppMemoryInfo", &App::GetAppMetrics);
|
||||
}
|
||||
|
|
|
@ -177,6 +177,7 @@ class App : public AtomBrowserClient::Delegate,
|
|||
mate::Arguments* args);
|
||||
|
||||
std::vector<mate::Dictionary> GetAppMetrics(v8::Isolate* isolate);
|
||||
mate::Dictionary GetGPUFeatureStatus(v8::Isolate* isolate);
|
||||
|
||||
#if defined(OS_WIN)
|
||||
// Get the current Jump List settings.
|
||||
|
|
|
@ -771,6 +771,10 @@ Returns [`ProcessMetric[]`](structures/process-metric.md): Array of `ProcessMet
|
|||
|
||||
Returns [`ProcessMetric[]`](structures/process-metric.md): Array of `ProcessMetric` objects that correspond to memory and cpu usage statistics of all the processes associated with the app.
|
||||
|
||||
### `app.getGpuFeatureStatus()`
|
||||
|
||||
Returns [`GPUFeatureStatus`](structures/gpu-feature-status.md) - The Graphics Feature Status from `chrome://gpu/`.
|
||||
|
||||
### `app.setBadgeCount(count)` _Linux_ _macOS_
|
||||
|
||||
* `count` Integer
|
||||
|
|
29
docs/api/structures/gpu-feature-status.md
Normal file
29
docs/api/structures/gpu-feature-status.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
# GPUFeatureStatus Object
|
||||
|
||||
* `2d_canvas` String - Canvas
|
||||
* `flash_3d` String - Flash
|
||||
* `flash_stage3d` String - Flash Stage3D
|
||||
* `flash_stage3d_baseline` String - Flash Stage3D Baseline profile
|
||||
* `gpu_compositing` String - Compositing
|
||||
* `multiple_raster_threads` String - Multiple Raster Threads
|
||||
* `native_gpu_memory_buffers` String - Native GpuMemoryBuffers
|
||||
* `rasterization` String - Rasterization
|
||||
* `video_decode` String - Video Decode
|
||||
* `video_encode` String - Video Encode
|
||||
* `vpx_decode` String - VPx Video Decode
|
||||
* `webgl` String - WebGL
|
||||
* `webgl2` String - WebGL2
|
||||
|
||||
Possible values:
|
||||
|
||||
* `disabled_software` - Software only. Hardware acceleration disabled (yellow)
|
||||
* `disabled_off` - Disabled (red)
|
||||
* `disabled_off_ok` - Disabled (yellow)
|
||||
* `unavailable_software` - Software only, hardware acceleration unavailable (yellow)
|
||||
* `unavailable_off` - Unavailable (red)
|
||||
* `unavailable_off_ok` - Unavailable (yellow)
|
||||
* `enabled_readback` - Hardware accelerated but at reduced performance (yellow)
|
||||
* `enabled_force` - Hardware accelerated on all pages (green)
|
||||
* `enabled` - Hardware accelerated (green)
|
||||
* `enabled_on` - Enabled (green)
|
||||
* `enabled_force_on` - Force enabled (green)
|
Loading…
Reference in a new issue