Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Side by Side Diff: chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js

Issue 1030973002: Revert of Decrease the lag when switching between different categories in the Cros wallpaper selector. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_images_grid.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 /** 5 /**
6 * WallpaperManager constructor. 6 * WallpaperManager constructor.
7 * 7 *
8 * WallpaperManager objects encapsulate the functionality of the wallpaper 8 * WallpaperManager objects encapsulate the functionality of the wallpaper
9 * manager extension. 9 * manager extension.
10 * 10 *
11 * @constructor 11 * @constructor
12 * @param {HTMLElement} dialogDom The DOM node containing the prototypical 12 * @param {HTMLElement} dialogDom The DOM node containing the prototypical
13 * extension UI. 13 * extension UI.
14 */ 14 */
15 15
16 function WallpaperManager(dialogDom) { 16 function WallpaperManager(dialogDom) {
17 this.dialogDom_ = dialogDom; 17 this.dialogDom_ = dialogDom;
18 this.document_ = dialogDom.ownerDocument; 18 this.document_ = dialogDom.ownerDocument;
19 this.enableOnlineWallpaper_ = loadTimeData.valueExists('manifestBaseURL'); 19 this.enableOnlineWallpaper_ = loadTimeData.valueExists('manifestBaseURL');
20 this.selectedCategory = null;
20 this.selectedItem_ = null; 21 this.selectedItem_ = null;
21 this.progressManager_ = new ProgressManager(); 22 this.progressManager_ = new ProgressManager();
22 this.customWallpaperData_ = null; 23 this.customWallpaperData_ = null;
23 this.currentWallpaper_ = null; 24 this.currentWallpaper_ = null;
24 this.wallpaperRequest_ = null; 25 this.wallpaperRequest_ = null;
25 this.wallpaperDirs_ = WallpaperDirectories.getInstance(); 26 this.wallpaperDirs_ = WallpaperDirectories.getInstance();
26 this.preManifestDomInit_(); 27 this.preManifestDomInit_();
27 this.fetchManifest_(); 28 this.fetchManifest_();
28 } 29 }
29 30
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 }); 448 });
448 } 449 }
449 }; 450 };
450 451
451 /** 452 /**
452 * Constructs the thumbnails grid. 453 * Constructs the thumbnails grid.
453 */ 454 */
454 WallpaperManager.prototype.initThumbnailsGrid_ = function() { 455 WallpaperManager.prototype.initThumbnailsGrid_ = function() {
455 this.wallpaperGrid_ = $('wallpaper-grid'); 456 this.wallpaperGrid_ = $('wallpaper-grid');
456 wallpapers.WallpaperThumbnailsGrid.decorate(this.wallpaperGrid_); 457 wallpapers.WallpaperThumbnailsGrid.decorate(this.wallpaperGrid_);
458 this.wallpaperGrid_.autoExpands = true;
457 459
458 this.wallpaperGrid_.addEventListener('change', this.onChange_.bind(this)); 460 this.wallpaperGrid_.addEventListener('change', this.onChange_.bind(this));
459 this.wallpaperGrid_.addEventListener('dblclick', this.onClose_.bind(this)); 461 this.wallpaperGrid_.addEventListener('dblclick', this.onClose_.bind(this));
460 }; 462 };
461 463
462 /** 464 /**
463 * Handles change event dispatched by wallpaper grid. 465 * Handles change event dispatched by wallpaper grid.
464 */ 466 */
465 WallpaperManager.prototype.onChange_ = function() { 467 WallpaperManager.prototype.onChange_ = function() {
466 // splice may dispatch a change event because the position of selected 468 // splice may dispatch a change event because the position of selected
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after
994 var wallpapersDataModel = new cr.ui.ArrayDataModel([]); 996 var wallpapersDataModel = new cr.ui.ArrayDataModel([]);
995 var selectedItem = null; 997 var selectedItem = null;
996 if (selectedListItem.custom) { 998 if (selectedListItem.custom) {
997 this.document_.body.setAttribute('custom', ''); 999 this.document_.body.setAttribute('custom', '');
998 var errorHandler = this.onFileSystemError_.bind(this); 1000 var errorHandler = this.onFileSystemError_.bind(this);
999 var toArray = function(list) { 1001 var toArray = function(list) {
1000 return Array.prototype.slice.call(list || [], 0); 1002 return Array.prototype.slice.call(list || [], 0);
1001 }; 1003 };
1002 1004
1003 var self = this; 1005 var self = this;
1004 var numOnlineWallpaper = this.manifest_ ?
1005 this.manifest_.wallpaper_list.length : 0;
1006 var processResults = function(entries) { 1006 var processResults = function(entries) {
1007 for (var i = 0; i < entries.length; i++) { 1007 for (var i = 0; i < entries.length; i++) {
1008 var entry = entries[i]; 1008 var entry = entries[i];
1009 var wallpaperInfo = { 1009 var wallpaperInfo = {
1010 wallpaperId: numOnlineWallpaper + i,
1011 baseURL: entry.name, 1010 baseURL: entry.name,
1012 // The layout will be replaced by the actual value saved in 1011 // The layout will be replaced by the actual value saved in
1013 // local storage when requested later. Layout is not important 1012 // local storage when requested later. Layout is not important
1014 // for constructing thumbnails grid, we use CENTER_CROPPED here 1013 // for constructing thumbnails grid, we use CENTER_CROPPED here
1015 // to speed up the process of constructing. So we do not need to 1014 // to speed up the process of constructing. So we do not need to
1016 // wait for fetching correct layout. 1015 // wait for fetching correct layout.
1017 layout: 'CENTER_CROPPED', 1016 layout: 'CENTER_CROPPED',
1018 source: Constants.WallpaperSourceEnum.Custom, 1017 source: Constants.WallpaperSourceEnum.Custom,
1019 availableOffline: true 1018 availableOffline: true
1020 }; 1019 };
1021 wallpapersDataModel.push(wallpaperInfo); 1020 wallpapersDataModel.push(wallpaperInfo);
1022 } 1021 }
1023 if (loadTimeData.getBoolean('isOEMDefaultWallpaper')) { 1022 if (loadTimeData.getBoolean('isOEMDefaultWallpaper')) {
1024 var oemDefaultWallpaperElement = { 1023 var oemDefaultWallpaperElement = {
1025 wallpaperId: numOnlineWallpaper + entries.length,
1026 baseURL: 'OemDefaultWallpaper', 1024 baseURL: 'OemDefaultWallpaper',
1027 layout: 'CENTER_CROPPED', 1025 layout: 'CENTER_CROPPED',
1028 source: Constants.WallpaperSourceEnum.OEM, 1026 source: Constants.WallpaperSourceEnum.OEM,
1029 availableOffline: true 1027 availableOffline: true
1030 }; 1028 };
1031 wallpapersDataModel.push(oemDefaultWallpaperElement); 1029 wallpapersDataModel.push(oemDefaultWallpaperElement);
1032 } 1030 }
1033 for (var i = 0; i < wallpapersDataModel.length; i++) { 1031 for (var i = 0; i < wallpapersDataModel.length; i++) {
1034 if (self.currentWallpaper_ == wallpapersDataModel.item(i).baseURL) 1032 if (self.currentWallpaper_ == wallpapersDataModel.item(i).baseURL)
1035 selectedItem = wallpapersDataModel.item(i); 1033 selectedItem = wallpapersDataModel.item(i);
(...skipping 26 matching lines...) Expand all
1062 readEntries(); 1060 readEntries();
1063 } 1061 }
1064 }, errorHandler); 1062 }, errorHandler);
1065 }; 1063 };
1066 readEntries(); // Start reading dirs. 1064 readEntries(); // Start reading dirs.
1067 }; 1065 };
1068 this.wallpaperDirs_.getDirectory(Constants.WallpaperDirNameEnum.ORIGINAL, 1066 this.wallpaperDirs_.getDirectory(Constants.WallpaperDirNameEnum.ORIGINAL,
1069 success, errorHandler); 1067 success, errorHandler);
1070 } else { 1068 } else {
1071 this.document_.body.removeAttribute('custom'); 1069 this.document_.body.removeAttribute('custom');
1072 var numOnlineWallpaper = this.manifest_ ? 1070 for (var key in this.manifest_.wallpaper_list) {
1073 this.manifest_.wallpaper_list.length : 0;
1074 for (var i = 0; i < numOnlineWallpaper; i++) {
1075 if (selectedIndex == AllCategoryIndex || 1071 if (selectedIndex == AllCategoryIndex ||
1076 this.manifest_.wallpaper_list[i].categories.indexOf( 1072 this.manifest_.wallpaper_list[key].categories.indexOf(
1077 selectedIndex - OnlineCategoriesOffset) != -1) { 1073 selectedIndex - OnlineCategoriesOffset) != -1) {
1078 var wallpaperInfo = { 1074 var wallpaperInfo = {
1079 wallpaperId: i, 1075 baseURL: this.manifest_.wallpaper_list[key].base_url,
1080 baseURL: this.manifest_.wallpaper_list[i].base_url, 1076 layout: this.manifest_.wallpaper_list[key].default_layout,
1081 layout: this.manifest_.wallpaper_list[i].default_layout,
1082 source: Constants.WallpaperSourceEnum.Online, 1077 source: Constants.WallpaperSourceEnum.Online,
1083 availableOffline: false, 1078 availableOffline: false,
1084 author: this.manifest_.wallpaper_list[i].author, 1079 author: this.manifest_.wallpaper_list[key].author,
1085 authorWebsite: this.manifest_.wallpaper_list[i].author_website, 1080 authorWebsite: this.manifest_.wallpaper_list[key].author_website,
1086 dynamicURL: this.manifest_.wallpaper_list[i].dynamic_url 1081 dynamicURL: this.manifest_.wallpaper_list[key].dynamic_url
1087 }; 1082 };
1088 var startIndex = wallpaperInfo.baseURL.lastIndexOf('/') + 1; 1083 var startIndex = wallpaperInfo.baseURL.lastIndexOf('/') + 1;
1089 var fileName = wallpaperInfo.baseURL.substring(startIndex) + 1084 var fileName = wallpaperInfo.baseURL.substring(startIndex) +
1090 Constants.HighResolutionSuffix; 1085 Constants.HighResolutionSuffix;
1091 if (this.downloadedListMap_ && 1086 if (this.downloadedListMap_ &&
1092 this.downloadedListMap_.hasOwnProperty(encodeURI(fileName))) { 1087 this.downloadedListMap_.hasOwnProperty(encodeURI(fileName))) {
1093 wallpaperInfo.availableOffline = true; 1088 wallpaperInfo.availableOffline = true;
1094 } 1089 }
1095 wallpapersDataModel.push(wallpaperInfo); 1090 wallpapersDataModel.push(wallpaperInfo);
1096 var url = this.manifest_.wallpaper_list[i].base_url + 1091 var url = this.manifest_.wallpaper_list[key].base_url +
1097 Constants.HighResolutionSuffix; 1092 Constants.HighResolutionSuffix;
1098 if (url == this.currentWallpaper_) { 1093 if (url == this.currentWallpaper_) {
1099 selectedItem = wallpaperInfo; 1094 selectedItem = wallpaperInfo;
1100 } 1095 }
1101 } 1096 }
1102 } 1097 }
1103 this.wallpaperGrid_.dataModel = wallpapersDataModel; 1098 this.wallpaperGrid_.dataModel = wallpapersDataModel;
1104 if (selectedItem) { 1099 if (selectedItem) {
1105 this.wallpaperGrid_.selectedItem = selectedItem; 1100 this.wallpaperGrid_.selectedItem = selectedItem;
1106 this.wallpaperGrid_.activeItem = selectedItem; 1101 this.wallpaperGrid_.activeItem = selectedItem;
1107 } 1102 }
1108 } 1103 }
1109 }; 1104 };
1110 1105
1111 })(); 1106 })();
OLDNEW
« no previous file with comments | « chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_images_grid.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698