diff options
Diffstat (limited to 'WebKit/qt')
89 files changed, 4130 insertions, 1015 deletions
diff --git a/WebKit/qt/Api/qgraphicswebview.cpp b/WebKit/qt/Api/qgraphicswebview.cpp index b25b53b..8d4f3ba 100644 --- a/WebKit/qt/Api/qgraphicswebview.cpp +++ b/WebKit/qt/Api/qgraphicswebview.cpp @@ -22,24 +22,71 @@ #include "qgraphicswebview.h" #include "qwebframe.h" +#include "qwebframe_p.h" #include "qwebpage.h" #include "qwebpage_p.h" #include "QWebPageClient.h" -#include <QtGui/QGraphicsScene> -#include <QtGui/QGraphicsView> +#include <FrameView.h> +#include <QtCore/qsharedpointer.h> +#include <QtCore/qtimer.h> #include <QtGui/qapplication.h> +#include <QtGui/qgraphicsscene.h> #include <QtGui/qgraphicssceneevent.h> +#include <QtGui/qgraphicsview.h> +#include <QtGui/qpixmapcache.h> #include <QtGui/qstyleoption.h> #if defined(Q_WS_X11) #include <QX11Info> #endif +#include <Settings.h> + +#if USE(ACCELERATED_COMPOSITING) + +// the overlay is here for one reason only: to have the scroll-bars and other +// extra UI elements appear on top of any QGraphicsItems created by CSS compositing layers +class QGraphicsWebViewOverlay : public QGraphicsItem { + public: + QGraphicsWebViewOverlay(QGraphicsWebView* view) + :QGraphicsItem(view) + , q(view) + { + setPos(0, 0); + setFlag(QGraphicsItem::ItemUsesExtendedStyleOption, true); + setCacheMode(QGraphicsItem::DeviceCoordinateCache); + } + + QRectF boundingRect() const + { + return q->boundingRect(); + } + + void paint(QPainter* painter, const QStyleOptionGraphicsItem* options, QWidget*) + { + q->page()->mainFrame()->render(painter, static_cast<QWebFrame::RenderLayer>(QWebFrame::AllLayers&(~QWebFrame::ContentsLayer)), options->exposedRect.toRect()); + } + + friend class QGraphicsWebView; + QGraphicsWebView* q; +}; + +#endif class QGraphicsWebViewPrivate : public QWebPageClient { public: QGraphicsWebViewPrivate(QGraphicsWebView* parent) : q(parent) , page(0) - {} +#if USE(ACCELERATED_COMPOSITING) + , rootGraphicsLayer(0) + , shouldSync(true) +#endif + { +#if USE(ACCELERATED_COMPOSITING) + // the overlay and stays alive for the lifetime of + // this QGraphicsWebView as the scrollbars are needed when there's no compositing + q->setFlag(QGraphicsItem::ItemUsesExtendedStyleOption); +#endif + } virtual ~QGraphicsWebViewPrivate(); virtual void scroll(int dx, int dy, const QRect&); @@ -61,14 +108,97 @@ public: virtual QObject* pluginParent() const; + virtual QStyle* style() const; + +#if USE(ACCELERATED_COMPOSITING) + virtual void setRootGraphicsLayer(QGraphicsItem* layer); + virtual void markForSync(bool scheduleSync); + void updateCompositingScrollPosition(); +#endif + + void syncLayers(); void _q_doLoadFinished(bool success); QGraphicsWebView* q; QWebPage* page; +#if USE(ACCELERATED_COMPOSITING) + QGraphicsItem* rootGraphicsLayer; + + // the overlay gets instantiated when the root layer is attached, and get deleted when it's detached + QSharedPointer<QGraphicsWebViewOverlay> overlay; + + // we need to sync the layers if we get a special call from the WebCore + // compositor telling us to do so. We'll get that call from ChromeClientQt + bool shouldSync; + + // we need to put the root graphics layer behind the overlay (which contains the scrollbar) + enum { RootGraphicsLayerZValue, OverlayZValue }; +#endif }; QGraphicsWebViewPrivate::~QGraphicsWebViewPrivate() { +#if USE(ACCELERATED_COMPOSITING) + if (rootGraphicsLayer) { + // we don't need to delete the root graphics layer + // The lifecycle is managed in GraphicsLayerQt.cpp + rootGraphicsLayer->setParentItem(0); + q->scene()->removeItem(rootGraphicsLayer); + } +#endif +} + +#if USE(ACCELERATED_COMPOSITING) +void QGraphicsWebViewPrivate::setRootGraphicsLayer(QGraphicsItem* layer) +{ + if (rootGraphicsLayer) { + rootGraphicsLayer->setParentItem(0); + q->scene()->removeItem(rootGraphicsLayer); + QWebFramePrivate::core(q->page()->mainFrame())->view()->syncCompositingStateRecursive(); + } + + rootGraphicsLayer = layer; + + if (layer) { + layer->setFlag(QGraphicsItem::ItemClipsChildrenToShape, true); + layer->setParentItem(q); + layer->setZValue(RootGraphicsLayerZValue); + if (!overlay) { + overlay = QSharedPointer<QGraphicsWebViewOverlay>(new QGraphicsWebViewOverlay(q)); + overlay->setZValue(OverlayZValue); + } + updateCompositingScrollPosition(); + } else { + // we don't have compositing layers, we can render the scrollbars and content in one go + overlay.clear(); + } +} + +void QGraphicsWebViewPrivate::markForSync(bool scheduleSync) +{ + shouldSync = true; + if (scheduleSync) + QTimer::singleShot(0, q, SLOT(syncLayers())); +} + +void QGraphicsWebViewPrivate::updateCompositingScrollPosition() +{ + if (rootGraphicsLayer && q->page() && q->page()->mainFrame()) { + const QPoint scrollPosition = q->page()->mainFrame()->scrollPosition(); + rootGraphicsLayer->setPos(-scrollPosition); + } +} + +#endif + +void QGraphicsWebViewPrivate::syncLayers() +{ +#if USE(ACCELERATED_COMPOSITING) + if (shouldSync) { + QWebFramePrivate::core(q->page()->mainFrame())->view()->syncCompositingStateRecursive(); + shouldSync = false; + } +#endif } void QGraphicsWebViewPrivate::_q_doLoadFinished(bool success) @@ -83,11 +213,18 @@ void QGraphicsWebViewPrivate::_q_doLoadFinished(bool success) void QGraphicsWebViewPrivate::scroll(int dx, int dy, const QRect& rectToScroll) { q->scroll(qreal(dx), qreal(dy), QRectF(rectToScroll)); +#if USE(ACCELERATED_COMPOSITING) + updateCompositingScrollPosition(); +#endif } void QGraphicsWebViewPrivate::update(const QRect & dirtyRect) { q->update(QRectF(dirtyRect)); +#if USE(ACCELERATED_COMPOSITING) + if (overlay) + overlay->update(QRectF(dirtyRect)); +#endif } @@ -156,6 +293,11 @@ QObject* QGraphicsWebViewPrivate::pluginParent() const return q; } +QStyle* QGraphicsWebViewPrivate::style() const +{ + return q->style(); +} + /*! \class QGraphicsWebView \brief The QGraphicsWebView class allows Web content to be added to a GraphicsView. @@ -244,7 +386,11 @@ QGraphicsWebView::QGraphicsWebView(QGraphicsItem* parent) #endif setAcceptDrops(true); setAcceptHoverEvents(true); +#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) + setAcceptTouchEvents(true); +#endif setFocusPolicy(Qt::StrongFocus); + setFlag(QGraphicsItem::ItemClipsChildrenToShape, true); } /*! @@ -294,7 +440,12 @@ QWebPage* QGraphicsWebView::page() const */ void QGraphicsWebView::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget*) { - page()->mainFrame()->render(painter, option->exposedRect.toRect()); +#if USE(ACCELERATED_COMPOSITING) + page()->mainFrame()->render(painter, d->overlay ? QWebFrame::ContentsLayer : QWebFrame::AllLayers, option->exposedRect.toAlignedRect()); + d->syncLayers(); +#else + page()->mainFrame()->render(painter, QWebFrame::AllLayers, option->exposedRect.toRect()); +#endif } /*! \reimp @@ -302,6 +453,17 @@ void QGraphicsWebView::paint(QPainter* painter, const QStyleOptionGraphicsItem* bool QGraphicsWebView::sceneEvent(QEvent* event) { // Re-implemented in order to allows fixing event-related bugs in patch releases. + +#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) + if (d->page && (event->type() == QEvent::TouchBegin + || event->type() == QEvent::TouchEnd + || event->type() == QEvent::TouchUpdate)) { + d->page->event(event); + if (event->isAccepted()) + return true; + } +#endif + return QGraphicsWidget::sceneEvent(event); } @@ -411,6 +573,10 @@ void QGraphicsWebView::setPage(QWebPage* page) d->page = page; if (!d->page) return; +#if USE(ACCELERATED_COMPOSITING) + if (d->overlay) + d->overlay->prepareGeometryChange(); +#endif d->page->d->client = d; // set the page client QSize size = geometry().size().toSize(); @@ -494,7 +660,6 @@ QIcon QGraphicsWebView::icon() const /*! \property QGraphicsWebView::zoomFactor - \since 4.5 \brief the zoom factor for the view */ @@ -515,6 +680,12 @@ qreal QGraphicsWebView::zoomFactor() const */ void QGraphicsWebView::updateGeometry() { + +#if USE(ACCELERATED_COMPOSITING) + if (d->overlay) + d->overlay->prepareGeometryChange(); +#endif + QGraphicsWidget::updateGeometry(); if (!d->page) @@ -530,6 +701,11 @@ void QGraphicsWebView::setGeometry(const QRectF& rect) { QGraphicsWidget::setGeometry(rect); +#if USE(ACCELERATED_COMPOSITING) + if (d->overlay) + d->overlay->prepareGeometryChange(); +#endif + if (!d->page) return; diff --git a/WebKit/qt/Api/qgraphicswebview.h b/WebKit/qt/Api/qgraphicswebview.h index f3afb4c..3cf51b2 100644 --- a/WebKit/qt/Api/qgraphicswebview.h +++ b/WebKit/qt/Api/qgraphicswebview.h @@ -134,6 +134,9 @@ protected: private: Q_PRIVATE_SLOT(d, void _q_doLoadFinished(bool success)) + // we don't want to change the moc based on USE() macro, so this function is here + // but will be empty if ACCLERATED_COMPOSITING is disabled + Q_PRIVATE_SLOT(d, void syncLayers()) QGraphicsWebViewPrivate* const d; friend class QGraphicsWebViewPrivate; diff --git a/WebKit/qt/Api/qwebframe.cpp b/WebKit/qt/Api/qwebframe.cpp index b98b4d5..aeb7a22 100644 --- a/WebKit/qt/Api/qwebframe.cpp +++ b/WebKit/qt/Api/qwebframe.cpp @@ -220,6 +220,22 @@ QString QWEBKIT_EXPORT qt_drt_counterValueForElementById(QWebFrame* qFrame, cons return QString(); } +// Suspend active DOM objects in this frame. +void QWEBKIT_EXPORT qt_suspendActiveDOMObjects(QWebFrame* qFrame) +{ + Frame* frame = QWebFramePrivate::core(qFrame); + if (frame->document()) + frame->document()->suspendActiveDOMObjects(); +} + +// Resume active DOM objects in this frame. +void QWEBKIT_EXPORT qt_resumeActiveDOMObjects(QWebFrame* qFrame) +{ + Frame* frame = QWebFramePrivate::core(qFrame); + if (frame->document()) + frame->document()->resumeActiveDOMObjects(); +} + QWebFrameData::QWebFrameData(WebCore::Page* parentPage, WebCore::Frame* parentFrame, WebCore::HTMLFrameOwnerElement* ownerFrameElement, const WebCore::String& frameName) @@ -361,6 +377,45 @@ void QWebFramePrivate::renderRelativeCoords(GraphicsContext* context, QWebFrame: } } +bool QWebFramePrivate::scrollOverflow(int dx, int dy) +{ + if (!frame || !frame->document() || !frame->eventHandler()) + return false; + + Node* node = frame->document()->focusedNode(); + if (!node) + node = frame->document()->elementFromPoint(frame->eventHandler()->currentMousePosition().x(), + frame->eventHandler()->currentMousePosition().y()); + if (!node) + return false; + + RenderObject* renderer = node->renderer(); + if (!renderer) + return false; + + if (renderer->isListBox()) + return false; + + RenderLayer* renderLayer = renderer->enclosingLayer(); + if (!renderLayer) + return false; + + bool scrolledHorizontal = false; + bool scrolledVertical = false; + + if (dx > 0) + scrolledHorizontal = renderLayer->scroll(ScrollRight, ScrollByPixel, dx); + else if (dx < 0) + scrolledHorizontal = renderLayer->scroll(ScrollLeft, ScrollByPixel, qAbs(dx)); + + if (dy > 0) + scrolledVertical = renderLayer->scroll(ScrollDown, ScrollByPixel, dy); + else if (dy < 0) + scrolledVertical = renderLayer->scroll(ScrollUp, ScrollByPixel, qAbs(dy)); + + return (scrolledHorizontal || scrolledVertical); +} + /*! \class QWebFrame \since 4.4 @@ -1000,6 +1055,55 @@ void QWebFrame::scroll(int dx, int dy) } /*! + \since 4.7 + Scrolls nested frames starting at this frame, \a dx pixels to the right + and \a dy pixels downward. Both \a dx and \a dy may be negative. First attempts + to scroll elements with CSS overflow followed by this frame. If this + frame doesn't scroll, attempts to scroll the parent + + \sa QWebFrame::scroll +*/ +bool QWebFrame::scrollRecursively(int dx, int dy) +{ + bool scrolledHorizontal = false; + bool scrolledVertical = false; + bool scrolledOverflow = d->scrollOverflow(dx, dy); + + if (!scrolledOverflow) { + Frame* frame = d->frame; + if (!frame || !frame->view()) + return false; + + do { + IntSize scrollOffset = frame->view()->scrollOffset(); + IntPoint maxScrollOffset = frame->view()->maximumScrollPosition(); + + if (dx > 0) // scroll right + scrolledHorizontal = scrollOffset.width() < maxScrollOffset.x(); + else if (dx < 0) // scroll left + scrolledHorizontal = scrollOffset.width() > 0; + + if (dy > 0) // scroll down + scrolledVertical = scrollOffset.height() < maxScrollOffset.y(); + else if (dy < 0) //scroll up + scrolledVertical = scrollOffset.height() > 0; + + if (scrolledHorizontal || scrolledVertical) { + frame->view()->scrollBy(IntSize(dx, dy)); + return true; + } + frame = frame->tree()->parent(); + } while (frame && frame->view()); + } + return (scrolledHorizontal || scrolledVertical || scrolledOverflow); +} + +bool QWEBKIT_EXPORT qtwebkit_webframe_scrollRecursively(QWebFrame* qFrame, int dx, int dy) +{ + return qFrame->scrollRecursively(dx, dy); +} + +/*! \property QWebFrame::scrollPosition \since 4.5 \brief the position the frame is currently scrolled to. @@ -1289,6 +1393,11 @@ void QWebFrame::print(QPrinter *printer) const // paranoia check fromPage = qMax(1, fromPage); toPage = qMin(printContext.pageCount(), toPage); + if (toPage < fromPage) { + // if the user entered a page range outside the actual number + // of printable pages, just return + return; + } if (printer->pageOrder() == QPrinter::LastPageFirst) { int tmp = fromPage; diff --git a/WebKit/qt/Api/qwebframe.h b/WebKit/qt/Api/qwebframe.h index c2a6e9b..25f6c9b 100644 --- a/WebKit/qt/Api/qwebframe.h +++ b/WebKit/qt/Api/qwebframe.h @@ -156,6 +156,7 @@ public: QRect scrollBarGeometry(Qt::Orientation orientation) const; void scroll(int, int); + bool scrollRecursively(int, int); QPoint scrollPosition() const; void setScrollPosition(const QPoint &pos); diff --git a/WebKit/qt/Api/qwebframe_p.h b/WebKit/qt/Api/qwebframe_p.h index 045c70e..ee978be 100644 --- a/WebKit/qt/Api/qwebframe_p.h +++ b/WebKit/qt/Api/qwebframe_p.h @@ -85,6 +85,8 @@ public: void renderRelativeCoords(WebCore::GraphicsContext*, QWebFrame::RenderLayer, const QRegion& clip); void renderContentsLayerAbsoluteCoords(WebCore::GraphicsContext*, const QRegion& clip); + bool scrollOverflow(int dx, int dy); + QWebFrame *q; Qt::ScrollBarPolicy horizontalScrollBarPolicy; Qt::ScrollBarPolicy verticalScrollBarPolicy; diff --git a/WebKit/qt/Api/qwebinspector.cpp b/WebKit/qt/Api/qwebinspector.cpp index f43cbbf..c3ef530 100644 --- a/WebKit/qt/Api/qwebinspector.cpp +++ b/WebKit/qt/Api/qwebinspector.cpp @@ -151,16 +151,25 @@ void QWebInspector::resizeEvent(QResizeEvent* event) /*! \reimp */ void QWebInspector::showEvent(QShowEvent* event) { +#if ENABLE(INSPECTOR) // Allows QWebInspector::show() to init the inspector. if (d->page) d->page->d->inspectorController()->show(); +#endif } /*! \reimp */ void QWebInspector::hideEvent(QHideEvent* event) { +} + +/*! \reimp */ +void QWebInspector::closeEvent(QCloseEvent* event) +{ +#if ENABLE(INSPECTOR) if (d->page) d->page->d->inspectorController()->setWindowVisible(false); +#endif } /*! \internal */ diff --git a/WebKit/qt/Api/qwebinspector.h b/WebKit/qt/Api/qwebinspector.h index a5c1ed5..6cda479 100644 --- a/WebKit/qt/Api/qwebinspector.h +++ b/WebKit/qt/Api/qwebinspector.h @@ -43,6 +43,7 @@ protected: void resizeEvent(QResizeEvent* event); void showEvent(QShowEvent* event); void hideEvent(QHideEvent* event); + void closeEvent(QCloseEvent* event); private: QWebInspectorPrivate* d; diff --git a/WebKit/qt/Api/qwebpage.cpp b/WebKit/qt/Api/qwebpage.cpp index 50cbaf0..7e3b084 100644 --- a/WebKit/qt/Api/qwebpage.cpp +++ b/WebKit/qt/Api/qwebpage.cpp @@ -32,6 +32,8 @@ #include "qwebsettings.h" #include "qwebkitversion.h" +#include "Chrome.h" +#include "ContextMenuController.h" #include "Frame.h" #include "FrameTree.h" #include "FrameLoader.h" @@ -79,6 +81,7 @@ #include "runtime/InitializeThreading.h" #include "PageGroup.h" #include "QWebPageClient.h" +#include "WorkerThread.h" #include <QApplication> #include <QBasicTimer> @@ -108,6 +111,11 @@ #include <QX11Info> #endif +#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) +#include <QTouchEvent> +#include "PlatformTouchEvent.h" +#endif + using namespace WebCore; void QWEBKIT_EXPORT qt_drt_overwritePluginDirectories() @@ -122,6 +130,15 @@ void QWEBKIT_EXPORT qt_drt_overwritePluginDirectories() db->refresh(); } +int QWEBKIT_EXPORT qt_drt_workerThreadCount() +{ +#if ENABLE(WORKERS) + return WebCore::WorkerThread::workerThreadCount(); +#else + return 0; +#endif +} + bool QWebPagePrivate::drtRun = false; void QWEBKIT_EXPORT qt_drt_run(bool b) { @@ -165,6 +182,8 @@ public: virtual QObject* pluginParent() const; + virtual QStyle* style() const; + QWidget* view; }; @@ -234,6 +253,11 @@ QObject* QWebPageWidgetClient::pluginParent() const return view; } +QStyle* QWebPageWidgetClient::style() const +{ + return view->style(); +} + // Lookup table mapping QWebPage::WebActions to the associated Editor commands static const char* editorCommandWebActions[] = { @@ -337,8 +361,10 @@ static inline DragOperation dropActionToDragOp(Qt::DropActions actions) unsigned result = 0; if (actions & Qt::CopyAction) result |= DragOperationCopy; + // DragOperationgeneric represents InternetExplorer's equivalent of Move operation, + // hence it should be considered as "move" if (actions & Qt::MoveAction) - result |= DragOperationMove; + result |= (DragOperationMove | DragOperationGeneric); if (actions & Qt::LinkAction) result |= DragOperationLink; return (DragOperation)result; @@ -351,6 +377,10 @@ static inline Qt::DropAction dragOpToDropAction(unsigned actions) result = Qt::CopyAction; else if (actions & DragOperationMove) result = Qt::MoveAction; + // DragOperationgeneric represents InternetExplorer's equivalent of Move operation, + // hence it should be considered as "move" + else if (actions & DragOperationGeneric) + result = Qt::MoveAction; else if (actions & DragOperationLink) result = Qt::LinkAction; return result; @@ -455,7 +485,9 @@ static QWebPage::WebAction webActionForContextMenuAction(WebCore::ContextMenuAct case WebCore::ContextMenuItemTagBold: return QWebPage::ToggleBold; case WebCore::ContextMenuItemTagItalic: return QWebPage::ToggleItalic; case WebCore::ContextMenuItemTagUnderline: return QWebPage::ToggleUnderline; +#if ENABLE(INSPECTOR) case WebCore::ContextMenuItemTagInspectElement: return QWebPage::InspectElement; +#endif default: break; } return QWebPage::NoWebAction; @@ -1061,8 +1093,9 @@ void QWebPagePrivate::focusOutEvent(QFocusEvent*) // and the focus frame. But don't tell the focus controller so that upon // focusInEvent() we can re-activate the frame. FocusController *focusController = page->focusController(); - focusController->setActive(false); + // Call setFocused first so that window.onblur doesn't get called twice focusController->setFocused(false); + focusController->setActive(false); } void QWebPagePrivate::dragEnterEvent(QGraphicsSceneDragDropEvent* ev) @@ -1084,8 +1117,9 @@ void QWebPagePrivate::dragEnterEvent(QDragEnterEvent* ev) dropActionToDragOp(ev->possibleActions())); Qt::DropAction action = dragOpToDropAction(page->dragController()->dragEntered(&dragData)); ev->setDropAction(action); - if (action != Qt::IgnoreAction) - ev->accept(); + // We must accept this event in order to receive the drag move events that are sent + // while the drag and drop action is in progress. + ev->accept(); #endif } @@ -1125,9 +1159,11 @@ void QWebPagePrivate::dragMoveEvent(QDragMoveEvent* ev) DragData dragData(ev->mimeData(), ev->pos(), QCursor::pos(), dropActionToDragOp(ev->possibleActions())); Qt::DropAction action = dragOpToDropAction(page->dragController()->dragUpdated(&dragData)); + m_lastDropAction = action; ev->setDropAction(action); - if (action != Qt::IgnoreAction) - ev->accept(); + // We must accept this event in order to receive the drag move events that are sent + // while the drag and drop action is in progress. + ev->accept(); #endif } @@ -1136,8 +1172,7 @@ void QWebPagePrivate::dropEvent(QGraphicsSceneDragDropEvent* ev) #ifndef QT_NO_DRAGANDDROP DragData dragData(ev->mimeData(), ev->pos().toPoint(), QCursor::pos(), dropActionToDragOp(ev->possibleActions())); - Qt::DropAction action = dragOpToDropAction(page->dragController()->performDrag(&dragData)); - if (action != Qt::IgnoreAction) + if (page->dragController()->performDrag(&dragData)) ev->accept(); #endif } @@ -1145,10 +1180,11 @@ void QWebPagePrivate::dropEvent(QGraphicsSceneDragDropEvent* ev) void QWebPagePrivate::dropEvent(QDropEvent* ev) { #ifndef QT_NO_DRAGANDDROP + // Overwrite the defaults set by QDragManager::defaultAction() + ev->setDropAction(m_lastDropAction); DragData dragData(ev->mimeData(), ev->pos(), QCursor::pos(), - dropActionToDragOp(ev->possibleActions())); - Qt::DropAction action = dragOpToDropAction(page->dragController()->performDrag(&dragData)); - if (action != Qt::IgnoreAction) + dropActionToDragOp(Qt::DropAction(ev->dropAction()))); + if (page->dragController()->performDrag(&dragData)) ev->accept(); #endif } @@ -1217,7 +1253,7 @@ void QWebPagePrivate::inputMethodEvent(QInputMethodEvent *ev) break; } case QInputMethodEvent::Cursor: { - frame->setCaretVisible(a.length); //if length is 0 cursor is invisible + frame->selection()->setCaretVisible(a.length); //if length is 0 cursor is invisible if (a.length > 0) { RenderObject* caretRenderer = frame->selection()->caretRenderer(); if (caretRenderer) { @@ -1334,6 +1370,18 @@ bool QWebPagePrivate::handleScrolling(QKeyEvent *ev, Frame *frame) return frame->eventHandler()->scrollRecursively(direction, granularity); } +#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) +void QWebPagePrivate::touchEvent(QTouchEvent* event) +{ + WebCore::Frame* frame = QWebFramePrivate::core(mainFrame); + if (!frame->view()) + return; + + bool accepted = frame->eventHandler()->handleTouchEvent(PlatformTouchEvent(event)); + event->setAccepted(accepted); +} +#endif + /*! This method is used by the input method to query a set of properties of the page to be able to support complex input method operations as support for surrounding @@ -1362,6 +1410,11 @@ QVariant QWebPage::inputMethodQuery(Qt::InputMethodQuery property) const switch (property) { case Qt::ImMicroFocus: { + WebCore::FrameView* view = frame->view(); + if (view && view->needsLayout()) { + // We can't access absoluteCaretBounds() while the view needs to layout. + return QVariant(); + } return QVariant(frame->selection()->absoluteCaretBounds()); } case Qt::ImFont: { @@ -1460,6 +1513,7 @@ void QWebPagePrivate::setInspector(QWebInspector* insp) */ QWebInspector* QWebPagePrivate::getOrCreateInspector() { +#if ENABLE(INSPECTOR) if (!inspector) { QWebInspector* insp = new QWebInspector; insp->setPage(q); @@ -1467,13 +1521,18 @@ QWebInspector* QWebPagePrivate::getOrCreateInspector() Q_ASSERT(inspector); // Associated through QWebInspector::setPage(q) } +#endif return inspector; } /*! \internal */ InspectorController* QWebPagePrivate::inspectorController() { +#if ENABLE(INSPECTOR) return page->inspectorController(); +#else + return 0; +#endif } @@ -1837,7 +1896,8 @@ bool QWebPage::javaScriptConfirm(QWebFrame *frame, const QString& msg) The program may provide an optional message, \a msg, as well as a default value for the input in \a defaultValue. If the prompt was cancelled by the user the implementation should return false; otherwise the - result should be written to \a result and true should be returned. + result should be written to \a result and true should be returned. If the prompt was not cancelled by the + user, the implementation should return true and the result string must not be null. The default implementation uses QInputDialog::getText. */ @@ -2014,11 +2074,13 @@ void QWebPage::triggerAction(WebAction action, bool) editor->setBaseWritingDirection(RightToLeftWritingDirection); break; case InspectElement: { +#if ENABLE(INSPECTOR) if (!d->hitTestResult.isNull()) { d->getOrCreateInspector(); // Make sure the inspector is created d->inspector->show(); // The inspector is expected to be shown on inspection d->page->inspectorController()->inspect(d->hitTestResult.d->innerNonSharedNode.get()); } +#endif break; } default: @@ -2548,6 +2610,13 @@ bool QWebPage::event(QEvent *ev) case QEvent::Leave: d->leaveEvent(ev); break; +#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) + case QEvent::TouchBegin: + case QEvent::TouchUpdate: + case QEvent::TouchEnd: + d->touchEvent(static_cast<QTouchEvent*>(ev)); + break; +#endif default: return QObject::event(ev); } @@ -2705,8 +2774,11 @@ void QWebPage::updatePositionDependentActions(const QPoint &pos) d->hitTestResult = QWebHitTestResult(new QWebHitTestResultPrivate(result)); WebCore::ContextMenu menu(result); menu.populate(); + +#if ENABLE(INSPECTOR) if (d->page->inspectorController()->enabled()) menu.addInspectElementItem(); +#endif QBitArray visitedWebActions(QWebPage::WebActionCount); @@ -3396,9 +3468,9 @@ quint64 QWebPage::bytesReceived() const /*! \fn void QWebPage::unsupportedContent(QNetworkReply *reply) - This signals is emitted when webkit cannot handle a link the user navigated to. + This signal is emitted when WebKit cannot handle a link the user navigated to. - At signal emissions time the meta data of the QNetworkReply \a reply is available. + At signal emission time the meta-data of the QNetworkReply \a reply is available. \note This signal is only emitted if the forwardUnsupportedContent property is set to true. diff --git a/WebKit/qt/Api/qwebpage_p.h b/WebKit/qt/Api/qwebpage_p.h index 5d97da4..dbc981e 100644 --- a/WebKit/qt/Api/qwebpage_p.h +++ b/WebKit/qt/Api/qwebpage_p.h @@ -114,6 +114,10 @@ public: void handleSoftwareInputPanel(Qt::MouseButton); bool handleScrolling(QKeyEvent*, WebCore::Frame*); +#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) + void touchEvent(QTouchEvent*); +#endif + void setInspector(QWebInspector*); QWebInspector* getOrCreateInspector(); WebCore::InspectorController* inspectorController(); @@ -176,6 +180,7 @@ public: QWidget* inspectorFrontend; QWebInspector* inspector; bool inspectorIsInternalOnly; // True if created through the Inspect context menu action + Qt::DropAction m_lastDropAction; static bool drtRun; }; diff --git a/WebKit/qt/Api/qwebsecurityorigin.cpp b/WebKit/qt/Api/qwebsecurityorigin.cpp index 2a225c5..6c26bd7 100644 --- a/WebKit/qt/Api/qwebsecurityorigin.cpp +++ b/WebKit/qt/Api/qwebsecurityorigin.cpp @@ -40,6 +40,11 @@ void QWEBKIT_EXPORT qt_drt_resetOriginAccessWhiteLists() SecurityOrigin::resetOriginAccessWhiteLists(); } +void QWEBKIT_EXPORT qt_drt_setDomainRelaxationForbiddenForURLScheme(bool forbidden, const QString& scheme) +{ + SecurityOrigin::setDomainRelaxationForbiddenForURLScheme(forbidden, scheme); +} + /*! \class QWebSecurityOrigin \since 4.5 diff --git a/WebKit/qt/Api/qwebsettings.cpp b/WebKit/qt/Api/qwebsettings.cpp index 9a5ab46..a94a3aa 100644 --- a/WebKit/qt/Api/qwebsettings.cpp +++ b/WebKit/qt/Api/qwebsettings.cpp @@ -47,6 +47,17 @@ #include <QUrl> #include <QFileInfo> +#if ENABLE(QT_BEARER) +#include "NetworkStateNotifier.h" +#endif + +void QWEBKIT_EXPORT qt_networkAccessAllowed(bool isAllowed) +{ +#if ENABLE(QT_BEARER) + WebCore::networkStateNotifier().setNetworkAccessAllowed(isAllowed); +#endif +} + class QWebSettingsPrivate { public: QWebSettingsPrivate(WebCore::Settings* wcSettings = 0) @@ -141,7 +152,12 @@ void QWebSettingsPrivate::apply() value = attributes.value(QWebSettings::JavascriptEnabled, global->attributes.value(QWebSettings::JavascriptEnabled)); settings->setJavaScriptEnabled(value); +#if USE(ACCELERATED_COMPOSITING) + value = attributes.value(QWebSettings::AcceleratedCompositingEnabled, + global->attributes.value(QWebSettings::AcceleratedCompositingEnabled)); + settings->setAcceleratedCompositingEnabled(value); +#endif value = attributes.value(QWebSettings::JavascriptCanOpenWindows, global->attributes.value(QWebSettings::JavascriptCanOpenWindows)); settings->setJavaScriptCanOpenWindowsAutomatically(value); @@ -193,12 +209,16 @@ void QWebSettingsPrivate::apply() value = attributes.value(QWebSettings::LocalStorageEnabled, global->attributes.value(QWebSettings::LocalStorageEnabled)); - settings->setLocalStorageEnabled(value); value = attributes.value(QWebSettings::LocalContentCanAccessRemoteUrls, global->attributes.value(QWebSettings::LocalContentCanAccessRemoteUrls)); settings->setAllowUniversalAccessFromFileURLs(value); + + value = attributes.value(QWebSettings::XSSAuditorEnabled, + global->attributes.value(QWebSettings::XSSAuditorEnabled)); + settings->setXSSAuditorEnabled(value); + settings->setUsesPageCache(WebCore::pageCache()->capacity()); } else { QList<QWebSettingsPrivate*> settings = *::allSettings(); @@ -343,6 +363,7 @@ QWebSettings* QWebSettings::globalSettings() \value LocalStorageDatabaseEnabled \e{This enum value is deprecated.} Use QWebSettings::LocalStorageEnabled instead. \value LocalContentCanAccessRemoteUrls Specifies whether locally loaded documents are allowed to access remote urls. + \value XSSAuditorEnabled Specifies whether load requests should be monitored for cross-site scripting attempts. */ /*! @@ -373,6 +394,7 @@ QWebSettings::QWebSettings() d->attributes.insert(QWebSettings::OfflineWebApplicationCacheEnabled, false); d->attributes.insert(QWebSettings::LocalStorageEnabled, false); d->attributes.insert(QWebSettings::LocalContentCanAccessRemoteUrls, false); + d->attributes.insert(QWebSettings::AcceleratedCompositingEnabled, false); d->offlineStorageDefaultQuota = 5 * 1024 * 1024; d->defaultTextEncoding = QLatin1String("iso-8859-1"); } diff --git a/WebKit/qt/Api/qwebsettings.h b/WebKit/qt/Api/qwebsettings.h index 69f3b11..77f2167 100644 --- a/WebKit/qt/Api/qwebsettings.h +++ b/WebKit/qt/Api/qwebsettings.h @@ -67,7 +67,9 @@ public: LocalStorageDatabaseEnabled = LocalStorageEnabled, #endif LocalContentCanAccessRemoteUrls, - DnsPrefetchEnabled + DnsPrefetchEnabled, + XSSAuditorEnabled, + AcceleratedCompositingEnabled }; enum WebGraphic { MissingImageGraphic, diff --git a/WebKit/qt/Api/qwebview.cpp b/WebKit/qt/Api/qwebview.cpp index 7bc3168..b5a5a90 100644 --- a/WebKit/qt/Api/qwebview.cpp +++ b/WebKit/qt/Api/qwebview.cpp @@ -22,10 +22,11 @@ #include "config.h" #include "qwebview.h" +#include "Page.h" #include "QWebPageClient.h" +#include "Settings.h" #include "qwebframe.h" #include "qwebpage_p.h" - #include "qbitmap.h" #include "qevent.h" #include "qpainter.h" @@ -57,6 +58,106 @@ void QWebViewPrivate::_q_pageDestroyed() view->setPage(0); } +#ifdef Q_WS_MAEMO_5 +#include "qabstractkineticscroller.h" + +class QWebViewKineticScroller : public QAbstractKineticScroller { +public: + QWebViewKineticScroller() : QAbstractKineticScroller() {} + // remember the frame where the button was pressed + bool eventFilter(QObject* o, QEvent* ev) + { + switch (ev->type()) { + case QEvent::MouseButtonPress: { + QWebFrame* hitFrame = scrollingFrameAt(static_cast<QMouseEvent*>(ev)->pos()); + if (hitFrame) + m_frame = hitFrame; + break; + } + default: + break; + } + return QAbstractKineticScroller::eventFilter(o, ev); + } + +protected: + QWebFrame* currentFrame() const + { + if (!m_frame.isNull()) + return m_frame.data(); + + QWebView* view = static_cast<QWebView*>(widget()); + QWebFrame* frame = view->page()->mainFrame(); + return frame; + } + + // Returns the innermost frame at the given position that can scroll. + QWebFrame* scrollingFrameAt(const QPoint& pos) const + { + QWebView* view = static_cast<QWebView*>(widget()); + QWebFrame* mainFrame = view->page()->mainFrame(); + QWebFrame* hitFrame = mainFrame->hitTestContent(pos).frame(); + QSize range = hitFrame->contentsSize() - hitFrame->geometry().size(); + + while (hitFrame && range.width() <= 1 && range.height() <= 1) + hitFrame = hitFrame->parentFrame(); + + return hitFrame; + } + + void attachToWidget() + { + QWebView* view = static_cast<QWebView*>(widget()); + QWebFrame* mainFrame = view->page()->mainFrame(); + m_oldHorizontalScrollBarPolicy = mainFrame->scrollBarPolicy(Qt::Horizontal); + m_oldVerticalScrollBarPolicy = mainFrame->scrollBarPolicy(Qt::Vertical); + mainFrame->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff); + mainFrame->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff); + view->installEventFilter(this); + } + + void removeFromWidget() + { + QWebView* view = static_cast<QWebView*>(widget()); + view->removeEventFilter(this); + QWebFrame* mainFrame = view->page()->mainFrame(); + mainFrame->setScrollBarPolicy(Qt::Vertical, m_oldVerticalScrollBarPolicy); + mainFrame->setScrollBarPolicy(Qt::Horizontal, m_oldHorizontalScrollBarPolicy); + } + + QRect positionRange() const + { + QRect r; + QWebFrame* frame = currentFrame(); + r.setSize(frame->contentsSize() - frame->geometry().size()); + return r; + } + + QPoint position() const + { + QWebFrame* frame = currentFrame(); + return frame->scrollPosition(); + } + + QSize viewportSize() const + { + return static_cast<QWebView*>(widget())->page()->viewportSize(); + } + + void setPosition(const QPoint& point, const QPoint& /* overShootDelta */) + { + QWebFrame* frame = currentFrame(); + frame->setScrollPosition(point); + } + + QPointer<QWebFrame> m_frame; + Qt::ScrollBarPolicy m_oldVerticalScrollBarPolicy; + Qt::ScrollBarPolicy m_oldHorizontalScrollBarPolicy; +}; + +#endif // Q_WS_MAEMO_5 + + /*! \class QWebView \since 4.4 @@ -153,6 +254,14 @@ QWebView::QWebView(QWidget *parent) setAttribute(Qt::WA_InputMethodEnabled); #endif +#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) + setAttribute(Qt::WA_AcceptTouchEvents); +#endif +#if defined(Q_WS_MAEMO_5) + QAbstractKineticScroller* scroller = new QWebViewKineticScroller(); + scroller->setWidget(this); + setProperty("kineticScroller", QVariant::fromValue(scroller)); +#endif setAcceptDrops(true); setMouseTracking(true); @@ -243,6 +352,9 @@ void QWebView::setPage(QWebPage* page) this, SLOT(_q_pageDestroyed())); } setAttribute(Qt::WA_OpaquePaintEvent, d->page); +#if USE(ACCELERATED_COMPOSITING) + d->page->d->page->settings()->setAcceleratedCompositingEnabled(false); +#endif update(); } @@ -640,6 +752,14 @@ bool QWebView::event(QEvent *e) if (cursor().shape() == Qt::ArrowCursor) d->page->d->client->resetCursor(); #endif +#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) + } else if (e->type() == QEvent::TouchBegin + || e->type() == QEvent::TouchEnd + || e->type() == QEvent::TouchUpdate) { + d->page->event(e); + if (e->isAccepted()) + return true; +#endif } else if (e->type() == QEvent::Leave) d->page->event(e); } diff --git a/WebKit/qt/Api/qwebview.h b/WebKit/qt/Api/qwebview.h index d7910d9..f681fbc 100644 --- a/WebKit/qt/Api/qwebview.h +++ b/WebKit/qt/Api/qwebview.h @@ -49,12 +49,7 @@ class QWEBKIT_EXPORT QWebView : public QWidget { Q_PROPERTY(qreal textSizeMultiplier READ textSizeMultiplier WRITE setTextSizeMultiplier DESIGNABLE false) Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor) -// FIXME: temporary work around for elftran issue that it couldn't find the QPainter::staticMetaObject -// symbol from Qt lib; it should be reverted after the right symbol is exported. -// See bug: http://qt.nokia.com/developer/task-tracker/index_html?method=entry&id=258893 -#if defined(Q_QDOC) || !defined(Q_OS_SYMBIAN) Q_PROPERTY(QPainter::RenderHints renderHints READ renderHints WRITE setRenderHints) -#endif Q_FLAGS(QPainter::RenderHints) public: explicit QWebView(QWidget* parent = 0); diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog index 4d2467a..3928198 100644 --- a/WebKit/qt/ChangeLog +++ b/WebKit/qt/ChangeLog @@ -1,3 +1,395 @@ +<<<<<<< HEAD +======= +2010-01-29 Ben Murdoch <benm@google.com> + + Reviewed by Dimitri Glazkov. + + [Android] Android needs functionality in the ChromeClient to be informed when touch events are and are not needed by the webpage. + https://bugs.webkit.org/show_bug.cgi?id=34215 + + Add needTouchEvents() to the ChromeClient which is called when the page decides it needs or no longer needs to be informed of touch events. + + * WebCoreSupport/ChromeClientQt.h: + (WebCore::ChromeClientQt::needTouchEvents): Add an empty implementation. + +2010-01-29 Kenneth Rohde Christiansen <kenneth@webkit.org> + + Reviewed by Simon Hausmann + + Disable auto-uppercase and predictive text on Maemo5, just like the + build-in MicroB Browser. + + * WebCoreSupport/EditorClientQt.cpp: + (WebCore::EditorClientQt::setInputMethodState): + +2010-01-28 Andreas Kling <andreas.kling@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Support kinetic scrolling on Maemo 5 + + https://bugs.webkit.org/show_bug.cgi?id=34267 + + Patch by Ralf Engels <ralf.engels@nokia.com> and + Robert Griebl <rgriebl@trolltech.com> + + * Api/qwebview.cpp: + (QWebViewKineticScroller::QWebViewKineticScroller): + (QWebViewKineticScroller::eventFilter): + (QWebViewKineticScroller::currentFrame): + (QWebViewKineticScroller::scrollingFrameAt): + (QWebViewKineticScroller::attachToWidget): + (QWebViewKineticScroller::removeFromWidget): + (QWebViewKineticScroller::positionRange): + (QWebViewKineticScroller::position): + (QWebViewKineticScroller::viewportSize): + (QWebViewKineticScroller::setPosition): + (QWebView::QWebView): + +2010-01-28 Kenneth Rohde Christiansen <kenneth@webkit.org> + + Reviewed by Simon Hausmann. + + Do not set the combobox font on Maemo5 and S60; use the + default instead. + + * WebCoreSupport/QtFallbackWebPopup.cpp: + (WebCore::QtFallbackWebPopup::populate): + +2010-01-28 Trond KjernÃ¥sen <trond@trolltech.com> + + Reviewed by Simon Hausmann. + + [Qt] Fix for endless print loop when printing web pages + + * Api/qwebframe.cpp: + (QWebFrame::print): + +2010-01-27 Diego Gonzalez <diego.gonzalez@openbossa.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] DRT Provide worker thread ability to track counters + https://bugs.webkit.org/show_bug.cgi?id=34221 + + Implement workerThreadCount() in LayoutTestController of Qt DRT + + Tests: + fast/workers/dedicated-worker-lifecycle.html + fast/workers/shared-worker-frame-lifecycle.html + fast/workers/shared-worker-lifecycle.html + fast/workers/worker-lifecycle.html + + * Api/qwebpage.cpp: + (qt_drt_workerThreadCount): + +2010-01-27 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Laszlo Gombos. + + [Qt] Update the .def files with exported symbols + + * symbian/eabi/QtWebKitu.def: Add two mangled missing new symbols for arm eabi. + +2010-01-27 Kent Hansen <kent.hansen@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Meta-methods can't be introspected using ES5 API + https://bugs.webkit.org/show_bug.cgi?id=34087 + + Test that Object.getOwnPropertyDescriptor and + Object.getOwnPropertyNames work with meta-methods. + + * tests/qwebframe/tst_qwebframe.cpp: + +2010-01-26 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Show comboboxes on Maemo 5 + https://bugs.webkit.org/show_bug.cgi?id=34088 + + Don't try to show the combobox by simulating a mouse event from QCursor::pos() to + get the combobox position right. The position on Maemo 5 is independent from the mouse + and there's no QCursor::pos(). + + * WebCoreSupport/QtFallbackWebPopup.cpp: + (WebCore::QtFallbackWebPopup::show): + +2010-01-26 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> + + Reviewed by Simon Hausmann. + + First steps of the QtScript API. + + Two new classes were created; QScriptEngine and QScriptValue. + The first should encapsulate a javascript context and the second a script + value. + + This API is still in development, so it isn't compiled by default. + To trigger compilation, pass --qmakearg="CONFIG+=build-qtscript" to + build-webkit. + + https://bugs.webkit.org/show_bug.cgi?id=32565 + + * docs/qtwebkit.qdocconf: + +2010-01-26 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Simon Hausmann. + + [Qt] JavaScript prompt is currently broken + https://bugs.webkit.org/show_bug.cgi?id=30914 + + In r52152 a patch was landed to convert a null QString + to an empty WebCore::String in case the prompt was accepted + but the default implementation returned the null QString. + + The patch tried to avoid assign to result twice and + was not checking the QString if it is null but the default + value. This lead to always returning an empty string on + successful prompts. Fix it by checking the variable 'x' + for isNull. + + The manual test case used didn't cover the case of non + empty input, replace it with an automatic test case that + should cover all cases. + + * WebCoreSupport/ChromeClientQt.cpp: + (WebCore::ChromeClientQt::runJavaScriptPrompt): Fix the bug. + * tests/qwebpage/tst_qwebpage.cpp: Add automatic test case + (JSPromptPage::JSPromptPage): + (JSPromptPage::javaScriptPrompt): + (tst_QWebPage::testJSPrompt): + +2010-01-25 Simon Hausmann <hausmann@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] In RenderThemeQt determine the QStyle from the page client instead of the page's view + https://bugs.webkit.org/show_bug.cgi?id=34053 + + * Api/qgraphicswebview.cpp: + (QGraphicsWebViewPrivate::style): Implement QWebPageClient::style() and return the graphics + widget's style. + * Api/qwebpage.cpp: + (QWebPageWidgetClient::style): Implement QWebPageClient::style() and return the widget's style. + +2010-01-25 Janne Koskinen <janne.p.koskinen@digia.com> + + Reviewed by Simon Hausmann. + + [Qt] Phone backup support for QtWebkit for Symbian devices. + https://bugs.webkit.org/show_bug.cgi?id=34077 + + * symbian/backup_registration.xml: Added. + +2010-01-23 Girish Ramakrishnan <girish@forwardbias.in> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Fix positioning of ComboBox popup in QGraphicsWebView. + + Wrap the popup in a QGraphicsProxyWidget, so that the popup + transforms with the item. + + https://bugs.webkit.org/show_bug.cgi?id=33887 + + * WebCoreSupport/QtFallbackWebPopup.cpp: + (WebCore::QtFallbackWebPopupCombo::hidePopup): + (WebCore::QtFallbackWebPopup::QtFallbackWebPopup): + (WebCore::QtFallbackWebPopup::~QtFallbackWebPopup): + (WebCore::QtFallbackWebPopup::show): + * WebCoreSupport/QtFallbackWebPopup.h: + +2010-01-22 Peter Kasting <pkasting@google.com> + + Not reviewed, backout. + + Back out r52673, which caused several regressions. + https://bugs.webkit.org/show_bug.cgi?id=32533 + + * WebCoreSupport/QtFallbackWebPopup.cpp: + (WebCore::QtFallbackWebPopupCombo::hidePopup): + +2010-01-22 Girish Ramakrishnan <girish@forwardbias.in> + + Reviewed by Simon Hausmann. + + [Qt] Save the QWebPageClient instead of the ownerWidget in QtAbstractWebPopup + + The QWebPageClient is required for the QtFallbackWebPopup. QtFallbackWebPopup will + need it to create a QGraphicsProxyWidget (in a future commit) for the + QGraphicsWebView's web popup. + + * WebCoreSupport/QtFallbackWebPopup.cpp: + (WebCore::QtFallbackWebPopup::show): + +2010-01-22 Girish Ramakrishnan <girish@forwardbias.in> + + Reviewed by Kenneth Rohde Christiansen. + + QState::polished() was renamed to QState::propertiesAssigned() when + Qt 4.6.0 was released. + + * QGVLauncher/main.cpp: + (MainWindow::init): + +2010-01-21 Diego Gonzalez <diego.gonzalez@openbossa.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] add setDomainRelaxationForbiddenForURLScheme in Qt DRT + https://bugs.webkit.org/show_bug.cgi?id=33945 + + * Api/qwebsecurityorigin.cpp: + (qt_drt_setDomainRelaxationForbiddenForURLScheme): + +2010-01-21 No'am Rosenthal <noam.rosenthal@nokia.com> + + Reviewed by Antti Koivisto. + + [Qt] Implement GraphicsLayer for accelerated layer compositing + https://bugs.webkit.org/show_bug.cgi?id=33514 + + Here we have the QGraphicsWebView support for accelerated compositing + + * Api/qgraphicswebview.cpp: + (QGraphicsWebViewOverlay::q): access to container object + (QGraphicsWebViewOverlay::boundingRect): overlay has same rect as the + webview + (QGraphicsWebViewOverlay::paint): paint everything but the contents + (QGraphicsWebViewPrivate::QGraphicsWebViewPrivate): some vars needed + for accelerated compositing + (QGraphicsWebViewPrivate::): + (QGraphicsWebViewPrivate::~QGraphicsWebViewPrivate): + (QGraphicsWebViewPrivate::setRootGraphicsLayer): make sure we have a + scrollbar overlay, and that the new graphics layer is parented by the + web-view + (QGraphicsWebViewPrivate::markForSync): flush changes at earliest + convenience or during the next draw + + (QGraphicsWebViewPrivate::updateCompositingScrollPosition): sync the + position of the compositing layer with the scroll position + (QGraphicsWebViewPrivate::syncLayers): flush changes now + (QGraphicsWebViewPrivate::scroll): make sure we also move the + compositing layer + (QGraphicsWebViewPrivate::update): also update the overlay if needed + (QGraphicsWebView::QGraphicsWebView): initialize overlay with 0 + (QGraphicsWebView::paint): paint only contents if we have an overlay, + sync the compositing layers now if needed + (QGraphicsWebView::setPage): also clean up the compositing + (QGraphicsWebView::updateGeometry): also update overlay geo + (QGraphicsWebView::setGeometry): also update overlay geo + * Api/qgraphicswebview.h: reimp compositing stuff from QWebPageClient + * Api/qwebsettings.cpp: init new settings flag for compositing as + false + (QWebSettingsPrivate::apply): apply new settings flag for compositing + (QWebSettings::QWebSettings): + * Api/qwebsettings.h: new settings flag for compositing + * Api/qwebview.cpp: + (QWebView::setPage): qwebview doesn't support compositing: always false + * QGVLauncher/main.cpp: + (WebView::WebView): some more cmdline arguments + compositing + (MainWindow::init): some more cmdline arguments + (main): ditto + * WebCoreSupport/ChromeClientQt.cpp: + (WebCore::ChromeClientQt::attachRootGraphicsLayer): reimp for + accel-compositing + (WebCore::ChromeClientQt::setNeedsOneShotDrawingSynchronization): + reimp for accel compositing + (WebCore::ChromeClientQt::scheduleCompositingLayerSync): reimp for + accel compositing + * WebCoreSupport/ChromeClientQt.h: reimps for accel compositing + +2010-01-21 Benjamin Poulain <benjamin.poulain@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Improve the autotests of QtWebkit + https://bugs.webkit.org/show_bug.cgi?id=32216 + + Remove qWait() of the test when possible. + + * tests/qwebpage/tst_qwebpage.cpp: + (tst_QWebPage::loadFinished): + (tst_QWebPage::database): + (tst_QWebPage::testEnablePersistentStorage): + (tst_QWebPage::errorPageExtension): + (tst_QWebPage::screenshot): + +2010-01-21 Simon Hausmann <simon.hausmann@nokia.com> + + Prospective build fix for the Qt build. + + Fix compilation against Qt without WebKit support by not including QtWebKit/QWebView + but widget.h instead and instantiating QWebView through a typedef, to ensure we're using + our locally built WebKit. + + * tests/hybridPixmap/widget.h: + * tests/hybridPixmap/widget.ui: + +2010-01-21 No'am Rosenthal <noam.rosenthal@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Adding QPixmap/QImage support for the Qt hybrid layer + https://bugs.webkit.org/show_bug.cgi?id=32461 + + * tests/hybridPixmap: Added. + * tests/hybridPixmap/hybridPixmap.pro: Added. + * tests/hybridPixmap/resources.qrc: Added. + * tests/hybridPixmap/test.html: Added. + * tests/hybridPixmap/tst_hybridPixmap.cpp: Added. + (tst_hybridPixmap::tst_hybridPixmap): tests most of the use cases for + hybrid pixmap/image manipulation + (tst_hybridPixmap::init): QTestLib initialization + (tst_hybridPixmap::cleanup): QTestLib cleanup + (tst_hybridPixmap::hybridPixmap): run the html file + * tests/hybridPixmap/widget.cpp: Added. + (Widget::Widget): + (Widget::refreshJS): + (Widget::start): + (Widget::completeTest): + (Widget::setPixmap): + (Widget::pixmap): + (Widget::setImage): + (Widget::image): + (Widget::~Widget): + (Widget::changeEvent): + (Widget::compare): + (Widget::imageSlot): + (Widget::pixmapSlot): + (Widget::randomSlot): + * tests/hybridPixmap/widget.h: Added. + * tests/hybridPixmap/widget.ui: Added. + * tests/tests.pro: + +2010-01-21 Luiz Agostini <luiz.agostini@openbossa.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Custom select popups. + https://bugs.webkit.org/show_bug.cgi?id=33418 + + Adjusting QtFallbackWebPopupCombo to the changes in WebCore layer. + + * WebCoreSupport/ChromeClientQt.cpp: + (WebCore::ChromeClientQt::createSelectPopup): + * WebCoreSupport/ChromeClientQt.h: + * WebCoreSupport/QtFallbackWebPopup.cpp: + (WebCore::QtFallbackWebPopupCombo::QtFallbackWebPopupCombo): + (WebCore::QtFallbackWebPopupCombo::showPopup): + (WebCore::QtFallbackWebPopupCombo::hidePopup): + (WebCore::QtFallbackWebPopup::QtFallbackWebPopup): + (WebCore::QtFallbackWebPopup::~QtFallbackWebPopup): + (WebCore::QtFallbackWebPopup::show): + (WebCore::QtFallbackWebPopup::hide): + (WebCore::QtFallbackWebPopup::populate): + * WebCoreSupport/QtFallbackWebPopup.h: + +>>>>>>> webkit.org at r54127 2010-01-19 Steve Block <steveblock@google.com> Reviewed by Adam Barth. @@ -7,6 +399,580 @@ * Api/qwebframe.cpp: +<<<<<<< HEAD +======= +2010-01-14 Brian Weinstein <bweinstein@apple.com> + + Reviewed by Adam Roben. + + Drag and Drop source/destination code needs cleanup. + <https://bugs.webkit.org/show_bug.cgi?id=33691>. + + Update to new way of calling sourceOperation. + + * WebCoreSupport/DragClientQt.cpp: + (WebCore::DragClientQt::startDrag): + +2010-01-14 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Tor Arne Vestbø. + + [Qt] Symbian build fixes. + + * tests/qwebpage/tst_qwebpage.cpp: Include util.h + * tests/tests.pri: Don't define TESTS_SOURCE_DIR, it doesn't work. + * tests/util.h: Define TESTS_SOURCE_DIR here, just like it's done in Qt. + +2010-01-14 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Update Symbian .def symbol export files after private API additions. + + * symbian/bwins/QtWebKitu.def: + * symbian/eabi/QtWebKitu.def: + +2010-01-13 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + Move more of the selection and caret painting code from Frame to SelectionController. + https://bugs.webkit.org/show_bug.cgi?id=33619 + + * Api/qwebpage.cpp: + (QWebPagePrivate::inputMethodEvent): Seems possibly wrong to be directly invoking this + setCaretVisible here, but I updated it to call it in its new location. + +2010-01-11 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Holger Freyther. + + [Qt] Add private API for QWebFrame scrolling, to maintain binary compatibility with Qt 4.6. + + This is just a temporary addition until we have introduced #ifdefs to allow + safely removing the private API again. + + * Api/qwebframe.cpp: + (qtwebkit_webframe_scrollRecursively): + +2010-01-10 Robert Hogan <robert@roberthogan.net> + + Reviewed by Adam Barth. + + [Qt] Add enableXSSAuditor support to QWebSettings and DRT. + + https://bugs.webkit.org/show_bug.cgi?id=33419 + + * Api/qwebsettings.cpp: + (QWebSettingsPrivate::apply): + * Api/qwebsettings.h: + +2010-01-09 Daniel Bates <dbates@webkit.org> + + No review, rolling out r53044. + http://trac.webkit.org/changeset/53044 + https://bugs.webkit.org/show_bug.cgi?id=33419 + + We need to look into this some more because the Qt + bot is failing the XSSAuditor tests. See bug #33419 + for more details. + + * Api/qwebsettings.cpp: + * Api/qwebsettings.h: + +2010-01-09 Daniel Bates <dbates@webkit.org> + + Reviewed by Adam Barth. + + https://bugs.webkit.org/show_bug.cgi?id=33419 + + Adds support for the XSSAuditor to the Qt DRT. + + * Api/qwebsettings.cpp: Updated comment to reflect added key XSSAuditorEnabled. + * Api/qwebsettings.h: Adds settings key XSSAuditorEnabled. + +2010-01-08 Luiz Agostini <luiz.agostini@openbossa.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Delegation client + https://bugs.webkit.org/show_bug.cgi?id=32826 + + Added method createPopup to ChromeClientQt used to create popups. + QtFallbackWebPopup moved from WebCore/platform/qt to + WebKit/qt/WebCoreSupport. + + * WebCoreSupport/ChromeClientQt.cpp: + (WebCore::ChromeClientQt::createPopup): + * WebCoreSupport/ChromeClientQt.h: + * WebCoreSupport/QtFallbackWebPopup.cpp: Added. + (WebCore::QtFallbackWebPopup::QtFallbackWebPopup): + (WebCore::QtFallbackWebPopup::show): + (WebCore::QtFallbackWebPopup::populate): + (WebCore::QtFallbackWebPopup::showPopup): + (WebCore::QtFallbackWebPopup::hidePopup): + (WebCore::QtFallbackWebPopup::activeChanged): + (WebCore::QtFallbackWebPopup::setParent): + * WebCoreSupport/QtFallbackWebPopup.h: Added. + (WebCore::QtFallbackWebPopup::hide): + +2010-01-07 Yael Aharon <yael.aharon@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Allow the application to override online/offline network status + https://bugs.webkit.org/show_bug.cgi?id=32684 + + Add a setting so that applications can overide the network status. + Applications that use this setting still need to block network access + through QNAM. + + * Api/qwebsettings.cpp: + (qt_networkAccessAllowed): + +2010-01-07 Yongjun Zhang <yongjun.zhang@nokia.com>, Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] need an API to suspend and resume active Javascript DOM objects. + https://bugs.webkit.org/show_bug.cgi?id=31673 + + Add suspend and resume DOM objects private API to QWebFrame. + + * Api/qwebframe.cpp: + (qt_suspendActiveDOMObjects): + (qt_resumeActiveDOMObjects): + +2010-01-06 Andreas Kling <andreas.kling@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Return an invalid Qt::ImMicroFocus if queried while the view needs to layout. + + https://bugs.webkit.org/show_bug.cgi?id=33204 + + * Api/qwebpage.cpp: + (QWebPage::inputMethodQuery): + +2010-01-05 Yael Aharon <yael.aharon@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + Drag & drop layout tests fail even when run manually + https://bugs.webkit.org/show_bug.cgi?id=33055 + + No new tests. Fix 3 layout tests when run manually. + fast/events/drag-and-drop.html + fast/events/drag-and-drop-dataTransfer-types-nocrash.html + fast/events/drag-and-drop-fire-drag-dragover.html + Running these tests in DRT will be fixed in 31332. + + * Api/qwebpage.cpp: + (dropActionToDragOp): + (dragOpToDropAction): + (QWebPagePrivate::dragEnterEvent): + (QWebPagePrivate::dragMoveEvent): + (QWebPagePrivate::dropEvent): + Accept drag events even if they are not over a drop target. + This is to ensure that drag events will continue to be delivered. + + * Api/qwebpage_p.h: + * WebCoreSupport/DragClientQt.cpp: + (WebCore::dragOperationToDropActions): + (WebCore::dropActionToDragOperation): + (WebCore::DragClientQt::startDrag): + Send dragEnd event. + +2010-01-04 Daniel Bates <dbates@webkit.org> + + Reviewed by Eric Seidel. + + https://bugs.webkit.org/show_bug.cgi?id=33097 + + Cleans up the File menu to better conform to the File menu in Safari + both in terms of options and keyboard shortcuts. Adds a "Quit" menu + options to close all open windows. + + * QGVLauncher/main.cpp: + (MainWindow::buildUI): + +2009-12-31 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Enable all HTML5 persistent features for QGVLauncher + https://bugs.webkit.org/show_bug.cgi?id=33086 + + * QGVLauncher/main.cpp: Call enablePersistentStorage() + (main): + +2009-12-30 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] It should be possible to disable inspector + https://bugs.webkit.org/show_bug.cgi?id=32724 + + This change fixes the build break. Some QtWebKit interfaces + will not be fully functional (most notable QWebInspector) if + INSPECTOR is disabled. + + * Api/qwebinspector.cpp: + (QWebInspector::showEvent): + (QWebInspector::closeEvent): + * Api/qwebpage.cpp: + (webActionForContextMenuAction): + (QWebPagePrivate::getOrCreateInspector): + (QWebPagePrivate::inspectorController): + (QWebPage::triggerAction): + (QWebPage::updatePositionDependentActions): + * WebCoreSupport/InspectorClientQt.cpp: + (WebCore::InspectorClientQt::showWindow): + (WebCore::InspectorClientQt::closeWindow): + +2009-12-30 Janne Koskinen <janne.p.koskinen@digia.com> + + Reviewed by Simon Hausmann. + + Upstream Symbian def files from Qt 4.6. + + These files define the ABI of QtWebKit on Symbian. + + * symbian/bwins/QtWebKitu.def: Added. + * symbian/eabi/QtWebKitu.def: Added. + +2009-12-29 Daniel Bates <dbates@webkit.org> + + Reviewed by Ariya Hidayat. + + https://bugs.webkit.org/show_bug.cgi?id=32925 + + Adds an Open File dialog to make it convenient to open a file + to view in the browser. + + * QGVLauncher/main.cpp: + (MainWindow::load): Modified to call loadURL. + (MainWindow::openFile): Added. + (MainWindow::loadURL): Added. + (MainWindow::buildUI): Added menu item Open File. + +2009-12-29 Robert Hogan <robert@roberthogan.net> + + Reviewed by Eric Seidel. + + [Qt] Fix crash on LayoutTests/fast/loader/empty-embed-src-attribute.html + + Related to https://bugs.webkit.org/show_bug.cgi?id=23806 + + If an embedded document is loaded within a page and it has an empty + URL, use a blank URL for the load request. + + https://bugs.webkit.org/show_bug.cgi?id=33017 + + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::createFrame): + +2009-12-29 Laszlo Gombos <laszlo.1.gombos@nokia.com> + + Rubber-stamped by Simon Hausmann and Holger Freyther. + + [Qt] Remove WebKit/qt/WebKitPart empty directory + + The content of the directory has been removed by r34888. + + * WebKitPart: Removed. + +2009-12-29 Jakub Wieczorek <faw217@gmail.com> + + Reviewed by Eric Seidel. + + [Qt] DRT: Frame loader callbacks differ from the Mac port + https://bugs.webkit.org/show_bug.cgi?id=32989 + + Remove messages from the callbacks that should not dump them to match + the expected results for the http/loading tests. + + Unskip some http/loading tests which succeed now. + + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::dispatchDidPopStateWithinPage): + (WebCore::FrameLoaderClientQt::dispatchWillClose): + (WebCore::FrameLoaderClientQt::dispatchDidReceiveIcon): + (WebCore::FrameLoaderClientQt::dispatchDidClearWindowObjectInWorld): + +2009-12-29 Robert Hogan <robert@roberthogan.net> + + Reviewed by Eric Seidel. + + [Qt] fix fast/dom/Window/window-onFocus.html + + Add support for layouttestcontroller.windowIsKey to Qt DRT and fix issue where + window.onblur was getting dispatched twice from QtWebKit. + + https://bugs.webkit.org/show_bug.cgi?id=32990 + + * Api/qwebpage.cpp: + (QWebPagePrivate::focusOutEvent): + +2009-12-24 Girish Ramakrishnan <girish@forwardbias.in> + + Reviewed by Gustavo Noronha. + + Doc : QGraphicsWebView::zoomFactor was introduced in 4.6. + + * Api/qgraphicswebview.cpp: + +2009-12-22 Simon Hausmann <simon.hausmann@nokia.com> + + Rubber-stamped by Holger Freyther. + + Moved QtLauncher to WebKitTools/ + + * QtLauncher: Removed. + * QtLauncher/QtLauncher.pro: Removed. + * QtLauncher/main.cpp: Removed. + +2009-12-21 David Boddie <dboddie@trolltech.com> + + Reviewed by Simon Hausmann. + + Doc: Minor fixes to language. + + * Api/qwebpage.cpp: + +2009-12-21 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Clean up the WebKit layer unit-tests + + - Use tests.pri for common options + - Standardize file naming + - Move all resources to 'resources' subdir + - Standardize how TESTS_SOURCE_DIR is used + - Get rid of UID3 for symbian (autogenerated) + - Don't build app bundles on Mac OS X + + * tests/benchmarks/loading/loading.pro: Added. + * tests/benchmarks/loading/tst_loading.pro: Removed. + * tests/benchmarks/painting/painting.pro: Added. + * tests/benchmarks/painting/tst_painting.pro: Removed. + * tests/qgraphicswebview/qgraphicswebview.pro: + * tests/qwebelement/qwebelement.pro: + * tests/qwebelement/qwebelement.qrc: Removed. + * tests/qwebelement/resources/image.png: Renamed from WebKit/qt/tests/qwebelement/image.png. + * tests/qwebelement/resources/style.css: Renamed from WebKit/qt/tests/qwebelement/style.css. + * tests/qwebelement/resources/style2.css: Renamed from WebKit/qt/tests/qwebelement/style2.css. + * tests/qwebelement/tst_qwebelement.qrc: Added. + * tests/qwebframe/qwebframe.pro: + * tests/qwebframe/qwebframe.qrc: Removed. + * tests/qwebframe/resources/image.png: Renamed from WebKit/qt/tests/qwebframe/image.png. + * tests/qwebframe/resources/style.css: Renamed from WebKit/qt/tests/qwebframe/style.css. + * tests/qwebframe/resources/test1.html: Renamed from WebKit/qt/tests/qwebframe/test1.html. + * tests/qwebframe/resources/test2.html: Renamed from WebKit/qt/tests/qwebframe/test2.html. + * tests/qwebframe/resources/testiframe.html: Renamed from WebKit/qt/tests/qwebframe/testiframe.html. + * tests/qwebframe/resources/testiframe2.html: Renamed from WebKit/qt/tests/qwebframe/testiframe2.html. + * tests/qwebframe/tst_qwebframe.cpp: + * tests/qwebframe/tst_qwebframe.qrc: Added. + * tests/qwebhistory/qwebhistory.pro: + * tests/qwebhistory/resources/page1.html: Renamed from WebKit/qt/tests/qwebhistory/data/page1.html. + * tests/qwebhistory/resources/page2.html: Renamed from WebKit/qt/tests/qwebhistory/data/page2.html. + * tests/qwebhistory/resources/page3.html: Renamed from WebKit/qt/tests/qwebhistory/data/page3.html. + * tests/qwebhistory/resources/page4.html: Renamed from WebKit/qt/tests/qwebhistory/data/page4.html. + * tests/qwebhistory/resources/page5.html: Renamed from WebKit/qt/tests/qwebhistory/data/page5.html. + * tests/qwebhistory/resources/page6.html: Renamed from WebKit/qt/tests/qwebhistory/data/page6.html. + * tests/qwebhistory/tst_qwebhistory.cpp: + (tst_QWebHistory::): + * tests/qwebhistory/tst_qwebhistory.qrc: + * tests/qwebhistoryinterface/qwebhistoryinterface.pro: + * tests/qwebinspector/qwebinspector.pro: + * tests/qwebpage/qwebpage.pro: + * tests/qwebpage/resources/frame_a.html: Renamed from WebKit/qt/tests/qwebpage/frametest/frame_a.html. + * tests/qwebpage/resources/iframe.html: Renamed from WebKit/qt/tests/qwebpage/frametest/iframe.html. + * tests/qwebpage/resources/iframe2.html: Renamed from WebKit/qt/tests/qwebpage/frametest/iframe2.html. + * tests/qwebpage/resources/iframe3.html: Renamed from WebKit/qt/tests/qwebpage/frametest/iframe3.html. + * tests/qwebpage/resources/index.html: Renamed from WebKit/qt/tests/qwebpage/frametest/index.html. + * tests/qwebpage/tst_qwebpage.cpp: + (tst_QWebPage::backActionUpdate): + (tst_QWebPage::frameAt): + (tst_QWebPage::errorPageExtensionInFrameset): + (tst_QWebPage::screenshot): + * tests/qwebpage/tst_qwebpage.qrc: + * tests/qwebplugindatabase/qwebplugindatabase.pro: + * tests/qwebview/qwebview.pro: + * tests/qwebview/resources/frame_a.html: Renamed from WebKit/qt/tests/qwebview/data/frame_a.html. + * tests/qwebview/resources/index.html: Renamed from WebKit/qt/tests/qwebview/data/index.html. + * tests/qwebview/tst_qwebview.cpp: + (tst_QWebView::reusePage): + (tst_QWebView::crashTests): + * tests/qwebview/tst_qwebview.qrc: + * tests/resources/image2.png: Renamed from WebKit/qt/tests/qwebframe/resources/image2.png. + * tests/tests.pri: Added. + * tests/tests.pro: + +2009-12-18 Ariya Hidayat <ariya.hidayat@gmail.com> + + Build fix, not reviewed. + + * QtLauncher/main.cpp: + (MainWindow::setTouchMocking): Leave setTouchMocking as an empty + function for Qt < 4.6 so that moc still creates a slot for that. + Otherwise, it would have generated a linker error. + +2009-12-18 Adam Roben <aroben@apple.com> + + Qt build fix + + * Api/qwebpage.cpp: Added #include. + +2009-12-18 Adam Roben <aroben@apple.com> + + Qt build fix + + * Api/qwebpage.cpp: + Added #includes. + +2009-12-18 Joe Ligman <joseph.ligman@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Add new API to QWebFrame to scrollRecursively starting with any css overflow + then checking current frame and then ancestors + https://bugs.webkit.org/show_bug.cgi?id=32668 + + * Api/qwebframe.cpp: + (QWebFramePrivate::scrollOverflow): + (QWebFrame::scrollRecursively): + * Api/qwebframe.h: + * Api/qwebframe_p.h: + * tests/qwebframe/qwebframe.qrc: + * tests/qwebframe/testiframe.html: Added. + * tests/qwebframe/testiframe2.html: Added. + * tests/qwebframe/tst_qwebframe.cpp: + +2009-12-18 Simon Hausmann <simon.hausmann@nokia.com> + + Reviewed by Tor Arne Vestbø. + + [Qt] Fix infinite recursion in touch mocking. + + Don't send the fake touch events to the view, as that'll trigger the + event filter again. + + * QtLauncher/main.cpp: + (MainWindow::sendTouchEvent): + +2009-12-17 Benjamin Poulain <benjamin.poulain@nokia.com> + + Reviewed by Simon Hausmann. + + [Qt] Add support for mocking touch events with Q(GV)Launcher + https://bugs.webkit.org/show_bug.cgi?id=32434 + + The event delivery should go through QCoreApplication::sendEvent() + + * QtLauncher/main.cpp: + (MainWindow::sendTouchEvent): + +2009-12-17 Kim Grönholm <kim.gronholm@nomovok.com> + + Reviewed by Simon Hausmann. + + [Qt] Add support for touch events in QWebView and QGraphicsWebView + https://bugs.webkit.org/show_bug.cgi?id=32432 + + * Api/qgraphicswebview.cpp: + (QGraphicsWebView::QGraphicsWebView): + (QGraphicsWebView::sceneEvent): + * Api/qwebview.cpp: + (QWebView::QWebView): + (QWebView::event): + +2009-12-17 Kim Grönholm <kim.gronholm@nomovok.com> + + Reviewed by Simon Hausmann. + + [Qt] Add support for mocking touch events with QtLauncher + https://bugs.webkit.org/show_bug.cgi?id=32434 + + * QtLauncher/main.cpp: + (MainWindow::MainWindow): + (MainWindow::sendTouchEvent): + (MainWindow::eventFilter): + (MainWindow::setTouchMocking): + (MainWindow::setupUI): + +2009-12-14 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Fix JavaScript prompt behavior for empty/null strings. + https://bugs.webkit.org/show_bug.cgi?id=30914 + + The patch is based on the work done by Gupta Manish. + + In the default implementation of the JavaScript prompt + we are using a QInputDialog to get the text and this has + one quirk with regard to not entering any text. + + In other WebKit ports and in Firefox an empty string is + returned but in the Qt case it is a null string. + + Change the API documentation in QWebPage to mention we want to + have a non null string but do the fixup in the ChromeClientQt + to support existing code. + + * Api/qwebpage.cpp: + (QWebPage::javaScriptPrompt): Change API documentation + * WebCoreSupport/ChromeClientQt.cpp: + (WebCore::ChromeClientQt::runJavaScriptPrompt): Fixup null QString + +2009-11-24 Holger Hans Peter Freyther <zecke@selfish.org> + + Reviewed by Simon Hausmann. + + [Qt] Do not disable the inspector on show and hide + https://bugs.webkit.org/show_bug.cgi?id=31851 + + On Qt/X11 with some window managers the window will be + hidden when switching windows. In this case all the results + are gone when coming back to the window. + + Attempt to use the CloseEvent to figure out if the window + was closed and withdrawn as this is more friendly to the + user of the inspector client. + + * Api/qwebinspector.cpp: + (QWebInspector::hideEvent): + (QWebInspector::closeEvent): + * Api/qwebinspector.h: + +2009-12-14 Benjamin Poulain <benjamin.poulain@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Improve the autotests of QtWebkit + https://bugs.webkit.org/show_bug.cgi?id=32216 + + Refactor tst_qwebelement to remove the qWait() + + * tests/qwebelement/tst_qwebelement.cpp: + (tst_QWebElement::style): + +2009-12-14 Andreas Kling <andreas.kling@nokia.com> + + Reviewed by Simon Hausmann. + + Fix the QWebPage inputMethods() autotest after r51758 + to compare the Qt::ImFont property's family against an explicitly + previously configured family. + + https://bugs.webkit.org/show_bug.cgi?id=32491 + + * tests/qwebpage/tst_qwebpage.cpp: + (tst_QWebPage::inputMethods): + +>>>>>>> webkit.org at r54127 2009-12-13 Sam Weinig <sam@webkit.org> Reviewed by Dan Bernstein. @@ -22,6 +988,63 @@ * Api/qwebpage.cpp: (QWebPagePrivate::QWebPagePrivate): +<<<<<<< HEAD +======= +2009-12-13 Benjamin Poulain <benjamin.poulain@nokia.com> + + Reviewed by Simon Hausmann. + + Add a test in Qt for https://bugs.webkit.org/show_bug.cgi?id=29005 + https://bugs.webkit.org/show_bug.cgi?id=29008 + + * tests/qwebframe/tst_qwebframe.cpp: + +2009-12-13 Simon Hausmann <hausmann@webkit.org> + + Reviewed by Holger Freyther. + + [Qt] Re-enable QWebView::renderHints property for Qt for Symbian + + https://bugs.webkit.org/show_bug.cgi?id=28273 + + The bug in Qt's moc that triggered a linking error when declaring this + property has been fixed and we can remove the workaround. + + * Api/qwebview.h: + +2009-12-11 Yael Aharon <yael.aharon@nokia.com> + + Unreviewed build fix for Qt versions < 4.6. + + * tests/qwebframe/tst_qwebframe.cpp: + * tests/qwebview/tst_qwebview.cpp: + (tst_QWebView::reusePage): + +2009-12-11 Girish Ramakrishnan <girish@forwardbias.in> + + Reviewed by Tor Arne Vestbø. + + [Qt] Updated QWebElement documentation + + findAll() returns a QWebElementCollection, not QList<QWebElement>. + + * docs/webkitsnippets/webelement/main.cpp: + (findAll): + +2009-12-11 Simon Hausmann <hausmann@webkit.org>, Kim Grönholm <kim.gronholm@nomovok.com> + + Reviewed by Antti Koivisto. + + Forward Qt touch events to the event handler as platform touch events. + + https://bugs.webkit.org/show_bug.cgi?id=32114 + + * Api/qwebpage.cpp: + (QWebPagePrivate::touchEvent): + (QWebPage::event): + * Api/qwebpage_p.h: + +>>>>>>> webkit.org at r54127 2009-12-07 Benjamin Poulain <benjamin.poulain@nokia.com> Reviewed by Kenneth Rohde Christiansen. diff --git a/WebKit/qt/QGVLauncher/main.cpp b/WebKit/qt/QGVLauncher/main.cpp index 2021cb6..eefff7f 100644 --- a/WebKit/qt/QGVLauncher/main.cpp +++ b/WebKit/qt/QGVLauncher/main.cpp @@ -72,6 +72,8 @@ public: WebView(QGraphicsItem* parent = 0) : QGraphicsWebView(parent) { + if (QApplication::instance()->arguments().contains("--cacheWebView")) + setCacheMode(QGraphicsItem::DeviceCoordinateCache); } void setYRotation(qreal angle) { @@ -253,6 +255,12 @@ public: setAttribute(Qt::WA_DeleteOnClose); view->setScene(scene->scene()); + const QStringList arguments = QApplication::instance()->arguments(); + const int indexOfViewportUpdateMode = arguments.indexOf("--updateMode"); + if (indexOfViewportUpdateMode > 1 && indexOfViewportUpdateMode < arguments.count() - 1) { + const QString updateMode = arguments[indexOfViewportUpdateMode+1] + "ViewportUpdate"; + view->setViewportUpdateMode(static_cast<QGraphicsView::ViewportUpdateMode>(QGraphicsView::staticMetaObject.enumerator(QGraphicsView::staticMetaObject.indexOfEnumerator("ViewportUpdateMode")).keysToValue(updateMode.toAscii()))); + } setCentralWidget(view); @@ -277,7 +285,7 @@ public: QState *s2 = new QState(machine); s2->assignProperty(scene->webView(), "yRotation", -90); - s1->addTransition(s1, SIGNAL(polished()), s2); + s1->addTransition(s1, SIGNAL(propertiesAssigned()), s2); QAbstractTransition *t2 = s2->addTransition(s0); t2->addAnimation(yRotationAnim); @@ -296,9 +304,7 @@ public: if (!deducedUrl.isValid()) deducedUrl = QUrl("http://" + url + "/"); - urlEdit->setText(deducedUrl.toEncoded()); - scene->webView()->load(deducedUrl); - scene->webView()->setFocus(Qt::OtherFocusReason); + loadURL(deducedUrl); } QWebPage* page() const @@ -307,6 +313,23 @@ public: } protected slots: + + void openFile() + { + static const QString filter("HTML Files (*.htm *.html);;Text Files (*.txt);;Image Files (*.gif *.jpg *.png);;All Files (*)"); + + QFileDialog fileDialog(this, tr("Open"), QString(), filter); + fileDialog.setAcceptMode(QFileDialog::AcceptOpen); + fileDialog.setFileMode(QFileDialog::ExistingFile); + fileDialog.setOptions(QFileDialog::ReadOnly); + + if (fileDialog.exec()) { + QString selectedFile = fileDialog.selectedFiles()[0]; + if (!selectedFile.isEmpty()) + loadURL(QUrl::fromLocalFile(selectedFile)); + } + } + void changeLocation() { load(urlEdit->text()); @@ -368,6 +391,17 @@ public slots: } private: + + void loadURL(const QUrl& url) + { + if (!url.isValid()) + return; + + urlEdit->setText(url.toString()); + scene->webView()->load(url); + scene->webView()->setFocus(Qt::OtherFocusReason); + } + void buildUI() { QWebPage* page = scene->webView()->page(); @@ -383,9 +417,12 @@ private: bar->addWidget(urlEdit); QMenu* fileMenu = menuBar()->addMenu("&File"); - fileMenu->addAction("New Window", this, SLOT(newWindow())); - fileMenu->addAction("Clone view", this, SLOT(clone())); - fileMenu->addAction("Close", this, SLOT(close())); + fileMenu->addAction("New Window", this, SLOT(newWindow()), QKeySequence::New); + fileMenu->addAction("Open File...", this, SLOT(openFile()), QKeySequence::Open); + fileMenu->addAction("Clone Window", this, SLOT(clone())); + fileMenu->addAction("Close Window", this, SLOT(close()), QKeySequence::Close); + fileMenu->addSeparator(); + fileMenu->addAction("Quit", QApplication::instance(), SLOT(closeAllWindows()), QKeySequence(Qt::CTRL | Qt::Key_Q)); QMenu* viewMenu = menuBar()->addMenu("&View"); viewMenu->addAction(page->action(QWebPage::Stop)); @@ -418,6 +455,10 @@ QWebPage* WebPage::createWindow(QWebPage::WebWindowType) int main(int argc, char** argv) { QApplication app(argc, argv); + if (app.arguments().contains("--help")) { + qDebug() << "Usage: QGVLauncher [--url url] [--compositing] [--updateMode Full|Minimal|Smart|No|BoundingRect] [--cacheWebView]\n"; + return 0; + } QString url = QString("file://%1/%2").arg(QDir::homePath()).arg(QLatin1String("index.html")); app.setApplicationName("GQVLauncher"); @@ -426,17 +467,23 @@ int main(int argc, char** argv) QWebSettings::setMaximumPagesInCache(4); QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled, true); QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true); - QWebSettings::globalSettings()->setAttribute(QWebSettings::LocalStorageEnabled, true); + QWebSettings::enablePersistentStorage(); const QStringList args = app.arguments(); - if (args.count() > 1) + const int indexOfUrl = args.indexOf("--url"); + if (indexOfUrl > 0 && indexOfUrl < args.count() - 1) + url = args.at(indexOfUrl+1); + else if (args.count() > 1) url = args.at(1); + if (args.contains("--compositing")) + QWebSettings::globalSettings()->setAttribute(QWebSettings::AcceleratedCompositingEnabled, true); MainWindow* window = new MainWindow; window->load(url); - for (int i = 2; i < args.count(); i++) - window->newWindow(args.at(i)); + for (int i = 2; i < args.count(); ++i) + if (!args.at(i).startsWith("-") && !args.at(i - 1).startsWith("-")) + window->newWindow(args.at(i)); window->show(); return app.exec(); diff --git a/WebKit/qt/QtLauncher/QtLauncher.pro b/WebKit/qt/QtLauncher/QtLauncher.pro deleted file mode 100644 index 133869c..0000000 --- a/WebKit/qt/QtLauncher/QtLauncher.pro +++ /dev/null @@ -1,16 +0,0 @@ -TEMPLATE = app -SOURCES += main.cpp -CONFIG -= app_bundle -CONFIG += uitools -DESTDIR = ../../../bin - -include(../../../WebKit.pri) - -QT += network -macx:QT+=xml -QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR - -symbian { - TARGET.UID3 = 0xA000E543 - TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices -} diff --git a/WebKit/qt/QtLauncher/main.cpp b/WebKit/qt/QtLauncher/main.cpp deleted file mode 100644 index 2286712..0000000 --- a/WebKit/qt/QtLauncher/main.cpp +++ /dev/null @@ -1,656 +0,0 @@ -/* - * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2009 Girish Ramakrishnan <girish@forwardbias.in> - * Copyright (C) 2006 George Staikos <staikos@kde.org> - * Copyright (C) 2006 Dirk Mueller <mueller@kde.org> - * Copyright (C) 2006 Zack Rusin <zack@kde.org> - * Copyright (C) 2006 Simon Hausmann <hausmann@kde.org> - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include <QtGui> -#include <QtNetwork/QNetworkProxy> -#include <QtNetwork/QNetworkRequest> -#if !defined(QT_NO_PRINTER) -#include <QPrintPreviewDialog> -#endif - -#ifndef QT_NO_UITOOLS -#include <QtUiTools/QUiLoader> -#endif - -#include <QDebug> -#include <QFile> -#include <QTextStream> -#include <QVector> - -#include <cstdio> -#include <qwebelement.h> -#include <qwebframe.h> -#include <qwebinspector.h> -#include <qwebpage.h> -#include <qwebsettings.h> -#include <qwebview.h> - - -#ifndef NDEBUG -void QWEBKIT_EXPORT qt_drt_garbageCollector_collect(); -#endif - -static QUrl urlFromUserInput(const QString& input) -{ -#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) - return QUrl::fromUserInput(input); -#else - return QUrl(input); -#endif -} - -class WebView : public QWebView { - Q_OBJECT -public: - WebView(QWidget* parent) : QWebView(parent) {} - -protected: - virtual void contextMenuEvent(QContextMenuEvent* event) - { - QMenu* menu = page()->createStandardContextMenu(); - - QWebHitTestResult r = page()->mainFrame()->hitTestContent(event->pos()); - - if (!r.linkUrl().isEmpty()) { - QAction* newTabAction = menu->addAction(tr("Open in Default &Browser"), this, SLOT(openUrlInDefaultBrowser())); - newTabAction->setData(r.linkUrl()); - menu->insertAction(menu->actions().at(2), newTabAction); - } - - menu->exec(mapToGlobal(event->pos())); - delete menu; - } - - virtual void mousePressEvent(QMouseEvent* event) - { - mouseButtons = event->buttons(); - keyboardModifiers = event->modifiers(); - - QWebView::mousePressEvent(event); - } - -public slots: - void openUrlInDefaultBrowser(const QUrl &url = QUrl()) - { - if (QAction* action = qobject_cast<QAction*>(sender())) - QDesktopServices::openUrl(action->data().toUrl()); - else - QDesktopServices::openUrl(url); - } - -public: - Qt::MouseButtons mouseButtons; - Qt::KeyboardModifiers keyboardModifiers; -}; - -class WebPage : public QWebPage { -public: - WebPage(QWidget *parent) : QWebPage(parent) {} - - virtual QWebPage *createWindow(QWebPage::WebWindowType); - virtual QObject* createPlugin(const QString&, const QUrl&, const QStringList&, const QStringList&); - virtual bool supportsExtension(QWebPage::Extension extension) const - { - if (extension == QWebPage::ErrorPageExtension) - return true; - return false; - } - virtual bool extension(Extension extension, const ExtensionOption *option, ExtensionReturn *output); - - - virtual bool acceptNavigationRequest(QWebFrame* frame, const QNetworkRequest &request, NavigationType type) - { - WebView* webView = static_cast<WebView*>(view()); - if (webView->keyboardModifiers & Qt::ShiftModifier) { - QWebPage* page = createWindow(QWebPage::WebBrowserWindow); - page->mainFrame()->load(request); - return false; - } - if (webView->keyboardModifiers & Qt::AltModifier) { - webView->openUrlInDefaultBrowser(request.url()); - return false; - } - - return QWebPage::acceptNavigationRequest(frame, request, type); - } -}; - -class WebInspector : public QWebInspector { - Q_OBJECT -public: - WebInspector(QWidget* parent) : QWebInspector(parent) {} -signals: - void visibleChanged(bool nowVisible); -protected: - void showEvent(QShowEvent* event) - { - QWebInspector::showEvent(event); - emit visibleChanged(true); - } - void hideEvent(QHideEvent* event) - { - QWebInspector::hideEvent(event); - emit visibleChanged(false); - } -}; - -class MainWindow : public QMainWindow { - Q_OBJECT -public: - MainWindow(QString url = QString()): currentZoom(100) - { - setAttribute(Qt::WA_DeleteOnClose); - if (qgetenv("QTLAUNCHER_USE_ARGB_VISUALS").toInt() == 1) - setAttribute(Qt::WA_TranslucentBackground); - - QSplitter* splitter = new QSplitter(Qt::Vertical, this); - setCentralWidget(splitter); - - view = new WebView(splitter); - WebPage* page = new WebPage(view); - view->setPage(page); - connect(view, SIGNAL(loadFinished(bool)), - this, SLOT(loadFinished())); - connect(view, SIGNAL(titleChanged(const QString&)), - this, SLOT(setWindowTitle(const QString&))); - connect(view->page(), SIGNAL(linkHovered(const QString&, const QString&, const QString &)), - this, SLOT(showLinkHover(const QString&, const QString&))); - connect(view->page(), SIGNAL(windowCloseRequested()), this, SLOT(close())); - - inspector = new WebInspector(splitter); - inspector->setPage(page); - inspector->hide(); - connect(this, SIGNAL(destroyed()), inspector, SLOT(deleteLater())); - - setupUI(); - - // set the proxy to the http_proxy env variable - if present - QUrl proxyUrl = urlFromUserInput(qgetenv("http_proxy")); - - if (proxyUrl.isValid() && !proxyUrl.host().isEmpty()) { - int proxyPort = (proxyUrl.port() > 0) ? proxyUrl.port() : 8080; - page->networkAccessManager()->setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, proxyUrl.host(), proxyPort)); - } - - QFileInfo fi(url); - if (fi.exists() && fi.isRelative()) - url = fi.absoluteFilePath(); - - QUrl qurl = urlFromUserInput(url); - if (qurl.scheme().isEmpty()) - qurl = QUrl("http://" + url + "/"); - if (qurl.isValid()) { - urlEdit->setText(qurl.toEncoded()); - view->load(qurl); - } - - // the zoom values are chosen to be like in Mozilla Firefox 3 - zoomLevels << 30 << 50 << 67 << 80 << 90; - zoomLevels << 100; - zoomLevels << 110 << 120 << 133 << 150 << 170 << 200 << 240 << 300; - } - - QWebPage* webPage() const - { - return view->page(); - } - - QWebView* webView() const - { - return view; - } - -protected slots: - - void changeLocation() - { - QString string = urlEdit->text(); - QUrl url = urlFromUserInput(string); - if (url.scheme().isEmpty()) - url = QUrl("http://" + string + "/"); - if (url.isValid()) { - urlEdit->setText(url.toEncoded()); - view->load(url); - view->setFocus(Qt::OtherFocusReason); - } - } - - void loadFinished() - { - urlEdit->setText(view->url().toString()); - - QUrl::FormattingOptions opts; - opts |= QUrl::RemoveScheme; - opts |= QUrl::RemoveUserInfo; - opts |= QUrl::StripTrailingSlash; - QString s = view->url().toString(opts); - s = s.mid(2); - if (s.isEmpty()) - return; - - if (!urlList.contains(s)) - urlList += s; - urlModel.setStringList(urlList); - } - - void showLinkHover(const QString &link, const QString &toolTip) - { - statusBar()->showMessage(link); -#ifndef QT_NO_TOOLTIP - if (!toolTip.isEmpty()) - QToolTip::showText(QCursor::pos(), toolTip); -#endif - } - - void zoomIn() - { - int i = zoomLevels.indexOf(currentZoom); - Q_ASSERT(i >= 0); - if (i < zoomLevels.count() - 1) - currentZoom = zoomLevels[i + 1]; - - view->setZoomFactor(qreal(currentZoom) / 100.0); - } - - void zoomOut() - { - int i = zoomLevels.indexOf(currentZoom); - Q_ASSERT(i >= 0); - if (i > 0) - currentZoom = zoomLevels[i - 1]; - - view->setZoomFactor(qreal(currentZoom) / 100.0); - } - - void resetZoom() - { - currentZoom = 100; - view->setZoomFactor(1.0); - } - - void toggleZoomTextOnly(bool b) - { - view->page()->settings()->setAttribute(QWebSettings::ZoomTextOnly, b); - } - - void print() - { -#if !defined(QT_NO_PRINTER) - QPrintPreviewDialog dlg(this); - connect(&dlg, SIGNAL(paintRequested(QPrinter *)), - view, SLOT(print(QPrinter *))); - dlg.exec(); -#endif - } - - void screenshot() - { - QPixmap pixmap = QPixmap::grabWidget(view); - QLabel* label = new QLabel; - label->setAttribute(Qt::WA_DeleteOnClose); - label->setWindowTitle("Screenshot - Preview"); - label->setPixmap(pixmap); - label->show(); - - QString fileName = QFileDialog::getSaveFileName(label, "Screenshot"); - if (!fileName.isEmpty()) { - pixmap.save(fileName, "png"); - label->setWindowTitle(QString("Screenshot - Saved at %1").arg(fileName)); - } - } - - void setEditable(bool on) - { - view->page()->setContentEditable(on); - formatMenuAction->setVisible(on); - } - - /* - void dumpPlugins() { - QList<QWebPluginInfo> plugins = QWebSettings::pluginDatabase()->plugins(); - foreach (const QWebPluginInfo plugin, plugins) { - qDebug() << "Plugin:" << plugin.name(); - foreach (const QWebPluginInfo::MimeType mime, plugin.mimeTypes()) { - qDebug() << " " << mime.name; - } - } - } - */ - - void dumpHtml() - { - qDebug() << "HTML: " << view->page()->mainFrame()->toHtml(); - } - - void selectElements() - { - bool ok; - QString str = QInputDialog::getText(this, "Select elements", "Choose elements", - QLineEdit::Normal, "a", &ok); - - if (ok && !str.isEmpty()) { - QWebElementCollection result = view->page()->mainFrame()->findAllElements(str); - foreach (QWebElement e, result) - e.setStyleProperty("background-color", "yellow"); - statusBar()->showMessage(QString("%1 element(s) selected").arg(result.count()), 5000); - } - } - -public slots: - - void newWindow(const QString &url = QString()) - { - MainWindow* mw = new MainWindow(url); - mw->show(); - } - -private: - - QVector<int> zoomLevels; - int currentZoom; - - // create the status bar, tool bar & menu - void setupUI() - { - progress = new QProgressBar(this); - progress->setRange(0, 100); - progress->setMinimumSize(100, 20); - progress->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); - progress->hide(); - statusBar()->addPermanentWidget(progress); - - connect(view, SIGNAL(loadProgress(int)), progress, SLOT(show())); - connect(view, SIGNAL(loadProgress(int)), progress, SLOT(setValue(int))); - connect(view, SIGNAL(loadFinished(bool)), progress, SLOT(hide())); - - urlEdit = new QLineEdit(this); - urlEdit->setSizePolicy(QSizePolicy::Expanding, urlEdit->sizePolicy().verticalPolicy()); - connect(urlEdit, SIGNAL(returnPressed()), - SLOT(changeLocation())); - QCompleter* completer = new QCompleter(this); - urlEdit->setCompleter(completer); - completer->setModel(&urlModel); - - QToolBar* bar = addToolBar("Navigation"); - bar->addAction(view->pageAction(QWebPage::Back)); - bar->addAction(view->pageAction(QWebPage::Forward)); - bar->addAction(view->pageAction(QWebPage::Reload)); - bar->addAction(view->pageAction(QWebPage::Stop)); - bar->addWidget(urlEdit); - - QMenu* fileMenu = menuBar()->addMenu("&File"); - QAction* newWindow = fileMenu->addAction("New Window", this, SLOT(newWindow())); - fileMenu->addAction(tr("Print"), this, SLOT(print()), QKeySequence::Print); - QAction* screenshot = fileMenu->addAction("Screenshot", this, SLOT(screenshot())); - fileMenu->addAction("Close", this, SLOT(close())); - - QMenu* editMenu = menuBar()->addMenu("&Edit"); - editMenu->addAction(view->pageAction(QWebPage::Undo)); - editMenu->addAction(view->pageAction(QWebPage::Redo)); - editMenu->addSeparator(); - editMenu->addAction(view->pageAction(QWebPage::Cut)); - editMenu->addAction(view->pageAction(QWebPage::Copy)); - editMenu->addAction(view->pageAction(QWebPage::Paste)); - editMenu->addSeparator(); - QAction* setEditable = editMenu->addAction("Set Editable", this, SLOT(setEditable(bool))); - setEditable->setCheckable(true); - - QMenu* viewMenu = menuBar()->addMenu("&View"); - viewMenu->addAction(view->pageAction(QWebPage::Stop)); - viewMenu->addAction(view->pageAction(QWebPage::Reload)); - viewMenu->addSeparator(); - QAction* zoomIn = viewMenu->addAction("Zoom &In", this, SLOT(zoomIn())); - QAction* zoomOut = viewMenu->addAction("Zoom &Out", this, SLOT(zoomOut())); - QAction* resetZoom = viewMenu->addAction("Reset Zoom", this, SLOT(resetZoom())); - QAction* zoomTextOnly = viewMenu->addAction("Zoom Text Only", this, SLOT(toggleZoomTextOnly(bool))); - zoomTextOnly->setCheckable(true); - zoomTextOnly->setChecked(false); - viewMenu->addSeparator(); - viewMenu->addAction("Dump HTML", this, SLOT(dumpHtml())); - //viewMenu->addAction("Dump plugins", this, SLOT(dumpPlugins())); - - QMenu* formatMenu = new QMenu("F&ormat", this); - formatMenuAction = menuBar()->addMenu(formatMenu); - formatMenuAction->setVisible(false); - formatMenu->addAction(view->pageAction(QWebPage::ToggleBold)); - formatMenu->addAction(view->pageAction(QWebPage::ToggleItalic)); - formatMenu->addAction(view->pageAction(QWebPage::ToggleUnderline)); - QMenu* writingMenu = formatMenu->addMenu(tr("Writing Direction")); - writingMenu->addAction(view->pageAction(QWebPage::SetTextDirectionDefault)); - writingMenu->addAction(view->pageAction(QWebPage::SetTextDirectionLeftToRight)); - writingMenu->addAction(view->pageAction(QWebPage::SetTextDirectionRightToLeft)); - - newWindow->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_N)); - screenshot->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_S)); - view->pageAction(QWebPage::Back)->setShortcut(QKeySequence::Back); - view->pageAction(QWebPage::Stop)->setShortcut(Qt::Key_Escape); - view->pageAction(QWebPage::Forward)->setShortcut(QKeySequence::Forward); - view->pageAction(QWebPage::Reload)->setShortcut(QKeySequence::Refresh); - view->pageAction(QWebPage::Undo)->setShortcut(QKeySequence::Undo); - view->pageAction(QWebPage::Redo)->setShortcut(QKeySequence::Redo); - view->pageAction(QWebPage::Cut)->setShortcut(QKeySequence::Cut); - view->pageAction(QWebPage::Copy)->setShortcut(QKeySequence::Copy); - view->pageAction(QWebPage::Paste)->setShortcut(QKeySequence::Paste); - zoomIn->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Plus)); - zoomOut->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Minus)); - resetZoom->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_0)); - view->pageAction(QWebPage::ToggleBold)->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_B)); - view->pageAction(QWebPage::ToggleItalic)->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_I)); - view->pageAction(QWebPage::ToggleUnderline)->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_U)); - - QMenu* toolsMenu = menuBar()->addMenu("&Tools"); - toolsMenu->addAction("Select elements...", this, SLOT(selectElements())); - QAction* showInspectorAction = toolsMenu->addAction("Show inspector", inspector, SLOT(setVisible(bool))); - showInspectorAction->setCheckable(true); - showInspectorAction->setShortcuts(QList<QKeySequence>() << QKeySequence(tr("F12"))); - showInspectorAction->connect(inspector, SIGNAL(visibleChanged(bool)), SLOT(setChecked(bool))); - - } - - QWebView* view; - QLineEdit* urlEdit; - QProgressBar* progress; - WebInspector* inspector; - - QAction* formatMenuAction; - - QStringList urlList; - QStringListModel urlModel; -}; - -bool WebPage::extension(Extension extension, const ExtensionOption *option, ExtensionReturn *output) -{ - const QWebPage::ErrorPageExtensionOption* info = static_cast<const QWebPage::ErrorPageExtensionOption*>(option); - QWebPage::ErrorPageExtensionReturn* errorPage = static_cast<QWebPage::ErrorPageExtensionReturn*>(output); - - errorPage->content = QString("<html><head><title>Failed loading page</title></head><body>%1</body></html>") - .arg(info->errorString).toUtf8(); - - return true; -} - -QWebPage* WebPage::createWindow(QWebPage::WebWindowType) -{ - MainWindow* mw = new MainWindow; - mw->show(); - return mw->webPage(); -} - -QObject* WebPage::createPlugin(const QString &classId, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues) -{ - Q_UNUSED(url); - Q_UNUSED(paramNames); - Q_UNUSED(paramValues); -#ifndef QT_NO_UITOOLS - QUiLoader loader; - return loader.createWidget(classId, view()); -#else - Q_UNUSED(classId); - return 0; -#endif -} - -class URLLoader : public QObject { - Q_OBJECT -public: - URLLoader(QWebView* view, const QString& inputFileName) - : m_view(view) - , m_stdOut(stdout) - , m_loaded(0) - { - init(inputFileName); - } - -public slots: - void loadNext() - { - QString qstr; - if (getUrl(qstr)) { - QUrl url(qstr, QUrl::StrictMode); - if (url.isValid()) { - m_stdOut << "Loading " << qstr << " ......" << ++m_loaded << endl; - m_view->load(url); - } else - loadNext(); - } else - disconnect(m_view, 0, this, 0); - } - -private: - void init(const QString& inputFileName) - { - QFile inputFile(inputFileName); - if (inputFile.open(QIODevice::ReadOnly | QIODevice::Text)) { - QTextStream stream(&inputFile); - QString line; - while (true) { - line = stream.readLine(); - if (line.isNull()) - break; - m_urls.append(line); - } - } else { - qDebug() << "Cant't open list file"; - exit(0); - } - m_index = 0; - inputFile.close(); - } - - bool getUrl(QString& qstr) - { - if (m_index == m_urls.size()) - return false; - - qstr = m_urls[m_index++]; - return true; - } - -private: - QVector<QString> m_urls; - int m_index; - QWebView* m_view; - QTextStream m_stdOut; - int m_loaded; -}; - -#include "main.moc" - -int launcherMain(const QApplication& app) -{ -#ifndef NDEBUG - int retVal = app.exec(); - qt_drt_garbageCollector_collect(); - QWebSettings::clearMemoryCaches(); - return retVal; -#else - return app.exec(); -#endif -} - -int main(int argc, char **argv) -{ - QApplication app(argc, argv); - QString defaultUrl = QString("file://%1/%2").arg(QDir::homePath()).arg(QLatin1String("index.html")); - - QWebSettings::setMaximumPagesInCache(4); - - app.setApplicationName("QtLauncher"); - app.setApplicationVersion("0.1"); - - QWebSettings::setObjectCacheCapacities((16*1024*1024) / 8, (16*1024*1024) / 8, 16*1024*1024); - - QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled, true); - QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true); - QWebSettings::enablePersistentStorage(); - - // To allow QWebInspector's configuration persistence - QCoreApplication::setOrganizationName("Nokia"); - QCoreApplication::setApplicationName("QtLauncher"); - - const QStringList args = app.arguments(); - - if (args.contains(QLatin1String("-r"))) { - // robotized - QString listFile = args.at(2); - if (!(args.count() == 3) && QFile::exists(listFile)) { - qDebug() << "Usage: QtLauncher -r listfile"; - exit(0); - } - MainWindow* window = new MainWindow; - QWebView* view = window->webView(); - URLLoader loader(view, listFile); - QObject::connect(view, SIGNAL(loadFinished(bool)), &loader, SLOT(loadNext())); - loader.loadNext(); - window->show(); - launcherMain(app); - } else { - MainWindow* window = 0; - - // Look though the args for something we can open - for (int i = 1; i < args.count(); i++) { - if (!args.at(i).startsWith("-")) { - if (!window) - window = new MainWindow(args.at(i)); - else - window->newWindow(args.at(i)); - } - } - - // If not, just open the default URL - if (!window) - window = new MainWindow(defaultUrl); - - window->show(); - launcherMain(app); - } -} diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp index eb7ac9a..f1e6a86 100644 --- a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp @@ -25,6 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + #include "config.h" #include "ChromeClientQt.h" @@ -38,8 +39,13 @@ #include "NotImplemented.h" #include "WindowFeatures.h" #include "DatabaseTracker.h" -#include "SecurityOrigin.h" +#include "QtFallbackWebPopup.h" #include "QWebPageClient.h" +#include "SecurityOrigin.h" + +#include <qdebug.h> +#include <qtextdocument.h> +#include <qtooltip.h> #include "qwebpage.h" #include "qwebpage_p.h" @@ -48,12 +54,11 @@ #include "qwebsecurityorigin_p.h" #include "qwebview.h" -#include <qtooltip.h> -#include <qtextdocument.h> - -namespace WebCore -{ +#if USE(ACCELERATED_COMPOSITING) +#include "GraphicsLayerQt.h" +#endif +namespace WebCore { ChromeClientQt::ChromeClientQt(QWebPage* webPage) : m_webPage(webPage) @@ -283,7 +288,14 @@ bool ChromeClientQt::runJavaScriptPrompt(Frame* f, const String& message, const QString x = result; FrameLoaderClientQt *fl = static_cast<FrameLoaderClientQt*>(f->loader()->client()); bool rc = m_webPage->javaScriptPrompt(fl->webFrame(), (QString)message, (QString)defaultValue, &x); - result = x; + + // Fix up a quirk in the QInputDialog class. If no input happened the string should be empty + // but it is null. See https://bugs.webkit.org/show_bug.cgi?id=30914. + if (rc && x.isNull()) + result = String(""); + else + result = x; + return rc; } @@ -458,4 +470,31 @@ void ChromeClientQt::requestGeolocationPermissionForFrame(Frame*, Geolocation*) notImplemented(); } +#if USE(ACCELERATED_COMPOSITING) +void ChromeClientQt::attachRootGraphicsLayer(Frame* frame, GraphicsLayer* graphicsLayer) +{ + if (platformPageClient()) + platformPageClient()->setRootGraphicsLayer(graphicsLayer ? graphicsLayer->nativeLayer() : 0); +} + +void ChromeClientQt::setNeedsOneShotDrawingSynchronization() +{ + // we want the layers to synchronize next time we update the screen anyway + if (platformPageClient()) + platformPageClient()->markForSync(false); +} + +void ChromeClientQt::scheduleCompositingLayerSync() +{ + // we want the layers to synchronize ASAP + if (platformPageClient()) + platformPageClient()->markForSync(true); +} +#endif + +QtAbstractWebPopup* ChromeClientQt::createSelectPopup() +{ + return new QtFallbackWebPopup; +} + } diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/WebKit/qt/WebCoreSupport/ChromeClientQt.h index 939fe04..7699349 100644 --- a/WebKit/qt/WebCoreSupport/ChromeClientQt.h +++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.h @@ -42,6 +42,7 @@ namespace WebCore { class FloatRect; class Page; struct FrameLoadRequest; + class QtAbstractWebPopup; class ChromeClientQt : public ChromeClient { @@ -122,6 +123,19 @@ namespace WebCore { #if ENABLE(OFFLINE_WEB_APPLICATIONS) virtual void reachedMaxAppCacheSize(int64_t spaceNeeded); #endif + +#if USE(ACCELERATED_COMPOSITING) + // see ChromeClient.h + // this is a hook for WebCore to tell us what we need to do with the GraphicsLayers + virtual void attachRootGraphicsLayer(Frame*, GraphicsLayer*); + virtual void setNeedsOneShotDrawingSynchronization(); + virtual void scheduleCompositingLayerSync(); +#endif + +#if ENABLE(TOUCH_EVENTS) + virtual void needTouchEvents(bool) { } +#endif + virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>); virtual void formStateDidChange(const Node*) { } @@ -134,6 +148,8 @@ namespace WebCore { virtual void requestGeolocationPermissionForFrame(Frame*, Geolocation*); + QtAbstractWebPopup* createSelectPopup(); + QWebPage* m_webPage; WebCore::KURL lastHoverURL; WebCore::String lastHoverTitle; diff --git a/WebKit/qt/WebCoreSupport/DragClientQt.cpp b/WebKit/qt/WebCoreSupport/DragClientQt.cpp index 99e438d..e48c3e3 100644 --- a/WebKit/qt/WebCoreSupport/DragClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/DragClientQt.cpp @@ -27,6 +27,8 @@ #include "DragClientQt.h" #include "ClipboardQt.h" +#include "Frame.h" +#include "PlatformMouseEvent.h" #include "qwebpage.h" #include <QDrag> @@ -35,6 +37,32 @@ namespace WebCore { +static inline Qt::DropActions dragOperationsToDropActions(unsigned op) +{ + Qt::DropActions result = Qt::IgnoreAction; + if (op & DragOperationCopy) + result = Qt::CopyAction; + if (op & DragOperationMove) + result |= Qt::MoveAction; + if (op & DragOperationGeneric) + result |= Qt::MoveAction; + if (op & DragOperationLink) + result |= Qt::LinkAction; + return result; +} + +static inline DragOperation dropActionToDragOperation(Qt::DropActions action) +{ + DragOperation result = DragOperationNone; + if (action & Qt::CopyAction) + result = DragOperationCopy; + if (action & Qt::LinkAction) + result = DragOperationLink; + if (action & Qt::MoveAction) + result = DragOperationMove; + return result; +} + DragDestinationAction DragClientQt::actionMaskForDrag(DragData*) { return DragDestinationActionAny; @@ -58,7 +86,7 @@ void DragClientQt::willPerformDragSourceAction(DragSourceAction, const IntPoint& { } -void DragClientQt::startDrag(DragImageRef, const IntPoint&, const IntPoint&, Clipboard* clipboard, Frame*, bool) +void DragClientQt::startDrag(DragImageRef, const IntPoint&, const IntPoint&, Clipboard* clipboard, Frame* frame, bool) { #ifndef QT_NO_DRAGANDDROP QMimeData* clipboardData = static_cast<ClipboardQt*>(clipboard)->clipboardData(); @@ -66,10 +94,15 @@ void DragClientQt::startDrag(DragImageRef, const IntPoint&, const IntPoint&, Cli QWidget* view = m_webPage->view(); if (view) { QDrag *drag = new QDrag(view); - if (clipboardData->hasImage()) + if (clipboardData && clipboardData->hasImage()) drag->setPixmap(qvariant_cast<QPixmap>(clipboardData->imageData())); + DragOperation dragOperationMask = clipboard->sourceOperation(); drag->setMimeData(clipboardData); - drag->start(); + Qt::DropAction actualDropAction = drag->exec(dragOperationsToDropActions(dragOperationMask)); + + // Send dragEnd event + PlatformMouseEvent me(m_webPage->view()->mapFromGlobal(QCursor::pos()), QCursor::pos(), LeftButton, MouseEventMoved, 0, false, false, false, false, 0); + frame->eventHandler()->dragSourceEndedAt(me, dropActionToDragOperation(actualDropAction)); } #endif } diff --git a/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/WebKit/qt/WebCoreSupport/EditorClientQt.cpp index 3091a43..90ebb1d 100644 --- a/WebKit/qt/WebCoreSupport/EditorClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/EditorClientQt.cpp @@ -625,7 +625,12 @@ void EditorClientQt::setInputMethodState(bool active) } } webPageClient->setInputMethodHint(Qt::ImhHiddenText, isPasswordField); -#endif +#ifdef Q_WS_MAEMO_5 + // Maemo 5 MicroB Browser disables auto-uppercase and predictive text, thus, so do we. + webPageClient->setInputMethodHint(Qt::ImhNoAutoUppercase, true); + webPageClient->setInputMethodHint(Qt::ImhNoPredictiveText, true); +#endif // Q_WS_MAEMO_5 +#endif // QT_VERSION check webPageClient->setInputMethodEnabled(active); } emit m_page->microFocusChanged(); diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp index 3c30ab5..760e37e 100644 --- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp @@ -331,8 +331,6 @@ void FrameLoaderClientQt::dispatchDidPopStateWithinPage() void FrameLoaderClientQt::dispatchWillClose() { - if (dumpFrameLoaderCallbacks) - printf("%s - willCloseFrame\n", qPrintable(drtDescriptionSuitableForTestResult(m_frame))); } @@ -599,9 +597,6 @@ String FrameLoaderClientQt::userAgent(const KURL& url) void FrameLoaderClientQt::dispatchDidReceiveIcon() { - if (dumpFrameLoaderCallbacks) - printf("%s - didReceiveIconForFrame\n", qPrintable(drtDescriptionSuitableForTestResult(m_frame))); - if (m_webFrame) { emit m_webFrame->iconChanged(); } @@ -626,9 +621,6 @@ void FrameLoaderClientQt::dispatchDidClearWindowObjectInWorld(DOMWrapperWorld* w if (world != mainThreadNormalWorld()) return; - if (dumpFrameLoaderCallbacks) - printf("%s - didClearWindowObjectForFrame\n", qPrintable(drtDescriptionSuitableForTestResult(m_frame))); - if (m_webFrame) emit m_webFrame->javaScriptWindowObjectCleared(); } @@ -1036,7 +1028,12 @@ PassRefPtr<Frame> FrameLoaderClientQt::createFrame(const KURL& url, const String return 0; QWebFrameData frameData(m_frame->page(), m_frame, ownerElement, name); - frameData.url = url; + + if (url.isEmpty()) + frameData.url = blankURL(); + else + frameData.url = url; + frameData.referrer = referrer; frameData.allowsScrolling = allowsScrolling; frameData.marginWidth = marginWidth; diff --git a/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp b/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp index d5683c4..1caf96d 100644 --- a/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp @@ -112,12 +112,16 @@ void InspectorClientQt::showWindow() { updateWindowTitle(); +#if ENABLE(INSPECTOR) m_inspectedWebPage->d->inspectorController()->setWindowVisible(true, true); +#endif } void InspectorClientQt::closeWindow() { +#if ENABLE(INSPECTOR) m_inspectedWebPage->d->inspectorController()->setWindowVisible(false); +#endif } void InspectorClientQt::attachWindow() diff --git a/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp b/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp new file mode 100644 index 0000000..7ee2b7c --- /dev/null +++ b/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp @@ -0,0 +1,165 @@ +/* + * Copyright (C) 2010 Girish Ramakrishnan <girish@forwardbias.in> + * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + */ +#include "config.h" +#include "QtFallbackWebPopup.h" + +#include "HostWindow.h" +#include "PopupMenuClient.h" +#include "qgraphicswebview.h" +#include "QWebPageClient.h" +#include <QAbstractItemView> +#include <QApplication> +#include <QGraphicsProxyWidget> +#include <QGraphicsScene> +#include <QGraphicsView> +#include <QInputContext> +#include <QMouseEvent> +#include <QStandardItemModel> + +namespace WebCore { + +QtFallbackWebPopupCombo::QtFallbackWebPopupCombo(QtFallbackWebPopup& ownerPopup) + : m_ownerPopup(ownerPopup) +{ +} + +void QtFallbackWebPopupCombo::showPopup() +{ + QComboBox::showPopup(); + m_ownerPopup.m_popupVisible = true; +} + +void QtFallbackWebPopupCombo::hidePopup() +{ + QWidget* activeFocus = QApplication::focusWidget(); + if (activeFocus && activeFocus == QComboBox::view() + && activeFocus->testAttribute(Qt::WA_InputMethodEnabled)) { + QInputContext* qic = activeFocus->inputContext(); + if (qic) { + qic->reset(); + qic->setFocusWidget(0); + } + } + + QComboBox::hidePopup(); + + if (QGraphicsProxyWidget* proxy = graphicsProxyWidget()) + proxy->setVisible(false); + + if (!m_ownerPopup.m_popupVisible) + return; + + m_ownerPopup.m_popupVisible = false; + m_ownerPopup.popupDidHide(); +} + +// QtFallbackWebPopup + +QtFallbackWebPopup::QtFallbackWebPopup() + : QtAbstractWebPopup() + , m_popupVisible(false) + , m_combo(new QtFallbackWebPopupCombo(*this)) + , m_proxy(0) +{ + connect(m_combo, SIGNAL(activated(int)), + SLOT(activeChanged(int)), Qt::QueuedConnection); +} + +QtFallbackWebPopup::~QtFallbackWebPopup() +{ + // If we create a proxy, then the deletion of the proxy and the + // combo will be done by the proxy's parent (QGraphicsWebView) + if (!m_proxy) + delete m_combo; +} + +void QtFallbackWebPopup::show() +{ + populate(); + m_combo->setCurrentIndex(currentIndex()); + QRect rect = geometry(); + if (QGraphicsWebView *webView = qobject_cast<QGraphicsWebView*>(pageClient()->pluginParent())) { + if (!m_proxy) { + m_proxy = new QGraphicsProxyWidget(webView); + m_proxy->setWidget(m_combo); + } else + m_proxy->setVisible(true); + m_proxy->setGeometry(rect); + } else { + m_combo->setParent(pageClient()->ownerWidget()); + m_combo->setGeometry(QRect(rect.left(), rect.top(), + rect.width(), m_combo->sizeHint().height())); + + } + + // QCursor::pos() is not a great idea for a touch screen, but we don't need the coordinates + // as comboboxes with Qt on Maemo 5 come up in their full width on the screen. + // On the other platforms it's okay to use QCursor::pos(). +#if defined(Q_WS_MAEMO_5) + m_combo->showPopup(); +#else + QMouseEvent event(QEvent::MouseButtonPress, QCursor::pos(), Qt::LeftButton, + Qt::LeftButton, Qt::NoModifier); + QCoreApplication::sendEvent(m_combo, &event); +#endif +} + +void QtFallbackWebPopup::hide() +{ + m_combo->hidePopup(); +} + +void QtFallbackWebPopup::populate() +{ + m_combo->clear(); + + QStandardItemModel* model = qobject_cast<QStandardItemModel*>(m_combo->model()); + Q_ASSERT(model); + +#if !defined(Q_WS_S60) && !defined(Q_WS_MAEMO_5) + m_combo->setFont(font()); +#endif + for (int i = 0; i < itemCount(); ++i) { + switch (itemType(i)) { + case Separator: + m_combo->insertSeparator(i); + break; + case Group: + m_combo->insertItem(i, itemText(i)); + model->item(i)->setEnabled(false); + break; + case Option: + m_combo->insertItem(i, itemText(i)); + model->item(i)->setEnabled(itemIsEnabled(i)); + break; + } + } +} + +void QtFallbackWebPopup::activeChanged(int index) +{ + if (index < 0) + return; + + valueChanged(index); +} + +} diff --git a/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h b/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h new file mode 100644 index 0000000..3924bf6 --- /dev/null +++ b/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + */ +#ifndef QtFallbackWebPopup_h +#define QtFallbackWebPopup_h + +#include "QtAbstractWebPopup.h" +#include <QComboBox> + +class QGraphicsProxyWidget; + +namespace WebCore { + +class QtFallbackWebPopupCombo; + +class QtFallbackWebPopup : public QObject, public QtAbstractWebPopup { + Q_OBJECT +public: + QtFallbackWebPopup(); + ~QtFallbackWebPopup(); + + virtual void show(); + virtual void hide(); + +private slots: + void activeChanged(int); + +private: + friend class QtFallbackWebPopupCombo; + bool m_popupVisible; + QtFallbackWebPopupCombo* m_combo; + QGraphicsProxyWidget* m_proxy; + + void populate(); +}; + +class QtFallbackWebPopupCombo : public QComboBox { +public: + QtFallbackWebPopupCombo(QtFallbackWebPopup& ownerPopup); + virtual void showPopup(); + virtual void hidePopup(); + +private: + QtFallbackWebPopup& m_ownerPopup; +}; + +} + +#endif // QtFallbackWebPopup_h diff --git a/WebKit/qt/docs/qtwebkit.qdocconf b/WebKit/qt/docs/qtwebkit.qdocconf index 8ee8f69..292c124 100644 --- a/WebKit/qt/docs/qtwebkit.qdocconf +++ b/WebKit/qt/docs/qtwebkit.qdocconf @@ -4,7 +4,7 @@ project = qtwebkit description = "Qt WebKit API Documentation" headerdirs = $SRCDIR/WebKit/qt/Api -sourcedirs = $SRCDIR/WebKit/qt/Api $SRCDIR/WebKit/qt/docs +sourcedirs = $SRCDIR/WebKit/qt/Api $SRCDIR/WebKit/qt/docs $SRCDIR/JavaScriptCore/qt/api outputdir = $OUTPUT_DIR/doc/html outputformats = HTML sources.fileextensions = "*.cpp *.doc *.qdoc *.h" diff --git a/WebKit/qt/docs/webkitsnippets/webelement/main.cpp b/WebKit/qt/docs/webkitsnippets/webelement/main.cpp index 2707ffb..822b61c 100644 --- a/WebKit/qt/docs/webkitsnippets/webelement/main.cpp +++ b/WebKit/qt/docs/webkitsnippets/webelement/main.cpp @@ -53,8 +53,8 @@ static void findAll() */ //! [FindAll intro] - QList<QWebElement> allSpans = document.findAll("span"); - QList<QWebElement> introSpans = document.findAll("p.intro span"); + QWebElementCollection allSpans = document.findAll("span"); + QWebElementCollection introSpans = document.findAll("p.intro span"); //! [FindAll intro] //! [FindAll] } diff --git a/WebKit/qt/symbian/backup_registration.xml b/WebKit/qt/symbian/backup_registration.xml new file mode 100644 index 0000000..e026140 --- /dev/null +++ b/WebKit/qt/symbian/backup_registration.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" standalone="yes"?> +<backup_registration> + <system_backup/> + <restore requires_reboot = "no"/> +</backup_registration> diff --git a/WebKit/qt/symbian/bwins/QtWebKitu.def b/WebKit/qt/symbian/bwins/QtWebKitu.def new file mode 100644 index 0000000..086e986 --- /dev/null +++ b/WebKit/qt/symbian/bwins/QtWebKitu.def @@ -0,0 +1,627 @@ +EXPORTS + ??0MimeType@QWebPluginFactory@@QAE@ABU01@@Z @ 1 NONAME ; QWebPluginFactory::MimeType::MimeType(struct QWebPluginFactory::MimeType const &) + ??0QGraphicsWebView@@QAE@PAVQGraphicsItem@@@Z @ 2 NONAME ; QGraphicsWebView::QGraphicsWebView(class QGraphicsItem *) + ??0QWebDatabase@@AAE@PAVQWebDatabasePrivate@@@Z @ 3 NONAME ; QWebDatabase::QWebDatabase(class QWebDatabasePrivate *) + ??0QWebDatabase@@QAE@ABV0@@Z @ 4 NONAME ; QWebDatabase::QWebDatabase(class QWebDatabase const &) + ??0QWebElement@@AAE@PAVElement@WebCore@@@Z @ 5 NONAME ; QWebElement::QWebElement(class WebCore::Element *) + ??0QWebElement@@AAE@PAVNode@WebCore@@@Z @ 6 NONAME ; QWebElement::QWebElement(class WebCore::Node *) + ??0QWebElement@@QAE@ABV0@@Z @ 7 NONAME ; QWebElement::QWebElement(class QWebElement const &) + ??0QWebElement@@QAE@XZ @ 8 NONAME ; QWebElement::QWebElement(void) + ??0QWebElementCollection@@QAE@ABV0@@Z @ 9 NONAME ; QWebElementCollection::QWebElementCollection(class QWebElementCollection const &) + ??0QWebElementCollection@@QAE@ABVQWebElement@@ABVQString@@@Z @ 10 NONAME ; QWebElementCollection::QWebElementCollection(class QWebElement const &, class QString const &) + ??0QWebElementCollection@@QAE@XZ @ 11 NONAME ; QWebElementCollection::QWebElementCollection(void) + ??0QWebFrame@@AAE@PAV0@PAVQWebFrameData@@@Z @ 12 NONAME ; QWebFrame::QWebFrame(class QWebFrame *, class QWebFrameData *) + ??0QWebFrame@@AAE@PAVQWebPage@@PAVQWebFrameData@@@Z @ 13 NONAME ; QWebFrame::QWebFrame(class QWebPage *, class QWebFrameData *) + ??0QWebHistory@@AAE@XZ @ 14 NONAME ; QWebHistory::QWebHistory(void) + ??0QWebHistoryInterface@@QAE@PAVQObject@@@Z @ 15 NONAME ; QWebHistoryInterface::QWebHistoryInterface(class QObject *) + ??0QWebHistoryItem@@AAE@PAVQWebHistoryItemPrivate@@@Z @ 16 NONAME ; QWebHistoryItem::QWebHistoryItem(class QWebHistoryItemPrivate *) + ??0QWebHistoryItem@@QAE@ABV0@@Z @ 17 NONAME ; QWebHistoryItem::QWebHistoryItem(class QWebHistoryItem const &) + ??0QWebHitTestResult@@AAE@PAVQWebHitTestResultPrivate@@@Z @ 18 NONAME ; QWebHitTestResult::QWebHitTestResult(class QWebHitTestResultPrivate *) + ??0QWebHitTestResult@@QAE@ABV0@@Z @ 19 NONAME ; QWebHitTestResult::QWebHitTestResult(class QWebHitTestResult const &) + ??0QWebHitTestResult@@QAE@XZ @ 20 NONAME ; QWebHitTestResult::QWebHitTestResult(void) + ??0QWebInspector@@QAE@PAVQWidget@@@Z @ 21 NONAME ; QWebInspector::QWebInspector(class QWidget *) + ??0QWebPage@@QAE@PAVQObject@@@Z @ 22 NONAME ; QWebPage::QWebPage(class QObject *) + ??0QWebPluginDatabase@@AAE@PAVQObject@@@Z @ 23 NONAME ; QWebPluginDatabase::QWebPluginDatabase(class QObject *) + ??0QWebPluginFactory@@QAE@PAVQObject@@@Z @ 24 NONAME ; QWebPluginFactory::QWebPluginFactory(class QObject *) + ??0QWebPluginInfo@@AAE@PAVPluginPackage@WebCore@@@Z @ 25 NONAME ; QWebPluginInfo::QWebPluginInfo(class WebCore::PluginPackage *) + ??0QWebPluginInfo@@QAE@ABV0@@Z @ 26 NONAME ; QWebPluginInfo::QWebPluginInfo(class QWebPluginInfo const &) + ??0QWebPluginInfo@@QAE@XZ @ 27 NONAME ; QWebPluginInfo::QWebPluginInfo(void) + ??0QWebSecurityOrigin@@AAE@PAVQWebSecurityOriginPrivate@@@Z @ 28 NONAME ; QWebSecurityOrigin::QWebSecurityOrigin(class QWebSecurityOriginPrivate *) + ??0QWebSecurityOrigin@@QAE@ABV0@@Z @ 29 NONAME ; QWebSecurityOrigin::QWebSecurityOrigin(class QWebSecurityOrigin const &) + ??0QWebSettings@@AAE@PAVSettings@WebCore@@@Z @ 30 NONAME ; QWebSettings::QWebSettings(class WebCore::Settings *) + ??0QWebSettings@@AAE@XZ @ 31 NONAME ; QWebSettings::QWebSettings(void) + ??0QWebView@@QAE@PAVQWidget@@@Z @ 32 NONAME ; QWebView::QWebView(class QWidget *) + ??1MimeType@QWebPluginFactory@@QAE@XZ @ 33 NONAME ; QWebPluginFactory::MimeType::~MimeType(void) + ??1QGraphicsWebView@@UAE@XZ @ 34 NONAME ; QGraphicsWebView::~QGraphicsWebView(void) + ??1QWebDatabase@@QAE@XZ @ 35 NONAME ; QWebDatabase::~QWebDatabase(void) + ??1QWebElement@@QAE@XZ @ 36 NONAME ; QWebElement::~QWebElement(void) + ??1QWebElementCollection@@QAE@XZ @ 37 NONAME ; QWebElementCollection::~QWebElementCollection(void) + ??1QWebFrame@@EAE@XZ @ 38 NONAME ; QWebFrame::~QWebFrame(void) + ??1QWebHistory@@AAE@XZ @ 39 NONAME ; QWebHistory::~QWebHistory(void) + ??1QWebHistoryInterface@@UAE@XZ @ 40 NONAME ; QWebHistoryInterface::~QWebHistoryInterface(void) + ??1QWebHistoryItem@@QAE@XZ @ 41 NONAME ; QWebHistoryItem::~QWebHistoryItem(void) + ??1QWebHitTestResult@@QAE@XZ @ 42 NONAME ; QWebHitTestResult::~QWebHitTestResult(void) + ??1QWebInspector@@UAE@XZ @ 43 NONAME ; QWebInspector::~QWebInspector(void) + ??1QWebPage@@UAE@XZ @ 44 NONAME ; QWebPage::~QWebPage(void) + ??1QWebPluginDatabase@@EAE@XZ @ 45 NONAME ; QWebPluginDatabase::~QWebPluginDatabase(void) + ??1QWebPluginFactory@@UAE@XZ @ 46 NONAME ; QWebPluginFactory::~QWebPluginFactory(void) + ??1QWebPluginInfo@@QAE@XZ @ 47 NONAME ; QWebPluginInfo::~QWebPluginInfo(void) + ??1QWebSecurityOrigin@@QAE@XZ @ 48 NONAME ; QWebSecurityOrigin::~QWebSecurityOrigin(void) + ??1QWebSettings@@AAE@XZ @ 49 NONAME ; QWebSettings::~QWebSettings(void) + ??1QWebView@@UAE@XZ @ 50 NONAME ; QWebView::~QWebView(void) + ??4QWebDatabase@@QAEAAV0@ABV0@@Z @ 51 NONAME ; class QWebDatabase & QWebDatabase::operator=(class QWebDatabase const &) + ??4QWebElement@@QAEAAV0@ABV0@@Z @ 52 NONAME ; class QWebElement & QWebElement::operator=(class QWebElement const &) + ??4QWebElementCollection@@QAEAAV0@ABV0@@Z @ 53 NONAME ; class QWebElementCollection & QWebElementCollection::operator=(class QWebElementCollection const &) + ??4QWebHistoryItem@@QAEAAV0@ABV0@@Z @ 54 NONAME ; class QWebHistoryItem & QWebHistoryItem::operator=(class QWebHistoryItem const &) + ??4QWebHitTestResult@@QAEAAV0@ABV0@@Z @ 55 NONAME ; class QWebHitTestResult & QWebHitTestResult::operator=(class QWebHitTestResult const &) + ??4QWebPluginInfo@@QAEAAV0@ABV0@@Z @ 56 NONAME ; class QWebPluginInfo & QWebPluginInfo::operator=(class QWebPluginInfo const &) + ??4QWebSecurityOrigin@@QAEAAV0@ABV0@@Z @ 57 NONAME ; class QWebSecurityOrigin & QWebSecurityOrigin::operator=(class QWebSecurityOrigin const &) + ??5@YAAAVQDataStream@@AAV0@AAVQWebHistory@@@Z @ 58 NONAME ; class QDataStream & operator>>(class QDataStream &, class QWebHistory &) + ??6@YAAAVQDataStream@@AAV0@ABVQWebHistory@@@Z @ 59 NONAME ; class QDataStream & operator<<(class QDataStream &, class QWebHistory const &) + ??8MimeType@QWebPluginFactory@@QBE_NABU01@@Z @ 60 NONAME ; bool QWebPluginFactory::MimeType::operator==(struct QWebPluginFactory::MimeType const &) const + ??8QWebElement@@QBE_NABV0@@Z @ 61 NONAME ; bool QWebElement::operator==(class QWebElement const &) const + ??8QWebPluginInfo@@QBE_NABV0@@Z @ 62 NONAME ; bool QWebPluginInfo::operator==(class QWebPluginInfo const &) const + ??9MimeType@QWebPluginFactory@@QBE_NABU01@@Z @ 63 NONAME ; bool QWebPluginFactory::MimeType::operator!=(struct QWebPluginFactory::MimeType const &) const + ??9QWebElement@@QBE_NABV0@@Z @ 64 NONAME ; bool QWebElement::operator!=(class QWebElement const &) const + ??9QWebPluginInfo@@QBE_NABV0@@Z @ 65 NONAME ; bool QWebPluginInfo::operator!=(class QWebPluginInfo const &) const + ??AQWebElementCollection@@QBE?AVQWebElement@@H@Z @ 66 NONAME ; class QWebElement QWebElementCollection::operator[](int) const + ??HQWebElementCollection@@QBE?AV0@ABV0@@Z @ 67 NONAME ; class QWebElementCollection QWebElementCollection::operator+(class QWebElementCollection const &) const + ??YQWebElementCollection@@QAEAAV0@ABV0@@Z @ 68 NONAME ; class QWebElementCollection & QWebElementCollection::operator+=(class QWebElementCollection const &) + ??_EMimeType@QWebPluginFactory@@QAE@I@Z @ 69 NONAME ; QWebPluginFactory::MimeType::~MimeType(unsigned int) + ??_EQGraphicsWebView@@UAE@I@Z @ 70 NONAME ; QGraphicsWebView::~QGraphicsWebView(unsigned int) + ??_EQWebFrame@@UAE@I@Z @ 71 NONAME ; QWebFrame::~QWebFrame(unsigned int) + ??_EQWebHistoryInterface@@UAE@I@Z @ 72 NONAME ; QWebHistoryInterface::~QWebHistoryInterface(unsigned int) + ??_EQWebInspector@@UAE@I@Z @ 73 NONAME ; QWebInspector::~QWebInspector(unsigned int) + ??_EQWebPage@@UAE@I@Z @ 74 NONAME ; QWebPage::~QWebPage(unsigned int) + ??_EQWebPluginDatabase@@UAE@I@Z @ 75 NONAME ; QWebPluginDatabase::~QWebPluginDatabase(unsigned int) + ??_EQWebPluginFactory@@UAE@I@Z @ 76 NONAME ; QWebPluginFactory::~QWebPluginFactory(unsigned int) + ??_EQWebView@@UAE@I@Z @ 77 NONAME ; QWebView::~QWebView(unsigned int) + ?acceptNavigationRequest@QWebPage@@MAE_NPAVQWebFrame@@ABVQNetworkRequest@@W4NavigationType@1@@Z @ 78 NONAME ; bool QWebPage::acceptNavigationRequest(class QWebFrame *, class QNetworkRequest const &, enum QWebPage::NavigationType) + ?action@QWebPage@@QBEPAVQAction@@W4WebAction@1@@Z @ 79 NONAME ; class QAction * QWebPage::action(enum QWebPage::WebAction) const + ?addClass@QWebElement@@QAEXABVQString@@@Z @ 80 NONAME ; void QWebElement::addClass(class QString const &) + ?addLocalScheme@QWebSecurityOrigin@@SAXABVQString@@@Z @ 81 NONAME ; void QWebSecurityOrigin::addLocalScheme(class QString const &) + ?addSearchPath@QWebPluginDatabase@@QAEXABVQString@@@Z @ 82 NONAME ; void QWebPluginDatabase::addSearchPath(class QString const &) + ?addToJavaScriptWindowObject@QWebFrame@@QAEXABVQString@@PAVQObject@@@Z @ 83 NONAME ; void QWebFrame::addToJavaScriptWindowObject(class QString const &, class QObject *) + ?addToJavaScriptWindowObject@QWebFrame@@QAEXABVQString@@PAVQObject@@W4ValueOwnership@QScriptEngine@@@Z @ 84 NONAME ; void QWebFrame::addToJavaScriptWindowObject(class QString const &, class QObject *, enum QScriptEngine::ValueOwnership) + ?allOrigins@QWebSecurityOrigin@@SA?AV?$QList@VQWebSecurityOrigin@@@@XZ @ 85 NONAME ; class QList<class QWebSecurityOrigin> QWebSecurityOrigin::allOrigins(void) + ?alternateText@QWebHitTestResult@@QBE?AVQString@@XZ @ 86 NONAME ; class QString QWebHitTestResult::alternateText(void) const + ?append@QWebElementCollection@@QAEXABV1@@Z @ 87 NONAME ; void QWebElementCollection::append(class QWebElementCollection const &) + ?appendInside@QWebElement@@QAEXABV1@@Z @ 88 NONAME ; void QWebElement::appendInside(class QWebElement const &) + ?appendInside@QWebElement@@QAEXABVQString@@@Z @ 89 NONAME ; void QWebElement::appendInside(class QString const &) + ?appendOutside@QWebElement@@QAEXABV1@@Z @ 90 NONAME ; void QWebElement::appendOutside(class QWebElement const &) + ?appendOutside@QWebElement@@QAEXABVQString@@@Z @ 91 NONAME ; void QWebElement::appendOutside(class QString const &) + ?at@QWebElementCollection@@QBE?AVQWebElement@@H@Z @ 92 NONAME ; class QWebElement QWebElementCollection::at(int) const + ?attribute@QWebElement@@QBE?AVQString@@ABV2@0@Z @ 93 NONAME ; class QString QWebElement::attribute(class QString const &, class QString const &) const + ?attributeNS@QWebElement@@QBE?AVQString@@ABV2@00@Z @ 94 NONAME ; class QString QWebElement::attributeNS(class QString const &, class QString const &, class QString const &) const + ?back@QGraphicsWebView@@QAEXXZ @ 95 NONAME ; void QGraphicsWebView::back(void) + ?back@QWebHistory@@QAEXXZ @ 96 NONAME ; void QWebHistory::back(void) + ?back@QWebView@@QAEXXZ @ 97 NONAME ; void QWebView::back(void) + ?backItem@QWebHistory@@QBE?AVQWebHistoryItem@@XZ @ 98 NONAME ; class QWebHistoryItem QWebHistory::backItem(void) const + ?backItems@QWebHistory@@QBE?AV?$QList@VQWebHistoryItem@@@@H@Z @ 99 NONAME ; class QList<class QWebHistoryItem> QWebHistory::backItems(int) const + ?baseUrl@QWebFrame@@QBE?AVQUrl@@XZ @ 100 NONAME ; class QUrl QWebFrame::baseUrl(void) const + ?begin@QWebElementCollection@@QAE?AViterator@1@XZ @ 101 NONAME ; class QWebElementCollection::iterator QWebElementCollection::begin(void) + ?begin@QWebElementCollection@@QBE?AVconst_iterator@1@XZ @ 102 NONAME ; class QWebElementCollection::const_iterator QWebElementCollection::begin(void) const + ?boundingRect@QWebHitTestResult@@QBE?AVQRect@@XZ @ 103 NONAME ; class QRect QWebHitTestResult::boundingRect(void) const + ?bytesReceived@QWebPage@@QBE_KXZ @ 104 NONAME ; unsigned long long QWebPage::bytesReceived(void) const + ?canGoBack@QWebHistory@@QBE_NXZ @ 105 NONAME ; bool QWebHistory::canGoBack(void) const + ?canGoForward@QWebHistory@@QBE_NXZ @ 106 NONAME ; bool QWebHistory::canGoForward(void) const + ?changeEvent@QWebView@@MAEXPAVQEvent@@@Z @ 107 NONAME ; void QWebView::changeEvent(class QEvent *) + ?childFrames@QWebFrame@@QBE?AV?$QList@PAVQWebFrame@@@@XZ @ 108 NONAME ; class QList<class QWebFrame *> QWebFrame::childFrames(void) const + ?chooseFile@QWebPage@@MAE?AVQString@@PAVQWebFrame@@ABV2@@Z @ 109 NONAME ; class QString QWebPage::chooseFile(class QWebFrame *, class QString const &) + ?classes@QWebElement@@QBE?AVQStringList@@XZ @ 110 NONAME ; class QStringList QWebElement::classes(void) const + ?clear@QWebHistory@@QAEXXZ @ 111 NONAME ; void QWebHistory::clear(void) + ?clearIconDatabase@QWebSettings@@SAXXZ @ 112 NONAME ; void QWebSettings::clearIconDatabase(void) + ?clearMemoryCaches@QWebSettings@@SAXXZ @ 113 NONAME ; void QWebSettings::clearMemoryCaches(void) + ?clone@QWebElement@@QBE?AV1@XZ @ 114 NONAME ; class QWebElement QWebElement::clone(void) const + ?constBegin@QWebElementCollection@@QBE?AVconst_iterator@1@XZ @ 115 NONAME ; class QWebElementCollection::const_iterator QWebElementCollection::constBegin(void) const + ?constEnd@QWebElementCollection@@QBE?AVconst_iterator@1@XZ @ 116 NONAME ; class QWebElementCollection::const_iterator QWebElementCollection::constEnd(void) const + ?contentsChanged@QWebPage@@IAEXXZ @ 117 NONAME ; void QWebPage::contentsChanged(void) + ?contentsSize@QWebFrame@@QBE?AVQSize@@XZ @ 118 NONAME ; class QSize QWebFrame::contentsSize(void) const + ?contentsSizeChanged@QWebFrame@@IAEXABVQSize@@@Z @ 119 NONAME ; void QWebFrame::contentsSizeChanged(class QSize const &) + ?contextMenuEvent@QGraphicsWebView@@MAEXPAVQGraphicsSceneContextMenuEvent@@@Z @ 120 NONAME ; void QGraphicsWebView::contextMenuEvent(class QGraphicsSceneContextMenuEvent *) + ?contextMenuEvent@QWebView@@MAEXPAVQContextMenuEvent@@@Z @ 121 NONAME ; void QWebView::contextMenuEvent(class QContextMenuEvent *) + ?count@QWebElementCollection@@QBEHXZ @ 122 NONAME ; int QWebElementCollection::count(void) const + ?count@QWebHistory@@QBEHXZ @ 123 NONAME ; int QWebHistory::count(void) const + ?createPlugin@QWebPage@@MAEPAVQObject@@ABVQString@@ABVQUrl@@ABVQStringList@@2@Z @ 124 NONAME ; class QObject * QWebPage::createPlugin(class QString const &, class QUrl const &, class QStringList const &, class QStringList const &) + ?createStandardContextMenu@QWebPage@@QAEPAVQMenu@@XZ @ 125 NONAME ; class QMenu * QWebPage::createStandardContextMenu(void) + ?createWindow@QWebPage@@MAEPAV1@W4WebWindowType@1@@Z @ 126 NONAME ; class QWebPage * QWebPage::createWindow(enum QWebPage::WebWindowType) + ?createWindow@QWebView@@MAEPAV1@W4WebWindowType@QWebPage@@@Z @ 127 NONAME ; class QWebView * QWebView::createWindow(enum QWebPage::WebWindowType) + ?currentFrame@QWebPage@@QBEPAVQWebFrame@@XZ @ 128 NONAME ; class QWebFrame * QWebPage::currentFrame(void) const + ?currentItem@QWebHistory@@QBE?AVQWebHistoryItem@@XZ @ 129 NONAME ; class QWebHistoryItem QWebHistory::currentItem(void) const + ?currentItemIndex@QWebHistory@@QBEHXZ @ 130 NONAME ; int QWebHistory::currentItemIndex(void) const + ?databaseQuota@QWebSecurityOrigin@@QBE_JXZ @ 131 NONAME ; long long QWebSecurityOrigin::databaseQuota(void) const + ?databaseQuotaExceeded@QWebPage@@IAEXPAVQWebFrame@@VQString@@@Z @ 132 NONAME ; void QWebPage::databaseQuotaExceeded(class QWebFrame *, class QString) + ?databaseUsage@QWebSecurityOrigin@@QBE_JXZ @ 133 NONAME ; long long QWebSecurityOrigin::databaseUsage(void) const + ?databases@QWebSecurityOrigin@@QBE?AV?$QList@VQWebDatabase@@@@XZ @ 134 NONAME ; class QList<class QWebDatabase> QWebSecurityOrigin::databases(void) const + ?defaultInterface@QWebHistoryInterface@@SAPAV1@XZ @ 135 NONAME ; class QWebHistoryInterface * QWebHistoryInterface::defaultInterface(void) + ?defaultSearchPaths@QWebPluginDatabase@@SA?AVQStringList@@XZ @ 136 NONAME ; class QStringList QWebPluginDatabase::defaultSearchPaths(void) + ?defaultTextEncoding@QWebSettings@@QBE?AVQString@@XZ @ 137 NONAME ; class QString QWebSettings::defaultTextEncoding(void) const + ?description@QWebPluginInfo@@QBE?AVQString@@XZ @ 138 NONAME ; class QString QWebPluginInfo::description(void) const + ?displayName@QWebDatabase@@QBE?AVQString@@XZ @ 139 NONAME ; class QString QWebDatabase::displayName(void) const + ?document@QWebElement@@QBE?AV1@XZ @ 140 NONAME ; class QWebElement QWebElement::document(void) const + ?documentElement@QWebFrame@@QBE?AVQWebElement@@XZ @ 141 NONAME ; class QWebElement QWebFrame::documentElement(void) const + ?downloadRequested@QWebPage@@IAEXABVQNetworkRequest@@@Z @ 142 NONAME ; void QWebPage::downloadRequested(class QNetworkRequest const &) + ?dragEnterEvent@QGraphicsWebView@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 143 NONAME ; void QGraphicsWebView::dragEnterEvent(class QGraphicsSceneDragDropEvent *) + ?dragEnterEvent@QWebView@@MAEXPAVQDragEnterEvent@@@Z @ 144 NONAME ; void QWebView::dragEnterEvent(class QDragEnterEvent *) + ?dragLeaveEvent@QGraphicsWebView@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 145 NONAME ; void QGraphicsWebView::dragLeaveEvent(class QGraphicsSceneDragDropEvent *) + ?dragLeaveEvent@QWebView@@MAEXPAVQDragLeaveEvent@@@Z @ 146 NONAME ; void QWebView::dragLeaveEvent(class QDragLeaveEvent *) + ?dragMoveEvent@QGraphicsWebView@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 147 NONAME ; void QGraphicsWebView::dragMoveEvent(class QGraphicsSceneDragDropEvent *) + ?dragMoveEvent@QWebView@@MAEXPAVQDragMoveEvent@@@Z @ 148 NONAME ; void QWebView::dragMoveEvent(class QDragMoveEvent *) + ?dropEvent@QGraphicsWebView@@MAEXPAVQGraphicsSceneDragDropEvent@@@Z @ 149 NONAME ; void QGraphicsWebView::dropEvent(class QGraphicsSceneDragDropEvent *) + ?dropEvent@QWebView@@MAEXPAVQDropEvent@@@Z @ 150 NONAME ; void QWebView::dropEvent(class QDropEvent *) + ?element@QWebHitTestResult@@QBE?AVQWebElement@@XZ @ 151 NONAME ; class QWebElement QWebHitTestResult::element(void) const + ?enablePersistentStorage@QWebSettings@@SAXABVQString@@@Z @ 152 NONAME ; void QWebSettings::enablePersistentStorage(class QString const &) + ?encloseContentsWith@QWebElement@@QAEXABV1@@Z @ 153 NONAME ; void QWebElement::encloseContentsWith(class QWebElement const &) + ?encloseContentsWith@QWebElement@@QAEXABVQString@@@Z @ 154 NONAME ; void QWebElement::encloseContentsWith(class QString const &) + ?encloseWith@QWebElement@@QAEXABV1@@Z @ 155 NONAME ; void QWebElement::encloseWith(class QWebElement const &) + ?encloseWith@QWebElement@@QAEXABVQString@@@Z @ 156 NONAME ; void QWebElement::encloseWith(class QString const &) + ?enclosingBlockElement@QWebHitTestResult@@QBE?AVQWebElement@@XZ @ 157 NONAME ; class QWebElement QWebHitTestResult::enclosingBlockElement(void) const + ?enclosingElement@QWebElement@@CA?AV1@PAVNode@WebCore@@@Z @ 158 NONAME ; class QWebElement QWebElement::enclosingElement(class WebCore::Node *) + ?end@QWebElementCollection@@QAE?AViterator@1@XZ @ 159 NONAME ; class QWebElementCollection::iterator QWebElementCollection::end(void) + ?end@QWebElementCollection@@QBE?AVconst_iterator@1@XZ @ 160 NONAME ; class QWebElementCollection::const_iterator QWebElementCollection::end(void) const + ?evaluateJavaScript@QWebElement@@QAE?AVQVariant@@ABVQString@@@Z @ 161 NONAME ; class QVariant QWebElement::evaluateJavaScript(class QString const &) + ?evaluateJavaScript@QWebFrame@@QAE?AVQVariant@@ABVQString@@@Z @ 162 NONAME ; class QVariant QWebFrame::evaluateJavaScript(class QString const &) + ?event@QGraphicsWebView@@UAE_NPAVQEvent@@@Z @ 163 NONAME ; bool QGraphicsWebView::event(class QEvent *) + ?event@QWebFrame@@UAE_NPAVQEvent@@@Z @ 164 NONAME ; bool QWebFrame::event(class QEvent *) + ?event@QWebInspector@@UAE_NPAVQEvent@@@Z @ 165 NONAME ; bool QWebInspector::event(class QEvent *) + ?event@QWebPage@@UAE_NPAVQEvent@@@Z @ 166 NONAME ; bool QWebPage::event(class QEvent *) + ?event@QWebView@@UAE_NPAVQEvent@@@Z @ 167 NONAME ; bool QWebView::event(class QEvent *) + ?expectedSize@QWebDatabase@@QBE_JXZ @ 168 NONAME ; long long QWebDatabase::expectedSize(void) const + ?extension@QWebPage@@UAE_NW4Extension@1@PBVExtensionOption@1@PAVExtensionReturn@1@@Z @ 169 NONAME ; bool QWebPage::extension(enum QWebPage::Extension, class QWebPage::ExtensionOption const *, class QWebPage::ExtensionReturn *) + ?extension@QWebPluginFactory@@UAE_NW4Extension@1@PBVExtensionOption@1@PAVExtensionReturn@1@@Z @ 170 NONAME ; bool QWebPluginFactory::extension(enum QWebPluginFactory::Extension, class QWebPluginFactory::ExtensionOption const *, class QWebPluginFactory::ExtensionReturn *) + ?fileName@QWebDatabase@@QBE?AVQString@@XZ @ 171 NONAME ; class QString QWebDatabase::fileName(void) const + ?findAll@QWebElement@@QBE?AVQWebElementCollection@@ABVQString@@@Z @ 172 NONAME ; class QWebElementCollection QWebElement::findAll(class QString const &) const + ?findAllElements@QWebFrame@@QBE?AVQWebElementCollection@@ABVQString@@@Z @ 173 NONAME ; class QWebElementCollection QWebFrame::findAllElements(class QString const &) const + ?findFirst@QWebElement@@QBE?AV1@ABVQString@@@Z @ 174 NONAME ; class QWebElement QWebElement::findFirst(class QString const &) const + ?findFirstElement@QWebFrame@@QBE?AVQWebElement@@ABVQString@@@Z @ 175 NONAME ; class QWebElement QWebFrame::findFirstElement(class QString const &) const + ?findText@QGraphicsWebView@@QAE_NABVQString@@V?$QFlags@W4FindFlag@QWebPage@@@@@Z @ 176 NONAME ; bool QGraphicsWebView::findText(class QString const &, class QFlags<enum QWebPage::FindFlag>) + ?findText@QWebPage@@QAE_NABVQString@@V?$QFlags@W4FindFlag@QWebPage@@@@@Z @ 177 NONAME ; bool QWebPage::findText(class QString const &, class QFlags<enum QWebPage::FindFlag>) + ?findText@QWebView@@QAE_NABVQString@@V?$QFlags@W4FindFlag@QWebPage@@@@@Z @ 178 NONAME ; bool QWebView::findText(class QString const &, class QFlags<enum QWebPage::FindFlag>) + ?first@QWebElementCollection@@QBE?AVQWebElement@@XZ @ 179 NONAME ; class QWebElement QWebElementCollection::first(void) const + ?firstChild@QWebElement@@QBE?AV1@XZ @ 180 NONAME ; class QWebElement QWebElement::firstChild(void) const + ?focusInEvent@QGraphicsWebView@@MAEXPAVQFocusEvent@@@Z @ 181 NONAME ; void QGraphicsWebView::focusInEvent(class QFocusEvent *) + ?focusInEvent@QWebView@@MAEXPAVQFocusEvent@@@Z @ 182 NONAME ; void QWebView::focusInEvent(class QFocusEvent *) + ?focusNextPrevChild@QGraphicsWebView@@MAE_N_N@Z @ 183 NONAME ; bool QGraphicsWebView::focusNextPrevChild(bool) + ?focusNextPrevChild@QWebPage@@QAE_N_N@Z @ 184 NONAME ; bool QWebPage::focusNextPrevChild(bool) + ?focusNextPrevChild@QWebView@@MAE_N_N@Z @ 185 NONAME ; bool QWebView::focusNextPrevChild(bool) + ?focusOutEvent@QGraphicsWebView@@MAEXPAVQFocusEvent@@@Z @ 186 NONAME ; void QGraphicsWebView::focusOutEvent(class QFocusEvent *) + ?focusOutEvent@QWebView@@MAEXPAVQFocusEvent@@@Z @ 187 NONAME ; void QWebView::focusOutEvent(class QFocusEvent *) + ?fontFamily@QWebSettings@@QBE?AVQString@@W4FontFamily@1@@Z @ 188 NONAME ; class QString QWebSettings::fontFamily(enum QWebSettings::FontFamily) const + ?fontSize@QWebSettings@@QBEHW4FontSize@1@@Z @ 189 NONAME ; int QWebSettings::fontSize(enum QWebSettings::FontSize) const + ?forward@QGraphicsWebView@@QAEXXZ @ 190 NONAME ; void QGraphicsWebView::forward(void) + ?forward@QWebHistory@@QAEXXZ @ 191 NONAME ; void QWebHistory::forward(void) + ?forward@QWebView@@QAEXXZ @ 192 NONAME ; void QWebView::forward(void) + ?forwardItem@QWebHistory@@QBE?AVQWebHistoryItem@@XZ @ 193 NONAME ; class QWebHistoryItem QWebHistory::forwardItem(void) const + ?forwardItems@QWebHistory@@QBE?AV?$QList@VQWebHistoryItem@@@@H@Z @ 194 NONAME ; class QList<class QWebHistoryItem> QWebHistory::forwardItems(int) const + ?forwardUnsupportedContent@QWebPage@@QBE_NXZ @ 195 NONAME ; bool QWebPage::forwardUnsupportedContent(void) const + ?frame@QWebHitTestResult@@QBEPAVQWebFrame@@XZ @ 196 NONAME ; class QWebFrame * QWebHitTestResult::frame(void) const + ?frameAt@QWebPage@@QBEPAVQWebFrame@@ABVQPoint@@@Z @ 197 NONAME ; class QWebFrame * QWebPage::frameAt(class QPoint const &) const + ?frameCreated@QWebPage@@IAEXPAVQWebFrame@@@Z @ 198 NONAME ; void QWebPage::frameCreated(class QWebFrame *) + ?frameName@QWebFrame@@QBE?AVQString@@XZ @ 199 NONAME ; class QString QWebFrame::frameName(void) const + ?geometry@QWebElement@@QBE?AVQRect@@XZ @ 200 NONAME ; class QRect QWebElement::geometry(void) const + ?geometry@QWebFrame@@QBE?AVQRect@@XZ @ 201 NONAME ; class QRect QWebFrame::geometry(void) const + ?geometryChangeRequested@QWebPage@@IAEXABVQRect@@@Z @ 202 NONAME ; void QWebPage::geometryChangeRequested(class QRect const &) + ?getStaticMetaObject@QGraphicsWebView@@SAABUQMetaObject@@XZ @ 203 NONAME ; struct QMetaObject const & QGraphicsWebView::getStaticMetaObject(void) + ?getStaticMetaObject@QWebFrame@@SAABUQMetaObject@@XZ @ 204 NONAME ; struct QMetaObject const & QWebFrame::getStaticMetaObject(void) + ?getStaticMetaObject@QWebHistoryInterface@@SAABUQMetaObject@@XZ @ 205 NONAME ; struct QMetaObject const & QWebHistoryInterface::getStaticMetaObject(void) + ?getStaticMetaObject@QWebInspector@@SAABUQMetaObject@@XZ @ 206 NONAME ; struct QMetaObject const & QWebInspector::getStaticMetaObject(void) + ?getStaticMetaObject@QWebPage@@SAABUQMetaObject@@XZ @ 207 NONAME ; struct QMetaObject const & QWebPage::getStaticMetaObject(void) + ?getStaticMetaObject@QWebPluginDatabase@@SAABUQMetaObject@@XZ @ 208 NONAME ; struct QMetaObject const & QWebPluginDatabase::getStaticMetaObject(void) + ?getStaticMetaObject@QWebPluginFactory@@SAABUQMetaObject@@XZ @ 209 NONAME ; struct QMetaObject const & QWebPluginFactory::getStaticMetaObject(void) + ?getStaticMetaObject@QWebView@@SAABUQMetaObject@@XZ @ 210 NONAME ; struct QMetaObject const & QWebView::getStaticMetaObject(void) + ?globalSettings@QWebSettings@@SAPAV1@XZ @ 211 NONAME ; class QWebSettings * QWebSettings::globalSettings(void) + ?goToItem@QWebHistory@@QAEXABVQWebHistoryItem@@@Z @ 212 NONAME ; void QWebHistory::goToItem(class QWebHistoryItem const &) + ?handle@QWebPage@@QBEPAVQWebPagePrivate@@XZ @ 213 NONAME ; class QWebPagePrivate * QWebPage::handle(void) const + ?handle@QWebSettings@@QBEPAVQWebSettingsPrivate@@XZ @ 214 NONAME ; class QWebSettingsPrivate * QWebSettings::handle(void) const + ?hasAttribute@QWebElement@@QBE_NABVQString@@@Z @ 215 NONAME ; bool QWebElement::hasAttribute(class QString const &) const + ?hasAttributeNS@QWebElement@@QBE_NABVQString@@0@Z @ 216 NONAME ; bool QWebElement::hasAttributeNS(class QString const &, class QString const &) const + ?hasAttributes@QWebElement@@QBE_NXZ @ 217 NONAME ; bool QWebElement::hasAttributes(void) const + ?hasClass@QWebElement@@QBE_NABVQString@@@Z @ 218 NONAME ; bool QWebElement::hasClass(class QString const &) const + ?hasFocus@QWebElement@@QBE_NXZ @ 219 NONAME ; bool QWebElement::hasFocus(void) const + ?hasFocus@QWebFrame@@QBE_NXZ @ 220 NONAME ; bool QWebFrame::hasFocus(void) const + ?hideEvent@QWebInspector@@MAEXPAVQHideEvent@@@Z @ 221 NONAME ; void QWebInspector::hideEvent(class QHideEvent *) + ?history@QGraphicsWebView@@QBEPAVQWebHistory@@XZ @ 222 NONAME ; class QWebHistory * QGraphicsWebView::history(void) const + ?history@QWebPage@@QBEPAVQWebHistory@@XZ @ 223 NONAME ; class QWebHistory * QWebPage::history(void) const + ?history@QWebView@@QBEPAVQWebHistory@@XZ @ 224 NONAME ; class QWebHistory * QWebView::history(void) const + ?hitTestContent@QWebFrame@@QBE?AVQWebHitTestResult@@ABVQPoint@@@Z @ 225 NONAME ; class QWebHitTestResult QWebFrame::hitTestContent(class QPoint const &) const + ?host@QWebSecurityOrigin@@QBE?AVQString@@XZ @ 226 NONAME ; class QString QWebSecurityOrigin::host(void) const + ?hoverLeaveEvent@QGraphicsWebView@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 227 NONAME ; void QGraphicsWebView::hoverLeaveEvent(class QGraphicsSceneHoverEvent *) + ?hoverMoveEvent@QGraphicsWebView@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 228 NONAME ; void QGraphicsWebView::hoverMoveEvent(class QGraphicsSceneHoverEvent *) + ?icon@QGraphicsWebView@@QBE?AVQIcon@@XZ @ 229 NONAME ; class QIcon QGraphicsWebView::icon(void) const + ?icon@QWebFrame@@QBE?AVQIcon@@XZ @ 230 NONAME ; class QIcon QWebFrame::icon(void) const + ?icon@QWebHistoryItem@@QBE?AVQIcon@@XZ @ 231 NONAME ; class QIcon QWebHistoryItem::icon(void) const + ?icon@QWebView@@QBE?AVQIcon@@XZ @ 232 NONAME ; class QIcon QWebView::icon(void) const + ?iconChanged@QGraphicsWebView@@IAEXXZ @ 233 NONAME ; void QGraphicsWebView::iconChanged(void) + ?iconChanged@QWebFrame@@IAEXXZ @ 234 NONAME ; void QWebFrame::iconChanged(void) + ?iconChanged@QWebView@@IAEXXZ @ 235 NONAME ; void QWebView::iconChanged(void) + ?iconDatabasePath@QWebSettings@@SA?AVQString@@XZ @ 236 NONAME ; class QString QWebSettings::iconDatabasePath(void) + ?iconForUrl@QWebSettings@@SA?AVQIcon@@ABVQUrl@@@Z @ 237 NONAME ; class QIcon QWebSettings::iconForUrl(class QUrl const &) + ?imageUrl@QWebHitTestResult@@QBE?AVQUrl@@XZ @ 238 NONAME ; class QUrl QWebHitTestResult::imageUrl(void) const + ?initialLayoutCompleted@QWebFrame@@IAEXXZ @ 239 NONAME ; void QWebFrame::initialLayoutCompleted(void) + ?inputMethodEvent@QGraphicsWebView@@MAEXPAVQInputMethodEvent@@@Z @ 240 NONAME ; void QGraphicsWebView::inputMethodEvent(class QInputMethodEvent *) + ?inputMethodEvent@QWebView@@MAEXPAVQInputMethodEvent@@@Z @ 241 NONAME ; void QWebView::inputMethodEvent(class QInputMethodEvent *) + ?inputMethodQuery@QGraphicsWebView@@UBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 242 NONAME ; class QVariant QGraphicsWebView::inputMethodQuery(enum Qt::InputMethodQuery) const + ?inputMethodQuery@QWebPage@@QBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 243 NONAME ; class QVariant QWebPage::inputMethodQuery(enum Qt::InputMethodQuery) const + ?inputMethodQuery@QWebView@@UBE?AVQVariant@@W4InputMethodQuery@Qt@@@Z @ 244 NONAME ; class QVariant QWebView::inputMethodQuery(enum Qt::InputMethodQuery) const + ?isContentEditable@QWebHitTestResult@@QBE_NXZ @ 245 NONAME ; bool QWebHitTestResult::isContentEditable(void) const + ?isContentEditable@QWebPage@@QBE_NXZ @ 246 NONAME ; bool QWebPage::isContentEditable(void) const + ?isContentSelected@QWebHitTestResult@@QBE_NXZ @ 247 NONAME ; bool QWebHitTestResult::isContentSelected(void) const + ?isEnabled@QWebPluginInfo@@QBE_NXZ @ 248 NONAME ; bool QWebPluginInfo::isEnabled(void) const + ?isModified@QGraphicsWebView@@QBE_NXZ @ 249 NONAME ; bool QGraphicsWebView::isModified(void) const + ?isModified@QWebPage@@QBE_NXZ @ 250 NONAME ; bool QWebPage::isModified(void) const + ?isModified@QWebView@@QBE_NXZ @ 251 NONAME ; bool QWebView::isModified(void) const + ?isNull@QWebElement@@QBE_NXZ @ 252 NONAME ; bool QWebElement::isNull(void) const + ?isNull@QWebHitTestResult@@QBE_NXZ @ 253 NONAME ; bool QWebHitTestResult::isNull(void) const + ?isNull@QWebPluginInfo@@QBE_NXZ @ 254 NONAME ; bool QWebPluginInfo::isNull(void) const + ?isValid@QWebHistoryItem@@QBE_NXZ @ 255 NONAME ; bool QWebHistoryItem::isValid(void) const + ?itemAt@QWebHistory@@QBE?AVQWebHistoryItem@@H@Z @ 256 NONAME ; class QWebHistoryItem QWebHistory::itemAt(int) const + ?itemChange@QGraphicsWebView@@UAE?AVQVariant@@W4GraphicsItemChange@QGraphicsItem@@ABV2@@Z @ 257 NONAME ; class QVariant QGraphicsWebView::itemChange(enum QGraphicsItem::GraphicsItemChange, class QVariant const &) + ?items@QWebHistory@@QBE?AV?$QList@VQWebHistoryItem@@@@XZ @ 258 NONAME ; class QList<class QWebHistoryItem> QWebHistory::items(void) const + ?javaScriptAlert@QWebPage@@MAEXPAVQWebFrame@@ABVQString@@@Z @ 259 NONAME ; void QWebPage::javaScriptAlert(class QWebFrame *, class QString const &) + ?javaScriptConfirm@QWebPage@@MAE_NPAVQWebFrame@@ABVQString@@@Z @ 260 NONAME ; bool QWebPage::javaScriptConfirm(class QWebFrame *, class QString const &) + ?javaScriptConsoleMessage@QWebPage@@MAEXABVQString@@H0@Z @ 261 NONAME ; void QWebPage::javaScriptConsoleMessage(class QString const &, int, class QString const &) + ?javaScriptPrompt@QWebPage@@MAE_NPAVQWebFrame@@ABVQString@@1PAV3@@Z @ 262 NONAME ; bool QWebPage::javaScriptPrompt(class QWebFrame *, class QString const &, class QString const &, class QString *) + ?javaScriptWindowObjectCleared@QWebFrame@@IAEXXZ @ 263 NONAME ; void QWebFrame::javaScriptWindowObjectCleared(void) + ?keyPressEvent@QGraphicsWebView@@MAEXPAVQKeyEvent@@@Z @ 264 NONAME ; void QGraphicsWebView::keyPressEvent(class QKeyEvent *) + ?keyPressEvent@QWebView@@MAEXPAVQKeyEvent@@@Z @ 265 NONAME ; void QWebView::keyPressEvent(class QKeyEvent *) + ?keyReleaseEvent@QGraphicsWebView@@MAEXPAVQKeyEvent@@@Z @ 266 NONAME ; void QGraphicsWebView::keyReleaseEvent(class QKeyEvent *) + ?keyReleaseEvent@QWebView@@MAEXPAVQKeyEvent@@@Z @ 267 NONAME ; void QWebView::keyReleaseEvent(class QKeyEvent *) + ?last@QWebElementCollection@@QBE?AVQWebElement@@XZ @ 268 NONAME ; class QWebElement QWebElementCollection::last(void) const + ?lastChild@QWebElement@@QBE?AV1@XZ @ 269 NONAME ; class QWebElement QWebElement::lastChild(void) const + ?lastVisited@QWebHistoryItem@@QBE?AVQDateTime@@XZ @ 270 NONAME ; class QDateTime QWebHistoryItem::lastVisited(void) const + ?linkClicked@QGraphicsWebView@@IAEXABVQUrl@@@Z @ 271 NONAME ; void QGraphicsWebView::linkClicked(class QUrl const &) + ?linkClicked@QWebPage@@IAEXABVQUrl@@@Z @ 272 NONAME ; void QWebPage::linkClicked(class QUrl const &) + ?linkClicked@QWebView@@IAEXABVQUrl@@@Z @ 273 NONAME ; void QWebView::linkClicked(class QUrl const &) + ?linkDelegationPolicy@QWebPage@@QBE?AW4LinkDelegationPolicy@1@XZ @ 274 NONAME ; enum QWebPage::LinkDelegationPolicy QWebPage::linkDelegationPolicy(void) const + ?linkElement@QWebHitTestResult@@QBE?AVQWebElement@@XZ @ 275 NONAME ; class QWebElement QWebHitTestResult::linkElement(void) const + ?linkHovered@QWebPage@@IAEXABVQString@@00@Z @ 276 NONAME ; void QWebPage::linkHovered(class QString const &, class QString const &, class QString const &) + ?linkTargetFrame@QWebHitTestResult@@QBEPAVQWebFrame@@XZ @ 277 NONAME ; class QWebFrame * QWebHitTestResult::linkTargetFrame(void) const + ?linkText@QWebHitTestResult@@QBE?AVQString@@XZ @ 278 NONAME ; class QString QWebHitTestResult::linkText(void) const + ?linkTitle@QWebHitTestResult@@QBE?AVQUrl@@XZ @ 279 NONAME ; class QUrl QWebHitTestResult::linkTitle(void) const + ?linkUrl@QWebHitTestResult@@QBE?AVQUrl@@XZ @ 280 NONAME ; class QUrl QWebHitTestResult::linkUrl(void) const + ?load@QGraphicsWebView@@QAEXABVQNetworkRequest@@W4Operation@QNetworkAccessManager@@ABVQByteArray@@@Z @ 281 NONAME ; void QGraphicsWebView::load(class QNetworkRequest const &, enum QNetworkAccessManager::Operation, class QByteArray const &) + ?load@QGraphicsWebView@@QAEXABVQUrl@@@Z @ 282 NONAME ; void QGraphicsWebView::load(class QUrl const &) + ?load@QWebFrame@@QAEXABVQNetworkRequest@@W4Operation@QNetworkAccessManager@@ABVQByteArray@@@Z @ 283 NONAME ; void QWebFrame::load(class QNetworkRequest const &, enum QNetworkAccessManager::Operation, class QByteArray const &) + ?load@QWebFrame@@QAEXABVQUrl@@@Z @ 284 NONAME ; void QWebFrame::load(class QUrl const &) + ?load@QWebView@@QAEXABVQNetworkRequest@@W4Operation@QNetworkAccessManager@@ABVQByteArray@@@Z @ 285 NONAME ; void QWebView::load(class QNetworkRequest const &, enum QNetworkAccessManager::Operation, class QByteArray const &) + ?load@QWebView@@QAEXABVQUrl@@@Z @ 286 NONAME ; void QWebView::load(class QUrl const &) + ?loadFinished@QGraphicsWebView@@IAEX_N@Z @ 287 NONAME ; void QGraphicsWebView::loadFinished(bool) + ?loadFinished@QWebFrame@@IAEX_N@Z @ 288 NONAME ; void QWebFrame::loadFinished(bool) + ?loadFinished@QWebPage@@IAEX_N@Z @ 289 NONAME ; void QWebPage::loadFinished(bool) + ?loadFinished@QWebView@@IAEX_N@Z @ 290 NONAME ; void QWebView::loadFinished(bool) + ?loadProgress@QGraphicsWebView@@IAEXH@Z @ 291 NONAME ; void QGraphicsWebView::loadProgress(int) + ?loadProgress@QWebPage@@IAEXH@Z @ 292 NONAME ; void QWebPage::loadProgress(int) + ?loadProgress@QWebView@@IAEXH@Z @ 293 NONAME ; void QWebView::loadProgress(int) + ?loadStarted@QGraphicsWebView@@IAEXXZ @ 294 NONAME ; void QGraphicsWebView::loadStarted(void) + ?loadStarted@QWebFrame@@IAEXXZ @ 295 NONAME ; void QWebFrame::loadStarted(void) + ?loadStarted@QWebPage@@IAEXXZ @ 296 NONAME ; void QWebPage::loadStarted(void) + ?loadStarted@QWebView@@IAEXXZ @ 297 NONAME ; void QWebView::loadStarted(void) + ?localName@QWebElement@@QBE?AVQString@@XZ @ 298 NONAME ; class QString QWebElement::localName(void) const + ?localSchemes@QWebSecurityOrigin@@SA?AVQStringList@@XZ @ 299 NONAME ; class QStringList QWebSecurityOrigin::localSchemes(void) + ?localStoragePath@QWebSettings@@QBE?AVQString@@XZ @ 300 NONAME ; class QString QWebSettings::localStoragePath(void) const + ?mainFrame@QWebPage@@QBEPAVQWebFrame@@XZ @ 301 NONAME ; class QWebFrame * QWebPage::mainFrame(void) const + ?maximumItemCount@QWebHistory@@QBEHXZ @ 302 NONAME ; int QWebHistory::maximumItemCount(void) const + ?maximumPagesInCache@QWebSettings@@SAHXZ @ 303 NONAME ; int QWebSettings::maximumPagesInCache(void) + ?menuBarVisibilityChangeRequested@QWebPage@@IAEX_N@Z @ 304 NONAME ; void QWebPage::menuBarVisibilityChangeRequested(bool) + ?metaData@QWebFrame@@QBE?AV?$QMultiMap@VQString@@V1@@@XZ @ 305 NONAME ; class QMultiMap<class QString, class QString> QWebFrame::metaData(void) const + ?metaObject@QGraphicsWebView@@UBEPBUQMetaObject@@XZ @ 306 NONAME ; struct QMetaObject const * QGraphicsWebView::metaObject(void) const + ?metaObject@QWebFrame@@UBEPBUQMetaObject@@XZ @ 307 NONAME ; struct QMetaObject const * QWebFrame::metaObject(void) const + ?metaObject@QWebHistoryInterface@@UBEPBUQMetaObject@@XZ @ 308 NONAME ; struct QMetaObject const * QWebHistoryInterface::metaObject(void) const + ?metaObject@QWebInspector@@UBEPBUQMetaObject@@XZ @ 309 NONAME ; struct QMetaObject const * QWebInspector::metaObject(void) const + ?metaObject@QWebPage@@UBEPBUQMetaObject@@XZ @ 310 NONAME ; struct QMetaObject const * QWebPage::metaObject(void) const + ?metaObject@QWebPluginDatabase@@UBEPBUQMetaObject@@XZ @ 311 NONAME ; struct QMetaObject const * QWebPluginDatabase::metaObject(void) const + ?metaObject@QWebPluginFactory@@UBEPBUQMetaObject@@XZ @ 312 NONAME ; struct QMetaObject const * QWebPluginFactory::metaObject(void) const + ?metaObject@QWebView@@UBEPBUQMetaObject@@XZ @ 313 NONAME ; struct QMetaObject const * QWebView::metaObject(void) const + ?microFocusChanged@QWebPage@@IAEXXZ @ 314 NONAME ; void QWebPage::microFocusChanged(void) + ?mimeTypes@QWebPluginInfo@@QBE?AV?$QList@UMimeType@QWebPluginFactory@@@@XZ @ 315 NONAME ; class QList<struct QWebPluginFactory::MimeType> QWebPluginInfo::mimeTypes(void) const + ?mouseDoubleClickEvent@QGraphicsWebView@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 316 NONAME ; void QGraphicsWebView::mouseDoubleClickEvent(class QGraphicsSceneMouseEvent *) + ?mouseDoubleClickEvent@QWebView@@MAEXPAVQMouseEvent@@@Z @ 317 NONAME ; void QWebView::mouseDoubleClickEvent(class QMouseEvent *) + ?mouseMoveEvent@QGraphicsWebView@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 318 NONAME ; void QGraphicsWebView::mouseMoveEvent(class QGraphicsSceneMouseEvent *) + ?mouseMoveEvent@QWebView@@MAEXPAVQMouseEvent@@@Z @ 319 NONAME ; void QWebView::mouseMoveEvent(class QMouseEvent *) + ?mousePressEvent@QGraphicsWebView@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 320 NONAME ; void QGraphicsWebView::mousePressEvent(class QGraphicsSceneMouseEvent *) + ?mousePressEvent@QWebView@@MAEXPAVQMouseEvent@@@Z @ 321 NONAME ; void QWebView::mousePressEvent(class QMouseEvent *) + ?mouseReleaseEvent@QGraphicsWebView@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 322 NONAME ; void QGraphicsWebView::mouseReleaseEvent(class QGraphicsSceneMouseEvent *) + ?mouseReleaseEvent@QWebView@@MAEXPAVQMouseEvent@@@Z @ 323 NONAME ; void QWebView::mouseReleaseEvent(class QMouseEvent *) + ?name@QWebDatabase@@QBE?AVQString@@XZ @ 324 NONAME ; class QString QWebDatabase::name(void) const + ?name@QWebPluginInfo@@QBE?AVQString@@XZ @ 325 NONAME ; class QString QWebPluginInfo::name(void) const + ?namespaceUri@QWebElement@@QBE?AVQString@@XZ @ 326 NONAME ; class QString QWebElement::namespaceUri(void) const + ?networkAccessManager@QWebPage@@QBEPAVQNetworkAccessManager@@XZ @ 327 NONAME ; class QNetworkAccessManager * QWebPage::networkAccessManager(void) const + ?nextSibling@QWebElement@@QBE?AV1@XZ @ 328 NONAME ; class QWebElement QWebElement::nextSibling(void) const + ?offlineStorageDefaultQuota@QWebSettings@@SA_JXZ @ 329 NONAME ; long long QWebSettings::offlineStorageDefaultQuota(void) + ?offlineStoragePath@QWebSettings@@SA?AVQString@@XZ @ 330 NONAME ; class QString QWebSettings::offlineStoragePath(void) + ?offlineWebApplicationCachePath@QWebSettings@@SA?AVQString@@XZ @ 331 NONAME ; class QString QWebSettings::offlineWebApplicationCachePath(void) + ?offlineWebApplicationCacheQuota@QWebSettings@@SA_JXZ @ 332 NONAME ; long long QWebSettings::offlineWebApplicationCacheQuota(void) + ?origin@QWebDatabase@@QBE?AVQWebSecurityOrigin@@XZ @ 333 NONAME ; class QWebSecurityOrigin QWebDatabase::origin(void) const + ?originalUrl@QWebHistoryItem@@QBE?AVQUrl@@XZ @ 334 NONAME ; class QUrl QWebHistoryItem::originalUrl(void) const + ?page@QGraphicsWebView@@QBEPAVQWebPage@@XZ @ 335 NONAME ; class QWebPage * QGraphicsWebView::page(void) const + ?page@QWebFrame@@QBEPAVQWebPage@@XZ @ 336 NONAME ; class QWebPage * QWebFrame::page(void) const + ?page@QWebInspector@@QBEPAVQWebPage@@XZ @ 337 NONAME ; class QWebPage * QWebInspector::page(void) const + ?page@QWebView@@QBEPAVQWebPage@@XZ @ 338 NONAME ; class QWebPage * QWebView::page(void) const + ?pageAction@QGraphicsWebView@@QBEPAVQAction@@W4WebAction@QWebPage@@@Z @ 339 NONAME ; class QAction * QGraphicsWebView::pageAction(enum QWebPage::WebAction) const + ?pageAction@QWebView@@QBEPAVQAction@@W4WebAction@QWebPage@@@Z @ 340 NONAME ; class QAction * QWebView::pageAction(enum QWebPage::WebAction) const + ?paint@QGraphicsWebView@@UAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 341 NONAME ; void QGraphicsWebView::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *) + ?paintEvent@QWebView@@MAEXPAVQPaintEvent@@@Z @ 342 NONAME ; void QWebView::paintEvent(class QPaintEvent *) + ?palette@QWebPage@@QBE?AVQPalette@@XZ @ 343 NONAME ; class QPalette QWebPage::palette(void) const + ?parent@QWebElement@@QBE?AV1@XZ @ 344 NONAME ; class QWebElement QWebElement::parent(void) const + ?parentFrame@QWebFrame@@QBEPAV1@XZ @ 345 NONAME ; class QWebFrame * QWebFrame::parentFrame(void) const + ?path@QWebPluginInfo@@QBE?AVQString@@XZ @ 346 NONAME ; class QString QWebPluginInfo::path(void) const + ?pixmap@QWebHitTestResult@@QBE?AVQPixmap@@XZ @ 347 NONAME ; class QPixmap QWebHitTestResult::pixmap(void) const + ?pluginFactory@QWebPage@@QBEPAVQWebPluginFactory@@XZ @ 348 NONAME ; class QWebPluginFactory * QWebPage::pluginFactory(void) const + ?pluginForMimeType@QWebPluginDatabase@@QAE?AVQWebPluginInfo@@ABVQString@@@Z @ 349 NONAME ; class QWebPluginInfo QWebPluginDatabase::pluginForMimeType(class QString const &) + ?plugins@QWebPluginDatabase@@QBE?AV?$QList@VQWebPluginInfo@@@@XZ @ 350 NONAME ; class QList<class QWebPluginInfo> QWebPluginDatabase::plugins(void) const + ?port@QWebSecurityOrigin@@QBEHXZ @ 351 NONAME ; int QWebSecurityOrigin::port(void) const + ?pos@QWebFrame@@QBE?AVQPoint@@XZ @ 352 NONAME ; class QPoint QWebFrame::pos(void) const + ?pos@QWebHitTestResult@@QBE?AVQPoint@@XZ @ 353 NONAME ; class QPoint QWebHitTestResult::pos(void) const + ?preferredContentsSize@QWebPage@@QBE?AVQSize@@XZ @ 354 NONAME ; class QSize QWebPage::preferredContentsSize(void) const + ?prefix@QWebElement@@QBE?AVQString@@XZ @ 355 NONAME ; class QString QWebElement::prefix(void) const + ?prependInside@QWebElement@@QAEXABV1@@Z @ 356 NONAME ; void QWebElement::prependInside(class QWebElement const &) + ?prependInside@QWebElement@@QAEXABVQString@@@Z @ 357 NONAME ; void QWebElement::prependInside(class QString const &) + ?prependOutside@QWebElement@@QAEXABV1@@Z @ 358 NONAME ; void QWebElement::prependOutside(class QWebElement const &) + ?prependOutside@QWebElement@@QAEXABVQString@@@Z @ 359 NONAME ; void QWebElement::prependOutside(class QString const &) + ?previousSibling@QWebElement@@QBE?AV1@XZ @ 360 NONAME ; class QWebElement QWebElement::previousSibling(void) const + ?print@QWebView@@QBEXPAVQPrinter@@@Z @ 361 NONAME ; void QWebView::print(class QPrinter *) const + ?printRequested@QWebPage@@IAEXPAVQWebFrame@@@Z @ 362 NONAME ; void QWebPage::printRequested(class QWebFrame *) + ?printingMaximumShrinkFactor@QWebSettings@@QBEMXZ @ 363 NONAME ABSENT ; float QWebSettings::printingMaximumShrinkFactor(void) const + ?printingMinimumShrinkFactor@QWebSettings@@QBEMXZ @ 364 NONAME ABSENT ; float QWebSettings::printingMinimumShrinkFactor(void) const + ?provisionalLoad@QWebFrame@@IAEXXZ @ 365 NONAME ; void QWebFrame::provisionalLoad(void) + ?qWebKitMajorVersion@@YAHXZ @ 366 NONAME ; int qWebKitMajorVersion(void) + ?qWebKitMinorVersion@@YAHXZ @ 367 NONAME ; int qWebKitMinorVersion(void) + ?qWebKitVersion@@YA?AVQString@@XZ @ 368 NONAME ; class QString qWebKitVersion(void) + ?qt_drt_clearFrameName@@YAXPAVQWebFrame@@@Z @ 369 NONAME ; void qt_drt_clearFrameName(class QWebFrame *) + ?qt_drt_counterValueForElementById@@YA?AVQString@@PAVQWebFrame@@ABV1@@Z @ 370 NONAME ; class QString qt_drt_counterValueForElementById(class QWebFrame *, class QString const &) + ?qt_drt_garbageCollector_collect@@YAXXZ @ 371 NONAME ; void qt_drt_garbageCollector_collect(void) + ?qt_drt_garbageCollector_collectOnAlternateThread@@YAX_N@Z @ 372 NONAME ; void qt_drt_garbageCollector_collectOnAlternateThread(bool) + ?qt_drt_javaScriptObjectsCount@@YAHXZ @ 373 NONAME ; int qt_drt_javaScriptObjectsCount(void) + ?qt_drt_numberOfActiveAnimations@@YAHPAVQWebFrame@@@Z @ 374 NONAME ; int qt_drt_numberOfActiveAnimations(class QWebFrame *) + ?qt_drt_overwritePluginDirectories@@YAXXZ @ 375 NONAME ; void qt_drt_overwritePluginDirectories(void) + ?qt_drt_pauseAnimation@@YA_NPAVQWebFrame@@ABVQString@@N1@Z @ 376 NONAME ; bool qt_drt_pauseAnimation(class QWebFrame *, class QString const &, double, class QString const &) + ?qt_drt_pauseTransitionOfProperty@@YA_NPAVQWebFrame@@ABVQString@@N1@Z @ 377 NONAME ; bool qt_drt_pauseTransitionOfProperty(class QWebFrame *, class QString const &, double, class QString const &) + ?qt_drt_resetOriginAccessWhiteLists@@YAXXZ @ 378 NONAME ; void qt_drt_resetOriginAccessWhiteLists(void) + ?qt_drt_run@@YAX_N@Z @ 379 NONAME ; void qt_drt_run(bool) + ?qt_drt_setJavaScriptProfilingEnabled@@YAXPAVQWebFrame@@_N@Z @ 380 NONAME ; void qt_drt_setJavaScriptProfilingEnabled(class QWebFrame *, bool) + ?qt_drt_whiteListAccessFromOrigin@@YAXABVQString@@00_N@Z @ 381 NONAME ; void qt_drt_whiteListAccessFromOrigin(class QString const &, class QString const &, class QString const &, bool) + ?qt_dump_editing_callbacks@@YAX_N@Z @ 382 NONAME ; void qt_dump_editing_callbacks(bool) + ?qt_dump_frame_loader@@YAX_N@Z @ 383 NONAME ; void qt_dump_frame_loader(bool) + ?qt_dump_resource_load_callbacks@@YAX_N@Z @ 384 NONAME ; void qt_dump_resource_load_callbacks(bool) + ?qt_dump_set_accepts_editing@@YAX_N@Z @ 385 NONAME ; void qt_dump_set_accepts_editing(bool) + ?qt_metacall@QGraphicsWebView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 386 NONAME ; int QGraphicsWebView::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@QWebFrame@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 387 NONAME ; int QWebFrame::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@QWebHistoryInterface@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 388 NONAME ; int QWebHistoryInterface::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@QWebInspector@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 389 NONAME ; int QWebInspector::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@QWebPage@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 390 NONAME ; int QWebPage::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@QWebPluginDatabase@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 391 NONAME ; int QWebPluginDatabase::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@QWebPluginFactory@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 392 NONAME ; int QWebPluginFactory::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@QWebView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 393 NONAME ; int QWebView::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacast@QGraphicsWebView@@UAEPAXPBD@Z @ 394 NONAME ; void * QGraphicsWebView::qt_metacast(char const *) + ?qt_metacast@QWebFrame@@UAEPAXPBD@Z @ 395 NONAME ; void * QWebFrame::qt_metacast(char const *) + ?qt_metacast@QWebHistoryInterface@@UAEPAXPBD@Z @ 396 NONAME ; void * QWebHistoryInterface::qt_metacast(char const *) + ?qt_metacast@QWebInspector@@UAEPAXPBD@Z @ 397 NONAME ; void * QWebInspector::qt_metacast(char const *) + ?qt_metacast@QWebPage@@UAEPAXPBD@Z @ 398 NONAME ; void * QWebPage::qt_metacast(char const *) + ?qt_metacast@QWebPluginDatabase@@UAEPAXPBD@Z @ 399 NONAME ; void * QWebPluginDatabase::qt_metacast(char const *) + ?qt_metacast@QWebPluginFactory@@UAEPAXPBD@Z @ 400 NONAME ; void * QWebPluginFactory::qt_metacast(char const *) + ?qt_metacast@QWebView@@UAEPAXPBD@Z @ 401 NONAME ; void * QWebView::qt_metacast(char const *) + ?qt_webpage_groupName@@YA?AVQString@@PAVQWebPage@@@Z @ 402 NONAME ; class QString qt_webpage_groupName(class QWebPage *) + ?qt_webpage_setGroupName@@YAXPAVQWebPage@@ABVQString@@@Z @ 403 NONAME ; void qt_webpage_setGroupName(class QWebPage *, class QString const &) + ?refresh@QWebPluginDatabase@@QAEXXZ @ 404 NONAME ; void QWebPluginDatabase::refresh(void) + ?refreshPlugins@QWebPluginFactory@@UAEXXZ @ 405 NONAME ; void QWebPluginFactory::refreshPlugins(void) + ?reload@QGraphicsWebView@@QAEXXZ @ 406 NONAME ; void QGraphicsWebView::reload(void) + ?reload@QWebView@@QAEXXZ @ 407 NONAME ; void QWebView::reload(void) + ?removeAllChildren@QWebElement@@QAEXXZ @ 408 NONAME ; void QWebElement::removeAllChildren(void) + ?removeAllDatabases@QWebDatabase@@SAXXZ @ 409 NONAME ; void QWebDatabase::removeAllDatabases(void) + ?removeAttribute@QWebElement@@QAEXABVQString@@@Z @ 410 NONAME ; void QWebElement::removeAttribute(class QString const &) + ?removeAttributeNS@QWebElement@@QAEXABVQString@@0@Z @ 411 NONAME ; void QWebElement::removeAttributeNS(class QString const &, class QString const &) + ?removeClass@QWebElement@@QAEXABVQString@@@Z @ 412 NONAME ; void QWebElement::removeClass(class QString const &) + ?removeDatabase@QWebDatabase@@SAXABV1@@Z @ 413 NONAME ; void QWebDatabase::removeDatabase(class QWebDatabase const &) + ?removeFromDocument@QWebElement@@QAEXXZ @ 414 NONAME ; void QWebElement::removeFromDocument(void) + ?removeLocalScheme@QWebSecurityOrigin@@SAXABVQString@@@Z @ 415 NONAME ; void QWebSecurityOrigin::removeLocalScheme(class QString const &) + ?render@QWebElement@@QAEXPAVQPainter@@@Z @ 416 NONAME ; void QWebElement::render(class QPainter *) + ?render@QWebFrame@@QAEXPAVQPainter@@@Z @ 417 NONAME ; void QWebFrame::render(class QPainter *) + ?render@QWebFrame@@QAEXPAVQPainter@@ABVQRegion@@@Z @ 418 NONAME ; void QWebFrame::render(class QPainter *, class QRegion const &) + ?render@QWebFrame@@QAEXPAVQPainter@@W4RenderLayer@1@ABVQRegion@@@Z @ 419 NONAME ; void QWebFrame::render(class QPainter *, enum QWebFrame::RenderLayer, class QRegion const &) + ?renderHints@QWebView@@QBE?AV?$QFlags@W4RenderHint@QPainter@@@@XZ @ 420 NONAME ; class QFlags<enum QPainter::RenderHint> QWebView::renderHints(void) const + ?renderTreeDump@QWebFrame@@QBE?AVQString@@XZ @ 421 NONAME ; class QString QWebFrame::renderTreeDump(void) const + ?repaintRequested@QWebPage@@IAEXABVQRect@@@Z @ 422 NONAME ; void QWebPage::repaintRequested(class QRect const &) + ?replace@QWebElement@@QAEXABV1@@Z @ 423 NONAME ; void QWebElement::replace(class QWebElement const &) + ?replace@QWebElement@@QAEXABVQString@@@Z @ 424 NONAME ; void QWebElement::replace(class QString const &) + ?requestedUrl@QWebFrame@@QBE?AVQUrl@@XZ @ 425 NONAME ; class QUrl QWebFrame::requestedUrl(void) const + ?resetAttribute@QWebSettings@@QAEXW4WebAttribute@1@@Z @ 426 NONAME ; void QWebSettings::resetAttribute(enum QWebSettings::WebAttribute) + ?resetFontFamily@QWebSettings@@QAEXW4FontFamily@1@@Z @ 427 NONAME ; void QWebSettings::resetFontFamily(enum QWebSettings::FontFamily) + ?resetFontSize@QWebSettings@@QAEXW4FontSize@1@@Z @ 428 NONAME ; void QWebSettings::resetFontSize(enum QWebSettings::FontSize) + ?resizeEvent@QWebInspector@@MAEXPAVQResizeEvent@@@Z @ 429 NONAME ; void QWebInspector::resizeEvent(class QResizeEvent *) + ?resizeEvent@QWebView@@MAEXPAVQResizeEvent@@@Z @ 430 NONAME ; void QWebView::resizeEvent(class QResizeEvent *) + ?restoreFrameStateRequested@QWebPage@@IAEXPAVQWebFrame@@@Z @ 431 NONAME ; void QWebPage::restoreFrameStateRequested(class QWebFrame *) + ?saveFrameStateRequested@QWebPage@@IAEXPAVQWebFrame@@PAVQWebHistoryItem@@@Z @ 432 NONAME ; void QWebPage::saveFrameStateRequested(class QWebFrame *, class QWebHistoryItem *) + ?sceneEvent@QGraphicsWebView@@MAE_NPAVQEvent@@@Z @ 433 NONAME ; bool QGraphicsWebView::sceneEvent(class QEvent *) + ?scheme@QWebSecurityOrigin@@QBE?AVQString@@XZ @ 434 NONAME ; class QString QWebSecurityOrigin::scheme(void) const + ?scroll@QWebFrame@@QAEXHH@Z @ 435 NONAME ; void QWebFrame::scroll(int, int) + ?scrollBarGeometry@QWebFrame@@QBE?AVQRect@@W4Orientation@Qt@@@Z @ 436 NONAME ; class QRect QWebFrame::scrollBarGeometry(enum Qt::Orientation) const + ?scrollBarMaximum@QWebFrame@@QBEHW4Orientation@Qt@@@Z @ 437 NONAME ; int QWebFrame::scrollBarMaximum(enum Qt::Orientation) const + ?scrollBarMinimum@QWebFrame@@QBEHW4Orientation@Qt@@@Z @ 438 NONAME ; int QWebFrame::scrollBarMinimum(enum Qt::Orientation) const + ?scrollBarPolicy@QWebFrame@@QBE?AW4ScrollBarPolicy@Qt@@W4Orientation@3@@Z @ 439 NONAME ; enum Qt::ScrollBarPolicy QWebFrame::scrollBarPolicy(enum Qt::Orientation) const + ?scrollBarValue@QWebFrame@@QBEHW4Orientation@Qt@@@Z @ 440 NONAME ; int QWebFrame::scrollBarValue(enum Qt::Orientation) const + ?scrollPosition@QWebFrame@@QBE?AVQPoint@@XZ @ 441 NONAME ; class QPoint QWebFrame::scrollPosition(void) const + ?scrollRequested@QWebPage@@IAEXHHABVQRect@@@Z @ 442 NONAME ; void QWebPage::scrollRequested(int, int, class QRect const &) + ?searchPaths@QWebPluginDatabase@@QBE?AVQStringList@@XZ @ 443 NONAME ; class QStringList QWebPluginDatabase::searchPaths(void) const + ?securityOrigin@QWebFrame@@QBE?AVQWebSecurityOrigin@@XZ @ 444 NONAME ; class QWebSecurityOrigin QWebFrame::securityOrigin(void) const + ?selectedText@QWebPage@@QBE?AVQString@@XZ @ 445 NONAME ; class QString QWebPage::selectedText(void) const + ?selectedText@QWebView@@QBE?AVQString@@XZ @ 446 NONAME ; class QString QWebView::selectedText(void) const + ?selectionChanged@QWebPage@@IAEXXZ @ 447 NONAME ; void QWebPage::selectionChanged(void) + ?selectionChanged@QWebView@@IAEXXZ @ 448 NONAME ; void QWebView::selectionChanged(void) + ?setAttribute@QWebElement@@QAEXABVQString@@0@Z @ 449 NONAME ; void QWebElement::setAttribute(class QString const &, class QString const &) + ?setAttribute@QWebSettings@@QAEXW4WebAttribute@1@_N@Z @ 450 NONAME ; void QWebSettings::setAttribute(enum QWebSettings::WebAttribute, bool) + ?setAttributeNS@QWebElement@@QAEXABVQString@@00@Z @ 451 NONAME ; void QWebElement::setAttributeNS(class QString const &, class QString const &, class QString const &) + ?setContent@QGraphicsWebView@@QAEXABVQByteArray@@ABVQString@@ABVQUrl@@@Z @ 452 NONAME ; void QGraphicsWebView::setContent(class QByteArray const &, class QString const &, class QUrl const &) + ?setContent@QWebFrame@@QAEXABVQByteArray@@ABVQString@@ABVQUrl@@@Z @ 453 NONAME ; void QWebFrame::setContent(class QByteArray const &, class QString const &, class QUrl const &) + ?setContent@QWebView@@QAEXABVQByteArray@@ABVQString@@ABVQUrl@@@Z @ 454 NONAME ; void QWebView::setContent(class QByteArray const &, class QString const &, class QUrl const &) + ?setContentEditable@QWebPage@@QAEX_N@Z @ 455 NONAME ; void QWebPage::setContentEditable(bool) + ?setDatabaseQuota@QWebSecurityOrigin@@QAEX_J@Z @ 456 NONAME ; void QWebSecurityOrigin::setDatabaseQuota(long long) + ?setDefaultInterface@QWebHistoryInterface@@SAXPAV1@@Z @ 457 NONAME ; void QWebHistoryInterface::setDefaultInterface(class QWebHistoryInterface *) + ?setDefaultTextEncoding@QWebSettings@@QAEXABVQString@@@Z @ 458 NONAME ; void QWebSettings::setDefaultTextEncoding(class QString const &) + ?setEnabled@QWebPluginInfo@@QAEX_N@Z @ 459 NONAME ; void QWebPluginInfo::setEnabled(bool) + ?setFocus@QWebElement@@QAEXXZ @ 460 NONAME ; void QWebElement::setFocus(void) + ?setFocus@QWebFrame@@QAEXXZ @ 461 NONAME ; void QWebFrame::setFocus(void) + ?setFontFamily@QWebSettings@@QAEXW4FontFamily@1@ABVQString@@@Z @ 462 NONAME ; void QWebSettings::setFontFamily(enum QWebSettings::FontFamily, class QString const &) + ?setFontSize@QWebSettings@@QAEXW4FontSize@1@H@Z @ 463 NONAME ; void QWebSettings::setFontSize(enum QWebSettings::FontSize, int) + ?setForwardUnsupportedContent@QWebPage@@QAEX_N@Z @ 464 NONAME ; void QWebPage::setForwardUnsupportedContent(bool) + ?setGeometry@QGraphicsWebView@@UAEXABVQRectF@@@Z @ 465 NONAME ; void QGraphicsWebView::setGeometry(class QRectF const &) + ?setHtml@QGraphicsWebView@@QAEXABVQString@@ABVQUrl@@@Z @ 466 NONAME ; void QGraphicsWebView::setHtml(class QString const &, class QUrl const &) + ?setHtml@QWebFrame@@QAEXABVQString@@ABVQUrl@@@Z @ 467 NONAME ; void QWebFrame::setHtml(class QString const &, class QUrl const &) + ?setHtml@QWebView@@QAEXABVQString@@ABVQUrl@@@Z @ 468 NONAME ; void QWebView::setHtml(class QString const &, class QUrl const &) + ?setIconDatabasePath@QWebSettings@@SAXABVQString@@@Z @ 469 NONAME ; void QWebSettings::setIconDatabasePath(class QString const &) + ?setInnerXml@QWebElement@@QAEXABVQString@@@Z @ 470 NONAME ; void QWebElement::setInnerXml(class QString const &) + ?setLinkDelegationPolicy@QWebPage@@QAEXW4LinkDelegationPolicy@1@@Z @ 471 NONAME ; void QWebPage::setLinkDelegationPolicy(enum QWebPage::LinkDelegationPolicy) + ?setLocalStoragePath@QWebSettings@@QAEXABVQString@@@Z @ 472 NONAME ; void QWebSettings::setLocalStoragePath(class QString const &) + ?setMaximumItemCount@QWebHistory@@QAEXH@Z @ 473 NONAME ; void QWebHistory::setMaximumItemCount(int) + ?setMaximumPagesInCache@QWebSettings@@SAXH@Z @ 474 NONAME ; void QWebSettings::setMaximumPagesInCache(int) + ?setNetworkAccessManager@QWebPage@@QAEXPAVQNetworkAccessManager@@@Z @ 475 NONAME ; void QWebPage::setNetworkAccessManager(class QNetworkAccessManager *) + ?setObjectCacheCapacities@QWebSettings@@SAXHHH@Z @ 476 NONAME ; void QWebSettings::setObjectCacheCapacities(int, int, int) + ?setOfflineStorageDefaultQuota@QWebSettings@@SAX_J@Z @ 477 NONAME ; void QWebSettings::setOfflineStorageDefaultQuota(long long) + ?setOfflineStoragePath@QWebSettings@@SAXABVQString@@@Z @ 478 NONAME ; void QWebSettings::setOfflineStoragePath(class QString const &) + ?setOfflineWebApplicationCachePath@QWebSettings@@SAXABVQString@@@Z @ 479 NONAME ; void QWebSettings::setOfflineWebApplicationCachePath(class QString const &) + ?setOfflineWebApplicationCacheQuota@QWebSettings@@SAX_J@Z @ 480 NONAME ; void QWebSettings::setOfflineWebApplicationCacheQuota(long long) + ?setOuterXml@QWebElement@@QAEXABVQString@@@Z @ 481 NONAME ; void QWebElement::setOuterXml(class QString const &) + ?setPage@QGraphicsWebView@@QAEXPAVQWebPage@@@Z @ 482 NONAME ; void QGraphicsWebView::setPage(class QWebPage *) + ?setPage@QWebInspector@@QAEXPAVQWebPage@@@Z @ 483 NONAME ; void QWebInspector::setPage(class QWebPage *) + ?setPage@QWebView@@QAEXPAVQWebPage@@@Z @ 484 NONAME ; void QWebView::setPage(class QWebPage *) + ?setPalette@QWebPage@@QAEXABVQPalette@@@Z @ 485 NONAME ; void QWebPage::setPalette(class QPalette const &) + ?setPlainText@QWebElement@@QAEXABVQString@@@Z @ 486 NONAME ; void QWebElement::setPlainText(class QString const &) + ?setPluginFactory@QWebPage@@QAEXPAVQWebPluginFactory@@@Z @ 487 NONAME ; void QWebPage::setPluginFactory(class QWebPluginFactory *) + ?setPreferredContentsSize@QWebPage@@QBEXABVQSize@@@Z @ 488 NONAME ; void QWebPage::setPreferredContentsSize(class QSize const &) const + ?setPreferredPluginForMimeType@QWebPluginDatabase@@QAEXABVQString@@ABVQWebPluginInfo@@@Z @ 489 NONAME ; void QWebPluginDatabase::setPreferredPluginForMimeType(class QString const &, class QWebPluginInfo const &) + ?setPrintingMaximumShrinkFactor@QWebSettings@@QAEXM@Z @ 490 NONAME ABSENT ; void QWebSettings::setPrintingMaximumShrinkFactor(float) + ?setPrintingMinimumShrinkFactor@QWebSettings@@QAEXM@Z @ 491 NONAME ABSENT ; void QWebSettings::setPrintingMinimumShrinkFactor(float) + ?setRenderHint@QWebView@@QAEXW4RenderHint@QPainter@@_N@Z @ 492 NONAME ; void QWebView::setRenderHint(enum QPainter::RenderHint, bool) + ?setRenderHints@QWebView@@QAEXV?$QFlags@W4RenderHint@QPainter@@@@@Z @ 493 NONAME ; void QWebView::setRenderHints(class QFlags<enum QPainter::RenderHint>) + ?setScrollBarPolicy@QWebFrame@@QAEXW4Orientation@Qt@@W4ScrollBarPolicy@3@@Z @ 494 NONAME ; void QWebFrame::setScrollBarPolicy(enum Qt::Orientation, enum Qt::ScrollBarPolicy) + ?setScrollBarValue@QWebFrame@@QAEXW4Orientation@Qt@@H@Z @ 495 NONAME ; void QWebFrame::setScrollBarValue(enum Qt::Orientation, int) + ?setScrollPosition@QWebFrame@@QAEXABVQPoint@@@Z @ 496 NONAME ; void QWebFrame::setScrollPosition(class QPoint const &) + ?setSearchPaths@QWebPluginDatabase@@QAEXABVQStringList@@@Z @ 497 NONAME ; void QWebPluginDatabase::setSearchPaths(class QStringList const &) + ?setStyleProperty@QWebElement@@QAEXABVQString@@0@Z @ 498 NONAME ; void QWebElement::setStyleProperty(class QString const &, class QString const &) + ?setTextSizeMultiplier@QWebFrame@@QAEXM@Z @ 499 NONAME ; void QWebFrame::setTextSizeMultiplier(float) + ?setTextSizeMultiplier@QWebView@@QAEXM@Z @ 500 NONAME ; void QWebView::setTextSizeMultiplier(float) + ?setUrl@QGraphicsWebView@@QAEXABVQUrl@@@Z @ 501 NONAME ; void QGraphicsWebView::setUrl(class QUrl const &) + ?setUrl@QWebFrame@@QAEXABVQUrl@@@Z @ 502 NONAME ; void QWebFrame::setUrl(class QUrl const &) + ?setUrl@QWebView@@QAEXABVQUrl@@@Z @ 503 NONAME ; void QWebView::setUrl(class QUrl const &) + ?setUserData@QWebHistoryItem@@QAEXABVQVariant@@@Z @ 504 NONAME ; void QWebHistoryItem::setUserData(class QVariant const &) + ?setUserStyleSheetUrl@QWebSettings@@QAEXABVQUrl@@@Z @ 505 NONAME ; void QWebSettings::setUserStyleSheetUrl(class QUrl const &) + ?setView@QWebPage@@QAEXPAVQWidget@@@Z @ 506 NONAME ; void QWebPage::setView(class QWidget *) + ?setViewportSize@QWebPage@@QBEXABVQSize@@@Z @ 507 NONAME ; void QWebPage::setViewportSize(class QSize const &) const + ?setWebGraphic@QWebSettings@@SAXW4WebGraphic@1@ABVQPixmap@@@Z @ 508 NONAME ; void QWebSettings::setWebGraphic(enum QWebSettings::WebGraphic, class QPixmap const &) + ?setZoomFactor@QGraphicsWebView@@QAEXM@Z @ 509 NONAME ; void QGraphicsWebView::setZoomFactor(float) + ?setZoomFactor@QWebFrame@@QAEXM@Z @ 510 NONAME ; void QWebFrame::setZoomFactor(float) + ?setZoomFactor@QWebView@@QAEXM@Z @ 511 NONAME ; void QWebView::setZoomFactor(float) + ?settings@QGraphicsWebView@@QBEPAVQWebSettings@@XZ @ 512 NONAME ; class QWebSettings * QGraphicsWebView::settings(void) const + ?settings@QWebPage@@QBEPAVQWebSettings@@XZ @ 513 NONAME ; class QWebSettings * QWebPage::settings(void) const + ?settings@QWebView@@QBEPAVQWebSettings@@XZ @ 514 NONAME ; class QWebSettings * QWebView::settings(void) const + ?shouldInterruptJavaScript@QWebPage@@QAE_NXZ @ 515 NONAME ; bool QWebPage::shouldInterruptJavaScript(void) + ?showEvent@QWebInspector@@MAEXPAVQShowEvent@@@Z @ 516 NONAME ; void QWebInspector::showEvent(class QShowEvent *) + ?size@QWebDatabase@@QBE_JXZ @ 517 NONAME ; long long QWebDatabase::size(void) const + ?sizeHint@QGraphicsWebView@@UBE?AVQSizeF@@W4SizeHint@Qt@@ABV2@@Z @ 518 NONAME ; class QSizeF QGraphicsWebView::sizeHint(enum Qt::SizeHint, class QSizeF const &) const + ?sizeHint@QWebInspector@@UBE?AVQSize@@XZ @ 519 NONAME ; class QSize QWebInspector::sizeHint(void) const + ?sizeHint@QWebView@@UBE?AVQSize@@XZ @ 520 NONAME ; class QSize QWebView::sizeHint(void) const + ?statusBarMessage@QGraphicsWebView@@IAEXABVQString@@@Z @ 521 NONAME ; void QGraphicsWebView::statusBarMessage(class QString const &) + ?statusBarMessage@QWebPage@@IAEXABVQString@@@Z @ 522 NONAME ; void QWebPage::statusBarMessage(class QString const &) + ?statusBarMessage@QWebView@@IAEXABVQString@@@Z @ 523 NONAME ; void QWebView::statusBarMessage(class QString const &) + ?statusBarVisibilityChangeRequested@QWebPage@@IAEX_N@Z @ 524 NONAME ; void QWebPage::statusBarVisibilityChangeRequested(bool) + ?stop@QGraphicsWebView@@QAEXXZ @ 525 NONAME ; void QGraphicsWebView::stop(void) + ?stop@QWebView@@QAEXXZ @ 526 NONAME ; void QWebView::stop(void) + ?styleProperty@QWebElement@@QBE?AVQString@@ABV2@W4StyleResolveStrategy@1@@Z @ 527 NONAME ; class QString QWebElement::styleProperty(class QString const &, enum QWebElement::StyleResolveStrategy) const + ?supportsExtension@QWebPage@@UBE_NW4Extension@1@@Z @ 528 NONAME ; bool QWebPage::supportsExtension(enum QWebPage::Extension) const + ?supportsExtension@QWebPluginFactory@@UBE_NW4Extension@1@@Z @ 529 NONAME ; bool QWebPluginFactory::supportsExtension(enum QWebPluginFactory::Extension) const + ?supportsMimeType@QWebPluginInfo@@QBE_NABVQString@@@Z @ 530 NONAME ; bool QWebPluginInfo::supportsMimeType(class QString const &) const + ?swallowContextMenuEvent@QWebPage@@QAE_NPAVQContextMenuEvent@@@Z @ 531 NONAME ; bool QWebPage::swallowContextMenuEvent(class QContextMenuEvent *) + ?tagName@QWebElement@@QBE?AVQString@@XZ @ 532 NONAME ; class QString QWebElement::tagName(void) const + ?takeFromDocument@QWebElement@@QAEAAV1@XZ @ 533 NONAME ; class QWebElement & QWebElement::takeFromDocument(void) + ?testAttribute@QWebSettings@@QBE_NW4WebAttribute@1@@Z @ 534 NONAME ; bool QWebSettings::testAttribute(enum QWebSettings::WebAttribute) const + ?textSizeMultiplier@QWebFrame@@QBEMXZ @ 535 NONAME ; float QWebFrame::textSizeMultiplier(void) const + ?textSizeMultiplier@QWebView@@QBEMXZ @ 536 NONAME ; float QWebView::textSizeMultiplier(void) const + ?title@QGraphicsWebView@@QBE?AVQString@@XZ @ 537 NONAME ; class QString QGraphicsWebView::title(void) const + ?title@QWebFrame@@QBE?AVQString@@XZ @ 538 NONAME ; class QString QWebFrame::title(void) const + ?title@QWebHistoryItem@@QBE?AVQString@@XZ @ 539 NONAME ; class QString QWebHistoryItem::title(void) const + ?title@QWebHitTestResult@@QBE?AVQString@@XZ @ 540 NONAME ; class QString QWebHitTestResult::title(void) const + ?title@QWebView@@QBE?AVQString@@XZ @ 541 NONAME ; class QString QWebView::title(void) const + ?titleChanged@QGraphicsWebView@@IAEXABVQString@@@Z @ 542 NONAME ; void QGraphicsWebView::titleChanged(class QString const &) + ?titleChanged@QWebFrame@@IAEXABVQString@@@Z @ 543 NONAME ; void QWebFrame::titleChanged(class QString const &) + ?titleChanged@QWebView@@IAEXABVQString@@@Z @ 544 NONAME ; void QWebView::titleChanged(class QString const &) + ?toHtml@QWebFrame@@QBE?AVQString@@XZ @ 545 NONAME ; class QString QWebFrame::toHtml(void) const + ?toInnerXml@QWebElement@@QBE?AVQString@@XZ @ 546 NONAME ; class QString QWebElement::toInnerXml(void) const + ?toList@QWebElementCollection@@QBE?AV?$QList@VQWebElement@@@@XZ @ 547 NONAME ; class QList<class QWebElement> QWebElementCollection::toList(void) const + ?toOuterXml@QWebElement@@QBE?AVQString@@XZ @ 548 NONAME ; class QString QWebElement::toOuterXml(void) const + ?toPlainText@QWebElement@@QBE?AVQString@@XZ @ 549 NONAME ; class QString QWebElement::toPlainText(void) const + ?toPlainText@QWebFrame@@QBE?AVQString@@XZ @ 550 NONAME ; class QString QWebFrame::toPlainText(void) const + ?toggleClass@QWebElement@@QAEXABVQString@@@Z @ 551 NONAME ; void QWebElement::toggleClass(class QString const &) + ?toolBarVisibilityChangeRequested@QWebPage@@IAEX_N@Z @ 552 NONAME ; void QWebPage::toolBarVisibilityChangeRequested(bool) + ?totalBytes@QWebPage@@QBE_KXZ @ 553 NONAME ; unsigned long long QWebPage::totalBytes(void) const + ?tr@QGraphicsWebView@@SA?AVQString@@PBD0@Z @ 554 NONAME ; class QString QGraphicsWebView::tr(char const *, char const *) + ?tr@QGraphicsWebView@@SA?AVQString@@PBD0H@Z @ 555 NONAME ; class QString QGraphicsWebView::tr(char const *, char const *, int) + ?tr@QWebFrame@@SA?AVQString@@PBD0@Z @ 556 NONAME ; class QString QWebFrame::tr(char const *, char const *) + ?tr@QWebFrame@@SA?AVQString@@PBD0H@Z @ 557 NONAME ; class QString QWebFrame::tr(char const *, char const *, int) + ?tr@QWebHistoryInterface@@SA?AVQString@@PBD0@Z @ 558 NONAME ; class QString QWebHistoryInterface::tr(char const *, char const *) + ?tr@QWebHistoryInterface@@SA?AVQString@@PBD0H@Z @ 559 NONAME ; class QString QWebHistoryInterface::tr(char const *, char const *, int) + ?tr@QWebInspector@@SA?AVQString@@PBD0@Z @ 560 NONAME ; class QString QWebInspector::tr(char const *, char const *) + ?tr@QWebInspector@@SA?AVQString@@PBD0H@Z @ 561 NONAME ; class QString QWebInspector::tr(char const *, char const *, int) + ?tr@QWebPage@@SA?AVQString@@PBD0@Z @ 562 NONAME ; class QString QWebPage::tr(char const *, char const *) + ?tr@QWebPage@@SA?AVQString@@PBD0H@Z @ 563 NONAME ; class QString QWebPage::tr(char const *, char const *, int) + ?tr@QWebPluginDatabase@@SA?AVQString@@PBD0@Z @ 564 NONAME ; class QString QWebPluginDatabase::tr(char const *, char const *) + ?tr@QWebPluginDatabase@@SA?AVQString@@PBD0H@Z @ 565 NONAME ; class QString QWebPluginDatabase::tr(char const *, char const *, int) + ?tr@QWebPluginFactory@@SA?AVQString@@PBD0@Z @ 566 NONAME ; class QString QWebPluginFactory::tr(char const *, char const *) + ?tr@QWebPluginFactory@@SA?AVQString@@PBD0H@Z @ 567 NONAME ; class QString QWebPluginFactory::tr(char const *, char const *, int) + ?tr@QWebView@@SA?AVQString@@PBD0@Z @ 568 NONAME ; class QString QWebView::tr(char const *, char const *) + ?tr@QWebView@@SA?AVQString@@PBD0H@Z @ 569 NONAME ; class QString QWebView::tr(char const *, char const *, int) + ?trUtf8@QGraphicsWebView@@SA?AVQString@@PBD0@Z @ 570 NONAME ; class QString QGraphicsWebView::trUtf8(char const *, char const *) + ?trUtf8@QGraphicsWebView@@SA?AVQString@@PBD0H@Z @ 571 NONAME ; class QString QGraphicsWebView::trUtf8(char const *, char const *, int) + ?trUtf8@QWebFrame@@SA?AVQString@@PBD0@Z @ 572 NONAME ; class QString QWebFrame::trUtf8(char const *, char const *) + ?trUtf8@QWebFrame@@SA?AVQString@@PBD0H@Z @ 573 NONAME ; class QString QWebFrame::trUtf8(char const *, char const *, int) + ?trUtf8@QWebHistoryInterface@@SA?AVQString@@PBD0@Z @ 574 NONAME ; class QString QWebHistoryInterface::trUtf8(char const *, char const *) + ?trUtf8@QWebHistoryInterface@@SA?AVQString@@PBD0H@Z @ 575 NONAME ; class QString QWebHistoryInterface::trUtf8(char const *, char const *, int) + ?trUtf8@QWebInspector@@SA?AVQString@@PBD0@Z @ 576 NONAME ; class QString QWebInspector::trUtf8(char const *, char const *) + ?trUtf8@QWebInspector@@SA?AVQString@@PBD0H@Z @ 577 NONAME ; class QString QWebInspector::trUtf8(char const *, char const *, int) + ?trUtf8@QWebPage@@SA?AVQString@@PBD0@Z @ 578 NONAME ; class QString QWebPage::trUtf8(char const *, char const *) + ?trUtf8@QWebPage@@SA?AVQString@@PBD0H@Z @ 579 NONAME ; class QString QWebPage::trUtf8(char const *, char const *, int) + ?trUtf8@QWebPluginDatabase@@SA?AVQString@@PBD0@Z @ 580 NONAME ; class QString QWebPluginDatabase::trUtf8(char const *, char const *) + ?trUtf8@QWebPluginDatabase@@SA?AVQString@@PBD0H@Z @ 581 NONAME ; class QString QWebPluginDatabase::trUtf8(char const *, char const *, int) + ?trUtf8@QWebPluginFactory@@SA?AVQString@@PBD0@Z @ 582 NONAME ; class QString QWebPluginFactory::trUtf8(char const *, char const *) + ?trUtf8@QWebPluginFactory@@SA?AVQString@@PBD0H@Z @ 583 NONAME ; class QString QWebPluginFactory::trUtf8(char const *, char const *, int) + ?trUtf8@QWebView@@SA?AVQString@@PBD0@Z @ 584 NONAME ; class QString QWebView::trUtf8(char const *, char const *) + ?trUtf8@QWebView@@SA?AVQString@@PBD0H@Z @ 585 NONAME ; class QString QWebView::trUtf8(char const *, char const *, int) + ?triggerAction@QWebPage@@UAEXW4WebAction@1@_N@Z @ 586 NONAME ; void QWebPage::triggerAction(enum QWebPage::WebAction, bool) + ?triggerPageAction@QGraphicsWebView@@QAEXW4WebAction@QWebPage@@_N@Z @ 587 NONAME ; void QGraphicsWebView::triggerPageAction(enum QWebPage::WebAction, bool) + ?triggerPageAction@QWebView@@QAEXW4WebAction@QWebPage@@_N@Z @ 588 NONAME ; void QWebView::triggerPageAction(enum QWebPage::WebAction, bool) + ?undoStack@QWebPage@@QBEPAVQUndoStack@@XZ @ 589 NONAME ; class QUndoStack * QWebPage::undoStack(void) const + ?unsupportedContent@QWebPage@@IAEXPAVQNetworkReply@@@Z @ 590 NONAME ; void QWebPage::unsupportedContent(class QNetworkReply *) + ?updateGeometry@QGraphicsWebView@@UAEXXZ @ 591 NONAME ; void QGraphicsWebView::updateGeometry(void) + ?updatePositionDependentActions@QWebPage@@QAEXABVQPoint@@@Z @ 592 NONAME ; void QWebPage::updatePositionDependentActions(class QPoint const &) + ?url@QGraphicsWebView@@QBE?AVQUrl@@XZ @ 593 NONAME ; class QUrl QGraphicsWebView::url(void) const + ?url@QWebFrame@@QBE?AVQUrl@@XZ @ 594 NONAME ; class QUrl QWebFrame::url(void) const + ?url@QWebHistoryItem@@QBE?AVQUrl@@XZ @ 595 NONAME ; class QUrl QWebHistoryItem::url(void) const + ?url@QWebView@@QBE?AVQUrl@@XZ @ 596 NONAME ; class QUrl QWebView::url(void) const + ?urlChanged@QGraphicsWebView@@IAEXABVQUrl@@@Z @ 597 NONAME ; void QGraphicsWebView::urlChanged(class QUrl const &) + ?urlChanged@QWebFrame@@IAEXABVQUrl@@@Z @ 598 NONAME ; void QWebFrame::urlChanged(class QUrl const &) + ?urlChanged@QWebView@@IAEXABVQUrl@@@Z @ 599 NONAME ; void QWebView::urlChanged(class QUrl const &) + ?userAgentForUrl@QWebPage@@MBE?AVQString@@ABVQUrl@@@Z @ 600 NONAME ; class QString QWebPage::userAgentForUrl(class QUrl const &) const + ?userData@QWebHistoryItem@@QBE?AVQVariant@@XZ @ 601 NONAME ; class QVariant QWebHistoryItem::userData(void) const + ?userStyleSheetUrl@QWebSettings@@QBE?AVQUrl@@XZ @ 602 NONAME ; class QUrl QWebSettings::userStyleSheetUrl(void) const + ?view@QWebPage@@QBEPAVQWidget@@XZ @ 603 NONAME ; class QWidget * QWebPage::view(void) const + ?viewportSize@QWebPage@@QBE?AVQSize@@XZ @ 604 NONAME ; class QSize QWebPage::viewportSize(void) const + ?webFrame@QWebElement@@QBEPAVQWebFrame@@XZ @ 605 NONAME ; class QWebFrame * QWebElement::webFrame(void) const + ?webGraphic@QWebSettings@@SA?AVQPixmap@@W4WebGraphic@1@@Z @ 606 NONAME ; class QPixmap QWebSettings::webGraphic(enum QWebSettings::WebGraphic) + ?wheelEvent@QGraphicsWebView@@MAEXPAVQGraphicsSceneWheelEvent@@@Z @ 607 NONAME ; void QGraphicsWebView::wheelEvent(class QGraphicsSceneWheelEvent *) + ?wheelEvent@QWebView@@MAEXPAVQWheelEvent@@@Z @ 608 NONAME ; void QWebView::wheelEvent(class QWheelEvent *) + ?windowCloseRequested@QWebPage@@IAEXXZ @ 609 NONAME ; void QWebPage::windowCloseRequested(void) + ?zoomFactor@QGraphicsWebView@@QBEMXZ @ 610 NONAME ; float QGraphicsWebView::zoomFactor(void) const + ?zoomFactor@QWebFrame@@QBEMXZ @ 611 NONAME ; float QWebFrame::zoomFactor(void) const + ?zoomFactor@QWebView@@QBEMXZ @ 612 NONAME ; float QWebView::zoomFactor(void) const + ?staticMetaObject@QWebPluginDatabase@@2UQMetaObject@@B @ 613 NONAME ; struct QMetaObject const QWebPluginDatabase::staticMetaObject + ?staticMetaObject@QWebFrame@@2UQMetaObject@@B @ 614 NONAME ; struct QMetaObject const QWebFrame::staticMetaObject + ?staticMetaObject@QWebHistoryInterface@@2UQMetaObject@@B @ 615 NONAME ; struct QMetaObject const QWebHistoryInterface::staticMetaObject + ?staticMetaObject@QWebInspector@@2UQMetaObject@@B @ 616 NONAME ; struct QMetaObject const QWebInspector::staticMetaObject + ?staticMetaObject@QWebPluginFactory@@2UQMetaObject@@B @ 617 NONAME ; struct QMetaObject const QWebPluginFactory::staticMetaObject + ?staticMetaObject@QGraphicsWebView@@2UQMetaObject@@B @ 618 NONAME ; struct QMetaObject const QGraphicsWebView::staticMetaObject + ?staticMetaObject@QWebPage@@2UQMetaObject@@B @ 619 NONAME ; struct QMetaObject const QWebPage::staticMetaObject + ?staticMetaObject@QWebView@@2UQMetaObject@@B @ 620 NONAME ; struct QMetaObject const QWebView::staticMetaObject + ?attributeNames@QWebElement@@QBE?AVQStringList@@ABVQString@@@Z @ 621 NONAME ; class QStringList QWebElement::attributeNames(class QString const &) const + ?qt_networkAccessAllowed@@YAX_N@Z @ 622 NONAME ; void qt_networkAccessAllowed(bool) + ?qt_resumeActiveDOMObjects@@YAXPAVQWebFrame@@@Z @ 623 NONAME ; void qt_resumeActiveDOMObjects(class QWebFrame *) + ?qt_suspendActiveDOMObjects@@YAXPAVQWebFrame@@@Z @ 624 NONAME ; void qt_suspendActiveDOMObjects(class QWebFrame *) + ?qtwebkit_webframe_scrollRecursively@@YA_NPAVQWebFrame@@HH@Z @ 625 NONAME ; bool qtwebkit_webframe_scrollRecursively(class QWebFrame *, int, int) + diff --git a/WebKit/qt/symbian/eabi/QtWebKitu.def b/WebKit/qt/symbian/eabi/QtWebKitu.def new file mode 100644 index 0000000..78523c6 --- /dev/null +++ b/WebKit/qt/symbian/eabi/QtWebKitu.def @@ -0,0 +1,699 @@ +EXPORTS + _Z10qt_drt_runb @ 1 NONAME + _Z14qWebKitVersionv @ 2 NONAME + _Z19qWebKitMajorVersionv @ 3 NONAME + _Z19qWebKitMinorVersionv @ 4 NONAME + _Z20qt_dump_frame_loaderb @ 5 NONAME + _Z20qt_webpage_groupNameP8QWebPage @ 6 NONAME + _Z21qt_drt_clearFrameNameP9QWebFrame @ 7 NONAME + _Z21qt_drt_pauseAnimationP9QWebFrameRK7QStringdS3_ @ 8 NONAME + _Z23qt_webpage_setGroupNameP8QWebPageRK7QString @ 9 NONAME + _Z25qt_dump_editing_callbacksb @ 10 NONAME + _Z27qt_dump_set_accepts_editingb @ 11 NONAME + _Z29qt_drt_javaScriptObjectsCountv @ 12 NONAME + _Z31qt_drt_garbageCollector_collectv @ 13 NONAME + _Z31qt_drt_numberOfActiveAnimationsP9QWebFrame @ 14 NONAME + _Z31qt_dump_resource_load_callbacksb @ 15 NONAME + _Z32qt_drt_pauseTransitionOfPropertyP9QWebFrameRK7QStringdS3_ @ 16 NONAME + _Z33qt_drt_overwritePluginDirectoriesv @ 17 NONAME + _Z36qt_drt_setJavaScriptProfilingEnabledP9QWebFrameb @ 18 NONAME + _Z48qt_drt_garbageCollector_collectOnAlternateThreadb @ 19 NONAME + _ZN11QWebElement11encloseWithERK7QString @ 20 NONAME + _ZN11QWebElement11encloseWithERKS_ @ 21 NONAME + _ZN11QWebElement11removeClassERK7QString @ 22 NONAME + _ZN11QWebElement11setInnerXmlERK7QString @ 23 NONAME + _ZN11QWebElement11setOuterXmlERK7QString @ 24 NONAME + _ZN11QWebElement11toggleClassERK7QString @ 25 NONAME + _ZN11QWebElement12appendInsideERK7QString @ 26 NONAME + _ZN11QWebElement12appendInsideERKS_ @ 27 NONAME + _ZN11QWebElement12setAttributeERK7QStringS2_ @ 28 NONAME + _ZN11QWebElement12setPlainTextERK7QString @ 29 NONAME + _ZN11QWebElement13appendOutsideERK7QString @ 30 NONAME + _ZN11QWebElement13appendOutsideERKS_ @ 31 NONAME + _ZN11QWebElement13prependInsideERK7QString @ 32 NONAME + _ZN11QWebElement13prependInsideERKS_ @ 33 NONAME + _ZN11QWebElement14prependOutsideERK7QString @ 34 NONAME + _ZN11QWebElement14prependOutsideERKS_ @ 35 NONAME + _ZN11QWebElement14removeChildrenEv @ 36 NONAME ABSENT + _ZN11QWebElement14setAttributeNSERK7QStringS2_S2_ @ 37 NONAME + _ZN11QWebElement15removeAttributeERK7QString @ 38 NONAME + _ZN11QWebElement16enclosingElementEPN7WebCore4NodeE @ 39 NONAME + _ZN11QWebElement16setStylePropertyERK7QStringS2_ @ 40 NONAME + _ZN11QWebElement16takeFromDocumentEv @ 41 NONAME + _ZN11QWebElement17removeAttributeNSERK7QStringS2_ @ 42 NONAME + _ZN11QWebElement18evaluateJavaScriptERK7QString @ 43 NONAME + _ZN11QWebElement18removeFromDocumentEv @ 44 NONAME + _ZN11QWebElement19encloseContentsWithERK7QString @ 45 NONAME + _ZN11QWebElement19encloseContentsWithERKS_ @ 46 NONAME + _ZN11QWebElement7replaceERK7QString @ 47 NONAME + _ZN11QWebElement7replaceERKS_ @ 48 NONAME + _ZN11QWebElement8addClassERK7QString @ 49 NONAME + _ZN11QWebElement8setFocusEv @ 50 NONAME + _ZN11QWebElementC1EPN7WebCore4NodeE @ 51 NONAME + _ZN11QWebElementC1EPN7WebCore7ElementE @ 52 NONAME + _ZN11QWebElementC1ERKS_ @ 53 NONAME + _ZN11QWebElementC1Ev @ 54 NONAME + _ZN11QWebElementC2EPN7WebCore4NodeE @ 55 NONAME + _ZN11QWebElementC2EPN7WebCore7ElementE @ 56 NONAME + _ZN11QWebElementC2ERKS_ @ 57 NONAME + _ZN11QWebElementC2Ev @ 58 NONAME + _ZN11QWebElementD1Ev @ 59 NONAME + _ZN11QWebElementD2Ev @ 60 NONAME + _ZN11QWebElementaSERKS_ @ 61 NONAME + _ZN11QWebHistory12restoreStateERK10QByteArray @ 62 NONAME ABSENT + _ZN11QWebHistory19setMaximumItemCountEi @ 63 NONAME + _ZN11QWebHistory4backEv @ 64 NONAME + _ZN11QWebHistory5clearEv @ 65 NONAME + _ZN11QWebHistory7forwardEv @ 66 NONAME + _ZN11QWebHistory8goToItemERK15QWebHistoryItem @ 67 NONAME + _ZN11QWebHistoryC1Ev @ 68 NONAME + _ZN11QWebHistoryC2Ev @ 69 NONAME + _ZN11QWebHistoryD1Ev @ 70 NONAME + _ZN11QWebHistoryD2Ev @ 71 NONAME + _ZN12QWebDatabase14removeDatabaseERKS_ @ 72 NONAME + _ZN12QWebDatabase18removeAllDatabasesEv @ 73 NONAME + _ZN12QWebDatabaseC1EP19QWebDatabasePrivate @ 74 NONAME + _ZN12QWebDatabaseC1ERKS_ @ 75 NONAME + _ZN12QWebDatabaseC2EP19QWebDatabasePrivate @ 76 NONAME + _ZN12QWebDatabaseC2ERKS_ @ 77 NONAME + _ZN12QWebDatabaseD1Ev @ 78 NONAME + _ZN12QWebDatabaseD2Ev @ 79 NONAME + _ZN12QWebDatabaseaSERKS_ @ 80 NONAME + _ZN12QWebSettings10iconForUrlERK4QUrl @ 81 NONAME + _ZN12QWebSettings10webGraphicENS_10WebGraphicE @ 82 NONAME + _ZN12QWebSettings11setFontSizeENS_8FontSizeEi @ 83 NONAME + _ZN12QWebSettings12setAttributeENS_12WebAttributeEb @ 84 NONAME + _ZN12QWebSettings13resetFontSizeENS_8FontSizeE @ 85 NONAME + _ZN12QWebSettings13setFontFamilyENS_10FontFamilyERK7QString @ 86 NONAME + _ZN12QWebSettings13setWebGraphicENS_10WebGraphicERK7QPixmap @ 87 NONAME + _ZN12QWebSettings14globalSettingsEv @ 88 NONAME + _ZN12QWebSettings14pluginDatabaseEv @ 89 NONAME ABSENT + _ZN12QWebSettings14resetAttributeENS_12WebAttributeE @ 90 NONAME + _ZN12QWebSettings15resetFontFamilyENS_10FontFamilyE @ 91 NONAME + _ZN12QWebSettings16iconDatabasePathEv @ 92 NONAME + _ZN12QWebSettings17clearIconDatabaseEv @ 93 NONAME + _ZN12QWebSettings17clearMemoryCachesEv @ 94 NONAME + _ZN12QWebSettings18offlineStoragePathEv @ 95 NONAME + _ZN12QWebSettings19maximumPagesInCacheEv @ 96 NONAME + _ZN12QWebSettings19setIconDatabasePathERK7QString @ 97 NONAME + _ZN12QWebSettings19setLocalStoragePathERK7QString @ 98 NONAME + _ZN12QWebSettings20setUserStyleSheetUrlERK4QUrl @ 99 NONAME + _ZN12QWebSettings21setOfflineStoragePathERK7QString @ 100 NONAME + _ZN12QWebSettings22setDefaultTextEncodingERK7QString @ 101 NONAME + _ZN12QWebSettings22setMaximumPagesInCacheEi @ 102 NONAME + _ZN12QWebSettings23enablePersistentStorageERK7QString @ 103 NONAME + _ZN12QWebSettings24setObjectCacheCapacitiesEiii @ 104 NONAME + _ZN12QWebSettings26offlineStorageDefaultQuotaEv @ 105 NONAME + _ZN12QWebSettings29setOfflineStorageDefaultQuotaEx @ 106 NONAME + _ZN12QWebSettings30offlineWebApplicationCachePathEv @ 107 NONAME + _ZN12QWebSettings31offlineWebApplicationCacheQuotaEv @ 108 NONAME + _ZN12QWebSettings33setOfflineWebApplicationCachePathERK7QString @ 109 NONAME + _ZN12QWebSettings34setOfflineWebApplicationCacheQuotaEx @ 110 NONAME + _ZN12QWebSettingsC1EPN7WebCore8SettingsE @ 111 NONAME + _ZN12QWebSettingsC1Ev @ 112 NONAME + _ZN12QWebSettingsC2EPN7WebCore8SettingsE @ 113 NONAME + _ZN12QWebSettingsC2Ev @ 114 NONAME + _ZN12QWebSettingsD1Ev @ 115 NONAME + _ZN12QWebSettingsD2Ev @ 116 NONAME + _ZN13QWebInspector11qt_metacallEN11QMetaObject4CallEiPPv @ 117 NONAME + _ZN13QWebInspector11qt_metacastEPKc @ 118 NONAME + _ZN13QWebInspector11resizeEventEP12QResizeEvent @ 119 NONAME + _ZN13QWebInspector16staticMetaObjectE @ 120 NONAME DATA 16 + _ZN13QWebInspector18windowTitleChangedERK7QString @ 121 NONAME ABSENT + _ZN13QWebInspector19getStaticMetaObjectEv @ 122 NONAME + _ZN13QWebInspector5eventEP6QEvent @ 123 NONAME + _ZN13QWebInspector7setPageEP8QWebPage @ 124 NONAME + _ZN13QWebInspector9hideEventEP10QHideEvent @ 125 NONAME + _ZN13QWebInspector9showEventEP10QShowEvent @ 126 NONAME + _ZN13QWebInspectorC1EP7QWidget @ 127 NONAME + _ZN13QWebInspectorC2EP7QWidget @ 128 NONAME + _ZN13QWebInspectorD0Ev @ 129 NONAME + _ZN13QWebInspectorD1Ev @ 130 NONAME + _ZN13QWebInspectorD2Ev @ 131 NONAME + _ZN14QWebPluginInfo10setEnabledEb @ 132 NONAME + _ZN14QWebPluginInfoC1EPN7WebCore13PluginPackageE @ 133 NONAME + _ZN14QWebPluginInfoC1ERKS_ @ 134 NONAME + _ZN14QWebPluginInfoC1Ev @ 135 NONAME + _ZN14QWebPluginInfoC2EPN7WebCore13PluginPackageE @ 136 NONAME + _ZN14QWebPluginInfoC2ERKS_ @ 137 NONAME + _ZN14QWebPluginInfoC2Ev @ 138 NONAME + _ZN14QWebPluginInfoD1Ev @ 139 NONAME + _ZN14QWebPluginInfoD2Ev @ 140 NONAME + _ZN14QWebPluginInfoaSERKS_ @ 141 NONAME + _ZN15QWebHistoryItem11setUserDataERK8QVariant @ 142 NONAME + _ZN15QWebHistoryItemC1EP22QWebHistoryItemPrivate @ 143 NONAME + _ZN15QWebHistoryItemC1ERKS_ @ 144 NONAME + _ZN15QWebHistoryItemC2EP22QWebHistoryItemPrivate @ 145 NONAME + _ZN15QWebHistoryItemC2ERKS_ @ 146 NONAME + _ZN15QWebHistoryItemD1Ev @ 147 NONAME + _ZN15QWebHistoryItemD2Ev @ 148 NONAME + _ZN15QWebHistoryItemaSERKS_ @ 149 NONAME + _ZN16QGraphicsWebView10loadFailedEv @ 150 NONAME ABSENT + _ZN16QGraphicsWebView10sceneEventEP6QEvent @ 151 NONAME + _ZN16QGraphicsWebView10setContentERK10QByteArrayRK7QStringRK4QUrl @ 152 NONAME + _ZN16QGraphicsWebView10urlChangedERK4QUrl @ 153 NONAME + _ZN16QGraphicsWebView10wheelEventEP24QGraphicsSceneWheelEvent @ 154 NONAME + _ZN16QGraphicsWebView11iconChangedEv @ 155 NONAME + _ZN16QGraphicsWebView11loadStartedEv @ 156 NONAME + _ZN16QGraphicsWebView11qt_metacallEN11QMetaObject4CallEiPPv @ 157 NONAME + _ZN16QGraphicsWebView11qt_metacastEPKc @ 158 NONAME + _ZN16QGraphicsWebView11setGeometryERK6QRectF @ 159 NONAME + _ZN16QGraphicsWebView12focusInEventEP11QFocusEvent @ 160 NONAME + _ZN16QGraphicsWebView12loadFinishedEv @ 161 NONAME ABSENT + _ZN16QGraphicsWebView12titleChangedERK7QString @ 162 NONAME + _ZN16QGraphicsWebView13dragMoveEventEP27QGraphicsSceneDragDropEvent @ 163 NONAME + _ZN16QGraphicsWebView13focusOutEventEP11QFocusEvent @ 164 NONAME + _ZN16QGraphicsWebView13keyPressEventEP9QKeyEvent @ 165 NONAME + _ZN16QGraphicsWebView13setZoomFactorEf @ 166 NONAME + _ZN16QGraphicsWebView13statusChangedEv @ 167 NONAME ABSENT + _ZN16QGraphicsWebView14dragEnterEventEP27QGraphicsSceneDragDropEvent @ 168 NONAME + _ZN16QGraphicsWebView14dragLeaveEventEP27QGraphicsSceneDragDropEvent @ 169 NONAME + _ZN16QGraphicsWebView14hoverMoveEventEP24QGraphicsSceneHoverEvent @ 170 NONAME + _ZN16QGraphicsWebView14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 171 NONAME + _ZN16QGraphicsWebView14setInteractiveEb @ 172 NONAME ABSENT + _ZN16QGraphicsWebView14updateGeometryEv @ 173 NONAME + _ZN16QGraphicsWebView15hoverLeaveEventEP24QGraphicsSceneHoverEvent @ 174 NONAME + _ZN16QGraphicsWebView15keyReleaseEventEP9QKeyEvent @ 175 NONAME + _ZN16QGraphicsWebView15mousePressEventEP24QGraphicsSceneMouseEvent @ 176 NONAME + _ZN16QGraphicsWebView15progressChangedEf @ 177 NONAME ABSENT + _ZN16QGraphicsWebView16contextMenuEventEP30QGraphicsSceneContextMenuEvent @ 178 NONAME + _ZN16QGraphicsWebView16inputMethodEventEP17QInputMethodEvent @ 179 NONAME + _ZN16QGraphicsWebView16staticMetaObjectE @ 180 NONAME DATA 16 + _ZN16QGraphicsWebView17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 181 NONAME + _ZN16QGraphicsWebView17zoomFactorChangedEv @ 182 NONAME ABSENT + _ZN16QGraphicsWebView18focusNextPrevChildEb @ 183 NONAME + _ZN16QGraphicsWebView19getStaticMetaObjectEv @ 184 NONAME + _ZN16QGraphicsWebView20interactivityChangedEv @ 185 NONAME ABSENT + _ZN16QGraphicsWebView21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent @ 186 NONAME + _ZN16QGraphicsWebView4backEv @ 187 NONAME + _ZN16QGraphicsWebView4loadERK15QNetworkRequestN21QNetworkAccessManager9OperationERK10QByteArray @ 188 NONAME + _ZN16QGraphicsWebView4loadERK4QUrl @ 189 NONAME + _ZN16QGraphicsWebView4stopEv @ 190 NONAME + _ZN16QGraphicsWebView5eventEP6QEvent @ 191 NONAME + _ZN16QGraphicsWebView5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 192 NONAME + _ZN16QGraphicsWebView6reloadEv @ 193 NONAME + _ZN16QGraphicsWebView6setUrlERK4QUrl @ 194 NONAME + _ZN16QGraphicsWebView7forwardEv @ 195 NONAME + _ZN16QGraphicsWebView7setHtmlERK7QStringRK4QUrl @ 196 NONAME + _ZN16QGraphicsWebView7setPageEP8QWebPage @ 197 NONAME + _ZN16QGraphicsWebView9dropEventEP27QGraphicsSceneDragDropEvent @ 198 NONAME + _ZN16QGraphicsWebViewC1EP13QGraphicsItem @ 199 NONAME + _ZN16QGraphicsWebViewC2EP13QGraphicsItem @ 200 NONAME + _ZN16QGraphicsWebViewD0Ev @ 201 NONAME + _ZN16QGraphicsWebViewD1Ev @ 202 NONAME + _ZN16QGraphicsWebViewD2Ev @ 203 NONAME + _ZN17QWebHitTestResultC1EP24QWebHitTestResultPrivate @ 204 NONAME + _ZN17QWebHitTestResultC1ERKS_ @ 205 NONAME + _ZN17QWebHitTestResultC1Ev @ 206 NONAME + _ZN17QWebHitTestResultC2EP24QWebHitTestResultPrivate @ 207 NONAME + _ZN17QWebHitTestResultC2ERKS_ @ 208 NONAME + _ZN17QWebHitTestResultC2Ev @ 209 NONAME + _ZN17QWebHitTestResultD1Ev @ 210 NONAME + _ZN17QWebHitTestResultD2Ev @ 211 NONAME + _ZN17QWebHitTestResultaSERKS_ @ 212 NONAME + _ZN17QWebPluginFactory11qt_metacallEN11QMetaObject4CallEiPPv @ 213 NONAME + _ZN17QWebPluginFactory11qt_metacastEPKc @ 214 NONAME + _ZN17QWebPluginFactory14refreshPluginsEv @ 215 NONAME + _ZN17QWebPluginFactory16staticMetaObjectE @ 216 NONAME DATA 16 + _ZN17QWebPluginFactory19getStaticMetaObjectEv @ 217 NONAME + _ZN17QWebPluginFactory9extensionENS_9ExtensionEPKNS_15ExtensionOptionEPNS_15ExtensionReturnE @ 218 NONAME + _ZN17QWebPluginFactoryC2EP7QObject @ 219 NONAME + _ZN17QWebPluginFactoryD0Ev @ 220 NONAME + _ZN17QWebPluginFactoryD1Ev @ 221 NONAME + _ZN17QWebPluginFactoryD2Ev @ 222 NONAME + _ZN18QWebPluginDatabase11qt_metacallEN11QMetaObject4CallEiPPv @ 223 NONAME + _ZN18QWebPluginDatabase11qt_metacastEPKc @ 224 NONAME + _ZN18QWebPluginDatabase13addSearchPathERK7QString @ 225 NONAME + _ZN18QWebPluginDatabase14setSearchPathsERK11QStringList @ 226 NONAME + _ZN18QWebPluginDatabase16staticMetaObjectE @ 227 NONAME DATA 16 + _ZN18QWebPluginDatabase17pluginForMimeTypeERK7QString @ 228 NONAME + _ZN18QWebPluginDatabase18defaultSearchPathsEv @ 229 NONAME + _ZN18QWebPluginDatabase19getStaticMetaObjectEv @ 230 NONAME + _ZN18QWebPluginDatabase29setPreferredPluginForMimeTypeERK7QStringRK14QWebPluginInfo @ 231 NONAME + _ZN18QWebPluginDatabase7refreshEv @ 232 NONAME + _ZN18QWebPluginDatabaseC1EP7QObject @ 233 NONAME + _ZN18QWebPluginDatabaseC2EP7QObject @ 234 NONAME + _ZN18QWebPluginDatabaseD0Ev @ 235 NONAME + _ZN18QWebPluginDatabaseD1Ev @ 236 NONAME + _ZN18QWebPluginDatabaseD2Ev @ 237 NONAME + _ZN18QWebSecurityOrigin10allOriginsEv @ 238 NONAME + _ZN18QWebSecurityOrigin12localSchemesEv @ 239 NONAME + _ZN18QWebSecurityOrigin14addLocalSchemeERK7QString @ 240 NONAME + _ZN18QWebSecurityOrigin16setDatabaseQuotaEx @ 241 NONAME + _ZN18QWebSecurityOrigin17removeLocalSchemeERK7QString @ 242 NONAME + _ZN18QWebSecurityOrigin25whiteListAccessFromOriginERK7QStringS2_S2_b @ 243 NONAME ABSENT + _ZN18QWebSecurityOrigin27resetOriginAccessWhiteListsEv @ 244 NONAME ABSENT + _ZN18QWebSecurityOriginC1EP25QWebSecurityOriginPrivate @ 245 NONAME + _ZN18QWebSecurityOriginC1ERKS_ @ 246 NONAME + _ZN18QWebSecurityOriginC2EP25QWebSecurityOriginPrivate @ 247 NONAME + _ZN18QWebSecurityOriginC2ERKS_ @ 248 NONAME + _ZN18QWebSecurityOriginD1Ev @ 249 NONAME + _ZN18QWebSecurityOriginD2Ev @ 250 NONAME + _ZN18QWebSecurityOriginaSERKS_ @ 251 NONAME + _ZN20QWebHistoryInterface11qt_metacallEN11QMetaObject4CallEiPPv @ 252 NONAME + _ZN20QWebHistoryInterface11qt_metacastEPKc @ 253 NONAME + _ZN20QWebHistoryInterface16defaultInterfaceEv @ 254 NONAME + _ZN20QWebHistoryInterface16staticMetaObjectE @ 255 NONAME DATA 16 + _ZN20QWebHistoryInterface19getStaticMetaObjectEv @ 256 NONAME + _ZN20QWebHistoryInterface19setDefaultInterfaceEPS_ @ 257 NONAME + _ZN20QWebHistoryInterfaceC2EP7QObject @ 258 NONAME + _ZN20QWebHistoryInterfaceD0Ev @ 259 NONAME + _ZN20QWebHistoryInterfaceD1Ev @ 260 NONAME + _ZN20QWebHistoryInterfaceD2Ev @ 261 NONAME + _ZN8QWebPage10chooseFileEP9QWebFrameRK7QString @ 262 NONAME + _ZN8QWebPage10setPaletteERK8QPalette @ 263 NONAME + _ZN8QWebPage11linkClickedERK4QUrl @ 264 NONAME + _ZN8QWebPage11linkHoveredERK7QStringS2_S2_ @ 265 NONAME + _ZN8QWebPage11loadStartedEv @ 266 NONAME + _ZN8QWebPage11qt_metacallEN11QMetaObject4CallEiPPv @ 267 NONAME + _ZN8QWebPage11qt_metacastEPKc @ 268 NONAME + _ZN8QWebPage12createPluginERK7QStringRK4QUrlRK11QStringListS8_ @ 269 NONAME + _ZN8QWebPage12createWindowENS_13WebWindowTypeE @ 270 NONAME + _ZN8QWebPage12frameCreatedEP9QWebFrame @ 271 NONAME + _ZN8QWebPage12loadFinishedEb @ 272 NONAME + _ZN8QWebPage12loadProgressEi @ 273 NONAME + _ZN8QWebPage13triggerActionENS_9WebActionEb @ 274 NONAME + _ZN8QWebPage14printRequestedEP9QWebFrame @ 275 NONAME + _ZN8QWebPage15contentsChangedEv @ 276 NONAME + _ZN8QWebPage15javaScriptAlertEP9QWebFrameRK7QString @ 277 NONAME + _ZN8QWebPage15scrollRequestedEiiRK5QRect @ 278 NONAME + _ZN8QWebPage16javaScriptPromptEP9QWebFrameRK7QStringS4_PS2_ @ 279 NONAME + _ZN8QWebPage16repaintRequestedERK5QRect @ 280 NONAME + _ZN8QWebPage16selectionChangedEv @ 281 NONAME + _ZN8QWebPage16setPluginFactoryEP17QWebPluginFactory @ 282 NONAME + _ZN8QWebPage16staticMetaObjectE @ 283 NONAME DATA 16 + _ZN8QWebPage16statusBarMessageERK7QString @ 284 NONAME + _ZN8QWebPage17downloadRequestedERK15QNetworkRequest @ 285 NONAME + _ZN8QWebPage17javaScriptConfirmEP9QWebFrameRK7QString @ 286 NONAME + _ZN8QWebPage17microFocusChangedEv @ 287 NONAME + _ZN8QWebPage18focusNextPrevChildEb @ 288 NONAME + _ZN8QWebPage18setContentEditableEb @ 289 NONAME + _ZN8QWebPage18unsupportedContentEP13QNetworkReply @ 290 NONAME + _ZN8QWebPage19getStaticMetaObjectEv @ 291 NONAME + _ZN8QWebPage20windowCloseRequestedEv @ 292 NONAME + _ZN8QWebPage21databaseQuotaExceededEP9QWebFrame7QString @ 293 NONAME + _ZN8QWebPage21webInspectorTriggeredERK11QWebElement @ 294 NONAME ABSENT + _ZN8QWebPage23acceptNavigationRequestEP9QWebFrameRK15QNetworkRequestNS_14NavigationTypeE @ 295 NONAME + _ZN8QWebPage23geometryChangeRequestedERK5QRect @ 296 NONAME + _ZN8QWebPage23saveFrameStateRequestedEP9QWebFrameP15QWebHistoryItem @ 297 NONAME + _ZN8QWebPage23setLinkDelegationPolicyENS_20LinkDelegationPolicyE @ 298 NONAME + _ZN8QWebPage23setNetworkAccessManagerEP21QNetworkAccessManager @ 299 NONAME + _ZN8QWebPage23swallowContextMenuEventEP17QContextMenuEvent @ 300 NONAME + _ZN8QWebPage24javaScriptConsoleMessageERK7QStringiS2_ @ 301 NONAME + _ZN8QWebPage25createStandardContextMenuEv @ 302 NONAME + _ZN8QWebPage25shouldInterruptJavaScriptEv @ 303 NONAME + _ZN8QWebPage26restoreFrameStateRequestedEP9QWebFrame @ 304 NONAME + _ZN8QWebPage28setForwardUnsupportedContentEb @ 305 NONAME + _ZN8QWebPage30updatePositionDependentActionsERK6QPoint @ 306 NONAME + _ZN8QWebPage32menuBarVisibilityChangeRequestedEb @ 307 NONAME + _ZN8QWebPage32toolBarVisibilityChangeRequestedEb @ 308 NONAME + _ZN8QWebPage34statusBarVisibilityChangeRequestedEb @ 309 NONAME + _ZN8QWebPage5eventEP6QEvent @ 310 NONAME + _ZN8QWebPage7setViewEP7QWidget @ 311 NONAME + _ZN8QWebPage8findTextERK7QString6QFlagsINS_8FindFlagEE @ 312 NONAME + _ZN8QWebPage9extensionENS_9ExtensionEPKNS_15ExtensionOptionEPNS_15ExtensionReturnE @ 313 NONAME + _ZN8QWebPageC1EP7QObject @ 314 NONAME + _ZN8QWebPageC2EP7QObject @ 315 NONAME + _ZN8QWebPageD0Ev @ 316 NONAME + _ZN8QWebPageD1Ev @ 317 NONAME + _ZN8QWebPageD2Ev @ 318 NONAME + _ZN8QWebView10paintEventEP11QPaintEvent @ 319 NONAME + _ZN8QWebView10setContentERK10QByteArrayRK7QStringRK4QUrl @ 320 NONAME + _ZN8QWebView10urlChangedERK4QUrl @ 321 NONAME + _ZN8QWebView10wheelEventEP11QWheelEvent @ 322 NONAME + _ZN8QWebView11changeEventEP6QEvent @ 323 NONAME + _ZN8QWebView11iconChangedEv @ 324 NONAME + _ZN8QWebView11linkClickedERK4QUrl @ 325 NONAME + _ZN8QWebView11loadStartedEv @ 326 NONAME + _ZN8QWebView11qt_metacallEN11QMetaObject4CallEiPPv @ 327 NONAME + _ZN8QWebView11qt_metacastEPKc @ 328 NONAME + _ZN8QWebView11resizeEventEP12QResizeEvent @ 329 NONAME + _ZN8QWebView12createWindowEN8QWebPage13WebWindowTypeE @ 330 NONAME + _ZN8QWebView12focusInEventEP11QFocusEvent @ 331 NONAME + _ZN8QWebView12loadFinishedEb @ 332 NONAME + _ZN8QWebView12loadProgressEi @ 333 NONAME + _ZN8QWebView12titleChangedERK7QString @ 334 NONAME + _ZN8QWebView13dragMoveEventEP14QDragMoveEvent @ 335 NONAME + _ZN8QWebView13focusOutEventEP11QFocusEvent @ 336 NONAME + _ZN8QWebView13keyPressEventEP9QKeyEvent @ 337 NONAME + _ZN8QWebView13setRenderHintEN8QPainter10RenderHintEb @ 338 NONAME + _ZN8QWebView13setZoomFactorEf @ 339 NONAME + _ZN8QWebView14dragEnterEventEP15QDragEnterEvent @ 340 NONAME + _ZN8QWebView14dragLeaveEventEP15QDragLeaveEvent @ 341 NONAME + _ZN8QWebView14mouseMoveEventEP11QMouseEvent @ 342 NONAME + _ZN8QWebView14setRenderHintsE6QFlagsIN8QPainter10RenderHintEE @ 343 NONAME + _ZN8QWebView15keyReleaseEventEP9QKeyEvent @ 344 NONAME + _ZN8QWebView15mousePressEventEP11QMouseEvent @ 345 NONAME + _ZN8QWebView16contextMenuEventEP17QContextMenuEvent @ 346 NONAME + _ZN8QWebView16inputMethodEventEP17QInputMethodEvent @ 347 NONAME + _ZN8QWebView16selectionChangedEv @ 348 NONAME + _ZN8QWebView16staticMetaObjectE @ 349 NONAME DATA 16 + _ZN8QWebView16statusBarMessageERK7QString @ 350 NONAME + _ZN8QWebView17mouseReleaseEventEP11QMouseEvent @ 351 NONAME + _ZN8QWebView17triggerPageActionEN8QWebPage9WebActionEb @ 352 NONAME + _ZN8QWebView18focusNextPrevChildEb @ 353 NONAME + _ZN8QWebView18guessUrlFromStringERK7QString @ 354 NONAME ABSENT + _ZN8QWebView19getStaticMetaObjectEv @ 355 NONAME + _ZN8QWebView21mouseDoubleClickEventEP11QMouseEvent @ 356 NONAME + _ZN8QWebView21setTextSizeMultiplierEf @ 357 NONAME + _ZN8QWebView4backEv @ 358 NONAME + _ZN8QWebView4loadERK15QNetworkRequestN21QNetworkAccessManager9OperationERK10QByteArray @ 359 NONAME + _ZN8QWebView4loadERK4QUrl @ 360 NONAME + _ZN8QWebView4stopEv @ 361 NONAME + _ZN8QWebView5eventEP6QEvent @ 362 NONAME + _ZN8QWebView6reloadEv @ 363 NONAME + _ZN8QWebView6setUrlERK4QUrl @ 364 NONAME + _ZN8QWebView7forwardEv @ 365 NONAME + _ZN8QWebView7setHtmlERK7QStringRK4QUrl @ 366 NONAME + _ZN8QWebView7setPageEP8QWebPage @ 367 NONAME + _ZN8QWebView8findTextERK7QString6QFlagsIN8QWebPage8FindFlagEE @ 368 NONAME + _ZN8QWebView9dropEventEP10QDropEvent @ 369 NONAME + _ZN8QWebViewC1EP7QWidget @ 370 NONAME + _ZN8QWebViewC2EP7QWidget @ 371 NONAME + _ZN8QWebViewD0Ev @ 372 NONAME + _ZN8QWebViewD1Ev @ 373 NONAME + _ZN8QWebViewD2Ev @ 374 NONAME + _ZN9QWebFrame10setContentERK10QByteArrayRK7QStringRK4QUrl @ 375 NONAME + _ZN9QWebFrame10urlChangedERK4QUrl @ 376 NONAME + _ZN9QWebFrame11iconChangedEv @ 377 NONAME + _ZN9QWebFrame11loadStartedEv @ 378 NONAME + _ZN9QWebFrame11qt_metacallEN11QMetaObject4CallEiPPv @ 379 NONAME + _ZN9QWebFrame11qt_metacastEPKc @ 380 NONAME + _ZN9QWebFrame12loadFinishedEb @ 381 NONAME + _ZN9QWebFrame12titleChangedERK7QString @ 382 NONAME + _ZN9QWebFrame13setZoomFactorEf @ 383 NONAME + _ZN9QWebFrame15provisionalLoadEv @ 384 NONAME + _ZN9QWebFrame16staticMetaObjectE @ 385 NONAME DATA 16 + _ZN9QWebFrame17setScrollBarValueEN2Qt11OrientationEi @ 386 NONAME + _ZN9QWebFrame17setScrollPositionERK6QPoint @ 387 NONAME + _ZN9QWebFrame18evaluateJavaScriptERK7QString @ 388 NONAME + _ZN9QWebFrame18setScrollBarPolicyEN2Qt11OrientationENS0_15ScrollBarPolicyE @ 389 NONAME + _ZN9QWebFrame19contentsSizeChangedERK5QSize @ 390 NONAME + _ZN9QWebFrame19getStaticMetaObjectEv @ 391 NONAME + _ZN9QWebFrame21setTextSizeMultiplierEf @ 392 NONAME + _ZN9QWebFrame22initialLayoutCompletedEv @ 393 NONAME + _ZN9QWebFrame23setClipRenderToViewportEb @ 394 NONAME ABSENT + _ZN9QWebFrame27addToJavaScriptWindowObjectERK7QStringP7QObject @ 395 NONAME + _ZN9QWebFrame27addToJavaScriptWindowObjectERK7QStringP7QObjectN13QScriptEngine14ValueOwnershipE @ 396 NONAME + _ZN9QWebFrame29javaScriptWindowObjectClearedEv @ 397 NONAME + _ZN9QWebFrame4loadERK15QNetworkRequestN21QNetworkAccessManager9OperationERK10QByteArray @ 398 NONAME + _ZN9QWebFrame4loadERK4QUrl @ 399 NONAME + _ZN9QWebFrame5eventEP6QEvent @ 400 NONAME + _ZN9QWebFrame6renderEP8QPainter @ 401 NONAME + _ZN9QWebFrame6renderEP8QPainterRK7QRegion @ 402 NONAME + _ZN9QWebFrame6scrollEii @ 403 NONAME + _ZN9QWebFrame6setUrlERK4QUrl @ 404 NONAME + _ZN9QWebFrame7setHtmlERK7QStringRK4QUrl @ 405 NONAME + _ZN9QWebFrame8setFocusEv @ 406 NONAME + _ZN9QWebFrameC1EP8QWebPageP13QWebFrameData @ 407 NONAME + _ZN9QWebFrameC1EPS_P13QWebFrameData @ 408 NONAME + _ZN9QWebFrameC2EP8QWebPageP13QWebFrameData @ 409 NONAME + _ZN9QWebFrameC2EPS_P13QWebFrameData @ 410 NONAME + _ZN9QWebFrameD0Ev @ 411 NONAME + _ZN9QWebFrameD1Ev @ 412 NONAME + _ZN9QWebFrameD2Ev @ 413 NONAME + _ZNK11QWebElement10firstChildEv @ 414 NONAME + _ZNK11QWebElement10toInnerXmlEv @ 415 NONAME + _ZNK11QWebElement10toOuterXmlEv @ 416 NONAME + _ZNK11QWebElement11attributeNSERK7QStringS2_S2_ @ 417 NONAME + _ZNK11QWebElement11nextSiblingEv @ 418 NONAME + _ZNK11QWebElement11toPlainTextEv @ 419 NONAME + _ZNK11QWebElement12hasAttributeERK7QString @ 420 NONAME + _ZNK11QWebElement12namespaceUriEv @ 421 NONAME + _ZNK11QWebElement13hasAttributesEv @ 422 NONAME + _ZNK11QWebElement13stylePropertyERK7QStringNS_20StyleResolveStrategyE @ 423 NONAME + _ZNK11QWebElement14hasAttributeNSERK7QStringS2_ @ 424 NONAME + _ZNK11QWebElement15previousSiblingEv @ 425 NONAME + _ZNK11QWebElement5cloneEv @ 426 NONAME + _ZNK11QWebElement6isNullEv @ 427 NONAME + _ZNK11QWebElement6parentEv @ 428 NONAME + _ZNK11QWebElement6prefixEv @ 429 NONAME + _ZNK11QWebElement7classesEv @ 430 NONAME + _ZNK11QWebElement7findAllERK7QString @ 431 NONAME + _ZNK11QWebElement7tagNameEv @ 432 NONAME + _ZNK11QWebElement8documentEv @ 433 NONAME + _ZNK11QWebElement8geometryEv @ 434 NONAME + _ZNK11QWebElement8hasClassERK7QString @ 435 NONAME + _ZNK11QWebElement8hasFocusEv @ 436 NONAME + _ZNK11QWebElement8webFrameEv @ 437 NONAME + _ZNK11QWebElement9attributeERK7QStringS2_ @ 438 NONAME + _ZNK11QWebElement9findFirstERK7QString @ 439 NONAME + _ZNK11QWebElement9lastChildEv @ 440 NONAME + _ZNK11QWebElement9localNameEv @ 441 NONAME + _ZNK11QWebElementeqERKS_ @ 442 NONAME + _ZNK11QWebElementneERKS_ @ 443 NONAME + _ZNK11QWebHistory11currentItemEv @ 444 NONAME + _ZNK11QWebHistory11forwardItemEv @ 445 NONAME + _ZNK11QWebHistory12canGoForwardEv @ 446 NONAME + _ZNK11QWebHistory12forwardItemsEi @ 447 NONAME + _ZNK11QWebHistory16currentItemIndexEv @ 448 NONAME + _ZNK11QWebHistory16maximumItemCountEv @ 449 NONAME + _ZNK11QWebHistory5countEv @ 450 NONAME + _ZNK11QWebHistory5itemsEv @ 451 NONAME + _ZNK11QWebHistory6itemAtEi @ 452 NONAME + _ZNK11QWebHistory8backItemEv @ 453 NONAME + _ZNK11QWebHistory9backItemsEi @ 454 NONAME + _ZNK11QWebHistory9canGoBackEv @ 455 NONAME + _ZNK11QWebHistory9saveStateENS_19HistoryStateVersionE @ 456 NONAME ABSENT + _ZNK12QWebDatabase11displayNameEv @ 457 NONAME + _ZNK12QWebDatabase12expectedSizeEv @ 458 NONAME + _ZNK12QWebDatabase4nameEv @ 459 NONAME + _ZNK12QWebDatabase4sizeEv @ 460 NONAME + _ZNK12QWebDatabase6originEv @ 461 NONAME + _ZNK12QWebDatabase8fileNameEv @ 462 NONAME + _ZNK12QWebSettings10fontFamilyENS_10FontFamilyE @ 463 NONAME + _ZNK12QWebSettings13testAttributeENS_12WebAttributeE @ 464 NONAME + _ZNK12QWebSettings16localStoragePathEv @ 465 NONAME + _ZNK12QWebSettings17userStyleSheetUrlEv @ 466 NONAME + _ZNK12QWebSettings19defaultTextEncodingEv @ 467 NONAME + _ZNK12QWebSettings8fontSizeENS_8FontSizeE @ 468 NONAME + _ZNK13QWebInspector10metaObjectEv @ 469 NONAME + _ZNK13QWebInspector4pageEv @ 470 NONAME + _ZNK13QWebInspector8sizeHintEv @ 471 NONAME + _ZNK14QWebPluginInfo11descriptionEv @ 472 NONAME + _ZNK14QWebPluginInfo16supportsMimeTypeERK7QString @ 473 NONAME + _ZNK14QWebPluginInfo4nameEv @ 474 NONAME + _ZNK14QWebPluginInfo4pathEv @ 475 NONAME + _ZNK14QWebPluginInfo6isNullEv @ 476 NONAME + _ZNK14QWebPluginInfo9isEnabledEv @ 477 NONAME + _ZNK14QWebPluginInfo9mimeTypesEv @ 478 NONAME + _ZNK14QWebPluginInfoeqERKS_ @ 479 NONAME + _ZNK14QWebPluginInfoneERKS_ @ 480 NONAME + _ZNK15QWebHistoryItem11lastVisitedEv @ 481 NONAME + _ZNK15QWebHistoryItem11originalUrlEv @ 482 NONAME + _ZNK15QWebHistoryItem3urlEv @ 483 NONAME + _ZNK15QWebHistoryItem4iconEv @ 484 NONAME + _ZNK15QWebHistoryItem5titleEv @ 485 NONAME + _ZNK15QWebHistoryItem7isValidEv @ 486 NONAME + _ZNK15QWebHistoryItem8userDataEv @ 487 NONAME + _ZNK16QGraphicsWebView10metaObjectEv @ 488 NONAME + _ZNK16QGraphicsWebView10zoomFactorEv @ 489 NONAME + _ZNK16QGraphicsWebView13isInteractiveEv @ 490 NONAME ABSENT + _ZNK16QGraphicsWebView3urlEv @ 491 NONAME + _ZNK16QGraphicsWebView4iconEv @ 492 NONAME + _ZNK16QGraphicsWebView4pageEv @ 493 NONAME + _ZNK16QGraphicsWebView5titleEv @ 494 NONAME + _ZNK16QGraphicsWebView6statusEv @ 495 NONAME ABSENT + _ZNK16QGraphicsWebView6toHtmlEv @ 496 NONAME ABSENT + _ZNK16QGraphicsWebView7historyEv @ 497 NONAME + _ZNK16QGraphicsWebView8progressEv @ 498 NONAME ABSENT + _ZNK16QGraphicsWebView8settingsEv @ 499 NONAME + _ZNK17QWebHitTestResult11linkElementEv @ 500 NONAME + _ZNK17QWebHitTestResult12boundingRectEv @ 501 NONAME + _ZNK17QWebHitTestResult13alternateTextEv @ 502 NONAME + _ZNK17QWebHitTestResult15linkTargetFrameEv @ 503 NONAME + _ZNK17QWebHitTestResult17isContentEditableEv @ 504 NONAME + _ZNK17QWebHitTestResult17isContentSelectedEv @ 505 NONAME + _ZNK17QWebHitTestResult21enclosingBlockElementEv @ 506 NONAME + _ZNK17QWebHitTestResult3posEv @ 507 NONAME + _ZNK17QWebHitTestResult5frameEv @ 508 NONAME + _ZNK17QWebHitTestResult5titleEv @ 509 NONAME + _ZNK17QWebHitTestResult6isNullEv @ 510 NONAME + _ZNK17QWebHitTestResult6pixmapEv @ 511 NONAME + _ZNK17QWebHitTestResult7elementEv @ 512 NONAME + _ZNK17QWebHitTestResult7linkUrlEv @ 513 NONAME + _ZNK17QWebHitTestResult8imageUrlEv @ 514 NONAME + _ZNK17QWebHitTestResult8linkTextEv @ 515 NONAME + _ZNK17QWebHitTestResult9linkTitleEv @ 516 NONAME + _ZNK17QWebPluginFactory10metaObjectEv @ 517 NONAME + _ZNK17QWebPluginFactory17supportsExtensionENS_9ExtensionE @ 518 NONAME + _ZNK17QWebPluginFactory8MimeTypeeqERKS0_ @ 519 NONAME + _ZNK18QWebPluginDatabase10metaObjectEv @ 520 NONAME + _ZNK18QWebPluginDatabase11searchPathsEv @ 521 NONAME + _ZNK18QWebPluginDatabase7pluginsEv @ 522 NONAME + _ZNK18QWebSecurityOrigin13databaseQuotaEv @ 523 NONAME + _ZNK18QWebSecurityOrigin13databaseUsageEv @ 524 NONAME + _ZNK18QWebSecurityOrigin4hostEv @ 525 NONAME + _ZNK18QWebSecurityOrigin4portEv @ 526 NONAME + _ZNK18QWebSecurityOrigin6schemeEv @ 527 NONAME + _ZNK18QWebSecurityOrigin9databasesEv @ 528 NONAME + _ZNK20QWebHistoryInterface10metaObjectEv @ 529 NONAME + _ZNK8QWebPage10isModifiedEv @ 530 NONAME + _ZNK8QWebPage10metaObjectEv @ 531 NONAME + _ZNK8QWebPage10totalBytesEv @ 532 NONAME + _ZNK8QWebPage12currentFrameEv @ 533 NONAME + _ZNK8QWebPage12selectedTextEv @ 534 NONAME + _ZNK8QWebPage12viewportSizeEv @ 535 NONAME + _ZNK8QWebPage13bytesReceivedEv @ 536 NONAME + _ZNK8QWebPage13pluginFactoryEv @ 537 NONAME + _ZNK8QWebPage15setViewportSizeERK5QSize @ 538 NONAME + _ZNK8QWebPage15userAgentForUrlERK4QUrl @ 539 NONAME + _ZNK8QWebPage16inputMethodQueryEN2Qt16InputMethodQueryE @ 540 NONAME + _ZNK8QWebPage17fixedContentsSizeEv @ 541 NONAME ABSENT + _ZNK8QWebPage17isContentEditableEv @ 542 NONAME + _ZNK8QWebPage17supportsExtensionENS_9ExtensionE @ 543 NONAME + _ZNK8QWebPage20linkDelegationPolicyEv @ 544 NONAME + _ZNK8QWebPage20networkAccessManagerEv @ 545 NONAME + _ZNK8QWebPage20setFixedContentsSizeERK5QSize @ 546 NONAME ABSENT + _ZNK8QWebPage25forwardUnsupportedContentEv @ 547 NONAME + _ZNK8QWebPage4viewEv @ 548 NONAME + _ZNK8QWebPage6actionENS_9WebActionE @ 549 NONAME + _ZNK8QWebPage7frameAtERK6QPoint @ 550 NONAME + _ZNK8QWebPage7historyEv @ 551 NONAME + _ZNK8QWebPage7paletteEv @ 552 NONAME + _ZNK8QWebPage8settingsEv @ 553 NONAME + _ZNK8QWebPage9mainFrameEv @ 554 NONAME + _ZNK8QWebPage9undoStackEv @ 555 NONAME + _ZNK8QWebView10isModifiedEv @ 556 NONAME + _ZNK8QWebView10metaObjectEv @ 557 NONAME + _ZNK8QWebView10pageActionEN8QWebPage9WebActionE @ 558 NONAME + _ZNK8QWebView10zoomFactorEv @ 559 NONAME + _ZNK8QWebView11renderHintsEv @ 560 NONAME + _ZNK8QWebView12selectedTextEv @ 561 NONAME + _ZNK8QWebView16inputMethodQueryEN2Qt16InputMethodQueryE @ 562 NONAME + _ZNK8QWebView18textSizeMultiplierEv @ 563 NONAME + _ZNK8QWebView3urlEv @ 564 NONAME + _ZNK8QWebView4iconEv @ 565 NONAME + _ZNK8QWebView4pageEv @ 566 NONAME + _ZNK8QWebView5printEP8QPrinter @ 567 NONAME + _ZNK8QWebView5titleEv @ 568 NONAME + _ZNK8QWebView7historyEv @ 569 NONAME + _ZNK8QWebView8settingsEv @ 570 NONAME + _ZNK8QWebView8sizeHintEv @ 571 NONAME + _ZNK9QWebFrame10metaObjectEv @ 572 NONAME + _ZNK9QWebFrame10zoomFactorEv @ 573 NONAME + _ZNK9QWebFrame11childFramesEv @ 574 NONAME + _ZNK9QWebFrame11parentFrameEv @ 575 NONAME + _ZNK9QWebFrame11toPlainTextEv @ 576 NONAME + _ZNK9QWebFrame12contentsSizeEv @ 577 NONAME + _ZNK9QWebFrame12requestedUrlEv @ 578 NONAME + _ZNK9QWebFrame14hitTestContentERK6QPoint @ 579 NONAME + _ZNK9QWebFrame14renderTreeDumpEv @ 580 NONAME + _ZNK9QWebFrame14scrollBarValueEN2Qt11OrientationE @ 581 NONAME + _ZNK9QWebFrame14scrollPositionEv @ 582 NONAME + _ZNK9QWebFrame14securityOriginEv @ 583 NONAME + _ZNK9QWebFrame15documentElementEv @ 584 NONAME + _ZNK9QWebFrame15findAllElementsERK7QString @ 585 NONAME + _ZNK9QWebFrame15scrollBarPolicyEN2Qt11OrientationE @ 586 NONAME + _ZNK9QWebFrame16findFirstElementERK7QString @ 587 NONAME + _ZNK9QWebFrame16scrollBarMaximumEN2Qt11OrientationE @ 588 NONAME + _ZNK9QWebFrame16scrollBarMinimumEN2Qt11OrientationE @ 589 NONAME + _ZNK9QWebFrame17scrollBarGeometryEN2Qt11OrientationE @ 590 NONAME + _ZNK9QWebFrame18textSizeMultiplierEv @ 591 NONAME + _ZNK9QWebFrame20clipRenderToViewportEv @ 592 NONAME ABSENT + _ZNK9QWebFrame3posEv @ 593 NONAME + _ZNK9QWebFrame3urlEv @ 594 NONAME + _ZNK9QWebFrame4iconEv @ 595 NONAME + _ZNK9QWebFrame4pageEv @ 596 NONAME + _ZNK9QWebFrame5titleEv @ 597 NONAME + _ZNK9QWebFrame6toHtmlEv @ 598 NONAME + _ZNK9QWebFrame7baseUrlEv @ 599 NONAME + _ZNK9QWebFrame8geometryEv @ 600 NONAME + _ZNK9QWebFrame8hasFocusEv @ 601 NONAME + _ZNK9QWebFrame8metaDataEv @ 602 NONAME + _ZNK9QWebFrame9frameNameEv @ 603 NONAME + _ZTI13QWebInspector @ 604 NONAME + _ZTI16QGraphicsWebView @ 605 NONAME + _ZTI17QWebPluginFactory @ 606 NONAME + _ZTI18QWebPluginDatabase @ 607 NONAME + _ZTI20QWebHistoryInterface @ 608 NONAME + _ZTI8QWebPage @ 609 NONAME + _ZTI8QWebView @ 610 NONAME + _ZTI9QWebFrame @ 611 NONAME + _ZTV13QWebInspector @ 612 NONAME + _ZTV16QGraphicsWebView @ 613 NONAME + _ZTV17QWebPluginFactory @ 614 NONAME + _ZTV18QWebPluginDatabase @ 615 NONAME + _ZTV20QWebHistoryInterface @ 616 NONAME + _ZTV8QWebPage @ 617 NONAME + _ZTV8QWebView @ 618 NONAME + _ZTV9QWebFrame @ 619 NONAME + _ZThn16_N16QGraphicsWebView11setGeometryERK6QRectF @ 620 NONAME + _ZThn16_N16QGraphicsWebView14updateGeometryEv @ 621 NONAME + _ZThn16_N16QGraphicsWebViewD0Ev @ 622 NONAME + _ZThn16_N16QGraphicsWebViewD1Ev @ 623 NONAME + _ZThn8_N13QWebInspectorD0Ev @ 624 NONAME + _ZThn8_N13QWebInspectorD1Ev @ 625 NONAME + _ZThn8_N16QGraphicsWebView10sceneEventEP6QEvent @ 626 NONAME + _ZThn8_N16QGraphicsWebView10wheelEventEP24QGraphicsSceneWheelEvent @ 627 NONAME + _ZThn8_N16QGraphicsWebView12focusInEventEP11QFocusEvent @ 628 NONAME + _ZThn8_N16QGraphicsWebView13dragMoveEventEP27QGraphicsSceneDragDropEvent @ 629 NONAME + _ZThn8_N16QGraphicsWebView13focusOutEventEP11QFocusEvent @ 630 NONAME + _ZThn8_N16QGraphicsWebView13keyPressEventEP9QKeyEvent @ 631 NONAME + _ZThn8_N16QGraphicsWebView14dragEnterEventEP27QGraphicsSceneDragDropEvent @ 632 NONAME + _ZThn8_N16QGraphicsWebView14dragLeaveEventEP27QGraphicsSceneDragDropEvent @ 633 NONAME + _ZThn8_N16QGraphicsWebView14hoverMoveEventEP24QGraphicsSceneHoverEvent @ 634 NONAME + _ZThn8_N16QGraphicsWebView14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 635 NONAME + _ZThn8_N16QGraphicsWebView15hoverLeaveEventEP24QGraphicsSceneHoverEvent @ 636 NONAME + _ZThn8_N16QGraphicsWebView15keyReleaseEventEP9QKeyEvent @ 637 NONAME + _ZThn8_N16QGraphicsWebView15mousePressEventEP24QGraphicsSceneMouseEvent @ 638 NONAME + _ZThn8_N16QGraphicsWebView16contextMenuEventEP30QGraphicsSceneContextMenuEvent @ 639 NONAME + _ZThn8_N16QGraphicsWebView16inputMethodEventEP17QInputMethodEvent @ 640 NONAME + _ZThn8_N16QGraphicsWebView17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 641 NONAME + _ZThn8_N16QGraphicsWebView21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent @ 642 NONAME + _ZThn8_N16QGraphicsWebView5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 643 NONAME + _ZThn8_N16QGraphicsWebView9dropEventEP27QGraphicsSceneDragDropEvent @ 644 NONAME + _ZThn8_N16QGraphicsWebViewD0Ev @ 645 NONAME + _ZThn8_N16QGraphicsWebViewD1Ev @ 646 NONAME + _ZThn8_N8QWebViewD0Ev @ 647 NONAME + _ZThn8_N8QWebViewD1Ev @ 648 NONAME + _ZlsR11QDataStreamRK11QWebHistory @ 649 NONAME + _ZrsR11QDataStreamR11QWebHistory @ 650 NONAME + _Z32qt_drt_whiteListAccessFromOriginRK7QStringS1_S1_b @ 651 NONAME + _Z33qt_drt_counterValueForElementByIdP9QWebFrameRK7QString @ 652 NONAME + _Z34qt_drt_resetOriginAccessWhiteListsv @ 653 NONAME + _ZN11QWebElement17removeAllChildrenEv @ 654 NONAME + _ZN11QWebElement6renderEP8QPainter @ 655 NONAME + _ZN12QWebSettings30setPrintingMaximumShrinkFactorEf @ 656 NONAME ABSENT + _ZN12QWebSettings30setPrintingMinimumShrinkFactorEf @ 657 NONAME ABSENT + _ZN16QGraphicsWebView10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 658 NONAME + _ZN16QGraphicsWebView11linkClickedERK4QUrl @ 659 NONAME + _ZN16QGraphicsWebView12loadFinishedEb @ 660 NONAME + _ZN16QGraphicsWebView12loadProgressEi @ 661 NONAME + _ZN16QGraphicsWebView16statusBarMessageERK7QString @ 662 NONAME + _ZN16QGraphicsWebView17triggerPageActionEN8QWebPage9WebActionEb @ 663 NONAME + _ZN16QGraphicsWebView8findTextERK7QString6QFlagsIN8QWebPage8FindFlagEE @ 664 NONAME + _ZN21QWebElementCollection6appendERKS_ @ 665 NONAME + _ZN21QWebElementCollectionC1ERK11QWebElementRK7QString @ 666 NONAME + _ZN21QWebElementCollectionC1ERKS_ @ 667 NONAME + _ZN21QWebElementCollectionC1Ev @ 668 NONAME + _ZN21QWebElementCollectionC2ERK11QWebElementRK7QString @ 669 NONAME + _ZN21QWebElementCollectionC2ERKS_ @ 670 NONAME + _ZN21QWebElementCollectionC2Ev @ 671 NONAME + _ZN21QWebElementCollectionD1Ev @ 672 NONAME + _ZN21QWebElementCollectionD2Ev @ 673 NONAME + _ZN21QWebElementCollectionaSERKS_ @ 674 NONAME + _ZN9QWebFrame6renderEP8QPainterNS_11RenderLayerERK7QRegion @ 675 NONAME + _ZNK12QWebSettings27printingMaximumShrinkFactorEv @ 676 NONAME ABSENT + _ZNK12QWebSettings27printingMinimumShrinkFactorEv @ 677 NONAME ABSENT + _ZNK16QGraphicsWebView10isModifiedEv @ 678 NONAME + _ZNK16QGraphicsWebView10pageActionEN8QWebPage9WebActionE @ 679 NONAME + _ZNK16QGraphicsWebView16inputMethodQueryEN2Qt16InputMethodQueryE @ 680 NONAME + _ZNK16QGraphicsWebView8sizeHintEN2Qt8SizeHintERK6QSizeF @ 681 NONAME + _ZNK21QWebElementCollection2atEi @ 682 NONAME + _ZNK21QWebElementCollection5countEv @ 683 NONAME + _ZNK21QWebElementCollection6toListEv @ 684 NONAME + _ZNK21QWebElementCollectionplERKS_ @ 685 NONAME + _ZNK8QWebPage21preferredContentsSizeEv @ 686 NONAME + _ZNK8QWebPage24setPreferredContentsSizeERK5QSize @ 687 NONAME + _ZThn16_NK16QGraphicsWebView8sizeHintEN2Qt8SizeHintERK6QSizeF @ 688 NONAME + _ZThn8_N16QGraphicsWebView10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 689 NONAME + _ZThn8_NK16QGraphicsWebView16inputMethodQueryEN2Qt16InputMethodQueryE @ 690 NONAME + _ZNK11QWebElement14attributeNamesERK7QString @ 691 NONAME + _Z23qt_networkAccessAllowedb @ 692 NONAME + _Z25qt_resumeActiveDOMObjectsP9QWebFrame @ 693 NONAME + _Z26qt_suspendActiveDOMObjectsP9QWebFrame @ 694 NONAME + _Z35qtwebkit_webframe_scrollRecursivelyP9QWebFrameii @ 695 NONAME + _ZN13QWebInspector10closeEventEP11QCloseEvent @ 696 NONAME + _ZN9QWebFrame17scrollRecursivelyEii @ 697 NONAME + diff --git a/WebKit/qt/tests/benchmarks/loading/loading.pro b/WebKit/qt/tests/benchmarks/loading/loading.pro new file mode 100644 index 0000000..8b24274 --- /dev/null +++ b/WebKit/qt/tests/benchmarks/loading/loading.pro @@ -0,0 +1 @@ +include(../../tests.pri) diff --git a/WebKit/qt/tests/benchmarks/loading/tst_loading.pro b/WebKit/qt/tests/benchmarks/loading/tst_loading.pro deleted file mode 100644 index bc5e75f..0000000 --- a/WebKit/qt/tests/benchmarks/loading/tst_loading.pro +++ /dev/null @@ -1,11 +0,0 @@ -TEMPLATE = app -TARGET = tst_loading -include(../../../../../WebKit.pri) -SOURCES += tst_loading.cpp -QT += testlib network -QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR - -symbian { - TARGET.UID3 = 0xA000E541 - TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices -} diff --git a/WebKit/qt/tests/benchmarks/painting/painting.pro b/WebKit/qt/tests/benchmarks/painting/painting.pro new file mode 100644 index 0000000..8acdd5c --- /dev/null +++ b/WebKit/qt/tests/benchmarks/painting/painting.pro @@ -0,0 +1 @@ +include(../../tests.pri)
\ No newline at end of file diff --git a/WebKit/qt/tests/benchmarks/painting/tst_painting.pro b/WebKit/qt/tests/benchmarks/painting/tst_painting.pro deleted file mode 100644 index 48c7072..0000000 --- a/WebKit/qt/tests/benchmarks/painting/tst_painting.pro +++ /dev/null @@ -1,11 +0,0 @@ -TEMPLATE = app -TARGET = tst_painting -include(../../../../../WebKit.pri) -SOURCES += tst_painting.cpp -QT += testlib network -QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR - -symbian { - TARGET.UID3 = 0xA000E542 - TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices -} diff --git a/WebKit/qt/tests/hybridPixmap/hybridPixmap.pro b/WebKit/qt/tests/hybridPixmap/hybridPixmap.pro new file mode 100644 index 0000000..0e49a70 --- /dev/null +++ b/WebKit/qt/tests/hybridPixmap/hybridPixmap.pro @@ -0,0 +1,10 @@ +# ------------------------------------------------- +# Project created by QtCreator 2009-12-10T11:25:02 +# ------------------------------------------------- +include(../tests.pri) +TARGET = hybridPixmap +SOURCES += widget.cpp +HEADERS += widget.h +FORMS += widget.ui +RESOURCES += resources.qrc +CONFIG += console diff --git a/WebKit/qt/tests/hybridPixmap/resources.qrc b/WebKit/qt/tests/hybridPixmap/resources.qrc new file mode 100644 index 0000000..5fd47e3 --- /dev/null +++ b/WebKit/qt/tests/hybridPixmap/resources.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/"> + <file>test.html</file> + </qresource> +</RCC> diff --git a/WebKit/qt/tests/hybridPixmap/test.html b/WebKit/qt/tests/hybridPixmap/test.html new file mode 100644 index 0000000..ddaf75c --- /dev/null +++ b/WebKit/qt/tests/hybridPixmap/test.html @@ -0,0 +1,57 @@ +<html> + <head> + <style> + img { display: block; border-style: groove} + </style> + <script> + function startTest() + { + var obj = myWidget.image; + var pxm = myWidget.pixmap; + + var img = obj.toHTMLImageElement(); + var img1 = document.getElementById("img1"); + var img2 = document.getElementById("img2"); + document.body.appendChild(img); + document.body.appendChild(pxm.toHTMLImageElement()); + var signalsFired = 0; + myWidget.compare(obj.toString(),"[Qt Native Pixmap "+obj.width+","+obj.height+"]"); + myWidget.compare(String(pxm),"[Qt Native Pixmap "+pxm.width+","+pxm.height+"]"); + + // this shouldn't work but shouldn't crash + myWidget.randomSlot("foobar"); + + myWidget.pixmapSignal.connect(function(imgFromSignal) { + myWidget.compare(imgFromSignal.height, img2.height); + if (++signalsFired == 2) + myWidget.completeTest(); + }); + + myWidget.imageSignal.connect(function(imgFromSignal) { + myWidget.compare(pxm.height, img2.height); + if (++signalsFired == 2) + myWidget.completeTest(); + }); + + function continueTestAfterImagesAreLoaded() + { + if (img1.complete && img2.complete) { + myWidget.compare(pxm.height, img2.height); + myWidget.pixmapSlot(img); + myWidget.imageSlot(pxm); + } + } + img1.onload = continueTestAfterImagesAreLoaded; + img2.onload = continueTestAfterImagesAreLoaded; + img1.src = obj.toDataUrl(); + img2.src = myWidget.pixmap.toDataUrl(); + myWidget.image = pxm; + myWidget.pixmap = img; + } + </script> + </head> + <body onload="startTest()"> + <img id="img1" /> + <img id="img2" /> + </body> +</html> diff --git a/WebKit/qt/tests/hybridPixmap/tst_hybridPixmap.cpp b/WebKit/qt/tests/hybridPixmap/tst_hybridPixmap.cpp new file mode 100644 index 0000000..72dbb3b --- /dev/null +++ b/WebKit/qt/tests/hybridPixmap/tst_hybridPixmap.cpp @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#include "../util.h" + +#include "widget.h" +#include <QtTest/QtTest> + +class tst_hybridPixmap : public QObject { + Q_OBJECT + +public: + tst_hybridPixmap(QObject* o = 0) : QObject(o) {} + +public slots: + void init() + { + } + + void cleanup() + { + } + +private slots: + void hybridPixmap() + { + Widget widget; + widget.show(); + widget.start(); + waitForSignal(&widget, SIGNAL(testComplete())); + } +}; + +QTEST_MAIN(tst_hybridPixmap) + +#include <tst_hybridPixmap.moc> diff --git a/WebKit/qt/tests/hybridPixmap/widget.cpp b/WebKit/qt/tests/hybridPixmap/widget.cpp new file mode 100644 index 0000000..cfdb1d6 --- /dev/null +++ b/WebKit/qt/tests/hybridPixmap/widget.cpp @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#include "widget.h" + +#include "qwebelement.h" +#include "qwebframe.h" +#include "ui_widget.h" +#include <QPainter> +#include <QtTest/QtTest> + +Widget::Widget(QWidget* parent) : + QWidget(parent), + ui(new Ui::Widget) +{ + ui->setupUi(this); +} + +void Widget::refreshJS() +{ + ui->webView->page()->mainFrame()->addToJavaScriptWindowObject("myWidget", this); +} +void Widget::start() +{ + ui->webView->load(QUrl("qrc:///test.html")); + connect(ui->webView->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(refreshJS())); + ui->webView->page()->mainFrame()->addToJavaScriptWindowObject("myWidget", this); +} + +void Widget::completeTest() +{ + QCOMPARE(ui->lbl1->pixmap()->size(), ui->lbl2->size()); + QCOMPARE(ui->lbl3->size(), ui->lbl4->pixmap()->size()); + QCOMPARE(ui->lbl2->size().width(), ui->webView->page()->mainFrame()->findFirstElement("#img1").evaluateJavaScript("this.width").toInt()); + QCOMPARE(ui->lbl3->size().width(), ui->webView->page()->mainFrame()->findFirstElement("#img2").evaluateJavaScript("this.width").toInt()); + emit testComplete(); +} + +void Widget::setPixmap(const QPixmap& p) +{ + ui->lbl1->setPixmap(p); +} +QPixmap Widget::pixmap() const +{ + QPixmap px(ui->lbl3->size()); + { + QPainter p(&px); + ui->lbl3->render(&p); + } + return px; +} +void Widget::setImage(const QImage& img) +{ + ui->lbl4->setPixmap(QPixmap::fromImage(img)); +} + +QImage Widget::image() const +{ + QImage img(ui->lbl2->size(), QImage::Format_ARGB32); + { + QPainter p(&img); + ui->lbl2->render(&p); + } + return img; +} + +Widget::~Widget() +{ + delete ui; +} + +void Widget::changeEvent(QEvent* e) +{ + QWidget::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} +void Widget::compare(const QVariant& a, const QVariant& b) +{ + QCOMPARE(a, b); +} + +void Widget::imageSlot(const QImage& img) +{ + QCOMPARE(img.size(), ui->lbl3->size()); + emit pixmapSignal(QPixmap::fromImage(img)); +} + +void Widget::pixmapSlot(const QPixmap& pxm) +{ + QCOMPARE(pxm.size(), ui->lbl2->size()); + emit imageSignal(ui->lbl4->pixmap()->toImage()); +} + +void Widget::randomSlot(const QPixmap& pxm) +{ + QVERIFY(pxm.isNull()); +} diff --git a/WebKit/qt/tests/hybridPixmap/widget.h b/WebKit/qt/tests/hybridPixmap/widget.h new file mode 100644 index 0000000..a49f8ba --- /dev/null +++ b/WebKit/qt/tests/hybridPixmap/widget.h @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifndef widget_h +#define widget_h + +#include <QImage> +#include <QPixmap> +#include <QWidget> +#include "qwebview.h" + +typedef QWebView WebView; + +namespace Ui { +class Widget; +} + +class Widget : public QWidget { + Q_OBJECT + Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap) + Q_PROPERTY(QImage image READ image WRITE setImage) + +public: + Widget(QWidget* parent = 0); + ~Widget(); + void setPixmap(const QPixmap&); + QPixmap pixmap() const; + void setImage(const QImage&); + QImage image() const; + +private slots: + void refreshJS(); + +public slots: + void completeTest(); + void start(); + void compare(const QVariant& a, const QVariant& b); + void imageSlot(const QImage&); + void pixmapSlot(const QPixmap&); + void randomSlot(const QPixmap&); + +signals: + void testComplete(); + void imageSignal(const QImage&); + void pixmapSignal(const QPixmap&); + +protected: + void changeEvent(QEvent* e); + +private: + Ui::Widget* ui; +}; + +#endif // widget_h diff --git a/WebKit/qt/tests/hybridPixmap/widget.ui b/WebKit/qt/tests/hybridPixmap/widget.ui new file mode 100644 index 0000000..4f2b3b8 --- /dev/null +++ b/WebKit/qt/tests/hybridPixmap/widget.ui @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Widget</class> + <widget class="QWidget" name="Widget"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>600</width> + <height>400</height> + </rect> + </property> + <property name="windowTitle"> + <string>Widget</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="WebView" name="webView" native="true"> + <property name="url" stdset="0"> + <url> + <string>about:blank</string> + </url> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="lbl1"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="lbl2"> + <property name="minimumSize"> + <size> + <width>120</width> + <height>30</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>120</width> + <height>30</height> + </size> + </property> + <property name="text"> + <string>Image from Qt to HTML</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="lbl3"> + <property name="text"> + <string>Pixmap from Qt to HTML</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="lbl4"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="11"/> + <customwidgets> + <customwidget> + <class>WebView</class> + <extends>QWidget</extends> + <header>widget.h</header> + </customwidget> + </customwidgets> + <resources/> + <connections/> +</ui> diff --git a/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro b/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro index 57b4437..4ca2bf6 100644 --- a/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro +++ b/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro @@ -1,10 +1 @@ -TEMPLATE = app -TARGET = tst_qgraphicswebview -include(../../../../WebKit.pri) -SOURCES += tst_qgraphicswebview.cpp -QT += testlib network -QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR - -symbian { - TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices -} +include(../tests.pri)
\ No newline at end of file diff --git a/WebKit/qt/tests/qwebelement/qwebelement.pro b/WebKit/qt/tests/qwebelement/qwebelement.pro index c45a9ac..4ca2bf6 100644 --- a/WebKit/qt/tests/qwebelement/qwebelement.pro +++ b/WebKit/qt/tests/qwebelement/qwebelement.pro @@ -1,12 +1 @@ -TEMPLATE = app -TARGET = tst_qwebelement -include(../../../../WebKit.pri) -SOURCES += tst_qwebelement.cpp -RESOURCES += qwebelement.qrc -QT += testlib network -QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR - -symbian { - TARGET.UID3 = 0xA000E53A - TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices -} +include(../tests.pri)
\ No newline at end of file diff --git a/WebKit/qt/tests/qwebelement/qwebelement.qrc b/WebKit/qt/tests/qwebelement/qwebelement.qrc deleted file mode 100644 index 28b9d7b..0000000 --- a/WebKit/qt/tests/qwebelement/qwebelement.qrc +++ /dev/null @@ -1,7 +0,0 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource prefix="/"> -<file>style.css</file> -<file>style2.css</file> -<file>image.png</file> -</qresource> -</RCC> diff --git a/WebKit/qt/tests/qwebelement/image.png b/WebKit/qt/tests/qwebelement/resources/image.png Binary files differindex 8d70364..8d70364 100644 --- a/WebKit/qt/tests/qwebelement/image.png +++ b/WebKit/qt/tests/qwebelement/resources/image.png diff --git a/WebKit/qt/tests/qwebelement/style.css b/WebKit/qt/tests/qwebelement/resources/style.css index 2713dfd..2713dfd 100644 --- a/WebKit/qt/tests/qwebelement/style.css +++ b/WebKit/qt/tests/qwebelement/resources/style.css diff --git a/WebKit/qt/tests/qwebelement/style2.css b/WebKit/qt/tests/qwebelement/resources/style2.css index 6575dcb..6575dcb 100644 --- a/WebKit/qt/tests/qwebelement/style2.css +++ b/WebKit/qt/tests/qwebelement/resources/style2.css diff --git a/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp b/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp index e9dae18..dde65cf 100644 --- a/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp +++ b/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp @@ -18,8 +18,8 @@ */ +#include <../util.h> #include <QtTest/QtTest> - #include <qwebpage.h> #include <qwidget.h> #include <qwebview.h> @@ -28,29 +28,6 @@ //TESTED_CLASS= //TESTED_FILES= -/** - * Starts an event loop that runs until the given signal is received. - Optionally the event loop - * can return earlier on a timeout. - * - * \return \p true if the requested signal was received - * \p false on timeout - */ -static bool waitForSignal(QObject* obj, const char* signal, int timeout = 0) -{ - QEventLoop loop; - QObject::connect(obj, signal, &loop, SLOT(quit())); - QTimer timer; - QSignalSpy timeoutSpy(&timer, SIGNAL(timeout())); - if (timeout > 0) { - QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit())); - timer.setSingleShot(true); - timer.start(timeout); - } - loop.exec(); - return timeoutSpy.isEmpty(); -} - class tst_QWebElement : public QObject { Q_OBJECT @@ -576,9 +553,8 @@ void tst_QWebElement::style() "</body>"; // in few seconds, the CSS should be completey loaded - QSignalSpy spy(m_page, SIGNAL(loadFinished(bool))); m_mainFrame->setHtml(html6); - QTest::qWait(200); + waitForSignal(m_page, SIGNAL(loadFinished(bool)), 200); p = m_mainFrame->documentElement().findAll("p").at(0); QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String("blue")); @@ -596,7 +572,7 @@ void tst_QWebElement::style() // in few seconds, the style should be completey loaded m_mainFrame->setHtml(html7); - QTest::qWait(200); + waitForSignal(m_page, SIGNAL(loadFinished(bool)), 200); p = m_mainFrame->documentElement().findAll("p").at(0); QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("black")); diff --git a/WebKit/qt/tests/qwebelement/tst_qwebelement.qrc b/WebKit/qt/tests/qwebelement/tst_qwebelement.qrc new file mode 100644 index 0000000..7384c76 --- /dev/null +++ b/WebKit/qt/tests/qwebelement/tst_qwebelement.qrc @@ -0,0 +1,7 @@ +<!DOCTYPE RCC><RCC version="1.0"> +<qresource prefix="/"> +<file alias="style.css">resources/style.css</file> +<file alias="style2.css">resources/style2.css</file> +<file alias="image.png">resources/image.png</file> +</qresource> +</RCC> diff --git a/WebKit/qt/tests/qwebframe/qwebframe.pro b/WebKit/qt/tests/qwebframe/qwebframe.pro index b8734cd..4ca2bf6 100644 --- a/WebKit/qt/tests/qwebframe/qwebframe.pro +++ b/WebKit/qt/tests/qwebframe/qwebframe.pro @@ -1,13 +1 @@ -TEMPLATE = app -TARGET = tst_qwebframe -include(../../../../WebKit.pri) -SOURCES += tst_qwebframe.cpp -RESOURCES += qwebframe.qrc -QT += testlib network -QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR -!symbian:DEFINES += SRCDIR=\\\"$$PWD/resources\\\" - -symbian { - TARGET.UID3 = 0xA000E53D - TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices -} +include(../tests.pri)
\ No newline at end of file diff --git a/WebKit/qt/tests/qwebframe/qwebframe.qrc b/WebKit/qt/tests/qwebframe/qwebframe.qrc deleted file mode 100644 index 9615e27..0000000 --- a/WebKit/qt/tests/qwebframe/qwebframe.qrc +++ /dev/null @@ -1,8 +0,0 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource prefix="/"> -<file>image.png</file> -<file>style.css</file> -<file>test1.html</file> -<file>test2.html</file> -</qresource> -</RCC> diff --git a/WebKit/qt/tests/qwebframe/image.png b/WebKit/qt/tests/qwebframe/resources/image.png Binary files differindex 8d70364..8d70364 100644 --- a/WebKit/qt/tests/qwebframe/image.png +++ b/WebKit/qt/tests/qwebframe/resources/image.png diff --git a/WebKit/qt/tests/qwebframe/style.css b/WebKit/qt/tests/qwebframe/resources/style.css index c05b747..c05b747 100644 --- a/WebKit/qt/tests/qwebframe/style.css +++ b/WebKit/qt/tests/qwebframe/resources/style.css diff --git a/WebKit/qt/tests/qwebframe/test1.html b/WebKit/qt/tests/qwebframe/resources/test1.html index b323f96..b323f96 100644 --- a/WebKit/qt/tests/qwebframe/test1.html +++ b/WebKit/qt/tests/qwebframe/resources/test1.html diff --git a/WebKit/qt/tests/qwebframe/test2.html b/WebKit/qt/tests/qwebframe/resources/test2.html index 63ac1f6..63ac1f6 100644 --- a/WebKit/qt/tests/qwebframe/test2.html +++ b/WebKit/qt/tests/qwebframe/resources/test2.html diff --git a/WebKit/qt/tests/qwebframe/resources/testiframe.html b/WebKit/qt/tests/qwebframe/resources/testiframe.html new file mode 100644 index 0000000..203d3d3 --- /dev/null +++ b/WebKit/qt/tests/qwebframe/resources/testiframe.html @@ -0,0 +1,54 @@ +</html>
+<html>
+<head>
+<title></title>
+<style type="text/css">
+<!--
+#header {
+ background: #0f0;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 800px;
+ height: 100px;
+}
+#content1 {
+ background: #ff0;
+ position: absolute;
+ top: 101px;
+ left: 0px;
+ width: 400px;
+ height: 400px;
+ overflow: scroll;
+}
+#content2 {
+ background: #ff7;
+ position: absolute;
+ top: 101px;
+ left: 401px;
+ width: 400px;
+ height: 400px;
+}
+#footer {
+ background: #0f0;
+ position: absolute;
+ top: 502px;
+ left: 0px;
+ width: 800px;
+ height: 200px;
+}
+-->
+</style>
+</head>
+<body>
+<div id="header"></div>
+<div id="content1">You can use the overflow property when you want to have better control of the layout. Try to change the overflow property to: visible, hidden, auto, or inherit and see what happens. The default value is visible.
+You can use the overflow property when you want to have better control of the layout. Try to change the overflow property to: visible, hidden, auto, or inherit and see what happens. The default value is visible.
+You can use the overflow property when you want to have better control of the layout. Try to change the overflow property to: visible, hidden, auto, or inherit and see what happens. The default value is visible.
+You can use the overflow property when you want to have better control of the layout. Try to change the overflow property to: visible, hidden, auto, or inherit and see what happens. The default value is visible.
+You can use the overflow property when you want to have better control of the layout. Try to change the overflow property to: visible, hidden, auto, or inherit and see what happens. The default value is visible.
+You can use the overflow property when you want to have better control of the layout. Try to change the overflow property to: visible, hidden, auto, or inherit and see what happens. The default value is visible.</div>
+<iframe id="content2" name="control" src="testiframe2.html"> </iframe>
+<div id="footer"></div>
+</body>
+</html>
\ No newline at end of file diff --git a/WebKit/qt/tests/qwebframe/resources/testiframe2.html b/WebKit/qt/tests/qwebframe/resources/testiframe2.html new file mode 100644 index 0000000..0d3a22f --- /dev/null +++ b/WebKit/qt/tests/qwebframe/resources/testiframe2.html @@ -0,0 +1,21 @@ +</html>
+<html>
+<head>
+<title></title>
+<style type="text/css">
+<!--
+#content {
+ background: #fff;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 800px;
+ height: 800px;
+}
+-->
+</style>
+</head>
+<body>
+<div id="content"> </div>
+</body>
+</html>
\ No newline at end of file diff --git a/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp index 7c13fd0..0fb0bd6 100644 --- a/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp +++ b/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp @@ -38,10 +38,6 @@ #endif #include "../util.h" -#if defined(Q_OS_SYMBIAN) -# define SRCDIR "" -#endif - struct CustomType { QString string; }; @@ -550,6 +546,7 @@ private slots: void enumerate(); void objectDeleted(); void typeConversion(); + void arrayObjectEnumerable(); void symmetricUrl(); void progressSignal(); void urlChange(); @@ -575,6 +572,9 @@ private slots: void scrollPosition(); void evaluateWillCauseRepaint(); void qObjectWrapperWithSameIdentity(); + void scrollRecursively(); + void introspectQtMethods_data(); + void introspectQtMethods(); private: QString evalJS(const QString&s) { @@ -675,7 +675,6 @@ void tst_QWebFrame::init() m_page = m_view->page(); m_myObject = new MyQObject(); m_page->mainFrame()->addToJavaScriptWindowObject("myObject", m_myObject); - QDir::setCurrent(SRCDIR); } void tst_QWebFrame::cleanup() @@ -2070,6 +2069,31 @@ void tst_QWebFrame::typeConversion() // ### RegExps } +class StringListTestObject : public QObject { + Q_OBJECT +public Q_SLOTS: + QVariant stringList() + { + return QStringList() << "Q" << "t"; + }; +}; + +void tst_QWebFrame::arrayObjectEnumerable() +{ + QWebPage page; + QWebFrame* frame = page.mainFrame(); + QObject* qobject = new StringListTestObject(); + frame->addToJavaScriptWindowObject("test", qobject, QScriptEngine::ScriptOwnership); + + const QString script("var stringArray = test.stringList();" + "var result = '';" + "for (var i in stringArray) {" + " result += stringArray[i];" + "}" + "result;"); + QCOMPARE(frame->evaluateJavaScript(script).toString(), QString::fromLatin1("Qt")); +} + void tst_QWebFrame::symmetricUrl() { QVERIFY(m_view->url().isEmpty()); @@ -2350,6 +2374,11 @@ void tst_QWebFrame::setHtmlWithResource() void tst_QWebFrame::setHtmlWithBaseURL() { + if (!QDir(TESTS_SOURCE_DIR).exists()) + QSKIP(QString("This test requires access to resources found in '%1'").arg(TESTS_SOURCE_DIR).toLatin1().constData(), SkipAll); + + QDir::setCurrent(TESTS_SOURCE_DIR); + QString html("<html><body><p>hello world</p><img src='resources/image2.png'/></body></html>"); QWebPage page; @@ -2358,7 +2387,7 @@ void tst_QWebFrame::setHtmlWithBaseURL() // in few seconds, the image should be completey loaded QSignalSpy spy(&page, SIGNAL(loadFinished(bool))); - frame->setHtml(html, QUrl::fromLocalFile(QDir::currentPath())); + frame->setHtml(html, QUrl::fromLocalFile(TESTS_SOURCE_DIR)); waitForSignal(frame, SIGNAL(loadFinished(bool)), 200); QCOMPARE(spy.count(), 1); @@ -2464,6 +2493,7 @@ void tst_QWebFrame::popupFocus() QTest::mouseClick(&view, Qt::LeftButton, 0, QPoint(25, 25)); QObject* webpopup = firstChildByClassName(&view, "WebCore::QWebPopup"); QComboBox* combo = qobject_cast<QComboBox*>(webpopup); + QVERIFY(combo != 0); QTRY_VERIFY(!view.hasFocus() && combo->view()->hasFocus()); // Focus should be on the popup // hide the popup and check if focus is on the page @@ -2719,7 +2749,11 @@ void tst_QWebFrame::evaluateWillCauseRepaint() view.setHtml(html); view.show(); +#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) QTest::qWaitForWindowShown(&view); +#else + QTest::qWait(2000); +#endif view.page()->mainFrame()->evaluateJavaScript( "document.getElementById('junk').style.display = 'none';"); @@ -2765,5 +2799,111 @@ void tst_QWebFrame::qObjectWrapperWithSameIdentity() QCOMPARE(mainFrame->toPlainText(), QString("test2")); } +void tst_QWebFrame::scrollRecursively() +{ + // The test content is + // a nested frame set + // The main frame scrolls + // and has two children + // an iframe and a div overflow + // both scroll + QWebView webView; + QWebPage* webPage = webView.page(); + QSignalSpy loadSpy(webPage, SIGNAL(loadFinished(bool))); + QUrl url = QUrl("qrc:///testiframe.html"); + webPage->mainFrame()->load(url); + QTRY_COMPARE(loadSpy.count(), 1); + + QList<QWebFrame*> children = webPage->mainFrame()->childFrames(); + QVERIFY(children.count() == 1); + + // 1st test + // call scrollRecursively over mainframe + // verify scrolled + // verify scroll postion changed + QPoint scrollPosition(webPage->mainFrame()->scrollPosition()); + QVERIFY(webPage->mainFrame()->scrollRecursively(10, 10)); + QVERIFY(scrollPosition != webPage->mainFrame()->scrollPosition()); + + // 2nd test + // call scrollRecursively over child iframe + // verify scrolled + // verify child scroll position changed + // verify parent's scroll position did not change + scrollPosition = webPage->mainFrame()->scrollPosition(); + QPoint childScrollPosition = children.at(0)->scrollPosition(); + QVERIFY(children.at(0)->scrollRecursively(10, 10)); + QVERIFY(scrollPosition == webPage->mainFrame()->scrollPosition()); + QVERIFY(childScrollPosition != children.at(0)->scrollPosition()); + + // 3rd test + // call scrollRecursively over div overflow + // verify scrolled == true + // verify parent and child frame's scroll postion did not change + QWebElement div = webPage->mainFrame()->documentElement().findFirst("#content1"); + QMouseEvent evpres(QEvent::MouseMove, div.geometry().center(), Qt::NoButton, Qt::NoButton, Qt::NoModifier); + webPage->event(&evpres); + scrollPosition = webPage->mainFrame()->scrollPosition(); + childScrollPosition = children.at(0)->scrollPosition(); + QVERIFY(webPage->mainFrame()->scrollRecursively(5, 5)); + QVERIFY(childScrollPosition == children.at(0)->scrollPosition()); + QVERIFY(scrollPosition == webPage->mainFrame()->scrollPosition()); + + // 4th test + // call scrollRecursively twice over childs iframe + // verify scrolled == true first time + // verify parent's scroll == true second time + // verify parent and childs scroll position changed + childScrollPosition = children.at(0)->scrollPosition(); + QVERIFY(children.at(0)->scrollRecursively(-10, -10)); + QVERIFY(childScrollPosition != children.at(0)->scrollPosition()); + scrollPosition = webPage->mainFrame()->scrollPosition(); + QVERIFY(children.at(0)->scrollRecursively(-10, -10)); + QVERIFY(scrollPosition != webPage->mainFrame()->scrollPosition()); + +} + +void tst_QWebFrame::introspectQtMethods_data() +{ + QTest::addColumn<QString>("objectExpression"); + QTest::addColumn<QString>("methodName"); + QTest::addColumn<QStringList>("expectedPropertyNames"); + + QTest::newRow("myObject.mySignal") + << "myObject" << "mySignal" << (QStringList() << "connect" << "disconnect" << "length" << "name"); + QTest::newRow("myObject.mySlot") + << "myObject" << "mySlot" << (QStringList() << "connect" << "disconnect" << "length" << "name"); + QTest::newRow("myObject.myInvokable") + << "myObject" << "myInvokable" << (QStringList() << "connect" << "disconnect" << "length" << "name"); + QTest::newRow("myObject.mySignal.connect") + << "myObject.mySignal" << "connect" << (QStringList() << "length" << "name"); + QTest::newRow("myObject.mySignal.disconnect") + << "myObject.mySignal" << "disconnect" << (QStringList() << "length" << "name"); +} + +void tst_QWebFrame::introspectQtMethods() +{ + QFETCH(QString, objectExpression); + QFETCH(QString, methodName); + QFETCH(QStringList, expectedPropertyNames); + + QString methodLookup = QString::fromLatin1("%0['%1']").arg(objectExpression).arg(methodName); + QCOMPARE(evalJSV(QString::fromLatin1("Object.getOwnPropertyNames(%0).sort()").arg(methodLookup)).toStringList(), expectedPropertyNames); + + for (int i = 0; i < expectedPropertyNames.size(); ++i) { + QString name = expectedPropertyNames.at(i); + QCOMPARE(evalJS(QString::fromLatin1("%0.hasOwnProperty('%1')").arg(methodLookup).arg(name)), sTrue); + evalJS(QString::fromLatin1("var descriptor = Object.getOwnPropertyDescriptor(%0, '%1')").arg(methodLookup).arg(name)); + QCOMPARE(evalJS("typeof descriptor"), QString::fromLatin1("object")); + QCOMPARE(evalJS("descriptor.get"), sUndefined); + QCOMPARE(evalJS("descriptor.set"), sUndefined); + QCOMPARE(evalJS(QString::fromLatin1("descriptor.value === %0['%1']").arg(methodLookup).arg(name)), sTrue); + QCOMPARE(evalJS(QString::fromLatin1("descriptor.enumerable")), sFalse); + QCOMPARE(evalJS(QString::fromLatin1("descriptor.configurable")), sFalse); + } + + QVERIFY(evalJSV("var props=[]; for (var p in myObject.deleteLater) {props.push(p);}; props.sort()").toStringList().isEmpty()); +} + QTEST_MAIN(tst_QWebFrame) #include "tst_qwebframe.moc" diff --git a/WebKit/qt/tests/qwebframe/tst_qwebframe.qrc b/WebKit/qt/tests/qwebframe/tst_qwebframe.qrc new file mode 100644 index 0000000..2a7d0b9 --- /dev/null +++ b/WebKit/qt/tests/qwebframe/tst_qwebframe.qrc @@ -0,0 +1,10 @@ +<!DOCTYPE RCC><RCC version="1.0"> +<qresource prefix="/"> +<file alias="image.png">resources/image.png</file> +<file alias="style.css">resources/style.css</file> +<file alias="test1.html">resources/test1.html</file> +<file alias="test2.html">resources/test2.html</file> +<file alias="testiframe.html">resources/testiframe.html</file> +<file alias="testiframe2.html">resources/testiframe2.html</file> +</qresource> +</RCC> diff --git a/WebKit/qt/tests/qwebhistory/qwebhistory.pro b/WebKit/qt/tests/qwebhistory/qwebhistory.pro index 7445e3b..4ca2bf6 100644 --- a/WebKit/qt/tests/qwebhistory/qwebhistory.pro +++ b/WebKit/qt/tests/qwebhistory/qwebhistory.pro @@ -1,12 +1 @@ -TEMPLATE = app -TARGET = tst_qwebhistory -include(../../../../WebKit.pri) -SOURCES += tst_qwebhistory.cpp -RESOURCES += tst_qwebhistory.qrc -QT += testlib network -QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR - -symbian { - TARGET.UID3 = 0xA000E53B - TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices -} +include(../tests.pri)
\ No newline at end of file diff --git a/WebKit/qt/tests/qwebhistory/data/page1.html b/WebKit/qt/tests/qwebhistory/resources/page1.html index 82fa4af..82fa4af 100644 --- a/WebKit/qt/tests/qwebhistory/data/page1.html +++ b/WebKit/qt/tests/qwebhistory/resources/page1.html diff --git a/WebKit/qt/tests/qwebhistory/data/page2.html b/WebKit/qt/tests/qwebhistory/resources/page2.html index 5307bdc..5307bdc 100644 --- a/WebKit/qt/tests/qwebhistory/data/page2.html +++ b/WebKit/qt/tests/qwebhistory/resources/page2.html diff --git a/WebKit/qt/tests/qwebhistory/data/page3.html b/WebKit/qt/tests/qwebhistory/resources/page3.html index 4e5547c..4e5547c 100644 --- a/WebKit/qt/tests/qwebhistory/data/page3.html +++ b/WebKit/qt/tests/qwebhistory/resources/page3.html diff --git a/WebKit/qt/tests/qwebhistory/data/page4.html b/WebKit/qt/tests/qwebhistory/resources/page4.html index 3c57aed..3c57aed 100644 --- a/WebKit/qt/tests/qwebhistory/data/page4.html +++ b/WebKit/qt/tests/qwebhistory/resources/page4.html diff --git a/WebKit/qt/tests/qwebhistory/data/page5.html b/WebKit/qt/tests/qwebhistory/resources/page5.html index 8593552..8593552 100644 --- a/WebKit/qt/tests/qwebhistory/data/page5.html +++ b/WebKit/qt/tests/qwebhistory/resources/page5.html diff --git a/WebKit/qt/tests/qwebhistory/data/page6.html b/WebKit/qt/tests/qwebhistory/resources/page6.html index c5bbc6f..c5bbc6f 100644 --- a/WebKit/qt/tests/qwebhistory/data/page6.html +++ b/WebKit/qt/tests/qwebhistory/resources/page6.html diff --git a/WebKit/qt/tests/qwebhistory/tst_qwebhistory.cpp b/WebKit/qt/tests/qwebhistory/tst_qwebhistory.cpp index ec2d497..e967dcc 100644 --- a/WebKit/qt/tests/qwebhistory/tst_qwebhistory.cpp +++ b/WebKit/qt/tests/qwebhistory/tst_qwebhistory.cpp @@ -37,7 +37,7 @@ public: protected : void loadPage(int nr) { - frame->load(QUrl("qrc:/data/page" + QString::number(nr) + ".html")); + frame->load(QUrl("qrc:/resources/page" + QString::number(nr) + ".html")); waitForLoadFinished.exec(); } diff --git a/WebKit/qt/tests/qwebhistory/tst_qwebhistory.qrc b/WebKit/qt/tests/qwebhistory/tst_qwebhistory.qrc index 7c5ff0e..6e2f50a 100644 --- a/WebKit/qt/tests/qwebhistory/tst_qwebhistory.qrc +++ b/WebKit/qt/tests/qwebhistory/tst_qwebhistory.qrc @@ -1,11 +1,11 @@ <!DOCTYPE RCC><RCC version="1.0"> <qresource> - <file>data/page1.html</file> - <file>data/page2.html</file> - <file>data/page3.html</file> - <file>data/page4.html</file> - <file>data/page5.html</file> - <file>data/page6.html</file> + <file>resources/page1.html</file> + <file>resources/page2.html</file> + <file>resources/page3.html</file> + <file>resources/page4.html</file> + <file>resources/page5.html</file> + <file>resources/page6.html</file> </qresource> </RCC> diff --git a/WebKit/qt/tests/qwebhistoryinterface/qwebhistoryinterface.pro b/WebKit/qt/tests/qwebhistoryinterface/qwebhistoryinterface.pro index 764f806..4ca2bf6 100644 --- a/WebKit/qt/tests/qwebhistoryinterface/qwebhistoryinterface.pro +++ b/WebKit/qt/tests/qwebhistoryinterface/qwebhistoryinterface.pro @@ -1,11 +1 @@ -TEMPLATE = app -TARGET = tst_qwebhistoryinterface -include(../../../../WebKit.pri) -SOURCES += tst_qwebhistoryinterface.cpp -QT += testlib network -QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR - -symbian { - TARGET.UID3 = 0xA000E53C - TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices -} +include(../tests.pri)
\ No newline at end of file diff --git a/WebKit/qt/tests/qwebinspector/qwebinspector.pro b/WebKit/qt/tests/qwebinspector/qwebinspector.pro index 520887e..e99c7f4 100644 --- a/WebKit/qt/tests/qwebinspector/qwebinspector.pro +++ b/WebKit/qt/tests/qwebinspector/qwebinspector.pro @@ -1,6 +1 @@ -TEMPLATE = app -TARGET = tst_qwebinspector -include(../../../../WebKit.pri) -SOURCES += tst_qwebinspector.cpp -QT += testlib network -QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR +include(../tests.pri) diff --git a/WebKit/qt/tests/qwebpage/qwebpage.pro b/WebKit/qt/tests/qwebpage/qwebpage.pro index 7853b28..4ca2bf6 100644 --- a/WebKit/qt/tests/qwebpage/qwebpage.pro +++ b/WebKit/qt/tests/qwebpage/qwebpage.pro @@ -1,13 +1 @@ -TEMPLATE = app -TARGET = tst_qwebpage -include(../../../../WebKit.pri) -SOURCES += tst_qwebpage.cpp -RESOURCES += tst_qwebpage.qrc -QT += testlib network -QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR -!symbian:DEFINES += SRCDIR=\\\"$$PWD/\\\" - -symbian { - TARGET.UID3 = 0xA000E53E - TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices -} +include(../tests.pri)
\ No newline at end of file diff --git a/WebKit/qt/tests/qwebpage/frametest/frame_a.html b/WebKit/qt/tests/qwebpage/resources/frame_a.html index 9ff68f1..9ff68f1 100644 --- a/WebKit/qt/tests/qwebpage/frametest/frame_a.html +++ b/WebKit/qt/tests/qwebpage/resources/frame_a.html diff --git a/WebKit/qt/tests/qwebpage/frametest/iframe.html b/WebKit/qt/tests/qwebpage/resources/iframe.html index f17027c..f17027c 100644 --- a/WebKit/qt/tests/qwebpage/frametest/iframe.html +++ b/WebKit/qt/tests/qwebpage/resources/iframe.html diff --git a/WebKit/qt/tests/qwebpage/frametest/iframe2.html b/WebKit/qt/tests/qwebpage/resources/iframe2.html index 5017435..5017435 100644 --- a/WebKit/qt/tests/qwebpage/frametest/iframe2.html +++ b/WebKit/qt/tests/qwebpage/resources/iframe2.html diff --git a/WebKit/qt/tests/qwebpage/frametest/iframe3.html b/WebKit/qt/tests/qwebpage/resources/iframe3.html index ed6ac5b..ed6ac5b 100644 --- a/WebKit/qt/tests/qwebpage/frametest/iframe3.html +++ b/WebKit/qt/tests/qwebpage/resources/iframe3.html diff --git a/WebKit/qt/tests/qwebpage/frametest/index.html b/WebKit/qt/tests/qwebpage/resources/index.html index c53ad09..c53ad09 100644 --- a/WebKit/qt/tests/qwebpage/frametest/index.html +++ b/WebKit/qt/tests/qwebpage/resources/index.html diff --git a/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp index 2a52631..f48fb73 100644 --- a/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp +++ b/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp @@ -1,6 +1,7 @@ /* Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) Copyright (C) 2009 Girish Ramakrishnan <girish@forwardbias.in> + Copyright (C) 2010 Holger Hans Peter Freyther This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public @@ -18,72 +19,24 @@ Boston, MA 02110-1301, USA. */ - +#include "../util.h" +#include <QDir> +#include <QGraphicsWidget> +#include <QLineEdit> +#include <QMenu> +#include <QPushButton> #include <QtTest/QtTest> - #include <qgraphicsscene.h> #include <qgraphicsview.h> #include <qgraphicswebview.h> +#include <qnetworkrequest.h> +#include <qwebdatabase.h> #include <qwebelement.h> -#include <qwebpage.h> -#include <qwidget.h> -#include <QGraphicsWidget> -#include <qwebview.h> #include <qwebframe.h> #include <qwebhistory.h> -#include <qnetworkrequest.h> -#include <QDebug> -#include <QLineEdit> -#include <QMenu> +#include <qwebpage.h> #include <qwebsecurityorigin.h> -#include <qwebdatabase.h> -#include <QPushButton> -#include <QDir> - -#if defined(Q_OS_SYMBIAN) -# define SRCDIR "" -#endif - -// Will try to wait for the condition while allowing event processing -#define QTRY_COMPARE(__expr, __expected) \ - do { \ - const int __step = 50; \ - const int __timeout = 5000; \ - if ((__expr) != (__expected)) { \ - QTest::qWait(0); \ - } \ - for (int __i = 0; __i < __timeout && ((__expr) != (__expected)); __i+=__step) { \ - QTest::qWait(__step); \ - } \ - QCOMPARE(__expr, __expected); \ - } while(0) - -//TESTED_CLASS= -//TESTED_FILES= - -// Task 160192 -/** - * Starts an event loop that runs until the given signal is received. - Optionally the event loop - * can return earlier on a timeout. - * - * \return \p true if the requested signal was received - * \p false on timeout - */ -static bool waitForSignal(QObject* obj, const char* signal, int timeout = 10000) -{ - QEventLoop loop; - QObject::connect(obj, signal, &loop, SLOT(quit())); - QTimer timer; - QSignalSpy timeoutSpy(&timer, SIGNAL(timeout())); - if (timeout > 0) { - QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit())); - timer.setSingleShot(true); - timer.start(timeout); - } - loop.exec(); - return timeoutSpy.isEmpty(); -} +#include <qwebview.h> class EventSpy : public QObject, public QList<QEvent::Type> { @@ -156,6 +109,7 @@ private slots: void screenshot(); void originatingObjectInNetworkRequests(); + void testJSPrompt(); private: QWebView* m_view; @@ -270,10 +224,8 @@ void tst_QWebPage::loadFinished() "<frame src=\"data:text/html,bar\"></frameset>"), QUrl()); QTRY_COMPARE(spyLoadFinished.count(), 1); - QTest::qWait(3000); - - QVERIFY(spyLoadStarted.count() > 1); - QVERIFY(spyLoadFinished.count() > 1); + QTRY_VERIFY(spyLoadStarted.count() > 1); + QTRY_VERIFY(spyLoadFinished.count() > 1); spyLoadFinished.clear(); @@ -520,7 +472,6 @@ void tst_QWebPage::database() // Remove removed test :-) QWebDatabase::removeAllDatabases(); QVERIFY(!origin.databases().size()); - QTest::qWait(1000); } class PluginPage : public QWebPage @@ -1275,7 +1226,7 @@ void tst_QWebPage::backActionUpdate() QAction *action = page->action(QWebPage::Back); QVERIFY(!action->isEnabled()); QSignalSpy loadSpy(page, SIGNAL(loadFinished(bool))); - QUrl url = QUrl("qrc:///frametest/index.html"); + QUrl url = QUrl("qrc:///resources/index.html"); page->mainFrame()->load(url); QTRY_COMPARE(loadSpy.count(), 1); QVERIFY(!action->isEnabled()); @@ -1306,7 +1257,7 @@ void tst_QWebPage::frameAt() QWebView webView; QWebPage* webPage = webView.page(); QSignalSpy loadSpy(webPage, SIGNAL(loadFinished(bool))); - QUrl url = QUrl("qrc:///frametest/iframe.html"); + QUrl url = QUrl("qrc:///resources/iframe.html"); webPage->mainFrame()->load(url); QTRY_COMPARE(loadSpy.count(), 1); frameAtHelper(webPage, webPage->mainFrame(), webPage->mainFrame()->pos()); @@ -1373,6 +1324,7 @@ void tst_QWebPage::inputMethods() else QVERIFY2(false, "Unknown view type"); + page->settings()->setFontFamily(QWebSettings::SerifFont, "FooSerifFont"); page->mainFrame()->setHtml("<html><body>" \ "<input type='text' id='input1' style='font-family: serif' value='' maxlength='20'/><br>" \ "<input type='password'/>" \ @@ -1408,7 +1360,7 @@ void tst_QWebPage::inputMethods() //ImFont variant = page->inputMethodQuery(Qt::ImFont); QFont font = variant.value<QFont>(); - QCOMPARE(QString("-webkit-serif"), font.family()); + QCOMPARE(page->settings()->fontFamily(QWebSettings::SerifFont), font.family()); QList<QInputMethodEvent::Attribute> inputAttributes; @@ -1599,16 +1551,14 @@ void tst_QWebPage::testEnablePersistentStorage() QWebSettings::enablePersistentStorage(); - // Give it some time to initialize - icon database needs it - QTest::qWait(1000); - QCOMPARE(webPage.settings()->testAttribute(QWebSettings::LocalStorageEnabled), true); - QCOMPARE(webPage.settings()->testAttribute(QWebSettings::OfflineStorageDatabaseEnabled), true); - QCOMPARE(webPage.settings()->testAttribute(QWebSettings::OfflineWebApplicationCacheEnabled), true); + QTRY_COMPARE(webPage.settings()->testAttribute(QWebSettings::LocalStorageEnabled), true); + QTRY_COMPARE(webPage.settings()->testAttribute(QWebSettings::OfflineStorageDatabaseEnabled), true); + QTRY_COMPARE(webPage.settings()->testAttribute(QWebSettings::OfflineWebApplicationCacheEnabled), true); - QVERIFY(!webPage.settings()->offlineStoragePath().isEmpty()); - QVERIFY(!webPage.settings()->offlineWebApplicationCachePath().isEmpty()); - QVERIFY(!webPage.settings()->iconDatabasePath().isEmpty()); + QTRY_VERIFY(!webPage.settings()->offlineStoragePath().isEmpty()); + QTRY_VERIFY(!webPage.settings()->offlineWebApplicationCachePath().isEmpty()); + QTRY_VERIFY(!webPage.settings()->iconDatabasePath().isEmpty()); } void tst_QWebPage::defaultTextEncoding() @@ -1676,20 +1626,17 @@ void tst_QWebPage::errorPageExtension() QCOMPARE(page->history()->canGoForward(), false); page->triggerAction(QWebPage::Back); - QTest::qWait(2000); - QCOMPARE(page->history()->canGoBack(), false); - QCOMPARE(page->history()->canGoForward(), true); + QTRY_COMPARE(page->history()->canGoBack(), false); + QTRY_COMPARE(page->history()->canGoForward(), true); page->triggerAction(QWebPage::Forward); - QTest::qWait(2000); - QCOMPARE(page->history()->canGoBack(), true); - QCOMPARE(page->history()->canGoForward(), false); + QTRY_COMPARE(page->history()->canGoBack(), true); + QTRY_COMPARE(page->history()->canGoForward(), false); page->triggerAction(QWebPage::Back); - QTest::qWait(2000); - QCOMPARE(page->history()->canGoBack(), false); - QCOMPARE(page->history()->canGoForward(), true); - QCOMPARE(page->history()->currentItem().url(), QUrl("data:text/html,foo")); + QTRY_COMPARE(page->history()->canGoBack(), false); + QTRY_COMPARE(page->history()->canGoForward(), true); + QTRY_COMPARE(page->history()->currentItem().url(), QUrl("data:text/html,foo")); m_view->setPage(0); } @@ -1716,7 +1663,7 @@ void tst_QWebPage::errorPageExtensionInFrameset() ErrorPage* page = new ErrorPage; m_view->setPage(page); - m_view->load(QUrl("qrc:///frametest/index.html")); + m_view->load(QUrl("qrc:///resources/index.html")); QSignalSpy spyLoadFinished(m_view, SIGNAL(loadFinished(bool))); QTRY_COMPARE(spyLoadFinished.count(), 1); @@ -1765,17 +1712,17 @@ void tst_QWebPage::screenshot_data() void tst_QWebPage::screenshot() { - QDir::setCurrent(SRCDIR); + if (!QDir(TESTS_SOURCE_DIR).exists()) + QSKIP(QString("This test requires access to resources found in '%1'").arg(TESTS_SOURCE_DIR).toLatin1().constData(), SkipAll); + + QDir::setCurrent(TESTS_SOURCE_DIR); QFETCH(QString, html); QWebPage* page = new QWebPage; page->settings()->setAttribute(QWebSettings::PluginsEnabled, true); QWebFrame* mainFrame = page->mainFrame(); - mainFrame->setHtml(html, QUrl::fromLocalFile(QDir::currentPath())); - if (html.contains("</embed>")) { - // some reasonable time for the PluginStream to feed test.swf to flash and start painting - QTest::qWait(2000); - } + mainFrame->setHtml(html, QUrl::fromLocalFile(TESTS_SOURCE_DIR)); + ::waitForSignal(mainFrame, SIGNAL(loadFinished(bool)), 2000); // take screenshot without a view takeScreenshot(page); @@ -1814,5 +1761,72 @@ void tst_QWebPage::originatingObjectInNetworkRequests() #endif } +/** + * Test fixups for https://bugs.webkit.org/show_bug.cgi?id=30914 + * + * From JS we test the following conditions. + * + * OK + QString() => SUCCESS, empty string (but not null) + * OK + "text" => SUCCESS, "text" + * CANCEL + QString() => CANCEL, null string + * CANCEL + "text" => CANCEL, null string + */ +class JSPromptPage : public QWebPage { + Q_OBJECT +public: + JSPromptPage() + {} + + bool javaScriptPrompt(QWebFrame* frame, const QString& msg, const QString& defaultValue, QString* result) + { + if (msg == QLatin1String("test1")) { + *result = QString(); + return true; + } else if (msg == QLatin1String("test2")) { + *result = QLatin1String("text"); + return true; + } else if (msg == QLatin1String("test3")) { + *result = QString(); + return false; + } else if (msg == QLatin1String("test4")) { + *result = QLatin1String("text"); + return false; + } + + qFatal("Unknown msg."); + return QWebPage::javaScriptPrompt(frame, msg, defaultValue, result); + } +}; + +void tst_QWebPage::testJSPrompt() +{ + JSPromptPage page; + bool res; + + // OK + QString() + res = page.mainFrame()->evaluateJavaScript( + "var retval = prompt('test1');" + "retval=='' && retval.length == 0;").toBool(); + QVERIFY(res); + + // OK + "text" + res = page.mainFrame()->evaluateJavaScript( + "var retval = prompt('test2');" + "retval=='text' && retval.length == 4;").toBool(); + QVERIFY(res); + + // Cancel + QString() + res = page.mainFrame()->evaluateJavaScript( + "var retval = prompt('test3');" + "retval===null;").toBool(); + QVERIFY(res); + + // Cancel + "text" + res = page.mainFrame()->evaluateJavaScript( + "var retval = prompt('test4');" + "retval===null;").toBool(); + QVERIFY(res); +} + QTEST_MAIN(tst_QWebPage) #include "tst_qwebpage.moc" diff --git a/WebKit/qt/tests/qwebpage/tst_qwebpage.qrc b/WebKit/qt/tests/qwebpage/tst_qwebpage.qrc index 3085ce2..0627cb4 100644 --- a/WebKit/qt/tests/qwebpage/tst_qwebpage.qrc +++ b/WebKit/qt/tests/qwebpage/tst_qwebpage.qrc @@ -1,10 +1,10 @@ <!DOCTYPE RCC><RCC version="1.0"> <qresource> - <file>frametest/index.html</file> - <file>frametest/frame_a.html</file> - <file>frametest/iframe.html</file> - <file>frametest/iframe2.html</file> - <file>frametest/iframe3.html</file> + <file>resources/index.html</file> + <file>resources/frame_a.html</file> + <file>resources/iframe.html</file> + <file>resources/iframe2.html</file> + <file>resources/iframe3.html</file> </qresource> </RCC> diff --git a/WebKit/qt/tests/qwebplugindatabase/qwebplugindatabase.pro b/WebKit/qt/tests/qwebplugindatabase/qwebplugindatabase.pro index 569146a..e99c7f4 100644 --- a/WebKit/qt/tests/qwebplugindatabase/qwebplugindatabase.pro +++ b/WebKit/qt/tests/qwebplugindatabase/qwebplugindatabase.pro @@ -1,11 +1 @@ -TEMPLATE = app -TARGET = tst_qwebplugindatabase -include(../../../../WebKit.pri) -SOURCES += tst_qwebplugindatabase.cpp -QT += testlib network -QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR - -symbian { - TARGET.UID3 = 0xA000E540 - TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices -} +include(../tests.pri) diff --git a/WebKit/qt/tests/qwebview/qwebview.pro b/WebKit/qt/tests/qwebview/qwebview.pro index 735537b..4ca2bf6 100644 --- a/WebKit/qt/tests/qwebview/qwebview.pro +++ b/WebKit/qt/tests/qwebview/qwebview.pro @@ -1,13 +1 @@ -TEMPLATE = app -TARGET = tst_qwebview -include(../../../../WebKit.pri) -SOURCES += tst_qwebview.cpp -QT += testlib network -QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR -RESOURCES += tst_qwebview.qrc -DEFINES += SRCDIR=\\\"$$PWD/\\\" - -symbian { - TARGET.UID3 = 0xA000E53F - TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices -} +include(../tests.pri)
\ No newline at end of file diff --git a/WebKit/qt/tests/qwebview/data/frame_a.html b/WebKit/qt/tests/qwebview/resources/frame_a.html index 9ff68f1..9ff68f1 100644 --- a/WebKit/qt/tests/qwebview/data/frame_a.html +++ b/WebKit/qt/tests/qwebview/resources/frame_a.html diff --git a/WebKit/qt/tests/qwebview/data/index.html b/WebKit/qt/tests/qwebview/resources/index.html index c53ad09..c53ad09 100644 --- a/WebKit/qt/tests/qwebview/data/index.html +++ b/WebKit/qt/tests/qwebview/resources/index.html diff --git a/WebKit/qt/tests/qwebview/tst_qwebview.cpp b/WebKit/qt/tests/qwebview/tst_qwebview.cpp index bd2f185..ebcf4bb 100644 --- a/WebKit/qt/tests/qwebview/tst_qwebview.cpp +++ b/WebKit/qt/tests/qwebview/tst_qwebview.cpp @@ -30,6 +30,8 @@ #include <qwebkitversion.h> #include <qwebframe.h> +#include <QDebug> + class tst_QWebView : public QObject { Q_OBJECT @@ -121,7 +123,10 @@ void tst_QWebView::reusePage_data() void tst_QWebView::reusePage() { - QDir::setCurrent(SRCDIR); + if (!QDir(TESTS_SOURCE_DIR).exists()) + QSKIP(QString("This test requires access to resources found in '%1'").arg(TESTS_SOURCE_DIR).toLatin1().constData(), SkipAll); + + QDir::setCurrent(TESTS_SOURCE_DIR); QFETCH(QString, html); QWebView* view1 = new QWebView; @@ -129,21 +134,29 @@ void tst_QWebView::reusePage() view1->setPage(page); page->settings()->setAttribute(QWebSettings::PluginsEnabled, true); QWebFrame* mainFrame = page->mainFrame(); - mainFrame->setHtml(html, QUrl::fromLocalFile(QDir::currentPath())); + mainFrame->setHtml(html, QUrl::fromLocalFile(TESTS_SOURCE_DIR)); if (html.contains("</embed>")) { // some reasonable time for the PluginStream to feed test.swf to flash and start painting waitForSignal(view1, SIGNAL(loadFinished(bool)), 2000); } view1->show(); +#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) QTest::qWaitForWindowShown(view1); +#else + QTest::qWait(2000); +#endif delete view1; QVERIFY(page != 0); // deleting view must not have deleted the page, since it's not a child of view QWebView *view2 = new QWebView; view2->setPage(page); view2->show(); // in Windowless mode, you should still be able to see the plugin here +#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) QTest::qWaitForWindowShown(view2); +#else + QTest::qWait(2000); +#endif delete view2; delete page; // must not crash @@ -185,7 +198,7 @@ void tst_QWebView::crashTests() // Test page should have frames. QWebView view; WebViewCrashTest tester(&view); - QUrl url("qrc:///data/index.html"); + QUrl url("qrc:///resources/index.html"); view.load(url); QTRY_VERIFY(tester.m_executed); // If fail it means that the test wasn't executed. } diff --git a/WebKit/qt/tests/qwebview/tst_qwebview.qrc b/WebKit/qt/tests/qwebview/tst_qwebview.qrc index ede34a9..5abc64c 100644 --- a/WebKit/qt/tests/qwebview/tst_qwebview.qrc +++ b/WebKit/qt/tests/qwebview/tst_qwebview.qrc @@ -1,7 +1,7 @@ <!DOCTYPE RCC><RCC version="1.0"> <qresource> - <file>data/index.html</file> - <file>data/frame_a.html</file> + <file>resources/index.html</file> + <file>resources/frame_a.html</file> </qresource> </RCC> diff --git a/WebKit/qt/tests/qwebframe/resources/image2.png b/WebKit/qt/tests/resources/image2.png Binary files differindex 8d70364..8d70364 100644 --- a/WebKit/qt/tests/qwebframe/resources/image2.png +++ b/WebKit/qt/tests/resources/image2.png diff --git a/WebKit/qt/tests/tests.pri b/WebKit/qt/tests/tests.pri new file mode 100644 index 0000000..c3d7755 --- /dev/null +++ b/WebKit/qt/tests/tests.pri @@ -0,0 +1,20 @@ +TEMPLATE = app +CONFIG -= app_bundle + +TARGET = tst_$$TARGET +SOURCES += $$_PRO_FILE_PWD_/$${TARGET}.cpp + +exists($$_PRO_FILE_PWD_/$${TARGET}.qrc):RESOURCES += $$_PRO_FILE_PWD_/$${TARGET}.qrc + +include(../../../WebKit.pri) +QT += testlib network + +QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR + +symbian { + TARGET.CAPABILITY = ReadUserData WriteUserData NetworkServices +} + +# This define is used by some tests to look up resources in the source tree +!symbian: DEFINES += TESTS_SOURCE_DIR=\\\"$$PWD/\\\" + diff --git a/WebKit/qt/tests/tests.pro b/WebKit/qt/tests/tests.pro index b967ca9..5e19202 100644 --- a/WebKit/qt/tests/tests.pro +++ b/WebKit/qt/tests/tests.pro @@ -1,4 +1,4 @@ TEMPLATE = subdirs -SUBDIRS = qwebframe qwebpage qwebelement qgraphicswebview qwebhistoryinterface qwebview qwebhistory qwebinspector -greaterThan(QT_MINOR_VERSION, 4): SUBDIRS += benchmarks/painting/tst_painting.pro benchmarks/loading/tst_loading.pro +SUBDIRS = qwebframe qwebpage qwebelement qgraphicswebview qwebhistoryinterface qwebview qwebhistory qwebinspector hybridPixmap +greaterThan(QT_MINOR_VERSION, 4): SUBDIRS += benchmarks/painting benchmarks/loading diff --git a/WebKit/qt/tests/util.h b/WebKit/qt/tests/util.h index 15af262..c61bc6b 100644 --- a/WebKit/qt/tests/util.h +++ b/WebKit/qt/tests/util.h @@ -22,6 +22,10 @@ #include <QSignalSpy> #include <QTimer> +#if !defined(TESTS_SOURCE_DIR) +#define TESTS_SOURCE_DIR "" +#endif + /** * Starts an event loop that runs until the given signal is received. * Optionally the event loop |
