Hello community,

here is the log from the commit of package messagelib for openSUSE:Factory 
checked in at 2016-10-18 10:14:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/messagelib (Old)
 and      /work/SRC/openSUSE:Factory/.messagelib.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "messagelib"

Changes:
--------
--- /work/SRC/openSUSE:Factory/messagelib/messagelib.changes    2016-09-14 
23:05:20.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.messagelib.new/messagelib.changes       
2016-10-18 10:14:22.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Oct 11 20:49:01 UTC 2016 - [email protected]
+
+- KDE Applications 16.08.2
+https://www.kde.org/announcements/announce-applications-16.08.2.php
+
+-------------------------------------------------------------------

Old:
----
  messagelib-16.08.1.tar.xz

New:
----
  messagelib-16.08.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ messagelib.spec ++++++
--- /var/tmp/diff_new_pack.H3Vume/_old  2016-10-18 10:14:24.000000000 +0200
+++ /var/tmp/diff_new_pack.H3Vume/_new  2016-10-18 10:14:24.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           messagelib
-Version:        16.08.1
+Version:        16.08.2
 Release:        0
 Summary:        Base package of kdepim
 License:        GPL-2.0 and GPL-3.0 and LGPL-2.1+

++++++ messagelib-16.08.1.tar.xz -> messagelib-16.08.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/messagelib-16.08.1/CMakeLists.txt 
new/messagelib-16.08.2/CMakeLists.txt
--- old/messagelib-16.08.1/CMakeLists.txt       2016-09-03 13:28:12.000000000 
+0200
+++ new/messagelib-16.08.2/CMakeLists.txt       2016-10-06 09:00:37.000000000 
+0200
@@ -18,28 +18,28 @@
 include(ECMQtDeclareLoggingCategory)
 include(ECMAddTests)
 
-set(PIM_VERSION "5.3.1")
+set(PIM_VERSION "5.3.2")
 
 set(MESSAGELIB_LIB_VERSION ${PIM_VERSION})
-set(AKONADIMIME_LIB_VERSION "5.3.1")
+set(AKONADIMIME_LIB_VERSION "5.3.2")
 
 set(QT_REQUIRED_VERSION "5.6.0")
 
-set(AKONADI_VERSION "5.3.1")
-set(AKONADINOTES_LIB_VERSION "5.3.1")
-set(GRANTLEETHEME_LIB_VERSION "5.3.1")
-set(GRAVATAR_LIB_VERSION "5.3.1")
-set(IDENTITYMANAGEMENT_LIB_VERSION "5.3.1")
-set(KCONTACTS_LIB_VERSION "5.3.1")
-set(KDEPIM_APPS_LIB_VERSION "5.3.1")
-set(KLDAP_LIB_VERSION "5.3.1")
-set(KMAILTRANSPORT_LIB_VERSION "5.3.1")
-set(KMBOX_LIB_VERSION "5.3.1")
-set(KMIME_LIB_VERSION "5.3.1")
-set(KPIMTEXTEDIT_LIB_VERSION "5.3.1")
-set(LIBKDEPIM_LIB_VERSION "5.3.1")
-set(LIBKLEO_LIB_VERSION "5.3.1")
-set(PIMCOMMON_LIB_VERSION "5.3.1")
+set(AKONADI_VERSION "5.3.2")
+set(AKONADINOTES_LIB_VERSION "5.3.2")
+set(GRANTLEETHEME_LIB_VERSION "5.3.2")
+set(GRAVATAR_LIB_VERSION "5.3.2")
+set(IDENTITYMANAGEMENT_LIB_VERSION "5.3.2")
+set(KCONTACTS_LIB_VERSION "5.3.2")
+set(KDEPIM_APPS_LIB_VERSION "5.3.2")
+set(KLDAP_LIB_VERSION "5.3.2")
+set(KMAILTRANSPORT_LIB_VERSION "5.3.2")
+set(KMBOX_LIB_VERSION "5.3.2")
+set(KMIME_LIB_VERSION "5.3.2")
+set(KPIMTEXTEDIT_LIB_VERSION "5.3.2")
+set(LIBKDEPIM_LIB_VERSION "5.3.2")
+set(LIBKLEO_LIB_VERSION "5.3.2")
+set(PIMCOMMON_LIB_VERSION "5.3.2")
 
 find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Widgets Test Network 
PrintSupport WebEngine WebEngineWidgets WebKitWidgets)
 
@@ -82,7 +82,7 @@
 find_package(KF5PimTextEdit ${KPIMTEXTEDIT_LIB_VERSION} CONFIG REQUIRED)
 find_package(KF5SendLater ${KDEPIM_APPS_LIB_VERSION} CONFIG REQUIRED)
 
