summaryrefslogtreecommitdiffstats
path: root/content/browser/gpu_blacklist_unittest.cc
diff options
context:
space:
mode:
authorzmo@google.com <zmo@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-01 16:48:39 +0000
committerzmo@google.com <zmo@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-01 16:48:39 +0000
commit88a9e7842e67330861444184a0a3446c08eddd29 (patch)
treee471e90d1c3604f3ece870275f84d8db0fd6cf3f /content/browser/gpu_blacklist_unittest.cc
parentb7a759d926a64789d8b397097b645a3d4051884d (diff)
downloadchromium_src-88a9e7842e67330861444184a0a3446c08eddd29.zip
chromium_src-88a9e7842e67330861444184a0a3446c08eddd29.tar.gz
chromium_src-88a9e7842e67330861444184a0a3446c08eddd29.tar.bz2
Add a exception field to the GPU software rendering list entry, so in the future we can do whitelisting if we need to. This is an effort to improve software rendering list logic as much as we can before turning on auto-update, so we could avoid version issues in the future.
BUG=none TEST=unittest Review URL: http://codereview.chromium.org/6596061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76383 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/gpu_blacklist_unittest.cc')
-rw-r--r--content/browser/gpu_blacklist_unittest.cc69
1 files changed, 68 insertions, 1 deletions
diff --git a/content/browser/gpu_blacklist_unittest.cc b/content/browser/gpu_blacklist_unittest.cc
index b5ed07a..1b20e1b 100644
--- a/content/browser/gpu_blacklist_unittest.cc
+++ b/content/browser/gpu_blacklist_unittest.cc
@@ -142,7 +142,6 @@ TEST(GpuBlacklistTest, BlacklistLogic) {
static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
#endif
-
// Blacklist a vendor on Linux only.
const std::string vendor_linux_json =
"{\n"
@@ -173,5 +172,73 @@ TEST(GpuBlacklistTest, BlacklistLogic) {
EXPECT_EQ(
flags.flags(),
static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAccelerated2dCanvas));
+
+ // Blacklist all cards in Linux except NVIDIA.
+ const std::string linux_except_nvidia_json =
+ "{\n"
+ " \"name\": \"gpu blacklist\",\n"
+ " \"version\": \"0.1\",\n"
+ " \"entries\": [\n"
+ " {\n"
+ " \"id\": \"1\",\n"
+ " \"os\": {\n"
+ " \"type\": \"linux\"\n"
+ " },\n"
+ " \"exceptions\": [\n"
+ " {\n"
+ " \"vendor_id\": \"0x10de\"\n"
+ " }\n"
+ " ],\n"
+ " \"blacklist\": [\n"
+ " \"accelerated_2d_canvas\"\n"
+ " ]\n"
+ " }\n"
+ " ]\n"
+ "}";
+ EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_nvidia_json, false));
+ flags = blacklist.DetermineGpuFeatureFlags(
+ GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
+ EXPECT_EQ(flags.flags(), 0u);
+ flags = blacklist.DetermineGpuFeatureFlags(
+ GpuBlacklist::kOsWin, os_version.get(), gpu_info);
+ EXPECT_EQ(flags.flags(), 0u);
+ flags = blacklist.DetermineGpuFeatureFlags(
+ GpuBlacklist::kOsLinux, os_version.get(), gpu_info);
+ EXPECT_EQ(flags.flags(), 0u);
+
+ // Blacklist all cards in Linux except Intel.
+ const std::string linux_except_intel_json =
+ "{\n"
+ " \"name\": \"gpu blacklist\",\n"
+ " \"version\": \"0.1\",\n"
+ " \"entries\": [\n"
+ " {\n"
+ " \"id\": \"1\",\n"
+ " \"os\": {\n"
+ " \"type\": \"linux\"\n"
+ " },\n"
+ " \"exceptions\": [\n"
+ " {\n"
+ " \"vendor_id\": \"0x8086\"\n"
+ " }\n"
+ " ],\n"
+ " \"blacklist\": [\n"
+ " \"accelerated_2d_canvas\"\n"
+ " ]\n"
+ " }\n"
+ " ]\n"
+ "}";
+ EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_intel_json, false));
+ flags = blacklist.DetermineGpuFeatureFlags(
+ GpuBlacklist::kOsMacosx, os_version.get(), gpu_info);
+ EXPECT_EQ(flags.flags(), 0u);
+ flags = blacklist.DetermineGpuFeatureFlags(
+ GpuBlacklist::kOsWin, os_version.get(), gpu_info);
+ EXPECT_EQ(flags.flags(), 0u);
+ flags = blacklist.DetermineGpuFeatureFlags(
+ GpuBlacklist::kOsLinux, os_version.get(), gpu_info);
+ EXPECT_EQ(
+ flags.flags(),
+ static_cast<uint32>(GpuFeatureFlags::kGpuFeatureAccelerated2dCanvas));
}