| OLD | NEW |
| 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/browser/android/java/gin_java_bridge_dispatcher_host.h" | 5 #include "content/browser/android/java/gin_java_bridge_dispatcher_host.h" |
| 6 | 6 |
| 7 #include "base/android/java_handler_thread.h" | 7 #include "base/android/java_handler_thread.h" |
| 8 #include "base/android/jni_android.h" | 8 #include "base/android/jni_android.h" |
| 9 #include "base/android/scoped_java_ref.h" | 9 #include "base/android/scoped_java_ref.h" |
| 10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| (...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 scoped_refptr<GinJavaBoundObject> object(*objects_.Lookup(object_id)); | 376 scoped_refptr<GinJavaBoundObject> object(*objects_.Lookup(object_id)); |
| 377 if (!object.get()) { | 377 if (!object.get()) { |
| 378 LOG(ERROR) << "WebView: Unknown object: " << object_id; | 378 LOG(ERROR) << "WebView: Unknown object: " << object_id; |
| 379 IPC::WriteParam(reply_msg, std::set<std::string>()); | 379 IPC::WriteParam(reply_msg, std::set<std::string>()); |
| 380 render_frame_host->Send(reply_msg); | 380 render_frame_host->Send(reply_msg); |
| 381 return; | 381 return; |
| 382 } | 382 } |
| 383 DCHECK(!HasPendingReply(render_frame_host)); | 383 DCHECK(!HasPendingReply(render_frame_host)); |
| 384 pending_replies_[render_frame_host] = reply_msg; | 384 pending_replies_[render_frame_host] = reply_msg; |
| 385 base::PostTaskAndReplyWithResult( | 385 base::PostTaskAndReplyWithResult( |
| 386 g_background_thread.Get().message_loop()->message_loop_proxy(), | 386 g_background_thread.Get().message_loop()->message_loop_proxy().get(), |
| 387 FROM_HERE, | 387 FROM_HERE, |
| 388 base::Bind(&GinJavaBoundObject::GetMethodNames, object), | 388 base::Bind(&GinJavaBoundObject::GetMethodNames, object), |
| 389 base::Bind(&GinJavaBridgeDispatcherHost::SendMethods, | 389 base::Bind(&GinJavaBridgeDispatcherHost::SendMethods, |
| 390 AsWeakPtr(), | 390 AsWeakPtr(), |
| 391 render_frame_host)); | 391 render_frame_host)); |
| 392 } | 392 } |
| 393 | 393 |
| 394 void GinJavaBridgeDispatcherHost::SendMethods( | 394 void GinJavaBridgeDispatcherHost::SendMethods( |
| 395 RenderFrameHost* render_frame_host, | 395 RenderFrameHost* render_frame_host, |
| 396 const std::set<std::string>& method_names) { | 396 const std::set<std::string>& method_names) { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 412 scoped_refptr<GinJavaBoundObject> object(*objects_.Lookup(object_id)); | 412 scoped_refptr<GinJavaBoundObject> object(*objects_.Lookup(object_id)); |
| 413 if (!object.get()) { | 413 if (!object.get()) { |
| 414 LOG(ERROR) << "WebView: Unknown object: " << object_id; | 414 LOG(ERROR) << "WebView: Unknown object: " << object_id; |
| 415 IPC::WriteParam(reply_msg, false); | 415 IPC::WriteParam(reply_msg, false); |
| 416 render_frame_host->Send(reply_msg); | 416 render_frame_host->Send(reply_msg); |
| 417 return; | 417 return; |
| 418 } | 418 } |
| 419 DCHECK(!HasPendingReply(render_frame_host)); | 419 DCHECK(!HasPendingReply(render_frame_host)); |
| 420 pending_replies_[render_frame_host] = reply_msg; | 420 pending_replies_[render_frame_host] = reply_msg; |
| 421 base::PostTaskAndReplyWithResult( | 421 base::PostTaskAndReplyWithResult( |
| 422 g_background_thread.Get().message_loop()->message_loop_proxy(), | 422 g_background_thread.Get().message_loop()->message_loop_proxy().get(), |
| 423 FROM_HERE, | 423 FROM_HERE, |
| 424 base::Bind(&GinJavaBoundObject::HasMethod, object, method_name), | 424 base::Bind(&GinJavaBoundObject::HasMethod, object, method_name), |
| 425 base::Bind(&GinJavaBridgeDispatcherHost::SendHasMethodReply, | 425 base::Bind(&GinJavaBridgeDispatcherHost::SendHasMethodReply, |
| 426 AsWeakPtr(), | 426 AsWeakPtr(), |
| 427 render_frame_host)); | 427 render_frame_host)); |
| 428 } | 428 } |
| 429 | 429 |
| 430 void GinJavaBridgeDispatcherHost::SendHasMethodReply( | 430 void GinJavaBridgeDispatcherHost::SendHasMethodReply( |
| 431 RenderFrameHost* render_frame_host, | 431 RenderFrameHost* render_frame_host, |
| 432 bool result) { | 432 bool result) { |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 564 pending_replies_.erase(it); | 564 pending_replies_.erase(it); |
| 565 return reply_msg; | 565 return reply_msg; |
| 566 } | 566 } |
| 567 | 567 |
| 568 bool GinJavaBridgeDispatcherHost::HasPendingReply( | 568 bool GinJavaBridgeDispatcherHost::HasPendingReply( |
| 569 RenderFrameHost* render_frame_host) const { | 569 RenderFrameHost* render_frame_host) const { |
| 570 return pending_replies_.find(render_frame_host) != pending_replies_.end(); | 570 return pending_replies_.find(render_frame_host) != pending_replies_.end(); |
| 571 } | 571 } |
| 572 | 572 |
| 573 } // namespace content | 573 } // namespace content |
| OLD | NEW |