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

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

Issue 1430413003: [Media Router] Connection state change listening redesign part 2. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix compile Created 5 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/presentation_session_state_observer.h
diff --git a/chrome/browser/media/router/presentation_session_state_observer.h b/chrome/browser/media/router/presentation_session_state_observer.h
deleted file mode 100644
index 64f998ee449811c79aea4f341ac3093afff8293a..0000000000000000000000000000000000000000
--- a/chrome/browser/media/router/presentation_session_state_observer.h
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_MEDIA_ROUTER_PRESENTATION_SESSION_STATE_OBSERVER_H_
-#define CHROME_BROWSER_MEDIA_ROUTER_PRESENTATION_SESSION_STATE_OBSERVER_H_
-
-#include <vector>
-
-#include "base/gtest_prod_util.h"
-#include "chrome/browser/media/router/media_route.h"
-#include "chrome/browser/media/router/media_routes_observer.h"
-#include "content/public/browser/presentation_service_delegate.h"
-
-namespace media_router {
-
-class MediaRouter;
-
-// TODO(imcheng): Remove this class and use PresentationConnectionStateObserver
-// instead (crbug.com/529893).
-// MediaRoutesObserver implementation that allows tracking state changes from
-// multiple presentation sessions and notifying the client via
-// |state_changed_callback|.
-// Clients provide the callback on construction, and incrementally add route
-// IDs to track by calling |OnPresentationSessionConnected| as they are created,
-// which also has the effect of invoking the callback that the session has
-// become connected.
-// When a presentation is disconnected, the callback will be invoked and it
-// will be removed from the tracked set.
-// When the routes no longer need to tracked, |Reset| can be called.
-class PresentationSessionStateObserver : public MediaRoutesObserver {
- public:
- PresentationSessionStateObserver(
- const content::SessionStateChangedCallback& state_changed_callback,
- const MediaRouteIdToPresentationSessionMapping* route_id_to_presentation,
- MediaRouter* router);
- ~PresentationSessionStateObserver() override;
-
- // Called when a presentation with |route_id| has been created in connected
- // state and invoke the callback.
- void OnPresentationSessionConnected(const MediaRoute::Id& route_id);
-
- // Clears the set of presentations being tracked.
- void Reset();
-
- private:
- FRIEND_TEST_ALL_PREFIXES(PresentationSessionStateObserverTest,
- InvokeCallbackWithDisconnected);
- FRIEND_TEST_ALL_PREFIXES(PresentationSessionStateObserverTest, Reset);
-
- // MediaRoutesObserver override
- void OnRoutesUpdated(const std::vector<MediaRoute>& routes) override;
-
- // Invokes |state_changed_callback_| with PresentationSessionInfo derived from
- // |route_id| and |new_state|, if |route_id| is valid.
- void InvokeCallback(const MediaRoute::Id& route_id,
- content::PresentationConnectionState new_state);
-
- // Route IDs of presentations that are being tracked for state changes.
- // It is built by adding entries when a presentation is started,
- // and removing entries when the presentation is no longer in subsequent
- // route list updates.
- std::vector<MediaRoute::Id> tracked_route_ids_;
-
- // Stores previous list of routes observed from MediaRouter.
- // It is compared against the new observed list of routes for disconnected
- // routes that are in |tracked_route_ids_|.
- // TODO(imcheng): A more explicit set of MediaRoutesObserver APIs (e.g.,
- // OnRoutesClosed) would be helpful here. (crbug.com/508751)
- std::vector<MediaRoute::Id> previous_route_ids_;
-
- // Callback to invoke when state change occurs.
- content::SessionStateChangedCallback state_changed_callback_;
-
- // Note that while it is declared const to prevent this class from modifying
- // it, its contents can be changed by the PresentationFrame that owns it.
- const MediaRouteIdToPresentationSessionMapping* const
- route_id_to_presentation_;
-
- DISALLOW_COPY_AND_ASSIGN(PresentationSessionStateObserver);
-};
-
-} // namespace media_router
-
-#endif // CHROME_BROWSER_MEDIA_ROUTER_PRESENTATION_SESSION_STATE_OBSERVER_H_

Powered by Google App Engine
This is Rietveld 408576698