OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/gpu/compositor_util.h" | 5 #include "content/browser/gpu/compositor_util.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <memory> | |
10 #include <utility> | 9 #include <utility> |
11 | 10 |
12 #include "base/command_line.h" | 11 #include "base/command_line.h" |
13 #include "base/feature_list.h" | 12 #include "base/feature_list.h" |
14 #include "base/logging.h" | 13 #include "base/logging.h" |
15 #include "base/macros.h" | 14 #include "base/macros.h" |
16 #include "base/memory/ptr_util.h" | 15 #include "base/memory/ptr_util.h" |
17 #include "base/metrics/field_trial.h" | 16 #include "base/metrics/field_trial.h" |
18 #include "base/strings/string_number_conversions.h" | 17 #include "base/strings/string_number_conversions.h" |
19 #include "base/sys_info.h" | 18 #include "base/sys_info.h" |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
288 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 287 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
289 cc::switches::kEnableCheckerImaging)) | 288 cc::switches::kEnableCheckerImaging)) |
290 return true; | 289 return true; |
291 | 290 |
292 if (base::FeatureList::IsEnabled(features::kCheckerImaging)) | 291 if (base::FeatureList::IsEnabled(features::kCheckerImaging)) |
293 return true; | 292 return true; |
294 | 293 |
295 return false; | 294 return false; |
296 } | 295 } |
297 | 296 |
298 base::DictionaryValue* GetFeatureStatus() { | 297 std::unique_ptr<base::DictionaryValue> GetFeatureStatus() { |
299 GpuDataManagerImpl* manager = GpuDataManagerImpl::GetInstance(); | 298 GpuDataManagerImpl* manager = GpuDataManagerImpl::GetInstance(); |
300 std::string gpu_access_blocked_reason; | 299 std::string gpu_access_blocked_reason; |
301 bool gpu_access_blocked = | 300 bool gpu_access_blocked = |
302 !manager->GpuAccessAllowed(&gpu_access_blocked_reason); | 301 !manager->GpuAccessAllowed(&gpu_access_blocked_reason); |
303 | 302 |
304 base::DictionaryValue* feature_status_dict = new base::DictionaryValue(); | 303 auto feature_status_dict = base::MakeUnique<base::DictionaryValue>(); |
305 | 304 |
306 bool eof = false; | 305 bool eof = false; |
307 for (size_t i = 0; !eof; ++i) { | 306 for (size_t i = 0; !eof; ++i) { |
308 const GpuFeatureInfo gpu_feature_info = GetGpuFeatureInfo(i, &eof); | 307 const GpuFeatureInfo gpu_feature_info = GetGpuFeatureInfo(i, &eof); |
309 std::string status; | 308 std::string status; |
310 if (gpu_feature_info.disabled) { | 309 if (gpu_feature_info.disabled) { |
311 status = "disabled"; | 310 status = "disabled"; |
312 if (gpu_feature_info.fallback_to_software) | 311 if (gpu_feature_info.fallback_to_software) |
313 status += "_software"; | 312 status += "_software"; |
314 else | 313 else |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 (gpu_feature_info.blocked || gpu_access_blocked) && | 348 (gpu_feature_info.blocked || gpu_access_blocked) && |
350 manager->ShouldUseSwiftShader()) { | 349 manager->ShouldUseSwiftShader()) { |
351 status = "unavailable_software"; | 350 status = "unavailable_software"; |
352 } | 351 } |
353 | 352 |
354 feature_status_dict->SetString(gpu_feature_info.name, status); | 353 feature_status_dict->SetString(gpu_feature_info.name, status); |
355 } | 354 } |
356 return feature_status_dict; | 355 return feature_status_dict; |
357 } | 356 } |
358 | 357 |
359 base::Value* GetProblems() { | 358 std::unique_ptr<base::ListValue> GetProblems() { |
360 GpuDataManagerImpl* manager = GpuDataManagerImpl::GetInstance(); | 359 GpuDataManagerImpl* manager = GpuDataManagerImpl::GetInstance(); |
361 std::string gpu_access_blocked_reason; | 360 std::string gpu_access_blocked_reason; |
362 bool gpu_access_blocked = | 361 bool gpu_access_blocked = |
363 !manager->GpuAccessAllowed(&gpu_access_blocked_reason); | 362 !manager->GpuAccessAllowed(&gpu_access_blocked_reason); |
364 | 363 |
365 base::ListValue* problem_list = new base::ListValue(); | 364 auto problem_list = base::MakeUnique<base::ListValue>(); |
366 manager->GetBlacklistReasons(problem_list); | 365 manager->GetBlacklistReasons(problem_list.get()); |
367 | 366 |
368 if (gpu_access_blocked) { | 367 if (gpu_access_blocked) { |
369 auto problem = base::MakeUnique<base::DictionaryValue>(); | 368 auto problem = base::MakeUnique<base::DictionaryValue>(); |
370 problem->SetString("description", | 369 problem->SetString("description", |
371 "GPU process was unable to boot: " + gpu_access_blocked_reason); | 370 "GPU process was unable to boot: " + gpu_access_blocked_reason); |
372 problem->Set("crBugs", new base::ListValue()); | 371 problem->Set("crBugs", base::MakeUnique<base::ListValue>()); |
373 base::ListValue* disabled_features = new base::ListValue(); | 372 auto disabled_features = base::MakeUnique<base::ListValue>(); |
374 disabled_features->AppendString("all"); | 373 disabled_features->AppendString("all"); |
375 problem->Set("affectedGpuSettings", disabled_features); | 374 problem->Set("affectedGpuSettings", std::move(disabled_features)); |
376 problem->SetString("tag", "disabledFeatures"); | 375 problem->SetString("tag", "disabledFeatures"); |
377 problem_list->Insert(0, std::move(problem)); | 376 problem_list->Insert(0, std::move(problem)); |
378 } | 377 } |
379 | 378 |
380 bool eof = false; | 379 bool eof = false; |
381 for (size_t i = 0; !eof; ++i) { | 380 for (size_t i = 0; !eof; ++i) { |
382 const GpuFeatureInfo gpu_feature_info = GetGpuFeatureInfo(i, &eof); | 381 const GpuFeatureInfo gpu_feature_info = GetGpuFeatureInfo(i, &eof); |
383 if (gpu_feature_info.disabled) { | 382 if (gpu_feature_info.disabled) { |
384 std::unique_ptr<base::DictionaryValue> problem( | 383 auto problem = base::MakeUnique<base::DictionaryValue>(); |
385 new base::DictionaryValue()); | |
386 problem->SetString( | 384 problem->SetString( |
387 "description", gpu_feature_info.disabled_description); | 385 "description", gpu_feature_info.disabled_description); |
388 problem->Set("crBugs", new base::ListValue()); | 386 problem->Set("crBugs", base::MakeUnique<base::ListValue>()); |
389 base::ListValue* disabled_features = new base::ListValue(); | 387 auto disabled_features = base::MakeUnique<base::ListValue>(); |
390 disabled_features->AppendString(gpu_feature_info.name); | 388 disabled_features->AppendString(gpu_feature_info.name); |
391 problem->Set("affectedGpuSettings", disabled_features); | 389 problem->Set("affectedGpuSettings", std::move(disabled_features)); |
392 problem->SetString("tag", "disabledFeatures"); | 390 problem->SetString("tag", "disabledFeatures"); |
393 problem_list->Append(std::move(problem)); | 391 problem_list->Append(std::move(problem)); |
394 } | 392 } |
395 } | 393 } |
396 return problem_list; | 394 return problem_list; |
397 } | 395 } |
398 | 396 |
399 std::vector<std::string> GetDriverBugWorkarounds() { | 397 std::vector<std::string> GetDriverBugWorkarounds() { |
400 return GpuDataManagerImpl::GetInstance()->GetDriverBugWorkarounds(); | 398 return GpuDataManagerImpl::GetInstance()->GetDriverBugWorkarounds(); |
401 } | 399 } |
402 | 400 |
403 } // namespace content | 401 } // namespace content |
OLD | NEW |