抽取cookie清理逻辑为新的第六步

This commit is contained in:
QLHazyCoder
2026-04-17 15:56:19 +08:00
parent b387ebfa91
commit cbe9b1fabf
30 changed files with 630 additions and 603 deletions
+16 -22
View File
@@ -1,7 +1,7 @@
(function attachBackgroundStep6(root, factory) {
root.MultiPageBackgroundStep6 = factory();
})(typeof self !== 'undefined' ? self : globalThis, function createBackgroundStep6Module() {
function createStep6Executor(deps = {}) {
(function attachBackgroundStep7(root, factory) {
root.MultiPageBackgroundStep7 = factory();
})(typeof self !== 'undefined' ? self : globalThis, function createBackgroundStep7Module() {
function createStep7Executor(deps = {}) {
const {
addLog,
completeStepFromBackground,
@@ -12,7 +12,6 @@
isStep6SuccessResult,
refreshOAuthUrlBeforeStep6,
reuseOrCreateTab,
runPreStep6CookieCleanup,
sendToContentScriptResilient,
shouldSkipLoginVerificationForCpaCallback,
skipLoginVerificationStepsForCpaCallback,
@@ -20,8 +19,7 @@
throwIfStopped,
} = deps;
async function executeStep6(state, options = {}) {
const { skipPreLoginCleanup = false } = options;
async function executeStep7(state) {
if (shouldSkipLoginVerificationForCpaCallback(state)) {
await skipLoginVerificationStepsForCpaCallback();
return;
@@ -30,10 +28,6 @@
throw new Error('缺少邮箱地址,请先完成步骤 3。');
}
if (!skipPreLoginCleanup) {
await runPreStep6CookieCleanup();
}
let attempt = 0;
let lastError = null;
@@ -46,9 +40,9 @@
const oauthUrl = await refreshOAuthUrlBeforeStep6(currentState);
if (attempt === 1) {
await addLog('步骤 6:正在打开最新 OAuth 链接并登录...');
await addLog('步骤 7:正在打开最新 OAuth 链接并登录...');
} else {
await addLog(`步骤 6:上一轮失败后,正在进行第 ${attempt} 次尝试(最多 ${STEP6_MAX_ATTEMPTS} 次)...`, 'warn');
await addLog(`步骤 7:上一轮失败后,正在进行第 ${attempt} 次尝试(最多 ${STEP6_MAX_ATTEMPTS} 次)...`, 'warn');
}
await reuseOrCreateTab('signup-page', oauthUrl);
@@ -57,7 +51,7 @@
'signup-page',
{
type: 'EXECUTE_STEP',
step: 6,
step: 7,
source: 'background',
payload: {
email: currentState.email,
@@ -67,7 +61,7 @@
{
timeoutMs: 180000,
retryDelayMs: 700,
logMessage: '步骤 6:认证页正在切换,等待页面重新就绪后继续登录...',
logMessage: '步骤 7:认证页正在切换,等待页面重新就绪后继续登录...',
}
);
@@ -76,7 +70,7 @@
}
if (isStep6SuccessResult(result)) {
await completeStepFromBackground(6, {
await completeStepFromBackground(7, {
loginVerificationRequestedAt: result.loginVerificationRequestedAt || null,
});
return;
@@ -84,11 +78,11 @@
if (isStep6RecoverableResult(result)) {
const reasonMessage = result.message
|| `当前停留在${getLoginAuthStateLabel(result.state)},准备重新执行步骤 6`;
|| `当前停留在${getLoginAuthStateLabel(result.state)},准备重新执行步骤 7`;
throw new Error(reasonMessage);
}
throw new Error('步骤 6:认证页未返回可识别的登录结果。');
throw new Error('步骤 7:认证页未返回可识别的登录结果。');
} catch (err) {
throwIfStopped(err);
lastError = err;
@@ -96,15 +90,15 @@
break;
}
await addLog(`步骤 6:第 ${attempt} 次尝试失败,原因:${getErrorMessage(err)};准备重试...`, 'warn');
await addLog(`步骤 7:第 ${attempt} 次尝试失败,原因:${getErrorMessage(err)};准备重试...`, 'warn');
}
}
throw new Error(`步骤 6:判断失败后已重试 ${STEP6_MAX_ATTEMPTS - 1} 次,仍未成功。最后原因:${getErrorMessage(lastError)}`);
throw new Error(`步骤 7:判断失败后已重试 ${STEP6_MAX_ATTEMPTS - 1} 次,仍未成功。最后原因:${getErrorMessage(lastError)}`);
}
return { executeStep6 };
return { executeStep7 };
}
return { createStep6Executor };
return { createStep7Executor };
});