summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/message_handler.h
diff options
context:
space:
mode:
authorrdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-25 17:40:49 +0000
committerrdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-25 17:40:49 +0000
commit40404bcddf2a1d19906ab9beb3a4cb1fa4d90f87 (patch)
tree62d5a5d8073366c52975bdf3c54b0cef0729e807 /chrome/browser/extensions/message_handler.h
parentc4185460ea68a358320cca15cbe836e9dfb55138 (diff)
downloadchromium_src-40404bcddf2a1d19906ab9beb3a4cb1fa4d90f87.zip
chromium_src-40404bcddf2a1d19906ab9beb3a4cb1fa4d90f87.tar.gz
chromium_src-40404bcddf2a1d19906ab9beb3a4cb1fa4d90f87.tar.bz2
Moved ExtensionMessage* into extensions namespace
Moved ExtensionMessageBundle, ExtensionMessageService, and ExtensionMessageHandler into extensions namespace. Renamed appropriately. BUG=137298, 117261 Review URL: https://chromiumcodereview.appspot.com/10787002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148354 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/message_handler.h')
-rw-r--r--chrome/browser/extensions/message_handler.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/chrome/browser/extensions/message_handler.h b/chrome/browser/extensions/message_handler.h
new file mode 100644
index 0000000..140105d
--- /dev/null
+++ b/chrome/browser/extensions/message_handler.h
@@ -0,0 +1,43 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_EXTENSIONS_MESSAGE_HANDLER_H_
+#define CHROME_BROWSER_EXTENSIONS_MESSAGE_HANDLER_H_
+
+#include <string>
+
+#include "content/public/browser/render_view_host_observer.h"
+
+namespace extensions {
+
+// Filters and dispatches extension-related IPC messages that arrive from
+// renderers. There is one of these objects for each RenderViewHost in Chrome.
+// Contrast this with extensions::TabHelper, which is only created for
+// WebContents.
+//
+// TODO(aa): Handling of content script messaging should be able to move to EFD
+// once there is an EFD for every RVHD where extension code can run. Then we
+// could eliminate this class. Right now, we don't end up with an EFD for tab
+// contents unless that tab contents is hosting chrome-extension:// URLs. That
+// still leaves content scripts. See also: crbug.com/80307.
+class MessageHandler : public content::RenderViewHostObserver {
+ public:
+ // |sender| is guaranteed to outlive this object.
+ explicit MessageHandler(content::RenderViewHost* render_view_host);
+ virtual ~MessageHandler();
+
+ // RenderViewHostObserver overrides.
+ virtual void RenderViewHostInitialized() OVERRIDE;
+ virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
+
+ private:
+ // Message handlers.
+ void OnPostMessage(int port_id, const std::string& message);
+
+ DISALLOW_COPY_AND_ASSIGN(MessageHandler);
+};
+
+} // namespace extensions
+
+#endif // CHROME_BROWSER_EXTENSIONS_MESSAGE_HANDLER_H_