Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Side by Side Diff: content/common/gin_java_bridge_messages.h

Issue 345753003: [Android] Java Bridge with Gin: implement Java Bridge dispatcher (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use an enum for passing error codes Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/common/android/gin_java_bridge_errors.cc ('k') | content/content_browser.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // IPC messages for injected Java objects (Gin-based implementation). 5 // IPC messages for injected Java objects (Gin-based implementation).
6 6
7 // Multiply-included message file, hence no include guard. 7 // Multiply-included message file, hence no include guard.
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "content/common/android/gin_java_bridge_errors.h"
10 #include "content/common/content_export.h" 11 #include "content/common/content_export.h"
11 #include "ipc/ipc_message_macros.h" 12 #include "ipc/ipc_message_macros.h"
12 13
13 #undef IPC_MESSAGE_EXPORT 14 #undef IPC_MESSAGE_EXPORT
14 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT 15 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT
15 #define IPC_MESSAGE_START GinJavaBridgeMsgStart 16 #define IPC_MESSAGE_START GinJavaBridgeMsgStart
16 17
17 // Messages for handling Java objects injected into JavaScript ----------------- 18 // Messages for handling Java objects injected into JavaScript -----------------
18 19
20 IPC_ENUM_TRAITS(content::GinJavaBridgeError)
21
19 // Sent from browser to renderer to add a Java object with the given name. 22 // Sent from browser to renderer to add a Java object with the given name.
20 // Object IDs are generated on the browser side. 23 // Object IDs are generated on the browser side.
21 IPC_MESSAGE_ROUTED2(GinJavaBridgeMsg_AddNamedObject, 24 IPC_MESSAGE_ROUTED2(GinJavaBridgeMsg_AddNamedObject,
22 std::string /* name */, 25 std::string /* name */,
23 int32 /* object_id */) 26 int32 /* object_id */)
24 27
25 // Sent from browser to renderer to remove a Java object with the given name. 28 // Sent from browser to renderer to remove a Java object with the given name.
26 IPC_MESSAGE_ROUTED1(GinJavaBridgeMsg_RemoveNamedObject, 29 IPC_MESSAGE_ROUTED1(GinJavaBridgeMsg_RemoveNamedObject,
27 std::string /* name */) 30 std::string /* name */)
28 31
29 // Sent from renderer to browser to get information about methods of 32 // Sent from renderer to browser to get information about methods of
30 // the given object. The query will only succeed if inspection of injected 33 // the given object. The query will only succeed if inspection of injected
31 // objects is enabled on the browser side. 34 // objects is enabled on the browser side.
32 IPC_SYNC_MESSAGE_ROUTED1_1(GinJavaBridgeHostMsg_GetMethods, 35 IPC_SYNC_MESSAGE_ROUTED1_1(GinJavaBridgeHostMsg_GetMethods,
33 int32 /* object_id */, 36 int32 /* object_id */,
34 std::set<std::string> /* returned_method_names */) 37 std::set<std::string> /* returned_method_names */)
35 38
36 // Sent from renderer to browser to find out, if an object has a method with 39 // Sent from renderer to browser to find out, if an object has a method with
37 // the given name. 40 // the given name.
38 IPC_SYNC_MESSAGE_ROUTED2_1(GinJavaBridgeHostMsg_HasMethod, 41 IPC_SYNC_MESSAGE_ROUTED2_1(GinJavaBridgeHostMsg_HasMethod,
39 int32 /* object_id */, 42 int32 /* object_id */,
40 std::string /* method_name */, 43 std::string /* method_name */,
41 bool /* result */) 44 bool /* result */)
42 45
43 // Sent from renderer to browser to invoke a method. Method arguments 46 // Sent from renderer to browser to invoke a method. Method arguments
44 // are chained into |arguments| list. base::ListValue is used for |result| as 47 // are chained into |arguments| list. base::ListValue is used for |result| as
45 // a container to work around immutability of base::Value. 48 // a container to work around immutability of base::Value.
46 // Empty result list indicates that an error has happened on the Java side 49 // Empty result list indicates that an error has happened on the Java side
47 // (either bridge-induced error or an unhandled Java exception) and an exception 50 // (either bridge-induced error or an unhandled Java exception) and an exception
48 // must be thrown into JavaScript. 51 // must be thrown into JavaScript. |error_code| indicates the cause of
52 // the error.
49 // Some special value types that are not supported by base::Value are encoded 53 // Some special value types that are not supported by base::Value are encoded
50 // as BinaryValues via GinJavaBridgeValue. 54 // as BinaryValues via GinJavaBridgeValue.
51 IPC_SYNC_MESSAGE_ROUTED3_1(GinJavaBridgeHostMsg_InvokeMethod, 55 IPC_SYNC_MESSAGE_ROUTED3_2(GinJavaBridgeHostMsg_InvokeMethod,
52 int32 /* object_id */, 56 int32 /* object_id */,
53 std::string /* method_name */, 57 std::string /* method_name */,
54 base::ListValue /* arguments */, 58 base::ListValue /* arguments */,
55 base::ListValue /* result */) 59 base::ListValue /* result */,
60 content::GinJavaBridgeError /* error_code */)
56 61
57 // Sent from renderer to browser in two cases: 62 // Sent from renderer to browser in two cases:
58 // 63 //
59 // 1. (Main usage) To inform that the JS wrapper of the object has 64 // 1. (Main usage) To inform that the JS wrapper of the object has
60 // been completely dereferenced and garbage-collected. 65 // been completely dereferenced and garbage-collected.
61 // 66 //
62 // 2. To notify the browser that wrapper creation has failed. The browser side 67 // 2. To notify the browser that wrapper creation has failed. The browser side
63 // assumes optimistically that every time an object is returned from a 68 // assumes optimistically that every time an object is returned from a
64 // method, the corresponding wrapper object will be successfully created on 69 // method, the corresponding wrapper object will be successfully created on
65 // the renderer side. Sending of this message informs the browser whether 70 // the renderer side. Sending of this message informs the browser whether
66 // this expectation has failed. 71 // this expectation has failed.
67 IPC_MESSAGE_ROUTED1(GinJavaBridgeHostMsg_ObjectWrapperDeleted, 72 IPC_MESSAGE_ROUTED1(GinJavaBridgeHostMsg_ObjectWrapperDeleted,
68 int32 /* object_id */) 73 int32 /* object_id */)
OLDNEW
« no previous file with comments | « content/common/android/gin_java_bridge_errors.cc ('k') | content/content_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698