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

Side by Side Diff: chrome/browser/ui/webui/media_router/media_router_ui.h

Issue 2068593002: [Media Router] Assign each route a current cast mode if possible (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2743
Patch Set: Created 4 years, 6 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 #ifndef CHROME_BROWSER_UI_WEBUI_MEDIA_ROUTER_MEDIA_ROUTER_UI_H_ 5 #ifndef CHROME_BROWSER_UI_WEBUI_MEDIA_ROUTER_MEDIA_ROUTER_UI_H_
6 #define CHROME_BROWSER_UI_WEBUI_MEDIA_ROUTER_MEDIA_ROUTER_UI_H_ 6 #define CHROME_BROWSER_UI_WEBUI_MEDIA_ROUTER_MEDIA_ROUTER_UI_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 std::string GetTruncatedPresentationRequestSourceName() const; 130 std::string GetTruncatedPresentationRequestSourceName() const;
131 bool HasPendingRouteRequest() const { 131 bool HasPendingRouteRequest() const {
132 return current_route_request_id_ != -1; 132 return current_route_request_id_ != -1;
133 } 133 }
134 const std::vector<MediaSinkWithCastModes>& sinks() const { return sinks_; } 134 const std::vector<MediaSinkWithCastModes>& sinks() const { return sinks_; }
135 const std::vector<MediaRoute>& routes() const { return routes_; } 135 const std::vector<MediaRoute>& routes() const { return routes_; }
136 const std::vector<MediaRoute::Id>& joinable_route_ids() const { 136 const std::vector<MediaRoute::Id>& joinable_route_ids() const {
137 return joinable_route_ids_; 137 return joinable_route_ids_;
138 } 138 }
139 const std::set<MediaCastMode>& cast_modes() const { return cast_modes_; } 139 const std::set<MediaCastMode>& cast_modes() const { return cast_modes_; }
140 const std::unordered_map<MediaRoute::Id, MediaCastMode>& current_cast_modes()
141 const {
142 return current_cast_modes_;
143 }
140 const content::WebContents* initiator() const { return initiator_; } 144 const content::WebContents* initiator() const { return initiator_; }
141 145
142 // Marked virtual for tests. 146 // Marked virtual for tests.
143 virtual const std::string& GetRouteProviderExtensionId() const; 147 virtual const std::string& GetRouteProviderExtensionId() const;
144 148
145 // Called to track UI metrics. 149 // Called to track UI metrics.
146 void SetUIInitializationTimer(const base::Time& start_time); 150 void SetUIInitializationTimer(const base::Time& start_time);
147 void OnUIInitiallyLoaded(); 151 void OnUIInitiallyLoaded();
148 void OnUIInitialDataReceived(); 152 void OnUIInitialDataReceived();
149 153
150 void UpdateMaxDialogHeight(int height); 154 void UpdateMaxDialogHeight(int height);
151 155
152 void InitForTest(MediaRouter* router, 156 void InitForTest(MediaRouter* router,
153 content::WebContents* initiator, 157 content::WebContents* initiator,
154 MediaRouterWebUIMessageHandler* handler); 158 MediaRouterWebUIMessageHandler* handler);
155 159
156 private: 160 private:
157 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, SortedSinks); 161 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, SortedSinks);
158 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, 162 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
159 UIMediaRoutesObserverFiltersNonDisplayRoutes); 163 UIMediaRoutesObserverFiltersNonDisplayRoutes);
160 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, 164 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
161 UIMediaRoutesObserverFiltersNonDisplayJoinableRoutes); 165 UIMediaRoutesObserverFiltersNonDisplayJoinableRoutes);
166 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
167 UIMediaRoutesObserverAssignsCurrentCastModes);
168 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
169 UIMediaRoutesObserverSkipsUnavailableCastModes);
162 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, GetExtensionNameExtensionPresent); 170 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, GetExtensionNameExtensionPresent);
163 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, 171 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
164 GetExtensionNameEmptyWhenNotInstalled); 172 GetExtensionNameEmptyWhenNotInstalled);
165 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, 173 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
166 GetExtensionNameEmptyWhenNotExtensionURL); 174 GetExtensionNameEmptyWhenNotExtensionURL);
167 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, 175 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest,
168 RouteCreationTimeoutForPresentation); 176 RouteCreationTimeoutForPresentation);
169 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, RouteRequestFromIncognito); 177 FRIEND_TEST_ALL_PREFIXES(MediaRouterUITest, RouteRequestFromIncognito);
170 178
171 class UIIssuesObserver; 179 class UIIssuesObserver;
172 180
173 class UIMediaRoutesObserver : public MediaRoutesObserver { 181 class UIMediaRoutesObserver : public MediaRoutesObserver {
174 public: 182 public:
175 using RoutesUpdatedCallback = 183 using RoutesUpdatedCallback =
176 base::Callback<void(const std::vector<MediaRoute>&, 184 base::Callback<void(const std::vector<MediaRoute>&,
177 const std::vector<MediaRoute::Id>&)>; 185 const std::vector<MediaRoute::Id>&)>;
178 UIMediaRoutesObserver(MediaRouter* router, const MediaSource::Id& source_id, 186 UIMediaRoutesObserver(MediaRouter* router,
187 const MediaSource::Id& source_id,
179 const RoutesUpdatedCallback& callback); 188 const RoutesUpdatedCallback& callback);
180 ~UIMediaRoutesObserver() override; 189 ~UIMediaRoutesObserver() override;
181 190
182 // MediaRoutesObserver 191 // MediaRoutesObserver
183 void OnRoutesUpdated( 192 void OnRoutesUpdated(
184 const std::vector<MediaRoute>& routes, 193 const std::vector<MediaRoute>& routes,
185 const std::vector<MediaRoute::Id>& joinable_route_ids) override; 194 const std::vector<MediaRoute::Id>& joinable_route_ids) override;
186 195
187 private: 196 private:
188 // Callback to the owning MediaRouterUI instance. 197 // Callback to the owning MediaRouterUI instance.
189 RoutesUpdatedCallback callback_; 198 RoutesUpdatedCallback callback_;
190 199
191 DISALLOW_COPY_AND_ASSIGN(UIMediaRoutesObserver); 200 DISALLOW_COPY_AND_ASSIGN(UIMediaRoutesObserver);
192 }; 201 };
193 202
194 static std::string GetExtensionName(const GURL& url, 203 static std::string GetExtensionName(const GURL& url,
195 extensions::ExtensionRegistry* registry); 204 extensions::ExtensionRegistry* registry);
196 205
197 // QueryResultManager::Observer 206 // QueryResultManager::Observer
198 void OnResultsUpdated( 207 void OnResultsUpdated(
199 const std::vector<MediaSinkWithCastModes>& sinks) override; 208 const std::vector<MediaSinkWithCastModes>& sinks) override;
200 209
201 // Called by |issues_observer_| when the top issue has changed. 210 // Called by |issues_observer_| when the top issue has changed.
202 // If the UI is already initialized, notifies |handler_| to update the UI. 211 // If the UI is already initialized, notifies |handler_| to update the UI.
203 // Ignored if the UI is not yet initialized. 212 // Ignored if the UI is not yet initialized.
204 void SetIssue(const Issue* issue); 213 void SetIssue(const Issue* issue);
205 214
206 // Called by |routes_observer_| when the set of active routes has changed. 215 // Called by |routes_observer_| when the set of active routes has changed.
207 void OnRoutesUpdated(const std::vector<MediaRoute>& routes, 216 void OnRoutesUpdated(const std::vector<MediaRoute>& routes,
208 const std::vector<MediaRoute::Id>& joinable_route_ids); 217 const std::vector<MediaRoute::Id>& joinable_route_ids);
209 218
210 // Callback passed to MediaRouter to receive response to route creation 219 // Callback passed to MediaRouter to receive response to route creation
211 // requests. 220 // requests.
212 void OnRouteResponseReceived( 221 void OnRouteResponseReceived(
213 int route_request_id, 222 int route_request_id,
214 const MediaSink::Id& sink_id, 223 const MediaSink::Id& sink_id,
215 MediaCastMode cast_mode, 224 MediaCastMode cast_mode,
216 const base::string16& presentation_request_source_name, 225 const base::string16& presentation_request_source_name,
217 const RouteRequestResult& result); 226 const RouteRequestResult& result);
218 227
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 int route_request_counter_; 290 int route_request_counter_;
282 291
283 // Used for locale-aware sorting of sinks by name. Set during |InitCommon()| 292 // Used for locale-aware sorting of sinks by name. Set during |InitCommon()|
284 // using the current locale. Set to null 293 // using the current locale. Set to null
285 std::unique_ptr<icu::Collator> collator_; 294 std::unique_ptr<icu::Collator> collator_;
286 295
287 std::vector<MediaSinkWithCastModes> sinks_; 296 std::vector<MediaSinkWithCastModes> sinks_;
288 std::vector<MediaRoute> routes_; 297 std::vector<MediaRoute> routes_;
289 std::vector<MediaRoute::Id> joinable_route_ids_; 298 std::vector<MediaRoute::Id> joinable_route_ids_;
290 CastModeSet cast_modes_; 299 CastModeSet cast_modes_;
300 std::unordered_map<MediaRoute::Id, MediaCastMode> current_cast_modes_;
291 301
292 std::unique_ptr<QueryResultManager> query_result_manager_; 302 std::unique_ptr<QueryResultManager> query_result_manager_;
293 303
294 // If set, then the result of the next presentation route request will 304 // If set, then the result of the next presentation route request will
295 // be handled by this object. 305 // be handled by this object.
296 std::unique_ptr<CreatePresentationConnectionRequest> create_session_request_; 306 std::unique_ptr<CreatePresentationConnectionRequest> create_session_request_;
297 307
298 // Set to the presentation request corresponding to the presentation cast 308 // Set to the presentation request corresponding to the presentation cast
299 // mode, if supported. Otherwise set to nullptr. 309 // mode, if supported. Otherwise set to nullptr.
300 std::unique_ptr<PresentationRequest> presentation_request_; 310 std::unique_ptr<PresentationRequest> presentation_request_;
(...skipping 19 matching lines...) Expand all
320 // NOTE: Weak pointers must be invalidated before all other member variables. 330 // NOTE: Weak pointers must be invalidated before all other member variables.
321 // Therefore |weak_factory_| must be placed at the end. 331 // Therefore |weak_factory_| must be placed at the end.
322 base::WeakPtrFactory<MediaRouterUI> weak_factory_; 332 base::WeakPtrFactory<MediaRouterUI> weak_factory_;
323 333
324 DISALLOW_COPY_AND_ASSIGN(MediaRouterUI); 334 DISALLOW_COPY_AND_ASSIGN(MediaRouterUI);
325 }; 335 };
326 336
327 } // namespace media_router 337 } // namespace media_router
328 338
329 #endif // CHROME_BROWSER_UI_WEBUI_MEDIA_ROUTER_MEDIA_ROUTER_UI_H_ 339 #endif // CHROME_BROWSER_UI_WEBUI_MEDIA_ROUTER_MEDIA_ROUTER_UI_H_
OLDNEW
« no previous file with comments | « chrome/browser/resources/media_router/media_router_data.js ('k') | chrome/browser/ui/webui/media_router/media_router_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698