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 779 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
790 void EventRouter::OnExtensionUnloaded(content::BrowserContext* browser_context, | 790 void EventRouter::OnExtensionUnloaded(content::BrowserContext* browser_context, |
791 const Extension* extension, | 791 const Extension* extension, |
792 UnloadedExtensionInfo::Reason reason) { | 792 UnloadedExtensionInfo::Reason reason) { |
793 // Remove all registered listeners from our cache. | 793 // Remove all registered listeners from our cache. |
794 listeners_.RemoveListenersForExtension(extension->id()); | 794 listeners_.RemoveListenersForExtension(extension->id()); |
795 } | 795 } |
796 | 796 |
797 Event::Event(events::HistogramValue histogram_value, | 797 Event::Event(events::HistogramValue histogram_value, |
798 const std::string& event_name, | 798 const std::string& event_name, |
799 scoped_ptr<base::ListValue> event_args) | 799 scoped_ptr<base::ListValue> event_args) |
800 : histogram_value(histogram_value), | 800 : Event(histogram_value, event_name, event_args.Pass(), nullptr) {} |
801 event_name(event_name), | |
802 event_args(event_args.Pass()), | |
803 restrict_to_browser_context(NULL), | |
804 user_gesture(EventRouter::USER_GESTURE_UNKNOWN) { | |
805 DCHECK(this->event_args.get()); | |
806 } | |
807 | 801 |
808 Event::Event(events::HistogramValue histogram_value, | 802 Event::Event(events::HistogramValue histogram_value, |
809 const std::string& event_name, | 803 const std::string& event_name, |
810 scoped_ptr<base::ListValue> event_args, | 804 scoped_ptr<base::ListValue> event_args, |
811 BrowserContext* restrict_to_browser_context) | 805 BrowserContext* restrict_to_browser_context) |
812 : histogram_value(histogram_value), | 806 : Event(histogram_value, |
813 event_name(event_name), | 807 event_name, |
814 event_args(event_args.Pass()), | 808 event_args.Pass(), |
815 restrict_to_browser_context(restrict_to_browser_context), | 809 restrict_to_browser_context, |
816 user_gesture(EventRouter::USER_GESTURE_UNKNOWN) { | 810 GURL(), |
817 DCHECK(this->event_args.get()); | 811 EventRouter::USER_GESTURE_UNKNOWN, |
818 } | 812 EventFilteringInfo()) {} |
819 | 813 |
820 Event::Event(events::HistogramValue histogram_value, | 814 Event::Event(events::HistogramValue histogram_value, |
821 const std::string& event_name, | 815 const std::string& event_name, |
822 scoped_ptr<ListValue> event_args, | 816 scoped_ptr<ListValue> event_args_tmp, |
823 BrowserContext* restrict_to_browser_context, | 817 BrowserContext* restrict_to_browser_context, |
824 const GURL& event_url, | 818 const GURL& event_url, |
825 EventRouter::UserGestureState user_gesture, | 819 EventRouter::UserGestureState user_gesture, |
826 const EventFilteringInfo& filter_info) | 820 const EventFilteringInfo& filter_info) |
827 : histogram_value(histogram_value), | 821 : histogram_value(histogram_value), |
828 event_name(event_name), | 822 event_name(event_name), |
829 event_args(event_args.Pass()), | 823 event_args(event_args_tmp.Pass()), |
830 restrict_to_browser_context(restrict_to_browser_context), | 824 restrict_to_browser_context(restrict_to_browser_context), |
831 event_url(event_url), | 825 event_url(event_url), |
832 user_gesture(user_gesture), | 826 user_gesture(user_gesture), |
833 filter_info(filter_info) { | 827 filter_info(filter_info) { |
834 DCHECK(this->event_args.get()); | 828 DCHECK(event_args); |
| 829 DCHECK_NE(events::UNKNOWN, histogram_value) |
| 830 << "events::UNKNOWN cannot be used as a histogram value.\n" |
| 831 << "If this is a test, use events::FOR_TEST.\n" |
| 832 << "If this is production code, it is important that you use a realistic " |
| 833 << "value so that we can accurately track event usage. " |
| 834 << "See extension_event_histogram_value.h for inspiration."; |
835 } | 835 } |
836 | 836 |
837 Event::~Event() {} | 837 Event::~Event() {} |
838 | 838 |
839 Event* Event::DeepCopy() { | 839 Event* Event::DeepCopy() { |
840 Event* copy = new Event(histogram_value, event_name, | 840 Event* copy = new Event(histogram_value, event_name, |
841 scoped_ptr<base::ListValue>(event_args->DeepCopy()), | 841 scoped_ptr<base::ListValue>(event_args->DeepCopy()), |
842 restrict_to_browser_context, event_url, user_gesture, | 842 restrict_to_browser_context, event_url, user_gesture, |
843 filter_info); | 843 filter_info); |
844 copy->will_dispatch_callback = will_dispatch_callback; | 844 copy->will_dispatch_callback = will_dispatch_callback; |
845 return copy; | 845 return copy; |
846 } | 846 } |
847 | 847 |
848 EventListenerInfo::EventListenerInfo(const std::string& event_name, | 848 EventListenerInfo::EventListenerInfo(const std::string& event_name, |
849 const std::string& extension_id, | 849 const std::string& extension_id, |
850 const GURL& listener_url, | 850 const GURL& listener_url, |
851 content::BrowserContext* browser_context) | 851 content::BrowserContext* browser_context) |
852 : event_name(event_name), | 852 : event_name(event_name), |
853 extension_id(extension_id), | 853 extension_id(extension_id), |
854 listener_url(listener_url), | 854 listener_url(listener_url), |
855 browser_context(browser_context) { | 855 browser_context(browser_context) { |
856 } | 856 } |
857 | 857 |
858 } // namespace extensions | 858 } // namespace extensions |
OLD | NEW |