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

Unified Diff: chrome/browser/extensions/api/extension_action/extension_action_api.cc

Issue 482993003: Move logic to clear ExtensionAction values to ExtensionActionAPI (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Latest master for CQ Created 6 years, 4 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/extension_action/extension_action_api.cc
diff --git a/chrome/browser/extensions/api/extension_action/extension_action_api.cc b/chrome/browser/extensions/api/extension_action/extension_action_api.cc
index c1658551237ddd31bdf1946d84a7a10363c2b347..1029c311c2b8241c81458aac374ac6ebc05c366e 100644
--- a/chrome/browser/extensions/api/extension_action/extension_action_api.cc
+++ b/chrome/browser/extensions/api/extension_action/extension_action_api.cc
@@ -18,6 +18,7 @@
#include "chrome/browser/extensions/location_bar_controller.h"
#include "chrome/browser/extensions/tab_helper.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/sessions/session_tab_helper.h"
#include "chrome/common/extensions/api/extension_action/action_info.h"
#include "chrome/common/render_messages.h"
#include "content/public/browser/navigation_entry.h"
@@ -399,6 +400,29 @@ void ExtensionActionAPI::NotifyChange(ExtensionAction* extension_action,
OnExtensionActionUpdated(extension_action, web_contents, context));
}
+void ExtensionActionAPI::ClearAllValuesForTab(
+ content::WebContents* web_contents) {
+ DCHECK(web_contents);
+ int tab_id = SessionTabHelper::IdForTab(web_contents);
+ content::BrowserContext* browser_context = web_contents->GetBrowserContext();
+ const ExtensionSet& enabled_extensions =
+ ExtensionRegistry::Get(browser_context_)->enabled_extensions();
+ ExtensionActionManager* action_manager =
+ ExtensionActionManager::Get(browser_context_);
+
+ for (ExtensionSet::const_iterator iter = enabled_extensions.begin();
+ iter != enabled_extensions.end(); ++iter) {
+ ExtensionAction* extension_action =
+ action_manager->GetBrowserAction(*iter->get());
+ if (!extension_action)
+ extension_action = action_manager->GetPageAction(*iter->get());
+ if (extension_action) {
+ extension_action->ClearAllValuesForTab(tab_id);
+ NotifyChange(extension_action, web_contents, browser_context);
+ }
+ }
+}
+
void ExtensionActionAPI::Shutdown() {
FOR_EACH_OBSERVER(Observer, observers_, OnExtensionActionAPIShuttingDown());
}

Powered by Google App Engine
This is Rietveld 408576698