-find_package(KF5AkonadiSearch "5.3.1" CONFIG REQUIRED)
+find_package(KF5AkonadiSearch "5.3.2" CONFIG REQUIRED)
 set_package_properties(KF5AkonadiSearch PROPERTIES DESCRIPTION "The Akonadi 
Search libraries" URL "http://www.kde.org"; TYPE REQUIRED PURPOSE "Provides 
search capabilities in KMail and Akonadi")
 
 option(KDEPIM_ENTERPRISE_BUILD "Enable features specific to the enterprise 
branch, which are normally disabled. Also, it disables many components not 
needed for Kontact such as the Kolab client." FALSE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messagecomposer/src/recipient/recipientseditor.cpp 
new/messagelib-16.08.2/messagecomposer/src/recipient/recipientseditor.cpp
--- old/messagelib-16.08.1/messagecomposer/src/recipient/recipientseditor.cpp   
2016-09-03 13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/messagecomposer/src/recipient/recipientseditor.cpp   
2016-10-06 09:00:37.000000000 +0200
@@ -241,7 +241,7 @@
 
     if (count > 0) {
         if (count == 1) {
-            RecipientLineNG *last_rec = qobject_cast< RecipientLineNG * 
>(lines().last());
+            RecipientLineNG *last_rec = qobject_cast< RecipientLineNG * 
>(lines().first());
             if (last_rec && last_rec->recipientType() == Recipient::Bcc) {
                 rec->setRecipientType(Recipient::To);
             } else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/messagelib-16.08.1/messagelist/src/core/model.cpp 
new/messagelib-16.08.2/messagelist/src/core/model.cpp
--- old/messagelib-16.08.1/messagelist/src/core/model.cpp       2016-09-03 
13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/messagelist/src/core/model.cpp       2016-10-06 
09:00:37.000000000 +0200
@@ -2636,7 +2636,7 @@
             } else {
                 if (parentId > 0) {
                     // In second pass we have all available Items in 
mThreadingCache already. If
-                    // mThreadingCache.parentForItem() returns null, but sets 
knownParent to true then
+                    // mThreadingCache.parentForItem() returns null, but 
returns valid parentId then
                     // the Item was removed from Akonadi and our threading 
cache is out-of-date.
                     mThreadingCache.expireParent(mi);
                     mparent = findMessageParent(mi);
@@ -3043,6 +3043,10 @@
             }
         }
 
+        // Remove the message from threading cache before we start moving up 
the
+        // children, so that they don't get mislead by the cache
+        mThreadingCache.expireParent(dyingMessage);
+
         if (dyingMessage->parent()) {
             // Handle saving the current selection: if this item was the 
current before the step
             // then zero it out. We have killed it and it's OK for the current 
item to change.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messagelist/src/core/threadingcache.h 
new/messagelib-16.08.2/messagelist/src/core/threadingcache.h
--- old/messagelib-16.08.1/messagelist/src/core/threadingcache.h        
2016-09-03 13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/messagelist/src/core/threadingcache.h        
2016-10-06 09:00:37.000000000 +0200
@@ -76,6 +76,7 @@
     {
         if (mEnabled) {
             mParentCache.remove(item->itemId());
+            mItemCache.remove(item->itemId());
         }
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/header/grantleeheaderformatter.cpp 
new/messagelib-16.08.2/messageviewer/src/header/grantleeheaderformatter.cpp
--- old/messagelib-16.08.1/messageviewer/src/header/grantleeheaderformatter.cpp 
2016-09-03 13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/messageviewer/src/header/grantleeheaderformatter.cpp 
2016-10-06 09:00:37.000000000 +0200
@@ -112,7 +112,12 @@
     headerObject.insert(QStringLiteral("subjectDir"), 
d->headerStyleUtil.subjectDirectionString(message));
 
     headerObject.insert(QStringLiteral("subjecti18n"), i18n("Subject:"));
-    headerObject.insert(QStringLiteral("subject"), 
d->headerStyleUtil.subjectString(message));
+    KTextToHTML::Options flags = KTextToHTML::PreserveSpaces;
+    if (MessageViewer::MessageViewerSettings::self()->showEmoticons()) {
+        flags |= KTextToHTML::ReplaceSmileys;
+    }
+
+    headerObject.insert(QStringLiteral("subject"), 
d->headerStyleUtil.subjectString(message, flags));
 
     if (message->to(false)) {
         headerObject.insert(QStringLiteral("toi18n"), i18n("To:"));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/header/plainheaderstyle.cpp 
new/messagelib-16.08.2/messageviewer/src/header/plainheaderstyle.cpp
--- old/messagelib-16.08.1/messageviewer/src/header/plainheaderstyle.cpp        
2016-09-03 13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/messageviewer/src/header/plainheaderstyle.cpp        
2016-10-06 09:00:37.000000000 +0200
@@ -18,7 +18,7 @@
 */
 
 #include "plainheaderstyle.h"
-
+#include "messageviewer/messageviewersettings.h"
 #include "header/headerstyle_util.h"
 
 #include "header/headerstrategy.h"
@@ -108,9 +108,16 @@
     headerStr = QStringLiteral("<div class=\"header\" dir=\"%1\">").arg(dir);
 
     //case HdrLong:
-    if (strategy->showHeader(QStringLiteral("subject")))
+    if (strategy->showHeader(QStringLiteral("subject"))) {
+        KTextToHTML::Options flags = KTextToHTML::PreserveSpaces;
+        if (MessageViewer::MessageViewerSettings::self()->showEmoticons()) {
+            flags |= KTextToHTML::ReplaceSmileys;
+        }
+
+
         headerStr += QStringLiteral("<div dir=\"%1\"><b 
style=\"font-size:130%\">").arg(subjectDir) +
-                     d->mHeaderStyleUtil.subjectString(message) + 
QLatin1String("</b></div>\n");
+                     d->mHeaderStyleUtil.subjectString(message, flags) + 
QLatin1String("</b></div>\n");
+    }
 
     if (strategy->showHeader(QStringLiteral("date"))) {
         headerStr.append(i18n("Date: ") + 
d->mHeaderStyleUtil.strToHtml(d->mHeaderStyleUtil.dateString(message, 
isPrinting(), /* short = */ MessageViewer::HeaderStyleUtil::CustomDate)) + 
QLatin1String("<br/>\n"));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/htmlwriter/autotests/CMakeLists.txt 
new/messagelib-16.08.2/messageviewer/src/htmlwriter/autotests/CMakeLists.txt
--- 
old/messagelib-16.08.1/messageviewer/src/htmlwriter/autotests/CMakeLists.txt    
    2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/messageviewer/src/htmlwriter/autotests/CMakeLists.txt    
    2016-10-06 09:00:37.000000000 +0200
@@ -3,3 +3,13 @@
     NAME_PREFIX "messageviewer-webengine-"
     LINK_LIBRARIES Qt5::Test Qt5::Core
     )
+
+set(webengineparthtmlwritertestdebug_SRCS)
+ecm_qt_declare_logging_category(webengineparthtmlwritertestdebug_SRCS HEADER 
messageviewer_debug.h IDENTIFIER MESSAGEVIEWER_LOG CATEGORY_NAME 
org.kde.pim.messageviewer)
+
+
+ecm_add_test(webengineparthtmlwritertest.cpp  ../webengineembedpart.cpp 
../webengineparthtmlwriter.cpp ${webengineparthtmlwritertestdebug_SRCS}
+    TEST_NAME webengineparthtmlwritertest
+    NAME_PREFIX "messageviewer-webengine-"
+    LINK_LIBRARIES Qt5::Test Qt5::Core KF5::MimeTreeParser KF5::MessageViewer 
Qt5::WebKitWidgets KF5::WebEngineViewer
+    )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/htmlwriter/autotests/webengineparthtmlwritertest.cpp
 
new/messagelib-16.08.2/messageviewer/src/htmlwriter/autotests/webengineparthtmlwritertest.cpp
--- 
old/messagelib-16.08.1/messageviewer/src/htmlwriter/autotests/webengineparthtmlwritertest.cpp
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/messagelib-16.08.2/messageviewer/src/htmlwriter/autotests/webengineparthtmlwritertest.cpp
       2016-10-06 09:00:37.000000000 +0200
@@ -0,0 +1,74 @@
+/*
+  Copyright (c) 2016 Montel Laurent <[email protected]>
+
+  This program is free software; you can redistribute it and/or modify it
+  under the terms of the GNU General Public License, version 2, as
+  published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  General Public License for more details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, write to the Free Software Foundation, Inc.,
+  51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#include "webengineparthtmlwritertest.h"
+#include "../webengineparthtmlwriter.h"
+
+#include <QTest>
+
+WebEnginePartHtmlWriterTest::WebEnginePartHtmlWriterTest(QObject *parent)
+    : QObject(parent)
+{
+
+}
+
+WebEnginePartHtmlWriterTest::~WebEnginePartHtmlWriterTest()
+{
+
+}
+
+void WebEnginePartHtmlWriterTest::removeScriptInHtml_data()
+{
+    QTest::addColumn<QString>("input");
+    QTest::addColumn<QString>("output");
+    QTest::newRow("noscript") << QStringLiteral("<a>boo</a>") << 
QStringLiteral("<a>boo</a>");
+    QTest::newRow("onescript") << 
QStringLiteral("<a>boo<script>alert(1)</script></a>") << 
QStringLiteral("<a>boo</a>");
+    QTest::newRow("onescriptwithattribute") << QStringLiteral("<a>boo<script 
type=\"foo\">alert(1)</script></a>") << QStringLiteral("<a>boo</a>");
+    QTest::newRow("severalscriptwithattribute") << 
QStringLiteral("<p>foo</p><script>a</script><a>boo<script 
type=\"foo\">alert(1)</script></a>") << QStringLiteral("<p>foo</p><a>boo</a>");
+    QTest::newRow("scriptwithspace") << QStringLiteral("<a>boo<script 
type=\"foo\" >alert(1)</script ></a>") << QStringLiteral("<a>boo</a>");
+    QTest::newRow("scriptwithremoveaccess") << QStringLiteral("<a>boo<script 
src=\"http://foo\"/></a>") << QStringLiteral("<a>boo</a>");
+    QTest::newRow("empty") << QString() << QString();
+
+    //MultiLine
+    QTest::newRow("multiline") << 
QStringLiteral("<a>boo<script>\nalert(1)</script></a>") << 
QStringLiteral("<a>boo</a>");
+    QTest::newRow("multiline-scriptwithspace") << 
QStringLiteral("<a>boo<script type=\"foo\" >\nalert(1)\n</script ></a>") << 
QStringLiteral("<a>boo</a>");
+    QTest::newRow("multiline-severalscriptwithattribute") << 
QStringLiteral("<p>foo</p><script>\na\n</script><a>boo<script 
type=\"foo\">\nalert(1)</script></a>") << 
QStringLiteral("<p>foo</p><a>boo</a>");
+    QTest::newRow("multiline-scriptwithspace") << 
QStringLiteral("<a>boo<script type=\"foo\" >\nalert(1)\nbla\nsl</script ></a>") 
<< QStringLiteral("<a>boo</a>");
+
+    //Insensitive case
+    QTest::newRow("onescript-insensitive") << 
QStringLiteral("<a>boo<SCRIPT>alert(1)</script></a>") << 
QStringLiteral("<a>boo</a>");
+    QTest::newRow("onescriptwithattribute-insensitive") << 
QStringLiteral("<a>boo<SCRIPt type=\"foo\">alert(1)</SCRIPT></a>") << 
QStringLiteral("<a>boo</a>");
+    QTest::newRow("severalscriptwithattribute-insensitive") << 
QStringLiteral("<p>foo</p><script>a</SCRIPT><a>boo<SCRIPT 
type=\"foo\">alert(1)</script></a>") << QStringLiteral("<p>foo</p><a>boo</a>");
+    QTest::newRow("scriptwithspace-insensitive") << 
QStringLiteral("<a>boo<SCRIPT type=\"foo\" >alert(1)</SCRIPT ></a>") << 
QStringLiteral("<a>boo</a>");
+    QTest::newRow("scriptwithremoveaccess-insensitive") << 
QStringLiteral("<a>boo<SCRIPT src=\"http://foo\"/></a>") << 
QStringLiteral("<a>boo</a>");
+
+
+    //MultiLine insensitive
+    QTest::newRow("multiline-insensitive") << 
QStringLiteral("<a>boo<sCript>\nalert(1)</Script></a>") << 
QStringLiteral("<a>boo</a>");
+    QTest::newRow("multiline-scriptwithspace-insensitive") << 
QStringLiteral("<a>boo<SCRipT type=\"foo\" >\nalert(1)\n</script ></a>") << 
QStringLiteral("<a>boo</a>");
+    QTest::newRow("multiline-severalscriptwithattribute-insensitive") << 
QStringLiteral("<p>foo</p><SCRIPT>\na\n</script><a>boo<script 
type=\"foo\">\nalert(1)</script></a>") << 
QStringLiteral("<p>foo</p><a>boo</a>");
+    QTest::newRow("multiline-scriptwithspace-insensitive") << 
QStringLiteral("<a>boo<SCRIPT type=\"foo\" >\nalert(1)\nbla\nsl</script ></a>") 
<< QStringLiteral("<a>boo</a>");
+}
+
+void WebEnginePartHtmlWriterTest::removeScriptInHtml()
+{
+    QFETCH (QString, input);
+    QFETCH (QString, output);
+    QCOMPARE(MessageViewer::WebEnginePartHtmlWriter::removeJscripts(input), 
output);
+}
+
+QTEST_MAIN(WebEnginePartHtmlWriterTest)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/htmlwriter/autotests/webengineparthtmlwritertest.h
 
new/messagelib-16.08.2/messageviewer/src/htmlwriter/autotests/webengineparthtmlwritertest.h
--- 
old/messagelib-16.08.1/messageviewer/src/htmlwriter/autotests/webengineparthtmlwritertest.h
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/messagelib-16.08.2/messageviewer/src/htmlwriter/autotests/webengineparthtmlwritertest.h
 2016-10-06 09:00:37.000000000 +0200
@@ -0,0 +1,34 @@
+/*
+  Copyright (c) 2016 Montel Laurent <[email protected]>
+
+  This program is free software; you can redistribute it and/or modify it
+  under the terms of the GNU General Public License, version 2, as
+  published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  General Public License for more details.
+
+  You should have received a copy of the GNU General Public License along
+  with this program; if not, write to the Free Software Foundation, Inc.,
+  51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#ifndef WEBENGINEPARTHTMLWRITERTEST_H
+#define WEBENGINEPARTHTMLWRITERTEST_H
+
+#include <QObject>
+
+class WebEnginePartHtmlWriterTest : public QObject
+{
+    Q_OBJECT
+public:
+    explicit WebEnginePartHtmlWriterTest(QObject *parent = Q_NULLPTR);
+    ~WebEnginePartHtmlWriterTest();
+private Q_SLOTS:
+    void removeScriptInHtml_data();
+    void removeScriptInHtml();
+};
+
+#endif // WEBENGINEPARTHTMLWRITERTEST_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp 
new/messagelib-16.08.2/messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp
--- 
old/messagelib-16.08.1/messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp 
    2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp 
    2016-10-06 09:00:37.000000000 +0200
@@ -24,6 +24,7 @@
 
 #include <cassert>
 #include <QByteArray>
+#include <QRegularExpression>
 
 using namespace MessageViewer;
 
@@ -60,6 +61,9 @@
         insertExtraHead();
         mExtraHead.clear();
     }
+#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0)
+    mHtml = removeJscripts(mHtml);
+#endif
     mHtmlView->setHtml(mHtml, QUrl(QStringLiteral("file:///")));
     mHtmlView->show();
     mHtml.clear();
@@ -70,6 +74,35 @@
     Q_EMIT finished();
 }
 
+QString WebEnginePartHtmlWriter::removeJscripts(QString str)
+{
+    //Remove regular <script>...</script>
+    const QRegularExpression 
regScript(QStringLiteral("<script[^>]*>.*?</script\\s*>"), 
QRegularExpression::CaseInsensitiveOption);
+    str.remove(regScript);
+    //Remove string as <script src=http://.../>
+    const QRegularExpression regScript2(QStringLiteral("<script[^>]*/>"), 
QRegularExpression::CaseInsensitiveOption);
+    str.remove(regScript2);
+    //Multiline script
+    const QRegularExpression regScriptStart(QStringLiteral("<script[^>]*>"), 
QRegularExpression::CaseInsensitiveOption);
+    const QRegularExpression regScriptEnd(QStringLiteral("</script\\s*>"), 
QRegularExpression::CaseInsensitiveOption);
+    int indexStartScriptFound = -1;
+    int indexEndScriptFound = -1;
+    int scriptIndexPos = 0;
+    QRegularExpressionMatch matchScriptStart;
+    QRegularExpressionMatch matchScriptEnd;
+    while ((indexStartScriptFound = str.indexOf(regScriptStart, 
scriptIndexPos, &matchScriptStart)) != -1) {
+        indexEndScriptFound = str.indexOf(regScriptEnd, indexStartScriptFound 
+ matchScriptStart.capturedLength(), &matchScriptEnd);
+        if (indexEndScriptFound != -1) {
+            str.remove(indexStartScriptFound, (indexEndScriptFound + 
matchScriptEnd.capturedLength() - indexStartScriptFound));
+        } else {
+            qCWarning(MESSAGEVIEWER_LOG) << "no end script tag";
+            break;
+        }
+        scriptIndexPos = indexStartScriptFound;
+    }
+    return str;
+}
+
 void WebEnginePartHtmlWriter::reset()
 {
     if (mState != Ended) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/htmlwriter/webengineparthtmlwriter.h 
new/messagelib-16.08.2/messageviewer/src/htmlwriter/webengineparthtmlwriter.h
--- 
old/messagelib-16.08.1/messageviewer/src/htmlwriter/webengineparthtmlwriter.h   
    2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/messageviewer/src/htmlwriter/webengineparthtmlwriter.h   
    2016-10-06 09:00:37.000000000 +0200
@@ -47,6 +47,9 @@
     void flush() Q_DECL_OVERRIDE;
     void embedPart(const QByteArray &contentId, const QString &url) 
Q_DECL_OVERRIDE;
     void extraHead(const QString &str) Q_DECL_OVERRIDE;
+
+    static QString removeJscripts(QString str);
+
 Q_SIGNALS:
     void finished();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/messagepartthemes/default/defaultrenderer.cpp
 
new/messagelib-16.08.2/messageviewer/src/messagepartthemes/default/defaultrenderer.cpp
--- 
old/messagelib-16.08.1/messageviewer/src/messagepartthemes/default/defaultrenderer.cpp
      2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/messageviewer/src/messagepartthemes/default/defaultrenderer.cpp
      2016-10-06 09:00:37.000000000 +0200
@@ -665,12 +665,12 @@
         return htmlWriter->html;
     }
 
-    QString quotedHTML(const QString &s, bool decorate)
+    QString quotedHTML(const QString &s)
     {
         assert(cssHelper());
 
         KTextToHTML::Options convertFlags = KTextToHTML::PreserveSpaces | 
KTextToHTML::HighlightText;
-        if (decorate && source()->showEmoticons()) {
+        if (source()->showEmoticons()) {
             convertFlags |= KTextToHTML::ReplaceSmileys;
         }
         QString htmlStr;
@@ -797,6 +797,11 @@
                                 htmlStr += deepQuoteFontTag[actQuoteLevel % 3];
                             }
                         }
+                        // Add blockquote
+                        if (previousQuoteDepth < actQuoteLevel) {
+                            htmlStr += 
cssHelper()->addStartBlockQuote(actQuoteLevel - previousQuoteDepth);
+                        }
+
                     } else {
                         // Add blockquote
                         if (previousQuoteDepth < actQuoteLevel) {
@@ -867,7 +872,7 @@
                 aBlock = HTMLBlock::Ptr(new 
AttachmentMarkBlock(htmlWriter.data(), mp->attachmentNode()));
             }
 
-            htmlWriter->queue(quotedHTML(mp->text(), false));
+            htmlWriter->queue(quotedHTML(mp->text()));
         }
         return htmlWriter->html;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/messageviewerheaderplugins/standardsheaderstyleplugin/messageviewer_standardsheaderstyleplugin.json
 
new/messagelib-16.08.2/messageviewer/src/messageviewerheaderplugins/standardsheaderstyleplugin/messageviewer_standardsheaderstyleplugin.json
--- 
old/messagelib-16.08.1/messageviewer/src/messageviewerheaderplugins/standardsheaderstyleplugin/messageviewer_standardsheaderstyleplugin.json
        2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/messageviewer/src/messageviewerheaderplugins/standardsheaderstyleplugin/messageviewer_standardsheaderstyleplugin.json
        2016-10-06 09:00:37.000000000 +0200
@@ -3,14 +3,17 @@
         "Name": "Standards Header Style", 
         "Name[ca@valencia]": "Estil de capçalera estàndard", 
         "Name[ca]": "Estil de capçalera estàndard", 
+        "Name[cs]": "Standardní styl hlavičky", 
+        "Name[da]": "Standard header-stil", 
         "Name[de]": "Vorspann-Design „Standard“", 
         "Name[es]": "Estilo de encabezado estándar", 
+        "Name[et]": "Standardne päisestiil", 
         "Name[fi]": "Vakio-otsaketyyli", 
         "Name[gl]": "Estilo de cabeceira estándar", 
         "Name[it]": "Stile con intestazioni standard", 
-        "Name[nl]": "Stijl met standaard headers", 
+        "Name[nl]": "Standaarden van header-stijl", 
         "Name[pl]": "Standardowe nagłówki", 
-        "Name[pt]": "Estilo de Cabeçalho-Padrão", 
+        "Name[pt]": "Estilo de Cabeçalhos Padrão", 
         "Name[pt_BR]": "Estilo de cabeçalho Padrão", 
         "Name[ru]": "Стандартный стиль заголовков", 
         "Name[sk]": "Štandardný štýl hlavičiek", 
@@ -19,10 +22,9 @@
         "Name[sr@ijekavianlatin]": "standardni stil zaglavlja", 
         "Name[sr@latin]": "standardni stil zaglavlja", 
         "Name[sr]": "стандардни стил заглавља", 
-        "Name[sv]": "Vanlig rubrikstil", 
+        "Name[sv]": "Normal huvudstil", 
         "Name[uk]": "Стандартний стиль заголовків", 
         "Name[x-test]": "xxStandards Header Stylexx", 
-        "Name[zh_CN]": "标准信头风格", 
         "ServiceTypes": [
             "MessageViewerHeaderStyle/Plugin"
         ], 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/scamdetection/scamdetectionwebengine.cpp
 
new/messagelib-16.08.2/messageviewer/src/scamdetection/scamdetectionwebengine.cpp
--- 
old/messagelib-16.08.1/messageviewer/src/scamdetection/scamdetectionwebengine.cpp
   2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/messageviewer/src/scamdetection/scamdetectionwebengine.cpp
   2016-10-06 09:00:37.000000000 +0200
@@ -23,6 +23,7 @@
 #include "settings/messageviewersettings.h"
 #include "MessageViewer/ScamCheckShortUrl"
 #include "webengineviewer/webenginescript.h"
+#include <WebEngineViewer/WebEngineManageScript>
 
 #include <KLocalizedString>
 
@@ -84,7 +85,13 @@
 void ScamDetectionWebEngine::scanPage(QWebEnginePage *page)
 {
     if (MessageViewer::MessageViewerSettings::self()->scamDetectionEnabled()) {
+#if QT_VERSION >= 0x050700
+        
page->runJavaScript(WebEngineViewer::WebEngineScript::findAllAnchorsAndForms(),
+                            
WebEngineViewer::WebEngineManageScript::scriptWordId(),
+                            invoke(this, 
&ScamDetectionWebEngine::handleScanPage));
+#else
         
page->runJavaScript(WebEngineViewer::WebEngineScript::findAllAnchorsAndForms(), 
invoke(this, &ScamDetectionWebEngine::handleScanPage));
+#endif
     }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/viewer/viewer.cpp 
new/messagelib-16.08.2/messageviewer/src/viewer/viewer.cpp
--- old/messagelib-16.08.1/messageviewer/src/viewer/viewer.cpp  2016-09-03 
13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/messageviewer/src/viewer/viewer.cpp  2016-10-06 
09:00:37.000000000 +0200
@@ -31,6 +31,7 @@
 #include "settings/messageviewersettings.h"
 #include "viewer/webengine/mailwebengineview.h"
 #include <WebEngineViewer/WebHitTestResult>
+#include <WebEngineViewer/WebEngineManageScript>
 #include "viewer/mimeparttree/mimetreemodel.h"
 #include "viewer/mimeparttree/mimeparttreeview.h"
 #include "widgets/zoomactionmenu.h"
@@ -82,6 +83,7 @@
     connect(d_ptr, &ViewerPrivate::changeDisplayMail, this, 
&Viewer::slotChangeDisplayMail);
     connect(d_ptr, &ViewerPrivate::moveMessageToTrash, this, 
&Viewer::moveMessageToTrash);
     connect(d_ptr, &ViewerPrivate::executeMailAction, this, 
&Viewer::executeMailAction);
+    connect(d_ptr, &ViewerPrivate::pageIsScrolledToBottom, this, 
&Viewer::pageIsScrolledToBottom);
 
     setMessage(KMime::Message::Ptr(), MimeTreeParser::Delayed);
 }
@@ -216,10 +218,10 @@
     d->mViewer->scrollDown(10);
 }
 
-bool Viewer::atBottom() const
+void Viewer::atBottom()
 {
     Q_D(const Viewer);
-    return d->mViewer->isScrolledToBottom();
+    d->mViewer->isScrolledToBottom();
 }
 
 void Viewer::slotJumpDown()
@@ -636,8 +638,12 @@
 void Viewer::runJavaScript(const QString &code)
 {
     Q_D(Viewer);
-    d->mViewer->page()->runJavaScript(code);
+#if QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)
+    d->mViewer->page()->runJavaScript(code, 
WebEngineViewer::WebEngineManageScript::scriptWordId());
+#else
+     d->mViewer->page()->runJavaScript(code);
+#endif
 }
-
+ 
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/messagelib-16.08.1/messageviewer/src/viewer/viewer.h 
new/messagelib-16.08.2/messageviewer/src/viewer/viewer.h
--- old/messagelib-16.08.1/messageviewer/src/viewer/viewer.h    2016-09-03 
13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/messageviewer/src/viewer/viewer.h    2016-10-06 
09:00:37.000000000 +0200
@@ -235,7 +235,7 @@
     void enableMessageDisplay();
 
     /** Returns true if the message view is scrolled to the bottom. */
-    bool atBottom() const;
+    void atBottom();
 
     bool isFixedFont() const;
     void setUseFixedFont(bool useFixedFont);
@@ -325,6 +325,7 @@
     void runJavaScript(const QString &code);
 Q_SIGNALS:
     void moveMessageToTrash();
+    void pageIsScrolledToBottom(bool);
     void executeMailAction(MessageViewer::Viewer::MailAction type);
 
     /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/viewer/viewer_p.cpp 
new/messagelib-16.08.2/messageviewer/src/viewer/viewer_p.cpp
--- old/messagelib-16.08.1/messageviewer/src/viewer/viewer_p.cpp        
2016-09-03 13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/messageviewer/src/viewer/viewer_p.cpp        
2016-10-06 09:00:37.000000000 +0200
@@ -796,6 +796,9 @@
 
 void ViewerPrivate::enableMessageDisplay()
 {
+    if (mMsgDisplay) {
+        return;
+    }
     mMsgDisplay = true;
     adjustLayout();
 }
@@ -1056,6 +1059,7 @@
     connect(mScamDetectionWarning, 
&ScamDetectionWarningWidget::moveMessageToTrash, this, 
&ViewerPrivate::moveMessageToTrash);
     connect(mScamDetectionWarning, 
&ScamDetectionWarningWidget::messageIsNotAScam, this, 
&ViewerPrivate::slotMessageIsNotAScam);
     connect(mScamDetectionWarning, 
&ScamDetectionWarningWidget::addToWhiteList, this, 
&ViewerPrivate::slotAddToWhiteList);
+    connect(mViewer, &MailWebEngineView::pageIsScrolledToBottom, this, 
&ViewerPrivate::pageIsScrolledToBottom);
 }
 
 bool ViewerPrivate::eventFilter(QObject *, QEvent *e)
@@ -1255,6 +1259,7 @@
     mMimePartTree->clearModel();
 #endif
     mViewer->clearRelativePosition();
+    mViewer->hideAccessKeys();
     setShowSignatureDetails(false);
     mFindBar->closeBar();
     mViewerPluginToolManager->closeAllTools();
@@ -2143,8 +2148,6 @@
         htmlWriter()->end();
     }
 
-    mViewer->scrollToRelativePosition(mViewer->relativePosition());
-    mViewer->clearRelativePosition();
     mRecursionCountForDisplayMessage--;
 }
 
@@ -2358,6 +2361,8 @@
     mViewer->injectAttachments(bind(&ViewerPrivate::attachmentInjectionHtml, 
this));
     toggleFullAddressList();
     mViewer->executeCustomRenderingScripts();
+    mViewer->scrollToRelativePosition(mViewer->relativePosition());
+    mViewer->clearRelativePosition();
 }
 
 void ViewerPrivate::slotSettingsChanged()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/viewer/viewer_p.h 
new/messagelib-16.08.2/messageviewer/src/viewer/viewer_p.h
--- old/messagelib-16.08.1/messageviewer/src/viewer/viewer_p.h  2016-09-03 
13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/messageviewer/src/viewer/viewer_p.h  2016-10-06 
09:00:37.000000000 +0200
@@ -572,6 +572,7 @@
     void changeDisplayMail(Viewer::DisplayFormatMessage, bool);
     void moveMessageToTrash();
     void executeMailAction(MessageViewer::Viewer::MailAction type);
+    void pageIsScrolledToBottom(bool);
 private:
     QString attachmentInjectionHtml();
     QString recipientsQuickListLinkHtml(const QString &);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/mailwebenginepage.cpp 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/mailwebenginepage.cpp
