From: Keysound Chang Date: Thu, 9 Apr 2020 06:56:41 +0000 (+0800) Subject: NetworkPkg/TlsAuthConfigDxe: Use HiiPopUp() instead of CreatePopUp() X-Git-Tag: edk2-stable202005~178 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=ddfb0ab1bb98161e4684572d1194328ed9d824cb NetworkPkg/TlsAuthConfigDxe: Use HiiPopUp() instead of CreatePopUp() REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2635 According to EDK2 Driver Writer's Guide For UEFI 2.3.1, 4.2.18 Offer alternatives to function keys. Configuration of drivers should be accomplished via HII and via OS-present interfaces. Cc: Jiaxin Wu Cc: Siyuan Fu Signed-off-by: Maciej Rabeda Reviewed-by: Siyuan Fu Reviewed-by: Maciej Rabeda --- diff --git a/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf b/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf index 3fc924a1d4..0ada835252 100644 --- a/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf +++ b/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf @@ -52,6 +52,7 @@ [Protocols] gEfiDevicePathProtocolGuid ## PRODUCES gEfiHiiConfigAccessProtocolGuid ## PRODUCES + gEfiHiiPopupProtocolGuid ## CONSUMES [Guids] gTlsAuthConfigGuid ## PRODUCES ## GUID diff --git a/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxeStrings.uni b/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxeStrings.uni index 973b8b7716..2b4a27d24e 100644 --- a/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxeStrings.uni +++ b/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxeStrings.uni @@ -28,6 +28,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #string STR_TLS_AUTH_CONFIG_SAVE_AND_EXIT #language en-US "Commit Changes and Exit" #string STR_TLS_AUTH_CONFIG_NO_SAVE_AND_EXIT #language en-US "Discard Changes and Exit" +#string STR_TLS_AUTH_ENROLL_CERT_FAILURE #language en-US "Enroll Cert Failure!" + #string STR_CERT_TYPE_PCKS_GUID #language en-US "GUID for CERT" #string STR_NULL #language en-US "" diff --git a/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigImpl.c b/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigImpl.c index 2481d1098f..110fe87145 100644 --- a/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigImpl.c +++ b/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigImpl.c @@ -1383,7 +1383,6 @@ TlsAuthConfigAccessCallback ( OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest ) { - EFI_INPUT_KEY Key; EFI_STATUS Status; RETURN_STATUS RStatus; TLS_AUTH_CONFIG_PRIVATE_DATA *Private; @@ -1391,6 +1390,8 @@ TlsAuthConfigAccessCallback ( TLS_AUTH_CONFIG_IFR_NVDATA *IfrNvData; UINT16 LabelId; EFI_DEVICE_PATH_PROTOCOL *File; + EFI_HII_POPUP_PROTOCOL *HiiPopUp; + EFI_HII_POPUP_SELECTION PopUpSelect; Status = EFI_SUCCESS; File = NULL; @@ -1402,6 +1403,11 @@ TlsAuthConfigAccessCallback ( Private = TLS_AUTH_CONFIG_PRIVATE_FROM_THIS (This); mTlsAuthPrivateData = Private; + Status = gBS->LocateProtocol (&gEfiHiiPopupProtocolGuid, NULL, (VOID**) &HiiPopUp); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "Can't find Form PopUp protocol. Exit (%r)\n", Status)); + return Status; + } // // Retrieve uncommitted data from Browser @@ -1460,11 +1466,13 @@ TlsAuthConfigAccessCallback ( if (EFI_ERROR (Status)) { CleanFileContext (Private); - CreatePopUp ( - EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, - &Key, - L"ERROR: Enroll Cert Failure!", - NULL + HiiPopUp->CreatePopup ( + HiiPopUp, + EfiHiiPopupStyleError, + EfiHiiPopupTypeOk, + Private->RegisteredHandle, + STRING_TOKEN (STR_TLS_AUTH_ENROLL_CERT_FAILURE), + &PopUpSelect ); } break; diff --git a/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigImpl.h b/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigImpl.h index e9af492893..68c16845b3 100644 --- a/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigImpl.h +++ b/NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigImpl.h @@ -14,6 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #include #include +#include // // Libraries