diff options
author | rdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-25 17:40:49 +0000 |
---|---|---|
committer | rdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-25 17:40:49 +0000 |
commit | 40404bcddf2a1d19906ab9beb3a4cb1fa4d90f87 (patch) | |
tree | 62d5a5d8073366c52975bdf3c54b0cef0729e807 /chrome/browser/extensions/message_handler.h | |
parent | c4185460ea68a358320cca15cbe836e9dfb55138 (diff) | |
download | chromium_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.h | 43 |
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_ |