Hello community,

here is the log from the commit of package signon-ui for openSUSE:Factory 
checked in at 2018-10-04 18:56:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/signon-ui (Old)
 and      /work/SRC/openSUSE:Factory/.signon-ui.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "signon-ui"

Thu Oct  4 18:56:54 2018 rev:2 rq:639229 version:0.17+20171022

Changes:
--------
--- /work/SRC/openSUSE:Factory/signon-ui/signon-ui.changes      2015-05-11 
19:23:20.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.signon-ui.new/signon-ui.changes 2018-10-04 
18:56:55.739518783 +0200
@@ -1,0 +2,24 @@
+Sat Sep 29 13:37:39 UTC 2018 - fab...@ritter-vogt.de
+
+- Add patch to return a proper username again:
+  * 0001-Reintroduce-the-username-field-reading-with-webkit-o.patch
+
+-------------------------------------------------------------------
+Sat Sep  8 16:44:28 UTC 2018 - fab...@ritter-vogt.de
+
+- Update to webengine branch (4368bb77d9d1abc2978af514225ba4a42c29a646):
+  * No WebKit dependency anymore
+  * While it has missing features, it's important to switch to a
+    maintained browser engine.
+  * Does not support webkit-options.d, which means usernames will
+    be blank and autologin non-functional. Tokens are still saved.
+- Add patch to fix bug in WebEngine integration:
+  * 0001-Fix-WebEngine-cache-directory-path.patch
+
+-------------------------------------------------------------------
+Fri Nov  3 09:30:22 UTC 2017 - buschman...@opensuse.org
+
+- Update to version 0.17+15.10.20150810
+  * no changelog available
+
+-------------------------------------------------------------------

Old:
----
  signon-ui-0.15.tar.bz2

New:
----
  0001-Fix-WebEngine-cache-directory-path.patch
  0001-Reintroduce-the-username-field-reading-with-webkit-o.patch
  signon-ui-4368bb77d9d1abc2978af514225ba4a42c29a646.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ signon-ui.spec ++++++
--- /var/tmp/diff_new_pack.VcRw7u/_old  2018-10-04 18:56:56.571517736 +0200
+++ /var/tmp/diff_new_pack.VcRw7u/_new  2018-10-04 18:56:56.575517731 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package signon-ui
 #
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,52 +16,60 @@
 #
 
 
+# webengine branch
+%define commit 4368bb77d9d1abc2978af514225ba4a42c29a646
+
 Name:           signon-ui
-Version:        0.15
+Version:        0.17+20171022
 Release:        0
 Summary:        Single Sign On UI
-License:        GPL-3.0
+License:        GPL-3.0-only
 Group:          System/GUI/Other
-Url:            https://launchpad.net/signon-ui
-Source:         signon-ui-%{version}.tar.bz2
+Url:            https://gitlab.com/accounts-sso/signon-ui
+Source:         
https://gitlab.com/accounts-sso/signon-ui/-/archive/%{commit}/signon-ui-%{commit}.tar.bz2
+# Patches for upstream, but upstream is dead
+Patch1:         0001-Fix-WebEngine-cache-directory-path.patch
+Patch2:         0001-Reintroduce-the-username-field-reading-with-webkit-o.patch
 BuildRequires:  libaccounts-qt5-devel
 BuildRequires:  libsignon-qt5-devel
 BuildRequires:  signon-plugins-devel
 BuildRequires:  pkgconfig(Qt5DBus)
 BuildRequires:  pkgconfig(Qt5Test)
-BuildRequires:  pkgconfig(Qt5WebKit)
-BuildRequires:  pkgconfig(Qt5WebKitWidgets)
+BuildRequires:  pkgconfig(Qt5WebEngine)
 BuildRequires:  pkgconfig(libnotify)
 BuildRequires:  pkgconfig(libproxy-1.0)
 BuildRequires:  pkgconfig(x11)
 BuildRequires:  pkgconfig(xext)
