Chromium Code Reviews| Index: chrome/browser/extensions/api/notifications/notifications_api.cc |
| diff --git a/chrome/browser/extensions/api/notifications/notifications_api.cc b/chrome/browser/extensions/api/notifications/notifications_api.cc |
| index 4897fdf4998830e458c25d0f1549772a30953246..7d04180e57b340984058f050780f8e024f0b0f41 100644 |
| --- a/chrome/browser/extensions/api/notifications/notifications_api.cc |
| +++ b/chrome/browser/extensions/api/notifications/notifications_api.cc |
| @@ -19,9 +19,13 @@ |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/time/time.h" |
| #include "build/build_config.h" |
| +#include "chrome/browser/browser_process.h" |
| #include "chrome/browser/extensions/api/notifications/extension_notification_display_helper.h" |
| #include "chrome/browser/extensions/api/notifications/extension_notification_display_helper_factory.h" |
| +#include "chrome/browser/notifications/native_notification_delegate.h" |
| #include "chrome/browser/notifications/notification.h" |
| +#include "chrome/browser/notifications/notification_common.h" |
| +#include "chrome/browser/notifications/notification_delegate.h" |
| #include "chrome/browser/notifications/notifier_state_tracker.h" |
| #include "chrome/browser/notifications/notifier_state_tracker_factory.h" |
| #include "chrome/browser/profiles/profile.h" |
| @@ -206,31 +210,6 @@ class ShutdownNotifierFactory |
| DISALLOW_COPY_AND_ASSIGN(ShutdownNotifierFactory); |
| }; |
| -// Temporary native notification api delagate, it is only used |
| -// to extract the delegate id. |
| -// This is an interim state until the work in |
| -// https://bugs.chromium.org/p/chromium/issues/detail?id=720345 |
| -// is completed. We need a small delegate shim since the |
| -// Notification object has a non virtual method (delegate_id) that is |
| -// used all over the place whose implementation returns delegate->id() |
| -#if BUILDFLAG(ENABLE_NATIVE_NOTIFICATIONS) |
| -class NativeNotificationApiDelegate : public NotificationDelegate { |
| - public: |
| - NativeNotificationApiDelegate(const std::string& extension_id, |
| - const std::string& notification_id) |
| - : scoped_notification_id_( |
| - CreateScopedIdentifier(extension_id, notification_id)) {} |
| - |
| - std::string id() const override { return scoped_notification_id_; } |
| - |
| - private: |
| - ~NativeNotificationApiDelegate() override = default; |
| - const std::string scoped_notification_id_; |
| - |
| - DISALLOW_COPY_AND_ASSIGN(NativeNotificationApiDelegate); |
| -}; |
| -#endif // BUILDFLAG(ENABLE_NATIVE_NOTIFICATIONS) |
| - |
| // Message center based notification delegate with all the functionality. |
| class NotificationApiDelegate : public NotificationDelegate { |
| public: |
| @@ -520,8 +499,10 @@ bool NotificationsApiFunction::CreateNotification( |
| // Create the notification api delegate. Ownership passed to the notification. |
| NotificationDelegate* api_delegate; |
| #if BUILDFLAG(ENABLE_NATIVE_NOTIFICATIONS) |
| - if (base::FeatureList::IsEnabled(features::kNativeNotifications)) { |
| - api_delegate = new NativeNotificationApiDelegate(extension_->id(), id); |
| + if (base::FeatureList::IsEnabled(features::kNativeNotifications) && |
| + g_browser_process->notification_platform_bridge()) { |
|
dewittj
2017/06/01 18:44:45
Probably fine but it feels strange to ask the brow
Miguel Garcia
2017/06/02 12:37:13
You are right, this is an artifact of how to decid
|
| + api_delegate = new NativeNotificationDelegate( |
| + CreateScopedIdentifier(extension_->id(), id)); |
| } else { |
| api_delegate = |
| new NotificationApiDelegate(this, GetProfile(), extension_->id(), id); |