| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/gpu/gpu_data_manager.h" | 5 #include "content/browser/gpu/gpu_data_manager.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
| 9 #include "base/string_number_conversions.h" | 9 #include "base/string_number_conversions.h" |
| 10 #include "chrome/common/chrome_switches.h" | 10 #include "chrome/common/chrome_switches.h" |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 | 55 |
| 56 const GPUInfo& GpuDataManager::gpu_info() const { | 56 const GPUInfo& GpuDataManager::gpu_info() const { |
| 57 base::AutoLock auto_lock(gpu_info_lock_); | 57 base::AutoLock auto_lock(gpu_info_lock_); |
| 58 return gpu_info_; | 58 return gpu_info_; |
| 59 } | 59 } |
| 60 | 60 |
| 61 Value* GpuDataManager::GetFeatureStatus() { | 61 Value* GpuDataManager::GetFeatureStatus() { |
| 62 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess(); | 62 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess(); |
| 63 if (gpu_blacklist_.get()) | 63 if (gpu_blacklist_.get()) |
| 64 return gpu_blacklist_->GetFeatureStatus(GpuAccessAllowed(), | 64 return gpu_blacklist_->GetFeatureStatus(GpuAccessAllowed(), |
| 65 browser_command_line.HasSwitch(switches::kDisableAcceleratedCompositing)
, | 65 browser_command_line.HasSwitch( |
| 66 browser_command_line.HasSwitch(switches::kEnableAccelerated2dCanvas), | 66 switches::kDisableAcceleratedCompositing), |
| 67 browser_command_line.HasSwitch( |
| 68 switches::kDisableAccelerated2dCanvas), |
| 67 browser_command_line.HasSwitch(switches::kDisableExperimentalWebGL), | 69 browser_command_line.HasSwitch(switches::kDisableExperimentalWebGL), |
| 68 browser_command_line.HasSwitch(switches::kDisableGLMultisampling)); | 70 browser_command_line.HasSwitch(switches::kDisableGLMultisampling)); |
| 69 return NULL; | 71 return NULL; |
| 70 } | 72 } |
| 71 | 73 |
| 72 std::string GpuDataManager::GetBlacklistVersion() const { | 74 std::string GpuDataManager::GetBlacklistVersion() const { |
| 73 if (gpu_blacklist_.get() != NULL) { | 75 if (gpu_blacklist_.get() != NULL) { |
| 74 uint16 version_major, version_minor; | 76 uint16 version_major, version_minor; |
| 75 if (gpu_blacklist_->GetVersion(&version_major, | 77 if (gpu_blacklist_->GetVersion(&version_major, |
| 76 &version_minor)) { | 78 &version_minor)) { |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 if ((flags & GpuFeatureFlags::kGpuFeatureWebgl) && | 137 if ((flags & GpuFeatureFlags::kGpuFeatureWebgl) && |
| 136 !command_line->HasSwitch(switches::kDisableExperimentalWebGL)) | 138 !command_line->HasSwitch(switches::kDisableExperimentalWebGL)) |
| 137 command_line->AppendSwitch(switches::kDisableExperimentalWebGL); | 139 command_line->AppendSwitch(switches::kDisableExperimentalWebGL); |
| 138 if ((flags & GpuFeatureFlags::kGpuFeatureMultisampling) && | 140 if ((flags & GpuFeatureFlags::kGpuFeatureMultisampling) && |
| 139 !command_line->HasSwitch(switches::kDisableGLMultisampling)) | 141 !command_line->HasSwitch(switches::kDisableGLMultisampling)) |
| 140 command_line->AppendSwitch(switches::kDisableGLMultisampling); | 142 command_line->AppendSwitch(switches::kDisableGLMultisampling); |
| 141 // If we have kGpuFeatureAcceleratedCompositing, we disable all GPU features. | 143 // If we have kGpuFeatureAcceleratedCompositing, we disable all GPU features. |
| 142 if (flags & GpuFeatureFlags::kGpuFeatureAcceleratedCompositing) { | 144 if (flags & GpuFeatureFlags::kGpuFeatureAcceleratedCompositing) { |
| 143 const char* switches[] = { | 145 const char* switches[] = { |
| 144 switches::kDisableAcceleratedCompositing, | 146 switches::kDisableAcceleratedCompositing, |
| 145 switches::kDisableExperimentalWebGL | 147 switches::kDisableExperimentalWebGL, |
| 148 switches::kDisableAccelerated2dCanvas |
| 146 }; | 149 }; |
| 147 const int switch_count = sizeof(switches) / sizeof(char*); | 150 const int switch_count = sizeof(switches) / sizeof(char*); |
| 148 for (int i = 0; i < switch_count; ++i) { | 151 for (int i = 0; i < switch_count; ++i) { |
| 149 if (!command_line->HasSwitch(switches[i])) | 152 if (!command_line->HasSwitch(switches[i])) |
| 150 command_line->AppendSwitch(switches[i]); | 153 command_line->AppendSwitch(switches[i]); |
| 151 } | 154 } |
| 152 } | 155 } |
| 153 } | 156 } |
| 154 | 157 |
| 155 void GpuDataManager::UpdateGpuBlacklist(GpuBlacklist* gpu_blacklist) { | 158 void GpuDataManager::UpdateGpuBlacklist(GpuBlacklist* gpu_blacklist) { |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess(); | 220 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess(); |
| 218 if (browser_command_line.HasSwitch(switches::kIgnoreGpuBlacklist) || | 221 if (browser_command_line.HasSwitch(switches::kIgnoreGpuBlacklist) || |
| 219 browser_command_line.GetSwitchValueASCII( | 222 browser_command_line.GetSwitchValueASCII( |
| 220 switches::kUseGL) == gfx::kGLImplementationOSMesaName) | 223 switches::kUseGL) == gfx::kGLImplementationOSMesaName) |
| 221 return NULL; | 224 return NULL; |
| 222 // No need to return an empty blacklist. | 225 // No need to return an empty blacklist. |
| 223 if (gpu_blacklist_.get() != NULL && gpu_blacklist_->max_entry_id() == 0) | 226 if (gpu_blacklist_.get() != NULL && gpu_blacklist_->max_entry_id() == 0) |
| 224 return NULL; | 227 return NULL; |
| 225 return gpu_blacklist_.get(); | 228 return gpu_blacklist_.get(); |
| 226 } | 229 } |
| OLD | NEW |