sereneblue / chameleon

WebExtension port of Random Agent Spoofer
https://sereneblue.github.io/chameleon
GNU General Public License v3.0
526 stars 53 forks source link

bugs on flights.google.com #590

Open gcb opened 3 months ago

gcb commented 3 months ago

Prerequisites

failure on flights.google.com

Expected Behavior

Current Behavior

Script hangs (browser shows the Stop Script UI) on parts of the code which start as:

 (function(){
      const inject = (spoofContext) => {

right after entering origin or destination airport.

Relevant settings

(mostly default, don't remember changing much of them)

{
  "config": {
    "enabled": true,
    "notificationsEnabled": false,
    "theme": "light",
    "reloadIPStartupDelay": 0,
    "hasPrivacyPermission": false
  },
  "excluded": [
...
  ],
  "headers": {
    "blockEtag": false,
    "enableDNT": false,
    "referer": {
      "disabled": false,
      "xorigin": 1,
      "trimming": 1
    },
    "spoofAcceptLang": {
      "enabled": false,
      "value": "default"
    },
    "spoofIP": {
      "enabled": false,
      "option": 0,
      "rangeFrom": "",
      "rangeTo": ""
    }
  },
  "ipRules": [],
  "options": {
    "cookieNotPersistent": false,
    "cookiePolicy": "allow_all",
    "blockMediaDevices": false,
    "blockCSSExfil": true,
    "disableWebRTC": false,
    "firstPartyIsolate": false,
    "limitHistory": true,
    "protectKBFingerprint": {
      "enabled": true,
      "delay": 1
    },
    "protectWinName": true,
    "resistFingerprinting": false,
    "screenSize": "1600x900",
    "spoofAudioContext": true,
    "spoofClientRects": true,
    "spoofFontFingerprint": false,
    "spoofMediaDevices": true,
    "timeZone": "US/Pacific",
    "trackingProtectionMode": "always",
    "webRTCPolicy": "default",
    "webSockets": "allow_all"
  },
  "profile": {
    "selected": "linux",
    "interval": {
      "option": 0,
      "min": 1,
      "max": 1
    },
    "showProfileOnIcon": false
  },
  "version": "0.22.61.1",
  "whitelist": {
    "enabledContextMenu": false,
    "defaultProfile": "none",
    "rules": []
  }
}

Context (Environment)

FF 129.0

sereneblue commented 3 months ago

Hi @gcb, I've narrowed the issue to timezone spoofing. For now, you should disable it on Google Flights. Timezone spoofing can cause some tabs to crash.

gcb commented 3 months ago

@sereneblue indeed setting timezone to 'default' worked around it! thank you.

is this already being tracked somewhere? I failed to find anything but would like to take a look at the code later this week.

sereneblue commented 3 months ago

@gcb There are a few Github issues related to timezone spoofing. For other Google sites, it's mentioned on the wiki: https://sereneblue.github.io/chameleon/wiki/known-issues. Timezone spoofing works by monkeypatching the native Date object. It's a "hack" that is the cause of a lot of issues and will likely be removed in Chameleon v0.30.0.