mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
chore: bump chromium to 140.0.7281.0 (main) (#47616)
* chore: bump chromium in DEPS to 140.0.7269.2 * chore: bump chromium in DEPS to 140.0.7270.0 * chore: bump chromium in DEPS to 140.0.7271.0 * chore: bump chromium in DEPS to 140.0.7273.0 * 6516731: [ExclusiveAccessForAndroid] remove unneeded includes & deps | https://chromium-review.googlesource.com/c/chromium/src/+/6516731 * 6694809: dbus: Ensure systemd scope is started before using any portal services | https://chromium-review.googlesource.com/c/chromium/src/+/6694809 * chore: patch chromium * chore: export patches * chore: bump chromium in DEPS to 140.0.7275.0 * 6677511: [pepper] More pepper removal | https://chromium-review.googlesource.com/c/chromium/src/+/6677511 * 6513641: [gin] Rename gin::Wrappable to gin::DeprecatedWrappable | https://chromium-review.googlesource.com/c/chromium/src/+/6513641 * chore: export chromium patches * 6513641: [gin] Rename gin::Wrappable to gin::DeprecatedWrappable | https://chromium-review.googlesource.com/c/chromium/src/+/6513641 * chore: bump chromium in DEPS to 140.0.7277.0 * chore: bump chromium in DEPS to 140.0.7279.0 * chore: bump chromium in DEPS to 140.0.7281.0 * 6677314: Plumb enabled client hints in the network requestion to network layer https://chromium-review.googlesource.com/c/chromium/src/+/6677314 * 6351556: [source-phase-imports] Support Wasm Source Phase Imports https://chromium-review.googlesource.com/c/chromium/src/+/6351556 * 6700077: [renderer] Avoid calls to deprecated GetIsolate methods https://chromium-review.googlesource.com/c/chromium/src/+/6700077 * 6692873: Reland "Reland "FSA: Only normalize the hardcoded rules once during initialization"" https://chromium-review.googlesource.com/c/chromium/src/+/6692873 * 6686234: [gin] Cleanup NamedPropertyInterceptor for Wrappable https://chromium-review.googlesource.com/c/chromium/src/+/6686234 * chore: export patches * 6667723: Remove content_enable_legacy_ipc GN arg. https://chromium-review.googlesource.com/c/chromium/src/+/6667723 * 6646566: ui: Move NativeWindowTracker to its own directory https://chromium-review.googlesource.com/c/chromium/src/+/6646566 * fix: add missing includes * 6580522: [WAR, DNR] Fix unsafe redirect error to web accessible resource https://chromium-review.googlesource.com/c/chromium/src/+/6580522 * 6680477: Implement `completeCode` endpoint and expose to DevTools https://chromium-review.googlesource.com/c/chromium/src/+/6680477 * 6677511: [pepper] More pepper removal https://chromium-review.googlesource.com/c/chromium/src/+/6677511 * 6696689: Rename views::WidgetFocusManager -> NativeViewFocusManager https://chromium-review.googlesource.com/c/chromium/src/+/6696689 * 6702812: Move wtf/text/string_impl*.* to "blink" namespace https://chromium-review.googlesource.com/c/chromium/src/+/6702812 * chore: fix dialog patch * 6702431: [animation-trigger] Parse timeline-trigger-name https://chromium-review.googlesource.com/c/chromium/src/+/6702431 * chore: fixup patch indices * feat: replace webFrame.routingId with webFrame.frameToken * feat: WebFrameMain.prototype.frameToken * test: refactor to use replacement APIs * chore: fixup pip patch * test: adjust webFrame tests for frameToken changes * 6703757: Reland "Enable -fsanitize=array-bounds in non-UBSan builds" https://chromium-review.googlesource.com/c/chromium/src/+/6703757 * test: switch to frameTokens * test: routingId is fine to test in the main process * docs: add routingId to breaking changes * docs: update plugin-crashed event * chore: fixup linux dialog patch --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: alice <alice@makenotion.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: Samuel Maddock <smaddock@slack-corp.com>
This commit is contained in:
committed by
GitHub
parent
09f269426e
commit
603cafad7e
@@ -218,7 +218,7 @@ describe('ipc module', () => {
|
||||
expect(msg).to.equal('hi');
|
||||
expect(ev.ports).to.have.length(1);
|
||||
expect(ev.senderFrame.parent).to.be.null();
|
||||
expect(ev.senderFrame.routingId).to.equal(w.webContents.mainFrame.routingId);
|
||||
expect(ev.senderFrame.frameToken).to.equal(w.webContents.mainFrame.frameToken);
|
||||
const [port] = ev.ports;
|
||||
expect(port).to.be.an.instanceOf(EventEmitter);
|
||||
});
|
||||
@@ -233,7 +233,7 @@ describe('ipc module', () => {
|
||||
const [ev, msg] = await p;
|
||||
expect(msg).to.equal('hi');
|
||||
expect(ev.ports).to.deep.equal([]);
|
||||
expect(ev.senderFrame.routingId).to.equal(w.webContents.mainFrame.routingId);
|
||||
expect(ev.senderFrame.frameToken).to.equal(w.webContents.mainFrame.frameToken);
|
||||
});
|
||||
|
||||
it('throws when the transferable is invalid', async () => {
|
||||
@@ -266,7 +266,7 @@ describe('ipc module', () => {
|
||||
}})()`);
|
||||
const [ev] = await p;
|
||||
expect(ev.ports).to.have.length(1);
|
||||
expect(ev.senderFrame.routingId).to.equal(w.webContents.mainFrame.routingId);
|
||||
expect(ev.senderFrame.frameToken).to.equal(w.webContents.mainFrame.frameToken);
|
||||
const [port] = ev.ports;
|
||||
port.start();
|
||||
port.postMessage(42);
|
||||
|
||||
@@ -35,26 +35,21 @@ describe('renderer nodeIntegrationInSubFrames', () => {
|
||||
const detailsPromise = emittedNTimes(ipcMain, 'preload-ran', 2);
|
||||
w.loadFile(path.resolve(__dirname, `fixtures/sub-frames/frame-container${fixtureSuffix}.html`));
|
||||
const [event1, event2] = await detailsPromise;
|
||||
expect(event1[0].frameId).to.not.equal(event2[0].frameId);
|
||||
expect(event1[0].frameId).to.equal(event1[2]);
|
||||
expect(event2[0].frameId).to.equal(event2[2]);
|
||||
expect(event1[0].senderFrame.routingId).to.equal(event1[2]);
|
||||
expect(event2[0].senderFrame.routingId).to.equal(event2[2]);
|
||||
expect(event1[0].senderFrame.frameToken).to.not.equal(event2[0].senderFrame.frameToken);
|
||||
expect(event1[0].senderFrame.frameToken).to.equal(event1[2]);
|
||||
expect(event2[0].senderFrame.frameToken).to.equal(event2[2]);
|
||||
});
|
||||
|
||||
it('should load preload scripts in nested iframes', async () => {
|
||||
const detailsPromise = emittedNTimes(ipcMain, 'preload-ran', 3);
|
||||
w.loadFile(path.resolve(__dirname, `fixtures/sub-frames/frame-with-frame-container${fixtureSuffix}.html`));
|
||||
const [event1, event2, event3] = await detailsPromise;
|
||||
expect(event1[0].frameId).to.not.equal(event2[0].frameId);
|
||||
expect(event1[0].frameId).to.not.equal(event3[0].frameId);
|
||||
expect(event2[0].frameId).to.not.equal(event3[0].frameId);
|
||||
expect(event1[0].frameId).to.equal(event1[2]);
|
||||
expect(event2[0].frameId).to.equal(event2[2]);
|
||||
expect(event3[0].frameId).to.equal(event3[2]);
|
||||
expect(event1[0].senderFrame.routingId).to.equal(event1[2]);
|
||||
expect(event2[0].senderFrame.routingId).to.equal(event2[2]);
|
||||
expect(event3[0].senderFrame.routingId).to.equal(event3[2]);
|
||||
expect(event1[0].senderFrame.frameToken).to.not.equal(event2[0].senderFrame.frameToken);
|
||||
expect(event1[0].senderFrame.frameToken).to.not.equal(event3[0].senderFrame.frameToken);
|
||||
expect(event2[0].senderFrame.frameToken).to.not.equal(event3[0].senderFrame.frameToken);
|
||||
expect(event1[0].senderFrame.frameToken).to.equal(event1[2]);
|
||||
expect(event2[0].senderFrame.frameToken).to.equal(event2[2]);
|
||||
expect(event3[0].senderFrame.frameToken).to.equal(event3[2]);
|
||||
});
|
||||
|
||||
it('should correctly reply to the main frame with using event.reply', async () => {
|
||||
@@ -63,8 +58,8 @@ describe('renderer nodeIntegrationInSubFrames', () => {
|
||||
const [event1] = await detailsPromise;
|
||||
const pongPromise = once(ipcMain, 'preload-pong');
|
||||
event1[0].reply('preload-ping');
|
||||
const [, frameId] = await pongPromise;
|
||||
expect(frameId).to.equal(event1[0].frameId);
|
||||
const [, frameToken] = await pongPromise;
|
||||
expect(frameToken).to.equal(event1[0].senderFrame.frameToken);
|
||||
});
|
||||
|
||||
it('should correctly reply to the main frame with using event.senderFrame.send', async () => {
|
||||
@@ -73,8 +68,8 @@ describe('renderer nodeIntegrationInSubFrames', () => {
|
||||
const [event1] = await detailsPromise;
|
||||
const pongPromise = once(ipcMain, 'preload-pong');
|
||||
event1[0].senderFrame.send('preload-ping');
|
||||
const [, frameId] = await pongPromise;
|
||||
expect(frameId).to.equal(event1[0].frameId);
|
||||
const [, frameToken] = await pongPromise;
|
||||
expect(frameToken).to.equal(event1[0].senderFrame.frameToken);
|
||||
});
|
||||
|
||||
it('should correctly reply to the sub-frames with using event.reply', async () => {
|
||||
@@ -83,8 +78,8 @@ describe('renderer nodeIntegrationInSubFrames', () => {
|
||||
const [, event2] = await detailsPromise;
|
||||
const pongPromise = once(ipcMain, 'preload-pong');
|
||||
event2[0].reply('preload-ping');
|
||||
const [, frameId] = await pongPromise;
|
||||
expect(frameId).to.equal(event2[0].frameId);
|
||||
const [, frameToken] = await pongPromise;
|
||||
expect(frameToken).to.equal(event2[0].senderFrame.frameToken);
|
||||
});
|
||||
|
||||
it('should correctly reply to the sub-frames with using event.senderFrame.send', async () => {
|
||||
@@ -93,8 +88,8 @@ describe('renderer nodeIntegrationInSubFrames', () => {
|
||||
const [, event2] = await detailsPromise;
|
||||
const pongPromise = once(ipcMain, 'preload-pong');
|
||||
event2[0].senderFrame.send('preload-ping');
|
||||
const [, frameId] = await pongPromise;
|
||||
expect(frameId).to.equal(event2[0].frameId);
|
||||
const [, frameToken] = await pongPromise;
|
||||
expect(frameToken).to.equal(event2[0].senderFrame.frameToken);
|
||||
});
|
||||
|
||||
it('should correctly reply to the nested sub-frames with using event.reply', async () => {
|
||||
@@ -103,8 +98,8 @@ describe('renderer nodeIntegrationInSubFrames', () => {
|
||||
const [, , event3] = await detailsPromise;
|
||||
const pongPromise = once(ipcMain, 'preload-pong');
|
||||
event3[0].reply('preload-ping');
|
||||
const [, frameId] = await pongPromise;
|
||||
expect(frameId).to.equal(event3[0].frameId);
|
||||
const [, frameToken] = await pongPromise;
|
||||
expect(frameToken).to.equal(event3[0].senderFrame.frameToken);
|
||||
});
|
||||
|
||||
it('should correctly reply to the nested sub-frames with using event.senderFrame.send', async () => {
|
||||
@@ -113,8 +108,8 @@ describe('renderer nodeIntegrationInSubFrames', () => {
|
||||
const [, , event3] = await detailsPromise;
|
||||
const pongPromise = once(ipcMain, 'preload-pong');
|
||||
event3[0].senderFrame.send('preload-ping');
|
||||
const [, frameId] = await pongPromise;
|
||||
expect(frameId).to.equal(event3[0].frameId);
|
||||
const [, frameToken] = await pongPromise;
|
||||
expect(frameToken).to.equal(event3[0].senderFrame.frameToken);
|
||||
});
|
||||
|
||||
it('should not expose globals in main world', async () => {
|
||||
|
||||
@@ -200,6 +200,7 @@ describe('webFrameMain module', () => {
|
||||
expect(webFrame).to.have.property('osProcessId').that.is.a('number');
|
||||
expect(webFrame).to.have.property('processId').that.is.a('number');
|
||||
expect(webFrame).to.have.property('routingId').that.is.a('number');
|
||||
expect(webFrame).to.have.property('frameToken').that.is.a('string');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -295,8 +296,8 @@ describe('webFrameMain module', () => {
|
||||
const webFrame = w.webContents.mainFrame;
|
||||
const pongPromise = once(ipcMain, 'preload-pong');
|
||||
webFrame.send('preload-ping');
|
||||
const [, routingId] = await pongPromise;
|
||||
expect(routingId).to.equal(webFrame.routingId);
|
||||
const [, frameToken] = await pongPromise;
|
||||
expect(frameToken).to.equal(webFrame.frameToken);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -391,7 +392,6 @@ describe('webFrameMain module', () => {
|
||||
expect(senderFrame).to.not.be.null();
|
||||
expect(senderFrame!.detached).to.be.true();
|
||||
expect(senderFrame!.processId).to.equal(event.processId);
|
||||
expect(senderFrame!.routingId).to.equal(event.frameId);
|
||||
resolve();
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
|
||||
@@ -162,14 +162,14 @@ describe('webFrame module', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('findFrameByRoutingId()', () => {
|
||||
describe('findFrameByToken()', () => {
|
||||
it('does not crash when not found', async () => {
|
||||
const equal = await w.executeJavaScript('webFrame.findFrameByRoutingId(-1) === null');
|
||||
const equal = await w.executeJavaScript('webFrame.findFrameByToken("unknown") === null');
|
||||
expect(equal).to.be.true();
|
||||
});
|
||||
|
||||
it('returns the webFrame when found', async () => {
|
||||
const equal = await w.executeJavaScript('isSameWebFrame(webFrame.findFrameByRoutingId(childFrame.routingId), childFrame)');
|
||||
const equal = await w.executeJavaScript('isSameWebFrame(webFrame.findFrameByToken(childFrame.frameToken), childFrame)');
|
||||
expect(equal).to.be.true();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { app, session, BrowserWindow, ipcMain, WebContents, Extension, Session } from 'electron/main';
|
||||
import { app, session, webFrameMain, BrowserWindow, ipcMain, WebContents, Extension, Session } from 'electron/main';
|
||||
|
||||
import { expect } from 'chai';
|
||||
import * as WebSocket from 'ws';
|
||||
@@ -631,13 +631,13 @@ describe('chrome extensions', () => {
|
||||
};
|
||||
|
||||
let responseIdCounter = 0;
|
||||
const executeJavaScriptInFrame = (webContents: WebContents, frameRoutingId: number, code: string) => {
|
||||
const executeJavaScriptInFrame = (webContents: WebContents, frameToken: string, code: string) => {
|
||||
return new Promise(resolve => {
|
||||
const responseId = responseIdCounter++;
|
||||
ipcMain.once(`executeJavaScriptInFrame_${responseId}`, (event, result) => {
|
||||
resolve(result);
|
||||
});
|
||||
webContents.send('executeJavaScriptInFrame', frameRoutingId, code, responseId);
|
||||
webContents.send('executeJavaScriptInFrame', frameToken, code, responseId);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -748,10 +748,12 @@ describe('chrome extensions', () => {
|
||||
const frameEvents = await detailsPromise;
|
||||
await Promise.all(
|
||||
frameEvents.map(async frameEvent => {
|
||||
const [, isMainFrame, , frameRoutingId] = frameEvent;
|
||||
const [, isMainFrame, frameProcessId, frameRoutingId] = frameEvent;
|
||||
const frame = webFrameMain.fromId(frameProcessId, frameRoutingId);
|
||||
expect(frame).to.not.be.undefined();
|
||||
const result: any = await executeJavaScriptInFrame(
|
||||
w.webContents,
|
||||
frameRoutingId,
|
||||
frame!.frameToken,
|
||||
`(() => {
|
||||
const a = document.getElementById('all_frames_enabled')
|
||||
const b = document.getElementById('all_frames_disabled')
|
||||
|
||||
@@ -2,10 +2,10 @@ const { ipcRenderer, webFrame } = require('electron');
|
||||
|
||||
if (process.isMainFrame) {
|
||||
// https://github.com/electron/electron/issues/17252
|
||||
ipcRenderer.on('executeJavaScriptInFrame', (event, frameRoutingId, code, responseId) => {
|
||||
const frame = webFrame.findFrameByRoutingId(frameRoutingId);
|
||||
ipcRenderer.on('executeJavaScriptInFrame', (event, frameToken, code, responseId) => {
|
||||
const frame = webFrame.findFrameByToken(frameToken);
|
||||
if (!frame) {
|
||||
throw new Error(`Can't find frame for routing ID ${frameRoutingId}`);
|
||||
throw new Error(`Can't find frame for frame token ${frameToken}`);
|
||||
}
|
||||
frame.executeJavaScript(code, false).then(result => {
|
||||
event.sender.send(`executeJavaScriptInFrame_${responseId}`, result);
|
||||
|
||||
2
spec/fixtures/pages/fullscreen-oopif.html
vendored
2
spec/fixtures/pages/fullscreen-oopif.html
vendored
@@ -2,7 +2,7 @@
|
||||
const { webFrame, ipcRenderer } = require('electron')
|
||||
|
||||
document.addEventListener('fullscreenchange', () => {
|
||||
ipcRenderer.send('fullscreenChange', webFrame.routingId)
|
||||
ipcRenderer.send('fullscreenChange', webFrame.frameToken)
|
||||
});
|
||||
|
||||
window.addEventListener('message', ({ data }) => {
|
||||
|
||||
4
spec/fixtures/sub-frames/preload.js
vendored
4
spec/fixtures/sub-frames/preload.js
vendored
@@ -2,10 +2,10 @@ const { ipcRenderer, webFrame } = require('electron');
|
||||
|
||||
window.isolatedGlobal = true;
|
||||
|
||||
ipcRenderer.send('preload-ran', window.location.href, webFrame.routingId);
|
||||
ipcRenderer.send('preload-ran', window.location.href, webFrame.frameToken);
|
||||
|
||||
ipcRenderer.on('preload-ping', () => {
|
||||
ipcRenderer.send('preload-pong', webFrame.routingId);
|
||||
ipcRenderer.send('preload-pong', webFrame.frameToken);
|
||||
});
|
||||
|
||||
window.addEventListener('unload', () => {
|
||||
|
||||
Reference in New Issue
Block a user