Commit 883f0ce5 authored by Matt Reynolds's avatar Matt Reynolds Committed by Commit Bot

[webhid] Enable WebHID origin trial

This CL sets up the origin trial feature name "WebHID" and
modifies WebHID permissions UI in preparation for an
origin trial.

* WebHID settings is visible by default in Site Settings
* Site settings includes granted HID devices

Intent to Experiment thread:

https://groups.google.com/a/chromium.org/g/blink-dev/c/LoyzK8xTRME

BUG=1038966

Change-Id: I16f52e3c8d112f1f173c62a5a9fe073106e1560e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1985174Reviewed-by: default avatardpapad <dpapad@chromium.org>
Reviewed-by: default avatarJochen Eisinger <jochen@chromium.org>
Reviewed-by: default avatarTheodore Olsauskas-Warren <sauski@google.com>
Commit-Queue: Matt Reynolds <mattreynolds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#782095}
parent aa5c6378
...@@ -605,21 +605,19 @@ ...@@ -605,21 +605,19 @@
</settings-subpage> </settings-subpage>
</template> </template>
</template> </template>
<template is="dom-if" if="[[enableExperimentalWebPlatformFeatures_]]"> <template is="dom-if" route-path="/content/hidDevices" no-search>
<template is="dom-if" route-path="/content/hidDevices" no-search> <settings-subpage page-title="$i18n{siteSettingsHidDevices}">
<settings-subpage page-title="$i18n{siteSettingsHidDevices}"> <category-default-setting
<category-default-setting toggle-off-label="$i18n{siteSettingsHidDevicesBlock}"
toggle-off-label="$i18n{siteSettingsHidDevicesBlock}" toggle-on-label=
toggle-on-label= "$i18n{siteSettingsHidDevicesAskRecommended}"
"$i18n{siteSettingsHidDevicesAskRecommended}" category="[[ContentSettingsTypes.HID_DEVICES]]">
category="[[ContentSettingsTypes.HID_DEVICES]]"> </category-default-setting>
</category-default-setting> <chooser-exception-list
<chooser-exception-list category="[[ContentSettingsTypes.HID_DEVICES]]"
category="[[ContentSettingsTypes.HID_DEVICES]]" chooser-type="[[ChooserType.HID_DEVICES]]">
chooser-type="[[ChooserType.HID_DEVICES]]"> </chooser-exception-list>
</chooser-exception-list> </settings-subpage>
</settings-subpage>
</template>
</template> </template>
<template is="dom-if" route-path="/content/siteDetails" no-search> <template is="dom-if" route-path="/content/siteDetails" no-search>
<settings-subpage page-title="[[pageTitle]]"> <settings-subpage page-title="[[pageTitle]]">
......
...@@ -70,6 +70,7 @@ function addPrivacyChildRoutes(r) { ...@@ -70,6 +70,7 @@ function addPrivacyChildRoutes(r) {
r.SITE_SETTINGS.createChild('unsandboxedPlugins'); r.SITE_SETTINGS.createChild('unsandboxedPlugins');
r.SITE_SETTINGS_MIDI_DEVICES = r.SITE_SETTINGS.createChild('midiDevices'); r.SITE_SETTINGS_MIDI_DEVICES = r.SITE_SETTINGS.createChild('midiDevices');
r.SITE_SETTINGS_USB_DEVICES = r.SITE_SETTINGS.createChild('usbDevices'); r.SITE_SETTINGS_USB_DEVICES = r.SITE_SETTINGS.createChild('usbDevices');
r.SITE_SETTINGS_HID_DEVICES = r.SITE_SETTINGS.createChild('hidDevices');
r.SITE_SETTINGS_SERIAL_PORTS = r.SITE_SETTINGS.createChild('serialPorts'); r.SITE_SETTINGS_SERIAL_PORTS = r.SITE_SETTINGS.createChild('serialPorts');
if (loadTimeData.getBoolean('enableWebBluetoothNewPermissionsBackend')) { if (loadTimeData.getBoolean('enableWebBluetoothNewPermissionsBackend')) {
r.SITE_SETTINGS_BLUETOOTH_DEVICES = r.SITE_SETTINGS_BLUETOOTH_DEVICES =
...@@ -87,7 +88,6 @@ function addPrivacyChildRoutes(r) { ...@@ -87,7 +88,6 @@ function addPrivacyChildRoutes(r) {
if (loadTimeData.getBoolean('enableExperimentalWebPlatformFeatures')) { if (loadTimeData.getBoolean('enableExperimentalWebPlatformFeatures')) {
r.SITE_SETTINGS_BLUETOOTH_SCANNING = r.SITE_SETTINGS_BLUETOOTH_SCANNING =
r.SITE_SETTINGS.createChild('bluetoothScanning'); r.SITE_SETTINGS.createChild('bluetoothScanning');
r.SITE_SETTINGS_HID_DEVICES = r.SITE_SETTINGS.createChild('hidDevices');
r.SITE_SETTINGS_WINDOW_PLACEMENT = r.SITE_SETTINGS_WINDOW_PLACEMENT =
r.SITE_SETTINGS.createChild('windowPlacement'); r.SITE_SETTINGS.createChild('windowPlacement');
} }
......
...@@ -203,13 +203,11 @@ ...@@ -203,13 +203,11 @@
label="$i18n{siteSettingsNativeFileSystemWrite}"> label="$i18n{siteSettingsNativeFileSystemWrite}">
</site-details-permission> </site-details-permission>
</template> </template>
<template is="dom-if" if="[[enableExperimentalWebPlatformFeatures_]]"> <site-details-permission
<site-details-permission category="[[ContentSettingsTypes.HID_DEVICES]]"
category="[[ContentSettingsTypes.HID_DEVICES]]" icon="settings:hid-device" id="hidDevices"
icon="settings:hid-device" id="hidDevices" label="$i18n{siteSettingsHidDevices}">
label="$i18n{siteSettingsHidDevices}"> </site-details-permission>
</site-details-permission>
</template>
<site-details-permission <site-details-permission
category="{{ContentSettingsTypes.UNSANDBOXED_PLUGINS}}" category="{{ContentSettingsTypes.UNSANDBOXED_PLUGINS}}"
icon="cr:extension" id="unsandboxedPlugins" icon="cr:extension" id="unsandboxedPlugins"
......
...@@ -227,9 +227,6 @@ const SiteSettingsBehaviorImpl = { ...@@ -227,9 +227,6 @@ const SiteSettingsBehaviorImpl = {
addOrRemoveSettingWithFlag( addOrRemoveSettingWithFlag(
ContentSettingsTypes.MIXEDSCRIPT, ContentSettingsTypes.MIXEDSCRIPT,
'enableInsecureContentContentSetting'); 'enableInsecureContentContentSetting');
addOrRemoveSettingWithFlag(
ContentSettingsTypes.HID_DEVICES,
'enableExperimentalWebPlatformFeatures');
addOrRemoveSettingWithFlag( addOrRemoveSettingWithFlag(
ContentSettingsTypes.BLUETOOTH_DEVICES, ContentSettingsTypes.BLUETOOTH_DEVICES,
'enableWebBluetoothNewPermissionsBackend'); 'enableWebBluetoothNewPermissionsBackend');
......
...@@ -142,8 +142,6 @@ function getCategoryItemMap() { ...@@ -142,8 +142,6 @@ function getCategoryItemMap() {
icon: 'settings:hid-device', icon: 'settings:hid-device',
enabledLabel: 'siteSettingsHidDevicesAsk', enabledLabel: 'siteSettingsHidDevicesAsk',
disabledLabel: 'siteSettingsHidDevicesBlock', disabledLabel: 'siteSettingsHidDevicesBlock',
shouldShow: () =>
loadTimeData.getBoolean('enableExperimentalWebPlatformFeatures'),
}, },
{ {
route: routes.SITE_SETTINGS_IMAGES, route: routes.SITE_SETTINGS_IMAGES,
......
...@@ -210,8 +210,6 @@ suite('SiteDetails', function() { ...@@ -210,8 +210,6 @@ suite('SiteDetails', function() {
optionalSiteDetailsContentSettingsTypes[ContentSettingsTypes optionalSiteDetailsContentSettingsTypes[ContentSettingsTypes
.BLUETOOTH_SCANNING] = .BLUETOOTH_SCANNING] =
'enableExperimentalWebPlatformFeatures'; 'enableExperimentalWebPlatformFeatures';
optionalSiteDetailsContentSettingsTypes[ContentSettingsTypes.HID_DEVICES] =
'enableExperimentalWebPlatformFeatures';
optionalSiteDetailsContentSettingsTypes[ContentSettingsTypes optionalSiteDetailsContentSettingsTypes[ContentSettingsTypes
.WINDOW_PLACEMENT] = .WINDOW_PLACEMENT] =
'enableExperimentalWebPlatformFeatures'; 'enableExperimentalWebPlatformFeatures';
...@@ -231,7 +229,7 @@ suite('SiteDetails', function() { ...@@ -231,7 +229,7 @@ suite('SiteDetails', function() {
const controlledSettingsCount = /** @type{string : int } */ ({}); const controlledSettingsCount = /** @type{string : int } */ ({});
controlledSettingsCount['enableExperimentalWebPlatformFeatures'] = 3; controlledSettingsCount['enableExperimentalWebPlatformFeatures'] = 2;
controlledSettingsCount['enableInsecureContentContentSetting'] = 1; controlledSettingsCount['enableInsecureContentContentSetting'] = 1;
controlledSettingsCount['enableNativeFileSystemWriteContentSetting'] = 1; controlledSettingsCount['enableNativeFileSystemWriteContentSetting'] = 1;
controlledSettingsCount['enablePaymentHandlerContentSetting'] = 1; controlledSettingsCount['enablePaymentHandlerContentSetting'] = 1;
......
...@@ -1967,6 +1967,7 @@ ...@@ -1967,6 +1967,7 @@
}, },
{ {
name: "WebHID", name: "WebHID",
origin_trial_feature_name: "WebHID",
status: "experimental", status: "experimental",
}, },
{ {
......
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