| Index: chrome/browser/media/router/presentation_service_delegate_impl.cc
|
| diff --git a/chrome/browser/media/router/presentation_service_delegate_impl.cc b/chrome/browser/media/router/presentation_service_delegate_impl.cc
|
| index 99ef1d08981ba13b9ccf601034b14644095d305f..415974da2ed01e52df551f1e537c9334d256e409 100644
|
| --- a/chrome/browser/media/router/presentation_service_delegate_impl.cc
|
| +++ b/chrome/browser/media/router/presentation_service_delegate_impl.cc
|
| @@ -324,10 +324,9 @@ void PresentationFrame::ListenForSessionMessages(
|
| MediaSource PresentationFrame::GetMediaSourceFromListener(
|
| content::PresentationScreenAvailabilityListener* listener) const {
|
| // If the default presentation URL is empty then fall back to tab mirroring.
|
| - std::string availability_url(listener->GetAvailabilityUrl());
|
| - return availability_url.empty()
|
| + return listener->GetAvailabilityUrl().is_empty()
|
| ? MediaSourceForTab(SessionTabHelper::IdForTab(web_contents_))
|
| - : MediaSourceForPresentationUrl(availability_url);
|
| + : MediaSourceForPresentationUrl(listener->GetAvailabilityUrl());
|
| }
|
|
|
| // Used by PresentationServiceDelegateImpl to manage PresentationFrames.
|
| @@ -359,7 +358,7 @@ class PresentationFrameManager {
|
| // tab WebContents.
|
| void SetDefaultPresentationUrl(
|
| const RenderFrameHostId& render_frame_host_id,
|
| - const std::string& default_presentation_url,
|
| + const GURL& default_presentation_url,
|
| const content::PresentationSessionStartedCallback& callback);
|
| void AddDelegateObserver(const RenderFrameHostId& render_frame_host_id,
|
| DelegateObserver* observer);
|
| @@ -538,18 +537,19 @@ void PresentationFrameManager::ListenForSessionMessages(
|
|
|
| void PresentationFrameManager::SetDefaultPresentationUrl(
|
| const RenderFrameHostId& render_frame_host_id,
|
| - const std::string& default_presentation_url,
|
| + const GURL& default_presentation_url,
|
| const content::PresentationSessionStartedCallback& callback) {
|
| if (!IsMainFrame(render_frame_host_id))
|
| return;
|
|
|
| - if (default_presentation_url.empty()) {
|
| + if (default_presentation_url.is_empty()) {
|
| ClearDefaultPresentationRequest();
|
| } else {
|
| DCHECK(!callback.is_null());
|
| GURL frame_url(GetLastCommittedURLForFrame(render_frame_host_id));
|
| PresentationRequest request(render_frame_host_id,
|
| - {default_presentation_url}, frame_url);
|
| + std::vector<GURL>({default_presentation_url}),
|
| + frame_url);
|
| default_presentation_started_callback_ = callback;
|
| SetDefaultPresentationRequest(request);
|
| }
|
| @@ -715,12 +715,12 @@ void PresentationServiceDelegateImpl::Reset(int render_process_id,
|
| void PresentationServiceDelegateImpl::SetDefaultPresentationUrls(
|
| int render_process_id,
|
| int render_frame_id,
|
| - const std::vector<std::string>& default_presentation_urls,
|
| + const std::vector<GURL>& default_presentation_urls,
|
| const content::PresentationSessionStartedCallback& callback) {
|
| RenderFrameHostId render_frame_host_id(render_process_id, render_frame_id);
|
| if (default_presentation_urls.empty()) {
|
| - frame_manager_->SetDefaultPresentationUrl(render_frame_host_id,
|
| - std::string(), callback);
|
| + frame_manager_->SetDefaultPresentationUrl(render_frame_host_id, GURL(),
|
| + callback);
|
| } else {
|
| // TODO(crbug.com/627655): Handle multiple URLs.
|
| frame_manager_->SetDefaultPresentationUrl(
|
| @@ -770,7 +770,7 @@ void PresentationServiceDelegateImpl::OnStartSessionSucceeded(
|
| void PresentationServiceDelegateImpl::StartSession(
|
| int render_process_id,
|
| int render_frame_id,
|
| - const std::vector<std::string>& presentation_urls,
|
| + const std::vector<GURL>& presentation_urls,
|
| const content::PresentationSessionStartedCallback& success_cb,
|
| const content::PresentationSessionErrorCallback& error_cb) {
|
| if (presentation_urls.empty()) {
|
| @@ -780,8 +780,9 @@ void PresentationServiceDelegateImpl::StartSession(
|
| }
|
|
|
| // TODO(crbug.com/627655): Handle multiple URLs.
|
| - const std::string& presentation_url = presentation_urls[0];
|
| - if (presentation_url.empty() || !IsValidPresentationUrl(presentation_url)) {
|
| + const GURL& presentation_url = presentation_urls[0];
|
| + if (presentation_url.is_empty() ||
|
| + !IsValidPresentationUrl(presentation_url)) {
|
| error_cb.Run(content::PresentationError(content::PRESENTATION_ERROR_UNKNOWN,
|
| "Invalid presentation arguments."));
|
| return;
|
| @@ -809,7 +810,7 @@ void PresentationServiceDelegateImpl::StartSession(
|
| void PresentationServiceDelegateImpl::JoinSession(
|
| int render_process_id,
|
| int render_frame_id,
|
| - const std::vector<std::string>& presentation_urls,
|
| + const std::vector<GURL>& presentation_urls,
|
| const std::string& presentation_id,
|
| const content::PresentationSessionStartedCallback& success_cb,
|
| const content::PresentationSessionErrorCallback& error_cb) {
|
| @@ -820,7 +821,7 @@ void PresentationServiceDelegateImpl::JoinSession(
|
| }
|
|
|
| // TODO(crbug.com/627655): Handle multiple URLs.
|
| - const std::string& presentation_url = presentation_urls[0];
|
| + const GURL& presentation_url = presentation_urls[0];
|
| bool incognito = web_contents_->GetBrowserContext()->IsOffTheRecord();
|
| std::vector<MediaRouteResponseCallback> route_response_callbacks;
|
| route_response_callbacks.push_back(base::Bind(
|
|
|