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

Side by Side Diff: ui/message_center/views/message_center_bubble.cc

Issue 2031763003: Remove itself from the widget observers in destructor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « no previous file | 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/message_center/views/message_center_bubble.h" 5 #include "ui/message_center/views/message_center_bubble.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "ui/base/l10n/l10n_util.h" 8 #include "ui/base/l10n/l10n_util.h"
9 #include "ui/message_center/message_center_style.h" 9 #include "ui/message_center/message_center_style.h"
10 #include "ui/message_center/views/message_center_view.h" 10 #include "ui/message_center/views/message_center_view.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 61
62 MessageCenterBubble::MessageCenterBubble(MessageCenter* message_center, 62 MessageCenterBubble::MessageCenterBubble(MessageCenter* message_center,
63 MessageCenterTray* tray, 63 MessageCenterTray* tray,
64 bool first_item_has_no_margin) 64 bool first_item_has_no_margin)
65 : MessageBubbleBase(message_center, tray), 65 : MessageBubbleBase(message_center, tray),
66 message_center_view_(NULL), 66 message_center_view_(NULL),
67 initially_settings_visible_(false), 67 initially_settings_visible_(false),
68 first_item_has_no_margin_(first_item_has_no_margin) {} 68 first_item_has_no_margin_(first_item_has_no_margin) {}
69 69
70 MessageCenterBubble::~MessageCenterBubble() { 70 MessageCenterBubble::~MessageCenterBubble() {
71 bubble_view()->GetWidget()->RemoveObserver(this);
msw 2016/06/16 17:12:48 Sorry, but TrayBubbleView is "specialized" (ie. no
Mr4D (OOO till 08-26) 2016/06/17 23:10:08 My work on bubbles is at least 2 years ago and I d
xiyuan 2016/06/20 16:04:40 It probably would crash since MessageCenterBubble
71 } 72 }
72 73
73 void MessageCenterBubble::SetSettingsVisible() { 74 void MessageCenterBubble::SetSettingsVisible() {
74 if (message_center_view_) 75 if (message_center_view_)
75 message_center_view_->SetSettingsVisible(true); 76 message_center_view_->SetSettingsVisible(true);
76 else 77 else
77 initially_settings_visible_ = true; 78 initially_settings_visible_ = true;
78 } 79 }
79 80
80 views::TrayBubbleView::InitParams MessageCenterBubble::GetInitParams( 81 views::TrayBubbleView::InitParams MessageCenterBubble::GetInitParams(
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 if (!bubble_view()) 114 if (!bubble_view())
114 return; // Could get called after view is closed 115 return; // Could get called after view is closed
115 const NotificationList::Notifications& notifications = 116 const NotificationList::Notifications& notifications =
116 message_center()->GetVisibleNotifications(); 117 message_center()->GetVisibleNotifications();
117 message_center_view_->SetNotifications(notifications); 118 message_center_view_->SetNotifications(notifications);
118 bubble_view()->GetWidget()->Show(); 119 bubble_view()->GetWidget()->Show();
119 bubble_view()->UpdateBubble(); 120 bubble_view()->UpdateBubble();
120 } 121 }
121 122
122 void MessageCenterBubble::OnWidgetClosing(views::Widget* widget) { 123 void MessageCenterBubble::OnWidgetClosing(views::Widget* widget) {
123 bubble_view()->GetWidget()->RemoveObserver(this);
124 if (message_center_view_) 124 if (message_center_view_)
125 message_center_view_->SetIsClosing(true); 125 message_center_view_->SetIsClosing(true);
126 } 126 }
127 127
128 void MessageCenterBubble::OnMouseEnteredView() { 128 void MessageCenterBubble::OnMouseEnteredView() {
129 } 129 }
130 130
131 void MessageCenterBubble::OnMouseExitedView() { 131 void MessageCenterBubble::OnMouseExitedView() {
132 } 132 }
133 133
134 size_t MessageCenterBubble::NumMessageViewsForTest() const { 134 size_t MessageCenterBubble::NumMessageViewsForTest() const {
135 return message_center_view_->NumMessageViewsForTest(); 135 return message_center_view_->NumMessageViewsForTest();
136 } 136 }
137 137
138 } // namespace message_center 138 } // namespace message_center
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698