| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/extension_event_router.h" | 5 #include "chrome/browser/extensions/extension_event_router.h" |
| 6 | 6 |
| 7 #include "base/values.h" | 7 #include "base/values.h" |
| 8 #include "chrome/browser/extensions/extension_devtools_manager.h" | 8 #include "chrome/browser/extensions/extension_devtools_manager.h" |
| 9 #include "chrome/browser/extensions/extension_processes_api.h" | 9 #include "chrome/browser/extensions/extension_processes_api.h" |
| 10 #include "chrome/browser/extensions/extension_processes_api_constants.h" | 10 #include "chrome/browser/extensions/extension_processes_api_constants.h" |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 ListValue args; | 58 ListValue args; |
| 59 args.Set(0, Value::CreateStringValue(event_name)); | 59 args.Set(0, Value::CreateStringValue(event_name)); |
| 60 args.Set(1, Value::CreateStringValue(event_args)); | 60 args.Set(1, Value::CreateStringValue(event_args)); |
| 61 ipc_sender->Send(new ExtensionMsg_MessageInvoke(MSG_ROUTING_CONTROL, | 61 ipc_sender->Send(new ExtensionMsg_MessageInvoke(MSG_ROUTING_CONTROL, |
| 62 extension_id, kDispatchEvent, args, event_url)); | 62 extension_id, kDispatchEvent, args, event_url)); |
| 63 } | 63 } |
| 64 | 64 |
| 65 ExtensionEventRouter::ExtensionEventRouter(Profile* profile) | 65 ExtensionEventRouter::ExtensionEventRouter(Profile* profile) |
| 66 : profile_(profile), | 66 : profile_(profile), |
| 67 extension_devtools_manager_(profile->GetExtensionDevToolsManager()) { | 67 extension_devtools_manager_(profile->GetExtensionDevToolsManager()) { |
| 68 registrar_.Add(this, NotificationType::RENDERER_PROCESS_TERMINATED, | 68 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, |
| 69 NotificationService::AllSources()); | 69 NotificationService::AllSources()); |
| 70 registrar_.Add(this, NotificationType::RENDERER_PROCESS_CLOSED, | 70 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CLOSED, |
| 71 NotificationService::AllSources()); | 71 NotificationService::AllSources()); |
| 72 } | 72 } |
| 73 | 73 |
| 74 ExtensionEventRouter::~ExtensionEventRouter() { | 74 ExtensionEventRouter::~ExtensionEventRouter() { |
| 75 } | 75 } |
| 76 | 76 |
| 77 void ExtensionEventRouter::AddEventListener( | 77 void ExtensionEventRouter::AddEventListener( |
| 78 const std::string& event_name, | 78 const std::string& event_name, |
| 79 RenderProcessHost* process, | 79 RenderProcessHost* process, |
| 80 const std::string& extension_id) { | 80 const std::string& extension_id) { |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 event_name, cross_incognito_args, event_url); | 214 event_name, cross_incognito_args, event_url); |
| 215 } | 215 } |
| 216 continue; | 216 continue; |
| 217 } | 217 } |
| 218 | 218 |
| 219 DispatchEvent(listener->process, listener->extension_id, | 219 DispatchEvent(listener->process, listener->extension_id, |
| 220 event_name, event_args, event_url); | 220 event_name, event_args, event_url); |
| 221 } | 221 } |
| 222 } | 222 } |
| 223 | 223 |
| 224 void ExtensionEventRouter::Observe(NotificationType type, | 224 void ExtensionEventRouter::Observe(int type, |
| 225 const NotificationSource& source, | 225 const NotificationSource& source, |
| 226 const NotificationDetails& details) { | 226 const NotificationDetails& details) { |
| 227 switch (type.value) { | 227 switch (type) { |
| 228 case NotificationType::RENDERER_PROCESS_TERMINATED: | 228 case content::NOTIFICATION_RENDERER_PROCESS_TERMINATED: |
| 229 case NotificationType::RENDERER_PROCESS_CLOSED: { | 229 case content::NOTIFICATION_RENDERER_PROCESS_CLOSED: { |
| 230 RenderProcessHost* renderer = Source<RenderProcessHost>(source).ptr(); | 230 RenderProcessHost* renderer = Source<RenderProcessHost>(source).ptr(); |
| 231 // Remove all event listeners associated with this renderer | 231 // Remove all event listeners associated with this renderer |
| 232 for (ListenerMap::iterator it = listeners_.begin(); | 232 for (ListenerMap::iterator it = listeners_.begin(); |
| 233 it != listeners_.end(); ) { | 233 it != listeners_.end(); ) { |
| 234 ListenerMap::iterator current_it = it++; | 234 ListenerMap::iterator current_it = it++; |
| 235 for (std::set<EventListener>::iterator jt = current_it->second.begin(); | 235 for (std::set<EventListener>::iterator jt = current_it->second.begin(); |
| 236 jt != current_it->second.end(); ) { | 236 jt != current_it->second.end(); ) { |
| 237 std::set<EventListener>::iterator current_jt = jt++; | 237 std::set<EventListener>::iterator current_jt = jt++; |
| 238 if (current_jt->process == renderer) { | 238 if (current_jt->process == renderer) { |
| 239 RemoveEventListener(current_it->first, | 239 RemoveEventListener(current_it->first, |
| 240 current_jt->process, | 240 current_jt->process, |
| 241 current_jt->extension_id); | 241 current_jt->extension_id); |
| 242 } | 242 } |
| 243 } | 243 } |
| 244 } | 244 } |
| 245 break; | 245 break; |
| 246 } | 246 } |
| 247 default: | 247 default: |
| 248 NOTREACHED(); | 248 NOTREACHED(); |
| 249 return; | 249 return; |
| 250 } | 250 } |
| 251 } | 251 } |
| OLD | NEW |