diff options
| author | PliablePixels <pliablepixels@gmail.com> | 2015-06-24 18:47:42 -0400 |
|---|---|---|
| committer | PliablePixels <pliablepixels@gmail.com> | 2015-06-24 18:47:42 -0400 |
| commit | 855a0e8ddc273b58066530a1b55a946021dfc56e (patch) | |
| tree | 26550033e855a31a265fc2da4da3df0cc2733dc1 /plugins/org.apache.cordova.file/www/blackberry10/resolveLocalFileSystemURI.js | |
| parent | d442629aa825aab6bc55ab6be19e3aba060867fe (diff) | |
Cleaned up code, commented, preparing for HTTPS via CordovaHTTP
Diffstat (limited to 'plugins/org.apache.cordova.file/www/blackberry10/resolveLocalFileSystemURI.js')
| -rw-r--r-- | plugins/org.apache.cordova.file/www/blackberry10/resolveLocalFileSystemURI.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/plugins/org.apache.cordova.file/www/blackberry10/resolveLocalFileSystemURI.js b/plugins/org.apache.cordova.file/www/blackberry10/resolveLocalFileSystemURI.js new file mode 100644 index 00000000..4d5af613 --- /dev/null +++ b/plugins/org.apache.cordova.file/www/blackberry10/resolveLocalFileSystemURI.js @@ -0,0 +1,55 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +var fileUtils = require('./BB10Utils'), + FileError = require('./FileError'); + +function stripURI(uri) { + var rmFsLocal = uri.substring("filesystem:local:///".length); + return rmFsLocal.substring(rmFsLocal.indexOf('/') + 1); +} + +module.exports = function (uri, success, fail) { + var sandboxState, + decodedURI = decodeURI(uri); + + cordova.exec(function (sandboxed) { + sandboxState = sandboxed; + }, function (e) { + console.log("[ERROR]: Could not retrieve sandbox state ", e); + }, "org.apache.cordova.file", "isSandboxed"); + + if (fileUtils.isOutsideSandbox(stripURI(decodedURI))) { + cordova.exec(null, null, "org.apache.cordova.file", "setSandbox", [false]); + } else { + cordova.exec(null, null, "org.apache.cordova.file", "setSandbox", [true]); + } + window.webkitResolveLocalFileSystemURL(decodedURI, function (entry) { + success(fileUtils.createEntry(entry)); + }, function (e) { + window.webkitResolveLocalFileSystemURL(decodedURI + '/', function (entry) { + success(fileUtils.createEntry(entry)); + }, function (e) { + fail(e); + }); + }); + cordova.exec(null, null, "org.apache.cordova.file", "setSandbox", [sandboxState]); +}; |
