mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-04 21:07:45 +08:00
🐛 fix(windows): 修复在线更新挂起与 WebView2 启动闪退
- 隐藏并释放 Windows 更新脚本进程,避免在线更新打开 cmd 并挂起 - 为更新脚本等待宿主进程退出增加超时保护 - 收窄自动 WebView2 zoom reset 触发条件并补充异常兜底 - 补充 Windows 更新启动与窗口缩放回归测试 Refs #468
This commit is contained in:
@@ -4,6 +4,7 @@ import {
|
||||
resolveTitleBarToggleIconKey,
|
||||
resolveWindowsScaleCheckDelayMs,
|
||||
shouldApplyWindowsScaleFix,
|
||||
shouldResetWebViewZoomForScaleFix,
|
||||
shouldToggleMaximisedWindowForScaleFix,
|
||||
} from './windowStateUi';
|
||||
|
||||
@@ -26,6 +27,13 @@ describe('windowStateUi', () => {
|
||||
expect(shouldToggleMaximisedWindowForScaleFix('restore', true)).toBe(false);
|
||||
});
|
||||
|
||||
it('only calls the backend WebView2 zoom reset after a real restore drift', () => {
|
||||
expect(shouldResetWebViewZoomForScaleFix('restore', true)).toBe(true);
|
||||
expect(shouldResetWebViewZoomForScaleFix('restore', false)).toBe(false);
|
||||
expect(shouldResetWebViewZoomForScaleFix('activation', true)).toBe(false);
|
||||
expect(shouldResetWebViewZoomForScaleFix('ratio-change', true)).toBe(false);
|
||||
});
|
||||
|
||||
it('debounces resize-triggered Windows scale checks until window transitions settle', () => {
|
||||
expect(resolveWindowsScaleCheckDelayMs('resize')).toBeGreaterThan(0);
|
||||
expect(resolveWindowsScaleCheckDelayMs('focus')).toBe(0);
|
||||
|
||||
@@ -20,6 +20,11 @@ export const shouldToggleMaximisedWindowForScaleFix = (
|
||||
hasViewportScaleDrift: boolean,
|
||||
): boolean => reason === 'ratio-change' && hasViewportScaleDrift;
|
||||
|
||||
export const shouldResetWebViewZoomForScaleFix = (
|
||||
reason: WindowScaleFixReason,
|
||||
hasViewportScaleDrift: boolean,
|
||||
): boolean => reason === 'restore' && hasViewportScaleDrift;
|
||||
|
||||
export const resolveWindowsScaleCheckDelayMs = (trigger: WindowsScaleCheckTrigger): number =>
|
||||
trigger === 'resize' ? 240 : 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user