Index: chrome/browser/extensions/api/notification_provider/notification_provider_api.cc |
diff --git a/chrome/browser/extensions/api/notification_provider/notification_provider_api.cc b/chrome/browser/extensions/api/notification_provider/notification_provider_api.cc |
deleted file mode 100644 |
index 01de9042518bc4141439f19f9426458c0881507b..0000000000000000000000000000000000000000 |
--- a/chrome/browser/extensions/api/notification_provider/notification_provider_api.cc |
+++ /dev/null |
@@ -1,310 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/extensions/api/notification_provider/notification_provider_api.h" |
- |
-#include <utility> |
- |
-#include "base/callback.h" |
-#include "base/guid.h" |
-#include "base/rand_util.h" |
-#include "base/strings/string_number_conversions.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "chrome/browser/browser_process.h" |
-#include "chrome/browser/notifications/notification.h" |
-#include "chrome/browser/notifications/notification_ui_manager.h" |
-#include "chrome/browser/notifications/notifier_state_tracker.h" |
-#include "chrome/browser/notifications/notifier_state_tracker_factory.h" |
-#include "extensions/browser/event_router.h" |
-#include "extensions/common/extension.h" |
-#include "extensions/common/features/feature.h" |
-#include "ui/base/layout.h" |
-#include "ui/message_center/message_center.h" |
-#include "ui/message_center/notifier_settings.h" |
-#include "url/gurl.h" |
- |
-namespace extensions { |
- |
-NotificationProviderEventRouter::NotificationProviderEventRouter( |
- Profile* profile) |
- : profile_(profile) { |
-} |
- |
-NotificationProviderEventRouter::~NotificationProviderEventRouter() { |
-} |
- |
-void NotificationProviderEventRouter::CreateNotification( |
- const std::string& notification_provider_id, |
- const std::string& sender_id, |
- const std::string& notification_id, |
- const api::notifications::NotificationOptions& options) { |
- Create(notification_provider_id, sender_id, notification_id, options); |
-} |
- |
-void NotificationProviderEventRouter::UpdateNotification( |
- const std::string& notification_provider_id, |
- const std::string& sender_id, |
- const std::string& notification_id, |
- const api::notifications::NotificationOptions& options) { |
- Update(notification_provider_id, sender_id, notification_id, options); |
-} |
-void NotificationProviderEventRouter::ClearNotification( |
- const std::string& notification_provider_id, |
- const std::string& sender_id, |
- const std::string& notification_id) { |
- Clear(notification_provider_id, sender_id, notification_id); |
-} |
- |
-void NotificationProviderEventRouter::Create( |
- const std::string& notification_provider_id, |
- const std::string& sender_id, |
- const std::string& notification_id, |
- const api::notifications::NotificationOptions& options) { |
- std::unique_ptr<base::ListValue> args = |
- api::notification_provider::OnCreated::Create(sender_id, notification_id, |
- options); |
- |
- std::unique_ptr<Event> event(new Event( |
- events::NOTIFICATION_PROVIDER_ON_CREATED, |
- api::notification_provider::OnCreated::kEventName, std::move(args))); |
- |
- EventRouter::Get(profile_) |
- ->DispatchEventToExtension(notification_provider_id, std::move(event)); |
-} |
- |
-void NotificationProviderEventRouter::Update( |
- const std::string& notification_provider_id, |
- const std::string& sender_id, |
- const std::string& notification_id, |
- const api::notifications::NotificationOptions& options) { |
- std::unique_ptr<base::ListValue> args = |
- api::notification_provider::OnUpdated::Create(sender_id, notification_id, |
- options); |
- |
- std::unique_ptr<Event> event(new Event( |
- events::NOTIFICATION_PROVIDER_ON_UPDATED, |
- api::notification_provider::OnUpdated::kEventName, std::move(args))); |
- |
- EventRouter::Get(profile_) |
- ->DispatchEventToExtension(notification_provider_id, std::move(event)); |
-} |
- |
-void NotificationProviderEventRouter::Clear( |
- const std::string& notification_provider_id, |
- const std::string& sender_id, |
- const std::string& notification_id) { |
- std::unique_ptr<base::ListValue> args = |
- api::notification_provider::OnCleared::Create(sender_id, notification_id); |
- |
- std::unique_ptr<Event> event(new Event( |
- events::NOTIFICATION_PROVIDER_ON_CLEARED, |
- api::notification_provider::OnCleared::kEventName, std::move(args))); |
- |
- EventRouter::Get(profile_) |
- ->DispatchEventToExtension(notification_provider_id, std::move(event)); |
-} |
- |
-NotificationProviderNotifyOnClearedFunction:: |
- NotificationProviderNotifyOnClearedFunction() { |
-} |
- |
-NotificationProviderNotifyOnClearedFunction:: |
- ~NotificationProviderNotifyOnClearedFunction() { |
-} |
- |
-ExtensionFunction::ResponseAction |
-NotificationProviderNotifyOnClearedFunction::Run() { |
- std::unique_ptr<api::notification_provider::NotifyOnCleared::Params> params = |
- api::notification_provider::NotifyOnCleared::Params::Create(*args_); |
- EXTENSION_FUNCTION_VALIDATE(params.get()); |
- |
- const Notification* notification = |
- g_browser_process->notification_ui_manager()->FindById( |
- params->notification_id, |
- NotificationUIManager::GetProfileID(GetProfile())); |
- |
- bool found_notification = notification != NULL; |
- if (found_notification) |
- notification->delegate()->Close(true); |
- |
- return RespondNow( |
- ArgumentList(api::notification_provider::NotifyOnCleared::Results::Create( |
- found_notification))); |
-} |
- |
-NotificationProviderNotifyOnClickedFunction:: |
- NotificationProviderNotifyOnClickedFunction() { |
-} |
- |
-NotificationProviderNotifyOnClickedFunction:: |
- ~NotificationProviderNotifyOnClickedFunction() { |
-} |
- |
-ExtensionFunction::ResponseAction |
-NotificationProviderNotifyOnClickedFunction::Run() { |
- std::unique_ptr<api::notification_provider::NotifyOnClicked::Params> params = |
- api::notification_provider::NotifyOnClicked::Params::Create(*args_); |
- EXTENSION_FUNCTION_VALIDATE(params.get()); |
- |
- const Notification* notification = |
- g_browser_process->notification_ui_manager()->FindById( |
- params->notification_id, |
- NotificationUIManager::GetProfileID(GetProfile())); |
- |
- bool found_notification = notification != NULL; |
- if (found_notification) |
- notification->delegate()->Click(); |
- |
- return RespondNow( |
- ArgumentList(api::notification_provider::NotifyOnClicked::Results::Create( |
- found_notification))); |
-} |
- |
-NotificationProviderNotifyOnButtonClickedFunction:: |
- NotificationProviderNotifyOnButtonClickedFunction() { |
-} |
- |
-NotificationProviderNotifyOnButtonClickedFunction:: |
- ~NotificationProviderNotifyOnButtonClickedFunction() { |
-} |
- |
-ExtensionFunction::ResponseAction |
-NotificationProviderNotifyOnButtonClickedFunction::Run() { |
- std::unique_ptr<api::notification_provider::NotifyOnButtonClicked::Params> |
- params = |
- api::notification_provider::NotifyOnButtonClicked::Params::Create( |
- *args_); |
- EXTENSION_FUNCTION_VALIDATE(params.get()); |
- |
- const Notification* notification = |
- g_browser_process->notification_ui_manager()->FindById( |
- params->notification_id, |
- NotificationUIManager::GetProfileID(GetProfile())); |
- |
- bool found_notification = notification != NULL; |
- if (found_notification) |
- notification->delegate()->ButtonClick(params->button_index); |
- |
- return RespondNow(ArgumentList( |
- api::notification_provider::NotifyOnButtonClicked::Results::Create( |
- found_notification))); |
-} |
- |
-NotificationProviderNotifyOnPermissionLevelChangedFunction:: |
- NotificationProviderNotifyOnPermissionLevelChangedFunction() { |
-} |
- |
-NotificationProviderNotifyOnPermissionLevelChangedFunction:: |
- ~NotificationProviderNotifyOnPermissionLevelChangedFunction() { |
-} |
- |
-ExtensionFunction::ResponseAction |
-NotificationProviderNotifyOnPermissionLevelChangedFunction::Run() { |
- std::unique_ptr< |
- api::notification_provider::NotifyOnPermissionLevelChanged::Params> |
- params = api::notification_provider::NotifyOnPermissionLevelChanged:: |
- Params::Create(*args_); |
- EXTENSION_FUNCTION_VALIDATE(params.get()); |
- |
- // Third party apps/extensions with notification provider API will not be able |
- // to change permission levels of web notifiers, because the list of allowed |
- // websites should only be set in Chrome Settings manually by users. But they |
- // are able to change permission levels of application type notifiers. |
- bool is_application_type = |
- (params->notifier_type == |
- api::notification_provider::NotifierType::NOTIFIER_TYPE_APPLICATION); |
- if (is_application_type) { |
- bool enabled = |
- (params->level == api::notification_provider::NotifierPermissionLevel:: |
- NOTIFIER_PERMISSION_LEVEL_GRANTED); |
- |
- NotifierStateTracker* notifier_state_tracker = |
- NotifierStateTrackerFactory::GetForProfile(GetProfile()); |
- |
- message_center::NotifierId notifier_id( |
- message_center::NotifierId::NotifierType::APPLICATION, |
- params->notifier_id); |
- |
- notifier_state_tracker->SetNotifierEnabled(notifier_id, enabled); |
- } |
- |
- return RespondNow( |
- ArgumentList(api::notification_provider::NotifyOnPermissionLevelChanged:: |
- Results::Create(is_application_type))); |
-} |
- |
-NotificationProviderNotifyOnShowSettingsFunction:: |
- NotificationProviderNotifyOnShowSettingsFunction() { |
-} |
- |
-NotificationProviderNotifyOnShowSettingsFunction:: |
- ~NotificationProviderNotifyOnShowSettingsFunction() { |
-} |
- |
-ExtensionFunction::ResponseAction |
-NotificationProviderNotifyOnShowSettingsFunction::Run() { |
- std::unique_ptr<api::notification_provider::NotifyOnShowSettings::Params> |
- params = api::notification_provider::NotifyOnShowSettings::Params::Create( |
- *args_); |
- EXTENSION_FUNCTION_VALIDATE(params.get()); |
- |
- bool has_advanced_settings; |
- // Only application type notifiers have advanced settings. |
- if (params->notifier_type == |
- api::notification_provider::NotifierType::NOTIFIER_TYPE_APPLICATION) { |
- // TODO(dewittj): Refactor NotificationUIManage API to have a getter of |
- // NotifierSettingsProvider, since it holds the settings provider. |
- message_center::NotifierSettingsProvider* settings_provider = |
- message_center::MessageCenter::Get()->GetNotifierSettingsProvider(); |
- |
- message_center::NotifierId notifier_id( |
- message_center::NotifierId::NotifierType::APPLICATION, |
- params->notifier_id); |
- |
- has_advanced_settings = |
- settings_provider->NotifierHasAdvancedSettings(notifier_id); |
- if (has_advanced_settings) |
- settings_provider->OnNotifierAdvancedSettingsRequested(notifier_id, NULL); |
- } else { |
- has_advanced_settings = false; |
- } |
- |
- return RespondNow(ArgumentList( |
- api::notification_provider::NotifyOnShowSettings::Results::Create( |
- has_advanced_settings))); |
-} |
- |
-NotificationProviderGetNotifierFunction:: |
- NotificationProviderGetNotifierFunction() { |
-} |
- |
-NotificationProviderGetNotifierFunction:: |
- ~NotificationProviderGetNotifierFunction() { |
-} |
- |
-ExtensionFunction::ResponseAction |
-NotificationProviderGetNotifierFunction::Run() { |
- api::notification_provider::Notifier notifier; |
- |
- return RespondNow(ArgumentList( |
- api::notification_provider::GetNotifier::Results::Create(notifier))); |
-} |
- |
-NotificationProviderGetAllNotifiersFunction:: |
- NotificationProviderGetAllNotifiersFunction() { |
-} |
- |
-NotificationProviderGetAllNotifiersFunction:: |
- ~NotificationProviderGetAllNotifiersFunction() { |
-} |
- |
-ExtensionFunction::ResponseAction |
-NotificationProviderGetAllNotifiersFunction::Run() { |
- std::vector<api::notification_provider::Notifier> notifiers; |
- |
- return RespondNow(ArgumentList( |
- api::notification_provider::GetAllNotifiers::Results::Create(notifiers))); |
-} |
- |
-} // namespace extensions |