Skip to content

Conversation

@codebytere
Copy link
Member

Backport of #48512.

See that PR for details.

Notes: Added support for WebSocket authentication through the login event on webContents.

@codebytere codebytere requested a review from a team November 24, 2025 20:02
@electron-cation electron-cation bot added the new-pr 🌱 PR opened recently label Nov 24, 2025
@trop trop bot added 39-x-y backport This is a backport PR backport/requested 🗳 semver/minor backwards-compatible functionality labels Nov 24, 2025
@electron-cation electron-cation bot removed the new-pr 🌱 PR opened recently label Nov 24, 2025
ckerr
ckerr previously requested changes Nov 25, 2025
Copy link
Member

@ckerr ckerr left a comment

Choose a reason for hiding this comment

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

FTBFS
2025-11-25T05:25:54.0585697Z In file included from ../../electron/shell/browser/net/proxying_websocket.cc:5:
2025-11-25T05:25:54.0614346Z ##[error]../../electron/shell/browser/net/proxying_websocket.h:107:31: error: use of undeclared identifier 'api'; did you mean 'extensions::api'?
2025-11-25T05:25:54.0615226Z   107 |   void OnAuthRequiredComplete(api::WebRequest::AuthRequiredResponse rv);
2025-11-25T05:25:54.0615657Z       |                               ^~~
2025-11-25T05:25:54.0615992Z       |                               extensions::api
2025-11-25T05:25:54.0616529Z gen/extensions/common/api/declarative_net_request.h:28:11: note: 'extensions::api' declared here
2025-11-25T05:25:54.0616997Z    28 | namespace api {
2025-11-25T05:25:54.0617241Z       |           ^
2025-11-25T05:25:54.0617613Z In file included from ../../electron/shell/browser/net/proxying_websocket.cc:5:
2025-11-25T05:25:54.0619309Z ##[error]../../electron/shell/browser/net/proxying_websocket.h:107:31: error: no member named 'WebRequest' in namespace 'extensions::api'; did you mean 'WebRequestAPI'?
2025-11-25T05:25:54.0620099Z   107 |   void OnAuthRequiredComplete(api::WebRequest::AuthRequiredResponse rv);
2025-11-25T05:25:54.0620524Z       |                               ^~~~~~~~~~~~~~~
2025-11-25T05:25:54.0620843Z       |                               WebRequestAPI
2025-11-25T05:25:54.0621385Z ../../electron/shell/browser/net/web_request_api_interface.h:21:7: note: 'WebRequestAPI' declared here
2025-11-25T05:25:54.0621857Z    21 | class WebRequestAPI {
2025-11-25T05:25:54.0622107Z       |       ^
2025-11-25T05:25:54.0622467Z In file included from ../../electron/shell/browser/net/proxying_websocket.cc:5:
2025-11-25T05:25:54.0623467Z ##[error]../../electron/shell/browser/net/proxying_websocket.h:107:48: error: no type named 'AuthRequiredResponse' in 'electron::WebRequestAPI'
2025-11-25T05:25:54.0624338Z   107 |   void OnAuthRequiredComplete(api::WebRequest::AuthRequiredResponse rv);
2025-11-25T05:25:54.0624765Z       |                               ~~~~~~~~~~~~~~~~~^
2025-11-25T05:25:54.0625649Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:376:5: error: use of undeclared identifier 'api'; did you mean 'extensions::api'?
2025-11-25T05:25:54.0626282Z   376 |     api::WebRequest::AuthRequiredResponse rv) {
2025-11-25T05:25:54.0626647Z       |     ^~~
2025-11-25T05:25:54.0627002Z       |     extensions::api
2025-11-25T05:25:54.0627506Z gen/extensions/common/api/declarative_net_request.h:28:11: note: 'extensions::api' declared here
2025-11-25T05:25:54.0627980Z    28 | namespace api {
2025-11-25T05:25:54.0628525Z       |           ^
2025-11-25T05:25:54.0629484Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:376:5: error: no member named 'WebRequest' in namespace 'extensions::api'; did you mean 'WebRequestAPI'?
2025-11-25T05:25:54.0630169Z   376 |     api::WebRequest::AuthRequiredResponse rv) {
2025-11-25T05:25:54.0630478Z       |     ^~~~~~~~~~~~~~~
2025-11-25T05:25:54.0630721Z       |     WebRequestAPI
2025-11-25T05:25:54.0631202Z ../../electron/shell/browser/net/web_request_api_interface.h:21:7: note: 'WebRequestAPI' declared here
2025-11-25T05:25:54.0631672Z    21 | class WebRequestAPI {
2025-11-25T05:25:54.0631916Z       |       ^
2025-11-25T05:25:54.0632701Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:376:22: error: no type named 'AuthRequiredResponse' in 'electron::WebRequestAPI'
2025-11-25T05:25:54.0633316Z   376 |     api::WebRequest::AuthRequiredResponse rv) {
2025-11-25T05:25:54.0633625Z       |     ~~~~~~~~~~~~~~~~~^
2025-11-25T05:25:54.0634425Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:380:10: error: use of undeclared identifier 'api'; did you mean 'extensions::api'?
2025-11-25T05:25:54.0635051Z   380 |     case api::WebRequest::AuthRequiredResponse::
2025-11-25T05:25:54.0635362Z       |          ^~~
2025-11-25T05:25:54.0635606Z       |          extensions::api
2025-11-25T05:25:54.0636100Z gen/extensions/common/api/declarative_net_request.h:28:11: note: 'extensions::api' declared here
2025-11-25T05:25:54.0636552Z    28 | namespace api {
2025-11-25T05:25:54.0636781Z       |           ^
2025-11-25T05:25:54.0637684Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:380:10: error: no member named 'WebRequest' in namespace 'extensions::api'; did you mean 'WebRequestAPI'?
2025-11-25T05:25:54.0638374Z   380 |     case api::WebRequest::AuthRequiredResponse::
2025-11-25T05:25:54.0638696Z       |          ^~~~~~~~~~~~~~~
2025-11-25T05:25:54.0638957Z       |          WebRequestAPI
2025-11-25T05:25:54.0639449Z ../../electron/shell/browser/net/web_request_api_interface.h:21:7: note: 'WebRequestAPI' declared here
2025-11-25T05:25:54.0639903Z    21 | class WebRequestAPI {
2025-11-25T05:25:54.0640157Z       |       ^
2025-11-25T05:25:54.0640933Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:380:27: error: no member named 'AuthRequiredResponse' in 'electron::WebRequestAPI'
2025-11-25T05:25:54.0641563Z   380 |     case api::WebRequest::AuthRequiredResponse::
2025-11-25T05:25:54.0641881Z       |          ~~~~~~~~~~~~~~~~~^
2025-11-25T05:25:54.0642693Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:382:10: error: use of undeclared identifier 'api'; did you mean 'extensions::api'?
2025-11-25T05:25:54.0643314Z   382 |     case api::WebRequest::AuthRequiredResponse::
2025-11-25T05:25:54.0643629Z       |          ^~~
2025-11-25T05:25:54.0643873Z       |          extensions::api
2025-11-25T05:25:54.0644361Z gen/extensions/common/api/declarative_net_request.h:28:11: note: 'extensions::api' declared here
2025-11-25T05:25:54.0644815Z    28 | namespace api {
2025-11-25T05:25:54.0645045Z       |           ^
2025-11-25T05:25:54.0645949Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:382:10: error: no member named 'WebRequest' in namespace 'extensions::api'; did you mean 'WebRequestAPI'?
2025-11-25T05:25:54.0646735Z   382 |     case api::WebRequest::AuthRequiredResponse::
2025-11-25T05:25:54.0647057Z       |          ^~~~~~~~~~~~~~~
2025-11-25T05:25:54.0647326Z       |          WebRequestAPI
2025-11-25T05:25:54.0647812Z ../../electron/shell/browser/net/web_request_api_interface.h:21:7: note: 'WebRequestAPI' declared here
2025-11-25T05:25:54.0648273Z    21 | class WebRequestAPI {
2025-11-25T05:25:54.0648524Z       |       ^
2025-11-25T05:25:54.0649398Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:382:27: error: no member named 'AuthRequiredResponse' in 'electron::WebRequestAPI'
2025-11-25T05:25:54.0650082Z   382 |     case api::WebRequest::AuthRequiredResponse::
2025-11-25T05:25:54.0650402Z       |          ~~~~~~~~~~~~~~~~~^
2025-11-25T05:25:54.0651203Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:387:10: error: use of undeclared identifier 'api'; did you mean 'extensions::api'?
2025-11-25T05:25:54.0651916Z   387 |     case api::WebRequest::AuthRequiredResponse::AUTH_REQUIRED_RESPONSE_SET_AUTH:
2025-11-25T05:25:54.0652306Z       |          ^~~
2025-11-25T05:25:54.0652546Z       |          extensions::api
2025-11-25T05:25:54.0653039Z gen/extensions/common/api/declarative_net_request.h:28:11: note: 'extensions::api' declared here
2025-11-25T05:25:54.0653491Z    28 | namespace api {
2025-11-25T05:25:54.0653723Z       |           ^
2025-11-25T05:25:54.0654621Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:387:10: error: no member named 'WebRequest' in namespace 'extensions::api'; did you mean 'WebRequestAPI'?
2025-11-25T05:25:54.0655393Z   387 |     case api::WebRequest::AuthRequiredResponse::AUTH_REQUIRED_RESPONSE_SET_AUTH:
2025-11-25T05:25:54.0655799Z       |          ^~~~~~~~~~~~~~~
2025-11-25T05:25:54.0656062Z       |          WebRequestAPI
2025-11-25T05:25:54.0656544Z ../../electron/shell/browser/net/web_request_api_interface.h:21:7: note: 'WebRequestAPI' declared here
2025-11-25T05:25:54.0657007Z    21 | class WebRequestAPI {
2025-11-25T05:25:54.0657252Z       |       ^
2025-11-25T05:25:54.0658038Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:387:27: error: no member named 'AuthRequiredResponse' in 'electron::WebRequestAPI'
2025-11-25T05:25:54.0658749Z   387 |     case api::WebRequest::AuthRequiredResponse::AUTH_REQUIRED_RESPONSE_SET_AUTH:
2025-11-25T05:25:54.0659147Z       |          ~~~~~~~~~~~~~~~~~^
2025-11-25T05:25:54.0659955Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:390:10: error: use of undeclared identifier 'api'; did you mean 'extensions::api'?
2025-11-25T05:25:54.0660589Z   390 |     case api::WebRequest::AuthRequiredResponse::
2025-11-25T05:25:54.0660900Z       |          ^~~
2025-11-25T05:25:54.0661141Z       |          extensions::api
2025-11-25T05:25:54.0661623Z gen/extensions/common/api/declarative_net_request.h:28:11: note: 'extensions::api' declared here
2025-11-25T05:25:54.0662075Z    28 | namespace api {
2025-11-25T05:25:54.0662303Z       |           ^
2025-11-25T05:25:54.0663183Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:390:10: error: no member named 'WebRequest' in namespace 'extensions::api'; did you mean 'WebRequestAPI'?
2025-11-25T05:25:54.0663863Z   390 |     case api::WebRequest::AuthRequiredResponse::
2025-11-25T05:25:54.0664182Z       |          ^~~~~~~~~~~~~~~
2025-11-25T05:25:54.0664439Z       |          WebRequestAPI
2025-11-25T05:25:54.0664919Z ../../electron/shell/browser/net/web_request_api_interface.h:21:7: note: 'WebRequestAPI' declared here
2025-11-25T05:25:54.0665380Z    21 | class WebRequestAPI {
2025-11-25T05:25:54.0665622Z       |       ^
2025-11-25T05:25:54.0666391Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:390:27: error: no member named 'AuthRequiredResponse' in 'electron::WebRequestAPI'
2025-11-25T05:25:54.0667011Z   390 |     case api::WebRequest::AuthRequiredResponse::
2025-11-25T05:25:54.0667323Z       |          ~~~~~~~~~~~~~~~~~^
2025-11-25T05:25:54.0668326Z ##[error]../../electron/shell/browser/net/proxying_websocket.cc:408:18: error: use of undeclared identifier 'web_request_'
2025-11-25T05:25:54.0668891Z   408 |   auto auth_rv = web_request_->OnAuthRequired(
2025-11-25T05:25:54.0669218Z       |                  ^~~~~~~~~~~~
2025-11-25T05:25:54.0669585Z fatal error: too many errors emitted, stopping now [-ferror-limit=]
2025-11-25T05:25:54.0669942Z 20 errors generated.

@ckerr
Copy link
Member

ckerr commented Nov 26, 2025

This is hitting an unrelated CI failure:

2025-11-26T17:55:28.7640252Z not ok 526 powerMonitor when powerMonitor module is loaded with dbus mock "before all" hook for "should call Inhibit to delay suspend once a listener is added"

I'm going to rebase this to pick up 245e70a

@jkleinsc jkleinsc merged commit f57d6f9 into 39-x-y Jan 13, 2026
149 of 151 checks passed
@release-clerk
Copy link

release-clerk bot commented Jan 13, 2026

Release Notes Persisted

Added support for WebSocket authentication through the login event on webContents.

@jkleinsc jkleinsc deleted the web-socket-39 branch January 13, 2026 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

39-x-y backport/approved ✅ backport This is a backport PR semver/minor backwards-compatible functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants