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

Side by Side Diff: content/renderer/java/gin_java_bridge_dispatcher.cc

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
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 #include "content/renderer/java/gin_java_bridge_dispatcher.h" 5 #include "content/renderer/java/gin_java_bridge_dispatcher.h"
6 6
7 #include "base/strings/string_number_conversions.h" 7 #include "base/strings/string_number_conversions.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "content/common/gin_java_bridge_messages.h" 9 #include "content/common/gin_java_bridge_messages.h"
10 #include "content/public/renderer/render_frame.h" 10 #include "content/public/renderer/render_frame.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 const std::string& method_name) { 107 const std::string& method_name) {
108 bool result; 108 bool result;
109 render_frame()->Send(new GinJavaBridgeHostMsg_HasMethod( 109 render_frame()->Send(new GinJavaBridgeHostMsg_HasMethod(
110 routing_id(), object_id, method_name, &result)); 110 routing_id(), object_id, method_name, &result));
111 return result; 111 return result;
112 } 112 }
113 113
114 scoped_ptr<base::Value> GinJavaBridgeDispatcher::InvokeJavaMethod( 114 scoped_ptr<base::Value> GinJavaBridgeDispatcher::InvokeJavaMethod(
115 ObjectID object_id, 115 ObjectID object_id,
116 const std::string& method_name, 116 const std::string& method_name,
117 const base::ListValue& arguments) { 117 const base::ListValue& arguments,
118 GinJavaBridgeError* error) {
118 base::ListValue result_wrapper; 119 base::ListValue result_wrapper;
119 render_frame()->Send( 120 render_frame()->Send(
120 new GinJavaBridgeHostMsg_InvokeMethod(routing_id(), 121 new GinJavaBridgeHostMsg_InvokeMethod(routing_id(),
121 object_id, 122 object_id,
122 method_name, 123 method_name,
123 arguments, 124 arguments,
124 &result_wrapper)); 125 &result_wrapper,
126 error));
125 base::Value* result; 127 base::Value* result;
126 if (result_wrapper.Get(0, &result)) { 128 if (result_wrapper.Get(0, &result)) {
127 return scoped_ptr<base::Value>(result->DeepCopy()); 129 return scoped_ptr<base::Value>(result->DeepCopy());
128 } else { 130 } else {
129 return scoped_ptr<base::Value>(); 131 return scoped_ptr<base::Value>();
130 } 132 }
131 } 133 }
132 134
133 GinJavaBridgeObject* GinJavaBridgeDispatcher::GetObject(ObjectID object_id) { 135 GinJavaBridgeObject* GinJavaBridgeDispatcher::GetObject(ObjectID object_id) {
134 GinJavaBridgeObject* result = objects_.Lookup(object_id); 136 GinJavaBridgeObject* result = objects_.Lookup(object_id);
135 if (!result) { 137 if (!result) {
136 result = GinJavaBridgeObject::InjectAnonymous(AsWeakPtr(), object_id); 138 result = GinJavaBridgeObject::InjectAnonymous(AsWeakPtr(), object_id);
137 if (result) 139 if (result)
138 objects_.AddWithID(result, object_id); 140 objects_.AddWithID(result, object_id);
139 } 141 }
140 return result; 142 return result;
141 } 143 }
142 144
143 void GinJavaBridgeDispatcher::OnGinJavaBridgeObjectDeleted(ObjectID object_id) { 145 void GinJavaBridgeDispatcher::OnGinJavaBridgeObjectDeleted(ObjectID object_id) {
144 if (!objects_.Lookup(object_id)) 146 if (!objects_.Lookup(object_id))
145 return; 147 return;
146 objects_.Remove(object_id); 148 objects_.Remove(object_id);
147 render_frame()->Send( 149 render_frame()->Send(
148 new GinJavaBridgeHostMsg_ObjectWrapperDeleted(routing_id(), object_id)); 150 new GinJavaBridgeHostMsg_ObjectWrapperDeleted(routing_id(), object_id));
149 } 151 }
150 152
151 } // namespace content 153 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/java/gin_java_bridge_dispatcher.h ('k') | content/renderer/java/gin_java_bridge_object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698