summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlexis Menard <alexis.menard@trolltech.com>2011-06-02 13:17:54 (GMT)
committerAlexis Menard <alexis.menard@trolltech.com>2011-06-02 13:17:54 (GMT)
commitc3c0bb5fef8452b10bfaf38fe45fb29a606483b2 (patch)
treeb742f080e263a376750b608d3c141ecde583a376 /src
parent00f54ea349fab3773331d2085335258f3aad11c6 (diff)
downloadQt-c3c0bb5fef8452b10bfaf38fe45fb29a606483b2.zip
Qt-c3c0bb5fef8452b10bfaf38fe45fb29a606483b2.tar.gz
Qt-c3c0bb5fef8452b10bfaf38fe45fb29a606483b2.tar.bz2
Updated WebKit to efbf910ad7c49e8cdf81411b4ac0abeea0efd8f8
Reviewed by: Andreas Kling
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/webkit/.tag2
-rw-r--r--src/3rdparty/webkit/Source/JavaScriptCore/ChangeLog21
-rw-r--r--src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSFunction.cpp25
-rw-r--r--src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSFunction.h1
-rw-r--r--src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSObject.cpp6
-rw-r--r--src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSObject.h2
-rw-r--r--src/3rdparty/webkit/Source/WebCore/ChangeLog29
-rw-r--r--src/3rdparty/webkit/Source/WebCore/fileapi/DOMFileSystem.h4
-rw-r--r--src/3rdparty/webkit/Source/WebCore/platform/qt/ScrollbarThemeQt.cpp7
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/ChangeLog141
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h2
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.html4
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.qml37
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp21
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp1
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp19
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp38
-rw-r--r--src/3rdparty/webkit/Tools/QtTestBrowser/useragentlist.txt20
-rw-r--r--src/3rdparty/webkit/VERSION2
19 files changed, 324 insertions, 58 deletions
diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag
index 7993dd6..3103954 100644
--- a/src/3rdparty/webkit/.tag
+++ b/src/3rdparty/webkit/.tag
@@ -1 +1 @@
-9b4474ac44ee2f3311b435bd45630f5c2c357217
+efbf910ad7c49e8cdf81411b4ac0abeea0efd8f8
diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/ChangeLog b/src/3rdparty/webkit/Source/JavaScriptCore/ChangeLog
index 0fba3dd..fc937e8 100644
--- a/src/3rdparty/webkit/Source/JavaScriptCore/ChangeLog
+++ b/src/3rdparty/webkit/Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,24 @@
+2011-05-31 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoffrey Garen.
+
+ Freezing a function and its prototype causes browser to crash.
+ https://bugs.webkit.org/show_bug.cgi?id=61758
+
+ Make JSObject::preventExtensions virtual so that we can override it
+ and instantiate all lazy
+
+ * JavaScriptCore.exp:
+ * runtime/JSFunction.cpp:
+ (JSC::createPrototypeProperty):
+ (JSC::JSFunction::preventExtensions):
+ (JSC::JSFunction::getOwnPropertySlot):
+ * runtime/JSFunction.h:
+ * runtime/JSObject.h:
+ * runtime/JSObject.cpp:
+ (JSC::JSObject::seal):
+ (JSC::JSObject::seal):
+
2011-05-12 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin Adler.
diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSFunction.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSFunction.cpp
index 639cea8..407b3b1 100644
--- a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSFunction.cpp
+++ b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSFunction.cpp
@@ -174,6 +174,23 @@ JSValue JSFunction::lengthGetter(ExecState*, JSValue slotBase, const Identifier&
return jsNumber(thisObj->jsExecutable()->parameterCount());
}
+static inline WriteBarrierBase<Unknown>* createPrototypeProperty(JSGlobalData& globalData, JSGlobalObject* globalObject, JSFunction* function)
+{
+ ExecState* exec = globalObject->globalExec();
+ if (WriteBarrierBase<Unknown>* location = function->getDirectLocation(globalData, exec->propertyNames().prototype))
+ return location;
+ JSObject* prototype = constructEmptyObject(exec, globalObject->emptyObjectStructure());
+ prototype->putDirect(globalData, exec->propertyNames().constructor, function, DontEnum);
+ function->putDirect(globalData, exec->propertyNames().prototype, prototype, DontDelete | DontEnum);
+ return function->getDirectLocation(exec->globalData(), exec->propertyNames().prototype);
+}
+
+void JSFunction::preventExtensions(JSGlobalData& globalData)
+{
+ createPrototypeProperty(globalData, scope()->globalObject.get(), this);
+ JSObject::preventExtensions(globalData);
+}
+
bool JSFunction::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
if (isHostFunction())
@@ -182,12 +199,8 @@ bool JSFunction::getOwnPropertySlot(ExecState* exec, const Identifier& propertyN
if (propertyName == exec->propertyNames().prototype) {
WriteBarrierBase<Unknown>* location = getDirectLocation(exec->globalData(), propertyName);
- if (!location) {
- JSObject* prototype = constructEmptyObject(exec, scope()->globalObject->emptyObjectStructure());
- prototype->putDirect(exec->globalData(), exec->propertyNames().constructor, this, DontEnum);
- putDirect(exec->globalData(), exec->propertyNames().prototype, prototype, DontDelete | DontEnum);
- location = getDirectLocation(exec->globalData(), propertyName);
- }
+ if (!location)
+ location = createPrototypeProperty(exec->globalData(), scope()->globalObject.get(), this);
slot.setValue(this, location->get(), offsetForLocation(location));
}
diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSFunction.h b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSFunction.h
index ba0a792..42fd62a 100644
--- a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSFunction.h
+++ b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSFunction.h
@@ -91,6 +91,7 @@ namespace JSC {
bool isHostFunctionNonInline() const;
+ virtual void preventExtensions(JSGlobalData&);
virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
virtual void getOwnPropertyNames(ExecState*, PropertyNameArray&, EnumerationMode mode = ExcludeDontEnumProperties);
diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSObject.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSObject.cpp
index ae29a7b..ce21703 100644
--- a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSObject.cpp
+++ b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSObject.cpp
@@ -508,11 +508,17 @@ JSObject* JSObject::unwrappedObject()
void JSObject::seal(JSGlobalData& globalData)
{
+ if (isSealed(globalData))
+ return;
+ preventExtensions(globalData);
setStructure(globalData, Structure::sealTransition(globalData, m_structure.get()));
}
void JSObject::freeze(JSGlobalData& globalData)
{
+ if (isFrozen(globalData))
+ return;
+ preventExtensions(globalData);
setStructure(globalData, Structure::freezeTransition(globalData, m_structure.get()));
}
diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSObject.h b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSObject.h
index a6b78bd..768c457 100644
--- a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSObject.h
+++ b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSObject.h
@@ -211,7 +211,7 @@ namespace JSC {
void seal(JSGlobalData&);
void freeze(JSGlobalData&);
- void preventExtensions(JSGlobalData&);
+ virtual void preventExtensions(JSGlobalData&);
bool isSealed(JSGlobalData& globalData) { return m_structure->isSealed(globalData); }
bool isFrozen(JSGlobalData& globalData) { return m_structure->isFrozen(globalData); }
bool isExtensible() { return m_structure->isExtensible(); }
diff --git a/src/3rdparty/webkit/Source/WebCore/ChangeLog b/src/3rdparty/webkit/Source/WebCore/ChangeLog
index 91c8025..55f0c77 100644
--- a/src/3rdparty/webkit/Source/WebCore/ChangeLog
+++ b/src/3rdparty/webkit/Source/WebCore/ChangeLog
@@ -1,3 +1,32 @@
+2011-05-31 Rafael Brandao <rafael.lobo@openbossa.org>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] tst_QWebFrame::render() failing
+ https://bugs.webkit.org/show_bug.cgi?id=60893
+
+ Due a problem on QPicture (http://bugreports.qt.nokia.com/browse/QTBUG-19496),
+ this test was calculating the final geometry incorrectly. As the order between
+ a translate and a draw operation could be relevant for it, but not for the
+ final rendered result, they were changed on ScrollbarThemeQt::paint.
+
+ * platform/qt/ScrollbarThemeQt.cpp:
+ (WebCore::ScrollbarThemeQt::paint):
+
+2011-05-31 B.J. Wever <skylined@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ requestFileSystem and resolveLocalFileSystemURI are not checking if
+ errorCallback is NULL before scheduling a callback on error.
+ https://bugs.webkit.org/show_bug.cgi?id=49539
+
+ Test: fast/filesystem/filesystem-no-callback-null-ptr-crash.html
+
+ * fileapi/DOMFileSystem.cpp:
+ (WebCore::DOMFileSystem::scheduleCallback): Only call callback if
+ one is supplied.
+
2011-05-31 Abhishek Arya <inferno@chromium.org>
Reviewed by Dimitri Glazkov.
diff --git a/src/3rdparty/webkit/Source/WebCore/fileapi/DOMFileSystem.h b/src/3rdparty/webkit/Source/WebCore/fileapi/DOMFileSystem.h
index 1d820f1..38a054a 100644
--- a/src/3rdparty/webkit/Source/WebCore/fileapi/DOMFileSystem.h
+++ b/src/3rdparty/webkit/Source/WebCore/fileapi/DOMFileSystem.h
@@ -101,8 +101,8 @@ template <typename CB, typename CBArg>
void DOMFileSystem::scheduleCallback(ScriptExecutionContext* scriptExecutionContext, PassRefPtr<CB> callback, PassRefPtr<CBArg> arg)
{
ASSERT(scriptExecutionContext->isContextThread());
- ASSERT(callback);
- scriptExecutionContext->postTask(new DispatchCallbackTask<CB, CBArg>(callback, arg));
+ if (callback)
+ scriptExecutionContext->postTask(new DispatchCallbackTask<CB, CBArg>(callback, arg));
}
} // namespace
diff --git a/src/3rdparty/webkit/Source/WebCore/platform/qt/ScrollbarThemeQt.cpp b/src/3rdparty/webkit/Source/WebCore/platform/qt/ScrollbarThemeQt.cpp
index bc574f7..676dd8e 100644
--- a/src/3rdparty/webkit/Source/WebCore/platform/qt/ScrollbarThemeQt.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/platform/qt/ScrollbarThemeQt.cpp
@@ -163,13 +163,12 @@ bool ScrollbarThemeQt::paint(Scrollbar* scrollbar, GraphicsContext* graphicsCont
else
#endif
{
- const QPoint topLeft = opt->rect.topLeft();
- p.painter->translate(topLeft);
- opt->rect.moveTo(QPoint(0, 0));
-
// The QStyle expects the background to be already filled.
p.painter->fillRect(opt->rect, opt->palette.background());
+ const QPoint topLeft = opt->rect.topLeft();
+ p.painter->translate(topLeft);
+ opt->rect.moveTo(QPoint(0, 0));
p.drawComplexControl(QStyle::CC_ScrollBar, *opt);
opt->rect.moveTo(topLeft);
}
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog b/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog
index 0c38ef0..57f79be 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog
+++ b/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog
@@ -1,3 +1,144 @@
+2011-06-02 Andreas Kling <kling@webkit.org>
+
+ Unreviewed build fix.
+
+ To support building namespaced Qt, we require that forward-declarations
+ of Qt classes be wrapped in QT_BEGIN_NAMESPACE and QT_END_NAMESPACE.
+
+ * WebCoreSupport/DumpRenderTreeSupportQt.h:
+
+2011-06-01 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt]Fix tst_QWebFrame::setUrlToInvalid() autotest after r84762
+ https://bugs.webkit.org/show_bug.cgi?id=59345
+
+ KURL and QUrl disagree whether certain URLs are valid or not. The regression here
+ was caused by the fact that now KURL accepts "http:/example.com" (note only one
+ slash) and our test case used a strange edge case that's transformed into a
+ "one-slash" URL that now KURL can handle.
+
+ QtWebKit approach in this case is to do a best effort and accept the QUrl if KURL
+ can understand it. So I've updated the test to use a more meaningful example and
+ show that an invalid URL gets converted to a valid URL if possible.
+
+ * tests/qwebframe/tst_qwebframe.cpp:
+ (tst_QWebFrame::setUrlToInvalid):
+
+2011-06-01 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ Reviewed by Tor Arne Vestbø.
+
+ [Qt] Rewrite tst_QDeclarativeWebView::multipleWindows() to not depend on Grid internals
+ https://bugs.webkit.org/show_bug.cgi?id=61739
+
+ The skipped test was imported from Qt source repository, and used private headers
+ to peek in the QML Grid element. This patch changes the QML used to expose the
+ information we want to test: number of pages opened and the first page opened.
+
+ * tests/qdeclarativewebview/resources/newwindows.html:
+ Added <body> tags. We have no reason to not use them in the test.
+
+ * tests/qdeclarativewebview/resources/newwindows.qml:
+ Moved the timer out of the page component, used anchors for setting webview size,
+ changed the way we count pages opened. Also changed coding style a bit.
+
+ * tests/qdeclarativewebview/tst_qdeclarativewebview.cpp:
+ (tst_QDeclarativeWebView::multipleWindows):
+ We now look for properties with the information we want in the rootItem: pagesOpened and
+ firstPageOpened.
+
+2011-05-31 Rafael Brandao <rafael.lobo@openbossa.org>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] tst_QWebFrame::render() failing
+ https://bugs.webkit.org/show_bug.cgi?id=60893
+
+ The test was expecting the frame contents to be already loaded
+ before rendering it into a QPicture. Renamed the test to fit
+ its real purpose more accordingly.
+
+ * tests/qwebframe/tst_qwebframe.cpp:
+ (tst_QWebFrame::renderGeometry):
+
+2011-05-30 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] Fix unnecessary wait in API autotest tst_QWebFrame::scrollbarsOff
+ https://bugs.webkit.org/show_bug.cgi?id=61711
+
+ The loadFinished() signal was emitted directly inside the call for setHtml, so
+ the test was waiting the loadFinished() signal with a big timeout. Change this by
+ a very small timeout and a verification with signal spy.
+
+ In practice, setHtml() will either directly call loadFinished() or queue it to
+ the next event loop run, and test will work for both situations.
+
+ * tests/qwebframe/tst_qwebframe.cpp:
+ (tst_QWebFrame::scrollbarsOff):
+
+2011-05-20 Csaba Osztrogonác <ossy@webkit.org>
+
+ Reviewed by Benjamin Poulain.
+
+ [Qt] tst_QWebElement::style() fails because QWebElement::InlineStyle doesn't work as expected
+ https://bugs.webkit.org/show_bug.cgi?id=60372
+
+ * tests/qwebelement/tst_qwebelement.cpp: Mark failing test case as expected fail.
+ (tst_QWebElement::style):
+
+2011-05-20 Csaba Osztrogonác <ossy@webkit.org>
+
+ Reviewed by Benjamin Poulain.
+
+ [Qt] Fix tst_QDeclarativeWebView::basicProperties() and historyNav() autotests
+ https://bugs.webkit.org/show_bug.cgi?id=61042
+
+ * tests/qdeclarativewebview/tst_qdeclarativewebview.cpp: Mark failing test cases as expected fails.
+ (tst_QDeclarativeWebView::basicProperties):
+ (tst_QDeclarativeWebView::historyNav):
+
+2011-05-20 Csaba Osztrogonác <ossy@webkit.org>
+
+ Reviewed by Benjamin Poulain.
+
+ [Qt] Fix tst_QWebPage::testOptionalJSObjects() autotest
+ https://bugs.webkit.org/show_bug.cgi?id=61045
+
+ * tests/qwebpage/tst_qwebpage.cpp:
+ (tst_QWebPage::testOptionalJSObjects): Mark failing test cases as expected fails.
+
+2011-05-20 Csaba Osztrogonác <ossy@webkit.org>
+
+ Reviewed by Benjamin Poulain.
+
+ [Qt]Fix tst_QWebFrame::setUrlToInvalid() autotest after r84762
+ https://bugs.webkit.org/show_bug.cgi?id=59345
+
+ * tests/qwebframe/tst_qwebframe.cpp:
+ (tst_QWebFrame::setUrlToInvalid): Mark failing test cases as expected fails.
+
+2011-05-10 Ademar de Souza Reis Jr. <ademar.reis@openbossa.org>
+
+ Reviewed by Csaba Osztrogonác.
+
+ [Qt] tst_QWebPage creates temporary files in the current working dir
+ https://bugs.webkit.org/show_bug.cgi?id=60497
+
+ tst_QWebPage was using QDir::currentPath when creating temporary dirs
+ and leaving them after the test was run. I basically borrowed the fix
+ from tst_QDeclarativeWebView.
+
+ * tests/qwebpage/tst_qwebpage.cpp:
+ (removeRecursive):
+ (tst_QWebPage::tmpDirPath):
+ (tst_QWebPage::cleanupFiles):
+ (tst_QWebPage::database):
+ (tst_QWebPage::multiplePageGroupsAndLocalStorage):
+
2011-05-27 Alexis Menard <alexis.menard@openbossa.org>
Reviewed by Csaba Osztrogonác.
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h b/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
index d40e096..82e5539 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
+++ b/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
@@ -46,12 +46,14 @@ class QtDRTNodeRuntime;
}
#endif
+QT_BEGIN_NAMESPACE
class QWebElement;
class QWebFrame;
class QWebPage;
class QWebHistoryItem;
class QWebScriptWorld;
class QUrl;
+QT_END_NAMESPACE
extern QMap<int, QWebScriptWorld*> m_worldMap;
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.html b/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.html
index dd541f9..4252d9a 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.html
+++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
@@ -11,6 +12,9 @@ function clickTheLink()
// -->
</script>
</head>
+<body>
<h1>Multiple windows...</h1>
<a id=thelink target="_blank" href="newwindows.html">Popup!</a>
+</body>
+</html>
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.qml b/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.qml
index e66631d..166722d 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.qml
+++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.qml
@@ -7,28 +7,45 @@ Grid {
columns: 3
id: pages
height: 300; width: 600
- property int total: 0
+ property int pagesOpened: 0
+ property Item firstPageOpened: null
Component {
id: webViewPage
Rectangle {
- width: webView.width
- height: webView.height
- border.color: "gray"
+ id: thisPage
+ width: 150
+ height: 150
+ property WebView webView: wv
WebView {
- id: webView
- width: 150 // force predictable for test
+ id: wv
+ anchors.fill: parent
newWindowComponent: webViewPage
newWindowParent: pages
url: "newwindows.html"
- Timer {
- interval: 10; running: total<4; repeat: false;
- onTriggered: { if (webView.status==WebView.Ready) { total++; webView.evaluateJavaScript("clickTheLink()") } }
+ Component.onCompleted: {
+ if (pagesOpened == 1) {
+ pages.firstPageOpened = thisPage;
+ }
}
}
}
}
- Loader { sourceComponent: webViewPage }
+ Loader {
+ id: originalPage
+ sourceComponent: webViewPage
+ property bool ready: status == Loader.Ready && item.webView.status == WebView.Ready
+ }
+
+ Timer {
+ interval: 10
+ running: originalPage.ready && pagesOpened < 4
+ repeat: true
+ onTriggered: {
+ pagesOpened++;
+ originalPage.item.webView.evaluateJavaScript("clickTheLink()");
+ }
+ }
}
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp b/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp
index fff1f2d..5ce1eb1 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp
+++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp
@@ -101,6 +101,7 @@ void tst_QDeclarativeWebView::basicProperties()
QVERIFY(wv);
QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
QCOMPARE(wv->property("title").toString(), QLatin1String("Basic"));
+ QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=61042", Continue);
QTRY_COMPARE(qvariant_cast<QPixmap>(wv->property("icon")).width(), 48);
QEXPECT_FAIL("", "'icon' property isn't working", Continue);
QCOMPARE(qvariant_cast<QPixmap>(wv->property("icon")), QPixmap("qrc:///resources/basic.png"));
@@ -178,6 +179,7 @@ void tst_QDeclarativeWebView::historyNav()
for (int i = 1; i <= 2; ++i) {
QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
QCOMPARE(wv->property("title").toString(), QLatin1String("Basic"));
+ QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=61042", Continue);
QTRY_COMPARE(qvariant_cast<QPixmap>(wv->property("icon")).width(), 48);
QEXPECT_FAIL("", "'icon' property isn't working", Continue);
QCOMPARE(qvariant_cast<QPixmap>(wv->property("icon")), QPixmap("qrc:///data/basic.png"));
@@ -197,6 +199,7 @@ void tst_QDeclarativeWebView::historyNav()
wv->setProperty("url", QUrl("qrc:///resources/forward.html"));
QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
QCOMPARE(wv->property("title").toString(), QLatin1String("Forward"));
+ QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=61042", Continue);
QTRY_COMPARE(qvariant_cast<QPixmap>(wv->property("icon")).width(), 32);
QEXPECT_FAIL("", "'icon' property isn't working", Continue);
QCOMPARE(qvariant_cast<QPixmap>(wv->property("icon")), QPixmap("qrc:///resources/forward.png"));
@@ -269,17 +272,21 @@ void tst_QDeclarativeWebView::loadError()
void tst_QDeclarativeWebView::multipleWindows()
{
- QSKIP("Rework this test to not depend on QDeclarativeGrid", SkipAll);
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine, QUrl("qrc:///resources/newwindows.qml"));
checkNoErrors(component);
-// QDeclarativeGrid *grid = qobject_cast<QDeclarativeGrid*>(component.create());
-// QVERIFY(grid != 0);
-// QTRY_COMPARE(grid->children().count(), 2+4); // Component, Loader (with 1 WebView), 4 new-window WebViews
-// QDeclarativeItem* popup = qobject_cast<QDeclarativeItem*>(grid->children().at(2)); // first popup after Component and Loader.
-// QVERIFY(popup != 0);
-// QTRY_COMPARE(popup->x(), 150.0);
+ QDeclarativeItem* rootItem = qobject_cast<QDeclarativeItem*>(component.create());
+ QVERIFY(rootItem);
+
+ QTRY_COMPARE(rootItem->property("pagesOpened").toInt(), 4);
+
+ QDeclarativeProperty prop(rootItem, "firstPageOpened");
+ QObject* firstPageOpened = qvariant_cast<QObject*>(prop.read());
+ QVERIFY(firstPageOpened);
+
+ QDeclarativeProperty xProp(firstPageOpened, "x");
+ QTRY_COMPARE(xProp.read().toReal(), qreal(150.0));
}
void tst_QDeclarativeWebView::newWindowComponent()
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp
index 9e9948a..0f05b2b 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp
+++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp
@@ -483,6 +483,7 @@ void tst_QWebElement::style()
QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("green"));
p.setStyleProperty("color", "blue");
+ QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=60372", Continue);
QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String("blue"));
QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("green"));
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
index a982119..b567784 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
+++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
@@ -637,7 +637,7 @@ private slots:
void baseUrl_data();
void baseUrl();
void hasSetFocus();
- void render();
+ void renderGeometry();
void renderHints();
void scrollPosition();
void scrollToAnchor();
@@ -2881,7 +2881,7 @@ void tst_QWebFrame::hasSetFocus()
QTRY_VERIFY(m_page->mainFrame()->hasFocus());
}
-void tst_QWebFrame::render()
+void tst_QWebFrame::renderGeometry()
{
QString html("<html>" \
"<head><style>" \
@@ -2897,6 +2897,7 @@ void tst_QWebFrame::render()
QWebFrame *frame = frames.at(0);
QString innerHtml("<body style='margin: 0px;'><img src='qrc:/image.png'/></body>");
frame->setHtml(innerHtml);
+ waitForSignal(frame, SIGNAL(loadFinished(bool)), 200);
QPicture picture;
@@ -3134,8 +3135,10 @@ void tst_QWebFrame::scrollbarsOff()
"</body>");
+ QSignalSpy loadSpy(&view, SIGNAL(loadFinished(bool)));
view.setHtml(html);
- ::waitForSignal(&view, SIGNAL(loadFinished(bool)));
+ ::waitForSignal(&view, SIGNAL(loadFinished(bool)), 200);
+ QCOMPARE(loadSpy.count(), 1);
mainFrame->evaluateJavaScript("checkScrollbar();");
QCOMPARE(mainFrame->documentElement().findAll("span").at(0).toPlainText(), QString("SUCCESS"));
@@ -3453,15 +3456,17 @@ void tst_QWebFrame::setUrlToInvalid()
QWebPage page;
QWebFrame* frame = page.mainFrame();
- const QUrl invalidUrl("http://strange;hostname/here");
+ const QUrl invalidUrl("http:/example.com");
QVERIFY(!invalidUrl.isEmpty());
QVERIFY(!invalidUrl.isValid());
QVERIFY(invalidUrl != QUrl());
+ // QWebFrame will do its best to accept the URL, possible converting it to a valid equivalent URL.
+ const QUrl validUrl("http://example.com/");
frame->setUrl(invalidUrl);
- QCOMPARE(frame->url(), invalidUrl);
- QCOMPARE(frame->requestedUrl(), invalidUrl);
- QCOMPARE(frame->baseUrl(), invalidUrl);
+ QCOMPARE(frame->url(), validUrl);
+ QCOMPARE(frame->requestedUrl(), validUrl);
+ QCOMPARE(frame->baseUrl(), validUrl);
// QUrls equivalent to QUrl() will be treated as such.
const QUrl aboutBlank("about:blank");
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
index 8b30dc2..81e1454 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
+++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
@@ -45,6 +45,18 @@
#include <qwebview.h>
#include <qimagewriter.h>
+static void removeRecursive(const QString& dirname)
+{
+ QDir dir(dirname);
+ QFileInfoList entries(dir.entryInfoList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot));
+ for (int i = 0; i < entries.count(); ++i)
+ if (entries[i].isDir())
+ removeRecursive(entries[i].filePath());
+ else
+ dir.remove(entries[i].fileName());
+ QDir().rmdir(dirname);
+}
+
class EventSpy : public QObject, public QList<QEvent::Type>
{
Q_OBJECT
@@ -145,10 +157,16 @@ private slots:
#ifdef Q_OS_MAC
void macCopyUnicodeToClipboard();
#endif
-
+
private:
QWebView* m_view;
QWebPage* m_page;
+ QString tmpDirPath() const
+ {
+ static QString tmpd = QDir::tempPath() + "/tst_qwebpage-"
+ + QDateTime::currentDateTime().toString(QLatin1String("yyyyMMddhhmmss"));
+ return tmpd;
+ }
};
tst_QWebPage::tst_QWebPage()
@@ -172,9 +190,7 @@ void tst_QWebPage::cleanup()
void tst_QWebPage::cleanupFiles()
{
- QFile::remove("Databases.db");
- QDir::current().rmdir("http_www.myexample.com_0");
- QFile::remove("http_www.myexample.com_0.localstorage");
+ removeRecursive(tmpDirPath());
}
void tst_QWebPage::initTestCase()
@@ -553,7 +569,7 @@ void tst_QWebPage::contextMenuCrash()
void tst_QWebPage::database()
{
- QString path = QDir::currentPath();
+ QString path = tmpDirPath();
m_page->settings()->setOfflineStoragePath(path);
QVERIFY(m_page->settings()->offlineStoragePath() == path);
@@ -907,7 +923,7 @@ void tst_QWebPage::createViewlessPlugin()
void tst_QWebPage::multiplePageGroupsAndLocalStorage()
{
- QDir dir(QDir::currentPath());
+ QDir dir(tmpDirPath());
dir.mkdir("path1");
dir.mkdir("path2");
@@ -915,10 +931,10 @@ void tst_QWebPage::multiplePageGroupsAndLocalStorage()
QWebView view2;
view1.page()->settings()->setAttribute(QWebSettings::LocalStorageEnabled, true);
- view1.page()->settings()->setLocalStoragePath(QDir::toNativeSeparators(QDir::currentPath() + "/path1"));
+ view1.page()->settings()->setLocalStoragePath(QDir::toNativeSeparators(tmpDirPath() + "/path1"));
DumpRenderTreeSupportQt::webPageSetGroupName(view1.page(), "group1");
view2.page()->settings()->setAttribute(QWebSettings::LocalStorageEnabled, true);
- view2.page()->settings()->setLocalStoragePath(QDir::toNativeSeparators(QDir::currentPath() + "/path2"));
+ view2.page()->settings()->setLocalStoragePath(QDir::toNativeSeparators(tmpDirPath() + "/path2"));
DumpRenderTreeSupportQt::webPageSetGroupName(view2.page(), "group2");
QCOMPARE(DumpRenderTreeSupportQt::webPageGroupName(view1.page()), QString("group1"));
QCOMPARE(DumpRenderTreeSupportQt::webPageGroupName(view2.page()), QString("group2"));
@@ -941,8 +957,8 @@ void tst_QWebPage::multiplePageGroupsAndLocalStorage()
QTest::qWait(1000);
- QFile::remove(QDir::toNativeSeparators(QDir::currentPath() + "/path1/http_www.myexample.com_0.localstorage"));
- QFile::remove(QDir::toNativeSeparators(QDir::currentPath() + "/path2/http_www.myexample.com_0.localstorage"));
+ QFile::remove(QDir::toNativeSeparators(tmpDirPath() + "/path1/http_www.myexample.com_0.localstorage"));
+ QFile::remove(QDir::toNativeSeparators(tmpDirPath() + "/path2/http_www.myexample.com_0.localstorage"));
dir.rmdir(QDir::toNativeSeparators("./path1"));
dir.rmdir(QDir::toNativeSeparators("./path2"));
}
@@ -2323,8 +2339,10 @@ void tst_QWebPage::testOptionalJSObjects()
QCOMPARE(testFlag(webPage2, QWebSettings::OfflineWebApplicationCacheEnabled, "applicationCache", false), true);
QCOMPARE(testFlag(webPage1, QWebSettings::LocalStorageEnabled, "localStorage", false), false);
+ QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=61045", Continue);
QCOMPARE(testFlag(webPage2, QWebSettings::LocalStorageEnabled, "localStorage", true), true);
QCOMPARE(testFlag(webPage1, QWebSettings::LocalStorageEnabled, "localStorage", false), false);
+ QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=61045", Continue);
QCOMPARE(testFlag(webPage2, QWebSettings::LocalStorageEnabled, "localStorage", false), true);
}
diff --git a/src/3rdparty/webkit/Tools/QtTestBrowser/useragentlist.txt b/src/3rdparty/webkit/Tools/QtTestBrowser/useragentlist.txt
index 0b29d40..decf104 100644
--- a/src/3rdparty/webkit/Tools/QtTestBrowser/useragentlist.txt
+++ b/src/3rdparty/webkit/Tools/QtTestBrowser/useragentlist.txt
@@ -1,11 +1,13 @@
-Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/533.3 (KHTML, like Gecko) QtTestBrowser/0.1 Safari/533.3
-Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0; en-GB) AppleWebKit/533.3 (KHTML, like Gecko) QtTestBrowser/0.1 Mobile Safari/533.3
-Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.2 (KHTML, like Gecko) Safari/125.8
-Mozilla/5.0 (Linux; U; Android 1.1; en-gb; dream) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2
-Mozilla/5.0 (Unknown; like Android 2.2; U; Intel Mac OS X 10_6; en-gb) AppleWebKit/533.3 (KHTML, like Gecko) Version/4.0.3 Mobile Safari/533.3
-Mozilla/5.0 (iPhone; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10
+Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) QtTestBrowser/0.1 Safari/535.1
+Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0) AppleWebKit/535.1 (KHTML, like Gecko) QtTestBrowser/0.1 Mobile Safari/535.1
+Mozilla/5.0 (Macintosh; PPC Mac OS X) AppleWebKit/125.2 (KHTML, like Gecko) Safari/125.8
+Mozilla/5.0 (Unknown; like Android 2.2; Intel Mac OS X 10_6) AppleWebKit/533.3 (KHTML, like Gecko) Version/4.0.3 Mobile Safari/533.3
+Mozilla/5.0 (iPhone; CPU OS 3_2 like Mac OS X) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10
Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7
-Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10
-Opera/9.25 (Windows NT 6.0; U; en)
-Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Nokia5800d-1b/20.2.014; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413
+Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10
+Opera/9.80 (Windows NT 6.0; U; en) Presto/2.8.99 Version/11.10
+Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Nokia5800d-1b/20.2.014; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
+Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
+Mozilla/5.0 (Windows; Windows NT 5.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24
+Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION
index 88f6f3e..4f4c155 100644
--- a/src/3rdparty/webkit/VERSION
+++ b/src/3rdparty/webkit/VERSION
@@ -4,4 +4,4 @@ This is a snapshot of the Qt port of WebKit from
and has the sha1 checksum
- 9b4474ac44ee2f3311b435bd45630f5c2c357217
+ efbf910ad7c49e8cdf81411b4ac0abeea0efd8f8