| Index: extensions/browser/api/messaging/native_message_host.h
|
| diff --git a/extensions/browser/api/messaging/native_message_host.h b/extensions/browser/api/messaging/native_message_host.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..da241e06f83f9f2c8300dd484aee936394616a54
|
| --- /dev/null
|
| +++ b/extensions/browser/api/messaging/native_message_host.h
|
| @@ -0,0 +1,62 @@
|
| +// Copyright 2014 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 EXTENSIONS_BROWSER_API_MESSAGING_NATIVE_MESSAGE_HOST_H_
|
| +#define EXTENSIONS_BROWSER_API_MESSAGING_NATIVE_MESSAGE_HOST_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "base/single_thread_task_runner.h"
|
| +#include "ui/gfx/native_widget_types.h"
|
| +
|
| +namespace extensions {
|
| +
|
| +// An interface for receiving messages from MessageService (Chrome) using the
|
| +// Native Messaging API. A NativeMessageHost object hosts a native component,
|
| +// which can run in the browser-process or in a separate process (See
|
| +// NativeMessageProcessHost).
|
| +class NativeMessageHost {
|
| + public:
|
| + static const char kFailedToStartError[];
|
| + static const char kInvalidNameError[];
|
| + static const char kNativeHostExited[];
|
| + static const char kNotFoundError[];
|
| + static const char kForbiddenError[];
|
| + static const char kHostInputOuputError[];
|
| +
|
| + // Callback interface for receiving messages from the native host.
|
| + class Client {
|
| + public:
|
| + virtual ~Client() {}
|
| +
|
| + // Called on the UI thread.
|
| + virtual void PostMessageFromNativeHost(const std::string& message) = 0;
|
| + virtual void CloseChannel(const std::string& error_message) = 0;
|
| + };
|
| +
|
| + // Creates the NativeMessageHost based on the |native_host_name|.
|
| + static scoped_ptr<NativeMessageHost> Create(
|
| + gfx::NativeView native_view,
|
| + const std::string& source_extension_id,
|
| + const std::string& native_host_name,
|
| + bool allow_user_level,
|
| + std::string* error);
|
| +
|
| + virtual ~NativeMessageHost() {}
|
| +
|
| + // Called when a message is received from MessageService (Chrome).
|
| + virtual void OnMessage(const std::string& message) = 0;
|
| +
|
| + // Sets the client to start receiving messages from the native host.
|
| + virtual void Start(Client* client) = 0;
|
| +
|
| + // Returns the task runner that the host runs on. The Client should only
|
| + // invoke OnMessage() on this task runner.
|
| + virtual scoped_refptr<base::SingleThreadTaskRunner> task_runner() const = 0;
|
| +};
|
| +
|
| +} // namespace extensions
|
| +
|
| +#endif // EXTENSIONS_BROWSER_API_MESSAGING_NATIVE_MESSAGE_HOST_H_
|
|
|