Commit 5ba3b6cf authored by limasdf@gmail.com's avatar limasdf@gmail.com

This CL does small refactoring extension_toolbar_model.cc before removing...

This CL does small refactoring extension_toolbar_model.cc before removing NOTIFICATION_EXTENSION_UNLOADED and NOTIFICATION_EXTENSION_LOADED.

BUG=354046
TEST=browser_tests --gtest_filter=ExtensionToolbarModelTest.*

Review URL: https://codereview.chromium.org/256783003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266349 0039d316-1c4b-4281-b951-d872f2087c98
parent 3dc0c774
...@@ -185,52 +185,57 @@ void ExtensionToolbarModel::Observe( ...@@ -185,52 +185,57 @@ void ExtensionToolbarModel::Observe(
const content::NotificationSource& source, const content::NotificationSource& source,
const content::NotificationDetails& details) { const content::NotificationDetails& details) {
ExtensionService* extension_service = ExtensionService* extension_service =
extensions::ExtensionSystem::Get(profile_)->extension_service(); ExtensionSystem::Get(profile_)->extension_service();
if (!extension_service || !extension_service->is_ready()) DCHECK(extension_service);
if (!extension_service->is_ready())
return; return;
if (type == chrome::NOTIFICATION_EXTENSIONS_READY) { switch (type) {
InitializeExtensionList(extension_service); case chrome::NOTIFICATION_EXTENSIONS_READY:
return; InitializeExtensionList(extension_service);
} break;
case chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED: {
const Extension* extension = NULL; const Extension* extension =
if (type == chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED) { content::Details<const Extension>(details).ptr();
extension = content::Details<extensions::UnloadedExtensionInfo>( // We don't want to add the same extension twice. It may have already been
details)->extension; // added by EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED below, if the user
} else if (type == // hides the browser action and then disables and enables the extension.
chrome::NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED) { for (size_t i = 0; i < toolbar_items_.size(); i++) {
extension = extension_service->GetExtensionById( if (toolbar_items_[i].get() == extension)
*content::Details<const std::string>(details).ptr(), true); return; // Already exists.
} else { }
extension = content::Details<const Extension>(details).ptr(); if (ExtensionActionAPI::GetBrowserActionVisibility(extension_prefs_,
} extension->id())) {
if (type == chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED) { AddExtension(extension);
// We don't want to add the same extension twice. It may have already been }
// added by EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED below, if the user break;
// hides the browser action and then disables and enables the extension.
for (size_t i = 0; i < toolbar_items_.size(); i++) {
if (toolbar_items_[i].get() == extension)
return; // Already exists.
}
if (ExtensionActionAPI::GetBrowserActionVisibility(
extension_prefs_, extension->id())) {
AddExtension(extension);
} }
} else if (type == chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED) { case chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED: {
RemoveExtension(extension); const Extension* extension =
} else if (type == chrome::NOTIFICATION_EXTENSION_UNINSTALLED) { content::Details<extensions::UnloadedExtensionInfo>(details)
UninstalledExtension(extension); ->extension;
} else if (type ==
chrome::NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED) {
if (ExtensionActionAPI::GetBrowserActionVisibility(
extension_prefs_, extension->id())) {
AddExtension(extension);
} else {
RemoveExtension(extension); RemoveExtension(extension);
break;
} }
} else { case chrome::NOTIFICATION_EXTENSION_UNINSTALLED: {
NOTREACHED() << "Received unexpected notification"; const Extension* extension =
content::Details<const Extension>(details).ptr();
UninstalledExtension(extension);
break;
}
case chrome::NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED: {
const Extension* extension = extension_service->GetExtensionById(
*content::Details<const std::string>(details).ptr(), true);
if (ExtensionActionAPI::GetBrowserActionVisibility(extension_prefs_,
extension->id())) {
AddExtension(extension);
} else {
RemoveExtension(extension);
}
break;
}
default:
NOTREACHED() << "Received unexpected notification";
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment