feat!: remove support for ProtocolResponse.session null value (#46264)
BREAKING CHANGE
This was deprecated in f7ba0d3b
& is now being removed for Electron 37.
This commit is contained in:
parent
0e687d3082
commit
5a6f1ede6a
3 changed files with 19 additions and 20 deletions
|
@ -25,11 +25,8 @@
|
|||
and URL responses.
|
||||
* `method` string (optional) - The HTTP `method`. This is only used for file
|
||||
and URL responses.
|
||||
* `session` Session (optional) - The session used for requesting URL, by default
|
||||
the HTTP request will reuse the current session. Setting `session` to `null`
|
||||
would use a random independent session. This is only used for URL responses.
|
||||
**Deprecated:** Using `null` to create a random independent session is
|
||||
deprecated and will be removed soon.
|
||||
* `session` Session (optional) - The session used for requesting URL.
|
||||
The HTTP request will reuse the current session by default.
|
||||
* `uploadData` [ProtocolResponseUploadData](protocol-response-upload-data.md) (optional) - The data used as upload data. This is only
|
||||
used for URL responses when `method` is `"POST"`.
|
||||
|
||||
|
|
|
@ -14,6 +14,18 @@ This document uses the following convention to categorize breaking changes:
|
|||
|
||||
## Planned Breaking API Changes (37.0)
|
||||
|
||||
### Removed: `null` value for `session` property in `ProtocolResponse`
|
||||
|
||||
This deprecated feature has been removed.
|
||||
|
||||
Previously, setting the `ProtocolResponse.session` property to `null`
|
||||
would create a random independent session. This is no longer supported.
|
||||
|
||||
Using single-purpose sessions here is discouraged due to overhead costs;
|
||||
however, old code that needs to preserve this behavior can emulate it by
|
||||
creating a random session with `session.fromPartition(some_random_string)`
|
||||
and then using it in `ProtocolResponse.session`.
|
||||
|
||||
### Behavior Changed: `BrowserWindow.IsVisibleOnAllWorkspaces()` on Linux
|
||||
|
||||
`BrowserWindow.IsVisibleOnAllWorkspaces()` will now return false on Linux if the
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
#include "base/containers/fixed_flat_map.h"
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "base/task/sequenced_task_runner.h"
|
||||
#include "base/uuid.h"
|
||||
#include "base/values.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "content/public/browser/storage_partition.h"
|
||||
|
@ -671,20 +670,11 @@ void ElectronURLLoaderFactory::StartLoadingHttp(
|
|||
request->method != net::HttpRequestHeaders::kHeadMethod)
|
||||
dict.Get("uploadData", &upload_data);
|
||||
|
||||
auto* browser_context = ElectronBrowserContext::GetDefaultBrowserContext();
|
||||
v8::Local<v8::Value> value;
|
||||
if (dict.Get("session", &value)) {
|
||||
if (value->IsNull()) {
|
||||
browser_context = ElectronBrowserContext::From(
|
||||
base::Uuid::GenerateRandomV4().AsLowercaseString(), true);
|
||||
} else {
|
||||
gin::Handle<api::Session> session;
|
||||
if (gin::ConvertFromV8(dict.isolate(), value, &session) &&
|
||||
!session.IsEmpty()) {
|
||||
browser_context = session->browser_context();
|
||||
}
|
||||
}
|
||||
}
|
||||
auto* browser_context =
|
||||
dict.Get("session", &session) && !session.IsEmpty()
|
||||
? session->browser_context()
|
||||
: ElectronBrowserContext::GetDefaultBrowserContext();
|
||||
|
||||
new URLPipeLoader(
|
||||
browser_context->GetURLLoaderFactory(), std::move(request),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue