| Index: chrome/browser/ui/webui/media_router/media_router_ui.h
|
| diff --git a/chrome/browser/ui/webui/media_router/media_router_ui.h b/chrome/browser/ui/webui/media_router/media_router_ui.h
|
| index e3e4a21838fd8bb587d2f305f5520b6429875f1e..3c851fca487e5cd105ad48730927a5b0a6310385 100644
|
| --- a/chrome/browser/ui/webui/media_router/media_router_ui.h
|
| +++ b/chrome/browser/ui/webui/media_router/media_router_ui.h
|
| @@ -31,6 +31,7 @@ namespace media_router {
|
| class IssuesObserver;
|
| class MediaRoute;
|
| class MediaRouter;
|
| +class MediaRouterDialogCallbacks;
|
| class MediaRouterWebUIMessageHandler;
|
| class MediaRoutesObserver;
|
| class MediaSink;
|
| @@ -48,24 +49,37 @@ class MediaRouterUI
|
| ~MediaRouterUI() override;
|
|
|
| // Initializes internal state (e.g. starts listening for MediaSinks) for
|
| - // targeting the default MediaSource (if any) of the tab. The contents of the
|
| - // UI will change as the default MediaSource changes. If there is a default
|
| - // MediaSource, then DEFAULT MediaCastMode will be added to |cast_modes_|.
|
| - // |source_manager|: PresentationServiceDelegateImpl of the initiator tab.
|
| - // Must not be null.
|
| - // Can only be called once.
|
| + // targeting the default MediaSource (if any) of the initiator tab as
|
| + // determined by |delegate|, as well as mirroring sources of that tab.
|
| + // The contents of the UI will change as the default MediaSource changes.
|
| + // If there is a default MediaSource, then DEFAULT MediaCastMode will be
|
| + // added to |cast_modes_|.
|
| + // Init* methods can only be called once.
|
| + // |delegate|: PresentationServiceDelegateImpl of the initiator tab.
|
| + // Must not be null.
|
| + // |dialog_callbacks|: The set of callbacks to be invoked by the UI as a
|
| + // result of certain operations. Must not be null.
|
| // TODO(imcheng): Replace use of impl with an intermediate abstract
|
| // interface.
|
| - void InitWithDefaultMediaSource(PresentationServiceDelegateImpl* delegate);
|
| + void InitWithDefaultMediaSource(
|
| + const base::WeakPtr<PresentationServiceDelegateImpl>& delegate,
|
| + MediaRouterDialogCallbacks* dialog_callbacks);
|
|
|
| // Initializes internal state targeting the presentation specified in
|
| - // |request|. Also sets up mirroring sources based on |initiator|.
|
| + // the CreateSessionRequest in |dialog_callbacks|.
|
| + // Also sets up mirroring sources based on |initiator|.
|
| // This is different from |InitWithDefaultMediaSource| in that it does not
|
| // listen for default media source changes, as the UI is fixed to the source
|
| // in |request|.
|
| + // Init* methods can only be called once.
|
| + // |intiator|: Reference to the WebContents that initiated the dialog.
|
| + // Must not be null.
|
| + // |dialog_callbacks|: The set of callbacks to be invoked by the UI as a
|
| + // result of certain operations. Must not be null, and
|
| + // must contain a CreateSessionRequest.
|
| void InitWithPresentationSessionRequest(
|
| const content::WebContents* initiator,
|
| - scoped_ptr<CreateSessionRequest> request);
|
| + MediaRouterDialogCallbacks* dialog_callbacks);
|
|
|
| // Closes the media router UI.
|
| void Close();
|
| @@ -125,7 +139,7 @@ class MediaRouterUI
|
|
|
| // Callback passed to MediaRouter to receive response to route creation
|
| // requests.
|
| - void OnRouteResponseReceived(scoped_ptr<MediaRoute> route,
|
| + void OnRouteResponseReceived(const MediaRoute* route,
|
| const std::string& error);
|
|
|
| bool DoCreateRoute(const MediaSink::Id& sink_id, MediaCastMode cast_mode);
|
| @@ -139,12 +153,8 @@ class MediaRouterUI
|
| // and optional |default_source| and |default_frame_url| if any.
|
| void InitCommon(const content::WebContents* initiator,
|
| const MediaSource& default_source,
|
| - const GURL& default_frame_url);
|
| -
|
| - // Invoke presentation callbacks based on |route| and |error| if the dialog
|
| - // was created for Presentation API.
|
| - void HandleRouteResponseForPresentation(const MediaRoute* route,
|
| - const std::string& error);
|
| + const GURL& default_frame_url,
|
| + MediaRouterDialogCallbacks* dialog_callbacks);
|
|
|
| // PresentationServiceDelegateImpl::DefaultMediaSourceObserver
|
| void OnDefaultMediaSourceChanged(const MediaSource& source,
|
| @@ -174,9 +184,6 @@ class MediaRouterUI
|
|
|
| scoped_ptr<QueryResultManager> query_result_manager_;
|
|
|
| - // Only set if the UI is created as a result of Presentation API.
|
| - scoped_ptr<CreateSessionRequest> presentation_session_request_;
|
| -
|
| // It's possible for PresentationServiceDelegateImpl to be destroyed before
|
| // this class.
|
| // (e.g. if a tab with the UI open is closed, then the tab WebContents will
|
| @@ -186,6 +193,8 @@ class MediaRouterUI
|
| // TODO(imcheng): hold a weak ptr to an abstract type instead.
|
| base::WeakPtr<PresentationServiceDelegateImpl> presentation_service_delegate_;
|
|
|
| + MediaRouterDialogCallbacks* dialog_callbacks_;
|
| +
|
| const content::WebContents* initiator_;
|
|
|
| // Cached pointer to the MediaRouter for this instance's BrowserContext.
|
|
|