Chromium Code Reviews| Index: chrome/browser/extensions/api/notification_getter/notification_getter_api.cc |
| diff --git a/chrome/browser/extensions/api/notification_getter/notification_getter_api.cc b/chrome/browser/extensions/api/notification_getter/notification_getter_api.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..9976a28dd6515de1582381daca676aef4cff2ba7 |
| --- /dev/null |
| +++ b/chrome/browser/extensions/api/notification_getter/notification_getter_api.cc |
| @@ -0,0 +1,161 @@ |
| +// Copyright (c) 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_getter/notification_getter_api.h" |
| + |
| +#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/common/chrome_version_info.h" |
| +#include "extensions/browser/event_router.h" |
| +#include "extensions/common/extension.h" |
| +#include "extensions/common/features/feature.h" |
| +#include "ui/base/layout.h" |
| +#include "url/gurl.h" |
| + |
| +namespace extensions { |
| + |
| +namespace notification_getter = api::notification_getter; |
| + |
| +NotificationGetterEventRouter::NotificationGetterEventRouter(Profile* profile) |
| + : profile_(profile) { |
| +} |
| + |
| +NotificationGetterEventRouter::~NotificationGetterEventRouter() { |
| +} |
| + |
| +void NotificationGetterEventRouter::CreateNotificationForTest( |
| + const std::string& extension_id, |
| + const std::string& sender_id, |
| + const std::string& notification_id, |
| + const api::notification_getter::NotificationOptions& options) { |
| + Create(extension_id, sender_id, notification_id, options); |
| +} |
| + |
| +void NotificationGetterEventRouter::UpdateNotificationForTest( |
| + const std::string& extension_id, |
| + const std::string& sender_id, |
| + const std::string& notification_id, |
| + const api::notification_getter::NotificationOptions& options) { |
| + Update(extension_id, sender_id, notification_id, options); |
| +} |
| +void NotificationGetterEventRouter::CloseNotificationForTest( |
| + const std::string& extension_id, |
| + const std::string& sender_id, |
| + const std::string& notification_id) { |
| + Close(extension_id, sender_id, notification_id); |
| +} |
| + |
| +void NotificationGetterEventRouter::Create( |
| + const std::string& extension_id, |
| + const std::string& sender_id, |
| + const std::string& notification_id, |
| + const api::notification_getter::NotificationOptions& options) { |
| + scoped_ptr<base::ListValue> args = |
| + api::notification_getter::OnCreated::Create( |
| + sender_id, notification_id, options); |
| + |
| + scoped_ptr<Event> event( |
| + new Event(api::notification_getter::OnCreated::kEventName, args.Pass())); |
| + |
| + EventRouter::Get(profile_) |
| + ->DispatchEventToExtension(extension_id, event.Pass()); |
|
Pete Williamson
2014/06/30 19:03:48
This seems to be sending the OnCreated event back
liyanhou
2014/07/14 17:44:44
It's sending the event to the new notification cen
|
| +} |
| + |
| +void NotificationGetterEventRouter::Update( |
| + const std::string& extension_id, |
| + const std::string& sender_id, |
| + const std::string& notification_id, |
| + const extensions::api::notification_getter::NotificationOptions& options) { |
| + scoped_ptr<base::ListValue> args = |
| + api::notification_getter::OnUpdated::Create( |
| + sender_id, notification_id, options); |
| + |
| + scoped_ptr<Event> event( |
| + new Event(notification_getter::OnUpdated::kEventName, args.Pass())); |
| + |
| + EventRouter::Get(profile_) |
| + ->DispatchEventToExtension(extension_id, event.Pass()); |
| +} |
| + |
| +void NotificationGetterEventRouter::Close(const std::string& extension_id, |
| + const std::string& sender_id, |
| + const std::string& notification_id) { |
| + scoped_ptr<base::ListValue> args = |
| + api::notification_getter::OnClosed::Create(sender_id, notification_id); |
| + |
| + scoped_ptr<Event> event( |
| + new Event(notification_getter::OnClosed::kEventName, args.Pass())); |
| + |
| + EventRouter::Get(profile_) |
| + ->DispatchEventToExtension(extension_id, event.Pass()); |
| +} |
| + |
| +NotificationGetterSendOnCloseFunction::NotificationGetterSendOnCloseFunction() { |
| +} |
| + |
| +NotificationGetterSendOnCloseFunction:: |
| + ~NotificationGetterSendOnCloseFunction() { |
| +} |
| + |
| +bool NotificationGetterSendOnCloseFunction::RunAsync() { |
| + params_ = api::notification_getter::SendOnClose::Params::Create(*args_); |
| + EXTENSION_FUNCTION_VALIDATE(params_.get()); |
| + |
| + SendResponse(true); |
| + return true; |
| +} |
| + |
| +NotificationGetterSendOnClickFunction::NotificationGetterSendOnClickFunction() { |
| +} |
| + |
| +NotificationGetterSendOnClickFunction:: |
| + ~NotificationGetterSendOnClickFunction() { |
| +} |
| + |
| +bool NotificationGetterSendOnClickFunction::RunAsync() { |
| + params_ = api::notification_getter::SendOnClick::Params::Create(*args_); |
| + EXTENSION_FUNCTION_VALIDATE(params_.get()); |
| + |
| + SendResponse(true); |
| + return true; |
| +} |
| + |
| +NotificationGetterSendOnClickButtonFunction:: |
| + NotificationGetterSendOnClickButtonFunction() { |
| +} |
| + |
| +NotificationGetterSendOnClickButtonFunction:: |
| + ~NotificationGetterSendOnClickButtonFunction() { |
| +} |
| + |
| +bool NotificationGetterSendOnClickButtonFunction::RunAsync() { |
| + params_ = api::notification_getter::SendOnClickButton::Params::Create(*args_); |
| + EXTENSION_FUNCTION_VALIDATE(params_.get()); |
| + |
| + SendResponse(true); |
| + return true; |
| +} |
| + |
| +NotificationGetterNotifyPermissionLevelChangedFunction:: |
| + NotificationGetterNotifyPermissionLevelChangedFunction() { |
| +} |
| + |
| +NotificationGetterNotifyPermissionLevelChangedFunction:: |
| + ~NotificationGetterNotifyPermissionLevelChangedFunction() { |
| +} |
| + |
| +bool NotificationGetterNotifyPermissionLevelChangedFunction::RunAsync() { |
| + params_ = |
| + api::notification_getter::NotifyPermissionLevelChanged::Params::Create( |
| + *args_); |
| + EXTENSION_FUNCTION_VALIDATE(params_.get()); |
| + |
| + SendResponse(true); |
| + return true; |
| +} |
| +} // namespace extensions |