summaryrefslogtreecommitdiffstats
path: root/content/browser/gpu
diff options
context:
space:
mode:
authorzmo@google.com <zmo@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-20 20:05:01 +0000
committerzmo@google.com <zmo@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-20 20:05:01 +0000
commit2f01e1a9005b6b58e7389df852dfa90c9a45c249 (patch)
tree8243db072b1653be53ca96db5ab8b5c1ff05dad3 /content/browser/gpu
parentab2c4737d17cc4ce21e16e5382f19ce7aac8d7d7 (diff)
downloadchromium_src-2f01e1a9005b6b58e7389df852dfa90c9a45c249.zip
chromium_src-2f01e1a9005b6b58e7389df852dfa90c9a45c249.tar.gz
chromium_src-2f01e1a9005b6b58e7389df852dfa90c9a45c249.tar.bz2
Disallow gpu access if preliminary gpu info collection fails.
It's likely something seriously wrong with the graphics driver if preliminary gpu info collection fails. BUG=89358 TEST=bots green Review URL: http://codereview.chromium.org/7472002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93236 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/gpu')
-rw-r--r--content/browser/gpu/gpu_data_manager.cc5
-rw-r--r--content/browser/gpu/gpu_data_manager.h2
2 files changed, 5 insertions, 2 deletions
diff --git a/content/browser/gpu/gpu_data_manager.cc b/content/browser/gpu/gpu_data_manager.cc
index dc70ade..e790794 100644
--- a/content/browser/gpu/gpu_data_manager.cc
+++ b/content/browser/gpu/gpu_data_manager.cc
@@ -47,7 +47,8 @@ GpuDataManager::GpuDataManager()
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
GPUInfo gpu_info;
- gpu_info_collector::CollectPreliminaryGraphicsInfo(&gpu_info);
+ allows_gpu_access_ =
+ gpu_info_collector::CollectPreliminaryGraphicsInfo(&gpu_info);
UpdateGpuInfo(gpu_info);
#if defined(OS_MACOSX)
@@ -142,6 +143,8 @@ GpuFeatureFlags GpuDataManager::GetGpuFeatureFlags() {
}
bool GpuDataManager::GpuAccessAllowed() {
+ if (!allows_gpu_access_)
+ return false;
// We only need to block GPU process if more features are disallowed other
// than those in the preliminary gpu feature flags because the latter work
// through renderer commandline switches.
diff --git a/content/browser/gpu/gpu_data_manager.h b/content/browser/gpu/gpu_data_manager.h
index bc373ed..0243da5 100644
--- a/content/browser/gpu/gpu_data_manager.h
+++ b/content/browser/gpu/gpu_data_manager.h
@@ -99,9 +99,9 @@ class GpuDataManager {
bool complete_gpu_info_already_requested_;
- bool gpu_feature_flags_set_;
GpuFeatureFlags gpu_feature_flags_;
GpuFeatureFlags preliminary_gpu_feature_flags_;
+ bool allows_gpu_access_;
GPUInfo gpu_info_;
mutable base::Lock gpu_info_lock_;