| 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 "extensions/browser/event_router.h" | 5 #include "extensions/browser/event_router.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/atomic_sequence_num.h" | 9 #include "base/atomic_sequence_num.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 // static | 148 // static |
| 149 void EventRouter::DispatchEvent(IPC::Sender* ipc_sender, | 149 void EventRouter::DispatchEvent(IPC::Sender* ipc_sender, |
| 150 void* browser_context_id, | 150 void* browser_context_id, |
| 151 const std::string& extension_id, | 151 const std::string& extension_id, |
| 152 const std::string& event_name, | 152 const std::string& event_name, |
| 153 scoped_ptr<ListValue> event_args, | 153 scoped_ptr<ListValue> event_args, |
| 154 UserGestureState user_gesture, | 154 UserGestureState user_gesture, |
| 155 const EventFilteringInfo& info) { | 155 const EventFilteringInfo& info) { |
| 156 int event_id = g_extension_event_id.GetNext(); | 156 int event_id = g_extension_event_id.GetNext(); |
| 157 | 157 |
| 158 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { |
| 159 // This is called from WebRequest API. |
| 160 // TODO(lazyboy): Skip this entirely: http://crbug.com/488747. |
| 161 BrowserThread::PostTask( |
| 162 BrowserThread::UI, FROM_HERE, |
| 163 base::Bind(&EventRouter::IncrementInFlightEventsOnUI, |
| 164 browser_context_id, extension_id, event_id, event_name)); |
| 165 } else { |
| 166 IncrementInFlightEventsOnUI(browser_context_id, extension_id, event_id, |
| 167 event_name); |
| 168 } |
| 169 |
| 158 DispatchExtensionMessage(ipc_sender, browser_context_id, extension_id, | 170 DispatchExtensionMessage(ipc_sender, browser_context_id, extension_id, |
| 159 event_id, event_name, event_args.get(), user_gesture, | 171 event_id, event_name, event_args.get(), user_gesture, |
| 160 info); | 172 info); |
| 161 | |
| 162 BrowserThread::PostTask( | |
| 163 BrowserThread::UI, FROM_HERE, | |
| 164 base::Bind(&EventRouter::IncrementInFlightEventsOnUI, browser_context_id, | |
| 165 extension_id, event_id, event_name)); | |
| 166 } | 173 } |
| 167 | 174 |
| 168 EventRouter::EventRouter(BrowserContext* browser_context, | 175 EventRouter::EventRouter(BrowserContext* browser_context, |
| 169 ExtensionPrefs* extension_prefs) | 176 ExtensionPrefs* extension_prefs) |
| 170 : browser_context_(browser_context), | 177 : browser_context_(browser_context), |
| 171 extension_prefs_(extension_prefs), | 178 extension_prefs_(extension_prefs), |
| 172 extension_registry_observer_(this), | 179 extension_registry_observer_(this), |
| 173 listeners_(this) { | 180 listeners_(this) { |
| 174 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, | 181 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, |
| 175 content::NotificationService::AllSources()); | 182 content::NotificationService::AllSources()); |
| (...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 826 const std::string& extension_id, | 833 const std::string& extension_id, |
| 827 const GURL& listener_url, | 834 const GURL& listener_url, |
| 828 content::BrowserContext* browser_context) | 835 content::BrowserContext* browser_context) |
| 829 : event_name(event_name), | 836 : event_name(event_name), |
| 830 extension_id(extension_id), | 837 extension_id(extension_id), |
| 831 listener_url(listener_url), | 838 listener_url(listener_url), |
| 832 browser_context(browser_context) { | 839 browser_context(browser_context) { |
| 833 } | 840 } |
| 834 | 841 |
| 835 } // namespace extensions | 842 } // namespace extensions |
| OLD | NEW |