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

Side by Side Diff: chrome/browser/background/background_contents_service.cc

Issue 2555833002: Remove enable_notifications build flag and define (Closed)
Patch Set: Merge Created 4 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 unified diff | Download patch
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/background/background_contents_service.h" 5 #include "chrome/browser/background/background_contents_service.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "apps/app_load_service.h" 9 #include "apps/app_load_service.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 #include "extensions/common/extension_icon_set.h" 49 #include "extensions/common/extension_icon_set.h"
50 #include "extensions/common/extension_set.h" 50 #include "extensions/common/extension_set.h"
51 #include "extensions/common/manifest_handlers/background_info.h" 51 #include "extensions/common/manifest_handlers/background_info.h"
52 #include "extensions/common/manifest_handlers/icons_handler.h" 52 #include "extensions/common/manifest_handlers/icons_handler.h"
53 #include "extensions/common/one_shot_event.h" 53 #include "extensions/common/one_shot_event.h"
54 #include "extensions/grit/extensions_browser_resources.h" 54 #include "extensions/grit/extensions_browser_resources.h"
55 #include "ipc/ipc_message.h" 55 #include "ipc/ipc_message.h"
56 #include "ui/base/l10n/l10n_util.h" 56 #include "ui/base/l10n/l10n_util.h"
57 #include "ui/base/resource/resource_bundle.h" 57 #include "ui/base/resource/resource_bundle.h"
58 #include "ui/gfx/image/image.h" 58 #include "ui/gfx/image/image.h"
59
60 #if defined(ENABLE_NOTIFICATIONS)
61 #include "ui/message_center/message_center.h" 59 #include "ui/message_center/message_center.h"
62 #include "ui/message_center/notification_types.h" 60 #include "ui/message_center/notification_types.h"
63 #include "ui/message_center/notifier_settings.h" 61 #include "ui/message_center/notifier_settings.h"
64 #endif
65 62
66 using content::SiteInstance; 63 using content::SiteInstance;
67 using content::WebContents; 64 using content::WebContents;
68 using extensions::BackgroundInfo; 65 using extensions::BackgroundInfo;
69 using extensions::Extension; 66 using extensions::Extension;
70 using extensions::UnloadedExtensionInfo; 67 using extensions::UnloadedExtensionInfo;
71 68
72 namespace { 69 namespace {
73 70
74 const char kNotificationPrefix[] = "app.background.crashed."; 71 const char kNotificationPrefix[] = "app.background.crashed.";
75 const char kNotifierId[] = "app.background.crashed"; 72 const char kNotifierId[] = "app.background.crashed";
76 bool g_disable_close_balloon_for_testing = false; 73 bool g_disable_close_balloon_for_testing = false;
77 74
78 void CloseBalloon(const std::string& balloon_id, ProfileID profile_id) { 75 void CloseBalloon(const std::string& balloon_id, ProfileID profile_id) {
79 NotificationUIManager* notification_ui_manager = 76 NotificationUIManager* notification_ui_manager =
80 g_browser_process->notification_ui_manager(); 77 g_browser_process->notification_ui_manager();
81 bool cancelled = notification_ui_manager->CancelById(balloon_id, profile_id); 78 bool cancelled = notification_ui_manager->CancelById(balloon_id, profile_id);
82 if (cancelled) { 79 if (cancelled) {
83 #if defined(ENABLE_NOTIFICATIONS)
84 // TODO(dewittj): Add this functionality to the notification UI manager's 80 // TODO(dewittj): Add this functionality to the notification UI manager's
85 // API. 81 // API.
86 g_browser_process->message_center()->SetVisibility( 82 g_browser_process->message_center()->SetVisibility(
87 message_center::VISIBILITY_TRANSIENT); 83 message_center::VISIBILITY_TRANSIENT);
88 #endif
89 } 84 }
90 } 85 }
91 86
92 // Closes the crash notification balloon for the app/extension with this id. 87 // Closes the crash notification balloon for the app/extension with this id.
93 void ScheduleCloseBalloon(const std::string& extension_id, Profile* profile) { 88 void ScheduleCloseBalloon(const std::string& extension_id, Profile* profile) {
94 if (g_disable_close_balloon_for_testing) 89 if (g_disable_close_balloon_for_testing)
95 return; 90 return;
96 base::ThreadTaskRunnerHandle::Get()->PostTask( 91 base::ThreadTaskRunnerHandle::Get()->PostTask(
97 FROM_HERE, base::Bind(&CloseBalloon, kNotificationPrefix + extension_id, 92 FROM_HERE, base::Bind(&CloseBalloon, kNotificationPrefix + extension_id,
98 NotificationUIManager::GetProfileID(profile))); 93 NotificationUIManager::GetProfileID(profile)));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 ~CrashNotificationDelegate() override {} 146 ~CrashNotificationDelegate() override {}
152 147
153 Profile* profile_; 148 Profile* profile_;
154 bool is_hosted_app_; 149 bool is_hosted_app_;
155 bool is_platform_app_; 150 bool is_platform_app_;
156 std::string extension_id_; 151 std::string extension_id_;
157 152
158 DISALLOW_COPY_AND_ASSIGN(CrashNotificationDelegate); 153 DISALLOW_COPY_AND_ASSIGN(CrashNotificationDelegate);
159 }; 154 };
160 155
161 #if defined(ENABLE_NOTIFICATIONS)
162 void NotificationImageReady( 156 void NotificationImageReady(
163 const std::string extension_name, 157 const std::string extension_name,
164 const base::string16 message, 158 const base::string16 message,
165 scoped_refptr<CrashNotificationDelegate> delegate, 159 scoped_refptr<CrashNotificationDelegate> delegate,
166 Profile* profile, 160 Profile* profile,
167 const gfx::Image& icon) { 161 const gfx::Image& icon) {
168 if (g_browser_process->IsShuttingDown()) 162 if (g_browser_process->IsShuttingDown())
169 return; 163 return;
170 164
171 gfx::Image notification_icon(icon); 165 gfx::Image notification_icon(icon);
(...skipping 13 matching lines...) Expand all
185 message_center::NotifierId::SYSTEM_COMPONENT, 179 message_center::NotifierId::SYSTEM_COMPONENT,
186 kNotifierId), 180 kNotifierId),
187 base::string16(), 181 base::string16(),
188 GURL("chrome://extension-crash"), 182 GURL("chrome://extension-crash"),
189 delegate->id(), 183 delegate->id(),
190 message_center::RichNotificationData(), 184 message_center::RichNotificationData(),
191 delegate.get()); 185 delegate.get());
192 186
193 g_browser_process->notification_ui_manager()->Add(notification, profile); 187 g_browser_process->notification_ui_manager()->Add(notification, profile);
194 } 188 }
195 #endif
196 189
197 // Show a popup notification balloon with a crash message for a given app/ 190 // Show a popup notification balloon with a crash message for a given app/
198 // extension. 191 // extension.
199 void ShowBalloon(const Extension* extension, Profile* profile) { 192 void ShowBalloon(const Extension* extension, Profile* profile) {
200 #if defined(ENABLE_NOTIFICATIONS)
201 const base::string16 message = l10n_util::GetStringFUTF16( 193 const base::string16 message = l10n_util::GetStringFUTF16(
202 extension->is_app() ? IDS_BACKGROUND_CRASHED_APP_BALLOON_MESSAGE : 194 extension->is_app() ? IDS_BACKGROUND_CRASHED_APP_BALLOON_MESSAGE :
203 IDS_BACKGROUND_CRASHED_EXTENSION_BALLOON_MESSAGE, 195 IDS_BACKGROUND_CRASHED_EXTENSION_BALLOON_MESSAGE,
204 base::UTF8ToUTF16(extension->name())); 196 base::UTF8ToUTF16(extension->name()));
205 extension_misc::ExtensionIcons size(extension_misc::EXTENSION_ICON_LARGE); 197 extension_misc::ExtensionIcons size(extension_misc::EXTENSION_ICON_LARGE);
206 extensions::ExtensionResource resource = 198 extensions::ExtensionResource resource =
207 extensions::IconsInfo::GetIconResource( 199 extensions::IconsInfo::GetIconResource(
208 extension, size, ExtensionIconSet::MATCH_SMALLER); 200 extension, size, ExtensionIconSet::MATCH_SMALLER);
209 // We can't just load the image in the Observe method below because, despite 201 // We can't just load the image in the Observe method below because, despite
210 // what this method is called, it may call the callback synchronously. 202 // what this method is called, it may call the callback synchronously.
211 // However, it's possible that the extension went away during the interim, 203 // However, it's possible that the extension went away during the interim,
212 // so we'll bind all the pertinent data here. 204 // so we'll bind all the pertinent data here.
213 extensions::ImageLoader::Get(profile)->LoadImageAsync( 205 extensions::ImageLoader::Get(profile)->LoadImageAsync(
214 extension, 206 extension,
215 resource, 207 resource,
216 gfx::Size(size, size), 208 gfx::Size(size, size),
217 base::Bind( 209 base::Bind(
218 &NotificationImageReady, 210 &NotificationImageReady,
219 extension->name(), 211 extension->name(),
220 message, 212 message,
221 make_scoped_refptr(new CrashNotificationDelegate(profile, extension)), 213 make_scoped_refptr(new CrashNotificationDelegate(profile, extension)),
222 profile)); 214 profile));
223 #endif
224 } 215 }
225 216
226 void ReloadExtension(const std::string& extension_id, Profile* profile) { 217 void ReloadExtension(const std::string& extension_id, Profile* profile) {
227 if (g_browser_process->IsShuttingDown() || 218 if (g_browser_process->IsShuttingDown() ||
228 !g_browser_process->profile_manager()->IsValidProfile(profile)) { 219 !g_browser_process->profile_manager()->IsValidProfile(profile)) {
229 return; 220 return;
230 } 221 }
231 222
232 extensions::ExtensionSystem* extension_system = 223 extensions::ExtensionSystem* extension_system =
233 extensions::ExtensionSystem::Get(profile); 224 extensions::ExtensionSystem::Get(profile);
(...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after
857 const gfx::Rect& initial_rect, 848 const gfx::Rect& initial_rect,
858 bool user_gesture, 849 bool user_gesture,
859 bool* was_blocked) { 850 bool* was_blocked) {
860 Browser* browser = chrome::FindLastActiveWithProfile( 851 Browser* browser = chrome::FindLastActiveWithProfile(
861 Profile::FromBrowserContext(new_contents->GetBrowserContext())); 852 Profile::FromBrowserContext(new_contents->GetBrowserContext()));
862 if (browser) { 853 if (browser) {
863 chrome::AddWebContents(browser, NULL, new_contents, disposition, 854 chrome::AddWebContents(browser, NULL, new_contents, disposition,
864 initial_rect, user_gesture, was_blocked); 855 initial_rect, user_gesture, was_blocked);
865 } 856 }
866 } 857 }
OLDNEW
« no previous file with comments | « chrome/browser/about_flags.cc ('k') | chrome/browser/background/background_contents_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698