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

Unified Diff: chrome/browser/extensions/extension_tab_helper.cc

Issue 10388160: Only return the visible page actions from PageActionController. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: actually fix Created 8 years, 7 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/extension_tab_helper.cc
diff --git a/chrome/browser/extensions/extension_tab_helper.cc b/chrome/browser/extensions/extension_tab_helper.cc
index ce76ddcc08d958c87787e4ee543376a81770be61..627417dec964ab8679098ce437a45cda88db1793 100644
--- a/chrome/browser/extensions/extension_tab_helper.cc
+++ b/chrome/browser/extensions/extension_tab_helper.cc
@@ -5,6 +5,8 @@
#include "chrome/browser/extensions/extension_tab_helper.h"
#include "chrome/browser/extensions/extension_service.h"
+#include "chrome/browser/extensions/page_action_controller.h"
+#include "chrome/browser/extensions/script_executor_impl.h"
#include "chrome/browser/extensions/webstore_inline_installer.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/sessions/restore_tab_helper.h"
@@ -27,6 +29,8 @@
#include "ui/gfx/image/image.h"
using content::WebContents;
+using extensions::ScriptExecutorImpl;
+using extensions::PageActionController;
namespace {
@@ -41,6 +45,8 @@ ExtensionTabHelper::ExtensionTabHelper(TabContentsWrapper* wrapper)
ALLOW_THIS_IN_INITIALIZER_LIST(
extension_function_dispatcher_(wrapper->profile(), this)),
wrapper_(wrapper) {
+ script_executor_.reset(new ScriptExecutorImpl(wrapper->web_contents()));
+ action_box_controller_.reset(new PageActionController(wrapper, this));
}
ExtensionTabHelper::~ExtensionTabHelper() {
@@ -52,14 +58,26 @@ void ExtensionTabHelper::CopyStateFrom(const ExtensionTabHelper& source) {
}
void ExtensionTabHelper::PageActionStateChanged() {
+ // TODO(kalman): replace this with just the Observer interface.
web_contents()->NotifyNavigationStateChanged(
content::INVALIDATE_TYPE_PAGE_ACTIONS);
+
+ FOR_EACH_OBSERVER(Observer, observers_, OnPageActionStateChanged());
}
void ExtensionTabHelper::GetApplicationInfo(int32 page_id) {
Send(new ExtensionMsg_GetApplicationInfo(routing_id(), page_id));
}
+void ExtensionTabHelper::AddObserver(ExtensionTabHelper::Observer* observer) {
+ observers_.AddObserver(observer);
+}
+
+void ExtensionTabHelper::RemoveObserver(
+ ExtensionTabHelper::Observer* observer) {
+ observers_.RemoveObserver(observer);
+}
+
void ExtensionTabHelper::SetExtensionApp(const Extension* extension) {
DCHECK(!extension || extension->GetFullLaunchURL().is_valid());
extension_app_ = extension;
« no previous file with comments | « chrome/browser/extensions/extension_tab_helper.h ('k') | chrome/browser/extensions/extension_tabs_module.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698