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

Unified Diff: content/browser/presentation/presentation_service_impl.cc

Issue 1406013003: [Presentation API / Media Router] Clean up default pres URL logic. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Original patch Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/presentation/presentation_service_impl.cc
diff --git a/content/browser/presentation/presentation_service_impl.cc b/content/browser/presentation/presentation_service_impl.cc
index dd5203dce31567a3007fc996485817fb88235e61..5d20a311e0927bab74e7b86d85622fb8f613ee2b 100644
--- a/content/browser/presentation/presentation_service_impl.cc
+++ b/content/browser/presentation/presentation_service_impl.cc
@@ -224,13 +224,6 @@ void PresentationServiceImpl::StopListeningForScreenAvailability(
screen_availability_listeners_.erase(listener_it);
}
-void PresentationServiceImpl::ListenForDefaultSessionStart(
- const DefaultSessionMojoCallback& callback) {
- if (!default_session_start_context_.get())
- default_session_start_context_.reset(new DefaultSessionStartContext);
- default_session_start_context_->AddCallback(callback);
-}
-
void PresentationServiceImpl::StartSession(
const mojo::String& presentation_url,
const NewSessionMojoCallback& callback) {
@@ -368,11 +361,12 @@ void PresentationServiceImpl::SetDefaultPresentationURL(
const std::string& new_default_url = url.get();
if (default_presentation_url_ == new_default_url)
return;
- delegate_->SetDefaultPresentationUrl(
- render_process_id_,
- render_frame_id_,
- new_default_url);
+
default_presentation_url_ = new_default_url;
+ delegate_->SetDefaultPresentationUrl(
+ render_process_id_, render_frame_id_, new_default_url,
+ base::Bind(&PresentationServiceImpl::OnDefaultPresentationStarted,
+ weak_factory_.GetWeakPtr()));
}
void PresentationServiceImpl::SendSessionMessage(
@@ -521,8 +515,6 @@ void PresentationServiceImpl::Reset() {
pending_join_session_cbs_.clear();
- default_session_start_context_.reset();
-
if (on_session_messages_callback_.get()) {
on_session_messages_callback_->Run(
mojo::Array<presentation::SessionMessagePtr>());
@@ -544,9 +536,10 @@ void PresentationServiceImpl::OnDelegateDestroyed() {
}
void PresentationServiceImpl::OnDefaultPresentationStarted(
- const PresentationSessionInfo& session) {
- if (default_session_start_context_.get())
- default_session_start_context_->set_session(session);
+ const PresentationSessionInfo& session_info) {
+ DCHECK(client_.get());
+ client_->OnDefaultSessionStarted(
+ presentation::PresentationSessionInfo::From(session_info));
}
PresentationServiceImpl::ScreenAvailabilityListenerImpl
@@ -597,45 +590,4 @@ void PresentationServiceImpl::NewSessionMojoCallbackWrapper::Run(
callback_.reset();
}
-PresentationServiceImpl::DefaultSessionStartContext
-::DefaultSessionStartContext() {
-}
-
-PresentationServiceImpl::DefaultSessionStartContext
-::~DefaultSessionStartContext() {
- Reset();
-}
-
-void PresentationServiceImpl::DefaultSessionStartContext::AddCallback(
- const DefaultSessionMojoCallback& callback) {
- if (session_.get()) {
- DCHECK(callbacks_.empty());
- callback.Run(presentation::PresentationSessionInfo::From(*session_));
- session_.reset();
- } else {
- callbacks_.push_back(new DefaultSessionMojoCallback(callback));
- }
-}
-
-void PresentationServiceImpl::DefaultSessionStartContext::set_session(
- const PresentationSessionInfo& session) {
- if (callbacks_.empty()) {
- session_.reset(new PresentationSessionInfo(session));
- } else {
- DCHECK(!session_.get());
- ScopedVector<DefaultSessionMojoCallback> callbacks;
- callbacks.swap(callbacks_);
- for (const auto& callback : callbacks)
- callback->Run(presentation::PresentationSessionInfo::From(session));
- }
-}
-
-void PresentationServiceImpl::DefaultSessionStartContext::Reset() {
- ScopedVector<DefaultSessionMojoCallback> callbacks;
- callbacks.swap(callbacks_);
- for (const auto& callback : callbacks)
- callback->Run(presentation::PresentationSessionInfoPtr());
- session_.reset();
-}
-
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698