summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Griffis <pgriffis@igalia.com>2022-08-23 10:53:15 -0500
committerMarge Bot <marge-bot@gnome.org>2022-08-30 15:50:51 +0000
commit5712678e81408b9b006e2825e17117a51778f929 (patch)
tree4fd0b63c4d355e2d7cd809045557d85c96bcb390
parented8fac8acb8cd562f720c5f9cbcb19c33b88b570 (diff)
downloadepiphany-5712678e81408b9b006e2825e17117a51778f929.tar.gz
WebExtensions: Fix crash when failing to get translated string
ephy_web_extension_manifest_get_localized_string() will now never return NULL. Part-of: <https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/1189>
-rw-r--r--src/webextension/ephy-web-extension.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/webextension/ephy-web-extension.c b/src/webextension/ephy-web-extension.c
index 48f67e734..c1860fa9d 100644
--- a/src/webextension/ephy-web-extension.c
+++ b/src/webextension/ephy-web-extension.c
@@ -649,10 +649,21 @@ ephy_web_extension_manifest_get_localized_string (EphyWebExtension *self,
if (g_str_has_prefix (value, "__MSG_") && g_str_has_suffix (value, "__")) {
/* FIXME: Set current locale */
g_autofree char *locale = g_strdup ("en");
+ g_autofree char *translated_string = NULL;
+ char *message_name;
- /* Remove trailing __ */
+ /* Strip prefix and remove trailing __ */
+ message_name = value + strlen ("__MSG_");
value[strlen (value) - 2] = '\0';
- return web_extension_get_translation (self, locale, value + strlen ("__MSG_"));
+
+ translated_string = web_extension_get_translation (self, locale, message_name);
+
+ if (!translated_string) {
+ g_debug ("Failed to find '%s' translation for message '%s'", locale, message_name);
+ return g_strdup ("");
+ }
+
+ return g_steal_pointer (&translated_string);
}
return g_steal_pointer (&value);