--- 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/mailwebenginepage.cpp 
    2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/mailwebenginepage.cpp 
    2016-10-06 09:00:37.000000000 +0200
@@ -43,9 +43,21 @@
 void MailWebEnginePage::initialize()
 {
     profile()->setHttpCacheType(QWebEngineProfile::MemoryHttpCache);
+#if QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)
+    settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, false);
+#else
     settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, true);
+#endif
     settings()->setAttribute(QWebEngineSettings::PluginsEnabled, false);
+    settings()->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, 
false);
+    settings()->setAttribute(QWebEngineSettings::JavascriptCanAccessClipboard, 
false);
+    settings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, false);
+    settings()->setAttribute(QWebEngineSettings::XSSAuditingEnabled, false);
+    settings()->setAttribute(QWebEngineSettings::ErrorPageEnabled, false);
+    
settings()->setAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls, 
false);
+    
settings()->setAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls, 
false);
 #if QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)
+    settings()->setAttribute(QWebEngineSettings::WebGLEnabled, false);
     settings()->setAttribute(QWebEngineSettings::AutoLoadIconsForPage, false);
 #endif
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/mailwebengineview.cpp 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/mailwebengineview.cpp
--- 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/mailwebengineview.cpp 
    2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/mailwebengineview.cpp 
    2016-10-06 09:00:37.000000000 +0200
