@@ -255,34 +255,54 @@ define(function (require, exports, module) {
255255 }
256256
257257 function _resetPermissionsOnSpecialTempFolders ( ) {
258- var folders = [ ] ,
259- baseDir = getTempDirectory ( ) ,
260- promise ;
261-
262- folders . push ( baseDir + "/cant_read_here" ) ;
263- folders . push ( baseDir + "/cant_write_here" ) ;
264-
265- promise = Async . doSequentially ( folders , function ( folder ) {
266- var deferred = new $ . Deferred ( ) ;
267-
268- _getFileSystem ( ) . resolve ( folder , function ( err , entry ) {
269- if ( ! err ) {
270- // Change permissions if the directory exists
271- chmod ( folder , "777" ) . then ( deferred . resolve , deferred . reject ) ;
258+ var entries = [ ] ,
259+ result = new $ . Deferred ( ) ,
260+ promise ,
261+ entryPromise = new $ . Deferred ( ) ,
262+ tempDir ;
263+
264+ function visitor ( entry ) {
265+ entries . push ( entry . fullPath ) ;
266+ return true ;
267+ }
268+ tempDir = FileSystem . getDirectoryForPath ( getTempDirectory ( ) ) ;
269+ tempDir . visit ( visitor , function ( err ) {
270+ if ( ! err ) {
271+ entryPromise . resolve ( entries ) ;
272+ } else {
273+ if ( err === FileSystemError . NOT_FOUND ) {
274+ entryPromise . resolve ( entries ) ;
272275 } else {
273- if ( err === FileSystemError . NOT_FOUND ) {
274- // Resolve the promise since the folder to reset doesn't exist
275- deferred . resolve ( ) ;
276- } else {
277- deferred . reject ( ) ;
278- }
276+ entryPromise . reject ( ) ;
279277 }
280- } ) ;
278+ }
279+ } ) ;
280+ entryPromise . done ( function ( entries ) {
281+ promise = Async . doSequentially ( entries , function ( entry ) {
282+ var deferred = new $ . Deferred ( ) ;
281283
282- return deferred . promise ( ) ;
283- } , true ) ;
284+ FileSystem . resolve ( entry , function ( err , item ) {
285+ if ( ! err ) {
286+ // Change permissions if the directory exists
287+ chmod ( entry , "777" ) . then ( deferred . resolve , deferred . reject ) ;
288+ } else {
289+ if ( err === FileSystemError . NOT_FOUND ) {
290+ // Resolve the promise since the folder to reset doesn't exist
291+ deferred . resolve ( ) ;
292+ } else {
293+ deferred . reject ( ) ;
294+ }
295+ }
296+ } ) ;
284297
285- return promise ;
298+ return deferred . promise ( ) ;
299+ } , true ) ;
300+ promise . then ( result . resolve , result . reject ) ;
301+ } ) . fail ( function ( ) {
302+ result . reject ( ) ;
303+ } ) ;
304+
305+ return result . promise ( ) ;
286306 }
287307
288308 /**
0 commit comments