mirror of
https://github.com/electron/electron.git
synced 2026-01-08 23:18:06 -05:00
chore: bump chromium to 145.0.7596.0 (main) (#49224)
* chore: bump chromium in DEPS to 145.0.7588.0 * fix(patch-conflict): update scroll_bounce_flag for split overscroll methods Chromium split IsElasticOverscrollEnabled() into two methods: IsElasticOverscrollEnabledOnRoot() and IsElasticOverscrollSupported(). Updated patch to apply the scroll-bounce command-line switch to both methods. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7233733 * fix(patch-conflict): update exclusive_access patch context Upstream refactored the profile variable declaration. Updated patch to match new surrounding context with brace-style if statement. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7239252 * fix(patch-conflict): update screen capture kit non-shareable filter Upstream refactored PiP window exclusion to use GetWindowsToExclude() helper function. Updated patch to combine non-shareable window filtering with the new helper's output. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7274596 * fix(patch-conflict): update corner smoothing CSS property id position Upstream added new internal overscroll CSS properties. Updated patch to add kElectronCornerSmoothing after the new entries. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7234051 * fix(patch-conflict): update permission patches for new permission types Upstream added new permission types: LOCAL_NETWORK, LOOPBACK_NETWORK, and GEOLOCATION_APPROXIMATE. Updated Electron permission patches to include these new types and renumber Electron-specific permissions. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7231952 * fix(patch-conflict): update memory query fallback for new function signature Upstream added AmountOfTotalPhysicalMemory() with PCHECK. Updated patch to maintain fallback logic with correct ByteSize return type. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7254886 * chore: update patch hunk headers * fix(patch): update reclient-configs patch to use new file mode The fix_add_python_remote_wrapper patch was using 'copy from' mode which caused inconsistent behavior between local and CI git versions. Changed to 'new file' mode for consistent patch application. * fix(patch-conflict): remove duplicate GEOLOCATION_APPROXIMATE case Upstream moved GEOLOCATION_APPROXIMATE earlier in the switch statement in GetPermissionString(). The 3-way merge kept both the old and new positions, causing a duplicate case error. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/6397637 * chore: update libcxx filenames for new headers * chore: bump chromium in DEPS to 145.0.7590.0 * chore: update patch hunk headers * fix(patch): update memory fallback return type to ByteSize Upstream changed the return type from ByteCount to ByteSize. * fix: suppress nodiscard warning in node_file.cc libc++ added [[nodiscard]] to std::filesystem::copy_options operator|= which causes build failures with -Werror. * 7229082: update CopyFromSurface to use CopyFromSurfaceResult Upstream changed CopyFromSurface callback to return base::expected<viz::CopyOutputBitmapWithMetadata, std::string> instead of SkBitmap, enabling better error handling. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7229082 * 7254070: add ip_address_space param to OnLocalNetworkAccessPermissionRequired Upstream added IPAddressSpace parameter to check address space for proper permission handling in Local Network Access. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7254070 * 7136679: add spelling_markers param to RequestCheckingOfText Upstream added spelling_markers parameter to report misspelling ranges from Blink to Spellcheck to IME. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7136679 * 7240487: remove second param from RegisterWebSafeIsolatedScheme Upstream removed the schemes_okay_to_appear_as_origin_headers_ parameter. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7240487 * 7254577: use explicit WebElement constructor WebElement default constructor now requires explicit construction rather than brace initialization. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7254577 * 7256335: remove override from CreateGlobalFeaturesForTesting Upstream removed BrowserProcess::CreateGlobalFeaturesForTesting virtual method so the override specifier is no longer valid. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7256335 * chore: add missing SingleThreadTaskRunner include A transitive include of SingleThreadTaskRunner was removed upstream, requiring an explicit include. Ref: Unable to locate specific CL (transitive include change) * 7260483: add LOCAL_NETWORK, LOOPBACK_NETWORK permission type cases Upstream added new permission types for Local Network Access split permissions. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7260483 * chore: update patch hunk headers * 7264893: update postMessage tests for file: origin serialization change Chromium now serializes file: origins as 'null' in MessageEvent per spec. This is a security improvement aligning with the HTML spec behavior. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7264893 * fix: add paths to custom scheme URLs in protocol tests Custom scheme URLs without paths (e.g. test-scheme://foo) cause a DCHECK crash in ASAN builds when CorsURLLoader tries to log the request via GenerateRequestLine -> PathForRequest, which asserts that the path is non-empty. Adding trailing slashes ensures URLs have valid paths. * chore: bump chromium in DEPS to 145.0.7592.0 * chore: update patches (trivial only) * chore: bump chromium in DEPS to 145.0.7594.0 * chore: bump chromium in DEPS to 145.0.7596.0 * chore: update accelerator.patch no manual changes; patch applied with fuzz 2 (offset 1 line) * chore: update patches (trivial only) * chore: node ./script/gen-libc++-filenames.js --------- Co-authored-by: Alice Zhao <alicelovescake@anthropic.com> Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <charles@charleskerr.com>
This commit is contained in:
committed by
GitHub
parent
3df3a6a736
commit
809ab09b6f
@@ -1129,7 +1129,7 @@ describe('protocol module', () => {
|
||||
it('receives requests to a custom scheme', async () => {
|
||||
protocol.handle('test-scheme', (req) => new Response('hello ' + req.url));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
const resp = await net.fetch('test-scheme://foo');
|
||||
const resp = await net.fetch('test-scheme://foo/');
|
||||
expect(resp.status).to.equal(200);
|
||||
});
|
||||
|
||||
@@ -1142,10 +1142,10 @@ describe('protocol module', () => {
|
||||
protocol.unhandle('test-scheme');
|
||||
} catch { /* ignore */ }
|
||||
});
|
||||
const resp1 = await net.fetch('test-scheme://foo');
|
||||
const resp1 = await net.fetch('test-scheme://foo/');
|
||||
expect(resp1.status).to.equal(200);
|
||||
protocol.unhandle('test-scheme');
|
||||
await expect(net.fetch('test-scheme://foo')).to.eventually.be.rejectedWith(/ERR_UNKNOWN_URL_SCHEME/);
|
||||
await expect(net.fetch('test-scheme://foo/')).to.eventually.be.rejectedWith(/ERR_UNKNOWN_URL_SCHEME/);
|
||||
});
|
||||
|
||||
it('receives requests to the existing https scheme', async () => {
|
||||
@@ -1187,14 +1187,14 @@ describe('protocol module', () => {
|
||||
it('can send buffer body', async () => {
|
||||
protocol.handle('test-scheme', (req) => new Response(Buffer.from('hello ' + req.url)));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
const body = await net.fetch('test-scheme://foo').then(r => r.text());
|
||||
expect(body).to.equal('hello test-scheme://foo');
|
||||
const body = await net.fetch('test-scheme://foo/').then(r => r.text());
|
||||
expect(body).to.equal('hello test-scheme://foo/');
|
||||
});
|
||||
|
||||
it('can send stream body', async () => {
|
||||
protocol.handle('test-scheme', () => new Response(getWebStream()));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
const body = await net.fetch('test-scheme://foo').then(r => r.text());
|
||||
const body = await net.fetch('test-scheme://foo/').then(r => r.text());
|
||||
expect(body).to.equal(text);
|
||||
});
|
||||
|
||||
@@ -1215,7 +1215,7 @@ describe('protocol module', () => {
|
||||
});
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
|
||||
const res = net.fetch('test-scheme://foo', {
|
||||
const res = net.fetch('test-scheme://foo/', {
|
||||
signal: abortController.signal
|
||||
});
|
||||
await expect(res).to.be.rejectedWith('This operation was aborted');
|
||||
@@ -1226,8 +1226,8 @@ describe('protocol module', () => {
|
||||
protocol.handle('test-scheme', (req) => new Response(req.url));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
{
|
||||
const body = await net.fetch('test-scheme://foo').then(r => r.text());
|
||||
expect(body).to.equal('test-scheme://foo');
|
||||
const body = await net.fetch('test-scheme://foo/').then(r => r.text());
|
||||
expect(body).to.equal('test-scheme://foo/');
|
||||
}
|
||||
{
|
||||
const body = await net.fetch('test-scheme:///foo').then(r => r.text());
|
||||
@@ -1243,8 +1243,8 @@ describe('protocol module', () => {
|
||||
protocol.handle('test-scheme', (req) => new Response(req.url));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
{
|
||||
const body = await net.fetch('test-scheme://foo:30').then(r => r.text());
|
||||
expect(body).to.equal('test-scheme://foo:30');
|
||||
const body = await net.fetch('test-scheme://foo/:30').then(r => r.text());
|
||||
expect(body).to.equal('test-scheme://foo/:30');
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1287,7 +1287,7 @@ describe('protocol module', () => {
|
||||
it('can send errors', async () => {
|
||||
protocol.handle('test-scheme', () => Response.error());
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
await expect(net.fetch('test-scheme://foo')).to.eventually.be.rejectedWith('net::ERR_FAILED');
|
||||
await expect(net.fetch('test-scheme://foo/')).to.eventually.be.rejectedWith('net::ERR_FAILED');
|
||||
});
|
||||
|
||||
it('handles invalid protocol response status', async () => {
|
||||
@@ -1296,7 +1296,7 @@ describe('protocol module', () => {
|
||||
});
|
||||
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
await expect(net.fetch('test-scheme://foo')).to.be.rejectedWith('net::ERR_UNEXPECTED');
|
||||
await expect(net.fetch('test-scheme://foo/')).to.be.rejectedWith('net::ERR_UNEXPECTED');
|
||||
});
|
||||
|
||||
it('handles invalid protocol response statusText', async () => {
|
||||
@@ -1305,7 +1305,7 @@ describe('protocol module', () => {
|
||||
});
|
||||
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
await expect(net.fetch('test-scheme://foo')).to.be.rejectedWith('net::ERR_UNEXPECTED');
|
||||
await expect(net.fetch('test-scheme://foo/')).to.be.rejectedWith('net::ERR_UNEXPECTED');
|
||||
});
|
||||
|
||||
it('handles invalid protocol response header parameters', async () => {
|
||||
@@ -1314,7 +1314,7 @@ describe('protocol module', () => {
|
||||
});
|
||||
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
await expect(net.fetch('test-scheme://foo')).to.be.rejectedWith('net::ERR_UNEXPECTED');
|
||||
await expect(net.fetch('test-scheme://foo/')).to.be.rejectedWith('net::ERR_UNEXPECTED');
|
||||
});
|
||||
|
||||
it('handles invalid protocol response body parameters', async () => {
|
||||
@@ -1323,32 +1323,32 @@ describe('protocol module', () => {
|
||||
});
|
||||
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
await expect(net.fetch('test-scheme://foo')).to.be.rejectedWith('net::ERR_UNEXPECTED');
|
||||
await expect(net.fetch('test-scheme://foo/')).to.be.rejectedWith('net::ERR_UNEXPECTED');
|
||||
});
|
||||
|
||||
it('handles a synchronous error in the handler', async () => {
|
||||
protocol.handle('test-scheme', () => { throw new Error('test'); });
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
await expect(net.fetch('test-scheme://foo')).to.be.rejectedWith('net::ERR_UNEXPECTED');
|
||||
await expect(net.fetch('test-scheme://foo/')).to.be.rejectedWith('net::ERR_UNEXPECTED');
|
||||
});
|
||||
|
||||
it('handles an asynchronous error in the handler', async () => {
|
||||
protocol.handle('test-scheme', () => Promise.reject(new Error('rejected promise')));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
await expect(net.fetch('test-scheme://foo')).to.be.rejectedWith('net::ERR_UNEXPECTED');
|
||||
await expect(net.fetch('test-scheme://foo/')).to.be.rejectedWith('net::ERR_UNEXPECTED');
|
||||
});
|
||||
|
||||
it('correctly sets statusCode', async () => {
|
||||
protocol.handle('test-scheme', () => new Response(null, { status: 201 }));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
const resp = await net.fetch('test-scheme://foo');
|
||||
const resp = await net.fetch('test-scheme://foo/');
|
||||
expect(resp.status).to.equal(201);
|
||||
});
|
||||
|
||||
it('correctly sets content-type and charset', async () => {
|
||||
protocol.handle('test-scheme', () => new Response(null, { headers: { 'content-type': 'text/html; charset=testcharset' } }));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
const resp = await net.fetch('test-scheme://foo');
|
||||
const resp = await net.fetch('test-scheme://foo/');
|
||||
expect(resp.headers.get('content-type')).to.equal('text/html; charset=testcharset');
|
||||
});
|
||||
|
||||
@@ -1361,7 +1361,7 @@ describe('protocol module', () => {
|
||||
|
||||
protocol.handle('test-scheme', () => net.fetch(url));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
const body = await net.fetch('test-scheme://foo').then(r => r.text());
|
||||
const body = await net.fetch('test-scheme://foo/').then(r => r.text());
|
||||
expect(body).to.equal(text);
|
||||
});
|
||||
|
||||
@@ -1376,7 +1376,7 @@ describe('protocol module', () => {
|
||||
protocol.handle('test-scheme', (req) => net.fetch(url, { headers: req.headers }));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
|
||||
const resp = await net.fetch('test-scheme://foo');
|
||||
const resp = await net.fetch('test-scheme://foo/');
|
||||
expect(resp.headers.get('foo')).to.equal('bar');
|
||||
});
|
||||
|
||||
@@ -1384,14 +1384,14 @@ describe('protocol module', () => {
|
||||
protocol.handle('test-scheme', () => net.fetch(url.pathToFileURL(path.join(__dirname, 'fixtures', 'hello.txt')).toString()));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
|
||||
const body = await net.fetch('test-scheme://foo').then(r => r.text());
|
||||
const body = await net.fetch('test-scheme://foo/').then(r => r.text());
|
||||
expect(body.trimEnd()).to.equal('hello world');
|
||||
});
|
||||
|
||||
it('can receive simple request body', async () => {
|
||||
protocol.handle('test-scheme', (req) => new Response(req.body));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
const body = await net.fetch('test-scheme://foo', {
|
||||
const body = await net.fetch('test-scheme://foo/', {
|
||||
method: 'POST',
|
||||
body: 'foobar'
|
||||
}).then(r => r.text());
|
||||
@@ -1401,7 +1401,7 @@ describe('protocol module', () => {
|
||||
it('can receive stream request body', async () => {
|
||||
protocol.handle('test-scheme', (req) => new Response(req.body));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
const body = await net.fetch('test-scheme://foo', {
|
||||
const body = await net.fetch('test-scheme://foo/', {
|
||||
method: 'POST',
|
||||
body: getWebStream(),
|
||||
duplex: 'half' // https://github.com/microsoft/TypeScript/issues/53157
|
||||
@@ -1455,21 +1455,21 @@ describe('protocol module', () => {
|
||||
it('can receive multi-part postData from loadURL', async () => {
|
||||
protocol.handle('test-scheme', (req) => new Response(req.body));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
await contents.loadURL('test-scheme://foo', { postData: [{ type: 'rawData', bytes: Buffer.from('a') }, { type: 'rawData', bytes: Buffer.from('b') }] });
|
||||
await contents.loadURL('test-scheme://foo/', { postData: [{ type: 'rawData', bytes: Buffer.from('a') }, { type: 'rawData', bytes: Buffer.from('b') }] });
|
||||
expect(await contents.executeJavaScript('document.documentElement.textContent')).to.equal('ab');
|
||||
});
|
||||
|
||||
it('can receive file postData from loadURL', async () => {
|
||||
protocol.handle('test-scheme', (req) => new Response(req.body));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
await contents.loadURL('test-scheme://foo', { postData: [{ type: 'file', filePath: path.join(fixturesPath, 'hello.txt'), length: 'hello world\n'.length, offset: 0, modificationTime: 0 }] });
|
||||
await contents.loadURL('test-scheme://foo/', { postData: [{ type: 'file', filePath: path.join(fixturesPath, 'hello.txt'), length: 'hello world\n'.length, offset: 0, modificationTime: 0 }] });
|
||||
expect(await contents.executeJavaScript('document.documentElement.textContent')).to.equal('hello world\n');
|
||||
});
|
||||
|
||||
it('can receive file postData from a form', async () => {
|
||||
protocol.handle('test-scheme', (req) => new Response(req.body));
|
||||
defer(() => { protocol.unhandle('test-scheme'); });
|
||||
await contents.loadURL('data:text/html,<form action="test-scheme://foo" method=POST enctype="multipart/form-data"><input name=foo type=file>');
|
||||
await contents.loadURL('data:text/html,<form action="test-scheme://foo/" method=POST enctype="multipart/form-data"><input name=foo type=file>');
|
||||
const { debugger: dbg } = contents;
|
||||
dbg.attach();
|
||||
const { root } = await dbg.sendCommand('DOM.getDocument');
|
||||
@@ -1489,7 +1489,7 @@ describe('protocol module', () => {
|
||||
it('can receive streaming fetch upload', async () => {
|
||||
protocol.handle('no-cors', (req) => new Response(req.body));
|
||||
defer(() => { protocol.unhandle('no-cors'); });
|
||||
await contents.loadURL('no-cors://foo');
|
||||
await contents.loadURL('no-cors://foo/');
|
||||
const fetchBodyResult = await contents.executeJavaScript(`
|
||||
const stream = new ReadableStream({
|
||||
async start(controller) {
|
||||
@@ -1516,7 +1516,7 @@ describe('protocol module', () => {
|
||||
return new Response(req.body);
|
||||
});
|
||||
defer(() => { protocol.unhandle('no-cors'); });
|
||||
await contents.loadURL('no-cors://foo');
|
||||
await contents.loadURL('no-cors://foo/');
|
||||
const fetchBodyResult = await contents.executeJavaScript(`
|
||||
const stream = new ReadableStream({
|
||||
async start(controller) {
|
||||
@@ -1532,7 +1532,7 @@ describe('protocol module', () => {
|
||||
it('can receive an error from streaming fetch upload', async () => {
|
||||
protocol.handle('no-cors', (req) => new Response(req.body));
|
||||
defer(() => { protocol.unhandle('no-cors'); });
|
||||
await contents.loadURL('no-cors://foo');
|
||||
await contents.loadURL('no-cors://foo/');
|
||||
const fetchBodyResult = await contents.executeJavaScript(`
|
||||
const stream = new ReadableStream({
|
||||
async start(controller) {
|
||||
@@ -1552,7 +1552,7 @@ describe('protocol module', () => {
|
||||
return new Response();
|
||||
});
|
||||
defer(() => { protocol.unhandle('no-cors'); });
|
||||
await contents.loadURL('no-cors://foo');
|
||||
await contents.loadURL('no-cors://foo/');
|
||||
contents.executeJavaScript(`
|
||||
const stream = new ReadableStream({
|
||||
async start(controller) {
|
||||
@@ -1598,7 +1598,7 @@ describe('protocol module', () => {
|
||||
it('bypassing custom protocol handlers also bypasses new protocols', async () => {
|
||||
protocol.handle('app', () => new Response('custom'));
|
||||
defer(() => { protocol.unhandle('app'); });
|
||||
await expect(net.fetch('app://foo', { bypassCustomProtocolHandlers: true })).to.be.rejectedWith('net::ERR_UNKNOWN_URL_SCHEME');
|
||||
await expect(net.fetch('app://foo/', { bypassCustomProtocolHandlers: true })).to.be.rejectedWith('net::ERR_UNKNOWN_URL_SCHEME');
|
||||
});
|
||||
|
||||
it('can forward to the original handler', async () => {
|
||||
|
||||
@@ -92,9 +92,9 @@ describe('window.postMessage', () => {
|
||||
w.loadURL(`file://${fixturesPath}/pages/window-open-postMessage-driver.html`);
|
||||
const [, message] = await once(ipcMain, 'complete');
|
||||
expect(message.data).to.equal('testing');
|
||||
expect(message.origin).to.equal('file://');
|
||||
expect(message.origin).to.equal('null');
|
||||
expect(message.sourceEqualsOpener).to.equal(true);
|
||||
expect(message.eventOrigin).to.equal('file://');
|
||||
expect(message.eventOrigin).to.equal('null');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1936,7 +1936,7 @@ describe('chromium features', () => {
|
||||
`);
|
||||
|
||||
expect(sourceIsChild).to.be.true();
|
||||
expect(origin).to.equal('file://');
|
||||
expect(origin).to.equal('null');
|
||||
});
|
||||
|
||||
it('supports windows opened from a <webview>', async () => {
|
||||
|
||||
Reference in New Issue
Block a user