Commit 8e100e89 authored by mfoltz's avatar mfoltz Committed by Commit bot

[Media Router] Adds a pre-invocation hook to Media Router bindings.

This hook allows the Media Router component to properly record the cause of
event page wakeups that are caused by invoking the Media Route Provider API.

BUG=

Review-Url: https://codereview.chromium.org/2422773004
Cr-Commit-Position: refs/heads/master@{#427097}
parent c37cd75b
......@@ -545,6 +545,10 @@ define('media_router_bindings', [
* @param {!MediaRouterHandlers} handlers
*/
MediaRouteProvider.prototype.setHandlers = function(handlers) {
// TODO(mfoltz): Remove when component that supports this method is
// rolled out to all Chrome channels in M56.
if (!handlers['onBeforeInvokeHandler'])
handlers['onBeforeInvokeHandler'] = () => {};
this.handlers_ = handlers;
var requiredHandlers = [
'stopObservingMediaRoutes',
......@@ -563,6 +567,7 @@ define('media_router_bindings', [
'enableMdnsDiscovery',
'updateMediaSinks',
'searchSinks',
'onBeforeInvokeHandler'
];
requiredHandlers.forEach(function(nextHandler) {
if (handlers[nextHandler] === undefined) {
......@@ -579,6 +584,7 @@ define('media_router_bindings', [
*/
MediaRouteProvider.prototype.startObservingMediaSinks =
function(sourceUrn) {
this.handlers_.onBeforeInvokeHandler();
this.handlers_.startObservingMediaSinks(sourceUrn);
};
......@@ -588,6 +594,7 @@ define('media_router_bindings', [
*/
MediaRouteProvider.prototype.stopObservingMediaSinks =
function(sourceUrn) {
this.handlers_.onBeforeInvokeHandler();
this.handlers_.stopObservingMediaSinks(sourceUrn);
};
......@@ -611,7 +618,8 @@ define('media_router_bindings', [
*/
MediaRouteProvider.prototype.createRoute =
function(sourceUrn, sinkId, presentationId, origin, tabId,
timeout, incognito) {
timeout, incognito) {
this.handlers_.onBeforeInvokeHandler();
return this.handlers_.createRoute(
sourceUrn, sinkId, presentationId, origin, tabId,
Math.floor(timeout.microseconds / 1000), incognito)
......@@ -642,6 +650,7 @@ define('media_router_bindings', [
MediaRouteProvider.prototype.joinRoute =
function(sourceUrn, presentationId, origin, tabId, timeout,
incognito) {
this.handlers_.onBeforeInvokeHandler();
return this.handlers_.joinRoute(
sourceUrn, presentationId, origin, tabId,
Math.floor(timeout.microseconds / 1000), incognito)
......@@ -673,6 +682,7 @@ define('media_router_bindings', [
MediaRouteProvider.prototype.connectRouteByRouteId =
function(sourceUrn, routeId, presentationId, origin, tabId,
timeout, incognito) {
this.handlers_.onBeforeInvokeHandler();
return this.handlers_.connectRouteByRouteId(
sourceUrn, routeId, presentationId, origin, tabId,
Math.floor(timeout.microseconds / 1000), incognito)
......@@ -692,6 +702,7 @@ define('media_router_bindings', [
* message and code if the operation failed.
*/
MediaRouteProvider.prototype.terminateRoute = function(routeId) {
this.handlers_.onBeforeInvokeHandler();
// TODO(crbug.com/627967): Remove code path that doesn't expect a Promise
// in M56.
var maybePromise = this.handlers_.terminateRoute(routeId);
......@@ -716,7 +727,8 @@ define('media_router_bindings', [
* or false on failure.
*/
MediaRouteProvider.prototype.sendRouteMessage = function(
routeId, message) {
routeId, message) {
this.handlers_.onBeforeInvokeHandler();
return this.handlers_.sendRouteMessage(routeId, message)
.then(function() {
return {'sent': true};
......@@ -733,7 +745,8 @@ define('media_router_bindings', [
* or false on failure.
*/
MediaRouteProvider.prototype.sendRouteBinaryMessage = function(
routeId, data) {
routeId, data) {
this.handlers_.onBeforeInvokeHandler();
return this.handlers_.sendRouteBinaryMessage(routeId, data)
.then(function() {
return {'sent': true};
......@@ -748,6 +761,7 @@ define('media_router_bindings', [
*/
MediaRouteProvider.prototype.startListeningForRouteMessages = function(
routeId) {
this.handlers_.onBeforeInvokeHandler();
if (this.handlers_.startListeningForRouteMessages) {
this.handlers_.startListeningForRouteMessages(routeId);
} else {
......@@ -763,6 +777,7 @@ define('media_router_bindings', [
* @param {!string} routeId
*/
MediaRouteProvider.prototype.listenForRouteMessagesOld = function(routeId) {
this.handlers_.onBeforeInvokeHandler();
this.handlers_.listenForRouteMessages(routeId)
.then(function(messages) {
// If messages is empty, then stopListeningForRouteMessages has been
......@@ -783,6 +798,7 @@ define('media_router_bindings', [
*/
MediaRouteProvider.prototype.stopListeningForRouteMessages = function(
routeId) {
this.handlers_.onBeforeInvokeHandler();
this.handlers_.stopListeningForRouteMessages(routeId);
};
......@@ -802,6 +818,7 @@ define('media_router_bindings', [
* @param {!string} sourceUrn
*/
MediaRouteProvider.prototype.startObservingMediaRoutes = function(sourceUrn) {
this.handlers_.onBeforeInvokeHandler();
this.handlers_.startObservingMediaRoutes(sourceUrn);
};
......@@ -811,6 +828,7 @@ define('media_router_bindings', [
* @param {!string} sourceUrn
*/
MediaRouteProvider.prototype.stopObservingMediaRoutes = function(sourceUrn) {
this.handlers_.onBeforeInvokeHandler();
this.handlers_.stopObservingMediaRoutes(sourceUrn);
};
......@@ -818,6 +836,7 @@ define('media_router_bindings', [
* Enables mDNS device discovery.
*/
MediaRouteProvider.prototype.enableMdnsDiscovery = function() {
this.handlers_.onBeforeInvokeHandler();
this.handlers_.enableMdnsDiscovery();
};
......@@ -826,6 +845,7 @@ define('media_router_bindings', [
* @param {!string} sourceUrn
*/
MediaRouteProvider.prototype.updateMediaSinks = function(sourceUrn) {
this.handlers_.onBeforeInvokeHandler();
this.handlers_.updateMediaSinks(sourceUrn);
};
......@@ -850,6 +870,7 @@ define('media_router_bindings', [
if (!this.handlers_.searchSinks) {
return Promise.resolve({'sink_id': ''});
}
this.handlers_.onBeforeInvokeHandler();
return Promise.resolve({
'sink_id': this.handlers_.searchSinks(sinkId, sourceUrn, searchCriteria)
});
......@@ -861,4 +882,3 @@ define('media_router_bindings', [
return mediaRouter;
});
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment