1 From 560e976ee9c59d75907b5ef6ed2bc336719e37d3 Mon Sep 17 00:00:00 2001
2 From: Emilio Pozuelo Monfort <pochu27@gmail.com>
3 Date: Tue, 25 Apr 2017 17:27:42 +0200
4 Subject: [PATCH] extensionSystem: handle reloading broken extensions
6 Some extensions out there may fail to reload. When that happens,
7 we need to catch any exceptions so that we don't leave things in
8 a broken state that could lead to leaving extensions enabled in
11 https://bugzilla.gnome.org/show_bug.cgi?id=781728
13 js/ui/extensionSystem.js | 12 ++++++++++--
14 1 file changed, 10 insertions(+), 2 deletions(-)
16 diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js
17 index ba33222..1feaa2f 100644
18 --- a/js/ui/extensionSystem.js
19 +++ b/js/ui/extensionSystem.js
20 @@ -276,12 +276,20 @@ function _onVersionValidationChanged() {
21 // temporarily disable them all
22 enabledExtensions = [];
23 for (let uuid in ExtensionUtils.extensions)
24 - reloadExtension(ExtensionUtils.extensions[uuid]);
26 + reloadExtension(ExtensionUtils.extensions[uuid]);
28 + logExtensionError(uuid, e);
30 enabledExtensions = getEnabledExtensions();
32 if (Main.sessionMode.allowExtensions) {
33 enabledExtensions.forEach(function(uuid) {
34 - enableExtension(uuid);
36 + enableExtension(uuid);
38 + logExtensionError(uuid, e);