Index: chrome/browser/prefs/tracked/pref_hash_browsertest.cc |
diff --git a/chrome/browser/prefs/tracked/pref_hash_browsertest.cc b/chrome/browser/prefs/tracked/pref_hash_browsertest.cc |
index f77616a6b84ab5faa574b096939d1e39677681e3..7703e89b68c07dd46165d956894f66885c52b3b6 100644 |
--- a/chrome/browser/prefs/tracked/pref_hash_browsertest.cc |
+++ b/chrome/browser/prefs/tracked/pref_hash_browsertest.cc |
@@ -38,10 +38,6 @@ |
#include "chromeos/chromeos_switches.h" |
#endif |
-#if defined(OS_WIN) |
-#include "base/test/test_reg_util_win.h" |
-#endif |
- |
namespace { |
// Extension ID of chrome/test/data/extensions/good.crx |
@@ -60,27 +56,14 @@ |
ALLOW_ANY |
}; |
-#if defined(OS_WIN) |
-base::string16 GetRegistryPathForTestProfile() { |
- base::FilePath profile_dir; |
- EXPECT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &profile_dir)); |
- return L"SOFTWARE\\Chromium\\PrefHashBrowserTest\\" + |
- profile_dir.BaseName().value(); |
-} |
-#endif |
- |
// Returns the number of times |histogram_name| was reported so far; adding the |
// results of the first 100 buckets (there are only ~19 reporting IDs as of this |
// writing; varies depending on the platform). |allowed_buckets| hints at extra |
// requirements verified in this method (see AllowedBuckets for details). |
int GetTrackedPrefHistogramCount(const char* histogram_name, |
- const char* histogram_suffix, |
int allowed_buckets) { |
- std::string full_histogram_name(histogram_name); |
- if (*histogram_suffix) |
- full_histogram_name.append(".").append(histogram_suffix); |
const base::HistogramBase* histogram = |
- base::StatisticsRecorder::FindHistogram(full_histogram_name); |
+ base::StatisticsRecorder::FindHistogram(histogram_name); |
if (!histogram) |
return 0; |
@@ -97,13 +80,6 @@ |
} |
} |
return sum; |
-} |
- |
-// Helper function to call GetTrackedPrefHistogramCount with no external |
-// validation suffix. |
-int GetTrackedPrefHistogramCount(const char* histogram_name, |
- int allowed_buckets) { |
- return GetTrackedPrefHistogramCount(histogram_name, "", allowed_buckets); |
} |
std::unique_ptr<base::DictionaryValue> ReadPrefsDictionary( |
@@ -123,16 +99,6 @@ |
} |
return std::unique_ptr<base::DictionaryValue>( |
static_cast<base::DictionaryValue*>(prefs.release())); |
-} |
- |
-// Returns whether external validation is supported on the platform through |
-// storing MACs in the registry. |
-bool SupportsRegistryValidation() { |
-#if defined(OS_WIN) |
- return true; |
-#else |
- return false; |
-#endif |
} |
#define PREF_HASH_BROWSER_TEST(fixture, test_name) \ |
@@ -267,44 +233,6 @@ |
// Bots are on a domain, turn off the domain check for settings hardening in |
// order to be able to test all SettingsEnforcement groups. |
chrome_prefs::DisableDomainCheckForTesting(); |
- |
-#if defined(OS_WIN) |
- // Avoid polluting prefs for the user and the bots by writing to a specific |
- // testing registry path. |
- registry_key_for_external_validation_ = GetRegistryPathForTestProfile(); |
- ProfilePrefStoreManager::SetPreferenceValidationRegistryPathForTesting( |
- ®istry_key_for_external_validation_); |
- |
- // Keys should be unique, but to avoid flakes in the long run make sure an |
- // identical test key wasn't left behind by a previous test. |
- if (IsPRETest()) { |
- base::win::RegKey key; |
- if (key.Open(HKEY_CURRENT_USER, |
- registry_key_for_external_validation_.c_str(), |
- KEY_SET_VALUE | KEY_WOW64_32KEY) == ERROR_SUCCESS) { |
- LONG result = key.DeleteKey(L""); |
- ASSERT_TRUE(result == ERROR_SUCCESS || result == ERROR_FILE_NOT_FOUND); |
- } |
- } |
-#endif |
- } |
- |
- void TearDown() override { |
-#if defined(OS_WIN) |
- // When done, delete the Registry key to avoid polluting the registry. |
- // TODO(proberge): it would be nice to delete keys from interrupted tests |
- // as well. |
- if (!IsPRETest()) { |
- base::string16 registry_key = GetRegistryPathForTestProfile(); |
- base::win::RegKey key; |
- if (key.Open(HKEY_CURRENT_USER, registry_key.c_str(), |
- KEY_SET_VALUE | KEY_WOW64_32KEY) == ERROR_SUCCESS) { |
- LONG result = key.DeleteKey(L""); |
- ASSERT_TRUE(result == ERROR_SUCCESS || result == ERROR_FILE_NOT_FOUND); |
- } |
- } |
-#endif |
- ExtensionBrowserTest::TearDown(); |
} |
// In the PRE_ test, find the number of tracked preferences that were |
@@ -337,23 +265,6 @@ |
BEGIN_ALLOW_SINGLE_BUCKET + 5); |
EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, |
num_split_tracked_prefs); |
- |
- if (SupportsRegistryValidation()) { |
- // Same checks as above, but for the registry. |
- num_tracked_prefs_ = GetTrackedPrefHistogramCount( |
- user_prefs::tracked::kTrackedPrefHistogramNullInitialized, |
- user_prefs::tracked::kTrackedPrefRegistryValidationSuffix, |
- ALLOW_ANY); |
- EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM, |
- num_tracked_prefs_ > 0); |
- |
- int num_split_tracked_prefs = GetTrackedPrefHistogramCount( |
- user_prefs::tracked::kTrackedPrefHistogramUnchanged, |
- user_prefs::tracked::kTrackedPrefRegistryValidationSuffix, |
- BEGIN_ALLOW_SINGLE_BUCKET + 5); |
- EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, |
- num_split_tracked_prefs); |
- } |
num_tracked_prefs_ += num_split_tracked_prefs; |
@@ -442,10 +353,6 @@ |
} |
int num_tracked_prefs_; |
- |
-#if defined(OS_WIN) |
- base::string16 registry_key_for_external_validation_; |
-#endif |
}; |
} // namespace |
@@ -500,17 +407,6 @@ |
0, GetTrackedPrefHistogramCount( |
user_prefs::tracked::kTrackedPrefHistogramMigratedLegacyDeviceId, |
ALLOW_NONE)); |
- |
- if (SupportsRegistryValidation()) { |
- // Expect all prefs to be reported as Unchanged. |
- EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM |
- ? num_tracked_prefs() |
- : 0, |
- GetTrackedPrefHistogramCount( |
- user_prefs::tracked::kTrackedPrefHistogramUnchanged, |
- user_prefs::tracked::kTrackedPrefRegistryValidationSuffix, |
- ALLOW_ANY)); |
- } |
} |
}; |
@@ -601,15 +497,6 @@ |
0, GetTrackedPrefHistogramCount( |
user_prefs::tracked::kTrackedPrefHistogramMigratedLegacyDeviceId, |
ALLOW_NONE)); |
- |
- if (SupportsRegistryValidation()) { |
- // Expect homepage clearance to have been noticed by registry validation. |
- EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, |
- GetTrackedPrefHistogramCount( |
- user_prefs::tracked::kTrackedPrefHistogramCleared, |
- user_prefs::tracked::kTrackedPrefRegistryValidationSuffix, |
- BEGIN_ALLOW_SINGLE_BUCKET + 2)); |
- } |
} |
}; |
@@ -732,18 +619,6 @@ |
0, GetTrackedPrefHistogramCount( |
user_prefs::tracked::kTrackedPrefHistogramMigratedLegacyDeviceId, |
ALLOW_NONE)); |
- |
- if (SupportsRegistryValidation()) { |
- // The MACs have been cleared but the preferences have not been tampered. |
- // The registry should report all prefs as unchanged. |
- EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM |
- ? num_tracked_prefs() |
- : 0, |
- GetTrackedPrefHistogramCount( |
- user_prefs::tracked::kTrackedPrefHistogramUnchanged, |
- user_prefs::tracked::kTrackedPrefRegistryValidationSuffix, |
- ALLOW_ANY)); |
- } |
} |
}; |
@@ -834,15 +709,6 @@ |
0, GetTrackedPrefHistogramCount( |
user_prefs::tracked::kTrackedPrefHistogramMigratedLegacyDeviceId, |
ALLOW_NONE)); |
- |
- if (SupportsRegistryValidation()) { |
- // Expect a single Changed event for tracked pref #4 (startup URLs). |
- EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, |
- GetTrackedPrefHistogramCount( |
- user_prefs::tracked::kTrackedPrefHistogramChanged, |
- user_prefs::tracked::kTrackedPrefRegistryValidationSuffix, |
- BEGIN_ALLOW_SINGLE_BUCKET + 4)); |
- } |
} |
}; |
@@ -940,16 +806,6 @@ |
0, GetTrackedPrefHistogramCount( |
user_prefs::tracked::kTrackedPrefHistogramMigratedLegacyDeviceId, |
ALLOW_NONE)); |
- |
- if (SupportsRegistryValidation()) { |
- // Expect that the registry validation caught the invalid MAC in split |
- // pref #5 (extensions). |
- EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, |
- GetTrackedPrefHistogramCount( |
- user_prefs::tracked::kTrackedPrefHistogramChanged, |
- user_prefs::tracked::kTrackedPrefRegistryValidationSuffix, |
- BEGIN_ALLOW_SINGLE_BUCKET + 5)); |
- } |
} |
}; |
@@ -1023,17 +879,6 @@ |
0, GetTrackedPrefHistogramCount( |
user_prefs::tracked::kTrackedPrefHistogramMigratedLegacyDeviceId, |
ALLOW_NONE)); |
- |
- if (SupportsRegistryValidation()) { |
- EXPECT_EQ((protection_level_ > PROTECTION_DISABLED_ON_PLATFORM && |
- protection_level_ < PROTECTION_ENABLED_BASIC) |
- ? changed_expected |
- : 0, |
- GetTrackedPrefHistogramCount( |
- user_prefs::tracked::kTrackedPrefHistogramChanged, |
- user_prefs::tracked::kTrackedPrefRegistryValidationSuffix, |
- BEGIN_ALLOW_SINGLE_BUCKET + 3)); |
- } |
} |
}; |
@@ -1108,66 +953,8 @@ |
0, GetTrackedPrefHistogramCount( |
user_prefs::tracked::kTrackedPrefHistogramMigratedLegacyDeviceId, |
ALLOW_NONE)); |
- |
- if (SupportsRegistryValidation()) { |
- EXPECT_EQ(changed_expected, |
- GetTrackedPrefHistogramCount( |
- user_prefs::tracked::kTrackedPrefHistogramChanged, |
- user_prefs::tracked::kTrackedPrefRegistryValidationSuffix, |
- BEGIN_ALLOW_SINGLE_BUCKET + 2)); |
- EXPECT_EQ(cleared_expected, |
- GetTrackedPrefHistogramCount( |
- user_prefs::tracked::kTrackedPrefHistogramCleared, |
- user_prefs::tracked::kTrackedPrefRegistryValidationSuffix, |
- BEGIN_ALLOW_SINGLE_BUCKET + 2)); |
- } |
} |
}; |
PREF_HASH_BROWSER_TEST(PrefHashBrowserTestUntrustedAdditionToPrefsAfterWipe, |
UntrustedAdditionToPrefsAfterWipe); |
- |
-#if defined(OS_WIN) |
-class PrefHashBrowserTestRegistryValidationFailure |
- : public PrefHashBrowserTestBase { |
- public: |
- void SetupPreferences() override { |
- profile()->GetPrefs()->SetString(prefs::kHomePage, "http://example.com"); |
- } |
- |
- void AttackPreferencesOnDisk( |
- base::DictionaryValue* unprotected_preferences, |
- base::DictionaryValue* protected_preferences) override { |
- base::string16 registry_key = |
- GetRegistryPathForTestProfile() + L"\\PreferenceMACs\\Default"; |
- base::win::RegKey key; |
- ASSERT_EQ(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, registry_key.c_str(), |
- KEY_SET_VALUE | KEY_WOW64_32KEY)); |
- // An incorrect hash should still have the correct size. |
- ASSERT_EQ(ERROR_SUCCESS, |
- key.WriteValue(L"homepage", base::string16(64, 'A').c_str())); |
- } |
- |
- void VerifyReactionToPrefAttack() override { |
- EXPECT_EQ( |
- protection_level_ > PROTECTION_DISABLED_ON_PLATFORM |
- ? num_tracked_prefs() |
- : 0, |
- GetTrackedPrefHistogramCount( |
- user_prefs::tracked::kTrackedPrefHistogramUnchanged, ALLOW_ANY)); |
- |
- if (SupportsRegistryValidation()) { |
- // Expect that the registry validation caught the invalid MAC for pref #2 |
- // (homepage). |
- EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, |
- GetTrackedPrefHistogramCount( |
- user_prefs::tracked::kTrackedPrefHistogramChanged, |
- user_prefs::tracked::kTrackedPrefRegistryValidationSuffix, |
- BEGIN_ALLOW_SINGLE_BUCKET + 2)); |
- } |
- } |
-}; |
- |
-PREF_HASH_BROWSER_TEST(PrefHashBrowserTestRegistryValidationFailure, |
- RegistryValidationFailure); |
-#endif |