From eeaea3e7e3697c78567ad6ad51b6e30ccc712ee8 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 29 Apr 2010 16:41:36 +0200 Subject: Updated WebKit to 1a40220a82197023c1b1ac6eff027be6dd3168d3 Changes integrated: || || [Qt] QWebPage::setViewportSize() forces two layout of the render tree || || || [Qt] Loading of large page can take up to 10 seconds || --- src/3rdparty/webkit/.tag | 2 +- src/3rdparty/webkit/VERSION | 2 +- src/3rdparty/webkit/WebCore/ChangeLog | 14 ++++++++++++++ .../webkit/WebCore/platform/graphics/qt/FontQt.cpp | 8 +------- src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp | 1 - src/3rdparty/webkit/WebKit/qt/ChangeLog | 14 ++++++++++++++ 6 files changed, 31 insertions(+), 10 deletions(-) diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag index 902d75c..95bb920 100644 --- a/src/3rdparty/webkit/.tag +++ b/src/3rdparty/webkit/.tag @@ -1 +1 @@ -1a40220a82197023c1b1ac6eff027be6dd3168d3 +2c346f58ae70470d88dcd856bfe59b04a144b65a diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION index 578be95..64d55a9 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 - 2992802f35fd47e32bb94a4b1f48cce7ec7fda9d + 1a40220a82197023c1b1ac6eff027be6dd3168d3 diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog index 35e48a7..7c340fd 100644 --- a/src/3rdparty/webkit/WebCore/ChangeLog +++ b/src/3rdparty/webkit/WebCore/ChangeLog @@ -1,5 +1,19 @@ 2010-04-29 Simon Hausmann + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Speed up text layouting + https://bugs.webkit.org/show_bug.cgi?id=31719 + + Use QFontMetrics::width() for the text width calculation instead + of QTextLayout. This avoids expensive bearing calculations and the + line breaking code. + + * platform/graphics/qt/FontQt.cpp: + (WebCore::Font::floatWidthForComplexText): + +2010-04-29 Simon Hausmann + Reviewed by Tor Arne Vestbø. [Qt] REGRESSION(r57638): tst_qwebframe::objectDeleted() fails diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp index 8c6d600..1e92dcc 100644 --- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp @@ -180,13 +180,7 @@ float Font::floatWidthForComplexText(const TextRun& run, HashSet= QT_VERSION_CHECK(4, 7, 0) - int w = int(line.horizontalAdvance()); -#else - int w = int(line.naturalTextWidth()); -#endif + int w = QFontMetrics(font()).width(string); // WebKit expects us to ignore word spacing on the first character (as opposed to what Qt does) if (treatAsSpace(run[0])) w -= m_wordSpacing; diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp index 7bde2f6..f28524a 100644 --- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp +++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp @@ -2208,7 +2208,6 @@ void QWebPage::setViewportSize(const QSize &size) const if (frame->d->frame && frame->d->frame->view()) { WebCore::FrameView* view = frame->d->frame->view(); view->setFrameRect(QRect(QPoint(0, 0), size)); - view->forceLayout(); view->adjustViewSize(); } } diff --git a/src/3rdparty/webkit/WebKit/qt/ChangeLog b/src/3rdparty/webkit/WebKit/qt/ChangeLog index defb2a6..8594f09 100644 --- a/src/3rdparty/webkit/WebKit/qt/ChangeLog +++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog @@ -1,3 +1,17 @@ +2010-04-29 Andreas Kling + + Reviewed by Simon Hausmann. + + Remove unnecessary call to FrameView::forceLayout() in setViewportSize() + This prevents a double relayout on resize. + + https://bugs.webkit.org/show_bug.cgi?id=38179 + + Thanks to Nate Whetsell for spotting this. + + * Api/qwebpage.cpp: + (QWebPage::setViewportSize): + 2010-04-29 Simon Hausmann Reviewed by Tor Arne Vestbø. -- cgit v0.12