OLD | NEW |
| (Empty) |
1 // Copyright 2013 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 'use strict'; | |
6 | |
7 /** | |
8 * While FileOperationManager is run in the background page, this class is | |
9 * used to communicate with it. | |
10 * @param {DOMWindow} backgroundPage Window object of the background page. | |
11 * @constructor | |
12 */ | |
13 function FileOperationManagerWrapper(backgroundPage) { | |
14 this.fileOperationManager_ = | |
15 backgroundPage.FileOperationManager.getInstance(); | |
16 } | |
17 | |
18 /** | |
19 * Create a new instance or get existing instance of FCMW. | |
20 * @param {DOMWindow} backgroundPage Window object of the background page. | |
21 * @return {FileOperationManagerWrapper} FileOperationManagerWrapper instance. | |
22 */ | |
23 FileOperationManagerWrapper.getInstance = function(backgroundPage) { | |
24 if (!FileOperationManagerWrapper.instance_) | |
25 FileOperationManagerWrapper.instance_ = | |
26 new FileOperationManagerWrapper(backgroundPage); | |
27 | |
28 return FileOperationManagerWrapper.instance_; | |
29 }; | |
30 | |
31 /** | |
32 * @return {boolean} True if there is a running task. | |
33 */ | |
34 FileOperationManagerWrapper.prototype.isRunning = function() { | |
35 return this.fileOperationManager_.hasQueuedTasks(); | |
36 }; | |
37 | |
38 /** | |
39 * Decorates a FileOperationManager method, so it will be executed after | |
40 * initializing the FileOperationManager instance in background page. | |
41 * @param {string} method The method name. | |
42 */ | |
43 FileOperationManagerWrapper.decorateAsyncMethod = function(method) { | |
44 FileOperationManagerWrapper.prototype[method] = function() { | |
45 this.fileOperationManager_.willRunNewMethod(); | |
46 this.fileOperationManager_[method].apply( | |
47 this.fileOperationManager_, arguments); | |
48 }; | |
49 }; | |
50 | |
51 FileOperationManagerWrapper.decorateAsyncMethod('requestCancel'); | |
52 FileOperationManagerWrapper.decorateAsyncMethod('paste'); | |
53 FileOperationManagerWrapper.decorateAsyncMethod('deleteEntries'); | |
54 FileOperationManagerWrapper.decorateAsyncMethod('forceDeleteTask'); | |
55 FileOperationManagerWrapper.decorateAsyncMethod('cancelDeleteTask'); | |
56 FileOperationManagerWrapper.decorateAsyncMethod('zipSelection'); | |
57 FileOperationManagerWrapper.decorateAsyncMethod('addEventListener'); | |
58 FileOperationManagerWrapper.decorateAsyncMethod('removeEventListener'); | |
OLD | NEW |