| Index: chrome/browser/extensions/api/messaging/message_service.h
|
| diff --git a/chrome/browser/extensions/api/messaging/message_service.h b/chrome/browser/extensions/api/messaging/message_service.h
|
| index 2fc5e805435d721595ee6e69c22f23b2bd9a0754..23bf7e87ca9463149b14c9b06d80685be7fd111c 100644
|
| --- a/chrome/browser/extensions/api/messaging/message_service.h
|
| +++ b/chrome/browser/extensions/api/messaging/message_service.h
|
| @@ -14,9 +14,9 @@
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "chrome/browser/extensions/api/messaging/message_property_provider.h"
|
| -#include "chrome/browser/extensions/api/messaging/native_message_process_host.h"
|
| #include "content/public/browser/notification_observer.h"
|
| #include "content/public/browser/notification_registrar.h"
|
| +#include "extensions/browser/api/messaging/native_message_host.h"
|
| #include "extensions/browser/browser_context_keyed_api_factory.h"
|
| #include "extensions/common/api/messaging/message.h"
|
|
|
| @@ -60,8 +60,7 @@ class LazyBackgroundTaskQueue;
|
| // case that the port is a tab). The Process is usually either a
|
| // RenderProcessHost or a RenderViewHost.
|
| class MessageService : public BrowserContextKeyedAPI,
|
| - public content::NotificationObserver,
|
| - public NativeMessageProcessHost::Client {
|
| + public content::NotificationObserver {
|
| public:
|
| // A messaging channel. Note that the opening port can be the same as the
|
| // receiver, if an extension background page wants to talk to its tab (for
|
| @@ -105,6 +104,16 @@ class MessageService : public BrowserContextKeyedAPI,
|
| DISALLOW_COPY_AND_ASSIGN(MessagePort);
|
| };
|
|
|
| + enum PolicyPermission {
|
| + DISALLOW, // The host is not allowed.
|
| + ALLOW_SYSTEM_ONLY, // Allowed only when installed on system level.
|
| + ALLOW_ALL, // Allowed when installed on system or user level.
|
| + };
|
| +
|
| + static PolicyPermission IsNativeMessagingHostAllowed(
|
| + const PrefService* pref_service,
|
| + const std::string& native_host_name);
|
| +
|
| // Allocates a pair of port ids.
|
| // NOTE: this can be called from any thread.
|
| static void AllocatePortIdPair(int* port1, int* port2);
|
| @@ -146,18 +155,12 @@ class MessageService : public BrowserContextKeyedAPI,
|
|
|
| // Closes the message channel associated with the given port, and notifies
|
| // the other side.
|
| - virtual void CloseChannel(int port_id,
|
| - const std::string& error_message) override;
|
| + void CloseChannel(int port_id, const std::string& error_message);
|
|
|
| // Enqueues a message on a pending channel, or sends a message to the given
|
| // port if the channel isn't pending.
|
| void PostMessage(int port_id, const Message& message);
|
|
|
| - // NativeMessageProcessHost::Client
|
| - virtual void PostMessageFromNativeProcess(
|
| - int port_id,
|
| - const std::string& message) override;
|
| -
|
| private:
|
| friend class MockMessageService;
|
| friend class BrowserContextKeyedAPIFactory<MessageService>;
|
|
|