OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/browser/android/java/gin_java_bridge_message_filter.h" | 5 #include "content/browser/android/java/gin_java_bridge_message_filter.h" |
6 | 6 |
7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/memory/ptr_util.h" |
8 #include "build/build_config.h" | 9 #include "build/build_config.h" |
9 #include "content/browser/android/java/gin_java_bridge_dispatcher_host.h" | 10 #include "content/browser/android/java/gin_java_bridge_dispatcher_host.h" |
10 #include "content/browser/android/java/java_bridge_thread.h" | 11 #include "content/browser/android/java/java_bridge_thread.h" |
11 #include "content/common/gin_java_bridge_messages.h" | 12 #include "content/common/gin_java_bridge_messages.h" |
12 #include "content/public/browser/render_frame_host.h" | 13 #include "content/public/browser/render_frame_host.h" |
13 #include "content/public/browser/render_process_host.h" | 14 #include "content/public/browser/render_process_host.h" |
14 #include "content/public/browser/web_contents.h" | 15 #include "content/public/browser/web_contents.h" |
15 | 16 |
16 #if !defined(OS_ANDROID) | 17 #if !defined(OS_ANDROID) |
17 #error "JavaBridge only supports OS_ANDROID" | 18 #error "JavaBridge only supports OS_ANDROID" |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 const std::string& method_name, | 149 const std::string& method_name, |
149 const base::ListValue& arguments, | 150 const base::ListValue& arguments, |
150 base::ListValue* wrapped_result, | 151 base::ListValue* wrapped_result, |
151 content::GinJavaBridgeError* error_code) { | 152 content::GinJavaBridgeError* error_code) { |
152 DCHECK(JavaBridgeThread::CurrentlyOn()); | 153 DCHECK(JavaBridgeThread::CurrentlyOn()); |
153 GinJavaBridgeDispatcherHost* host = FindHost(); | 154 GinJavaBridgeDispatcherHost* host = FindHost(); |
154 if (host) { | 155 if (host) { |
155 host->OnInvokeMethod(current_routing_id_, object_id, method_name, arguments, | 156 host->OnInvokeMethod(current_routing_id_, object_id, method_name, arguments, |
156 wrapped_result, error_code); | 157 wrapped_result, error_code); |
157 } else { | 158 } else { |
158 wrapped_result->Append(base::Value::CreateNullValue()); | 159 wrapped_result->Append(base::MakeUnique<base::Value>()); |
159 *error_code = kGinJavaBridgeRenderFrameDeleted; | 160 *error_code = kGinJavaBridgeRenderFrameDeleted; |
160 } | 161 } |
161 } | 162 } |
162 | 163 |
163 void GinJavaBridgeMessageFilter::OnObjectWrapperDeleted( | 164 void GinJavaBridgeMessageFilter::OnObjectWrapperDeleted( |
164 GinJavaBoundObject::ObjectID object_id) { | 165 GinJavaBoundObject::ObjectID object_id) { |
165 DCHECK(JavaBridgeThread::CurrentlyOn()); | 166 DCHECK(JavaBridgeThread::CurrentlyOn()); |
166 GinJavaBridgeDispatcherHost* host = FindHost(); | 167 GinJavaBridgeDispatcherHost* host = FindHost(); |
167 if (host) | 168 if (host) |
168 host->OnObjectWrapperDeleted(current_routing_id_, object_id); | 169 host->OnObjectWrapperDeleted(current_routing_id_, object_id); |
169 } | 170 } |
170 | 171 |
171 // static | 172 // static |
172 void GinJavaBridgeMessageFilter::RemoveFilter( | 173 void GinJavaBridgeMessageFilter::RemoveFilter( |
173 GinJavaBridgeDispatcherHost* host) { | 174 GinJavaBridgeDispatcherHost* host) { |
174 RenderProcessHost* rph = host->web_contents()->GetRenderProcessHost(); | 175 RenderProcessHost* rph = host->web_contents()->GetRenderProcessHost(); |
175 rph->RemoveUserData(kGinJavaBridgeMessageFilterKey); | 176 rph->RemoveUserData(kGinJavaBridgeMessageFilterKey); |
176 } | 177 } |
177 | 178 |
178 } // namespace content | 179 } // namespace content |
OLD | NEW |