pmaports/luna/qt5-qtwebengine/patches-luna/0009-QQuickWebEngineNewViewRequest-use-initialTargetUrl-f.patch
Oliver Smith ca92b35948 Disable LuneOS UI (see #1459) [skip ci]
Moved from aports/main to aports/luna, so we can disable the entire
folder from building in the binary repository:
* qt5-qtwebengine
* postmarketos-ui-luna
2018-05-02 22:38:19 +02:00

97 lines
3.6 KiB
Diff

From 65b63fdd3da0a11126c4fedc9f7d1c87f422707d Mon Sep 17 00:00:00 2001
From: Christophe Chapuis <chris.chapuis@gmail.com>
Date: Tue, 20 Oct 2015 20:32:08 +0200
Subject: [PATCH 09/18] QQuickWebEngineNewViewRequest: use initialTargetUrl for
url()
The initial target url is stored in the WebContentsView when the window creation is requested.
Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com>
---
src/core/web_contents_adapter.cpp | 11 +++++++++++
src/core/web_contents_adapter.h | 1 +
src/core/web_contents_view_qt.h | 4 ++++
src/webengine/api/qquickwebenginenewviewrequest.cpp | 4 ++--
4 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 9c78d67..3761599 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -655,6 +655,17 @@ QUrl WebContentsAdapter::iconUrl() const
return QUrl();
}
+QUrl WebContentsAdapter::initialTargetUrl() const
+{
+ Q_D(const WebContentsAdapter);
+ content::WebContentsView *contentsView = static_cast<content::WebContentsImpl*>(d->webContents.get())->GetView();
+ if (contentsView) {
+ return toQt(contentsView->getInitialTargetURL());
+ }
+
+ return QUrl();
+}
+
QString WebContentsAdapter::pageTitle() const
{
Q_D(const WebContentsAdapter);
diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h
index 46c8d26..bf5c969 100644
--- a/src/core/web_contents_adapter.h
+++ b/src/core/web_contents_adapter.h
@@ -94,6 +94,7 @@ public:
QString pageTitle() const;
QString selectedText() const;
QUrl iconUrl() const;
+ QUrl initialTargetUrl() const;
void undo();
void redo();
diff --git a/src/core/web_contents_view_qt.h b/src/core/web_contents_view_qt.h
index 5f19b84..181b735 100644
--- a/src/core/web_contents_view_qt.h
+++ b/src/core/web_contents_view_qt.h
@@ -45,6 +45,7 @@
#include "content/browser/web_contents/web_contents_view.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/render_widget_host.h"
+#include "url/gurl.h"
#include "qtwebenginecoreglobal_p.h"
#include "render_widget_host_view_qt.h"
@@ -73,6 +74,8 @@ public:
virtual void setWindowAdditionalFeatures(const std::vector<base::string16> &additional_features) Q_DECL_OVERRIDE { m_additional_features = additional_features; }
virtual std::vector<base::string16> getWindowAdditionalFeatures() Q_DECL_OVERRIDE { return m_additional_features; }
+ virtual void setInitialTargetURL(const GURL &initialURL) Q_DECL_OVERRIDE { m_initialURL = initialURL; }
+ virtual GURL getInitialTargetURL() Q_DECL_OVERRIDE { return m_initialURL; }
content::RenderWidgetHostViewBase *CreateViewForWidget(content::RenderWidgetHost* render_widget_host, bool is_guest_view_hack) override;
@@ -131,6 +134,7 @@ public:
#endif // defined(OS_MACOSX)
private:
+ GURL m_initialURL;
content::WebContents *m_webContents;
WebContentsAdapterClient *m_client;
WebContentsAdapterClient *m_factoryClient;
diff --git a/src/webengine/api/qquickwebenginenewviewrequest.cpp b/src/webengine/api/qquickwebenginenewviewrequest.cpp
index a369889..2272aa1 100644
--- a/src/webengine/api/qquickwebenginenewviewrequest.cpp
+++ b/src/webengine/api/qquickwebenginenewviewrequest.cpp
@@ -99,8 +99,8 @@ const QStringList &QQuickWebEngineNewViewRequest::additionalFeatures() const
QUrl QQuickWebEngineNewViewRequest::url() const
{
- if (!m_adapter) {
- return m_adapter->activeUrl();
+ if (m_adapter) {
+ return m_adapter->initialTargetUrl();
}
return QUrl();
}
--
2.7.4