Chromium Code Reviews| Index: ash/common/system/tray/system_tray.cc |
| diff --git a/ash/common/system/tray/system_tray.cc b/ash/common/system/tray/system_tray.cc |
| index 3dc94551a675925c5927e400dd7eebd03e53f20b..c78e4fae3652ffca24c2c93a3f1248f8feb69fae 100644 |
| --- a/ash/common/system/tray/system_tray.cc |
| +++ b/ash/common/system/tray/system_tray.cc |
| @@ -21,7 +21,6 @@ |
| #include "ash/common/system/chromeos/enterprise/tray_enterprise.h" |
| #include "ash/common/system/chromeos/media_security/multi_profile_media_tray_item.h" |
| #include "ash/common/system/chromeos/network/tray_network.h" |
| -#include "ash/common/system/chromeos/network/tray_sms.h" |
| #include "ash/common/system/chromeos/network/tray_vpn.h" |
| #include "ash/common/system/chromeos/power/power_status.h" |
| #include "ash/common/system/chromeos/power/tray_power.h" |
| @@ -207,7 +206,6 @@ SystemTray::SystemTray(WmShelf* wm_shelf) |
| web_notification_tray_(nullptr), |
| detailed_item_(nullptr), |
| default_bubble_height_(0), |
| - hide_notifications_(false), |
| full_system_tray_menu_(false), |
| tray_accessibility_(nullptr), |
| tray_audio_(nullptr), |
| @@ -236,7 +234,6 @@ SystemTray::~SystemTray() { |
| activation_observer_.reset(); |
| key_event_watcher_.reset(); |
| system_bubble_.reset(); |
| - notification_bubble_.reset(); |
| for (const auto& item : items_) |
| item->DestroyTrayView(); |
| } |
| @@ -292,7 +289,6 @@ void SystemTray::CreateItems(SystemTrayDelegate* delegate) { |
| tray_network_ = new TrayNetwork(this); |
| AddTrayItem(base::WrapUnique(tray_network_)); |
| AddTrayItem(base::MakeUnique<TrayVPN>(this)); |
| - AddTrayItem(base::MakeUnique<TraySms>(this)); |
| AddTrayItem(base::MakeUnique<TrayBluetooth>(this)); |
| tray_cast_ = new TrayCast(this); |
| AddTrayItem(base::WrapUnique(tray_cast_)); |
| @@ -396,31 +392,10 @@ void SystemTray::HideDetailedView(SystemTrayItem* item, bool animate) { |
| } |
| DestroySystemBubble(); |
| - UpdateNotificationBubble(); |
| -} |
| - |
| -void SystemTray::ShowNotificationView(SystemTrayItem* item) { |
| - if (std::find(notification_items_.begin(), notification_items_.end(), item) != |
| - notification_items_.end()) |
| - return; |
| - notification_items_.push_back(item); |
| - UpdateNotificationBubble(); |
| -} |
| - |
| -void SystemTray::HideNotificationView(SystemTrayItem* item) { |
| - auto found_iter = |
| - std::find(notification_items_.begin(), notification_items_.end(), item); |
| - if (found_iter == notification_items_.end()) |
| - return; |
| - notification_items_.erase(found_iter); |
| - // Only update the notification bubble if visible (i.e. don't create one). |
| - if (notification_bubble_) |
| - UpdateNotificationBubble(); |
| } |
| void SystemTray::UpdateAfterLoginStatusChange(LoginStatus login_status) { |
| DestroySystemBubble(); |
| - UpdateNotificationBubble(); |
| for (const auto& item : items_) |
| item->UpdateAfterLoginStatusChange(login_status); |
| @@ -439,12 +414,6 @@ void SystemTray::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) { |
| item->UpdateAfterShelfAlignmentChange(alignment); |
| } |
| -void SystemTray::SetHideNotifications(bool hide_notifications) { |
| - if (notification_bubble_) |
| - notification_bubble_->bubble()->SetVisible(!hide_notifications); |
| - hide_notifications_ = hide_notifications; |
| -} |
| - |
| bool SystemTray::ShouldShowShelf() const { |
| return system_bubble_.get() && system_bubble_->bubble()->ShouldShowShelf(); |
| } |
| @@ -453,10 +422,6 @@ bool SystemTray::HasSystemBubble() const { |
| return system_bubble_.get() != NULL; |
| } |
| -bool SystemTray::HasNotificationBubble() const { |
| - return notification_bubble_.get() != NULL; |
| -} |
| - |
| SystemTrayBubble* SystemTray::GetSystemBubble() { |
| if (!system_bubble_) |
| return NULL; |
| @@ -464,16 +429,7 @@ SystemTrayBubble* SystemTray::GetSystemBubble() { |
| } |
| bool SystemTray::IsAnyBubbleVisible() const { |
|
tdanderson
2017/01/26 22:19:07
Since we now only have one bubble possible, this s
yiyix
2017/02/02 20:43:57
Good Call. Thanks.
Done.
|
| - return ((system_bubble_.get() && system_bubble_->bubble()->IsVisible()) || |
| - (notification_bubble_.get() && |
| - notification_bubble_->bubble()->IsVisible())); |
| -} |
| - |
| -bool SystemTray::IsMouseInNotificationBubble() const { |
| - if (!notification_bubble_) |
| - return false; |
| - return notification_bubble_->bubble_view()->GetBoundsInScreen().Contains( |
| - display::Screen::GetScreen()->GetCursorScreenPoint()); |
| + return (system_bubble_.get() && system_bubble_->bubble()->IsVisible()); |
| } |
| bool SystemTray::CloseSystemBubble() const { |
| @@ -497,7 +453,6 @@ TrayAudio* SystemTray::GetTrayAudio() const { |
| // Private methods. |
| bool SystemTray::HasSystemBubbleType(SystemTrayBubble::BubbleType type) { |
| - DCHECK(type != SystemTrayBubble::BUBBLE_TYPE_NOTIFICATION); |
| return system_bubble_.get() && system_bubble_->bubble_type() == type; |
| } |
| @@ -507,13 +462,6 @@ void SystemTray::DestroySystemBubble() { |
| UpdateWebNotifications(); |
| } |
| -void SystemTray::DestroyNotificationBubble() { |
| - if (notification_bubble_) { |
| - notification_bubble_.reset(); |
| - UpdateWebNotifications(); |
| - } |
| -} |
| - |
| base::string16 SystemTray::GetAccessibleNameForTray() { |
| base::string16 time = GetAccessibleTimeString(base::Time::Now()); |
| base::string16 battery = PowerStatus::Get()->GetAccessibleNameString(false); |
| @@ -540,9 +488,6 @@ void SystemTray::ShowItems(const std::vector<SystemTrayItem*>& items, |
| detailed ? SystemTrayBubble::BUBBLE_TYPE_DETAILED |
| : SystemTrayBubble::BUBBLE_TYPE_DEFAULT; |
| - // Destroy the notification bubble here so that it doesn't get rebuilt |
| - // while we add items to the main bubble_ (e.g. in HideNotificationView). |
| - notification_bubble_.reset(); |
| if (system_bubble_.get() && creation_type == BUBBLE_USE_EXISTING) { |
| system_bubble_->bubble()->UpdateView(items, bubble_type); |
| // If ChromeVox is enabled, focus the default item if no item is focused. |
| @@ -610,9 +555,7 @@ void SystemTray::ShowItems(const std::vector<SystemTrayItem*>& items, |
| else |
| detailed_item_ = NULL; |
| - UpdateNotificationBubble(); // State changed, re-create notifications. |
| - if (!notification_bubble_) |
| - UpdateWebNotifications(); |
| + UpdateWebNotifications(); |
| shelf()->UpdateAutoHideState(); |
| // When we show the system menu in our alternate shelf layout, we need to |
| @@ -621,56 +564,9 @@ void SystemTray::ShowItems(const std::vector<SystemTrayItem*>& items, |
| SetIsActive(true); |
| } |
| -// TODO(estade): there's only one thing that triggers a notification bubble, |
| -// and that's TraySms. We could delete a lot of code in SystemTray if that |
| -// used the message center notifications instead. See crbug.com/630641 |
| -void SystemTray::UpdateNotificationBubble() { |
| - // Only show the notification bubble if we have notifications. |
| - if (notification_items_.empty()) { |
| - DestroyNotificationBubble(); |
| - return; |
| - } |
| - // Destroy the existing bubble before constructing a new one. |
| - notification_bubble_.reset(); |
| - SystemTrayBubble* notification_bubble; |
| - notification_bubble = new SystemTrayBubble( |
| - this, notification_items_, SystemTrayBubble::BUBBLE_TYPE_NOTIFICATION); |
| - // Tray items might want to show notifications while we are creating and |
| - // initializing the |system_bubble_| - but it might not be fully initialized |
| - // when coming here - this would produce a crashed like crbug.com/247416. |
| - // As such we check the existence of the widget here. |
| - TrayBubbleView::InitParams init_params( |
| - GetAnchorAlignment(), kTrayPopupMinWidth, kTrayPopupMaxWidth); |
| - views::View* anchor = GetBubbleAnchor(); |
| - gfx::Insets anchor_insets = GetBubbleAnchorInsets(); |
| - // If there's already a system menu bubble, stack this one on top. |
| - if (system_bubble_.get() && system_bubble_->bubble_view() && |
| - system_bubble_->bubble_view()->GetWidget()) { |
| - anchor = system_bubble_->bubble_view(); |
| - anchor_insets.Set(-message_center::kMarginBetweenItems, 0, 0, 0); |
| - init_params.anchor_alignment = TrayBubbleView::ANCHOR_ALIGNMENT_BOTTOM; |
| - } |
| - init_params.bg_color = kBackgroundColor; |
| - notification_bubble_.reset(new SystemBubbleWrapper(notification_bubble)); |
| - notification_bubble_->InitView(this, anchor, anchor_insets, &init_params, |
| - false); |
| - |
| - if (notification_bubble->bubble_view()->child_count() == 0) { |
| - // It is possible that none of the items generated actual notifications. |
| - DestroyNotificationBubble(); |
| - return; |
| - } |
| - if (hide_notifications_) |
| - notification_bubble->SetVisible(false); |
| - else |
| - UpdateWebNotifications(); |
| -} |
| - |
| void SystemTray::UpdateWebNotifications() { |
| TrayBubbleView* bubble_view = NULL; |
| - if (notification_bubble_) |
| - bubble_view = notification_bubble_->bubble_view(); |
| - else if (system_bubble_) |
| + if (system_bubble_) |
| bubble_view = system_bubble_->bubble_view(); |
| int height = 0; |
| @@ -702,22 +598,10 @@ void SystemTray::SetShelfAlignment(ShelfAlignment alignment) { |
| // Destroy any existing bubble so that it is rebuilt correctly. |
| CloseSystemBubbleAndDeactivateSystemTray(); |
| // Rebuild any notification bubble. |
| - if (notification_bubble_) { |
| - notification_bubble_.reset(); |
| - UpdateNotificationBubble(); |
| - // UpdateWebNotifications() should be called in UpdateNotificationBubble(). |
| - } else if (!hide_notifications_) { |
| - UpdateWebNotifications(); |
| - } |
| + UpdateWebNotifications(); |
| } |
| void SystemTray::AnchorUpdated() { |
| - if (notification_bubble_) { |
| - notification_bubble_->bubble_view()->UpdateBubble(); |
| - // Ensure that the notification buble is above the shelf/status area. |
| - notification_bubble_->bubble_view()->GetWidget()->StackAtTop(); |
| - UpdateBubbleViewArrow(notification_bubble_->bubble_view()); |
| - } |
| if (system_bubble_) { |
| system_bubble_->bubble_view()->UpdateBubble(); |
| UpdateBubbleViewArrow(system_bubble_->bubble_view()); |
| @@ -731,11 +615,7 @@ void SystemTray::BubbleResized(const TrayBubbleView* bubble_view) { |
| void SystemTray::HideBubbleWithView(const TrayBubbleView* bubble_view) { |
| if (system_bubble_.get() && bubble_view == system_bubble_->bubble_view()) { |
| DestroySystemBubble(); |
| - UpdateNotificationBubble(); // State changed, re-create notifications. |
| shelf()->UpdateAutoHideState(); |
| - } else if (notification_bubble_.get() && |
| - bubble_view == notification_bubble_->bubble_view()) { |
| - DestroyNotificationBubble(); |
| } |
| } |