| 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 |