Привет. Решил создать здесь, несмотря на то, что это относится к десктопу. Буду надеяться, среди пользователей ЛОРа есть спец по подобным платформам.
Собственно вопрос о мультипроцессорной архитектуре 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