Skip to content

Bug 2037079 - Add support for captive portal#1129

Open
mkaply wants to merge 1 commit into
mozilla:enterprise-mainfrom
mkaply:2037079
Open

Bug 2037079 - Add support for captive portal#1129
mkaply wants to merge 1 commit into
mozilla:enterprise-mainfrom
mkaply:2037079

Conversation

@mkaply

@mkaply mkaply commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Description

Bugzilla: Bug-2037079

This patch updates our update/login flow to support captive portals

Screenshots (I have not received a design for this. I have requested it)

Screenshot 2026-07-10 070358 Screenshot 2026-07-10 070410

Comment thread toolkit/components/felt/content/window.js Outdated
Comment thread toolkit/components/felt/content/window.js
Comment thread toolkit/components/felt/content/window.js Outdated
Comment thread toolkit/components/felt/content/window.js Outdated
Comment thread toolkit/components/felt/content/window.js Outdated
@mkaply

mkaply commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

I think a point is missed here.

Captivity isn't just that happens at startup. It can happen at any time during the session which is why we handle it with observers and let network calls timeout.

Comment thread toolkit/components/felt/content/window.js Outdated
Comment thread toolkit/components/felt/content/window.js Outdated
@mkaply

mkaply commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

This is not ready for review again yet. Accidentally force pushed before I tested.

Comment thread toolkit/components/enterprise/modules/CaptivePortal.sys.mjs
Comment thread toolkit/components/felt/content/CaptivePortal.sys.mjs Outdated
Comment thread toolkit/components/felt/content/window.js Outdated
Comment thread toolkit/components/felt/content/window.js
Comment thread toolkit/components/felt/content/felt.xhtml Outdated
Comment thread toolkit/components/felt/content/felt.xhtml Outdated
@lissyx lissyx changed the title Add support for captive portal Bug 2037079 - Add support for captive portal Jul 10, 2026
Comment thread toolkit/components/felt/content/CaptivePortal.sys.mjs Outdated
Comment thread toolkit/components/enterprise/modules/CaptivePortal.sys.mjs
Comment thread toolkit/components/felt/content/CaptivePortal.sys.mjs Outdated
Comment thread toolkit/components/felt/content/window.js Outdated
Comment thread toolkit/components/felt/content/window.js
Comment thread toolkit/components/felt/content/window.js
Comment thread toolkit/components/felt/content/CaptivePortal.sys.mjs Outdated
Comment thread toolkit/components/enterprise/modules/CaptivePortal.sys.mjs
Comment thread toolkit/components/felt/content/CaptivePortal.sys.mjs Outdated
Comment thread toolkit/components/felt/content/CaptivePortal.sys.mjs Outdated
Comment thread toolkit/components/enterprise/modules/CaptivePortal.sys.mjs Outdated
Comment thread toolkit/components/felt/content/window.js

@lissyx lissyx left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r=me with all the remainders addressed, we verified on slack what was working/broken on my local setup as well

Enterprise Firefox never showed the captive-portal experience: on a network
behind a sign-in page the FELT login window couldn't reach the enterprise
console and the user was stuck. Detect the portal, let the user sign in to the
network from inside the login window, then continue to console sign-in.

- Stop routing captivedetect.canonicalURL and the connectivity-service URLs
  through the HTTPS console; they must stay plaintext so a portal can intercept.
- Add a captive-portal banner (reusing desktop Firefox's neterror strings) with
  a button that opens the portal's sign-in page in a browser embedded in the
  FELT window. Teardown/resume is driven by CaptivePortalService's connectivity
  signal, not the portal's navigation.
- Gate the startup update check on captive-portal state so we never start a
  network update check while stuck behind a portal.
- Clear the private cookie jar when tearing the portal down so the untrusted
  portal's cookies aren't collected into the enterprise session.
- CaptivePortal lives in its own module (enterprise/modules) with a small
  injected-callback interface; it never reaches back into window.js.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants