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

Unified Diff: chrome/browser/resources/chromeos/wallpaper_manager/js/event_page.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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/chromeos/wallpaper_manager/js/event_page.js
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/js/event_page.js b/chrome/browser/resources/chromeos/wallpaper_manager/js/event_page.js
index b069aa472cba0b266a53e357d22b9b39ba7bfa3f..af31cecb019303065f7bf5c0e3cb30a81edc224d 100644
--- a/chrome/browser/resources/chromeos/wallpaper_manager/js/event_page.js
+++ b/chrome/browser/resources/chromeos/wallpaper_manager/js/event_page.js
@@ -36,8 +36,8 @@ SurpriseWallpaper.prototype.tryChangeWallpaper = function() {
// Try to fetch newest rss as document from server first. If any error occurs,
// proceed with local copy of rss.
WallpaperUtil.fetchURL(Constants.WallpaperRssURL, 'document', function(xhr) {
- WallpaperUtil.saveToLocalStorage(Constants.AccessRssKey,
- new XMLSerializer().serializeToString(xhr.responseXML));
+ WallpaperUtil.saveToStorage(Constants.AccessRssKey,
+ new XMLSerializer().serializeToString(xhr.responseXML), false);
self.updateSurpriseWallpaper(xhr.responseXML);
}, onFailure);
};
@@ -139,8 +139,10 @@ SurpriseWallpaper.prototype.setRandomWallpaper_ = function(dateString) {
var wallpaper = manifest.wallpaper_list[index];
var wallpaperURL = wallpaper.base_url + Constants.HighResolutionSuffix;
var onSuccess = function() {
- WallpaperUtil.saveToLocalStorage(
- Constants.AccessLastSurpriseWallpaperChangedDate, dateString);
+ WallpaperUtil.saveToStorage(
+ Constants.AccessLastSurpriseWallpaperChangedDate,
+ dateString,
+ false);
}
WallpaperUtil.setOnlineWallpaper(wallpaperURL, wallpaper.default_layout,
onSuccess, self.retryLater_.bind(self));
@@ -180,8 +182,8 @@ SurpriseWallpaper.prototype.setWallpaperFromRssItem_ = function(item,
SurpriseWallpaper.prototype.disable = function() {
chrome.alarms.clearAll();
// Makes last changed date invalid.
- WallpaperUtil.saveToLocalStorage(
- Constants.AccessLastSurpriseWallpaperChangedDate, '');
+ WallpaperUtil.saveToStorage(Constants.AccessLastSurpriseWallpaperChangedDate,
+ '', false);
};
/**
@@ -237,6 +239,32 @@ chrome.storage.onChanged.addListener(function(changes, namespace) {
SurpriseWallpaper.getInstance().disable();
}
}
+
+ if (changes[Constants.AccessSyncWallpaperInfoKey]) {
+ var newValue = changes[Constants.AccessSyncWallpaperInfoKey].newValue;
+ Constants.WallpaperLocalStorage.get(Constants.AccessLocalWallpaperInfoKey,
+ function(items) {
+ // Normally, the wallpaper info saved in local storage and sync storage
+ // are the same. If the synced value changed by sync service, they may
+ // different. In that case, change wallpaper to the one saved in sync
+ // storage and update the local value.
+ var localValue = items[Constants.AccessLocalWallpaperInfoKey];
+ if (localValue == undefined ||
+ localValue.url != newValue.url ||
+ localValue.layout != newValue.layout ||
+ localValue.source != newValue.source) {
+ if (newValue.source == Constants.WallpaperSourceEnum.Online) {
+ // TODO(bshe): Consider schedule an alarm to set online wallpaper
+ // later when failed. Note that we need to cancel the retry if user
+ // set another wallpaper before retry alarm invoked.
+ WallpaperUtil.setOnlineWallpaper(newValue.url, newValue.layout,
+ function() {}, function() {});
+ }
+ WallpaperUtil.saveToStorage(Constants.AccessLocalWallpaperInfoKey,
+ newValue, false);
+ }
+ });
+ }
});
chrome.alarms.onAlarm.addListener(function() {

Powered by Google App Engine
This is Rietveld 408576698