+Requires:       libQt5WebChannel5-imports
 
 %description
 This package contains the user interface for the signond Single Sign On 
service.
 
 %prep
-%setup -q 
+%setup -q -n %{name}-%{commit}
+%autopatch -p1
+
+# Don't build tests
+sed -i '/tests/d' signon-ui.pro
 
 # Fix libdir
 sed -i 's/\/lib/\/%{_lib}/g' common-installs-config.pri
 
 %build
-qmake-qt5 \
+%qmake5 \
   PREFIX=%{_prefix} \
-  LIBDIR=%{_libdir} \
-  QMAKE_CXXFLAGS="%{optflags}"
+  LIBDIR=%{_libdir}
 
-make %{?_smp_mflags}
+%make_jobs
 
 %install
-make install INSTALL_ROOT=%{buildroot}
+%qmake5_install
+# The .desktop file is useless
+rm -rf %{buildroot}%{_datadir}/applications
 
 %files
-%defattr(-,root,root)
-%doc COPYING
+%license COPYING
 %{_bindir}/signon-ui
-%{_bindir}/signon-ui-unittest
-%{_bindir}/tst_inactivity_timer
 %{_datadir}/dbus-1/services/com.canonical.indicators.webcredentials.service
 %{_datadir}/dbus-1/services/com.nokia.singlesignonui.service
 

++++++ 0001-Fix-WebEngine-cache-directory-path.patch ++++++
>From e155e6e70ce7a6c52837688b570e8020faac5496 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fab...@ritter-vogt.de>
Date: Sat, 8 Sep 2018 18:58:42 +0200
Subject: [PATCH] Fix WebEngine cache directory path

Otherwise the URL is treated as a path, which results in a folder "file:" in ~.
---
 src/browser-request.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/browser-request.cpp b/src/browser-request.cpp
index 146bec8..1895d59 100644
--- a/src/browser-request.cpp
+++ b/src/browser-request.cpp
@@ -132,7 +132,7 @@ void BrowserRequestPrivate::start()
 
     m_dialog->rootContext()->setContextProperty("request", this);
     m_dialog->rootContext()->setContextProperty("rootDir",
-                                                
QUrl::fromLocalFile(rootDir.absolutePath()));
+                                                rootDir.absolutePath());
     m_dialog->setSource(webview);
 }
 
-- 
2.18.0

++++++ 0001-Reintroduce-the-username-field-reading-with-webkit-o.patch ++++++
>From 90890e7d27c544e3557bed2f6624614141db0fc4 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fab...@ritter-vogt.de>
Date: Sat, 29 Sep 2018 15:34:43 +0200
Subject: [PATCH] Reintroduce the username field reading with webkit-options.d

Use WebChannel to spy on the input fields.
Use the old UserAgent to make sure the selectors match.
---
 src/browser-request.cpp | 11 +++++++++++
 src/qml/WebView.qml     | 36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)

diff --git a/src/browser-request.cpp b/src/browser-request.cpp
index 1895d59..e58f302 100644
--- a/src/browser-request.cpp
+++ b/src/browser-request.cpp
@@ -31,6 +31,7 @@
 #include <QStandardPaths>
 #include <QTimer>
 #include <SignOn/uisessiondata_priv.h>
+#include <QSettings>
 
 using namespace SignOnUi;
 using namespace SignOnUi::QQuick;
@@ -43,8 +44,10 @@ class BrowserRequestPrivate: public QObject
     Q_DECLARE_PUBLIC(BrowserRequest)
     Q_PROPERTY(QUrl pageComponentUrl READ pageComponentUrl CONSTANT)
     Q_PROPERTY(QUrl currentUrl READ currentUrl WRITE setCurrentUrl)
+    Q_PROPERTY(QString username MEMBER m_username)
     Q_PROPERTY(QUrl startUrl READ startUrl CONSTANT)
     Q_PROPERTY(QUrl finalUrl READ finalUrl CONSTANT)
+    Q_PROPERTY(QString usernameSelector READ usernameSelector CONSTANT)
 
 public:
     BrowserRequestPrivate(BrowserRequest *request);
@@ -58,6 +61,7 @@ public:
     QUrl startUrl() const { return m_startUrl; }
     QUrl finalUrl() const { return m_finalUrl; }
     QUrl responseUrl() const { return m_responseUrl; }
+    QString usernameSelector() const { return 
m_settings->value("UsernameField").toString(); }
 
 public Q_SLOTS:
     void cancel();
@@ -77,6 +81,8 @@ private:
     QUrl m_startUrl;
     QUrl m_finalUrl;
     QUrl m_responseUrl;
+    QString m_username;
+    QSettings *m_settings;
     QTimer m_failTimer;
     mutable BrowserRequest *q_ptr;
 };
@@ -116,6 +122,9 @@ void BrowserRequestPrivate::start()
 
     m_finalUrl = params.value(SSOUI_KEY_FINALURL).toString();
     m_startUrl = params.value(SSOUI_KEY_OPENURL).toString();
+
+    m_settings = new QSettings("signon-ui/webkit-options.d/" + 
m_startUrl.host(), QString(), this);
+
     buildDialog(params);
 
     QObject::connect(m_dialog, SIGNAL(finished(int)),
@@ -231,6 +240,8 @@ void BrowserRequestPrivate::onFinished()
     QVariantMap reply;
     QUrl url = m_responseUrl.isEmpty() ? m_currentUrl : m_responseUrl;
     reply[SSOUI_KEY_URLRESPONSE] = url.toString();
+    if (!m_username.isEmpty())
+        reply[SSOUI_KEY_USERNAME] = m_username;
 
     m_dialog->close();
 
diff --git a/src/qml/WebView.qml b/src/qml/WebView.qml
index 33462b8..3af0239 100644
--- a/src/qml/WebView.qml
+++ b/src/qml/WebView.qml
@@ -1,4 +1,5 @@
 import QtQuick 2.0
+import QtWebChannel 1.0
 import QtWebEngine 1.1
 
 WebEngineView {
@@ -25,8 +26,43 @@ WebEngineView {
     profile: WebEngineProfile {
         cachePath: rootDir
         persistentStoragePath: rootDir
+        // For compatibility with the webkit-options.d values
+        httpUserAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.21 
(KHTML, like Gecko) Safari/537.21"
     }
 
+    QtObject {
+        id: commProxy
+        WebChannel.id: "comm"
+        property string username: ""
+        property string selector: signonRequest.usernameSelector
+        onUsernameChanged: signonRequest.username = username
+    }
+
+    WebChannel {
+        id: chan
+        registeredObjects: [commProxy]
+    }
+    webChannel: chan
+
+    WebEngineScript {
+        id: qwebchannel
+        injectionPoint: WebEngineScript.DocumentCreation
+        sourceUrl: "qrc:/qtwebchannel/qwebchannel.js"
+        worldId: WebEngineScript.MainWorld
+    }
+
+    WebEngineScript {
+        id: commScript
+        injectionPoint: WebEngineScript.DocumentReady
+        sourceCode: "new QWebChannel(window.qt.webChannelTransport, 
function(channel) {" +
+                    "    var elem = 
document.querySelector(channel.objects.comm.selector);" +
+                    "    elem.addEventListener('keyup', function() { 
channel.objects.comm.username = elem.value; });" +
+                    "});"
+        worldId: WebEngineScript.MainWorld
+    }
+
+    userScripts: [qwebchannel, commScript]
+
     ProgressBar {
         anchors.top: parent.top
         anchors.left: parent.left
-- 
2.18.0

++++++ signon-ui-0.15.tar.bz2 -> 
signon-ui-4368bb77d9d1abc2978af514225ba4a42c29a646.tar.bz2 ++++++
++++ 4153 lines of diff (skipped)


Reply via email to