Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2410)

Unified Diff: chrome/browser/gpu/gl_string_manager.cc

Issue 1547793004: Make gpu black list work again on Linux (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_);
}
}

Powered by Google App Engine
This is Rietveld 408576698