| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/base_switches.h" | 7 #include "base/base_switches.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 #include "chrome/browser/prefs/chrome_pref_service_factory.h" | 25 #include "chrome/browser/prefs/chrome_pref_service_factory.h" |
| 26 #include "chrome/browser/prefs/profile_pref_store_manager.h" | 26 #include "chrome/browser/prefs/profile_pref_store_manager.h" |
| 27 #include "chrome/browser/prefs/session_startup_pref.h" | 27 #include "chrome/browser/prefs/session_startup_pref.h" |
| 28 #include "chrome/browser/profiles/profile.h" | 28 #include "chrome/browser/profiles/profile.h" |
| 29 #include "chrome/browser/ui/browser.h" | 29 #include "chrome/browser/ui/browser.h" |
| 30 #include "chrome/common/chrome_constants.h" | 30 #include "chrome/common/chrome_constants.h" |
| 31 #include "chrome/common/chrome_paths.h" | 31 #include "chrome/common/chrome_paths.h" |
| 32 #include "chrome/common/pref_names.h" | 32 #include "chrome/common/pref_names.h" |
| 33 #include "chrome/test/base/testing_profile.h" | 33 #include "chrome/test/base/testing_profile.h" |
| 34 #include "components/search_engines/default_search_manager.h" | 34 #include "components/search_engines/default_search_manager.h" |
| 35 #include "components/user_prefs/tracked/pref_names.h" |
| 35 #include "extensions/browser/pref_names.h" | 36 #include "extensions/browser/pref_names.h" |
| 36 #include "extensions/common/extension.h" | 37 #include "extensions/common/extension.h" |
| 37 | 38 |
| 38 #if defined(OS_CHROMEOS) | 39 #if defined(OS_CHROMEOS) |
| 39 #include "chromeos/chromeos_switches.h" | 40 #include "chromeos/chromeos_switches.h" |
| 40 #endif | 41 #endif |
| 41 | 42 |
| 42 namespace { | 43 namespace { |
| 43 | 44 |
| 44 // Extension ID of chrome/test/data/extensions/good.crx | 45 // Extension ID of chrome/test/data/extensions/good.crx |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 const char kNumTrackedPrefFilename[] = "NumTrackedPrefs"; | 248 const char kNumTrackedPrefFilename[] = "NumTrackedPrefs"; |
| 248 | 249 |
| 249 base::FilePath num_tracked_prefs_file; | 250 base::FilePath num_tracked_prefs_file; |
| 250 ASSERT_TRUE( | 251 ASSERT_TRUE( |
| 251 PathService::Get(chrome::DIR_USER_DATA, &num_tracked_prefs_file)); | 252 PathService::Get(chrome::DIR_USER_DATA, &num_tracked_prefs_file)); |
| 252 num_tracked_prefs_file = | 253 num_tracked_prefs_file = |
| 253 num_tracked_prefs_file.AppendASCII(kNumTrackedPrefFilename); | 254 num_tracked_prefs_file.AppendASCII(kNumTrackedPrefFilename); |
| 254 | 255 |
| 255 if (IsPRETest()) { | 256 if (IsPRETest()) { |
| 256 num_tracked_prefs_ = GetTrackedPrefHistogramCount( | 257 num_tracked_prefs_ = GetTrackedPrefHistogramCount( |
| 257 "Settings.TrackedPreferenceNullInitialized", ALLOW_ANY); | 258 user_tracked_prefs::kTrackedPreferenceNullInitialized, ALLOW_ANY); |
| 258 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM, | 259 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM, |
| 259 num_tracked_prefs_ > 0); | 260 num_tracked_prefs_ > 0); |
| 260 | 261 |
| 261 // Split tracked prefs are reported as Unchanged not as NullInitialized | 262 // Split tracked prefs are reported as Unchanged not as NullInitialized |
| 262 // when an empty dictionary is encountered on first run (this should only | 263 // when an empty dictionary is encountered on first run (this should only |
| 263 // hit for pref #5 in the current design). | 264 // hit for pref #5 in the current design). |
| 264 int num_split_tracked_prefs = GetTrackedPrefHistogramCount( | 265 int num_split_tracked_prefs = GetTrackedPrefHistogramCount( |
| 265 "Settings.TrackedPreferenceUnchanged", BEGIN_ALLOW_SINGLE_BUCKET + 5); | 266 user_tracked_prefs::kTrackedPreferenceUnchanged, |
| 267 BEGIN_ALLOW_SINGLE_BUCKET + 5); |
| 266 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, | 268 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, |
| 267 num_split_tracked_prefs); | 269 num_split_tracked_prefs); |
| 268 | 270 |
| 269 num_tracked_prefs_ += num_split_tracked_prefs; | 271 num_tracked_prefs_ += num_split_tracked_prefs; |
| 270 | 272 |
| 271 std::string num_tracked_prefs_str = base::IntToString(num_tracked_prefs_); | 273 std::string num_tracked_prefs_str = base::IntToString(num_tracked_prefs_); |
| 272 EXPECT_EQ(static_cast<int>(num_tracked_prefs_str.size()), | 274 EXPECT_EQ(static_cast<int>(num_tracked_prefs_str.size()), |
| 273 base::WriteFile(num_tracked_prefs_file, | 275 base::WriteFile(num_tracked_prefs_file, |
| 274 num_tracked_prefs_str.c_str(), | 276 num_tracked_prefs_str.c_str(), |
| 275 num_tracked_prefs_str.size())); | 277 num_tracked_prefs_str.size())); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 | 369 |
| 368 void AttackPreferencesOnDisk( | 370 void AttackPreferencesOnDisk( |
| 369 base::DictionaryValue* unprotected_preferences, | 371 base::DictionaryValue* unprotected_preferences, |
| 370 base::DictionaryValue* protected_preferences) override { | 372 base::DictionaryValue* protected_preferences) override { |
| 371 // No attack. | 373 // No attack. |
| 372 } | 374 } |
| 373 | 375 |
| 374 void VerifyReactionToPrefAttack() override { | 376 void VerifyReactionToPrefAttack() override { |
| 375 // Expect all prefs to be reported as Unchanged with no resets. | 377 // Expect all prefs to be reported as Unchanged with no resets. |
| 376 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM | 378 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM |
| 377 ? num_tracked_prefs() : 0, | 379 ? num_tracked_prefs() |
| 380 : 0, |
| 378 GetTrackedPrefHistogramCount( | 381 GetTrackedPrefHistogramCount( |
| 379 "Settings.TrackedPreferenceUnchanged", ALLOW_ANY)); | 382 user_tracked_prefs::kTrackedPreferenceUnchanged, ALLOW_ANY)); |
| 380 EXPECT_EQ(0, | 383 EXPECT_EQ( |
| 381 GetTrackedPrefHistogramCount( | 384 0, GetTrackedPrefHistogramCount( |
| 382 "Settings.TrackedPreferenceWantedReset", ALLOW_NONE)); | 385 user_tracked_prefs::kTrackedPreferenceWantedReset, ALLOW_NONE)); |
| 383 EXPECT_EQ(0, | 386 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 384 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceReset", | 387 user_tracked_prefs::kTrackedPreferenceReset, ALLOW_NONE)); |
| 385 ALLOW_NONE)); | |
| 386 | 388 |
| 387 // Nothing else should have triggered. | 389 // Nothing else should have triggered. |
| 388 EXPECT_EQ(0, | 390 EXPECT_EQ(0, |
| 389 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceChanged", | 391 GetTrackedPrefHistogramCount( |
| 390 ALLOW_NONE)); | 392 user_tracked_prefs::kTrackedPreferenceChanged, ALLOW_NONE)); |
| 391 EXPECT_EQ(0, | |
| 392 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceCleared", | |
| 393 ALLOW_NONE)); | |
| 394 EXPECT_EQ(0, | 393 EXPECT_EQ(0, |
| 395 GetTrackedPrefHistogramCount( | 394 GetTrackedPrefHistogramCount( |
| 396 "Settings.TrackedPreferenceInitialized", ALLOW_NONE)); | 395 user_tracked_prefs::kTrackedPreferenceCleared, ALLOW_NONE)); |
| 396 EXPECT_EQ( |
| 397 0, GetTrackedPrefHistogramCount( |
| 398 user_tracked_prefs::kTrackedPreferenceInitialized, ALLOW_NONE)); |
| 399 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 400 user_tracked_prefs::kTrackedPreferenceTrustedInitialized, |
| 401 ALLOW_NONE)); |
| 402 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 403 user_tracked_prefs::kTrackedPreferenceNullInitialized, |
| 404 ALLOW_NONE)); |
| 397 EXPECT_EQ(0, | 405 EXPECT_EQ(0, |
| 398 GetTrackedPrefHistogramCount( | 406 GetTrackedPrefHistogramCount( |
| 399 "Settings.TrackedPreferenceTrustedInitialized", ALLOW_NONE)); | 407 user_tracked_prefs::kTrackedPreferenceMigratedLegacyDeviceId, |
| 400 EXPECT_EQ(0, | 408 ALLOW_NONE)); |
| 401 GetTrackedPrefHistogramCount( | |
| 402 "Settings.TrackedPreferenceNullInitialized", ALLOW_NONE)); | |
| 403 EXPECT_EQ( | |
| 404 0, | |
| 405 GetTrackedPrefHistogramCount( | |
| 406 "Settings.TrackedPreferenceMigratedLegacyDeviceId", ALLOW_NONE)); | |
| 407 } | 409 } |
| 408 }; | 410 }; |
| 409 | 411 |
| 410 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestUnchangedDefault, UnchangedDefault); | 412 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestUnchangedDefault, UnchangedDefault); |
| 411 | 413 |
| 412 // Augments PrefHashBrowserTestUnchangedDefault to confirm that nothing is reset | 414 // Augments PrefHashBrowserTestUnchangedDefault to confirm that nothing is reset |
| 413 // when nothing is tampered with, even if Chrome itself wrote custom prefs in | 415 // when nothing is tampered with, even if Chrome itself wrote custom prefs in |
| 414 // its last run. | 416 // its last run. |
| 415 class PrefHashBrowserTestUnchangedCustom | 417 class PrefHashBrowserTestUnchangedCustom |
| 416 : public PrefHashBrowserTestUnchangedDefault { | 418 : public PrefHashBrowserTestUnchangedDefault { |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 453 // it. | 455 // it. |
| 454 EXPECT_TRUE(selected_prefs); | 456 EXPECT_TRUE(selected_prefs); |
| 455 EXPECT_TRUE(selected_prefs->Remove(prefs::kHomePage, NULL)); | 457 EXPECT_TRUE(selected_prefs->Remove(prefs::kHomePage, NULL)); |
| 456 } | 458 } |
| 457 | 459 |
| 458 void VerifyReactionToPrefAttack() override { | 460 void VerifyReactionToPrefAttack() override { |
| 459 // The clearance of homepage should have been noticed (as pref #2 being | 461 // The clearance of homepage should have been noticed (as pref #2 being |
| 460 // cleared), but shouldn't have triggered a reset (as there is nothing we | 462 // cleared), but shouldn't have triggered a reset (as there is nothing we |
| 461 // can do when the pref is already gone). | 463 // can do when the pref is already gone). |
| 462 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, | 464 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, |
| 463 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceCleared", | 465 GetTrackedPrefHistogramCount( |
| 464 BEGIN_ALLOW_SINGLE_BUCKET + 2)); | 466 user_tracked_prefs::kTrackedPreferenceCleared, |
| 467 BEGIN_ALLOW_SINGLE_BUCKET + 2)); |
| 465 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM | 468 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM |
| 466 ? num_tracked_prefs() - 1 : 0, | 469 ? num_tracked_prefs() - 1 |
| 470 : 0, |
| 467 GetTrackedPrefHistogramCount( | 471 GetTrackedPrefHistogramCount( |
| 468 "Settings.TrackedPreferenceUnchanged", ALLOW_ANY)); | 472 user_tracked_prefs::kTrackedPreferenceUnchanged, ALLOW_ANY)); |
| 469 EXPECT_EQ(0, | 473 EXPECT_EQ( |
| 470 GetTrackedPrefHistogramCount( | 474 0, GetTrackedPrefHistogramCount( |
| 471 "Settings.TrackedPreferenceWantedReset", ALLOW_NONE)); | 475 user_tracked_prefs::kTrackedPreferenceWantedReset, ALLOW_NONE)); |
| 472 EXPECT_EQ(0, | 476 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 473 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceReset", | 477 user_tracked_prefs::kTrackedPreferenceReset, ALLOW_NONE)); |
| 474 ALLOW_NONE)); | |
| 475 | 478 |
| 476 // Nothing else should have triggered. | 479 // Nothing else should have triggered. |
| 477 EXPECT_EQ(0, | 480 EXPECT_EQ(0, |
| 478 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceChanged", | 481 GetTrackedPrefHistogramCount( |
| 479 ALLOW_NONE)); | 482 user_tracked_prefs::kTrackedPreferenceChanged, ALLOW_NONE)); |
| 483 EXPECT_EQ( |
| 484 0, GetTrackedPrefHistogramCount( |
| 485 user_tracked_prefs::kTrackedPreferenceInitialized, ALLOW_NONE)); |
| 486 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 487 user_tracked_prefs::kTrackedPreferenceTrustedInitialized, |
| 488 ALLOW_NONE)); |
| 489 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 490 user_tracked_prefs::kTrackedPreferenceNullInitialized, |
| 491 ALLOW_NONE)); |
| 480 EXPECT_EQ(0, | 492 EXPECT_EQ(0, |
| 481 GetTrackedPrefHistogramCount( | 493 GetTrackedPrefHistogramCount( |
| 482 "Settings.TrackedPreferenceInitialized", ALLOW_NONE)); | 494 user_tracked_prefs::kTrackedPreferenceMigratedLegacyDeviceId, |
| 483 EXPECT_EQ(0, | 495 ALLOW_NONE)); |
| 484 GetTrackedPrefHistogramCount( | |
| 485 "Settings.TrackedPreferenceTrustedInitialized", ALLOW_NONE)); | |
| 486 EXPECT_EQ(0, | |
| 487 GetTrackedPrefHistogramCount( | |
| 488 "Settings.TrackedPreferenceNullInitialized", ALLOW_NONE)); | |
| 489 EXPECT_EQ( | |
| 490 0, | |
| 491 GetTrackedPrefHistogramCount( | |
| 492 "Settings.TrackedPreferenceMigratedLegacyDeviceId", ALLOW_NONE)); | |
| 493 } | 496 } |
| 494 }; | 497 }; |
| 495 | 498 |
| 496 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestClearedAtomic, ClearedAtomic); | 499 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestClearedAtomic, ClearedAtomic); |
| 497 | 500 |
| 498 // Verifies that clearing the MACs results in untrusted Initialized pings for | 501 // Verifies that clearing the MACs results in untrusted Initialized pings for |
| 499 // non-null protected prefs. | 502 // non-null protected prefs. |
| 500 class PrefHashBrowserTestUntrustedInitialized : public PrefHashBrowserTestBase { | 503 class PrefHashBrowserTestUntrustedInitialized : public PrefHashBrowserTestBase { |
| 501 public: | 504 public: |
| 502 void SetupPreferences() override { | 505 void SetupPreferences() override { |
| (...skipping 24 matching lines...) Expand all Loading... |
| 527 base::DictionaryValue* unprotected_preferences, | 530 base::DictionaryValue* unprotected_preferences, |
| 528 base::DictionaryValue* protected_preferences) override { | 531 base::DictionaryValue* protected_preferences) override { |
| 529 EXPECT_TRUE(unprotected_preferences->Remove("protection.macs", NULL)); | 532 EXPECT_TRUE(unprotected_preferences->Remove("protection.macs", NULL)); |
| 530 if (protected_preferences) | 533 if (protected_preferences) |
| 531 EXPECT_TRUE(protected_preferences->Remove("protection.macs", NULL)); | 534 EXPECT_TRUE(protected_preferences->Remove("protection.macs", NULL)); |
| 532 } | 535 } |
| 533 | 536 |
| 534 void VerifyReactionToPrefAttack() override { | 537 void VerifyReactionToPrefAttack() override { |
| 535 // Preferences that are NULL by default will be NullInitialized. | 538 // Preferences that are NULL by default will be NullInitialized. |
| 536 int num_null_values = GetTrackedPrefHistogramCount( | 539 int num_null_values = GetTrackedPrefHistogramCount( |
| 537 "Settings.TrackedPreferenceNullInitialized", ALLOW_ANY); | 540 user_tracked_prefs::kTrackedPreferenceNullInitialized, ALLOW_ANY); |
| 538 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM, | 541 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM, |
| 539 num_null_values > 0); | 542 num_null_values > 0); |
| 540 if (num_null_values > 0) { | 543 if (num_null_values > 0) { |
| 541 // This test requires that at least 3 prefs be non-null (extensions, DSE, | 544 // This test requires that at least 3 prefs be non-null (extensions, DSE, |
| 542 // and 1 atomic pref explictly set for this test above). | 545 // and 1 atomic pref explictly set for this test above). |
| 543 EXPECT_GE(num_tracked_prefs() - num_null_values, 3); | 546 EXPECT_GE(num_tracked_prefs() - num_null_values, 3); |
| 544 } | 547 } |
| 545 | 548 |
| 546 // Expect all non-null prefs to be reported as Initialized (with | 549 // Expect all non-null prefs to be reported as Initialized (with |
| 547 // accompanying resets or wanted resets based on the current protection | 550 // accompanying resets or wanted resets based on the current protection |
| 548 // level). | 551 // level). |
| 549 EXPECT_EQ(num_tracked_prefs() - num_null_values, | 552 EXPECT_EQ( |
| 550 GetTrackedPrefHistogramCount( | 553 num_tracked_prefs() - num_null_values, |
| 551 "Settings.TrackedPreferenceInitialized", ALLOW_ANY)); | 554 GetTrackedPrefHistogramCount( |
| 555 user_tracked_prefs::kTrackedPreferenceInitialized, ALLOW_ANY)); |
| 552 | 556 |
| 553 int num_protected_prefs = 0; | 557 int num_protected_prefs = 0; |
| 554 // A switch statement falling through each protection level in decreasing | 558 // A switch statement falling through each protection level in decreasing |
| 555 // levels of protection to add expectations for each level which augments | 559 // levels of protection to add expectations for each level which augments |
| 556 // the previous one. | 560 // the previous one. |
| 557 switch (protection_level_) { | 561 switch (protection_level_) { |
| 558 case PROTECTION_ENABLED_ALL: | 562 case PROTECTION_ENABLED_ALL: |
| 559 // Falls through. | 563 // Falls through. |
| 560 case PROTECTION_ENABLED_EXTENSIONS: | 564 case PROTECTION_ENABLED_EXTENSIONS: |
| 561 ++num_protected_prefs; | 565 ++num_protected_prefs; |
| 562 // Falls through. | 566 // Falls through. |
| 563 case PROTECTION_ENABLED_DSE: | 567 case PROTECTION_ENABLED_DSE: |
| 564 ++num_protected_prefs; | 568 ++num_protected_prefs; |
| 565 // Falls through. | 569 // Falls through. |
| 566 case PROTECTION_ENABLED_BASIC: | 570 case PROTECTION_ENABLED_BASIC: |
| 567 num_protected_prefs += num_tracked_prefs() - num_null_values - 2; | 571 num_protected_prefs += num_tracked_prefs() - num_null_values - 2; |
| 568 // Falls through. | 572 // Falls through. |
| 569 case PROTECTION_DISABLED_FOR_GROUP: | 573 case PROTECTION_DISABLED_FOR_GROUP: |
| 570 // No protection. Falls through. | 574 // No protection. Falls through. |
| 571 case PROTECTION_DISABLED_ON_PLATFORM: | 575 case PROTECTION_DISABLED_ON_PLATFORM: |
| 572 // No protection. | 576 // No protection. |
| 573 break; | 577 break; |
| 574 } | 578 } |
| 575 | 579 |
| 576 EXPECT_EQ(num_tracked_prefs() - num_null_values - num_protected_prefs, | 580 EXPECT_EQ( |
| 581 num_tracked_prefs() - num_null_values - num_protected_prefs, |
| 582 GetTrackedPrefHistogramCount( |
| 583 user_tracked_prefs::kTrackedPreferenceWantedReset, ALLOW_ANY)); |
| 584 EXPECT_EQ(num_protected_prefs, |
| 577 GetTrackedPrefHistogramCount( | 585 GetTrackedPrefHistogramCount( |
| 578 "Settings.TrackedPreferenceWantedReset", ALLOW_ANY)); | 586 user_tracked_prefs::kTrackedPreferenceReset, ALLOW_ANY)); |
| 579 EXPECT_EQ(num_protected_prefs, | |
| 580 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceReset", | |
| 581 ALLOW_ANY)); | |
| 582 | 587 |
| 583 // Explicitly verify the result of reported resets. | 588 // Explicitly verify the result of reported resets. |
| 584 | 589 |
| 585 DefaultSearchManager default_search_manager( | 590 DefaultSearchManager default_search_manager( |
| 586 profile()->GetPrefs(), DefaultSearchManager::ObserverCallback()); | 591 profile()->GetPrefs(), DefaultSearchManager::ObserverCallback()); |
| 587 DefaultSearchManager::Source dse_source = | 592 DefaultSearchManager::Source dse_source = |
| 588 static_cast<DefaultSearchManager::Source>(-1); | 593 static_cast<DefaultSearchManager::Source>(-1); |
| 589 default_search_manager.GetDefaultSearchEngine(&dse_source); | 594 default_search_manager.GetDefaultSearchEngine(&dse_source); |
| 590 EXPECT_EQ(protection_level_ < PROTECTION_ENABLED_DSE | 595 EXPECT_EQ(protection_level_ < PROTECTION_ENABLED_DSE |
| 591 ? DefaultSearchManager::FROM_USER | 596 ? DefaultSearchManager::FROM_USER |
| 592 : DefaultSearchManager::FROM_FALLBACK, | 597 : DefaultSearchManager::FROM_FALLBACK, |
| 593 dse_source); | 598 dse_source); |
| 594 | 599 |
| 595 EXPECT_EQ(protection_level_ < PROTECTION_ENABLED_BASIC, | 600 EXPECT_EQ(protection_level_ < PROTECTION_ENABLED_BASIC, |
| 596 profile()->GetPrefs()->GetInteger(prefs::kRestoreOnStartup) == | 601 profile()->GetPrefs()->GetInteger(prefs::kRestoreOnStartup) == |
| 597 SessionStartupPref::URLS); | 602 SessionStartupPref::URLS); |
| 598 | 603 |
| 599 // Nothing else should have triggered. | 604 // Nothing else should have triggered. |
| 600 EXPECT_EQ(0, | 605 EXPECT_EQ(0, |
| 601 GetTrackedPrefHistogramCount( | 606 GetTrackedPrefHistogramCount( |
| 602 "Settings.TrackedPreferenceUnchanged", ALLOW_NONE)); | 607 user_tracked_prefs::kTrackedPreferenceUnchanged, ALLOW_NONE)); |
| 603 EXPECT_EQ(0, | 608 EXPECT_EQ(0, |
| 604 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceChanged", | 609 GetTrackedPrefHistogramCount( |
| 605 ALLOW_NONE)); | 610 user_tracked_prefs::kTrackedPreferenceChanged, ALLOW_NONE)); |
| 606 EXPECT_EQ(0, | 611 EXPECT_EQ(0, |
| 607 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceCleared", | 612 GetTrackedPrefHistogramCount( |
| 608 ALLOW_NONE)); | 613 user_tracked_prefs::kTrackedPreferenceCleared, ALLOW_NONE)); |
| 609 EXPECT_EQ( | 614 EXPECT_EQ(0, |
| 610 0, | 615 GetTrackedPrefHistogramCount( |
| 611 GetTrackedPrefHistogramCount( | 616 user_tracked_prefs::kTrackedPreferenceMigratedLegacyDeviceId, |
| 612 "Settings.TrackedPreferenceMigratedLegacyDeviceId", ALLOW_NONE)); | 617 ALLOW_NONE)); |
| 613 } | 618 } |
| 614 }; | 619 }; |
| 615 | 620 |
| 616 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestUntrustedInitialized, | 621 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestUntrustedInitialized, |
| 617 UntrustedInitialized); | 622 UntrustedInitialized); |
| 618 | 623 |
| 619 // Verifies that changing an atomic pref results in it being reported (and reset | 624 // Verifies that changing an atomic pref results in it being reported (and reset |
| 620 // if the protection level allows it). | 625 // if the protection level allows it). |
| 621 class PrefHashBrowserTestChangedAtomic : public PrefHashBrowserTestBase { | 626 class PrefHashBrowserTestChangedAtomic : public PrefHashBrowserTestBase { |
| 622 public: | 627 public: |
| (...skipping 19 matching lines...) Expand all Loading... |
| 642 EXPECT_TRUE( | 647 EXPECT_TRUE( |
| 643 selected_prefs->GetList(prefs::kURLsToRestoreOnStartup, &startup_urls)); | 648 selected_prefs->GetList(prefs::kURLsToRestoreOnStartup, &startup_urls)); |
| 644 EXPECT_TRUE(startup_urls); | 649 EXPECT_TRUE(startup_urls); |
| 645 EXPECT_EQ(1U, startup_urls->GetSize()); | 650 EXPECT_EQ(1U, startup_urls->GetSize()); |
| 646 startup_urls->AppendString("http://example.org"); | 651 startup_urls->AppendString("http://example.org"); |
| 647 } | 652 } |
| 648 | 653 |
| 649 void VerifyReactionToPrefAttack() override { | 654 void VerifyReactionToPrefAttack() override { |
| 650 // Expect a single Changed event for tracked pref #4 (startup URLs). | 655 // Expect a single Changed event for tracked pref #4 (startup URLs). |
| 651 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, | 656 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, |
| 652 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceChanged", | 657 GetTrackedPrefHistogramCount( |
| 653 BEGIN_ALLOW_SINGLE_BUCKET + 4)); | 658 user_tracked_prefs::kTrackedPreferenceChanged, |
| 659 BEGIN_ALLOW_SINGLE_BUCKET + 4)); |
| 654 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM | 660 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM |
| 655 ? num_tracked_prefs() - 1 : 0, | 661 ? num_tracked_prefs() - 1 |
| 662 : 0, |
| 656 GetTrackedPrefHistogramCount( | 663 GetTrackedPrefHistogramCount( |
| 657 "Settings.TrackedPreferenceUnchanged", ALLOW_ANY)); | 664 user_tracked_prefs::kTrackedPreferenceUnchanged, ALLOW_ANY)); |
| 658 | 665 |
| 659 EXPECT_EQ( | 666 EXPECT_EQ((protection_level_ > PROTECTION_DISABLED_ON_PLATFORM && |
| 660 (protection_level_ > PROTECTION_DISABLED_ON_PLATFORM && | 667 protection_level_ < PROTECTION_ENABLED_BASIC) |
| 661 protection_level_ < PROTECTION_ENABLED_BASIC) ? 1 : 0, | 668 ? 1 |
| 662 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceWantedReset", | 669 : 0, |
| 663 BEGIN_ALLOW_SINGLE_BUCKET + 4)); | 670 GetTrackedPrefHistogramCount( |
| 671 user_tracked_prefs::kTrackedPreferenceWantedReset, |
| 672 BEGIN_ALLOW_SINGLE_BUCKET + 4)); |
| 664 EXPECT_EQ(protection_level_ >= PROTECTION_ENABLED_BASIC ? 1 : 0, | 673 EXPECT_EQ(protection_level_ >= PROTECTION_ENABLED_BASIC ? 1 : 0, |
| 665 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceReset", | 674 GetTrackedPrefHistogramCount( |
| 666 BEGIN_ALLOW_SINGLE_BUCKET + 4)); | 675 user_tracked_prefs::kTrackedPreferenceReset, |
| 676 BEGIN_ALLOW_SINGLE_BUCKET + 4)); |
| 667 | 677 |
| 668 // TODO(gab): This doesn't work on OS_CHROMEOS because we fail to attack | 678 // TODO(gab): This doesn't work on OS_CHROMEOS because we fail to attack |
| 669 // Preferences. | 679 // Preferences. |
| 670 #if !defined(OS_CHROMEOS) | 680 #if !defined(OS_CHROMEOS) |
| 671 // Explicitly verify the result of reported resets. | 681 // Explicitly verify the result of reported resets. |
| 672 EXPECT_EQ(protection_level_ >= PROTECTION_ENABLED_BASIC ? 0U : 2U, | 682 EXPECT_EQ(protection_level_ >= PROTECTION_ENABLED_BASIC ? 0U : 2U, |
| 673 profile() | 683 profile() |
| 674 ->GetPrefs() | 684 ->GetPrefs() |
| 675 ->GetList(prefs::kURLsToRestoreOnStartup) | 685 ->GetList(prefs::kURLsToRestoreOnStartup) |
| 676 ->GetSize()); | 686 ->GetSize()); |
| 677 #endif | 687 #endif |
| 678 | 688 |
| 679 // Nothing else should have triggered. | 689 // Nothing else should have triggered. |
| 680 EXPECT_EQ(0, | 690 EXPECT_EQ(0, |
| 681 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceCleared", | 691 GetTrackedPrefHistogramCount( |
| 682 ALLOW_NONE)); | 692 user_tracked_prefs::kTrackedPreferenceCleared, ALLOW_NONE)); |
| 693 EXPECT_EQ( |
| 694 0, GetTrackedPrefHistogramCount( |
| 695 user_tracked_prefs::kTrackedPreferenceInitialized, ALLOW_NONE)); |
| 696 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 697 user_tracked_prefs::kTrackedPreferenceTrustedInitialized, |
| 698 ALLOW_NONE)); |
| 699 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 700 user_tracked_prefs::kTrackedPreferenceNullInitialized, |
| 701 ALLOW_NONE)); |
| 683 EXPECT_EQ(0, | 702 EXPECT_EQ(0, |
| 684 GetTrackedPrefHistogramCount( | 703 GetTrackedPrefHistogramCount( |
| 685 "Settings.TrackedPreferenceInitialized", ALLOW_NONE)); | 704 user_tracked_prefs::kTrackedPreferenceMigratedLegacyDeviceId, |
| 686 EXPECT_EQ(0, | 705 ALLOW_NONE)); |
| 687 GetTrackedPrefHistogramCount( | |
| 688 "Settings.TrackedPreferenceTrustedInitialized", ALLOW_NONE)); | |
| 689 EXPECT_EQ(0, | |
| 690 GetTrackedPrefHistogramCount( | |
| 691 "Settings.TrackedPreferenceNullInitialized", ALLOW_NONE)); | |
| 692 EXPECT_EQ( | |
| 693 0, | |
| 694 GetTrackedPrefHistogramCount( | |
| 695 "Settings.TrackedPreferenceMigratedLegacyDeviceId", ALLOW_NONE)); | |
| 696 } | 706 } |
| 697 }; | 707 }; |
| 698 | 708 |
| 699 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestChangedAtomic, ChangedAtomic); | 709 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestChangedAtomic, ChangedAtomic); |
| 700 | 710 |
| 701 // Verifies that changing or adding an entry in a split pref results in both | 711 // Verifies that changing or adding an entry in a split pref results in both |
| 702 // items being reported (and remove if the protection level allows it). | 712 // items being reported (and remove if the protection level allows it). |
| 703 class PrefHashBrowserTestChangedSplitPref : public PrefHashBrowserTestBase { | 713 class PrefHashBrowserTestChangedSplitPref : public PrefHashBrowserTestBase { |
| 704 public: | 714 public: |
| 705 void SetupPreferences() override { | 715 void SetupPreferences() override { |
| (...skipping 28 matching lines...) Expand all Loading... |
| 734 // don't need to be valid extension settings). | 744 // don't need to be valid extension settings). |
| 735 base::DictionaryValue* fake_extension = new base::DictionaryValue; | 745 base::DictionaryValue* fake_extension = new base::DictionaryValue; |
| 736 fake_extension->SetString("name", "foo"); | 746 fake_extension->SetString("name", "foo"); |
| 737 extensions_dict->Set(std::string(32, 'a'), fake_extension); | 747 extensions_dict->Set(std::string(32, 'a'), fake_extension); |
| 738 } | 748 } |
| 739 | 749 |
| 740 void VerifyReactionToPrefAttack() override { | 750 void VerifyReactionToPrefAttack() override { |
| 741 // Expect a single split pref changed report with a count of 2 for tracked | 751 // Expect a single split pref changed report with a count of 2 for tracked |
| 742 // pref #5 (extensions). | 752 // pref #5 (extensions). |
| 743 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, | 753 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, |
| 744 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceChanged", | 754 GetTrackedPrefHistogramCount( |
| 745 BEGIN_ALLOW_SINGLE_BUCKET + 5)); | 755 user_tracked_prefs::kTrackedPreferenceChanged, |
| 756 BEGIN_ALLOW_SINGLE_BUCKET + 5)); |
| 746 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, | 757 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM ? 1 : 0, |
| 747 GetTrackedPrefHistogramCount( | 758 GetTrackedPrefHistogramCount( |
| 748 "Settings.TrackedSplitPreferenceChanged.extensions.settings", | 759 "Settings.TrackedSplitPreferenceChanged.extensions.settings", |
| 749 BEGIN_ALLOW_SINGLE_BUCKET + 2)); | 760 BEGIN_ALLOW_SINGLE_BUCKET + 2)); |
| 750 | 761 |
| 751 // Everything else should have remained unchanged. | 762 // Everything else should have remained unchanged. |
| 752 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM | 763 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM |
| 753 ? num_tracked_prefs() - 1 : 0, | 764 ? num_tracked_prefs() - 1 |
| 765 : 0, |
| 754 GetTrackedPrefHistogramCount( | 766 GetTrackedPrefHistogramCount( |
| 755 "Settings.TrackedPreferenceUnchanged", ALLOW_ANY)); | 767 user_tracked_prefs::kTrackedPreferenceUnchanged, ALLOW_ANY)); |
| 756 | 768 |
| 757 EXPECT_EQ( | 769 EXPECT_EQ((protection_level_ > PROTECTION_DISABLED_ON_PLATFORM && |
| 758 (protection_level_ > PROTECTION_DISABLED_ON_PLATFORM && | 770 protection_level_ < PROTECTION_ENABLED_EXTENSIONS) |
| 759 protection_level_ < PROTECTION_ENABLED_EXTENSIONS) ? 1 : 0, | 771 ? 1 |
| 760 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceWantedReset", | 772 : 0, |
| 761 BEGIN_ALLOW_SINGLE_BUCKET + 5)); | 773 GetTrackedPrefHistogramCount( |
| 774 user_tracked_prefs::kTrackedPreferenceWantedReset, |
| 775 BEGIN_ALLOW_SINGLE_BUCKET + 5)); |
| 762 EXPECT_EQ(protection_level_ >= PROTECTION_ENABLED_EXTENSIONS ? 1 : 0, | 776 EXPECT_EQ(protection_level_ >= PROTECTION_ENABLED_EXTENSIONS ? 1 : 0, |
| 763 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceReset", | 777 GetTrackedPrefHistogramCount( |
| 764 BEGIN_ALLOW_SINGLE_BUCKET + 5)); | 778 user_tracked_prefs::kTrackedPreferenceReset, |
| 779 BEGIN_ALLOW_SINGLE_BUCKET + 5)); |
| 765 | 780 |
| 766 EXPECT_EQ(protection_level_ < PROTECTION_ENABLED_EXTENSIONS, | 781 EXPECT_EQ(protection_level_ < PROTECTION_ENABLED_EXTENSIONS, |
| 767 extension_service()->GetExtensionById(kGoodCrxId, true) != NULL); | 782 extension_service()->GetExtensionById(kGoodCrxId, true) != NULL); |
| 768 | 783 |
| 769 // Nothing else should have triggered. | 784 // Nothing else should have triggered. |
| 770 EXPECT_EQ(0, | 785 EXPECT_EQ(0, |
| 771 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceCleared", | 786 GetTrackedPrefHistogramCount( |
| 772 ALLOW_NONE)); | 787 user_tracked_prefs::kTrackedPreferenceCleared, ALLOW_NONE)); |
| 788 EXPECT_EQ( |
| 789 0, GetTrackedPrefHistogramCount( |
| 790 user_tracked_prefs::kTrackedPreferenceInitialized, ALLOW_NONE)); |
| 791 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 792 user_tracked_prefs::kTrackedPreferenceTrustedInitialized, |
| 793 ALLOW_NONE)); |
| 794 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 795 user_tracked_prefs::kTrackedPreferenceNullInitialized, |
| 796 ALLOW_NONE)); |
| 773 EXPECT_EQ(0, | 797 EXPECT_EQ(0, |
| 774 GetTrackedPrefHistogramCount( | 798 GetTrackedPrefHistogramCount( |
| 775 "Settings.TrackedPreferenceInitialized", ALLOW_NONE)); | 799 user_tracked_prefs::kTrackedPreferenceMigratedLegacyDeviceId, |
| 776 EXPECT_EQ(0, | 800 ALLOW_NONE)); |
| 777 GetTrackedPrefHistogramCount( | |
| 778 "Settings.TrackedPreferenceTrustedInitialized", ALLOW_NONE)); | |
| 779 EXPECT_EQ(0, | |
| 780 GetTrackedPrefHistogramCount( | |
| 781 "Settings.TrackedPreferenceNullInitialized", ALLOW_NONE)); | |
| 782 EXPECT_EQ( | |
| 783 0, | |
| 784 GetTrackedPrefHistogramCount( | |
| 785 "Settings.TrackedPreferenceMigratedLegacyDeviceId", ALLOW_NONE)); | |
| 786 } | 801 } |
| 787 }; | 802 }; |
| 788 | 803 |
| 789 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestChangedSplitPref, ChangedSplitPref); | 804 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestChangedSplitPref, ChangedSplitPref); |
| 790 | 805 |
| 791 // Verifies that adding a value to unprotected preferences for a key which is | 806 // Verifies that adding a value to unprotected preferences for a key which is |
| 792 // still using the default (i.e. has no value stored in protected preferences) | 807 // still using the default (i.e. has no value stored in protected preferences) |
| 793 // doesn't allow that value to slip in with no valid MAC (regression test for | 808 // doesn't allow that value to slip in with no valid MAC (regression test for |
| 794 // http://crbug.com/414554) | 809 // http://crbug.com/414554) |
| 795 class PrefHashBrowserTestUntrustedAdditionToPrefs | 810 class PrefHashBrowserTestUntrustedAdditionToPrefs |
| (...skipping 10 matching lines...) Expand all Loading... |
| 806 base::DictionaryValue* protected_preferences) override { | 821 base::DictionaryValue* protected_preferences) override { |
| 807 unprotected_preferences->SetInteger(prefs::kRestoreOnStartup, | 822 unprotected_preferences->SetInteger(prefs::kRestoreOnStartup, |
| 808 SessionStartupPref::LAST); | 823 SessionStartupPref::LAST); |
| 809 } | 824 } |
| 810 | 825 |
| 811 void VerifyReactionToPrefAttack() override { | 826 void VerifyReactionToPrefAttack() override { |
| 812 // Expect a single Changed event for tracked pref #3 (kRestoreOnStartup) if | 827 // Expect a single Changed event for tracked pref #3 (kRestoreOnStartup) if |
| 813 // not protecting; if protection is enabled the change should be a no-op. | 828 // not protecting; if protection is enabled the change should be a no-op. |
| 814 int changed_expected = | 829 int changed_expected = |
| 815 protection_level_ == PROTECTION_DISABLED_FOR_GROUP ? 1 : 0; | 830 protection_level_ == PROTECTION_DISABLED_FOR_GROUP ? 1 : 0; |
| 816 EXPECT_EQ( | 831 EXPECT_EQ((protection_level_ > PROTECTION_DISABLED_ON_PLATFORM && |
| 817 (protection_level_ > PROTECTION_DISABLED_ON_PLATFORM && | 832 protection_level_ < PROTECTION_ENABLED_BASIC) |
| 818 protection_level_ < PROTECTION_ENABLED_BASIC) ? changed_expected : 0, | 833 ? changed_expected |
| 819 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceChanged", | 834 : 0, |
| 820 BEGIN_ALLOW_SINGLE_BUCKET + 3)); | 835 GetTrackedPrefHistogramCount( |
| 836 user_tracked_prefs::kTrackedPreferenceChanged, |
| 837 BEGIN_ALLOW_SINGLE_BUCKET + 3)); |
| 821 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM | 838 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM |
| 822 ? num_tracked_prefs() - changed_expected : 0, | 839 ? num_tracked_prefs() - changed_expected |
| 840 : 0, |
| 823 GetTrackedPrefHistogramCount( | 841 GetTrackedPrefHistogramCount( |
| 824 "Settings.TrackedPreferenceUnchanged", ALLOW_ANY)); | 842 user_tracked_prefs::kTrackedPreferenceUnchanged, ALLOW_ANY)); |
| 825 | 843 |
| 826 EXPECT_EQ( | 844 EXPECT_EQ((protection_level_ > PROTECTION_DISABLED_ON_PLATFORM && |
| 827 (protection_level_ > PROTECTION_DISABLED_ON_PLATFORM && | 845 protection_level_ < PROTECTION_ENABLED_BASIC) |
| 828 protection_level_ < PROTECTION_ENABLED_BASIC) ? 1 : 0, | 846 ? 1 |
| 829 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceWantedReset", | 847 : 0, |
| 830 BEGIN_ALLOW_SINGLE_BUCKET + 3)); | 848 GetTrackedPrefHistogramCount( |
| 831 EXPECT_EQ(0, | 849 user_tracked_prefs::kTrackedPreferenceWantedReset, |
| 832 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceReset", | 850 BEGIN_ALLOW_SINGLE_BUCKET + 3)); |
| 833 ALLOW_NONE)); | 851 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 852 user_tracked_prefs::kTrackedPreferenceReset, ALLOW_NONE)); |
| 834 | 853 |
| 835 // Nothing else should have triggered. | 854 // Nothing else should have triggered. |
| 836 EXPECT_EQ(0, | 855 EXPECT_EQ(0, |
| 837 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceCleared", | 856 GetTrackedPrefHistogramCount( |
| 838 ALLOW_NONE)); | 857 user_tracked_prefs::kTrackedPreferenceCleared, ALLOW_NONE)); |
| 858 EXPECT_EQ( |
| 859 0, GetTrackedPrefHistogramCount( |
| 860 user_tracked_prefs::kTrackedPreferenceInitialized, ALLOW_NONE)); |
| 861 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 862 user_tracked_prefs::kTrackedPreferenceTrustedInitialized, |
| 863 ALLOW_NONE)); |
| 864 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 865 user_tracked_prefs::kTrackedPreferenceNullInitialized, |
| 866 ALLOW_NONE)); |
| 839 EXPECT_EQ(0, | 867 EXPECT_EQ(0, |
| 840 GetTrackedPrefHistogramCount( | 868 GetTrackedPrefHistogramCount( |
| 841 "Settings.TrackedPreferenceInitialized", ALLOW_NONE)); | 869 user_tracked_prefs::kTrackedPreferenceMigratedLegacyDeviceId, |
| 842 EXPECT_EQ(0, | 870 ALLOW_NONE)); |
| 843 GetTrackedPrefHistogramCount( | |
| 844 "Settings.TrackedPreferenceTrustedInitialized", ALLOW_NONE)); | |
| 845 EXPECT_EQ(0, | |
| 846 GetTrackedPrefHistogramCount( | |
| 847 "Settings.TrackedPreferenceNullInitialized", ALLOW_NONE)); | |
| 848 EXPECT_EQ( | |
| 849 0, | |
| 850 GetTrackedPrefHistogramCount( | |
| 851 "Settings.TrackedPreferenceMigratedLegacyDeviceId", ALLOW_NONE)); | |
| 852 } | 871 } |
| 853 }; | 872 }; |
| 854 | 873 |
| 855 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestUntrustedAdditionToPrefs, | 874 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestUntrustedAdditionToPrefs, |
| 856 UntrustedAdditionToPrefs); | 875 UntrustedAdditionToPrefs); |
| 857 | 876 |
| 858 // Verifies that adding a value to unprotected preferences while wiping a | 877 // Verifies that adding a value to unprotected preferences while wiping a |
| 859 // user-selected value from protected preferences doesn't allow that value to | 878 // user-selected value from protected preferences doesn't allow that value to |
| 860 // slip in with no valid MAC (regression test for http://crbug.com/414554). | 879 // slip in with no valid MAC (regression test for http://crbug.com/414554). |
| 861 class PrefHashBrowserTestUntrustedAdditionToPrefsAfterWipe | 880 class PrefHashBrowserTestUntrustedAdditionToPrefsAfterWipe |
| (...skipping 17 matching lines...) Expand all Loading... |
| 879 // Expect a single Changed event for tracked pref #2 (kHomePage) if | 898 // Expect a single Changed event for tracked pref #2 (kHomePage) if |
| 880 // not protecting; if protection is enabled the change should be a Cleared. | 899 // not protecting; if protection is enabled the change should be a Cleared. |
| 881 int changed_expected = | 900 int changed_expected = |
| 882 protection_level_ > PROTECTION_DISABLED_ON_PLATFORM && | 901 protection_level_ > PROTECTION_DISABLED_ON_PLATFORM && |
| 883 protection_level_ < PROTECTION_ENABLED_BASIC | 902 protection_level_ < PROTECTION_ENABLED_BASIC |
| 884 ? 1 : 0; | 903 ? 1 : 0; |
| 885 int cleared_expected = | 904 int cleared_expected = |
| 886 protection_level_ >= PROTECTION_ENABLED_BASIC | 905 protection_level_ >= PROTECTION_ENABLED_BASIC |
| 887 ? 1 : 0; | 906 ? 1 : 0; |
| 888 EXPECT_EQ(changed_expected, | 907 EXPECT_EQ(changed_expected, |
| 889 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceChanged", | 908 GetTrackedPrefHistogramCount( |
| 890 BEGIN_ALLOW_SINGLE_BUCKET + 2)); | 909 user_tracked_prefs::kTrackedPreferenceChanged, |
| 910 BEGIN_ALLOW_SINGLE_BUCKET + 2)); |
| 891 EXPECT_EQ(cleared_expected, | 911 EXPECT_EQ(cleared_expected, |
| 892 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceCleared", | 912 GetTrackedPrefHistogramCount( |
| 893 BEGIN_ALLOW_SINGLE_BUCKET + 2)); | 913 user_tracked_prefs::kTrackedPreferenceCleared, |
| 914 BEGIN_ALLOW_SINGLE_BUCKET + 2)); |
| 894 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM | 915 EXPECT_EQ(protection_level_ > PROTECTION_DISABLED_ON_PLATFORM |
| 895 ? num_tracked_prefs() - changed_expected - cleared_expected | 916 ? num_tracked_prefs() - changed_expected - cleared_expected |
| 896 : 0, | 917 : 0, |
| 897 GetTrackedPrefHistogramCount( | 918 GetTrackedPrefHistogramCount( |
| 898 "Settings.TrackedPreferenceUnchanged", ALLOW_ANY)); | 919 user_tracked_prefs::kTrackedPreferenceUnchanged, ALLOW_ANY)); |
| 899 | 920 |
| 900 EXPECT_EQ( | 921 EXPECT_EQ(changed_expected, |
| 901 changed_expected, | 922 GetTrackedPrefHistogramCount( |
| 902 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceWantedReset", | 923 user_tracked_prefs::kTrackedPreferenceWantedReset, |
| 903 BEGIN_ALLOW_SINGLE_BUCKET + 2)); | 924 BEGIN_ALLOW_SINGLE_BUCKET + 2)); |
| 904 EXPECT_EQ(0, | 925 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 905 GetTrackedPrefHistogramCount("Settings.TrackedPreferenceReset", | 926 user_tracked_prefs::kTrackedPreferenceReset, ALLOW_NONE)); |
| 906 ALLOW_NONE)); | |
| 907 | 927 |
| 908 // Nothing else should have triggered. | 928 // Nothing else should have triggered. |
| 929 EXPECT_EQ( |
| 930 0, GetTrackedPrefHistogramCount( |
| 931 user_tracked_prefs::kTrackedPreferenceInitialized, ALLOW_NONE)); |
| 932 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 933 user_tracked_prefs::kTrackedPreferenceTrustedInitialized, |
| 934 ALLOW_NONE)); |
| 935 EXPECT_EQ(0, GetTrackedPrefHistogramCount( |
| 936 user_tracked_prefs::kTrackedPreferenceNullInitialized, |
| 937 ALLOW_NONE)); |
| 909 EXPECT_EQ(0, | 938 EXPECT_EQ(0, |
| 910 GetTrackedPrefHistogramCount( | 939 GetTrackedPrefHistogramCount( |
| 911 "Settings.TrackedPreferenceInitialized", ALLOW_NONE)); | 940 user_tracked_prefs::kTrackedPreferenceMigratedLegacyDeviceId, |
| 912 EXPECT_EQ(0, | 941 ALLOW_NONE)); |
| 913 GetTrackedPrefHistogramCount( | |
| 914 "Settings.TrackedPreferenceTrustedInitialized", ALLOW_NONE)); | |
| 915 EXPECT_EQ(0, | |
| 916 GetTrackedPrefHistogramCount( | |
| 917 "Settings.TrackedPreferenceNullInitialized", ALLOW_NONE)); | |
| 918 EXPECT_EQ( | |
| 919 0, | |
| 920 GetTrackedPrefHistogramCount( | |
| 921 "Settings.TrackedPreferenceMigratedLegacyDeviceId", ALLOW_NONE)); | |
| 922 } | 942 } |
| 923 }; | 943 }; |
| 924 | 944 |
| 925 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestUntrustedAdditionToPrefsAfterWipe, | 945 PREF_HASH_BROWSER_TEST(PrefHashBrowserTestUntrustedAdditionToPrefsAfterWipe, |
| 926 UntrustedAdditionToPrefsAfterWipe); | 946 UntrustedAdditionToPrefsAfterWipe); |
| OLD | NEW |