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

Unified Diff: chrome/browser/tab_contents/tab_contents.cc

Issue 332021: Move page actions over to ExtensionAction2 (Closed)
Patch Set: Review feedback Created 11 years, 2 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/tab_contents/tab_contents.cc
diff --git a/chrome/browser/tab_contents/tab_contents.cc b/chrome/browser/tab_contents/tab_contents.cc
index 38760534e9285e4c9c95c03e3e7135df31e30d2a..6fdd6bba73aaef15101009472e9b5035e56eb9d5 100644
--- a/chrome/browser/tab_contents/tab_contents.cc
+++ b/chrome/browser/tab_contents/tab_contents.cc
@@ -55,7 +55,7 @@
#include "chrome/browser/search_engines/template_url_fetcher.h"
#include "chrome/browser/search_engines/template_url_model.h"
#include "chrome/common/chrome_switches.h"
-#include "chrome/common/extensions/extension_action.h"
+#include "chrome/common/extensions/extension_action2.h"
#include "chrome/common/notification_service.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/pref_service.h"
@@ -605,36 +605,6 @@ void TabContents::SetIsCrashed(bool state) {
NotifyNavigationStateChanged(INVALIDATE_TAB);
}
-void TabContents::SetPageActionEnabled(const ExtensionAction* page_action,
- bool enable,
- const std::string& title,
- int icon_id) {
- DCHECK(page_action);
- ExtensionActionState* state = GetOrCreatePageActionState(page_action);
- state->set_hidden(!enable);
- state->set_title(title);
- state->set_icon_index(icon_id);
- state->set_icon(NULL);
-}
-
-const ExtensionActionState* TabContents::GetPageActionState(
- const ExtensionAction* page_action) {
- if (page_actions_.end() == page_actions_.find(page_action))
- return NULL;
-
- return page_actions_[page_action].get();
-}
-
-ExtensionActionState* TabContents::GetOrCreatePageActionState(
- const ExtensionAction* page_action) {
- if (page_actions_.end() == page_actions_.find(page_action)) {
- page_actions_[page_action].reset(
- new ExtensionActionState(page_action->title(), 0));
- }
-
- return page_actions_[page_action].get();
-}
-
void TabContents::PageActionStateChanged() {
NotifyNavigationStateChanged(TabContents::INVALIDATE_PAGE_ACTIONS);
}
@@ -1414,27 +1384,31 @@ void TabContents::DidNavigateMainFramePostCommit(
// Get the favicon, either from history or request it from the net.
fav_icon_helper_.FetchFavIcon(details.entry->url());
- // Disable all page actions, unless this is an in-page navigation.
+ // Clear all page and browser action state for this tab, unless this is an
+ // in-page navigation.
url_canon::Replacements<char> replacements;
replacements.ClearRef();
if (params.url.ReplaceComponents(replacements) !=
params.referrer.ReplaceComponents(replacements)) {
- if (!page_actions_.empty())
- page_actions_.clear();
-
ExtensionsService* service = profile()->GetExtensionsService();
if (service) {
for (size_t i = 0; i < service->extensions()->size(); ++i) {
- ExtensionAction2* action =
+ ExtensionAction2* browser_action =
service->extensions()->at(i)->browser_action();
- if (!action)
- continue;
-
- action->ClearAllValuesForTab(controller().session_id().id());
- NotificationService::current()->Notify(
- NotificationType::EXTENSION_BROWSER_ACTION_UPDATED,
- Source<ExtensionAction2>(action),
- NotificationService::NoDetails());
+ if (browser_action) {
+ browser_action->ClearAllValuesForTab(controller().session_id().id());
+ NotificationService::current()->Notify(
+ NotificationType::EXTENSION_BROWSER_ACTION_UPDATED,
+ Source<ExtensionAction2>(browser_action),
+ NotificationService::NoDetails());
+ }
+
+ ExtensionAction2* page_action =
+ service->extensions()->at(i)->page_action();
+ if (page_action) {
+ page_action->ClearAllValuesForTab(controller().session_id().id());
+ PageActionStateChanged();
+ }
}
}
}

Powered by Google App Engine
This is Rietveld 408576698