summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/WebKit
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/webkit/WebKit')
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qgraphicswebview.cpp3
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebhistory.cpp4
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebkitversion.h2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp8
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp7
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp3
-rw-r--r--src/3rdparty/webkit/WebKit/qt/ChangeLog232
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp31
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.h6
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/benchmarks/loading/loading.pro2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/benchmarks/painting/painting.pro2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/hybridPixmap/widget.ui2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp35
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebelement/qwebelement.pro2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebframe/qwebframe.pro2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp60
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebhistory/qwebhistory.pro2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebhistoryinterface/qwebhistoryinterface.pro2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebinspector/qwebinspector.pro2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebpage/qwebpage.pro2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp46
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebplugindatabase/qwebplugindatabase.pro2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebview/qwebview.pro2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp26
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/tests.pri1
27 files changed, 433 insertions, 57 deletions
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qgraphicswebview.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qgraphicswebview.cpp
index ad66750..3c86770 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qgraphicswebview.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qgraphicswebview.cpp
@@ -122,6 +122,9 @@ public:
virtual void setRootGraphicsLayer(QGraphicsItem* layer);
virtual void markForSync(bool scheduleSync);
void updateCompositingScrollPosition();
+
+ // QGraphicsWebView can render composited layers
+ virtual bool allowsAcceleratedCompositing() const { return true; }
#endif
void updateResizesToContentsForPage();
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebhistory.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebhistory.cpp
index 61ec9d2..d852012 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebhistory.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebhistory.cpp
@@ -33,7 +33,7 @@
enum {
InitialHistoryVersion = 1,
- DefaultHistoryVersion = 2
+ DefaultHistoryVersion = InitialHistoryVersion
};
/*!
@@ -524,7 +524,7 @@ QDataStream& operator>>(QDataStream& source, QWebHistory& history)
source >> version;
- if (version <= 2) {
+ if (version == 1) {
int count;
int currentIndex;
source >> count >> currentIndex;
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebkitversion.h b/src/3rdparty/webkit/WebKit/qt/Api/qwebkitversion.h
index f0fbef0..de79dd1 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebkitversion.h
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebkitversion.h
@@ -17,7 +17,7 @@
Boston, MA 02110-1301, USA.
*/
-#include <qstring.h>
+#include <QtCore/qstring.h>
#ifndef qwebkitversion_h
#define qwebkitversion_h
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
index 007aeac..7bde2f6 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
@@ -1492,7 +1492,7 @@ QVariant QWebPage::inputMethodQuery(Qt::InputMethodQuery property) const
// We can't access absoluteCaretBounds() while the view needs to layout.
return QVariant();
}
- return QVariant(frame->selection()->absoluteCaretBounds());
+ return QVariant(view->contentsToWindow(frame->selection()->absoluteCaretBounds()));
}
case Qt::ImFont: {
if (renderTextControl) {
@@ -2048,9 +2048,9 @@ QWebPage *QWebPage::createWindow(WebWindowType type)
}
/*!
- This function is called whenever WebKit encounters a HTML object element with type "application/x-qt-plugin".
- The \a classid, \a url, \a paramNames and \a paramValues correspond to the HTML object element attributes and
- child elements to configure the embeddable object.
+ This function is called whenever WebKit encounters a HTML object element with type "application/x-qt-plugin". It is
+ called regardless of the value of QWebSettings::PluginsEnabled. The \a classid, \a url, \a paramNames and \a paramValues
+ correspond to the HTML object element attributes and child elements to configure the embeddable object.
*/
QObject *QWebPage::createPlugin(const QString &classid, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues)
{
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp
index c759445..2305c7f 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp
@@ -298,7 +298,9 @@ QWebSettings* QWebSettings::globalSettings()
Support for browser plugins can enabled by setting the
\l{QWebSettings::PluginsEnabled}{PluginsEnabled} attribute. For many applications,
this attribute is enabled for all pages by setting it on the
- \l{globalSettings()}{global settings object}.
+ \l{globalSettings()}{global settings object}. QtWebKit will always ignore this setting
+ \when processing Qt plugins. The decision to allow a Qt plugin is made by the client
+ \in its reimplementation of QWebPage::createPlugin.
\section1 Web Application Support
@@ -366,7 +368,8 @@ QWebSettings* QWebSettings::globalSettings()
programs.
\value JavaEnabled Enables or disables Java applets.
Currently Java applets are not supported.
- \value PluginsEnabled Enables or disables plugins in Web pages.
+ \value PluginsEnabled Enables or disables plugins in Web pages. Qt plugins
+ with a mimetype such as "application/x-qt-plugin" are not affected by this setting.
\value PrivateBrowsingEnabled Private browsing prevents WebKit from
recording visited pages in the history and storing web page icons.
\value JavascriptCanOpenWindows Specifies whether JavaScript programs
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp
index fcd1f4b..3ba1678 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp
@@ -415,9 +415,6 @@ void QWebView::setPage(QWebPage* page)
this, SLOT(updateMicroFocus()));
connect(d->page, SIGNAL(destroyed()),
this, SLOT(_q_pageDestroyed()));
-#if USE(ACCELERATED_COMPOSITING)
- d->page->d->page->settings()->setAcceleratedCompositingEnabled(false);
-#endif
}
setAttribute(Qt::WA_OpaquePaintEvent, d->page);
update();
diff --git a/src/3rdparty/webkit/WebKit/qt/ChangeLog b/src/3rdparty/webkit/WebKit/qt/ChangeLog
index 5e550f9..dabf794 100644
--- a/src/3rdparty/webkit/WebKit/qt/ChangeLog
+++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog
@@ -1,3 +1,203 @@
+2010-04-28 Janne Koskinen <janne.p.koskinen@digia.com>
+
+ Reviewed by Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] WINS DEF file freeze
+
+ Updated WINSCW def file with added and removed symbols.
+
+ * symbian/bwins/QtWebKitu.def:
+
+2010-04-22 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Remove translatable strings from the hybridPixmap test.
+ https://bugs.webkit.org/show_bug.cgi?id=37867
+
+ * tests/hybridPixmap/widget.ui:
+
+2010-04-22 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Fix autotests .qrc file paths when built in Qt.
+
+ Compiling auto-tests from qt/tests/auto/qweb* produced
+ failing tests since these .pro files include the
+ ones in WebKit/qt/tests and the .qrc file was
+ not added to RESOURCES
+
+ * tests/benchmarks/loading/loading.pro:
+ * tests/benchmarks/painting/painting.pro:
+ * tests/qgraphicswebview/qgraphicswebview.pro:
+ * tests/qwebelement/qwebelement.pro:
+ * tests/qwebframe/qwebframe.pro:
+ * tests/qwebhistory/qwebhistory.pro:
+ * tests/qwebhistoryinterface/qwebhistoryinterface.pro:
+ * tests/qwebinspector/qwebinspector.pro:
+ * tests/qwebpage/qwebpage.pro:
+ * tests/qwebplugindatabase/qwebplugindatabase.pro:
+ * tests/qwebview/qwebview.pro:
+ * tests/tests.pri:
+
+2010-04-26 Bruno Schmidt <bruno.schmidt@gmail.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Exposing an QVariantMap containing QObjectStar to Javascript
+ causes Segmentation Fault
+ https://bugs.webkit.org/show_bug.cgi?id=34729
+
+ If an QVariantMap containing QObjectStar is added to the to QtWebkit
+ Javascript, it's use causes Segmentation Fault.
+ It happens because, in the case QMetaType::QVariantMap, the "root"
+ object that is inside of a PassRefPtr is passed recursively inside a
+ loop to recover the content of the map, but the PassRefPtr semantics
+ prohibit its use inside a loop, so the "root" object mus be passed
+ using the method "PassRefPtr::get" in order to keep the current
+ reference.
+
+ * tests/qwebframe/tst_qwebframe.cpp:
+ (MyQObject::MyQObject): new property variantMapProperty
+ (MyQObject::variantMapProperty): read variantMapProperty
+ (MyQObject::setVariantMapProperty): write variantMapProperty
+
+2010-04-26 Thiago Macieira <thiago.macieira@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Fix the include header <qstring.h> -> <QtCore/qstring.h>
+
+ The module/header.h style inclusion removes the need to have -I$QTDIR/include/depending-module
+ in the include search path for the application.
+
+ * Api/qwebkitversion.h:
+
+2010-04-21 Yi Shen <yi.4.shen@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Check the request empty or not in ChromeClientQt::createWindow()
+ https://bugs.webkit.org/show_bug.cgi?id=37821
+
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::createWindow):
+
+2010-04-22 John Pavan <john.pavan@nokia.com>
+
+ Reviewed by Laszlo Gombos.
+
+ [Qt] inputMethodQuery returns coordinates in web page coordinates rather than in item coordinates.
+ https://bugs.webkit.org/show_bug.cgi?id=37163
+
+
+ QWebPage::inputMethodQuery is modified so that it
+ returns coordinates in the widget's coordinate system.
+ Tests are added for QGraphicsWebView and QWebView
+ to verify that this behavior is correct after the webpage
+ has been scrolled.
+
+ * Api/qwebpage.cpp:
+ (QWebPage::inputMethodQuery):
+ * tests/qgraphicswebview/tst_qgraphicswebview.cpp:
+ (tst_QGraphicsWebView::microFocusCoordinates):
+ * tests/qwebview/tst_qwebview.cpp:
+ (tst_QWebView::microFocusCoordinates):
+
+2010-04-21 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ Reviewed by Simon Fraser.
+
+ [Qt] Fix or remove the runtime flag for accelerated compositing.
+ https://bugs.webkit.org/show_bug.cgi?id=37313
+
+ This lets the QWebPageClient "veto" the settings value for accelerated compositing.
+ In this case we allow accelerated compositing only on QGraphicsWebView.
+
+ * Api/qgraphicswebview.cpp:
+ (QGraphicsWebViewPrivate::allowsAcceleratedCompositing):
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::allowsAcceleratedCompositing):
+ * WebCoreSupport/ChromeClientQt.h:
+
+2010-04-22 Robert Hogan <robert@webkit.org>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Fix createPlugin() tests in tst_qwebpage to match behaviour of Qt plugins
+ when PluginsEnabled is false.
+
+ tst_qwebpage should have been updated as part of r56662.
+ (See https://bugs.webkit.org/show_bug.cgi?id=32196)
+
+ Updated documentation of QWebPage::createPlugin and QWebSetting::pluginsEnabled
+ to match the new behaviour.
+
+ * Api/qwebpage.cpp: Update docs.
+ * Api/qwebsettings.cpp: Update docs.
+ * tests/qwebpage/tst_qwebpage.cpp:
+ (createPlugin):
+ (tst_QWebPage::createPluginWithPluginsEnabled):
+ (tst_QWebPage::createPluginWithPluginsDisabled):
+
+2010-04-09 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Kenneth Christiansen and Tor Arne Vestbø.
+
+ REGRESSION(r56552): Broken scrollbars size
+ https://bugs.webkit.org/show_bug.cgi?id=36853
+
+ The regression was caused by r56552, which introduced a fix to bug
+ webkit.org/b/21300. The bug solved an issue with the resize handle on mac,
+ but did it in a way that affected all Qt platforms and thus broke the behavior
+ on non-mac platforms.
+
+ This patch makes the mac specific change ifdef'ed and only applied for the mac
+ platform.
+
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::windowResizerRect):
+
+2010-04-19 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Fix compilation against namespaced Qt.
+
+ * WebCoreSupport/ChromeClientQt.h:
+ * WebCoreSupport/QtFallbackWebPopup.h:
+
+2010-04-14 Luiz Agostini <luiz.agostini@openbossa.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Changing view mode names due to specification changes
+ https://bugs.webkit.org/show_bug.cgi?id=37615
+
+ test: fast/media/media-feature-wgt-view-mode.html
+
+ specification: http://dev.w3.org/2006/waf/widgets-vmmf/
+
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::isWindowed):
+ (WebCore::ChromeClientQt::isFullscreen):
+ (WebCore::ChromeClientQt::isMaximized):
+ (WebCore::ChromeClientQt::isMinimized):
+ * WebCoreSupport/ChromeClientQt.h:
+
+2010-04-14 Andreas Kling <andreas.kling@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Rendering artifacts on Qt plugins when scrolling the page
+ https://bugs.webkit.org/show_bug.cgi?id=37152
+
+ Because we no longer repaint the entire viewport on scroll,
+ we must trigger a repaint of QtPluginWidgets when their geometry changes.
+
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+
2010-04-09 Yi Shen <yi.4.shen@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
@@ -10,6 +210,38 @@
* tests/qwebframe/tst_qwebframe.cpp:
+2010-04-15 Bruno Schmidt <bruno.schmidt@gmail.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Null QObjects properties cause Segmentation Fault
+ https://bugs.webkit.org/show_bug.cgi?id=34730
+
+ QObjects exported to the QWebkit javascript with properties that are
+ a null "QObject*" cause Segmentation Fault.
+
+ If an QObject is added to the javascript context and it contains
+ properties of the type QObject* with NULL value, calling the property
+ causes Segmentation Fault.
+
+ Follow the tests for the corrections done over WebCore.
+
+ * tests/qwebframe/tst_qwebframe.cpp:
+ (MyQObject::MyQObject): init the field m_objectStar
+ (MyQObject::objectStarProperty): read the Object* prop
+ (MyQObject::setObjectStarProperty): write the Object* prop
+ (tst_QWebFrame::getSetStaticProperty): new tests for the new prop
+
+2010-04-15 Kent Hansen <kent.hansen@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Mark QWebFrame::overloadedSlots autotest as expected failure
+
+ https://bugs.webkit.org/show_bug.cgi?id=37319
+
+ * tests/qwebframe/tst_qwebframe.cpp:
+
2010-04-09 Tasuku Suzuki <tasuku.suzuki@nokia.com>
Reviewed by Simon Hausmann.
diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
index 45986b3..123f72c 100644
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
@@ -165,7 +165,9 @@ Page* ChromeClientQt::createWindow(Frame*, const FrameLoadRequest& request, cons
QWebPage *newPage = m_webPage->createWindow(features.dialog ? QWebPage::WebModalDialog : QWebPage::WebBrowserWindow);
if (!newPage)
return 0;
- newPage->mainFrame()->load(request.resourceRequest().url());
+
+ if (!request.isEmpty())
+ newPage->mainFrame()->load(request.resourceRequest().url());
return newPage->d->page;
}
@@ -330,6 +332,7 @@ bool ChromeClientQt::tabsToLinks() const
IntRect ChromeClientQt::windowResizerRect() const
{
+#if defined(Q_WS_MAC)
if (!m_webPage)
return IntRect();
@@ -359,6 +362,9 @@ IntRect ChromeClientQt::windowResizerRect() const
QRect resizeCornerRect = QRect(resizeCornerTopLeft, QSize(scollbarThickness, scollbarThickness));
return resizeCornerRect.intersected(pageClient->geometryRelativeToOwnerWidget());
+#else
+ return IntRect();
+#endif
}
void ChromeClientQt::invalidateWindow(const IntRect&, bool)
@@ -542,6 +548,12 @@ void ChromeClientQt::scheduleCompositingLayerSync()
if (platformPageClient())
platformPageClient()->markForSync(true);
}
+
+bool ChromeClientQt::allowsAcceleratedCompositing() const
+{
+ return (platformPageClient() && platformPageClient()->allowsAcceleratedCompositing());
+}
+
#endif
QtAbstractWebPopup* ChromeClientQt::createSelectPopup()
@@ -554,9 +566,9 @@ QtAbstractWebPopup* ChromeClientQt::createSelectPopup()
}
#if ENABLE(WIDGETS_10_SUPPORT)
-bool ChromeClientQt::isDocked()
+bool ChromeClientQt::isWindowed()
{
- return m_webPage->d->viewMode == "mini";
+ return m_webPage->d->viewMode == "windowed";
}
bool ChromeClientQt::isFloating()
@@ -564,14 +576,19 @@ bool ChromeClientQt::isFloating()
return m_webPage->d->viewMode == "floating";
}
-bool ChromeClientQt::isApplication()
+bool ChromeClientQt::isFullscreen()
{
- return m_webPage->d->viewMode == "application";
+ return m_webPage->d->viewMode == "fullscreen";
}
-bool ChromeClientQt::isFullscreen()
+bool ChromeClientQt::isMaximized()
{
- return m_webPage->d->viewMode == "fullscreen";
+ return m_webPage->d->viewMode == "maximized";
+}
+
+bool ChromeClientQt::isMinimized()
+{
+ return m_webPage->d->viewMode == "minimized";
}
#endif
diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.h
index f8f217b..f0a7c8c 100644
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.h
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/ChromeClientQt.h
@@ -137,6 +137,7 @@ namespace WebCore {
virtual void attachRootGraphicsLayer(Frame*, GraphicsLayer*);
virtual void setNeedsOneShotDrawingSynchronization();
virtual void scheduleCompositingLayerSync();
+ virtual bool allowsAcceleratedCompositing() const;
#endif
#if ENABLE(TOUCH_EVENTS)
@@ -158,10 +159,11 @@ namespace WebCore {
virtual void cancelGeolocationPermissionRequestForFrame(Frame*) { }
#if ENABLE(WIDGETS_10_SUPPORT)
- virtual bool isDocked();
+ virtual bool isWindowed();
virtual bool isFloating();
- virtual bool isApplication();
virtual bool isFullscreen();
+ virtual bool isMaximized();
+ virtual bool isMinimized();
#endif
QtAbstractWebPopup* createSelectPopup();
diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
index 5b1dd30..4ad008b 100644
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
@@ -1176,6 +1176,8 @@ public:
platformWidget()->setMask(clipRegion);
handleVisibility();
+
+ platformWidget()->update();
}
virtual void show()
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/benchmarks/loading/loading.pro b/src/3rdparty/webkit/WebKit/qt/tests/benchmarks/loading/loading.pro
index 258930c..99c64a5 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/benchmarks/loading/loading.pro
+++ b/src/3rdparty/webkit/WebKit/qt/tests/benchmarks/loading/loading.pro
@@ -1,3 +1,3 @@
isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../../..
-exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
include(../../tests.pri)
+exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/benchmarks/painting/painting.pro b/src/3rdparty/webkit/WebKit/qt/tests/benchmarks/painting/painting.pro
index 258930c..99c64a5 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/benchmarks/painting/painting.pro
+++ b/src/3rdparty/webkit/WebKit/qt/tests/benchmarks/painting/painting.pro
@@ -1,3 +1,3 @@
isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../../..
-exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
include(../../tests.pri)
+exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/hybridPixmap/widget.ui b/src/3rdparty/webkit/WebKit/qt/tests/hybridPixmap/widget.ui
index ae5e0b5..272d6a7 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/hybridPixmap/widget.ui
+++ b/src/3rdparty/webkit/WebKit/qt/tests/hybridPixmap/widget.ui
@@ -18,7 +18,7 @@
<widget class="WebView" name="webView" native="true">
<property name="url" stdset="0">
<url>
- <string>about:blank</string>
+ <string notr="true">about:blank</string>
</url>
</property>
</widget>
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro b/src/3rdparty/webkit/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro
index 6777615..e915d60 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro
@@ -1,3 +1,3 @@
isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../..
-exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
include(../tests.pri)
+exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp
index 657e09f..14f5820 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp
@@ -31,6 +31,7 @@ class tst_QGraphicsWebView : public QObject
private slots:
void qgraphicswebview();
void crashOnViewlessWebPages();
+ void microFocusCoordinates();
};
void tst_QGraphicsWebView::qgraphicswebview()
@@ -102,6 +103,40 @@ void tst_QGraphicsWebView::crashOnViewlessWebPages()
QVERIFY(waitForSignal(page, SIGNAL(loadFinished(bool))));
}
+void tst_QGraphicsWebView::microFocusCoordinates()
+{
+ QWebPage* page = new QWebPage;
+ QGraphicsWebView* webView = new QGraphicsWebView;
+ webView->setPage( page );
+ QGraphicsView* view = new QGraphicsView;
+ QGraphicsScene* scene = new QGraphicsScene(view);
+ view->setScene(scene);
+ scene->addItem(webView);
+ view->setGeometry(QRect(0,0,500,500));
+
+ page->mainFrame()->setHtml("<html><body>" \
+ "<input type='text' id='input1' style='font--family: serif' value='' maxlength='20'/><br>" \
+ "<canvas id='canvas1' width='500' height='500'/>" \
+ "<input type='password'/><br>" \
+ "<canvas id='canvas2' width='500' height='500'/>" \
+ "</body></html>");
+
+ page->mainFrame()->setFocus();
+
+ QVariant initialMicroFocus = page->inputMethodQuery(Qt::ImMicroFocus);
+ QVERIFY(initialMicroFocus.isValid());
+
+ page->mainFrame()->scroll(0,300);
+
+ QVariant currentMicroFocus = page->inputMethodQuery(Qt::ImMicroFocus);
+ QVERIFY(currentMicroFocus.isValid());
+
+ QCOMPARE(initialMicroFocus.toRect().translated(QPoint(0,-300)), currentMicroFocus.toRect());
+
+ delete view;
+}
+
+
QTEST_MAIN(tst_QGraphicsWebView)
#include "tst_qgraphicswebview.moc"
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebelement/qwebelement.pro b/src/3rdparty/webkit/WebKit/qt/tests/qwebelement/qwebelement.pro
index 6777615..e915d60 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebelement/qwebelement.pro
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebelement/qwebelement.pro
@@ -1,3 +1,3 @@
isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../..
-exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
include(../tests.pri)
+exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/qwebframe.pro b/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/qwebframe.pro
index 6777615..e915d60 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/qwebframe.pro
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/qwebframe.pro
@@ -1,3 +1,3 @@
isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../..
-exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
include(../tests.pri)
+exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
index ca14f6c..bea7a67 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
@@ -57,6 +57,7 @@ class MyQObject : public QObject
Q_PROPERTY(int intProperty READ intProperty WRITE setIntProperty)
Q_PROPERTY(QVariant variantProperty READ variantProperty WRITE setVariantProperty)
Q_PROPERTY(QVariantList variantListProperty READ variantListProperty WRITE setVariantListProperty)
+ Q_PROPERTY(QVariantMap variantMapProperty READ variantMapProperty WRITE setVariantMapProperty)
Q_PROPERTY(QString stringProperty READ stringProperty WRITE setStringProperty)
Q_PROPERTY(QStringList stringListProperty READ stringListProperty WRITE setStringListProperty)
Q_PROPERTY(QByteArray byteArrayProperty READ byteArrayProperty WRITE setByteArrayProperty)
@@ -67,6 +68,7 @@ class MyQObject : public QObject
Q_PROPERTY(QKeySequence shortcut READ shortcut WRITE setShortcut)
Q_PROPERTY(CustomType propWithCustomType READ propWithCustomType WRITE setPropWithCustomType)
Q_PROPERTY(QWebElement webElementProperty READ webElementProperty WRITE setWebElementProperty)
+ Q_PROPERTY(QObject* objectStarProperty READ objectStarProperty WRITE setObjectStarProperty)
Q_ENUMS(Policy Strategy)
Q_FLAGS(Ability)
@@ -104,7 +106,13 @@ public:
m_hiddenValue(456.0),
m_writeOnlyValue(789),
m_readOnlyValue(987),
- m_qtFunctionInvoked(-1) { }
+ m_objectStar(0),
+ m_qtFunctionInvoked(-1)
+ {
+ m_variantMapValue.insert("a", QVariant(123));
+ m_variantMapValue.insert("b", QVariant(QLatin1String("foo")));
+ m_variantMapValue.insert("c", QVariant::fromValue<QObject*>(this));
+ }
~MyQObject() { }
@@ -129,6 +137,13 @@ public:
m_variantListValue = value;
}
+ QVariantMap variantMapProperty() const {
+ return m_variantMapValue;
+ }
+ void setVariantMapProperty(const QVariantMap &value) {
+ m_variantMapValue = value;
+ }
+
QString stringProperty() const {
return m_stringValue;
}
@@ -197,6 +212,15 @@ public:
m_customType = c;
}
+ QObject* objectStarProperty() const {
+ return m_objectStar;
+ }
+
+ void setObjectStarProperty(QObject* object) {
+ m_objectStar = object;
+ }
+
+
int qtFunctionInvoked() const {
return m_qtFunctionInvoked;
}
@@ -472,6 +496,7 @@ private:
int m_intValue;
QVariant m_variantValue;
QVariantList m_variantListValue;
+ QVariantMap m_variantMapValue;
QString m_stringValue;
QStringList m_stringListValue;
QByteArray m_byteArrayValue;
@@ -482,6 +507,7 @@ private:
QKeySequence m_shortcut;
QWebElement m_webElement;
CustomType m_customType;
+ QObject* m_objectStar;
int m_qtFunctionInvoked;
QVariantList m_actuals;
};
@@ -747,6 +773,21 @@ void tst_QWebFrame::getSetStaticProperty()
{
QString type;
+ QVariant ret = evalJSV("myObject.variantMapProperty", type);
+ QCOMPARE(type, sObject);
+ QCOMPARE(ret.type(), QVariant::Map);
+ QVariantMap vm = ret.value<QVariantMap>();
+ QCOMPARE(vm.size(), 3);
+ QCOMPARE(vm.value("a").toInt(), 123);
+ QCOMPARE(vm.value("b").toString(), QLatin1String("foo"));
+ QCOMPARE(vm.value("c").value<QObject*>(), m_myObject);
+ }
+ QCOMPARE(evalJS("myObject.variantMapProperty.a === 123"), sTrue);
+ QCOMPARE(evalJS("myObject.variantMapProperty.b === 'foo'"), sTrue);
+ QCOMPARE(evalJS("myObject.variantMapProperty.c.variantMapProperty.b === 'foo'"), sTrue);
+
+ {
+ QString type;
QVariant ret = evalJSV("myObject.stringListProperty", type);
QCOMPARE(type, sArray);
QCOMPARE(ret.type(), QVariant::List);
@@ -878,6 +919,21 @@ void tst_QWebFrame::getSetStaticProperty()
QCOMPARE(evalJS("myObject.readOnlyProperty = 654;"
"myObject.readOnlyProperty == 987"), sTrue);
QCOMPARE(m_myObject->readOnlyProperty(), 987);
+
+ // QObject* property
+ m_myObject->setObjectStarProperty(0);
+ QCOMPARE(m_myObject->objectStarProperty(), (QObject*)0);
+ QCOMPARE(evalJS("myObject.objectStarProperty == null"), sTrue);
+ QCOMPARE(evalJS("typeof myObject.objectStarProperty"), sObject);
+ QCOMPARE(evalJS("Boolean(myObject.objectStarProperty)"), sFalse);
+ QCOMPARE(evalJS("String(myObject.objectStarProperty) == 'null'"), sTrue);
+ QCOMPARE(evalJS("myObject.objectStarProperty.objectStarProperty"),
+ sUndefined);
+ m_myObject->setObjectStarProperty(this);
+ QCOMPARE(evalJS("myObject.objectStarProperty != null"), sTrue);
+ QCOMPARE(evalJS("typeof myObject.objectStarProperty"), sObject);
+ QCOMPARE(evalJS("Boolean(myObject.objectStarProperty)"), sTrue);
+ QCOMPARE(evalJS("String(myObject.objectStarProperty) != 'null'"), sTrue);
}
void tst_QWebFrame::getSetDynamicProperty()
@@ -2841,7 +2897,7 @@ void tst_QWebFrame::evaluateWillCauseRepaint()
#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
QTest::qWaitForWindowShown(&view);
#else
- QTest::qWait(2000);
+ QTest::qWait(2000);
#endif
view.page()->mainFrame()->evaluateJavaScript(
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebhistory/qwebhistory.pro b/src/3rdparty/webkit/WebKit/qt/tests/qwebhistory/qwebhistory.pro
index 6777615..e915d60 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebhistory/qwebhistory.pro
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebhistory/qwebhistory.pro
@@ -1,3 +1,3 @@
isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../..
-exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
include(../tests.pri)
+exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebhistoryinterface/qwebhistoryinterface.pro b/src/3rdparty/webkit/WebKit/qt/tests/qwebhistoryinterface/qwebhistoryinterface.pro
index 6777615..e915d60 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebhistoryinterface/qwebhistoryinterface.pro
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebhistoryinterface/qwebhistoryinterface.pro
@@ -1,3 +1,3 @@
isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../..
-exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
include(../tests.pri)
+exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebinspector/qwebinspector.pro b/src/3rdparty/webkit/WebKit/qt/tests/qwebinspector/qwebinspector.pro
index 6777615..e915d60 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebinspector/qwebinspector.pro
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebinspector/qwebinspector.pro
@@ -1,3 +1,3 @@
isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../..
-exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
include(../tests.pri)
+exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/qwebpage.pro b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/qwebpage.pro
index 6777615..e915d60 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/qwebpage.pro
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/qwebpage.pro
@@ -1,3 +1,3 @@
isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../..
-exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
include(../tests.pri)
+exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
index 1f97e69..85d4b60 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
@@ -80,7 +80,8 @@ private slots:
void modified();
void contextMenuCrash();
void database();
- void createPlugin();
+ void createPluginWithPluginsEnabled();
+ void createPluginWithPluginsDisabled();
void destroyPlugin_data();
void destroyPlugin();
void createViewlessPlugin_data();
@@ -518,27 +519,20 @@ protected:
}
};
-void tst_QWebPage::createPlugin()
+static void createPlugin(QWebView *view)
{
- QSignalSpy loadSpy(m_view, SIGNAL(loadFinished(bool)));
+ QSignalSpy loadSpy(view, SIGNAL(loadFinished(bool)));
- PluginPage* newPage = new PluginPage(m_view);
- m_view->setPage(newPage);
+ PluginPage* newPage = new PluginPage(view);
+ view->setPage(newPage);
- // plugins not enabled by default, so the plugin shouldn't be loaded
- m_view->setHtml(QString("<html><body><object type='application/x-qt-plugin' classid='pushbutton' id='mybutton'/></body></html>"));
+ // type has to be application/x-qt-plugin
+ view->setHtml(QString("<html><body><object type='application/x-foobarbaz' classid='pushbutton' id='mybutton'/></body></html>"));
QTRY_COMPARE(loadSpy.count(), 1);
QCOMPARE(newPage->calls.count(), 0);
- m_view->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
-
- // type has to be application/x-qt-plugin
- m_view->setHtml(QString("<html><body><object type='application/x-foobarbaz' classid='pushbutton' id='mybutton'/></body></html>"));
+ view->setHtml(QString("<html><body><object type='application/x-qt-plugin' classid='pushbutton' id='mybutton'/></body></html>"));
QTRY_COMPARE(loadSpy.count(), 2);
- QCOMPARE(newPage->calls.count(), 0);
-
- m_view->setHtml(QString("<html><body><object type='application/x-qt-plugin' classid='pushbutton' id='mybutton'/></body></html>"));
- QTRY_COMPARE(loadSpy.count(), 3);
QCOMPARE(newPage->calls.count(), 1);
{
PluginPage::CallInfo ci = newPage->calls.takeFirst();
@@ -569,11 +563,11 @@ void tst_QWebPage::createPlugin()
QCOMPARE(newPage->mainFrame()->evaluateJavaScript("mybutton.clicked.toString()").toString(),
QString::fromLatin1("function clicked() {\n [native code]\n}"));
- m_view->setHtml(QString("<html><body><table>"
+ view->setHtml(QString("<html><body><table>"
"<tr><object type='application/x-qt-plugin' classid='lineedit' id='myedit'/></tr>"
"<tr><object type='application/x-qt-plugin' classid='pushbutton' id='mybutton'/></tr>"
"</table></body></html>"), QUrl("http://foo.bar.baz"));
- QTRY_COMPARE(loadSpy.count(), 4);
+ QTRY_COMPARE(loadSpy.count(), 3);
QCOMPARE(newPage->calls.count(), 2);
{
PluginPage::CallInfo ci = newPage->calls.takeFirst();
@@ -605,14 +599,22 @@ void tst_QWebPage::createPlugin()
QVERIFY(ci.returnValue != 0);
QVERIFY(ci.returnValue->inherits("QPushButton"));
}
+}
- m_view->settings()->setAttribute(QWebSettings::PluginsEnabled, false);
-
- m_view->setHtml(QString("<html><body><object type='application/x-qt-plugin' classid='pushbutton' id='mybutton'/></body></html>"));
- QTRY_COMPARE(loadSpy.count(), 5);
- QCOMPARE(newPage->calls.count(), 0);
+void tst_QWebPage::createPluginWithPluginsEnabled()
+{
+ m_view->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
+ createPlugin(m_view);
}
+void tst_QWebPage::createPluginWithPluginsDisabled()
+{
+ // Qt Plugins should be loaded by QtWebKit even when PluginsEnabled is
+ // false. The client decides whether a Qt plugin is enabled or not when
+ // it decides whether or not to instantiate it.
+ m_view->settings()->setAttribute(QWebSettings::PluginsEnabled, false);
+ createPlugin(m_view);
+}
// Standard base class for template PluginTracerPage. In tests it is used as interface.
class PluginCounterPage : public QWebPage {
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebplugindatabase/qwebplugindatabase.pro b/src/3rdparty/webkit/WebKit/qt/tests/qwebplugindatabase/qwebplugindatabase.pro
index 6777615..e915d60 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebplugindatabase/qwebplugindatabase.pro
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebplugindatabase/qwebplugindatabase.pro
@@ -1,3 +1,3 @@
isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../..
-exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
include(../tests.pri)
+exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/qwebview.pro b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/qwebview.pro
index 6777615..e915d60 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/qwebview.pro
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/qwebview.pro
@@ -1,3 +1,3 @@
isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../..
-exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
include(../tests.pri)
+exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp
index ebcf4bb..100399e 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp
@@ -48,6 +48,7 @@ private slots:
void reusePage_data();
void reusePage();
+ void microFocusCoordinates();
void crashTests();
};
@@ -203,6 +204,31 @@ void tst_QWebView::crashTests()
QTRY_VERIFY(tester.m_executed); // If fail it means that the test wasn't executed.
}
+void tst_QWebView::microFocusCoordinates()
+{
+ QWebPage* page = new QWebPage;
+ QWebView* webView = new QWebView;
+ webView->setPage( page );
+
+ page->mainFrame()->setHtml("<html><body>" \
+ "<input type='text' id='input1' style='font--family: serif' value='' maxlength='20'/><br>" \
+ "<canvas id='canvas1' width='500' height='500'/>" \
+ "<input type='password'/><br>" \
+ "<canvas id='canvas2' width='500' height='500'/>" \
+ "</body></html>");
+
+ page->mainFrame()->setFocus();
+
+ QVariant initialMicroFocus = page->inputMethodQuery(Qt::ImMicroFocus);
+ QVERIFY(initialMicroFocus.isValid());
+
+ page->mainFrame()->scroll(0,50);
+
+ QVariant currentMicroFocus = page->inputMethodQuery(Qt::ImMicroFocus);
+ QVERIFY(currentMicroFocus.isValid());
+
+ QCOMPARE(initialMicroFocus.toRect().translated(QPoint(0,-50)), currentMicroFocus.toRect());
+}
QTEST_MAIN(tst_QWebView)
#include "tst_qwebview.moc"
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/tests.pri b/src/3rdparty/webkit/WebKit/qt/tests/tests.pri
index 0a8f98c..525e662 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/tests.pri
+++ b/src/3rdparty/webkit/WebKit/qt/tests/tests.pri
@@ -2,6 +2,7 @@ TEMPLATE = app
CONFIG -= app_bundle
VPATH += $$_PRO_FILE_PWD_
+# Add the tst_ prefix, In QTDIR_build it's done by qttest_p4.prf
!CONFIG(QTDIR_build):TARGET = tst_$$TARGET
SOURCES += $${TARGET}.cpp
INCLUDEPATH += \