| Index: content/browser/gpu/gpu_blacklist_unittest.cc
|
| ===================================================================
|
| --- content/browser/gpu/gpu_blacklist_unittest.cc (revision 98082)
|
| +++ content/browser/gpu/gpu_blacklist_unittest.cc (working copy)
|
| @@ -57,10 +57,11 @@
|
| data_file_size);
|
| std::string json_string(data.get(), data_file_size);
|
| GpuBlacklist blacklist("1.0");
|
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(json_string, true));
|
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(json_string, GpuBlacklist::kAllOs));
|
| + EXPECT_FALSE(blacklist.contains_unknown_fields());
|
| }
|
|
|
| -TEST_F(GpuBlacklistTest, DeafaultBlacklistSettings) {
|
| +TEST_F(GpuBlacklistTest, DefaultBlacklistSettings) {
|
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
|
| GpuBlacklist blacklist("1.0");
|
| // Default blacklist settings: all feature are allowed.
|
| @@ -81,7 +82,8 @@
|
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
|
| GpuBlacklist blacklist("1.0");
|
|
|
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(empty_list_json, false));
|
| + EXPECT_TRUE(
|
| + blacklist.LoadGpuBlacklist(empty_list_json, GpuBlacklist::kAllOs));
|
| uint16 major, minor;
|
| EXPECT_TRUE(blacklist.GetVersion(&major, &minor));
|
| EXPECT_EQ(major, 2u);
|
| @@ -122,7 +124,8 @@
|
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
|
| GpuBlacklist blacklist("1.0");
|
|
|
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(exact_list_json, false));
|
| + EXPECT_TRUE(
|
| + blacklist.LoadGpuBlacklist(exact_list_json, GpuBlacklist::kAllOs));
|
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
|
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
|
| EXPECT_EQ(
|
| @@ -132,7 +135,7 @@
|
| // Invalid json input should not change the current blacklist settings.
|
| const std::string invalid_json = "invalid";
|
|
|
| - EXPECT_FALSE(blacklist.LoadGpuBlacklist(invalid_json, false));
|
| + EXPECT_FALSE(blacklist.LoadGpuBlacklist(invalid_json, GpuBlacklist::kAllOs));
|
| flags = blacklist.DetermineGpuFeatureFlags(
|
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
|
| EXPECT_EQ(
|
| @@ -170,7 +173,7 @@
|
| GpuBlacklist blacklist("1.0");
|
|
|
| // Blacklist entries won't be filtered to the current OS only upon loading.
|
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, false));
|
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, GpuBlacklist::kAllOs));
|
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
|
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
|
| EXPECT_EQ(flags.flags(),
|
| @@ -185,7 +188,8 @@
|
| static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
|
| #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
|
| // Blacklist entries will be filtered to the current OS only upon loading.
|
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, true));
|
| + EXPECT_TRUE(
|
| + blacklist.LoadGpuBlacklist(vendor_json, GpuBlacklist::kCurrentOsOnly));
|
| flags = blacklist.DetermineGpuFeatureFlags(
|
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
|
| EXPECT_EQ(flags.flags(),
|
| @@ -223,7 +227,8 @@
|
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
|
| GpuBlacklist blacklist("1.0");
|
|
|
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_linux_json, false));
|
| + EXPECT_TRUE(
|
| + blacklist.LoadGpuBlacklist(vendor_linux_json, GpuBlacklist::kAllOs));
|
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
|
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
|
| EXPECT_EQ(flags.flags(), 0u);
|
| @@ -263,7 +268,8 @@
|
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
|
| GpuBlacklist blacklist("1.0");
|
|
|
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_nvidia_json, false));
|
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_nvidia_json,
|
| + GpuBlacklist::kAllOs));
|
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
|
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
|
| EXPECT_EQ(flags.flags(), 0u);
|
| @@ -301,7 +307,8 @@
|
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
|
| GpuBlacklist blacklist("1.0");
|
|
|
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_intel_json, false));
|
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_intel_json,
|
| + GpuBlacklist::kAllOs));
|
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
|
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
|
| EXPECT_EQ(flags.flags(), 0u);
|
| @@ -340,7 +347,8 @@
|
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
|
| GpuBlacklist blacklist("1.0");
|
|
|
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(date_windows_json, false));
|
| + EXPECT_TRUE(
|
| + blacklist.LoadGpuBlacklist(date_windows_json, GpuBlacklist::kAllOs));
|
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
|
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
|
| EXPECT_EQ(flags.flags(), 0u);
|
| @@ -373,7 +381,7 @@
|
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
|
| GpuBlacklist blacklist("1.0");
|
|
|
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, false));
|
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, GpuBlacklist::kAllOs));
|
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
|
| GpuBlacklist::kOsMacosx, os_version.get(), gpu_info());
|
| EXPECT_EQ(flags.flags(),
|
| @@ -408,7 +416,7 @@
|
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
|
| GpuBlacklist blacklist("1.0");
|
|
|
| - EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, false));
|
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, GpuBlacklist::kAllOs));
|
| GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
|
| GpuBlacklist::kOsChromeOS, os_version.get(), gpu_info());
|
| EXPECT_EQ(flags.flags(),
|
| @@ -439,13 +447,15 @@
|
| scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
|
|
|
| GpuBlacklist blacklist9("9.0");
|
| - EXPECT_TRUE(blacklist9.LoadGpuBlacklist(browser_version_json, false));
|
| + EXPECT_TRUE(
|
| + blacklist9.LoadGpuBlacklist(browser_version_json, GpuBlacklist::kAllOs));
|
| GpuFeatureFlags flags = blacklist9.DetermineGpuFeatureFlags(
|
| GpuBlacklist::kOsWin, os_version.get(), gpu_info());
|
| EXPECT_EQ(flags.flags(), 0u);
|
|
|
| GpuBlacklist blacklist10("10.0");
|
| - EXPECT_TRUE(blacklist10.LoadGpuBlacklist(browser_version_json, false));
|
| + EXPECT_TRUE(
|
| + blacklist10.LoadGpuBlacklist(browser_version_json, GpuBlacklist::kAllOs));
|
| flags = blacklist10.DetermineGpuFeatureFlags(
|
| GpuBlacklist::kOsWin, os_version.get(), gpu_info());
|
| EXPECT_EQ(flags.flags(),
|
| @@ -470,6 +480,114 @@
|
| "}";
|
| GpuBlacklist blacklist("1.0");
|
|
|
| - EXPECT_FALSE(blacklist.LoadGpuBlacklist(malformed_vendor_json, false));
|
| + EXPECT_FALSE(
|
| + blacklist.LoadGpuBlacklist(malformed_vendor_json, GpuBlacklist::kAllOs));
|
| }
|
|
|
| +TEST_F(GpuBlacklistTest, UnknownField) {
|
| + const std::string unknown_field_json =
|
| + "{\n"
|
| + " \"name\": \"gpu blacklist\",\n"
|
| + " \"version\": \"0.1\",\n"
|
| + " \"entries\": [\n"
|
| + " {\n"
|
| + " \"id\": 1,\n"
|
| + " \"unknown_field\": 0,\n"
|
| + " \"blacklist\": [\n"
|
| + " \"accelerated_2d_canvas\"\n"
|
| + " ]\n"
|
| + " },\n"
|
| + " {\n"
|
| + " \"id\": 2,\n"
|
| + " \"blacklist\": [\n"
|
| + " \"webgl\"\n"
|
| + " ]\n"
|
| + " }\n"
|
| + " ]\n"
|
| + "}";
|
| + scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
|
| + GpuBlacklist blacklist("1.0");
|
| +
|
| + EXPECT_TRUE(
|
| + blacklist.LoadGpuBlacklist(unknown_field_json, GpuBlacklist::kAllOs));
|
| + EXPECT_EQ(1u, blacklist.num_entries());
|
| + EXPECT_TRUE(blacklist.contains_unknown_fields());
|
| + GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
|
| + GpuBlacklist::kOsWin, os_version.get(), gpu_info());
|
| + EXPECT_EQ(flags.flags(),
|
| + static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
|
| +}
|
| +
|
| +TEST_F(GpuBlacklistTest, UnknownExceptionField) {
|
| + const std::string unknown_exception_field_json =
|
| + "{\n"
|
| + " \"name\": \"gpu blacklist\",\n"
|
| + " \"version\": \"0.1\",\n"
|
| + " \"entries\": [\n"
|
| + " {\n"
|
| + " \"id\": 1,\n"
|
| + " \"unknown_field\": 0,\n"
|
| + " \"blacklist\": [\n"
|
| + " \"accelerated_compositing\"\n"
|
| + " ]\n"
|
| + " },\n"
|
| + " {\n"
|
| + " \"id\": 2,\n"
|
| + " \"exceptions\": [\n"
|
| + " {\n"
|
| + " \"unknown_field\": 0\n"
|
| + " }\n"
|
| + " ],\n"
|
| + " \"blacklist\": [\n"
|
| + " \"accelerated_2d_canvas\"\n"
|
| + " ]\n"
|
| + " },\n"
|
| + " {\n"
|
| + " \"id\": 3,\n"
|
| + " \"blacklist\": [\n"
|
| + " \"webgl\"\n"
|
| + " ]\n"
|
| + " }\n"
|
| + " ]\n"
|
| + "}";
|
| + scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
|
| + GpuBlacklist blacklist("1.0");
|
| +
|
| + EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_exception_field_json,
|
| + GpuBlacklist::kAllOs));
|
| + EXPECT_EQ(1u, blacklist.num_entries());
|
| + EXPECT_TRUE(blacklist.contains_unknown_fields());
|
| + GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
|
| + GpuBlacklist::kOsWin, os_version.get(), gpu_info());
|
| + EXPECT_EQ(flags.flags(),
|
| + static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
|
| +}
|
| +
|
| +TEST_F(GpuBlacklistTest, UnknownFeature) {
|
| + const std::string unknown_feature_json =
|
| + "{\n"
|
| + " \"name\": \"gpu blacklist\",\n"
|
| + " \"version\": \"0.1\",\n"
|
| + " \"entries\": [\n"
|
| + " {\n"
|
| + " \"id\": 1,\n"
|
| + " \"blacklist\": [\n"
|
| + " \"accelerated_something\",\n"
|
| + " \"webgl\"\n"
|
| + " ]\n"
|
| + " }\n"
|
| + " ]\n"
|
| + "}";
|
| + scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4"));
|
| + GpuBlacklist blacklist("1.0");
|
| +
|
| + EXPECT_TRUE(
|
| + blacklist.LoadGpuBlacklist(unknown_feature_json, GpuBlacklist::kAllOs));
|
| + EXPECT_EQ(1u, blacklist.num_entries());
|
| + EXPECT_TRUE(blacklist.contains_unknown_fields());
|
| + GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags(
|
| + GpuBlacklist::kOsWin, os_version.get(), gpu_info());
|
| + EXPECT_EQ(flags.flags(),
|
| + static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
|
| +}
|
| +
|
|
|