@@ -25,6 +25,7 @@
 #include 
"loadexternalreferencesurlinterceptor/loadexternalreferencesurlinterceptor.h"
 #include "cidreferencesurlinterceptor/cidreferencesurlinterceptor.h"
 #include <WebEngineViewer/NetworkAccessManagerWebEngine>
+#include <WebEngineViewer/WebEngineManageScript>
 
 #include "scamdetection/scamdetectionwebengine.h"
 #include "scamdetection/scamcheckshorturl.h"
@@ -108,6 +109,15 @@
 }
 
 
+void MailWebEngineView::runJavaScriptInWordId(const QString &script)
+{
+#if QT_VERSION >= 0x050700
+    page()->runJavaScript(script, 
WebEngineViewer::WebEngineManageScript::scriptWordId());
+#else
+    page()->runJavaScript(script);
+#endif
+}
+
 void MailWebEngineView::initializeScripts()
 {
     initializeJQueryScript();
@@ -130,12 +140,12 @@
 
 void MailWebEngineView::scrollUp(int pixels)
 {
-    page()->runJavaScript(WebEngineViewer::WebEngineScript::scrollUp(pixels));
+    runJavaScriptInWordId(WebEngineViewer::WebEngineScript::scrollUp(pixels));
 }
 
 void MailWebEngineView::scrollDown(int pixels)
 {
-    
page()->runJavaScript(WebEngineViewer::WebEngineScript::scrollDown(pixels));
+    
runJavaScriptInWordId(WebEngineViewer::WebEngineScript::scrollDown(pixels));
 }
 
 void MailWebEngineView::selectAll()
@@ -233,33 +243,56 @@
     d->mWebViewAccessKey->showAccessKeys();
 }
 
-bool MailWebEngineView::isScrolledToBottom() const
+void MailWebEngineView::hideAccessKeys()
 {
-    qDebug() << "bool MailWebEngineView::isScrolledToBottom() const not 
implemented";
-    //Convert as async
-    //TODO '(window.innerHeight + window.scrollY) >= 
document.body.offsetHeight)'
-    return false;
+    d->mWebViewAccessKey->hideAccessKeys();
+}
+
+void MailWebEngineView::isScrolledToBottom()
+{
+#if QT_VERSION >= 0x050700
+    
page()->runJavaScript(WebEngineViewer::WebEngineScript::isScrolledToBottom(),
+                          
WebEngineViewer::WebEngineManageScript::scriptWordId(),
+                          invoke(this, 
&MailWebEngineView::handleIsScrolledToBottom));
+#else
+    
page()->runJavaScript(WebEngineViewer::WebEngineScript::isScrolledToBottom(), 
invoke(this, &MailWebEngineView::handleIsScrolledToBottom));
+#endif
 }
 
 void MailWebEngineView::setElementByIdVisible(const QString &id, bool visible)
 {
-    
page()->runJavaScript(WebEngineViewer::WebEngineScript::setElementByIdVisible(id,
 visible));
+    
runJavaScriptInWordId(WebEngineViewer::WebEngineScript::setElementByIdVisible(id,
 visible));
 }
 
 void MailWebEngineView::removeAttachmentMarking(const QString &id)
 {
-    
page()->runJavaScript(WebEngineViewer::WebEngineScript::removeStyleToElement(QLatin1String("*#")
 + id));
+    
runJavaScriptInWordId(WebEngineViewer::WebEngineScript::removeStyleToElement(QLatin1String("*#")
 + id));
 }
 
 void MailWebEngineView::markAttachment(const QString &id, const QString &style)
 {
     //TODO verify "*#" + id
-    
page()->runJavaScript(WebEngineViewer::WebEngineScript::setStyleToElement(QLatin1String("*#")
 + id, style));
+    
runJavaScriptInWordId(WebEngineViewer::WebEngineScript::setStyleToElement(QLatin1String("*#")
 + id, style));
 }
 
 void MailWebEngineView::scrollToAnchor(const QString &anchor)
 {
+#if QT_VERSION >= 0x050700
+    
page()->runJavaScript(WebEngineViewer::WebEngineScript::searchElementPosition(anchor),
+                          
WebEngineViewer::WebEngineManageScript::scriptWordId(),
+                          invoke(this, 
&MailWebEngineView::handleScrollToAnchor));
+#else
     
page()->runJavaScript(WebEngineViewer::WebEngineScript::searchElementPosition(anchor),
 invoke(this, &MailWebEngineView::handleScrollToAnchor));
+#endif
+}
+
+void MailWebEngineView::handleIsScrolledToBottom(const QVariant &result)
+{
+    bool scrolledToBottomResult = false;
+    if (result.isValid()) {
+        scrolledToBottomResult = result.toBool();
+    }
+    Q_EMIT pageIsScrolledToBottom(scrolledToBottomResult);
 }
 
 void MailWebEngineView::handleScrollToAnchor(const QVariant &result)
@@ -268,14 +301,14 @@
         const QList<QVariant> lst = result.toList();
         if (lst.count() == 2) {
             const QPoint pos(lst.at(0).toInt(), lst.at(1).toInt());
-            
page()->runJavaScript(WebEngineViewer::WebEngineScript::scrollToPosition(pos));
+            
runJavaScriptInWordId(WebEngineViewer::WebEngineScript::scrollToPosition(pos));
         }
     }
 }
 
 void MailWebEngineView::scrollPageDown(int percent)
 {
-    
page()->runJavaScript(WebEngineViewer::WebEngineScript::scrollPercentage(percent));
+    
runJavaScriptInWordId(WebEngineViewer::WebEngineScript::scrollPercentage(percent));
 }
 
 void MailWebEngineView::scrollPageUp(int percent)
@@ -288,7 +321,7 @@
     const QString scripts = 
MessageViewer::MailWebEngineScript::manageShowHideAttachments() +
                             
MessageViewer::MailWebEngineScript::manageExpandAddresses(QStringLiteral("To")) 
+
                             
MessageViewer::MailWebEngineScript::manageExpandAddresses(QStringLiteral("Cc"));
-    page()->runJavaScript(scripts);
+    runJavaScriptInWordId(scripts);
 }
 
 void MailWebEngineView::injectAttachments(const boost::function<QString()> 
&delayedHtml)
@@ -297,7 +330,7 @@
     if (html.isEmpty()) {
         return;
     }
