| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 // Shared cloud importer namespace | 5 // Shared cloud importer namespace |
| 6 var importer = importer || {}; | 6 var importer = importer || {}; |
| 7 | 7 |
| 8 /** @enum {string} */ | 8 /** @enum {string} */ |
| 9 importer.ScanEvent = { | 9 importer.ScanEvent = { |
| 10 FINALIZED: 'finalized', | 10 FINALIZED: 'finalized', |
| (...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 636 * @return {string} | 636 * @return {string} |
| 637 */ | 637 */ |
| 638 importer.inflateAppUrl = function(deflated) { | 638 importer.inflateAppUrl = function(deflated) { |
| 639 if (deflated.substring(0, 1) === '$') { | 639 if (deflated.substring(0, 1) === '$') { |
| 640 return importer.APP_URL_PREFIX_ + deflated.substring(1); | 640 return importer.APP_URL_PREFIX_ + deflated.substring(1); |
| 641 } | 641 } |
| 642 return deflated; | 642 return deflated; |
| 643 }; | 643 }; |
| 644 | 644 |
| 645 /** | 645 /** |
| 646 * @param {!FileEntry} fileEntry | |
| 647 * @return {!Promise<string>} Resolves with a "hashcode" consisting of | |
| 648 * just the last modified time and the file size. | |
| 649 */ | |
| 650 importer.createMetadataHashcode = function(fileEntry) { | |
| 651 var entry = new importer.PromisingFileEntry(fileEntry); | |
| 652 return new Promise( | |
| 653 /** | |
| 654 * @param {function()} resolve | |
| 655 * @param {function()} reject | |
| 656 * @this {importer.PersistentImportHistory} | |
| 657 */ | |
| 658 function(resolve, reject) { | |
| 659 entry.getMetadata() | |
| 660 .then( | |
| 661 /** | |
| 662 * @param {!Object} metadata | |
| 663 * @return {!Promise<string>} | |
| 664 * @this {importer.PersistentImportHistory} | |
| 665 */ | |
| 666 function(metadata) { | |
| 667 if (!('modificationTime' in metadata)) { | |
| 668 reject('File entry missing "modificationTime" field.'); | |
| 669 } else if (!('size' in metadata)) { | |
| 670 reject('File entry missing "size" field.'); | |
| 671 } else { | |
| 672 var secondsSinceEpoch = | |
| 673 importer.toSecondsFromEpoch(metadata.modificationTime); | |
| 674 resolve(secondsSinceEpoch + '_' + metadata.size); | |
| 675 } | |
| 676 }.bind(this)); | |
| 677 }.bind(this)) | |
| 678 .catch(importer.getLogger().catcher('importer-common-create-hashcode')); | |
| 679 }; | |
| 680 | |
| 681 /** | |
| 682 * @param {string} date A date string in the form | 646 * @param {string} date A date string in the form |
| 683 * expected by Date.parse. | 647 * expected by Date.parse. |
| 684 * @return {string} The number of seconds from epoch to the date...as a string. | 648 * @return {string} The number of seconds from epoch to the date...as a string. |
| 685 */ | 649 */ |
| 686 importer.toSecondsFromEpoch = function(date) { | 650 importer.toSecondsFromEpoch = function(date) { |
| 687 // Since we're parsing a value that only has | 651 // Since we're parsing a value that only has |
| 688 // precision to the second, our last three digits | 652 // precision to the second, our last three digits |
| 689 // will always be 000. We strip them and end up | 653 // will always be 000. We strip them and end up |
| 690 // with seconds. | 654 // with seconds. |
| 691 var milliseconds = String(Date.parse(date)); | 655 var milliseconds = String(Date.parse(date)); |
| (...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1092 }); | 1056 }); |
| 1093 }; | 1057 }; |
| 1094 | 1058 |
| 1095 /** @private @const {!importer.ChromeLocalStorage} */ | 1059 /** @private @const {!importer.ChromeLocalStorage} */ |
| 1096 importer.ChromeLocalStorage.INSTANCE_ = new importer.ChromeLocalStorage(); | 1060 importer.ChromeLocalStorage.INSTANCE_ = new importer.ChromeLocalStorage(); |
| 1097 | 1061 |
| 1098 /** @return {!importer.ChromeLocalStorage} */ | 1062 /** @return {!importer.ChromeLocalStorage} */ |
| 1099 importer.ChromeLocalStorage.getInstance = function() { | 1063 importer.ChromeLocalStorage.getInstance = function() { |
| 1100 return importer.ChromeLocalStorage.INSTANCE_; | 1064 return importer.ChromeLocalStorage.INSTANCE_; |
| 1101 }; | 1065 }; |
| OLD | NEW |