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/presentation/presentation_service_impl.h" | 5 #include "content/browser/presentation/presentation_service_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <utility> | 10 #include <utility> |
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
396 delegate_->SetDefaultPresentationUrls( | 396 delegate_->SetDefaultPresentationUrls( |
397 render_process_id_, render_frame_id_, presentation_urls_for_delegate, | 397 render_process_id_, render_frame_id_, presentation_urls_for_delegate, |
398 base::Bind(&PresentationServiceImpl::OnDefaultPresentationStarted, | 398 base::Bind(&PresentationServiceImpl::OnDefaultPresentationStarted, |
399 weak_factory_.GetWeakPtr())); | 399 weak_factory_.GetWeakPtr())); |
400 } | 400 } |
401 | 401 |
402 void PresentationServiceImpl::SendSessionMessage( | 402 void PresentationServiceImpl::SendSessionMessage( |
403 blink::mojom::PresentationSessionInfoPtr session, | 403 blink::mojom::PresentationSessionInfoPtr session, |
404 blink::mojom::SessionMessagePtr session_message, | 404 blink::mojom::SessionMessagePtr session_message, |
405 const SendSessionMessageCallback& callback) { | 405 const SendSessionMessageCallback& callback) { |
406 DVLOG(2) << "SendSessionMessage"; | 406 DVLOG(2) << "SendSessionMessage" |
| 407 << " [url]: " << session->url << ", [id]: " << session->id |
| 408 << ", [process id]: " << render_process_id_ |
| 409 << ", [render frame id]: " << render_frame_id_; |
407 DCHECK(!session_message.is_null()); | 410 DCHECK(!session_message.is_null()); |
408 // send_message_callback_ should be null by now, otherwise resetting of | 411 // send_message_callback_ should be null by now, otherwise resetting of |
409 // send_message_callback_ with new callback will drop the old callback. | 412 // send_message_callback_ with new callback will drop the old callback. |
410 if (!delegate_ || send_message_callback_) { | 413 if (!delegate_ || send_message_callback_) { |
411 callback.Run(false); | 414 callback.Run(false); |
412 return; | 415 return; |
413 } | 416 } |
414 | 417 |
| 418 for (auto message_observer : offscreen_presentation_observers_) { |
| 419 ScopedVector<PresentationSessionMessage> messages; |
| 420 messages.push_back(GetPresentationSessionMessage(session_message.Clone())); |
| 421 message_observer->OnSessionMessages(session.To<PresentationSessionInfo>(), |
| 422 messages, false); |
| 423 } |
| 424 |
415 send_message_callback_.reset(new SendSessionMessageCallback(callback)); | 425 send_message_callback_.reset(new SendSessionMessageCallback(callback)); |
416 delegate_->SendMessage( | 426 delegate_->SendMessage( |
417 render_process_id_, render_frame_id_, | 427 render_process_id_, render_frame_id_, |
418 session.To<PresentationSessionInfo>(), | 428 session.To<PresentationSessionInfo>(), |
419 GetPresentationSessionMessage(std::move(session_message)), | 429 GetPresentationSessionMessage(std::move(session_message)), |
420 base::Bind(&PresentationServiceImpl::OnSendMessageCallback, | 430 base::Bind(&PresentationServiceImpl::OnSendMessageCallback, |
421 weak_factory_.GetWeakPtr())); | 431 weak_factory_.GetWeakPtr())); |
422 } | 432 } |
423 | 433 |
424 void PresentationServiceImpl::OnSendMessageCallback(bool sent) { | 434 void PresentationServiceImpl::OnSendMessageCallback(bool sent) { |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 render_process_id_, render_frame_id_, session_info, | 496 render_process_id_, render_frame_id_, session_info, |
487 base::Bind(&PresentationServiceImpl::OnSessionMessages, | 497 base::Bind(&PresentationServiceImpl::OnSessionMessages, |
488 weak_factory_.GetWeakPtr(), session_info)); | 498 weak_factory_.GetWeakPtr(), session_info)); |
489 } | 499 } |
490 | 500 |
491 void PresentationServiceImpl::OnSessionMessages( | 501 void PresentationServiceImpl::OnSessionMessages( |
492 const PresentationSessionInfo& session, | 502 const PresentationSessionInfo& session, |
493 const ScopedVector<PresentationSessionMessage>& messages, | 503 const ScopedVector<PresentationSessionMessage>& messages, |
494 bool pass_ownership) { | 504 bool pass_ownership) { |
495 DCHECK(client_); | 505 DCHECK(client_); |
496 | 506 DVLOG(2) << "OnSessionMessages" |
497 DVLOG(2) << "OnSessionMessages"; | 507 << " [url]: " << session.presentation_url |
| 508 << ", [id]: " << session.presentation_id |
| 509 << ", [process id]: " << render_process_id_ |
| 510 << ", [render frame id]: " << render_frame_id_; |
498 std::vector<blink::mojom::SessionMessagePtr> mojo_messages(messages.size()); | 511 std::vector<blink::mojom::SessionMessagePtr> mojo_messages(messages.size()); |
499 std::transform(messages.begin(), messages.end(), mojo_messages.begin(), | 512 std::transform(messages.begin(), messages.end(), mojo_messages.begin(), |
500 [pass_ownership](PresentationSessionMessage* message) { | 513 [pass_ownership](PresentationSessionMessage* message) { |
501 return ToMojoSessionMessage(message, pass_ownership); | 514 return ToMojoSessionMessage(message, pass_ownership); |
502 }); | 515 }); |
503 | 516 |
504 client_->OnSessionMessagesReceived( | 517 client_->OnSessionMessagesReceived( |
505 blink::mojom::PresentationSessionInfo::From(session), | 518 blink::mojom::PresentationSessionInfo::From(session), |
506 std::move(mojo_messages)); | 519 std::move(mojo_messages)); |
507 } | 520 } |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
660 | 673 |
661 void PresentationServiceImpl::NewSessionCallbackWrapper::Run( | 674 void PresentationServiceImpl::NewSessionCallbackWrapper::Run( |
662 blink::mojom::PresentationSessionInfoPtr session, | 675 blink::mojom::PresentationSessionInfoPtr session, |
663 blink::mojom::PresentationErrorPtr error) { | 676 blink::mojom::PresentationErrorPtr error) { |
664 DCHECK(!callback_.is_null()); | 677 DCHECK(!callback_.is_null()); |
665 callback_.Run(std::move(session), std::move(error)); | 678 callback_.Run(std::move(session), std::move(error)); |
666 callback_.Reset(); | 679 callback_.Reset(); |
667 } | 680 } |
668 | 681 |
669 } // namespace content | 682 } // namespace content |
OLD | NEW |