| Index: chrome/browser/gpu/gl_string_manager.cc
|
| diff --git a/chrome/browser/gpu/gl_string_manager.cc b/chrome/browser/gpu/gl_string_manager.cc
|
| index d0149dfd6a93598508e2c5aab7d855b9ffcc652b..52e299cc822f68da0402b567b4945d86a52ca092 100644
|
| --- a/chrome/browser/gpu/gl_string_manager.cc
|
| +++ b/chrome/browser/gpu/gl_string_manager.cc
|
| @@ -4,12 +4,14 @@
|
|
|
| #include "chrome/browser/gpu/gl_string_manager.h"
|
|
|
| +#include "base/command_line.h"
|
| #include "base/prefs/pref_registry_simple.h"
|
| #include "base/prefs/pref_service.h"
|
| #include "build/build_config.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "content/public/browser/gpu_data_manager.h"
|
| +#include "ui/gl/gl_switches.h"
|
|
|
| // static
|
| void GLStringManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
| @@ -34,11 +36,26 @@ void GLStringManager::Initialize() {
|
| if (!local_state)
|
| return;
|
|
|
| - gl_vendor_ = local_state->GetString(prefs::kGLVendorString);
|
| - gl_renderer_ = local_state->GetString(prefs::kGLRendererString);
|
| - gl_version_ = local_state->GetString(prefs::kGLVersionString);
|
| + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
| +
|
| + if (command_line->HasSwitch(switches::kGLVendorString))
|
| + gl_vendor_ = command_line->GetSwitchValueASCII(switches::kGLVendorString);
|
| + else
|
| + gl_vendor_ = local_state->GetString(prefs::kGLVendorString);
|
| +
|
| + if (command_line->HasSwitch(switches::kGLRendererString))
|
| + gl_renderer_ =
|
| + command_line->GetSwitchValueASCII(switches::kGLRendererString);
|
| + else
|
| + gl_renderer_ = local_state->GetString(prefs::kGLRendererString);
|
| +
|
| + if (command_line->HasSwitch(switches::kGLVersionString))
|
| + gl_version_ = command_line->GetSwitchValueASCII(switches::kGLVersionString);
|
| + else
|
| + gl_version_ = local_state->GetString(prefs::kGLVersionString);
|
|
|
| if (!gl_vendor_.empty() || !gl_renderer_.empty() || !gl_version_.empty()) {
|
| + DCHECK(content::GpuDataManager::GetInstance()->IsInitialized());
|
| content::GpuDataManager::GetInstance()->SetGLStrings(
|
| gl_vendor_, gl_renderer_, gl_version_);
|
| }
|
| @@ -54,17 +71,22 @@ void GLStringManager::OnGpuInfoUpdate() {
|
| if (!local_state)
|
| return;
|
|
|
| + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
| +
|
| if (!gl_vendor.empty() && gl_vendor != gl_vendor_) {
|
| gl_vendor_ = gl_vendor;
|
| - local_state->SetString(prefs::kGLVendorString, gl_vendor_);
|
| + if (!command_line->HasSwitch(switches::kGLVendorString))
|
| + local_state->SetString(prefs::kGLVendorString, gl_vendor_);
|
| }
|
| if (!gl_renderer.empty() && gl_renderer != gl_renderer_) {
|
| gl_renderer_ = gl_renderer;
|
| - local_state->SetString(prefs::kGLRendererString, gl_renderer_);
|
| + if (!command_line->HasSwitch(switches::kGLRendererString))
|
| + local_state->SetString(prefs::kGLRendererString, gl_renderer_);
|
| }
|
| if (!gl_version.empty() && gl_version != gl_version_) {
|
| gl_version_ = gl_version;
|
| - local_state->SetString(prefs::kGLVersionString, gl_version_);
|
| + if (!command_line->HasSwitch(switches::kGLVersionString))
|
| + local_state->SetString(prefs::kGLVersionString, gl_version_);
|
| }
|
| }
|
|
|
|
|