-    
page()->runJavaScript(MessageViewer::MailWebEngineScript::injectAttachments(html,
 QStringLiteral("attachmentInjectionPoint")));
+    
runJavaScriptInWordId(MessageViewer::MailWebEngineScript::injectAttachments(html,
 QStringLiteral("attachmentInjectionPoint")));
 }
 
 void MailWebEngineView::toggleFullAddressList(const QString &field, const 
boost::function<QString()> &delayedHtml)
@@ -308,7 +341,7 @@
     }
 
     //qDebug() << "void MailWebEngineView::toggleFullAddressList(const QString 
&field, const boost::function<QString()> &delayedHtml, bool doShow)" << html << 
" fields " << field;
-    
page()->runJavaScript(MessageViewer::MailWebEngineScript::replaceInnerHtml(field,
 html));
+    
runJavaScriptInWordId(MessageViewer::MailWebEngineScript::replaceInnerHtml(field,
 html));
 }
 
 bool MailWebEngineView::hasVerticalScrollBar() const
@@ -328,7 +361,7 @@
 
 void MailWebEngineView::scrollToRelativePosition(qreal pos)
 {
-    
page()->runJavaScript(WebEngineViewer::WebEngineScript::scrollToRelativePosition(pos));
+    
runJavaScriptInWordId(WebEngineViewer::WebEngineScript::scrollToRelativePosition(pos));
 }
 
 QUrl MailWebEngineView::linkOrImageUrlAt(const QPoint &global) const
@@ -374,3 +407,4 @@
     Q_UNUSED(e);
     qDebug() << " MailWebEngineView::dropEvent";
 }
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/mailwebengineview.h 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/mailwebengineview.h
--- 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/mailwebengineview.h   
    2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/mailwebengineview.h   
    2016-10-06 09:00:37.000000000 +0200
@@ -45,7 +45,8 @@
 
     void saveMainFrameScreenshotInFile(const QString &filename);
     void showAccessKeys();
-    bool isScrolledToBottom() const;
+    void hideAccessKeys();
+    void isScrolledToBottom();
 
     void setElementByIdVisible(const QString &id, bool visible);
     void removeAttachmentMarking(const QString &id);
@@ -92,14 +93,17 @@
     /// @param url if an URL was under the cursor, this parameter contains it. 
Otherwise empty
     /// @param point position where the click happened, in local coordinates
     void popupMenu(const WebEngineViewer::WebHitTestResult &result);
+    void pageIsScrolledToBottom(bool);
 
 private Q_SLOTS:
     void handleScrollToAnchor(const QVariant &result);
+    void handleIsScrolledToBottom(const QVariant &result);
 
     void slotWebHitFinished(const WebEngineViewer::WebHitTestResult &result);
     void slotLoadFinished();
 private:
     void initializeScripts();
+    void runJavaScriptInWordId(const QString &script);
     MailWebEngineViewPrivate *const d;
 };
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/tests/CMakeLists.txt 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/tests/CMakeLists.txt
--- 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/tests/CMakeLists.txt  
    2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/tests/CMakeLists.txt  
    2016-10-06 09:00:37.000000000 +0200
@@ -63,5 +63,14 @@
     Qt5::Widgets KF5::WebEngineViewer Qt5::WebEngine Qt5::WebEngineWidgets 
KF5::XmlGui KF5::IconThemes KF5::MessageViewer
     )
 
+#####
 
+set(testmailmboxwebengine_test_SRCS
+    testmailmboxwebengine.cpp
+    )
+add_executable(testmailmboxwebengine ${testmailmboxwebengine_test_SRCS})
+
+target_link_libraries(testmailmboxwebengine
+    Qt5::Widgets KF5::WebEngineViewer Qt5::WebEngine Qt5::WebEngineWidgets 
KF5::XmlGui KF5::IconThemes KF5::MessageViewer
+    )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/tests/data/html.mbox 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/tests/data/html.mbox
--- 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/tests/data/html.mbox  
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/tests/data/html.mbox  
    2016-10-06 09:00:37.000000000 +0200
@@ -0,0 +1,29 @@
+From [email protected] Thu, 26 May 2011 01:16:54 +0100
+From: Thomas McGuire <[email protected]>
+Subject: HTML test
+Date: Thu, 26 May 2011 01:16:54 +0100
+Message-ID: <[email protected]>
+X-KMail-Transport: GMX
+X-KMail-Fcc: 28
+X-KMail-Drafts: 7
+X-KMail-Templates: 9
+User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; 
git-0269848; 2011-04-19)
+MIME-Version: 1.0
+Content-Type: multipart/alternative; boundary="nextPart8606278.tpV19BTJKu"
+Content-Transfer-Encoding: 7Bit
+
+
+--nextPart8606278.tpV19BTJKu
+Content-Transfer-Encoding: 7Bit
+Content-Type: text/plain; charset="windows-1252"
+
+Some HTML text
+--nextPart8606278.tpV19BTJKu
+Content-Transfer-Encoding: 7Bit
+Content-Type: text/html; charset="windows-1252"
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" 
"http://www.w3.org/TR/REC-html40/strict.dtd";>
+<html><head>
+<p>Some <span style=" font-weight:600;">HTML</span> text</p><a 
href=https://";><script>alert(1)</script><\"></body></html>
+--nextPart8606278.tpV19BTJKu--
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/tests/testmailmboxwebengine.cpp
 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/tests/testmailmboxwebengine.cpp
--- 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/tests/testmailmboxwebengine.cpp
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/tests/testmailmboxwebengine.cpp
   2016-10-06 09:00:37.000000000 +0200
@@ -0,0 +1,70 @@
+/*
+   Copyright (C) 2016 Laurent Montel <[email protected]>
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public
+   License as published by the Free Software Foundation; either
+   version 2 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public License
+   along with this library; see the file COPYING.LIB.  If not, write to
+   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.
+*/
+
+#include "testmailmboxwebengine.h"
+
+#include <KMime/Content>
+#include <KActionCollection>
+#include <QApplication>
+#include <QFile>
+#include <QVBoxLayout>
+#include <QDebug>
+
+#include <MessageViewer/MailWebEngineView>
+#include <MessageViewer/Viewer>
+
+TestMailMBoxWebEngine::TestMailMBoxWebEngine(QWidget *parent)
+    : QWidget(parent)
+{
+    QVBoxLayout *vbox = new QVBoxLayout;
+    setLayout(vbox);
+    MessageViewer::Viewer *viewer = new MessageViewer::Viewer(0, 0 , new 
KActionCollection(this));
+    vbox->addWidget(viewer);
+    viewer->setMessage(readAndParseMail(QStringLiteral("html.mbox")));
+    viewer->setPluginName(QStringLiteral("longheaderstyleplugin"));
+}
+
+TestMailMBoxWebEngine::~TestMailMBoxWebEngine()
+{
+
+}
+
+KMime::Message::Ptr TestMailMBoxWebEngine::readAndParseMail(const QString 
&mailFile)
+{
+    QFile file(QLatin1String(MAIL_DATA_DIR) + QLatin1Char('/') + mailFile);
+    file.open(QIODevice::ReadOnly);
+    QByteArray ba = file.readAll();
+    qDebug() << ba;
+    const QByteArray data = ba;
+    Q_ASSERT(!data.isEmpty());
+    KMime::Message::Ptr msg(new KMime::Message);
+    msg->setContent(data);
+    msg->parse();
+    return msg;
+}
+
+int main(int argc, char *argv[])
+{
+    QApplication app(argc, argv);
+    app.setAttribute(Qt::AA_UseHighDpiPixmaps, true);
+    TestMailMBoxWebEngine *testWebEngine = new TestMailMBoxWebEngine;
+    testWebEngine->show();
+    const int ret = app.exec();
+    return ret;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/tests/testmailmboxwebengine.h
 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/tests/testmailmboxwebengine.h
--- 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/tests/testmailmboxwebengine.h
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/tests/testmailmboxwebengine.h
     2016-10-06 09:00:37.000000000 +0200
@@ -0,0 +1,36 @@
+/*
+   Copyright (C) 2016 Laurent Montel <[email protected]>
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public
+   License as published by the Free Software Foundation; either
+   version 2 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public License
+   along with this library; see the file COPYING.LIB.  If not, write to
+   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.
+*/
+
+#ifndef TESTMAILMBOXWEBENGINE_H
+#define TESTMAILMBOXWEBENGINE_H
+
+#include <QWidget>
+#include <KMime/Message>
+
+class TestMailMBoxWebEngine : public QWidget
+{
+    Q_OBJECT
+public:
+    explicit TestMailMBoxWebEngine(QWidget *parent = Q_NULLPTR);
+    ~TestMailMBoxWebEngine();
+private:
+    KMime::Message::Ptr readAndParseMail(const QString &mailFile);
+};
+
+#endif // TESTMAILMBOXWEBENGINE_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/tests/testmailwebengine.cpp
 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/tests/testmailwebengine.cpp
--- 
old/messagelib-16.08.1/messageviewer/src/viewer/webengine/tests/testmailwebengine.cpp
       2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/messageviewer/src/viewer/webengine/tests/testmailwebengine.cpp
       2016-10-06 09:00:37.000000000 +0200
@@ -27,6 +27,7 @@
 #include <QWebEngineSettings>
 
 #include <MessageViewer/MailWebEngineView>
+#include <WebEngineViewer/WebEngineManageScript>
 
 TestMailWebEngine::TestMailWebEngine(QWidget *parent)
     : QWidget(parent)
@@ -75,12 +76,20 @@
 
 void TestMailWebEngine::slotScrollDown()
 {
+#if QT_VERSION >= 0x050700
+    
mTestWebEngine->page()->runJavaScript(WebEngineViewer::WebEngineScript::scrollDown(10),
 WebEngineViewer::WebEngineManageScript::scriptWordId());
+#else
     
mTestWebEngine->page()->runJavaScript(WebEngineViewer::WebEngineScript::scrollDown(10));
+#endif
 }
 
 void TestMailWebEngine::slotScrollUp()
 {
+#if QT_VERSION >= 0x050700
+    
mTestWebEngine->page()->runJavaScript(WebEngineViewer::WebEngineScript::scrollUp(10),
 WebEngineViewer::WebEngineManageScript::scriptWordId());
+#else
     
mTestWebEngine->page()->runJavaScript(WebEngineViewer::WebEngineScript::scrollUp(10));
+#endif
 }
 
 void TestMailWebEngine::slotZoomDown()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/mimetreeparser/src/bodyformatter/utils.cpp 
new/messagelib-16.08.2/mimetreeparser/src/bodyformatter/utils.cpp
--- old/messagelib-16.08.1/mimetreeparser/src/bodyformatter/utils.cpp   
2016-09-03 13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/mimetreeparser/src/bodyformatter/utils.cpp   
2016-10-06 09:00:37.000000000 +0200
@@ -60,7 +60,7 @@
             return text;
         } else if (alternative) {
             return alternative;
-        } else {
+        } else if (m) {
             auto ret = toplevelTextNode(m);
             if (ret) {
                 return ret;
@@ -68,4 +68,4 @@
         }
     }
     return MessagePart::Ptr();
