Как создать мультипроцесс webkitgtk приложение (Vala)?

Я хочу сделать веб-браузер в Vala с помощью WebKit.

Но, я не знаю, как заставить его мультиобработать.

Я хочу, чтобы каждая вкладка имела свой собственный процесс.

Как я могу сделать то использование Vala и Gtk +.

Спасибо за Ваш ответ.

1
задан antoyo 12 July 2010 в 01:11
поделиться

2 ответа

Посмотрите Gtk.Plug и Gtk.Socket. Вам нужно будет поместить Gtk.Socket в каждую открытую вкладку. Затем породите процесс, используя одну из функций GLib.Process , и в этом процессе создайте Gtk.Plug, содержащий ваш WebView. Затем вам понадобится какой-то способ межпроцессного взаимодействия, например, для подключения вашего плагина к сокету и для передачи команд от вашего пользовательского интерфейса к веб-вью (например, "сделать шрифт крупнее").

Похоже, что документация Vala содержит не очень много объяснений, вы можете посмотреть документацию по C для получения дополнительной информации о том, как работают штекеры и сокеты.

EDIT:

Вы просили больше информации о межпроцессном взаимодействии. Есть несколько способов, и я не уверен, какой из них наиболее подходящий для вас. Возможно, вы можете попробовать GLib.Process.spawn_async_with_pipes() для запуска дочернего процесса и получения дескрипторов файлов для стандартного ввода и вывода дочернего процесса. Затем вы можете передать эти дескрипторы файлов в GLib.IOChannel.unix_new() для передачи сообщений туда и обратно между вашими процессами.

Другой способ - использовать DBus, но это сложнее и менее документировано.

2
ответ дан 2 September 2019 в 23:08
поделиться

Возможно, вы захотите использовать GtkPlug см. это обсуждение в Vala-listgtk forum).

0
ответ дан 2 September 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: