| // Copyright 2015 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| 'use strict'; |
| |
| // eslint-disable-next-line no-var |
| var dialogSettings = {}; |
| |
| function mountFileSystem(onSuccess, onError) { |
| chrome.fileSystemProvider.getAll((mounted) => { |
| const index = mounted.length + 1; |
| chrome.fileSystemProvider.mount({ |
| fileSystemId: 'test-fs-' + index, |
| displayName: 'Test (' + index + ')', |
| }); |
| }); |
| } |
| |
| chrome.fileSystemProvider.onGetMetadataRequested.addListener( |
| (options, onSuccess, onError) => { |
| onSuccess({ |
| isDirectory: true, |
| name: '', |
| size: 0, |
| modificationTime: new Date(), |
| }); |
| }); |
| |
| chrome.fileSystemProvider.onReadDirectoryRequested.addListener( |
| (options, onSuccess, onError) => { |
| // For anything other than root, return no entries. |
| if (options.directoryPath !== '/') { |
| onSuccess([], false /* hasMore */); |
| return; |
| } |
| // For root we return 1 folder entry. |
| const entries = [ |
| { |
| isDirectory: true, |
| name: 'folder', |
| }, |
| ]; |
| onSuccess(entries, false /* hasMore */); |
| }); |
| |
| chrome.fileSystemProvider.onMountRequested.addListener(mountFileSystem); |
| |
| chrome.fileSystemProvider.onUnmountRequested.addListener( |
| (options, onSuccess, onError) => { |
| chrome.fileSystemProvider.unmount( |
| {fileSystemId: options.fileSystemId}, () => { |
| if (chrome.runtime.lastError) { |
| onError(chrome.runtime.lastError.message); |
| } else { |
| onSuccess(); |
| } |
| }); |
| }); |
| |
| chrome.fileSystemProvider.onGetActionsRequested.addListener( |
| (options, onSuccess, onError) => { |
| onSuccess([]); |
| }); |
| |
| // If the manifest for device or file source is used, then mount a fake file |
| // system on install. |
| if (chrome.runtime.getManifest().description === 'Testing Provider device' || |
| chrome.runtime.getManifest().description === 'Testing Provider file') { |
| chrome.runtime.onInstalled.addListener(mountFileSystem); |
| } |