WebRTC Leaks Explained: The Browser Feature That Can Expose Your Real IP

Your VPN can be doing everything right and your browser can still hand your real IP address to a website directly. Here's how, and what to do about it.

Quick answer

A WebRTC leak happens when a browser feature called WebRTC, built for real-time audio, video, and file-sharing features, reveals your device's real IP address directly to a website through its own separate communication channel — bypassing your VPN tunnel entirely rather than going through it. This is a browser-level issue, not necessarily a failure of the VPN itself, and it can happen even with a reputable, well-configured VPN connection because WebRTC uses a fundamentally different mechanism (STUN/TURN servers and ICE candidate discovery) than ordinary web traffic. You can check for it in under a minute with a free WebRTC leak test: connect to your VPN, visit a WebRTC leak testing site, and see whether any IP address other than the one your VPN assigned shows up in the results. Most current VPN apps and privacy-focused browsers now include some form of WebRTC leak protection, but it varies by browser and provider, so testing your own specific setup is the only way to know for certain.

What exactly is WebRTC, and why does a browser feature need to know your real IP address?

WebRTC stands for Web Real-Time Communication. It's a set of browser technologies, built directly into Chrome, Firefox, Edge, Safari, Opera, and most other modern browsers, that lets web pages handle live audio, video, and peer-to-peer data transfer without installing a separate plugin or app. If you've ever joined a video call through a browser tab rather than a downloaded app, used a browser-based screen-sharing tool, or used a web app that transfers a file directly between two browsers, there's a good chance WebRTC was doing the underlying work. It's a genuinely useful piece of infrastructure, and it's the reason a lot of "no download required" video and voice tools work at all.

The part that matters for VPN users is how WebRTC actually establishes a live connection between two browsers, often across two home networks that both sit behind routers and don't have a public, directly reachable address of their own. To make a direct peer-to-peer connection possible under those conditions, WebRTC uses a process called ICE (Interactive Connectivity Establishment), which involves each browser contacting a small, lightweight server — a STUN server, and sometimes a TURN server — whose whole job is to help the browser figure out and report its own IP addresses, both the private one assigned by a local router and, in many cases, the public one your internet connection uses. Those discovered addresses, called ICE candidates, then get shared with the other side of the call so the two browsers can try to connect to each other as directly as possible.

None of that is malicious or unusual by design — it's a reasonable, fairly standard way to solve a real networking problem, and it's what makes a lot of everyday browser-based communication tools work smoothly. The issue for VPN users is that this IP address discovery process happens through a mechanism that sits somewhat outside the browser's normal, general internet traffic path, and it can, under the wrong conditions, report a real IP address that a VPN is specifically trying to hide.

What is a WebRTC leak, specifically?

A WebRTC leak is what happens when a website — not necessarily one you're on a video call with, simply any page running a small piece of JavaScript — uses the WebRTC API to trigger that same ICE candidate discovery process, and the addresses that come back include your device's real IP address rather than only the IP address your VPN has assigned you. Because triggering this check requires nothing more than a few lines of JavaScript running in the background, it doesn't require you to be on a video call, or even to know it's happening — a page can run this check silently the moment it loads, without any visible indication in the browser that it occurred.

The practical effect is similar in spirit to a DNS leak, covered in our separate guide to DNS leaks, but the underlying mechanism is different and, in some ways, more direct. A DNS leak exposes which domains you're looking up. A WebRTC leak can expose your actual IP address itself — the same address a VPN's core job is to hide from the sites you visit. If a site can read your real IP address through WebRTC while your VPN is connected and showing your VPN-assigned IP everywhere else, the site now has a piece of information the VPN was specifically supposed to prevent it from having, obtained through a path the VPN's normal traffic routing may not have covered at all.

It's worth being precise about scope here too. A WebRTC leak, on its own, exposes an IP address — not your browsing history, not page content, not login credentials. That's narrower than it might sound at first, but an IP address is still a meaningful piece of identifying information: it can reveal your approximate location, your internet provider, and — combined with other information a site already has about you, like an account you're logged into — can undercut the specific anonymity a VPN is being used to provide.

