summaryrefslogtreecommitdiffstats
path: root/src/core/web_contents_adapter.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-07-24 10:40:08 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-07-24 10:40:08 +0200
commit5dd44f34a58b966ddc374d828b1979b9c689b1b5 (patch)
treec9beec83e2454bc7d001bdc116620b3cc323d7a4 /src/core/web_contents_adapter.cpp
parent57363264cd0ff4b2f45f5344e18436fe419e2e95 (diff)
parentb73e4ce6f7cfe35a85b9a41e1a5ab36783e5edb0 (diff)
Merge remote-tracking branch 'origin/5.13' into dev
Conflicts: src/3rdparty src/core/core_chromium.pri tests/auto/quick/qmltests/BLACKLIST tests/auto/quick/qquickwebengineview/BLACKLIST tests/auto/widgets/qwebenginepage/BLACKLIST tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp tests/auto/widgets/qwebengineview/BLACKLIST Change-Id: I11b26f5eebde29c4c62247b90e11e3ae40789fe4
Diffstat (limited to 'src/core/web_contents_adapter.cpp')
-rw-r--r--src/core/web_contents_adapter.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 2295d33c0..ee0b8cc39 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -693,19 +693,23 @@ void WebContentsAdapter::load(const QWebEngineHttpRequest &request)
}
}
- auto navigate = [](WebContentsAdapter *adapter, const content::NavigationController::LoadURLParams &params) {
+ auto navigate = [](QWeakPointer<WebContentsAdapter> weakAdapter, const content::NavigationController::LoadURLParams &params) {
+ WebContentsAdapter *adapter = weakAdapter.data();
+ if (!adapter)
+ return;
adapter->webContents()->GetController().LoadURLWithParams(params);
// Follow chrome::Navigate and invalidate the URL immediately.
adapter->m_webContentsDelegate->NavigationStateChanged(adapter->webContents(), content::INVALIDATE_TYPE_URL);
adapter->focusIfNecessary();
};
+ QWeakPointer<WebContentsAdapter> weakThis(sharedFromThis());
if (resizeNeeded) {
// Schedule navigation on the event loop.
base::PostTaskWithTraits(FROM_HERE, {content::BrowserThread::UI},
- base::BindOnce(navigate, this, std::move(params)));
+ base::BindOnce(navigate, std::move(weakThis), std::move(params)));
} else {
- navigate(this, params);
+ navigate(std::move(weakThis), params);
}
}
@@ -1051,6 +1055,7 @@ quint64 WebContentsAdapter::findText(const QString &subString, bool caseSensitiv
// waiting for it forever.
// Assume that any unfinished find has been unsuccessful when a new one is started
// to cover that case.
+ m_webContentsDelegate->setLastReceivedFindReply(m_lastFindRequestId);
m_adapterClient->didFindText(m_lastFindRequestId, 0);
}
@@ -1071,6 +1076,7 @@ quint64 WebContentsAdapter::findText(const QString &subString, bool caseSensitiv
void WebContentsAdapter::stopFinding()
{
CHECK_INITIALIZED();
+ m_webContentsDelegate->setLastReceivedFindReply(m_lastFindRequestId);
m_webContentsDelegate->setLastSearchedString(QString());
m_webContents->StopFinding(content::STOP_FIND_ACTION_KEEP_SELECTION);
}