[gnome-online-accounts] oauth2: Remove support for using an external browser



commit e5f956902350ffb9b6d5349e05a0bd1f09c2d0b6
Author: Debarshi Ray <debarshir gnome org>
Date:   Wed May 21 16:26:32 2014 +0200

    oauth2: Remove support for using an external browser
    
    We really do want to use the embedded web view, and we have never used
    the external browser option in any provider that is worth using. Now
    that we are giving the dialogs a facelift by using header bars, it is a
    good opportunity to also get rid of this unused code because there is
    no way to test it.
    
    Fixes: https://bugzilla.gnome.org/729638

 doc/goa-sections.txt               |    1 -
 src/goabackend/goaoauth2provider.c |  142 ++++++-----------------------------
 src/goabackend/goaoauth2provider.h |    3 -
 3 files changed, 25 insertions(+), 121 deletions(-)
---
diff --git a/doc/goa-sections.txt b/doc/goa-sections.txt
index fc4f62c..12a5293 100644
--- a/doc/goa-sections.txt
+++ b/doc/goa-sections.txt
@@ -484,7 +484,6 @@ goa_oauth2_provider_is_deny_node
 goa_oauth2_provider_is_identity_node
 goa_oauth2_provider_is_password_node
 goa_oauth2_provider_build_authorization_uri
-goa_oauth2_provider_get_use_external_browser
 goa_oauth2_provider_add_account_key_values
 goa_oauth2_provider_get_identity_sync
 goa_oauth2_provider_get_access_token_sync
diff --git a/src/goabackend/goaoauth2provider.c b/src/goabackend/goaoauth2provider.c
index 03cd1b3..18434a3 100644
--- a/src/goabackend/goaoauth2provider.c
+++ b/src/goabackend/goaoauth2provider.c
@@ -104,40 +104,6 @@ is_authorization_error (GError *error)
 /* ---------------------------------------------------------------------------------------------------- */
 
 static gboolean
-goa_oauth2_provider_get_use_external_browser_default (GoaOAuth2Provider  *provider)
-{
-  return FALSE;
-}
-
-/**
- * goa_oauth2_provider_get_use_external_browser:
- * @provider: A #GoaOAuth2Provider.
- *
- * Returns whether an external browser (the users default browser)
- * should be used for user interaction.
- *
- * If an external browser is used, then the dialogs presented in
- * goa_provider_add_account() and
- * goa_provider_refresh_account() will show a simple "Paste
- * authorization code here" instructions along with an entry and
- * button.
- *
- * This is a virtual method where the default implementation returns
- * %FALSE.
- *
- * Returns: %TRUE if the user interaction should happen in an external
- * browser, %FALSE to use an embedded browser widget.
- */
-gboolean
-goa_oauth2_provider_get_use_external_browser (GoaOAuth2Provider *provider)
-{
-  g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (provider), FALSE);
-  return GOA_OAUTH2_PROVIDER_GET_CLASS (provider)->get_use_external_browser (provider);
-}
-
-/* ---------------------------------------------------------------------------------------------------- */
-
-static gboolean
 goa_oauth2_provider_get_use_mobile_browser_default (GoaOAuth2Provider  *provider)
 {
   return FALSE;
@@ -1041,20 +1007,6 @@ on_web_view_navigation_policy_decision_requested (WebKitWebView             *web
   return FALSE;
 }
 
-static void
-on_entry_changed (GtkEditable *editable,
-                  gpointer     user_data)
-{
-  GoaOAuth2Provider *provider = GOA_OAUTH2_PROVIDER (user_data);
-  GoaOAuth2ProviderPrivate *priv = provider->priv;
-  gboolean sensitive;
-
-  g_free (priv->authorization_code);
-  priv->authorization_code = g_strdup (gtk_entry_get_text (GTK_ENTRY (editable)));
-  sensitive = priv->authorization_code != NULL && (strlen (priv->authorization_code) > 0);
-  gtk_dialog_set_response_sensitive (priv->dialog, GTK_RESPONSE_OK, sensitive);
-}
-
 static gboolean
 get_tokens_and_identity (GoaOAuth2Provider  *provider,
                          gboolean            add_account,
@@ -1065,7 +1017,11 @@ get_tokens_and_identity (GoaOAuth2Provider  *provider,
   GoaOAuth2ProviderPrivate *priv = provider->priv;
   gboolean ret;
   gchar *url;
+  GSList *cookies;
+  GtkWidget *embed;
   GtkWidget *grid;
+  GVariant *preseed_data;
+  GtkWidget *web_view;
   const gchar *scope;
   gchar *escaped_redirect_uri;
   gchar *escaped_client_id;
@@ -1118,74 +1074,27 @@ get_tokens_and_identity (GoaOAuth2Provider  *provider,
   gtk_grid_set_row_spacing (GTK_GRID (grid), 12);
   gtk_container_add (GTK_CONTAINER (vbox), grid);
 
-  if (goa_oauth2_provider_get_use_external_browser (provider))
-    {
-      GtkWidget *label;
-      GtkWidget *entry;
-      gchar *escaped_url;
-      gchar *markup;
-
-      escaped_url = g_markup_escape_text (url, -1);
-      /* Translators: The verb "Paste" is used when asking the user to paste a string from a web browser 
window */
-      markup = g_strdup_printf (_("Paste authorization code obtained from the <a href=\"%s\">authorization 
page</a>:"),
-                                escaped_url);
-      g_free (escaped_url);
-
-      label = gtk_label_new (NULL);
-      gtk_label_set_markup (GTK_LABEL (label), markup);
-      g_free (markup);
-      gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0);
-      entry = gtk_entry_new ();
-      gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
-      gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, TRUE, 0);
-      gtk_widget_grab_focus (entry);
-      gtk_widget_show_all (GTK_WIDGET (vbox));
-
-      gtk_dialog_add_button (dialog, _("_OK"), GTK_RESPONSE_OK);
-      gtk_dialog_set_default_response (dialog, GTK_RESPONSE_OK);
-      gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_OK, FALSE);
-      g_signal_connect (entry, "changed", G_CALLBACK (on_entry_changed), provider);
-
-      if (!gtk_show_uri (NULL,
-                         url,
-                         GDK_CURRENT_TIME,
-                         &priv->error))
-        {
-          goto out;
-        }
-    }
-  else
-    {
-      GtkWidget *web_view;
-      GtkWidget *embed;
-      GVariant *preseed_data;
-      GSList *cookies;
-
-      web_view = goa_web_view_new ();
-      gtk_widget_set_hexpand (web_view, TRUE);
-      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 (provider));
-      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 (provider))
-        goa_web_view_fake_mobile (GOA_WEB_VIEW (web_view));
-
-      webkit_web_view_load_uri (WEBKIT_WEB_VIEW (embed), url);
-      g_signal_connect (embed,
-                        "document-load-finished",
-                        G_CALLBACK (on_web_view_document_load_finished),
-                        provider);
-      g_signal_connect (embed,
-                        "navigation-policy-decision-requested",
-                        G_CALLBACK (on_web_view_navigation_policy_decision_requested),
-                        provider);
-
-      gtk_container_add (GTK_CONTAINER (grid), web_view);
-    }
+  web_view = goa_web_view_new ();
+  gtk_widget_set_hexpand (web_view, TRUE);
+  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 (provider));
+  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 (provider))
+    goa_web_view_fake_mobile (GOA_WEB_VIEW (web_view));
+
+  webkit_web_view_load_uri (WEBKIT_WEB_VIEW (embed), url);
+  g_signal_connect (embed, "document-load-finished", G_CALLBACK (on_web_view_document_load_finished), 
provider);
+  g_signal_connect (embed,
+                    "navigation-policy-decision-requested",
+                    G_CALLBACK (on_web_view_navigation_policy_decision_requested),
+                    provider);
+
+  gtk_container_add (GTK_CONTAINER (grid), web_view);
 
   gtk_widget_show_all (GTK_WIDGET (vbox));
   gtk_dialog_run (GTK_DIALOG (dialog));