Why does a WebRTC leak happen even when a VPN is connected?

This is the part that trips people up, because it seems like it shouldn't be possible: the VPN app shows "connected," the site you're visiting is loading through the VPN's IP address by every normal measure, and yet a WebRTC-based test can still surface your real one. The short explanation is that a VPN's job is usually to route your device's general network traffic through an encrypted tunnel and out through the VPN server's IP address — but WebRTC's ICE candidate discovery doesn't always behave like general traffic. It can, depending on the operating system, the VPN's specific implementation, and the browser, use network interfaces or routing paths that sit outside what the VPN is actively tunneling.

A few underlying causes explain most real cases:

The VPN doesn't force all network interfaces through the tunnel. Some devices retain more than one active network path even while a VPN is connected — for example, a device's original network adapter alongside the VPN's virtual adapter. WebRTC's STUN request, at the operating-system level, can end up going out over whichever interface it reaches first or is bound to, rather than being forced specifically through the VPN's virtual adapter the way a well-configured VPN routes ordinary web traffic.

The browser itself, not the operating system, is doing the discovery. WebRTC's IP discovery happens inside the browser's own networking stack, which in some browsers and some configurations can behave slightly differently from how the browser handles a normal HTTP request. A VPN that correctly tunnels all conventional web traffic doesn't automatically guarantee it's also correctly intercepting this specific browser-level mechanism, especially on VPN implementations that route traffic at a lower network layer without any browser-specific handling.

Split tunneling is enabled, deliberately or by default. Split tunneling lets you choose which apps or traffic go through the VPN and which don't, which is a genuinely useful feature for some use cases — but if a browser is excluded from the tunnel, either intentionally or through a misconfigured rule, any WebRTC activity in that browser will use your real IP address by design, not by leak.

IPv6 connectivity isn't handled by the VPN. As with DNS leaks, if a device has active IPv6 connectivity and the VPN tunnel only handles IPv4 traffic, WebRTC's ICE candidate gathering can pick up and report a real IPv6 address that never passes through the VPN tunnel at all, even while IPv4 traffic is correctly routed and protected.

A browser extension, or the VPN's own browser extension, isn't handling WebRTC. Some people run a VPN's browser extension instead of, or alongside, its desktop app. Browser extensions have more limited access to a device's underlying network stack than a full desktop VPN app, and not every VPN browser extension specifically intercepts and blocks WebRTC's IP discovery — some only redirect the browser's regular HTTP traffic, leaving WebRTC untouched.

As with DNS leaks, none of this requires a VPN provider to be acting in bad faith. It's largely a case of one specific browser mechanism sitting slightly outside the scope of what a VPN's tunnel automatically covers unless the provider has specifically built in handling for it — which is exactly why WebRTC leak protection is worth checking for as a distinct feature rather than assuming any working VPN connection automatically includes it.

What exactly are STUN and TURN servers, and why do they need to know your IP address?

It helps to understand these two pieces by name, since they're the actual mechanism behind a WebRTC leak rather than an abstract idea. A STUN server (Session Traversal Utilities for NAT) has one narrow job: when a browser asks it "what does my connection look like from the outside world?", it answers with the public IP address and port the request arrived from. That's the whole function — it's not a relay for the actual call, and it doesn't need to know anything about who you are or what site you're on. Most browsers query a small number of well-known, often free, publicly available STUN servers (Google runs some of the most widely used ones) for exactly this purpose, and any site's JavaScript can trigger the same query, which is what makes a WebRTC leak check possible in the first place.

