diff options
Diffstat (limited to 'debian/patches')
-rw-r--r-- | debian/patches/0110-fix_GoogleAuthenticator.patch | 135 | ||||
-rw-r--r-- | debian/patches/series | 1 |
2 files changed, 136 insertions, 0 deletions
diff --git a/debian/patches/0110-fix_GoogleAuthenticator.patch b/debian/patches/0110-fix_GoogleAuthenticator.patch new file mode 100644 index 0000000..2ea4155 --- /dev/null +++ b/debian/patches/0110-fix_GoogleAuthenticator.patch @@ -0,0 +1,135 @@ +Description: Fix GoogleAuthenticator +Author: Jörg Frings-Fürst <debian@jff.email> +Origin: upstream, https://gitlab.gnome.org/GNOME/shotwell/commit/db18c371984b80ead9daf4e0ae2058469d2f5524.diff +Bug: https://gitlab.gnome.org/GNOME/shotwell/issues/158 +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934723 +Forwarded: not-needed +Last-Update: 2019-08-14 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala +=================================================================== +--- trunk.orig/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala ++++ trunk/plugins/authenticator/shotwell/FlickrPublishingAuthenticator.vala +@@ -54,6 +54,12 @@ namespace Publishing.Authenticator.Shotw + } + + public override void on_page_load() { ++ if (this.load_error != null) { ++ this.error(); ++ ++ return; ++ } ++ + var uri = new Soup.URI(get_view().get_uri()); + if (uri.scheme == "shotwell-auth" && this.auth_code == null) { + var form_data = Soup.Form.decode (uri.query); +@@ -77,6 +83,8 @@ namespace Publishing.Authenticator.Shotw + } + + internal class Flickr : Publishing.Authenticator.Shotwell.OAuth1.Authenticator { ++ private WebAuthenticationPane pane; ++ + public Flickr(Spit.Publishing.PluginHost host) { + base(API_KEY, API_SECRET, host); + } +@@ -185,13 +193,17 @@ namespace Publishing.Authenticator.Shotw + } + + private void do_web_authentication(string token) { +- var pane = new WebAuthenticationPane(token); ++ pane = new WebAuthenticationPane(token); + host.install_dialog_pane(pane); + pane.authorized.connect(this.do_verify_pin); + pane.error.connect(this.on_web_login_error); + } + + private void on_web_login_error() { ++ if (pane.load_error != null) { ++ host.post_error(pane.load_error); ++ return; ++ } + host.post_error(new Spit.Publishing.PublishingError.PROTOCOL_ERROR(_("Flickr authorization failed"))); + } + +Index: trunk/plugins/authenticator/shotwell/GoogleAuthenticator.vala +=================================================================== +--- trunk.orig/plugins/authenticator/shotwell/GoogleAuthenticator.vala ++++ trunk/plugins/authenticator/shotwell/GoogleAuthenticator.vala +@@ -21,6 +21,12 @@ namespace Publishing.Authenticator.Shotw + } + + public override void on_page_load() { ++ if (this.load_error != null) { ++ this.error (); ++ ++ return; ++ } ++ + var uri = new Soup.URI(get_view().get_uri()); + if (uri.scheme == REVERSE_CLIENT_ID && this.auth_code == null) { + var form_data = Soup.Form.decode (uri.query); +@@ -173,6 +179,7 @@ namespace Publishing.Authenticator.Shotw + + web_auth_pane = new WebAuthenticationPane(user_authorization_url); + web_auth_pane.authorized.connect(on_web_auth_pane_authorized); ++ web_auth_pane.error.connect(on_web_auth_pane_error); + + host.install_dialog_pane(web_auth_pane); + } +@@ -185,6 +192,10 @@ namespace Publishing.Authenticator.Shotw + do_get_access_tokens(auth_code); + } + ++ private void on_web_auth_pane_error() { ++ host.post_error(web_auth_pane.load_error); ++ } ++ + private void do_get_access_tokens(string auth_code) { + debug("ACTION: exchanging authorization code for access & refresh tokens"); + +Index: trunk/plugins/common/WebAuthenticationPane.vala +=================================================================== +--- trunk.orig/plugins/common/WebAuthenticationPane.vala ++++ trunk/plugins/common/WebAuthenticationPane.vala +@@ -12,6 +12,7 @@ namespace Shotwell.Plugins.Common { + } + + public string login_uri { owned get; construct; } ++ public Error load_error { get; private set; default = null; } + + private WebKit.WebView webview; + +@@ -22,6 +23,7 @@ namespace Shotwell.Plugins.Common { + this.webview.get_settings ().enable_plugins = false; + + this.webview.load_changed.connect (this.on_page_load_changed); ++ this.webview.load_failed.connect (this.on_page_load_failed); + this.webview.context_menu.connect ( () => { return false; }); + } + +@@ -29,11 +31,24 @@ namespace Shotwell.Plugins.Common { + + protected void set_cursor (Gdk.CursorType type) { + var window = webview.get_window (); ++ if (window == null) ++ return; ++ + var display = window.get_display (); ++ if (display == null) ++ return; ++ + var cursor = new Gdk.Cursor.for_display (display, type); + window.set_cursor (cursor); + } + ++ private bool on_page_load_failed (WebKit.LoadEvent load_event, string uri, Error error) { ++ critical ("Failed to load uri %s: %s", uri, error.message); ++ this.load_error = error; ++ ++ return false; ++ } ++ + private void on_page_load_changed (WebKit.LoadEvent load_event) { + switch (load_event) { + case WebKit.LoadEvent.STARTED: diff --git a/debian/patches/series b/debian/patches/series index f52cd58..a710ad9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -11,3 +11,4 @@ #0515-Fix_background_color_drawing.patch #505-fix-viewer-desktop-file.patch 0105-gitversion.patch +0110-fix_GoogleAuthenticator.patch |