diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2009-11-16 22:31:07 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-11-16 22:31:07 +0100 |
commit | 8586237d9400c5669e62e97bfb00b4a2579c7646 (patch) | |
tree | 8705883bc7f1423a75f31f1dbacc98e5de2bbc90 /src/3rdparty/webkit/WebKit/qt/WebCoreSupport | |
parent | 45ed11461d479172d6a92e77b6e1a09916ca4556 (diff) | |
download | qt4-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.cpp | 47 |
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 |