From 5fd7f1d7dda949b2e734661a9f9030d69889cdd0 Mon Sep 17 00:00:00 2001 From: Ishaan Gupta Date: Fri, 3 Apr 2026 05:07:28 +0530 Subject: [PATCH] perf: optimize twitter header parsing in browser extension (#819) --- apps/browser-extension/utils/twitter-auth.ts | 33 ++++++++++++++------ 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/apps/browser-extension/utils/twitter-auth.ts b/apps/browser-extension/utils/twitter-auth.ts index bb918cad..8a791fa2 100644 --- a/apps/browser-extension/utils/twitter-auth.ts +++ b/apps/browser-extension/utils/twitter-auth.ts @@ -23,15 +23,30 @@ export async function captureTwitterTokens( return false } - const authHeader = details.requestHeaders?.find( - (header) => header.name.toLowerCase() === "authorization", - ) - const cookieHeader = details.requestHeaders?.find( - (header) => header.name.toLowerCase() === "cookie", - ) - const csrfHeader = details.requestHeaders?.find( - (header) => header.name.toLowerCase() === "x-csrf-token", - ) + let authHeader: chrome.webRequest.HttpHeader | undefined + let cookieHeader: chrome.webRequest.HttpHeader | undefined + let csrfHeader: chrome.webRequest.HttpHeader | undefined + + if (details.requestHeaders) { + for (const header of details.requestHeaders) { + if (!header.name) continue + const name = header.name.toLowerCase() + + switch (name) { + case "authorization": + authHeader = header + break + case "cookie": + cookieHeader = header + break + case "x-csrf-token": + csrfHeader = header + break + } + + if (authHeader && cookieHeader && csrfHeader) break + } + } if (authHeader?.value && cookieHeader?.value && csrfHeader?.value) { const tokensAlreadyLogged = await getTokensLogged()