[gnome-shell] extensionSystem: handle reloading broken extensions



commit ff425d1db7082e2755d2a405af53861552acf2a1
Author: Emilio Pozuelo Monfort <pochu27 gmail com>
Date:   Tue Apr 25 17:27:42 2017 +0200

    extensionSystem: handle reloading broken extensions
    
    Some extensions out there may fail to reload. When that happens,
    we need to catch any exceptions so that we don't leave things in
    a broken state that could lead to leaving extensions enabled in
    the screen shield.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=781728

 js/ui/extensionSystem.js |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js
index a4dc29e..fc352b8 100644
--- a/js/ui/extensionSystem.js
+++ b/js/ui/extensionSystem.js
@@ -282,12 +282,20 @@ function _onVersionValidationChanged() {
     // temporarily disable them all
     enabledExtensions = [];
     for (let uuid in ExtensionUtils.extensions)
-        reloadExtension(ExtensionUtils.extensions[uuid]);
+        try {
+            reloadExtension(ExtensionUtils.extensions[uuid]);
+        } catch(e) {
+            logExtensionError(uuid, e);
+        }
     enabledExtensions = getEnabledExtensions();
 
     if (Main.sessionMode.allowExtensions) {
         enabledExtensions.forEach(function(uuid) {
-            enableExtension(uuid);
+            try {
+                enableExtension(uuid);
+            } catch(e) {
+                logExtensionError(uuid, e);
+            }
         });
     }
 }


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