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

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

Issue 14416017: Sync online wallpaper (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add comment Created 7 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/resources/chromeos/wallpaper_manager/js/util.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 *
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 $('error-container').hidden = false; 165 $('error-container').hidden = false;
166 }; 166 };
167 167
168 /** 168 /**
169 * Sets manifest loaded from server. Called after manifest is successfully 169 * Sets manifest loaded from server. Called after manifest is successfully
170 * loaded. 170 * loaded.
171 * @param {object} manifest The parsed manifest file. 171 * @param {object} manifest The parsed manifest file.
172 */ 172 */
173 WallpaperManager.prototype.onLoadManifestSuccess_ = function(manifest) { 173 WallpaperManager.prototype.onLoadManifestSuccess_ = function(manifest) {
174 this.manifest_ = manifest; 174 this.manifest_ = manifest;
175 WallpaperUtil.saveToLocalStorage(Constants.AccessManifestKey, manifest); 175 WallpaperUtil.saveToStorage(Constants.AccessManifestKey, manifest, false);
176 this.initDom_(); 176 this.initDom_();
177 }; 177 };
178 178
179 // Sets manifest to previously saved object if any and shows connection error. 179 // Sets manifest to previously saved object if any and shows connection error.
180 // Called after manifest failed to load. 180 // Called after manifest failed to load.
181 WallpaperManager.prototype.onLoadManifestFailed_ = function() { 181 WallpaperManager.prototype.onLoadManifestFailed_ = function() {
182 var accessManifestKey = Constants.AccessManifestKey; 182 var accessManifestKey = Constants.AccessManifestKey;
183 var self = this; 183 var self = this;
184 Constants.WallpaperLocalStorage.get(accessManifestKey, function(items) { 184 Constants.WallpaperLocalStorage.get(accessManifestKey, function(items) {
185 self.manifest_ = items[accessManifestKey] ? items[accessManifestKey] : {}; 185 self.manifest_ = items[accessManifestKey] ? items[accessManifestKey] : {};
186 self.showError_(str('connectionFailed')); 186 self.showError_(str('connectionFailed'));
187 self.initDom_(); 187 self.initDom_();
188 $('wallpaper-grid').classList.add('image-picker-offline'); 188 $('wallpaper-grid').classList.add('image-picker-offline');
189 }); 189 });
190 }; 190 };
191 191
192 /** 192 /**
193 * Toggle surprise me feature of wallpaper picker. It fires an storage 193 * Toggle surprise me feature of wallpaper picker. It fires an storage
194 * onChanged event. Event handler for that event is in event_page.js. 194 * onChanged event. Event handler for that event is in event_page.js.
195 * @private 195 * @private
196 */ 196 */
197 WallpaperManager.prototype.toggleSurpriseMe_ = function() { 197 WallpaperManager.prototype.toggleSurpriseMe_ = function() {
198 var checkbox = $('surprise-me').querySelector('#checkbox'); 198 var checkbox = $('surprise-me').querySelector('#checkbox');
199 var shouldEnable = !checkbox.classList.contains('checked'); 199 var shouldEnable = !checkbox.classList.contains('checked');
200 WallpaperUtil.saveToLocalStorage(Constants.AccessSurpriseMeEnabledKey, 200 WallpaperUtil.saveToStorage(Constants.AccessSurpriseMeEnabledKey,
201 shouldEnable, 201 shouldEnable, false, function() {
202 function() {
203 if (chrome.runtime.lastError == null) { 202 if (chrome.runtime.lastError == null) {
204 if (shouldEnable) { 203 if (shouldEnable) {
205 checkbox.classList.add('checked'); 204 checkbox.classList.add('checked');
206 } else { 205 } else {
207 checkbox.classList.remove('checked'); 206 checkbox.classList.remove('checked');
208 } 207 }
209 $('categories-list').disabled = shouldEnable; 208 $('categories-list').disabled = shouldEnable;
210 $('wallpaper-grid').disabled = shouldEnable; 209 $('wallpaper-grid').disabled = shouldEnable;
211 } else { 210 } else {
212 // TODO(bshe): show error message to user. 211 // TODO(bshe): show error message to user.
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 Constants.HighResolutionSuffix; 483 Constants.HighResolutionSuffix;
485 var selectedGridItem = this.wallpaperGrid_.getListItem(selectedItem); 484 var selectedGridItem = this.wallpaperGrid_.getListItem(selectedItem);
486 485
487 chrome.wallpaperPrivate.setWallpaperIfExists(wallpaperURL, 486 chrome.wallpaperPrivate.setWallpaperIfExists(wallpaperURL,
488 selectedItem.layout, 487 selectedItem.layout,
489 selectedItem.source, 488 selectedItem.source,
490 function(exists) { 489 function(exists) {
491 if (exists) { 490 if (exists) {
492 self.currentWallpaper_ = wallpaperURL; 491 self.currentWallpaper_ = wallpaperURL;
493 self.wallpaperGrid_.activeItem = selectedItem; 492 self.wallpaperGrid_.activeItem = selectedItem;
493 WallpaperUtil.saveWallpaperInfo(wallpaperURL, selectedItem.layout,
494 selectedItem.source);
494 return; 495 return;
495 } 496 }
496 497
497 // Falls back to request wallpaper from server. 498 // Falls back to request wallpaper from server.
498 if (self.wallpaperRequest_) 499 if (self.wallpaperRequest_)
499 self.wallpaperRequest_.abort(); 500 self.wallpaperRequest_.abort();
500 501
501 self.wallpaperRequest_ = new XMLHttpRequest(); 502 self.wallpaperRequest_ = new XMLHttpRequest();
502 self.progressManager_.reset(self.wallpaperRequest_, selectedGridItem); 503 self.progressManager_.reset(self.wallpaperRequest_, selectedGridItem);
503 504
504 var onSuccess = function(xhr) { 505 var onSuccess = function(xhr) {
505 var image = xhr.response; 506 var image = xhr.response;
506 chrome.wallpaperPrivate.setWallpaper(image, selectedItem.layout, 507 chrome.wallpaperPrivate.setWallpaper(image, selectedItem.layout,
507 wallpaperURL, 508 wallpaperURL,
508 self.onFinished_.bind(self, selectedGridItem, selectedItem)); 509 self.onFinished_.bind(self, selectedGridItem, selectedItem));
509 self.currentWallpaper_ = wallpaperURL; 510 self.currentWallpaper_ = wallpaperURL;
511 WallpaperUtil.saveWallpaperInfo(wallpaperURL, selectedItem.layout,
512 selectedItem.source);
510 self.wallpaperRequest_ = null; 513 self.wallpaperRequest_ = null;
511 }; 514 };
512 var onFailure = function() { 515 var onFailure = function() {
513 self.progressManager_.hideProgressBar(selectedGridItem); 516 self.progressManager_.hideProgressBar(selectedGridItem);
514 self.showError_(str('downloadFailed')); 517 self.showError_(str('downloadFailed'));
515 self.wallpaperRequest_ = null; 518 self.wallpaperRequest_ = null;
516 }; 519 };
517 WallpaperUtil.fetchURL(wallpaperURL, 'arraybuffer', onSuccess, 520 WallpaperUtil.fetchURL(wallpaperURL, 'arraybuffer', onSuccess,
518 onFailure, self.wallpaperRequest_); 521 onFailure, self.wallpaperRequest_);
519 }); 522 });
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
722 var wallpaperInfo = { 725 var wallpaperInfo = {
723 baseURL: fileName, 726 baseURL: fileName,
724 layout: layout, 727 layout: layout,
725 source: Constants.WallpaperSourceEnum.Custom, 728 source: Constants.WallpaperSourceEnum.Custom,
726 availableOffline: true 729 availableOffline: true
727 }; 730 };
728 self.wallpaperGrid_.dataModel.splice(0, 0, wallpaperInfo); 731 self.wallpaperGrid_.dataModel.splice(0, 0, wallpaperInfo);
729 self.wallpaperGrid_.selectedItem = wallpaperInfo; 732 self.wallpaperGrid_.selectedItem = wallpaperInfo;
730 self.wallpaperGrid_.activeItem = wallpaperInfo; 733 self.wallpaperGrid_.activeItem = wallpaperInfo;
731 self.currentWallpaper_ = fileName; 734 self.currentWallpaper_ = fileName;
732 WallpaperUtil.saveToLocalStorage(self.currentWallpaper_, 735 WallpaperUtil.saveToStorage(self.currentWallpaper_, layout,
733 layout); 736 false);
734 }; 737 };
735 738
736 fileWriter.onerror = errorHandler; 739 fileWriter.onerror = errorHandler;
737 740
738 var blob = new Blob([new Int8Array(thumbnail)], 741 var blob = new Blob([new Int8Array(thumbnail)],
739 {'type' : 'image\/jpeg'}); 742 {'type' : 'image\/jpeg'});
740 fileWriter.write(blob); 743 fileWriter.write(blob);
741 }, errorHandler); 744 }, errorHandler);
742 }, errorHandler); 745 }, errorHandler);
743 }; 746 };
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 success, 821 success,
819 failure) { 822 failure) {
820 var self = this; 823 var self = this;
821 var onFinished = function(opt_thumbnail) { 824 var onFinished = function(opt_thumbnail) {
822 if (chrome.runtime.lastError != undefined) { 825 if (chrome.runtime.lastError != undefined) {
823 self.showError_(chrome.runtime.lastError.message); 826 self.showError_(chrome.runtime.lastError.message);
824 $('set-wallpaper-layout').disabled = true; 827 $('set-wallpaper-layout').disabled = true;
825 failure(); 828 failure();
826 } else { 829 } else {
827 success(opt_thumbnail); 830 success(opt_thumbnail);
831 // Custom wallpapers are not synced yet. If login on a different
832 // computer after set a custom wallpaper, wallpaper wont change by sync.
833 WallpaperUtil.saveWallpaperInfo(fileName, layout,
834 Constants.WallpaperSourceEnum.Custom);
828 } 835 }
829 }; 836 };
830 837
831 chrome.wallpaperPrivate.setCustomWallpaper(wallpaper, layout, 838 chrome.wallpaperPrivate.setCustomWallpaper(wallpaper, layout,
832 generateThumbnail, 839 generateThumbnail,
833 fileName, onFinished); 840 fileName, onFinished);
834 }; 841 };
835 842
836 /** 843 /**
837 * Sets wallpaper finished. Displays error message if any. 844 * Sets wallpaper finished. Displays error message if any.
(...skipping 22 matching lines...) Expand all
860 */ 867 */
861 WallpaperManager.prototype.onWallpaperLayoutChanged_ = function() { 868 WallpaperManager.prototype.onWallpaperLayoutChanged_ = function() {
862 var layout = getSelectedLayout(); 869 var layout = getSelectedLayout();
863 var self = this; 870 var self = this;
864 chrome.wallpaperPrivate.setCustomWallpaperLayout(layout, function() { 871 chrome.wallpaperPrivate.setCustomWallpaperLayout(layout, function() {
865 if (chrome.runtime.lastError != undefined) { 872 if (chrome.runtime.lastError != undefined) {
866 self.showError_(chrome.runtime.lastError.message); 873 self.showError_(chrome.runtime.lastError.message);
867 self.removeCustomWallpaper(fileName); 874 self.removeCustomWallpaper(fileName);
868 $('set-wallpaper-layout').disabled = true; 875 $('set-wallpaper-layout').disabled = true;
869 } else { 876 } else {
870 WallpaperUtil.saveToLocalStorage(self.currentWallpaper_, layout); 877 WallpaperUtil.saveToStorage(self.currentWallpaper_, layout, false);
871 } 878 }
872 }); 879 });
873 }; 880 };
874 881
875 /** 882 /**
876 * Handles user clicking on a different category. 883 * Handles user clicking on a different category.
877 */ 884 */
878 WallpaperManager.prototype.onCategoriesChange_ = function() { 885 WallpaperManager.prototype.onCategoriesChange_ = function() {
879 var categoriesList = this.categoriesList_; 886 var categoriesList = this.categoriesList_;
880 var selectedIndex = categoriesList.selectionModel.selectedIndex; 887 var selectedIndex = categoriesList.selectionModel.selectedIndex;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
974 } 981 }
975 } 982 }
976 } 983 }
977 this.wallpaperGrid_.dataModel = wallpapersDataModel; 984 this.wallpaperGrid_.dataModel = wallpapersDataModel;
978 this.wallpaperGrid_.selectedItem = selectedItem; 985 this.wallpaperGrid_.selectedItem = selectedItem;
979 this.wallpaperGrid_.activeItem = selectedItem; 986 this.wallpaperGrid_.activeItem = selectedItem;
980 } 987 }
981 }; 988 };
982 989
983 })(); 990 })();
OLDNEW
« no previous file with comments | « chrome/browser/resources/chromeos/wallpaper_manager/js/util.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698