Как создать многопроцессное приложение webkitgtk (Vala)? - PullRequest
1 голос
/ 12 июля 2010

Я хочу сделать веб-браузер в Vala, используя webkit.

Но я не знаю, как сделать это многопроцессорным.

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

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

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

Ответы [ 2 ]

2 голосов
/ 12 июля 2010

Выезд 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, но он более сложный и менее документированный.

0 голосов
/ 12 июля 2010

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

...