| Index: chrome/browser/resources/settings/site_settings/media_picker.js
|
| diff --git a/chrome/browser/resources/settings/site_settings/media_picker.js b/chrome/browser/resources/settings/site_settings/media_picker.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..847213c0b384ae3f015b6a42a60aeb55b0dd7223
|
| --- /dev/null
|
| +++ b/chrome/browser/resources/settings/site_settings/media_picker.js
|
| @@ -0,0 +1,57 @@
|
| +// Copyright 2016 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.
|
| +
|
| +/**
|
| + * @fileoverview
|
| + * 'media-picker' handles showing the dropdown allowing users to select the
|
| + * default camera/microphone.
|
| + */
|
| +Polymer({
|
| + is: 'media-picker',
|
| +
|
| + behaviors: [SiteSettingsBehavior, WebUIListenerBehavior],
|
| +
|
| + properties: {
|
| + /**
|
| + * The type of media picker, either 'camera' or 'mic'.
|
| + */
|
| + type: String,
|
| +
|
| + /**
|
| + * The devices available to pick from.
|
| + * @type {Array<MediaPickerEntry>}
|
| + */
|
| + devices: Array,
|
| + },
|
| +
|
| + ready: function() {
|
| + this.addWebUIListener('updateDevicesMenu',
|
| + this.updateDevicesMenu_.bind(this));
|
| + this.browserProxy.getDefaultCaptureDevices(this.type);
|
| + },
|
| +
|
| + /**
|
| + * Updates the microphone/camera devices menu with the given entries.
|
| + * @param {string} type The device type.
|
| + * @param {!Array<MediaPickerEntry>} devices List of available devices.
|
| + * @param {string} defaultDevice The unique id of the current default device.
|
| + */
|
| + updateDevicesMenu_: function(type, devices, defaultDevice) {
|
| + if (type != this.type)
|
| + return;
|
| +
|
| + this.$.picker.hidden = devices.length == 0;
|
| + if (devices.length > 0) {
|
| + this.devices = devices;
|
| + this.$.mediaPicker.selected = defaultDevice;
|
| + }
|
| + },
|
| +
|
| + /**
|
| + * A handler for when an item is selected in the media picker.
|
| + */
|
| + onMediaPickerActivate_: function(event) {
|
| + this.browserProxy.setDefaultCaptureDevice(this.type, event.detail.selected);
|
| + },
|
| +});
|
|
|