mirror of
https://github.com/electron/electron.git
synced 2026-01-09 23:48:01 -05:00
chore: bump chromium to 126.0.6445.0 (main) (#41868)
* chore: bump chromium in DEPS to 125.0.6421.0
* chore: bump chromium in DEPS to 125.0.6422.0
* Add ENABLE_BASE_TRACING flags for compatibility with enable_base_tracing = false on Windows
https://chromium-review.googlesource.com/c/chromium/src/+/5434658
* chore: update patches
* fixup: Add ENABLE_BASE_TRACING flags for compatibility with enable_base_tracing = false on Windows
* chore: bump chromium in DEPS to 126.0.6423.0
* chore: update patches
* 5426599: Next generation control of unsafe-buffers-usage plugin
https://chromium-review.googlesource.com/c/chromium/src/+/5426599
* chore: bump chromium in DEPS to 126.0.6425.0
* chore: update patches
* Roll clang+rust llvmorg-19-init-7229-g315c88c5-2 : llvmorg-19-init-8091-gab037c4f-1 / ceab6128fa48a616bfd3e3adf4bc80133b8ee223-1 : ab71ee7a9214c2793108a41efb065aa77aeb7326-1
https://chromium-review.googlesource.com/c/chromium/src/+/5444328
Also see https://issues.chromium.org/issues/332931387
* 5445074: [Views AX] Move AXEventNotificationDetails to ui/accessibility/
https://chromium-review.googlesource.com/c/chromium/src/+/5445074
Also
5455993: [Views AX] Rename AXEventNotificationDetails to AXUpdatesAndEvents | https://chromium-review.googlesource.com/c/chromium/src/+/5455993
* Pass IsolationInfo to ContentBrowserClient::WillCreateURLLoaderFactory()
https://chromium-review.googlesource.com/c/chromium/src/+/5405301
* chore: bump chromium in DEPS to 126.0.6427.0
* chore: update patches
* chore: remove no longer needed patch
perfetto is now turned on so this patch is no longer needed.
* chore: bump chromium in DEPS to 126.0.6429.0
* chore: bump chromium in DEPS to 126.0.6431.0
* chore: bump chromium in DEPS to 126.0.6433.0
* 5466654: Do not create a console if logging to a handle
https://chromium-review.googlesource.com/c/chromium/src/+/5466654
* chore: fixup patch indices
* Address Linux NonClientFrameView Changes
- https://chromium-review.googlesource.com/c/chromium/src/+/5180720
- https://chromium-review.googlesource.com/c/chromium/src/+/5367794
* chore: bump chromium in DEPS to 126.0.6435.0
* chore: bump chromium in DEPS to 126.0.6437.0
* chore: update patches
* chore: bump chromium in DEPS to 126.0.6439.0
* chore: bump chromium in DEPS to 126.0.6441.0
* 5477689: components/crash/content/tools: Format with yapf | https://chromium-review.googlesource.com/c/chromium/src/+/5477689
* 5485006: Remove enable_print_content_analysis GN flag | https://chromium-review.googlesource.com/c/chromium/src/+/5485006
* chore: update chromium patches
* chore: bump chromium in DEPS to 126.0.6443.0
* 5465608: Convert DCHECKs near RenderWidgetHost, DelegatedFrameHost to CHECK | https://chromium-review.googlesource.com/c/chromium/src/+/5465608
* 5492605: Migrate TODOs referencing old crbug IDs to the new issue tracker IDs | https://chromium-review.googlesource.com/c/chromium/src/+/5492605
* chore: update patches
* chore: bump chromium in DEPS to 126.0.6445.0
* chore: update patches
* 5468588: Fullscreen: Encapsulate ExclusiveAccessBubble params in a struct | https://chromium-review.googlesource.com/c/chromium/src/+/5468588
* fixup! 5485006: Remove enable_print_content_analysis GN flag | https://chromium-review.googlesource.com/c/chromium/src/+/5485006
* 5461340: `size_t` in `mojo::DataPipe[Consumer|Producer]Handle`: /components. | https://chromium-review.googlesource.com/c/chromium/src/+/5461340
* 5480213: Add an EvictIds struct to FrameEvictorClient | https://chromium-review.googlesource.com/c/chromium/src/+/5480213
* 4341506: [api] Deprecate Isolate::IdleNotificationDeadline | https://chromium-review.googlesource.com/c/v8/v8/+/4341506
* 5300826: [v8-tasks] Add source location to v8::TaskRunner, step 4/4. | https://chromium-review.googlesource.com/c/v8/v8/+/5300826
* partially revert is_newly_created to allow for browser initiated about:blank loads
* add dep on app_launch_prefetch
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5420149
* install sysroots from electron not from chrome
We should add a new var upstream for `download_sysroots` so that we can skip downloading chromes at all.
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5462469
* refactor: make UpdateFrameHints an override
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5473548
* fix ppapi
* refactor: update namespace for pwm switches
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5444617
* 5459367: WebSQL: Restrict WebSQL service creation to Android only | https://chromium-review.googlesource.com/c/chromium/src/+/5459367
* 5455853: Revert "[Clipboard] Don't add meta charset tag for async write() method on Mac." | https://chromium-review.googlesource.com/c/chromium/src/+/5455853
* fixup! refactor: update namespace for pwm switches
edd9e26
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5444617
* 5147611: [heap] Add checks for ensuring position info slow path is not used in heap snapshot | https://chromium-review.googlesource.com/c/v8/v8/+/5147611
* fixup! 5412666: [heap] Also avoid heap allocation for allocation tracked functions | https://chromium-review.googlesource.com/c/v8/v8/+/5412666
* chore: add websql removal to breaking-changes.md
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: VerteDinde <vertedinde@electronjs.org>
Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
Co-authored-by: Samuel Attard <marshallofsound@electronjs.org>
This commit is contained in:
committed by
GitHub
parent
0725f5c5cf
commit
9b0409f7c9
@@ -1947,7 +1947,6 @@ describe('chromium features', () => {
|
||||
switch (parsedUrl.pathname) {
|
||||
case '/localStorage' : filename = 'local_storage.html'; break;
|
||||
case '/sessionStorage' : filename = 'session_storage.html'; break;
|
||||
case '/WebSQL' : filename = 'web_sql.html'; break;
|
||||
case '/indexedDB' : filename = 'indexed_db.html'; break;
|
||||
case '/cookie' : filename = 'cookie.html'; break;
|
||||
default : filename = '';
|
||||
@@ -1986,13 +1985,6 @@ describe('chromium features', () => {
|
||||
expect(error).to.equal('Failed to read the \'sessionStorage\' property from \'Window\': Access is denied for this document.');
|
||||
});
|
||||
|
||||
it('cannot access WebSQL database', async () => {
|
||||
const response = once(ipcMain, 'web-sql-response');
|
||||
contents.loadURL(`${protocolName}://host/WebSQL`);
|
||||
const [, error] = await response;
|
||||
expect(error).to.equal('Failed to execute \'openDatabase\' on \'Window\': Access to the WebDatabase API is denied in this context.');
|
||||
});
|
||||
|
||||
it('cannot access indexedDB', async () => {
|
||||
const response = once(ipcMain, 'indexed-db-response');
|
||||
contents.loadURL(`${protocolName}://host/indexedDB`);
|
||||
@@ -2061,171 +2053,6 @@ describe('chromium features', () => {
|
||||
testLocalStorageAfterXSiteRedirect('after a cross-site redirect in sandbox mode', { sandbox: true });
|
||||
});
|
||||
|
||||
describe('enableWebSQL webpreference', () => {
|
||||
const origin = `${standardScheme}://fake-host`;
|
||||
const filePath = path.join(fixturesPath, 'pages', 'storage', 'web_sql.html');
|
||||
const sqlPartition = 'web-sql-preference-test';
|
||||
const sqlSession = session.fromPartition(sqlPartition);
|
||||
const securityError = 'An attempt was made to break through the security policy of the user agent.';
|
||||
let contents: WebContents, w: BrowserWindow;
|
||||
|
||||
before(() => {
|
||||
sqlSession.protocol.registerFileProtocol(standardScheme, (request, callback) => {
|
||||
callback({ path: filePath });
|
||||
});
|
||||
});
|
||||
|
||||
after(() => {
|
||||
sqlSession.protocol.unregisterProtocol(standardScheme);
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
if (contents) {
|
||||
contents.destroy();
|
||||
contents = null as any;
|
||||
}
|
||||
await closeAllWindows();
|
||||
(w as any) = null;
|
||||
});
|
||||
|
||||
it('default value allows websql', async () => {
|
||||
contents = (webContents as typeof ElectronInternal.WebContents).create({
|
||||
session: sqlSession,
|
||||
nodeIntegration: true,
|
||||
contextIsolation: false
|
||||
});
|
||||
contents.loadURL(origin);
|
||||
const [, error] = await once(ipcMain, 'web-sql-response');
|
||||
expect(error).to.be.null();
|
||||
});
|
||||
|
||||
it('when set to false can disallow websql', async () => {
|
||||
contents = (webContents as typeof ElectronInternal.WebContents).create({
|
||||
session: sqlSession,
|
||||
nodeIntegration: true,
|
||||
enableWebSQL: false,
|
||||
contextIsolation: false
|
||||
});
|
||||
contents.loadURL(origin);
|
||||
const [, error] = await once(ipcMain, 'web-sql-response');
|
||||
expect(error).to.equal(securityError);
|
||||
});
|
||||
|
||||
it('when set to false does not disable indexedDB', async () => {
|
||||
contents = (webContents as typeof ElectronInternal.WebContents).create({
|
||||
session: sqlSession,
|
||||
nodeIntegration: true,
|
||||
enableWebSQL: false,
|
||||
contextIsolation: false
|
||||
});
|
||||
contents.loadURL(origin);
|
||||
const [, error] = await once(ipcMain, 'web-sql-response');
|
||||
expect(error).to.equal(securityError);
|
||||
const dbName = 'random';
|
||||
const result = await contents.executeJavaScript(`
|
||||
new Promise((resolve, reject) => {
|
||||
try {
|
||||
let req = window.indexedDB.open('${dbName}');
|
||||
req.onsuccess = (event) => {
|
||||
let db = req.result;
|
||||
resolve(db.name);
|
||||
}
|
||||
req.onerror = (event) => { resolve(event.target.code); }
|
||||
} catch (e) {
|
||||
resolve(e.message);
|
||||
}
|
||||
});
|
||||
`);
|
||||
expect(result).to.equal(dbName);
|
||||
});
|
||||
|
||||
it('child webContents can override when the embedder has allowed websql', async () => {
|
||||
w = new BrowserWindow({
|
||||
show: false,
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
webviewTag: true,
|
||||
session: sqlSession,
|
||||
contextIsolation: false
|
||||
}
|
||||
});
|
||||
w.webContents.loadURL(origin);
|
||||
const [, error] = await once(ipcMain, 'web-sql-response');
|
||||
expect(error).to.be.null();
|
||||
const webviewResult = once(ipcMain, 'web-sql-response');
|
||||
await w.webContents.executeJavaScript(`
|
||||
new Promise((resolve, reject) => {
|
||||
const webview = new WebView();
|
||||
webview.setAttribute('src', '${origin}');
|
||||
webview.setAttribute('webpreferences', 'enableWebSQL=0,contextIsolation=no');
|
||||
webview.setAttribute('partition', '${sqlPartition}');
|
||||
webview.setAttribute('nodeIntegration', 'on');
|
||||
document.body.appendChild(webview);
|
||||
webview.addEventListener('dom-ready', () => resolve());
|
||||
});
|
||||
`);
|
||||
const [, childError] = await webviewResult;
|
||||
expect(childError).to.equal(securityError);
|
||||
});
|
||||
|
||||
it('child webContents cannot override when the embedder has disallowed websql', async () => {
|
||||
w = new BrowserWindow({
|
||||
show: false,
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
enableWebSQL: false,
|
||||
webviewTag: true,
|
||||
session: sqlSession,
|
||||
contextIsolation: false
|
||||
}
|
||||
});
|
||||
w.webContents.loadURL('data:text/html,<html></html>');
|
||||
const webviewResult = once(ipcMain, 'web-sql-response');
|
||||
await w.webContents.executeJavaScript(`
|
||||
new Promise((resolve, reject) => {
|
||||
const webview = new WebView();
|
||||
webview.setAttribute('src', '${origin}');
|
||||
webview.setAttribute('webpreferences', 'enableWebSQL=1,contextIsolation=no');
|
||||
webview.setAttribute('partition', '${sqlPartition}');
|
||||
webview.setAttribute('nodeIntegration', 'on');
|
||||
document.body.appendChild(webview);
|
||||
webview.addEventListener('dom-ready', () => resolve());
|
||||
});
|
||||
`);
|
||||
const [, childError] = await webviewResult;
|
||||
expect(childError).to.equal(securityError);
|
||||
});
|
||||
|
||||
it('child webContents can use websql when the embedder has allowed websql', async () => {
|
||||
w = new BrowserWindow({
|
||||
show: false,
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
webviewTag: true,
|
||||
session: sqlSession,
|
||||
contextIsolation: false
|
||||
}
|
||||
});
|
||||
w.webContents.loadURL(origin);
|
||||
const [, error] = await once(ipcMain, 'web-sql-response');
|
||||
expect(error).to.be.null();
|
||||
const webviewResult = once(ipcMain, 'web-sql-response');
|
||||
await w.webContents.executeJavaScript(`
|
||||
new Promise((resolve, reject) => {
|
||||
const webview = new WebView();
|
||||
webview.setAttribute('src', '${origin}');
|
||||
webview.setAttribute('webpreferences', 'enableWebSQL=1,contextIsolation=no');
|
||||
webview.setAttribute('partition', '${sqlPartition}');
|
||||
webview.setAttribute('nodeIntegration', 'on');
|
||||
document.body.appendChild(webview);
|
||||
webview.addEventListener('dom-ready', () => resolve());
|
||||
});
|
||||
`);
|
||||
const [, childError] = await webviewResult;
|
||||
expect(childError).to.be.null();
|
||||
});
|
||||
});
|
||||
|
||||
describe('DOM storage quota increase', () => {
|
||||
for (const storageName of ['localStorage', 'sessionStorage']) {
|
||||
it(`allows saving at least 40MiB in ${storageName}`, async () => {
|
||||
|
||||
Reference in New Issue
Block a user