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 <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" |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 ASSERT_EQ(file_util::ReadFile(data_file, data.get(), data_file_size), | 69 ASSERT_EQ(file_util::ReadFile(data_file, data.get(), data_file_size), |
70 data_file_size); | 70 data_file_size); |
71 std::string json_string(data.get(), data_file_size); | 71 std::string json_string(data.get(), data_file_size); |
72 scoped_ptr<GpuBlacklist> blacklist(Create()); | 72 scoped_ptr<GpuBlacklist> blacklist(Create()); |
73 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 73 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
74 json_string, GpuBlacklist::kAllOs)); | 74 json_string, GpuBlacklist::kAllOs)); |
75 EXPECT_FALSE(blacklist->contains_unknown_fields()); | 75 EXPECT_FALSE(blacklist->contains_unknown_fields()); |
76 } | 76 } |
77 | 77 |
78 TEST_F(GpuBlacklistTest, DefaultBlacklistSettings) { | 78 TEST_F(GpuBlacklistTest, DefaultBlacklistSettings) { |
79 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 79 Version os_version("10.6.4"); |
80 scoped_ptr<GpuBlacklist> blacklist(Create()); | 80 scoped_ptr<GpuBlacklist> blacklist(Create()); |
81 // Default blacklist settings: all feature are allowed. | 81 // Default blacklist settings: all feature are allowed. |
82 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 82 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
83 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); | 83 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
84 EXPECT_EQ(type, 0); | 84 EXPECT_EQ(type, 0); |
85 } | 85 } |
86 | 86 |
87 TEST_F(GpuBlacklistTest, EmptyBlacklist) { | 87 TEST_F(GpuBlacklistTest, EmptyBlacklist) { |
88 // Empty list: all features are allowed. | 88 // Empty list: all features are allowed. |
89 const std::string empty_list_json = | 89 const std::string empty_list_json = |
90 "{\n" | 90 "{\n" |
91 " \"name\": \"gpu blacklist\",\n" | 91 " \"name\": \"gpu blacklist\",\n" |
92 " \"version\": \"2.5\",\n" | 92 " \"version\": \"2.5\",\n" |
93 " \"entries\": [\n" | 93 " \"entries\": [\n" |
94 " ]\n" | 94 " ]\n" |
95 "}"; | 95 "}"; |
96 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 96 Version os_version("10.6.4"); |
97 scoped_ptr<GpuBlacklist> blacklist(Create()); | 97 scoped_ptr<GpuBlacklist> blacklist(Create()); |
98 | 98 |
99 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 99 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
100 empty_list_json, GpuBlacklist::kAllOs)); | 100 empty_list_json, GpuBlacklist::kAllOs)); |
101 EXPECT_EQ(blacklist->GetVersion(), std::string("2.5")); | 101 EXPECT_EQ(blacklist->GetVersion(), std::string("2.5")); |
102 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 102 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
103 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); | 103 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
104 EXPECT_EQ(type, 0); | 104 EXPECT_EQ(type, 0); |
105 } | 105 } |
106 | 106 |
107 TEST_F(GpuBlacklistTest, DetailedEntryAndInvalidJson) { | 107 TEST_F(GpuBlacklistTest, DetailedEntryAndInvalidJson) { |
108 // Blacklist accelerated_compositing with exact setting. | 108 // Blacklist accelerated_compositing with exact setting. |
109 const std::string exact_list_json = | 109 const std::string exact_list_json = |
110 "{\n" | 110 "{\n" |
111 " \"name\": \"gpu blacklist\",\n" | 111 " \"name\": \"gpu blacklist\",\n" |
112 " \"version\": \"0.1\",\n" | 112 " \"version\": \"0.1\",\n" |
113 " \"entries\": [\n" | 113 " \"entries\": [\n" |
(...skipping 11 matching lines...) Expand all Loading... |
125 " \"driver_version\": {\n" | 125 " \"driver_version\": {\n" |
126 " \"op\": \"=\",\n" | 126 " \"op\": \"=\",\n" |
127 " \"number\": \"1.6.18\"\n" | 127 " \"number\": \"1.6.18\"\n" |
128 " },\n" | 128 " },\n" |
129 " \"blacklist\": [\n" | 129 " \"blacklist\": [\n" |
130 " \"accelerated_compositing\"\n" | 130 " \"accelerated_compositing\"\n" |
131 " ]\n" | 131 " ]\n" |
132 " }\n" | 132 " }\n" |
133 " ]\n" | 133 " ]\n" |
134 "}"; | 134 "}"; |
135 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 135 Version os_version("10.6.4"); |
136 scoped_ptr<GpuBlacklist> blacklist(Create()); | 136 scoped_ptr<GpuBlacklist> blacklist(Create()); |
137 | 137 |
138 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 138 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
139 exact_list_json, GpuBlacklist::kAllOs)); | 139 exact_list_json, GpuBlacklist::kAllOs)); |
140 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 140 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
141 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); | 141 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
142 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING); | 142 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING); |
143 | 143 |
144 // Invalid json input should not change the current blacklist settings. | 144 // Invalid json input should not change the current blacklist settings. |
145 const std::string invalid_json = "invalid"; | 145 const std::string invalid_json = "invalid"; |
146 | 146 |
147 EXPECT_FALSE(blacklist->LoadGpuBlacklist( | 147 EXPECT_FALSE(blacklist->LoadGpuBlacklist( |
148 invalid_json, GpuBlacklist::kAllOs)); | 148 invalid_json, GpuBlacklist::kAllOs)); |
149 type = blacklist->DetermineGpuFeatureType( | 149 type = blacklist->DetermineGpuFeatureType( |
150 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); | 150 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
151 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING); | 151 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING); |
152 std::vector<uint32> entries; | 152 std::vector<uint32> entries; |
153 bool disabled = false; | 153 bool disabled = false; |
154 blacklist->GetGpuFeatureTypeEntries( | 154 blacklist->GetGpuFeatureTypeEntries( |
155 content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING, entries, disabled); | 155 content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING, entries, disabled); |
156 EXPECT_EQ(entries.size(), 1u); | 156 EXPECT_EQ(entries.size(), 1u); |
157 EXPECT_EQ(entries[0], 5u); | 157 EXPECT_EQ(entries[0], 5u); |
158 blacklist->GetGpuFeatureTypeEntries( | 158 blacklist->GetGpuFeatureTypeEntries( |
159 content::GPU_FEATURE_TYPE_ALL, entries, disabled); | 159 content::GPU_FEATURE_TYPE_ALL, entries, disabled); |
160 EXPECT_EQ(entries.size(), 1u); | 160 EXPECT_EQ(entries.size(), 1u); |
(...skipping 10 matching lines...) Expand all Loading... |
171 " \"entries\": [\n" | 171 " \"entries\": [\n" |
172 " {\n" | 172 " {\n" |
173 " \"id\": 1,\n" | 173 " \"id\": 1,\n" |
174 " \"vendor_id\": \"0x10de\",\n" | 174 " \"vendor_id\": \"0x10de\",\n" |
175 " \"blacklist\": [\n" | 175 " \"blacklist\": [\n" |
176 " \"webgl\"\n" | 176 " \"webgl\"\n" |
177 " ]\n" | 177 " ]\n" |
178 " }\n" | 178 " }\n" |
179 " ]\n" | 179 " ]\n" |
180 "}"; | 180 "}"; |
181 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 181 Version os_version("10.6.4"); |
182 scoped_ptr<GpuBlacklist> blacklist(Create()); | 182 scoped_ptr<GpuBlacklist> blacklist(Create()); |
183 | 183 |
184 // Blacklist entries won't be filtered to the current OS only upon loading. | 184 // Blacklist entries won't be filtered to the current OS only upon loading. |
185 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 185 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
186 vendor_json, GpuBlacklist::kAllOs)); | 186 vendor_json, GpuBlacklist::kAllOs)); |
187 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 187 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
188 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); | 188 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
189 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 189 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
190 type = blacklist->DetermineGpuFeatureType( | 190 type = blacklist->DetermineGpuFeatureType( |
191 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 191 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
192 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 192 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
193 type = blacklist->DetermineGpuFeatureType( | 193 type = blacklist->DetermineGpuFeatureType( |
194 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); | 194 GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
195 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 195 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
196 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || \ | 196 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || \ |
197 defined(OS_OPENBSD) | 197 defined(OS_OPENBSD) |
198 // Blacklist entries will be filtered to the current OS only upon loading. | 198 // Blacklist entries will be filtered to the current OS only upon loading. |
199 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 199 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
200 vendor_json, GpuBlacklist::kCurrentOsOnly)); | 200 vendor_json, GpuBlacklist::kCurrentOsOnly)); |
201 type = blacklist->DetermineGpuFeatureType( | 201 type = blacklist->DetermineGpuFeatureType( |
202 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); | 202 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
203 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 203 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
204 type = blacklist->DetermineGpuFeatureType( | 204 type = blacklist->DetermineGpuFeatureType( |
205 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 205 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
206 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 206 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
207 type = blacklist->DetermineGpuFeatureType( | 207 type = blacklist->DetermineGpuFeatureType( |
208 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); | 208 GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
209 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 209 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
210 #endif | 210 #endif |
211 } | 211 } |
212 | 212 |
213 TEST_F(GpuBlacklistTest, VendorOnLinuxEntry) { | 213 TEST_F(GpuBlacklistTest, VendorOnLinuxEntry) { |
214 // Blacklist a vendor on Linux only. | 214 // Blacklist a vendor on Linux only. |
215 const std::string vendor_linux_json = | 215 const std::string vendor_linux_json = |
216 "{\n" | 216 "{\n" |
217 " \"name\": \"gpu blacklist\",\n" | 217 " \"name\": \"gpu blacklist\",\n" |
218 " \"version\": \"0.1\",\n" | 218 " \"version\": \"0.1\",\n" |
219 " \"entries\": [\n" | 219 " \"entries\": [\n" |
220 " {\n" | 220 " {\n" |
221 " \"id\": 1,\n" | 221 " \"id\": 1,\n" |
222 " \"os\": {\n" | 222 " \"os\": {\n" |
223 " \"type\": \"linux\"\n" | 223 " \"type\": \"linux\"\n" |
224 " },\n" | 224 " },\n" |
225 " \"vendor_id\": \"0x10de\",\n" | 225 " \"vendor_id\": \"0x10de\",\n" |
226 " \"blacklist\": [\n" | 226 " \"blacklist\": [\n" |
227 " \"accelerated_2d_canvas\"\n" | 227 " \"accelerated_2d_canvas\"\n" |
228 " ]\n" | 228 " ]\n" |
229 " }\n" | 229 " }\n" |
230 " ]\n" | 230 " ]\n" |
231 "}"; | 231 "}"; |
232 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 232 Version os_version("10.6.4"); |
233 scoped_ptr<GpuBlacklist> blacklist(Create()); | 233 scoped_ptr<GpuBlacklist> blacklist(Create()); |
234 | 234 |
235 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 235 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
236 vendor_linux_json, GpuBlacklist::kAllOs)); | 236 vendor_linux_json, GpuBlacklist::kAllOs)); |
237 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 237 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
238 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); | 238 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
239 EXPECT_EQ(type, 0); | 239 EXPECT_EQ(type, 0); |
240 type = blacklist->DetermineGpuFeatureType( | 240 type = blacklist->DetermineGpuFeatureType( |
241 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 241 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
242 EXPECT_EQ(type, 0); | 242 EXPECT_EQ(type, 0); |
243 type = blacklist->DetermineGpuFeatureType( | 243 type = blacklist->DetermineGpuFeatureType( |
244 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); | 244 GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
245 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); | 245 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); |
246 } | 246 } |
247 | 247 |
248 TEST_F(GpuBlacklistTest, AllExceptNVidiaOnLinuxEntry) { | 248 TEST_F(GpuBlacklistTest, AllExceptNVidiaOnLinuxEntry) { |
249 // Blacklist all cards in Linux except NVIDIA. | 249 // Blacklist all cards in Linux except NVIDIA. |
250 const std::string linux_except_nvidia_json = | 250 const std::string linux_except_nvidia_json = |
251 "{\n" | 251 "{\n" |
252 " \"name\": \"gpu blacklist\",\n" | 252 " \"name\": \"gpu blacklist\",\n" |
253 " \"version\": \"0.1\",\n" | 253 " \"version\": \"0.1\",\n" |
254 " \"entries\": [\n" | 254 " \"entries\": [\n" |
255 " {\n" | 255 " {\n" |
256 " \"id\": 1,\n" | 256 " \"id\": 1,\n" |
257 " \"os\": {\n" | 257 " \"os\": {\n" |
258 " \"type\": \"linux\"\n" | 258 " \"type\": \"linux\"\n" |
259 " },\n" | 259 " },\n" |
260 " \"exceptions\": [\n" | 260 " \"exceptions\": [\n" |
261 " {\n" | 261 " {\n" |
262 " \"vendor_id\": \"0x10de\"\n" | 262 " \"vendor_id\": \"0x10de\"\n" |
263 " }\n" | 263 " }\n" |
264 " ],\n" | 264 " ],\n" |
265 " \"blacklist\": [\n" | 265 " \"blacklist\": [\n" |
266 " \"accelerated_2d_canvas\"\n" | 266 " \"accelerated_2d_canvas\"\n" |
267 " ]\n" | 267 " ]\n" |
268 " }\n" | 268 " }\n" |
269 " ]\n" | 269 " ]\n" |
270 "}"; | 270 "}"; |
271 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 271 Version os_version("10.6.4"); |
272 scoped_ptr<GpuBlacklist> blacklist(Create()); | 272 scoped_ptr<GpuBlacklist> blacklist(Create()); |
273 | 273 |
274 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 274 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
275 linux_except_nvidia_json, GpuBlacklist::kAllOs)); | 275 linux_except_nvidia_json, GpuBlacklist::kAllOs)); |
276 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 276 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
277 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); | 277 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
278 EXPECT_EQ(type, 0); | 278 EXPECT_EQ(type, 0); |
279 type = blacklist->DetermineGpuFeatureType( | 279 type = blacklist->DetermineGpuFeatureType( |
280 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 280 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
281 EXPECT_EQ(type, 0); | 281 EXPECT_EQ(type, 0); |
282 type = blacklist->DetermineGpuFeatureType( | 282 type = blacklist->DetermineGpuFeatureType( |
283 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); | 283 GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
284 EXPECT_EQ(type, 0); | 284 EXPECT_EQ(type, 0); |
285 } | 285 } |
286 | 286 |
287 TEST_F(GpuBlacklistTest, AllExceptIntelOnLinuxEntry) { | 287 TEST_F(GpuBlacklistTest, AllExceptIntelOnLinuxEntry) { |
288 // Blacklist all cards in Linux except Intel. | 288 // Blacklist all cards in Linux except Intel. |
289 const std::string linux_except_intel_json = | 289 const std::string linux_except_intel_json = |
290 "{\n" | 290 "{\n" |
291 " \"name\": \"gpu blacklist\",\n" | 291 " \"name\": \"gpu blacklist\",\n" |
292 " \"version\": \"0.1\",\n" | 292 " \"version\": \"0.1\",\n" |
293 " \"entries\": [\n" | 293 " \"entries\": [\n" |
294 " {\n" | 294 " {\n" |
295 " \"id\": 1,\n" | 295 " \"id\": 1,\n" |
296 " \"os\": {\n" | 296 " \"os\": {\n" |
297 " \"type\": \"linux\"\n" | 297 " \"type\": \"linux\"\n" |
298 " },\n" | 298 " },\n" |
299 " \"exceptions\": [\n" | 299 " \"exceptions\": [\n" |
300 " {\n" | 300 " {\n" |
301 " \"vendor_id\": \"0x8086\"\n" | 301 " \"vendor_id\": \"0x8086\"\n" |
302 " }\n" | 302 " }\n" |
303 " ],\n" | 303 " ],\n" |
304 " \"blacklist\": [\n" | 304 " \"blacklist\": [\n" |
305 " \"accelerated_2d_canvas\"\n" | 305 " \"accelerated_2d_canvas\"\n" |
306 " ]\n" | 306 " ]\n" |
307 " }\n" | 307 " }\n" |
308 " ]\n" | 308 " ]\n" |
309 "}"; | 309 "}"; |
310 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 310 Version os_version("10.6.4"); |
311 scoped_ptr<GpuBlacklist> blacklist(Create()); | 311 scoped_ptr<GpuBlacklist> blacklist(Create()); |
312 | 312 |
313 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 313 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
314 linux_except_intel_json, GpuBlacklist::kAllOs)); | 314 linux_except_intel_json, GpuBlacklist::kAllOs)); |
315 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 315 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
316 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); | 316 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
317 EXPECT_EQ(type, 0); | 317 EXPECT_EQ(type, 0); |
318 type = blacklist->DetermineGpuFeatureType( | 318 type = blacklist->DetermineGpuFeatureType( |
319 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 319 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
320 EXPECT_EQ(type, 0); | 320 EXPECT_EQ(type, 0); |
321 type = blacklist->DetermineGpuFeatureType( | 321 type = blacklist->DetermineGpuFeatureType( |
322 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); | 322 GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
323 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); | 323 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); |
324 } | 324 } |
325 | 325 |
326 TEST_F(GpuBlacklistTest, DateOnWindowsEntry) { | 326 TEST_F(GpuBlacklistTest, DateOnWindowsEntry) { |
327 // Blacklist all drivers earlier than 2010-01 in Windows. | 327 // Blacklist all drivers earlier than 2010-01 in Windows. |
328 const std::string date_windows_json = | 328 const std::string date_windows_json = |
329 "{\n" | 329 "{\n" |
330 " \"name\": \"gpu blacklist\",\n" | 330 " \"name\": \"gpu blacklist\",\n" |
331 " \"version\": \"0.1\",\n" | 331 " \"version\": \"0.1\",\n" |
332 " \"entries\": [\n" | 332 " \"entries\": [\n" |
333 " {\n" | 333 " {\n" |
334 " \"id\": 1,\n" | 334 " \"id\": 1,\n" |
335 " \"os\": {\n" | 335 " \"os\": {\n" |
336 " \"type\": \"win\"\n" | 336 " \"type\": \"win\"\n" |
337 " },\n" | 337 " },\n" |
338 " \"driver_date\": {\n" | 338 " \"driver_date\": {\n" |
339 " \"op\": \"<\",\n" | 339 " \"op\": \"<\",\n" |
340 " \"number\": \"2010.1\"\n" | 340 " \"number\": \"2010.1\"\n" |
341 " },\n" | 341 " },\n" |
342 " \"blacklist\": [\n" | 342 " \"blacklist\": [\n" |
343 " \"accelerated_2d_canvas\"\n" | 343 " \"accelerated_2d_canvas\"\n" |
344 " ]\n" | 344 " ]\n" |
345 " }\n" | 345 " }\n" |
346 " ]\n" | 346 " ]\n" |
347 "}"; | 347 "}"; |
348 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 348 Version os_version("10.6.4"); |
349 scoped_ptr<GpuBlacklist> blacklist(Create()); | 349 scoped_ptr<GpuBlacklist> blacklist(Create()); |
350 | 350 |
351 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 351 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
352 date_windows_json, GpuBlacklist::kAllOs)); | 352 date_windows_json, GpuBlacklist::kAllOs)); |
353 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 353 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
354 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); | 354 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
355 EXPECT_EQ(type, 0); | 355 EXPECT_EQ(type, 0); |
356 type = blacklist->DetermineGpuFeatureType( | 356 type = blacklist->DetermineGpuFeatureType( |
357 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); | 357 GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
358 EXPECT_EQ(type, 0); | 358 EXPECT_EQ(type, 0); |
359 type = blacklist->DetermineGpuFeatureType( | 359 type = blacklist->DetermineGpuFeatureType( |
360 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 360 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
361 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); | 361 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS); |
362 } | 362 } |
363 | 363 |
364 TEST_F(GpuBlacklistTest, MultipleDevicesEntry) { | 364 TEST_F(GpuBlacklistTest, MultipleDevicesEntry) { |
365 const std::string devices_json = | 365 const std::string devices_json = |
366 "{\n" | 366 "{\n" |
367 " \"name\": \"gpu blacklist\",\n" | 367 " \"name\": \"gpu blacklist\",\n" |
368 " \"version\": \"0.1\",\n" | 368 " \"version\": \"0.1\",\n" |
369 " \"entries\": [\n" | 369 " \"entries\": [\n" |
370 " {\n" | 370 " {\n" |
371 " \"id\": 1,\n" | 371 " \"id\": 1,\n" |
372 " \"vendor_id\": \"0x10de\",\n" | 372 " \"vendor_id\": \"0x10de\",\n" |
373 " \"device_id\": [\"0x1023\", \"0x0640\"],\n" | 373 " \"device_id\": [\"0x1023\", \"0x0640\"],\n" |
374 " \"blacklist\": [\n" | 374 " \"blacklist\": [\n" |
375 " \"multisampling\"\n" | 375 " \"multisampling\"\n" |
376 " ]\n" | 376 " ]\n" |
377 " }\n" | 377 " }\n" |
378 " ]\n" | 378 " ]\n" |
379 "}"; | 379 "}"; |
380 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 380 Version os_version("10.6.4"); |
381 scoped_ptr<GpuBlacklist> blacklist(Create()); | 381 scoped_ptr<GpuBlacklist> blacklist(Create()); |
382 | 382 |
383 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 383 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
384 devices_json, GpuBlacklist::kAllOs)); | 384 devices_json, GpuBlacklist::kAllOs)); |
385 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 385 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
386 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); | 386 GpuBlacklist::kOsMacosx, &os_version, gpu_info()); |
387 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); | 387 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); |
388 type = blacklist->DetermineGpuFeatureType( | 388 type = blacklist->DetermineGpuFeatureType( |
389 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 389 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
390 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); | 390 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); |
391 type = blacklist->DetermineGpuFeatureType( | 391 type = blacklist->DetermineGpuFeatureType( |
392 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); | 392 GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
393 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); | 393 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_MULTISAMPLING); |
394 } | 394 } |
395 | 395 |
396 TEST_F(GpuBlacklistTest, ChromeOSEntry) { | 396 TEST_F(GpuBlacklistTest, ChromeOSEntry) { |
397 const std::string devices_json = | 397 const std::string devices_json = |
398 "{\n" | 398 "{\n" |
399 " \"name\": \"gpu blacklist\",\n" | 399 " \"name\": \"gpu blacklist\",\n" |
400 " \"version\": \"0.1\",\n" | 400 " \"version\": \"0.1\",\n" |
401 " \"entries\": [\n" | 401 " \"entries\": [\n" |
402 " {\n" | 402 " {\n" |
403 " \"id\": 1,\n" | 403 " \"id\": 1,\n" |
404 " \"os\": {\n" | 404 " \"os\": {\n" |
405 " \"type\": \"chromeos\"\n" | 405 " \"type\": \"chromeos\"\n" |
406 " },\n" | 406 " },\n" |
407 " \"blacklist\": [\n" | 407 " \"blacklist\": [\n" |
408 " \"webgl\"\n" | 408 " \"webgl\"\n" |
409 " ]\n" | 409 " ]\n" |
410 " }\n" | 410 " }\n" |
411 " ]\n" | 411 " ]\n" |
412 "}"; | 412 "}"; |
413 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 413 Version os_version("10.6.4"); |
414 scoped_ptr<GpuBlacklist> blacklist(Create()); | 414 scoped_ptr<GpuBlacklist> blacklist(Create()); |
415 | 415 |
416 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 416 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
417 devices_json, GpuBlacklist::kAllOs)); | 417 devices_json, GpuBlacklist::kAllOs)); |
418 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 418 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
419 GpuBlacklist::kOsChromeOS, os_version.get(), gpu_info()); | 419 GpuBlacklist::kOsChromeOS, &os_version, gpu_info()); |
420 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 420 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
421 type = blacklist->DetermineGpuFeatureType( | 421 type = blacklist->DetermineGpuFeatureType( |
422 GpuBlacklist::kOsLinux, os_version.get(), gpu_info()); | 422 GpuBlacklist::kOsLinux, &os_version, gpu_info()); |
423 EXPECT_EQ(type, 0); | 423 EXPECT_EQ(type, 0); |
424 } | 424 } |
425 | 425 |
426 TEST_F(GpuBlacklistTest, ChromeVersionEntry) { | 426 TEST_F(GpuBlacklistTest, ChromeVersionEntry) { |
427 const std::string browser_version_json = | 427 const std::string browser_version_json = |
428 "{\n" | 428 "{\n" |
429 " \"name\": \"gpu blacklist\",\n" | 429 " \"name\": \"gpu blacklist\",\n" |
430 " \"version\": \"0.1\",\n" | 430 " \"version\": \"0.1\",\n" |
431 " \"entries\": [\n" | 431 " \"entries\": [\n" |
432 " {\n" | 432 " {\n" |
433 " \"id\": 1,\n" | 433 " \"id\": 1,\n" |
434 " \"browser_version\": {\n" | 434 " \"browser_version\": {\n" |
435 " \"op\": \">=\",\n" | 435 " \"op\": \">=\",\n" |
436 " \"number\": \"10\"\n" | 436 " \"number\": \"10\"\n" |
437 " },\n" | 437 " },\n" |
438 " \"blacklist\": [\n" | 438 " \"blacklist\": [\n" |
439 " \"webgl\"\n" | 439 " \"webgl\"\n" |
440 " ]\n" | 440 " ]\n" |
441 " }\n" | 441 " }\n" |
442 " ]\n" | 442 " ]\n" |
443 "}"; | 443 "}"; |
444 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 444 Version os_version("10.6.4"); |
445 | 445 |
446 scoped_ptr<GpuBlacklist> blacklist9(Create()); | 446 scoped_ptr<GpuBlacklist> blacklist9(Create()); |
447 EXPECT_TRUE(blacklist9->LoadGpuBlacklist( | 447 EXPECT_TRUE(blacklist9->LoadGpuBlacklist( |
448 "9.0", browser_version_json, GpuBlacklist::kAllOs)); | 448 "9.0", browser_version_json, GpuBlacklist::kAllOs)); |
449 GpuFeatureType type = blacklist9->DetermineGpuFeatureType( | 449 GpuFeatureType type = blacklist9->DetermineGpuFeatureType( |
450 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 450 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
451 EXPECT_EQ(type, 0); | 451 EXPECT_EQ(type, 0); |
452 | 452 |
453 scoped_ptr<GpuBlacklist> blacklist10(Create()); | 453 scoped_ptr<GpuBlacklist> blacklist10(Create()); |
454 EXPECT_TRUE(blacklist10->LoadGpuBlacklist( | 454 EXPECT_TRUE(blacklist10->LoadGpuBlacklist( |
455 "10.0", browser_version_json, GpuBlacklist::kAllOs)); | 455 "10.0", browser_version_json, GpuBlacklist::kAllOs)); |
456 type = blacklist10->DetermineGpuFeatureType( | 456 type = blacklist10->DetermineGpuFeatureType( |
457 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 457 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
458 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 458 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
459 } | 459 } |
460 | 460 |
461 TEST_F(GpuBlacklistTest, MalformedVendor) { | 461 TEST_F(GpuBlacklistTest, MalformedVendor) { |
462 // vendor_id is defined as list instead of string. | 462 // vendor_id is defined as list instead of string. |
463 const std::string malformed_vendor_json = | 463 const std::string malformed_vendor_json = |
464 "{\n" | 464 "{\n" |
465 " \"name\": \"gpu blacklist\",\n" | 465 " \"name\": \"gpu blacklist\",\n" |
466 " \"version\": \"0.1\",\n" | 466 " \"version\": \"0.1\",\n" |
467 " \"entries\": [\n" | 467 " \"entries\": [\n" |
(...skipping 26 matching lines...) Expand all Loading... |
494 " ]\n" | 494 " ]\n" |
495 " },\n" | 495 " },\n" |
496 " {\n" | 496 " {\n" |
497 " \"id\": 2,\n" | 497 " \"id\": 2,\n" |
498 " \"blacklist\": [\n" | 498 " \"blacklist\": [\n" |
499 " \"webgl\"\n" | 499 " \"webgl\"\n" |
500 " ]\n" | 500 " ]\n" |
501 " }\n" | 501 " }\n" |
502 " ]\n" | 502 " ]\n" |
503 "}"; | 503 "}"; |
504 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 504 Version os_version("10.6.4"); |
505 scoped_ptr<GpuBlacklist> blacklist(Create()); | 505 scoped_ptr<GpuBlacklist> blacklist(Create()); |
506 | 506 |
507 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 507 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
508 unknown_field_json, GpuBlacklist::kAllOs)); | 508 unknown_field_json, GpuBlacklist::kAllOs)); |
509 EXPECT_EQ(1u, blacklist->num_entries()); | 509 EXPECT_EQ(1u, blacklist->num_entries()); |
510 EXPECT_TRUE(blacklist->contains_unknown_fields()); | 510 EXPECT_TRUE(blacklist->contains_unknown_fields()); |
511 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 511 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
512 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 512 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
513 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 513 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
514 } | 514 } |
515 | 515 |
516 TEST_F(GpuBlacklistTest, UnknownExceptionField) { | 516 TEST_F(GpuBlacklistTest, UnknownExceptionField) { |
517 const std::string unknown_exception_field_json = | 517 const std::string unknown_exception_field_json = |
518 "{\n" | 518 "{\n" |
519 " \"name\": \"gpu blacklist\",\n" | 519 " \"name\": \"gpu blacklist\",\n" |
520 " \"version\": \"0.1\",\n" | 520 " \"version\": \"0.1\",\n" |
521 " \"entries\": [\n" | 521 " \"entries\": [\n" |
522 " {\n" | 522 " {\n" |
(...skipping 15 matching lines...) Expand all Loading... |
538 " ]\n" | 538 " ]\n" |
539 " },\n" | 539 " },\n" |
540 " {\n" | 540 " {\n" |
541 " \"id\": 3,\n" | 541 " \"id\": 3,\n" |
542 " \"blacklist\": [\n" | 542 " \"blacklist\": [\n" |
543 " \"webgl\"\n" | 543 " \"webgl\"\n" |
544 " ]\n" | 544 " ]\n" |
545 " }\n" | 545 " }\n" |
546 " ]\n" | 546 " ]\n" |
547 "}"; | 547 "}"; |
548 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 548 Version os_version("10.6.4"); |
549 scoped_ptr<GpuBlacklist> blacklist(Create()); | 549 scoped_ptr<GpuBlacklist> blacklist(Create()); |
550 | 550 |
551 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 551 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
552 unknown_exception_field_json, GpuBlacklist::kAllOs)); | 552 unknown_exception_field_json, GpuBlacklist::kAllOs)); |
553 EXPECT_EQ(1u, blacklist->num_entries()); | 553 EXPECT_EQ(1u, blacklist->num_entries()); |
554 EXPECT_TRUE(blacklist->contains_unknown_fields()); | 554 EXPECT_TRUE(blacklist->contains_unknown_fields()); |
555 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 555 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
556 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 556 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
557 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 557 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
558 } | 558 } |
559 | 559 |
560 TEST_F(GpuBlacklistTest, UnknownFeature) { | 560 TEST_F(GpuBlacklistTest, UnknownFeature) { |
561 const std::string unknown_feature_json = | 561 const std::string unknown_feature_json = |
562 "{\n" | 562 "{\n" |
563 " \"name\": \"gpu blacklist\",\n" | 563 " \"name\": \"gpu blacklist\",\n" |
564 " \"version\": \"0.1\",\n" | 564 " \"version\": \"0.1\",\n" |
565 " \"entries\": [\n" | 565 " \"entries\": [\n" |
566 " {\n" | 566 " {\n" |
567 " \"id\": 1,\n" | 567 " \"id\": 1,\n" |
568 " \"blacklist\": [\n" | 568 " \"blacklist\": [\n" |
569 " \"accelerated_something\",\n" | 569 " \"accelerated_something\",\n" |
570 " \"webgl\"\n" | 570 " \"webgl\"\n" |
571 " ]\n" | 571 " ]\n" |
572 " }\n" | 572 " }\n" |
573 " ]\n" | 573 " ]\n" |
574 "}"; | 574 "}"; |
575 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 575 Version os_version("10.6.4"); |
576 scoped_ptr<GpuBlacklist> blacklist(Create()); | 576 scoped_ptr<GpuBlacklist> blacklist(Create()); |
577 | 577 |
578 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 578 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
579 unknown_feature_json, GpuBlacklist::kAllOs)); | 579 unknown_feature_json, GpuBlacklist::kAllOs)); |
580 EXPECT_EQ(1u, blacklist->num_entries()); | 580 EXPECT_EQ(1u, blacklist->num_entries()); |
581 EXPECT_TRUE(blacklist->contains_unknown_fields()); | 581 EXPECT_TRUE(blacklist->contains_unknown_fields()); |
582 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 582 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
583 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 583 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
584 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 584 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
585 } | 585 } |
586 | 586 |
587 TEST_F(GpuBlacklistTest, GlVendor) { | 587 TEST_F(GpuBlacklistTest, GlVendor) { |
588 const std::string gl_vendor_json = | 588 const std::string gl_vendor_json = |
589 "{\n" | 589 "{\n" |
590 " \"name\": \"gpu blacklist\",\n" | 590 " \"name\": \"gpu blacklist\",\n" |
591 " \"version\": \"0.1\",\n" | 591 " \"version\": \"0.1\",\n" |
592 " \"entries\": [\n" | 592 " \"entries\": [\n" |
593 " {\n" | 593 " {\n" |
594 " \"id\": 1,\n" | 594 " \"id\": 1,\n" |
595 " \"gl_vendor\": {\n" | 595 " \"gl_vendor\": {\n" |
596 " \"op\": \"beginwith\",\n" | 596 " \"op\": \"beginwith\",\n" |
597 " \"value\": \"NVIDIA\"\n" | 597 " \"value\": \"NVIDIA\"\n" |
598 " },\n" | 598 " },\n" |
599 " \"blacklist\": [\n" | 599 " \"blacklist\": [\n" |
600 " \"webgl\"\n" | 600 " \"webgl\"\n" |
601 " ]\n" | 601 " ]\n" |
602 " }\n" | 602 " }\n" |
603 " ]\n" | 603 " ]\n" |
604 "}"; | 604 "}"; |
605 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 605 Version os_version("10.6.4"); |
606 | 606 |
607 scoped_ptr<GpuBlacklist> blacklist(Create()); | 607 scoped_ptr<GpuBlacklist> blacklist(Create()); |
608 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 608 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
609 gl_vendor_json, GpuBlacklist::kAllOs)); | 609 gl_vendor_json, GpuBlacklist::kAllOs)); |
610 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 610 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
611 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 611 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
612 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 612 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
613 } | 613 } |
614 | 614 |
615 TEST_F(GpuBlacklistTest, GlRenderer) { | 615 TEST_F(GpuBlacklistTest, GlRenderer) { |
616 const std::string gl_renderer_json = | 616 const std::string gl_renderer_json = |
617 "{\n" | 617 "{\n" |
618 " \"name\": \"gpu blacklist\",\n" | 618 " \"name\": \"gpu blacklist\",\n" |
619 " \"version\": \"0.1\",\n" | 619 " \"version\": \"0.1\",\n" |
620 " \"entries\": [\n" | 620 " \"entries\": [\n" |
621 " {\n" | 621 " {\n" |
622 " \"id\": 1,\n" | 622 " \"id\": 1,\n" |
623 " \"gl_renderer\": {\n" | 623 " \"gl_renderer\": {\n" |
624 " \"op\": \"contains\",\n" | 624 " \"op\": \"contains\",\n" |
625 " \"value\": \"GeForce\"\n" | 625 " \"value\": \"GeForce\"\n" |
626 " },\n" | 626 " },\n" |
627 " \"blacklist\": [\n" | 627 " \"blacklist\": [\n" |
628 " \"webgl\"\n" | 628 " \"webgl\"\n" |
629 " ]\n" | 629 " ]\n" |
630 " }\n" | 630 " }\n" |
631 " ]\n" | 631 " ]\n" |
632 "}"; | 632 "}"; |
633 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 633 Version os_version("10.6.4"); |
634 | 634 |
635 scoped_ptr<GpuBlacklist> blacklist(Create()); | 635 scoped_ptr<GpuBlacklist> blacklist(Create()); |
636 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 636 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
637 gl_renderer_json, GpuBlacklist::kAllOs)); | 637 gl_renderer_json, GpuBlacklist::kAllOs)); |
638 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 638 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
639 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 639 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
640 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 640 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
641 } | 641 } |
642 | 642 |
643 TEST_F(GpuBlacklistTest, PerfGraphics) { | 643 TEST_F(GpuBlacklistTest, PerfGraphics) { |
644 const std::string json = | 644 const std::string json = |
645 "{\n" | 645 "{\n" |
646 " \"name\": \"gpu blacklist\",\n" | 646 " \"name\": \"gpu blacklist\",\n" |
647 " \"version\": \"0.1\",\n" | 647 " \"version\": \"0.1\",\n" |
648 " \"entries\": [\n" | 648 " \"entries\": [\n" |
649 " {\n" | 649 " {\n" |
650 " \"id\": 1,\n" | 650 " \"id\": 1,\n" |
651 " \"perf_graphics\": {\n" | 651 " \"perf_graphics\": {\n" |
652 " \"op\": \"<\",\n" | 652 " \"op\": \"<\",\n" |
653 " \"value\": \"6.0\"\n" | 653 " \"value\": \"6.0\"\n" |
654 " },\n" | 654 " },\n" |
655 " \"blacklist\": [\n" | 655 " \"blacklist\": [\n" |
656 " \"webgl\"\n" | 656 " \"webgl\"\n" |
657 " ]\n" | 657 " ]\n" |
658 " }\n" | 658 " }\n" |
659 " ]\n" | 659 " ]\n" |
660 "}"; | 660 "}"; |
661 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 661 Version os_version("10.6.4"); |
662 | 662 |
663 scoped_ptr<GpuBlacklist> blacklist(Create()); | 663 scoped_ptr<GpuBlacklist> blacklist(Create()); |
664 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); | 664 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); |
665 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 665 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
666 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 666 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
667 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 667 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
668 } | 668 } |
669 | 669 |
670 TEST_F(GpuBlacklistTest, PerfGaming) { | 670 TEST_F(GpuBlacklistTest, PerfGaming) { |
671 const std::string json = | 671 const std::string json = |
672 "{\n" | 672 "{\n" |
673 " \"name\": \"gpu blacklist\",\n" | 673 " \"name\": \"gpu blacklist\",\n" |
674 " \"version\": \"0.1\",\n" | 674 " \"version\": \"0.1\",\n" |
675 " \"entries\": [\n" | 675 " \"entries\": [\n" |
676 " {\n" | 676 " {\n" |
677 " \"id\": 1,\n" | 677 " \"id\": 1,\n" |
678 " \"perf_gaming\": {\n" | 678 " \"perf_gaming\": {\n" |
679 " \"op\": \"<=\",\n" | 679 " \"op\": \"<=\",\n" |
680 " \"value\": \"4.0\"\n" | 680 " \"value\": \"4.0\"\n" |
681 " },\n" | 681 " },\n" |
682 " \"blacklist\": [\n" | 682 " \"blacklist\": [\n" |
683 " \"webgl\"\n" | 683 " \"webgl\"\n" |
684 " ]\n" | 684 " ]\n" |
685 " }\n" | 685 " }\n" |
686 " ]\n" | 686 " ]\n" |
687 "}"; | 687 "}"; |
688 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 688 Version os_version("10.6.4"); |
689 | 689 |
690 scoped_ptr<GpuBlacklist> blacklist(Create()); | 690 scoped_ptr<GpuBlacklist> blacklist(Create()); |
691 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); | 691 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); |
692 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 692 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
693 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 693 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
694 EXPECT_EQ(type, 0); | 694 EXPECT_EQ(type, 0); |
695 } | 695 } |
696 | 696 |
697 TEST_F(GpuBlacklistTest, PerfOverall) { | 697 TEST_F(GpuBlacklistTest, PerfOverall) { |
698 const std::string json = | 698 const std::string json = |
699 "{\n" | 699 "{\n" |
700 " \"name\": \"gpu blacklist\",\n" | 700 " \"name\": \"gpu blacklist\",\n" |
701 " \"version\": \"0.1\",\n" | 701 " \"version\": \"0.1\",\n" |
702 " \"entries\": [\n" | 702 " \"entries\": [\n" |
703 " {\n" | 703 " {\n" |
704 " \"id\": 1,\n" | 704 " \"id\": 1,\n" |
705 " \"perf_overall\": {\n" | 705 " \"perf_overall\": {\n" |
706 " \"op\": \"between\",\n" | 706 " \"op\": \"between\",\n" |
707 " \"value\": \"1.0\",\n" | 707 " \"value\": \"1.0\",\n" |
708 " \"value2\": \"9.0\"\n" | 708 " \"value2\": \"9.0\"\n" |
709 " },\n" | 709 " },\n" |
710 " \"blacklist\": [\n" | 710 " \"blacklist\": [\n" |
711 " \"webgl\"\n" | 711 " \"webgl\"\n" |
712 " ]\n" | 712 " ]\n" |
713 " }\n" | 713 " }\n" |
714 " ]\n" | 714 " ]\n" |
715 "}"; | 715 "}"; |
716 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 716 Version os_version("10.6.4"); |
717 | 717 |
718 scoped_ptr<GpuBlacklist> blacklist(Create()); | 718 scoped_ptr<GpuBlacklist> blacklist(Create()); |
719 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); | 719 EXPECT_TRUE(blacklist->LoadGpuBlacklist(json, GpuBlacklist::kAllOs)); |
720 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 720 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
721 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 721 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
722 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 722 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
723 } | 723 } |
724 | 724 |
725 TEST_F(GpuBlacklistTest, DisabledEntry) { | 725 TEST_F(GpuBlacklistTest, DisabledEntry) { |
726 const std::string disabled_json = | 726 const std::string disabled_json = |
727 "{\n" | 727 "{\n" |
728 " \"name\": \"gpu blacklist\",\n" | 728 " \"name\": \"gpu blacklist\",\n" |
729 " \"version\": \"0.1\",\n" | 729 " \"version\": \"0.1\",\n" |
730 " \"entries\": [\n" | 730 " \"entries\": [\n" |
731 " {\n" | 731 " {\n" |
732 " \"id\": 1,\n" | 732 " \"id\": 1,\n" |
733 " \"disabled\": true,\n" | 733 " \"disabled\": true,\n" |
734 " \"blacklist\": [\n" | 734 " \"blacklist\": [\n" |
735 " \"webgl\"\n" | 735 " \"webgl\"\n" |
736 " ]\n" | 736 " ]\n" |
737 " }\n" | 737 " }\n" |
738 " ]\n" | 738 " ]\n" |
739 "}"; | 739 "}"; |
740 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 740 Version os_version("10.6.4"); |
741 | 741 |
742 scoped_ptr<GpuBlacklist> blacklist(Create()); | 742 scoped_ptr<GpuBlacklist> blacklist(Create()); |
743 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 743 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
744 disabled_json, GpuBlacklist::kAllOs)); | 744 disabled_json, GpuBlacklist::kAllOs)); |
745 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 745 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
746 GpuBlacklist::kOsWin, os_version.get(), gpu_info()); | 746 GpuBlacklist::kOsWin, &os_version, gpu_info()); |
747 EXPECT_EQ(type, 0); | 747 EXPECT_EQ(type, 0); |
748 std::vector<uint32> flag_entries; | 748 std::vector<uint32> flag_entries; |
749 bool disabled = false; | 749 bool disabled = false; |
750 blacklist->GetGpuFeatureTypeEntries( | 750 blacklist->GetGpuFeatureTypeEntries( |
751 content::GPU_FEATURE_TYPE_ALL, flag_entries, disabled); | 751 content::GPU_FEATURE_TYPE_ALL, flag_entries, disabled); |
752 EXPECT_EQ(flag_entries.size(), 0u); | 752 EXPECT_EQ(flag_entries.size(), 0u); |
753 disabled = true; | 753 disabled = true; |
754 blacklist->GetGpuFeatureTypeEntries( | 754 blacklist->GetGpuFeatureTypeEntries( |
755 content::GPU_FEATURE_TYPE_ALL, flag_entries, disabled); | 755 content::GPU_FEATURE_TYPE_ALL, flag_entries, disabled); |
756 EXPECT_EQ(flag_entries.size(), 1u); | 756 EXPECT_EQ(flag_entries.size(), 1u); |
(...skipping 10 matching lines...) Expand all Loading... |
767 " \"os\": {\n" | 767 " \"os\": {\n" |
768 " \"type\": \"linux\"\n" | 768 " \"type\": \"linux\"\n" |
769 " },\n" | 769 " },\n" |
770 " \"multi_gpu_style\": \"optimus\",\n" | 770 " \"multi_gpu_style\": \"optimus\",\n" |
771 " \"blacklist\": [\n" | 771 " \"blacklist\": [\n" |
772 " \"webgl\"\n" | 772 " \"webgl\"\n" |
773 " ]\n" | 773 " ]\n" |
774 " }\n" | 774 " }\n" |
775 " ]\n" | 775 " ]\n" |
776 "}"; | 776 "}"; |
777 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 777 Version os_version("10.6.4"); |
778 | 778 |
779 content::GPUInfo gpu_info; | 779 content::GPUInfo gpu_info; |
780 gpu_info.optimus = true; | 780 gpu_info.optimus = true; |
781 | 781 |
782 scoped_ptr<GpuBlacklist> blacklist(Create()); | 782 scoped_ptr<GpuBlacklist> blacklist(Create()); |
783 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 783 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
784 optimus_json, GpuBlacklist::kAllOs)); | 784 optimus_json, GpuBlacklist::kAllOs)); |
785 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 785 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
786 GpuBlacklist::kOsLinux, os_version.get(), gpu_info); | 786 GpuBlacklist::kOsLinux, &os_version, gpu_info); |
787 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 787 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
788 } | 788 } |
789 | 789 |
790 TEST_F(GpuBlacklistTest, AMDSwitchable) { | 790 TEST_F(GpuBlacklistTest, AMDSwitchable) { |
791 const std::string amd_switchable_json = | 791 const std::string amd_switchable_json = |
792 "{\n" | 792 "{\n" |
793 " \"name\": \"gpu blacklist\",\n" | 793 " \"name\": \"gpu blacklist\",\n" |
794 " \"version\": \"0.1\",\n" | 794 " \"version\": \"0.1\",\n" |
795 " \"entries\": [\n" | 795 " \"entries\": [\n" |
796 " {\n" | 796 " {\n" |
797 " \"id\": 1,\n" | 797 " \"id\": 1,\n" |
798 " \"os\": {\n" | 798 " \"os\": {\n" |
799 " \"type\": \"macosx\"\n" | 799 " \"type\": \"macosx\"\n" |
800 " },\n" | 800 " },\n" |
801 " \"multi_gpu_style\": \"amd_switchable\",\n" | 801 " \"multi_gpu_style\": \"amd_switchable\",\n" |
802 " \"blacklist\": [\n" | 802 " \"blacklist\": [\n" |
803 " \"webgl\"\n" | 803 " \"webgl\"\n" |
804 " ]\n" | 804 " ]\n" |
805 " }\n" | 805 " }\n" |
806 " ]\n" | 806 " ]\n" |
807 "}"; | 807 "}"; |
808 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 808 Version os_version("10.6.4"); |
809 | 809 |
810 content::GPUInfo gpu_info; | 810 content::GPUInfo gpu_info; |
811 gpu_info.amd_switchable = true; | 811 gpu_info.amd_switchable = true; |
812 | 812 |
813 scoped_ptr<GpuBlacklist> blacklist(Create()); | 813 scoped_ptr<GpuBlacklist> blacklist(Create()); |
814 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 814 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
815 amd_switchable_json, GpuBlacklist::kAllOs)); | 815 amd_switchable_json, GpuBlacklist::kAllOs)); |
816 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 816 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
817 GpuBlacklist::kOsMacosx, os_version.get(), gpu_info); | 817 GpuBlacklist::kOsMacosx, &os_version, gpu_info); |
818 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 818 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
819 } | 819 } |
820 | 820 |
821 TEST_F(GpuBlacklistTest, LexicalDriverVersion) { | 821 TEST_F(GpuBlacklistTest, LexicalDriverVersion) { |
822 const std::string lexical_json = | 822 const std::string lexical_json = |
823 "{\n" | 823 "{\n" |
824 " \"name\": \"gpu blacklist\",\n" | 824 " \"name\": \"gpu blacklist\",\n" |
825 " \"version\": \"0.1\",\n" | 825 " \"version\": \"0.1\",\n" |
826 " \"entries\": [\n" | 826 " \"entries\": [\n" |
827 " {\n" | 827 " {\n" |
828 " \"id\": 1,\n" | 828 " \"id\": 1,\n" |
829 " \"os\": {\n" | 829 " \"os\": {\n" |
830 " \"type\": \"linux\"\n" | 830 " \"type\": \"linux\"\n" |
831 " },\n" | 831 " },\n" |
832 " \"vendor_id\": \"0x1002\",\n" | 832 " \"vendor_id\": \"0x1002\",\n" |
833 " \"driver_version\": {\n" | 833 " \"driver_version\": {\n" |
834 " \"op\": \"<\",\n" | 834 " \"op\": \"<\",\n" |
835 " \"style\": \"lexical\",\n" | 835 " \"style\": \"lexical\",\n" |
836 " \"number\": \"8.201\"\n" | 836 " \"number\": \"8.201\"\n" |
837 " },\n" | 837 " },\n" |
838 " \"blacklist\": [\n" | 838 " \"blacklist\": [\n" |
839 " \"webgl\"\n" | 839 " \"webgl\"\n" |
840 " ]\n" | 840 " ]\n" |
841 " }\n" | 841 " }\n" |
842 " ]\n" | 842 " ]\n" |
843 "}"; | 843 "}"; |
844 scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); | 844 Version os_version("10.6.4"); |
845 | 845 |
846 content::GPUInfo gpu_info; | 846 content::GPUInfo gpu_info; |
847 gpu_info.gpu.vendor_id = 0x1002; | 847 gpu_info.gpu.vendor_id = 0x1002; |
848 | 848 |
849 scoped_ptr<GpuBlacklist> blacklist(Create()); | 849 scoped_ptr<GpuBlacklist> blacklist(Create()); |
850 EXPECT_TRUE(blacklist->LoadGpuBlacklist( | 850 EXPECT_TRUE(blacklist->LoadGpuBlacklist( |
851 lexical_json, GpuBlacklist::kAllOs)); | 851 lexical_json, GpuBlacklist::kAllOs)); |
852 | 852 |
853 gpu_info.driver_version = "8.109"; | 853 gpu_info.driver_version = "8.109"; |
854 GpuFeatureType type = blacklist->DetermineGpuFeatureType( | 854 GpuFeatureType type = blacklist->DetermineGpuFeatureType( |
855 GpuBlacklist::kOsLinux, os_version.get(), gpu_info); | 855 GpuBlacklist::kOsLinux, &os_version, gpu_info); |
856 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 856 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
857 | 857 |
858 gpu_info.driver_version = "8.2"; | 858 gpu_info.driver_version = "8.2"; |
859 type = blacklist->DetermineGpuFeatureType( | 859 type = blacklist->DetermineGpuFeatureType( |
860 GpuBlacklist::kOsLinux, os_version.get(), gpu_info); | 860 GpuBlacklist::kOsLinux, &os_version, gpu_info); |
861 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); | 861 EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL); |
862 | 862 |
863 gpu_info.driver_version = "8.21"; | 863 gpu_info.driver_version = "8.21"; |
864 type = blacklist->DetermineGpuFeatureType( | 864 type = blacklist->DetermineGpuFeatureType( |
865 GpuBlacklist::kOsLinux, os_version.get(), gpu_info); | 865 GpuBlacklist::kOsLinux, &os_version, gpu_info); |
866 EXPECT_EQ(type, 0); | 866 EXPECT_EQ(type, 0); |
867 | 867 |
868 gpu_info.driver_version = "8.2010"; | 868 gpu_info.driver_version = "8.2010"; |
869 type = blacklist->DetermineGpuFeatureType( | 869 type = blacklist->DetermineGpuFeatureType( |
870 GpuBlacklist::kOsLinux, os_version.get(), gpu_info); | 870 GpuBlacklist::kOsLinux, &os_version, gpu_info); |
871 EXPECT_EQ(type, 0); | 871 EXPECT_EQ(type, 0); |
872 } | 872 } |
873 | |
OLD | NEW |