* 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
Previously the enum list ended with entries copied values
from base::PATH_ entries, so the subsequent entry (PATH_END)
had a value in (base::PATH_START..base::PATH_END].
This only a correctness patch. atom::PATH_END doesn't appear
to be used anywhere and it was the only atom::PATH_ enum
bitten by this.
* 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
* fix: update the FileSelectHelper to support the new promise API
Fixes#18254
So it turns out we've successfully introduced a way to write
non-typesafe C++.
This fixes two things:
* Uses the object the promise resolves
* Ensures we attach the Then handler before moving the promise
* fix: also fix misuse of Promise::Then in the download manager
* fix: start node strem asyncly
* fix: headers value may be a list
* fix: simply destruct on finish/error
* fix: class may destruct immediately after subscribing "data"
* fix: send meaningful error
* fix: must always provide a response body
* fix: handle the case when one write can not write all data
* fix: handle connection error
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