feat: promisify executeJavaScript (#17312)
This commit is contained in:
parent
878538f2e8
commit
2e89348541
14 changed files with 164 additions and 100 deletions
|
@ -1075,7 +1075,21 @@ describe('webContents module', () => {
|
|||
})
|
||||
|
||||
describe('webframe messages in sandboxed contents', () => {
|
||||
it('responds to executeJavaScript', (done) => {
|
||||
it('responds to executeJavaScript', async () => {
|
||||
w.destroy()
|
||||
w = new BrowserWindow({
|
||||
show: false,
|
||||
webPreferences: {
|
||||
sandbox: true
|
||||
}
|
||||
})
|
||||
await w.loadURL('about:blank')
|
||||
const result = await w.webContents.executeJavaScript('37 + 5')
|
||||
assert.strictEqual(result, 42)
|
||||
})
|
||||
|
||||
// TODO(miniak): remove when promisification is complete
|
||||
it('responds to executeJavaScript (callback)', (done) => {
|
||||
w.destroy()
|
||||
w = new BrowserWindow({
|
||||
show: false,
|
||||
|
|
|
@ -97,6 +97,7 @@ app.on('ready', () => {
|
|||
mainWindow.webContents.printToPDF({}, (err, data) => console.log(err))
|
||||
|
||||
mainWindow.webContents.executeJavaScript('return true;').then((v: boolean) => console.log(v))
|
||||
mainWindow.webContents.executeJavaScript('return true;', true).then((v: boolean) => console.log(v))
|
||||
mainWindow.webContents.executeJavaScript('return true;', true)
|
||||
mainWindow.webContents.executeJavaScript('return true;', true, (result: boolean) => console.log(result))
|
||||
mainWindow.webContents.insertText('blah, blah, blah')
|
||||
|
|
|
@ -72,9 +72,10 @@ webFrame.setSpellCheckProvider('en-US', {
|
|||
|
||||
webFrame.insertText('text')
|
||||
|
||||
webFrame.executeJavaScript('JSON.stringify({})', false, (result) => {
|
||||
console.log(result)
|
||||
}).then((result: string) => console.log('OK:' + result))
|
||||
webFrame.executeJavaScript('return true;').then((v: boolean) => console.log(v))
|
||||
webFrame.executeJavaScript('return true;', true).then((v: boolean) => console.log(v))
|
||||
webFrame.executeJavaScript('return true;', true)
|
||||
webFrame.executeJavaScript('return true;', true, (result: boolean) => console.log(result))
|
||||
|
||||
console.log(webFrame.getResourceUsage())
|
||||
webFrame.clearCache()
|
||||
|
|
|
@ -789,11 +789,7 @@ describe('<webview> tag', function () {
|
|||
const devtools = webview2.getWebContents()
|
||||
assert.ok(devtools.getURL().startsWith('chrome-devtools://devtools'))
|
||||
|
||||
const name = await new Promise((resolve) => {
|
||||
devtools.executeJavaScript('InspectorFrontendHost.constructor.name', (name) => {
|
||||
resolve(name)
|
||||
})
|
||||
})
|
||||
const name = await devtools.executeJavaScript('InspectorFrontendHost.constructor.name')
|
||||
document.body.removeChild(webview2)
|
||||
|
||||
expect(name).to.be.equal('InspectorFrontendHostImpl')
|
||||
|
@ -1001,6 +997,19 @@ describe('<webview> tag', function () {
|
|||
const jsScript = "'4'+2"
|
||||
const expectedResult = '42'
|
||||
|
||||
const result = await webview.executeJavaScript(jsScript)
|
||||
assert.strictEqual(result, expectedResult)
|
||||
})
|
||||
|
||||
// TODO(miniak): remove when promisification is complete
|
||||
it('can return the result of the executed script (callback)', async () => {
|
||||
await loadWebView(webview, {
|
||||
src: 'about:blank'
|
||||
})
|
||||
|
||||
const jsScript = "'4'+2"
|
||||
const expectedResult = '42'
|
||||
|
||||
const result = await new Promise((resolve) => {
|
||||
webview.executeJavaScript(jsScript, false, (result) => {
|
||||
resolve(result)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue