mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-07 19:45:07 +02:00
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:
parent
639a76d191
commit
fab1046560
@ -404,7 +404,7 @@ TcgCallback (
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if ((Action != EFI_BROWSER_ACTION_CHANGING) || (QuestionId != KEY_TPM_ACTION)) {
|
||||
if ((Action != EFI_BROWSER_ACTION_CHANGED) || (QuestionId != KEY_TPM_ACTION)) {
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
|
@ -548,7 +548,7 @@ CredentialDriverCallback (
|
||||
CHAR8 Password[CREDENTIAL_LEN];
|
||||
CHAR16 *PromptStr;
|
||||
|
||||
if (Action == EFI_BROWSER_ACTION_CHANGING) {
|
||||
if (Action == EFI_BROWSER_ACTION_CHANGED) {
|
||||
if (QuestionId == KEY_GET_PASSWORD) {
|
||||
//
|
||||
// Get and check password.
|
||||
|
@ -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:
|
||||
|
@ -22,6 +22,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
//
|
||||
#define FORMID_USER_FORM 1
|
||||
#define FORMID_PROVIDER_FORM 2
|
||||
#define FORMID_INVALID_FORM 0x0FFF
|
||||
|
||||
//
|
||||
// Labels definition.
|
||||
|
@ -309,7 +309,7 @@ UserProfileManagerCallback (
|
||||
Status = EFI_SUCCESS;
|
||||
break;
|
||||
|
||||
case EFI_BROWSER_ACTION_CHANGING:
|
||||
case EFI_BROWSER_ACTION_CHANGED:
|
||||
{
|
||||
//
|
||||
// Handle the request from form.
|
||||
@ -337,13 +337,6 @@ UserProfileManagerCallback (
|
||||
// Judge next 2 bits.
|
||||
//
|
||||
switch (QuestionId & KEY_SECOND_FORM_MASK) {
|
||||
//
|
||||
// Enter delete user profile form.
|
||||
//
|
||||
case KEY_ENTER_NEXT_FORM:
|
||||
SelectUserToDelete ();
|
||||
break;
|
||||
|
||||
//
|
||||
// Delete specified user profile.
|
||||
//
|
||||
@ -368,13 +361,6 @@ UserProfileManagerCallback (
|
||||
// Judge next 2 bits.
|
||||
//
|
||||
switch (QuestionId & KEY_SECOND_FORM_MASK) {
|
||||
//
|
||||
// Enter modify user profile form.
|
||||
//
|
||||
case KEY_ENTER_NEXT_FORM:
|
||||
SelectUserToModify ();
|
||||
break;
|
||||
|
||||
//
|
||||
// Enter user profile information form.
|
||||
//
|
||||
@ -383,13 +369,6 @@ UserProfileManagerCallback (
|
||||
// Judge next 3 bits.
|
||||
//
|
||||
switch (QuestionId & KEY_MODIFY_INFO_MASK) {
|
||||
//
|
||||
// Display user information form.
|
||||
//
|
||||
case KEY_ENTER_NEXT_FORM:
|
||||
ModifyUserInfo ((UINT8) QuestionId);
|
||||
break;
|
||||
|
||||
//
|
||||
// Modify user name.
|
||||
//
|
||||
@ -409,13 +388,6 @@ UserProfileManagerCallback (
|
||||
// Judge next 3 bits
|
||||
//
|
||||
switch (QuestionId & KEY_MODIFY_IP_MASK) {
|
||||
//
|
||||
// Display identity policy modify form.
|
||||
//
|
||||
case KEY_ENTER_NEXT_FORM:
|
||||
ModifyIdentityPolicy ();
|
||||
break;
|
||||
|
||||
//
|
||||
// Change credential provider option.
|
||||
//
|
||||
@ -442,7 +414,7 @@ UserProfileManagerCallback (
|
||||
//
|
||||
case KEY_IP_RETURN_UIF:
|
||||
SaveIdentityPolicy ();
|
||||
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;
|
||||
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -458,13 +430,6 @@ UserProfileManagerCallback (
|
||||
// Judge next 3 bits.
|
||||
//
|
||||
switch (QuestionId & KEY_MODIFY_AP_MASK) {
|
||||
//
|
||||
// Display access policy modify form.
|
||||
//
|
||||
case KEY_ENTER_NEXT_FORM:
|
||||
ModidyAccessPolicy ();
|
||||
break;
|
||||
|
||||
//
|
||||
// Change access right choice.
|
||||
//
|
||||
@ -545,7 +510,7 @@ UserProfileManagerCallback (
|
||||
//
|
||||
case KEY_AP_RETURN_UIF:
|
||||
SaveAccessPolicy ();
|
||||
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;
|
||||
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -642,6 +607,126 @@ UserProfileManagerCallback (
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case EFI_BROWSER_ACTION_CHANGING:
|
||||
{
|
||||
//
|
||||
// Handle the request from form.
|
||||
//
|
||||
if (Value == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
//
|
||||
// Judge first 2 bits.
|
||||
//
|
||||
switch (QuestionId & KEY_FIRST_FORM_MASK) {
|
||||
//
|
||||
// Delete user profile operation.
|
||||
//
|
||||
case KEY_DEL_USER:
|
||||
//
|
||||
// Judge next 2 bits.
|
||||
//
|
||||
switch (QuestionId & KEY_SECOND_FORM_MASK) {
|
||||
//
|
||||
// Enter delete user profile form.
|
||||
//
|
||||
case KEY_ENTER_NEXT_FORM:
|
||||
SelectUserToDelete ();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
//
|
||||
// Modify user profile operation.
|
||||
//
|
||||
case KEY_MODIFY_USER:
|
||||
//
|
||||
// Judge next 2 bits.
|
||||
//
|
||||
switch (QuestionId & KEY_SECOND_FORM_MASK) {
|
||||
//
|
||||
// Enter modify user profile form.
|
||||
//
|
||||
case KEY_ENTER_NEXT_FORM:
|
||||
SelectUserToModify ();
|
||||
break;
|
||||
|
||||
//
|
||||
// Enter user profile information form.
|
||||
//
|
||||
case KEY_SELECT_USER:
|
||||
//
|
||||
// Judge next 3 bits.
|
||||
//
|
||||
switch (QuestionId & KEY_MODIFY_INFO_MASK) {
|
||||
//
|
||||
// Display user information form.
|
||||
//
|
||||
case KEY_ENTER_NEXT_FORM:
|
||||
ModifyUserInfo ((UINT8) QuestionId);
|
||||
break;
|
||||
|
||||
//
|
||||
// Modify identity policy.
|
||||
//
|
||||
case KEY_MODIFY_IP:
|
||||
//
|
||||
// Judge next 3 bits
|
||||
//
|
||||
switch (QuestionId & KEY_MODIFY_IP_MASK) {
|
||||
//
|
||||
// Display identity policy modify form.
|
||||
//
|
||||
case KEY_ENTER_NEXT_FORM:
|
||||
ModifyIdentityPolicy ();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
//
|
||||
// Modify access policy.
|
||||
//
|
||||
case KEY_MODIFY_AP:
|
||||
//
|
||||
// Judge next 3 bits.
|
||||
//
|
||||
switch (QuestionId & KEY_MODIFY_AP_MASK) {
|
||||
//
|
||||
// Display access policy modify form.
|
||||
//
|
||||
case KEY_ENTER_NEXT_FORM:
|
||||
ModidyAccessPolicy ();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
//
|
||||
// All other action return unsupported.
|
||||
|
@ -114,12 +114,12 @@ formset
|
||||
subtitle
|
||||
text = STRING_TOKEN(STR_NULL_STRING);
|
||||
|
||||
goto FORMID_USER_INFO,
|
||||
prompt = STRING_TOKEN(STR_SAVE),
|
||||
help = STRING_TOKEN(STR_IDENTIFY_SAVE_HELP),
|
||||
flags = INTERACTIVE,
|
||||
key = KEY_IP_RETURN;
|
||||
|
||||
text
|
||||
help = STRING_TOKEN(STR_IDENTIFY_SAVE_HELP),
|
||||
text = STRING_TOKEN(STR_SAVE),
|
||||
flags = INTERACTIVE,
|
||||
key = KEY_IP_RETURN;
|
||||
|
||||
endform;
|
||||
|
||||
//
|
||||
@ -146,12 +146,12 @@ formset
|
||||
subtitle
|
||||
text = STRING_TOKEN(STR_NULL_STRING);
|
||||
|
||||
goto FORMID_USER_INFO,
|
||||
prompt = STRING_TOKEN(STR_SAVE),
|
||||
help = STRING_TOKEN(STR_ACCESS_SAVE_HELP),
|
||||
flags = INTERACTIVE,
|
||||
key = KEY_AP_RETURN;
|
||||
|
||||
text
|
||||
help = STRING_TOKEN(STR_ACCESS_SAVE_HELP),
|
||||
text = STRING_TOKEN(STR_SAVE),
|
||||
flags = INTERACTIVE,
|
||||
key = KEY_AP_RETURN;
|
||||
|
||||
endform;
|
||||
|
||||
//
|
||||
|
@ -314,7 +314,7 @@ SecureBootCallback (
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if ((Action != EFI_BROWSER_ACTION_CHANGING) || (QuestionId != KEY_SECURE_BOOT_ENABLE)) {
|
||||
if ((Action != EFI_BROWSER_ACTION_CHANGED) || (QuestionId != KEY_SECURE_BOOT_ENABLE)) {
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user