120 lines
3.3 KiB
JavaScript
120 lines
3.3 KiB
JavaScript
import userAgents from '../../utils/userAgents'
|
|
|
|
const attachTab = (tabId) => {
|
|
chrome.storage.sync.get(
|
|
[
|
|
'ipData',
|
|
'timezone',
|
|
'timezoneMatchIP',
|
|
'lat',
|
|
'latitudeMatchIP',
|
|
'lon',
|
|
'longitudeMatchIP',
|
|
'locale',
|
|
'localeMatchIP',
|
|
'userAgent',
|
|
],
|
|
(result) => {
|
|
if (
|
|
result.timezone ||
|
|
result.lat ||
|
|
result.lon ||
|
|
result.locale ||
|
|
result.userAgent
|
|
) {
|
|
chrome.debugger.attach({ tabId: tabId }, '1.3', () => {
|
|
if (!chrome.runtime.lastError) {
|
|
// chrome.debugger.sendCommand(
|
|
// { tabId: tabId },
|
|
// 'Emulation.clearTimezoneOverride'
|
|
// )
|
|
|
|
if (result.timezone) {
|
|
chrome.debugger.sendCommand(
|
|
{ tabId: tabId },
|
|
'Emulation.setTimezoneOverride',
|
|
{
|
|
timezoneId: result.timezone,
|
|
},
|
|
() => {
|
|
if (
|
|
chrome.runtime.lastError &&
|
|
chrome.runtime.lastError.message.includes(
|
|
'Timezone override is already in effect'
|
|
)
|
|
) {
|
|
chrome.debugger.detach({ tabId })
|
|
attachTab(tabId)
|
|
}
|
|
}
|
|
)
|
|
}
|
|
|
|
if (result.locale) {
|
|
chrome.debugger.sendCommand(
|
|
{ tabId: tabId },
|
|
'Emulation.setLocaleOverride',
|
|
{
|
|
locale: result.locale,
|
|
}
|
|
)
|
|
}
|
|
|
|
if (result.lat || result.lon) {
|
|
chrome.debugger.sendCommand(
|
|
{ tabId: tabId },
|
|
'Emulation.setGeolocationOverride',
|
|
{
|
|
latitude: result.lat
|
|
? parseFloat(result.lat)
|
|
: result.ipData.lat,
|
|
longitude: result.lon
|
|
? parseFloat(result.lon)
|
|
: result.ipData.lon,
|
|
accuracy: 1,
|
|
}
|
|
)
|
|
}
|
|
|
|
if (result.userAgent) {
|
|
chrome.debugger.sendCommand(
|
|
{ tabId: tabId },
|
|
'Emulation.setUserAgentOverride',
|
|
{
|
|
userAgent: result.userAgent,
|
|
}
|
|
// { acceptLanguage: "en-CA" },
|
|
// { platform: "WebTV OS" }
|
|
)
|
|
// 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.69',
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|
|
)
|
|
}
|
|
|
|
chrome.tabs.onUpdated.addListener((tabId, change, tab) => {
|
|
chrome.debugger.getTargets((tabs) => {
|
|
const currentTab = tabs.find((obj) => obj.tabId === tabId)
|
|
if (!currentTab.attached) {
|
|
attachTab(tabId)
|
|
}
|
|
})
|
|
})
|
|
|
|
chrome.alarms.onAlarm.addListener((alarm) => {
|
|
if (alarm.name === 'userAgentAlarm') {
|
|
chrome.storage.sync.get(['randomUA'], (result) => {
|
|
if (result.randomUA) {
|
|
console.log('userAgentAlarm')
|
|
const randomUserAgent =
|
|
userAgents[Math.floor(Math.random() * userAgents.length)]
|
|
chrome.storage.sync.set({
|
|
userAgent: randomUserAgent,
|
|
})
|
|
}
|
|
})
|
|
}
|
|
})
|