Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package epiphany for openSUSE:Factory 
checked in at 2023-07-05 15:31:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/epiphany (Old)
 and      /work/SRC/openSUSE:Factory/.epiphany.new.23466 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "epiphany"

Wed Jul  5 15:31:16 2023 rev:202 rq:1096872 version:44.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/epiphany/epiphany.changes        2023-05-29 
22:47:58.982362713 +0200
+++ /work/SRC/openSUSE:Factory/.epiphany.new.23466/epiphany.changes     
2023-07-05 15:31:33.942924282 +0200
@@ -1,0 +2,21 @@
+Fri Jun 30 14:17:31 UTC 2023 - Bjørn Lie <bjorn....@gmail.com>
+
+- Update to version 44.5:
+  + Fix Sync Now button appearing when Firefox Sync is not enabled,
+    leading to crash.
+
+-------------------------------------------------------------------
+Fri Jun 30 07:49:44 UTC 2023 - Bjørn Lie <bjorn....@gmail.com>
+
+- Update to version 44.4:
+  + Bring back URL scheme in address bar, fixing incorrect URLs
+    loaded in narrow mode.
+  + Fix duplicate permission requests.
+  + Fix changing web app title and URL with preferences dialog.
+  + Fix failure to create web app when no icon or favicon is
+    available.
+  + Fix address bar stealing mouse clicks.
+  + Fix broken Mute Tab context menu item.
+  + Fix critical when creating WebExtension web view.
+
+-------------------------------------------------------------------

Old:
----
  epiphany-44.3.tar.xz

New:
----
  epiphany-44.5.tar.xz

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

Other differences:
------------------
++++++ epiphany.spec ++++++
--- /var/tmp/diff_new_pack.JYQDJP/_old  2023-07-05 15:31:34.634928388 +0200
+++ /var/tmp/diff_new_pack.JYQDJP/_new  2023-07-05 15:31:34.638928411 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           epiphany
-Version:        44.3
+Version:        44.5
 Release:        0
 Summary:        GNOME Web Browser
 License:        GPL-3.0-or-later

++++++ epiphany-44.3.tar.xz -> epiphany-44.5.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-44.3/.gitlab-ci.yml 
new/epiphany-44.5/.gitlab-ci.yml
--- old/epiphany-44.3/.gitlab-ci.yml    2023-05-25 22:12:49.000000000 +0200
+++ new/epiphany-44.5/.gitlab-ci.yml    2023-06-30 15:07:16.000000000 +0200
@@ -1,11 +1,18 @@
 include:
- - remote: 
'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
- - remote: 
'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/3d80a75e1284935e69219bfa80bc6064c6786819/templates/alpine.yml'
+  - remote: 
'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
+  - remote: 
'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/3d80a75e1284935e69219bfa80bc6064c6786819/templates/alpine.yml'
 
 cache:
   paths:
     - _ccache/
 
+# This workflow disables merge request pipelines. Use only branch pipelines.
+# https://docs.gitlab.com/ee/ci/yaml/workflow.html
+workflow:
+  rules:
+    - if: '$CI_COMMIT_TAG'
+    - if: '$CI_COMMIT_BRANCH'
+
 variables:
   BUNDLE: 'epiphany-git.flatpak'
   MANIFEST_PATH: 'org.gnome.Epiphany.json'
@@ -43,12 +50,15 @@
       uncrustify
     FDO_DISTRIBUTION_EXEC: >-
       npm install -g eslint
+  rules:
+    - if: $CI_COMMIT_BRANCH !~ /gnome-\d\d+/
 
 check-code-style:
   extends:
     - '.fdo.distribution-image@alpine'
     - '.alpine.container.common'
   stage: 'test'
+  needs: [ 'build.container.alpine@x86_64' ]
   interruptible: true
   script:
     - bash data/check-code-style
@@ -56,14 +66,15 @@
     paths:
       - ${ESLINT_LOG}
     when: on_failure
-  except:
-    - gnome-*
+  rules:
+    - if: $CI_COMMIT_BRANCH !~ /gnome-\d\d+/
 
 eslint:
   extends:
     - '.fdo.distribution-image@alpine'
     - '.alpine.container.common'
   stage: 'test'
+  needs: [ 'build.container.alpine@x86_64' ]
   interruptible: true
   script:
     - eslint -o eslint-report.txt --no-color 
embed/web-process-extension/resources/js/ || { cat $ESLINT_LOG; false; }
@@ -71,57 +82,38 @@
     paths:
       - ${ESLINT_LOG}
     when: on_failure
-  except:
-    - gnome-*
+  rules:
+    - if: $CI_COMMIT_BRANCH !~ /gnome-\d\d+/
+
+.flatpak rules:
+  rules:
+    - if: $CI_COMMIT_BRANCH =~ /gnome-\d\d+/
+      variables:
+        CONFIG_OPTS: '-Dprofile=Devel -Dunit_tests=enabled 
-Dgsb_api_key=${GSB_API_KEY} -Dgranite=enabled'
+    - if: $CI_COMMIT_BRANCH == "master"
+      variables:
+        CONFIG_OPTS: '-Dtech_preview=true -Dprofile=Devel -Dunit_tests=enabled 
-Dgsb_api_key=${GSB_API_KEY} -Dgranite=enabled'
+    - if: $CI_COMMIT_BRANCH !~ /gnome-\d\d+/ && $CI_COMMIT_BRANCH != "master"
+      variables:
+        CONFIG_OPTS: '-Dprofile=Devel -Dunit_tests=enabled 
-Dgsb_api_key=${GSB_API_KEY} -Dgranite=enabled --werror'
 
 flatpak:
-  extends: '.flatpak'
-  variables:
-    CONFIG_OPTS: '-Dprofile=Devel -Dunit_tests=enabled 
-Dgsb_api_key=${GSB_API_KEY} --werror'
-  except:
-    - master
-    - gnome-*
+  extends:
+    - '.flatpak'
+    - '.flatpak rules'
+  needs: []
 
 flatpak aarch64:
-  extends: '.flatpak@aarch64'
-  variables:
-    CONFIG_OPTS: '-Dprofile=Devel -Dunit_tests=enabled 
-Dgsb_api_key=${GSB_API_KEY} --werror'
-  except:
-    - master
-    - gnome-*
-
-flatpak stable:
-  extends: '.flatpak'
-  variables:
-    CONFIG_OPTS: '-Dprofile=Devel -Dunit_tests=enabled 
-Dgsb_api_key=${GSB_API_KEY} -Dsoup2=enabled'
-  only:
-    - gnome-*
-
-flatpak aarch64 stable:
-  extends: '.flatpak@aarch64'
-  variables:
-    CONFIG_OPTS: '-Dprofile=Devel -Dunit_tests=enabled 
-Dgsb_api_key=${GSB_API_KEY} -Dsoup2=enabled'
-  only:
-    - gnome-*
-
-flatpak master:
-  extends: '.flatpak'
-  variables:
-    CONFIG_OPTS: '-Dtech_preview=true -Dprofile=Devel -Dunit_tests=enabled 
-Dgsb_api_key=${GSB_API_KEY}'
-  only:
-    - master
-
-flatpak aarch64 master:
-  extends: '.flatpak@aarch64'
-  variables:
-    CONFIG_OPTS: '-Dtech_preview=true -Dprofile=Devel -Dunit_tests=enabled 
-Dgsb_api_key=${GSB_API_KEY}'
-  only:
-    - master
+  extends:
+    - '.flatpak@aarch64'
+    - '.flatpak rules'
+  needs: []
 
 scanbuild:
   extends: '.flatpak'
