You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ag...@apache.org on 2014/04/30 05:08:03 UTC

git commit: Fix ResourcesLoader broken with latest version of file plugin

Repository: cordova-app-harness
Updated Branches:
  refs/heads/master fae458db1 -> 12e3a7e4e


Fix ResourcesLoader broken with latest version of file plugin

It was hard-coded to use cdvfile: URLs, but it is now fed file:// URLs.


Project: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/commit/12e3a7e4
Tree: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/tree/12e3a7e4
Diff: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/diff/12e3a7e4

Branch: refs/heads/master
Commit: 12e3a7e4e87e88c6569fb82deb98afda0b71840b
Parents: fae458d
Author: Andrew Grieve <ag...@chromium.org>
Authored: Tue Apr 29 23:06:15 2014 -0400
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Tue Apr 29 23:06:15 2014 -0400

----------------------------------------------------------------------
 www/cdvah/js/ResourcesLoader.js | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-app-harness/blob/12e3a7e4/www/cdvah/js/ResourcesLoader.js
----------------------------------------------------------------------
diff --git a/www/cdvah/js/ResourcesLoader.js b/www/cdvah/js/ResourcesLoader.js
index fa0e53d..e862aa3 100644
--- a/www/cdvah/js/ResourcesLoader.js
+++ b/www/cdvah/js/ResourcesLoader.js
@@ -40,23 +40,28 @@
         }
 
         function dirName(path) {
-            return path.replace(/\/[^\/]+$/, '/');
+            return path.replace(/\/[^\/]+\/?$/, '/');
         }
 
         function baseName(path) {
-            return path.replace(/.*\//, '');
+            return path.replace(/\/$/, '').replace(/.*\//, '');
         }
 
-        function ensureDirectoryExists(url) {
-            var m = /(cdvfile:\/\/.*?\/.*?\/)(.*)/.exec(url);
-            var rootDir = m[1];
-            var segments = m[2].split('/');
-
-            return segments.reduce(function(p, seg) {
-                return !seg ? p : p.then(function(parentDirEntry) {
-                    return getDirectoryPromisified(parentDirEntry, seg, {create: true});
+        function ensureDirectoryExists(targetUrl) {
+            function helper(url) {
+                return resolveURL(url)
+                .then(null, function() {
+                    var parentUrl = dirName(url);
+                    if (parentUrl == url) {
+                        throw new Error('No root filesystem for: ' + targetUrl);
+                    }
+                    return helper(parentUrl)
+                    .then(function(entry) {
+                        return getDirectoryPromisified(entry, baseName(url), {create: true});
+                    });
                 });
-            }, resolveURL(rootDir));
+            }
+            return helper(targetUrl);
         }
 
         function createFileEntry(url) {