diff options
Diffstat (limited to 'kde-apps/messagelib')
-rw-r--r-- | kde-apps/messagelib/Manifest | 3 | ||||
-rw-r--r-- | kde-apps/messagelib/files/messagelib-18.12.3-qtwebengine-5.12.3.patch | 172 | ||||
-rw-r--r-- | kde-apps/messagelib/messagelib-18.12.3-r2.ebuild (renamed from kde-apps/messagelib/messagelib-18.12.3-r1.ebuild) | 2 |
3 files changed, 176 insertions, 1 deletions
diff --git a/kde-apps/messagelib/Manifest b/kde-apps/messagelib/Manifest index a9d2e2653817..de1f5517daad 100644 --- a/kde-apps/messagelib/Manifest +++ b/kde-apps/messagelib/Manifest @@ -1,5 +1,6 @@ +AUX messagelib-18.12.3-qtwebengine-5.12.3.patch 6953 BLAKE2B f69a90bedaa477609a464c5430792944cc4eeacd38b90c1d39b6eeb53d880e8551203c9912c539db60bfbd4478803561691dbb15a14ef2ac651dcf8049f78e98 SHA512 0cbf1b934890073083a2ef1a5099a27a8d5e5857b3a0a4690ef2b889650574341d442acda3154a2911eb3ba80319c5fd1fe3c9d50f454cce102a0437157792d2 DIST messagelib-18.12.3.tar.xz 10428172 BLAKE2B 549089a1cbfa3d27b6a69b8efe11299c377bb761b223d4a3e00bbf241dccf29a7e49607b665e565bb11fa5c2b0d54543ab91a42180122664c47f8f38c45c606b SHA512 06ef96514d4d54d0c25114cac358de039874622c307d71bb9bd23e01c6fb665001e22930e2f2ccf7ef4b083544619a8c382ad8c40c8ee227039a9c33b34cf220 DIST messagelib-19.04.1.tar.xz 10451112 BLAKE2B 24509ce59af9bb4de8eafc59d354f86f1e1d50aa431a11240e120f21f5af32ae92a2e247b7ef22eb063df552ae2394edb39539b6f099e25e016272f38452869a SHA512 1e3be1fb0521f49f8e6f9fa006d3ef728fb9f967614527d8768b69ad42a66a46bc36e0f1913b94a36eff1833d1d019a9ef5b91075706a1b7d9c80967b5814dd2 -EBUILD messagelib-18.12.3-r1.ebuild 1918 BLAKE2B 955e593d4ec93be8e02f08065de545f8e641f1af2ea06f290b023dba2040d6aa0ad1f318f9dd09cc8ad691a13f8199068611afa0c47e78b16b070b80a4564b50 SHA512 8babd52045b242a1554782464250ffff0829fd3b529bd5867aec0b8bb24fd9907d804722d3003d1cccf3aff838fa70d24230a3e95babe6cc54af7f03a78ace76 +EBUILD messagelib-18.12.3-r2.ebuild 1988 BLAKE2B 0a1aeb8237c306928d30be394002f98f2dde244db93b22cab1a487bf98a98ae2b2c0084ec3934a924c33553ab0cba44306c257064c02aef93dc97a2bd53b1519 SHA512 e52766970667ee8c186ac0f986ee31d26595fc48cf617c943f3bd075a67c98f715deebb42fdcc6bbd2c9c02864ffa20fa886aeb9f518ebf6f3cccd2d8fe1855a EBUILD messagelib-19.04.1.ebuild 1906 BLAKE2B 3e76af59153ae82a52abb94a9eee0ee326583a05ad559a9c102d167690dbb45c577cc1b43211911ccaf647eed4033d4cc0dd21e41ab3dcecc256d6162df95f24 SHA512 42d8025849c6252a16b00c19379578aed74ab8c848c3853cbdfaac8daefc8bbcb17b14111a36c7189e7de585f73c5111d2d232dac8bb2bb825ead7d5e09f46de MISC metadata.xml 249 BLAKE2B ad415db89e5dee1627aa77f44ded9d4e1e5b8217d06c7ca25bbaa3fe92ce67c2b1090957c45a821b407d7927e5af798498aa6a5b903895ee1af8ee20a446c7f7 SHA512 76a5a340b13f0053ca3c5e94ed24380ea8d29b45ac8655419e22eaadb1e4a827c04d2e7e36b65145c4964e6526f656618fc6ac144e277ef53cb7373e6239e3c3 diff --git a/kde-apps/messagelib/files/messagelib-18.12.3-qtwebengine-5.12.3.patch b/kde-apps/messagelib/files/messagelib-18.12.3-qtwebengine-5.12.3.patch new file mode 100644 index 000000000000..3fdc1527951a --- /dev/null +++ b/kde-apps/messagelib/files/messagelib-18.12.3-qtwebengine-5.12.3.patch @@ -0,0 +1,172 @@ +From 9f0ce086c6a4e487cee1f01acb15290ebff19ac3 Mon Sep 17 00:00:00 2001 +From: Jonathan Marten <jjm@keelhaul.me.uk> +Date: Tue, 12 Mar 2019 08:47:43 +0000 +Subject: Move management of QWebEngineProfile to WebEnginePage + +To avoid a crash on KMail quit or viewer window close, caused by the +MailWebEnginePage being deleted while its QWebEngineProfile is still +active. Simplified management of the profile by handling its creation +and deletion within WebEnginePage. + +Deprecate the 2-argument WebEnginePage constructor which allows an +already allocated profile to be used. This constructor is used by +Akregator which specifies the global profile; it will be changed to +use a private profile instead. + +Differential Revision: https://phabricator.kde.org/D19559 +--- + .../src/viewer/webengine/mailwebenginepage.cpp | 10 ------- + .../src/viewer/webengine/mailwebenginepage.h | 3 +- + .../src/viewer/webengine/mailwebengineview.cpp | 3 +- + webengineviewer/src/webenginepage.cpp | 22 ++++++++++---- + webengineviewer/src/webenginepage.h | 35 ++++++++++++++++++++-- + 5 files changed, 52 insertions(+), 21 deletions(-) + +diff --git a/messageviewer/src/viewer/webengine/mailwebenginepage.cpp b/messageviewer/src/viewer/webengine/mailwebenginepage.cpp +index cd91494..f3790b9 100644 +--- a/messageviewer/src/viewer/webengine/mailwebenginepage.cpp ++++ b/messageviewer/src/viewer/webengine/mailwebenginepage.cpp +@@ -29,16 +29,6 @@ MailWebEnginePage::MailWebEnginePage(QObject *parent) + initialize(); + } + +-MailWebEnginePage::MailWebEnginePage(QWebEngineProfile *profile, QObject *parent) +- : WebEngineViewer::WebEnginePage(profile, parent) +-{ +- initialize(); +-} +- +-MailWebEnginePage::~MailWebEnginePage() +-{ +-} +- + void MailWebEnginePage::initialize() + { + settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, false); +diff --git a/messageviewer/src/viewer/webengine/mailwebenginepage.h b/messageviewer/src/viewer/webengine/mailwebenginepage.h +index 7f8e6eb..d581efd 100644 +--- a/messageviewer/src/viewer/webengine/mailwebenginepage.h ++++ b/messageviewer/src/viewer/webengine/mailwebenginepage.h +@@ -28,8 +28,7 @@ class MESSAGEVIEWER_EXPORT MailWebEnginePage : public WebEngineViewer::WebEngine + Q_OBJECT + public: + explicit MailWebEnginePage(QObject *parent = nullptr); +- explicit MailWebEnginePage(QWebEngineProfile *profile, QObject *parent = nullptr); +- ~MailWebEnginePage(); ++ virtual ~MailWebEnginePage() = default; + + void setPrintElementBackground(bool printElementBackground); + +diff --git a/messageviewer/src/viewer/webengine/mailwebengineview.cpp b/messageviewer/src/viewer/webengine/mailwebengineview.cpp +index 0685a8d..09224cf 100644 +--- a/messageviewer/src/viewer/webengine/mailwebengineview.cpp ++++ b/messageviewer/src/viewer/webengine/mailwebengineview.cpp +@@ -34,7 +34,6 @@ + #include <QContextMenuEvent> + #include <WebEngineViewer/WebHitTest> + +-#include <QWebEngineProfile> + #include <QPrinter> + + #include <WebEngineViewer/WebHitTestResult> +@@ -81,7 +80,7 @@ MailWebEngineView::MailWebEngineView(KActionCollection *ac, QWidget *parent) + : WebEngineViewer::WebEngineView(parent) + , d(new MessageViewer::MailWebEngineViewPrivate) + { +- d->mPageEngine = new MailWebEnginePage(new QWebEngineProfile(this), this); ++ d->mPageEngine = new MailWebEnginePage(this); + setPage(d->mPageEngine); + d->mWebViewAccessKey = new WebEngineViewer::WebEngineAccessKey(this, this); + d->mWebViewAccessKey->setActionCollection(ac); +diff --git a/webengineviewer/src/webenginepage.cpp b/webengineviewer/src/webenginepage.cpp +index 447ac26..2fcb6c2 100644 +--- a/webengineviewer/src/webenginepage.cpp ++++ b/webengineviewer/src/webenginepage.cpp +@@ -33,8 +33,24 @@ + using namespace WebEngineViewer; + + WebEnginePage::WebEnginePage(QObject *parent) +- : QWebEnginePage(parent) ++ : QWebEnginePage(new QWebEngineProfile, parent) + { ++ // Create a private (off the record) QWebEngineProfile here to isolate the ++ // browsing settings, and adopt it as a child so that it will be deleted ++ // when we are destroyed. The profile must remain active for as long as ++ // any QWebEnginePage's belonging to it exist, see the API documentation ++ // of QWebEnginePage::QWebEnginePage(QWebEngineProfile *, QObject *). ++ // Deleting it as our child on destruction is safe. ++ // ++ // Do not try to save a line of code by setting the parent on construction: ++ // ++ // WebEnginePage::WebEnginePage(QObject *parent) ++ // : QWebEnginePage(new QWebEngineProfile(this), parent) ++ // ++ // because the QWebEngineProfile constructor will call out to the QWebEnginePage ++ // and crash because the QWebEnginePage is not fully constructed yet. ++ profile()->setParent(this); ++ + init(); + } + +@@ -44,10 +60,6 @@ WebEnginePage::WebEnginePage(QWebEngineProfile *profile, QObject *parent) + init(); + } + +-WebEnginePage::~WebEnginePage() +-{ +-} +- + void WebEnginePage::init() + { + connect(profile(), &QWebEngineProfile::downloadRequested, this, &WebEnginePage::saveHtml); +diff --git a/webengineviewer/src/webenginepage.h b/webengineviewer/src/webenginepage.h +index be38368..95c7c76 100644 +--- a/webengineviewer/src/webenginepage.h ++++ b/webengineviewer/src/webenginepage.h +@@ -31,10 +31,41 @@ class WEBENGINEVIEWER_EXPORT WebEnginePage : public QWebEnginePage + { + Q_OBJECT + public: ++ /** ++ * Constructor. ++ * ++ * A private QWebEngineProfile, only applying to this QWebEnginePage, ++ * will be created to implement browser settings. It can be accessed via ++ * @c profile(), but it should not be shared or reused unless care is ++ * taken that the profile is not deleted until all of the QWebEnginePage's ++ * belonging to it are deleted first. ++ * ++ * @param parent The parent object ++ **/ + explicit WebEnginePage(QObject *parent = nullptr); +- explicit WebEnginePage(QWebEngineProfile *profile, QObject *parent = nullptr); + +- ~WebEnginePage() override; ++ /** ++ * Constructor. ++ * ++ * The specified QWebEngineProfile will be used. See the description of ++ * @c WebEnginePage(QObject *) and the API documentation of QWebEnginePage ++ * for caution regarding the lifetime of the profile. ++ * ++ * @param profile The profile to be used ++ * @param parent The parent object ++ * @deprecated Use the single argument constructor, which creates and uses ++ * a private profile. ++ **/ ++#ifndef WEBENGINEVIEWER_NO_DEPRECATED ++ explicit WEBENGINEVIEWER_DEPRECATED WebEnginePage(QWebEngineProfile *profile, QObject *parent = nullptr); ++#endif ++ ++ /** ++ * Destructor. If there is a private QWebEngineProfile then it will also ++ * be destroyed. ++ **/ ++ virtual ~WebEnginePage() override = default; ++ + WebEngineViewer::WebHitTest *hitTestContent(const QPoint &pos); + + void saveHtml(QWebEngineDownloadItem *download); +-- +cgit v1.1 + diff --git a/kde-apps/messagelib/messagelib-18.12.3-r1.ebuild b/kde-apps/messagelib/messagelib-18.12.3-r2.ebuild index 0059d1aa05f1..6dd0db1af4af 100644 --- a/kde-apps/messagelib/messagelib-18.12.3-r1.ebuild +++ b/kde-apps/messagelib/messagelib-18.12.3-r2.ebuild @@ -67,3 +67,5 @@ RDEPEND="${DEPEND} # bug 579630 RESTRICT+=" test" + +PATCHES=( "${FILESDIR}/${P}-qtwebengine-5.12.3.patch" ) # bug 686842 |