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 |