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

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

Issue 6794035: Move dispatching and sending of the last extension specific messages out of TabContents and Rende... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 9 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
===================================================================
--- chrome/browser/extensions/extension_tab_helper.cc (revision 80315)
+++ chrome/browser/extensions/extension_tab_helper.cc (working copy)
@@ -4,9 +4,10 @@
#include "chrome/browser/extensions/extension_tab_helper.h"
-#include "chrome/browser/extensions/extension_message_service.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
+#include "chrome/browser/ui/tab_contents/tab_contents_wrapper_delegate.h"
#include "chrome/common/extensions/extension_action.h"
#include "chrome/common/extensions/extension_icon_set.h"
#include "chrome/common/extensions/extension_messages.h"
@@ -15,9 +16,10 @@
#include "content/browser/tab_contents/navigation_controller.h"
#include "content/common/notification_service.h"
-ExtensionTabHelper::ExtensionTabHelper(TabContents* tab_contents)
- : TabContentsObserver(tab_contents),
- extension_app_(NULL) {
+ExtensionTabHelper::ExtensionTabHelper(TabContentsWrapper* wrapper)
+ : TabContentsObserver(wrapper->tab_contents()),
+ extension_app_(NULL),
+ wrapper_(wrapper) {
}
ExtensionTabHelper::~ExtensionTabHelper() {
@@ -33,6 +35,10 @@
TabContents::INVALIDATE_PAGE_ACTIONS);
}
+void ExtensionTabHelper::GetApplicationInfo(int32 page_id) {
+ Send(new ExtensionMsg_GetApplicationInfo(routing_id(), page_id));
+}
+
void ExtensionTabHelper::SetExtensionApp(const Extension* extension) {
DCHECK(!extension || extension->GetFullLaunchURL().is_valid());
extension_app_ = extension;
@@ -103,12 +109,28 @@
bool ExtensionTabHelper::OnMessageReceived(const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(ExtensionTabHelper, message)
- IPC_MESSAGE_HANDLER(ExtensionHostMsg_PostMessage, OnPostMessage)
+ IPC_MESSAGE_HANDLER(ExtensionHostMsg_DidGetApplicationInfo,
+ OnDidGetApplicationInfo)
+ IPC_MESSAGE_HANDLER(ExtensionHostMsg_InstallApplication,
+ OnInstallApplication)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
}
+void ExtensionTabHelper::OnDidGetApplicationInfo(
+ int32 page_id, const WebApplicationInfo& info) {
+ web_app_info_ = info;
+
+ if (wrapper_->delegate())
+ wrapper_->delegate()->OnDidGetApplicationInfo(wrapper_, page_id);
+}
+
+void ExtensionTabHelper::OnInstallApplication(const WebApplicationInfo& info) {
+ if (wrapper_->delegate())
+ wrapper_->delegate()->OnInstallApplication(wrapper_, info);
+}
+
void ExtensionTabHelper::UpdateExtensionAppIcon(const Extension* extension) {
extension_app_icon_.reset();
@@ -134,11 +156,3 @@
tab_contents()->NotifyNavigationStateChanged(TabContents::INVALIDATE_TAB);
}
}
-
-void ExtensionTabHelper::OnPostMessage(int port_id,
- const std::string& message) {
- if (tab_contents()->profile()->GetExtensionMessageService()) {
- tab_contents()->profile()->GetExtensionMessageService()->
- PostMessageFromRenderer(port_id, message);
- }
-}

Powered by Google App Engine
This is Rietveld 408576698