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

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

Issue 10915219: Add capability for GPU blacklist to manage GPU switching. (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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 <vector> 5 #include <vector>
6 6
7 #include "base/base_paths.h" 7 #include "base/base_paths.h"
8 #include "base/file_path.h" 8 #include "base/file_path.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "base/path_service.h" 11 #include "base/path_service.h"
12 #include "base/version.h" 12 #include "base/version.h"
13 #include "content/browser/gpu/gpu_blacklist.h" 13 #include "content/browser/gpu/gpu_blacklist.h"
14 #include "content/public/common/gpu_info.h" 14 #include "content/public/common/gpu_info.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 16
17 using content::GpuFeatureType; 17 using content::GpuFeatureType;
18 using content::GpuSwitchingOption;
18 19
19 class GpuBlacklistTest : public testing::Test { 20 class GpuBlacklistTest : public testing::Test {
20 public: 21 public:
21 GpuBlacklistTest() { } 22 GpuBlacklistTest() { }
22 23
23 virtual ~GpuBlacklistTest() { } 24 virtual ~GpuBlacklistTest() { }
24 25
25 const content::GPUInfo& gpu_info() const { 26 const content::GPUInfo& gpu_info() const {
26 return gpu_info_; 27 return gpu_info_;
27 } 28 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 scoped_ptr<GpuBlacklist> blacklist(Create()); 71 scoped_ptr<GpuBlacklist> blacklist(Create());
71 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 72 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
72 json_string, GpuBlacklist::kAllOs)); 73 json_string, GpuBlacklist::kAllOs));
73 EXPECT_FALSE(blacklist->contains_unknown_fields()); 74 EXPECT_FALSE(blacklist->contains_unknown_fields());
74 } 75 }
75 76
76 TEST_F(GpuBlacklistTest, DefaultBlacklistSettings) { 77 TEST_F(GpuBlacklistTest, DefaultBlacklistSettings) {
77 Version os_version("10.6.4"); 78 Version os_version("10.6.4");
78 scoped_ptr<GpuBlacklist> blacklist(Create()); 79 scoped_ptr<GpuBlacklist> blacklist(Create());
79 // Default blacklist settings: all feature are allowed. 80 // Default blacklist settings: all feature are allowed.
80 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 81 GpuFeatureType type = blacklist->MakeBlacklistDecision(
81 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); 82 GpuBlacklist::kOsMacosx, &os_version,
83 gpu_info()).blacklisted_features;
82 EXPECT_EQ(type, 0); 84 EXPECT_EQ(type, 0);
83 } 85 }
84 86
85 TEST_F(GpuBlacklistTest, EmptyBlacklist) { 87 TEST_F(GpuBlacklistTest, EmptyBlacklist) {
86 // Empty list: all features are allowed. 88 // Empty list: all features are allowed.
87 const std::string empty_list_json = 89 const std::string empty_list_json =
88 "{\n" 90 "{\n"
89 " \"name\": \"gpu blacklist\",\n" 91 " \"name\": \"gpu blacklist\",\n"
90 " \"version\": \"2.5\",\n" 92 " \"version\": \"2.5\",\n"
91 " \"entries\": [\n" 93 " \"entries\": [\n"
92 " ]\n" 94 " ]\n"
93 "}"; 95 "}";
94 Version os_version("10.6.4"); 96 Version os_version("10.6.4");
95 scoped_ptr<GpuBlacklist> blacklist(Create()); 97 scoped_ptr<GpuBlacklist> blacklist(Create());
96 98
97 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 99 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
98 empty_list_json, GpuBlacklist::kAllOs)); 100 empty_list_json, GpuBlacklist::kAllOs));
99 EXPECT_EQ(blacklist->GetVersion(), std::string("2.5")); 101 EXPECT_EQ(blacklist->GetVersion(), std::string("2.5"));
100 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 102 GpuFeatureType type = blacklist->MakeBlacklistDecision(
101 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); 103 GpuBlacklist::kOsMacosx, &os_version,
104 gpu_info()).blacklisted_features;
102 EXPECT_EQ(type, 0); 105 EXPECT_EQ(type, 0);
103 } 106 }
104 107
105 TEST_F(GpuBlacklistTest, DetailedEntryAndInvalidJson) { 108 TEST_F(GpuBlacklistTest, DetailedEntryAndInvalidJson) {
106 // Blacklist accelerated_compositing with exact setting. 109 // Blacklist accelerated_compositing with exact setting.
107 const std::string exact_list_json = 110 const std::string exact_list_json =
108 "{\n" 111 "{\n"
109 " \"name\": \"gpu blacklist\",\n" 112 " \"name\": \"gpu blacklist\",\n"
110 " \"version\": \"0.1\",\n" 113 " \"version\": \"0.1\",\n"
111 " \"entries\": [\n" 114 " \"entries\": [\n"
(...skipping 16 matching lines...) Expand all
128 " \"accelerated_compositing\"\n" 131 " \"accelerated_compositing\"\n"
129 " ]\n" 132 " ]\n"
130 " }\n" 133 " }\n"
131 " ]\n" 134 " ]\n"
132 "}"; 135 "}";
133 Version os_version("10.6.4"); 136 Version os_version("10.6.4");
134 scoped_ptr<GpuBlacklist> blacklist(Create()); 137 scoped_ptr<GpuBlacklist> blacklist(Create());
135 138
136 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 139 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
137 exact_list_json, GpuBlacklist::kAllOs)); 140 exact_list_json, GpuBlacklist::kAllOs));
138 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 141 GpuFeatureType type = blacklist->MakeBlacklistDecision(
139 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); 142 GpuBlacklist::kOsMacosx, &os_version,
143 gpu_info()).blacklisted_features;
140 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING); 144 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING);
141 145
142 // Invalid json input should not change the current blacklist settings. 146 // Invalid json input should not change the current blacklist settings.
143 const std::string invalid_json = "invalid"; 147 const std::string invalid_json = "invalid";
144 148
145 EXPECT_FALSE(blacklist->LoadGpuBlacklist( 149 EXPECT_FALSE(blacklist->LoadGpuBlacklist(
146 invalid_json, GpuBlacklist::kAllOs)); 150 invalid_json, GpuBlacklist::kAllOs));
147 type = blacklist->DetermineGpuFeatureType( 151 type = blacklist->MakeBlacklistDecision(
148 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); 152 GpuBlacklist::kOsMacosx, &os_version,
153 gpu_info()).blacklisted_features;
149 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING); 154 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING);
150 std::vector<uint32> entries; 155 std::vector<uint32> entries;
151 bool disabled = false; 156 bool disabled = false;
152 blacklist->GetGpuFeatureTypeEntries( 157 blacklist->GetDecisionEntries(entries, disabled);
153 content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING, entries, disabled);
154 EXPECT_EQ(entries.size(), 1u);
155 EXPECT_EQ(entries[0], 5u);
156 blacklist->GetGpuFeatureTypeEntries(
157 content::GPU_FEATURE_TYPE_ALL, entries, disabled);
158 EXPECT_EQ(entries.size(), 1u); 158 EXPECT_EQ(entries.size(), 1u);
159 EXPECT_EQ(entries[0], 5u); 159 EXPECT_EQ(entries[0], 5u);
160 EXPECT_EQ(blacklist->max_entry_id(), 5u); 160 EXPECT_EQ(blacklist->max_entry_id(), 5u);
161 } 161 }
162 162
163 TEST_F(GpuBlacklistTest, VendorOnAllOsEntry) { 163 TEST_F(GpuBlacklistTest, VendorOnAllOsEntry) {
164 // Blacklist a vendor on all OS. 164 // Blacklist a vendor on all OS.
165 const std::string vendor_json = 165 const std::string vendor_json =
166 "{\n" 166 "{\n"
167 " \"name\": \"gpu blacklist\",\n" 167 " \"name\": \"gpu blacklist\",\n"
168 " \"version\": \"0.1\",\n" 168 " \"version\": \"0.1\",\n"
169 " \"entries\": [\n" 169 " \"entries\": [\n"
170 " {\n" 170 " {\n"
171 " \"id\": 1,\n" 171 " \"id\": 1,\n"
172 " \"vendor_id\": \"0x10de\",\n" 172 " \"vendor_id\": \"0x10de\",\n"
173 " \"blacklist\": [\n" 173 " \"blacklist\": [\n"
174 " \"webgl\"\n" 174 " \"webgl\"\n"
175 " ]\n" 175 " ]\n"
176 " }\n" 176 " }\n"
177 " ]\n" 177 " ]\n"
178 "}"; 178 "}";
179 Version os_version("10.6.4"); 179 Version os_version("10.6.4");
180 scoped_ptr<GpuBlacklist> blacklist(Create()); 180 scoped_ptr<GpuBlacklist> blacklist(Create());
181 181
182 // Blacklist entries won't be filtered to the current OS only upon loading. 182 // Blacklist entries won't be filtered to the current OS only upon loading.
183 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 183 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
184 vendor_json, GpuBlacklist::kAllOs)); 184 vendor_json, GpuBlacklist::kAllOs));
185 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 185 GpuFeatureType type = blacklist->MakeBlacklistDecision(
186 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); 186 GpuBlacklist::kOsMacosx, &os_version,
187 gpu_info()).blacklisted_features;
187 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 188 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
188 type = blacklist->DetermineGpuFeatureType( 189 type = blacklist->MakeBlacklistDecision(
189 GpuBlacklist::kOsWin, &os_version, gpu_info()); 190 GpuBlacklist::kOsWin, &os_version,
191 gpu_info()).blacklisted_features;
190 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 192 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
191 type = blacklist->DetermineGpuFeatureType( 193 type = blacklist->MakeBlacklistDecision(
192 GpuBlacklist::kOsLinux, &os_version, gpu_info()); 194 GpuBlacklist::kOsLinux, &os_version,
195 gpu_info()).blacklisted_features;
193 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 196 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
194 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || \ 197 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || \
195 defined(OS_OPENBSD) 198 defined(OS_OPENBSD)
196 // Blacklist entries will be filtered to the current OS only upon loading. 199 // Blacklist entries will be filtered to the current OS only upon loading.
197 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 200 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
198 vendor_json, GpuBlacklist::kCurrentOsOnly)); 201 vendor_json, GpuBlacklist::kCurrentOsOnly));
199 type = blacklist->DetermineGpuFeatureType( 202 type = blacklist->MakeBlacklistDecision(
200 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); 203 GpuBlacklist::kOsMacosx, &os_version,
204 gpu_info()).blacklisted_features;
201 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 205 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
202 type = blacklist->DetermineGpuFeatureType( 206 type = blacklist->MakeBlacklistDecision(
203 GpuBlacklist::kOsWin, &os_version, gpu_info()); 207 GpuBlacklist::kOsWin, &os_version,
208 gpu_info()).blacklisted_features;
204 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 209 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
205 type = blacklist->DetermineGpuFeatureType( 210 type = blacklist->MakeBlacklistDecision(
206 GpuBlacklist::kOsLinux, &os_version, gpu_info()); 211 GpuBlacklist::kOsLinux, &os_version,
212 gpu_info()).blacklisted_features;
207 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 213 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
208 #endif 214 #endif
209 } 215 }
210 216
211 TEST_F(GpuBlacklistTest, VendorOnLinuxEntry) { 217 TEST_F(GpuBlacklistTest, VendorOnLinuxEntry) {
212 // Blacklist a vendor on Linux only. 218 // Blacklist a vendor on Linux only.
213 const std::string vendor_linux_json = 219 const std::string vendor_linux_json =
214 "{\n" 220 "{\n"
215 " \"name\": \"gpu blacklist\",\n" 221 " \"name\": \"gpu blacklist\",\n"
216 " \"version\": \"0.1\",\n" 222 " \"version\": \"0.1\",\n"
217 " \"entries\": [\n" 223 " \"entries\": [\n"
218 " {\n" 224 " {\n"
219 " \"id\": 1,\n" 225 " \"id\": 1,\n"
220 " \"os\": {\n" 226 " \"os\": {\n"
221 " \"type\": \"linux\"\n" 227 " \"type\": \"linux\"\n"
222 " },\n" 228 " },\n"
223 " \"vendor_id\": \"0x10de\",\n" 229 " \"vendor_id\": \"0x10de\",\n"
224 " \"blacklist\": [\n" 230 " \"blacklist\": [\n"
225 " \"accelerated_2d_canvas\"\n" 231 " \"accelerated_2d_canvas\"\n"
226 " ]\n" 232 " ]\n"
227 " }\n" 233 " }\n"
228 " ]\n" 234 " ]\n"
229 "}"; 235 "}";
230 Version os_version("10.6.4"); 236 Version os_version("10.6.4");
231 scoped_ptr<GpuBlacklist> blacklist(Create()); 237 scoped_ptr<GpuBlacklist> blacklist(Create());
232 238
233 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 239 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
234 vendor_linux_json, GpuBlacklist::kAllOs)); 240 vendor_linux_json, GpuBlacklist::kAllOs));
235 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 241 GpuFeatureType type = blacklist->MakeBlacklistDecision(
236 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); 242 GpuBlacklist::kOsMacosx, &os_version,
243 gpu_info()).blacklisted_features;
237 EXPECT_EQ(type, 0); 244 EXPECT_EQ(type, 0);
238 type = blacklist->DetermineGpuFeatureType( 245 type = blacklist->MakeBlacklistDecision(
239 GpuBlacklist::kOsWin, &os_version, gpu_info()); 246 GpuBlacklist::kOsWin, &os_version,
247 gpu_info()).blacklisted_features;
240 EXPECT_EQ(type, 0); 248 EXPECT_EQ(type, 0);
241 type = blacklist->DetermineGpuFeatureType( 249 type = blacklist->MakeBlacklistDecision(
242 GpuBlacklist::kOsLinux, &os_version, gpu_info()); 250 GpuBlacklist::kOsLinux, &os_version,
251 gpu_info()).blacklisted_features;
243 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); 252 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS);
244 } 253 }
245 254
246 TEST_F(GpuBlacklistTest, AllExceptNVidiaOnLinuxEntry) { 255 TEST_F(GpuBlacklistTest, AllExceptNVidiaOnLinuxEntry) {
247 // Blacklist all cards in Linux except NVIDIA. 256 // Blacklist all cards in Linux except NVIDIA.
248 const std::string linux_except_nvidia_json = 257 const std::string linux_except_nvidia_json =
249 "{\n" 258 "{\n"
250 " \"name\": \"gpu blacklist\",\n" 259 " \"name\": \"gpu blacklist\",\n"
251 " \"version\": \"0.1\",\n" 260 " \"version\": \"0.1\",\n"
252 " \"entries\": [\n" 261 " \"entries\": [\n"
(...skipping 11 matching lines...) Expand all
264 " \"accelerated_2d_canvas\"\n" 273 " \"accelerated_2d_canvas\"\n"
265 " ]\n" 274 " ]\n"
266 " }\n" 275 " }\n"
267 " ]\n" 276 " ]\n"
268 "}"; 277 "}";
269 Version os_version("10.6.4"); 278 Version os_version("10.6.4");
270 scoped_ptr<GpuBlacklist> blacklist(Create()); 279 scoped_ptr<GpuBlacklist> blacklist(Create());
271 280
272 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 281 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
273 linux_except_nvidia_json, GpuBlacklist::kAllOs)); 282 linux_except_nvidia_json, GpuBlacklist::kAllOs));
274 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 283 GpuFeatureType type = blacklist->MakeBlacklistDecision(
275 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); 284 GpuBlacklist::kOsMacosx, &os_version,
285 gpu_info()).blacklisted_features;
276 EXPECT_EQ(type, 0); 286 EXPECT_EQ(type, 0);
277 type = blacklist->DetermineGpuFeatureType( 287 type = blacklist->MakeBlacklistDecision(
278 GpuBlacklist::kOsWin, &os_version, gpu_info()); 288 GpuBlacklist::kOsWin, &os_version,
289 gpu_info()).blacklisted_features;
279 EXPECT_EQ(type, 0); 290 EXPECT_EQ(type, 0);
280 type = blacklist->DetermineGpuFeatureType( 291 type = blacklist->MakeBlacklistDecision(
281 GpuBlacklist::kOsLinux, &os_version, gpu_info()); 292 GpuBlacklist::kOsLinux, &os_version,
293 gpu_info()).blacklisted_features;
282 EXPECT_EQ(type, 0); 294 EXPECT_EQ(type, 0);
283 } 295 }
284 296
285 TEST_F(GpuBlacklistTest, AllExceptIntelOnLinuxEntry) { 297 TEST_F(GpuBlacklistTest, AllExceptIntelOnLinuxEntry) {
286 // Blacklist all cards in Linux except Intel. 298 // Blacklist all cards in Linux except Intel.
287 const std::string linux_except_intel_json = 299 const std::string linux_except_intel_json =
288 "{\n" 300 "{\n"
289 " \"name\": \"gpu blacklist\",\n" 301 " \"name\": \"gpu blacklist\",\n"
290 " \"version\": \"0.1\",\n" 302 " \"version\": \"0.1\",\n"
291 " \"entries\": [\n" 303 " \"entries\": [\n"
(...skipping 11 matching lines...) Expand all
303 " \"accelerated_2d_canvas\"\n" 315 " \"accelerated_2d_canvas\"\n"
304 " ]\n" 316 " ]\n"
305 " }\n" 317 " }\n"
306 " ]\n" 318 " ]\n"
307 "}"; 319 "}";
308 Version os_version("10.6.4"); 320 Version os_version("10.6.4");
309 scoped_ptr<GpuBlacklist> blacklist(Create()); 321 scoped_ptr<GpuBlacklist> blacklist(Create());
310 322
311 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 323 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
312 linux_except_intel_json, GpuBlacklist::kAllOs)); 324 linux_except_intel_json, GpuBlacklist::kAllOs));
313 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 325 GpuFeatureType type = blacklist->MakeBlacklistDecision(
314 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); 326 GpuBlacklist::kOsMacosx, &os_version,
327 gpu_info()).blacklisted_features;
315 EXPECT_EQ(type, 0); 328 EXPECT_EQ(type, 0);
316 type = blacklist->DetermineGpuFeatureType( 329 type = blacklist->MakeBlacklistDecision(
317 GpuBlacklist::kOsWin, &os_version, gpu_info()); 330 GpuBlacklist::kOsWin, &os_version,
331 gpu_info()).blacklisted_features;
318 EXPECT_EQ(type, 0); 332 EXPECT_EQ(type, 0);
319 type = blacklist->DetermineGpuFeatureType( 333 type = blacklist->MakeBlacklistDecision(
320 GpuBlacklist::kOsLinux, &os_version, gpu_info()); 334 GpuBlacklist::kOsLinux, &os_version,
335 gpu_info()).blacklisted_features;
321 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); 336 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS);
322 } 337 }
323 338
324 TEST_F(GpuBlacklistTest, DateOnWindowsEntry) { 339 TEST_F(GpuBlacklistTest, DateOnWindowsEntry) {
325 // Blacklist all drivers earlier than 2010-01 in Windows. 340 // Blacklist all drivers earlier than 2010-01 in Windows.
326 const std::string date_windows_json = 341 const std::string date_windows_json =
327 "{\n" 342 "{\n"
328 " \"name\": \"gpu blacklist\",\n" 343 " \"name\": \"gpu blacklist\",\n"
329 " \"version\": \"0.1\",\n" 344 " \"version\": \"0.1\",\n"
330 " \"entries\": [\n" 345 " \"entries\": [\n"
(...skipping 10 matching lines...) Expand all
341 " \"accelerated_2d_canvas\"\n" 356 " \"accelerated_2d_canvas\"\n"
342 " ]\n" 357 " ]\n"
343 " }\n" 358 " }\n"
344 " ]\n" 359 " ]\n"
345 "}"; 360 "}";
346 Version os_version("10.6.4"); 361 Version os_version("10.6.4");
347 scoped_ptr<GpuBlacklist> blacklist(Create()); 362 scoped_ptr<GpuBlacklist> blacklist(Create());
348 363
349 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 364 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
350 date_windows_json, GpuBlacklist::kAllOs)); 365 date_windows_json, GpuBlacklist::kAllOs));
351 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 366 GpuFeatureType type = blacklist->MakeBlacklistDecision(
352 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); 367 GpuBlacklist::kOsMacosx, &os_version,
368 gpu_info()).blacklisted_features;
353 EXPECT_EQ(type, 0); 369 EXPECT_EQ(type, 0);
354 type = blacklist->DetermineGpuFeatureType( 370 type = blacklist->MakeBlacklistDecision(
355 GpuBlacklist::kOsLinux, &os_version, gpu_info()); 371 GpuBlacklist::kOsLinux, &os_version,
372 gpu_info()).blacklisted_features;
356 EXPECT_EQ(type, 0); 373 EXPECT_EQ(type, 0);
357 type = blacklist->DetermineGpuFeatureType( 374 type = blacklist->MakeBlacklistDecision(
358 GpuBlacklist::kOsWin, &os_version, gpu_info()); 375 GpuBlacklist::kOsWin, &os_version,
376 gpu_info()).blacklisted_features;
359 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); 377 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS);
360 } 378 }
361 379
362 TEST_F(GpuBlacklistTest, MultipleDevicesEntry) { 380 TEST_F(GpuBlacklistTest, MultipleDevicesEntry) {
363 const std::string devices_json = 381 const std::string devices_json =
364 "{\n" 382 "{\n"
365 " \"name\": \"gpu blacklist\",\n" 383 " \"name\": \"gpu blacklist\",\n"
366 " \"version\": \"0.1\",\n" 384 " \"version\": \"0.1\",\n"
367 " \"entries\": [\n" 385 " \"entries\": [\n"
368 " {\n" 386 " {\n"
369 " \"id\": 1,\n" 387 " \"id\": 1,\n"
370 " \"vendor_id\": \"0x10de\",\n" 388 " \"vendor_id\": \"0x10de\",\n"
371 " \"device_id\": [\"0x1023\", \"0x0640\"],\n" 389 " \"device_id\": [\"0x1023\", \"0x0640\"],\n"
372 " \"blacklist\": [\n" 390 " \"blacklist\": [\n"
373 " \"multisampling\"\n" 391 " \"multisampling\"\n"
374 " ]\n" 392 " ]\n"
375 " }\n" 393 " }\n"
376 " ]\n" 394 " ]\n"
377 "}"; 395 "}";
378 Version os_version("10.6.4"); 396 Version os_version("10.6.4");
379 scoped_ptr<GpuBlacklist> blacklist(Create()); 397 scoped_ptr<GpuBlacklist> blacklist(Create());
380 398
381 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 399 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
382 devices_json, GpuBlacklist::kAllOs)); 400 devices_json, GpuBlacklist::kAllOs));
383 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 401 GpuFeatureType type = blacklist->MakeBlacklistDecision(
384 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); 402 GpuBlacklist::kOsMacosx, &os_version,
403 gpu_info()).blacklisted_features;
385 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); 404 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING);
386 type = blacklist->DetermineGpuFeatureType( 405 type = blacklist->MakeBlacklistDecision(
387 GpuBlacklist::kOsWin, &os_version, gpu_info()); 406 GpuBlacklist::kOsWin, &os_version,
407 gpu_info()).blacklisted_features;
388 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); 408 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING);
389 type = blacklist->DetermineGpuFeatureType( 409 type = blacklist->MakeBlacklistDecision(
390 GpuBlacklist::kOsLinux, &os_version, gpu_info()); 410 GpuBlacklist::kOsLinux, &os_version,
411 gpu_info()).blacklisted_features;
391 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); 412 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING);
392 } 413 }
393 414
394 TEST_F(GpuBlacklistTest, ChromeOSEntry) { 415 TEST_F(GpuBlacklistTest, ChromeOSEntry) {
395 const std::string devices_json = 416 const std::string devices_json =
396 "{\n" 417 "{\n"
397 " \"name\": \"gpu blacklist\",\n" 418 " \"name\": \"gpu blacklist\",\n"
398 " \"version\": \"0.1\",\n" 419 " \"version\": \"0.1\",\n"
399 " \"entries\": [\n" 420 " \"entries\": [\n"
400 " {\n" 421 " {\n"
401 " \"id\": 1,\n" 422 " \"id\": 1,\n"
402 " \"os\": {\n" 423 " \"os\": {\n"
403 " \"type\": \"chromeos\"\n" 424 " \"type\": \"chromeos\"\n"
404 " },\n" 425 " },\n"
405 " \"blacklist\": [\n" 426 " \"blacklist\": [\n"
406 " \"webgl\"\n" 427 " \"webgl\"\n"
407 " ]\n" 428 " ]\n"
408 " }\n" 429 " }\n"
409 " ]\n" 430 " ]\n"
410 "}"; 431 "}";
411 Version os_version("10.6.4"); 432 Version os_version("10.6.4");
412 scoped_ptr<GpuBlacklist> blacklist(Create()); 433 scoped_ptr<GpuBlacklist> blacklist(Create());
413 434
414 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 435 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
415 devices_json, GpuBlacklist::kAllOs)); 436 devices_json, GpuBlacklist::kAllOs));
416 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 437 GpuFeatureType type = blacklist->MakeBlacklistDecision(
417 GpuBlacklist::kOsChromeOS, &os_version, gpu_info()); 438 GpuBlacklist::kOsChromeOS, &os_version,
439 gpu_info()).blacklisted_features;
418 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 440 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
419 type = blacklist->DetermineGpuFeatureType( 441 type = blacklist->MakeBlacklistDecision(
420 GpuBlacklist::kOsLinux, &os_version, gpu_info()); 442 GpuBlacklist::kOsLinux, &os_version,
443 gpu_info()).blacklisted_features;
421 EXPECT_EQ(type, 0); 444 EXPECT_EQ(type, 0);
422 } 445 }
423 446
424 TEST_F(GpuBlacklistTest, ChromeVersionEntry) { 447 TEST_F(GpuBlacklistTest, ChromeVersionEntry) {
425 const std::string browser_version_json = 448 const std::string browser_version_json =
426 "{\n" 449 "{\n"
427 " \"name\": \"gpu blacklist\",\n" 450 " \"name\": \"gpu blacklist\",\n"
428 " \"version\": \"0.1\",\n" 451 " \"version\": \"0.1\",\n"
429 " \"entries\": [\n" 452 " \"entries\": [\n"
430 " {\n" 453 " {\n"
431 " \"id\": 1,\n" 454 " \"id\": 1,\n"
432 " \"browser_version\": {\n" 455 " \"browser_version\": {\n"
433 " \"op\": \">=\",\n" 456 " \"op\": \">=\",\n"
434 " \"number\": \"10\"\n" 457 " \"number\": \"10\"\n"
435 " },\n" 458 " },\n"
436 " \"blacklist\": [\n" 459 " \"blacklist\": [\n"
437 " \"webgl\"\n" 460 " \"webgl\"\n"
438 " ]\n" 461 " ]\n"
439 " }\n" 462 " }\n"
440 " ]\n" 463 " ]\n"
441 "}"; 464 "}";
442 Version os_version("10.6.4"); 465 Version os_version("10.6.4");
443 466
444 scoped_ptr<GpuBlacklist> blacklist9(Create()); 467 scoped_ptr<GpuBlacklist> blacklist9(Create());
445 EXPECT_TRUE(blacklist9->LoadGpuBlacklist( 468 EXPECT_TRUE(blacklist9->LoadGpuBlacklist(
446 "9.0", browser_version_json, GpuBlacklist::kAllOs)); 469 "9.0", browser_version_json, GpuBlacklist::kAllOs));
447 GpuFeatureType type = blacklist9->DetermineGpuFeatureType( 470 GpuFeatureType type = blacklist9->MakeBlacklistDecision(
448 GpuBlacklist::kOsWin, &os_version, gpu_info()); 471 GpuBlacklist::kOsWin, &os_version,
472 gpu_info()).blacklisted_features;
449 EXPECT_EQ(type, 0); 473 EXPECT_EQ(type, 0);
450 474
451 scoped_ptr<GpuBlacklist> blacklist10(Create()); 475 scoped_ptr<GpuBlacklist> blacklist10(Create());
452 EXPECT_TRUE(blacklist10->LoadGpuBlacklist( 476 EXPECT_TRUE(blacklist10->LoadGpuBlacklist(
453 "10.0", browser_version_json, GpuBlacklist::kAllOs)); 477 "10.0", browser_version_json, GpuBlacklist::kAllOs));
454 type = blacklist10->DetermineGpuFeatureType( 478 type = blacklist10->MakeBlacklistDecision(
455 GpuBlacklist::kOsWin, &os_version, gpu_info()); 479 GpuBlacklist::kOsWin, &os_version,
480 gpu_info()).blacklisted_features;
456 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 481 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
457 } 482 }
458 483
459 TEST_F(GpuBlacklistTest, MalformedVendor) { 484 TEST_F(GpuBlacklistTest, MalformedVendor) {
460 // vendor_id is defined as list instead of string. 485 // vendor_id is defined as list instead of string.
461 const std::string malformed_vendor_json = 486 const std::string malformed_vendor_json =
462 "{\n" 487 "{\n"
463 " \"name\": \"gpu blacklist\",\n" 488 " \"name\": \"gpu blacklist\",\n"
464 " \"version\": \"0.1\",\n" 489 " \"version\": \"0.1\",\n"
465 " \"entries\": [\n" 490 " \"entries\": [\n"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 " }\n" 524 " }\n"
500 " ]\n" 525 " ]\n"
501 "}"; 526 "}";
502 Version os_version("10.6.4"); 527 Version os_version("10.6.4");
503 scoped_ptr<GpuBlacklist> blacklist(Create()); 528 scoped_ptr<GpuBlacklist> blacklist(Create());
504 529
505 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 530 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
506 unknown_field_json, GpuBlacklist::kAllOs)); 531 unknown_field_json, GpuBlacklist::kAllOs));
507 EXPECT_EQ(1u, blacklist->num_entries()); 532 EXPECT_EQ(1u, blacklist->num_entries());
508 EXPECT_TRUE(blacklist->contains_unknown_fields()); 533 EXPECT_TRUE(blacklist->contains_unknown_fields());
509 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 534 GpuFeatureType type = blacklist->MakeBlacklistDecision(
510 GpuBlacklist::kOsWin, &os_version, gpu_info()); 535 GpuBlacklist::kOsWin, &os_version,
536 gpu_info()).blacklisted_features;
511 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 537 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
512 } 538 }
513 539
514 TEST_F(GpuBlacklistTest, UnknownExceptionField) { 540 TEST_F(GpuBlacklistTest, UnknownExceptionField) {
515 const std::string unknown_exception_field_json = 541 const std::string unknown_exception_field_json =
516 "{\n" 542 "{\n"
517 " \"name\": \"gpu blacklist\",\n" 543 " \"name\": \"gpu blacklist\",\n"
518 " \"version\": \"0.1\",\n" 544 " \"version\": \"0.1\",\n"
519 " \"entries\": [\n" 545 " \"entries\": [\n"
520 " {\n" 546 " {\n"
(...skipping 22 matching lines...) Expand all
543 " }\n" 569 " }\n"
544 " ]\n" 570 " ]\n"
545 "}"; 571 "}";
546 Version os_version("10.6.4"); 572 Version os_version("10.6.4");
547 scoped_ptr<GpuBlacklist> blacklist(Create()); 573 scoped_ptr<GpuBlacklist> blacklist(Create());
548 574
549 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 575 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
550 unknown_exception_field_json, GpuBlacklist::kAllOs)); 576 unknown_exception_field_json, GpuBlacklist::kAllOs));
551 EXPECT_EQ(1u, blacklist->num_entries()); 577 EXPECT_EQ(1u, blacklist->num_entries());
552 EXPECT_TRUE(blacklist->contains_unknown_fields()); 578 EXPECT_TRUE(blacklist->contains_unknown_fields());
553 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 579 GpuFeatureType type = blacklist->MakeBlacklistDecision(
554 GpuBlacklist::kOsWin, &os_version, gpu_info()); 580 GpuBlacklist::kOsWin, &os_version,
581 gpu_info()).blacklisted_features;
555 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 582 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
556 } 583 }
557 584
558 TEST_F(GpuBlacklistTest, UnknownFeature) { 585 TEST_F(GpuBlacklistTest, UnknownFeature) {
559 const std::string unknown_feature_json = 586 const std::string unknown_feature_json =
560 "{\n" 587 "{\n"
561 " \"name\": \"gpu blacklist\",\n" 588 " \"name\": \"gpu blacklist\",\n"
562 " \"version\": \"0.1\",\n" 589 " \"version\": \"0.1\",\n"
563 " \"entries\": [\n" 590 " \"entries\": [\n"
564 " {\n" 591 " {\n"
565 " \"id\": 1,\n" 592 " \"id\": 1,\n"
566 " \"blacklist\": [\n" 593 " \"blacklist\": [\n"
567 " \"accelerated_something\",\n" 594 " \"accelerated_something\",\n"
568 " \"webgl\"\n" 595 " \"webgl\"\n"
569 " ]\n" 596 " ]\n"
570 " }\n" 597 " }\n"
571 " ]\n" 598 " ]\n"
572 "}"; 599 "}";
573 Version os_version("10.6.4"); 600 Version os_version("10.6.4");
574 scoped_ptr<GpuBlacklist> blacklist(Create()); 601 scoped_ptr<GpuBlacklist> blacklist(Create());
575 602
576 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 603 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
577 unknown_feature_json, GpuBlacklist::kAllOs)); 604 unknown_feature_json, GpuBlacklist::kAllOs));
578 EXPECT_EQ(1u, blacklist->num_entries()); 605 EXPECT_EQ(1u, blacklist->num_entries());
579 EXPECT_TRUE(blacklist->contains_unknown_fields()); 606 EXPECT_TRUE(blacklist->contains_unknown_fields());
580 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 607 GpuFeatureType type = blacklist->MakeBlacklistDecision(
581 GpuBlacklist::kOsWin, &os_version, gpu_info()); 608 GpuBlacklist::kOsWin, &os_version,
609 gpu_info()).blacklisted_features;
582 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 610 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
583 } 611 }
584 612
585 TEST_F(GpuBlacklistTest, GlVendor) { 613 TEST_F(GpuBlacklistTest, GlVendor) {
586 const std::string gl_vendor_json = 614 const std::string gl_vendor_json =
587 "{\n" 615 "{\n"
588 " \"name\": \"gpu blacklist\",\n" 616 " \"name\": \"gpu blacklist\",\n"
589 " \"version\": \"0.1\",\n" 617 " \"version\": \"0.1\",\n"
590 " \"entries\": [\n" 618 " \"entries\": [\n"
591 " {\n" 619 " {\n"
592 " \"id\": 1,\n" 620 " \"id\": 1,\n"
593 " \"gl_vendor\": {\n" 621 " \"gl_vendor\": {\n"
594 " \"op\": \"beginwith\",\n" 622 " \"op\": \"beginwith\",\n"
595 " \"value\": \"NVIDIA\"\n" 623 " \"value\": \"NVIDIA\"\n"
596 " },\n" 624 " },\n"
597 " \"blacklist\": [\n" 625 " \"blacklist\": [\n"
598 " \"webgl\"\n" 626 " \"webgl\"\n"
599 " ]\n" 627 " ]\n"
600 " }\n" 628 " }\n"
601 " ]\n" 629 " ]\n"
602 "}"; 630 "}";
603 Version os_version("10.6.4"); 631 Version os_version("10.6.4");
604 632
605 scoped_ptr<GpuBlacklist> blacklist(Create()); 633 scoped_ptr<GpuBlacklist> blacklist(Create());
606 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 634 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
607 gl_vendor_json, GpuBlacklist::kAllOs)); 635 gl_vendor_json, GpuBlacklist::kAllOs));
608 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 636 GpuFeatureType type = blacklist->MakeBlacklistDecision(
609 GpuBlacklist::kOsWin, &os_version, gpu_info()); 637 GpuBlacklist::kOsWin, &os_version,
638 gpu_info()).blacklisted_features;
610 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 639 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
611 } 640 }
612 641
613 TEST_F(GpuBlacklistTest, GlRenderer) { 642 TEST_F(GpuBlacklistTest, GlRenderer) {
614 const std::string gl_renderer_json = 643 const std::string gl_renderer_json =
615 "{\n" 644 "{\n"
616 " \"name\": \"gpu blacklist\",\n" 645 " \"name\": \"gpu blacklist\",\n"
617 " \"version\": \"0.1\",\n" 646 " \"version\": \"0.1\",\n"
618 " \"entries\": [\n" 647 " \"entries\": [\n"
619 " {\n" 648 " {\n"
620 " \"id\": 1,\n" 649 " \"id\": 1,\n"
621 " \"gl_renderer\": {\n" 650 " \"gl_renderer\": {\n"
622 " \"op\": \"contains\",\n" 651 " \"op\": \"contains\",\n"
623 " \"value\": \"GeForce\"\n" 652 " \"value\": \"GeForce\"\n"
624 " },\n" 653 " },\n"
625 " \"blacklist\": [\n" 654 " \"blacklist\": [\n"
626 " \"webgl\"\n" 655 " \"webgl\"\n"
627 " ]\n" 656 " ]\n"
628 " }\n" 657 " }\n"
629 " ]\n" 658 " ]\n"
630 "}"; 659 "}";
631 Version os_version("10.6.4"); 660 Version os_version("10.6.4");
632 661
633 scoped_ptr<GpuBlacklist> blacklist(Create()); 662 scoped_ptr<GpuBlacklist> blacklist(Create());
634 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 663 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
635 gl_renderer_json, GpuBlacklist::kAllOs)); 664 gl_renderer_json, GpuBlacklist::kAllOs));
636 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 665 GpuFeatureType type = blacklist->MakeBlacklistDecision(
637 GpuBlacklist::kOsWin, &os_version, gpu_info()); 666 GpuBlacklist::kOsWin, &os_version,
667 gpu_info()).blacklisted_features;
638 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 668 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
639 } 669 }
640 670
641 TEST_F(GpuBlacklistTest, PerfGraphics) { 671 TEST_F(GpuBlacklistTest, PerfGraphics) {
642 const std::string json = 672 const std::string json =
643 "{\n" 673 "{\n"
644 " \"name\": \"gpu blacklist\",\n" 674 " \"name\": \"gpu blacklist\",\n"
645 " \"version\": \"0.1\",\n" 675 " \"version\": \"0.1\",\n"
646 " \"entries\": [\n" 676 " \"entries\": [\n"
647 " {\n" 677 " {\n"
648 " \"id\": 1,\n" 678 " \"id\": 1,\n"
649 " \"perf_graphics\": {\n" 679 " \"perf_graphics\": {\n"
650 " \"op\": \"<\",\n" 680 " \"op\": \"<\",\n"
651 " \"value\": \"6.0\"\n" 681 " \"value\": \"6.0\"\n"
652 " },\n" 682 " },\n"
653 " \"blacklist\": [\n" 683 " \"blacklist\": [\n"
654 " \"webgl\"\n" 684 " \"webgl\"\n"
655 " ]\n" 685 " ]\n"
656 " }\n" 686 " }\n"
657 " ]\n" 687 " ]\n"
658 "}"; 688 "}";
659 Version os_version("10.6.4"); 689 Version os_version("10.6.4");
660 690
661 scoped_ptr<GpuBlacklist> blacklist(Create()); 691 scoped_ptr<GpuBlacklist> blacklist(Create());
662 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); 692 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs));
663 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 693 GpuFeatureType type = blacklist->MakeBlacklistDecision(
664 GpuBlacklist::kOsWin, &os_version, gpu_info()); 694 GpuBlacklist::kOsWin, &os_version,
695 gpu_info()).blacklisted_features;
665 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 696 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
666 } 697 }
667 698
668 TEST_F(GpuBlacklistTest, PerfGaming) { 699 TEST_F(GpuBlacklistTest, PerfGaming) {
669 const std::string json = 700 const std::string json =
670 "{\n" 701 "{\n"
671 " \"name\": \"gpu blacklist\",\n" 702 " \"name\": \"gpu blacklist\",\n"
672 " \"version\": \"0.1\",\n" 703 " \"version\": \"0.1\",\n"
673 " \"entries\": [\n" 704 " \"entries\": [\n"
674 " {\n" 705 " {\n"
675 " \"id\": 1,\n" 706 " \"id\": 1,\n"
676 " \"perf_gaming\": {\n" 707 " \"perf_gaming\": {\n"
677 " \"op\": \"<=\",\n" 708 " \"op\": \"<=\",\n"
678 " \"value\": \"4.0\"\n" 709 " \"value\": \"4.0\"\n"
679 " },\n" 710 " },\n"
680 " \"blacklist\": [\n" 711 " \"blacklist\": [\n"
681 " \"webgl\"\n" 712 " \"webgl\"\n"
682 " ]\n" 713 " ]\n"
683 " }\n" 714 " }\n"
684 " ]\n" 715 " ]\n"
685 "}"; 716 "}";
686 Version os_version("10.6.4"); 717 Version os_version("10.6.4");
687 718
688 scoped_ptr<GpuBlacklist> blacklist(Create()); 719 scoped_ptr<GpuBlacklist> blacklist(Create());
689 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); 720 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs));
690 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 721 GpuFeatureType type = blacklist->MakeBlacklistDecision(
691 GpuBlacklist::kOsWin, &os_version, gpu_info()); 722 GpuBlacklist::kOsWin, &os_version,
723 gpu_info()).blacklisted_features;
692 EXPECT_EQ(type, 0); 724 EXPECT_EQ(type, 0);
693 } 725 }
694 726
695 TEST_F(GpuBlacklistTest, PerfOverall) { 727 TEST_F(GpuBlacklistTest, PerfOverall) {
696 const std::string json = 728 const std::string json =
697 "{\n" 729 "{\n"
698 " \"name\": \"gpu blacklist\",\n" 730 " \"name\": \"gpu blacklist\",\n"
699 " \"version\": \"0.1\",\n" 731 " \"version\": \"0.1\",\n"
700 " \"entries\": [\n" 732 " \"entries\": [\n"
701 " {\n" 733 " {\n"
702 " \"id\": 1,\n" 734 " \"id\": 1,\n"
703 " \"perf_overall\": {\n" 735 " \"perf_overall\": {\n"
704 " \"op\": \"between\",\n" 736 " \"op\": \"between\",\n"
705 " \"value\": \"1.0\",\n" 737 " \"value\": \"1.0\",\n"
706 " \"value2\": \"9.0\"\n" 738 " \"value2\": \"9.0\"\n"
707 " },\n" 739 " },\n"
708 " \"blacklist\": [\n" 740 " \"blacklist\": [\n"
709 " \"webgl\"\n" 741 " \"webgl\"\n"
710 " ]\n" 742 " ]\n"
711 " }\n" 743 " }\n"
712 " ]\n" 744 " ]\n"
713 "}"; 745 "}";
714 Version os_version("10.6.4"); 746 Version os_version("10.6.4");
715 747
716 scoped_ptr<GpuBlacklist> blacklist(Create()); 748 scoped_ptr<GpuBlacklist> blacklist(Create());
717 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); 749 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs));
718 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 750 GpuFeatureType type = blacklist->MakeBlacklistDecision(
719 GpuBlacklist::kOsWin, &os_version, gpu_info()); 751 GpuBlacklist::kOsWin, &os_version,
752 gpu_info()).blacklisted_features;
720 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 753 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
721 } 754 }
722 755
723 TEST_F(GpuBlacklistTest, DisabledEntry) { 756 TEST_F(GpuBlacklistTest, DisabledEntry) {
724 const std::string disabled_json = 757 const std::string disabled_json =
725 "{\n" 758 "{\n"
726 " \"name\": \"gpu blacklist\",\n" 759 " \"name\": \"gpu blacklist\",\n"
727 " \"version\": \"0.1\",\n" 760 " \"version\": \"0.1\",\n"
728 " \"entries\": [\n" 761 " \"entries\": [\n"
729 " {\n" 762 " {\n"
730 " \"id\": 1,\n" 763 " \"id\": 1,\n"
731 " \"disabled\": true,\n" 764 " \"disabled\": true,\n"
732 " \"blacklist\": [\n" 765 " \"blacklist\": [\n"
733 " \"webgl\"\n" 766 " \"webgl\"\n"
734 " ]\n" 767 " ]\n"
735 " }\n" 768 " }\n"
736 " ]\n" 769 " ]\n"
737 "}"; 770 "}";
738 Version os_version("10.6.4"); 771 Version os_version("10.6.4");
739 772
740 scoped_ptr<GpuBlacklist> blacklist(Create()); 773 scoped_ptr<GpuBlacklist> blacklist(Create());
741 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 774 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
742 disabled_json, GpuBlacklist::kAllOs)); 775 disabled_json, GpuBlacklist::kAllOs));
743 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 776 GpuFeatureType type = blacklist->MakeBlacklistDecision(
744 GpuBlacklist::kOsWin, &os_version, gpu_info()); 777 GpuBlacklist::kOsWin, &os_version,
778 gpu_info()).blacklisted_features;
745 EXPECT_EQ(type, 0); 779 EXPECT_EQ(type, 0);
746 std::vector<uint32> flag_entries; 780 std::vector<uint32> flag_entries;
747 bool disabled = false; 781 bool disabled = false;
748 blacklist->GetGpuFeatureTypeEntries( 782 blacklist->GetDecisionEntries(flag_entries, disabled);
749 content::GPU_FEATURE_TYPE_ALL, flag_entries, disabled);
750 EXPECT_EQ(flag_entries.size(), 0u); 783 EXPECT_EQ(flag_entries.size(), 0u);
751 disabled = true; 784 disabled = true;
752 blacklist->GetGpuFeatureTypeEntries( 785 blacklist->GetDecisionEntries(flag_entries, disabled);
753 content::GPU_FEATURE_TYPE_ALL, flag_entries, disabled);
754 EXPECT_EQ(flag_entries.size(), 1u); 786 EXPECT_EQ(flag_entries.size(), 1u);
755 } 787 }
756 788
757 TEST_F(GpuBlacklistTest, Optimus) { 789 TEST_F(GpuBlacklistTest, Optimus) {
758 const std::string optimus_json = 790 const std::string optimus_json =
759 "{\n" 791 "{\n"
760 " \"name\": \"gpu blacklist\",\n" 792 " \"name\": \"gpu blacklist\",\n"
761 " \"version\": \"0.1\",\n" 793 " \"version\": \"0.1\",\n"
762 " \"entries\": [\n" 794 " \"entries\": [\n"
763 " {\n" 795 " {\n"
764 " \"id\": 1,\n" 796 " \"id\": 1,\n"
765 " \"os\": {\n" 797 " \"os\": {\n"
766 " \"type\": \"linux\"\n" 798 " \"type\": \"linux\"\n"
767 " },\n" 799 " },\n"
768 " \"multi_gpu_style\": \"optimus\",\n" 800 " \"multi_gpu_style\": \"optimus\",\n"
769 " \"blacklist\": [\n" 801 " \"blacklist\": [\n"
770 " \"webgl\"\n" 802 " \"webgl\"\n"
771 " ]\n" 803 " ]\n"
772 " }\n" 804 " }\n"
773 " ]\n" 805 " ]\n"
774 "}"; 806 "}";
775 Version os_version("10.6.4"); 807 Version os_version("10.6.4");
776 808
777 content::GPUInfo gpu_info; 809 content::GPUInfo gpu_info;
778 gpu_info.optimus = true; 810 gpu_info.optimus = true;
779 811
780 scoped_ptr<GpuBlacklist> blacklist(Create()); 812 scoped_ptr<GpuBlacklist> blacklist(Create());
781 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 813 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
782 optimus_json, GpuBlacklist::kAllOs)); 814 optimus_json, GpuBlacklist::kAllOs));
783 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 815 GpuFeatureType type = blacklist->MakeBlacklistDecision(
784 GpuBlacklist::kOsLinux, &os_version, gpu_info); 816 GpuBlacklist::kOsLinux, &os_version,
817 gpu_info).blacklisted_features;
785 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 818 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
786 } 819 }
787 820
788 TEST_F(GpuBlacklistTest, AMDSwitchable) { 821 TEST_F(GpuBlacklistTest, AMDSwitchable) {
789 const std::string amd_switchable_json = 822 const std::string amd_switchable_json =
790 "{\n" 823 "{\n"
791 " \"name\": \"gpu blacklist\",\n" 824 " \"name\": \"gpu blacklist\",\n"
792 " \"version\": \"0.1\",\n" 825 " \"version\": \"0.1\",\n"
793 " \"entries\": [\n" 826 " \"entries\": [\n"
794 " {\n" 827 " {\n"
795 " \"id\": 1,\n" 828 " \"id\": 1,\n"
796 " \"os\": {\n" 829 " \"os\": {\n"
797 " \"type\": \"macosx\"\n" 830 " \"type\": \"macosx\"\n"
798 " },\n" 831 " },\n"
799 " \"multi_gpu_style\": \"amd_switchable\",\n" 832 " \"multi_gpu_style\": \"amd_switchable\",\n"
800 " \"blacklist\": [\n" 833 " \"blacklist\": [\n"
801 " \"webgl\"\n" 834 " \"webgl\"\n"
802 " ]\n" 835 " ]\n"
803 " }\n" 836 " }\n"
804 " ]\n" 837 " ]\n"
805 "}"; 838 "}";
806 Version os_version("10.6.4"); 839 Version os_version("10.6.4");
807 840
808 content::GPUInfo gpu_info; 841 content::GPUInfo gpu_info;
809 gpu_info.amd_switchable = true; 842 gpu_info.amd_switchable = true;
810 843
811 scoped_ptr<GpuBlacklist> blacklist(Create()); 844 scoped_ptr<GpuBlacklist> blacklist(Create());
812 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 845 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
813 amd_switchable_json, GpuBlacklist::kAllOs)); 846 amd_switchable_json, GpuBlacklist::kAllOs));
814 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 847 GpuFeatureType type = blacklist->MakeBlacklistDecision(
815 GpuBlacklist::kOsMacosx, &os_version, gpu_info); 848 GpuBlacklist::kOsMacosx, &os_version,
849 gpu_info).blacklisted_features;
816 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 850 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
817 } 851 }
818 852
819 TEST_F(GpuBlacklistTest, LexicalDriverVersion) { 853 TEST_F(GpuBlacklistTest, LexicalDriverVersion) {
820 const std::string lexical_json = 854 const std::string lexical_json =
821 "{\n" 855 "{\n"
822 " \"name\": \"gpu blacklist\",\n" 856 " \"name\": \"gpu blacklist\",\n"
823 " \"version\": \"0.1\",\n" 857 " \"version\": \"0.1\",\n"
824 " \"entries\": [\n" 858 " \"entries\": [\n"
825 " {\n" 859 " {\n"
(...skipping 16 matching lines...) Expand all
842 Version os_version("10.6.4"); 876 Version os_version("10.6.4");
843 877
844 content::GPUInfo gpu_info; 878 content::GPUInfo gpu_info;
845 gpu_info.gpu.vendor_id = 0x1002; 879 gpu_info.gpu.vendor_id = 0x1002;
846 880
847 scoped_ptr<GpuBlacklist> blacklist(Create()); 881 scoped_ptr<GpuBlacklist> blacklist(Create());
848 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 882 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
849 lexical_json, GpuBlacklist::kAllOs)); 883 lexical_json, GpuBlacklist::kAllOs));
850 884
851 gpu_info.driver_version = "8.109"; 885 gpu_info.driver_version = "8.109";
852 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 886 GpuFeatureType type = blacklist->MakeBlacklistDecision(
853 GpuBlacklist::kOsLinux, &os_version, gpu_info); 887 GpuBlacklist::kOsLinux, &os_version,
888 gpu_info).blacklisted_features;
854 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 889 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
855 890
856 gpu_info.driver_version = "8.2"; 891 gpu_info.driver_version = "8.2";
857 type = blacklist->DetermineGpuFeatureType( 892 type = blacklist->MakeBlacklistDecision(
858 GpuBlacklist::kOsLinux, &os_version, gpu_info); 893 GpuBlacklist::kOsLinux, &os_version,
894 gpu_info).blacklisted_features;
859 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 895 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
860 896
861 gpu_info.driver_version = "8.21"; 897 gpu_info.driver_version = "8.21";
862 type = blacklist->DetermineGpuFeatureType( 898 type = blacklist->MakeBlacklistDecision(
863 GpuBlacklist::kOsLinux, &os_version, gpu_info); 899 GpuBlacklist::kOsLinux, &os_version,
900 gpu_info).blacklisted_features;
864 EXPECT_EQ(type, 0); 901 EXPECT_EQ(type, 0);
865 902
866 gpu_info.driver_version = "8.2010"; 903 gpu_info.driver_version = "8.2010";
867 type = blacklist->DetermineGpuFeatureType( 904 type = blacklist->MakeBlacklistDecision(
868 GpuBlacklist::kOsLinux, &os_version, gpu_info); 905 GpuBlacklist::kOsLinux, &os_version,
906 gpu_info).blacklisted_features;
869 EXPECT_EQ(type, 0); 907 EXPECT_EQ(type, 0);
870 } 908 }
871 909
872 TEST_F(GpuBlacklistTest, MultipleGPUsAny) { 910 TEST_F(GpuBlacklistTest, MultipleGPUsAny) {
873 const std::string multi_gpu_json = 911 const std::string multi_gpu_json =
874 "{\n" 912 "{\n"
875 " \"name\": \"gpu blacklist\",\n" 913 " \"name\": \"gpu blacklist\",\n"
876 " \"version\": \"0.1\",\n" 914 " \"version\": \"0.1\",\n"
877 " \"entries\": [\n" 915 " \"entries\": [\n"
878 " {\n" 916 " {\n"
(...skipping 12 matching lines...) Expand all
891 "}"; 929 "}";
892 Version os_version("10.6.4"); 930 Version os_version("10.6.4");
893 931
894 content::GPUInfo gpu_info; 932 content::GPUInfo gpu_info;
895 gpu_info.gpu.vendor_id = 0x10de; 933 gpu_info.gpu.vendor_id = 0x10de;
896 gpu_info.gpu.device_id = 0x0fd5; 934 gpu_info.gpu.device_id = 0x0fd5;
897 935
898 scoped_ptr<GpuBlacklist> blacklist(Create()); 936 scoped_ptr<GpuBlacklist> blacklist(Create());
899 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 937 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
900 multi_gpu_json, GpuBlacklist::kAllOs)); 938 multi_gpu_json, GpuBlacklist::kAllOs));
901 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 939 GpuFeatureType type = blacklist->MakeBlacklistDecision(
902 GpuBlacklist::kOsMacosx, &os_version, gpu_info); 940 GpuBlacklist::kOsMacosx, &os_version,
941 gpu_info).blacklisted_features;
903 EXPECT_EQ(type, 0); 942 EXPECT_EQ(type, 0);
904 943
905 content::GPUInfo::GPUDevice gpu_device; 944 content::GPUInfo::GPUDevice gpu_device;
906 gpu_device.vendor_id = 0x8086; 945 gpu_device.vendor_id = 0x8086;
907 gpu_device.device_id = 0x0166; 946 gpu_device.device_id = 0x0166;
908 gpu_info.secondary_gpus.push_back(gpu_device); 947 gpu_info.secondary_gpus.push_back(gpu_device);
909 type = blacklist->DetermineGpuFeatureType( 948 type = blacklist->MakeBlacklistDecision(
910 GpuBlacklist::kOsMacosx, &os_version, gpu_info); 949 GpuBlacklist::kOsMacosx, &os_version,
950 gpu_info).blacklisted_features;
911 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 951 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
912 } 952 }
913 953
914 TEST_F(GpuBlacklistTest, MultipleGPUsSecondary) { 954 TEST_F(GpuBlacklistTest, MultipleGPUsSecondary) {
915 const std::string multi_gpu_json = 955 const std::string multi_gpu_json =
916 "{\n" 956 "{\n"
917 " \"name\": \"gpu blacklist\",\n" 957 " \"name\": \"gpu blacklist\",\n"
918 " \"version\": \"0.1\",\n" 958 " \"version\": \"0.1\",\n"
919 " \"entries\": [\n" 959 " \"entries\": [\n"
920 " {\n" 960 " {\n"
(...skipping 12 matching lines...) Expand all
933 "}"; 973 "}";
934 Version os_version("10.6.4"); 974 Version os_version("10.6.4");
935 975
936 content::GPUInfo gpu_info; 976 content::GPUInfo gpu_info;
937 gpu_info.gpu.vendor_id = 0x10de; 977 gpu_info.gpu.vendor_id = 0x10de;
938 gpu_info.gpu.device_id = 0x0fd5; 978 gpu_info.gpu.device_id = 0x0fd5;
939 979
940 scoped_ptr<GpuBlacklist> blacklist(Create()); 980 scoped_ptr<GpuBlacklist> blacklist(Create());
941 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 981 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
942 multi_gpu_json, GpuBlacklist::kAllOs)); 982 multi_gpu_json, GpuBlacklist::kAllOs));
943 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 983 GpuFeatureType type = blacklist->MakeBlacklistDecision(
944 GpuBlacklist::kOsMacosx, &os_version, gpu_info); 984 GpuBlacklist::kOsMacosx, &os_version,
985 gpu_info).blacklisted_features;
945 EXPECT_EQ(type, 0); 986 EXPECT_EQ(type, 0);
946 987
947 content::GPUInfo::GPUDevice gpu_device; 988 content::GPUInfo::GPUDevice gpu_device;
948 gpu_device.vendor_id = 0x8086; 989 gpu_device.vendor_id = 0x8086;
949 gpu_device.device_id = 0x0166; 990 gpu_device.device_id = 0x0166;
950 gpu_info.secondary_gpus.push_back(gpu_device); 991 gpu_info.secondary_gpus.push_back(gpu_device);
951 type = blacklist->DetermineGpuFeatureType( 992 type = blacklist->MakeBlacklistDecision(
952 GpuBlacklist::kOsMacosx, &os_version, gpu_info); 993 GpuBlacklist::kOsMacosx, &os_version,
994 gpu_info).blacklisted_features;
953 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); 995 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
954 } 996 }
955 997
998 TEST_F(GpuBlacklistTest, GpuSwitching) {
999 const std::string gpu_switching_json =
1000 "{\n"
1001 " \"name\": \"gpu blacklist\",\n"
1002 " \"version\": \"0.1\",\n"
1003 " \"entries\": [\n"
1004 " {\n"
1005 " \"id\": 1,\n"
1006 " \"os\": {\n"
1007 " \"type\": \"macosx\"\n"
1008 " },\n"
1009 " \"gpu_switching\": \"force_discrete\"\n"
1010 " },\n"
1011 " {\n"
1012 " \"id\": 2,\n"
1013 " \"os\": {\n"
1014 " \"type\": \"win\"\n"
1015 " },\n"
1016 " \"gpu_switching\": \"force_integrated\"\n"
1017 " },\n"
1018 " {\n"
1019 " \"id\": 3,\n"
1020 " \"os\": {\n"
1021 " \"type\": \"linux\"\n"
1022 " },\n"
1023 " \"gpu_switching\": \"automatic\"\n"
1024 " }\n"
1025 " ]\n"
1026 "}";
1027 Version os_version("10.6.4");
1028
1029 scoped_ptr<GpuBlacklist> blacklist(Create());
1030 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
1031 gpu_switching_json, GpuBlacklist::kAllOs));
1032 GpuSwitchingOption switching = blacklist->MakeBlacklistDecision(
1033 GpuBlacklist::kOsMacosx, &os_version,
1034 gpu_info()).gpu_switching;
1035 EXPECT_EQ(switching, content::GPU_SWITCHING_FORCE_DISCRETE);
1036 std::vector<uint32> entries;
1037 bool disabled = false;
1038 blacklist->GetDecisionEntries(entries, disabled);
1039 EXPECT_EQ(entries.size(), 1u);
1040 EXPECT_EQ(entries[0], 1u);
1041
1042 blacklist.reset(Create());
1043 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
1044 gpu_switching_json, GpuBlacklist::kAllOs));
1045 switching = blacklist->MakeBlacklistDecision(
1046 GpuBlacklist::kOsWin, &os_version,
1047 gpu_info()).gpu_switching;
1048 EXPECT_EQ(switching, content::GPU_SWITCHING_FORCE_INTEGRATED);
1049 blacklist->GetDecisionEntries(entries, disabled);
1050 EXPECT_EQ(entries.size(), 1u);
1051 EXPECT_EQ(entries[0], 2u);
1052
1053 blacklist.reset(Create());
1054 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
1055 gpu_switching_json, GpuBlacklist::kAllOs));
1056 switching = blacklist->MakeBlacklistDecision(
1057 GpuBlacklist::kOsLinux, &os_version,
1058 gpu_info()).gpu_switching;
1059 EXPECT_EQ(switching, content::GPU_SWITCHING_AUTOMATIC);
1060 blacklist->GetDecisionEntries(entries, disabled);
1061 EXPECT_EQ(entries.size(), 1u);
1062 EXPECT_EQ(entries[0], 3u);
1063 }
1064
956 TEST_F(GpuBlacklistTest, VideoDecode) { 1065 TEST_F(GpuBlacklistTest, VideoDecode) {
957 const std::string video_decode_json = 1066 const std::string video_decode_json =
958 "{\n" 1067 "{\n"
959 " \"name\": \"gpu blacklist\",\n" 1068 " \"name\": \"gpu blacklist\",\n"
960 " \"version\": \"0.1\",\n" 1069 " \"version\": \"0.1\",\n"
961 " \"entries\": [\n" 1070 " \"entries\": [\n"
962 " {\n" 1071 " {\n"
963 " \"id\": 1,\n" 1072 " \"id\": 1,\n"
964 " \"os\": {\n" 1073 " \"os\": {\n"
965 " \"type\": \"macosx\"\n" 1074 " \"type\": \"macosx\"\n"
966 " },\n" 1075 " },\n"
967 " \"vendor_id\": \"0x10de\",\n" 1076 " \"vendor_id\": \"0x10de\",\n"
968 " \"device_id\": [\"0x0640\"],\n" 1077 " \"device_id\": [\"0x0640\"],\n"
969 " \"blacklist\": [\n" 1078 " \"blacklist\": [\n"
970 " \"accelerated_video_decode\"\n" 1079 " \"accelerated_video_decode\"\n"
971 " ]\n" 1080 " ]\n"
972 " }\n" 1081 " }\n"
973 " ]\n" 1082 " ]\n"
974 "}"; 1083 "}";
975 Version os_version("10.6.4"); 1084 Version os_version("10.6.4");
976 1085
977 scoped_ptr<GpuBlacklist> blacklist(Create()); 1086 scoped_ptr<GpuBlacklist> blacklist(Create());
978 EXPECT_TRUE(blacklist->LoadGpuBlacklist( 1087 EXPECT_TRUE(blacklist->LoadGpuBlacklist(
979 video_decode_json, GpuBlacklist::kAllOs)); 1088 video_decode_json, GpuBlacklist::kAllOs));
980 GpuFeatureType type = blacklist->DetermineGpuFeatureType( 1089 GpuFeatureType type = blacklist->MakeBlacklistDecision(
981 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); 1090 GpuBlacklist::kOsMacosx, &os_version,
1091 gpu_info()).blacklisted_features;
982 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE); 1092 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE);
983 } 1093 }
984
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698