Hello community,

here is the log from the commit of package epiphany for openSUSE:Factory 
checked in at 2019-06-13 23:02:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/epiphany (Old)
 and      /work/SRC/openSUSE:Factory/.epiphany.new.4811 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "epiphany"

Thu Jun 13 23:02:38 2019 rev:164 rq:709384 version:3.32.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/epiphany/epiphany.changes        2019-05-05 
21:22:07.201391712 +0200
+++ /work/SRC/openSUSE:Factory/.epiphany.new.4811/epiphany.changes      
2019-06-13 23:02:41.059427958 +0200
@@ -1,0 +2,14 @@
+Tue Jun 11 23:11:12 UTC 2019 - Bjørn Lie <[email protected]>
+
+- Update to version 3.32.3:
+  + Fix preferences language button sensitivity.
+  + Fix crash opening preferences dialog in weird locales.
+  + Fix manage additional URLs web apps preference.
+  + Fix blob and data URIs in web apps.
+  + Fix migration permanently corrupting web apps if migrated
+    before main profile.
+  + Fix crashes when safe browsing database is recreated.
+  + Fix crash in downloads code.
+  + Fix critical when starting web apps.
+
+-------------------------------------------------------------------

Old:
----
  epiphany-3.32.2.tar.xz

New:
----
  epiphany-3.32.3.tar.xz

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

Other differences:
------------------
++++++ epiphany.spec ++++++
--- /var/tmp/diff_new_pack.7xKfXp/_old  2019-06-13 23:02:41.795427319 +0200
+++ /var/tmp/diff_new_pack.7xKfXp/_new  2019-06-13 23:02:41.807427309 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           epiphany
-Version:        3.32.2
+Version:        3.32.3
 Release:        0
 Summary:        GNOME Web Browser
 License:        GPL-3.0-or-later

