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

Unified Diff: chrome/browser/media/router/media_router_base.h

Issue 2463843003: [Presentation API] Media Router: queue PresentationConnectionStateChanged events fired before callb… (Closed)
Patch Set: Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/router/media_router_base.h
diff --git a/chrome/browser/media/router/media_router_base.h b/chrome/browser/media/router/media_router_base.h
index 45c0f261c24156c24a2fd1b0b1e1d1e23d5d76f6..430e3b60b8fd5f84065ec86d67c26607474088d1 100644
--- a/chrome/browser/media/router/media_router_base.h
+++ b/chrome/browser/media/router/media_router_base.h
@@ -39,6 +39,8 @@ class MediaRouterBase : public MediaRouter {
PresentationConnectionStateChangedCallbackRemoved);
FRIEND_TEST_ALL_PREFIXES(MediaRouterBaseTest, CreatePresentationIds);
FRIEND_TEST_ALL_PREFIXES(MediaRouterBaseTest, NotifyCallbacks);
+ FRIEND_TEST_ALL_PREFIXES(MediaRouterBaseTest,
+ NotifyCallbacksPendingStateChange);
MediaRouterBase();
@@ -52,6 +54,9 @@ class MediaRouterBase : public MediaRouter {
const MediaRoute::Id& route_id,
content::PresentationConnectionCloseReason reason,
const std::string& message);
+ void NotifyPresentationConnectionStateChange(
+ const MediaRoute::Id& route_id,
+ const content::PresentationConnectionStateChangeInfo& info);
// Returns true when there is at least one MediaRoute that can be returned by
// JoinRoute().
@@ -65,6 +70,11 @@ class MediaRouterBase : public MediaRouter {
std::unique_ptr<PresentationConnectionStateChangedCallbacks>>
presentation_connection_state_callbacks_;
+ // Stores ConnectionStateChange events fired before
+ // PresentationConnectionStateChangedCallback is registered.
+ std::map<MediaRoute::Id, content::PresentationConnectionStateChangeInfo>
+ queued_state_changes_;
+
private:
friend class MediaRouterFactory;
friend class MediaRouterMojoTest;
@@ -81,7 +91,6 @@ class MediaRouterBase : public MediaRouter {
// KeyedService
void Shutdown() override;
-
std::unique_ptr<InternalMediaRoutesObserver> internal_routes_observer_;
bool initialized_;
« no previous file with comments | « no previous file | chrome/browser/media/router/media_router_base.cc » ('j') | chrome/browser/media/router/media_router_base.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698