Update to 3.27.3

This commit is contained in:
Kalev Lember 2017-12-15 11:32:44 +01:00
parent 86b525455b
commit 8555568782
4 changed files with 8 additions and 375 deletions

1
.gitignore vendored
View File

@ -101,3 +101,4 @@
/gnome-online-accounts-3.26.0.tar.xz
/gnome-online-accounts-3.26.1.tar.xz
/gnome-online-accounts-3.27.1.tar.xz
/gnome-online-accounts-3.27.3.tar.xz

View File

@ -1,367 +0,0 @@
From a22ed470ca025d83084572453b4110c220fd0d66 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Wed, 25 Oct 2017 14:12:43 +0200
Subject: [PATCH] Remove the option to preseed the providers & deprecate
associated API
It's been more than four years and nobody ended up using this feature.
However, the extra cookie management that's necessary to implement this
feature has now exposed code, which people actually use, to a
WebKitGTK+ bug that's taking quite some time to be fixed. Therefore,
this is a good an excuse as any to remove this code.
This reverts commits 01447f6de49b640b7e298210aeb84390c804e9b3 and
1f714a8d536ea08fb9df0d3ce1250b4a67f35bba
https://bugzilla.gnome.org/show_bug.cgi?id=781005
---
doc/goa-sections.txt | 1 -
src/goabackend/goaoauth2provider.c | 67 --------------------------------------
src/goabackend/goaprovider.c | 52 ++++++-----------------------
src/goabackend/goaprovider.h | 2 ++
src/goabackend/goawebview.c | 28 ----------------
src/goabackend/goawebview.h | 2 --
6 files changed, 12 insertions(+), 140 deletions(-)
diff --git a/doc/goa-sections.txt b/doc/goa-sections.txt
index f944ead207b4..306846eec370 100644
--- a/doc/goa-sections.txt
+++ b/doc/goa-sections.txt
@@ -465,7 +465,6 @@ GOA_PROVIDER_GET_CLASS
GOA_IS_PROVIDER
GOA_IS_PROVIDER_CLASS
GOA_TYPE_PROVIDER
-GoaProviderPrivate
goa_provider_get_type
</SECTION>
diff --git a/src/goabackend/goaoauth2provider.c b/src/goabackend/goaoauth2provider.c
index 35fbf9161a1a..909260515d3f 100644
--- a/src/goabackend/goaoauth2provider.c
+++ b/src/goabackend/goaoauth2provider.c
@@ -571,66 +571,6 @@ goa_oauth2_provider_is_identity_node (GoaOAuth2Provider *self, WebKitDOMHTMLInpu
return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->is_identity_node (self, element);
}
-/* ---------------------------------------------------------------------------------------------------- */
-
-static SoupCookie*
-create_cookie_from_variant (GVariant *variant)
-{
- SoupCookie *cookie;
- gchar *name, *value, *domain, *path;
- gboolean secure, http_only;
-
- g_return_val_if_fail (g_variant_is_of_type (variant, G_VARIANT_TYPE_VARDICT), NULL);
-
- g_variant_lookup (variant, "name", "&s", &name);
- g_variant_lookup (variant, "value", "&s", &value);
- g_variant_lookup (variant, "domain", "&s", &domain);
- g_variant_lookup (variant, "path", "&s", &path);
- g_variant_lookup (variant, "secure", "b", &secure);
- g_variant_lookup (variant, "http_only", "b", &http_only);
-
- cookie = soup_cookie_new (name, value, domain, path, -1);
- soup_cookie_set_secure (cookie, secure);
- soup_cookie_set_http_only (cookie, http_only);
-
- return cookie;
-}
-
-static GSList*
-extract_cookies_from_preseed_data (GVariant *preseed)
-{
- GVariant *cookies_v, *cookie_v;
- GSList *cookies = NULL;
- GVariantIter iter;
-
- if (preseed == NULL)
- return NULL;
-
- cookies_v = g_variant_lookup_value (preseed, "cookies", NULL);
- if (cookies_v == NULL)
- return NULL;
-
- if (!g_variant_is_of_type (cookies_v, G_VARIANT_TYPE ("av")))
- {
- g_warning ("Wrong type for the 'cookies' GVariant, expected 'av' but got '%s'",
- (gchar *)g_variant_get_type (cookies_v));
- goto out;
- }
-
- g_variant_iter_init (&iter, cookies_v);
- while ((cookie_v = g_variant_iter_next_value (&iter)) != NULL)
- {
- SoupCookie *cookie = create_cookie_from_variant (g_variant_get_variant (cookie_v));
- if (cookie != NULL)
- cookies = g_slist_prepend (cookies, cookie);
- g_variant_unref(cookie_v);
- }
-out:
- g_variant_unref(cookies_v);
- return cookies;
-}
-
-
/* ---------------------------------------------------------------------------------------------------- */
static gchar *
@@ -969,10 +909,8 @@ get_tokens_and_identity (GoaOAuth2Provider *self,
GoaOAuth2ProviderPrivate *priv;
gboolean ret = FALSE;
gchar *url;
- GSList *cookies;
GtkWidget *embed;
GtkWidget *grid;
- GVariant *preseed_data;
GtkWidget *web_view;
const gchar *scope;
gchar *escaped_redirect_uri = NULL;
@@ -1026,11 +964,6 @@ get_tokens_and_identity (GoaOAuth2Provider *self,
gtk_widget_set_vexpand (web_view, TRUE);
embed = goa_web_view_get_view (GOA_WEB_VIEW (web_view));
- preseed_data = goa_provider_get_preseed_data (GOA_PROVIDER (self));
- cookies = extract_cookies_from_preseed_data (preseed_data);
- goa_web_view_add_cookies (GOA_WEB_VIEW (web_view), cookies);
- soup_cookies_free (cookies);
-
if (goa_oauth2_provider_get_use_mobile_browser (self))
goa_web_view_fake_mobile (GOA_WEB_VIEW (web_view));
diff --git a/src/goabackend/goaprovider.c b/src/goabackend/goaprovider.c
index c59122a75ff9..c8f7f0d4955c 100644
--- a/src/goabackend/goaprovider.c
+++ b/src/goabackend/goaprovider.c
@@ -51,11 +51,6 @@
* #GoaProvider is the base type for all providers.
*/
-struct _GoaProviderPrivate
-{
- GVariant *preseed_data;
-};
-
enum {
PROP_0,
PROP_PRESEED_DATA,
@@ -102,7 +97,7 @@ static void goa_provider_show_account_real (GoaProvider *provider,
GtkGrid *dummy1,
GtkGrid *dummy2);
-G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GoaProvider, goa_provider, G_TYPE_OBJECT);
+G_DEFINE_ABSTRACT_TYPE (GoaProvider, goa_provider, G_TYPE_OBJECT);
static struct {
GoaProviderFeatures feature;
@@ -191,14 +186,9 @@ goa_provider_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
- GoaProvider *self = GOA_PROVIDER (object);
- GoaProviderPrivate *priv;
-
- priv = goa_provider_get_instance_private (self);
-
switch (property_id) {
case PROP_PRESEED_DATA:
- g_value_set_variant (value, priv->preseed_data);
+ g_value_set_variant (value, NULL);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -212,11 +202,8 @@ goa_provider_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
- GoaProvider *self = GOA_PROVIDER (object);
-
switch (property_id) {
case PROP_PRESEED_DATA:
- goa_provider_set_preseed_data (self, g_value_get_variant (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -224,19 +211,6 @@ goa_provider_set_property (GObject *object,
}
}
-static void
-goa_provider_dispose (GObject *object)
-{
- GoaProvider *self = GOA_PROVIDER (object);
- GoaProviderPrivate *priv;
-
- priv = goa_provider_get_instance_private (self);
-
- g_clear_pointer (&priv->preseed_data, g_variant_unref);
-
- G_OBJECT_CLASS (goa_provider_parent_class)->dispose (object);
-}
-
static void
goa_provider_init (GoaProvider *self)
{
@@ -249,7 +223,6 @@ goa_provider_class_init (GoaProviderClass *klass)
object_class->set_property = goa_provider_set_property;
object_class->get_property = goa_provider_get_property;
- object_class->dispose = goa_provider_dispose;
klass->build_object = goa_provider_build_object_real;
klass->ensure_credentials_sync = goa_provider_ensure_credentials_sync_real;
@@ -289,6 +262,8 @@ goa_provider_class_init (GoaProviderClass *klass)
* </informalexample>
*
* Unknown or unsupported keys will be ignored by providers.
+ *
+ * Deprecated: 3.28: This property does nothing.
*/
properties[PROP_PRESEED_DATA] =
g_param_spec_variant ("preseed-data",
@@ -298,7 +273,7 @@ goa_provider_class_init (GoaProviderClass *klass)
"browser session or the entrypoint url for self-hosted services).",
G_VARIANT_TYPE_VARDICT,
NULL,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ G_PARAM_DEPRECATED | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (object_class, NUM_PROPERTIES, properties);
}
@@ -1418,19 +1393,13 @@ goa_provider_remove_account_finish_real (GoaProvider *self,
*
* If the @preseed_data #GVariant is floating, it is consumed to allow
* 'inline' use of the g_variant_new() family of functions.
+ *
+ * Deprecated: 3.28: This function does nothing.
*/
void
goa_provider_set_preseed_data (GoaProvider *self,
GVariant *preseed_data)
{
- GoaProviderPrivate *priv;
-
- priv = goa_provider_get_instance_private (self);
-
- g_clear_pointer (&priv->preseed_data, g_variant_unref);
- if (preseed_data != NULL)
- priv->preseed_data = g_variant_ref_sink (preseed_data);
- g_object_notify (G_OBJECT (self), "preseed-data");
}
/**
@@ -1441,14 +1410,13 @@ goa_provider_set_preseed_data (GoaProvider *self,
*
* Returns: (transfer none): A #GVariant that is known to be valid until
* the property is overridden or the provider freed.
+ *
+ * Deprecated: 3.28: This function does nothing.
*/
GVariant *
goa_provider_get_preseed_data (GoaProvider *self)
{
- GoaProviderPrivate *priv;
-
- priv = goa_provider_get_instance_private (self);
- return priv->preseed_data;
+ return NULL;
}
/* ---------------------------------------------------------------------------------------------------- */
diff --git a/src/goabackend/goaprovider.h b/src/goabackend/goaprovider.h
index 76ff0223fb32..c4bcf91c9af7 100644
--- a/src/goabackend/goaprovider.h
+++ b/src/goabackend/goaprovider.h
@@ -47,9 +47,11 @@ GoaProviderGroup goa_provider_get_provider_group (GoaProvider
GoaProviderFeatures goa_provider_get_provider_features (GoaProvider *self);
+G_DEPRECATED
void goa_provider_set_preseed_data (GoaProvider *self,
GVariant *preseed_data);
+G_DEPRECATED
GVariant *goa_provider_get_preseed_data (GoaProvider *self);
GoaObject *goa_provider_add_account (GoaProvider *self,
diff --git a/src/goabackend/goawebview.c b/src/goabackend/goawebview.c
index 7a28e51545fa..b7af122cfd6b 100644
--- a/src/goabackend/goawebview.c
+++ b/src/goabackend/goawebview.c
@@ -38,7 +38,6 @@ struct _GoaWebView
GtkWidget *floating_bar;
GtkWidget *progress_bar;
GtkWidget *web_view;
- SoupCookieJar *cookie_jar;
WebKitUserContentManager *user_content_manager;
WebKitWebContext *context;
gchar *existing_identity;
@@ -271,10 +270,7 @@ static void
goa_web_view_constructed (GObject *object)
{
GoaWebView *self = GOA_WEB_VIEW (object);
- WebKitCookieManager *cookie_manager;
const gchar *const *language_names;
- gchar *jar_dir;
- gchar *jar_file;
G_OBJECT_CLASS (goa_web_view_parent_class)->constructed (object);
@@ -286,16 +282,6 @@ goa_web_view_constructed (GObject *object)
G_CALLBACK (web_view_initialize_web_extensions_cb),
self);
- cookie_manager = webkit_web_context_get_cookie_manager (self->context);
- jar_file = g_build_filename (g_get_user_cache_dir (), "goa-1.0", "cookies.sqlite", NULL);
- jar_dir = g_path_get_dirname (jar_file);
- g_mkdir_with_parents (jar_dir, 0700);
- self->cookie_jar = soup_cookie_jar_db_new (jar_file, FALSE);
- webkit_cookie_manager_set_persistent_storage (cookie_manager, jar_file, WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE);
- webkit_cookie_manager_delete_all_cookies (cookie_manager);
- g_free (jar_dir);
- g_free (jar_file);
-
self->user_content_manager = webkit_user_content_manager_new ();
g_signal_connect_swapped (self->user_content_manager,
"script-message-received::deny-click",
@@ -359,7 +345,6 @@ goa_web_view_dispose (GObject *object)
{
GoaWebView *self = GOA_WEB_VIEW (object);
- g_clear_object (&self->cookie_jar);
g_clear_object (&self->user_content_manager);
g_clear_object (&self->context);
@@ -514,16 +499,3 @@ goa_web_view_fake_mobile (GoaWebView *self)
"Mozilla/5.0 (GNOME; not Android) "
"AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile");
}
-
-void
-goa_web_view_add_cookies (GoaWebView *self,
- GSList *cookies)
-{
- GSList *l;
-
- for (l = cookies; l != NULL; l = l->next)
- {
- SoupCookie *cookie = l->data;
- soup_cookie_jar_add_cookie (self->cookie_jar, soup_cookie_copy (cookie));
- }
-}
diff --git a/src/goabackend/goawebview.h b/src/goabackend/goawebview.h
index a8fad5f1fe93..4b415cdc6bbc 100644
--- a/src/goabackend/goawebview.h
+++ b/src/goabackend/goawebview.h
@@ -37,8 +37,6 @@ GtkWidget *goa_web_view_new (GoaProvider *provide
const gchar *existing_identity);
GtkWidget *goa_web_view_get_view (GoaWebView *self);
void goa_web_view_fake_mobile (GoaWebView *self);
-void goa_web_view_add_cookies (GoaWebView *self,
- GSList *cookies);
G_END_DECLS
--
2.14.2

View File

@ -1,20 +1,17 @@
%global glib2_version 2.52
%global gtk3_version 3.19.12
%global libsoup_version 2.42
%global webkitgtk4_version 2.7.2
%global webkitgtk4_version 2.12.0
Name: gnome-online-accounts
Version: 3.27.1
Release: 2%{?dist}
Version: 3.27.3
Release: 1%{?dist}
Summary: Single sign-on framework for GNOME
License: LGPLv2+
URL: https://wiki.gnome.org/Projects/GnomeOnlineAccounts
Source0: https://download.gnome.org/sources/gnome-online-accounts/3.27/%{name}-%{version}.tar.xz
# https://bugzilla.gnome.org/show_bug.cgi?id=781005
Patch0: gnome-online-accounts-remove-the-option-to-preseed-the-providers.patch
BuildRequires: pkgconfig(gcr-3)
BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version}
BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version}
@ -57,7 +54,6 @@ developing applications that use %{name}.
%prep
%setup -q
%patch0 -p1
%build
%configure \
@ -158,6 +154,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_datadir}/vala/
%changelog
* Fri Dec 15 2017 Kalev Lember <klember@redhat.com> - 3.27.3-1
- Update to 3.27.3
* Wed Oct 25 2017 Debarshi Ray <rishi@fedoraproject.org> - 3.27.1-2
- Backport fix for adding multiple accounts of the same type (GNOME #781005)

View File

@ -1 +1 @@
SHA512 (gnome-online-accounts-3.27.1.tar.xz) = 672e78f5a6c39c849db5240c0d6249378cb2de9973923a731484c68047b3dd5e4a9a1be49ee72a9e17c1f5bb26aaf194c12046c8325230f003fcb97ace0e2f1b
SHA512 (gnome-online-accounts-3.27.3.tar.xz) = 1a5b4d1ef2fbc14da6a561c2de45ef6d512cf7ea4600a211d5494dc089699f022c1e992f545e058045cb2f25cb1a2f7a84025f9127361bca5929318be6fa7dfe