docs: enable contextIsolation in fiddles (#39613)

This commit is contained in:
Milan Burda 2023-08-29 21:52:16 +02:00 committed by GitHub
parent 2e79f34c84
commit 9280b79112
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
61 changed files with 206 additions and 233 deletions

View file

@ -73,9 +73,6 @@ ipcMain.on('open-error-dialog', (event) => {
</div>
</div>
<script>
// You can also require other files to run in this process
require("./renderer.js");
</script>
<script src="renderer.js"></script>
</body>
</html>

View file

@ -1,5 +1,6 @@
// Modules to control application life and create native browser window
const { app, BrowserWindow, ipcMain, dialog, shell } = require('electron/main')
const path = require('node:path')
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
@ -11,8 +12,7 @@ function createWindow () {
width: 800,
height: 600,
webPreferences: {
contextIsolation: false,
nodeIntegration: true
preload: path.join(__dirname, 'preload.js')
}
})

View file

@ -0,0 +1,5 @@
const { contextBridge, ipcRenderer } = require('electron/renderer')
contextBridge.exposeInMainWorld('electronAPI', {
openErrorDialog: () => ipcRenderer.send('open-error-dialog')
})

View file

@ -1,7 +1,5 @@
const { ipcRenderer } = require('electron/renderer')
const errorBtn = document.getElementById('error-dialog')
errorBtn.addEventListener('click', event => {
ipcRenderer.send('open-error-dialog')
errorBtn.addEventListener('click', () => {
window.electronAPI.openErrorDialog()
})

View file

@ -96,9 +96,6 @@ ipcMain.on('open-information-dialog', (event) => {
</div>
</div>
<script>
// You can also require other files to run in this process
require("./renderer.js");
</script>
<script src="renderer.js"></script>
</body>
</html>

View file

@ -1,5 +1,6 @@
// Modules to control application life and create native browser window
const { app, BrowserWindow, ipcMain, dialog, shell } = require('electron/main')
const path = require('node:path')
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
@ -11,8 +12,7 @@ function createWindow () {
width: 800,
height: 600,
webPreferences: {
contextIsolation: false,
nodeIntegration: true
preload: path.join(__dirname, 'preload.js')
}
})
@ -59,16 +59,14 @@ app.on('activate', function () {
}
})
ipcMain.on('open-information-dialog', event => {
ipcMain.handle('open-information-dialog', async () => {
const options = {
type: 'info',
title: 'Information',
message: "This is an information dialog. Isn't it nice?",
buttons: ['Yes', 'No']
}
dialog.showMessageBox(options, index => {
event.sender.send('information-dialog-selection', index)
})
return (await dialog.showMessageBox(options)).response
})
// In this file you can include the rest of your app's specific main process

View file

@ -0,0 +1,5 @@
const { contextBridge, ipcRenderer } = require('electron/renderer')
contextBridge.exposeInMainWorld('electronAPI', {
openInformationDialog: () => ipcRenderer.invoke('open-information-dialog')
})

View file

@ -1,14 +1,7 @@
const { ipcRenderer } = require('electron/renderer')
const informationBtn = document.getElementById('information-dialog')
informationBtn.addEventListener('click', event => {
ipcRenderer.send('open-information-dialog')
})
ipcRenderer.on('information-dialog-selection', (event, index) => {
let message = 'You selected '
if (index === 0) message += 'yes.'
else message += 'no.'
informationBtn.addEventListener('click', async () => {
const index = await window.electronAPI.openInformationDialog()
const message = `You selected: ${index === 0 ? 'yes' : 'no'}`
document.getElementById('info-selection').innerHTML = message
})

View file

@ -100,9 +100,6 @@ ipc.on('open-file-dialog-sheet', function (event) {
</div>
</div>
<script>
// You can also require other files to run in this process
require("./renderer.js");
</script>
<script src="renderer.js"></script>
</body>
</html>

View file

@ -1,5 +1,6 @@
// Modules to control application life and create native browser window
const { app, BrowserWindow, ipcMain, dialog, shell } = require('electron/main')
const path = require('node:path')
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
@ -11,8 +12,7 @@ function createWindow () {
width: 800,
height: 600,
webPreferences: {
contextIsolation: false,
nodeIntegration: true
preload: path.join(__dirname, 'preload.js')
}
})
@ -59,17 +59,11 @@ app.on('activate', function () {
}
})
ipcMain.on('open-file-dialog', event => {
dialog.showOpenDialog(
{
properties: ['openFile', 'openDirectory']
},
files => {
if (files) {
event.sender.send('selected-directory', files)
}
}
)
ipcMain.handle('open-file-dialog', async () => {
const options = {
properties: ['openFile', 'openDirectory']
}
return (await dialog.showOpenDialog(options)).filePaths
})
// In this file you can include the rest of your app's specific main process

View file

@ -0,0 +1,5 @@
const { contextBridge, ipcRenderer } = require('electron/renderer')
contextBridge.exposeInMainWorld('electronAPI', {
openFileDialog: () => ipcRenderer.invoke('open-file-dialog')
})

View file

@ -1,11 +1,6 @@
const { ipcRenderer } = require('electron/renderer')
const selectDirBtn = document.getElementById('select-directory')
selectDirBtn.addEventListener('click', event => {
ipcRenderer.send('open-file-dialog')
})
ipcRenderer.on('selected-directory', (event, path) => {
selectDirBtn.addEventListener('click', async () => {
const path = await window.electronAPI.openFileDialog()
document.getElementById('selected-file').innerHTML = `You selected: ${path}`
})

View file

@ -83,9 +83,6 @@ ipcMain.on('save-dialog', (event) => {
</div>
</div>
<script>
// You can also require other files to run in this process
require("./renderer.js");
</script>
<script src="renderer.js"></script>
</body>
</html>

View file

@ -1,5 +1,6 @@
// Modules to control application life and create native browser window
const { app, BrowserWindow, ipcMain, dialog, shell } = require('electron/main')
const path = require('node:path')
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
@ -11,8 +12,7 @@ function createWindow () {
width: 800,
height: 600,
webPreferences: {
contextIsolation: false,
nodeIntegration: true
preload: path.join(__dirname, 'preload.js')
}
})
@ -59,14 +59,12 @@ app.on('activate', function () {
}
})
ipcMain.on('save-dialog', event => {
ipcMain.handle('save-dialog', async () => {
const options = {
title: 'Save an Image',
filters: [{ name: 'Images', extensions: ['jpg', 'png', 'gif'] }]
}
dialog.showSaveDialog(options, filename => {
event.sender.send('saved-file', filename)
})
return (await dialog.showSaveDialog(options)).filePath
})
// In this file you can include the rest of your app's specific main process

View file

@ -0,0 +1,5 @@
const { contextBridge, ipcRenderer } = require('electron/renderer')
contextBridge.exposeInMainWorld('electronAPI', {
saveDialog: () => ipcRenderer.invoke('save-dialog')
})

View file

@ -1,12 +1,6 @@
const { ipcRenderer } = require('electron/renderer')
const saveBtn = document.getElementById('save-dialog')
saveBtn.addEventListener('click', event => {
ipcRenderer.send('save-dialog')
})
ipcRenderer.on('saved-file', (event, path) => {
if (!path) path = 'No path'
saveBtn.addEventListener('click', async () => {
const path = await window.electronAPI.saveDialog()
document.getElementById('file-saved').innerHTML = `Path selected: ${path}`
})