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 17ec835b5f3017cb2bf09d6e292e9a2c3798a26b..cde44f7c9881b5dd25e4e0eb524d85454b336f72 100644 |
--- a/content/browser/presentation/presentation_service_impl.cc |
+++ b/content/browser/presentation/presentation_service_impl.cc |
@@ -7,9 +7,7 @@ |
#include <stddef.h> |
#include <stdint.h> |
#include <algorithm> |
-#include <string> |
#include <utility> |
-#include <vector> |
#include "base/logging.h" |
#include "base/stl_util.h" |
@@ -218,8 +216,9 @@ void PresentationServiceImpl::StopListeningForScreenAvailability( |
screen_availability_listeners_.erase(listener_it); |
} |
-void PresentationServiceImpl::StartSession(const mojo::String& presentation_url, |
- const NewSessionCallback& callback) { |
+void PresentationServiceImpl::StartSession( |
+ mojo::Array<mojo::String> presentation_urls, |
+ const NewSessionCallback& callback) { |
DVLOG(2) << "StartSession"; |
if (!delegate_) { |
callback.Run( |
@@ -236,10 +235,15 @@ void PresentationServiceImpl::StartSession(const mojo::String& presentation_url, |
return; |
} |
+ std::vector<std::string> urls(presentation_urls.size()); |
+ std::transform(presentation_urls.begin(), presentation_urls.end(), |
+ urls.begin(), |
+ [](const mojo::String& url) { return url.get(); }); |
+ |
start_session_request_id_ = GetNextRequestSessionId(); |
pending_start_session_cb_.reset(new NewSessionCallbackWrapper(callback)); |
delegate_->StartSession( |
- render_process_id_, render_frame_id_, presentation_url, |
+ render_process_id_, render_frame_id_, urls, |
base::Bind(&PresentationServiceImpl::OnStartSessionSucceeded, |
weak_factory_.GetWeakPtr(), start_session_request_id_), |
base::Bind(&PresentationServiceImpl::OnStartSessionError, |
@@ -247,7 +251,7 @@ void PresentationServiceImpl::StartSession(const mojo::String& presentation_url, |
} |
void PresentationServiceImpl::JoinSession( |
- const mojo::String& presentation_url, |
+ mojo::Array<mojo::String> presentation_urls, |
const mojo::String& presentation_id, |
const NewSessionCallback& callback) { |
DVLOG(2) << "JoinSession"; |
@@ -264,11 +268,13 @@ void PresentationServiceImpl::JoinSession( |
InvokeNewSessionCallbackWithError(callback); |
return; |
} |
+ std::vector<std::string> urls(presentation_urls.size()); |
+ std::transform(presentation_urls.begin(), presentation_urls.end(), |
+ urls.begin(), |
+ [](const mojo::String& url) { return url.get(); }); |
+ |
delegate_->JoinSession( |
- render_process_id_, |
- render_frame_id_, |
- presentation_url, |
- presentation_id, |
+ render_process_id_, render_frame_id_, urls, presentation_id, |
base::Bind(&PresentationServiceImpl::OnJoinSessionSucceeded, |
weak_factory_.GetWeakPtr(), request_session_id), |
base::Bind(&PresentationServiceImpl::OnJoinSessionError, |
@@ -357,19 +363,23 @@ bool PresentationServiceImpl::RunAndEraseJoinSessionMojoCallback( |
return true; |
} |
-void PresentationServiceImpl::SetDefaultPresentationURL( |
- const mojo::String& url) { |
- DVLOG(2) << "SetDefaultPresentationURL"; |
+void PresentationServiceImpl::SetDefaultPresentationUrls( |
+ mojo::Array<mojo::String> presentation_urls) { |
+ DVLOG(2) << "SetDefaultPresentationUrls"; |
if (!delegate_) |
return; |
- const std::string& new_default_url = url.get(); |
- if (default_presentation_url_ == new_default_url) |
+ std::vector<std::string> new_default_urls(presentation_urls.size()); |
+ std::transform(presentation_urls.begin(), presentation_urls.end(), |
+ new_default_urls.begin(), |
+ [](const mojo::String& url) { return url.get(); }); |
+ |
+ if (default_presentation_urls_ == new_default_urls) |
return; |
- default_presentation_url_ = new_default_url; |
- delegate_->SetDefaultPresentationUrl( |
- render_process_id_, render_frame_id_, new_default_url, |
+ default_presentation_urls_ = new_default_urls; |
+ delegate_->SetDefaultPresentationUrls( |
+ render_process_id_, render_frame_id_, new_default_urls, |
base::Bind(&PresentationServiceImpl::OnDefaultPresentationStarted, |
weak_factory_.GetWeakPtr())); |
} |
@@ -523,7 +533,7 @@ void PresentationServiceImpl::Reset() { |
if (delegate_) |
delegate_->Reset(render_process_id_, render_frame_id_); |
- default_presentation_url_.clear(); |
+ default_presentation_urls_.clear(); |
screen_availability_listeners_.clear(); |