LINUX.ORG.RU

Архитектура Electron

 , , ,


0

2

Привет. Решил создать здесь, несмотря на то, что это относится к десктопу. Буду надеяться, среди пользователей ЛОРа есть спец по подобным платформам.

Собственно вопрос о мультипроцессорной архитектуре Electron'а (atom shell). Задам на примере, чтобы было проще объяснить.

Допустим я создал на базе электрона браузер. Все как обычно, контролы\адресная строка\табы\етк. Допустим, что вкладки я делаю средствами webview. И например открыл в нем три вкладки. Будет задействовано 6 процессов (main, gpu, render BrowserWindow и по рендеру на каждую webview).

Затем я хочу отделить одну вкладку в отдельное окно. Но, так как вкладки это webview, то вроде как нет пути. Как переносить webview между BrowserWindow документация не описывает, во всяком случае.

Есть вариант пересоздать заново webview в отдельном BrowserWindow (уже беда, так как по факту будет вкладка будет перезагружена заново). Но это еще не вся беда, так как при этом (отдельный webview в отдельном BrowserWindow) будет потрачено два процесса (два процесса на одну вкладку).

Если я вместо webview буду рендерить вкладку сразу в BrowserWindow, исчезнет возможность отрисовывать контролы окна.

Собственно есть два вопроса, если отталкиваться от этого примера:

1. Возможно ли переносить webvew между разными BrowserWindow?

2. Есть ли возможность рендерить webview в том же процессе BrowserWindow?

Забегая наперед, об очевидностях. Да я думал эмулировать webview средствами iframe (чтобы DOM контекст был отдельный а рендеринг с окном общий), но там будет костыль на костыле, для обхода различных политик, эмуляции top frame и прочее (в общем всего, что делает webview по умолчанию, но он делает это всегда в отдельном процессе)

Собственно вот. Будет замечательно, если тут найдется кто-то кто работает с этой платформой довольно плотно. Браузер я привел лишь как пример, интересует именно эта каша с процессами.

(алсо, если тут кто-то работает с nwjs, у которого кстати на днях вышла новая версия, с множеством изменений, то может подскажет об этом с точки зрения nwjs. я когда-то работал с ним, но он очень медленно развивается, а нестабильные ночные сборки у него жутко нестабильные.)

Заранее спасибо.

на ЛОРе почему-то отсутствует тег nwjs



Последнее исправление: int64 (всего исправлений: 1)

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.