@@ -1867,7 +1776,6 @@ goa_oauth2_provider_class_init (GoaOAuth2ProviderClass *klass)
   klass->build_authorization_uri  = goa_oauth2_provider_build_authorization_uri_default;
   klass->get_token_uri            = goa_oauth2_provider_get_token_uri_default;
   klass->get_scope                = goa_oauth2_provider_get_scope_default;
-  klass->get_use_external_browser = goa_oauth2_provider_get_use_external_browser_default;
   klass->get_use_mobile_browser   = goa_oauth2_provider_get_use_mobile_browser_default;
   klass->is_password_node         = goa_oauth2_provider_is_password_node_default;
   klass->add_account_key_values   = goa_oauth2_provider_add_account_key_values_default;
diff --git a/src/goabackend/goaoauth2provider.h b/src/goabackend/goaoauth2provider.h
index 6575cef..6c6a895 100644
--- a/src/goabackend/goaoauth2provider.h
+++ b/src/goabackend/goaoauth2provider.h
@@ -66,7 +66,6 @@ struct _GoaOAuth2Provider
  * @get_authentication_cookie: Virtual function for goa_oauth2_provider_get_authentication_cookie().
  * @get_identity_sync: Virtual function for goa_oauth2_provider_get_identity_sync().
  * @build_authorization_uri: Virtual function for goa_oauth2_provider_build_authorization_uri().
- * @get_use_external_browser: Virtual function for goa_oauth2_provider_get_use_external_browser().
  * @get_use_mobile_browser: Virtual function for goa_oauth2_provider_get_use_mobile_browser().
  * @add_account_key_values: Virtual function for goa_oauth2_provider_add_account_key_values().
  * @process_redirect_url: Virtual function for goa_oauth2_provider_process_redirect_url().
@@ -100,7 +99,6 @@ struct _GoaOAuth2ProviderClass
                                                 const gchar                  *escaped_scope);
   const gchar *(*get_token_uri)                (GoaOAuth2Provider            *provider);
   const gchar *(*get_scope)                    (GoaOAuth2Provider            *provider);
-  gboolean     (*get_use_external_browser)     (GoaOAuth2Provider            *provider);
   gboolean     (*get_use_mobile_browser)       (GoaOAuth2Provider            *provider);
   void         (*add_account_key_values)       (GoaOAuth2Provider            *provider,
                                                 GVariantBuilder              *builder);
@@ -156,7 +154,6 @@ gchar       *goa_oauth2_provider_build_authorization_uri      (GoaOAuth2Provider
                                                                const gchar                   
*escaped_redirect_uri,
                                                                const gchar                   
*escaped_client_id,
                                                                const gchar                   *escaped_scope);
-gboolean     goa_oauth2_provider_get_use_external_browser     (GoaOAuth2Provider             *provider);
 gboolean     goa_oauth2_provider_get_use_mobile_browser       (GoaOAuth2Provider             *provider);
 void         goa_oauth2_provider_add_account_key_values       (GoaOAuth2Provider             *provider,
                                                                GVariantBuilder               *builder);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]