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

Side by Side Diff: chrome/browser/status_icons/desktop_notification_balloon.cc

Issue 10168008: Show camera and microphone status indicators. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updated the media_stream_dispatcher_unittest Created 8 years, 7 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/media/media_stream_capture_indicator.cc ('k') | chrome/chrome_browser.gypi » ('j') | 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 "chrome/browser/status_icons/desktop_notification_balloon.h" 5 #include "chrome/browser/status_icons/desktop_notification_balloon.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/string_number_conversions.h" 8 #include "base/string_number_conversions.h"
9 #include "base/threading/thread_restrictions.h" 9 #include "base/threading/thread_restrictions.h"
10 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
11 #include "chrome/browser/notifications/desktop_notification_service.h" 11 #include "chrome/browser/notifications/desktop_notification_service.h"
12 #include "chrome/browser/notifications/notification.h" 12 #include "chrome/browser/notifications/notification.h"
13 #include "chrome/browser/notifications/notification_delegate.h" 13 #include "chrome/browser/notifications/notification_delegate.h"
14 #include "chrome/browser/notifications/notification_ui_manager.h" 14 #include "chrome/browser/notifications/notification_ui_manager.h"
15 #include "chrome/browser/profiles/profile_manager.h" 15 #include "chrome/browser/profiles/profile_manager.h"
16 #include "chrome/browser/ui/webui/web_ui_util.h" 16 #include "chrome/browser/ui/webui/web_ui_util.h"
17 #include "third_party/skia/include/core/SkBitmap.h" 17 #include "third_party/skia/include/core/SkBitmap.h"
18 18
19 namespace { 19 namespace {
20 20
21 void CloseBalloon(const std::string& id) { 21 void CloseBalloon(const std::string& id) {
22 // The browser process may have gone away during shutting down, in this case
23 // notification_ui_manager() will close the balloon in its destructor.
24 if (!g_browser_process)
25 return;
26
22 g_browser_process->notification_ui_manager()->CancelById(id); 27 g_browser_process->notification_ui_manager()->CancelById(id);
23 } 28 }
24 29
25 // Prefix added to the notification ids. 30 // Prefix added to the notification ids.
26 const char kNotificationPrefix[] = "desktop_notification_balloon."; 31 const char kNotificationPrefix[] = "desktop_notification_balloon.";
27 32
28 // Timeout for automatically dismissing the notification balloon. 33 // Timeout for automatically dismissing the notification balloon.
29 const size_t kTimeoutSeconds = 6; 34 const size_t kTimeoutSeconds = 6;
30 35
31 class DummyNotificationDelegate : public NotificationDelegate { 36 class DummyNotificationDelegate : public NotificationDelegate {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 GURL(), content_url, string16(), string16(), 81 GURL(), content_url, string16(), string16(),
77 new DummyNotificationDelegate(base::IntToString(id_count_++)))); 82 new DummyNotificationDelegate(base::IntToString(id_count_++))));
78 83
79 // Allowing IO access is required here to cover the corner case where 84 // Allowing IO access is required here to cover the corner case where
80 // there is no last used profile and the default one is loaded. 85 // there is no last used profile and the default one is loaded.
81 // IO access won't be required for normal uses. 86 // IO access won't be required for normal uses.
82 base::ThreadRestrictions::ScopedAllowIO allow_io; 87 base::ThreadRestrictions::ScopedAllowIO allow_io;
83 g_browser_process->notification_ui_manager()->Add( 88 g_browser_process->notification_ui_manager()->Add(
84 *notification_.get(), ProfileManager::GetLastUsedProfile()); 89 *notification_.get(), ProfileManager::GetLastUsedProfile());
85 } 90 }
OLDNEW
« no previous file with comments | « chrome/browser/media/media_stream_capture_indicator.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698