Как разделить экземпляр класса Singleton между двумя окнами - PullRequest
0 голосов
/ 24 июня 2018

Я работаю с небольшим электронным приложением и хочу задать один маленький вопрос.

Мне нужно разделить экземпляр класса singleton между двумя окнами моего приложения. «Поделиться» означает экземпляр, в котором каждый класс одинаков, а переменные экземпляра одинаковы.

Я использовал параметр affinity в конструкторе BrowserWindow () для запуска двух окон в одном и том же процессе визуализации. Я полагаю, если два окна работают в одном и том же процессе, два окна совместно используют экземпляр. Но на самом деле экземпляр и значения экземпляра различны.

Это правильное поведение?
1. Если да, не могли бы вы сказать мне другой способ поделиться экземпляром между двумя окнами?
2. Если нет, это ошибка? Или мне нужно установить другой параметр?

1 Ответ

0 голосов
/ 24 июня 2018
Опция

affinity предоставляет управление модели процессов Chromimum (https://github.com/electron/electron/issues/11484 / https://www.chromium.org/developers/design-documents/process-models), и ни одна из моделей процессов Chromium не позволяет совместно использовать контекст размещенной страницы между ними. Запуск двух сайтов в одном процессе не обязательно означает дваХост-сайты делятся контекстом, особенно это обнажает проблемы безопасности.

Для синглтона в электронике такого не существует, по крайней мере, из коробки, поддерживаемой способом через поверхность API, поддерживаемую электроном.через ipc это почти единственный путь.

...