A TURN server (Traversal Using Relays around NAT) is a fallback for the cases where two browsers can't establish a direct peer-to-peer connection at all — some corporate or mobile networks block the kind of direct connection WebRTC prefers. When that happens, a TURN server relays the traffic between the two sides instead, at the cost of being a proxy for the whole session rather than just a one-time address lookup. TURN servers matter less for the leak scenario specifically, since a straightforward IP-leak check usually only needs the STUN step to get a usable result, but they're part of the same overall ICE negotiation process and worth knowing about if you dig into a leak testing tool's more detailed output.

The reason this matters for understanding leaks specifically: neither STUN nor TURN servers are part of your VPN provider's infrastructure in a typical setup. They're operated by whoever built the WebRTC feature into the browser, or by whatever public STUN service the browser defaults to, and the request your browser sends them travels over whatever network path the operating system hands it — which, as covered above, isn't guaranteed to be the VPN's tunnel unless something has specifically forced it there. A VPN that only reroutes traffic addressed to the sites you visit, without accounting for this separate, lower-level STUN request, will let that request go out — and come back with your real IP address — entirely undisturbed.

Why does a WebRTC leak actually matter?

An IP address by itself doesn't reveal your name or your browsing history, so it's reasonable to ask how much a WebRTC leak actually changes in practice. The honest answer depends heavily on why you're using a VPN in the first place.

For someone using a VPN mainly to access region-restricted streaming content, a WebRTC leak is a meaningful technical gap but a fairly low-stakes one in most everyday situations — a streaming service or a similarly ordinary website learning your real, approximate location through a leaked IP address isn't generally a safety issue, even if it defeats the specific geographic masking the VPN was set up to provide for that session.

For someone using a VPN specifically to keep their real location and identity separate from a site or service they're interacting with — which covers a wide range of situations discussed elsewhere on this site, including journalists, activists, and anyone whose privacy is the primary reason for using a VPN at all — a WebRTC leak can undercut exactly the thing the VPN was chosen to do. If the whole point of connecting through a VPN before visiting a particular site is that the site shouldn't be able to tie your visit back to your real location or your real internet connection, a WebRTC leak quietly defeats that, without any visible sign anything went wrong.

There's also a compounding factor worth naming directly: a leaked IP address becomes more useful to whoever receives it when it can be combined with other information. A site you're logged into, that also happens to run a WebRTC-based IP check, could in principle tie your account identity to your real IP address even while every other visible signal — the address bar, any displayed location indicator, your VPN app itself — suggests you're connecting from somewhere else entirely. That gap between what appears to be true and what a site can actually determine is the core reason WebRTC leaks are treated as a real privacy issue rather than a minor technical curiosity.

It's also worth being clear about what a WebRTC leak does not typically expose on its own: it doesn't reveal page content, messages, files, or credentials, and it isn't a mechanism for a site to access your camera or microphone without a separate, visible permission prompt. The risk is specifically and narrowly about IP address exposure — but for a VPN whose core promise is hiding that exact piece of information, a narrow leak of exactly that information is still a meaningful failure of the tool's central job.

Which browsers and situations are most prone to WebRTC leaks?

WebRTC leak exposure isn't uniform across browsers, and it has changed somewhat over time as browser makers have added mitigations. A general, current picture:

Chromium-based browsers (Chrome, Edge, Opera, Brave, and others)

Chrome and the growing family of browsers built on the same underlying Chromium engine have historically been the most commonly discussed source of WebRTC leaks, mainly because of how widely used they are rather than because the underlying WebRTC implementation is uniquely flawed. A meaningful mitigation Chromium browsers introduced is mDNS (multicast DNS) obfuscation of local IP addresses in ICE candidates — instead of exposing your device's actual local network address directly, the browser can report an obfuscated, randomized placeholder instead. That helps with local IP exposure specifically, but it doesn't, by itself, prevent a public IP address obtained through a STUN server from being exposed if the VPN isn't properly tunneling that request.

Firefox

Firefox includes WebRTC as well, but it also exposes a direct, user-accessible setting — reachable by typing about:config into the address bar and adjusting the media.peerconnection.enabled preference — that lets a user disable WebRTC entirely at the browser level. That's a more blunt instrument than the more targeted protections other browsers or extensions offer, since it disables browser-based video and voice calling features along with the leak risk, but it's a straightforward option specific to Firefox.

