From kde-commits Wed Oct 24 15:12:35 2007 From: David Faure Date: Wed, 24 Oct 2007 15:12:35 +0000 To: kde-commits Subject: KDE/kdelibs/khtml Message-Id: <1193238755.789869.5098.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=119323876409086 SVN commit 728886 by dfaure: Use generated dbus interface instead of dynamic call (which is fragile, type-wise, as a recent commit showed) M +4 -0 CMakeLists.txt M +7 -18 html/html_documentimpl.cpp A html/kcookiejar_include.h [License: no copyright] --- trunk/KDE/kdelibs/khtml/CMakeLists.txt #728885:728886 @@ -276,6 +276,10 @@ qt4_add_dbus_adaptor(khtml_LIB_SRCS org.kde.KHTMLPart.xml khtml_iface.h KHTMLPartIface) +set(kcookiejar_XML ${CMAKE_CURRENT_SOURCE_DIR}/../kioslave/http/kcookiejar/org.kde.KCookieServer.xml) +set_source_files_properties(${kcookiejar_XML} PROPERTIES INCLUDE "html/kcookiejar_include.h") +qt4_add_dbus_interface(khtml_LIB_SRCS ${kcookiejar_XML} kcookiejar_interface) + kde4_add_ui_files(khtml_LIB_SRCS kjserrordlgbase.ui htmlpageinfo.ui ) kde4_add_library(khtml SHARED ${khtml_LIB_SRCS}) --- trunk/KDE/kdelibs/khtml/html/html_documentimpl.cpp #728885:728886 @@ -51,6 +51,7 @@ #include #include #include +#include #include "css/cssproperties.h" #include "css/cssstyleselector.h" @@ -114,10 +115,8 @@ if ( v && v->topLevelWidget() ) windowId = v->topLevelWidget()->winId(); - QDBusInterface kcookiejar("org.kde.kded", "/modules/kcookiejar", - "org.kde.KCookieServer"); - QDBusReply reply = kcookiejar.call("findDOMCookies", - URL().url(), qlonglong(windowId)); + org::kde::KCookieServer kcookiejar("org.kde.kded", "/modules/kcookiejar", QDBusConnection::sessionBus()); + QDBusReply reply = kcookiejar.findDOMCookies(URL().url(), qlonglong(windowId)); if ( !reply.isValid() ) { @@ -139,21 +138,11 @@ QByteArray fake_header("Set-Cookie: "); fake_header.append(value.string().toLatin1().constData()); fake_header.append("\n"); - QDBusInterface *kcookiejar = new QDBusInterface("org.kde.kded", "/modules/kcookiejar", - "org.kde.KCookieServer"); - if (!kcookiejar->isValid()) - { - // Maybe it wasn't running (e.g. we're opening local html files) - QDBusInterface("org.kde.kded", "/kded", "org.kde.kded").call("loadModule", QByteArray("kcookiejar")); - delete kcookiejar; - kcookiejar = new QDBusInterface("org.kde.kded", "/modules/kcookiejar", - "org.kde.KCookieServer"); - } - - kcookiejar->call(QDBus::NoBlock, "addCookies", + // Note that kded modules are autoloaded so we don't need to call loadModule ourselves. + org::kde::KCookieServer kcookiejar("org.kde.kded", "/modules/kcookiejar", QDBusConnection::sessionBus()); + // Can't use kcookiejar.addCookies because then we can't pass NoBlock... + kcookiejar.call(QDBus::NoBlock, "addCookies", URL().url(), fake_header, qlonglong(windowId)); - - delete kcookiejar; }