diff options
author | nsylvain@chromium.org <nsylvain@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-20 01:55:50 +0000 |
---|---|---|
committer | nsylvain@chromium.org <nsylvain@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-20 01:55:50 +0000 |
commit | 8c8824bdb4820a4107ec94e5c3d12981bdc4ae7f (patch) | |
tree | 3322a410121345a13f3f178147f0a34bb81fa593 /chrome/browser/views/options/advanced_contents_view.cc | |
parent | 02ee34a9daa91fd125b9f9a48ca56502c8d1d36c (diff) | |
download | chromium_src-8c8824bdb4820a4107ec94e5c3d12981bdc4ae7f.zip chromium_src-8c8824bdb4820a4107ec94e5c3d12981bdc4ae7f.tar.gz chromium_src-8c8824bdb4820a4107ec94e5c3d12981bdc4ae7f.tar.bz2 |
Revert change 2419 because it breaks the build
The stack crashing is this one:
chrome_2650000!xmlTextWriterStartElement+0x23
chrome_2650000!MetricsLog::StartElement+0xb5
chrome_2650000!MetricsLog::ScopedElement::ScopedElement+0x67
chrome_2650000!MetricsLog::RecordHistogramDelta+0xd8
chrome_2650000!MetricsService::RecordHistogram+0x122
chrome_2650000!MetricsService::RecordCurrentHistograms+0xc3
chrome_2650000!MetricsService::StopRecording+0x94
chrome_2650000!MetricsService::PushPendingLogsToUnsentLists+0xbf
chrome_2650000!MetricsService::SetRecording+0x36f
chrome_2650000!MetricsService::Stop+0x11
chrome_2650000!BrowserMain+0xefa
chrome_2650000!ChromeMain+0x862
It looks like writer_ is null on invalid.
It also look like there is debugging code that was left
in.
Review URL: http://codereview.chromium.org/4005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2433 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/options/advanced_contents_view.cc')
-rw-r--r-- | chrome/browser/views/options/advanced_contents_view.cc | 62 |
1 files changed, 23 insertions, 39 deletions
diff --git a/chrome/browser/views/options/advanced_contents_view.cc b/chrome/browser/views/options/advanced_contents_view.cc index a4084f8..c063e33 100644 --- a/chrome/browser/views/options/advanced_contents_view.cc +++ b/chrome/browser/views/options/advanced_contents_view.cc @@ -34,7 +34,6 @@ #include "chrome/common/pref_member.h" #include "chrome/common/pref_names.h" #include "chrome/common/resource_bundle.h" -#include "chrome/installer/util/google_update_settings.h" #include "chrome/views/background.h" #include "chrome/views/checkbox.h" #include "chrome/views/combo_box.h" @@ -324,8 +323,6 @@ class GeneralSection : public AdvancedSection, StringPrefMember auto_open_files_; BooleanPrefMember enable_metrics_recording_; - void ResolveMetricsReportingEnabled(); - DISALLOW_EVIL_CONSTRUCTORS(GeneralSection); }; @@ -345,15 +342,24 @@ void GeneralSection::ButtonPressed(ChromeViews::NativeButton* sender) { profile()->GetPrefs()); } else if (sender == reporting_enabled_checkbox_) { bool enabled = reporting_enabled_checkbox_->IsSelected(); - if (enabled) - UserMetricsRecordAction(L"Options_MetricsReportingCheckbox_Enable", + // Do what we can, but we might not be able to get what was asked for. + bool done = g_browser_process->metrics_service()->EnableReporting(enabled); + if (!done) { + enabled = !enabled; + done = g_browser_process->metrics_service()->EnableReporting(enabled); + DCHECK(done); + reporting_enabled_checkbox_->SetIsSelected(enabled); + } else { + if (enabled) { + UserMetricsRecordAction(L"Options_MetricsReportingCheckbox_Enable", profile()->GetPrefs()); - else - UserMetricsRecordAction(L"Options_MetricsReportingCheckbox_Disable", + } else { + UserMetricsRecordAction(L"Options_MetricsReportingCheckbox_Disable", profile()->GetPrefs()); - ResolveMetricsReportingEnabled(); - if (enabled == reporting_enabled_checkbox_->IsSelected()) + } RestartMessageBox::ShowMessageBox(GetRootWindow()); + } + enable_metrics_recording_.SetValue(enabled); } } @@ -438,37 +444,15 @@ void GeneralSection::NotifyPrefChanged(const std::wstring* pref_name) { reset_file_handlers_button_->SetEnabled(enabled); } if (!pref_name || *pref_name == prefs::kMetricsReportingEnabled) { - ResolveMetricsReportingEnabled(); - } -} - -void GeneralSection::ResolveMetricsReportingEnabled() { - bool enabled = reporting_enabled_checkbox_->IsSelected(); - - GoogleUpdateSettings::SetCollectStatsConsent(enabled); - bool update_pref = GoogleUpdateSettings::GetCollectStatsConsent(); - - if (enabled != update_pref) { - DLOG(INFO) << - "GENERAL SECTION: Unable to set crash report status to " << - enabled; - } - - // Only change the pref if GoogleUpdateSettings::GetCollectStatsConsent - // succeeds. - enabled = update_pref; - - MetricsService* metrics = g_browser_process->metrics_service(); - DCHECK(metrics); - if (metrics) { - metrics->SetUserPermitsUpload(enabled); - if (enabled) - metrics->Start(); - else - metrics->Stop(); + bool enabled = enable_metrics_recording_.GetValue(); + bool done = g_browser_process->metrics_service()->EnableReporting(enabled); + if (!done) { + enabled = !enabled; + done = g_browser_process->metrics_service()->EnableReporting(enabled); + DCHECK(done); + } + reporting_enabled_checkbox_->SetIsSelected(enabled); } - - reporting_enabled_checkbox_->SetIsSelected(enabled); } //////////////////////////////////////////////////////////////////////////////// |