diff options
author | zmo@google.com <zmo@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-01 16:48:39 +0000 |
---|---|---|
committer | zmo@google.com <zmo@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-01 16:48:39 +0000 |
commit | 88a9e7842e67330861444184a0a3446c08eddd29 (patch) | |
tree | e471e90d1c3604f3ece870275f84d8db0fd6cf3f /content/browser/gpu_blacklist_unittest.cc | |
parent | b7a759d926a64789d8b397097b645a3d4051884d (diff) | |
download | chromium_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.cc | 69 |
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)); } |