Safari

Safari supports WebRTC as well, with its own set of privacy protections layered in as part of Apple's broader Intelligent Tracking Prevention work, though the specifics of exactly what's protected and under what conditions have shifted across versions, which is part of why testing your own current browser version directly is more reliable than assuming a particular browser is categorically safe or unsafe.

Mobile browsers

WebRTC leak testing and mitigation tends to get less attention on mobile than on desktop, partly because mobile operating systems handle VPN tunneling somewhat differently and partly because fewer WebRTC-blocking browser extensions exist for mobile browsers at all. If WebRTC leak protection matters to you and you regularly browse from a phone or tablet, it's worth testing your specific mobile browser and VPN app combination directly rather than assuming desktop-focused advice transfers over exactly.

Browser extensions and embedded browsers

Some apps embed their own browser component (sometimes called a WebView) rather than using your system's default browser, and these embedded browsers don't always inherit the same privacy extensions or settings you've configured in your main browser. A WebRTC leak check run in your normal browser doesn't necessarily tell you anything about how an embedded browser inside a different app behaves.

How do you run a WebRTC leak VPN test?

Checking for a WebRTC leak is quick and doesn't require installing anything beyond your normal browser and VPN app in most cases. The general process:

  1. Note your real IP address first, without the VPN connected (optional but useful). Visiting any "what is my IP" site before connecting to your VPN gives you a baseline to compare against — if that same address shows up again once you run the WebRTC-specific test while connected, that's a clear leak.
  2. Connect to your VPN as you normally would. Use whichever server location you'd typically pick, and give the app a moment to confirm a stable connected state before testing.
  3. Visit a dedicated WebRTC leak testing site. Several free, browser-based tools exist specifically for this — sites that run browserleaks.com-style WebRTC checks, or ipleak.net, are commonly used examples, though any independent WebRTC leak testing tool works on the same underlying principle: triggering the browser's WebRTC IP discovery and displaying whatever addresses come back.
  4. Test in every browser you actually use, not just one. Because WebRTC behavior and any leak protection settings are configured per browser rather than system-wide in most cases, a clean result in one browser doesn't confirm the same is true in another browser installed on the same device.
  5. Read the list of IP addresses the test reports. A WebRTC leak test typically shows both your public IP address (as seen by the site generally) and any addresses specifically discovered through WebRTC — sometimes labeled separately as "local" and "public" candidates. This is the part that tells you whether a leak exists, covered in the next section.
  6. Repeat the test after changing browsers, VPN servers, networks, or devices. A clean WebRTC leak test result on one browser, one VPN server, or one network doesn't automatically generalize to every combination you might use. Re-testing after a meaningful change is a reasonable habit rather than excessive caution.

Because this is a browser-level check, it's specifically worth running the test in an incognito or private browsing window too, and separately in your normal browsing window — some browser extensions that block WebRTC leaks only apply in one context or the other depending on how they're configured, so a result that looks clean in one mode isn't automatically true in the other.

How do you interpret the results of a WebRTC leak test?

A WebRTC leak test result usually lists one or more IP addresses, sometimes labeled as "public" and "local" or "private," reflecting the different categories of address WebRTC's ICE candidate process can discover. Making sense of the result comes down to comparing what's shown against the IP address your VPN assigned you.

If the only public IP address shown matches your VPN's assigned IP address, that's the result you want — WebRTC isn't exposing an address outside what the VPN is already showing to the rest of the internet.

If a public IP address appears that matches your real internet connection rather than your VPN's address, that's a WebRTC leak. It means a website using the same technique the test just used could obtain your real IP address directly, regardless of your VPN's connected status.

