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

Side by Side Diff: chrome/browser/media/android/router/media_router_android.cc

Issue 2627463003: Convert MediaRouter mojom apis to intake url::Origin objects instead of strings (Closed)
Patch Set: Add missing dependency for extensions_renderer_resources target Created 3 years, 10 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 "chrome/browser/media/android/router/media_router_android.h" 5 #include "chrome/browser/media/android/router/media_router_android.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 for (const auto& route : active_routes_) { 68 for (const auto& route : active_routes_) {
69 if (route.media_source().id() == source_id) 69 if (route.media_source().id() == source_id)
70 return &route; 70 return &route;
71 } 71 }
72 return nullptr; 72 return nullptr;
73 } 73 }
74 74
75 void MediaRouterAndroid::CreateRoute( 75 void MediaRouterAndroid::CreateRoute(
76 const MediaSource::Id& source_id, 76 const MediaSource::Id& source_id,
77 const MediaSink::Id& sink_id, 77 const MediaSink::Id& sink_id,
78 const GURL& origin, 78 const url::Origin& origin,
79 content::WebContents* web_contents, 79 content::WebContents* web_contents,
80 const std::vector<MediaRouteResponseCallback>& callbacks, 80 const std::vector<MediaRouteResponseCallback>& callbacks,
81 base::TimeDelta timeout, 81 base::TimeDelta timeout,
82 bool incognito) { 82 bool incognito) {
83 // TODO(avayvod): Implement timeouts (crbug.com/583036). 83 // TODO(avayvod): Implement timeouts (crbug.com/583036).
84 if (!origin.is_valid()) {
85 std::unique_ptr<RouteRequestResult> result = RouteRequestResult::FromError(
86 "Invalid origin", RouteRequestResult::INVALID_ORIGIN);
87 for (const MediaRouteResponseCallback& callback : callbacks)
88 callback.Run(*result);
89 return;
90 }
91
92 std::string presentation_id = MediaRouterBase::CreatePresentationId(); 84 std::string presentation_id = MediaRouterBase::CreatePresentationId();
93 85
94 int tab_id = -1; 86 int tab_id = -1;
95 TabAndroid* tab = web_contents 87 TabAndroid* tab = web_contents
96 ? TabAndroid::FromWebContents(web_contents) : nullptr; 88 ? TabAndroid::FromWebContents(web_contents) : nullptr;
97 if (tab) 89 if (tab)
98 tab_id = tab->GetAndroidId(); 90 tab_id = tab->GetAndroidId();
99 91
100 bool is_incognito = web_contents 92 bool is_incognito = web_contents
101 && web_contents->GetBrowserContext()->IsOffTheRecord(); 93 && web_contents->GetBrowserContext()->IsOffTheRecord();
102 94
103 int route_request_id = 95 int route_request_id =
104 route_requests_.Add(base::MakeUnique<MediaRouteRequest>( 96 route_requests_.Add(base::MakeUnique<MediaRouteRequest>(
105 MediaSource(source_id), presentation_id, callbacks)); 97 MediaSource(source_id), presentation_id, callbacks));
106 98
107 JNIEnv* env = base::android::AttachCurrentThread(); 99 JNIEnv* env = base::android::AttachCurrentThread();
108 ScopedJavaLocalRef<jstring> jsource_id = 100 ScopedJavaLocalRef<jstring> jsource_id =
109 base::android::ConvertUTF8ToJavaString(env, source_id); 101 base::android::ConvertUTF8ToJavaString(env, source_id);
110 ScopedJavaLocalRef<jstring> jsink_id = 102 ScopedJavaLocalRef<jstring> jsink_id =
111 base::android::ConvertUTF8ToJavaString(env, sink_id); 103 base::android::ConvertUTF8ToJavaString(env, sink_id);
112 ScopedJavaLocalRef<jstring> jpresentation_id = 104 ScopedJavaLocalRef<jstring> jpresentation_id =
113 base::android::ConvertUTF8ToJavaString(env, presentation_id); 105 base::android::ConvertUTF8ToJavaString(env, presentation_id);
106 // TODO(crbug.com/685358): Unique origins should not be considered
107 // same-origin.
114 ScopedJavaLocalRef<jstring> jorigin = 108 ScopedJavaLocalRef<jstring> jorigin =
115 base::android::ConvertUTF8ToJavaString(env, origin.spec()); 109 base::android::ConvertUTF8ToJavaString(env, origin.GetURL().spec());
116 110
117 Java_ChromeMediaRouter_createRoute(env, java_media_router_, jsource_id, 111 Java_ChromeMediaRouter_createRoute(env, java_media_router_, jsource_id,
118 jsink_id, jpresentation_id, jorigin, 112 jsink_id, jpresentation_id, jorigin,
119 tab_id, is_incognito, route_request_id); 113 tab_id, is_incognito, route_request_id);
120 } 114 }
121 115
122 void MediaRouterAndroid::ConnectRouteByRouteId( 116 void MediaRouterAndroid::ConnectRouteByRouteId(
123 const MediaSource::Id& source, 117 const MediaSource::Id& source,
124 const MediaRoute::Id& route_id, 118 const MediaRoute::Id& route_id,
125 const GURL& origin, 119 const url::Origin& origin,
126 content::WebContents* web_contents, 120 content::WebContents* web_contents,
127 const std::vector<MediaRouteResponseCallback>& callbacks, 121 const std::vector<MediaRouteResponseCallback>& callbacks,
128 base::TimeDelta timeout, 122 base::TimeDelta timeout,
129 bool incognito) { 123 bool incognito) {
130 NOTIMPLEMENTED(); 124 NOTIMPLEMENTED();
131 } 125 }
132 126
133 void MediaRouterAndroid::JoinRoute( 127 void MediaRouterAndroid::JoinRoute(
134 const MediaSource::Id& source_id, 128 const MediaSource::Id& source_id,
135 const std::string& presentation_id, 129 const std::string& presentation_id,
136 const GURL& origin, 130 const url::Origin& origin,
137 content::WebContents* web_contents, 131 content::WebContents* web_contents,
138 const std::vector<MediaRouteResponseCallback>& callbacks, 132 const std::vector<MediaRouteResponseCallback>& callbacks,
139 base::TimeDelta timeout, 133 base::TimeDelta timeout,
140 bool incognito) { 134 bool incognito) {
141 // TODO(avayvod): Implement timeouts (crbug.com/583036). 135 // TODO(avayvod): Implement timeouts (crbug.com/583036).
142 if (!origin.is_valid()) {
143 std::unique_ptr<RouteRequestResult> result = RouteRequestResult::FromError(
144 "Invalid origin", RouteRequestResult::INVALID_ORIGIN);
145 for (const MediaRouteResponseCallback& callback : callbacks)
146 callback.Run(*result);
147 return;
148 }
149
150 int tab_id = -1; 136 int tab_id = -1;
151 TabAndroid* tab = web_contents 137 TabAndroid* tab = web_contents
152 ? TabAndroid::FromWebContents(web_contents) : nullptr; 138 ? TabAndroid::FromWebContents(web_contents) : nullptr;
153 if (tab) 139 if (tab)
154 tab_id = tab->GetAndroidId(); 140 tab_id = tab->GetAndroidId();
155 141
156 DVLOG(2) << "JoinRoute: " << source_id << ", " << presentation_id << ", " 142 DVLOG(2) << "JoinRoute: " << source_id << ", " << presentation_id << ", "
157 << origin.spec() << ", " << tab_id; 143 << origin.GetURL().spec() << ", " << tab_id;
158 144
159 int request_id = route_requests_.Add(base::MakeUnique<MediaRouteRequest>( 145 int request_id = route_requests_.Add(base::MakeUnique<MediaRouteRequest>(
160 MediaSource(source_id), presentation_id, callbacks)); 146 MediaSource(source_id), presentation_id, callbacks));
161 147
162 JNIEnv* env = base::android::AttachCurrentThread(); 148 JNIEnv* env = base::android::AttachCurrentThread();
163 ScopedJavaLocalRef<jstring> jsource_id = 149 ScopedJavaLocalRef<jstring> jsource_id =
164 base::android::ConvertUTF8ToJavaString(env, source_id); 150 base::android::ConvertUTF8ToJavaString(env, source_id);
165 ScopedJavaLocalRef<jstring> jpresentation_id = 151 ScopedJavaLocalRef<jstring> jpresentation_id =
166 base::android::ConvertUTF8ToJavaString(env, presentation_id); 152 base::android::ConvertUTF8ToJavaString(env, presentation_id);
167 ScopedJavaLocalRef<jstring> jorigin = 153 ScopedJavaLocalRef<jstring> jorigin =
168 base::android::ConvertUTF8ToJavaString(env, origin.spec()); 154 base::android::ConvertUTF8ToJavaString(env, origin.GetURL().spec());
169 155
170 Java_ChromeMediaRouter_joinRoute(env, java_media_router_, jsource_id, 156 Java_ChromeMediaRouter_joinRoute(env, java_media_router_, jsource_id,
171 jpresentation_id, jorigin, tab_id, 157 jpresentation_id, jorigin, tab_id,
172 request_id); 158 request_id);
173 } 159 }
174 160
175 void MediaRouterAndroid::TerminateRoute(const MediaRoute::Id& route_id) { 161 void MediaRouterAndroid::TerminateRoute(const MediaRoute::Id& route_id) {
176 JNIEnv* env = base::android::AttachCurrentThread(); 162 JNIEnv* env = base::android::AttachCurrentThread();
177 ScopedJavaLocalRef<jstring> jroute_id = 163 ScopedJavaLocalRef<jstring> jroute_id =
178 base::android::ConvertUTF8ToJavaString(env, route_id); 164 base::android::ConvertUTF8ToJavaString(env, route_id);
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 MediaSink(ConvertJavaStringToUTF8(env, jsink_urn.obj()), 327 MediaSink(ConvertJavaStringToUTF8(env, jsink_urn.obj()),
342 ConvertJavaStringToUTF8(env, jsink_name.obj()), 328 ConvertJavaStringToUTF8(env, jsink_name.obj()),
343 MediaSink::GENERIC)); 329 MediaSink::GENERIC));
344 } 330 }
345 331
346 std::string source_urn = ConvertJavaStringToUTF8(env, jsource_urn); 332 std::string source_urn = ConvertJavaStringToUTF8(env, jsource_urn);
347 auto it = sinks_observers_.find(source_urn); 333 auto it = sinks_observers_.find(source_urn);
348 if (it != sinks_observers_.end()) { 334 if (it != sinks_observers_.end()) {
349 // TODO(imcheng): Pass origins to OnSinksUpdated (crbug.com/594858). 335 // TODO(imcheng): Pass origins to OnSinksUpdated (crbug.com/594858).
350 for (auto& observer : *it->second) 336 for (auto& observer : *it->second)
351 observer.OnSinksUpdated(sinks_converted, std::vector<GURL>()); 337 observer.OnSinksUpdated(sinks_converted, std::vector<url::Origin>());
352 } 338 }
353 } 339 }
354 340
355 void MediaRouterAndroid::OnRouteCreated( 341 void MediaRouterAndroid::OnRouteCreated(
356 JNIEnv* env, 342 JNIEnv* env,
357 const JavaParamRef<jobject>& obj, 343 const JavaParamRef<jobject>& obj,
358 const JavaParamRef<jstring>& jmedia_route_id, 344 const JavaParamRef<jstring>& jmedia_route_id,
359 const JavaParamRef<jstring>& jsink_id, 345 const JavaParamRef<jstring>& jsink_id,
360 jint jroute_request_id, 346 jint jroute_request_id,
361 jboolean jis_local) { 347 jboolean jis_local) {
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 return; 438 return;
453 439
454 std::vector<RouteMessage> messages(1); 440 std::vector<RouteMessage> messages(1);
455 messages.front().type = RouteMessage::TEXT; 441 messages.front().type = RouteMessage::TEXT;
456 messages.front().text = ConvertJavaStringToUTF8(env, jmessage); 442 messages.front().text = ConvertJavaStringToUTF8(env, jmessage);
457 for (auto& observer : *it->second.get()) 443 for (auto& observer : *it->second.get())
458 observer.OnMessagesReceived(messages); 444 observer.OnMessagesReceived(messages);
459 } 445 }
460 446
461 } // namespace media_router 447 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698