Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(286)

Side by Side Diff: content/browser/presentation/presentation_service_impl.cc

Issue 2471573005: [Presentation API] (5th) (1-UA) integrate controller and receiver side for 1-UA messaging (Closed)
Patch Set: merge and refactor Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 const NewSessionCallback& callback) { 286 const NewSessionCallback& callback) {
287 if (pending_join_session_cbs_.size() >= kMaxNumQueuedSessionRequests) 287 if (pending_join_session_cbs_.size() >= kMaxNumQueuedSessionRequests)
288 return kInvalidRequestSessionId; 288 return kInvalidRequestSessionId;
289 289
290 int request_id = GetNextRequestSessionId(); 290 int request_id = GetNextRequestSessionId();
291 pending_join_session_cbs_[request_id].reset( 291 pending_join_session_cbs_[request_id].reset(
292 new NewSessionCallbackWrapper(callback)); 292 new NewSessionCallbackWrapper(callback));
293 return request_id; 293 return request_id;
294 } 294 }
295 295
296 void PresentationServiceImpl::ListenForConnectionStateChangeAndChangeState( 296 void PresentationServiceImpl::ListenForConnectionStateChange(
297 const PresentationSessionInfo& connection) { 297 const PresentationSessionInfo& connection) {
298 if (controller_delegate_) { 298 if (controller_delegate_) {
299 controller_delegate_->ListenForConnectionStateChange( 299 controller_delegate_->ListenForConnectionStateChange(
300 render_process_id_, render_frame_id_, connection, 300 render_process_id_, render_frame_id_, connection,
301 base::Bind(&PresentationServiceImpl::OnConnectionStateChanged, 301 base::Bind(&PresentationServiceImpl::OnConnectionStateChanged,
302 weak_factory_.GetWeakPtr(), connection)); 302 weak_factory_.GetWeakPtr(), connection));
303 OnConnectionStateChanged(connection,
304 PresentationConnectionStateChangeInfo(
305 PRESENTATION_CONNECTION_STATE_CONNECTED));
306 } 303 }
307 } 304 }
308 305
309 void PresentationServiceImpl::OnStartSessionSucceeded( 306 void PresentationServiceImpl::OnStartSessionSucceeded(
310 int request_session_id, 307 int request_session_id,
311 const PresentationSessionInfo& session_info) { 308 const PresentationSessionInfo& session_info) {
312 if (request_session_id != start_session_request_id_) 309 if (request_session_id != start_session_request_id_)
313 return; 310 return;
314 311
315 CHECK(pending_start_session_cb_.get()); 312 CHECK(pending_start_session_cb_.get());
316 pending_start_session_cb_->Run( 313 pending_start_session_cb_->Run(
317 blink::mojom::PresentationSessionInfo::From(session_info), 314 blink::mojom::PresentationSessionInfo::From(session_info),
318 blink::mojom::PresentationErrorPtr()); 315 blink::mojom::PresentationErrorPtr());
319 ListenForConnectionStateChangeAndChangeState(session_info); 316 ListenForConnectionStateChange(session_info);
320 pending_start_session_cb_.reset(); 317 pending_start_session_cb_.reset();
321 start_session_request_id_ = kInvalidRequestSessionId; 318 start_session_request_id_ = kInvalidRequestSessionId;
322 } 319 }
323 320
324 void PresentationServiceImpl::OnStartSessionError( 321 void PresentationServiceImpl::OnStartSessionError(
325 int request_session_id, 322 int request_session_id,
326 const PresentationError& error) { 323 const PresentationError& error) {
327 if (request_session_id != start_session_request_id_) 324 if (request_session_id != start_session_request_id_)
328 return; 325 return;
329 326
330 CHECK(pending_start_session_cb_.get()); 327 CHECK(pending_start_session_cb_.get());
331 pending_start_session_cb_->Run(blink::mojom::PresentationSessionInfoPtr(), 328 pending_start_session_cb_->Run(blink::mojom::PresentationSessionInfoPtr(),
332 blink::mojom::PresentationError::From(error)); 329 blink::mojom::PresentationError::From(error));
333 pending_start_session_cb_.reset(); 330 pending_start_session_cb_.reset();
334 start_session_request_id_ = kInvalidRequestSessionId; 331 start_session_request_id_ = kInvalidRequestSessionId;
335 } 332 }
336 333
337 void PresentationServiceImpl::OnJoinSessionSucceeded( 334 void PresentationServiceImpl::OnJoinSessionSucceeded(
338 int request_session_id, 335 int request_session_id,
339 const PresentationSessionInfo& session_info) { 336 const PresentationSessionInfo& session_info) {
340 if (RunAndEraseJoinSessionMojoCallback( 337 if (RunAndEraseJoinSessionMojoCallback(
341 request_session_id, 338 request_session_id,
342 blink::mojom::PresentationSessionInfo::From(session_info), 339 blink::mojom::PresentationSessionInfo::From(session_info),
343 blink::mojom::PresentationErrorPtr())) { 340 blink::mojom::PresentationErrorPtr())) {
344 ListenForConnectionStateChangeAndChangeState(session_info); 341 ListenForConnectionStateChange(session_info);
345 } 342 }
346 } 343 }
347 344
348 void PresentationServiceImpl::OnJoinSessionError( 345 void PresentationServiceImpl::OnJoinSessionError(
349 int request_session_id, 346 int request_session_id,
350 const PresentationError& error) { 347 const PresentationError& error) {
351 RunAndEraseJoinSessionMojoCallback( 348 RunAndEraseJoinSessionMojoCallback(
352 request_session_id, blink::mojom::PresentationSessionInfoPtr(), 349 request_session_id, blink::mojom::PresentationSessionInfoPtr(),
353 blink::mojom::PresentationError::From(error)); 350 blink::mojom::PresentationError::From(error));
354 } 351 }
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 void PresentationServiceImpl::SetPresentationConnection( 480 void PresentationServiceImpl::SetPresentationConnection(
484 blink::mojom::PresentationSessionInfoPtr session, 481 blink::mojom::PresentationSessionInfoPtr session,
485 blink::mojom::PresentationConnectionPtr controller_connection_ptr, 482 blink::mojom::PresentationConnectionPtr controller_connection_ptr,
486 blink::mojom::PresentationConnectionRequest receiver_connection_request) { 483 blink::mojom::PresentationConnectionRequest receiver_connection_request) {
487 DVLOG(2) << "SetPresentationConnection"; 484 DVLOG(2) << "SetPresentationConnection";
488 485
489 if (!controller_delegate_) 486 if (!controller_delegate_)
490 return; 487 return;
491 488
492 PresentationSessionInfo session_info(session.To<PresentationSessionInfo>()); 489 PresentationSessionInfo session_info(session.To<PresentationSessionInfo>());
493 controller_delegate_->ConnectToOffscreenPresentation( 490 controller_delegate_->ConnectToPresentation(
494 render_process_id_, render_frame_id_, session_info, 491 render_process_id_, render_frame_id_, session_info,
495 std::move(controller_connection_ptr), 492 std::move(controller_connection_ptr),
496 std::move(receiver_connection_request)); 493 std::move(receiver_connection_request));
497 } 494 }
498 495
499 void PresentationServiceImpl::OnConnectionMessages( 496 void PresentationServiceImpl::OnConnectionMessages(
500 const PresentationSessionInfo& session, 497 const PresentationSessionInfo& session,
501 const std::vector<std::unique_ptr<PresentationConnectionMessage>>& messages, 498 const std::vector<std::unique_ptr<PresentationConnectionMessage>>& messages,
502 bool pass_ownership) { 499 bool pass_ownership) {
503 DCHECK(client_); 500 DCHECK(client_);
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 controller_delegate_ = nullptr; 604 controller_delegate_ = nullptr;
608 receiver_delegate_ = nullptr; 605 receiver_delegate_ = nullptr;
609 Reset(); 606 Reset();
610 } 607 }
611 608
612 void PresentationServiceImpl::OnDefaultPresentationStarted( 609 void PresentationServiceImpl::OnDefaultPresentationStarted(
613 const PresentationSessionInfo& connection) { 610 const PresentationSessionInfo& connection) {
614 DCHECK(client_.get()); 611 DCHECK(client_.get());
615 client_->OnDefaultSessionStarted( 612 client_->OnDefaultSessionStarted(
616 blink::mojom::PresentationSessionInfo::From(connection)); 613 blink::mojom::PresentationSessionInfo::From(connection));
617 ListenForConnectionStateChangeAndChangeState(connection); 614 ListenForConnectionStateChange(connection);
618 } 615 }
619 616
620 PresentationServiceImpl::ScreenAvailabilityListenerImpl:: 617 PresentationServiceImpl::ScreenAvailabilityListenerImpl::
621 ScreenAvailabilityListenerImpl(const GURL& availability_url, 618 ScreenAvailabilityListenerImpl(const GURL& availability_url,
622 PresentationServiceImpl* service) 619 PresentationServiceImpl* service)
623 : availability_url_(availability_url), service_(service) { 620 : availability_url_(availability_url), service_(service) {
624 DCHECK(service_); 621 DCHECK(service_);
625 DCHECK(service_->client_.get()); 622 DCHECK(service_->client_.get());
626 } 623 }
627 624
(...skipping 29 matching lines...) Expand all
657 654
658 void PresentationServiceImpl::NewSessionCallbackWrapper::Run( 655 void PresentationServiceImpl::NewSessionCallbackWrapper::Run(
659 blink::mojom::PresentationSessionInfoPtr session, 656 blink::mojom::PresentationSessionInfoPtr session,
660 blink::mojom::PresentationErrorPtr error) { 657 blink::mojom::PresentationErrorPtr error) {
661 DCHECK(!callback_.is_null()); 658 DCHECK(!callback_.is_null());
662 callback_.Run(std::move(session), std::move(error)); 659 callback_.Run(std::move(session), std::move(error));
663 callback_.Reset(); 660 callback_.Reset();
664 } 661 }
665 662
666 } // namespace content 663 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698