2
Ребята, а что вы используете для end-to-end тестов для приложения на Electron?
Anton
что-то электрон совсем долго качается, я что-то пропустил или это временно
Anton
проверил и на ПК и на удаленном сервере, проблема не в моем провайдере
Anton
вроде пронесло, рано паниковал (хотя один фиг какая-то странная фигня, невыносимо долго)
Electron.js releases
v10.0.0-nightly.20200515
https://github.com/electron/electron/releases/tag/v10.0.0-nightly.20200515
v10.0.0-nightly.20200515
Nikita
Nikita
Посмотри как делают слак с дискордом
Nikita
Удалённый сервер не должен иметь доступ на выполнение произвольного кода на юзерской машине
Nikita
Даже если он твой
Nikita
Даже если его исходники условно открыты
Nikita
Anton
ясно) ни когда такого не было раньше.
Anonymous
Так а в чем вопрос?
Anonymous
Обращайтесь в наш саппорт еще
Anonymous
Anonymous
БыстроЭлектрон
Oleh
Oleh
Считай что нажал первый таб у нас, и зашел
Nikita
Nikita
У тебя другое
Nikita
У них сэндбокс
Nikita
У тебя нет
Oleh
что в твоем понимании сэндбокс?
Nikita
sandbox
Nikita
В хроме.
В электроне он включается через webpreferences
Oleh
И как мне тогда слать уведомления например?
Oleh
Точнее можно сделать это все отдельно
Nikita
По IPC
Oleh
Но смысл?
Oleh
А, я почему-то подумал что в нем нельзя слать через ipc
Nikita
Чтобы удалённые страницы не могли выполнять произвольный код
Oleh
Ну и как ты это сделаешь?
Oleh
Если не вводить домен
Nikita
Сэндбокс и всё по ipc передавать
Oleh
Если поставить sandbox: true, как тогда работать с require? Как выполнять что-то?
Nikita
Oleh
Ну это нужно с нуля клиент писать
Oleh
Nikita
Так его закапывают
Oleh
Ну не суть, отключу я потом babel, будут импорты
Nikita
https://www.electronjs.org/blog/electron-8-0#deprecation-of-remote-module-starting-in-electron-9
Nikita
Nikita
С электрона 9 remote.require (и весь remote) закапывают
Nikita
Если ты о нём
Oleh
Ну надо что бы тогда они переписали electron-store для начала как-то
Nikita
Надо общаться с мейном по ipc
Nikita
Я бы понял если бы у тебя были локальные файлы
Oleh
Так они есть
Nikita
Но грузить удалённый контент без сэндбокса это ой
Nikita
Так они есть
Нет, у тебя удалённый контент имеет прямой доступ к выполнению произвольных команд в системе
Nikita
Зачем это ему?
Oleh
Потому что у меня в одном окне грузятся и удаленные файлы и локальные
Oleh
Я же не могу каждый раз пересоздавать окно
Nikita
Это вообще выглядит как бэкдор
Vadim
Ребят, это холивар. Если и скатываться в параною, то выкатить апдейт от имени владельца мальварь может.
Nikita
Oleh
Ну не грузи, никто тебя не заставляет
Vadim
Ага, но тут речь не о произвольном
Nikita
Которые тоже будут иметь доступ к выполнению произвольных команд
Vadim
По HTTPS передача настолько же опасна как обновление
Oleh
Я же не могу за тебя ввести какой-то домен, ты сам его введешь
กระเจี๊ยว
Всем доброго. Подскажите как собирать electron проект. Как вообще собираются все зависимости и пакуются?
Vadim
กระเจี๊ยว
1) Я webpack-ом собираю main.js и preload.js в два js-ника. Каждый внутри себя содержит свои зависимости.
2) builder собираю все в exe-шник?
กระเจี๊ยว
просто я вообще даже не могу картинку собрать в голове что на выходе должно быть. И как потом вообще это запускается и работает.
Evgeny
никто не понимает, магия, но у некоторых както работает
กระเจี๊ยว
Вот например у меня react app на выходе кладет в build js и html. Точка входа html. Все собирается сейчас. Щас у меня есть main и preload со своими зависимостями. Их просто прогнать через webpack и положить рядом с html?
กระเจี๊ยว
потом эту папку забилдить через electron-builder
Vadim
กระเจี๊ยว
Ну мое представление верное?
Vadim
Не совсем
Vadim
Да, но есть больше деталей
Vadim
https://www.electronjs.org/docs/tutorial/first-app#electron-development-in-a-nutshell
Vadim
Лучше доки вряд-ли расскажу) У электрона тоже есть точка входа
กระเจี๊ยว
Ну это база.
Vadim
Эта точка входа порождает окна
กระเจี๊ยว
Дак я понимаю, main
Vadim
В которые можно грузить контент
Vadim
Перед загрузкой окна применяется preload
Vadim
Electron-builder возьмёт и соберёт все в кучу создав удобные ярлыки/бинарики и запихнув нужное в архив(asar)