Chromium Code Reviews| Index: chrome/browser/media/router/mojo/media_router_mojo_impl.cc |
| diff --git a/chrome/browser/media/router/mojo/media_router_mojo_impl.cc b/chrome/browser/media/router/mojo/media_router_mojo_impl.cc |
| index 91c840db4e345016fb91f90ed364b62f39c13094..d80bc448fa41f78dd28d639973c5b8b5c0782742 100644 |
| --- a/chrome/browser/media/router/mojo/media_router_mojo_impl.cc |
| +++ b/chrome/browser/media/router/mojo/media_router_mojo_impl.cc |
| @@ -176,7 +176,7 @@ void MediaRouterMojoImpl::OnIssue(const IssueInfo& issue) { |
| void MediaRouterMojoImpl::OnSinksReceived( |
| const std::string& media_source, |
| std::vector<mojom::MediaSinkPtr> sinks, |
| - const std::vector<std::string>& origins) { |
| + const std::vector<url::Origin>& origins) { |
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| DVLOG_WITH_INSTANCE(1) << "OnSinksReceived"; |
| auto it = sinks_queries_.find(media_source); |
| @@ -185,16 +185,10 @@ void MediaRouterMojoImpl::OnSinksReceived( |
| return; |
| } |
| - std::vector<GURL> origin_list; |
| + std::vector<url::Origin> origin_list; |
| origin_list.reserve(origins.size()); |
| for (size_t i = 0; i < origins.size(); ++i) { |
|
mark a. foltz
2017/01/24 04:04:17
Is the copying to origin_list necessary any more?
steimel
2017/01/25 19:01:11
Yes, because |origins| is a const std::vector<> an
|
| - GURL origin(origins[i]); |
| - if (!origin.is_valid()) { |
| - LOG(WARNING) << "Received invalid origin: " << origin |
| - << ". Dropping result."; |
| - return; |
| - } |
| - origin_list.push_back(origin); |
| + origin_list.push_back(origins[i]); |
| } |
| std::vector<MediaSink> sink_list; |
| @@ -279,55 +273,36 @@ void MediaRouterMojoImpl::RouteResponseReceived( |
| void MediaRouterMojoImpl::CreateRoute( |
| const MediaSource::Id& source_id, |
| const MediaSink::Id& sink_id, |
| - const GURL& origin, |
| + const url::Origin& origin, |
| content::WebContents* web_contents, |
| const std::vector<MediaRouteResponseCallback>& callbacks, |
| base::TimeDelta timeout, |
| bool incognito) { |
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| - if (!origin.is_valid()) { |
| - DVLOG_WITH_INSTANCE(1) << "Invalid origin: " << origin; |
| - std::unique_ptr<RouteRequestResult> result = RouteRequestResult::FromError( |
| - "Invalid origin", RouteRequestResult::INVALID_ORIGIN); |
| - MediaRouterMojoMetrics::RecordCreateRouteResultCode(result->result_code()); |
| - RunRouteRequestCallbacks(std::move(result), callbacks); |
| - return; |
| - } |
| - |
| SetWakeReason(MediaRouteProviderWakeReason::CREATE_ROUTE); |
| int tab_id = SessionTabHelper::IdForTab(web_contents); |
| RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoCreateRoute, |
| - base::Unretained(this), source_id, sink_id, |
| - origin.is_empty() ? "" : origin.spec(), tab_id, |
| - callbacks, timeout, incognito)); |
| + base::Unretained(this), source_id, sink_id, origin, |
| + tab_id, callbacks, timeout, incognito)); |
| } |
| void MediaRouterMojoImpl::JoinRoute( |
| const MediaSource::Id& source_id, |
| const std::string& presentation_id, |
| - const GURL& origin, |
| + const url::Origin& origin, |
| content::WebContents* web_contents, |
| const std::vector<MediaRouteResponseCallback>& callbacks, |
| base::TimeDelta timeout, |
| bool incognito) { |
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| - std::unique_ptr<RouteRequestResult> error_result; |
| - if (!origin.is_valid()) { |
| - DVLOG_WITH_INSTANCE(1) << "Invalid origin: " << origin; |
| - error_result = RouteRequestResult::FromError( |
| - "Invalid origin", RouteRequestResult::INVALID_ORIGIN); |
| - } else if (!HasJoinableRoute()) { |
| + if (!HasJoinableRoute()) { |
| DVLOG_WITH_INSTANCE(1) << "No joinable routes"; |
| - error_result = RouteRequestResult::FromError( |
| + std::unique_ptr<RouteRequestResult> result = RouteRequestResult::FromError( |
| "Route not found", RouteRequestResult::ROUTE_NOT_FOUND); |
| - } |
| - |
| - if (error_result) { |
| - MediaRouterMojoMetrics::RecordJoinRouteResultCode( |
| - error_result->result_code()); |
| - RunRouteRequestCallbacks(std::move(error_result), callbacks); |
| + MediaRouterMojoMetrics::RecordJoinRouteResultCode(result->result_code()); |
| + RunRouteRequestCallbacks(std::move(result), callbacks); |
| return; |
| } |
| @@ -335,35 +310,24 @@ void MediaRouterMojoImpl::JoinRoute( |
| int tab_id = SessionTabHelper::IdForTab(web_contents); |
| RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoJoinRoute, |
| base::Unretained(this), source_id, presentation_id, |
| - origin.is_empty() ? "" : origin.spec(), tab_id, |
| - callbacks, timeout, incognito)); |
| + origin, tab_id, callbacks, timeout, incognito)); |
| } |
| void MediaRouterMojoImpl::ConnectRouteByRouteId( |
| const MediaSource::Id& source_id, |
| const MediaRoute::Id& route_id, |
| - const GURL& origin, |
| + const url::Origin& origin, |
| content::WebContents* web_contents, |
| const std::vector<MediaRouteResponseCallback>& callbacks, |
| base::TimeDelta timeout, |
| bool incognito) { |
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| - if (!origin.is_valid()) { |
| - DVLOG_WITH_INSTANCE(1) << "Invalid origin: " << origin; |
| - std::unique_ptr<RouteRequestResult> result = RouteRequestResult::FromError( |
| - "Invalid origin", RouteRequestResult::INVALID_ORIGIN); |
| - MediaRouterMojoMetrics::RecordJoinRouteResultCode(result->result_code()); |
| - RunRouteRequestCallbacks(std::move(result), callbacks); |
| - return; |
| - } |
| - |
| SetWakeReason(MediaRouteProviderWakeReason::CONNECT_ROUTE_BY_ROUTE_ID); |
| int tab_id = SessionTabHelper::IdForTab(web_contents); |
| RunOrDefer(base::Bind(&MediaRouterMojoImpl::DoConnectRouteByRouteId, |
| - base::Unretained(this), source_id, route_id, |
| - origin.is_empty() ? "" : origin.spec(), tab_id, |
| - callbacks, timeout, incognito)); |
| + base::Unretained(this), source_id, route_id, origin, |
| + tab_id, callbacks, timeout, incognito)); |
| } |
| void MediaRouterMojoImpl::TerminateRoute(const MediaRoute::Id& route_id) { |
| @@ -459,7 +423,8 @@ bool MediaRouterMojoImpl::RegisterMediaSinksObserver( |
| // |observer| can be immediately notified with an empty list. |
| sinks_query->observers.AddObserver(observer); |
| if (availability_ == mojom::MediaRouter::SinkAvailability::UNAVAILABLE) { |
| - observer->OnSinksUpdated(std::vector<MediaSink>(), std::vector<GURL>()); |
| + observer->OnSinksUpdated(std::vector<MediaSink>(), |
| + std::vector<url::Origin>()); |
| } else { |
| // Need to call MRPM to start observing sinks if the query is new. |
| if (new_query) { |
| @@ -602,7 +567,7 @@ void MediaRouterMojoImpl::UnregisterRouteMessageObserver( |
| void MediaRouterMojoImpl::DoCreateRoute( |
| const MediaSource::Id& source_id, |
| const MediaSink::Id& sink_id, |
| - const std::string& origin, |
| + const url::Origin& origin, |
| int tab_id, |
| const std::vector<MediaRouteResponseCallback>& callbacks, |
| base::TimeDelta timeout, |
| @@ -610,7 +575,6 @@ void MediaRouterMojoImpl::DoCreateRoute( |
| std::string presentation_id = MediaRouterBase::CreatePresentationId(); |
| DVLOG_WITH_INSTANCE(1) << "DoCreateRoute " << source_id << "=>" << sink_id |
| << ", presentation ID: " << presentation_id; |
| - |
| media_route_provider_->CreateRoute( |
| source_id, sink_id, presentation_id, origin, tab_id, timeout, incognito, |
| base::Bind(&MediaRouterMojoImpl::RouteResponseReceived, |
| @@ -621,7 +585,7 @@ void MediaRouterMojoImpl::DoCreateRoute( |
| void MediaRouterMojoImpl::DoJoinRoute( |
| const MediaSource::Id& source_id, |
| const std::string& presentation_id, |
| - const std::string& origin, |
| + const url::Origin& origin, |
| int tab_id, |
| const std::vector<MediaRouteResponseCallback>& callbacks, |
| base::TimeDelta timeout, |
| @@ -639,7 +603,7 @@ void MediaRouterMojoImpl::DoJoinRoute( |
| void MediaRouterMojoImpl::DoConnectRouteByRouteId( |
| const MediaSource::Id& source_id, |
| const MediaRoute::Id& route_id, |
| - const std::string& origin, |
| + const url::Origin& origin, |
| int tab_id, |
| const std::vector<MediaRouteResponseCallback>& callbacks, |
| base::TimeDelta timeout, |