Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Side by Side Diff: chrome/browser/sync/sync_error_notifier_ash.cc

Issue 395463005: Make sync/sign-in error notifications actionable on click. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/signin/signin_error_notifier_ash.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "chrome/browser/sync/sync_error_notifier_ash.h" 5 #include "chrome/browser/sync/sync_error_notifier_ash.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/shell_delegate.h" 8 #include "ash/shell_delegate.h"
9 #include "ash/system/system_notifier.h" 9 #include "ash/system/system_notifier.h"
10 #include "base/strings/string16.h" 10 #include "base/strings/string16.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 virtual bool HasClickedListener() OVERRIDE; 50 virtual bool HasClickedListener() OVERRIDE;
51 virtual void Click() OVERRIDE; 51 virtual void Click() OVERRIDE;
52 virtual void ButtonClick(int button_index) OVERRIDE; 52 virtual void ButtonClick(int button_index) OVERRIDE;
53 virtual std::string id() const OVERRIDE; 53 virtual std::string id() const OVERRIDE;
54 virtual content::WebContents* GetWebContents() const OVERRIDE; 54 virtual content::WebContents* GetWebContents() const OVERRIDE;
55 55
56 protected: 56 protected:
57 virtual ~SyncNotificationDelegate(); 57 virtual ~SyncNotificationDelegate();
58 58
59 private: 59 private:
60 void ShowSyncSetup();
61
60 // Unique id of the notification. 62 // Unique id of the notification.
61 const std::string id_; 63 const std::string id_;
62 64
63 Profile* profile_; 65 Profile* profile_;
64 66
65 DISALLOW_COPY_AND_ASSIGN(SyncNotificationDelegate); 67 DISALLOW_COPY_AND_ASSIGN(SyncNotificationDelegate);
66 }; 68 };
67 69
68 SyncNotificationDelegate::SyncNotificationDelegate( 70 SyncNotificationDelegate::SyncNotificationDelegate(
69 const std::string& id, 71 const std::string& id,
(...skipping 12 matching lines...) Expand all
82 } 84 }
83 85
84 void SyncNotificationDelegate::Close(bool by_user) { 86 void SyncNotificationDelegate::Close(bool by_user) {
85 } 87 }
86 88
87 bool SyncNotificationDelegate::HasClickedListener() { 89 bool SyncNotificationDelegate::HasClickedListener() {
88 return false; 90 return false;
89 } 91 }
90 92
91 void SyncNotificationDelegate::Click() { 93 void SyncNotificationDelegate::Click() {
94 ShowSyncSetup();
95 }
96
97 void SyncNotificationDelegate::ButtonClick(int button_index) {
98 ShowSyncSetup();
92 } 99 }
93 100
94 std::string SyncNotificationDelegate::id() const { 101 std::string SyncNotificationDelegate::id() const {
95 return id_; 102 return id_;
96 } 103 }
97 104
98 content::WebContents* SyncNotificationDelegate::GetWebContents() const { 105 content::WebContents* SyncNotificationDelegate::GetWebContents() const {
99 return NULL; 106 return NULL;
100 } 107 }
101 108
102 void SyncNotificationDelegate::ButtonClick(int button_index) { 109 void SyncNotificationDelegate::ShowSyncSetup() {
103 LoginUIService* login_ui = LoginUIServiceFactory::GetForProfile(profile_); 110 LoginUIService* login_ui = LoginUIServiceFactory::GetForProfile(profile_);
104 if (login_ui->current_login_ui()) { 111 if (login_ui->current_login_ui()) {
105 // TODO(michaelpg): The LoginUI might be on an inactive desktop. 112 // TODO(michaelpg): The LoginUI might be on an inactive desktop.
106 // See crbug.com/354280. 113 // See crbug.com/354280.
107 login_ui->current_login_ui()->FocusUI(); 114 login_ui->current_login_ui()->FocusUI();
108 return; 115 return;
109 } 116 }
110 117
111 chrome::ShowSettingsSubPageForProfile(profile_, chrome::kSyncSetupSubPage); 118 chrome::ShowSettingsSubPageForProfile(profile_, chrome::kSyncSetupSubPage);
112 } 119 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 ui::ResourceBundle::GetSharedInstance().GetImageNamed( 196 ui::ResourceBundle::GetSharedInstance().GetImageNamed(
190 IDR_NOTIFICATION_ALERT), 197 IDR_NOTIFICATION_ALERT),
191 blink::WebTextDirectionDefault, 198 blink::WebTextDirectionDefault,
192 notifier_id, 199 notifier_id,
193 base::string16(), // display_source 200 base::string16(), // display_source
194 base::ASCIIToUTF16(notification_id_), 201 base::ASCIIToUTF16(notification_id_),
195 data, 202 data,
196 delegate); 203 delegate);
197 notification_ui_manager->Add(notification, profile_); 204 notification_ui_manager->Add(notification, profile_);
198 } 205 }
OLDNEW
« no previous file with comments | « chrome/browser/signin/signin_error_notifier_ash.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698