Get out of calls by simulating a bad connection

Latest Version

Version
1.0.0
Update
April 21, 2022
Size
2.44MiB
Developer
badconnectionsimulator.com
Category
Users
1,000+
Rating
4.4 ★
Manifest Version
3
Web Store Status
Languages Support
English (United States)
See more
Permissions
ActiveTab
See more

Bad Connection Simulator Extension

The perfect excuse to off of video calls

Stuck on a video call you want to get out and need a good excuse? The Bad Connection Simulator Chrome Extension simulates a bad connection with just a click!

→ Works with any web-based video calling app
→ Easy to use - just install the extension, no other installations required
→ 3 levels of impairment - none, moderate, and severe
→ Evades low bandwidth adaptation used by video calling apps

HOW TO USE 🍰
1. Install the extension from the Chrome WebStore
2. Join your video call
3. Click the Bad Connection Simulator icon and select your impairment level
4. Adjust as needed throughout your call

Verified with Zoom, Google Meet, Microsoft Teams, Facebook Messenger, Google Duo, Jitsi Meet, Whereby.

Make sure to use the web-version of your video calling app. Bad Connection Simulator also needs to run inside a tab.

THREE LEVELS OF IMPAIRMENT
Adjust your impairment depending on your needs:

1️⃣ NONE - Normal connectivity
2️⃣ MODERATE - will show some visual impairments and audibly degrade your audio quality. Others will notice you are having some connection issues.
3️⃣ SEVERE - unusable connection with obvious visual artifacts and unusable audio. Now it is safe to drop off

Star with moderate to signal you may have connection issues then switch to severe when you’re ready to drop. Decrease or stop the impairment at any time.

FOR BEST RESULTS
You have to join from Chrome or Edge!

Bad Connection Simulator only works on Chromium-based Desktop browsers like Chrome or Edge. Also note, many web calling apps prefer to send you to their native desktop application instead of taking the call from the browser. Make sure you do not click through to the Desktop app.

Turn off virtual backgrounds
Don't use the virtual background feature. Usually this will not be altered, so your video will look impaired but the virtual background won't be.

How it works ℹ️️
Bad Connection Simulator extension inserts itself after your webcam and microphone streams. Unlike other impairment simulators, everything is contained in the browser and controlled by the extension.

* No installing fake device drivers
* No need to select a special device
* No need to load any external apps

Modern video calling systems are designed to deal with bad connections and will try to adapt to reduce any impairments. Bad Connection Simulator applies realistic impairments directly to the source video stream before it is transmitted. Video conferencing systems see a normal stream, so they do not make any adjustments while your video and audio come through like garbage!

Explanation for Nerds 🤓
Bad Connection Simulator makes use of WebRTC Insertable Streams. After a getUserMedia call, the source streams are routed through WebCodecs where the stream is re-encoded with simulated packet loss and latency. Then the stream is passed to the video calling app where it is displayed and can be passed to a RTCPeerConnection.
Read more

Source Manifest.json

{"update_url": "https://clients2.google.com/service/update2/crx", "name": "Bad Connection Simulator", "action": { "default_icon": { "16": "/assets/icon-16.png", "48": "/assets/icon-48.png", "256": "/assets/icon-256.png" }, "default_title": "Bad Connection Simulator", "default_popup": "pages/popup.html" }, "manifest_version": 3, "version": "1.0.0", "description": "Get out of calls by simulating a bad connection", "permissions": [ "activeTab" ], "content_scripts": [ { "matches": [ "http://*/*", "https://*/*" ], "exclude_matches": [], "all_frames": false, "match_about_blank": false, "run_at": "document_start", "js": [ "scripts/content.js" ] } ], "web_accessible_resources": [ { "resources": [ "scripts/inject.js" ], "matches": [ "http://*/*", "https://*/*" ] } ], "host_permissions": [ "http://*/*", "https://*/*" ]}
Read more