summaryrefslogtreecommitdiff
path: root/src/3rdparty/webkit/WebKit/qt/WebCoreSupport
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2009-11-16 22:31:07 +0100
committerSimon Hausmann <simon.hausmann@nokia.com>2009-11-16 22:31:07 +0100
commit8586237d9400c5669e62e97bfb00b4a2579c7646 (patch)
tree8705883bc7f1423a75f31f1dbacc98e5de2bbc90 /src/3rdparty/webkit/WebKit/qt/WebCoreSupport
parent45ed11461d479172d6a92e77b6e1a09916ca4556 (diff)
downloadqt4-tools-8586237d9400c5669e62e97bfb00b4a2579c7646.tar.gz
Updated WebKit from /home/shausman/src/webkit/trunk to qtwebkit/qtwebkit-4.6 ( ca38203fba92cf48d59328403f64036907fd3433 )
Changes in WebKit/qt since the last update: ++ b/WebKit/qt/ChangeLog 2009-11-16 Simon Hausmann <simon.hausmann@nokia.com> Reviewed by Kenneth Rohde Christiansen. API documentation fixes. * Api/qgraphicswebview.cpp: Removed duplicate docs. * Api/qwebelement.cpp: Added missing docs. * Api/qwebsettings.cpp: Ditto. 2009-11-14 Antonio Gomes <tonikitoo@webkit.org> Reviewed by Antti Koivisto. [Qt] Broken back/forward after using ErrorPageExtension to set error page https://bugs.webkit.org/show_bug.cgi?id=30573 Implemented autotests for covering the back/forward reset problem involving error pages. * tests/qwebpage/tst_qwebpage.cpp: (tst_QWebPage::errorPageExtension): 2009-11-16 Holger Hans Peter Freyther <zecke@selfish.org> Reviewed by NOBODY (OOPS!). [Qt] Do not show the QWidget when the WebCore::Widget is hidden https://bugs.webkit.org/show_bug.cgi?id=31203 The clipping code was making a QWidget visible even if the WebCore::Widget was hidden. Fix the bug by calling setVisible only if the WebCore::Widget is shown. * WebCoreSupport/FrameLoaderClientQt.cpp: (WebCore::QtPluginWidget::show): Override WebCore::Widget (WebCore::QtPluginWidget::hide): Override WebCore::Widget (WebCore::QtPluginWidget::handleVisibility): New method to call setVisible when we are visible (FrameLoaderClientQt::createPlugin): Hide the QWidget by default 2009-11-09 Benjamin Poulain <benjamin.poulain@nokia.com> Reviewed by Kenneth Rohde Christiansen. https://bugs.webkit.org/show_bug.cgi?id=30628 Add an API to get all the attributes from a QWebElement. * Api/qwebelement.cpp: (QWebElement::attributesName): * Api/qwebelement.h: * tests/qwebelement/tst_qwebelement.cpp: (tst_QWebElement::listAttributes): 2009-11-13 Andras Becsi <becsi.andras@stud.u-szeged.hu> Reviewed by Kenneth Rohde Christiansen. [Qt] Enable Page Cache if setMaximumPagesInCache needs it. This fixes https://bugs.webkit.org/show_bug.cgi?id=31266. * Api/qwebsettings.cpp: (QWebSettingsPrivate::apply): (QWebSettings::setMaximumPagesInCache): 2009-11-13 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> Reviewed by Simon Hausmann. Update documentation for the Qt API * Api/qgraphicswebview.cpp: * Api/qwebelement.cpp: * Api/qwebframe.cpp: * Api/qwebsettings.cpp: * Api/qwebview.cpp: 2009-11-13 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> Reviewed by Simon Hausmann. Use correct install-path when running qdoc3 * docs/docs.pri: 2009-11-12 Antonio Gomes <tonikitoo@webkit.org> Reviewed by Jan Alonzo. [Qt] Various doc fixes https://bugs.webkit.org/show_bug.cgi?id=31358 QWebPage's constructor docs are mentioning "QWebView": "Constructs an empty QWebView with parent". * Api/qwebpage.cpp: 2009-11-11 Antonio Gomes <tonikitoo@webkit.org> Reviewed by Kenneth Christiansen. [Qt] Various doc fixes https://bugs.webkit.org/show_bug.cgi?id=31358 Fixed wrong documentation: item's dimensions do fit to Web page content by default. Kenneth agreed to land this as a followup patch to the just landed documentation patch. * Api/qgraphicswebview.cpp: 2009-11-11 David Boddie <dboddie@trolltech.com> Reviewed by Kenneth Christiansen. [Qt] Various doc fixes https://bugs.webkit.org/show_bug.cgi?id=31323 Fixed and synchronized QWebView related documentation. * Api/qgraphicswebview.cpp: * Api/qwebview.cpp: 2009-11-09 Laszlo Gombos <laszlo.1.gombos@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] Few classes have virtual functions but non-virtual destructor https://bugs.webkit.org/show_bug.cgi?id=31269 * Api/qgraphicswebview.cpp: (QGraphicsWebViewPrivate::~QGraphicsWebViewPrivate): Add virtual destructor. 2009-10-30 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> Reviewed by NOBODY (OOPS!). [Qt] Use the default timeout interval for JS as the HTML tokenizer delay for setHtml() This ensures that long-running JavaScript (for example due to a modal alert() dialog), will not trigger a deferred load after only 500ms (the default tokenizer delay) while still giving a reasonable timeout (10 seconds) to prevent deadlock. https://bugs.webkit.org/show_bug.cgi?id=29381 * Api/qwebframe.cpp: Document the behaviour * WebCoreSupport/FrameLoaderClientQt.cpp: set the custom tokenizer delay for substitute loads * tests/qwebframe/tst_qwebframe.cpp: Add test 2009-11-13 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] Fix initial QWebView focus behavior. focusController->setFocused(true) was not always called. https://bugs.webkit.org/show_bug.cgi?id=31466 * Api/qwebpage.cpp: (QWebPagePrivate::focusInEvent): 2009-11-12 Benjamin Poulain <benjamin.poulain@nokia.com> Reviewed by Kenneth Rohde Christiansen. Custom printing shrink factors https://bugs.webkit.org/show_bug.cgi?id=29042 This reverts commit r49769. The public API for this needs to be reviewed before its inclusion in Qt. * Api/qwebsettings.cpp: (QWebSettingsPrivate::apply): (QWebSettings::QWebSettings): * Api/qwebsettings.h: Update documentation for the Qt API * Api/qgraphicswebview.cpp: * Api/qwebelement.cpp: * Api/qwebframe.cpp: * Api/qwebsettings.cpp: * Api/qwebview.cpp: 2009-11-13 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> Reviewed by Simon Hausmann.
Diffstat (limited to 'src/3rdparty/webkit/WebKit/qt/WebCoreSupport')
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp47
1 files changed, 44 insertions, 3 deletions
diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
index 97fb3a8860..9e13339363 100644
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
@@ -37,6 +37,7 @@
#include "FrameTree.h"
#include "FrameView.h"
#include "DocumentLoader.h"
+#include "JSDOMWindowBase.h"
#include "MIMETypeRegistry.h"
#include "ResourceResponse.h"
#include "Page.h"
@@ -770,8 +771,16 @@ bool FrameLoaderClientQt::shouldFallBack(const WebCore::ResourceError&)
WTF::PassRefPtr<WebCore::DocumentLoader> FrameLoaderClientQt::createDocumentLoader(const WebCore::ResourceRequest& request, const SubstituteData& substituteData)
{
RefPtr<DocumentLoader> loader = DocumentLoader::create(request, substituteData);
- if (substituteData.isValid())
+ if (substituteData.isValid()) {
loader->setDeferMainResourceDataLoad(false);
+ // Use the default timeout interval for JS as the HTML tokenizer delay. This ensures
+ // that long-running JavaScript will still allow setHtml() to be synchronous, while
+ // still giving a reasonable timeout to prevent deadlock.
+ double delay = JSDOMWindowBase::commonJSGlobalData()->timeoutChecker.timeoutInterval() / 1000.0f;
+ m_frame->page()->setCustomHTMLTokenizerTimeDelay(delay);
+ } else {
+ m_frame->page()->setCustomHTMLTokenizerTimeDelay(-1);
+ }
return loader.release();
}
@@ -1088,7 +1097,11 @@ const unsigned numqStyleSheetProperties = sizeof(qstyleSheetProperties) / sizeof
class QtPluginWidget: public Widget
{
public:
- QtPluginWidget(QWidget* w = 0): Widget(w) {}
+ QtPluginWidget(QWidget* w = 0)
+ : Widget(w)
+ , m_visible(false)
+ {}
+
~QtPluginWidget()
{
if (platformWidget())
@@ -1119,10 +1132,37 @@ public:
QRegion clipRegion = QRegion(clipRect);
platformWidget()->setMask(clipRegion);
+ handleVisibility();
+ }
+
+ virtual void hide()
+ {
+ m_visible = false;
+ Widget::hide();
+ }
+
+ virtual void show()
+ {
+ m_visible = true;
+ if (!platformWidget())
+ return;
+
+ handleVisibility();
+ }
+
+private:
+ void handleVisibility()
+ {
+ if (!m_visible)
+ return;
+
// if setMask is set with an empty QRegion, no clipping will
// be performed, so in that case we hide the platformWidget
- platformWidget()->setVisible(!clipRegion.isEmpty());
+ QRegion mask = platformWidget()->mask();
+ platformWidget()->setVisible(!mask.isEmpty());
}
+
+ bool m_visible;
};
#if QT_VERSION >= 0x040600
@@ -1238,6 +1278,7 @@ PassRefPtr<Widget> FrameLoaderClientQt::createPlugin(const IntSize& pluginSize,
parentWidget = qobject_cast<QWidget*>(m_webFrame->page()->d->client->pluginParent());
if (parentWidget) // don't reparent to nothing (i.e. keep whatever parent QWebPage::createPlugin() chose.
widget->setParent(parentWidget);
+ widget->hide();
RefPtr<QtPluginWidget> w = adoptRef(new QtPluginWidget());
w->setPlatformWidget(widget);
// Make sure it's invisible until properly placed into the layout