Index: chrome/browser/notifications/web_notification_delegate.cc |
diff --git a/chrome/browser/notifications/web_notification_delegate.cc b/chrome/browser/notifications/web_notification_delegate.cc |
index 8d4e792eb4d48b3ef517254fdb88c3ccac68cfd7..a99bad6e06a9cfd40ff122a91c63c5be223f93bc 100644 |
--- a/chrome/browser/notifications/web_notification_delegate.cc |
+++ b/chrome/browser/notifications/web_notification_delegate.cc |
@@ -7,27 +7,11 @@ |
#include "base/feature_list.h" |
#include "base/metrics/histogram_macros.h" |
#include "base/strings/nullable_string16.h" |
+#include "chrome/browser/notifications/notification_common.h" |
#include "chrome/browser/notifications/notification_display_service.h" |
#include "chrome/browser/notifications/notification_display_service_factory.h" |
#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/ui/browser.h" |
-#include "chrome/browser/ui/browser_list.h" |
-#include "chrome/browser/ui/browser_window.h" |
-#include "chrome/browser/ui/exclusive_access/exclusive_access_context.h" |
-#include "chrome/browser/ui/exclusive_access/exclusive_access_manager.h" |
-#include "chrome/browser/ui/tabs/tab_strip_model.h" |
-#include "content/public/browser/web_contents.h" |
-#include "ui/message_center/notifier_settings.h" |
-using message_center::NotifierId; |
- |
-namespace features { |
- |
-const base::Feature kAllowFullscreenWebNotificationsFeature{ |
- "FSNotificationsWeb", base::FEATURE_ENABLED_BY_DEFAULT |
-}; |
- |
-} // namespace features |
WebNotificationDelegate::WebNotificationDelegate( |
NotificationCommon::Type notification_type, |
@@ -55,53 +39,17 @@ bool WebNotificationDelegate::SettingsClick() { |
} |
bool WebNotificationDelegate::ShouldDisplaySettingsButton() { |
- return true; |
+ return notification_type_ != NotificationCommon::EXTENSION; |
} |
bool WebNotificationDelegate::ShouldDisplayOverFullscreen() const { |
-#if !defined(OS_ANDROID) |
- // Check to see if this notification comes from a webpage that is displaying |
- // fullscreen content. |
- for (auto* browser : *BrowserList::GetInstance()) { |
- // Only consider the browsers for the profile that created the notification |
- if (browser->profile() != profile_) |
- continue; |
- |
- const content::WebContents* active_contents = |
- browser->tab_strip_model()->GetActiveWebContents(); |
- if (!active_contents) |
- continue; |
- |
- // Check to see if |
- // (a) the active tab in the browser shares its origin with the |
- // notification. |
- // (b) the browser is fullscreen |
- // (c) the browser has focus. |
- if (active_contents->GetURL().GetOrigin() == origin_ && |
- browser->exclusive_access_manager()->context()->IsFullscreen() && |
- browser->window()->IsActive()) { |
- bool enabled = base::FeatureList::IsEnabled( |
- features::kAllowFullscreenWebNotificationsFeature); |
- if (enabled) { |
- UMA_HISTOGRAM_ENUMERATION("Notifications.Display_Fullscreen.Shown", |
- NotifierId::WEB_PAGE, |
- NotifierId::SIZE); |
- } else { |
- UMA_HISTOGRAM_ENUMERATION( |
- "Notifications.Display_Fullscreen.Suppressed", |
- NotifierId::WEB_PAGE, |
- NotifierId::SIZE); |
- } |
- return enabled; |
- } |
- } |
-#endif |
+ NotificationDisplayService* display_service = |
+ NotificationDisplayServiceFactory::GetForProfile(profile_); |
- return false; |
+ return display_service->ShouldDisplayOverFullscreen(origin_, |
+ notification_type_); |
} |
-void WebNotificationDelegate::Display() {} |
- |
void WebNotificationDelegate::Close(bool by_user) { |
auto* display_service = |
NotificationDisplayServiceFactory::GetForProfile(profile_); |