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

Unified Diff: extensions/renderer/resources/media_router_bindings.js

Issue 2779203003: [Media Router] Export Mojom definitions in media_router_bindings.js. (Closed)
Patch Set: backwards compatible Created 3 years, 9 months 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/renderer/resources/media_router_bindings.js
diff --git a/extensions/renderer/resources/media_router_bindings.js b/extensions/renderer/resources/media_router_bindings.js
index 7aeb83d8eb996b68e27a98ff2c8ef5a2359caae5..6eb4f4d73b1d1182a704b12588225c2590532aca 100644
--- a/extensions/renderer/resources/media_router_bindings.js
+++ b/extensions/renderer/resources/media_router_bindings.js
@@ -6,17 +6,25 @@ var mediaRouter;
define('media_router_bindings', [
'content/public/renderer/frame_interfaces',
+ 'chrome/browser/media/router/mojo/media_controller.mojom',
'chrome/browser/media/router/mojo/media_router.mojom',
+ 'chrome/browser/media/router/mojo/media_status.mojom',
'extensions/common/mojo/keep_alive.mojom',
'mojo/common/time.mojom',
'mojo/public/js/bindings',
+ 'net/interfaces/ip_address.mojom',
'url/mojo/origin.mojom',
+ 'url/mojo/url.mojom',
], function(frameInterfaces,
+ mediaControllerMojom,
mediaRouterMojom,
+ mediaStatusMojom,
keepAliveMojom,
timeMojom,
bindings,
- originMojom) {
+ ipAddressMojom,
+ originMojom,
+ urlMojom) {
'use strict';
/**
@@ -256,6 +264,32 @@ define('media_router_bindings', [
}
/**
+ * Returns definitions of Mojo core and generated Mojom classes that can be
+ * used directly by the component.
+ * @return {!Object}
+ * TODO(imcheng): We should export these along with MediaRouter. This requires
+ * us to modify the component to handle multiple exports. When that logic is
+ * baked in for a couple of milestones, we should be able to remove this
+ * method.
+ */
+ MediaRouter.prototype.getMojoExports = function() {
+ return {
+ Binding: bindings.Binding,
+ DialMediaSink: mediaRouterMojom.DialMediaSink,
+ CastMediaSink: mediaRouterMojom.CastMediaSink,
+ IPAddress: ipAddressMojom.IPAddress,
+ InterfacePtrController: bindings.InterfacePtrController,
+ InterfaceRequest: bindings.InterfaceRequest,
+ MediaController: mediaControllerMojom.MediaController,
+ MediaStatus: mediaStatusMojom.MediaStatus,
+ MediaStatusObserverPtr: mediaStatusMojom.MediaStatusObserverPtr,
+ Sink: mediaRouterMojom.MediaSink,
+ SinkExtraData: mediaRouterMojom.MediaSinkExtraData,
+ Url: urlMojom.Url,
+ };
+ };
+
+ /**
* Registers the Media Router Provider Manager with the Media Router.
* @return {!Promise<string>} Instance ID for the Media Router.
*/
@@ -518,9 +552,19 @@ define('media_router_bindings', [
this.updateMediaSinks = null;
/**
- * @type {function(!string, !string, !SinkSearchCriteria): !string}
+ * @type {function(string, string, !SinkSearchCriteria): string}
*/
this.searchSinks = null;
+
+ /**
+ * @type {function(string, !bindings.InterfaceRequest): !Promise<boolean>}
+ */
+ this.createMediaRouteController = null;
+
+ /**
+ * @type {function(string, !mediaStatusMojom.MediaStatusObserverPtr)}
+ */
+ this.setMediaRouteStatusObserver = null;
};
/**
@@ -572,6 +616,8 @@ define('media_router_bindings', [
'enableMdnsDiscovery',
'updateMediaSinks',
'searchSinks',
+ 'createMediaRouteController',
+ 'setMediaRouteStatusObserver',
'onBeforeInvokeHandler'
];
requiredHandlers.forEach(function(nextHandler) {
@@ -842,6 +888,45 @@ define('media_router_bindings', [
});
};
+
+ /**
+ * Creates a controller for the given route and binds the given
+ * InterfaceRequest to it.
+ * @param {string} routeId
+ * @param {!bindings.InterfaceRequest} controllerRequest
+ * @return {!Promise<!{success: boolean}>} Resolves to true if a controller
+ * is created. Resolves to false if a controller cannot be created, or if
+ * the controller is already bound.
+ */
+ MediaRouteProvider.prototype.createMediaRouteController = function(
+ routeId, controllerRequest) {
+ // TODO(imcheng): Remove this check when M59 is in stable.
+ if (!this.handlers_.createMediaRouteController) {
+ return Promise.resolve({success: false});
+ }
+
+ this.handlers_.onBeforeInvokeHandler();
+ this.handlers_.createMediaRouteController(routeId, controllerRequest)
+ .then(controller => {success: true},
+ e => {success: false});
+ }
+
+ /**
+ * Sets the MediaStatus oberver for a given route. MediaStatus updates are
+ * notified via the given observer interface.
+ * @param {string} routeId
+ * @param {!mediaStatusMojom.MediaStatusObserverPtr} observer
+ */
+ MediaRouteProvider.prototype.setMediaRouteStatusObserver = function(
+ routeId, observer) {
+ // TODO(imcheng): Remove this check when M59 is in stable.
+ if (!this.handlers_.setMediaRouteStatusObserver) {
+ return;
+ }
+ this.handlers_.onBeforeInvokeHandler();
+ this.handlers_.setMediaRouteStatusObserver(routeId, observer);
+ };
+
mediaRouter = new MediaRouter(new mediaRouterMojom.MediaRouterPtr(
frameInterfaces.getInterface(mediaRouterMojom.MediaRouter.name)));
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698