OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/api/push_messaging/push_messaging_api.h" | 5 #include "chrome/browser/extensions/api/push_messaging/push_messaging_api.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 } | 97 } |
98 | 98 |
99 void PushMessagingEventRouter::OnMessage(const std::string& extension_id, | 99 void PushMessagingEventRouter::OnMessage(const std::string& extension_id, |
100 int subchannel, | 100 int subchannel, |
101 const std::string& payload) { | 101 const std::string& payload) { |
102 glue::Message message; | 102 glue::Message message; |
103 message.subchannel_id = subchannel; | 103 message.subchannel_id = subchannel; |
104 message.payload = payload; | 104 message.payload = payload; |
105 | 105 |
106 scoped_ptr<base::ListValue> args(glue::OnMessage::Create(message)); | 106 scoped_ptr<base::ListValue> args(glue::OnMessage::Create(message)); |
| 107 scoped_ptr<extensions::Event> event(new extensions::Event( |
| 108 event_names::kOnPushMessage, args.Pass())); |
| 109 event->restrict_to_profile = profile_; |
107 ExtensionSystem::Get(profile_)->event_router()->DispatchEventToExtension( | 110 ExtensionSystem::Get(profile_)->event_router()->DispatchEventToExtension( |
108 extension_id, | 111 extension_id, event.Pass()); |
109 event_names::kOnPushMessage, | |
110 args.Pass(), | |
111 profile_, | |
112 GURL()); | |
113 } | 112 } |
114 | 113 |
115 void PushMessagingEventRouter::Observe( | 114 void PushMessagingEventRouter::Observe( |
116 int type, | 115 int type, |
117 const content::NotificationSource& source, | 116 const content::NotificationSource& source, |
118 const content::NotificationDetails& details) { | 117 const content::NotificationDetails& details) { |
119 switch (type) { | 118 switch (type) { |
120 case chrome::NOTIFICATION_EXTENSION_LOADED: { | 119 case chrome::NOTIFICATION_EXTENSION_LOADED: { |
121 const Extension* extension = content::Details<Extension>(details).ptr(); | 120 const Extension* extension = content::Details<Extension>(details).ptr(); |
122 if (extension->HasAPIPermission(APIPermission::kPushMessaging)) { | 121 if (extension->HasAPIPermission(APIPermission::kPushMessaging)) { |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 // If the error message is blank, see if we can set it from the state. | 283 // If the error message is blank, see if we can set it from the state. |
285 if (error_text.empty() && | 284 if (error_text.empty() && |
286 (0 != error.state())) { | 285 (0 != error.state())) { |
287 error_text = base::IntToString(error.state()); | 286 error_text = base::IntToString(error.state()); |
288 } | 287 } |
289 | 288 |
290 ReportResult(std::string(), error_text); | 289 ReportResult(std::string(), error_text); |
291 } | 290 } |
292 | 291 |
293 } // namespace extensions | 292 } // namespace extensions |
OLD | NEW |