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

Unified Diff: ash/system/session_length_limit/tray_session_length_limit.cc

Issue 108213009: Adds TraySessionLengthLimitTest to ash_unittests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ASH_EXPORT to SessionLengthLimitObserver Created 7 years 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 side-by-side diff with in-line comments
Download patch
Index: ash/system/session_length_limit/tray_session_length_limit.cc
diff --git a/ash/system/session_length_limit/tray_session_length_limit.cc b/ash/system/session_length_limit/tray_session_length_limit.cc
index cdf69d5d602d81d22c9228db06258adc2d2c911f..81425afbade96a858d52036cdabc73bd06a5e8a1 100644
--- a/ash/system/session_length_limit/tray_session_length_limit.cc
+++ b/ash/system/session_length_limit/tray_session_length_limit.cc
@@ -50,8 +50,6 @@ const SkColor kRemainingTimeColor = SK_ColorWHITE;
// Color in which the remaining session time is shown when it is expiring soon.
const SkColor kRemainingTimeExpiringSoonColor = SK_ColorRED;
-const char kSessionLengthTimeoutNotificationId[] = "chrome://session/timeout";
-
views::Label* CreateAndSetupLabel() {
views::Label* label = new views::Label;
label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
@@ -79,17 +77,16 @@ base::string16 FormatRemainingSessionTimeNotification(
// Creates, or updates the notification for session length timeout with
// |remaining_time|. |state_changed| is true when its internal state has been
// changed from another.
-void CreateOrUpdateNotification(const base::TimeDelta& remaining_time,
+void CreateOrUpdateNotification(const std::string& notification_id,
+ const base::TimeDelta& remaining_time,
bool state_changed) {
message_center::MessageCenter* message_center =
message_center::MessageCenter::Get();
// Do not create a new notification if no state has changed. It may happen
// when the notification is already closed by the user, see crbug.com/285941.
- if (!state_changed &&
- !message_center->HasNotification(kSessionLengthTimeoutNotificationId)) {
+ if (!state_changed && !message_center->HasNotification(notification_id))
return;
- }
ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
message_center::RichNotificationData data;
@@ -97,7 +94,7 @@ void CreateOrUpdateNotification(const base::TimeDelta& remaining_time,
data.should_make_spoken_feedback_for_popup_updates = state_changed;
scoped_ptr<Notification> notification(new Notification(
message_center::NOTIFICATION_TYPE_SIMPLE,
- kSessionLengthTimeoutNotificationId,
+ notification_id,
FormatRemainingSessionTimeNotification(remaining_time),
base::string16() /* message */,
bundle.GetImageNamed(IDR_AURA_UBER_TRAY_SESSION_LENGTH_LIMIT_TIMER),
@@ -278,6 +275,10 @@ void RemainingSessionTimeTrayView::SetBorder(ShelfAlignment shelf_alignment) {
} // namespace tray
+// static
+const char TraySessionLengthLimit::kNotificationId[] =
+ "chrome://session/timeout";
+
TraySessionLengthLimit::TraySessionLengthLimit(SystemTray* system_tray)
: SystemTrayItem(system_tray),
tray_view_(NULL),
@@ -354,15 +355,17 @@ void TraySessionLengthLimit::Update() {
switch (limit_state_) {
case LIMIT_NONE:
message_center::MessageCenter::Get()->RemoveNotification(
- kSessionLengthTimeoutNotificationId, false /* by_user */);
+ kNotificationId, false /* by_user */);
break;
case LIMIT_SET:
CreateOrUpdateNotification(
+ kNotificationId,
remaining_session_time_,
previous_limit_state == LIMIT_NONE);
break;
case LIMIT_EXPIRING_SOON:
CreateOrUpdateNotification(
+ kNotificationId,
remaining_session_time_,
previous_limit_state == LIMIT_NONE ||
previous_limit_state == LIMIT_SET);
@@ -375,5 +378,9 @@ void TraySessionLengthLimit::Update() {
tray_view_->Update();
}
+bool TraySessionLengthLimit::IsTrayViewVisibleForTest() {
+ return tray_view_ && tray_view_->visible();
+}
+
} // namespace internal
} // namespace ash

Powered by Google App Engine
This is Rietveld 408576698