-}
\ No newline at end of file
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/templateparser/src/customtemplates.cpp 
new/messagelib-16.08.2/templateparser/src/customtemplates.cpp
--- old/messagelib-16.08.1/templateparser/src/customtemplates.cpp       
2016-09-03 13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/templateparser/src/customtemplates.cpp       
2016-10-06 09:00:37.000000000 +0200
@@ -125,7 +125,7 @@
 
 void CustomTemplates::slotNameChanged(const QString &text)
 {
-    mUi->mAdd->setEnabled(!text.isEmpty());
+    mUi->mAdd->setEnabled(!text.trimmed().isEmpty());
 }
 
 QString CustomTemplates::indexToType(int index)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/templateparser/src/templateparser.cpp 
new/messagelib-16.08.2/templateparser/src/templateparser.cpp
--- old/messagelib-16.08.1/templateparser/src/templateparser.cpp        
2016-09-03 13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/templateparser/src/templateparser.cpp        
2016-10-06 09:00:37.000000000 +0200
@@ -129,6 +129,7 @@
 TemplateParser::~TemplateParser()
 {
     delete mEmptySource;
+    delete mOtp;
 }
 
 int TemplateParser::parseQuotes(const QString &prefix, const QString &str,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/webengineviewer/src/CMakeLists.txt 
new/messagelib-16.08.2/webengineviewer/src/CMakeLists.txt
--- old/messagelib-16.08.1/webengineviewer/src/CMakeLists.txt   2016-09-03 
13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/webengineviewer/src/CMakeLists.txt   2016-10-06 
09:00:37.000000000 +0200
@@ -179,6 +179,7 @@
     WebEngineView
     WebHitTest
     WebEngineScript
+    WebEngineManageScript
     WebEnginePrintMessageBox
     WebEngineExportHtmlPageJob
     REQUIRED_HEADERS WebEngineViewer_webengine_misc_HEADERS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/webengineviewer/src/networkmanager/networkaccessmanagerwebengine.cpp
 
new/messagelib-16.08.2/webengineviewer/src/networkmanager/networkaccessmanagerwebengine.cpp
--- 
old/messagelib-16.08.1/webengineviewer/src/networkmanager/networkaccessmanagerwebengine.cpp
 2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/webengineviewer/src/networkmanager/networkaccessmanagerwebengine.cpp
 2016-10-06 09:00:37.000000000 +0200
@@ -39,7 +39,7 @@
 };
 
 NetworkAccessManagerWebEngine::NetworkAccessManagerWebEngine(QWebEngineView 
*webEngine, KActionCollection *ac, QObject *parent)
-    : QNetworkAccessManager(parent),
+    : QObject(parent),
       d(new NetworkAccessManagerWebEnginePrivate)
 {
     d->mManager = new WebEngineViewer::NetworkUrlInterceptorManager(webEngine, 
ac, this);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/webengineviewer/src/networkmanager/networkaccessmanagerwebengine.h
 
new/messagelib-16.08.2/webengineviewer/src/networkmanager/networkaccessmanagerwebengine.h
--- 
old/messagelib-16.08.1/webengineviewer/src/networkmanager/networkaccessmanagerwebengine.h
   2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/webengineviewer/src/networkmanager/networkaccessmanagerwebengine.h
   2016-10-06 09:00:37.000000000 +0200
@@ -32,7 +32,7 @@
 class NetworkPluginUrlInterceptorInterface;
 class NetworkAccessManagerWebEnginePrivate;
 class NetworkPluginUrlInterceptorConfigureWidget;
-class WEBENGINEVIEWER_EXPORT NetworkAccessManagerWebEngine : public 
QNetworkAccessManager
+class WEBENGINEVIEWER_EXPORT NetworkAccessManagerWebEngine : public QObject
 {
     Q_OBJECT
 public:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/webengineviewer/src/tests/testjquerysupportwebengine.cpp 
new/messagelib-16.08.2/webengineviewer/src/tests/testjquerysupportwebengine.cpp
--- 
old/messagelib-16.08.1/webengineviewer/src/tests/testjquerysupportwebengine.cpp 
    2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/webengineviewer/src/tests/testjquerysupportwebengine.cpp 
    2016-10-06 09:00:37.000000000 +0200
@@ -27,6 +27,7 @@
 #include <QPushButton>
 #include <QMessageBox>
 #include <QTextEdit>
+#include <WebEngineViewer/WebEngineManageScript>
 
 TestJQuerySupportWebEngine::TestJQuerySupportWebEngine(QWidget *parent)
     : QWidget(parent)
@@ -57,7 +58,11 @@
 {
     const QString code = mEditor->toPlainText();
     if (!code.isEmpty()) {
+#if QT_VERSION >= 0x050700
+        pageView->page()->runJavaScript(code, 
WebEngineViewer::WebEngineManageScript::scriptWordId());
+#else
         pageView->page()->runJavaScript(code);
+#endif
     }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/webengineviewer/src/webengineaccesskey/autotests/webengineaccesskeyanchorfromhtmltest.cpp
 
new/messagelib-16.08.2/webengineviewer/src/webengineaccesskey/autotests/webengineaccesskeyanchorfromhtmltest.cpp
--- 
old/messagelib-16.08.1/webengineviewer/src/webengineaccesskey/autotests/webengineaccesskeyanchorfromhtmltest.cpp
    2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/webengineviewer/src/webengineaccesskey/autotests/webengineaccesskeyanchorfromhtmltest.cpp
    2016-10-06 09:00:37.000000000 +0200
@@ -18,6 +18,7 @@
 */
 #include "webengineaccesskeyanchorfromhtmltest.h"
 #include "../webengineaccesskeyutils.h"
+#include <WebEngineViewer/WebEngineManageScript>
 #include <QTest>
 #include <QHBoxLayout>
 #include <QWebEngineView>
@@ -74,7 +75,13 @@
 void TestWebEngineAccessKey::loadFinished(bool b)
 {
     Q_UNUSED(b);
+#if QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)
+    
mEngineView->page()->runJavaScript(WebEngineViewer::WebEngineAccessKeyUtils::script(),
+                                       
WebEngineViewer::WebEngineManageScript::scriptWordId(),
+                                       invoke(this, 
&TestWebEngineAccessKey::handleSearchAccessKey));
+#else
     
mEngineView->page()->runJavaScript(WebEngineViewer::WebEngineAccessKeyUtils::script(),
 invoke(this, &TestWebEngineAccessKey::handleSearchAccessKey));
+#endif
 }
 
 Q_DECLARE_METATYPE(QVector<WebEngineViewer::WebEngineAccessKeyAnchor>)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/webengineviewer/src/webengineaccesskey/webengineaccesskey.cpp
 
new/messagelib-16.08.2/webengineviewer/src/webengineaccesskey/webengineaccesskey.cpp
--- 
old/messagelib-16.08.1/webengineviewer/src/webengineaccesskey/webengineaccesskey.cpp
        2016-09-03 13:28:12.000000000 +0200
+++ 
new/messagelib-16.08.2/webengineviewer/src/webengineaccesskey/webengineaccesskey.cpp
        2016-10-06 09:00:37.000000000 +0200
@@ -20,6 +20,7 @@
 #include "webengineaccesskey.h"
 #include "webengineaccesskeyanchor.h"
 #include "webengineaccesskeyutils.h"
+#include "webenginemanagescript.h"
 
 #include <KActionCollection>
 #include <QKeyEvent>
@@ -385,6 +386,12 @@
 void WebEngineAccessKey::showAccessKeys()
 {
     d->mAccessKeyActivated = WebEngineAccessKeyPrivate::Activated;
+#if QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)
+    
d->mWebEngine->page()->runJavaScript(WebEngineViewer::WebEngineAccessKeyUtils::script(),
+                                         WebEngineManageScript::scriptWordId(),
+                                         invoke(this, 
&WebEngineAccessKey::handleSearchAccessKey));
+#else
     
d->mWebEngine->page()->runJavaScript(WebEngineViewer::WebEngineAccessKeyUtils::script(),
 invoke(this, &WebEngineAccessKey::handleSearchAccessKey));
+#endif
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/webengineviewer/src/webenginemanagescript.cpp 
new/messagelib-16.08.2/webengineviewer/src/webenginemanagescript.cpp
--- old/messagelib-16.08.1/webengineviewer/src/webenginemanagescript.cpp        
2016-09-03 13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/webengineviewer/src/webenginemanagescript.cpp        
2016-10-06 09:00:37.000000000 +0200
@@ -54,7 +54,7 @@
             script.setName(scriptName);
             script.setInjectionPoint(injectionPoint);
             script.setRunsOnSubFrames(true);
-            script.setWorldId(QWebEngineScript::MainWorld);
+            script.setWorldId(scriptWordId());
         }
         script.setSourceCode(source);
         profile->scripts()->insert(script);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/webengineviewer/src/webenginemanagescript.h 
new/messagelib-16.08.2/webengineviewer/src/webenginemanagescript.h
--- old/messagelib-16.08.1/webengineviewer/src/webenginemanagescript.h  
2016-09-03 13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/webengineviewer/src/webenginemanagescript.h  
2016-10-06 09:00:37.000000000 +0200
@@ -22,17 +22,20 @@
 
 #include <QObject>
 #include <QWebEngineScript>
+#include "webengineviewer_export.h"
 
 class QWebEngineProfile;
 namespace WebEngineViewer
 {
-class WebEngineManageScript : public QObject
+class WEBENGINEVIEWER_EXPORT WebEngineManageScript : public QObject
 {
     Q_OBJECT
 public:
     explicit WebEngineManageScript(QObject *parent = Q_NULLPTR);
     ~WebEngineManageScript();
     void addScript(QWebEngineProfile *profile, const QString &source, const 
QString &scriptName, QWebEngineScript::InjectionPoint injectionPoint);
+
+    static qint32 scriptWordId() { return (QWebEngineScript::UserWorld + 1); }
 };
 }
 #endif // WEBENGINEMANAGESCRIPT_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/webengineviewer/src/webenginescript.cpp 
new/messagelib-16.08.2/webengineviewer/src/webenginescript.cpp
--- old/messagelib-16.08.1/webengineviewer/src/webenginescript.cpp      
2016-09-03 13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/webengineviewer/src/webenginescript.cpp      
2016-10-06 09:00:37.000000000 +0200
@@ -181,3 +181,18 @@
     const QString source = 
QString::fromLatin1("window.scrollTo(window.scrollX, %1); [window.scrollX, 
window.scrollY];").arg(pos);
     return source;
 }
+
+QString WebEngineScript::isScrolledToBottom()
+{
+    return QString::fromLatin1("(function() { "
+                               "var isAtBottom = 0;"
+                               "if (qt.jQuery(window).scrollTop() + 
qt.jQuery(window).height() == qt.jQuery(document).height())"
+                               "{ "
+                               "  isAtBottom = 1;"
+                               "} else {"
+                               "  isAtBottom = 0;"
+                               "}"
+                               "return Boolean(isAtBottom); "
+                               "}());");
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/webengineviewer/src/webenginescript.h 
new/messagelib-16.08.2/webengineviewer/src/webenginescript.h
--- old/messagelib-16.08.1/webengineviewer/src/webenginescript.h        
2016-09-03 13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/webengineviewer/src/webenginescript.h        
2016-10-06 09:00:37.000000000 +0200
@@ -40,6 +40,7 @@
 WEBENGINEVIEWER_EXPORT QString scrollPercentage(int percent);
 WEBENGINEVIEWER_EXPORT QString scrollToRelativePosition(qreal pos);
 WEBENGINEVIEWER_EXPORT QString removeStyleToElement(const QString &element);
+WEBENGINEVIEWER_EXPORT QString isScrolledToBottom();
 }
 }
 #endif // WEBENGINESCRIPT_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/webengineviewer/src/webengineview.cpp 