++++++ epiphany-3.32.2.tar.xz -> epiphany-3.32.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-3.32.2/NEWS new/epiphany-3.32.3/NEWS
--- old/epiphany-3.32.2/NEWS    2019-05-02 18:11:14.000000000 +0200
+++ new/epiphany-3.32.3/NEWS    2019-06-12 00:41:04.000000000 +0200
@@ -1,3 +1,15 @@
+3.32.3 - June 11, 2019
+======================
+
+- Fix preferences language button sensitivity (#279)
+- Fix crash opening preferences dialog in weird locales (#545)
+- Fix manage additional URLs web apps preference (#558)
+- Fix blob and data URIs in web apps (#593)
+- Fix migration permanently corrupting web apps if migrated before main 
profile (#713)
+- Fix crashes when safe browsing database is recreated
+- Fix crash in downloads code
+- Fix critical when starting web apps
+
 3.32.2 - May 2, 2019
 ====================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-3.32.2/embed/ephy-download.c 
new/epiphany-3.32.3/embed/ephy-download.c
--- old/epiphany-3.32.2/embed/ephy-download.c   2019-05-02 18:11:14.000000000 
+0200
+++ new/epiphany-3.32.3/embed/ephy-download.c   2019-06-12 00:41:04.000000000 
+0200
@@ -762,21 +762,21 @@
 
   ephy_download = g_object_new (EPHY_TYPE_DOWNLOAD, NULL);
 
-  g_signal_connect (download, "notify::response",
-                    G_CALLBACK (download_response_changed_cb),
-                    ephy_download);
-  g_signal_connect (download, "decide-destination",
-                    G_CALLBACK (download_decide_destination_cb),
-                    ephy_download);
-  g_signal_connect (download, "created-destination",
-                    G_CALLBACK (download_created_destination_cb),
-                    ephy_download);
-  g_signal_connect (download, "finished",
-                    G_CALLBACK (download_finished_cb),
-                    ephy_download);
-  g_signal_connect (download, "failed",
-                    G_CALLBACK (download_failed_cb),
-                    ephy_download);
+  g_signal_connect_object (download, "notify::response",
+                           G_CALLBACK (download_response_changed_cb),
+                           ephy_download, 0);
+  g_signal_connect_object (download, "decide-destination",
+                           G_CALLBACK (download_decide_destination_cb),
+                           ephy_download, 0);
+  g_signal_connect_object (download, "created-destination",
+                           G_CALLBACK (download_created_destination_cb),
+                           ephy_download, 0);
+  g_signal_connect_object (download, "finished",
+                           G_CALLBACK (download_finished_cb),
+                           ephy_download, 0);
+  g_signal_connect_object (download, "failed",
+                           G_CALLBACK (download_failed_cb),
+                           ephy_download, 0);
 
   ephy_download->download = g_object_ref (download);
   g_object_set_data (G_OBJECT (download), "ephy-download-set", GINT_TO_POINTER 
(TRUE));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-3.32.2/embed/ephy-embed-utils.c 
new/epiphany-3.32.3/embed/ephy-embed-utils.c
--- old/epiphany-3.32.2/embed/ephy-embed-utils.c        2019-05-02 
18:11:14.000000000 +0200
+++ new/epiphany-3.32.3/embed/ephy-embed-utils.c        2019-06-12 
00:41:04.000000000 +0200
@@ -387,28 +387,6 @@
   return ephy_string_get_host_name (address);
 }
 
-gboolean
-ephy_embed_utils_urls_have_same_origin (const char *a_url,
-                                        const char *b_url)
-{
-  SoupURI *a_uri, *b_uri;
-  gboolean retval = FALSE;
-
-  a_uri = soup_uri_new (a_url);
-  if (!a_uri)
-    return retval;
-
-  b_uri = soup_uri_new (b_url);
-  if (b_uri) {
-    retval = a_uri->host && b_uri->host && soup_uri_host_equal (a_uri, b_uri);
-    soup_uri_free (b_uri);
-  }
-
-  soup_uri_free (a_uri);
-
-  return retval;
-}
-
 void
 ephy_embed_utils_shutdown (void)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-3.32.2/embed/ephy-embed-utils.h 
new/epiphany-3.32.3/embed/ephy-embed-utils.h
--- old/epiphany-3.32.2/embed/ephy-embed-utils.h        2019-05-02 
18:11:14.000000000 +0200
+++ new/epiphany-3.32.3/embed/ephy-embed-utils.h        2019-06-12 
00:41:04.000000000 +0200
@@ -46,8 +46,6 @@
 gboolean ephy_embed_utils_url_is_empty                          (const char 
*location);
 gboolean ephy_embed_utils_is_no_show_address                    (const char 
*address);
 char    *ephy_embed_utils_get_title_from_address                (const char 
*address);
-gboolean ephy_embed_utils_urls_have_same_origin                 (const char 
*a_url,
-                                                                 const char 
*b_url);
 void     ephy_embed_utils_shutdown                              (void);
 
 G_END_DECLS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-3.32.2/lib/ephy-time-helpers.c 
new/epiphany-3.32.3/lib/ephy-time-helpers.c
--- old/epiphany-3.32.2/lib/ephy-time-helpers.c 2019-05-02 18:11:14.000000000 
+0200
+++ new/epiphany-3.32.3/lib/ephy-time-helpers.c 2019-06-12 00:41:04.000000000 
+0200
@@ -67,10 +67,11 @@
 char *
 eel_strdup_strftime (const char *format, struct tm *time_pieces)
 {
-  GString *string;
+  g_autoptr(GString) string = NULL;
   const char *remainder, *percent;
   char code[4], buffer[512];
-  char *piece, *result, *converted;
+  char *piece, *result;
+  g_autofree gchar *converted = NULL;
   size_t string_length;
   gboolean strip_leading_zeros, turn_leading_zeros_to_spaces;
   char modifier;
@@ -79,13 +80,14 @@
   /* Format could be translated, and contain UTF-8 chars,
    * so convert to locale encoding which strftime uses */
   converted = g_locale_from_utf8 (format, -1, NULL, NULL, NULL);
-  g_assert (converted != NULL);
+  if (!converted)
+    converted = g_strdup (format);
 
   string = g_string_new ("");
   remainder = converted;
 
   /* Walk from % character to % character. */
-  for (;; ) {
+  for (;;) {
     percent = strchr (remainder, '%');
     if (percent == NULL) {
       g_string_append (string, remainder);
@@ -197,9 +199,6 @@
   /* Convert the string back into utf-8. */
   result = g_locale_to_utf8 (string->str, -1, NULL, NULL, NULL);
 
-  g_string_free (string, TRUE);
-  g_free (converted);
-
   return result;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-3.32.2/lib/ephy-web-app-utils.c 
new/epiphany-3.32.3/lib/ephy-web-app-utils.c
--- old/epiphany-3.32.2/lib/ephy-web-app-utils.c        2019-05-02 
18:11:14.000000000 +0200
+++ new/epiphany-3.32.3/lib/ephy-web-app-utils.c        2019-06-12 
00:41:04.000000000 +0200
@@ -374,46 +374,42 @@
                              const char *name,
                              GdkPixbuf  *icon)
 {
-  char *profile_dir;
-  char *desktop_file_path = NULL;
+  g_autofree char *app_file = NULL;
+  g_autofree char *profile_dir = NULL;
+  g_autofree char *desktop_file_path = NULL;
 
   /* If there's already a WebApp profile for the contents of this
    * view, do nothing. */
   profile_dir = ephy_web_application_get_profile_directory (id);
   if (g_file_test (profile_dir, G_FILE_TEST_IS_DIR)) {
     g_warning ("Profile directory %s already exists", profile_dir);
-    goto out;
+    return NULL;
   }
 
   /* Create the profile directory, populate it. */
   if (g_mkdir_with_parents (profile_dir, 488) == -1) {
     g_warning ("Failed to create directory %s", profile_dir);
-    goto out;
+    return NULL;
   }
 
   /* Skip migration for new web apps. */
   ephy_profile_utils_set_migration_version_for_profile_dir 
(EPHY_PROFILE_MIGRATION_VERSION, profile_dir);
 
   /* Create an .app file. */
-  g_autofree char *app_file = g_build_filename (profile_dir, ".app", NULL);
+  app_file = g_build_filename (profile_dir, ".app", NULL);
   int fd = g_open (app_file, O_WRONLY|O_CREAT|O_TRUNC, 0644);
   if (fd < 0) {
-    LOG ("Failed to create .app file: %s", g_strerror (errno));
-    goto out;
-  } else {
-    close (fd);
+    g_warning ("Failed to create .app file: %s", g_strerror (errno));
+    return NULL;
   }
+  close (fd);
 
   /* Create the deskop file. */
   desktop_file_path = create_desktop_file (id, name, address, profile_dir, 
icon);
   if (desktop_file_path)
     ephy_web_application_initialize_settings (profile_dir);
 
- out:
-  if (profile_dir)
-    g_free (profile_dir);
-
-  return desktop_file_path;
+  return g_steal_pointer (&desktop_file_path);
 }
 
 char *
@@ -759,14 +755,43 @@
   g_free (name);
 }
 
+static gboolean
+urls_have_same_origin (const char *a_url,
+                       const char *b_url)
+{
+  SoupURI *a_uri, *b_uri;
+  gboolean retval = FALSE;
+
+  a_uri = soup_uri_new (a_url);
+  if (!a_uri)
+    return retval;
+
+  b_uri = soup_uri_new (b_url);
+  if (b_uri) {
+    retval = a_uri->host && b_uri->host && soup_uri_host_equal (a_uri, b_uri);
+    soup_uri_free (b_uri);
+  }
+
+  soup_uri_free (a_uri);
+
+  return retval;
+}
+
 gboolean
-ephy_web_application_is_uri_allowed (const char* uri)
+ephy_web_application_is_uri_allowed (const char *uri)
 {
+  EphyWebApplication *webapp = ephy_web_application_for_profile_directory 
(ephy_profile_dir ());
   SoupURI *request_uri;
   char **urls;
   guint i;
   gboolean matched = FALSE;
 
+  if (g_str_has_prefix (uri, "blob:") || g_str_has_prefix (uri, "data:"))
+    return TRUE;
+
+  if (urls_have_same_origin (uri, webapp->url))
+    return TRUE;
+
   if (g_strcmp0 (uri, "about:blank") == 0)
     return TRUE;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-3.32.2/lib/ephy-web-app-utils.h 
new/epiphany-3.32.3/lib/ephy-web-app-utils.h
--- old/epiphany-3.32.2/lib/ephy-web-app-utils.h        2019-05-02 
18:11:14.000000000 +0200
+++ new/epiphany-3.32.3/lib/ephy-web-app-utils.h        2019-06-12 
00:41:04.000000000 +0200
@@ -67,7 +67,7 @@
 
 void                ephy_web_application_initialize_settings (const char 
*profile_directory);
 
-gboolean            ephy_web_application_is_uri_allowed (const char* uri);
+gboolean            ephy_web_application_is_uri_allowed (const char *uri);
 
 gboolean            ephy_web_application_save (EphyWebApplication *app);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-3.32.2/lib/safe-browsing/ephy-gsb-storage.c 
new/epiphany-3.32.3/lib/safe-browsing/ephy-gsb-storage.c
--- old/epiphany-3.32.2/lib/safe-browsing/ephy-gsb-storage.c    2019-05-02 
18:11:14.000000000 +0200
+++ new/epiphany-3.32.3/lib/safe-browsing/ephy-gsb-storage.c    2019-06-12 
00:41:04.000000000 +0200
@@ -124,7 +124,9 @@
   GError *error = NULL;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
+
+  if (!self->is_operable)
+    return;
 
   ephy_sqlite_connection_begin_transaction (self->db, &error);
   if (error) {
@@ -139,7 +141,9 @@
   GError *error = NULL;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
+
+  if (!self->is_operable)
+    return;
 
   ephy_sqlite_connection_commit_transaction (self->db, &error);
   if (error) {
@@ -382,11 +386,12 @@
 ephy_gsb_storage_clear_db (EphyGSBStorage *self)
 {
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (EPHY_IS_SQLITE_CONNECTION (self->db));
 
-  ephy_sqlite_connection_close (self->db);
-  ephy_sqlite_connection_delete_database (self->db);
-  g_clear_object (&self->db);
+  if (self->db) {
+    ephy_sqlite_connection_close (self->db);
+    ephy_sqlite_connection_delete_database (self->db);
+    g_clear_object (&self->db);
+  }
 }
 
 static gboolean
@@ -408,6 +413,8 @@
   if (!success)
     ephy_gsb_storage_clear_db (self);
 
+  self->is_operable = success;
+
   return success;
 }
 
@@ -498,11 +505,9 @@
     success = ephy_gsb_storage_open_db (self);
     if (success && !ephy_gsb_storage_check_schema_version (self)) {
       LOG ("GSB database schema incompatibility, recreating database...");
-      success = ephy_gsb_storage_recreate_db (self);
+      ephy_gsb_storage_recreate_db (self);
     }
   }
-
-  self->is_operable = success;
 }
 
 static void
@@ -627,9 +632,11 @@
   const char *sql;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (key);
 
+  if (!self->is_operable)
+    return;
+
   sql = "UPDATE metadata SET value=? WHERE key=?";
   statement = ephy_sqlite_connection_create_statement (self->db, sql, &error);
   if (error) {
@@ -686,7 +693,9 @@
   const char *sql;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
+
+  if (!self->is_operable)
+    return NULL;
 
   sql = "SELECT threat_type, platform_type, threat_entry_type, client_state 
FROM threats";
   statement = ephy_sqlite_connection_create_statement (self->db, sql, &error);
@@ -742,9 +751,11 @@
   gsize digest_len = GSB_HASH_SIZE;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (list);
 
+  if (!self->is_operable)
+    return NULL;
+
   sql = "SELECT value FROM hash_prefix WHERE "
         "threat_type=? AND platform_type=? AND threat_entry_type=? "
         "ORDER BY value";
@@ -807,9 +818,11 @@
   gboolean success;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (list);
 
+  if (!self->is_operable)
+    return;
+
   if (clear) {
     sql = "UPDATE threats SET client_state=NULL "
           "WHERE threat_type=? AND platform_type=? AND threat_entry_type=?";
@@ -861,9 +874,11 @@
   const char *sql;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (list);
 
+  if (!self->is_operable)
+    return;
+
   sql = "DELETE FROM hash_prefix WHERE "
         "threat_type=? AND platform_type=? AND threat_entry_type=?";
   statement = ephy_sqlite_connection_create_statement (self->db, sql, &error);
@@ -901,10 +916,12 @@
   guint index = 0;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (list);
   g_assert (indices);
 
+  if (!self->is_operable)
+    return NULL;
+
   *num_prefixes = 0;
 
   sql = "SELECT value FROM hash_prefix WHERE "
@@ -952,7 +969,9 @@
   GString *sql;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
+
+  if (!self->is_operable)
+    return NULL;
 
   sql = g_string_new ("DELETE FROM hash_prefix WHERE "
                       "threat_type=? AND platform_type=? and 
threat_entry_type=? "
@@ -985,10 +1004,12 @@
   gboolean free_statement = TRUE;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (list);
   g_assert (prefixes);
 
+  if (!self->is_operable)
+    return NULL;
+
   if (stmt) {
     statement = stmt;
     ephy_sqlite_statement_reset (statement);
@@ -1042,10 +1063,12 @@
   gsize num_prefixes;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (list);
   g_assert (indices);
 
+  if (!self->is_operable)
+    return;
+
   LOG ("Deleting %lu hash prefixes...", num_indices);
 
   /* Move indices from the array to a hash table set. */
@@ -1105,10 +1128,12 @@
   gsize num_indices;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (list);
   g_assert (tes);
 
+  if (!self->is_operable)
+    return;
+
   compression = json_object_get_string_member (tes, "compressionType");
   if (!g_strcmp0 (compression, GSB_COMPRESSION_TYPE_RICE)) {
     rice_indices = json_object_get_object_member (tes, "riceIndices");
@@ -1137,7 +1162,9 @@
   GString *sql;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
+
+  if (!self->is_operable)
+    return NULL;
 
   sql = g_string_new ("INSERT INTO hash_prefix "
                       "(cue, value, threat_type, platform_type, 
threat_entry_type) VALUES ");
@@ -1172,10 +1199,12 @@
   gboolean free_statement = TRUE;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (list);
   g_assert (prefixes);
 
+  if (!self->is_operable)
+    return;
+
   if (stmt) {
     statement = stmt;
     ephy_sqlite_statement_reset (statement);
@@ -1219,10 +1248,12 @@
   gsize num_batches;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (list);
   g_assert (prefixes);
 
+  if (!self->is_operable)
+    return;
+
   LOG ("Inserting %lu hash prefixes of size %ld...", num_prefixes, prefix_len);
 
   ephy_gsb_storage_start_transaction (self);
@@ -1280,10 +1311,12 @@
   gsize num_prefixes;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (list);
   g_assert (tes);
 
+  if (!self->is_operable)
+    return;
+
   compression = json_object_get_string_member (tes, "compressionType");
   if (!g_strcmp0 (compression, GSB_COMPRESSION_TYPE_RICE)) {
     rice_hashes = json_object_get_object_member (tes, "riceHashes");
@@ -1335,9 +1368,11 @@
   guint id = 0;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (cues);
 
+  if (!self->is_operable)
+    return NULL;
+
   sql = g_string_new ("SELECT value, negative_expires_at <= 
(CAST(strftime('%s', 'now') AS INT)) "
                       "FROM hash_prefix WHERE cue IN (");
   for (GList *l = cues; l && l->data; l = l->next)
@@ -1412,9 +1447,11 @@
   guint id = 0;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (hashes);
 
+  if (!self->is_operable)
+    return NULL;
+
   sql = g_string_new ("SELECT value, threat_type, platform_type, 
threat_entry_type, "
                       "expires_at <= (CAST(strftime('%s', 'now') AS INT)) "
                       "FROM hash_full WHERE value IN (");
@@ -1494,10 +1531,12 @@
   const char *sql;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (list);
   g_assert (hash);
 
+  if (!self->is_operable)
+    return;
+
   LOG ("Inserting full hash with duration %ld for list %s/%s/%s",
        duration, list->threat_type, list->platform_type, 
list->threat_entry_type);
 
@@ -1576,7 +1615,9 @@
   const char *sql;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
+
+  if (!self->is_operable)
+    return;
 
   LOG ("Deleting full hashes expired for more than %d seconds", 
EXPIRATION_THRESHOLD);
 
@@ -1625,9 +1666,11 @@
   const char *sql;
 
   g_assert (EPHY_IS_GSB_STORAGE (self));
-  g_assert (self->is_operable);
   g_assert (prefix);
 
+  if (!self->is_operable)
+    return;
+
   sql = "UPDATE hash_prefix "
         "SET negative_expires_at=(CAST(strftime('%s', 'now') AS INT)) + ? "
         "WHERE value=?";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-3.32.2/meson.build 
new/epiphany-3.32.3/meson.build
--- old/epiphany-3.32.2/meson.build     2019-05-02 18:11:14.000000000 +0200
+++ new/epiphany-3.32.3/meson.build     2019-06-12 00:41:04.000000000 +0200
@@ -1,6 +1,6 @@
 project('epiphany', 'c',
   license: 'GPL3+',
-  version: '3.32.2',
+  version: '3.32.3',
   meson_version: '>= 0.42.0',
   default_options: ['c_std=gnu11']
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-3.32.2/src/ephy-window.c 
new/epiphany-3.32.3/src/ephy-window.c
--- old/epiphany-3.32.2/src/ephy-window.c       2019-05-02 18:11:14.000000000 
+0200
+++ new/epiphany-3.32.3/src/ephy-window.c       2019-06-12 00:41:04.000000000 
+0200
@@ -1896,17 +1896,6 @@
     g_signal_emit_by_name (parent_web_view, "new-window", web_view);
   }
 
-  if (ephy_embed_shell_get_mode (ephy_embed_shell_get_default ()) == 
EPHY_EMBED_SHELL_MODE_APPLICATION &&
-      !webkit_web_view_get_uri (web_view)) {
-    /* Wait until we have a valid URL to decide whether to show the window
-     * or load the URL in the default web browser
-     */
-    g_object_set_data_full (G_OBJECT (window), "referrer",
-                            g_strdup (webkit_web_view_get_uri 
(parent_web_view)),
-                            g_free);
-    return TRUE;
-  }
-
   gtk_widget_show (GTK_WIDGET (window));
 
   return TRUE;
@@ -2040,12 +2029,7 @@
 
   if (ephy_embed_shell_get_mode (ephy_embed_shell_get_default ()) == 
EPHY_EMBED_SHELL_MODE_APPLICATION) {
     if (!gtk_widget_is_visible (GTK_WIDGET (window))) {
-      char *referrer;
-
-      referrer = (char *)g_object_get_data (G_OBJECT (window), "referrer");
-
-      if (ephy_embed_utils_urls_have_same_origin (uri, referrer) ||
-          ephy_web_application_is_uri_allowed (uri)) {
+      if (ephy_web_application_is_uri_allowed (uri)) {
         gtk_widget_show (GTK_WIDGET (window));
       } else {
         /* We can't get here under flatpak because this code only
@@ -2064,10 +2048,8 @@
 
     if (navigation_type == WEBKIT_NAVIGATION_TYPE_LINK_CLICKED ||
         (navigation_type == WEBKIT_NAVIGATION_TYPE_OTHER && 
webkit_navigation_action_is_user_gesture (navigation_action))) {
-      if (ephy_embed_utils_urls_have_same_origin (uri, webkit_web_view_get_uri 
(web_view)) ||
-          ephy_web_application_is_uri_allowed (uri)) {
+      if (ephy_web_application_is_uri_allowed (uri))
         return FALSE;
-      }
 
       /* We can't get here under flatpak because this code only
        * executes in web app mode.
@@ -3376,6 +3358,7 @@
   EphyEmbedShellMode mode;
   EphyWindowChrome chrome = EPHY_WINDOW_CHROME_DEFAULT;
   GApplication *app;
+  EphySession *session;
 
   G_OBJECT_CLASS (ephy_window_parent_class)->constructed (object);
 
@@ -3536,14 +3519,15 @@
 
   action_group = gtk_widget_get_action_group (GTK_WIDGET (window), "tab");
   action = g_action_map_lookup_action (G_ACTION_MAP (action_group), "reopen");
-  if (mode == EPHY_EMBED_SHELL_MODE_INCOGNITO || mode == 
EPHY_EMBED_SHELL_MODE_AUTOMATION) {
-    g_simple_action_set_enabled (G_SIMPLE_ACTION (action), FALSE);
-  } else {
-    g_object_bind_property (G_OBJECT (ephy_shell_get_session (shell)),
+  session = ephy_shell_get_session (shell);
+  if (session) {
+    g_object_bind_property (session,
                             "can-undo-tab-closed",
                             action,
                             "enabled",
                             G_BINDING_SYNC_CREATE);
+  } else {
+    g_simple_action_set_enabled (G_SIMPLE_ACTION (action), FALSE);
   }
 
   window->mouse_gesture_controller = ephy_mouse_gesture_controller_new 
(window);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-3.32.2/src/prefs-dialog.c 
new/epiphany-3.32.3/src/prefs-dialog.c
--- old/epiphany-3.32.2/src/prefs-dialog.c      2019-05-02 18:11:14.000000000 
+0200
+++ new/epiphany-3.32.3/src/prefs-dialog.c      2019-06-12 00:41:04.000000000 
+0200
@@ -1608,7 +1608,6 @@
   }
   g_object_unref (store);
 
-  language_editor_update_buttons (dialog);
   g_strfreev (list);
 
   /* Lockdown if key is not writable */
@@ -1627,6 +1626,8 @@
   g_settings_bind_writable (EPHY_SETTINGS_WEB,
                             EPHY_PREFS_WEB_LANGUAGE,
                             dialog->lang_treeview, "sensitive", FALSE);
+
+  language_editor_update_buttons (dialog);
 }
 
 static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/epiphany-3.32.2/src/profile-migrator/ephy-profile-migrator.c 
new/epiphany-3.32.3/src/profile-migrator/ephy-profile-migrator.c
--- old/epiphany-3.32.2/src/profile-migrator/ephy-profile-migrator.c    
2019-05-02 18:11:14.000000000 +0200
+++ new/epiphany-3.32.3/src/profile-migrator/ephy-profile-migrator.c    
2019-06-12 00:41:04.000000000 +0200
@@ -57,8 +57,9 @@
 static int migration_version = -1;
 static char *profile_dir = NULL;
 
-/* The legacy dir is used by everything before version 29 which migrates
- * to the new directory */
+/* The legacy dir is used by everything before version 30, which migrates
+ * to the new directory.
+ */
 static const char *
 legacy_default_profile_dir (void)
 {
@@ -74,11 +75,14 @@
   static char *dir = NULL;
   if (dir == NULL)
     {
-      /* If this isn't actually a legacy dir it starts at a later migrating 
step anyway */
       if (profile_dir != NULL)
-        dir = profile_dir;
+        {
+          dir = profile_dir;
+        }
       else
-        dir = (char *)legacy_default_profile_dir ();
+        {
+          dir = (char *)legacy_default_profile_dir ();
+        }
     }
   return dir;
 }
@@ -1067,7 +1071,7 @@
     g_autoptr(GError) error = NULL;
 
     g_autofree char *old_name = g_strconcat ("app-epiphany-", app->id, NULL);
-    g_autofree char *old_path = g_build_filename (legacy_profile_dir (), 
old_name, NULL);
+    g_autofree char *old_path = g_build_filename (legacy_default_profile_dir 
(), old_name, NULL);
     g_autofree char *app_path = ephy_web_application_get_profile_directory 
(app->id);
 
     if (!move_directory_contents (old_path, app_path))
@@ -1082,7 +1086,7 @@
       close (fd);
 
     // Update Exec and Icon to point to the new profile dir
-    g_autofree char *old_profile_prefix = g_build_filename (legacy_profile_dir 
(), "app-epiphany-", NULL);
+    g_autofree char *old_profile_prefix = g_build_filename 
(legacy_default_profile_dir (), "app-epiphany-", NULL);
     g_autofree char *new_profile_prefix = g_build_filename 
(g_get_user_data_dir (), "epiphany-", NULL);
     g_autoptr(GKeyFile) file = g_key_file_new ();
     g_autofree char *desktop_file_path = g_build_filename (app_path, 
app->desktop_file, NULL);
@@ -1261,7 +1265,7 @@
   char *history_filename;
   const char *sql_query;
 
-  history_filename = g_build_filename (ephy_profile_dir (), EPHY_HISTORY_FILE, 
NULL);
+  history_filename = g_build_filename (legacy_profile_dir (), 
EPHY_HISTORY_FILE, NULL);
   if (!g_file_test (history_filename, G_FILE_TEST_EXISTS)) {
     LOG ("There is no history to migrate...");
     goto out;
@@ -1412,6 +1416,15 @@
     m ();
   }
 
+  if (!g_file_test (ephy_profile_dir (), G_FILE_TEST_EXISTS)) {
+    LOG ("Original profile directory does not exist. This is an expected"
+         " failure. Probably a web app is being migrated before the default"
+         " profile, and its profile directory was moved during the migration."
+         " Epiphany must be restarted with the new profile directory. The"
+         " migration will be run again.");
+    return FALSE;
+  }
+
   if (ephy_profile_utils_set_migration_version 
(EPHY_PROFILE_MIGRATION_VERSION) != TRUE) {
     LOG ("Failed to store the current migration version");
     return FALSE;


Reply via email to