Commit 5475a8b0 authored by Gordon Seto's avatar Gordon Seto Committed by Chromium LUCI CQ

[CrOS Settings] Create esim-manager-utils.

Extract fetching pending eSIM profiles logic into esim-manager-utils.
This is to avoid duplicate logic when querying for eSIM profiles
in the settings page in follow-up CL crrev.com/c/2572748.

Bug: 1093185
Change-Id: I0181c48f704fab518124ef2422ef38814206b86f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2570545
Commit-Queue: Gordon Seto <gordonseto@google.com>
Reviewed-by: default avatarAzeem Arshad <azeemarshad@chromium.org>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#833834}
parent 8724c134
...@@ -104,6 +104,7 @@ preprocess_if_expr("preprocess_generated") { ...@@ -104,6 +104,7 @@ preprocess_if_expr("preprocess_generated") {
"chromeos/cellular_setup/esim_flow_ui.m.js", "chromeos/cellular_setup/esim_flow_ui.m.js",
"chromeos/cellular_setup/final_page.m.js", "chromeos/cellular_setup/final_page.m.js",
"chromeos/cellular_setup/mojo_interface_provider.m.js", "chromeos/cellular_setup/mojo_interface_provider.m.js",
"chromeos/cellular_setup/esim_manager_utils.m.js",
"chromeos/cellular_setup/profile_discovery_list_item.m.js", "chromeos/cellular_setup/profile_discovery_list_item.m.js",
"chromeos/cellular_setup/profile_discovery_list_page.m.js", "chromeos/cellular_setup/profile_discovery_list_page.m.js",
"chromeos/cellular_setup/provisioning_page.m.js", "chromeos/cellular_setup/provisioning_page.m.js",
...@@ -217,6 +218,8 @@ preprocess_if_expr("preprocess_polymer2") { ...@@ -217,6 +218,8 @@ preprocess_if_expr("preprocess_polymer2") {
"chromeos/cellular_setup/final_page.js", "chromeos/cellular_setup/final_page.js",
"chromeos/cellular_setup/mojo_interface_provider.html", "chromeos/cellular_setup/mojo_interface_provider.html",
"chromeos/cellular_setup/mojo_interface_provider.js", "chromeos/cellular_setup/mojo_interface_provider.js",
"chromeos/cellular_setup/esim_manager_utils.html",
"chromeos/cellular_setup/esim_manager_utils.js",
"chromeos/cellular_setup/profile_discovery_list_item.html", "chromeos/cellular_setup/profile_discovery_list_item.html",
"chromeos/cellular_setup/profile_discovery_list_item.js", "chromeos/cellular_setup/profile_discovery_list_item.js",
"chromeos/cellular_setup/profile_discovery_list_page.html", "chromeos/cellular_setup/profile_discovery_list_page.html",
......
...@@ -17,6 +17,7 @@ js_type_check("closure_compile") { ...@@ -17,6 +17,7 @@ js_type_check("closure_compile") {
":cellular_setup", ":cellular_setup",
":cellular_setup_delegate", ":cellular_setup_delegate",
":cellular_types", ":cellular_types",
":esim_manager_utils",
":final_page", ":final_page",
":mojo_interface_provider", ":mojo_interface_provider",
":profile_discovery_list_item", ":profile_discovery_list_item",
...@@ -109,6 +110,7 @@ js_library("esim_flow_ui") { ...@@ -109,6 +110,7 @@ js_library("esim_flow_ui") {
deps = [ deps = [
":activation_code_page", ":activation_code_page",
":cellular_setup_delegate", ":cellular_setup_delegate",
":esim_manager_utils",
":mojo_interface_provider", ":mojo_interface_provider",
":profile_discovery_list_item", ":profile_discovery_list_item",
":profile_discovery_list_page", ":profile_discovery_list_page",
...@@ -160,6 +162,10 @@ js_library("mojo_interface_provider") { ...@@ -160,6 +162,10 @@ js_library("mojo_interface_provider") {
] ]
} }
js_library("esim_manager_utils") {
deps = [ ":mojo_interface_provider" ]
}
# Polymer3 files # Polymer3 files
js_type_check("closure_compile_module") { js_type_check("closure_compile_module") {
...@@ -172,6 +178,7 @@ js_type_check("closure_compile_module") { ...@@ -172,6 +178,7 @@ js_type_check("closure_compile_module") {
":cellular_setup_delegate.m", ":cellular_setup_delegate.m",
":cellular_types.m", ":cellular_types.m",
":esim_flow_ui.m", ":esim_flow_ui.m",
":esim_manager_utils.m",
":final_page.m", ":final_page.m",
":mojo_interface_provider.m", ":mojo_interface_provider.m",
":profile_discovery_list_item.m", ":profile_discovery_list_item.m",
...@@ -239,6 +246,12 @@ js_library("mojo_interface_provider.m") { ...@@ -239,6 +246,12 @@ js_library("mojo_interface_provider.m") {
extra_deps = [ ":modulize" ] extra_deps = [ ":modulize" ]
} }
js_library("esim_manager_utils.m") {
sources = [ "$root_gen_dir/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_manager_utils.m.js" ]
deps = [ ":mojo_interface_provider.m" ]
extra_deps = [ ":modulize" ]
}
js_library("webview_post_util.m") { js_library("webview_post_util.m") {
sources = [ "$root_gen_dir/ui/webui/resources/cr_components/chromeos/cellular_setup/webview_post_util.m.js" ] sources = [ "$root_gen_dir/ui/webui/resources/cr_components/chromeos/cellular_setup/webview_post_util.m.js" ]
deps = [] deps = []
...@@ -325,6 +338,7 @@ js_library("esim_flow_ui.m") { ...@@ -325,6 +338,7 @@ js_library("esim_flow_ui.m") {
":activation_code_page.m", ":activation_code_page.m",
":cellular_setup_delegate.m", ":cellular_setup_delegate.m",
":cellular_types.m", ":cellular_types.m",
":esim_manager_utils.m",
":final_page.m", ":final_page.m",
":mojo_interface_provider.m", ":mojo_interface_provider.m",
":profile_discovery_list_item.m", ":profile_discovery_list_item.m",
...@@ -487,6 +501,7 @@ js_modulizer("modulize") { ...@@ -487,6 +501,7 @@ js_modulizer("modulize") {
"cellular_types.js", "cellular_types.js",
"cellular_setup_delegate.js", "cellular_setup_delegate.js",
"mojo_interface_provider.js", "mojo_interface_provider.js",
"esim_manager_utils.js",
"subflow_behavior.js", "subflow_behavior.js",
"webview_post_util.js", "webview_post_util.js",
] ]
......
<link rel="import" href="../../../html/polymer.html"> <link rel="import" href="../../../html/polymer.html">
<link rel="import" href="../../../html/i18n_behavior.html"> <link rel="import" href="../../../html/i18n_behavior.html">
<link rel="import" href="mojo_interface_provider.html"> <link rel="import" href="mojo_interface_provider.html">
<link rel="import" href="esim_manager_utils.html">
<link rel="import" href="subflow_behavior.html"> <link rel="import" href="subflow_behavior.html">
<link rel="import" href="cellular_types.html"> <link rel="import" href="cellular_types.html">
<link rel="import" href="cellular_setup_delegate.html"> <link rel="import" href="cellular_setup_delegate.html">
......
...@@ -117,23 +117,22 @@ cr.define('cellular_setup', function() { ...@@ -117,23 +117,22 @@ cr.define('cellular_setup', function() {
/** @private */ /** @private */
fetchProfiles_() { fetchProfiles_() {
let euicc;
this.eSimManagerRemote_.getAvailableEuiccs() this.eSimManagerRemote_.getAvailableEuiccs()
.then(response => { .then(response => {
// TODO(crbug.com/1093185) User should have at least 1 EUICC or // TODO(crbug.com/1093185) User should have at least 1 EUICC or
// we shouldn't have gotten to this flow. Add check for this in // we shouldn't have gotten to this flow. Add check for this in
// cellular_setup. // cellular_setup.
this.euicc_ = response.euiccs[0]; euicc = response.euiccs[0];
return this.euicc_.requestPendingProfiles(); this.euicc_ = euicc;
return euicc.requestPendingProfiles();
}) })
.then(response => { .then(response => {
if (response.result === if (response.result ===
chromeos.cellularSetup.mojom.ESimOperationResult.kFailure) { chromeos.cellularSetup.mojom.ESimOperationResult.kFailure) {
console.error('Error requesting pending profiles: ' + response); console.error('Error requesting pending profiles: ' + response);
} }
return this.euicc_.getProfileList(); return cellular_setup.getPendingESimProfiles(euicc);
})
.then(response => {
return this.filterForPendingProfiles_(response.profiles);
}) })
.then(profiles => { .then(profiles => {
this.pendingProfiles_ = profiles; this.pendingProfiles_ = profiles;
...@@ -154,28 +153,6 @@ cr.define('cellular_setup', function() { ...@@ -154,28 +153,6 @@ cr.define('cellular_setup', function() {
}); });
}, },
/**
* @private
* @param {!Array<!chromeos.cellularSetup.mojom.ESimProfileRemote>} profiles
* @return {!Promise<Array<!chromeos.cellularSetup.mojom.ESimProfileRemote>>}
*/
filterForPendingProfiles_(profiles) {
const profilePromises = profiles.map(profile => {
return profile.getProperties().then(response => {
if (response.properties.state !==
chromeos.cellularSetup.mojom.ProfileState.kPending) {
return null;
}
return profile;
});
});
return Promise.all(profilePromises).then(profiles => {
return profiles.filter(profile => {
return profile !== null;
});
});
},
/** /**
* @private * @private
* @param {{result: chromeos.cellularSetup.mojom.ProfileInstallResult}} * @param {{result: chromeos.cellularSetup.mojom.ProfileInstallResult}}
......
<link rel="import" href="mojo_interface_provider.html">
<script src="esim_manager_utils.js"></script>
\ No newline at end of file
// Copyright 2020 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.
// clang-format off
// #import {getESimManagerRemote} from 'chrome://resources/cr_components/chromeos/cellular_setup/mojo_interface_provider.m.js';
// clang-format on
cr.define('cellular_setup', function() {
/**
* Fetches the EUICC's eSIM profiles with status 'Pending'.
* @param {!chromeos.cellularSetup.mojom.EuiccRemote} euicc
* @return {!Promise<Array<!chromeos.cellularSetup.mojom.ESimProfileRemote>>}
*/
/* #export */ function getPendingESimProfiles(euicc) {
return euicc.getProfileList().then(response => {
return filterForPendingProfiles_(response.profiles);
});
}
/**
* @private
* @param {!Array<!chromeos.cellularSetup.mojom.ESimProfileRemote>} profiles
* @return {!Promise<Array<!chromeos.cellularSetup.mojom.ESimProfileRemote>>}
*/
function filterForPendingProfiles_(profiles) {
const profilePromises = profiles.map(profile => {
return profile.getProperties().then(response => {
if (response.properties.state !==
chromeos.cellularSetup.mojom.ProfileState.kPending) {
return null;
}
return profile;
});
});
return Promise.all(profilePromises).then(profiles => {
return profiles.filter(profile => {
return profile !== null;
});
});
}
// #cr_define_end
return {
getPendingESimProfiles,
};
});
...@@ -19,6 +19,7 @@ cr_components_chromeos_namespace_rewrites = [ ...@@ -19,6 +19,7 @@ cr_components_chromeos_namespace_rewrites = [
"cellular_setup.setCellularSetupRemoteForTesting|setCellularSetupRemoteForTesting", "cellular_setup.setCellularSetupRemoteForTesting|setCellularSetupRemoteForTesting",
"cellular_setup.getESimManagerRemote|getESimManagerRemote", "cellular_setup.getESimManagerRemote|getESimManagerRemote",
"cellular_setup.setESimManagerRemoteForTesting|setESimManagerRemoteForTesting", "cellular_setup.setESimManagerRemoteForTesting|setESimManagerRemoteForTesting",
"cellular_setup.getPendingESimProfiles|getPendingESimProfiles",
"cellular_setup.CellularSetupDelegate|CellularSetupDelegate", "cellular_setup.CellularSetupDelegate|CellularSetupDelegate",
"network_config.MojoInterfaceProvider|MojoInterfaceProvider", "network_config.MojoInterfaceProvider|MojoInterfaceProvider",
"network_config.MojoInterfaceProviderImpl|MojoInterfaceProviderImpl", "network_config.MojoInterfaceProviderImpl|MojoInterfaceProviderImpl",
...@@ -33,6 +34,7 @@ cr_components_chromeos_auto_imports = [ ...@@ -33,6 +34,7 @@ cr_components_chromeos_auto_imports = [
"ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup_delegate.html|CellularSetupDelegate", "ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup_delegate.html|CellularSetupDelegate",
"ui/webui/resources/cr_components/chromeos/cellular_setup/subflow_behavior.html|SubflowBehavior", "ui/webui/resources/cr_components/chromeos/cellular_setup/subflow_behavior.html|SubflowBehavior",
"ui/webui/resources/cr_components/chromeos/cellular_setup/mojo_interface_provider.html|setCellularSetupRemoteForTesting,getCellularSetupRemote,setESimManagerRemoteForTesting,getESimManagerRemote", "ui/webui/resources/cr_components/chromeos/cellular_setup/mojo_interface_provider.html|setCellularSetupRemoteForTesting,getCellularSetupRemote,setESimManagerRemoteForTesting,getESimManagerRemote",
"ui/webui/resources/cr_components/chromeos/cellular_setup/esim_manager_utils.html|getPendingESimProfiles",
"ui/webui/resources/cr_components/chromeos/network/cr_policy_network_behavior_mojo.html|CrPolicyNetworkBehaviorMojo", "ui/webui/resources/cr_components/chromeos/network/cr_policy_network_behavior_mojo.html|CrPolicyNetworkBehaviorMojo",
"ui/webui/resources/cr_components/chromeos/network/onc_mojo.html|OncMojo", "ui/webui/resources/cr_components/chromeos/network/onc_mojo.html|OncMojo",
"ui/webui/resources/cr_components/chromeos/network/network_config_element_behavior.html|NetworkConfigElementBehavior", "ui/webui/resources/cr_components/chromeos/network/network_config_element_behavior.html|NetworkConfigElementBehavior",
......
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