Home | History | Annotate | Download | only in js
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 /**
      6  * Global fileManager reference useful for poking at from the console.
      7  */
      8 var fileManager;
      9 
     10 /**
     11  * Kick off the file manager dialog.
     12  *
     13  * Called by main.html after the dom has been parsed.
     14  */
     15 function init() {
     16   var params;
     17 
     18   var rootPaths = ['Downloads', 'media'];
     19 
     20   if (document.location.search) {
     21     var json = decodeURIComponent(document.location.search.substr(1));
     22     var params = JSON.parse(json);
     23     console.log('params: ' + JSON.stringify(params));
     24   }
     25 
     26   function onEntriesFound(entries) {
     27     FileManager.initStrings(function () {
     28       fileManager = new FileManager(document.body, entries, params);
     29     });
     30   }
     31 
     32   function onFileSystemFound(filesystem) {
     33     console.log('Found filesystem: ' + filesystem.name, filesystem);
     34 
     35     var entries = [];
     36 
     37     function onPathError(path, err) {
     38       console.error('Error locating root path: ' + path + ': ' + err);
     39     }
     40 
     41     function onEntryFound(entry) {
     42       if (entry) {
     43         entries.push(entry);
     44       } else {
     45         onEntriesFound(entries);
     46       }
     47     }
     48 
     49     if (filesystem.name.match(/^chrome-extension_\S+:external/i)) {
     50       // We've been handed the local filesystem, whose root directory
     51       // cannot be enumerated.
     52       util.getDirectories(filesystem.root, {create: false}, rootPaths,
     53                           onEntryFound, onPathError);
     54     } else {
     55       util.forEachDirEntry(filesystem.root, onEntryFound);
     56     }
     57   };
     58 
     59   util.installFileErrorToString();
     60 
     61   console.log('Requesting filesystem.');
     62   chrome.fileBrowserPrivate.requestLocalFileSystem(onFileSystemFound);
     63 }
     64