Chromium Code Reviews| 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 |