-
Notifications
You must be signed in to change notification settings - Fork 15k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: migrate webRequest module to NetworkService (Part 4) #19679
Conversation
e4db92e
to
2d335aa
Compare
|
||
namespace electron { | ||
|
||
class AtomBrowserContext; | ||
|
||
namespace api { | ||
|
||
class WebRequestNS : public mate::TrackableObject<WebRequestNS> { | ||
class WebRequestNS : public gin::Wrappable<WebRequestNS> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will gin::Wrappable
lifetime be made compatible with mate::TrackableObject
? Do we plan to eventually remove the TrackableObject
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For WebRequest
, it does not really need to be a TrackableObject
as it is managed by Session
and it does not hold native resources.
Previously it held a reference to BrowserContext
and thus had to be a TrackableObject
, I think it was a design error.
TrackableObject
is still needed for cases that need to clean up resources on shutdown.
No Release Notes |
This is awesome 🎉 |
/trop run backport-to 7-0-x |
The backport process for this PR has been manually initiated, |
I was unable to backport this PR to "7-0-x" cleanly; |
* chore: use gin in WebRequest * Add stubs for APIs
* feat: associate InProgressRequest with requests (#19648) * feat: migrate webRequest module to NetworkService (Part 4) (#19679) * chore: use gin in WebRequest * Add stubs for APIs * feat: migrate webRequest module to NetworkService (Part 5) (#19714) * Pass WebRequest to ProxyingURLLoaderFactory * Call WebRequestAPI in InProgressRequest * Store the listeners * Pass the request and response * Add stub to handle the events * Use extensions::WebRequestInfo * Make sure webRequest is managed by Session * chore: make creation of WebRequestNS more clear * fix: check WebContents for service workers * feat: migrate webRequest module to NetworkService (Part 6) (#19752) * Implement OnBeforeSendHeaders * Pass the request * Handle simple listeners * Handle response listeners * Read responses from listener * feat: migrate webRequest module to NetworkService (Part 7) (#19820) * fix: gin treats Function as Dictionary when doing convertions * fix: check if listener exists * fix: listener callback should be executed in next tick * feat: make InProgressRequest work * test: re-enable protocol test that relies on webRequest * chore: merge conditions * feat: migrate webRequest module to NetworkService (Part 8) (#19841) * fix: fill uploadData property * fix: requestHeaders in onBeforeSendHeaders * fix: responseHeaders in onHeadersReceived * fix: header keys should not be lowercased * fix: gin::Dictionary::Get succeeds even though key does not exist... * fix: throw for invalid filters * test: re-enable api-web-request-spec * chore: do not use deprecated base::Value API * feat: migrate webRequest module to NetworkService (Part 9) (#19976) * no need to get WebContents for URLLoaderFactory * consult embedder for network_factory created in net module * set disable_web_security to false * re-enable webRequest tests in net module
Description of Change
Refs #15791.
Refs #19602.
Adds empty stubs for the webRequest APIs.
I plan to use
gin
directly since this class is rewritten from scratch, so there are also gin related changes.Release Notes
Notes: no-notes