[WebKit-devel] playground/libs/webkitkde/kdewebkit

Michael Howell mhowell123 at gmail.com
Sat Dec 20 20:04:56 CET 2008


On Saturday 20 December 2008 11:22:52 am Urs Wolfer wrote:
> SVN commit 899421 by uwolfer:
>
> Plugins seem to work now (at least with Qt 4.5 snapshots tested).
> Flash, using KDEs nsplugins, works on most pages basically! :)
>
> Now also other KParts should be embedable, though I have not tested yet.
> CCMAIL:webkit-devel at kde.org
>
>  M  +29 -7     kwebpluginfactory.cpp
>
>
> --- trunk/playground/libs/webkitkde/kdewebkit/kwebpluginfactory.cpp
> #899420:899421 @@ -2,6 +2,7 @@
>   * This file is part of the KDE project.
>   *
>   * Copyright (C) 2008 Michael Howell <mhowell123 at gmail.com>
> + * Copyright (C) 2008 Urs Wolfer <uwolfer @ kde.org>
>   *
>   * This library is free software; you can redistribute it and/or
>   * modify it under the terms of the GNU Library General Public
> @@ -21,6 +22,7 @@
>   */
>
>  #include "kwebpluginfactory.h"
> +#include "kwebpage.h"
>
>  #include <QWebPluginFactory>
>  #include <QStringList>
> @@ -51,17 +53,37 @@
>
>  QObject* KWebPluginFactory::create(const QString& mimeType, const QUrl&
> url, const QStringList& argumentNames, const QStringList& argumentValues)
> const {
> -    Q_UNUSED(argumentNames);
> -    Q_UNUSED(argumentValues);
> -    QWidget* w = new QWidget;
> -    KParts::ReadOnlyPart* part =
> KMimeTypeTrader::createPartInstanceFromQuery<KParts::ReadOnlyPart>(mimeType
>, w, w); +    QVariantList arguments;
> +    int i = 0;
> +    Q_FOREACH(const QString &key, argumentNames) {
> +        arguments << key + "=\"" + argumentValues.at(i) + '\"';
> +        ++i;
> +    }
> +//     arguments << "__KHTML__PLUGINEMBED=\"YES\""; //### following
> arguments are also set by khtml +//     arguments <<
> "__KHTML__PLUGINBASEURL=\"" + url.scheme() + "://" + url.host() + "/\"";
> +//     arguments << "Browser/View";
> +
> +    KParts::ReadOnlyPart* part =
> KMimeTypeTrader::createPartInstanceFromQuery<KParts::ReadOnlyPart>(mimeType
>, qobject_cast<KWebPage*>(parent())->view(), parent(), QString(),
> arguments); if (part) {
> +        QMap<QString, QString> metaData = part->arguments().metaData();
> +        metaData.insert("PropagateHttpHeader", "true");
> +        metaData.insert("cross-domain", url.scheme() + "://" + url.host()
> + "/"); +        metaData.insert("main_frame_request", "TRUE");
> +//         metaData.insert("referrer", url.scheme() + "://" + url.host() +
> "/"); //### following metadata is also set by khtml +//        
> metaData.insert("ssl_activate_warnings", "TRUE");
> +//         metaData.insert("ssl_parent_cert", "");
> +//         metaData.insert("ssl_parent_ip", "");
> +//         metaData.insert("ssl_was_in_use", "FALSE");
> +
> +        KParts::OpenUrlArguments openUrlArgs = part->arguments();
> +        openUrlArgs.metaData() = metaData;
> +        openUrlArgs.setMimeType(mimeType);
> +        part->setArguments(openUrlArgs);
> +        kDebug()<< part->arguments().metaData();
>          part->openUrl(url);
> -        if (part->widget() != w)
> -            part->widget()->setParent(w);
>      }
>      kDebug() << "Asked for plugin, got" << part;
> -    return w;
> +    return part->widget();
>  }
>
>  QList<KWebPluginFactory::Plugin> KWebPluginFactory::plugins() const
> _______________________________________________
> WebKit-devel mailing list
> WebKit-devel at kde.org
> https://mail.kde.org/mailman/listinfo/webkit-devel
I'm afraid it doesn't work with Qt4.4. Too bad...

-- 
Michael Howell
mhowell123 at gmail.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/webkit-devel/attachments/20081220/ce16caf0/attachment.sig 


More information about the WebKit-devel mailing list