diff options
author | siggi <siggi@chromium.org> | 2014-12-05 07:44:26 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-12-05 15:44:46 +0000 |
commit | 5ed6480ab0d5c1cca5fd75b0682f15f33f32977c (patch) | |
tree | 25b8a974b8e1497967c73252fac18407099a077e /chrome/browser/browser_process_impl.cc | |
parent | 14ef64e8d0bfbf89cde4b0a9d265785370ab4806 (diff) | |
download | chromium_src-5ed6480ab0d5c1cca5fd75b0682f15f33f32977c.zip chromium_src-5ed6480ab0d5c1cca5fd75b0682f15f33f32977c.tar.gz chromium_src-5ed6480ab0d5c1cca5fd75b0682f15f33f32977c.tar.bz2 |
Remove the WindowsLogoffRace experiment.
Unfortunately these are not the droids we're looking for.
BUG=388741
Review URL: https://codereview.chromium.org/783533002
Cr-Commit-Position: refs/heads/master@{#307026}
Diffstat (limited to 'chrome/browser/browser_process_impl.cc')
-rw-r--r-- | chrome/browser/browser_process_impl.cc | 27 |
1 files changed, 2 insertions, 25 deletions
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc index 34ddec2..deb6202 100644 --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc @@ -446,25 +446,9 @@ bool RundownTaskCounter::TimedWait(const base::TimeDelta& max_time) { return waitable_event_.TimedWait(max_time); } -bool ExperimentUseBrokenSynchronization() { - // The logoff behavior used to have a race, whereby it would perform profile - // IO writes on the blocking thread pool, but would sycnhronize to the FILE - // thread. Windows feels free to terminate any process that's hidden or - // destroyed all it's windows, and sometimes Chrome would be terminated - // with pending profile IO due to this mis-synchronization. - // Under the "WindowsLogoffRace" experiment group, the broken behavior is - // emulated, in order to allow measuring what fraction of unclean shutdowns - // are due to this bug. - const std::string group_name = - base::FieldTrialList::FindFullName("WindowsLogoffRace"); - return group_name == "BrokenSynchronization"; -} - } // namespace void BrowserProcessImpl::EndSession() { - bool use_broken_synchronization = ExperimentUseBrokenSynchronization(); - // Mark all the profiles as clean. ProfileManager* pm = profile_manager(); std::vector<Profile*> profiles(pm->GetLoadedProfiles()); @@ -473,8 +457,7 @@ void BrowserProcessImpl::EndSession() { Profile* profile = profiles[i]; profile->SetExitType(Profile::EXIT_SESSION_ENDED); - if (!use_broken_synchronization) - rundown_counter->Post(profile->GetIOTaskRunner().get()); + rundown_counter->Post(profile->GetIOTaskRunner().get()); } // Tell the metrics service it was cleanly shutdown. @@ -487,8 +470,7 @@ void BrowserProcessImpl::EndSession() { // commit metrics::prefs::kStabilitySessionEndCompleted change immediately. local_state()->CommitPendingWrite(); - if (!use_broken_synchronization) - rundown_counter->Post(local_state_task_runner_.get()); + rundown_counter->Post(local_state_task_runner_.get()); #endif } @@ -502,11 +484,6 @@ void BrowserProcessImpl::EndSession() { // If you change the condition here, be sure to also change // ProfileBrowserTests to match. #if defined(USE_X11) || defined(OS_WIN) - if (use_broken_synchronization) { - rundown_counter->Post( - BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE).get()); - } - // Do a best-effort wait on the successful countdown of rundown tasks. Note // that if we don't complete "quickly enough", Windows will terminate our // process. |