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

Unified Diff: content/browser/gpu/gpu_data_manager_impl.cc

Issue 10911315: Move gpu blacklist data file to content side. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 3 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
« no previous file with comments | « content/browser/gpu/gpu_data_manager_impl.h ('k') | content/browser/gpu/gpu_data_manager_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/gpu/gpu_data_manager_impl.cc
===================================================================
--- content/browser/gpu/gpu_data_manager_impl.cc (revision 156701)
+++ content/browser/gpu/gpu_data_manager_impl.cc (working copy)
@@ -8,6 +8,7 @@
#include "base/bind_helpers.h"
#include "base/command_line.h"
#include "base/file_util.h"
+#include "base/string_piece.h"
#include "base/stringprintf.h"
#include "base/sys_info.h"
#include "base/values.h"
@@ -20,6 +21,7 @@
#include "content/public/browser/gpu_data_manager_observer.h"
#include "content/public/common/content_client.h"
#include "content/public/common/content_switches.h"
+#include "grit/content_resources.h"
#include "ui/base/ui_base_switches.h"
#include "ui/gl/gl_implementation.h"
#include "ui/gl/gl_switches.h"
@@ -34,6 +36,25 @@
using content::GpuFeatureType;
using content::GpuSwitchingOption;
+namespace {
+
+// Strip out the non-digital info; if after that, we get an empty string,
+// return "0".
+std::string ProcessVersionString(const std::string& raw_string) {
+ const std::string valid_set = "0123456789.";
+ size_t start_pos = raw_string.find_first_of(valid_set);
+ if (start_pos == std::string::npos)
+ return "0";
+ size_t end_pos = raw_string.find_first_not_of(raw_string, start_pos);
+ std::string version_string = raw_string.substr(
+ start_pos, end_pos - start_pos);
+ if (version_string.empty())
+ return "0";
+ return version_string;
+}
+
+} // namespace anonymous
+
// static
content::GpuDataManager* content::GpuDataManager::GetInstance() {
return GpuDataManagerImpl::GetInstance();
@@ -62,9 +83,11 @@
BlacklistCard();
}
-void GpuDataManagerImpl::Initialize(
- const std::string& browser_version_string,
- const std::string& gpu_blacklist_json) {
+void GpuDataManagerImpl::Initialize() {
+ CommandLine* command_line = CommandLine::ForCurrentProcess();
+ if (command_line->HasSwitch(switches::kSkipGpuDataLoading))
+ return;
+
content::GPUInfo gpu_info;
gpu_info_collector::CollectPreliminaryGraphicsInfo(&gpu_info);
#if defined(ARCH_CPU_X86_FAMILY)
@@ -72,13 +95,29 @@
gpu_info.finalized = true;
#endif
- Initialize(browser_version_string, gpu_blacklist_json, gpu_info);
+ std::string gpu_blacklist_string;
+ if (!command_line->HasSwitch(switches::kIgnoreGpuBlacklist)) {
+ const base::StringPiece gpu_blacklist_json =
+ content::GetContentClient()->GetDataResource(
+ IDR_GPU_BLACKLIST, ui::SCALE_FACTOR_NONE);
+ gpu_blacklist_string = gpu_blacklist_json.as_string();
+ }
+
+ InitializeImpl(gpu_blacklist_string, gpu_info);
}
-void GpuDataManagerImpl::Initialize(
- const std::string& browser_version_string,
+void GpuDataManagerImpl::InitializeForTesting(
const std::string& gpu_blacklist_json,
const content::GPUInfo& gpu_info) {
+ // This function is for testing only, so disable histograms.
+ update_histograms_ = false;
+
+ InitializeImpl(gpu_blacklist_json, gpu_info);
+}
+
+void GpuDataManagerImpl::InitializeImpl(
+ const std::string& gpu_blacklist_json,
+ const content::GPUInfo& gpu_info) {
{
// This function should only be called in testing.
// We need clean up the gpu_info_ for a clean initialization.
@@ -87,10 +126,9 @@
gpu_info_ = empty_gpu_info;
}
- // This function is for testing only, so disable histograms.
- update_histograms_ = false;
-
if (!gpu_blacklist_json.empty()) {
+ std::string browser_version_string = ProcessVersionString(
+ content::GetContentClient()->GetProduct());
CHECK(!browser_version_string.empty());
gpu_blacklist_.reset(new GpuBlacklist());
bool succeed = gpu_blacklist_->LoadGpuBlacklist(
« no previous file with comments | « content/browser/gpu/gpu_data_manager_impl.h ('k') | content/browser/gpu/gpu_data_manager_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698