| Index: content/common/gin_java_bridge_messages.h
|
| diff --git a/content/common/gin_java_bridge_messages.h b/content/common/gin_java_bridge_messages.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..211dee5da01a3668db7afd3e38dd21f55b4e5b68
|
| --- /dev/null
|
| +++ b/content/common/gin_java_bridge_messages.h
|
| @@ -0,0 +1,68 @@
|
| +// Copyright (c) 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.
|
| +
|
| +// IPC messages for injected Java objects (Gin-based implementation).
|
| +
|
| +// Multiply-included message file, hence no include guard.
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "content/common/content_export.h"
|
| +#include "ipc/ipc_message_macros.h"
|
| +
|
| +#undef IPC_MESSAGE_EXPORT
|
| +#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
|
| +#define IPC_MESSAGE_START GinJavaBridgeMsgStart
|
| +
|
| +// Messages for handling Java objects injected into JavaScript -----------------
|
| +
|
| +// Sent from browser to renderer to add a Java object with the given name.
|
| +// Object IDs are generated on the browser side.
|
| +IPC_MESSAGE_ROUTED2(GinJavaBridgeMsg_AddNamedObject,
|
| + std::string /* name */,
|
| + int32 /* object_id */)
|
| +
|
| +// Sent from browser to renderer to remove a Java object with the given name.
|
| +IPC_MESSAGE_ROUTED1(GinJavaBridgeMsg_RemoveNamedObject,
|
| + std::string /* name */)
|
| +
|
| +// Sent from renderer to browser to get information about methods of
|
| +// the given object. The query will only succeed if inspection of injected
|
| +// objects is enabled on the browser side.
|
| +IPC_SYNC_MESSAGE_ROUTED1_1(GinJavaBridgeHostMsg_GetMethods,
|
| + int32 /* object_id */,
|
| + std::set<std::string> /* returned_method_names */)
|
| +
|
| +// Sent from renderer to browser to find out, if an object has a method with
|
| +// the given name.
|
| +IPC_SYNC_MESSAGE_ROUTED2_1(GinJavaBridgeHostMsg_HasMethod,
|
| + int32 /* object_id */,
|
| + std::string /* method_name */,
|
| + bool /* result */)
|
| +
|
| +// Sent from renderer to browser to invoke a method. Method arguments
|
| +// are chained into |arguments| list. base::ListValue is used for |result| as
|
| +// a container to work around immutability of base::Value.
|
| +// Empty result list indicates that an error has happened on the Java side
|
| +// (either bridge-induced error or an unhandled Java exception) and an exception
|
| +// must be thrown into JavaScript.
|
| +// Some special value types that are not supported by base::Value are encoded
|
| +// as BinaryValues via GinJavaBridgeValue.
|
| +IPC_SYNC_MESSAGE_ROUTED3_1(GinJavaBridgeHostMsg_InvokeMethod,
|
| + int32 /* object_id */,
|
| + std::string /* method_name */,
|
| + base::ListValue /* arguments */,
|
| + base::ListValue /* result */)
|
| +
|
| +// Sent from renderer to browser in two cases:
|
| +//
|
| +// 1. (Main usage) To inform that the JS wrapper of the object has
|
| +// been completely dereferenced and garbage-collected.
|
| +//
|
| +// 2. To notify the browser that wrapper creation has failed. The browser side
|
| +// assumes optimistically that every time an object is returned from a
|
| +// method, the corresponding wrapper object will be successfully created on
|
| +// the renderer side. Sending of this message informs the browser whether
|
| +// this expectation has failed.
|
| +IPC_MESSAGE_ROUTED1(GinJavaBridgeHostMsg_ObjectWrapperDeleted,
|
| + int32 /* object_id */)
|
|
|