Index: chrome/browser/notifications/platform_notification_service_impl.cc |
diff --git a/chrome/browser/notifications/platform_notification_service_impl.cc b/chrome/browser/notifications/platform_notification_service_impl.cc |
index 6a28a84f962924ea2b99752549571da507af4a8a..7202fad0a4ac6761bb9acece1c8b5a1a7790dd99 100644 |
--- a/chrome/browser/notifications/platform_notification_service_impl.cc |
+++ b/chrome/browser/notifications/platform_notification_service_impl.cc |
@@ -10,6 +10,7 @@ |
#include "base/metrics/histogram_macros.h" |
#include "base/metrics/user_metrics_action.h" |
#include "base/prefs/pref_service.h" |
+#include "base/strings/string_number_conversions.h" |
#include "base/strings/utf_string_conversions.h" |
#include "build/build_config.h" |
#include "chrome/browser/browser_process.h" |
@@ -54,10 +55,6 @@ |
#include "extensions/common/permissions/permissions_data.h" |
#endif |
-#if defined(OS_ANDROID) |
-#include "base/strings/string_number_conversions.h" |
-#endif |
- |
using content::BrowserContext; |
using content::BrowserThread; |
using content::PlatformNotificationContext; |
@@ -99,7 +96,12 @@ PlatformNotificationServiceImpl::GetInstance() { |
} |
PlatformNotificationServiceImpl::PlatformNotificationServiceImpl() |
- : notification_ui_manager_for_tests_(nullptr) {} |
+ : notification_ui_manager_for_tests_(nullptr) { |
+#if defined(OS_MACOSX) |
+ native_notification_ui_manager_.reset( |
+ NotificationUIManager::CreateNativeNotificationManager()); |
Peter Beverloo
2016/01/08 05:14:26
Could you revert the changes to notification_ui_ma
Miguel Garcia
2016/01/08 11:46:55
So the problem with doing it the way you suggest i
Peter Beverloo
2016/01/08 19:40:19
This is a good point. Looking at various other fil
|
+#endif |
+} |
PlatformNotificationServiceImpl::~PlatformNotificationServiceImpl() {} |
@@ -336,12 +338,17 @@ void PlatformNotificationServiceImpl::ClosePersistentNotification( |
#if defined(OS_ANDROID) |
// TODO(peter): Remove this conversion when the notification ids are being |
// generated by the caller of this method. |
- std::string textual_persistent_notification_id = |
- base::Int64ToString(persistent_notification_id); |
GetNotificationUIManager()->CancelById( |
- textual_persistent_notification_id, |
+ base::Int64ToString(persistent_notification_id), |
Peter Beverloo
2016/01/08 05:14:26
I very badly need to clean this up :-(.
Per the p
Miguel Garcia
2016/01/08 11:46:55
Done.
|
NotificationUIManager::GetProfileID(profile)); |
#else |
+ if (native_notification_ui_manager_ && |
+ native_notification_ui_manager_->AcceptNativeNotifications()) { |
+ GetNotificationUIManager()->CancelById( |
+ base::Int64ToString(persistent_notification_id), |
+ NotificationUIManager::GetProfileID(profile)); |
+ } |
+ |
auto iter = persistent_notifications_.find(persistent_notification_id); |
if (iter == persistent_notifications_.end()) |
return; |
@@ -426,6 +433,11 @@ PlatformNotificationServiceImpl::GetNotificationUIManager() const { |
if (notification_ui_manager_for_tests_) |
return notification_ui_manager_for_tests_; |
+ if (native_notification_ui_manager_ && |
+ native_notification_ui_manager_->AcceptNativeNotifications()) { |
+ return native_notification_ui_manager_.get(); |
+ } |
+ |
return g_browser_process->notification_ui_manager(); |
} |