* chore: remove last instances of base::Bind
* MessageBoxCallback is a OnceCallback
* convert permission helepr cbs to Once
* convert ResponseCallback to Once
* Compare final data instead of url
The behavior of did-finish-load and getURL has changed for redirects when
using NetworkService, so the test fails for NetworkService.
Comparing the finally received data makes the test more reliable.
* Implement intercept APIs
* Setting mimeType should set "content-type" header
* Passing no argument should not throw JS error
* Don't access api namespace in ProxyingURLLoaderFactory
* No need to create AtomURLLoaderFactory every time
* No use of weak factory
* fix: make IsProtocolHandled return true for builtin schemes
* fix: return ERR_NOT_IMPLEMENTED for wrong arg
* Initial work of AsarURLLoader
* Put normal file logics in AsarURLLoader
* Implement asar file reading
* Don't change URL for unpacked file
* Fix cpplint warning
This code was originally added in #6448 to handle an edge case crash in 10.9, and we no longer support 10.9 and therefore no longer need to account for this case.
It addressed the crash, but also created a race condition whereby when a new tray is created the old tray's destroy wouldn't have been fully completed and therefore a new one would be spawned. This fixes that by destroying the tray on the current tick once more.
* fix: always have head.headers available
* fix: use StringDataPipeProducer to write string
It can handle large strings correctly.
* fix: override RegisterNonNetworkSubresourceURLLoaderFactories
* fix: add dummy uninterceptProtocol implementation
* fix: jquery error handler can pass empty string
For some errors jquery would pass empty string in the error handler,
which makes tests pass when they should fail.
* chore: fix cpplint warnings
* fix: guard RegisterNonNetworkSubresourceURLLoaderFactories call
It may be called even when NetworkService is not enabled.
* test: disable protocol.interceptHttpProtocol test
* Parse stream protocol handler
* Pipe node stream to mojo
* Merge the parser for headers
* Add ToDict helper to simplify code
* Simplify dispatching logic
* Add an experimental API for returning any type of response
* Fix subscribing event
* URL loaders' lifetime is independent of the factory
* HandleError helper is no longer needed
* Rename "SendResponse" => "StartLoading" to follow naming conventions
* Delete when connection error happens
* Fix cpplint warning
We now create a new instance of atom::api::DesktopCapturer for every
request instead of weirdly re-using the same instance and queuing
requests. This means there is now a 1:1 relationship between request
and DesktopCapturer so there isn't a race condition between the observer
for one request calling back before the observer of another. This is an
issue ever since the backing APIs moved to worker threads.
This also does a few things to ensure memory management
* Only ever listen to one event per-request, after that we wipe the emit
function to ignore all future events
* Ensures we clean up the window_capturer_, screen_capturer_ and
captured_sources_ in native land once the request is over.
This _in theory_ fixes a flake we've been seeing on CI where we try to
resolve the promise for a request that no longerr exists.
* Pass protocol type and handler to factory
* Add converter for network::ResourceRequest
* Implement Buffer and String protocol handler
* Implement file protocol