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/renderer/presentation/presentation_dispatcher.h" | 5 #include "content/renderer/presentation/presentation_dispatcher.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
356 blink::WebString::fromUTF8(error->message))); | 356 blink::WebString::fromUTF8(error->message))); |
357 return; | 357 return; |
358 } | 358 } |
359 | 359 |
360 DCHECK(!session_info.is_null()); | 360 DCHECK(!session_info.is_null()); |
361 callback->onSuccess(blink::adoptWebPtr( | 361 callback->onSuccess(blink::adoptWebPtr( |
362 new PresentationConnectionClient(session_info.Clone()))); | 362 new PresentationConnectionClient(session_info.Clone()))); |
363 presentation_service_->ListenForSessionMessages(session_info.Pass()); | 363 presentation_service_->ListenForSessionMessages(session_info.Pass()); |
364 } | 364 } |
365 | 365 |
366 void PresentationDispatcher::OnSessionStateChanged( | 366 void PresentationDispatcher::OnConnectionStateChanged( |
367 presentation::PresentationSessionInfoPtr session_info, | 367 presentation::PresentationSessionInfoPtr connection, |
368 presentation::PresentationConnectionState session_state) { | 368 presentation::PresentationConnectionState state) { |
369 if (!controller_) | 369 if (!controller_) |
370 return; | 370 return; |
371 | 371 |
372 DCHECK(!session_info.is_null()); | 372 DCHECK(!connection.is_null()); |
373 controller_->didChangeSessionState( | 373 controller_->didChangeSessionState( |
374 new PresentationConnectionClient(session_info.Pass()), | 374 new PresentationConnectionClient(connection.Pass()), |
375 GetWebPresentationConnectionStateFromMojo(session_state)); | 375 GetWebPresentationConnectionStateFromMojo(state)); |
376 } | 376 } |
377 | 377 |
378 void PresentationDispatcher::OnSessionMessagesReceived( | 378 void PresentationDispatcher::OnSessionMessagesReceived( |
379 presentation::PresentationSessionInfoPtr session_info, | 379 presentation::PresentationSessionInfoPtr session_info, |
380 mojo::Array<presentation::SessionMessagePtr> messages) { | 380 mojo::Array<presentation::SessionMessagePtr> messages) { |
381 if (!controller_) | 381 if (!controller_) |
382 return; | 382 return; |
383 | 383 |
384 for (size_t i = 0; i < messages.size(); ++i) { | 384 for (size_t i = 0; i < messages.size(); ++i) { |
385 // Note: Passing batches of messages to the Blink layer would be more | 385 // Note: Passing batches of messages to the Blink layer would be more |
(...skipping 27 matching lines...) Expand all Loading... |
413 | 413 |
414 void PresentationDispatcher::ConnectToPresentationServiceIfNeeded() { | 414 void PresentationDispatcher::ConnectToPresentationServiceIfNeeded() { |
415 if (presentation_service_.get()) | 415 if (presentation_service_.get()) |
416 return; | 416 return; |
417 | 417 |
418 render_frame()->GetServiceRegistry()->ConnectToRemoteService( | 418 render_frame()->GetServiceRegistry()->ConnectToRemoteService( |
419 mojo::GetProxy(&presentation_service_)); | 419 mojo::GetProxy(&presentation_service_)); |
420 presentation::PresentationServiceClientPtr client_ptr; | 420 presentation::PresentationServiceClientPtr client_ptr; |
421 binding_.Bind(GetProxy(&client_ptr)); | 421 binding_.Bind(GetProxy(&client_ptr)); |
422 presentation_service_->SetClient(client_ptr.Pass()); | 422 presentation_service_->SetClient(client_ptr.Pass()); |
423 | |
424 presentation_service_->ListenForSessionStateChange(); | |
425 } | 423 } |
426 | 424 |
427 void PresentationDispatcher::UpdateListeningState(AvailabilityStatus* status) { | 425 void PresentationDispatcher::UpdateListeningState(AvailabilityStatus* status) { |
428 bool should_listen = !status->availability_callbacks.IsEmpty() || | 426 bool should_listen = !status->availability_callbacks.IsEmpty() || |
429 !status->availability_observers.empty(); | 427 !status->availability_observers.empty(); |
430 bool is_listening = status->listening_state != ListeningState::INACTIVE; | 428 bool is_listening = status->listening_state != ListeningState::INACTIVE; |
431 | 429 |
432 if (should_listen == is_listening) | 430 if (should_listen == is_listening) |
433 return; | 431 return; |
434 | 432 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
492 PresentationDispatcher::AvailabilityStatus::AvailabilityStatus( | 490 PresentationDispatcher::AvailabilityStatus::AvailabilityStatus( |
493 const std::string& availability_url) | 491 const std::string& availability_url) |
494 : url(availability_url), | 492 : url(availability_url), |
495 last_known_availability(false), | 493 last_known_availability(false), |
496 listening_state(ListeningState::INACTIVE) {} | 494 listening_state(ListeningState::INACTIVE) {} |
497 | 495 |
498 PresentationDispatcher::AvailabilityStatus::~AvailabilityStatus() { | 496 PresentationDispatcher::AvailabilityStatus::~AvailabilityStatus() { |
499 } | 497 } |
500 | 498 |
501 } // namespace content | 499 } // namespace content |
OLD | NEW |