Reviewed-by: Zachary Clark-Williams <zachary.clark-willi...@intel.com>

-----Original Message-----
From: Tan, Ming <ming....@intel.com> 
Sent: Thursday, March 21, 2024 6:16 PM
To: devel@edk2.groups.io
Cc: Kasbekar, Saloni <saloni.kasbe...@intel.com>; Clark-williams, Zachary 
<zachary.clark-willi...@intel.com>; Bi, Dandan <dandan...@intel.com>; POLUDOV, 
FELIX <fel...@ami.com>; Liu, Liqi <liqi....@intel.com>
Subject: [PATCH] NetworkPkg/WifiConnectionManagerDxe: Update UI according to 
UEFI spec

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4736

In UEFI_Spec_2_10_Aug29.pdf page 1694 section 35.5.4 for
EFI_BROWSER_ACTION_FORM_OPEN:
NOTE: EFI_FORM_BROWSER2_PROTOCOL.BrowserCallback() cannot be used with this 
browser action because question values have not been retrieved yet.

So should not call HiiGetBrowserData() and HiiSetBrowserData() in FORM_OPEN 
call back function.

Now use wifi list key and enroll cert key instead of the connect action key, 
move wifi info display from open action to close action.

Cc: Saloni Kasbekar <saloni.kasbe...@intel.com>
Cc: Zachary Clark-williams <zachary.clark-willi...@intel.com>
Cc: Dandan Bi <dandan...@intel.com>
Cc: Felix Polyudov <fel...@ami.com>
Signed-off-by: Liqi Liu <liqi....@intel.com>
Signed-off-by: Ming Tan <ming....@intel.com>
---
  PR: https://github.com/tianocore/edk2/pull/5487

 .../WifiConnectionMgrHiiConfigAccess.c        | 113 ++++++++++++------
 1 file changed, 74 insertions(+), 39 deletions(-)

diff --git 
a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c 
b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c
index 431fcbb33a..f242bdf056 100644
--- a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c
+++ b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAcce
+++ ss.c
@@ -1412,7 +1412,9 @@ WifiMgrDxeHiiConfigAccessCallback (
     return EFI_OUT_OF_RESOURCES;   } -  HiiGetBrowserData 
