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_); |
} |
} |