Add new certificateProvider extension API.
[chromium-blink-merge.git] / chrome / browser / resources / media_router / media_router_data.js
blob9518a13dc26d0d2d613e77d5653dce3ec4428d59
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // Any strings used here will already be localized. Values such as
6 // CastMode.type or IDs will be defined elsewhere and determined later.
7 cr.define('media_router', function() {
8   'use strict';
10   /**
11    * This corresponds to the C++ MediaCastMode.
12    * @enum {number}
13    */
14   var CastModeType = {
15     DEFAULT: 0,
16     TAB_MIRROR: 1,
17     DESKTOP_MIRROR: 2,
18   };
20   /**
21    * This corresponds to the C++ MediaSink IconType.
22    * @enum {mumber}
23    */
24   var SinkIconType = {
25     CAST: 0,
26     CAST_AUDIO: 1,
27     GENERIC: 2,
28     HANGOUT: 3,
29   };
31   /**
32    * @enum {string}
33    */
34   var SinkStatus = {
35     IDLE: 'idle',
36     ACTIVE: 'active',
37     REQUEST_PENDING: 'request_pending'
38   };
41   /**
42    * @param {media_router.CastModeType} type The type of cast mode.
43    * @param {string} description The description of the cast mode.
44    * @param {string} host The hostname of the site to cast.
45    * @constructor
46    * @struct
47    */
48   var CastMode = function(type, description, host) {
49     /** @type {number} */
50     this.type = type;
52     /** @type {string} */
53     this.description = description;
55     /** @type {string} */
56     this.host = host || null;
57   };
60   /**
61    * @param {string} id The ID of this issue.
62    * @param {string} title The issue title.
63    * @param {string} message The issue message.
64    * @param {number} defaultActionType The type of default action.
65    * @param {?number} secondaryActionType The type of optional action.
66    * @param {?string} mediaRouteId The route ID to which this issue
67    *                  pertains. If not set, this is a global issue.
68    * @param {boolean} isBlocking True if this issue blocks other UI.
69    * @param {?number} helpPageId The numeric help center ID.
70    * @constructor
71    * @struct
72    */
73   var Issue = function(id, title, message, defaultActionType,
74                        secondaryActionType, mediaRouteId, isBlocking,
75                        helpPageId) {
76     /** @type {string} */
77     this.id = id;
79     /** @type {string} */
80     this.title = title;
82     /** @type {string} */
83     this.message = message;
85     /** @type {number} */
86     this.defaultActionType = defaultActionType;
88     /** @type {?number} */
89     this.secondaryActionType = secondaryActionType;
91     /** @type {?string} */
92     this.mediaRouteId = mediaRouteId;
94     /** @type {boolean} */
95     this.isBlocking = isBlocking;
97     /** @type {?number} */
98     this.helpPageId = helpPageId;
99   };
102   /**
103    * @param {string} id The media route ID.
104    * @param {string} sinkId The ID of the media sink running this route.
105    * @param {string} description The short description of this route.
106    * @param {?number} tabId The ID of the tab in which web app is running and
107    *                  accessing the route.
108    * @param {boolean} isLocal True if this is a locally created route.
109    * @param {?string} customControllerPath non-empty if this route has custom
110    *                  controller.
111    * @constructor
112    * @struct
113    */
114   var Route = function(id, sinkId, description, tabId, isLocal,
115       customControllerPath) {
116     /** @type {string} */
117     this.id = id;
119     /** @type {string} */
120     this.sinkId = sinkId;
122     /** @type {string} */
123     this.description = description;
125     /** @type {?number} */
126     this.tabId = tabId;
128     /** @type {boolean} */
129     this.isLocal = isLocal;
131     /** @type {?string} */
132     this.customControllerPath = customControllerPath;
133   };
136   /**
137    * @param {string} id The ID of the media sink.
138    * @param {string} name The name of the sink.
139    * @param {media_router.SinkIconType} iconType the type of icon for the sink.
140    * @param {media_router.SinkStatus} status The readiness state of the sink.
141    * @param {!Array<number>} castModes Cast modes compatible with the sink.
142    * @param {boolean} isLaunching True if the Media Router is creating a route
143    *                              to this sink.
144    * @constructor
145    * @struct
146    */
147   var Sink = function(id, name, iconType, status, castModes, isLaunching) {
148     /** @type {string} */
149     this.id = id;
151     /** @type {string} */
152     this.name = name;
154     /** @type {SinkIconType} */
155     this.iconType = iconType;
157     /** @type {media_router.SinkStatus} */
158     this.status = status;
160     /** @type {!Array<number>} */
161     this.castModes = castModes;
163     /** @type {boolean} */
164     this.isLaunching = isLaunching;
165   };
168   /**
169    * @param {number} tabId The current tab ID.
170    * @param {string} domain The domain of the current tab.
171    * @constructor
172    * @struct
173    */
174   var TabInfo = function(tabId, domain) {
175     /** @type {number} */
176     this.tabId = tabId;
178     /** @type {string} */
179     this.domain = domain;
180   };
182   return {
183     CastModeType: CastModeType,
184     SinkIconType: SinkIconType,
185     SinkStatus: SinkStatus,
186     CastMode: CastMode,
187     Issue: Issue,
188     Route: Route,
189     Sink: Sink,
190     TabInfo: TabInfo,
191   };