(&gWifiConfigFormSetGuid, mVendorStorageName, BufferSize, (UINT8 *)IfrNvData);+ 
 if (Action != EFI_BROWSER_ACTION_FORM_OPEN) {+    HiiGetBrowserData 
(&gWifiConfigFormSetGuid, mVendorStorageName, BufferSize, (UINT8 *)IfrNvData);+ 
 }    if (Action == EFI_BROWSER_ACTION_FORM_OPEN) {     switch (QuestionId) {@@ 
-1438,43 +1440,6 @@ WifiMgrDxeHiiConfigAccessCallback (
          break; -      case KEY_CONNECT_ACTION:--        if 
(Private->CurrentNic->UserSelectedProfile == NULL) {-          break;-        
}--        Profile = Private->CurrentNic->UserSelectedProfile;--        //-     
   // Enter the network connection configuration page-        // Recovery from 
restored data-        //-        if (HiiSetString (Private->RegisteredHandle, 
STRING_TOKEN (STR_SSID), Profile->SSId, NULL) == 0) {-          return 
EFI_OUT_OF_RESOURCES;-        }--        IfrNvData->SecurityType = 
Profile->SecurityType;-        if (HiiSetString (-              
Private->RegisteredHandle,-              STRING_TOKEN (STR_SECURITY_TYPE),-     
         mSecurityType[IfrNvData->SecurityType],-              NULL-            
  ) == 0)-        {-          return EFI_OUT_OF_RESOURCES;-        }--        
if ((IfrNvData->SecurityType == SECURITY_TYPE_WPA2_ENTERPRISE) ||-            
(IfrNvData->SecurityType == SECURITY_TYPE_WPA3_ENTERPRISE))-        {-          
IfrNvData->EapAuthMethod       = Profile->EapAuthMethod;-          
IfrNvData->EapSecondAuthMethod = Profile->EapSecondAuthMethod;-          
StrCpyS (IfrNvData->EapIdentity, EAP_IDENTITY_SIZE, Profile->EapIdentity);-     
   }--        break;-       case KEY_ENROLLED_CERT_NAME:          if 
(Private->CurrentNic->UserSelectedProfile == NULL) {@@ -1524,6 +1489,43 @@ 
WifiMgrDxeHiiConfigAccessCallback (
     }   } else if (Action == EFI_BROWSER_ACTION_FORM_CLOSE) {     switch 
(QuestionId) {+      case KEY_EAP_ENROLL_CERT_FROM_FILE:++        if 
(Private->CurrentNic->UserSelectedProfile == NULL) {+          break;+        
}++        Profile = Private->CurrentNic->UserSelectedProfile;++        //+     
   // Enter the network connection configuration page+        // Recovery from 
restored data+        //+        if (HiiSetString (Private->RegisteredHandle, 
STRING_TOKEN (STR_SSID), Profile->SSId, NULL) == 0) {+          return 
EFI_OUT_OF_RESOURCES;+        }++        IfrNvData->SecurityType = 
Profile->SecurityType;+        if (HiiSetString (+              
Private->RegisteredHandle,+              STRING_TOKEN (STR_SECURITY_TYPE),+     
         mSecurityType[IfrNvData->SecurityType],+              NULL+            
  ) == 0)+        {+          return EFI_OUT_OF_RESOURCES;+        }++        
if (  (IfrNvData->SecurityType == SECURITY_TYPE_WPA2_ENTERPRISE)+           || 
(IfrNvData->SecurityType == SECURITY_TYPE_WPA3_ENTERPRISE))+        {+          
IfrNvData->EapAuthMethod       = Profile->EapAuthMethod;+          
IfrNvData->EapSecondAuthMethod = Profile->EapSecondAuthMethod;+          
StrCpyS (IfrNvData->EapIdentity, EAP_IDENTITY_SIZE, Profile->EapIdentity);+     
   }++        break;+       case KEY_CONNECT_ACTION:          if 
(Private->CurrentNic->UserSelectedProfile == NULL) {@@ -1909,6 +1911,39 @@ 
WifiMgrDxeHiiConfigAccessCallback (
               NULL               );           }++          if 
(Private->CurrentNic->UserSelectedProfile == NULL) {+            break;+        
  }++          Profile = Private->CurrentNic->UserSelectedProfile;++          
//+          // Enter the network connection configuration page+          // 
Recovery from restored data+          //+          if (HiiSetString 
(Private->RegisteredHandle, STRING_TOKEN (STR_SSID), Profile->SSId, NULL) == 0) 
{+            return EFI_OUT_OF_RESOURCES;+          }++          
IfrNvData->SecurityType = Profile->SecurityType;+          if (HiiSetString (+  
              Private->RegisteredHandle,+                STRING_TOKEN 
(STR_SECURITY_TYPE),+                mSecurityType[IfrNvData->SecurityType],+   
             NULL+                ) == 0)+          {+            return 
EFI_OUT_OF_RESOURCES;+          }++          if (  (IfrNvData->SecurityType == 
SECURITY_TYPE_WPA2_ENTERPRISE)+             || (IfrNvData->SecurityType == 
SECURITY_TYPE_WPA3_ENTERPRISE))+          {+            
IfrNvData->EapAuthMethod       = Profile->EapAuthMethod;+            
IfrNvData->EapSecondAuthMethod = Profile->EapSecondAuthMethod;+            
StrCpyS (IfrNvData->EapIdentity, EAP_IDENTITY_SIZE, Profile->EapIdentity);+     
     }         }          break;@@ -1944,7 +1979,7 @@ 
WifiMgrDxeHiiConfigAccessCallback (
     }   } -  if (!EFI_ERROR (Status)) {+  if (!EFI_ERROR (Status) && (Action 
!= EFI_BROWSER_ACTION_FORM_OPEN)) {     //     // Pass changed uncommitted data 
back to Form Browser.     //-- 
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#117605): https://edk2.groups.io/g/devel/message/117605
Mute This Topic: https://groups.io/mt/105077953/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to