| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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_ |
| OLD | NEW |