1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-20 18:56:34 +01:00

WebView: Don't cache form data when adding create search engine action

This commit is contained in:
David Rosca 2015-09-30 15:05:28 +02:00
parent 6a2579a22c
commit d10c47a825
2 changed files with 9 additions and 7 deletions

View File

@ -880,16 +880,16 @@ void WebView::createSelectedTextContextMenu(QMenu* menu, const WebHitTestResult
void WebView::checkForForm(QAction *action, const QPoint &pos) void WebView::checkForForm(QAction *action, const QPoint &pos)
{ {
m_formData.clear(); m_clickedPos = pos;
QPointer<QAction> act = action; QPointer<QAction> act = action;
page()->runJavaScript(Scripts::getFormData(pos), [this, act](const QVariant &res) { page()->runJavaScript(Scripts::getFormData(pos), [this, act](const QVariant &res) {
m_formData = res.toMap(); const QVariantMap &map = res.toMap();
if (!act || m_formData.isEmpty()) if (!act || map.isEmpty())
return; return;
const QUrl url = m_formData.value(QSL("action")).toUrl(); const QUrl url = map.value(QSL("action")).toUrl();
const QString method = m_formData.value(QSL("method")).toString(); const QString method = map.value(QSL("method")).toString();
if (!url.isEmpty() && (method == QL1S("get") || method == QL1S("post"))) { if (!url.isEmpty() && (method == QL1S("get") || method == QL1S("post"))) {
act->setVisible(true); act->setVisible(true);
@ -902,7 +902,9 @@ void WebView::checkForForm(QAction *action, const QPoint &pos)
void WebView::createSearchEngine() void WebView::createSearchEngine()
{ {
mApp->searchEnginesManager()->addEngineFromForm(m_formData, this); page()->runJavaScript(Scripts::getFormData(m_clickedPos), [this](const QVariant &res) {
mApp->searchEnginesManager()->addEngineFromForm(res.toMap(), this);
});
} }
#if QTWEBENGINE_DISABLED #if QTWEBENGINE_DISABLED

View File

@ -177,13 +177,13 @@ private:
int m_progress; int m_progress;
QUrl m_clickedUrl; QUrl m_clickedUrl;
QPoint m_clickedPos;
WebPage* m_page; WebPage* m_page;
bool m_actionsInitialized; bool m_actionsInitialized;
bool m_firstLoad; bool m_firstLoad;
QObject *m_rwhvqt; QObject *m_rwhvqt;
QVariantMap m_formData;
static bool s_forceContextMenuOnMouseRelease; static bool s_forceContextMenuOnMouseRelease;
}; };