diff options
author | csharp@chromium.org <csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-04 21:01:38 +0000 |
---|---|---|
committer | csharp@chromium.org <csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-04 21:01:38 +0000 |
commit | f863ef3f45069cbba9797bb10472c910bf928569 (patch) | |
tree | b92f70bc4959fc796902834e9bb4efa1802d1713 /chrome/browser/chrome_elf_init_win.cc | |
parent | 88c8cb264719a9ae817803b0260fc07a6acb03c7 (diff) | |
download | chromium_src-f863ef3f45069cbba9797bb10472c910bf928569.zip chromium_src-f863ef3f45069cbba9797bb10472c910bf928569.tar.gz chromium_src-f863ef3f45069cbba9797bb10472c910bf928569.tar.bz2 |
Remove Version Check when Determining if Blacklist is Enabled
If the registry says the blacklist is enabled, then enable it, even if
it was enabled for a different version of Chrome.
BUG=329023
Review URL: https://codereview.chromium.org/178543011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254819 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chrome_elf_init_win.cc')
-rw-r--r-- | chrome/browser/chrome_elf_init_win.cc | 63 |
1 files changed, 28 insertions, 35 deletions
diff --git a/chrome/browser/chrome_elf_init_win.cc b/chrome/browser/chrome_elf_init_win.cc index 0ea4e0d..79465b8 100644 --- a/chrome/browser/chrome_elf_init_win.cc +++ b/chrome/browser/chrome_elf_init_win.cc @@ -112,13 +112,40 @@ void BrowserBlacklistBeaconSetup() { if (!blacklist_registry_key.Valid()) return; + // Record the results of the last blacklist setup. + DWORD blacklist_state = blacklist::BLACKLIST_STATE_MAX; + blacklist_registry_key.ReadValueDW(blacklist::kBeaconState, &blacklist_state); + + if (blacklist_state == blacklist::BLACKLIST_ENABLED) { + RecordBlacklistSetupEvent(BLACKLIST_SETUP_RAN_SUCCESSFULLY); + } else { + switch (blacklist_state) { + case blacklist::BLACKLIST_SETUP_RUNNING: + RecordBlacklistSetupEvent(BLACKLIST_SETUP_FAILED); + break; + case blacklist::BLACKLIST_THUNK_SETUP: + RecordBlacklistSetupEvent(BLACKLIST_THUNK_SETUP_FAILED); + break; + case blacklist::BLACKLIST_INTERCEPTING: + RecordBlacklistSetupEvent(BLACKLIST_INTERCEPTION_FAILED); + break; + } + + // Since some part of the blacklist failed, mark it as disabled + // for this version. + if (blacklist_state != blacklist::BLACKLIST_DISABLED) { + blacklist_registry_key.WriteValue(blacklist::kBeaconState, + blacklist::BLACKLIST_DISABLED); + } + } + // Find the last recorded blacklist version. base::string16 blacklist_version; blacklist_registry_key.ReadValue(blacklist::kBeaconVersion, &blacklist_version); if (blacklist_version != TEXT(CHROME_VERSION_STRING)) { - // The blacklist hasn't run for this version yet, so enable it. + // The blacklist hasn't been enabled for this version yet, so enable it. LONG set_version = blacklist_registry_key.WriteValue( blacklist::kBeaconVersion, TEXT(CHROME_VERSION_STRING)); @@ -131,39 +158,5 @@ void BrowserBlacklistBeaconSetup() { // succeed, since otherwise the blacklist wasn't properly setup. if (set_version == ERROR_SUCCESS && set_state == ERROR_SUCCESS) RecordBlacklistSetupEvent(BLACKLIST_SETUP_ENABLED); - - // Don't try to record if the blacklist setup succeeded or failed in the - // run since it could have been from either this version or the previous - // version (since crashes occur before we set the version in the registry). - } else { - // The blacklist version didn't change, so record the results of the - // latest setup. - DWORD blacklist_state = blacklist::BLACKLIST_STATE_MAX; - blacklist_registry_key.ReadValueDW(blacklist::kBeaconState, - &blacklist_state); - - // Record the results of the latest blacklist setup. - if (blacklist_state == blacklist::BLACKLIST_ENABLED) { - RecordBlacklistSetupEvent(BLACKLIST_SETUP_RAN_SUCCESSFULLY); - } else { - switch (blacklist_state) { - case blacklist::BLACKLIST_SETUP_RUNNING: - RecordBlacklistSetupEvent(BLACKLIST_SETUP_FAILED); - break; - case blacklist::BLACKLIST_THUNK_SETUP: - RecordBlacklistSetupEvent(BLACKLIST_THUNK_SETUP_FAILED); - break; - case blacklist::BLACKLIST_INTERCEPTING: - RecordBlacklistSetupEvent(BLACKLIST_INTERCEPTION_FAILED); - break; - } - - // Since some part of the blacklist failed, ensure it is now disabled - // for this version. - if (blacklist_state != blacklist::BLACKLIST_DISABLED) { - blacklist_registry_key.WriteValue(blacklist::kBeaconState, - blacklist::BLACKLIST_DISABLED); - } - } } } |