+  needs: []
   variables:
-    CONFIG_OPTS: '-Dprofile=Devel -Dunit_tests=enabled'
+    CONFIG_OPTS: '-Dprofile=Devel -Dunit_tests=enabled -Dgranite=enabled'
   script:
     - flatpak-builder --user --disable-rofiles-fuse 
--stop-at=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH}
     - flatpak build flatpak_app bash -c "source /usr/lib/sdk/llvm14/enable.sh; 
meson --prefix=/app ${CONFIG_OPTS} _build; SCANBUILD=$(pwd)/.run-scan-build 
ninja -C _build scan-build"
@@ -129,62 +121,15 @@
     when: on_failure
     paths:
       - _build/meson-logs/scanbuild
+  rules:
+    - if: $CI_COMMIT_BRANCH !~ /gnome-\d\d+/
 
 nightly:
   extends: '.publish_nightly'
   stage: .post
-  dependencies: ['flatpak master']
+  needs: ['flatpak']
 
 nightly aarch64:
   extends: '.publish_nightly'
   stage: .post
-  dependencies: ['flatpak aarch64 master']
-
-# Canary is disabled indefinitely until a WebKit runtime built for GTK 4 is 
available.
-#
-#canary:
-#  image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master'
-#  stage: 'test'
-#  interruptible: true
-#  allow_failure: true
-#  tags:
-#    - flatpak
-#  variables:
-#    SDK_REPO: 
'https://software.igalia.com/flatpak-refs/webkit-sdk.flatpakrepo'
-#    BUNDLE: 'epiphany-canary.flatpak'
-#  script:
-#    # TODO: Switch to debug? 5GB downloads though.
-#    - python3 generate-canary-manifest.py --release
-#    - flatpak remote-add --user --if-not-exists webkit-sdk ${SDK_REPO}
-#    - flatpak-builder --user --install-deps-from=webkit-sdk 
--disable-rofiles-fuse --repo=repo canary_flatpak_app 
org.gnome.Epiphany.Canary.json
-#    - flatpak build-bundle repo ${BUNDLE} --runtime-repo=${SDK_REPO} 
org.gnome.Epiphany.Canary
-#    - tar cf canary-repo.tar repo/
-#    - rm -rf canary-repo canary_flatpak_app org.gnome.Epiphany.Canary.json 
webkitgtk.zip
-#
-#  artifacts:
-#    name: 'Canary Flatpak artifacts'
-#    expose_as: 'Get Canary Flatpak bundle here'
-#    when: 'always'
-#    paths:
-#      - "${BUNDLE}"
-#      - "canary-repo.tar"
-#    expire_in: 14 days
-#  cache:
-#    - key: "$CI_JOB_NAME"
-#      paths:
-#        - '.flatpak-builder/downloads'
-#        - '.flatpak-builder/git'
-#    - key: "$CI_JOB_NAME"
-#      paths:
-#        - '.flatpak-builder/cache'
-#        - '.flatpak-builder/ccache'
-#  except:
-#    - gnome-*
-#
-#canary nightly:
-#  extends: '.publish_nightly'
-#  allow_failure: true
-#  stage: .post
-#  dependencies: ['canary']
-#  before_script:
-#    - mv canary-repo.tar repo.tar
+  needs: ['flatpak aarch64']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-44.3/NEWS new/epiphany-44.5/NEWS
--- old/epiphany-44.3/NEWS      2023-05-25 22:12:49.000000000 +0200
+++ new/epiphany-44.5/NEWS      2023-06-30 15:07:16.000000000 +0200
@@ -1,3 +1,19 @@
+44.5 - June 30, 2023
+====================
+
+ * Fix Sync Now button appearing when Firefox Sync is not enabled, leading to 
crash (!1358)
+
+44.4 (sorry, tetraphobiacs) - June 29, 2023
+===========================================
+
+ * Bring back URL scheme in address bar, fixing incorrect URLs loaded in 
narrow mode (#2085)
+ * Fix duplicate permission requests (#2088)
+ * Fix changing web app title and URL with preferences dialog (#2089)
+ * Fix failure to create web app when no icon or favicon is available (#2100)
+ * Fix address bar stealing mouse clicks (!1348, Vitaly Dyachkov)
+ * Fix broken Mute Tab context menu item (!1354)
+ * Fix critical when creating WebExtension web view (!1356)
+
 44.3 - May 25, 2023
 ===================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/epiphany-44.3/data/org.gnome.Epiphany.appdata.xml.in.in 
new/epiphany-44.5/data/org.gnome.Epiphany.appdata.xml.in.in
--- old/epiphany-44.3/data/org.gnome.Epiphany.appdata.xml.in.in 2023-05-25 
22:12:49.000000000 +0200
+++ new/epiphany-44.5/data/org.gnome.Epiphany.appdata.xml.in.in 2023-06-30 
15:07:16.000000000 +0200
@@ -51,6 +51,8 @@
     <display_length compare="ge">360</display_length>
   </requires>
   <releases>
+    <release date="2023-06-30" version="44.5"/>
+    <release date="2023-06-29" version="44.4"/>
     <release date="2023-05-25" version="44.3"/>
     <release date="2023-04-20" version="44.2"/>
     <release date="2023-04-02" version="44.1"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-44.3/lib/ephy-web-app-utils.c 
new/epiphany-44.5/lib/ephy-web-app-utils.c
--- old/epiphany-44.3/lib/ephy-web-app-utils.c  2023-05-25 22:12:49.000000000 
+0200
+++ new/epiphany-44.5/lib/ephy-web-app-utils.c  2023-06-30 15:07:16.000000000 
+0200
@@ -1019,9 +1019,15 @@
     }
 
     if (changed) {
-      saved = g_key_file_save_to_file (key, app->desktop_path, &error);
+      char *resolved_path = realpath (app->desktop_path, NULL);
+      if (!resolved_path) {
+        g_warning ("Failed to save web application %s: failed to resolve path 
%s: %s", app->name, app->desktop_path, g_strerror (errno));
+        return FALSE;
+      }
+      saved = g_key_file_save_to_file (key, resolved_path, &error);
       if (!saved)
         g_warning ("Failed to save desktop file of web application: %s\n", 
error->message);
+      free (resolved_path);
     }
   } else {
     g_warning ("Failed to load desktop file of web application: %s\n", 
error->message);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-44.3/meson.build 
new/epiphany-44.5/meson.build
--- old/epiphany-44.3/meson.build       2023-05-25 22:12:49.000000000 +0200
+++ new/epiphany-44.5/meson.build       2023-06-30 15:07:16.000000000 +0200
@@ -1,6 +1,6 @@
 project('epiphany', 'c',
   license: 'GPL3+',
-  version: '44.3',
+  version: '44.5',
   meson_version: '>= 0.59.0',
   default_options: ['c_std=gnu11',
                     'warning_level=2']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-44.3/org.gnome.Epiphany.json 
new/epiphany-44.5/org.gnome.Epiphany.json
--- old/epiphany-44.3/org.gnome.Epiphany.json   2023-05-25 22:12:49.000000000 
+0200
+++ new/epiphany-44.5/org.gnome.Epiphany.json   2023-06-30 15:07:16.000000000 
+0200
@@ -3,6 +3,9 @@
     "runtime" : "org.gnome.Platform",
     "runtime-version" : "master",
     "sdk" : "org.gnome.Sdk",
+    "sdk-extensions" : [
+        "org.freedesktop.Sdk.Extension.vala-nightly"
+    ],
     "command" : "epiphany",
     "tags" : [
         "nightly"
@@ -19,6 +22,10 @@
         "--system-talk-name=org.freedesktop.GeoClue2",
         "--own-name=org.gnome.Epiphany.WebAppProvider"
     ],
+    "build-options" : {
+        "prepend-path" : "/usr/lib/sdk/vala-nightly/bin/",
+        "prepend-ld-library-path" : "/usr/lib/sdk/vala-nightly/lib"
+    },
     "modules" : [
          {
             "name": "elementary-icons",
@@ -26,7 +33,8 @@
             "sources": [
                 {
                     "type": "git",
-                    "url": "https://github.com/elementary/icons.git";
+                    "url": "https://github.com/elementary/icons.git";,
+                    "branch": "main"
                 }
             ],
             "modules": [
@@ -82,6 +90,22 @@
             ]
         },
         {
+            "name" : "libgee",
+            "buildsystem" : "autotools",
+            "build-options" : {
+                "env" : {
+                    "ACLOCAL_PATH" : "/usr/lib/sdk/vala-nightly/share/aclocal"
+                }
+            },
+            "sources" : [
+                {
+                    "type" : "git",
+                    "url" : "https://gitlab.gnome.org/GNOME/libgee.git";,
+                    "branch" : "main"
+                }
+            ]
+        },
+        {
             "name": "granite",
             "buildsystem": "meson",
             "sources": [
@@ -117,6 +141,20 @@
                 "-Dprofile=Devel",
                 "-Dgranite=enabled"
             ],
+            "run-tests" : true,
+            "build-options" : {
+                "test-args" : [
+                    "--device=dri",
+                    "--filesystem=xdg-download",
+                    "--share=ipc",
+                    "--share=network",
+                    "--socket=fallback-x11",
+                    "--socket=pulseaudio",
+                    "--socket=wayland",
+                    "--system-talk-name=org.freedesktop.GeoClue2",
+                    "--own-name=org.gnome.Epiphany.WebAppProvider"
+                ]
+            },
             "sources" : [
                 {
                     "type" : "git",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-44.3/src/ephy-firefox-sync-dialog.c 
new/epiphany-44.5/src/ephy-firefox-sync-dialog.c
--- old/epiphany-44.3/src/ephy-firefox-sync-dialog.c    2023-05-25 
22:12:49.000000000 +0200
+++ new/epiphany-44.5/src/ephy-firefox-sync-dialog.c    2023-06-30 
15:07:16.000000000 +0200
@@ -198,6 +198,7 @@
     gtk_widget_set_visible (sync_dialog->sync_page_group, FALSE);
     gtk_widget_set_visible (sync_dialog->sync_firefox_account_group, TRUE);
     gtk_widget_set_visible (sync_dialog->sync_options_group, TRUE);
+    gtk_widget_set_visible (sync_dialog->sync_now_button, TRUE);
   } else {
     /* Display the error message and reload the iframe. */
     sync_sign_in_details_show (sync_dialog, error->message);
@@ -541,6 +542,7 @@
 
   /* Show Firefox Accounts iframe. */
   sync_setup_firefox_iframe (sync_dialog);
+  gtk_widget_set_visible (sync_dialog->sync_now_button, FALSE);
   gtk_widget_set_visible (sync_dialog->sync_firefox_account_group, FALSE);
   gtk_widget_set_visible (sync_dialog->sync_options_group, FALSE);
   gtk_widget_set_visible (sync_dialog->sync_page_group, TRUE);
@@ -749,6 +751,7 @@
 
   if (!user) {
     sync_setup_firefox_iframe (sync_dialog);
+    gtk_widget_set_visible (sync_dialog->sync_now_button, FALSE);
     gtk_widget_set_visible (sync_dialog->sync_firefox_account_group, FALSE);
     gtk_widget_set_visible (sync_dialog->sync_options_group, FALSE);
   } else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-44.3/src/ephy-location-entry.c 
new/epiphany-44.5/src/ephy-location-entry.c
--- old/epiphany-44.3/src/ephy-location-entry.c 2023-05-25 22:12:49.000000000 
+0200
+++ new/epiphany-44.5/src/ephy-location-entry.c 2023-06-30 15:07:16.000000000 
+0200
@@ -71,7 +71,6 @@
 
   char *saved_text;
   char *jump_tab;
-  char *complete_address;
 
   guint progress_timeout;
   gdouble progress_fraction;
@@ -209,9 +208,7 @@
 static void
 editable_changed_cb (GtkEditable       *editable,
                      EphyLocationEntry *entry);
-static void
-ephy_location_entry_set_text (EphyLocationEntry *self,
-                              const char        *text);
+
 static void
 update_selected_url (EphyLocationEntry *entry)
 {
@@ -230,9 +227,9 @@
 
   if (g_str_has_prefix (uri, "ephy-tab://")) {
     entry->jump_tab = g_strdup (uri);
-    ephy_location_entry_set_text (entry, dzl_suggestion_get_subtitle 
(suggestion));
+    gtk_editable_set_text (GTK_EDITABLE (entry), dzl_suggestion_get_subtitle 
(suggestion));
   } else {
-    ephy_location_entry_set_text (entry, uri);
+    gtk_editable_set_text (GTK_EDITABLE (entry), uri);
   }
   gtk_editable_set_position (GTK_EDITABLE (entry), -1);
   g_signal_handlers_unblock_by_func (entry, G_CALLBACK (editable_changed_cb), 
entry);
@@ -512,9 +509,6 @@
     show_context_menu (entry, x, y);
     gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED);
   }
-
-  if (n_click >= 2)
-    gtk_event_controller_reset (GTK_EVENT_CONTROLLER (gesture));
 }
 
 static GIcon *
@@ -581,12 +575,10 @@
   PangoAttribute *color_normal;
   PangoAttribute *color_dimmed;
   g_autoptr (GUri) uri = NULL;
-  g_autofree char *new_text = NULL;
   const char *text = gtk_editable_get_text (GTK_EDITABLE (self));
   const char *host;
   const char *base_domain;
   char *sub_string;
-  int offset = 0;
 
   attrs = pango_attr_list_new ();
 
@@ -594,20 +586,8 @@
     goto out;
 
   uri = g_uri_parse (text, G_URI_FLAGS_NONE, NULL);
-  if (!uri) {
-    /* Maybe text is missing its scheme (due to narrow mode).
-     * Let's create a temporary full address and try it again.
-     * It will not be added to the current address.
-     */
-    new_text = g_strconcat ("https://";, text, NULL);
-
-    text = new_text;
-    offset = 8;
-
-    uri = g_uri_parse (text, G_URI_FLAGS_NONE, NULL);
-    if (!uri)
-      goto out;
-  }
+  if (!uri)
+    goto out;
 
   host = g_uri_get_host (uri);
   if (!host || strlen (host) == 0)
@@ -627,7 +607,7 @@
 
   /* Base domain with normal style */
   color_normal = pango_attr_foreground_alpha_new (65535);
-  color_normal->start_index = sub_string - text - offset;
+  color_normal->start_index = sub_string - text;
   color_normal->end_index = color_normal->start_index + strlen (base_domain);
   pango_attr_list_insert (attrs, color_normal);
 
@@ -637,36 +617,6 @@
 }
 
 static void
-ephy_location_entry_set_text (EphyLocationEntry *self,
-                              const char        *text)
-{
-  if (text) {
-    g_clear_pointer (&self->complete_address, g_free);
-    self->complete_address = g_strdup (text);
-  } else {
-    text = self->complete_address;
-  }
-
-  if (!gtk_widget_has_focus (GTK_WIDGET (self)) && self->adaptive_mode == 
EPHY_ADAPTIVE_MODE_NARROW) {
-    g_autoptr (GUri) uri = NULL;
-    const char *host = NULL;
-
-    uri = g_uri_parse (text, G_URI_FLAGS_NONE, NULL);
-    if (uri) {
-      host = g_uri_get_host (uri);
-      if (host) {
-        char *pos = strstr (text, host);
-        if (pos)
-          text = pos;
-      }
-    }
-  }
-
-  gtk_editable_set_text (GTK_EDITABLE (self), text);
-  update_entry_style (self, gtk_widget_has_focus (GTK_WIDGET (self)));
-}
-
-static void
 focus_enter_cb (EphyLocationEntry *entry)
 {
   update_entry_style (entry, TRUE);
@@ -686,7 +636,7 @@
 {
   if (entry->jump_tab) {
     g_signal_handlers_block_by_func (entry, G_CALLBACK (editable_changed_cb), 
entry);
-    ephy_location_entry_set_text (entry, entry->jump_tab);
+    gtk_editable_set_text (GTK_EDITABLE (entry), entry->jump_tab);
     g_signal_handlers_unblock_by_func (entry, G_CALLBACK 
(editable_changed_cb), entry);
     g_clear_pointer (&entry->jump_tab, g_free);
   } else {
@@ -694,6 +644,8 @@
     gchar *url = g_strstrip (text);
     g_autofree gchar *new_url = NULL;
 
+    gtk_editable_set_text (GTK_EDITABLE (entry), entry->jump_tab ? 
entry->jump_tab : text);
+
     if (strlen (url) > 5 && g_str_has_prefix (url, "http:") && url[5] != '/')
       new_url = g_strdup_printf ("http://%s";, url + 5);
     else if (strlen (url) > 6 && g_str_has_prefix (url, "https:") && url[6] != 
'/')
@@ -701,11 +653,7 @@
 
     if (new_url) {
       g_signal_handlers_block_by_func (entry, G_CALLBACK 
(editable_changed_cb), entry);
-      ephy_location_entry_set_text (entry, new_url);
-      g_signal_handlers_unblock_by_func (entry, G_CALLBACK 
(editable_changed_cb), entry);
-    } else {
-      g_signal_handlers_block_by_func (entry, G_CALLBACK 
(editable_changed_cb), entry);
-      ephy_location_entry_set_text (entry, entry->jump_tab ? entry->jump_tab : 
text);
+      gtk_editable_set_text (GTK_EDITABLE (entry), new_url);
       g_signal_handlers_unblock_by_func (entry, G_CALLBACK 
(editable_changed_cb), entry);
     }
 
@@ -717,7 +665,7 @@
         g_autofree gchar *new_url = g_strdup_printf ("www.%s.com", url);
 
         g_signal_handlers_block_by_func (entry, G_CALLBACK 
(editable_changed_cb), entry);
-        ephy_location_entry_set_text (entry, new_url);
+        gtk_editable_set_text (GTK_EDITABLE (entry), new_url);
         g_signal_handlers_unblock_by_func (entry, G_CALLBACK 
(editable_changed_cb), entry);
       }
     }
@@ -791,7 +739,7 @@
   text = ephy_suggestion_get_uri (suggestion);
 
   g_signal_handlers_block_by_func (entry, G_CALLBACK (editable_changed_cb), 
entry);
-  ephy_location_entry_set_text (entry, entry->jump_tab ? entry->jump_tab : 
text);
+  gtk_editable_set_text (GTK_EDITABLE (entry), entry->jump_tab ? 
entry->jump_tab : text);
   g_clear_pointer (&entry->jump_tab, g_free);
   g_signal_handlers_unblock_by_func (entry, G_CALLBACK (editable_changed_cb), 
entry);
 
@@ -916,7 +864,7 @@
   }
 
   g_signal_handlers_block_by_func (entry, G_CALLBACK (editable_changed_cb), 
entry);
-  ephy_location_entry_set_text (entry, text);
+  gtk_editable_set_text (GTK_EDITABLE (entry), text);
   emit_activate (entry, 0);
   g_signal_handlers_unblock_by_func (entry, G_CALLBACK (editable_changed_cb), 
entry);
 
@@ -938,7 +886,7 @@
 {
   entry->block_update = TRUE;
   g_signal_handlers_block_by_func (entry, G_CALLBACK (editable_changed_cb), 
entry);
-  ephy_location_entry_set_text (entry, "");
+  gtk_editable_set_text (GTK_EDITABLE (entry), "");
   g_signal_handlers_unblock_by_func (entry, G_CALLBACK (editable_changed_cb), 
entry);
   entry->block_update = FALSE;
   entry->user_changed = TRUE;
@@ -1569,7 +1517,7 @@
 
   entry->block_update = TRUE;
   g_signal_handlers_block_by_func (entry, G_CALLBACK (editable_changed_cb), 
entry);
-  ephy_location_entry_set_text (entry, final_text);
+  gtk_editable_set_text (GTK_EDITABLE (widget), final_text);
   g_signal_handlers_unblock_by_func (entry, G_CALLBACK (editable_changed_cb), 
entry);
   update_entry_style (entry, gtk_widget_has_focus (entry->text));
 
@@ -1704,7 +1652,7 @@
 ephy_location_entry_undo_reset (EphyLocationEntry *entry)
 {
   g_signal_handlers_block_by_func (entry, G_CALLBACK (editable_changed_cb), 
entry);
-  ephy_location_entry_set_text (entry, entry->saved_text);
+  gtk_editable_set_text (GTK_EDITABLE (entry), entry->saved_text);
   g_signal_handlers_unblock_by_func (entry, G_CALLBACK (editable_changed_cb), 
entry);
   entry->can_redo = FALSE;
   entry->user_changed = TRUE;
@@ -2020,20 +1968,17 @@
 }
 
 void
-ephy_location_entry_set_adaptive_mode (EphyLocationEntry *self,
+ephy_location_entry_set_adaptive_mode (EphyLocationEntry *entry,
                                        EphyAdaptiveMode   adaptive_mode)
 {
-  self->adaptive_mode = adaptive_mode;
-  g_signal_handlers_block_by_func (self, G_CALLBACK (editable_changed_cb), 
self);
-  ephy_location_entry_set_text (self, NULL);
-  g_signal_handlers_unblock_by_func (self, G_CALLBACK (editable_changed_cb), 
self);
+  entry->adaptive_mode = adaptive_mode;
 
   if (adaptive_mode == EPHY_ADAPTIVE_MODE_NARROW)
-    gtk_widget_add_css_class (GTK_WIDGET (self), "narrow");
+    gtk_widget_add_css_class (GTK_WIDGET (entry), "narrow");
   else
-    gtk_widget_remove_css_class (GTK_WIDGET (self), "narrow");
+    gtk_widget_remove_css_class (GTK_WIDGET (entry), "narrow");
 
-  ephy_location_entry_set_bookmark_icon_state (self, self->icon_state);
+  ephy_location_entry_set_bookmark_icon_state (entry, entry->icon_state);
 }
 
 void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-44.3/src/ephy-window.c 
new/epiphany-44.5/src/ephy-window.c
--- old/epiphany-44.3/src/ephy-window.c 2023-05-25 22:12:49.000000000 +0200
+++ new/epiphany-44.5/src/ephy-window.c 2023-06-30 15:07:16.000000000 +0200
@@ -180,7 +180,7 @@
   GtkWidget *toast_overlay;
   GtkWidget *switch_to_tab;
   AdwToast *switch_toast;
-  GHashTable *active_permission_requests;
+  GHashTable *active_permission_popovers;
 
   GList *pending_decisions;
   gulong filters_initialized_id;
@@ -2356,6 +2356,59 @@
   ephy_location_entry_set_progress (EPHY_LOCATION_ENTRY (title_widget), 
progress, loading);
 }
 
+static void
+load_all_available_popovers (EphyWindow  *window,
+                             EphyWebView *view)
+{
+  GList *popover_list = g_hash_table_lookup 
(window->active_permission_popovers, view);
+  EphyTitleWidget *title_widget = ephy_header_bar_get_title_widget 
(EPHY_HEADER_BAR (window->header_bar));
+  EphyLocationEntry *lentry;
+  GList *l;
+
+  if (!EPHY_IS_LOCATION_ENTRY (title_widget))
+    return;
+
+  lentry = EPHY_LOCATION_ENTRY (title_widget);
+
+  ephy_location_entry_set_password_popover (lentry, NULL);
+  ephy_location_entry_clear_permission_buttons (lentry);
+
+  for (l = popover_list; l; l = l->next) {
+    if (EPHY_IS_PASSWORD_POPOVER (l->data))
+      ephy_location_entry_set_password_popover (lentry, EPHY_PASSWORD_POPOVER 
(l->data));
+    else if (EPHY_IS_PERMISSION_POPOVER (l->data))
+      ephy_location_entry_add_permission_popover (lentry, 
EPHY_PERMISSION_POPOVER (l->data));
+  }
+}
+
+static void
+destroy_permission_popovers_for_view (EphyWindow  *window,
+                                      EphyWebView *view)
+{
+  GList *popover_list;
+
+  /* Freeing open permission popovers will also free the outstanding permission
+   * requests, which is equivalent to denying them.
+   */
+  popover_list = g_hash_table_lookup (window->active_permission_popovers, 
view);
+  g_hash_table_steal (window->active_permission_popovers, view);
+  g_list_free_full (popover_list, g_object_unref);
+}
+
+static void
+load_changed_cb (EphyWebView     *view,
+                 WebKitLoadEvent  load_event,
+                 EphyWindow      *window)
+{
+  sync_tab_load_status (view, load_event, window);
+
+  if (load_event != WEBKIT_LOAD_STARTED)
+    return;
+
+  destroy_permission_popovers_for_view (window, view);
+  if (view == ephy_embed_get_web_view (window->active_embed))
+    load_all_available_popovers (window, view);
+}
 
 static void
 ephy_window_connect_active_embed (EphyWindow *window)
@@ -2428,7 +2481,7 @@
                            G_CALLBACK (sync_tab_document_type),
                            window, 0);
   g_signal_connect_object (view, "load-changed",
-                           G_CALLBACK (sync_tab_load_status),
+                           G_CALLBACK (load_changed_cb),
                            window, 0);
   g_signal_connect_object (view, "notify::navigation",
                            G_CALLBACK (sync_tab_navigation),
@@ -2540,14 +2593,17 @@
                         AdwTabPage *page,
                         EphyWindow *window)
 {
+  EphyWebView *view = NULL;
   GActionGroup *action_group;
   GAction *action;
   int n_pages;
   int n_pinned_pages;
   int position;
   gboolean pinned;
+  gboolean muted;
 
   if (page) {
+    view = ephy_embed_get_web_view (EPHY_EMBED (adw_tab_page_get_child 
(page)));
     n_pages = adw_tab_view_get_n_pages (tab_view);
     n_pinned_pages = adw_tab_view_get_n_pinned_pages (tab_view);
     position = adw_tab_view_get_page_position (tab_view, page);
@@ -2585,6 +2641,12 @@
   action = g_action_map_lookup_action (G_ACTION_MAP (action_group),
                                        "close");
   g_simple_action_set_enabled (G_SIMPLE_ACTION (action), !page || !pinned);
+
+  muted = view && webkit_web_view_get_is_muted (WEBKIT_WEB_VIEW (view));
+  action = g_action_map_lookup_action (G_ACTION_MAP (action_group),
+                                       "mute");
+  g_simple_action_set_state (G_SIMPLE_ACTION (action),
+                             g_variant_new_boolean (muted));
 }
 
 static gboolean
@@ -2650,31 +2712,6 @@
 }
 
 static void
-load_all_available_popovers (EphyWindow  *window,
-                             EphyWebView *view)
-{
-  GList *popover_list = g_hash_table_lookup 
(window->active_permission_requests, view);
-  EphyTitleWidget *title_widget = ephy_header_bar_get_title_widget 
(EPHY_HEADER_BAR (window->header_bar));
-  EphyLocationEntry *lentry;
-  GList *l;
-
-  if (!EPHY_IS_LOCATION_ENTRY (title_widget))
-    return;
-
-  lentry = EPHY_LOCATION_ENTRY (title_widget);
-
-  ephy_location_entry_set_password_popover (lentry, NULL);
-  ephy_location_entry_clear_permission_buttons (lentry);
-
-  for (l = popover_list; l; l = l->next) {
-    if (EPHY_IS_PASSWORD_POPOVER (l->data))
-      ephy_location_entry_set_password_popover (lentry, EPHY_PASSWORD_POPOVER 
(l->data));
-    else if (EPHY_IS_PERMISSION_POPOVER (l->data))
-      ephy_location_entry_add_permission_popover (lentry, 
EPHY_PERMISSION_POPOVER (l->data));
-  }
-}
-
-static void
 popover_response_cb (EphyWindow *window,
                      gpointer    popover)
 {
@@ -2692,13 +2729,13 @@
     ephy_location_entry_set_password_popover (lentry, NULL);
 
   view = ephy_shell_get_active_web_view (ephy_shell_get_default ());
-  popover_list = g_hash_table_lookup (window->active_permission_requests, 
view);
+  popover_list = g_hash_table_lookup (window->active_permission_popovers, 
view);
   popover_list = g_list_remove (popover_list, popover);
 
   if (!popover_list)
-    g_hash_table_steal (window->active_permission_requests, view);
+    g_hash_table_steal (window->active_permission_popovers, view);
   else
-    g_hash_table_replace (window->active_permission_requests, view, 
popover_list);
+    g_hash_table_replace (window->active_permission_popovers, view, 
popover_list);
 
   g_object_unref (popover);
 }
@@ -2813,7 +2850,7 @@
   } else {
     EphyTitleWidget *title_widget = ephy_header_bar_get_title_widget 
(EPHY_HEADER_BAR (window->header_bar));
     EphyLocationEntry *lentry;
-    GList *list = g_hash_table_lookup (EPHY_WINDOW 
(window)->active_permission_requests, view);
+    GList *list = g_hash_table_lookup (EPHY_WINDOW 
(window)->active_permission_popovers, view);
 
     g_assert (EPHY_IS_LOCATION_ENTRY (title_widget));
 
@@ -2823,7 +2860,7 @@
     ephy_location_entry_add_permission_popover (lentry, popover);
     ephy_location_entry_show_best_permission_popover (lentry);
     list = g_list_append (list, popover);
-    g_hash_table_replace (EPHY_WINDOW (window)->active_permission_requests, 
view, list);
+    g_hash_table_replace (EPHY_WINDOW (window)->active_permission_popovers, 
view, list);
 
     g_signal_connect (popover, "allow", G_CALLBACK (popover_allow_cb), window);
     g_signal_connect (popover, "deny", G_CALLBACK (popover_deny_cb), window);
@@ -2911,6 +2948,8 @@
     ephy_link_open (EPHY_LINK (window), NULL, NULL, EPHY_LINK_NEW_TAB);
   }
 
+  destroy_permission_popovers_for_view (window, ephy_embed_get_web_view (tab));
+
   g_object_set_data (G_OBJECT (tab), "ephy-window-close-tab-closed", 
GINT_TO_POINTER (TRUE));
 
   /* If that was the last tab, destroy the window.
@@ -3278,7 +3317,7 @@
 }
 
 static void
-free_permission_requests (gpointer  key,
+free_permission_popovers (gpointer  key,
                           GList    *value)
 {
   g_list_free_full (value, g_object_unref);
@@ -3305,10 +3344,10 @@
 
     g_hash_table_unref (window->action_labels);
 
-    g_hash_table_foreach (window->active_permission_requests,
-                          (GHFunc)free_permission_requests, NULL);
+    g_hash_table_foreach (window->active_permission_popovers,
+                          (GHFunc)free_permission_popovers, NULL);
 
-    g_hash_table_unref (window->active_permission_requests);
+    g_hash_table_unref (window->active_permission_popovers);
   }
 
   G_OBJECT_CLASS (ephy_window_parent_class)->dispose (object);
@@ -3792,7 +3831,7 @@
   } else {
     EphyPasswordPopover *popover = ephy_password_popover_new (request_data);
     EphyWebView *view = ephy_shell_get_active_web_view (EPHY_SHELL (shell));
-    GList *list = g_hash_table_lookup (EPHY_WINDOW 
(window)->active_permission_requests, view);
+    GList *list = g_hash_table_lookup (EPHY_WINDOW 
(window)->active_permission_popovers, view);
 
     title_widget = GTK_WIDGET (ephy_header_bar_get_title_widget 
(EPHY_HEADER_BAR (ephy_window_get_header_bar (EPHY_WINDOW (window)))));
 
@@ -3805,7 +3844,7 @@
     ephy_location_entry_set_password_popover (lentry, popover);
     ephy_location_entry_show_password_popover (lentry);
     list = g_list_append (list, popover);
-    g_hash_table_replace (EPHY_WINDOW (window)->active_permission_requests, 
view, list);
+    g_hash_table_replace (EPHY_WINDOW (window)->active_permission_popovers, 
view, list);
 
     g_signal_connect_swapped (popover, "response", G_CALLBACK 
(popover_response_cb), window);
   }
@@ -3905,7 +3944,7 @@
                          g_strdup (action_label[i].label));
   }
 
-  window->active_permission_requests = g_hash_table_new (g_direct_hash,
+  window->active_permission_popovers = g_hash_table_new (g_direct_hash,
                                                          g_direct_equal);
 
   /* Set accels for actions */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-44.3/src/preferences/prefs-general-page.c 
new/epiphany-44.5/src/preferences/prefs-general-page.c
--- old/epiphany-44.3/src/preferences/prefs-general-page.c      2023-05-25 
22:12:49.000000000 +0200
+++ new/epiphany-44.5/src/preferences/prefs-general-page.c      2023-06-30 
15:07:16.000000000 +0200
@@ -610,6 +610,8 @@
   gboolean changed = FALSE;
   const char *text;
 
+  general_page->webapp_save_id = 0;
+
   if (!general_page->webapp)
     return G_SOURCE_REMOVE;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-44.3/src/resources/epiphany.gresource.xml 
new/epiphany-44.5/src/resources/epiphany.gresource.xml
--- old/epiphany-44.3/src/resources/epiphany.gresource.xml      2023-05-25 
22:12:49.000000000 +0200
+++ new/epiphany-44.5/src/resources/epiphany.gresource.xml      2023-06-30 
15:07:16.000000000 +0200
@@ -52,6 +52,7 @@
     <file preprocess="xml-stripblanks" 
compressed="true">overview-remove-item.svg</file>
     <file preprocess="xml-stripblanks" 
compressed="true">network-error-symbolic.svg</file>
     <file preprocess="xml-stripblanks" 
compressed="true">security-high-symbolic.svg</file>
+    <file preprocess="xml-stripblanks" 
compressed="true">web-app-icon-missing.svg</file>
   </gresource>
   <gresource prefix="/org/gnome/Epiphany/icons">
     <file compressed="true" 
alias="scalable/actions/ephy-download-symbolic.svg">ephy-download-symbolic.svg</file>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-44.3/src/resources/web-app-icon-missing.svg 
new/epiphany-44.5/src/resources/web-app-icon-missing.svg
--- old/epiphany-44.3/src/resources/web-app-icon-missing.svg    1970-01-01 
01:00:00.000000000 +0100
+++ new/epiphany-44.5/src/resources/web-app-icon-missing.svg    2023-06-30 
15:07:16.000000000 +0200
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="98" x2="108" 
y1="112" y2="112">
+        <stop offset="0" stop-color="#16529c"/>
+        <stop offset="1" stop-color="#236ac0"/>
+    </linearGradient>
+    <linearGradient id="b" gradientTransform="matrix(0 -1 1 0 -157 121)" 
gradientUnits="userSpaceOnUse" x1="0.999999" x2="0.999999" y1="215" y2="171">
+        <stop offset="0" stop-color="#2166bb"/>
+        <stop offset="1" stop-color="#89eda9"/>
+    </linearGradient>
+    <filter id="c" height="100%" width="100%" x="0%" y="0%">
+        <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 
0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+    </filter>
+    <mask id="d">
+        <g filter="url(#c)">
+            <rect fill-opacity="0.5" height="128" width="128"/>
+        </g>
+    </mask>
+    <clipPath id="e">
+        <rect height="152" width="192"/>
+    </clipPath>
+    <mask id="f">
+        <g filter="url(#c)">
+            <rect fill-opacity="0.5" height="128" width="128"/>
+        </g>
+    </mask>
+    <clipPath id="g">
+        <rect height="152" width="192"/>
+    </clipPath>
+    <mask id="h">
+        <g filter="url(#c)">
+            <rect fill-opacity="0.5" height="128" width="128"/>
+        </g>
+    </mask>
+    <clipPath id="i">
+        <rect height="152" width="192"/>
+    </clipPath>
+    <path d="m 64 5 c 33.136719 0 60 26.863281 60 60 s -26.863281 60 -60 60 s 
-60 -26.863281 -60 -60 s 26.863281 -60 60 -60 z m 0 0" fill="url(#a)"/>
+    <path d="m 64 5 c -33.136719 0 -60 26.863281 -60 60 s 26.863281 60 60 60 z 
m 0 0" fill="url(#b)"/>
+    <path d="m 124 63 c 0 33.136719 -26.863281 60 -60 60 s -60 -26.863281 -60 
-60 s 26.863281 -60 60 -60 s 60 26.863281 60 60 z m 0 0" fill="#40a1c8"/>
+    <path d="m 28.003906 64 c 0.125 13.914062 2.882813 27.367188 7.835938 
38.25 c -3.941406 2.015625 -7.28125 4.441406 -9.863282 7.160156 c -13.640624 
-11.171875 -21.675781 -27.78125 -21.96875 -45.410156 z m 0 0" fill="#49bbb0"/>
+    <path d="m 64 96 v 27 c -4.5 0 -8.988281 -0.507812 -13.375 -1.511719 c 
-5.800781 -4.058593 -10.894531 -10.691406 -14.78125 -19.238281 c 7.902344 
-4.039062 17.867188 -6.25 28.15625 -6.25 z m 0 0" fill="#378bde"/>
+    <path d="m 99.996094 64 c -0.125 13.914062 -2.882813 27.367188 -7.839844 
38.25 c 3.945312 2.015625 7.28125 4.441406 9.863281 7.160156 c 13.640625 
-11.171875 21.675781 -27.78125 21.972657 -45.410156 z m 0 0" fill="#266ec6"/>
+    <path d="m 64 64 v 59 c 4.5 0 8.988281 -0.507812 13.375 -1.511719 c 
13.472656 -9.433593 22.390625 -32.097656 22.621094 -57.488281 z m 0 0" 
fill="#378bde"/>
+    <path d="m 64 96 v 27 c 4.5 0 8.988281 -0.507812 13.375 -1.511719 c 
5.800781 -4.058593 10.894531 -10.691406 14.78125 -19.238281 c -7.902344 
-4.039062 -17.867188 -6.25 -28.15625 -6.25 z m 0 0" fill="#266ec6"/>
+    <path d="m 92.160156 102.25 c -3.890625 8.546875 -8.984375 15.175781 
-14.78125 19.238281 c 9.035156 -2.066406 17.472656 -6.203125 24.644532 
-12.078125 c -2.582032 -2.71875 -5.921876 -5.144531 -9.863282 -7.160156 z m 0 
0" fill="#1e62b5"/>
+    <path d="m 64 3 c -33.136719 0 -60 26.863281 -60 60 c 0 0.332031 0.003906 
0.667969 0.007812 1 h 59.992188 z m 0 0" fill="#53d795"/>
+    <path d="m 50.625 4.507812 c -9.039062 2.070313 -17.476562 6.203126 
-24.648438 12.078126 c 2.582032 2.722656 5.921876 5.144531 9.867188 7.164062 c 
3.890625 -8.550781 8.984375 -15.179688 14.78125 -19.242188 z m 0 0" 
fill="#72e99a"/>
+    <path d="m 64 3 c -4.5 0 -8.984375 0.507812 -13.375 1.507812 c -13.664062 
9.570313 -22.625 32.734376 -22.625 58.492188 c 0 0.332031 0 0.667969 0.003906 1 
h 35.996094 z m 0 0" fill="#49bbb0"/>
+    <path d="m 64 3 c -4.5 0 -8.984375 0.507812 -13.375 1.507812 c -5.796875 
4.0625 -10.890625 10.691407 -14.78125 19.242188 c 7.90625 4.039062 17.867188 
6.25 28.15625 6.25 z m 0 0" fill="#53d795"/>
+    <path d="m 64 3 c 33.136719 0 60 26.863281 60 60 c 0 0.332031 -0.003906 
0.667969 -0.007812 1 h -59.992188 z m 0 0" fill="#378bde"/>
+    <path d="m 77.375 4.507812 c 9.039062 2.070313 17.476562 6.203126 
24.648438 12.078126 c -2.582032 2.722656 -5.921876 5.144531 -9.863282 7.160156 
c -3.894531 -8.546875 -8.988281 -15.175782 -14.785156 -19.238282 z m 0 0" 
fill="#40a1c8"/>
+    <path d="m 64 3 c 4.5 0 8.988281 0.507812 13.375 1.507812 c 13.664062 
9.570313 22.625 32.734376 22.625 58.492188 c 0 0.332031 0 0.667969 -0.003906 1 
h -35.996094 z m 0 0" fill="#40a1c8"/>
+    <path d="m 64 3 c 4.5 0 8.988281 0.507812 13.375 1.507812 c 5.796875 
4.0625 10.890625 10.691407 14.78125 19.238282 c -7.90625 4.042968 -17.867188 
6.253906 -28.15625 6.253906 z m 0 0" fill="#49bbb0"/>
+    <g clip-path="url(#e)" mask="url(#d)" transform="matrix(1 0 0 1 -8 -16)">
+        <path d="m 169.5 24 v 1 h 13 v -1 z m 0 0" fill="#2e3436"/>
+    </g>
+    <g clip-path="url(#g)" mask="url(#f)" transform="matrix(1 0 0 1 -8 -16)">
+        <path d="m 169.5 21 v 1 h 13 v -1 z m 0 0" fill="#2e3436"/>
+    </g>
+    <g clip-path="url(#i)" mask="url(#h)" transform="matrix(1 0 0 1 -8 -16)">
+        <path d="m 169.5 27 v 1 h 13 v -1 z m 0 0" fill="#2e3436"/>
+    </g>
+</svg>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/epiphany-44.3/src/webextension/ephy-web-extension-manager.c 
new/epiphany-44.5/src/webextension/ephy-web-extension-manager.c
--- old/epiphany-44.3/src/webextension/ephy-web-extension-manager.c     
2023-05-25 22:12:49.000000000 +0200
+++ new/epiphany-44.5/src/webextension/ephy-web-extension-manager.c     
2023-06-30 15:07:16.000000000 +0200
@@ -1015,8 +1015,9 @@
 {
   EphyWebExtensionManager *manager = ephy_web_extension_manager_get_default ();
   g_autoptr (WebKitSettings) settings = NULL;
-  WebKitWebContext *web_context;
+  WebKitWebContext *web_context = NULL;
   GtkWidget *web_view;
+  WebKitWebView *background_view;
   const char *custom_user_agent;
 
   settings = webkit_settings_new_with_settings 
("enable-write-console-messages-to-stdout", TRUE,
@@ -1032,16 +1033,20 @@
   else
     webkit_settings_set_user_agent_with_application_details (settings, 
"Epiphany", EPHY_VERSION);
 
-  web_context = webkit_web_context_new ();
-  webkit_web_context_register_uri_scheme (web_context, "ephy-webextension", 
ephy_webextension_scheme_cb, web_extension, NULL);
-  webkit_security_manager_register_uri_scheme_as_secure 
(webkit_web_context_get_security_manager (web_context),
-                                                         "ephy-webextension");
-  g_signal_connect_object (web_context, "initialize-web-process-extensions", 
G_CALLBACK (init_web_extension_api), web_extension, 0);
+  /* If there is a background view the web context is shared with the 
related-view property. */
+  background_view = ephy_web_extension_manager_get_background_web_view 
(manager, web_extension);
+  if (!background_view) {
+    web_context = webkit_web_context_new ();
+    webkit_web_context_register_uri_scheme (web_context, "ephy-webextension", 
ephy_webextension_scheme_cb, web_extension, NULL);
+    webkit_security_manager_register_uri_scheme_as_secure 
(webkit_web_context_get_security_manager (web_context),
+                                                           
"ephy-webextension");
+    g_signal_connect_object (web_context, "initialize-web-process-extensions", 
G_CALLBACK (init_web_extension_api), web_extension, 0);
+  }
 
   web_view = g_object_new (WEBKIT_TYPE_WEB_VIEW,
                            "web-context", web_context,
                            "settings", settings,
-                           "related-view", 
ephy_web_extension_manager_get_background_web_view (manager, web_extension),
+                           "related-view", background_view,
                            "default-content-security-policy", 
ephy_web_extension_get_content_security_policy (web_extension),
                            "web-extension-mode", 
WEBKIT_WEB_EXTENSION_MODE_MANIFESTV2,
                            NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/epiphany-44.3/src/window-commands.c 
new/epiphany-44.5/src/window-commands.c
--- old/epiphany-44.3/src/window-commands.c     2023-05-25 22:12:49.000000000 
+0200
+++ new/epiphany-44.5/src/window-commands.c     2023-06-30 15:07:16.000000000 
+0200
@@ -1630,17 +1630,24 @@
   GdkTexture *icon_texture = webkit_web_view_get_favicon (WEBKIT_WEB_VIEW 
(data->view));
 
   icon = ephy_favicon_get_from_texture_scaled (icon_texture, 0, 0);
-
   if (icon != NULL) {
     data->framed_pixbuf = frame_pixbuf (icon, NULL, DEFAULT_ICON_SIZE, 
DEFAULT_ICON_SIZE);
     g_assert (data->icon_v == NULL);
     data->icon_v = g_icon_serialize (G_ICON (data->framed_pixbuf));
-    create_install_dialog_when_ready (data);
-  }
-  if (data->icon_v == NULL) {
-    g_warning ("Failed to get favicon for web app %s, giving up", 
data->display_address);
-    ephy_application_dialog_data_free (data);
+  } else {
+    g_autoptr (GBytes) bytes = NULL;
+
+    bytes = g_resources_lookup_data 
("/org/gnome/epiphany/page-icons/web-app-icon-missing.svg",
+                                     G_RESOURCE_LOOKUP_FLAGS_NONE,
+                                     NULL);
+    g_assert (bytes);
+
+    icon = g_bytes_icon_new (bytes);
+    data->icon_v = g_icon_serialize (icon);
   }
+
+  g_assert (data->icon_v != NULL);
+  create_install_dialog_when_ready (data);
 }
 
 static void
@@ -1851,7 +1858,8 @@
 
   notification = g_notification_new (message);
 
-  g_notification_set_icon (notification, G_ICON (data->framed_pixbuf));
+  if (data->framed_pixbuf)
+    g_notification_set_icon (notification, G_ICON (data->framed_pixbuf));
 
   if (success) {
     /* Translators: Desktop notification when a new web app is created. */

Reply via email to