diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-05-22 07:31:18 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-05-22 07:31:18 +0100 |
commit | 908778078736bd36f7a60a2d576d415cb8e000fa (patch) | |
tree | c6a4796c48b608c14dc7e9674cdbd38f905e3c15 /dev-qt/qtwebengine | |
parent | 185fa19bbf68a4d4dca534d2b46729207a177f16 (diff) |
gentoo resync : 22.05.2021
Diffstat (limited to 'dev-qt/qtwebengine')
5 files changed, 378 insertions, 194 deletions
diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest index b2ea2cd3c0ba..3a862c73c966 100644 --- a/dev-qt/qtwebengine/Manifest +++ b/dev-qt/qtwebengine/Manifest @@ -6,11 +6,10 @@ AUX qtwebengine-5.15.2_p20210224-fix-crash-w-app-locales.patch 5278 BLAKE2B 3dce AUX qtwebengine-5.15.2_p20210406-gcc11.patch 5995 BLAKE2B eb2a24020240c0fb87169c1a90769c085fe8fe676ddd4d7344aacc03c18f30921e2236399c3d3f34f5a86041a7bf623000823f56c552d9c6f5e0ee0e22451a44 SHA512 6290ffe2b229d1a6fcb9ce99617b7609a8a96080637464db635852d262b6b83c8dcbed1262315dcad6cbc891ddd7f66afec0e8cdb181accc1ee515da21ebb953 AUX qtwebengine-5.15.2_p20210406-glibc-2.33.patch 5361 BLAKE2B 92ead1bfe2be883e7438813441091e23466d060f278bb150f1d8f24e65cd847202142ed6a70a2d2bc683d2af90966ce25555f0d62bde1f3125fdf8a5343ed56f SHA512 827866ea1363273a8efc20793205ec20762ab4bd951fb837510d1cdd0a5df499958a1fb89566e4028f7781b48e439ed41dcfb127882475fc5fde4f82dcf78891 AUX qtwebengine-5.15.2_p20210406-icu69.patch 3299 BLAKE2B 0b1eaf1c86adc9f95195c1dde4d6a58e66394144f4d4052120748c7560f58b60dabf5b18b5957b8ab7a9777207266669408f4015448409d23a5fdada73e459aa SHA512 4ebfc3307a1ea3ef2297945369682620fdb6c6035590c23c33bc349d5485fbd52e0f046a33d4093a6ada3426cf893e2e7e5b8b9cb28bb9e77e07e605caf0e303 +AUX qtwebengine-5.15.2_p20210421-qtbug-91773.patch 18562 BLAKE2B 5b3575cb967fda8b2a49afb7e9c3993f07a3076e34bb817de17a639631e214566505c97bebfc55873bb407212c2be6c41406190c74625a6289e510d88a4b3b11 SHA512 e850d949f3342e63098c7a97201408cc0ffc6bcd184f10e31457ffa80fdfe4ba646de83d3478728f94bda82e704c2a2bd424ff68dfedefb8c3a849db6ea25f91 DIST qtwebengine-5.15.2-chromium87-ppc64le.tar.xz 28536 BLAKE2B 98f8e01e7026d9df1d30ae453d4394d3c4ad04c0620a2496235d45f5f1080c2280e040826cde7f72d9771bfc80d0c3df56c9dcbe4f763cec432ad56de37d64c5 SHA512 c90a76f44a9d720624016fd082ab3036f12e13b9789e869ebaf5e4774afca7d4187faf187f365f696d1a7eda05ca75516556ee9d291cdb3408d57cc4b23e2654 DIST qtwebengine-5.15.2_p20210224.tar.xz 320052028 BLAKE2B a1ebaae7cf114041576f4920de1e484bea70c715a470e83e7c47bd8ff95480fc4e408bba173990480732bd464a9eb07d304f4afdb90d943c0a8cbe1e8299df84 SHA512 939292511703f3a6d758d38f1c860ffacd003be65761b19f23e8817bf1121cb9e6351216f737126d8defb1c97ca877e1c6f352e7cfee8e9289274d0793348b51 -DIST qtwebengine-5.15.2_p20210406.tar.xz 320144324 BLAKE2B 45aafc32f4642fee5525f0504d61ed47c3085d5eff566271701805942ce5fcb2233655111592059775991da5b89dc1702031373f6ff171722ed163265d894daa SHA512 c4a0d5fec3247c04acc447c1c819d1e5dcb1d3c0cbb57a87a5cfa5c0c2b765e82c9f75a7297ba57303df5e1004d75dc554ffd70e24ecb8655126136672f38fdb DIST qtwebengine-5.15.2_p20210421.tar.xz 320142308 BLAKE2B 1ed6e3daad8e8da7336c1575f524f1474eb043a44a86eebdc2375e9a01dbb21a4bf622b01525c627ff5846bb375b19617ca78f418749d6e4ce53b376da0b8317 SHA512 3a57cc8eb1aab086ae2ef69b1b1eaac47827d1f460ff53d5954b0dcb6753cc0e5fb24db490ea186141e6659e26a59862e8096126450a9fde6ed1230c00e4ceaa -EBUILD qtwebengine-5.15.2_p20210224.ebuild 6069 BLAKE2B a718532bfafc9190988ea17046d78856ab9c2e272adb053f271347171444447d5735786b70ec217b1dde33135e50cd38a2689174ed2c4d9ce2cc2e1134f7cd6d SHA512 9c38e5017a75fd4654cb6fa02f3a28fc04bfe58c09fd0dc605bae2cc684518cba542485caac5ed2d7ef106125b6843408b017062a95d7f33c121c3d5bd825667 -EBUILD qtwebengine-5.15.2_p20210406.ebuild 6189 BLAKE2B 8eb34399ff626fcff3a4b88a6cdf6455e0b9e9ee94320d656c4bc3fdbbe8d08b65b29438019a50dc79530ff9ab905107d5c000030eb835fb77977ab880388700 SHA512 a6c5897c3747c0d4398247016389932986d42327ed6cd85f0b4e062a91d5bf8c1f1d4d602fc66b0caf571d4f7e3285a4983a4891c3d16a22180419b99434090a -EBUILD qtwebengine-5.15.2_p20210421.ebuild 6924 BLAKE2B e08cad6eb6ab5a3376bffa1e550f1afd9f76075e5bb3c1ec5aaf8e7f2f76129be7696b86351726d866b9560b86b8b53972f2b83b3a830dd8f0b1e6419fbb18b5 SHA512 789e4ea9e9df3aaec3ad0b44a3895feb6ac7aa8a879318a87bb4355e4669221a233dd22b5858822fc85a1282b8d6391c9a46f1a5fa081698d516619a4693da8c +EBUILD qtwebengine-5.15.2_p20210224.ebuild 6102 BLAKE2B 95277049fbf85a438c9faef8715334acb8c6e9dade7ff76dd654f5a768c0881253c08a8415e65a2b00d695c9ad4c021ff0e1db29450256ec48a2d49937c983fa SHA512 706b777e4238d774ab6c54574e9a0ee493203a829aadd1d4e43d6196ababb7b2de94ac9c8803d3cc30e503fd9457bbec1a98bd16d56d5da5fe05c03fafa38447 +EBUILD qtwebengine-5.15.2_p20210421.ebuild 7012 BLAKE2B 154796e002034c4a323cb654c67790748fc65be4e5674b4a868515b30d6893d3f9c092a62f40a3cd921e42b24cade6e00705adb6f8a9656e913f3290690ffed2 SHA512 9648d57406cf0f543c19822d3c232682c5cf6560c8174b57d1f385feaec465ae12991f679d53413ad527e7043e7137ec145340da3fe278d4d561c96c19f7b6e5 MISC metadata.xml 1269 BLAKE2B f95392929bcecbce9334108e3446d631e2a91d1aceb0fa6347496d2d0eeaff8cff55e08b7c3bb39fb8b51667988a6cc2b8e500143f2ebe0d78e6985a6f7af3c1 SHA512 7949854cf55f26750ded6787ce295762af7fd16600f8b251b25e1c9dd4d643338ed4c3b2a8a3405a2c427ed8b5a9ad13a8566a640161768d4dbf6db7e54811a3 diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210421-qtbug-91773.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210421-qtbug-91773.patch new file mode 100644 index 000000000000..88e7b893e302 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210421-qtbug-91773.patch @@ -0,0 +1,372 @@ +diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp +index 5597c69f9..2cd48907b 100644 +--- a/src/core/web_contents_adapter.cpp ++++ b/src/core/web_contents_adapter.cpp +@@ -716,8 +716,7 @@ void WebContentsAdapter::load(const QWebEngineHttpRequest &request) + m_adapterClient->loadFinished(false, request.url(), false, + net::ERR_DISALLOWED_URL_SCHEME, + QCoreApplication::translate("WebContentsAdapter", +- "HTTP-POST data can only be sent over HTTP(S) protocol"), +- false); ++ "HTTP-POST data can only be sent over HTTP(S) protocol")); + return; + } + params.post_data = network::ResourceRequestBody::CreateFromBytes( +@@ -773,7 +772,7 @@ void WebContentsAdapter::setContent(const QByteArray &data, const QString &mimeT + + GURL dataUrlToLoad(urlString); + if (dataUrlToLoad.spec().size() > url::kMaxURLChars) { +- m_adapterClient->loadFinished(false, baseUrl, false, net::ERR_ABORTED, QString(), false); ++ m_adapterClient->loadFinished(false, baseUrl, false, net::ERR_ABORTED, QString()); + return; + } + content::NavigationController::LoadURLParams params((dataUrlToLoad)); +@@ -1995,6 +1994,7 @@ void WebContentsAdapter::discard() + if (m_webContents->IsLoading()) { + m_webContentsDelegate->didFailLoad(m_webContentsDelegate->url(webContents()), net::Error::ERR_ABORTED, + QStringLiteral("Discarded")); ++ m_webContentsDelegate->DidStopLoading(); + } + + content::WebContents::CreateParams createParams(m_profileAdapter->profile()); +diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h +index 267266d81..afc43806a 100644 +--- a/src/core/web_contents_adapter_client.h ++++ b/src/core/web_contents_adapter_client.h +@@ -466,8 +466,7 @@ public: + virtual void loadStarted(const QUrl &provisionalUrl, bool isErrorPage = false) = 0; + virtual void loadCommitted() = 0; + virtual void loadVisuallyCommitted() = 0; +- virtual void loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, +- const QString &errorDescription, bool triggersErrorPage) = 0; ++ virtual void loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription) = 0; + virtual void focusContainer() = 0; + virtual void unhandledKeyEvent(QKeyEvent *event) = 0; + virtual QSharedPointer<WebContentsAdapter> +diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp +index 1e92a46f8..f0e4130e8 100644 +--- a/src/core/web_contents_delegate_qt.cpp ++++ b/src/core/web_contents_delegate_qt.cpp +@@ -259,14 +259,12 @@ void WebContentsDelegateQt::CloseContents(content::WebContents *source) + + void WebContentsDelegateQt::LoadProgressChanged(double progress) + { +- QUrl current_url(m_viewClient->webContentsAdapter()->getNavigationEntryOriginalUrl(m_viewClient->webContentsAdapter()->currentNavigationEntryIndex())); +- int p = qMin(qRound(progress * 100), 100); +- +- if (!m_loadingErrorFrameList.isEmpty() || !m_loadProgressMap.contains(current_url) || m_loadProgressMap[current_url] == 100 || p == 100) ++ if (!m_loadingErrorFrameList.isEmpty() || !m_loadingInfo.isLoading()) // suppress signals that aren't between loadStarted and loadFinished + return; + +- if (p > m_loadProgressMap[current_url]) { // ensure strict monotonic increase +- m_loadProgressMap[current_url] = p; ++ int p = qMin(qRound(progress * 100), 100); ++ if (p > m_loadingInfo.progress) { // ensure strict monotonic increase ++ m_loadingInfo.progress = p; + m_viewClient->loadProgressChanged(p); + } + } +@@ -339,35 +337,21 @@ void WebContentsDelegateQt::RenderViewHostChanged(content::RenderViewHost *, con + } + } + +-void WebContentsDelegateQt::EmitLoadStarted(const QUrl &url, bool isErrorPage) ++void WebContentsDelegateQt::emitLoadStarted(bool isErrorPage) + { +- m_isDocumentEmpty = true; +- m_viewClient->loadStarted(url, isErrorPage); +- m_viewClient->updateNavigationActions(); +- +- if ((url.hasFragment() || m_lastLoadedUrl.hasFragment()) +- && url.adjusted(QUrl::RemoveFragment) == m_lastLoadedUrl.adjusted(QUrl::RemoveFragment) +- && !m_isNavigationCommitted) { +- m_loadProgressMap.insert(url, 100); +- m_lastLoadedUrl = url; +- m_viewClient->loadProgressChanged(100); ++ // only report first ever load start or separate one for error page only ++ if (!isErrorPage && m_loadingInfo.isLoading()) // already running + return; +- } + +- if (!m_loadProgressMap.isEmpty()) { +- QMap<QUrl, int>::iterator it = m_loadProgressMap.begin(); +- while (it != m_loadProgressMap.end()) { +- if (it.value() == 100) { +- it = m_loadProgressMap.erase(it); +- continue; +- } +- ++it; +- } ++ m_isDocumentEmpty = true; // reset to default which may only be overridden on actual resource load complete ++ if (!isErrorPage) { ++ m_loadingInfo.progress = 0; ++ m_viewClient->loadStarted(m_loadingInfo.url, false); ++ m_viewClient->updateNavigationActions(); ++ m_viewClient->loadProgressChanged(0); ++ } else { ++ m_viewClient->loadStarted(toQt(GURL(content::kUnreachableWebDataURL)), true); + } +- +- m_lastLoadedUrl = url; +- m_loadProgressMap.insert(url, 0); +- m_viewClient->loadProgressChanged(0); + } + + void WebContentsDelegateQt::DidStartNavigation(content::NavigationHandle *navigation_handle) +@@ -375,34 +359,41 @@ void WebContentsDelegateQt::DidStartNavigation(content::NavigationHandle *naviga + if (!webEngineSettings()->testAttribute(WebEngineSettings::ErrorPageEnabled)) + navigation_handle->SetSilentlyIgnoreErrors(); + +- if (!navigation_handle->IsInMainFrame()) ++ if (!navigation_handle->IsInMainFrame() || !web_contents()->IsLoadingToDifferentDocument()) + return; + + + m_loadingErrorFrameList.clear(); + m_faviconManager->resetCandidates(); +- EmitLoadStarted(toQt(navigation_handle->GetURL())); ++ ++ m_loadingInfo.url = toQt(navigation_handle->GetURL()); ++ // IsErrorPage is only set after navigation commit, so check it otherwise: error page shouldn't have navigation entry ++ bool isErrorPage = m_loadingInfo.triggersErrorPage && !navigation_handle->GetNavigationEntry(); ++ emitLoadStarted(isErrorPage); + } + +-void WebContentsDelegateQt::EmitLoadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription, bool triggersErrorPage) ++void WebContentsDelegateQt::emitLoadFinished(bool isErrorPage) + { +- Q_ASSERT(!isErrorPage || webEngineSettings()->testAttribute(WebEngineSettings::ErrorPageEnabled)); +- Q_ASSERT((triggersErrorPage && webEngineSettings()->testAttribute(WebEngineSettings::ErrorPageEnabled)) || !triggersErrorPage); +- +- // When error page enabled we don't need to send the error page load finished signal +- if (m_loadProgressMap[url] == 100) ++ if (!m_loadingInfo.isLoading()) // not currently running + return; + +- m_lastLoadedUrl = url; +- m_loadProgressMap[url] = 100; +- m_isNavigationCommitted = false; +- m_viewClient->loadProgressChanged(100); ++ Q_ASSERT(!isErrorPage || webEngineSettings()->testAttribute(WebEngineSettings::ErrorPageEnabled)); ++ Q_ASSERT((m_loadingInfo.triggersErrorPage && webEngineSettings()->testAttribute(WebEngineSettings::ErrorPageEnabled)) || !m_loadingInfo.triggersErrorPage); ++ ++ if (!isErrorPage) { ++ if (m_loadingInfo.progress < 100) { ++ m_loadingInfo.progress = 100; ++ m_viewClient->loadProgressChanged(100); ++ } + +- m_viewClient->loadFinished(success, url, isErrorPage, errorCode, errorDescription, triggersErrorPage); +- m_viewClient->updateNavigationActions(); ++ m_viewClient->loadFinished(m_loadingInfo.success, m_loadingInfo.url, false, m_loadingInfo.errorCode, m_loadingInfo.errorDescription); ++ m_viewClient->updateNavigationActions(); ++ } else { ++ m_viewClient->loadFinished(false, toQt(GURL(content::kUnreachableWebDataURL)), true, 0, QString()); ++ } + } + +-void WebContentsDelegateQt::EmitLoadCommitted() ++void WebContentsDelegateQt::emitLoadCommitted() + { + m_findTextHelper->handleLoadCommitted(); + m_viewClient->loadCommitted(); +@@ -422,8 +413,7 @@ void WebContentsDelegateQt::DidFinishNavigation(content::NavigationHandle *navig + profileAdapter->visitedLinksManager()->addUrl(url); + } + +- m_isNavigationCommitted = true; +- EmitLoadCommitted(); ++ emitLoadCommitted(); + } + + // Success is reported by DidFinishLoad, but DidFailLoad is now dead code and needs to be handled below +@@ -440,11 +430,11 @@ void WebContentsDelegateQt::DidFinishNavigation(content::NavigationHandle *navig + // Now report we are starting to load an error-page. + m_loadingErrorFrameList.append(navigation_handle->GetRenderFrameHost()->GetRoutingID()); + m_faviconManager->resetCandidates(); +- EmitLoadStarted(toQt(GURL(content::kUnreachableWebDataURL)), true); ++ emitLoadStarted(true); + + // If it is already committed we will not see another DidFinishNavigation call or a DidFinishLoad call. + if (navigation_handle->HasCommitted()) +- EmitLoadCommitted(); ++ emitLoadCommitted(); + } + } + +@@ -486,6 +476,9 @@ void WebContentsDelegateQt::DidStopLoading() + + if (m_loadingState == LoadingState::Loading) + setLoadingState(LoadingState::Loaded); ++ ++ emitLoadFinished(); ++ m_loadingInfo.clear(); + } + + void WebContentsDelegateQt::didFailLoad(const QUrl &url, int errorCode, const QString &errorDescription) +@@ -495,7 +488,11 @@ void WebContentsDelegateQt::didFailLoad(const QUrl &url, int errorCode, const QS + // Delay notifying failure until the error-page is done loading. + // Error-pages are not loaded on failures due to abort. + bool aborted = (errorCode == -3 /* ERR_ABORTED*/ ); +- EmitLoadFinished(false /* success */ , url, false /* isErrorPage */, errorCode, errorDescription, errorPageEnabled && !aborted); ++ m_loadingInfo.success = false; ++ m_loadingInfo.url = url; ++ m_loadingInfo.errorCode = errorCode; ++ m_loadingInfo.errorDescription = errorDescription; ++ m_loadingInfo.triggersErrorPage = errorPageEnabled && !aborted; + } + + void WebContentsDelegateQt::DidFailLoad(content::RenderFrameHost* render_frame_host, const GURL& validated_url, int error_code) +@@ -511,8 +508,7 @@ void WebContentsDelegateQt::DidFailLoad(content::RenderFrameHost* render_frame_h + Q_ASSERT(error_code == -3 /* ERR_ABORTED */); + m_loadingErrorFrameList.removeOne(render_frame_host->GetRoutingID()); + m_viewClient->iconChanged(QUrl()); +- +- EmitLoadFinished(false /* success */, toQt(validated_url), true /* isErrorPage */); ++ emitLoadFinished(/* isErrorPage = */true); + return; + } + // Qt6: Consider getting rid of the error_description (Chromium already has) +@@ -532,7 +528,7 @@ void WebContentsDelegateQt::DidFinishLoad(content::RenderFrameHost* render_frame + // Trigger LoadFinished signal for main frame's error page only. + if (!render_frame_host->GetParent()) { + m_viewClient->iconChanged(QUrl()); +- EmitLoadFinished(true /* success */, toQt(validated_url), true /* isErrorPage */); ++ emitLoadFinished(/* isErrorPage = */true); + } + + return; +@@ -550,7 +546,11 @@ void WebContentsDelegateQt::DidFinishLoad(content::RenderFrameHost* render_frame + int http_statuscode = entry ? entry->GetHttpStatusCode() : 0; + bool errorPageEnabled = webEngineSettings()->testAttribute(WebEngineSettings::ErrorPageEnabled); + bool triggersErrorPage = errorPageEnabled && (http_statuscode >= 400) && m_isDocumentEmpty; +- EmitLoadFinished(http_statuscode < 400, toQt(validated_url), false /* isErrorPage */, http_statuscode, QString(), triggersErrorPage); ++ ++ m_loadingInfo.success = http_statuscode < 400; ++ m_loadingInfo.url = toQt(validated_url); ++ m_loadingInfo.errorCode = http_statuscode; ++ m_loadingInfo.triggersErrorPage = triggersErrorPage; + } + + void WebContentsDelegateQt::DidUpdateFaviconURL(content::RenderFrameHost *render_frame_host, const std::vector<blink::mojom::FaviconURLPtr> &candidates) +diff --git a/src/core/web_contents_delegate_qt.h b/src/core/web_contents_delegate_qt.h +index 5a3dff6e9..7149f6bff 100644 +--- a/src/core/web_contents_delegate_qt.h ++++ b/src/core/web_contents_delegate_qt.h +@@ -216,9 +216,9 @@ private: + WindowOpenDisposition disposition, const gfx::Rect &initial_pos, + const QUrl &url, + bool user_gesture); +- void EmitLoadStarted(const QUrl &url, bool isErrorPage = false); +- void EmitLoadFinished(bool success, const QUrl &url, bool isErrorPage = false, int errorCode = 0, const QString &errorDescription = QString(), bool triggersErrorPage = false); +- void EmitLoadCommitted(); ++ void emitLoadStarted(bool isErrorPage = false); ++ void emitLoadFinished(bool isErrorPage = false); ++ void emitLoadCommitted(); + + LoadingState determineLoadingState(content::WebContents *contents); + void setLoadingState(LoadingState state); +@@ -242,9 +242,17 @@ private: + int m_desktopStreamCount = 0; + mutable bool m_pendingUrlUpdate = false; + +- QMap<QUrl, int> m_loadProgressMap; +- QUrl m_lastLoadedUrl; +- bool m_isNavigationCommitted = false; ++ struct LoadingInfo { ++ bool success = false; ++ int progress = -1; ++ bool isLoading() const { return progress >= 0; } ++ QUrl url; ++ int errorCode = 0; ++ QString errorDescription; ++ bool triggersErrorPage = false; ++ void clear() { *this = LoadingInfo(); } ++ } m_loadingInfo; ++ + bool m_isDocumentEmpty = true; + base::WeakPtrFactory<WebContentsDelegateQt> m_weakPtrFactory { this }; + }; +diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp +index 6ab1c97cb..1de7f1c7f 100644 +--- a/src/webengine/api/qquickwebengineview.cpp ++++ b/src/webengine/api/qquickwebengineview.cpp +@@ -496,11 +496,9 @@ Q_STATIC_ASSERT(static_cast<int>(WebEngineError::NoErrorDomain) == static_cast<i + Q_STATIC_ASSERT(static_cast<int>(WebEngineError::CertificateErrorDomain) == static_cast<int>(QQuickWebEngineView::CertificateErrorDomain)); + Q_STATIC_ASSERT(static_cast<int>(WebEngineError::DnsErrorDomain) == static_cast<int>(QQuickWebEngineView::DnsErrorDomain)); + +-void QQuickWebEngineViewPrivate::loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, +- const QString &errorDescription, bool triggersErrorPage) ++void QQuickWebEngineViewPrivate::loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription) + { + Q_Q(QQuickWebEngineView); +- Q_UNUSED(triggersErrorPage); + + if (isErrorPage) { + #if QT_CONFIG(webengine_testsupport) +diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h +index ebe55c345..ec535298b 100644 +--- a/src/webengine/api/qquickwebengineview_p_p.h ++++ b/src/webengine/api/qquickwebengineview_p_p.h +@@ -116,8 +116,7 @@ public: + void loadStarted(const QUrl &provisionalUrl, bool isErrorPage = false) override; + void loadCommitted() override; + void loadVisuallyCommitted() override; +- void loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, +- const QString &errorDescription, bool triggersErrorPage) override; ++ void loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription) override; + void focusContainer() override; + void unhandledKeyEvent(QKeyEvent *event) override; + QSharedPointer<QtWebEngineCore::WebContentsAdapter> +diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp +index e08afed44..b32c15039 100644 +--- a/src/webenginewidgets/api/qwebenginepage.cpp ++++ b/src/webenginewidgets/api/qwebenginepage.cpp +@@ -282,28 +282,20 @@ void QWebEnginePagePrivate::loadStarted(const QUrl &provisionalUrl, bool isError + QTimer::singleShot(0, q, &QWebEnginePage::loadStarted); + } + +-void QWebEnginePagePrivate::loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, +- const QString &errorDescription, bool triggersErrorPage) ++void QWebEnginePagePrivate::loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription) + { + Q_Q(QWebEnginePage); + Q_UNUSED(url); + Q_UNUSED(errorCode); + Q_UNUSED(errorDescription); + +- if (isErrorPage) { +- QTimer::singleShot(0, q, [q](){ +- emit q->loadFinished(false); +- }); ++ if (isErrorPage) + return; +- } + + isLoading = false; +- Q_ASSERT((success && !triggersErrorPage) || !success); +- if (!triggersErrorPage) { +- QTimer::singleShot(0, q, [q, success](){ +- emit q->loadFinished(success); +- }); +- } ++ QTimer::singleShot(0, q, [q, success](){ ++ emit q->loadFinished(success); ++ }); + } + + void QWebEnginePagePrivate::didPrintPageToPdf(const QString &filePath, bool success) +diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h +index 82ce99503..ae3ab5d25 100644 +--- a/src/webenginewidgets/api/qwebenginepage_p.h ++++ b/src/webenginewidgets/api/qwebenginepage_p.h +@@ -107,8 +107,7 @@ public: + void loadStarted(const QUrl &provisionalUrl, bool isErrorPage = false) override; + void loadCommitted() override { } + void loadVisuallyCommitted() override { } +- void loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, +- const QString &errorDescription, bool triggersErrorPage) override; ++ void loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription) override; + void focusContainer() override; + void unhandledKeyEvent(QKeyEvent *event) override; + QSharedPointer<QtWebEngineCore::WebContentsAdapter> diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210224.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210224.ebuild index aab233590509..756f19123c42 100644 --- a/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210224.ebuild +++ b/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210224.ebuild @@ -86,6 +86,7 @@ DEPEND="${RDEPEND} dev-util/re2c net-libs/nodejs sys-devel/bison + ppc64? ( >=dev-util/gn-0.1807 ) " PATCHES=( diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210406.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210406.ebuild deleted file mode 100644 index 8e61171efc8b..000000000000 --- a/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210406.ebuild +++ /dev/null @@ -1,190 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python2_7 ) -QTVER=$(ver_cut 1-3) -inherit multiprocessing python-any-r1 qt5-build - -DESCRIPTION="Library for rendering dynamic web content in Qt5 C++ and QML applications" - -if [[ ${QT5_BUILD_TYPE} == release ]]; then - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" - if [[ ${PV} == ${QTVER}_p* ]]; then - SRC_URI="https://dev.gentoo.org/~asturm/distfiles/${P}.tar.xz" - S="${WORKDIR}/${P}" - QT5_BUILD_DIR="${S}_build" - fi -fi - -# patchset based on https://github.com/chromium-ppc64le releases -SRC_URI+=" ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-5.15.2-chromium87-ppc64le.tar.xz )" - -IUSE="alsa bindist designer geolocation +jumbo-build kerberos pulseaudio +system-ffmpeg +system-icu widgets" -REQUIRED_USE="designer? ( widgets )" - -RDEPEND=" - app-arch/snappy:= - dev-libs/glib:2 - dev-libs/nspr - dev-libs/nss - dev-libs/expat - dev-libs/libevent:= - dev-libs/libxml2[icu] - dev-libs/libxslt - dev-libs/re2:= - ~dev-qt/qtcore-${QTVER} - ~dev-qt/qtdeclarative-${QTVER} - ~dev-qt/qtgui-${QTVER} - ~dev-qt/qtnetwork-${QTVER} - ~dev-qt/qtprintsupport-${QTVER} - ~dev-qt/qtwebchannel-${QTVER}[qml] - media-libs/fontconfig - media-libs/freetype - media-libs/harfbuzz:= - media-libs/lcms:2 - media-libs/libjpeg-turbo:= - media-libs/libpng:0= - >=media-libs/libvpx-1.5:=[svc(+)] - media-libs/libwebp:= - media-libs/mesa[egl,X(+)] - media-libs/opus - sys-apps/dbus - sys-apps/pciutils - sys-libs/zlib[minizip] - virtual/libudev - x11-libs/libdrm - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXcursor - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXi - x11-libs/libXrandr - x11-libs/libXrender - x11-libs/libXScrnSaver - x11-libs/libXtst - alsa? ( media-libs/alsa-lib ) - designer? ( ~dev-qt/designer-${QTVER} ) - geolocation? ( ~dev-qt/qtpositioning-${QTVER} ) - kerberos? ( virtual/krb5 ) - pulseaudio? ( media-sound/pulseaudio:= ) - system-ffmpeg? ( media-video/ffmpeg:0= ) - system-icu? ( >=dev-libs/icu-68.2:= ) - widgets? ( - ~dev-qt/qtdeclarative-${QTVER}[widgets] - ~dev-qt/qtwidgets-${QTVER} - ) -" -DEPEND="${RDEPEND}" -BDEPEND=" - ${PYTHON_DEPS} - dev-util/gperf - dev-util/ninja - dev-util/re2c - net-libs/nodejs[ssl] - sys-devel/bison -" - -PATCHES=( - "${FILESDIR}/${PN}-5.15.0-disable-fatal-warnings.patch" # bug 695446 - "${FILESDIR}/${PN}-5.15.2_p20210224-chromium-87-v8-icu68.patch" # downstream, bug 757606 - "${FILESDIR}/${PN}-5.15.2_p20210224-disable-git.patch" # downstream snapshot fix - "${FILESDIR}/${P}-glibc-2.33.patch" # by Fedora, bug 769989 - "${FILESDIR}/${P}-gcc11.patch" # by Fedora, bug 768261 - "${FILESDIR}/${P}-icu69.patch" # bug 781236 -) - -src_prepare() { - if [[ ${PV} == ${QTVER}_p* ]]; then - # This is made from git, and for some reason will fail w/o .git directories. - mkdir -p .git src/3rdparty/chromium/.git || die - - # We need to make sure this integrates well into Qt 5.15.2 installation. - # Otherwise revdeps fail w/o heavy changes. This is the simplest way to do it. - sed -e "/^MODULE_VERSION/s/5.*/${QTVER}/" -i .qmake.conf || die - fi - - # QTBUG-88657 - jumbo-build could still make trouble - if ! use jumbo-build; then - sed -i -e 's|use_jumbo_build=true|use_jumbo_build=false|' \ - src/buildtools/config/common.pri || die - fi - - # bug 630834 - pass appropriate options to ninja when building GN - sed -e "s/\['ninja'/&, '-j$(makeopts_jobs)', '-l$(makeopts_loadavg "${MAKEOPTS}" 0)', '-v'/" \ - -i src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py || die - - # bug 620444 - ensure local headers are used - find "${S}" -type f -name "*.pr[fio]" | \ - xargs sed -i -e 's|INCLUDEPATH += |&$${QTWEBENGINE_ROOT}_build/include $${QTWEBENGINE_ROOT}/include |' || die - - if use system-icu; then - # Sanity check to ensure that bundled copy of ICU is not used. - # Whole src/3rdparty/chromium/third_party/icu directory cannot be deleted because - # src/3rdparty/chromium/third_party/icu/BUILD.gn is used by build system. - # If usage of headers of bundled copy of ICU occurs, then lists of shim headers in - # shim_headers("icui18n_shim") and shim_headers("icuuc_shim") in - # src/3rdparty/chromium/third_party/icu/BUILD.gn should be updated. - local file - while read file; do - echo "#error This file should not be used!" > "${file}" || die - done < <(find src/3rdparty/chromium/third_party/icu -type f "(" -name "*.c" -o -name "*.cpp" -o -name "*.h" ")" 2>/dev/null) - fi - - qt_use_disable_config alsa webengine-alsa src/buildtools/config/linux.pri - qt_use_disable_config pulseaudio webengine-pulseaudio src/buildtools/config/linux.pri - - qt_use_disable_mod designer webenginewidgets src/plugins/plugins.pro - - qt_use_disable_mod widgets widgets src/src.pro - - qt5-build_src_prepare - - # we need to generate ppc64 stuff because upstream does not ship it yet - if use ppc64; then - einfo "Patching for ppc64le and generating build files" - eapply "${FILESDIR}/qtwebengine-5.15.2-enable-ppc64.patch" - pushd src/3rdparty/chromium > /dev/null || die - eapply -p0 "${WORKDIR}/${PN}-ppc64le" - popd > /dev/null || die - pushd src/3rdparty/chromium/third_party/libvpx > /dev/null || die - mkdir -vp source/config/linux/ppc64 || die - mkdir -p source/libvpx/test || die - touch source/libvpx/test/test.mk || die - ./generate_gni.sh || die - popd >/dev/null || die - fi -} - -src_configure() { - export NINJA_PATH=/usr/bin/ninja - export NINJAFLAGS="${NINJAFLAGS:--j$(makeopts_jobs) -l$(makeopts_loadavg "${MAKEOPTS}" 0) -v}" - - local myqmakeargs=( - -- - -no-build-qtpdf - -printing-and-pdf - -system-opus - -system-webp - $(usex alsa '-alsa' '-no-alsa') - $(usex bindist '-no-proprietary-codecs' '-proprietary-codecs') - $(usex geolocation '-webengine-geolocation' '-no-webengine-geolocation') - $(usex kerberos '-webengine-kerberos' '-no-webengine-kerberos') - $(usex pulseaudio '-pulseaudio' '-no-pulseaudio') - $(usex system-ffmpeg '-system-ffmpeg' '-qt-ffmpeg') - $(usex system-icu '-webengine-icu' '-no-webengine-icu') - ) - qt5-build_src_configure -} - -src_install() { - qt5-build_src_install - - # bug 601472 - if [[ ! -f ${D}${QT5_LIBDIR}/libQt5WebEngine.so ]]; then - die "${CATEGORY}/${PF} failed to build anything. Please report to https://bugs.gentoo.org/" - fi -} diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210421.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210421.ebuild index 3aaec6f38074..530c311847af 100644 --- a/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210421.ebuild +++ b/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210421.ebuild @@ -94,6 +94,7 @@ BDEPEND=" dev-util/re2c net-libs/nodejs[ssl] sys-devel/bison + ppc64? ( >=dev-util/gn-0.1807 ) " PATCHES=( @@ -103,6 +104,7 @@ PATCHES=( "${FILESDIR}/${PN}-5.15.2_p20210406-glibc-2.33.patch" # by Fedora, bug 769989 "${FILESDIR}/${PN}-5.15.2_p20210406-gcc11.patch" # by Fedora, bug 768261 "${FILESDIR}/${PN}-5.15.2_p20210406-icu69.patch" # bug 781236 + "${FILESDIR}/${P}-qtbug-91773.patch" # in Qt "5.15.5" ) src_unpack() { |