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/api/management/management_api.h" | 5 #include "extensions/browser/api/management/management_api.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 814 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
825 : browser_context_(context), extension_registry_observer_(this) { | 825 : browser_context_(context), extension_registry_observer_(this) { |
826 extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context_)); | 826 extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context_)); |
827 } | 827 } |
828 | 828 |
829 ManagementEventRouter::~ManagementEventRouter() { | 829 ManagementEventRouter::~ManagementEventRouter() { |
830 } | 830 } |
831 | 831 |
832 void ManagementEventRouter::OnExtensionLoaded( | 832 void ManagementEventRouter::OnExtensionLoaded( |
833 content::BrowserContext* browser_context, | 833 content::BrowserContext* browser_context, |
834 const Extension* extension) { | 834 const Extension* extension) { |
835 BroadcastEvent(extension, management::OnEnabled::kEventName); | 835 BroadcastEvent(extension, events::MANAGEMENT_ON_ENABLED, |
| 836 management::OnEnabled::kEventName); |
836 } | 837 } |
837 | 838 |
838 void ManagementEventRouter::OnExtensionUnloaded( | 839 void ManagementEventRouter::OnExtensionUnloaded( |
839 content::BrowserContext* browser_context, | 840 content::BrowserContext* browser_context, |
840 const Extension* extension, | 841 const Extension* extension, |
841 UnloadedExtensionInfo::Reason reason) { | 842 UnloadedExtensionInfo::Reason reason) { |
842 BroadcastEvent(extension, management::OnDisabled::kEventName); | 843 BroadcastEvent(extension, events::MANAGEMENT_ON_DISABLED, |
| 844 management::OnDisabled::kEventName); |
843 } | 845 } |
844 | 846 |
845 void ManagementEventRouter::OnExtensionInstalled( | 847 void ManagementEventRouter::OnExtensionInstalled( |
846 content::BrowserContext* browser_context, | 848 content::BrowserContext* browser_context, |
847 const Extension* extension, | 849 const Extension* extension, |
848 bool is_update) { | 850 bool is_update) { |
849 BroadcastEvent(extension, management::OnInstalled::kEventName); | 851 BroadcastEvent(extension, events::MANAGEMENT_ON_INSTALLED, |
| 852 management::OnInstalled::kEventName); |
850 } | 853 } |
851 | 854 |
852 void ManagementEventRouter::OnExtensionUninstalled( | 855 void ManagementEventRouter::OnExtensionUninstalled( |
853 content::BrowserContext* browser_context, | 856 content::BrowserContext* browser_context, |
854 const Extension* extension, | 857 const Extension* extension, |
855 extensions::UninstallReason reason) { | 858 extensions::UninstallReason reason) { |
856 BroadcastEvent(extension, management::OnUninstalled::kEventName); | 859 BroadcastEvent(extension, events::MANAGEMENT_ON_UNINSTALLED, |
| 860 management::OnUninstalled::kEventName); |
857 } | 861 } |
858 | 862 |
859 void ManagementEventRouter::BroadcastEvent(const Extension* extension, | 863 void ManagementEventRouter::BroadcastEvent( |
860 const char* event_name) { | 864 const Extension* extension, |
| 865 events::HistogramValue histogram_value, |
| 866 const char* event_name) { |
861 if (ShouldNotBeVisible(extension, browser_context_)) | 867 if (ShouldNotBeVisible(extension, browser_context_)) |
862 return; // Don't dispatch events for built-in extenions. | 868 return; // Don't dispatch events for built-in extenions. |
863 scoped_ptr<base::ListValue> args(new base::ListValue()); | 869 scoped_ptr<base::ListValue> args(new base::ListValue()); |
864 if (event_name == management::OnUninstalled::kEventName) { | 870 if (event_name == management::OnUninstalled::kEventName) { |
865 args->Append(new base::StringValue(extension->id())); | 871 args->Append(new base::StringValue(extension->id())); |
866 } else { | 872 } else { |
867 scoped_ptr<management::ExtensionInfo> info = | 873 scoped_ptr<management::ExtensionInfo> info = |
868 CreateExtensionInfo(*extension, browser_context_); | 874 CreateExtensionInfo(*extension, browser_context_); |
869 args->Append(info->ToValue().release()); | 875 args->Append(info->ToValue().release()); |
870 } | 876 } |
871 | 877 |
872 EventRouter::Get(browser_context_) | 878 EventRouter::Get(browser_context_) |
873 ->BroadcastEvent(scoped_ptr<Event>( | 879 ->BroadcastEvent(scoped_ptr<Event>( |
874 new Event(events::UNKNOWN, event_name, args.Pass()))); | 880 new Event(histogram_value, event_name, args.Pass()))); |
875 } | 881 } |
876 | 882 |
877 ManagementAPI::ManagementAPI(content::BrowserContext* context) | 883 ManagementAPI::ManagementAPI(content::BrowserContext* context) |
878 : browser_context_(context), | 884 : browser_context_(context), |
879 delegate_(ExtensionsAPIClient::Get()->CreateManagementAPIDelegate()) { | 885 delegate_(ExtensionsAPIClient::Get()->CreateManagementAPIDelegate()) { |
880 EventRouter* event_router = EventRouter::Get(browser_context_); | 886 EventRouter* event_router = EventRouter::Get(browser_context_); |
881 event_router->RegisterObserver(this, management::OnInstalled::kEventName); | 887 event_router->RegisterObserver(this, management::OnInstalled::kEventName); |
882 event_router->RegisterObserver(this, management::OnUninstalled::kEventName); | 888 event_router->RegisterObserver(this, management::OnUninstalled::kEventName); |
883 event_router->RegisterObserver(this, management::OnEnabled::kEventName); | 889 event_router->RegisterObserver(this, management::OnEnabled::kEventName); |
884 event_router->RegisterObserver(this, management::OnDisabled::kEventName); | 890 event_router->RegisterObserver(this, management::OnDisabled::kEventName); |
(...skipping 14 matching lines...) Expand all Loading... |
899 ManagementAPI::GetFactoryInstance() { | 905 ManagementAPI::GetFactoryInstance() { |
900 return g_factory.Pointer(); | 906 return g_factory.Pointer(); |
901 } | 907 } |
902 | 908 |
903 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) { | 909 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) { |
904 management_event_router_.reset(new ManagementEventRouter(browser_context_)); | 910 management_event_router_.reset(new ManagementEventRouter(browser_context_)); |
905 EventRouter::Get(browser_context_)->UnregisterObserver(this); | 911 EventRouter::Get(browser_context_)->UnregisterObserver(this); |
906 } | 912 } |
907 | 913 |
908 } // namespace extensions | 914 } // namespace extensions |
OLD | NEW |