Skip to content
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

Merged
merged 2 commits into from
Aug 11, 2019

Conversation

zcbenz
Copy link
Member

@zcbenz zcbenz commented Aug 8, 2019

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

@zcbenz zcbenz requested a review from deepak1556 August 8, 2019 01:35
@electron-cation electron-cation bot added the new-pr 🌱 PR opened in the last 24 hours label Aug 8, 2019

namespace electron {

class AtomBrowserContext;

namespace api {

class WebRequestNS : public mate::TrackableObject<WebRequestNS> {
class WebRequestNS : public gin::Wrappable<WebRequestNS> {
Copy link
Member

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 ?

Copy link
Member Author

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.

@electron-cation electron-cation bot removed the new-pr 🌱 PR opened in the last 24 hours label Aug 9, 2019
@zcbenz zcbenz merged commit 2dffc9f into master Aug 11, 2019
@release-clerk
Copy link

release-clerk bot commented Aug 11, 2019

No Release Notes

@zcbenz zcbenz deleted the ns-web-request-4 branch August 11, 2019 04:24
@deermichel
Copy link
Contributor

This is awesome 🎉

@MarshallOfSound
Copy link
Member

/trop run backport-to 7-0-x

@trop
Copy link
Contributor

trop bot commented Aug 27, 2019

The backport process for this PR has been manually initiated,
sending your 1's and 0's to "7-0-x" here we go! :D

@trop
Copy link
Contributor

trop bot commented Aug 27, 2019

I was unable to backport this PR to "7-0-x" cleanly;
you will need to perform this backport manually.

deepak1556 pushed a commit that referenced this pull request Aug 27, 2019
* chore: use gin in WebRequest

* Add stubs for APIs
jkleinsc pushed a commit that referenced this pull request Aug 27, 2019
* 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
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.

None yet

5 participants