new/messagelib-16.08.2/webengineviewer/src/webengineview.cpp
--- old/messagelib-16.08.1/webengineviewer/src/webengineview.cpp        
2016-09-03 13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/webengineviewer/src/webengineview.cpp        
2016-10-06 09:00:37.000000000 +0200
@@ -59,6 +59,11 @@
     delete d;
 }
 
+WebEngineManageScript *WebEngineView::webEngineManagerScript() const
+{
+    return d->mManagerScript;
+}
+
 void WebEngineView::initializeJQueryScript()
 {
     QFile file;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/webengineviewer/src/webengineview.h 
new/messagelib-16.08.2/webengineviewer/src/webengineview.h
--- old/messagelib-16.08.1/webengineviewer/src/webengineview.h  2016-09-03 
13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/webengineviewer/src/webengineview.h  2016-10-06 
09:00:37.000000000 +0200
@@ -26,6 +26,7 @@
 namespace WebEngineViewer
 {
 class WebEngineViewPrivate;
+class WebEngineManageScript;
 class WEBENGINEVIEWER_EXPORT WebEngineView : public QWebEngineView
 {
     Q_OBJECT
@@ -41,6 +42,9 @@
 
     void addScript(const QString &source, const QString &scriptName, 
QWebEngineScript::InjectionPoint injectionPoint);
     void initializeJQueryScript();
+
+    WebEngineManageScript *webEngineManagerScript() const;
+
 protected:
     bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE;
     QWebEngineView *createWindow(QWebEnginePage::WebWindowType type) 
Q_DECL_OVERRIDE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/messagelib-16.08.1/webengineviewer/src/webhittest.cpp 
new/messagelib-16.08.2/webengineviewer/src/webhittest.cpp
--- old/messagelib-16.08.1/webengineviewer/src/webhittest.cpp   2016-09-03 
13:28:12.000000000 +0200
+++ new/messagelib-16.08.2/webengineviewer/src/webhittest.cpp   2016-10-06 
09:00:37.000000000 +0200
@@ -20,6 +20,7 @@
 #include "webhittest.h"
 #include "webhittestresult.h"
 #include <QWebEnginePage>
+#include "webenginemanagescript.h"
 
 using namespace WebEngineViewer;
 template<typename Arg, typename R, typename C>
@@ -113,7 +114,13 @@
 
     const QString &js = source.arg(pos.x()).arg(pos.y());
     d->m_pageUrl = page->url();
+#if QT_VERSION >= 0x050700
+    page->runJavaScript(js,
+                        WebEngineViewer::WebEngineManageScript::scriptWordId(),
+                        invoke(this, &WebHitTest::handleHitTest));
+#else
     page->runJavaScript(js, invoke(this, &WebHitTest::handleHitTest));
+#endif
 }
 
 WebHitTest::~WebHitTest()


Reply via email to