Index: chrome/browser/resources/media_router/media_router_browser_api.js |
diff --git a/chrome/browser/resources/media_router/media_router_ui_interface.js b/chrome/browser/resources/media_router/media_router_browser_api.js |
similarity index 51% |
copy from chrome/browser/resources/media_router/media_router_ui_interface.js |
copy to chrome/browser/resources/media_router/media_router_browser_api.js |
index a8ec54461a248a242f5475c160923d50dc85ccfd..482decffa92a71d194ed75ee775267081ec3a6fb 100644 |
--- a/chrome/browser/resources/media_router/media_router_ui_interface.js |
+++ b/chrome/browser/resources/media_router/media_router_browser_api.js |
@@ -1,185 +1,7 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Copyright 2017 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. |
-// API invoked by the browser MediaRouterWebUIMessageHandler to communicate |
-// with this UI. |
-cr.define('media_router.ui', function() { |
- 'use strict'; |
- |
- // The media-router-container element. |
- var container = null; |
- |
- // The media-router-header element. |
- var header = null; |
- |
- /** |
- * Handles response of previous create route attempt. |
- * |
- * @param {string} sinkId The ID of the sink to which the Media Route was |
- * creating a route. |
- * @param {?media_router.Route} route The newly created route that |
- * corresponds to the sink if route creation succeeded; null otherwise. |
- * @param {boolean} isForDisplay Whether or not |route| is for display. |
- */ |
- function onCreateRouteResponseReceived(sinkId, route, isForDisplay) { |
- container.onCreateRouteResponseReceived(sinkId, route, isForDisplay); |
- } |
- |
- /** |
- * Handles the search response by forwarding |sinkId| to the container. |
- * |
- * @param {string} sinkId The ID of the sink found by search. |
- */ |
- function receiveSearchResult(sinkId) { |
- container.onReceiveSearchResult(sinkId); |
- } |
- |
- /** |
- * Sets the cast mode list. |
- * |
- * @param {!Array<!media_router.CastMode>} castModeList |
- */ |
- function setCastModeList(castModeList) { |
- container.castModeList = castModeList; |
- } |
- |
- /** |
- * Sets |container| and |header|. |
- * |
- * @param {!MediaRouterContainerElement} mediaRouterContainer |
- * @param {!MediaRouterHeaderElement} mediaRouterHeader |
- */ |
- function setElements(mediaRouterContainer, mediaRouterHeader) { |
- container = mediaRouterContainer; |
- header = mediaRouterHeader; |
- } |
- |
- /** |
- * Populates the WebUI with data obtained about the first run flow. |
- * |
- * @param {{firstRunFlowCloudPrefLearnMoreUrl: string, |
- * firstRunFlowLearnMoreUrl: string, |
- * wasFirstRunFlowAcknowledged: boolean, |
- * showFirstRunFlowCloudPref: boolean}} data |
- * Parameters in data: |
- * firstRunFlowCloudPrefLearnMoreUrl - url to open when the cloud services |
- * pref learn more link is clicked. |
- * firstRunFlowLearnMoreUrl - url to open when the first run flow learn |
- * more link is clicked. |
- * wasFirstRunFlowAcknowledged - true if first run flow was previously |
- * acknowledged by user. |
- * showFirstRunFlowCloudPref - true if the cloud pref option should be |
- * shown. |
- */ |
- function setFirstRunFlowData(data) { |
- container.firstRunFlowCloudPrefLearnMoreUrl = |
- data['firstRunFlowCloudPrefLearnMoreUrl']; |
- container.firstRunFlowLearnMoreUrl = |
- data['firstRunFlowLearnMoreUrl']; |
- container.showFirstRunFlowCloudPref = |
- data['showFirstRunFlowCloudPref']; |
- // Some users acknowledged the first run flow before the cloud prefs |
- // setting was implemented. These users will see the first run flow |
- // again. |
- container.showFirstRunFlow = !data['wasFirstRunFlowAcknowledged'] || |
- container.showFirstRunFlowCloudPref; |
- } |
- |
- /** |
- * Populates the WebUI with data obtained from Media Router. |
- * |
- * @param {{deviceMissingUrl: string, |
- * sinksAndIdentity: { |
- * sinks: !Array<!media_router.Sink>, |
- * showEmail: boolean, |
- * userEmail: string, |
- * showDomain: boolean |
- * }, |
- * routes: !Array<!media_router.Route>, |
- * castModes: !Array<!media_router.CastMode>, |
- * useTabMirroring: boolean}} data |
- * Parameters in data: |
- * deviceMissingUrl - url to be opened on "Device missing?" clicked. |
- * sinksAndIdentity - list of sinks to be displayed and user identity. |
- * routes - list of routes that are associated with the sinks. |
- * castModes - list of available cast modes. |
- * useTabMirroring - whether the cast mode should be set to TAB_MIRROR. |
- */ |
- function setInitialData(data) { |
- container.deviceMissingUrl = data['deviceMissingUrl']; |
- container.castModeList = data['castModes']; |
- this.setSinkListAndIdentity(data['sinksAndIdentity']); |
- container.routeList = data['routes']; |
- container.maybeShowRouteDetailsOnOpen(); |
- if (data['useTabMirroring']) |
- container.selectCastMode(media_router.CastModeType.TAB_MIRROR); |
- media_router.browserApi.onInitialDataReceived(); |
- } |
- |
- /** |
- * Sets current issue to |issue|, or clears the current issue if |issue| is |
- * null. |
- * |
- * @param {?media_router.Issue} issue |
- */ |
- function setIssue(issue) { |
- container.issue = issue; |
- } |
- |
- /** |
- * Sets the list of currently active routes. |
- * |
- * @param {!Array<!media_router.Route>} routeList |
- */ |
- function setRouteList(routeList) { |
- container.routeList = routeList; |
- } |
- |
- /** |
- * Sets the list of discovered sinks along with properties of whether to hide |
- * identity of the user email and domain. |
- * |
- * @param {{sinks: !Array<!media_router.Sink>, |
- * showEmail: boolean, |
- * userEmail: string, |
- * showDomain: boolean}} data |
- * Parameters in data: |
- * sinks - list of sinks to be displayed. |
- * showEmail - true if the user email should be shown. |
- * userEmail - email of the user if the user is signed in. |
- * showDomain - true if the user domain should be shown. |
- */ |
- function setSinkListAndIdentity(data) { |
- container.showDomain = data['showDomain']; |
- container.allSinks = data['sinks']; |
- header.userEmail = data['userEmail']; |
- header.showEmail = data['showEmail']; |
- } |
- |
- /** |
- * Updates the max height of the dialog |
- * |
- * @param {number} height |
- */ |
- function updateMaxHeight(height) { |
- container.updateMaxDialogHeight(height); |
- } |
- |
- return { |
- onCreateRouteResponseReceived: onCreateRouteResponseReceived, |
- receiveSearchResult: receiveSearchResult, |
- setCastModeList: setCastModeList, |
- setElements: setElements, |
- setFirstRunFlowData: setFirstRunFlowData, |
- setInitialData: setInitialData, |
- setIssue: setIssue, |
- setRouteList: setRouteList, |
- setSinkListAndIdentity: setSinkListAndIdentity, |
- updateMaxHeight: updateMaxHeight, |
- }; |
-}); |
- |
// API invoked by this UI to communicate with the browser WebUI message handler. |
cr.define('media_router.browserApi', function() { |
'use strict'; |
@@ -202,8 +24,9 @@ cr.define('media_router.browserApi', function() { |
* @param {?number} helpPageId The numeric help center ID. |
*/ |
function actOnIssue(issueId, actionType, helpPageId) { |
- chrome.send('actOnIssue', [{issueId: issueId, actionType: actionType, |
- helpPageId: helpPageId}]); |
+ chrome.send( |
+ 'actOnIssue', |
+ [{issueId: issueId, actionType: actionType, helpPageId: helpPageId}]); |
} |
/** |
@@ -215,8 +38,9 @@ cr.define('media_router.browserApi', function() { |
* selected. |
*/ |
function changeRouteSource(route, selectedCastMode) { |
- chrome.send('requestRoute', |
- [{sinkId: route.sinkId, selectedCastMode: selectedCastMode}]); |
+ chrome.send( |
+ 'requestRoute', |
+ [{sinkId: route.sinkId, selectedCastMode: selectedCastMode}]); |
} |
/** |
@@ -255,6 +79,36 @@ cr.define('media_router.browserApi', function() { |
} |
/** |
+ * Reports that the route details view was closed. |
+ */ |
+ function onMediaControllerClosed() { |
+ chrome.send('onMediaControllerClosed'); |
+ } |
+ |
+ /** |
+ * Reports that the route details view was opened for |routeId|. |
+ * |
+ * @param {string} routeId |
+ */ |
+ function onMediaControllerAvailable(routeId) { |
+ chrome.send('onMediaControllerAvailable', [{routeId: routeId}]); |
+ } |
+ |
+ /** |
+ * Sends a command to pause the route shown in the route details view. |
+ */ |
+ function pauseCurrentMedia() { |
+ chrome.send('pauseCurrentMedia'); |
+ } |
+ |
+ /** |
+ * Sends a command to play the route shown in the route details view. |
+ */ |
+ function playCurrentMedia() { |
+ chrome.send('playCurrentMedia'); |
+ } |
+ |
+ /** |
* Reports when the user clicks outside the dialog. |
*/ |
function reportBlur() { |
@@ -376,8 +230,8 @@ cr.define('media_router.browserApi', function() { |
* selected. |
*/ |
function requestRoute(sinkId, selectedCastMode) { |
- chrome.send('requestRoute', |
- [{sinkId: sinkId, selectedCastMode: selectedCastMode}]); |
+ chrome.send( |
+ 'requestRoute', [{sinkId: sinkId, selectedCastMode: selectedCastMode}]); |
} |
/** |
@@ -394,11 +248,41 @@ cr.define('media_router.browserApi', function() { |
*/ |
function searchSinksAndCreateRoute( |
sinkId, searchCriteria, domain, selectedCastMode) { |
- chrome.send('searchSinksAndCreateRoute', |
- [{sinkId: sinkId, |
+ chrome.send('searchSinksAndCreateRoute', [{ |
+ sinkId: sinkId, |
searchCriteria: searchCriteria, |
domain: domain, |
- selectedCastMode: selectedCastMode}]); |
+ selectedCastMode: selectedCastMode |
+ }]); |
+ } |
+ |
+ /** |
+ * Sends a command to seek the route shown in the route details view. |
+ * |
+ * @param {number} time The new current time in seconds. |
+ */ |
+ function seekCurrentMedia(time) { |
+ chrome.send('seekCurrentMedia', [{time: time}]); |
+ } |
+ |
+ /** |
+ * Sends a command to mute or unmute the route shown in the route details |
+ * view. |
+ * |
+ * @param {boolean} mute Mute the route if true, unmute it if false. |
+ */ |
+ function setCurrentMediaMute(mute) { |
+ chrome.send('setCurrentMediaMute', [{mute: mute}]); |
+ } |
+ |
+ /** |
+ * Sends a command to change the volume of the route shown in the route |
+ * details view. |
+ * |
+ * @param {number} volume The volume between 0 and 1. |
+ */ |
+ function setCurrentMediaVolume(volume) { |
+ chrome.send('setCurrentMediaVolume', [{volume: volume}]); |
} |
return { |
@@ -409,6 +293,10 @@ cr.define('media_router.browserApi', function() { |
closeRoute: closeRoute, |
joinRoute: joinRoute, |
onInitialDataReceived: onInitialDataReceived, |
+ onMediaControllerClosed: onMediaControllerClosed, |
+ onMediaControllerAvailable: onMediaControllerAvailable, |
+ pauseCurrentMedia: pauseCurrentMedia, |
+ playCurrentMedia: playCurrentMedia, |
reportBlur: reportBlur, |
reportClickedSinkIndex: reportClickedSinkIndex, |
reportFilter: reportFilter, |
@@ -424,5 +312,8 @@ cr.define('media_router.browserApi', function() { |
requestInitialData: requestInitialData, |
requestRoute: requestRoute, |
searchSinksAndCreateRoute: searchSinksAndCreateRoute, |
+ seekCurrentMedia: seekCurrentMedia, |
+ setCurrentMediaMute: setCurrentMediaMute, |
+ setCurrentMediaVolume: setCurrentMediaVolume, |
}; |
}); |