[gnome-shell] extensionUtils: Don't write to the filesystem on start



commit feef35a8ca0dbb3e9d6805ba2eeacbdf72d52561
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Fri May 25 19:12:30 2012 -0400

    extensionUtils: Don't write to the filesystem on start
    
    Create the potentially empty directory when we need to, not when we
    don't.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=677586

 js/misc/extensionUtils.js    |    6 ------
 js/ui/extensionDownloader.js |    9 ++++++++-
 2 files changed, 8 insertions(+), 7 deletions(-)
---
diff --git a/js/misc/extensionUtils.js b/js/misc/extensionUtils.js
index 77a49d5..24109d5 100644
--- a/js/misc/extensionUtils.js
+++ b/js/misc/extensionUtils.js
@@ -158,12 +158,6 @@ function installImporter(extension) {
 function init() {
     let userExtensionsPath = GLib.build_filenamev([global.userdatadir, 'extensions']);
     userExtensionsDir = Gio.file_new_for_path(userExtensionsPath);
-    try {
-        if (!userExtensionsDir.query_exists(null))
-            userExtensionsDir.make_directory_with_parents(null);
-    } catch (e) {
-        logError(e, 'Could not create extensions directory');
-    }
 }
 
 function scanExtensionsInDirectory(callback, dir, type) {
diff --git a/js/ui/extensionDownloader.js b/js/ui/extensionDownloader.js
index 507fc2c..f83100d 100644
--- a/js/ui/extensionDownloader.js
+++ b/js/ui/extensionDownloader.js
@@ -66,8 +66,15 @@ function gotExtensionZipFile(session, message, uuid) {
         return;
     }
 
-    let [file, stream] = Gio.File.new_tmp('XXXXXX.shell-extension.zip');
     let dir = ExtensionUtils.userExtensionsDir.get_child(uuid);
+    try {
+        if (!dir.query_exists(null))
+            dir.make_directory_with_parents(null);
+    } catch (e) {
+        logExtensionError('Could not create extension directory');
+    }
+
+    let [file, stream] = Gio.File.new_tmp('XXXXXX.shell-extension.zip');
     let contents = message.response_body.flatten().as_bytes();
     stream.output_stream.write_bytes(contents, null);
     stream.close(null);



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