EDIT
This issue may be due to WebRTC being disabled. WebRTC is required for google meet, but also used for fingerprinting.
Recently I tried to join a google meet meeting in my hardened config firefox browser, and google meet didn’t let me in at all. I was confused as hell. I could join only on my phone, but not any of my three computers I tested it on. I then went into a virtual machine with regular firefox(also linux), and the meeting works. The only conclusion I can draw is that google is so desperate for my data that they refuse to service me unless I give them this.
This post intends to inform people that issues with google products may be related to their valid wish for security, and the actions they have taken in pursuit of that. The post also intends to inform people of a solution. The two apps that I recommend are:
- Jitsi Meet: This is self hosted, but you can also make a meeting with jitsi’s own servers. A excellent alternative to google meet, the only reason I didn’t use it is that I had issues the day I needed to meet, and had to fall back to google meet instead.
- Jami: This is a distributed-network chat and video calling app which is open source and a GNU package. It does require an app, but is free and open source and will serve your purpose.****_________
Teams web version also stopped working in Firefox, so just using chromium for meetings.
Exhibit #17837 why Firefox isn’t “just more hardened by default”.
It’s also not necessarily just because Google wants more of your data (which they do); they may also just use a feature that can also be used to fingerprint you. But since it’s also just useful in general, it’s not disabled by default by regular Firefox.
The issue was likely WebRTC being disabled. The thing is, WebGL and WebRTC should be more secure. They shouldn’t be implemented in ways that make it easy to fingerprint the user. Unfortunately, for now I can’t change that, but I can use alternative methods like Jami or temporarily enabling rtc again to use a locally hosted instance of Jitsi.
I don’t know much about WebGL and WebRTC specifically, but sometimes it’s just inherent to the feature, and it’s literally impossible to implement it without allowing fingerprinting the user.
For example, your screen resolution/viewport size can also be used to fingerprint you. It is impossible to allow adjusting a website to different viewport sizes without leaking those viewport sizes - the only way to restrict fingerprinting is to not offer the feature of using arbitrary viewport sizes (which is what Tor browser does, for example).
in my hardened config firefox browser
The only conclusion I can draw is that google is so desperate for my data that they refuse to service me unless I give them this.
What is your config? It’s possible you’ve got things configured in an unexpected, but valid, way that causes Google Meet to fail.
How does it fail? Are there errors in the console?
You’re immediately assuming malice, but it may simply be a mistake (Google’s or yours).
accessibility.typeaheadfind.flashBar 0
app.normandy.api_url
app.normandy.enabled false
app.normandy.first_run false
app.normandy.migrationsApplied 12
app.normandy.user_id [REDACTED]
app.shield.optoutstudies.enabled false
app.update.auto false
app.update.lastUpdateTime.addon-background-update-timer 1729383854
app.update.lastUpdateTime.browser-cleanup-thumbnails 1729405780
app.update.lastUpdateTime.recipe-client-addon-run 1725149805
app.update.lastUpdateTime.region-update-timer 1725149805
app.update.lastUpdateTime.services-settings-poll-changes 1729383854
app.update.lastUpdateTime.telemetry_modules_ping 1725149834
app.update.lastUpdateTime.xpi-signature-verification 1729383854
beacon.enabled false
breakpad.reportURL
browser.aboutConfig.showWarning false
browser.bookmarks.editDialog.confirmationHintShowCount 2
browser.bookmarks.restore_default_bookmarks false
browser.cache.disk.enable false
browser.contentblocking.category strict
browser.contentblocking.report.hide_vpn_banner true
browser.contentblocking.report.show_mobile_app false
browser.contextual-services.contextId {[REDACTED]}
browser.discovery.enabled false
browser.discovery.sites
browser.download.manager.addToRecentDocs false
browser.download.panel.shown true
browser.download.viewableInternally.typeWasRegistered.avif true
browser.download.viewableInternally.typeWasRegistered.webp true
browser.engagement.ctrlTab.has-used true
browser.engagement.downloads-button.has-used true
browser.firefox-view.feature-tour {"screen":"","complete":true}
browser.firefox-view.view-count 1
browser.formfill.enable false
browser.helperApps.deleteTempFileOnExit false
browser.laterrun.bookkeeping.profileCreationTime 1725149774
browser.laterrun.bookkeeping.sessionCount 51
browser.migration.version 148
browser.newtab.preload false
browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons false
browser.newtabpage.activity-stream.default.sites
browser.newtabpage.activity-stream.discoverystream.rec.impressions {"5721678629791706":1725149797489,"1570241288460906":1725149797490,"1651507772597691":1725149797491}
browser.newtabpage.activity-stream.feeds.discoverystreamfeed false
browser.newtabpage.activity-stream.feeds.section.topstories false
browser.newtabpage.activity-stream.feeds.telemetry false
browser.newtabpage.activity-stream.impressionId {[REDACTED]}
browser.newtabpage.activity-stream.section.highlights.includePocket false
browser.newtabpage.activity-stream.showSponsored false
browser.newtabpage.activity-stream.showSponsoredTopSites false
browser.newtabpage.activity-stream.telemetry false
browser.newtabpage.activity-stream.telemetry.structuredIngestion.endpoint
browser.newtabpage.blocked [REDACTED]
browser.newtabpage.enabled false
browser.newtabpage.storageVersion 1
browser.pageActions.persistedActions {"ids":["bookmark"],"idsInUrlbar":["bookmark"],"idsInUrlbarPreProton":[],"version":1}
browser.pagethumbnails.capturing_disabled true
browser.pagethumbnails.storage_version 3
browser.ping-centre.telemetry false
browser.places.speculativeConnect.enabled false
browser.protections_panel.infoMessage.seen true
browser.proton.toolbar.version 3
browser.region.network.url
browser.region.update.enabled false
browser.region.update.updated 1725149776
browser.rights.3.shown true
browser.safebrowsing.allowOverride false
browser.safebrowsing.blockedURIs.enabled false
browser.safebrowsing.downloads.enabled false
browser.safebrowsing.downloads.remote.block_potentially_unwanted false
browser.safebrowsing.downloads.remote.block_uncommon false
browser.safebrowsing.downloads.remote.enabled false
browser.safebrowsing.downloads.remote.url
browser.safebrowsing.malware.enabled false
browser.safebrowsing.phishing.enabled false
browser.safebrowsing.provider.google.advisoryName Google Safe Browsing(Disabled)
browser.safebrowsing.provider.google.advisoryURL
browser.safebrowsing.provider.google.gethashURL
browser.safebrowsing.provider.google.reportMalwareMistakeURL
browser.safebrowsing.provider.google.reportPhishMistakeURL
browser.safebrowsing.provider.google.reportURL
browser.safebrowsing.provider.google.updateURL
browser.safebrowsing.provider.google4.advisoryName Google Safe Browsing4(Disabled
browser.safebrowsing.provider.google4.advisoryURL
browser.safebrowsing.provider.google4.dataSharingURL
browser.safebrowsing.provider.google4.gethashURL
browser.safebrowsing.provider.google4.lastupdatetime 1725149785253
browser.safebrowsing.provider.google4.nextupdatetime 1725151601253
browser.safebrowsing.provider.google4.reportMalwareMistakeURL
browser.safebrowsing.provider.google4.reportPhishMistakeURL
browser.safebrowsing.provider.google4.reportURL
browser.safebrowsing.provider.google4.updateURL
browser.safebrowsing.provider.mozilla.lastupdatetime 1729405756174
browser.safebrowsing.provider.mozilla.nextupdatetime 1729427356174
browser.search.region US
browser.search.suggest.enabled false
browser.sessionstore.privacy_level 2
browser.sessionstore.resume_from_crash false
browser.sessionstore.upgradeBackup.latestBuildID 20241008174909
browser.shell.shortcutFavicons false
browser.startup.couldRestoreSession.count 2
browser.startup.homepage_override.buildID 20241008174909
browser.startup.homepage_override.mstone 128.3.1
browser.startup.lastColdStartupCheck 1729405749
browser.startup.upgradeDialog.version 106
browser.tabs.crashReporting.sendReport false
browser.tabs.firefox-view.ui-state.recently-closed-tabs.open true
browser.tabs.firefox-view.ui-state.tab-pickup.open false
browser.translations.panelShown true
browser.uiCustomization.state {"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":[],"nav-bar":["back-button","forward-button","stop-reload-button","customizableui-special-spring1","urlbar-container","customizableui-special-spring2","save-to-pocket-button","downloads-button","fxa-toolbar-menu-button","unified-extensions-button","ublock0_raymondhill_net-browser-action","reset-pbm-toolbar-button"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["firefox-view-button","tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["personal-bookmarks"]},"seen":["save-to-pocket-button","developer-button","ublock0_raymondhill_net-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","toolbar-menubar","TabsToolbar"],"currentVersion":20,"newElementCount":2}
browser.urlbar.placeholderName DuckDuckGo
browser.urlbar.placeholderName.private DuckDuckGo
browser.urlbar.quicksuggest.enabled false
browser.urlbar.quicksuggest.migrationVersion 2
browser.urlbar.quicksuggest.scenario offline
browser.urlbar.speculativeConnect.enabled false
browser.urlbar.suggest.quicksuggest.nonsponsored false
browser.urlbar.suggest.quicksuggest.sponsored false
browser.urlbar.tipShownCount.searchTip_onboard 4
browser.urlbar.trimURLs false
browser.xul.error_pages.expert_bad_cert true
captivedetect.canonicalURL
datareporting.healthreport.infoURL
datareporting.policy.dataSubmissionEnabled false
datareporting.policy.dataSubmissionPolicyAcceptedVersion 2
datareporting.policy.dataSubmissionPolicyNotifiedTime 1725149776032
devtools.everOpened true
devtools.toolbox.footer.height 310
devtools.toolbox.host right
devtools.toolbox.previousHost bottom
devtools.toolsidebar-height.inspector 170
devtools.toolsidebar-width.inspector 700
devtools.toolsidebar-width.inspector.splitsidebar 250
distribution.iniFile.exists.appversion 128.3.1
distribution.iniFile.exists.value false
doh-rollout.disable-heuristics true
doh-rollout.doneFirstRun true
doh-rollout.home-region US
doh-rollout.uri https://mozilla.cloudflare-dns.com/dns-query
dom.forms.autocomplete.formautofill true
dom.popup_allowed_events click dblclick mousedown pointerdown
dom.push.userAgentID [REDACTED]
dom.security.https_only_mode true
dom.security.https_only_mode_ever_enabled true
dom.security.https_only_mode_send_http_background_request false
extensions.activeThemeID default-theme@mozilla.org
extensions.blocklist.pingCountVersion -1
extensions.databaseSchema 36
extensions.enabledscopes 5
extensions.formautofill.addresses.enabled false
extensions.formautofill.available off
extensions.formautofill.creditCards.available false
extensions.formautofill.creditCards.enabled false
extensions.formautofill.creditCards.reauth.optout [REDACTED]
extensions.getAddons.cache.lastUpdate 1729383854
extensions.getAddons.databaseSchema 6
extensions.getaddons.showpane true
extensions.htmlaboutaddons.recommendations.enabled false
extensions.lastAppBuildId 20241008174909
extensions.lastAppVersion 128.3.1
extensions.lastPlatformVersion 128.3.1
extensions.pendingOperations false
extensions.pictureinpicture.enable_picture_in_picture_overrides true
extensions.pocket.enabled false
extensions.postDownloadThirdPartyPrompt false
extensions.quarantinedDomains.list autoatendimento.bb.com.br,ibpf.sicredi.com.br,ibpj.sicredi.com.br,internetbanking.caixa.gov.br,www.ib12.bradesco.com.br,www2.bancobrasil.com.br
extensions.screenshots.disabled true
extensions.systemAddonSet {"schema":1,"directory":"{[REDACTED]}","addons":{"webcompat@mozilla.org":{"version":"133.2.20241017.92612"}}}
extensions.ui.dictionary.hidden true
extensions.ui.lastCategory addons://discover/
extensions.ui.locale.hidden true
extensions.ui.sitepermission.hidden true
extensions.webcompat.enable_shims true
extensions.webcompat.perform_injections true
extensions.webcompat.perform_ua_overrides true
extensions.webextensions.ExtensionStorageIDB.migrated.screenshots@mozilla.org true
extensions.webextensions.ExtensionStorageIDB.migrated.uBlock0@raymondhill.net true
Part 1
So first off I appreciate your “about:config” dump, that is helpful.
However, having ONLY that dump makes it difficult to actually diagnose your issue. It would be helpful to have an idea of what fails.
- Are you only unable to join meetings?
- Can you create meetings?
- Only audio?
- Only video?
- Are there any error messages?
- Are there any messages at all on screen?
- Are there errors in the JavaScript console?
- If there are a lot, can you compare it against the working vanilla version and see where the errors are unique/start to differ?
- When did this issue start to happen? (It worked a week ago, but not now?)
- Is your config based off a guide online?
Second, you have “media.peerconnection.enabled” set to “false”. That setting controls WebRTC. Google Meet uses WebRTC. If I set that value to false my Google Meet meetings fail to load, it just stays stuck at the joining meeting phase.
So maybe that’s your culprit. Of course I would expect if you’ve had this set for a long time I would have expected it to fail for a long time. Also both alternatives you mentioned use WebRTC, so I would expect those to fail with that setting disabled.
Of course if it used to work with that disabled then it’s possible Google Meet changed and had a fallback no longer in use or something else.
As an aside, I understand that WebRTC has (had?) issues leaking local IP addresses while connected to a VPN. So I understand why you might have it disabled.
The webrtc setting is probably it. IMO it’s still google’s fault for not providing a meaningful error message. It just stuck on the loading screen, assuring me that I would enter the meeting but I just didn’t. I don’t like webrtc because it can be used for fingerprinting, so I will probably use jami in the future
extensions.webextensions.restrictedDomains
extensions.webextensions.uuids {"formautofill@mozilla.org":"1cf43bc6-c83e-4df3-a8d2-4038fe816116","pictureinpicture@mozilla.org":"d820dd36-7976-4480-938c-d16b1e655d48","screenshots@mozilla.org":"c5c295b2-c7ae-43ca-b011-cf2335845c51","webcompat-reporter@mozilla.org":"7dec689b-6735-4d50-8320-42358545e131","webcompat@mozilla.org":"6eed24ef-4fed-499f-913e-ef3557628934","default-theme@mozilla.org":"e2130512-1026-4ea0-a0ab-75347897ece0","addons-search-detection@mozilla.com":"f79cc98d-3c13-42d4-8428-bb4d904aac3e","google@search.mozilla.org":"03fee1c7-accd-4276-9798-698f7a16f8c2","wikipedia@search.mozilla.org":"263c52b0-3dd3-40e1-a28f-96ca794755e9","bing@search.mozilla.org":"76b29622-02c9-4c0b-9291-0b86a3d45d4b","ddg@search.mozilla.org":"f24a2e9c-26ec-4114-b7c6-5223dca5fca9","amazondotcom@search.mozilla.org":"eeb096d0-d4a3-4e77-85c3-0643308710b1","ebay@search.mozilla.org":"b5e0c41a-3c79-41bf-8a09-b717abcd054e","uBlock0@raymondhill.net":"9e988b15-dbad-4de5-be05-f46bbc94f24f"}
gecko.handlerService.defaultHandlersVersion 1
geo.provider.use_geoclue false
idle.lastDailyNotification 1729360598
javascript.use_us_english_locale true
media.gmp-gmpopenh264.abi x86_64-gcc3
media.gmp-gmpopenh264.hashValue [REDACTED]
media.gmp-gmpopenh264.lastDownload [REDACTED]
media.gmp-gmpopenh264.lastDownloadFailReason [REDACTED]
media.gmp-gmpopenh264.lastDownloadFailed [REDACTED]
media.gmp-gmpopenh264.lastInstallStart [REDACTED]
media.gmp-gmpopenh264.lastUpdate [REDACTED]
media.gmp-gmpopenh264.version 2.3.2
media.gmp-manager.buildID 20241008174909
media.gmp-manager.lastCheck 1729383901
media.gmp-manager.lastEmptyCheck 1729383901
media.gmp.storage.version.observed 1
media.peerconnection.enabled false
media.peerconnection.ice.default_address_only true
media.peerconnection.ice.no_host true
media.peerconnection.ice.proxy_only_if_behind_proxy true
media.videocontrols.picture-in-picture.video-toggle.first-seen-secs 1725165077
media.videocontrols.picture-in-picture.video-toggle.has-used true
network.IDN_show_punycode true
network.auth.subresource-http-auth-allow 1
network.captive-portal-service.enabled false
network.connectivity-service.enabled false
network.dns.disableIPv6 true
network.dns.disablePrefetch true
network.file.disable_unc_paths true
network.gio.supported-protocols
network.http.referer.XOriginPolicy 2
network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation true
network.http.speculative-parallel-limit 0
network.predictor.enabled false
network.prefetch-next false
network.trr.custom_uri https://dns.mullvad.net/dns-query
network.trr.mode 2
network.trr.uri https://dns.mullvad.net/dns-query
pdfjs.enableScripting false
pdfjs.enabledCache.state true
pdfjs.migrationVersion 2
permissions.manager.defaultsUrl
places.database.lastMaintenance 1728844120
privacy.annotate_channels.strict_list.enabled true
privacy.bounceTrackingProtection.hasMigratedUserActivationData true
privacy.fingerprintingProtection true
privacy.history.custom true
privacy.partition.always_partition_third_party_non_cookie_storage.exempt_sessionstorage true
privacy.purge_trackers.date_in_cookie_database 0
privacy.purge_trackers.last_purge 1729360598375
privacy.query_stripping.enabled true
privacy.query_stripping.enabled.pbmode true
privacy.resistFingerprinting true
privacy.resistFingerprinting.block_mozAddonManager true
privacy.sanitize.clearOnShutdown.hasMigratedToNewPrefs2 true
privacy.sanitize.pending [{"id":"newtab-container","itemsToClear":[],"options":{}}]
privacy.trackingprotection.emailtracking.enabled true
privacy.trackingprotection.enabled true
privacy.trackingprotection.socialtracking.enabled true
privacy.userContext.enabled true
privacy.window.maxInnerHeight 900
privacy.window.maxInnerWidth 1600
security.OCSP.require true
security.cert_pinning.enforcement_level 2
security.pki.crlite_mode 2
security.remote_settings.crlite_filters.enabled true
security.sandbox.content.tempDirSuffix [REDACTED]
security.tls.enable_0rtt_data false
services.settings.blocklists.addons-bloomfilters.last_check 1729405757
services.settings.blocklists.gfx.last_check 1729405757
services.settings.clock_skew_seconds -1
services.settings.last_etag "1729393030056"
services.settings.last_update_seconds 1729405757
services.settings.main.addons-manager-settings.last_check 1729405757
services.settings.main.anti-tracking-url-decoration.last_check 1729405757
services.settings.main.cfr.last_check 1729405757
services.settings.main.cookie-banner-rules-list.last_check 1729405757
services.settings.main.devtools-compatibility-browsers.last_check 1729405757
services.settings.main.devtools-devices.last_check 1729405757
services.settings.main.doh-config.last_check 1729405757
services.settings.main.doh-providers.last_check 1729405757
services.settings.main.fingerprinting-protection-overrides.last_check 1729405757
services.settings.main.fxmonitor-breaches.last_check 1729405757
services.settings.main.hijack-blocklists.last_check 1729405757
services.settings.main.language-dictionaries.last_check 1729405757
services.settings.main.message-groups.last_check 1729405757
services.settings.main.normandy-recipes-capabilities.last_check 1729405757
services.settings.main.partitioning-exempt-urls.last_check 1729405757
services.settings.main.password-recipes.last_check 1729405757
services.settings.main.password-rules.last_check 1729405757
services.settings.main.pioneer-study-addons-v1.last_check 1729405757
services.settings.main.public-suffix-list.last_check 1729405757
services.settings.main.query-stripping.last_check 1729405757
services.settings.main.quicksuggest.last_check 1729405757
services.settings.main.search-config-icons.last_check 1729405757
services.settings.main.search-config-overrides-v2.last_check 1729405757
services.settings.main.search-config-overrides.last_check 1729405757
services.settings.main.search-config-v2.last_check 1729405757
services.settings.main.search-config.last_check 1729405757
services.settings.main.search-default-override-allowlist.last_check 1729405757
services.settings.main.search-telemetry-v2.last_check 1729405757
services.settings.main.sites-classification.last_check 1729405757
services.settings.main.tippytop.last_check 1729405757
services.settings.main.top-sites.last_check 1729405757
services.settings.main.translations-models.last_check 1729405757
services.settings.main.translations-wasm.last_check 1729405757
services.settings.main.url-classifier-skip-urls.last_check 1729405757
services.settings.main.websites-with-shared-credential-backends.last_check 1729405757
services.settings.main.whats-new-panel.last_check 1729405757
services.settings.security-state.cert-revocations.last_check 1729126810
services.settings.security-state.intermediates.last_check 1729126810
services.settings.security-state.onecrl.last_check 1729126810
services.sync.clients.lastSync 0
services.sync.declinedEngines
services.sync.engine.addresses.available true
services.sync.globalScore 0
services.sync.nextSync 0
services.sync.prefs.sync.app.shield.optoutstudies.enabled false
services.sync.prefs.sync.browser.formfill.enable false
services.sync.prefs.sync.signon.rememberSignons false
signon.autofillForms false
signon.formlessCapture.enabled false
signon.management.page.os-auth.optout [REDACTED]
signon.rememberSignons false
storage.vacuum.last.content-prefs.sqlite 1728004322
storage.vacuum.last.index 2
storage.vacuum.last.places.sqlite 1727815054
toolkit.coverage.endpoint.base
toolkit.coverage.opt-out true
toolkit.startup.last_success 1729405748
toolkit.telemetry.archive.enabled false
toolkit.telemetry.bhrPing.enabled false
toolkit.telemetry.cachedClientID [REDACTED]
toolkit.telemetry.firstShutdownPing.enabled false
toolkit.telemetry.newProfilePing.enabled false
toolkit.telemetry.pioneer-new-studies-available true
toolkit.telemetry.previousBuildID 20240801134912
toolkit.telemetry.reportingpolicy.firstRun false
toolkit.telemetry.server data:,
toolkit.telemetry.shutdownPingSender.enabled false
toolkit.telemetry.unified false
toolkit.telemetry.updatePing.enabled false
trailhead.firstrun.didSeeAboutWelcome true
webgl.disabled true
Part 2
I had the same issue using Librewolf, but are you really surprised?