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 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
427 }, opt_errorCallback); | 427 }, opt_errorCallback); |
428 } | 428 } |
429 } | 429 } |
430 | 430 |
431 function isSystemDirEntry(dirEntry) { | 431 function isSystemDirEntry(dirEntry) { |
432 return dirEntry.fullPath == '/' || | 432 return dirEntry.fullPath == '/' || |
433 dirEntry.fullPath == REMOVABLE_DIRECTORY || | 433 dirEntry.fullPath == REMOVABLE_DIRECTORY || |
434 dirEntry.fullPath == ARCHIVE_DIRECTORY; | 434 dirEntry.fullPath == ARCHIVE_DIRECTORY; |
435 } | 435 } |
436 | 436 |
| 437 function removeChildren(element) { |
| 438 element.textContent = ''; |
| 439 }; |
| 440 |
437 // Public statics. | 441 // Public statics. |
438 | 442 |
439 /** | 443 /** |
440 * List of dialog types. | 444 * List of dialog types. |
441 * | 445 * |
442 * Keep this in sync with FileManagerDialog::GetDialogTypeAsString, except | 446 * Keep this in sync with FileManagerDialog::GetDialogTypeAsString, except |
443 * FULL_PAGE which is specific to this code. | 447 * FULL_PAGE which is specific to this code. |
444 * | 448 * |
445 * @enum {string} | 449 * @enum {string} |
446 */ | 450 */ |
(...skipping 1374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1821 urls: [], | 1825 urls: [], |
1822 totalCount: 0, | 1826 totalCount: 0, |
1823 fileCount: 0, | 1827 fileCount: 0, |
1824 directoryCount: 0, | 1828 directoryCount: 0, |
1825 bytes: 0, | 1829 bytes: 0, |
1826 iconType: null, | 1830 iconType: null, |
1827 indexes: this.currentList_.selectionModel.selectedIndexes | 1831 indexes: this.currentList_.selectionModel.selectedIndexes |
1828 }; | 1832 }; |
1829 | 1833 |
1830 this.previewSummary_.textContent = str('COMPUTING_SELECTION'); | 1834 this.previewSummary_.textContent = str('COMPUTING_SELECTION'); |
1831 this.taskButtons_.innerHTML = ''; | 1835 removeChildren(this.taskButtons_); |
1832 this.previewThumbnails_.innerHTML = ''; | 1836 removeChildren(this.previewThumbnails_); |
1833 | 1837 |
1834 if (!selection.indexes.length) { | 1838 if (!selection.indexes.length) { |
1835 this.updateCommonActionButtons_(); | 1839 this.updateCommonActionButtons_(); |
1836 this.updatePreviewPanelVisibility_(); | 1840 this.updatePreviewPanelVisibility_(); |
1837 cr.dispatchSimpleEvent(this, 'selection-summarized'); | 1841 cr.dispatchSimpleEvent(this, 'selection-summarized'); |
1838 return; | 1842 return; |
1839 } | 1843 } |
1840 | 1844 |
1841 var fileCount = 0; | 1845 var fileCount = 0; |
1842 var byteCount = 0; | 1846 var byteCount = 0; |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1906 } | 1910 } |
1907 | 1911 |
1908 if (pendingFiles.length) { | 1912 if (pendingFiles.length) { |
1909 cacheEntrySize(pendingFiles.pop(), cacheNextFile); | 1913 cacheEntrySize(pendingFiles.pop(), cacheNextFile); |
1910 } else { | 1914 } else { |
1911 self.dispatchEvent(new cr.Event('selection-summarized')); | 1915 self.dispatchEvent(new cr.Event('selection-summarized')); |
1912 } | 1916 } |
1913 } | 1917 } |
1914 | 1918 |
1915 if (this.dialogType_ == FileManager.DialogType.FULL_PAGE) { | 1919 if (this.dialogType_ == FileManager.DialogType.FULL_PAGE) { |
1916 this.taskButtons_.innerHTML = ''; | 1920 removeChildren(this.taskButtons_); |
1917 // Some internal tasks cannot be defined in terms of file patterns, | 1921 // Some internal tasks cannot be defined in terms of file patterns, |
1918 // so we pass selection to check for them manually. | 1922 // so we pass selection to check for them manually. |
1919 if (selection.directoryCount == 0 && selection.fileCount > 0) { | 1923 if (selection.directoryCount == 0 && selection.fileCount > 0) { |
1920 // Only files, not directories, are supported for external tasks. | 1924 // Only files, not directories, are supported for external tasks. |
1921 chrome.fileBrowserPrivate.getFileTasks( | 1925 chrome.fileBrowserPrivate.getFileTasks( |
1922 selection.urls, | 1926 selection.urls, |
1923 this.onTasksFound_.bind(this, selection)); | 1927 this.onTasksFound_.bind(this, selection)); |
1924 } else { | 1928 } else { |
1925 // There may be internal tasks for directories. | 1929 // There may be internal tasks for directories. |
1926 this.onTasksFound_(selection, []); | 1930 this.onTasksFound_(selection, []); |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2062 this.metadataProvider_ = new TestAwareMetadataProvider(); | 2066 this.metadataProvider_ = new TestAwareMetadataProvider(); |
2063 }; | 2067 }; |
2064 | 2068 |
2065 /** | 2069 /** |
2066 * Callback called when tasks for selected files are determined. | 2070 * Callback called when tasks for selected files are determined. |
2067 * @param {Object} selection Selection is passed here, since this.selection | 2071 * @param {Object} selection Selection is passed here, since this.selection |
2068 * can change before tasks were found, and we should be accurate. | 2072 * can change before tasks were found, and we should be accurate. |
2069 * @param {Array.<Task>} tasksList The tasks list. | 2073 * @param {Array.<Task>} tasksList The tasks list. |
2070 */ | 2074 */ |
2071 FileManager.prototype.onTasksFound_ = function(selection, tasksList) { | 2075 FileManager.prototype.onTasksFound_ = function(selection, tasksList) { |
2072 this.taskButtons_.innerHTML = ''; | 2076 removeChildren(this.taskButtons_); |
2073 | 2077 |
2074 for (var i = 0; i < tasksList.length; i++) { | 2078 for (var i = 0; i < tasksList.length; i++) { |
2075 var task = tasksList[i]; | 2079 var task = tasksList[i]; |
2076 | 2080 |
2077 // Tweak images, titles of internal tasks. | 2081 // Tweak images, titles of internal tasks. |
2078 var task_parts = task.taskId.split('|'); | 2082 var task_parts = task.taskId.split('|'); |
2079 if (task_parts[0] == this.getExtensionId_()) { | 2083 if (task_parts[0] == this.getExtensionId_()) { |
2080 task.internal = true; | 2084 task.internal = true; |
2081 if (task_parts[1] == 'preview') { | 2085 if (task_parts[1] == 'preview') { |
2082 // TODO(serya): This hack needed until task.iconUrl get working | 2086 // TODO(serya): This hack needed until task.iconUrl get working |
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2382 galleryFrame.src = 'js/image_editor/gallery.html'; | 2386 galleryFrame.src = 'js/image_editor/gallery.html'; |
2383 this.dialogDom_.appendChild(galleryFrame); | 2387 this.dialogDom_.appendChild(galleryFrame); |
2384 galleryFrame.focus(); | 2388 galleryFrame.focus(); |
2385 }; | 2389 }; |
2386 | 2390 |
2387 /** | 2391 /** |
2388 * Update the breadcrumb display to reflect the current directory. | 2392 * Update the breadcrumb display to reflect the current directory. |
2389 */ | 2393 */ |
2390 FileManager.prototype.updateBreadcrumbs_ = function() { | 2394 FileManager.prototype.updateBreadcrumbs_ = function() { |
2391 var bc = this.dialogDom_.querySelector('.breadcrumbs'); | 2395 var bc = this.dialogDom_.querySelector('.breadcrumbs'); |
2392 bc.innerHTML = ''; | 2396 removeChildren(bc); |
2393 | 2397 |
2394 var fullPath = this.currentDirEntry_.fullPath.replace(/\/$/, ''); | 2398 var fullPath = this.currentDirEntry_.fullPath.replace(/\/$/, ''); |
2395 var pathNames = fullPath.split('/'); | 2399 var pathNames = fullPath.split('/'); |
2396 var path = ''; | 2400 var path = ''; |
2397 | 2401 |
2398 for (var i = 0; i < pathNames.length; i++) { | 2402 for (var i = 0; i < pathNames.length; i++) { |
2399 var pathName = pathNames[i]; | 2403 var pathName = pathNames[i]; |
2400 path += pathName + '/'; | 2404 path += pathName + '/'; |
2401 | 2405 |
2402 var div = this.document_.createElement('div'); | 2406 var div = this.document_.createElement('div'); |
(...skipping 1547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3950 }); | 3954 }); |
3951 }, onError); | 3955 }, onError); |
3952 | 3956 |
3953 function onError(err) { | 3957 function onError(err) { |
3954 console.log('Error while checking free space: ' + err); | 3958 console.log('Error while checking free space: ' + err); |
3955 setTimeout(doCheck, 1000 * 60); | 3959 setTimeout(doCheck, 1000 * 60); |
3956 } | 3960 } |
3957 } | 3961 } |
3958 } | 3962 } |
3959 })(); | 3963 })(); |
OLD | NEW |