OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Setting the src of an img to an empty string can crash the browser, so we | 5 // Setting the src of an img to an empty string can crash the browser, so we |
6 // use an empty 1x1 gif instead. | 6 // use an empty 1x1 gif instead. |
7 const EMPTY_IMAGE_URI = 'data:image/gif;base64,' | 7 const EMPTY_IMAGE_URI = 'data:image/gif;base64,' |
8 + 'R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw%3D%3D'; | 8 + 'R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw%3D%3D'; |
9 | 9 |
10 var g_slideshow_data = null; | 10 var g_slideshow_data = null; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 this.currentButter_ = null; | 49 this.currentButter_ = null; |
50 | 50 |
51 // True if we should filter out files that start with a dot. | 51 // True if we should filter out files that start with a dot. |
52 this.filterFiles_ = true; | 52 this.filterFiles_ = true; |
53 | 53 |
54 this.commands_ = {}; | 54 this.commands_ = {}; |
55 | 55 |
56 this.document_ = dialogDom.ownerDocument; | 56 this.document_ = dialogDom.ownerDocument; |
57 this.dialogType_ = this.params_.type || FileManager.DialogType.FULL_PAGE; | 57 this.dialogType_ = this.params_.type || FileManager.DialogType.FULL_PAGE; |
58 | 58 |
59 metrics.recordAction('Create.' + this.dialogType_); | 59 metrics.recordEnum('Create', this.dialogType_, |
| 60 [FileManager.DialogType.SELECT_FOLDER, |
| 61 FileManager.DialogType.SELECT_SAVEAS_FILE, |
| 62 FileManager.DialogType.SELECT_OPEN_FILE, |
| 63 FileManager.DialogType.SELECT_OPEN_MULTI_FILE, |
| 64 FileManager.DialogType.FULL_PAGE]); |
60 | 65 |
61 this.initDialogs_(); | 66 this.initDialogs_(); |
62 | 67 |
63 // TODO(dgozman): This will be changed to LocaleInfo. | 68 // TODO(dgozman): This will be changed to LocaleInfo. |
64 this.locale_ = new v8Locale(navigator.language); | 69 this.locale_ = new v8Locale(navigator.language); |
65 | 70 |
66 // TODO(rginda): 6/22/11: Remove this test when createDateTimeFormat is | 71 // TODO(rginda): 6/22/11: Remove this test when createDateTimeFormat is |
67 // available in all chrome trunk builds. | 72 // available in all chrome trunk builds. |
68 if ('createDateTimeFormat' in this.locale_) { | 73 if ('createDateTimeFormat' in this.locale_) { |
69 this.shortDateFormatter_ = | 74 this.shortDateFormatter_ = |
(...skipping 2850 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2920 * Rescans the current directory immediately, refreshing the list. Should NOT | 2925 * Rescans the current directory immediately, refreshing the list. Should NOT |
2921 * be used in most cases. Instead use rescanDirectory_. | 2926 * be used in most cases. Instead use rescanDirectory_. |
2922 * | 2927 * |
2923 * @param {function()} opt_callback Optional function to invoke when the | 2928 * @param {function()} opt_callback Optional function to invoke when the |
2924 * rescan is complete. | 2929 * rescan is complete. |
2925 */ | 2930 */ |
2926 FileManager.prototype.rescanDirectoryNow_ = function(opt_callback) { | 2931 FileManager.prototype.rescanDirectoryNow_ = function(opt_callback) { |
2927 var self = this; | 2932 var self = this; |
2928 var reader; | 2933 var reader; |
2929 | 2934 |
| 2935 function rescanDone() { |
| 2936 metrics.recordTime('ScanDirectory'); |
| 2937 if (self.currentDirEntry_.fullPath == DOWNLOADS_DIRECTORY) |
| 2938 metrics.reportCount("DownloadsCount", self.dataModel_.length); |
| 2939 if (opt_callback) |
| 2940 opt_callback(); |
| 2941 } |
| 2942 |
2930 metrics.startInterval('ScanDirectory'); | 2943 metrics.startInterval('ScanDirectory'); |
2931 | 2944 |
2932 function onReadSome(entries) { | 2945 function onReadSome(entries) { |
2933 if (entries.length == 0) { | 2946 if (entries.length == 0) { |
2934 metrics.recordTime('ScanDirectory'); | 2947 rescanDone(); |
2935 if (opt_callback) | |
2936 opt_callback(); | |
2937 return; | 2948 return; |
2938 } | 2949 } |
2939 | 2950 |
2940 // Splice takes the to-be-spliced-in array as individual parameters, | 2951 // Splice takes the to-be-spliced-in array as individual parameters, |
2941 // rather than as an array, so we need to perform some acrobatics... | 2952 // rather than as an array, so we need to perform some acrobatics... |
2942 var spliceArgs = [].slice.call(entries); | 2953 var spliceArgs = [].slice.call(entries); |
2943 | 2954 |
2944 // Hide files that start with a dot ('.'). | 2955 // Hide files that start with a dot ('.'). |
2945 // TODO(rginda): User should be able to override this. Support for other | 2956 // TODO(rginda): User should be able to override this. Support for other |
2946 // commonly hidden patterns might be nice too. | 2957 // commonly hidden patterns might be nice too. |
(...skipping 28 matching lines...) Expand all Loading... |
2975 return; | 2986 return; |
2976 } | 2987 } |
2977 | 2988 |
2978 // Otherwise, use the provided list of root subdirectories, since the | 2989 // Otherwise, use the provided list of root subdirectories, since the |
2979 // real local filesystem root directory (the one we use outside the | 2990 // real local filesystem root directory (the one we use outside the |
2980 // harness) can't be enumerated yet. | 2991 // harness) can't be enumerated yet. |
2981 var spliceArgs = [].slice.call(this.rootEntries_); | 2992 var spliceArgs = [].slice.call(this.rootEntries_); |
2982 spliceArgs.unshift(0, 0); // index, deleteCount | 2993 spliceArgs.unshift(0, 0); // index, deleteCount |
2983 self.dataModel_.splice.apply(self.dataModel_, spliceArgs); | 2994 self.dataModel_.splice.apply(self.dataModel_, spliceArgs); |
2984 | 2995 |
2985 metrics.recordTime('ScanDirectory'); | 2996 rescanDone(); |
2986 if (opt_callback) | |
2987 opt_callback(); | |
2988 }; | 2997 }; |
2989 | 2998 |
2990 FileManager.prototype.findListItem_ = function(event) { | 2999 FileManager.prototype.findListItem_ = function(event) { |
2991 var node = event.srcElement; | 3000 var node = event.srcElement; |
2992 while (node) { | 3001 while (node) { |
2993 if (node.tagName == 'LI') | 3002 if (node.tagName == 'LI') |
2994 break; | 3003 break; |
2995 node = node.parentNode; | 3004 node = node.parentNode; |
2996 } | 3005 } |
2997 | 3006 |
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3633 }); | 3642 }); |
3634 }, onError); | 3643 }, onError); |
3635 | 3644 |
3636 function onError(err) { | 3645 function onError(err) { |
3637 console.log('Error while checking free space: ' + err); | 3646 console.log('Error while checking free space: ' + err); |
3638 setTimeout(doCheck, 1000 * 60); | 3647 setTimeout(doCheck, 1000 * 60); |
3639 } | 3648 } |
3640 } | 3649 } |
3641 } | 3650 } |
3642 })(); | 3651 })(); |
OLD | NEW |