Start an isolated instance of Firefox that points to the currently running proxy.
(self)
| 101 | ) |
| 102 | |
| 103 | def launch_firefox(self) -> None: |
| 104 | """ |
| 105 | Start an isolated instance of Firefox that points to the currently |
| 106 | running proxy. |
| 107 | """ |
| 108 | cmd = find_executable_cmd( |
| 109 | "/Applications/Firefox.app/Contents/MacOS/firefox", |
| 110 | r"C:\Program Files\Mozilla Firefox\firefox.exe", |
| 111 | "firefox", |
| 112 | "mozilla-firefox", |
| 113 | "mozilla", |
| 114 | ) or find_flatpak_cmd("org.mozilla.firefox") |
| 115 | |
| 116 | if not cmd: |
| 117 | logging.log( |
| 118 | ALERT, "Your platform is not supported yet - please submit a patch." |
| 119 | ) |
| 120 | return |
| 121 | |
| 122 | host = ctx.options.listen_host or "127.0.0.1" |
| 123 | port = ctx.options.listen_port or 8080 |
| 124 | prefs = [ |
| 125 | 'user_pref("datareporting.policy.firstRunURL", "");', |
| 126 | 'user_pref("network.proxy.type", 1);', |
| 127 | 'user_pref("network.proxy.share_proxy_settings", true);', |
| 128 | 'user_pref("datareporting.healthreport.uploadEnabled", false);', |
| 129 | 'user_pref("app.normandy.enabled", false);', |
| 130 | 'user_pref("app.update.auto", false);', |
| 131 | 'user_pref("app.update.enabled", false);', |
| 132 | 'user_pref("app.update.autoInstallEnabled", false);', |
| 133 | 'user_pref("app.shield.optoutstudies.enabled", false);' |
| 134 | 'user_pref("extensions.blocklist.enabled", false);', |
| 135 | 'user_pref("browser.safebrowsing.downloads.remote.enabled", false);', |
| 136 | 'user_pref("browser.region.network.url", "");', |
| 137 | 'user_pref("browser.region.update.enabled", false);', |
| 138 | 'user_pref("browser.region.local-geocoding", false);', |
| 139 | 'user_pref("extensions.pocket.enabled", false);', |
| 140 | 'user_pref("network.captive-portal-service.enabled", false);', |
| 141 | 'user_pref("network.connectivity-service.enabled", false);', |
| 142 | 'user_pref("toolkit.telemetry.server", "");', |
| 143 | 'user_pref("dom.push.serverURL", "");', |
| 144 | 'user_pref("services.settings.enabled", false);', |
| 145 | 'user_pref("browser.newtab.preload", false);', |
| 146 | 'user_pref("browser.safebrowsing.provider.google4.updateURL", "");', |
| 147 | 'user_pref("browser.safebrowsing.provider.mozilla.updateURL", "");', |
| 148 | 'user_pref("browser.newtabpage.activity-stream.feeds.topsites", false);', |
| 149 | 'user_pref("browser.newtabpage.activity-stream.default.sites", "");', |
| 150 | 'user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false);', |
| 151 | 'user_pref("browser.bookmarks.restore_default_bookmarks", false);', |
| 152 | 'user_pref("browser.bookmarks.file", "");', |
| 153 | ] |
| 154 | for service in ("http", "ssl"): |
| 155 | prefs += [ |
| 156 | f'user_pref("network.proxy.{service}", "{host}");', |
| 157 | f'user_pref("network.proxy.{service}_port", {port});', |
| 158 | ] |
| 159 | |
| 160 | tdir = tempfile.TemporaryDirectory() |
no test coverage detected