If a local or private IP address is shown (typically something in a private address range), this is a narrower concern than a leaked public IP address, since a private, local network address generally isn't enough on its own to identify you or your location the way a public IP address can — most modern browsers with mDNS obfuscation enabled will show a randomized placeholder here rather than your device's actual local address anyway. It's still worth noting, but it's a meaningfully smaller issue than a leaked public IP.

If no addresses are returned at all, or the test explicitly reports "no WebRTC support detected," that typically means WebRTC is disabled in your browser, or a browser extension is actively blocking the discovery process before it can run — both of which count as a pass from a leak-prevention standpoint, though it also means WebRTC-dependent features like browser-based video calling won't work until it's re-enabled.

One nuance worth flagging directly, the same way it applies to DNS leak testing: a clean result confirms WebRTC isn't leaking your real IP for that specific browser, on that specific device, on that specific network, at that specific moment. It doesn't retroactively confirm anything about a different browser on the same device, a different network you might connect from later, or a future browser update that changes how WebRTC behaves.

How do you fix or prevent a WebRTC leak?

The right approach depends on how much you rely on WebRTC-based features (browser video calls being the most common one) and how much control you want over the fix.

Use a VPN with built-in WebRTC leak protection

A growing number of VPN providers build WebRTC leak protection directly into their apps or browser extensions, specifically intercepting the STUN request path so it's routed through the VPN tunnel rather than around it. This is generally the least disruptive fix, since it doesn't require disabling WebRTC entirely and so doesn't break browser-based calling features. If WebRTC leak protection matters to you, it's a reasonable, specific question to check for when comparing providers — our individual reviews, including our NordVPN review and Proton VPN review, are a starting point for looking at how a given provider documents its own WebRTC handling.

Install a browser extension specifically built to block WebRTC leaks

Several browser extensions exist specifically to prevent WebRTC from exposing your local or public IP address, and some general-purpose privacy and ad-blocking extensions include this as an optional setting rather than a separate install — for instance, some popular content-blocking extensions include a toggle along the lines of "prevent WebRTC from leaking local IP addresses" in their advanced settings. This approach is fairly lightweight and targeted, but it's specific to whichever browser you install it in, so it needs to be repeated for each browser you use.

Disable WebRTC entirely in your browser, if you don't rely on it

Firefox allows disabling WebRTC outright through its about:config settings, by setting media.peerconnection.enabled to false. Chromium-based browsers don't offer as direct a built-in toggle for this, which is part of why browser extensions are the more common route for Chrome, Edge, and similar browsers. Disabling WebRTC entirely is the most complete fix from a leak standpoint, but it comes with a real tradeoff: any site or app that depends on WebRTC — browser-based video calls, some voice chat features, some file-sharing tools — will stop working correctly until it's re-enabled, so this is a better fit for someone who doesn't regularly use those features in that particular browser.

Check your VPN app's settings for a WebRTC-specific toggle

Some VPN apps expose WebRTC leak protection as an explicit, separate setting rather than assuming it's always active — sometimes bundled with the app's browser extension rather than the main desktop app. If your provider offers a browser extension in addition to a desktop app, check whether the extension specifically mentions WebRTC leak protection in its settings or description, since not every provider's browser extension covers it by default.

Avoid relying on split tunneling for a browser you also use for anything sensitive

If your VPN's split tunneling feature is set to exclude a particular browser from the VPN tunnel — for performance reasons, or by default — remember that any WebRTC activity in that browser will use your real IP address as a direct consequence of that setting, not as an unexpected leak. If you need a browser to stay covered by the VPN, confirm it's explicitly included in the tunnel rather than assuming split tunneling only affects the traffic you had in mind when you configured it.

Disable IPv6 if your VPN doesn't fully tunnel it

As with DNS leaks, if a WebRTC leak test specifically surfaces a real IPv6 address and your VPN provider doesn't explicitly support tunneling IPv6 traffic, disabling IPv6 at the device or network level removes that particular untunneled path. This is a device or operating-system setting rather than something the VPN app itself typically controls.

