Changeset 22027 in webkit


Ignore:
Timestamp:
Jun 6, 2007 7:47:42 AM (17 years ago)
Author:
lars
Message:

Reviewed by Zack

Add an API to create and load plugins.
Don't include moc files by hand anymore, rather let
qmake handle them.

Location:
trunk
Files:
3 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r22024 r22027  
     12007-06-06  Lars Knoll <lars@trolltech.com>
     2
     3        Reviewed by Zack
     4
     5        Add an API to create and load plugins.
     6        Don't include moc files by hand anymore, rather let
     7        qmake handle them.
     8
     9        * WebCore.pro:
     10        * platform/qt/MimeTypeRegistryQt.cpp:
     11        (WebCore::):
     12        (WebCore::MimeTypeRegistry::getMIMETypeForExtension):
     13        * platform/qt/QWebPopup.cpp:
     14        * platform/qt/SharedTimerQt.cpp:
     15
    1162007-06-06  Mark Rowe  <mrowe@apple.com>
    217
  • trunk/WebCore/WebCore.pro

    r21938 r22027  
    6060    LIBS += -lxml2 -lxslt
    6161}
     62
    6263qt-port {
    6364INCLUDEPATH += \
     
    134135
    135136STYLESHEETS_EMBED = $$PWD/css/html4.css
    136 
    137 MANUALMOC =
    138 qt-port:MANUALMOC += \
    139     $$PWD/platform/qt/QWebPopup.h \
    140     $$PWD/platform/qt/SharedTimerQt.h \
    141     $$PWD/../WebKitQt/Api/qwebframe.h \
    142     $$PWD/../WebKitQt/Api/qwebpage.h \
    143     $$PWD/../WebKitQt/Api/qwebnetworkinterface.h \
    144     $$PWD/../WebKitQt/Api/qwebnetworkinterface_p.h \
    145     $$PWD/../WebKitQt/Api/qcookiejar.h \
    146     $$PWD/../WebKitQt/WebCoreSupport/FrameLoaderClientQt.h
    147137
    148138LUT_FILES += \
     
    715705    xml/XSLTProcessor.cpp
    716706
     707qt-port:HEADERS += \
     708    $$PWD/platform/qt/QWebPopup.h \
     709    $$PWD/platform/qt/SharedTimerQt.h \
     710    $$PWD/../WebKitQt/Api/qwebframe.h \
     711    $$PWD/../WebKitQt/Api/qwebpage.h \
     712    $$PWD/../WebKitQt/Api/qwebnetworkinterface.h \
     713    $$PWD/../WebKitQt/Api/qwebnetworkinterface_p.h \
     714    $$PWD/../WebKitQt/Api/qwebobjectplugin.h \
     715    $$PWD/../WebKitQt/Api/qwebobjectplugin_p.h \
     716    $$PWD/../WebKitQt/Api/qcookiejar.h \
     717    $$PWD/../WebKitQt/WebCoreSupport/FrameLoaderClientQt.h
     718
    717719qt-port:SOURCES += \
    718720    page/qt/DragControllerQt.cpp \
     
    782784    ../WebKitQt/Api/qwebpage.cpp \
    783785    ../WebKitQt/Api/qwebpagehistory.cpp \
    784     ../WebKitQt/Api/qwebsettings.cpp
     786    ../WebKitQt/Api/qwebsettings.cpp \
     787    ../WebKitQt/Api/qwebobjectplugin.cpp
    785788
    786789gdk-port:SOURCES += \
     
    13891392QMAKE_EXTRA_COMPILERS += stylesheets
    13901393
    1391 # GENERATOR M
    1392 manual_moc.output = tmp/${QMAKE_FILE_BASE}.moc
    1393 manual_moc.commands = $$QMAKE_MOC ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_OUT}
    1394 manual_moc.input = MANUALMOC
    1395 manual_moc.CONFIG += target_predeps no_link
    1396 QMAKE_EXTRA_COMPILERS += manual_moc
    1397 
    13981394# GENERATOR 10: XPATH grammar
    13991395xpathbison.output = tmp/${QMAKE_FILE_BASE}.cpp
  • trunk/WebCore/platform/qt/MimeTypeRegistryQt.cpp

    r21827 r22027  
    3030#include "NotImplemented.h"
    3131
    32 namespace WebCore
     32#include "qwebobjectplugin_p.h"
     33
     34namespace WebCore
    3335{
    3436
     
    4143    { "gif", "image/gif" },
    4244    { "html", "text/html" },
    43     { "ico", "image/x-icon" },   
     45    { "ico", "image/x-icon" },
    4446    { "jpeg", "image/jpeg" },
    4547    { "jpg", "image/jpeg" },
     
    6466    { 0, 0 }
    6567};
    66    
     68
    6769String MimeTypeRegistry::getMIMETypeForExtension(const String &ext)
    6870{
    6971    String s = ext.lower();
     72
    7073    const ExtensionMap *e = extensionMap;
    7174    while (e->extension) {
     
    7477        ++e;
    7578    }
    76     // unknown, let's just assume plain text
    77     return "text/plain";
     79    QString type = QWebFactoryLoader::self()->mimeTypeForExtension(ext);
     80    if (!type.isEmpty())
     81        return type;
     82
     83    return "application/octet-stream";
    7884}
    7985
  • trunk/WebCore/platform/qt/QWebPopup.cpp

    r19772 r22027  
    2323#include <QCoreApplication>
    2424#include <QMouseEvent>
    25 
    26 #include "QWebPopup.moc"
    2725
    2826namespace WebCore {
  • trunk/WebCore/platform/qt/SharedTimerQt.cpp

    r21516 r22027  
    5151}
    5252
    53 #include "SharedTimerQt.moc"
    54 
    5553// vim: ts=4 sw=4 et
  • trunk/WebKitQt/Api/qcookiejar.cpp

    r19347 r22027  
    104104    return gJar;
    105105}
    106 
    107 
    108 #include "qcookiejar.moc"
  • trunk/WebKitQt/Api/qwebframe.cpp

    r21515 r22027  
    323323    viewport()->scroll(dx, dy);
    324324}
    325 
    326 #include "qwebframe.moc"
  • trunk/WebKitQt/Api/qwebnetworkinterface.cpp

    r21754 r22027  
    794794}
    795795
    796 #include "qwebnetworkinterface_p.moc"
    797 #include "qwebnetworkinterface.moc"
    798 
  • trunk/WebKitQt/Api/qwebpage.cpp

    r21836 r22027  
    358358    return settings;
    359359}
    360 
    361 
    362 #include "qwebpage.moc"
  • trunk/WebKitQt/ChangeLog

    r21836 r22027  
     12007-06-06  Lars Knoll <lars@trolltech.com>
     2
     3        Reviewed by Zack
     4
     5        Add an API to create and load plugins.
     6        Don't include moc files by hand anymore, rather let
     7        qmake handle them.
     8
     9        * Api/qcookiejar.cpp:
     10        (QCookieJar::cookieJar):
     11        * Api/qwebframe.cpp:
     12        (QWebFrame::scrollContentsBy):
     13        * Api/qwebnetworkinterface.cpp:
     14        * Api/qwebobjectplugin.cpp: Added.
     15        (QWebFactoryLoader::QWebFactoryLoader):
     16        (QWebFactoryLoader::self):
     17        (QWebFactoryLoader::mimeTypeForExtension):
     18        (QWebFactoryLoader::create):
     19        (QWebObjectPlugin::QWebObjectPlugin):
     20        (QWebObjectPlugin::~QWebObjectPlugin):
     21        (QWebObjectPlugin::extensionsForMimetype):
     22        * Api/qwebobjectplugin.h: Added.
     23        * Api/qwebobjectplugin_p.h: Added.
     24        (QWebFactoryLoader::mimeTypes):
     25        (QWebFactoryLoader::extensions):
     26        (QWebFactoryLoader::supportsMimeType):
     27        * Api/qwebpage.cpp:
     28        (QWebPage::settings):
     29        * WebCoreSupport/FrameLoaderClientQt.cpp:
     30        (WebCore::FrameLoaderClientQt::dispatchDidHandleOnloadEvents):
     31        (WebCore::FrameLoaderClientQt::postProgressEstimateChangedNotification):
     32        (WebCore::FrameLoaderClientQt::objectContentType):
     33        (WebCore::FrameLoaderClientQt::createPlugin):
     34
    1352007-05-28  Zack Rusin  <zrusin@trolltech.com>
    236
  • trunk/WebKitQt/WebCoreSupport/FrameLoaderClientQt.cpp

    r21827 r22027  
    4545#include "qwebframe.h"
    4646#include "qwebframe_p.h"
     47#include "qwebobjectplugin_p.h"
    4748
    4849#include <qfileinfo.h>
     
    289290void FrameLoaderClientQt::dispatchDidHandleOnloadEvents()
    290291{
    291    
     292    // don't need this one
    292293}
    293294
     
    425426{
    426427    if (m_webFrame && m_frame->page())
    427         emit loadProgressChanged(m_frame->page()->progress()->estimatedProgress() * 100);
     428        emit loadProgressChanged(qRound(m_frame->page()->progress()->estimatedProgress() * 100));
    428429}
    429430
     
    503504    return false;
    504505}
    505 
    506506
    507507bool FrameLoaderClientQt::representationExistsForURLScheme(const String& URLScheme) const
     
    864864}
    865865
    866 ObjectContentType FrameLoaderClientQt::objectContentType(const KURL& url, const String& mimeType)
    867 {
     866ObjectContentType FrameLoaderClientQt::objectContentType(const KURL& url, const String& _mimeType)
     867{
     868    //qDebug()<<" ++++++++++++++++ url is "<<url.prettyURL()<<", mime = "<<mimeType;
    868869    if (!url.isValid())
    869         return ObjectContentType();
     870        return ObjectContentNone;
     871
     872    String mimeType = _mimeType;
     873    if (!mimeType.length()) {
     874        QFileInfo fi(url.path());
     875        mimeType = MimeTypeRegistry::getMIMETypeForExtension(fi.suffix());
     876    }
     877
     878    if (!mimeType.length())
     879        return ObjectContentFrame;
     880
     881    if (MimeTypeRegistry::isSupportedImageMIMEType(mimeType))
     882        return ObjectContentImage;
     883
     884    if (QWebFactoryLoader::self()->supportsMimeType(mimeType))
     885        return ObjectContentPlugin;
     886
     887    if (MimeTypeRegistry::isSupportedNonImageMIMEType(mimeType))
     888        return ObjectContentFrame;
    870889   
    871     //This is not really correct. it works because getMIMETypeForExtension
    872     //  currently returns only the mimetypes that frames can handle
    873     QFileInfo fi(url.path());
    874     String rtype = MimeTypeRegistry::getMIMETypeForExtension(fi.suffix());
    875     if (!rtype.isEmpty())
    876         return ObjectContentFrame;
    877     return ObjectContentType();
    878 }
    879 
    880 Widget* FrameLoaderClientQt::createPlugin(Element*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool)
    881 {
    882     notImplemented();
     890    return ObjectContentNone;
     891}
     892
     893Widget* FrameLoaderClientQt::createPlugin(Element* element, const KURL& url, const Vector<String>& paramNames,
     894                                          const Vector<String>& paramValues, const String& mimeType, bool loadManually)
     895{
     896    //qDebug()<<"------ Creating plugin in FrameLoaderClientQt::createPlugin for "<<mimeType;
     897    //qDebug()<<"------\t url = "<<url.prettyURL();
     898    QStringList params;
     899    QStringList values;
     900    for (int i = 0; i < paramNames.size(); ++i)
     901        params.append(paramNames[i]);
     902    for (int i = 0; i < paramValues.size(); ++i)
     903        values.append(paramValues[i]);
     904   
     905    QObject *object = QWebFactoryLoader::self()->create(m_webFrame->viewport(), mimeType, params, values);
     906    if (object) {
     907        QWidget *widget = qobject_cast<QWidget *>(object);
     908        if (widget) {
     909            Widget* w= new Widget();
     910            w->setQWidget(widget);
     911            return w;
     912        }
     913        // FIXME: make things work for widgetless plugins as well
     914        delete object;
     915    }
     916
    883917    return 0;
    884918}
     
    904938
    905939}
    906 
    907 #include "FrameLoaderClientQt.moc"
Note: See TracChangeset for help on using the changeset viewer.