Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2113)

Unified Diff: chrome/browser/extensions/api/management/management_api.cc

Issue 330383003: Remove deprecated extension notifications from APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase , address comments and remove extensions:: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/management/management_api.cc
diff --git a/chrome/browser/extensions/api/management/management_api.cc b/chrome/browser/extensions/api/management/management_api.cc
index 89b368fa9b2f71d3c46e7180225a4ca567ae384e..8170119c966afdb5f4e5d09e14be434c2a1b579e 100644
--- a/chrome/browser/extensions/api/management/management_api.cc
+++ b/chrome/browser/extensions/api/management/management_api.cc
@@ -4,7 +4,6 @@
#include "chrome/browser/extensions/api/management/management_api.h"
-#include <map>
#include <string>
#include <vector>
@@ -19,7 +18,6 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/management/management_api_constants.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_ui_util.h"
@@ -38,8 +36,6 @@
#include "chrome/common/extensions/extension_constants.h"
#include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
#include "chrome/common/extensions/manifest_url_handler.h"
-#include "content/public/browser/notification_details.h"
-#include "content/public/browser/notification_source.h"
#include "content/public/browser/utility_process_host.h"
#include "content/public/browser/utility_process_host_client.h"
#include "extensions/browser/event_router.h"
@@ -859,7 +855,7 @@ ManagementGenerateAppForLinkFunction::~ManagementGenerateAppForLinkFunction() {
}
void ManagementGenerateAppForLinkFunction::FinishCreateBookmarkApp(
- const extensions::Extension* extension,
+ const Extension* extension,
const WebApplicationInfo& web_app_info) {
if (extension) {
scoped_ptr<management::ExtensionInfo> info =
@@ -937,73 +933,60 @@ bool ManagementGenerateAppForLinkFunction::RunAsync() {
return true;
}
-ManagementEventRouter::ManagementEventRouter(Profile* profile)
- : profile_(profile) {
- int types[] = {chrome::NOTIFICATION_EXTENSION_INSTALLED_DEPRECATED,
- chrome::NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED,
- chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED,
- chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED};
-
- CHECK(registrar_.IsEmpty());
- for (size_t i = 0; i < arraysize(types); i++) {
- registrar_.Add(this,
- types[i],
- content::Source<Profile>(profile_));
- }
+ManagementEventRouter::ManagementEventRouter(content::BrowserContext* context)
+ : browser_context_(context), extension_registry_observer_(this) {
+ extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context_));
}
ManagementEventRouter::~ManagementEventRouter() {}
-void ManagementEventRouter::Observe(
- int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) {
- const char* event_name = NULL;
- const Extension* extension = NULL;
- Profile* profile = content::Source<Profile>(source).ptr();
- CHECK(profile);
- CHECK(profile_->IsSameProfile(profile));
-
- switch (type) {
- case chrome::NOTIFICATION_EXTENSION_INSTALLED_DEPRECATED:
- event_name = management::OnInstalled::kEventName;
- extension =
- content::Details<const InstalledExtensionInfo>(details)->extension;
- break;
- case chrome::NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED:
- event_name = management::OnUninstalled::kEventName;
- extension = content::Details<const Extension>(details).ptr();
- break;
- case chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED:
- event_name = management::OnEnabled::kEventName;
- extension = content::Details<const Extension>(details).ptr();
- break;
- case chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED:
- event_name = management::OnDisabled::kEventName;
- extension =
- content::Details<const UnloadedExtensionInfo>(details)->extension;
- break;
- default:
- NOTREACHED();
- return;
- }
- DCHECK(event_name);
- DCHECK(extension);
+void ManagementEventRouter::OnExtensionLoaded(
+ content::BrowserContext* browser_context,
+ const Extension* extension) {
+ BroadcastEvent(extension, browser_context, management::OnEnabled::kEventName);
+}
- if (ui_util::ShouldNotBeVisible(extension, profile_))
- return; // Don't dispatch events for built-in extensions.
+void ManagementEventRouter::OnExtensionUnloaded(
+ content::BrowserContext* browser_context,
+ const Extension* extension,
+ UnloadedExtensionInfo::Reason reason) {
+ BroadcastEvent(
+ extension, browser_context, management::OnDisabled::kEventName);
+}
+void ManagementEventRouter::OnExtensionInstalled(
+ content::BrowserContext* browser_context,
+ const Extension* extension) {
+ BroadcastEvent(
+ extension, browser_context, management::OnInstalled::kEventName);
+}
+
+void ManagementEventRouter::OnExtensionUninstalled(
+ content::BrowserContext* browser_context,
+ const Extension* extension) {
+ if (ui_util::ShouldNotBeVisible(extension, browser_context_))
+ return;
scoped_ptr<base::ListValue> args(new base::ListValue());
- if (event_name == management::OnUninstalled::kEventName) {
- args->Append(new base::StringValue(extension->id()));
- } else {
- scoped_ptr<management::ExtensionInfo> info = CreateExtensionInfo(
- *extension, ExtensionSystem::Get(profile));
- args->Append(info->ToValue().release());
- }
+ args->Append(new base::StringValue(extension->id()));
+
+ scoped_ptr<Event> event(
+ new Event(management::OnUninstalled::kEventName, args.Pass()));
+ EventRouter::Get(browser_context)->BroadcastEvent(event.Pass());
+}
+
+void ManagementEventRouter::BroadcastEvent(
+ const Extension* extension,
+ content::BrowserContext* browser_context,
+ const char* event_name) {
+ if (ui_util::ShouldNotBeVisible(extension, browser_context_))
+ return; // Don't dispatch events for built-in extensions.
+ scoped_ptr<base::ListValue> args(new base::ListValue());
+ scoped_ptr<management::ExtensionInfo> info =
Devlin 2014/06/18 16:04:34 A few small things: - You actually don't need to p
limasdf 2014/06/19 01:48:42 Done.
+ CreateExtensionInfo(*extension, ExtensionSystem::Get(browser_context));
+ args->Append(info->ToValue().release());
scoped_ptr<Event> event(new Event(event_name, args.Pass()));
- EventRouter::Get(profile)->BroadcastEvent(event.Pass());
+ EventRouter::Get(browser_context)->BroadcastEvent(event.Pass());
}
ManagementAPI::ManagementAPI(content::BrowserContext* context)
@@ -1032,8 +1015,7 @@ ManagementAPI::GetFactoryInstance() {
}
void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) {
- management_event_router_.reset(
- new ManagementEventRouter(Profile::FromBrowserContext(browser_context_)));
+ management_event_router_.reset(new ManagementEventRouter(browser_context_));
EventRouter::Get(browser_context_)->UnregisterObserver(this);
}

Powered by Google App Engine
This is Rietveld 408576698