| 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 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 GinJavaBoundObject::ObjectID object_id, | 367 GinJavaBoundObject::ObjectID object_id, |
| 368 IPC::Message* reply_msg) { | 368 IPC::Message* reply_msg) { |
| 369 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 369 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 370 DCHECK(render_frame_host); | 370 DCHECK(render_frame_host); |
| 371 if (!allow_object_contents_inspection_) { | 371 if (!allow_object_contents_inspection_) { |
| 372 IPC::WriteParam(reply_msg, std::set<std::string>()); | 372 IPC::WriteParam(reply_msg, std::set<std::string>()); |
| 373 render_frame_host->Send(reply_msg); | 373 render_frame_host->Send(reply_msg); |
| 374 return; | 374 return; |
| 375 } | 375 } |
| 376 scoped_refptr<GinJavaBoundObject> object(*objects_.Lookup(object_id)); | 376 scoped_refptr<GinJavaBoundObject> object(*objects_.Lookup(object_id)); |
| 377 if (!object) { | 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(), |
| 387 FROM_HERE, | 387 FROM_HERE, |
| (...skipping 15 matching lines...) Expand all Loading... |
| 403 } | 403 } |
| 404 | 404 |
| 405 void GinJavaBridgeDispatcherHost::OnHasMethod( | 405 void GinJavaBridgeDispatcherHost::OnHasMethod( |
| 406 RenderFrameHost* render_frame_host, | 406 RenderFrameHost* render_frame_host, |
| 407 GinJavaBoundObject::ObjectID object_id, | 407 GinJavaBoundObject::ObjectID object_id, |
| 408 const std::string& method_name, | 408 const std::string& method_name, |
| 409 IPC::Message* reply_msg) { | 409 IPC::Message* reply_msg) { |
| 410 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 410 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 411 DCHECK(render_frame_host); | 411 DCHECK(render_frame_host); |
| 412 scoped_refptr<GinJavaBoundObject> object(*objects_.Lookup(object_id)); | 412 scoped_refptr<GinJavaBoundObject> object(*objects_.Lookup(object_id)); |
| 413 if (!object) { | 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(), |
| 423 FROM_HERE, | 423 FROM_HERE, |
| (...skipping 16 matching lines...) Expand all Loading... |
| 440 | 440 |
| 441 void GinJavaBridgeDispatcherHost::OnInvokeMethod( | 441 void GinJavaBridgeDispatcherHost::OnInvokeMethod( |
| 442 RenderFrameHost* render_frame_host, | 442 RenderFrameHost* render_frame_host, |
| 443 GinJavaBoundObject::ObjectID object_id, | 443 GinJavaBoundObject::ObjectID object_id, |
| 444 const std::string& method_name, | 444 const std::string& method_name, |
| 445 const base::ListValue& arguments, | 445 const base::ListValue& arguments, |
| 446 IPC::Message* reply_msg) { | 446 IPC::Message* reply_msg) { |
| 447 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 447 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 448 DCHECK(render_frame_host); | 448 DCHECK(render_frame_host); |
| 449 scoped_refptr<GinJavaBoundObject> object(*objects_.Lookup(object_id)); | 449 scoped_refptr<GinJavaBoundObject> object(*objects_.Lookup(object_id)); |
| 450 if (!object) { | 450 if (!object.get()) { |
| 451 LOG(ERROR) << "WebView: Unknown object: " << object_id; | 451 LOG(ERROR) << "WebView: Unknown object: " << object_id; |
| 452 base::ListValue result; | 452 base::ListValue result; |
| 453 result.Append(base::Value::CreateNullValue()); | 453 result.Append(base::Value::CreateNullValue()); |
| 454 IPC::WriteParam(reply_msg, result); | 454 IPC::WriteParam(reply_msg, result); |
| 455 IPC::WriteParam(reply_msg, kGinJavaBridgeUnknownObjectId); | 455 IPC::WriteParam(reply_msg, kGinJavaBridgeUnknownObjectId); |
| 456 render_frame_host->Send(reply_msg); | 456 render_frame_host->Send(reply_msg); |
| 457 return; | 457 return; |
| 458 } | 458 } |
| 459 DCHECK(!HasPendingReply(render_frame_host)); | 459 DCHECK(!HasPendingReply(render_frame_host)); |
| 460 pending_replies_[render_frame_host] = reply_msg; | 460 pending_replies_[render_frame_host] = reply_msg; |
| (...skipping 103 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 |