LINUX.ORG.RU

Konqueror+Webkit=Crash


0

0

Причем браузер падает на любом сайте, в том числе и в главной ЛОРа. KHTML работает нормально.

Arch Linux c testing, konqueror 4.5, kwebkitpart-git (20100817) c AUR (версия с реп ведёт себя так же).

В момент падежа в консоль выплевываются вот такие сообщения:

(process:6060): GLib-GObject-CRITICAL **: gtype.c:2706: You forgot to call g_type_init()

(process:6060): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed

(process:6060): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed
KCrash: Application 'konqueror' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
sock_file=/home/anx/.kde4/socket-angelo/kdeinit4__0

reKonq 0.5.54 (git c AUR) ведёт себя так же. Похоже, дело в самом движке. Что посоветуете делать?

> Что посоветуете делать?

Сообщить об ошибке разработчикам.

reader
()

This patch fixes WebKit Bug 40567: [Qt] QtWebKit crashes while initializing
flash plugin 10.1.53.64...
https://bugs.webkit.org/show_bug.cgi?id=40567

--- src/3rdparty/webkit/WebCore/plugins/qt/PluginPackageQt.cpp
+++ src/3rdparty/webkit/WebCore/plugins/qt/PluginPackageQt.cpp
@@ -35,4 +35,6 @@

namespace WebCore {
+
+typedef void gtkInitFunc(int *argc, char ***argv);

bool PluginPackage::fetchInfo()
@@ -110,4 +112,5 @@
NP_InitializeFuncPtr NP_Initialize;
NPError npErr;
+ gtkInitFunc* gtkInit;

NP_Initialize = (NP_InitializeFuncPtr)m_module->resolve(«NP_Initialize»);
@@ -126,4 +129,24 @@
// It does so in NP_Initialize with a null instance, therefore it is done this way:
m_browserFuncs.getvalue = staticPluginQuirkRequiresGtkToolKit_NPN_GetValue;
+ }
+
+ // WORKAROUND: Prevent gtk based plugin crashes such as BR# 40567 by
+ // explicitly forcing the initializing of Gtk, i.e. calling gtk_init,
+ // whenver the symbol is present in the plugin library loaded above.
+ // Note that this workaround is based on code from the NSPluginClass ctor
+ // in KDE's kdebase/apps/nsplugins/viewer/nsplugin.cpp file.
+ gtkInit = (gtkInitFunc*)m_module->resolve(«gtk_init»);
+ if (gtkInit) {
+ // Prevent gtk_init() from replacing the X error handlers, since the Gtk
+ // handlers abort when they receive an X error, thus killing the viewer.
+#ifdef Q_WS_X11
+ int (*old_error_handler)(Display*, XErrorEvent*) = XSetErrorHandler(0);
+ int (*old_io_error_handler)(Display*) = XSetIOErrorHandler(0);
+#endif
+ gtkInit(0, 0);
+#ifdef Q_WS_X11
+ XSetErrorHandler(old_error_handler);
+ XSetIOErrorHandler(old_io_error_handler);
+#endif
}

ivanich ★★
()

У вас 3 варианта:
1. Собрать webkit-qt из AUR и пропатчить его.
2.Смиренно ждать пока мэинтейнеры арча соизволят собрать пакет с этим патчем.
3.Ждать qt-4.7.

ivanich ★★
()

kwebkitpart-git (20100817) c AUR (версия с реп ведёт себя так же).

У меня всё работает.

% pacman -Qi kwebkitpart    
Название              : kwebkitpart
Версия                : svn1143604-1
URL                   : http://techbase.kde.org/Projects/WebKit
Лицензии              : GPL
Группы                : Нет
Предоставляет         : Нет
Зависит от            : kdebase-runtime
Дополнительно         : Нет
Требуется пакетами    : Нет
Конфликтует с         : Нет
Заменяет              : Нет
Размер установленного : 440,00 K
Сборщик               : Andrea Scarpino <andrea@archlinux.org>
Архитектура           : i686
Дата сборки           : Пнд 28 Июн 2010 14:24:05
Дата установки        : Чтв 19 Авг 2010 10:50:24
Причина установки     : Явно установлен
Установочный скрипт   : Yes
Описание              : A web browser component for KDE
AX ★★★★★
()
Ответ на: комментарий от Komintern

Не в этом дело. Просто QtWebkit падает уже от его наличия в системе. Стоит просто удалить его или поставить девятую версию и всё работает.

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