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

Side by Side Diff: content/browser/gpu/gpu_data_manager_impl_private_unittest.cc

Issue 2737983002: WebGL feature will only enabled when accelerated (Closed)
Patch Set: Formatting fix Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 EXPECT_TRUE(reason.empty()); 151 EXPECT_TRUE(reason.empty());
152 152
153 const std::string blacklist_json = LONG_STRING_CONST( 153 const std::string blacklist_json = LONG_STRING_CONST(
154 { 154 {
155 "name": "gpu blacklist", 155 "name": "gpu blacklist",
156 "version": "0.1", 156 "version": "0.1",
157 "entries": [ 157 "entries": [
158 { 158 {
159 "id": 1, 159 "id": 1,
160 "features": [ 160 "features": [
161 "webgl" 161 "accelerated_webgl"
162 ] 162 ]
163 }, 163 },
164 { 164 {
165 "id": 2, 165 "id": 2,
166 "gl_renderer": ".*GeForce.*", 166 "gl_renderer": ".*GeForce.*",
167 "features": [ 167 "features": [
168 "accelerated_2d_canvas" 168 "accelerated_2d_canvas"
169 ] 169 ]
170 } 170 }
171 ] 171 ]
172 } 172 }
173 ); 173 );
174 174
175 gpu::GPUInfo gpu_info; 175 gpu::GPUInfo gpu_info;
176 gpu_info.gpu.vendor_id = 0x10de; 176 gpu_info.gpu.vendor_id = 0x10de;
177 gpu_info.gpu.device_id = 0x0640; 177 gpu_info.gpu.device_id = 0x0640;
178 manager->InitializeForTesting(blacklist_json, gpu_info); 178 manager->InitializeForTesting(blacklist_json, gpu_info);
179 179
180 EXPECT_TRUE(manager->GpuAccessAllowed(&reason)); 180 EXPECT_TRUE(manager->GpuAccessAllowed(&reason));
181 EXPECT_TRUE(reason.empty()); 181 EXPECT_TRUE(reason.empty());
182 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount()); 182 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount());
183 EXPECT_TRUE(manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL)); 183 EXPECT_TRUE(
184 manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL));
184 185
185 gpu_info.gl_vendor = "NVIDIA"; 186 gpu_info.gl_vendor = "NVIDIA";
186 gpu_info.gl_renderer = "NVIDIA GeForce GT 120"; 187 gpu_info.gl_renderer = "NVIDIA GeForce GT 120";
187 manager->UpdateGpuInfo(gpu_info); 188 manager->UpdateGpuInfo(gpu_info);
188 EXPECT_FALSE(manager->GpuAccessAllowed(&reason)); 189 EXPECT_FALSE(manager->GpuAccessAllowed(&reason));
189 EXPECT_FALSE(reason.empty()); 190 EXPECT_FALSE(reason.empty());
190 EXPECT_EQ(2u, manager->GetBlacklistedFeatureCount()); 191 EXPECT_EQ(2u, manager->GetBlacklistedFeatureCount());
191 EXPECT_TRUE(manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL)); 192 EXPECT_TRUE(
193 manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL));
192 EXPECT_TRUE(manager->IsFeatureBlacklisted( 194 EXPECT_TRUE(manager->IsFeatureBlacklisted(
193 gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS)); 195 gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS));
194 } 196 }
195 197
196 TEST_F(GpuDataManagerImplPrivateTest, GpuSideBlacklistingWebGL) { 198 TEST_F(GpuDataManagerImplPrivateTest, GpuSideBlacklistingWebGL) {
197 // If a feature is allowed in preliminary step (browser side), but 199 // If a feature is allowed in preliminary step (browser side), but
198 // disabled when GPU process launches and collects full GPU info, 200 // disabled when GPU process launches and collects full GPU info,
199 // it's too late to let renderer know, so we basically block all GPU 201 // it's too late to let renderer know, so we basically block all GPU
200 // access, to be on the safe side. 202 // access, to be on the safe side.
201 ScopedGpuDataManagerImplPrivate manager; 203 ScopedGpuDataManagerImplPrivate manager;
(...skipping 10 matching lines...) Expand all
212 { 214 {
213 "id": 1, 215 "id": 1,
214 "features": [ 216 "features": [
215 "accelerated_2d_canvas" 217 "accelerated_2d_canvas"
216 ] 218 ]
217 }, 219 },
218 { 220 {
219 "id": 2, 221 "id": 2,
220 "gl_renderer": ".*GeForce.*", 222 "gl_renderer": ".*GeForce.*",
221 "features": [ 223 "features": [
222 "webgl", 224 "accelerated_webgl",
223 "webgl2" 225 "webgl2"
224 ] 226 ]
225 } 227 }
226 ] 228 ]
227 } 229 }
228 ); 230 );
229 231
230 gpu::GPUInfo gpu_info; 232 gpu::GPUInfo gpu_info;
231 gpu_info.gpu.vendor_id = 0x10de; 233 gpu_info.gpu.vendor_id = 0x10de;
232 gpu_info.gpu.device_id = 0x0640; 234 gpu_info.gpu.device_id = 0x0640;
233 manager->InitializeForTesting(blacklist_json, gpu_info); 235 manager->InitializeForTesting(blacklist_json, gpu_info);
234 236
235 EXPECT_TRUE(manager->GpuAccessAllowed(&reason)); 237 EXPECT_TRUE(manager->GpuAccessAllowed(&reason));
236 EXPECT_TRUE(reason.empty()); 238 EXPECT_TRUE(reason.empty());
237 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount()); 239 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount());
238 EXPECT_TRUE(manager->IsFeatureBlacklisted( 240 EXPECT_TRUE(manager->IsFeatureBlacklisted(
239 gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS)); 241 gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS));
240 242
241 gpu_info.gl_vendor = "NVIDIA"; 243 gpu_info.gl_vendor = "NVIDIA";
242 gpu_info.gl_renderer = "NVIDIA GeForce GT 120"; 244 gpu_info.gl_renderer = "NVIDIA GeForce GT 120";
243 manager->UpdateGpuInfo(gpu_info); 245 manager->UpdateGpuInfo(gpu_info);
244 EXPECT_TRUE(manager->GpuAccessAllowed(&reason)); 246 EXPECT_TRUE(manager->GpuAccessAllowed(&reason));
245 EXPECT_TRUE(reason.empty()); 247 EXPECT_TRUE(reason.empty());
246 EXPECT_EQ(3u, manager->GetBlacklistedFeatureCount()); 248 EXPECT_EQ(3u, manager->GetBlacklistedFeatureCount());
247 EXPECT_TRUE(manager->IsFeatureBlacklisted( 249 EXPECT_TRUE(manager->IsFeatureBlacklisted(
248 gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS)); 250 gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS));
249 EXPECT_TRUE(manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL)); 251 EXPECT_TRUE(
252 manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL));
250 EXPECT_TRUE(manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL2)); 253 EXPECT_TRUE(manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL2));
251 } 254 }
252 255
253 TEST_F(GpuDataManagerImplPrivateTest, GpuSideExceptions) { 256 TEST_F(GpuDataManagerImplPrivateTest, GpuSideExceptions) {
254 ScopedGpuDataManagerImplPrivate manager; 257 ScopedGpuDataManagerImplPrivate manager;
255 EXPECT_EQ(0u, manager->GetBlacklistedFeatureCount()); 258 EXPECT_EQ(0u, manager->GetBlacklistedFeatureCount());
256 EXPECT_TRUE(manager->GpuAccessAllowed(NULL)); 259 EXPECT_TRUE(manager->GpuAccessAllowed(NULL));
257 260
258 const std::string blacklist_json = LONG_STRING_CONST( 261 const std::string blacklist_json = LONG_STRING_CONST(
259 { 262 {
260 "name": "gpu blacklist", 263 "name": "gpu blacklist",
261 "version": "0.1", 264 "version": "0.1",
262 "entries": [ 265 "entries": [
263 { 266 {
264 "id": 1, 267 "id": 1,
265 "exceptions": [ 268 "exceptions": [
266 { 269 {
267 "gl_renderer": ".*GeForce.*" 270 "gl_renderer": ".*GeForce.*"
268 } 271 }
269 ], 272 ],
270 "features": [ 273 "features": [
271 "webgl" 274 "accelerated_webgl"
272 ] 275 ]
273 } 276 }
274 ] 277 ]
275 } 278 }
276 ); 279 );
277 gpu::GPUInfo gpu_info; 280 gpu::GPUInfo gpu_info;
278 gpu_info.gpu.vendor_id = 0x10de; 281 gpu_info.gpu.vendor_id = 0x10de;
279 gpu_info.gpu.device_id = 0x0640; 282 gpu_info.gpu.device_id = 0x0640;
280 manager->InitializeForTesting(blacklist_json, gpu_info); 283 manager->InitializeForTesting(blacklist_json, gpu_info);
281 284
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 manager->DisableHardwareAcceleration(); 318 manager->DisableHardwareAcceleration();
316 EXPECT_FALSE(manager->GpuAccessAllowed(NULL)); 319 EXPECT_FALSE(manager->GpuAccessAllowed(NULL));
317 EXPECT_FALSE(manager->ShouldUseSwiftShader()); 320 EXPECT_FALSE(manager->ShouldUseSwiftShader());
318 321
319 // If SwiftShader is enabled, even if we blacklist GPU, 322 // If SwiftShader is enabled, even if we blacklist GPU,
320 // GPU process is still allowed. 323 // GPU process is still allowed.
321 const base::FilePath test_path(FILE_PATH_LITERAL("AnyPath")); 324 const base::FilePath test_path(FILE_PATH_LITERAL("AnyPath"));
322 manager->RegisterSwiftShaderPath(test_path); 325 manager->RegisterSwiftShaderPath(test_path);
323 EXPECT_TRUE(manager->ShouldUseSwiftShader()); 326 EXPECT_TRUE(manager->ShouldUseSwiftShader());
324 EXPECT_TRUE(manager->GpuAccessAllowed(NULL)); 327 EXPECT_TRUE(manager->GpuAccessAllowed(NULL));
325 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount()); 328 EXPECT_EQ(static_cast<size_t>(gpu::NUMBER_OF_GPU_FEATURE_TYPES),
329 manager->GetBlacklistedFeatureCount());
326 EXPECT_TRUE(manager->IsFeatureBlacklisted( 330 EXPECT_TRUE(manager->IsFeatureBlacklisted(
327 gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS)); 331 gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS));
328 } 332 }
329 333
330 TEST_F(GpuDataManagerImplPrivateTest, SwiftShaderRendering2) { 334 TEST_F(GpuDataManagerImplPrivateTest, SwiftShaderRendering2) {
331 // Register SwiftShader, then blacklist. 335 // Register SwiftShader, then blacklist.
332 ScopedGpuDataManagerImplPrivate manager; 336 ScopedGpuDataManagerImplPrivate manager;
333 manager->InitializeForTesting("", gpu::GPUInfo()); 337 manager->InitializeForTesting("", gpu::GPUInfo());
334 EXPECT_EQ(0u, manager->GetBlacklistedFeatureCount()); 338 EXPECT_EQ(0u, manager->GetBlacklistedFeatureCount());
335 EXPECT_TRUE(manager->GpuAccessAllowed(NULL)); 339 EXPECT_TRUE(manager->GpuAccessAllowed(NULL));
336 EXPECT_FALSE(manager->ShouldUseSwiftShader()); 340 EXPECT_FALSE(manager->ShouldUseSwiftShader());
337 341
338 const base::FilePath test_path(FILE_PATH_LITERAL("AnyPath")); 342 const base::FilePath test_path(FILE_PATH_LITERAL("AnyPath"));
339 manager->RegisterSwiftShaderPath(test_path); 343 manager->RegisterSwiftShaderPath(test_path);
340 EXPECT_EQ(0u, manager->GetBlacklistedFeatureCount()); 344 EXPECT_EQ(0u, manager->GetBlacklistedFeatureCount());
341 EXPECT_TRUE(manager->GpuAccessAllowed(NULL)); 345 EXPECT_TRUE(manager->GpuAccessAllowed(NULL));
342 EXPECT_FALSE(manager->ShouldUseSwiftShader()); 346 EXPECT_FALSE(manager->ShouldUseSwiftShader());
343 347
344 manager->DisableHardwareAcceleration(); 348 manager->DisableHardwareAcceleration();
345 EXPECT_TRUE(manager->GpuAccessAllowed(NULL)); 349 EXPECT_TRUE(manager->GpuAccessAllowed(NULL));
346 EXPECT_TRUE(manager->ShouldUseSwiftShader()); 350 EXPECT_TRUE(manager->ShouldUseSwiftShader());
347 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount()); 351 EXPECT_EQ(static_cast<size_t>(gpu::NUMBER_OF_GPU_FEATURE_TYPES),
352 manager->GetBlacklistedFeatureCount());
348 EXPECT_TRUE(manager->IsFeatureBlacklisted( 353 EXPECT_TRUE(manager->IsFeatureBlacklisted(
349 gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS)); 354 gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS));
350 } 355 }
351 356
352 TEST_F(GpuDataManagerImplPrivateTest, GpuInfoUpdate) { 357 TEST_F(GpuDataManagerImplPrivateTest, GpuInfoUpdate) {
353 ScopedGpuDataManagerImpl manager; 358 ScopedGpuDataManagerImpl manager;
354 359
355 TestObserver observer; 360 TestObserver observer;
356 manager->AddObserver(&observer); 361 manager->AddObserver(&observer);
357 362
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 "exceptions": [ 571 "exceptions": [
567 { 572 {
568 "device_id": ["0x0042"], 573 "device_id": ["0x0042"],
569 "driver_version": { 574 "driver_version": {
570 "op": ">=", 575 "op": ">=",
571 "value": "8.0.2" 576 "value": "8.0.2"
572 } 577 }
573 } 578 }
574 ], 579 ],
575 "features": [ 580 "features": [
576 "webgl" 581 "accelerated_webgl"
577 ] 582 ]
578 } 583 }
579 ] 584 ]
580 } 585 }
581 ); 586 );
582 gpu::GPUInfo gpu_info; 587 gpu::GPUInfo gpu_info;
583 gpu_info.gpu.vendor_id = 0x8086; 588 gpu_info.gpu.vendor_id = 0x8086;
584 gpu_info.gpu.device_id = 0x0042; 589 gpu_info.gpu.device_id = 0x0042;
585 manager->InitializeForTesting(blacklist_json, gpu_info); 590 manager->InitializeForTesting(blacklist_json, gpu_info);
586 591
587 // Not enough GPUInfo. 592 // Not enough GPUInfo.
588 EXPECT_TRUE(manager->GpuAccessAllowed(NULL)); 593 EXPECT_TRUE(manager->GpuAccessAllowed(NULL));
589 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount()); 594 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount());
590 595
591 // Now assume browser gets GL strings from local state. 596 // Now assume browser gets GL strings from local state.
592 // The entry applies, blacklist more features than from the preliminary step. 597 // The entry applies, blacklist more features than from the preliminary step.
593 // However, GPU process is not blocked because this is all browser side and 598 // However, GPU process is not blocked because this is all browser side and
594 // happens before renderer launching. 599 // happens before renderer launching.
595 manager->SetGLStrings(kGLVendorMesa, kGLRendererMesa, kGLVersionMesa801); 600 manager->SetGLStrings(kGLVendorMesa, kGLRendererMesa, kGLVersionMesa801);
596 EXPECT_TRUE(manager->GpuAccessAllowed(NULL)); 601 EXPECT_TRUE(manager->GpuAccessAllowed(NULL));
597 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount()); 602 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount());
598 EXPECT_TRUE(manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL)); 603 EXPECT_TRUE(
604 manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL));
599 } 605 }
600 606
601 TEST_F(GpuDataManagerImplPrivateTest, SetGLStringsNoEffects) { 607 TEST_F(GpuDataManagerImplPrivateTest, SetGLStringsNoEffects) {
602 const char* kGLVendorMesa = "Tungsten Graphics, Inc"; 608 const char* kGLVendorMesa = "Tungsten Graphics, Inc";
603 const char* kGLRendererMesa = "Mesa DRI Intel(R) G41"; 609 const char* kGLRendererMesa = "Mesa DRI Intel(R) G41";
604 const char* kGLVersionMesa801 = "2.1 Mesa 8.0.1-DEVEL"; 610 const char* kGLVersionMesa801 = "2.1 Mesa 8.0.1-DEVEL";
605 const char* kGLVersionMesa802 = "2.1 Mesa 8.0.2-DEVEL"; 611 const char* kGLVersionMesa802 = "2.1 Mesa 8.0.2-DEVEL";
606 612
607 ScopedGpuDataManagerImplPrivate manager; 613 ScopedGpuDataManagerImplPrivate manager;
608 EXPECT_EQ(0u, manager->GetBlacklistedFeatureCount()); 614 EXPECT_EQ(0u, manager->GetBlacklistedFeatureCount());
(...skipping 10 matching lines...) Expand all
619 "exceptions": [ 625 "exceptions": [
620 { 626 {
621 "device_id": ["0x0042"], 627 "device_id": ["0x0042"],
622 "driver_version": { 628 "driver_version": {
623 "op": ">=", 629 "op": ">=",
624 "value": "8.0.2" 630 "value": "8.0.2"
625 } 631 }
626 } 632 }
627 ], 633 ],
628 "features": [ 634 "features": [
629 "webgl" 635 "accelerated_webgl"
630 ] 636 ]
631 } 637 }
632 ] 638 ]
633 } 639 }
634 ); 640 );
635 gpu::GPUInfo gpu_info; 641 gpu::GPUInfo gpu_info;
636 gpu_info.gpu.vendor_id = 0x8086; 642 gpu_info.gpu.vendor_id = 0x8086;
637 gpu_info.gpu.device_id = 0x0042; 643 gpu_info.gpu.device_id = 0x0042;
638 gpu_info.gl_vendor = kGLVendorMesa; 644 gpu_info.gl_vendor = kGLVendorMesa;
639 gpu_info.gl_renderer = kGLRendererMesa; 645 gpu_info.gl_renderer = kGLRendererMesa;
640 gpu_info.gl_version = kGLVersionMesa801; 646 gpu_info.gl_version = kGLVersionMesa801;
641 gpu_info.driver_vendor = "Mesa"; 647 gpu_info.driver_vendor = "Mesa";
642 gpu_info.driver_version = "8.0.1"; 648 gpu_info.driver_version = "8.0.1";
643 manager->InitializeForTesting(blacklist_json, gpu_info); 649 manager->InitializeForTesting(blacklist_json, gpu_info);
644 650
645 // Full GPUInfo, the entry applies. 651 // Full GPUInfo, the entry applies.
646 EXPECT_TRUE(manager->GpuAccessAllowed(NULL)); 652 EXPECT_TRUE(manager->GpuAccessAllowed(NULL));
647 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount()); 653 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount());
648 EXPECT_TRUE(manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL)); 654 EXPECT_TRUE(
655 manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL));
649 656
650 // Now assume browser gets GL strings from local state. 657 // Now assume browser gets GL strings from local state.
651 // SetGLStrings() has no effects because GPUInfo already got these strings. 658 // SetGLStrings() has no effects because GPUInfo already got these strings.
652 // (Otherwise the entry should not apply.) 659 // (Otherwise the entry should not apply.)
653 manager->SetGLStrings(kGLVendorMesa, kGLRendererMesa, kGLVersionMesa802); 660 manager->SetGLStrings(kGLVendorMesa, kGLRendererMesa, kGLVersionMesa802);
654 EXPECT_TRUE(manager->GpuAccessAllowed(NULL)); 661 EXPECT_TRUE(manager->GpuAccessAllowed(NULL));
655 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount()); 662 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount());
656 EXPECT_TRUE(manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL)); 663 EXPECT_TRUE(
664 manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL));
657 } 665 }
658 666
659 TEST_F(GpuDataManagerImplPrivateTest, SetGLStringsDefered) { 667 TEST_F(GpuDataManagerImplPrivateTest, SetGLStringsDefered) {
660 const char* kGLVendorMesa = "Tungsten Graphics, Inc"; 668 const char* kGLVendorMesa = "Tungsten Graphics, Inc";
661 const char* kGLRendererMesa = "Mesa DRI Intel(R) G41"; 669 const char* kGLRendererMesa = "Mesa DRI Intel(R) G41";
662 const char* kGLVersionMesa801 = "2.1 Mesa 8.0.1-DEVEL"; 670 const char* kGLVersionMesa801 = "2.1 Mesa 8.0.1-DEVEL";
663 671
664 ScopedGpuDataManagerImplPrivate manager; 672 ScopedGpuDataManagerImplPrivate manager;
665 EXPECT_EQ(0u, manager->GetBlacklistedFeatureCount()); 673 EXPECT_EQ(0u, manager->GetBlacklistedFeatureCount());
666 EXPECT_TRUE(manager->GpuAccessAllowed(NULL)); 674 EXPECT_TRUE(manager->GpuAccessAllowed(NULL));
667 675
668 const std::string blacklist_json = LONG_STRING_CONST({ 676 const std::string blacklist_json = LONG_STRING_CONST({
669 "name" : "gpu blacklist", 677 "name" : "gpu blacklist",
670 "version" : "0.1", 678 "version" : "0.1",
671 "entries" : [ { 679 "entries" : [ {
672 "id" : 1, 680 "id" : 1,
673 "vendor_id" : "0x8086", 681 "vendor_id" : "0x8086",
674 "device_id" : ["0x0042"], 682 "device_id" : ["0x0042"],
675 "driver_vendor" : "Mesa", 683 "driver_vendor" : "Mesa",
676 "driver_version" : {"op" : ">=", "value" : "8.0.0"}, 684 "driver_version" : {"op" : ">=", "value" : "8.0.0"},
677 "features" : ["webgl"] 685 "features" : ["accelerated_webgl"]
678 } ] 686 } ]
679 }); 687 });
680 688
681 // Check that it is allowed to call SetGLStrings before Initialize. 689 // Check that it is allowed to call SetGLStrings before Initialize.
682 690
683 // Assume browser gets GL strings from local state. 691 // Assume browser gets GL strings from local state.
684 manager->SetGLStrings(kGLVendorMesa, kGLRendererMesa, kGLVersionMesa801); 692 manager->SetGLStrings(kGLVendorMesa, kGLRendererMesa, kGLVersionMesa801);
685 693
686 gpu::GPUInfo gpu_info; 694 gpu::GPUInfo gpu_info;
687 gpu_info.gpu.vendor_id = 0x8086; 695 gpu_info.gpu.vendor_id = 0x8086;
688 gpu_info.gpu.device_id = 0x0042; 696 gpu_info.gpu.device_id = 0x0042;
689 manager->InitializeForTesting(blacklist_json, gpu_info); 697 manager->InitializeForTesting(blacklist_json, gpu_info);
690 698
691 EXPECT_TRUE(manager->GpuAccessAllowed(NULL)); 699 EXPECT_TRUE(manager->GpuAccessAllowed(NULL));
692 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount()); 700 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount());
693 EXPECT_TRUE(manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL)); 701 EXPECT_TRUE(
702 manager->IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL));
694 } 703 }
695 #endif // OS_LINUX 704 #endif // OS_LINUX
696 705
697 TEST_F(GpuDataManagerImplPrivateTest, GpuDriverBugListSingle) { 706 TEST_F(GpuDataManagerImplPrivateTest, GpuDriverBugListSingle) {
698 ScopedGpuDataManagerImplPrivate manager; 707 ScopedGpuDataManagerImplPrivate manager;
699 manager->gpu_driver_bugs_.insert(5); 708 manager->gpu_driver_bugs_.insert(5);
700 709
701 base::CommandLine command_line(0, NULL); 710 base::CommandLine command_line(0, NULL);
702 manager->AppendGpuCommandLine(&command_line, nullptr); 711 manager->AppendGpuCommandLine(&command_line, nullptr);
703 712
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 const std::string blacklist_json = LONG_STRING_CONST( 776 const std::string blacklist_json = LONG_STRING_CONST(
768 { 777 {
769 "name": "gpu blacklist", 778 "name": "gpu blacklist",
770 "version": "0.1", 779 "version": "0.1",
771 "entries": [ 780 "entries": [
772 { 781 {
773 "id": 1, 782 "id": 1,
774 "vendor_id": "0x8086", 783 "vendor_id": "0x8086",
775 "multi_gpu_category": "active", 784 "multi_gpu_category": "active",
776 "features": [ 785 "features": [
777 "webgl" 786 "accelerated_webgl"
778 ] 787 ]
779 } 788 }
780 ] 789 ]
781 } 790 }
782 ); 791 );
783 792
784 // Two GPUs, the secondary Intel GPU is active. 793 // Two GPUs, the secondary Intel GPU is active.
785 gpu::GPUInfo gpu_info; 794 gpu::GPUInfo gpu_info;
786 gpu_info.gpu.vendor_id = 0x10de; 795 gpu_info.gpu.vendor_id = 0x10de;
787 gpu_info.gpu.device_id = 0x0640; 796 gpu_info.gpu.device_id = 0x0640;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 EXPECT_TRUE(manager->UpdateActiveGpu(0x8086, 0x04a1)); 841 EXPECT_TRUE(manager->UpdateActiveGpu(0x8086, 0x04a1));
833 { 842 {
834 base::RunLoop run_loop; 843 base::RunLoop run_loop;
835 run_loop.RunUntilIdle(); 844 run_loop.RunUntilIdle();
836 } 845 }
837 EXPECT_TRUE(observer.gpu_info_updated()); 846 EXPECT_TRUE(observer.gpu_info_updated());
838 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount()); 847 EXPECT_EQ(1u, manager->GetBlacklistedFeatureCount());
839 } 848 }
840 849
841 } // namespace content 850 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/gpu/gpu_data_manager_impl_private.cc ('k') | content/public/browser/gpu_data_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698