[epiphany] Make sure that sync happens only in BROWSER mode



commit 5afbcfdd1301e34300837c1065ebb92299f1455c
Author: Gabriel Ivascu <ivascu gabriel59 gmail com>
Date:   Thu Sep 7 18:21:41 2017 +0300

    Make sure that sync happens only in BROWSER mode
    
    https://bugzilla.gnome.org/show_bug.cgi?id=787412

 embed/ephy-embed-shell.c                      |    7 +++++--
 embed/web-extension/ephy-web-extension-main.c |    6 ++++--
 embed/web-extension/ephy-web-extension.c      |   13 ++++++++-----
 embed/web-extension/ephy-web-extension.h      |    3 ++-
 src/ephy-shell.c                              |    2 +-
 5 files changed, 20 insertions(+), 11 deletions(-)
---
diff --git a/embed/ephy-embed-shell.c b/embed/ephy-embed-shell.c
index 72a94cc..5d3d22c 100644
--- a/embed/ephy-embed-shell.c
+++ b/embed/ephy-embed-shell.c
@@ -707,6 +707,7 @@ initialize_web_extensions (WebKitWebContext *web_context,
   EphyEmbedShellPrivate *priv = ephy_embed_shell_get_instance_private (shell);
   GVariant *user_data;
   gboolean private_profile;
+  gboolean browser_mode;
   const char *address;
 
   webkit_web_context_set_web_extensions_directory (web_context, EPHY_WEB_EXTENSIONS_DIR);
@@ -714,11 +715,13 @@ initialize_web_extensions (WebKitWebContext *web_context,
   address = priv->dbus_server ? g_dbus_server_get_client_address (priv->dbus_server) : NULL;
 
   private_profile = priv->mode == EPHY_EMBED_SHELL_MODE_PRIVATE || priv->mode == 
EPHY_EMBED_SHELL_MODE_INCOGNITO;
-  user_data = g_variant_new ("(msssb)",
+  browser_mode = priv->mode == EPHY_EMBED_SHELL_MODE_BROWSER;
+  user_data = g_variant_new ("(msssbb)",
                              address,
                              ephy_dot_dir (),
                              ephy_filters_manager_get_adblock_filters_dir (priv->filters_manager),
-                             private_profile);
+                             private_profile,
+                             browser_mode);
   webkit_web_context_set_web_extensions_initialization_user_data (web_context, user_data);
 }
 
diff --git a/embed/web-extension/ephy-web-extension-main.c b/embed/web-extension/ephy-web-extension-main.c
index 66e1e2e..1ca5ee6 100644
--- a/embed/web-extension/ephy-web-extension-main.c
+++ b/embed/web-extension/ephy-web-extension-main.c
@@ -38,9 +38,10 @@ webkit_web_extension_initialize_with_user_data (WebKitWebExtension *webkit_exten
   const char *dot_dir;
   const char *adblock_data_dir;
   gboolean private_profile;
+  gboolean browser_mode;
   GError *error = NULL;
 
-  g_variant_get (user_data, "(m&s&s&sb)", &server_address, &dot_dir, &adblock_data_dir, &private_profile);
+  g_variant_get (user_data, "(m&s&s&sbb)", &server_address, &dot_dir, &adblock_data_dir, &private_profile, 
&browser_mode);
 
   if (!server_address) {
     g_warning ("UI process did not start D-Bus server, giving up.");
@@ -60,7 +61,8 @@ webkit_web_extension_initialize_with_user_data (WebKitWebExtension *webkit_exten
                                  webkit_extension,
                                  server_address,
                                  adblock_data_dir,
-                                 private_profile);
+                                 private_profile,
+                                 browser_mode);
 }
 
 static void __attribute__((destructor))
diff --git a/embed/web-extension/ephy-web-extension.c b/embed/web-extension/ephy-web-extension.c
index 3ba991f..380d34c 100644
--- a/embed/web-extension/ephy-web-extension.c
+++ b/embed/web-extension/ephy-web-extension.c
@@ -1701,7 +1701,8 @@ ephy_web_extension_initialize (EphyWebExtension   *extension,
                                WebKitWebExtension *wk_extension,
                                const char         *server_address,
                                const char         *adblock_data_dir,
-                               gboolean            is_private_profile)
+                               gboolean            is_private_profile,
+                               gboolean            is_browser_mode)
 {
   GDBusAuthObserver *observer;
 
@@ -1716,11 +1717,13 @@ ephy_web_extension_initialize (EphyWebExtension   *extension,
   if (!is_private_profile) {
     extension->password_manager = ephy_password_manager_new ();
 
-    if (ephy_sync_utils_user_is_signed_in ())
-      ephy_web_extension_create_sync_service (extension);
+    if (is_browser_mode) {
+      if (ephy_sync_utils_user_is_signed_in ())
+        ephy_web_extension_create_sync_service (extension);
 
-    g_signal_connect (EPHY_SETTINGS_SYNC, "changed::"EPHY_PREFS_SYNC_USER,
-                      G_CALLBACK (ephy_prefs_sync_user_cb), extension);
+      g_signal_connect (EPHY_SETTINGS_SYNC, "changed::"EPHY_PREFS_SYNC_USER,
+                        G_CALLBACK (ephy_prefs_sync_user_cb), extension);
+    }
   }
 
   extension->permissions_manager = ephy_permissions_manager_new ();
diff --git a/embed/web-extension/ephy-web-extension.h b/embed/web-extension/ephy-web-extension.h
index bf0f482..3475426 100644
--- a/embed/web-extension/ephy-web-extension.h
+++ b/embed/web-extension/ephy-web-extension.h
@@ -34,6 +34,7 @@ void              ephy_web_extension_initialize     (EphyWebExtension   *extensi
                                                      WebKitWebExtension *wk_extension,
                                                      const char         *server_address,
                                                      const char         *adblock_data_dir,
-                                                     gboolean            is_private_profile);
+                                                     gboolean            is_private_profile,
+                                                     gboolean            is_browser_mode);
 
 G_END_DECLS
diff --git a/src/ephy-shell.c b/src/ephy-shell.c
index ed931cd..6d20dc8 100644
--- a/src/ephy-shell.c
+++ b/src/ephy-shell.c
@@ -415,7 +415,7 @@ ephy_shell_startup (GApplication *application)
                               "enabled",
                               G_BINDING_SYNC_CREATE);
 
-      if (ephy_sync_utils_user_is_signed_in ()) {
+      if (mode == EPHY_EMBED_SHELL_MODE_BROWSER && ephy_sync_utils_user_is_signed_in ()) {
         /* Create the sync service. */
         ephy_shell_get_sync_service (shell);
       }


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