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 IncrementInFlightEventsOnUI(browser_context_id, extension_id, event_id, | |
159 event_name); | |
160 | |
158 DispatchExtensionMessage(ipc_sender, browser_context_id, extension_id, | 161 DispatchExtensionMessage(ipc_sender, browser_context_id, extension_id, |
159 event_id, event_name, event_args.get(), user_gesture, | 162 event_id, event_name, event_args.get(), user_gesture, |
160 info); | 163 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 } | 164 } |
167 | 165 |
168 EventRouter::EventRouter(BrowserContext* browser_context, | 166 EventRouter::EventRouter(BrowserContext* browser_context, |
169 ExtensionPrefs* extension_prefs) | 167 ExtensionPrefs* extension_prefs) |
170 : browser_context_(browser_context), | 168 : browser_context_(browser_context), |
171 extension_prefs_(extension_prefs), | 169 extension_prefs_(extension_prefs), |
172 extension_registry_observer_(this), | 170 extension_registry_observer_(this), |
173 listeners_(this) { | 171 listeners_(this) { |
174 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, | 172 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, |
175 content::NotificationService::AllSources()); | 173 content::NotificationService::AllSources()); |
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
657 } | 655 } |
658 | 656 |
659 return false; | 657 return false; |
660 } | 658 } |
661 | 659 |
662 // static | 660 // static |
663 void EventRouter::IncrementInFlightEventsOnUI(void* browser_context_id, | 661 void EventRouter::IncrementInFlightEventsOnUI(void* browser_context_id, |
664 const std::string& extension_id, | 662 const std::string& extension_id, |
665 int event_id, | 663 int event_id, |
666 const std::string& event_name) { | 664 const std::string& event_name) { |
665 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { | |
not at google - send to devlin
2015/05/15 21:18:07
For a function called "...OnUI" this line is misle
lazyboy
2015/05/15 21:29:53
I've moved this check to call site.
Put the checku
| |
666 BrowserThread::PostTask( | |
667 BrowserThread::UI, FROM_HERE, | |
668 base::Bind(&EventRouter::IncrementInFlightEventsOnUI, | |
669 browser_context_id, extension_id, event_id, event_name)); | |
670 return; | |
671 } | |
672 | |
667 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 673 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
668 BrowserContext* browser_context = | 674 BrowserContext* browser_context = |
669 reinterpret_cast<BrowserContext*>(browser_context_id); | 675 reinterpret_cast<BrowserContext*>(browser_context_id); |
670 if (!ExtensionsBrowserClient::Get()->IsValidContext(browser_context)) | 676 if (!ExtensionsBrowserClient::Get()->IsValidContext(browser_context)) |
671 return; | 677 return; |
672 EventRouter* event_router = EventRouter::Get(browser_context); | 678 EventRouter* event_router = EventRouter::Get(browser_context); |
673 if (!event_router) | 679 if (!event_router) |
674 return; | 680 return; |
675 const Extension* extension = | 681 const Extension* extension = |
676 ExtensionRegistry::Get(browser_context)->enabled_extensions().GetByID( | 682 ExtensionRegistry::Get(browser_context)->enabled_extensions().GetByID( |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
826 const std::string& extension_id, | 832 const std::string& extension_id, |
827 const GURL& listener_url, | 833 const GURL& listener_url, |
828 content::BrowserContext* browser_context) | 834 content::BrowserContext* browser_context) |
829 : event_name(event_name), | 835 : event_name(event_name), |
830 extension_id(extension_id), | 836 extension_id(extension_id), |
831 listener_url(listener_url), | 837 listener_url(listener_url), |
832 browser_context(browser_context) { | 838 browser_context(browser_context) { |
833 } | 839 } |
834 | 840 |
835 } // namespace extensions | 841 } // namespace extensions |
OLD | NEW |