Commit f2b0e460 authored by Steven Bennetts's avatar Steven Bennetts Committed by Commit Bot

Settings > Internet: Use mojo GetNetworkCertificates api

This and uses the mojo API for GetNetworkCertificates in the internet
configuration WebUI.

This also removes the last references to networkingPrivate in the
Settings UI!

For minor default value change in .mojom (documentation only since JS
does not get default values):
TBR=dcheng@chromium.org

Bug: 1001598
Change-Id: I190b0aa30111abee05024da4ca3e21523b2a5273
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1809852Reviewed-by: default avatarSteven Bennetts <stevenjb@chromium.org>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#699955}
parent edf567b3
...@@ -51,7 +51,6 @@ ...@@ -51,7 +51,6 @@
<div slot="title">[[getDialogTitle_(type)]]</div> <div slot="title">[[getDialogTitle_(type)]]</div>
<div slot="body"> <div slot="body">
<network-config id="networkConfig" class="flex" <network-config id="networkConfig" class="flex"
networking-private="[[networkingPrivate]]"
guid="[[guid_]]" type="{{type_}}" guid="[[guid_]]" type="{{type_}}"
enable-connect="{{enableConnect_}}" enable-connect="{{enableConnect_}}"
share-allow-enable="[[shareAllowEnable_]]" share-allow-enable="[[shareAllowEnable_]]"
......
...@@ -14,15 +14,6 @@ Polymer({ ...@@ -14,15 +14,6 @@ Polymer({
behaviors: [I18nBehavior], behaviors: [I18nBehavior],
properties: { properties: {
/**
* Interface for networkingPrivate calls.
* @type {NetworkingPrivate}
*/
networkingPrivate: {
type: Object,
value: chrome.networkingPrivate,
},
/** @private */ /** @private */
shareAllowEnable_: { shareAllowEnable_: {
type: Boolean, type: Boolean,
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
</div> </div>
<div slot="body"> <div slot="body">
<network-config id="networkConfig" class="flex" <network-config id="networkConfig" class="flex"
networking-private="[[networkingPrivate]]"
guid="[[guid]]" name="{{name}}" type="{{type}}" guid="[[guid]]" name="{{name}}" type="{{type}}"
enable-connect="{{enableConnect_}}" enable-save="{{enableSave_}}" enable-connect="{{enableConnect_}}" enable-save="{{enableSave_}}"
share-allow-enable="[[shareAllowEnable_]]" share-allow-enable="[[shareAllowEnable_]]"
......
...@@ -12,12 +12,6 @@ Polymer({ ...@@ -12,12 +12,6 @@ Polymer({
behaviors: [I18nBehavior], behaviors: [I18nBehavior],
properties: { properties: {
/**
* Interface for networkingPrivate calls, passed from internet_page.
* @type {NetworkingPrivate}
*/
networkingPrivate: Object,
/** @private */ /** @private */
shareAllowEnable_: { shareAllowEnable_: {
type: Boolean, type: Boolean,
......
<link rel="import" href="chrome://resources/html/polymer.html"> <link rel="import" href="chrome://resources/html/polymer.html">
<link rel="import" href="chrome://resources/cr_components/chromeos/network/mojo_interface_provider.html"> <link rel="import" href="chrome://resources/cr_components/chromeos/network/mojo_interface_provider.html">
<link rel="import" href="chrome://resources/cr_elements/chromeos/network/cr_network_listener_behavior.html">
<link rel="import" href="chrome://resources/cr_elements/cr_expand_button/cr_expand_button.html"> <link rel="import" href="chrome://resources/cr_elements/cr_expand_button/cr_expand_button.html">
<link rel="import" href="chrome://resources/cr_elements/cr_icon_button/cr_icon_button.html"> <link rel="import" href="chrome://resources/cr_elements/cr_icon_button/cr_icon_button.html">
<link rel="import" href="chrome://resources/cr_elements/icons.html"> <link rel="import" href="chrome://resources/cr_elements/icons.html">
...@@ -125,9 +126,7 @@ ...@@ -125,9 +126,7 @@
</settings-animated-pages> </settings-animated-pages>
<template is="dom-if" if="[[showInternetConfig_]]" restamp> <template is="dom-if" if="[[showInternetConfig_]]" restamp>
<internet-config id="configDialog" <internet-config id="configDialog" on-close="onInternetConfigClose_">
networking-private="[[networkingPrivate]]"
on-close="onInternetConfigClose_">
</internet-config> </internet-config>
</template> </template>
......
...@@ -22,14 +22,6 @@ Polymer({ ...@@ -22,14 +22,6 @@ Polymer({
], ],
properties: { properties: {
/**
* Interface for networkingPrivate calls. May be overriden by tests.
* @type {NetworkingPrivate}
*/
networkingPrivate: {
type: Object,
value: chrome.networkingPrivate,
},
/** Preferences state. */ /** Preferences state. */
prefs: { prefs: {
...@@ -145,12 +137,7 @@ Polymer({ ...@@ -145,12 +137,7 @@ Polymer({
/** @private {?settings.InternetPageBrowserProxy} */ /** @private {?settings.InternetPageBrowserProxy} */
browserProxy_: null, browserProxy_: null,
/** /** @private {?chromeos.networkConfig.mojom.CrosNetworkConfigRemote} */
* This UI will use both the networkingPrivate extension API and the
* networkConfig mojo API until we provide all of the required functionality
* in networkConfig. TODO(stevenjb): Remove use of networkingPrivate api.
* @private {?chromeos.networkConfig.mojom.CrosNetworkConfigRemote}
*/
networkConfig_: null, networkConfig_: null,
/** @override */ /** @override */
...@@ -230,7 +217,7 @@ Polymer({ ...@@ -230,7 +217,7 @@ Polymer({
} }
}, },
/** CrosNetworkConfigObserver impl */ /** CrNetworkListenerBehavior override */
onVpnProvidersChanged: function() { onVpnProvidersChanged: function() {
this.networkConfig_.getVpnProviders().then(response => { this.networkConfig_.getVpnProviders().then(response => {
const providers = response.providers; const providers = response.providers;
......
...@@ -120,12 +120,7 @@ Polymer({ ...@@ -120,12 +120,7 @@ Polymer({
/** @private {settings.InternetPageBrowserProxy} */ /** @private {settings.InternetPageBrowserProxy} */
browserProxy_: null, browserProxy_: null,
/** /** @private {?chromeos.networkConfig.mojom.CrosNetworkConfigRemote} */
* This UI will use both the networkingPrivate extension API and the
* networkConfig mojo API until we provide all of the required functionality
* in networkConfig. TODO(stevenjb): Remove use of networkingPrivate api.
* @private {?chromeos.networkConfig.mojom.CrosNetworkConfigRemote}
*/
networkConfig_: null, networkConfig_: null,
/** @override */ /** @override */
......
...@@ -28,6 +28,12 @@ class FakeNetworkConfig { ...@@ -28,6 +28,12 @@ class FakeNetworkConfig {
/** @type {!chromeos.networkConfig.mojom.GlobalPolicy|undefined} */ /** @type {!chromeos.networkConfig.mojom.GlobalPolicy|undefined} */
this.globalPolicy_ = undefined; this.globalPolicy_ = undefined;
/** @type {!Array<!chromeos.networkConfig.mojom.NetworkCertificate>} */
this.serverCas_ = [];
/** @type {!Array<!chromeos.networkConfig.mojom.NetworkCertificate>} */
this.userCerts_ = [];
/** /**
* @type {!Array<!chromeos.networkConfig.mojom.CrosNetworkConfigObserver> * @type {!Array<!chromeos.networkConfig.mojom.CrosNetworkConfigObserver>
*/ */
...@@ -181,6 +187,16 @@ class FakeNetworkConfig { ...@@ -181,6 +187,16 @@ class FakeNetworkConfig {
this.onVpnProvidersChanged(); this.onVpnProvidersChanged();
} }
/**
* @param {!Array<!chromeos.networkConfig.mojom.NetworkCertificate>} serverCas
* @param {!Array<!chromeos.networkConfig.mojom.NetworkCertificate>} userCerts
*/
setCertificatesForTest(serverCas, userCerts) {
this.serverCas_ = serverCas;
this.userCerts_ = userCerts;
this.onNetworkCertificatesChanged();
}
// networkConfig observers // networkConfig observers
onActiveNetworksChanged() { onActiveNetworksChanged() {
...@@ -210,6 +226,10 @@ class FakeNetworkConfig { ...@@ -210,6 +226,10 @@ class FakeNetworkConfig {
this.observers_.forEach(o => o.onVpnProvidersChanged()); this.observers_.forEach(o => o.onVpnProvidersChanged());
} }
onNetworkCertificatesChanged() {
this.observers_.forEach(o => o.onNetworkCertificatesChanged());
}
// networkConfig methods // networkConfig methods
/** /**
...@@ -348,7 +368,7 @@ class FakeNetworkConfig { ...@@ -348,7 +368,7 @@ class FakeNetworkConfig {
getNetworkCertificates() { getNetworkCertificates() {
return new Promise(resolve => { return new Promise(resolve => {
this.methodCalled('getNetworkCertificates'); this.methodCalled('getNetworkCertificates');
resolve({serverCas: [], userCerts: []}); resolve({serverCas: this.serverCas_, userCerts: this.userCerts_});
}); });
} }
} }
// Copyright 2017 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 Fake implementation of chrome.networkingPrivate for testing.
* NOTE: Include "'//ui/webui/resources/js/promise_resolver.js'"
* in any test that uses this.
*/
cr.define('chrome', function() {
/**
* @constructor
* @implements {NetworkingPrivate}
*/
function FakeNetworkingPrivate() {
/** @type {!Object<chrome.networkingPrivate.DeviceStateProperties>} */
this.deviceStates_ = {};
/** @type {!Array<!chrome.networkingPrivate.NetworkStateProperties>} */
this.networkStates_ = [];
/** @type {!{chrome.networkingPrivate.GlobalPolicy}|undefined} */
this.globalPolicy_ = undefined;
/** @type {!{chrome.networkingPrivate.CertificateLists}|undefined} */
this.certificateLists_ = undefined;
/** @private {!Map<string, !PromiseResolver>} */
this.resolverMap_ = new Map();
this.resetForTest();
}
FakeNetworkingPrivate.prototype = {
resetForTest() {
this.deviceStates_ = {
Ethernet: {Type: 'Ethernet', State: 'Enabled'},
WiFi: {Type: 'WiFi', State: ''},
Cellular: {Type: 'Cellular', State: ''},
Tether: {Type: 'Tether', State: ''},
VPN: {Type: 'VPN', State: ''},
};
this.networkStates_ = [
{GUID: 'eth0_guid', Type: 'Ethernet'},
];
this.globalPolicy_ = {};
this.certificateLists_ = {
serverCaCertificates: [],
userCertificates: [],
};
var methodNames = [
'getProperties', 'getProperties', 'getManagedProperties', 'getNetworks',
'getDeviceStates', 'getState', 'enableNetworkType',
'disableNetworkType', 'requestNetworkScan', 'getGlobalPolicy',
'getCertificateLists'
];
methodNames.forEach((methodName) => {
this.resolverMap_.set(methodName, new PromiseResolver());
});
},
/**
* @param {!Array<!chrome.networkingPrivate.NetworkStateProperties>}
* network
*/
addNetworksForTest: function(networks) {
this.networkStates_ = this.networkStates_.concat(networks);
},
/** @param {!{chrome.networkingPrivate.CertificateLists}} */
setCertificatesForTest: function(certificateLists) {
this.certificateLists_ = certificateLists;
},
/**
* @param {string} type
* @return {?chrome.networkingPrivate.DeviceStateProperties}
*/
getDeviceStateForTest: function(type) {
return this.deviceStates_[type] || null;
},
/**
* @param {string} methodName
* @protected
*/
methodCalled(methodName) {
this.getResolver_(methodName).resolve();
},
/**
* @param {string} methodName
* @return {!Promise}
*/
whenCalled(methodName) {
return this.getResolver_(methodName).promise;
},
/**
* @param {string} methodName
* @private
*/
getResolver_(methodName) {
let method = this.resolverMap_.get(methodName);
assert(!!method, `Method '${methodName}' not found.`);
return method;
},
/** NetworkingPrivate implementation */
/** @override */
getProperties: function(guid, callback) {
var result = this.networkStates_.find(function(state) {
return state.GUID == guid;
});
callback(result);
this.methodCalled('getProperties');
},
/** @override */
getManagedProperties: function(guid, callback) {
var result = this.networkStates_.find(function(state) {
return state.GUID == guid;
});
callback(CrOncTest.convertToManagedProperties(result));
this.methodCalled('getManagedProperties');
},
/** @override */
getState: function(guid, callback) {
var result = this.networkStates_.find(function(state) {
return state.GUID == guid;
});
callback(result);
this.methodCalled('getState');
},
/** @override */
setProperties: assertNotReached,
/** @override */
createNetwork: assertNotReached,
/** @override */
forgetNetwork: assertNotReached,
/** @override */
getNetworks: function(filter, callback) {
var type = filter.networkType;
if (type == chrome.networkingPrivate.NetworkType.ALL) {
callback(this.networkStates_.slice());
} else {
callback(this.networkStates_.filter(function(state) {
return state.Type == type;
}));
}
this.methodCalled('getNetworks');
},
/** @override */
getDeviceStates: function(callback) {
var devices = [];
Object.keys(this.deviceStates_).forEach(function(type) {
var state = this.deviceStates_[type];
if (state.State != '') {
devices.push(state);
}
}.bind(this));
callback(devices);
this.methodCalled('getDeviceStates');
},
/** @override */
enableNetworkType: function(type) {
this.deviceStates_[type].State = 'Enabled';
this.onDeviceStateListChanged.callListeners();
this.methodCalled('enableNetworkType');
},
/** @override */
disableNetworkType: function(type) {
this.deviceStates_[type].State = 'Disabled';
this.onDeviceStateListChanged.callListeners();
this.methodCalled('disableNetworkType');
},
/** @override */
requestNetworkScan: function() {
this.methodCalled('requestNetworkScan');
},
/** @override */
startConnect: assertNotReached,
/** @override */
startDisconnect: assertNotReached,
/** @override */
startActivate: assertNotReached,
/** @override */
verifyDestination: assertNotReached,
/** @override */
verifyAndEncryptCredentials: assertNotReached,
/** @override */
verifyAndEncryptData: assertNotReached,
/** @override */
setWifiTDLSEnabledState: assertNotReached,
/** @override */
getWifiTDLSStatus: assertNotReached,
/** @override */
getCaptivePortalStatus: assertNotReached,
/** @override */
unlockCellularSim: assertNotReached,
/** @override */
setCellularSimState: assertNotReached,
/** @override */
selectCellularMobileNetwork: assertNotReached,
/** @override */
getGlobalPolicy: function(callback) {
callback(this.globalPolicy_);
this.methodCalled('getGlobalPolicy');
},
/** @override */
getCertificateLists: function(callback) {
callback(this.certificateLists_);
this.methodCalled('getCertificateLists');
},
/** @type {!FakeChromeEvent} */
onNetworksChanged: new FakeChromeEvent(),
/** @type {!FakeChromeEvent} */
onNetworkListChanged: new FakeChromeEvent(),
/** @type {!FakeChromeEvent} */
onDeviceStateListChanged: new FakeChromeEvent(),
/** @type {!FakeChromeEvent} */
onActiveNetworksChanged: new FakeChromeEvent(),
/** @type {!FakeChromeEvent} */
onPortalDetectionCompleted: new FakeChromeEvent(),
/** @type {!FakeChromeEvent} */
onCertificateListsChanged: new FakeChromeEvent(),
};
return {FakeNetworkingPrivate: FakeNetworkingPrivate};
});
...@@ -95,7 +95,6 @@ CrComponentsNetworkConfigTest.prototype = { ...@@ -95,7 +95,6 @@ CrComponentsNetworkConfigTest.prototype = {
'//ui/webui/resources/js/promise_resolver.js', '//ui/webui/resources/js/promise_resolver.js',
'../fake_chrome_event.js', '../fake_chrome_event.js',
'../chromeos/networking_private_constants.js', '../chromeos/networking_private_constants.js',
'../chromeos/fake_networking_private.js',
'../chromeos/fake_network_config_mojom.js', '../chromeos/fake_network_config_mojom.js',
'../chromeos/cr_onc_strings.js', '../chromeos/cr_onc_strings.js',
'network_config_test.js', 'network_config_test.js',
......
...@@ -5,14 +5,10 @@ ...@@ -5,14 +5,10 @@
suite('network-config', function() { suite('network-config', function() {
var networkConfig; var networkConfig;
/** @type {NetworkingPrivate} */
var api_;
/** @type {?chromeos.networkConfig.mojom.CrosNetworkConfigRemote} */ /** @type {?chromeos.networkConfig.mojom.CrosNetworkConfigRemote} */
let mojoApi_ = null; let mojoApi_ = null;
suiteSetup(function() { suiteSetup(function() {
api_ = new chrome.FakeNetworkingPrivate(); // For certificates
mojoApi_ = new FakeNetworkConfig(); mojoApi_ = new FakeNetworkConfig();
network_config.MojoInterfaceProviderImpl.getInstance().remote_ = mojoApi_; network_config.MojoInterfaceProviderImpl.getInstance().remote_ = mojoApi_;
CrOncTest.overrideCrOncStrings(); CrOncTest.overrideCrOncStrings();
...@@ -23,7 +19,6 @@ suite('network-config', function() { ...@@ -23,7 +19,6 @@ suite('network-config', function() {
mojoApi_.setManagedPropertiesForTest(properties); mojoApi_.setManagedPropertiesForTest(properties);
PolymerTest.clearBody(); PolymerTest.clearBody();
networkConfig = document.createElement('network-config'); networkConfig = document.createElement('network-config');
networkConfig.networkingPrivate = api_;
networkConfig.guid = properties.guid; networkConfig.guid = properties.guid;
networkConfig.managedProperties = properties; networkConfig.managedProperties = properties;
} }
...@@ -31,7 +26,6 @@ suite('network-config', function() { ...@@ -31,7 +26,6 @@ suite('network-config', function() {
function setNetworkType(type, security) { function setNetworkType(type, security) {
PolymerTest.clearBody(); PolymerTest.clearBody();
networkConfig = document.createElement('network-config'); networkConfig = document.createElement('network-config');
networkConfig.networkingPrivate = api_;
networkConfig.type = OncMojo.getNetworkTypeString(type); networkConfig.type = OncMojo.getNetworkTypeString(type);
if (security !== undefined) { if (security !== undefined) {
networkConfig.securityType = security; networkConfig.securityType = security;
...@@ -131,8 +125,7 @@ suite('network-config', function() { ...@@ -131,8 +125,7 @@ suite('network-config', function() {
const kHash1 = 'TESTHASH1', kHash2 = 'TESTHASH2'; const kHash1 = 'TESTHASH1', kHash2 = 'TESTHASH2';
var clientCert = {hash: kHash1, hardwareBacked: true, deviceWide: false}; var clientCert = {hash: kHash1, hardwareBacked: true, deviceWide: false};
var caCert = {hash: kHash2, hardwareBacked: true, deviceWide: true}; var caCert = {hash: kHash2, hardwareBacked: true, deviceWide: true};
api_.setCertificatesForTest( mojoApi_.setCertificatesForTest([caCert], [clientCert]);
{serverCaCertificates: [caCert], userCertificates: [clientCert]});
this.selectedUserCertHash_ = kHash1; this.selectedUserCertHash_ = kHash1;
this.selectedServerCaHash_ = kHash2; this.selectedServerCaHash_ = kHash2;
} }
...@@ -255,32 +248,34 @@ suite('network-config', function() { ...@@ -255,32 +248,34 @@ suite('network-config', function() {
setCertificatesForTest(); setCertificatesForTest();
setAuthenticated(); setAuthenticated();
initNetworkConfig(); initNetworkConfig();
return flushAsync().then(() => { return mojoApi_.whenCalled('getNetworkCertificates').then(() => {
let outer = networkConfig.$$('#outer'); return flushAsync().then(() => {
assertEquals('EAP-TLS', outer.value); let outer = networkConfig.$$('#outer');
assertEquals('EAP-TLS', outer.value);
// check that a valid client user certificate is selected // check that a valid client user certificate is selected
let clientCert = networkConfig.$$('#userCert').$$('select').value; let clientCert = networkConfig.$$('#userCert').$$('select').value;
assertTrue(!!clientCert); assertTrue(!!clientCert);
let caCert = networkConfig.$$('#serverCa').$$('select').value; let caCert = networkConfig.$$('#serverCa').$$('select').value;
assertTrue(!!caCert); assertTrue(!!caCert);
let share = networkConfig.$$('#share'); let share = networkConfig.$$('#share');
assertTrue(!!share); assertTrue(!!share);
// share the EAP TLS network // share the EAP TLS network
share.checked = true; share.checked = true;
// trigger the onShareChanged_ event // trigger the onShareChanged_ event
var event = new Event('change'); var event = new Event('change');
share.dispatchEvent(event); share.dispatchEvent(event);
// check that share is enabled // check that share is enabled
assertTrue(share.checked); assertTrue(share.checked);
// check that client certificate selection is empty // check that client certificate selection is empty
clientCert = networkConfig.$$('#userCert').$$('select').value; clientCert = networkConfig.$$('#userCert').$$('select').value;
assertFalse(!!clientCert); assertFalse(!!clientCert);
// check that ca device-wide cert is still selected // check that ca device-wide cert is still selected
caCert = networkConfig.$$('#serverCa').$$('select').value; caCert = networkConfig.$$('#serverCa').$$('select').value;
assertTrue(!!caCert); assertTrue(!!caCert);
});
}); });
}); });
}); });
......
...@@ -677,7 +677,7 @@ struct EAPConfigProperties { ...@@ -677,7 +677,7 @@ struct EAPConfigProperties {
bool save_credentials = false; bool save_credentials = false;
array<string>? server_ca_pems; array<string>? server_ca_pems;
string? subject_match; string? subject_match;
bool use_system_cas = true; bool use_system_cas = false;
}; };
// Subset of currently implemented config properties in the UI. Additional // Subset of currently implemented config properties in the UI. Additional
......
...@@ -52,6 +52,7 @@ js_library("network_config") { ...@@ -52,6 +52,7 @@ js_library("network_config") {
deps = [ deps = [
"//chromeos/services/network_config/public/mojom:mojom_js_library_for_compile", "//chromeos/services/network_config/public/mojom:mojom_js_library_for_compile",
"//ui/webui/resources/cr_components/chromeos/network:mojo_interface_provider", "//ui/webui/resources/cr_components/chromeos/network:mojo_interface_provider",
"//ui/webui/resources/cr_elements/chromeos/network:cr_network_listener_behavior",
"//ui/webui/resources/js:assert", "//ui/webui/resources/js:assert",
"//ui/webui/resources/js:i18n_behavior", "//ui/webui/resources/js:i18n_behavior",
] ]
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
<link rel="import" href="chrome://resources/cr_components/chromeos/network/mojo_interface_provider.html"> <link rel="import" href="chrome://resources/cr_components/chromeos/network/mojo_interface_provider.html">
<link rel="import" href="chrome://resources/cr_elements/action_link_css.html"> <link rel="import" href="chrome://resources/cr_elements/action_link_css.html">
<link rel="import" href="chrome://resources/cr_elements/chromeos/network/cr_network_listener_behavior.html">
<link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html"> <link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html">
<link rel="import" href="chrome://resources/cr_elements/cr_toggle/cr_toggle.html"> <link rel="import" href="chrome://resources/cr_elements/cr_toggle/cr_toggle.html">
<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_indicator.html"> <link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_indicator.html">
......
...@@ -75,14 +75,15 @@ Polymer({ ...@@ -75,14 +75,15 @@ Polymer({
/** /**
* Returns a localized label for |item|. If |this.key| is set, |item| is * Returns a localized label for |item|. If |this.key| is set, |item| is
* expected to be an enum and the key is used to convert it to a string. * expected to be an enum and the key is used to convert it to a string.
* @param {string|number|!chrome.networkingPrivate.Certificate} item * @param {string|number|!chromeos.networkConfig.mojom.NetworkCertificate}
* item
* @return {string} * @return {string}
* @private * @private
*/ */
getItemLabel_: function(item) { getItemLabel_: function(item) {
if (this.certList) { if (this.certList) {
return this.getCertificateName_( return this.getCertificateName_(
/** @type {chrome.networkingPrivate.Certificate}*/ (item)); /** @type {chromeos.networkConfig.mojom.NetworkCertificate}*/ (item));
} }
let value; let value;
if (this.key) { if (this.key) {
...@@ -105,26 +106,29 @@ Polymer({ ...@@ -105,26 +106,29 @@ Polymer({
}, },
/** /**
* @param {string|!chrome.networkingPrivate.Certificate} item * @param {string|!chromeos.networkConfig.mojom.NetworkCertificate} item
* @return {string} * @return {string}
* @private * @private
*/ */
getItemValue_: function(item) { getItemValue_: function(item) {
if (this.certList) { if (this.certList) {
return /** @type {chrome.networkingPrivate.Certificate}*/ (item).hash; return /** @type {chromeos.networkConfig.mojom.NetworkCertificate}*/ (
item)
.hash;
} }
return /** @type {string} */ (item); return /** @type {string} */ (item);
}, },
/** /**
* @param {string|!chrome.networkingPrivate.Certificate} item * @param {string|!chromeos.networkConfig.mojom.NetworkCertificate} item
* @return {boolean} * @return {boolean}
* @private * @private
*/ */
getItemEnabled_: function(item) { getItemEnabled_: function(item) {
if (this.certList) { if (this.certList) {
const cert = /** @type {chrome.networkingPrivate.Certificate}*/ (item); const cert =
if (this.deviceCertsOnly && !(cert.deviceWide || cert.isDefault)) { /** @type {chromeos.networkConfig.mojom.NetworkCertificate}*/ (item);
if (this.deviceCertsOnly && !cert.deviceWide) {
return false; return false;
} }
return !!cert.hash; return !!cert.hash;
...@@ -133,7 +137,7 @@ Polymer({ ...@@ -133,7 +137,7 @@ Polymer({
}, },
/** /**
* @param {!chrome.networkingPrivate.Certificate} certificate * @param {!chromeos.networkConfig.mojom.NetworkCertificate} certificate
* @return {string} * @return {string}
* @private * @private
*/ */
......
...@@ -4,9 +4,8 @@ ...@@ -4,9 +4,8 @@
/** /**
* @fileoverview Utilities supporting network_config.mojom types. The strings * @fileoverview Utilities supporting network_config.mojom types. The strings
* returned here should only be used for compatibility with the * returned in the getFooTypeString methods are used for looking up localized
* networkingPrivate extension API and for debugging, they are not intended to * strings and for debugging. They are not intended to be drectly user facing.
* be user facing.
*/ */
class OncMojo { class OncMojo {
......
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