OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/component_updater/swiftshader_component_installer.h" | 5 #include "chrome/browser/component_updater/swiftshader_component_installer.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 found = true; | 85 found = true; |
86 } else { | 86 } else { |
87 if (older_dirs) | 87 if (older_dirs) |
88 older_dirs->push_back(path); | 88 older_dirs->push_back(path); |
89 } | 89 } |
90 } | 90 } |
91 return found; | 91 return found; |
92 } | 92 } |
93 | 93 |
94 void RegisterSwiftShaderWithChrome(const base::FilePath& path) { | 94 void RegisterSwiftShaderWithChrome(const base::FilePath& path) { |
95 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 95 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
96 GpuDataManager::GetInstance()->RegisterSwiftShaderPath(path); | 96 GpuDataManager::GetInstance()->RegisterSwiftShaderPath(path); |
97 } | 97 } |
98 | 98 |
99 class SwiftShaderComponentInstaller : public update_client::CrxInstaller { | 99 class SwiftShaderComponentInstaller : public update_client::CrxInstaller { |
100 public: | 100 public: |
101 explicit SwiftShaderComponentInstaller(const Version& version); | 101 explicit SwiftShaderComponentInstaller(const Version& version); |
102 | 102 |
103 // ComponentInstaller implementation: | 103 // ComponentInstaller implementation: |
104 void OnUpdateError(int error) override; | 104 void OnUpdateError(int error) override; |
105 | 105 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 base::FilePath* installed_file) { | 164 base::FilePath* installed_file) { |
165 return false; | 165 return false; |
166 } | 166 } |
167 | 167 |
168 bool SwiftShaderComponentInstaller::Uninstall() { | 168 bool SwiftShaderComponentInstaller::Uninstall() { |
169 return false; | 169 return false; |
170 } | 170 } |
171 | 171 |
172 void FinishSwiftShaderUpdateRegistration(ComponentUpdateService* cus, | 172 void FinishSwiftShaderUpdateRegistration(ComponentUpdateService* cus, |
173 const Version& version) { | 173 const Version& version) { |
174 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 174 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
175 | 175 |
176 update_client::CrxComponent swiftshader; | 176 update_client::CrxComponent swiftshader; |
177 swiftshader.name = "Swift Shader"; | 177 swiftshader.name = "Swift Shader"; |
178 swiftshader.installer = new SwiftShaderComponentInstaller(version); | 178 swiftshader.installer = new SwiftShaderComponentInstaller(version); |
179 swiftshader.version = version; | 179 swiftshader.version = version; |
180 swiftshader.pk_hash.assign(kSha2Hash, &kSha2Hash[sizeof(kSha2Hash)]); | 180 swiftshader.pk_hash.assign(kSha2Hash, &kSha2Hash[sizeof(kSha2Hash)]); |
181 if (cus->RegisterComponent(swiftshader) != | 181 if (cus->RegisterComponent(swiftshader) != |
182 ComponentUpdateService::Status::kOk) { | 182 ComponentUpdateService::Status::kOk) { |
183 NOTREACHED() << "SwiftShader component registration fail"; | 183 NOTREACHED() << "SwiftShader component registration fail"; |
184 } | 184 } |
(...skipping 12 matching lines...) Expand all Loading... |
197 UpdateChecker::UpdateChecker(ComponentUpdateService* cus) : cus_(cus) { | 197 UpdateChecker::UpdateChecker(ComponentUpdateService* cus) : cus_(cus) { |
198 } | 198 } |
199 | 199 |
200 void UpdateChecker::OnGpuInfoUpdate() { | 200 void UpdateChecker::OnGpuInfoUpdate() { |
201 GpuDataManager* gpu_data_manager = GpuDataManager::GetInstance(); | 201 GpuDataManager* gpu_data_manager = GpuDataManager::GetInstance(); |
202 | 202 |
203 if (!gpu_data_manager->GpuAccessAllowed(NULL) || | 203 if (!gpu_data_manager->GpuAccessAllowed(NULL) || |
204 gpu_data_manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL) || | 204 gpu_data_manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL) || |
205 gpu_data_manager->ShouldUseSwiftShader()) { | 205 gpu_data_manager->ShouldUseSwiftShader()) { |
206 gpu_data_manager->RemoveObserver(this); | 206 gpu_data_manager->RemoveObserver(this); |
207 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 207 DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
208 base::FilePath path = GetSwiftShaderBaseDirectory(); | 208 base::FilePath path = GetSwiftShaderBaseDirectory(); |
209 | 209 |
210 Version version(kNullVersion); | 210 Version version(kNullVersion); |
211 GetLatestSwiftShaderDirectory(&path, &version, NULL); | 211 GetLatestSwiftShaderDirectory(&path, &version, NULL); |
212 | 212 |
213 BrowserThread::PostTask( | 213 BrowserThread::PostTask( |
214 BrowserThread::UI, | 214 BrowserThread::UI, |
215 FROM_HERE, | 215 FROM_HERE, |
216 base::Bind(&FinishSwiftShaderUpdateRegistration, cus_, version)); | 216 base::Bind(&FinishSwiftShaderUpdateRegistration, cus_, version)); |
217 } | 217 } |
218 } | 218 } |
219 | 219 |
220 #if defined(ENABLE_SWIFTSHADER) | 220 #if defined(ENABLE_SWIFTSHADER) |
221 | 221 |
222 // Check if there already is a version of swiftshader installed, | 222 // Check if there already is a version of swiftshader installed, |
223 // and if so register it. | 223 // and if so register it. |
224 void RegisterSwiftShaderPath(ComponentUpdateService* cus) { | 224 void RegisterSwiftShaderPath(ComponentUpdateService* cus) { |
225 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 225 DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
226 base::FilePath path = GetSwiftShaderBaseDirectory(); | 226 base::FilePath path = GetSwiftShaderBaseDirectory(); |
227 if (!base::PathExists(path)) { | 227 if (!base::PathExists(path)) { |
228 if (!base::CreateDirectory(path)) { | 228 if (!base::CreateDirectory(path)) { |
229 NOTREACHED() << "Could not create SwiftShader directory."; | 229 NOTREACHED() << "Could not create SwiftShader directory."; |
230 return; | 230 return; |
231 } | 231 } |
232 } | 232 } |
233 | 233 |
234 Version version(kNullVersion); | 234 Version version(kNullVersion); |
235 std::vector<base::FilePath> older_dirs; | 235 std::vector<base::FilePath> older_dirs; |
(...skipping 22 matching lines...) Expand all Loading... |
258 | 258 |
259 void RegisterSwiftShaderComponent(ComponentUpdateService* cus) { | 259 void RegisterSwiftShaderComponent(ComponentUpdateService* cus) { |
260 #if defined(ENABLE_SWIFTSHADER) | 260 #if defined(ENABLE_SWIFTSHADER) |
261 BrowserThread::PostTask(BrowserThread::FILE, | 261 BrowserThread::PostTask(BrowserThread::FILE, |
262 FROM_HERE, | 262 FROM_HERE, |
263 base::Bind(&RegisterSwiftShaderPath, cus)); | 263 base::Bind(&RegisterSwiftShaderPath, cus)); |
264 #endif | 264 #endif |
265 } | 265 } |
266 | 266 |
267 } // namespace component_updater | 267 } // namespace component_updater |
OLD | NEW |