| Index: chrome/browser/profile_resetter/profile_reset_global_error.cc
|
| diff --git a/chrome/browser/profile_resetter/profile_reset_global_error.cc b/chrome/browser/profile_resetter/profile_reset_global_error.cc
|
| index 03c78c7bef8bf5a1c436b02af49980fc0bdd7532..2fcf0d0ab2488a87f8380171bd1a8418903fe53e 100644
|
| --- a/chrome/browser/profile_resetter/profile_reset_global_error.cc
|
| +++ b/chrome/browser/profile_resetter/profile_reset_global_error.cc
|
| @@ -6,6 +6,12 @@
|
|
|
| #include "base/metrics/histogram.h"
|
| #include "chrome/app/chrome_command_ids.h"
|
| +#include "chrome/browser/profile_resetter/automatic_profile_resetter.h"
|
| +#include "chrome/browser/profile_resetter/automatic_profile_resetter_factory.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/ui/browser.h"
|
| +#include "chrome/browser/ui/global_error/global_error_service.h"
|
| +#include "chrome/browser/ui/global_error/global_error_service_factory.h"
|
| #include "chrome/browser/ui/profile_reset_bubble.h"
|
| #include "grit/chromium_strings.h"
|
| #include "grit/generated_resources.h"
|
| @@ -13,12 +19,8 @@
|
|
|
| namespace {
|
|
|
| -// The maximum number of ignored bubbles we track in the NumNoThanksPerReset
|
| -// histogram.
|
| -const int kMaxIgnored = 50;
|
| -
|
| -// The number of buckets we want the NumNoThanksPerReset histogram to use.
|
| -const int kNumIgnoredBuckets = 5;
|
| +const char kResetProfileSettingsURL[] =
|
| + "chrome://settings/resetProfileSettings";
|
|
|
| } // namespace
|
|
|
| @@ -26,7 +28,12 @@ const int kNumIgnoredBuckets = 5;
|
| // ProfileResetGlobalError ---------------------------------------------------
|
|
|
| ProfileResetGlobalError::ProfileResetGlobalError(Profile* profile)
|
| - : profile_(profile), num_times_bubble_view_shown_(0), bubble_view_(NULL) {}
|
| + : profile_(profile), has_shown_bubble_view_(false), bubble_view_(NULL) {
|
| + AutomaticProfileResetter* automatic_profile_resetter =
|
| + AutomaticProfileResetterFactory::GetForBrowserContext(profile_);
|
| + DCHECK(automatic_profile_resetter);
|
| + automatic_profile_resetter_ = automatic_profile_resetter->AsWeakPtr();
|
| +}
|
|
|
| ProfileResetGlobalError::~ProfileResetGlobalError() {}
|
|
|
| @@ -43,20 +50,26 @@ string16 ProfileResetGlobalError::MenuItemLabel() {
|
| }
|
|
|
| void ProfileResetGlobalError::ExecuteMenuItem(Browser* browser) {
|
| - ShowBubbleView(browser);
|
| + browser->OpenURL(content::OpenURLParams(
|
| + GURL(kResetProfileSettingsURL), content::Referrer(),
|
| + NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, false));
|
| }
|
|
|
| bool ProfileResetGlobalError::HasBubbleView() { return true; }
|
|
|
| bool ProfileResetGlobalError::HasShownBubbleView() {
|
| - return num_times_bubble_view_shown_ > 0;
|
| + return has_shown_bubble_view_;
|
| }
|
|
|
| void ProfileResetGlobalError::ShowBubbleView(Browser* browser) {
|
| if (bubble_view_)
|
| return;
|
| - ++num_times_bubble_view_shown_;
|
| +
|
| + has_shown_bubble_view_ = true;
|
| bubble_view_ = ShowProfileResetBubble(AsWeakPtr(), browser);
|
| +
|
| + if (automatic_profile_resetter_)
|
| + automatic_profile_resetter_->NotifyDidShowResetBubble();
|
| }
|
|
|
| void ProfileResetGlobalError::OnBubbleViewDidClose() {
|
| @@ -65,16 +78,13 @@ void ProfileResetGlobalError::OnBubbleViewDidClose() {
|
|
|
| void ProfileResetGlobalError::OnBubbleViewResetButtonPressed(
|
| bool send_feedback) {
|
| - // TODO(engedy): Integrate with the AutomaticProfileResetter.
|
| - UMA_HISTOGRAM_CUSTOM_COUNTS("SettingsResetBubble.NumNoThanksPerReset",
|
| - num_times_bubble_view_shown_ - 1,
|
| - 0,
|
| - kMaxIgnored,
|
| - kNumIgnoredBuckets);
|
| + if (automatic_profile_resetter_)
|
| + automatic_profile_resetter_->TriggerProfileReset(send_feedback);
|
| }
|
|
|
| void ProfileResetGlobalError::OnBubbleViewNoThanksButtonPressed() {
|
| - // TODO(engedy): Integrate with the AutomaticProfileResetter.
|
| + if (automatic_profile_resetter_)
|
| + automatic_profile_resetter_->SkipProfileReset();
|
| }
|
|
|
| GlobalErrorBubbleViewBase* ProfileResetGlobalError::GetBubbleView() {
|
|
|