fix(autofill): honest result reporting + restore maximized from tray
Bug 1: a maximized window trayed via the quick-search fill flow came back "normal" on the next restore. ExecuteAutofill minimizes the window BEFORE MinimizeToTray snapshots the placement, so the snapshot said SHOWMINIMIZED and the never-restore-minimized guard forced SHOWNORMAL. Now honours WPF_RESTORETOMAXIMIZED (Windows keeps the pre-minimize state in flags). Bug 2: filling into an elevated app (admin Notepad) showed "password sent" while UIPI silently discarded the keystrokes (SendInput even reports success). ExecuteAutofill is now a function: it checks the target process elevation up front (can't-open counts as elevated) and returns False without typing. UMainForm feeds the result to JS via Bridge.onAutofillResult; the quick-search success toast is deferred until Delphi confirms, and a failure shows "Autofill blocked - the target window runs as administrator". Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -167,6 +167,23 @@ function autofillScore(entry, titleLower) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Success toast deferred until Delphi confirms the keystrokes were sent.
|
||||
// Quick-search sets this label before calling executeAutofill; Delphi fires
|
||||
// Bridge.onAutofillResult(ok) → we toast the label (ok) or an honest
|
||||
// failure (elevated target — UIPI silently drops our SendInput).
|
||||
let autofillPendingToast = '';
|
||||
|
||||
function autofillReportResult(ok) {
|
||||
const label = autofillPendingToast;
|
||||
autofillPendingToast = '';
|
||||
if (ok) {
|
||||
if (label) toast(label);
|
||||
} else {
|
||||
toast('Autofill blocked — the target window runs as administrator. ' +
|
||||
'Copy the password instead.', 'error');
|
||||
}
|
||||
}
|
||||
|
||||
// Called by Bridge.onAutofillRequest when a hotkey fires.
|
||||
// kind: 'full' = Ctrl+Shift+L (user + Tab + pwd) ; 'password' = Ctrl+Shift+P.
|
||||
async function autofillHandleRequest(windowTitle, kind) {
|
||||
|
||||
Reference in New Issue
Block a user