Do all VPNs protect against WebRTC leaks by default?

No — and this is genuinely inconsistent across providers, browsers, and even individual app versions from the same provider, which is exactly why testing your own setup matters more than trusting a general claim either way. WebRTC leak protection has become a more commonly discussed and more commonly addressed feature among established VPN providers over time, but "commonly addressed" isn't the same as "universally and automatically covered on every browser and platform." Because WebRTC leak protection often depends on a browser extension or a browser-specific setting rather than something the VPN's core tunnel automatically covers, it's genuinely possible for the same VPN provider to protect against WebRTC leaks well in one browser and incompletely in another, depending on which extension or app component you're using.

Free or lower-resourced VPN services deserve particular scrutiny here for the same reason they do with DNS leak protection: building and testing WebRTC leak handling across every major browser takes ongoing engineering attention that a smaller service may not have consistently invested in. That's not an accusation of bad faith — it's a reasonable, practical reason to verify rather than assume, regardless of which provider you use.

Is a WebRTC leak the same thing as a DNS leak or an IP leak in general?

They're related concepts that get discussed together often, but they're technically distinct, and the fix for one doesn't automatically fix the other. Our separate guide to DNS leaks covers this in more depth, but the short version: a DNS leak exposes which domain names your device is looking up, through DNS resolution traffic escaping the VPN tunnel. A WebRTC leak exposes your actual IP address directly, through a browser-specific mechanism (STUN/TURN and ICE candidate discovery) that has nothing to do with DNS resolution. "IP leak" is sometimes used as a broader umbrella term that can include WebRTC leaks as one specific cause, alongside other, less common causes like a VPN kill switch failing to engage during a brief disconnection.

In practical terms, if a leak testing tool reports unexpected DNS servers, that points to a DNS leak, and the fix generally involves the VPN's DNS handling or a device-level DNS setting. If a testing tool reports your actual IP address directly — the same address a plain "what is my IP" check would show without a VPN — that points to a WebRTC leak (if you're specifically on a WebRTC test page) or a more general IP exposure issue, and the fix is more likely a browser setting, browser extension, or the VPN's kill switch and interface handling, rather than a DNS setting. Running both a DNS leak test and a WebRTC leak test separately, rather than assuming one covers the other, gives a more complete picture of whether your VPN setup is actually doing what it appears to be doing.

Does finding a WebRTC leak mean my VPN provider is untrustworthy?

Not necessarily, and the same caution applies here as with DNS leaks: a single leaked test result is more often a sign of an unaddressed technical gap than evidence of a provider acting in bad faith. Because WebRTC leak protection frequently depends on browser-specific handling — a browser extension, a setting the VPN app doesn't control, split tunneling configuration you set yourself — the cause of a given leak is often something fixable on your end (installing a WebRTC-blocking extension, checking a browser setting, confirming your browser isn't excluded from the tunnel) rather than something wrong with the VPN's core service.

That said, a WebRTC leak is still worth taking seriously and fixing once you find one, regardless of where the root cause turns out to be. And it's a fair, reasonable thing to weigh when comparing providers: a VPN that documents WebRTC leak protection clearly, builds it into its browser extension by default, and has a track record of promptly addressing reported leaks is offering a meaningfully more complete privacy tool than one that doesn't mention the issue at all. It's a reasonable specific question to look for an answer to in a provider's own documentation or support pages before assuming either way.

How often should you test for WebRTC leaks?

There's no universal schedule, because how much this matters depends heavily on why you're using a VPN. A reasonable baseline: test once after setting up a new VPN app or browser extension, again after any major browser update (since browser updates can change WebRTC behavior or reset extension settings), and again any time you switch to a browser you haven't specifically tested before. For most general, lower-stakes VPN use, an occasional spot-check covers the practical need.

If your reason for using a VPN sits closer to the higher-stakes end — keeping your real location and identity separate from a specific site or service for reasons that matter to your safety, not just your convenience — testing more deliberately, and specifically before any session where it matters most, is worth the small amount of extra time. A WebRTC leak test takes under a minute, which is a small cost relative to what it's meant to protect against in those situations.

