Update for SecurityPkg.

Per UEFI spec, on CallBack action EFI_BROWSER_ACTION_CHANGING, the return value of ActionRequest will be ignored, but on CallBack action EFI_BROWSER_ACTION_CHANGED, the return value of ActionRequest will be used. 
But, EDKII browser still processes the got ActionRequest. And, all HII drivers in EDKII project also returns their expected ActionRequest value on action EFI_BROWSER_ACTION_CHANGING. 
Now update the browser to follow the spec, and update all core Hii drivers to keep old working modal.

Signed-off-by: ydong10
Reviewed-by: lgao4

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12868 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
ydong10
2011-12-15 02:59:03 +00:00
parent 639a76d191
commit fab1046560
7 changed files with 150 additions and 58 deletions

View File

@ -2411,8 +2411,7 @@ UserIdentifyManagerCallback (
Status = EFI_SUCCESS;
break;
case EFI_BROWSER_ACTION_CHANGING:
{
case EFI_BROWSER_ACTION_CHANGED:
if (QuestionId >= LABEL_PROVIDER_NAME) {
//
// QuestionId comes from the second Form (Select a Credential Provider if identity
@ -2425,10 +2424,16 @@ UserIdentifyManagerCallback (
}
return EFI_SUCCESS;
}
break;
case EFI_BROWSER_ACTION_CHANGING:
//
// QuestionId comes from the first Form (Select a user to identify).
//
if (QuestionId >= LABEL_PROVIDER_NAME) {
return EFI_SUCCESS;
}
User = (USER_PROFILE_ENTRY *) mUserProfileDb->UserProfile[QuestionId & 0xFFF];
Status = GetIdentifyType (User, &PolicyType);
if (EFI_ERROR (Status)) {
@ -2456,9 +2461,10 @@ UserIdentifyManagerCallback (
mCurrentUser = (EFI_USER_PROFILE_HANDLE) User;
mIdentified = TRUE;
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;
if (Type == EFI_IFR_TYPE_REF) {
Value->ref.FormId = FORMID_INVALID_FORM;
}
}
}
break;
default: