| Index: content/browser/gpu/gpu_internals_ui.cc
|
| diff --git a/content/browser/gpu/gpu_internals_ui.cc b/content/browser/gpu/gpu_internals_ui.cc
|
| index 45f2f6d2745f5092a74d04c79b80a0f0bdbf2171..066f6d030d3e83f2da2b6eea6766a6b836e5e27d 100644
|
| --- a/content/browser/gpu/gpu_internals_ui.cc
|
| +++ b/content/browser/gpu/gpu_internals_ui.cc
|
| @@ -80,17 +80,17 @@ std::unique_ptr<base::DictionaryValue> NewDescriptionValuePair(
|
|
|
| std::unique_ptr<base::DictionaryValue> NewDescriptionValuePair(
|
| const std::string& desc,
|
| - base::Value* value) {
|
| + std::unique_ptr<base::Value> value) {
|
| std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
|
| dict->SetString("description", desc);
|
| - dict->Set("value", value);
|
| + dict->Set("value", std::move(value));
|
| return dict;
|
| }
|
|
|
| #if defined(OS_WIN)
|
| // Output DxDiagNode tree as nested array of {description,value} pairs
|
| -base::ListValue* DxDiagNodeToList(const gpu::DxDiagNode& node) {
|
| - base::ListValue* list = new base::ListValue();
|
| +std::unique_ptr<base::ListValue> DxDiagNodeToList(const gpu::DxDiagNode& node) {
|
| + auto list = base::MakeUnique<base::ListValue>();
|
| for (std::map<std::string, std::string>::const_iterator it =
|
| node.values.begin();
|
| it != node.values.end();
|
| @@ -102,8 +102,8 @@ base::ListValue* DxDiagNodeToList(const gpu::DxDiagNode& node) {
|
| node.children.begin();
|
| it != node.children.end();
|
| ++it) {
|
| - base::ListValue* sublist = DxDiagNodeToList(it->second);
|
| - list->Append(NewDescriptionValuePair(it->first, sublist));
|
| + std::unique_ptr<base::ListValue> sublist = DxDiagNodeToList(it->second);
|
| + list->Append(NewDescriptionValuePair(it->first, std::move(sublist)));
|
| }
|
| return list;
|
| }
|
| @@ -120,21 +120,23 @@ std::string GPUDeviceToString(const gpu::GPUInfo::GPUDevice& gpu) {
|
| vendor.c_str(), device.c_str(), gpu.active ? " *ACTIVE*" : "");
|
| }
|
|
|
| -base::DictionaryValue* GpuInfoAsDictionaryValue() {
|
| +std::unique_ptr<base::DictionaryValue> GpuInfoAsDictionaryValue() {
|
| gpu::GPUInfo gpu_info = GpuDataManagerImpl::GetInstance()->GetGPUInfo();
|
| - base::ListValue* basic_info = new base::ListValue();
|
| + auto basic_info = base::MakeUnique<base::ListValue>();
|
| basic_info->Append(NewDescriptionValuePair(
|
| "Initialization time",
|
| base::Int64ToString(gpu_info.initialization_time.InMilliseconds())));
|
| basic_info->Append(NewDescriptionValuePair(
|
| - "In-process GPU", new base::Value(gpu_info.in_process_gpu)));
|
| + "In-process GPU",
|
| + base::MakeUnique<base::Value>(gpu_info.in_process_gpu)));
|
| basic_info->Append(NewDescriptionValuePair(
|
| "Passthrough Command Decoder",
|
| - new base::Value(gpu_info.passthrough_cmd_decoder)));
|
| + base::MakeUnique<base::Value>(gpu_info.passthrough_cmd_decoder)));
|
| basic_info->Append(NewDescriptionValuePair(
|
| - "Supports overlays", new base::Value(gpu_info.supports_overlays)));
|
| + "Supports overlays",
|
| + base::MakeUnique<base::Value>(gpu_info.supports_overlays)));
|
| basic_info->Append(NewDescriptionValuePair(
|
| - "Sandboxed", new base::Value(gpu_info.sandboxed)));
|
| + "Sandboxed", base::MakeUnique<base::Value>(gpu_info.sandboxed)));
|
| basic_info->Append(NewDescriptionValuePair(
|
| "GPU0", GPUDeviceToString(gpu_info.gpu)));
|
| for (size_t i = 0; i < gpu_info.secondary_gpus.size(); ++i) {
|
| @@ -142,12 +144,13 @@ base::DictionaryValue* GpuInfoAsDictionaryValue() {
|
| base::StringPrintf("GPU%d", static_cast<int>(i + 1)),
|
| GPUDeviceToString(gpu_info.secondary_gpus[i])));
|
| }
|
| - basic_info->Append(
|
| - NewDescriptionValuePair("Optimus", new base::Value(gpu_info.optimus)));
|
| - basic_info->Append(
|
| - NewDescriptionValuePair("Optimus", new base::Value(gpu_info.optimus)));
|
| basic_info->Append(NewDescriptionValuePair(
|
| - "AMD switchable", new base::Value(gpu_info.amd_switchable)));
|
| + "Optimus", base::MakeUnique<base::Value>(gpu_info.optimus)));
|
| + basic_info->Append(NewDescriptionValuePair(
|
| + "Optimus", base::MakeUnique<base::Value>(gpu_info.optimus)));
|
| + basic_info->Append(NewDescriptionValuePair(
|
| + "AMD switchable",
|
| + base::MakeUnique<base::Value>(gpu_info.amd_switchable)));
|
| #if defined(OS_WIN)
|
| std::string compositor =
|
| ui::win::IsAeroGlassEnabled() ? "Aero Glass" : "none";
|
| @@ -232,17 +235,16 @@ base::DictionaryValue* GpuInfoAsDictionaryValue() {
|
| basic_info->Append(NewDescriptionValuePair(
|
| "Reset notification strategy", reset_strategy));
|
|
|
| - basic_info->Append(
|
| - NewDescriptionValuePair("GPU process crash count",
|
| - new base::Value(gpu_info.process_crash_count)));
|
| + basic_info->Append(NewDescriptionValuePair(
|
| + "GPU process crash count",
|
| + base::MakeUnique<base::Value>(gpu_info.process_crash_count)));
|
|
|
| - base::DictionaryValue* info = new base::DictionaryValue();
|
| - info->Set("basic_info", basic_info);
|
| + auto info = base::MakeUnique<base::DictionaryValue>();
|
|
|
| #if defined(OS_WIN)
|
| auto dx_info = base::MakeUnique<base::Value>();
|
| if (gpu_info.dx_diagnostics.children.size())
|
| - dx_info.reset(DxDiagNodeToList(gpu_info.dx_diagnostics));
|
| + dx_info = DxDiagNodeToList(gpu_info.dx_diagnostics);
|
| info->Set("diagnostics", std::move(dx_info));
|
| #endif
|
|
|
| @@ -253,6 +255,7 @@ base::DictionaryValue* GpuInfoAsDictionaryValue() {
|
| "RGBA visual ID", base::Uint64ToString(gpu_info.rgba_visual)));
|
| #endif
|
|
|
| + info->Set("basic_info", std::move(basic_info));
|
| return info;
|
| }
|
|
|
| @@ -314,8 +317,8 @@ const char* BufferUsageToString(gfx::BufferUsage usage) {
|
| return nullptr;
|
| }
|
|
|
| -base::ListValue* CompositorInfo() {
|
| - base::ListValue* compositor_info = new base::ListValue();
|
| +std::unique_ptr<base::ListValue> CompositorInfo() {
|
| + auto compositor_info = base::MakeUnique<base::ListValue>();
|
|
|
| compositor_info->Append(NewDescriptionValuePair(
|
| "Tile Update Mode",
|
| @@ -326,8 +329,8 @@ base::ListValue* CompositorInfo() {
|
| return compositor_info;
|
| }
|
|
|
| -base::ListValue* GpuMemoryBufferInfo() {
|
| - base::ListValue* gpu_memory_buffer_info = new base::ListValue();
|
| +std::unique_ptr<base::ListValue> GpuMemoryBufferInfo() {
|
| + auto gpu_memory_buffer_info = base::MakeUnique<base::ListValue>();
|
|
|
| BrowserGpuMemoryBufferManager* gpu_memory_buffer_manager =
|
| BrowserGpuMemoryBufferManager::current();
|
| @@ -381,8 +384,10 @@ class GpuMessageHandler
|
| void OnCallAsync(const base::ListValue* list);
|
|
|
| // Submessages dispatched from OnCallAsync
|
| - base::Value* OnRequestClientInfo(const base::ListValue* list);
|
| - base::Value* OnRequestLogMessages(const base::ListValue* list);
|
| + std::unique_ptr<base::DictionaryValue> OnRequestClientInfo(
|
| + const base::ListValue* list);
|
| + std::unique_ptr<base::ListValue> OnRequestLogMessages(
|
| + const base::ListValue* list);
|
|
|
| private:
|
| // True if observing the GpuDataManager (re-attaching as observer would
|
| @@ -431,7 +436,7 @@ void GpuMessageHandler::OnCallAsync(const base::ListValue* args) {
|
| ok = args->GetString(1, &submessage);
|
| DCHECK(ok);
|
|
|
| - base::ListValue* submessageArgs = new base::ListValue();
|
| + auto submessageArgs = base::MakeUnique<base::ListValue>();
|
| for (size_t i = 2; i < args->GetSize(); ++i) {
|
| const base::Value* arg;
|
| ok = args->Get(i, &arg);
|
| @@ -441,23 +446,20 @@ void GpuMessageHandler::OnCallAsync(const base::ListValue* args) {
|
| }
|
|
|
| // call the submessage handler
|
| - base::Value* ret = NULL;
|
| + std::unique_ptr<base::Value> ret;
|
| if (submessage == "requestClientInfo") {
|
| - ret = OnRequestClientInfo(submessageArgs);
|
| + ret = OnRequestClientInfo(submessageArgs.get());
|
| } else if (submessage == "requestLogMessages") {
|
| - ret = OnRequestLogMessages(submessageArgs);
|
| + ret = OnRequestLogMessages(submessageArgs.get());
|
| } else { // unrecognized submessage
|
| NOTREACHED();
|
| - delete submessageArgs;
|
| return;
|
| }
|
| - delete submessageArgs;
|
|
|
| // call BrowserBridge.onCallAsyncReply with result
|
| if (ret) {
|
| web_ui()->CallJavascriptFunctionUnsafe("browserBridge.onCallAsyncReply",
|
| *requestId, *ret);
|
| - delete ret;
|
| } else {
|
| web_ui()->CallJavascriptFunctionUnsafe("browserBridge.onCallAsyncReply",
|
| *requestId);
|
| @@ -484,11 +486,11 @@ void GpuMessageHandler::OnBrowserBridgeInitialized(
|
| OnGpuInfoUpdate();
|
| }
|
|
|
| -base::Value* GpuMessageHandler::OnRequestClientInfo(
|
| +std::unique_ptr<base::DictionaryValue> GpuMessageHandler::OnRequestClientInfo(
|
| const base::ListValue* list) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
|
|
| - base::DictionaryValue* dict = new base::DictionaryValue();
|
| + auto dict = base::MakeUnique<base::DictionaryValue>();
|
|
|
| dict->SetString("version", GetContentClient()->GetProduct());
|
| dict->SetString("command_line",
|
| @@ -508,7 +510,8 @@ base::Value* GpuMessageHandler::OnRequestClientInfo(
|
| return dict;
|
| }
|
|
|
| -base::Value* GpuMessageHandler::OnRequestLogMessages(const base::ListValue*) {
|
| +std::unique_ptr<base::ListValue> GpuMessageHandler::OnRequestLogMessages(
|
| + const base::ListValue*) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
|
|
| return GpuDataManagerImpl::GetInstance()->GetLogMessages();
|
| @@ -520,14 +523,14 @@ void GpuMessageHandler::OnGpuInfoUpdate() {
|
| GpuInfoAsDictionaryValue());
|
|
|
| // Add in blacklisting features
|
| - base::DictionaryValue* feature_status = new base::DictionaryValue;
|
| + auto feature_status = base::MakeUnique<base::DictionaryValue>();
|
| feature_status->Set("featureStatus", GetFeatureStatus());
|
| feature_status->Set("problems", GetProblems());
|
| - base::ListValue* workarounds = new base::ListValue();
|
| + auto workarounds = base::MakeUnique<base::ListValue>();
|
| for (const std::string& workaround : GetDriverBugWorkarounds())
|
| workarounds->AppendString(workaround);
|
| - feature_status->Set("workarounds", workarounds);
|
| - gpu_info_val->Set("featureStatus", feature_status);
|
| + feature_status->Set("workarounds", std::move(workarounds));
|
| + gpu_info_val->Set("featureStatus", std::move(feature_status));
|
| gpu_info_val->Set("compositorInfo", CompositorInfo());
|
| gpu_info_val->Set("gpuMemoryBufferInfo", GpuMemoryBufferInfo());
|
|
|
|
|