Practical takeaway

A WebRTC leak is a narrow, browser-specific gap with an outsized potential consequence: a website can obtain your real IP address directly, through a mechanism most people have never heard of and don't interact with knowingly, entirely separate from whether your VPN is otherwise routing your traffic correctly. It happens because WebRTC's IP discovery process — built for a legitimate purpose, connecting browsers directly for calls and file transfers — can sit outside the specific network path a VPN tunnels, depending on the browser, the operating system, and how thoroughly the VPN's app or extension has been built to account for it specifically. It's checkable in under a minute with a free WebRTC leak test, run separately in each browser you actually use, comparing whatever IP addresses come back against the IP address your VPN assigned. Treat a clean result as confirmation for that specific browser and moment rather than a permanent guarantee, re-test after browser or VPN app updates, and — if you don't rely heavily on browser-based video calling — consider a dedicated WebRTC-blocking browser extension or your VPN's own built-in protection as a straightforward, low-effort way to close the gap rather than leaving it to chance.

Frequently asked questions

What is a WebRTC leak vpn users should specifically test for?

It's a situation where your browser's built-in WebRTC feature reveals your real IP address directly to a website, bypassing your VPN's tunnel through a separate technical mechanism (STUN/TURN servers and ICE candidate discovery) rather than through the browser's normal web traffic path. It can happen even while your VPN app shows a normal connected state and every other visible signal suggests your real IP is hidden, which is why a dedicated WebRTC leak test — separate from just checking your VPN app's status — is the only reliable way to confirm it isn't happening on your own setup.

Can I just disable WebRTC to avoid worrying about leaks?

Yes, in browsers that allow it — Firefox, for instance, lets you disable WebRTC through its about:config settings. This is one of the more complete fixes, since it removes the discovery mechanism entirely rather than trying to block just its leak behavior. The tradeoff is that any site or app relying on WebRTC in that browser — browser-based video calls, some voice chat and file-sharing tools — will stop working correctly until you re-enable it, so it's a better fit if you don't regularly use those features in that particular browser.

Does using my VPN provider's browser extension instead of the desktop app prevent WebRTC leaks?

Not automatically, and it depends entirely on the specific extension. Some VPN browser extensions specifically intercept and block WebRTC's IP discovery process as a built-in feature; others only redirect the browser's regular HTTP traffic and leave WebRTC untouched. Check your specific provider's extension settings or documentation for an explicit mention of WebRTC leak protection rather than assuming any browser extension covers it by default.

Will a VPN kill switch protect me from a WebRTC leak?

No — a kill switch and WebRTC leak protection address two different problems. A kill switch blocks your device's internet access if the VPN connection drops unexpectedly, preventing exposure during a disconnection. A WebRTC leak can happen while the VPN is actively connected and working normally by every other measure, through a mechanism a kill switch isn't designed to address at all. The two features are complementary, not substitutes for each other.

If a WebRTC leak test shows my real local IP address but not my public one, is that still a problem?

It's a smaller concern than a leaked public IP address, since a local, private network address (something in a private IP range) generally isn't enough on its own to identify you or your location the way a public IP address can. Many current browsers with mDNS obfuscation enabled will show a randomized placeholder instead of your device's real local address specifically to reduce this. It's still worth being aware of, but a leaked public IP address is the more consequential result to act on.

Why does my WebRTC leak test show a different result in Chrome than in Firefox on the same device?

Because WebRTC leak protection is typically implemented per browser — through a browser extension, a browser-specific setting, or built into a browser's own privacy features — rather than as a single system-wide setting that automatically covers every browser installed on a device. A fix or protection applied in one browser (an extension installed in Chrome, for instance) has no effect on a separate browser like Firefox unless you've applied an equivalent fix there too, which is why testing each browser you actually use, individually, matters.