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.
|
and URL responses.
|
||||||
* `method` string (optional) - The HTTP `method`. This is only used for file
|
* `method` string (optional) - The HTTP `method`. This is only used for file
|
||||||
and URL responses.
|
and URL responses.
|
||||||
* `session` Session (optional) - The session used for requesting URL, by default
|
* `session` Session (optional) - The session used for requesting URL.
|
||||||
the HTTP request will reuse the current session. Setting `session` to `null`
|
The HTTP request will reuse the current session by default.
|
||||||
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.
|
|
||||||
* `uploadData` [ProtocolResponseUploadData](protocol-response-upload-data.md) (optional) - The data used as upload data. This is only
|
* `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"`.
|
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)
|
## 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
|
### Behavior Changed: `BrowserWindow.IsVisibleOnAllWorkspaces()` on Linux
|
||||||
|
|
||||||
`BrowserWindow.IsVisibleOnAllWorkspaces()` will now return false on Linux if the
|
`BrowserWindow.IsVisibleOnAllWorkspaces()` will now return false on Linux if the
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
#include "base/containers/fixed_flat_map.h"
|
#include "base/containers/fixed_flat_map.h"
|
||||||
#include "base/strings/string_number_conversions.h"
|
#include "base/strings/string_number_conversions.h"
|
||||||
#include "base/task/sequenced_task_runner.h"
|
#include "base/task/sequenced_task_runner.h"
|
||||||
#include "base/uuid.h"
|
|
||||||
#include "base/values.h"
|
#include "base/values.h"
|
||||||
#include "content/public/browser/browser_thread.h"
|
#include "content/public/browser/browser_thread.h"
|
||||||
#include "content/public/browser/storage_partition.h"
|
#include "content/public/browser/storage_partition.h"
|
||||||
|
@ -671,20 +670,11 @@ void ElectronURLLoaderFactory::StartLoadingHttp(
|
||||||
request->method != net::HttpRequestHeaders::kHeadMethod)
|
request->method != net::HttpRequestHeaders::kHeadMethod)
|
||||||
dict.Get("uploadData", &upload_data);
|
dict.Get("uploadData", &upload_data);
|
||||||
|
|
||||||
auto* browser_context = ElectronBrowserContext::GetDefaultBrowserContext();
|
gin::Handle<api::Session> session;
|
||||||
v8::Local<v8::Value> value;
|
auto* browser_context =
|
||||||
if (dict.Get("session", &value)) {
|
dict.Get("session", &session) && !session.IsEmpty()
|
||||||
if (value->IsNull()) {
|
? session->browser_context()
|
||||||
browser_context = ElectronBrowserContext::From(
|
: ElectronBrowserContext::GetDefaultBrowserContext();
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
new URLPipeLoader(
|
new URLPipeLoader(
|
||||||
browser_context->GetURLLoaderFactory(), std::move(request),
|
browser_context->GetURLLoaderFactory(), std::move(request),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue