| OLD | NEW |
| 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 var WallpaperUtil = { | 5 var WallpaperUtil = { |
| 6 strings: null, // Object that contains all the flags | 6 strings: null, // Object that contains all the flags |
| 7 syncFs: null, // syncFileSystem handler | 7 syncFs: null, // syncFileSystem handler |
| 8 webkitFs: null // webkitFileSystem handler | 8 webkitFs: null // webkitFileSystem handler |
| 9 }; | 9 }; |
| 10 | 10 |
| 11 /** | 11 /** |
| 12 * Deletes |wallpaperFileName| and its associated thumbnail from local FS. | 12 * Deletes |wallpaperFileName| and its associated thumbnail from local FS. |
| 13 * @param {string} wallpaperFilename Name of the file that will be deleted | 13 * @param {string} wallpaperFilename Name of the file that will be deleted |
| 14 */ | 14 */ |
| 15 WallpaperUtil.deleteWallpaperFromLocalFS = function(wallpaperFilename) { | 15 WallpaperUtil.deleteWallpaperFromLocalFS = function(wallpaperFilename) { |
| 16 WallpaperUtil.requestLocalFS(function(fs) { | 16 WallpaperUtil.requestLocalFS(function(fs) { |
| 17 var originalPath = Constants.WallpaperDirNameEnum.ORIGINAL + '/' + | 17 var originalPath = |
| 18 wallpaperFilename; | 18 Constants.WallpaperDirNameEnum.ORIGINAL + '/' + wallpaperFilename; |
| 19 var thumbnailPath = Constants.WallpaperDirNameEnum.THUMBNAIL + '/' + | 19 var thumbnailPath = |
| 20 wallpaperFilename; | 20 Constants.WallpaperDirNameEnum.THUMBNAIL + '/' + wallpaperFilename; |
| 21 fs.root.getFile(originalPath, | 21 fs.root.getFile( |
| 22 {create: false}, | 22 originalPath, {create: false}, |
| 23 function(fe) { | 23 function(fe) { |
| 24 fe.remove(function() {}, null); | 24 fe.remove(function() {}, null); |
| 25 }, | 25 }, |
| 26 // NotFoundError is expected. After we receive a delete | 26 // NotFoundError is expected. After we receive a delete |
| 27 // event from either original wallpaper or wallpaper | 27 // event from either original wallpaper or wallpaper |
| 28 // thumbnail, we delete both of them in local FS to achieve | 28 // thumbnail, we delete both of them in local FS to achieve |
| 29 // a faster synchronization. So each file is expected to be | 29 // a faster synchronization. So each file is expected to be |
| 30 // deleted twice and the second attempt is a noop. | 30 // deleted twice and the second attempt is a noop. |
| 31 function(e) { | 31 function(e) { |
| 32 if (e.name != 'NotFoundError') | 32 if (e.name != 'NotFoundError') |
| 33 WallpaperUtil.onFileSystemError(e); | 33 WallpaperUtil.onFileSystemError(e); |
| 34 }); | 34 }); |
| 35 fs.root.getFile(thumbnailPath, | 35 fs.root.getFile( |
| 36 {create: false}, | 36 thumbnailPath, {create: false}, |
| 37 function(fe) { | 37 function(fe) { |
| 38 fe.remove(function() {}, null); | 38 fe.remove(function() {}, null); |
| 39 }, | 39 }, |
| 40 function(e) { | 40 function(e) { |
| 41 if (e.name != 'NotFoundError') | 41 if (e.name != 'NotFoundError') |
| 42 WallpaperUtil.onFileSystemError(e); | 42 WallpaperUtil.onFileSystemError(e); |
| 43 }); | 43 }); |
| 44 }); | 44 }); |
| 45 }; | 45 }; |
| 46 | 46 |
| 47 /** | 47 /** |
| 48 * Loads a wallpaper from sync file system and saves it and its thumbnail to | 48 * Loads a wallpaper from sync file system and saves it and its thumbnail to |
| 49 * local file system. | 49 * local file system. |
| 50 * @param {string} wallpaperFileEntry File name of wallpaper image. | 50 * @param {string} wallpaperFileEntry File name of wallpaper image. |
| 51 */ | 51 */ |
| 52 WallpaperUtil.storeWallpaperFromSyncFSToLocalFS = function(wallpaperFileEntry) { | 52 WallpaperUtil.storeWallpaperFromSyncFSToLocalFS = function(wallpaperFileEntry) { |
| 53 var filenName = wallpaperFileEntry.name; | 53 var filenName = wallpaperFileEntry.name; |
| 54 var storeDir = Constants.WallpaperDirNameEnum.ORIGINAL; | 54 var storeDir = Constants.WallpaperDirNameEnum.ORIGINAL; |
| 55 if (filenName.indexOf(Constants.CustomWallpaperThumbnailSuffix) != -1) | 55 if (filenName.indexOf(Constants.CustomWallpaperThumbnailSuffix) != -1) |
| 56 storeDir = Constants.WallpaperDirNameEnum.THUMBNAIL; | 56 storeDir = Constants.WallpaperDirNameEnum.THUMBNAIL; |
| 57 filenName = filenName.replace(Constants.CustomWallpaperThumbnailSuffix, ''); | 57 filenName = filenName.replace(Constants.CustomWallpaperThumbnailSuffix, ''); |
| 58 wallpaperFileEntry.file(function(file) { | 58 wallpaperFileEntry.file(function(file) { |
| 59 var reader = new FileReader(); | 59 var reader = new FileReader(); |
| 60 reader.onloadend = function() { | 60 reader.onloadend = function() { |
| 61 WallpaperUtil.storeWallpaperToLocalFS(filenName, reader.result, storeDir); | 61 WallpaperUtil.storeWallpaperToLocalFS(filenName, reader.result, storeDir); |
| 62 }; | 62 }; |
| 63 reader.readAsArrayBuffer(file); | 63 reader.readAsArrayBuffer(file); |
| 64 }, WallpaperUtil.onFileSystemError); | 64 }, WallpaperUtil.onFileSystemError); |
| 65 }; | 65 }; |
| 66 | 66 |
| 67 /** | 67 /** |
| 68 * Deletes |wallpaperFileName| and its associated thumbnail from syncFileSystem. | 68 * Deletes |wallpaperFileName| and its associated thumbnail from syncFileSystem. |
| 69 * @param {string} wallpaperFilename Name of the file that will be deleted. | 69 * @param {string} wallpaperFilename Name of the file that will be deleted. |
| 70 */ | 70 */ |
| 71 WallpaperUtil.deleteWallpaperFromSyncFS = function(wallpaperFilename) { | 71 WallpaperUtil.deleteWallpaperFromSyncFS = function(wallpaperFilename) { |
| 72 var thumbnailFilename = wallpaperFilename + | 72 var thumbnailFilename = |
| 73 Constants.CustomWallpaperThumbnailSuffix; | 73 wallpaperFilename + Constants.CustomWallpaperThumbnailSuffix; |
| 74 var success = function(fs) { | 74 var success = function(fs) { |
| 75 fs.root.getFile(wallpaperFilename, | 75 fs.root.getFile( |
| 76 {create: false}, | 76 wallpaperFilename, {create: false}, |
| 77 function(fe) { | 77 function(fe) { |
| 78 fe.remove(function() {}, null); | 78 fe.remove(function() {}, null); |
| 79 }, | 79 }, |
| 80 function(e) { | 80 function(e) { |
| 81 // NotFoundError is expected under the following scenario: | 81 // NotFoundError is expected under the following scenario: |
| 82 // The user uses a same account on device A and device B. | 82 // The user uses a same account on device A and device B. |
| 83 // The current wallpaper is a third party wallpaper. Then | 83 // The current wallpaper is a third party wallpaper. Then |
| 84 // the user changes it to a ONLINE wallpaper on device A. | 84 // the user changes it to a ONLINE wallpaper on device A. |
| 85 // Sync file system change and local file system change | 85 // Sync file system change and local file system change |
| 86 // will then both be fired on device B, which makes the | 86 // will then both be fired on device B, which makes the |
| 87 // third party wallpaper be deleted twice from the sync | 87 // third party wallpaper be deleted twice from the sync |
| 88 // file system. We should ignore this error. | 88 // file system. We should ignore this error. |
| 89 if (e.name != 'NotFoundError') | 89 if (e.name != 'NotFoundError') |
| 90 WallpaperUtil.onFileSystemError(e); | 90 WallpaperUtil.onFileSystemError(e); |
| 91 }); | 91 }); |
| 92 fs.root.getFile(thumbnailFilename, | 92 fs.root.getFile( |
| 93 {create: false}, | 93 thumbnailFilename, {create: false}, |
| 94 function(fe) { | 94 function(fe) { |
| 95 fe.remove(function() {}, null); | 95 fe.remove(function() {}, null); |
| 96 }, | 96 }, |
| 97 function(e) { | 97 function(e) { |
| 98 // Same as above. | 98 // Same as above. |
| 99 if (e.name != 'NotFoundError') | 99 if (e.name != 'NotFoundError') |
| 100 WallpaperUtil.onFileSystemError(e); | 100 WallpaperUtil.onFileSystemError(e); |
| 101 }); | 101 }); |
| 102 }; | 102 }; |
| 103 WallpaperUtil.requestSyncFS(success); | 103 WallpaperUtil.requestSyncFS(success); |
| 104 }; | 104 }; |
| 105 | 105 |
| 106 /** | 106 /** |
| 107 * Executes callback after requesting the sync settings. | 107 * Executes callback after requesting the sync settings. |
| 108 * @param {function} callback The callback will be executed. | 108 * @param {function} callback The callback will be executed. |
| 109 */ | 109 */ |
| 110 WallpaperUtil.enabledSyncThemesCallback = function(callback) { | 110 WallpaperUtil.enabledSyncThemesCallback = function(callback) { |
| 111 chrome.wallpaperPrivate.getSyncSetting(function(setting) { | 111 chrome.wallpaperPrivate.getSyncSetting(function(setting) { |
| (...skipping 23 matching lines...) Expand all Loading... |
| 135 | 135 |
| 136 /** | 136 /** |
| 137 * Request a Local Fs handle and run callback on it. | 137 * Request a Local Fs handle and run callback on it. |
| 138 * @param {function} callback The callback to execute after Local handler is | 138 * @param {function} callback The callback to execute after Local handler is |
| 139 * available. | 139 * available. |
| 140 */ | 140 */ |
| 141 WallpaperUtil.requestLocalFS = function(callback) { | 141 WallpaperUtil.requestLocalFS = function(callback) { |
| 142 if (WallpaperUtil.webkitFs) { | 142 if (WallpaperUtil.webkitFs) { |
| 143 callback(WallpaperUtil.webkitFs); | 143 callback(WallpaperUtil.webkitFs); |
| 144 } else { | 144 } else { |
| 145 window.webkitRequestFileSystem(window.PERSISTENT, 1024 * 1024 * 100, | 145 window.webkitRequestFileSystem( |
| 146 function(fs) { | 146 window.PERSISTENT, 1024 * 1024 * 100, function(fs) { |
| 147 WallpaperUtil.webkitFs = fs; | 147 WallpaperUtil.webkitFs = fs; |
| 148 callback(fs); | 148 callback(fs); |
| 149 }); | 149 }); |
| 150 } | 150 } |
| 151 }; | 151 }; |
| 152 | 152 |
| 153 /** | 153 /** |
| 154 * Print error to console.error. | 154 * Print error to console.error. |
| 155 * @param {Event} e The error will be printed to console.error. | 155 * @param {Event} e The error will be printed to console.error. |
| 156 */ | 156 */ |
| 157 // TODO(ranj): Handle different errors differently. | 157 // TODO(ranj): Handle different errors differently. |
| 158 WallpaperUtil.onFileSystemError = function(e) { | 158 WallpaperUtil.onFileSystemError = function(e) { |
| 159 console.error(e); | 159 console.error(e); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 173 if (writeCallback) | 173 if (writeCallback) |
| 174 writeCallback(); | 174 writeCallback(); |
| 175 }, WallpaperUtil.onFileSystemError); | 175 }, WallpaperUtil.onFileSystemError); |
| 176 }; | 176 }; |
| 177 | 177 |
| 178 /** | 178 /** |
| 179 * Write jpeg/png file data into syncFileSystem. | 179 * Write jpeg/png file data into syncFileSystem. |
| 180 * @param {string} wallpaperFilename The filename that going to be writen. | 180 * @param {string} wallpaperFilename The filename that going to be writen. |
| 181 * @param {ArrayBuffer} wallpaperData Data for image file. | 181 * @param {ArrayBuffer} wallpaperData Data for image file. |
| 182 */ | 182 */ |
| 183 WallpaperUtil.storeWallpaperToSyncFS = function(wallpaperFilename, | 183 WallpaperUtil.storeWallpaperToSyncFS = function( |
| 184 wallpaperData) { | 184 wallpaperFilename, wallpaperData) { |
| 185 var callback = function(fs) { | 185 var callback = function(fs) { |
| 186 fs.root.getFile(wallpaperFilename, | 186 fs.root.getFile( |
| 187 {create: false}, | 187 wallpaperFilename, {create: false}, function() {}, // already exists |
| 188 function() {}, // already exists | 188 function(e) { // not exists, create |
| 189 function(e) { // not exists, create | 189 fs.root.getFile(wallpaperFilename, {create: true}, function(fe) { |
| 190 fs.root.getFile(wallpaperFilename, {create: true}, | 190 WallpaperUtil.writeFile(fe, wallpaperData); |
| 191 function(fe) { | 191 }, WallpaperUtil.onFileSystemError); |
| 192 WallpaperUtil.writeFile( | 192 }); |
| 193 fe, wallpaperData); | |
| 194 }, | |
| 195 WallpaperUtil.onFileSystemError); | |
| 196 }); | |
| 197 }; | 193 }; |
| 198 WallpaperUtil.requestSyncFS(callback); | 194 WallpaperUtil.requestSyncFS(callback); |
| 199 }; | 195 }; |
| 200 | 196 |
| 201 /** | 197 /** |
| 202 * Stores jpeg/png wallpaper into |localDir| in local file system. | 198 * Stores jpeg/png wallpaper into |localDir| in local file system. |
| 203 * @param {string} wallpaperFilename File name of wallpaper image. | 199 * @param {string} wallpaperFilename File name of wallpaper image. |
| 204 * @param {ArrayBuffer} wallpaperData The wallpaper data. | 200 * @param {ArrayBuffer} wallpaperData The wallpaper data. |
| 205 * @param {string} saveDir The path to store wallpaper in local file system. | 201 * @param {string} saveDir The path to store wallpaper in local file system. |
| 206 */ | 202 */ |
| 207 WallpaperUtil.storeWallpaperToLocalFS = function(wallpaperFilename, | 203 WallpaperUtil.storeWallpaperToLocalFS = function( |
| 208 wallpaperData, saveDir) { | 204 wallpaperFilename, wallpaperData, saveDir) { |
| 209 if (!wallpaperData) { | 205 if (!wallpaperData) { |
| 210 console.error('wallpaperData is null'); | 206 console.error('wallpaperData is null'); |
| 211 return; | 207 return; |
| 212 } | 208 } |
| 213 var getDirSuccess = function(dirEntry) { | 209 var getDirSuccess = function(dirEntry) { |
| 214 dirEntry.getFile(wallpaperFilename, | 210 dirEntry.getFile( |
| 215 {create: false}, | 211 wallpaperFilename, {create: false}, function() {}, // already exists |
| 216 function() {}, // already exists | 212 function(e) { // not exists, create |
| 217 function(e) { // not exists, create | 213 dirEntry.getFile(wallpaperFilename, {create: true}, function(fe) { |
| 218 dirEntry.getFile(wallpaperFilename, {create: true}, | 214 WallpaperUtil.writeFile(fe, wallpaperData); |
| 219 function(fe) { | 215 }, WallpaperUtil.onFileSystemError); |
| 220 WallpaperUtil.writeFile(fe, | 216 }); |
| 221 wallpaperData); | |
| 222 }, | |
| 223 WallpaperUtil.onFileSystemError); | |
| 224 }); | |
| 225 }; | 217 }; |
| 226 WallpaperUtil.requestLocalFS(function(fs) { | 218 WallpaperUtil.requestLocalFS(function(fs) { |
| 227 fs.root.getDirectory(saveDir, {create: true}, getDirSuccess, | 219 fs.root.getDirectory( |
| 228 WallpaperUtil.onFileSystemError); | 220 saveDir, {create: true}, getDirSuccess, |
| 221 WallpaperUtil.onFileSystemError); |
| 229 }); | 222 }); |
| 230 }; | 223 }; |
| 231 | 224 |
| 232 /** | 225 /** |
| 233 * Sets wallpaper from synced file system. | 226 * Sets wallpaper from synced file system. |
| 234 * @param {string} wallpaperFilename File name used to set wallpaper. | 227 * @param {string} wallpaperFilename File name used to set wallpaper. |
| 235 * @param {string} wallpaperLayout Layout used to set wallpaper. | 228 * @param {string} wallpaperLayout Layout used to set wallpaper. |
| 236 * @param {function=} onSuccess Callback if set successfully. | 229 * @param {function=} onSuccess Callback if set successfully. |
| 237 */ | 230 */ |
| 238 WallpaperUtil.setCustomWallpaperFromSyncFS = function( | 231 WallpaperUtil.setCustomWallpaperFromSyncFS = function( |
| 239 wallpaperFilename, wallpaperLayout, onSuccess) { | 232 wallpaperFilename, wallpaperLayout, onSuccess) { |
| 240 var setWallpaperFromSyncCallback = function(fs) { | 233 var setWallpaperFromSyncCallback = function(fs) { |
| 241 if (!wallpaperFilename) { | 234 if (!wallpaperFilename) { |
| 242 console.error('wallpaperFilename is not provided.'); | 235 console.error('wallpaperFilename is not provided.'); |
| 243 return; | 236 return; |
| 244 } | 237 } |
| 245 if (!wallpaperLayout) | 238 if (!wallpaperLayout) |
| 246 wallpaperLayout = 'CENTER_CROPPED'; | 239 wallpaperLayout = 'CENTER_CROPPED'; |
| 247 fs.root.getFile(wallpaperFilename, {create: false}, function(fileEntry) { | 240 fs.root.getFile( |
| 248 fileEntry.file(function(file) { | 241 wallpaperFilename, {create: false}, |
| 249 var reader = new FileReader(); | 242 function(fileEntry) { |
| 250 reader.onloadend = function() { | 243 fileEntry.file(function(file) { |
| 251 chrome.wallpaperPrivate.setCustomWallpaper( | 244 var reader = new FileReader(); |
| 252 reader.result, | 245 reader.onloadend = function() { |
| 253 wallpaperLayout, | 246 chrome.wallpaperPrivate.setCustomWallpaper( |
| 254 true, | 247 reader.result, wallpaperLayout, true, wallpaperFilename, |
| 255 wallpaperFilename, | 248 function(thumbnailData) { |
| 256 function(thumbnailData) { | 249 // TODO(ranj): Ignore 'canceledWallpaper' error. |
| 257 // TODO(ranj): Ignore 'canceledWallpaper' error. | 250 if (chrome.runtime.lastError) { |
| 258 if (chrome.runtime.lastError) { | 251 console.error(chrome.runtime.lastError.message); |
| 259 console.error(chrome.runtime.lastError.message); | 252 return; |
| 260 return; | 253 } |
| 261 } | 254 if (onSuccess) |
| 262 if (onSuccess) | 255 onSuccess(); |
| 263 onSuccess(); | 256 }); |
| 264 }); | 257 }; |
| 265 }; | 258 reader.readAsArrayBuffer(file); |
| 266 reader.readAsArrayBuffer(file); | 259 }, WallpaperUtil.onFileSystemError); |
| 267 }, WallpaperUtil.onFileSystemError); | 260 }, |
| 268 }, function(e) {} // fail to read file, expected due to download delay | 261 function(e) {} // fail to read file, expected due to download delay |
| 269 ); | 262 ); |
| 270 }; | 263 }; |
| 271 WallpaperUtil.requestSyncFS(setWallpaperFromSyncCallback); | 264 WallpaperUtil.requestSyncFS(setWallpaperFromSyncCallback); |
| 272 }; | 265 }; |
| 273 | 266 |
| 274 /** | 267 /** |
| 275 * Saves value to local storage that associates with key. | 268 * Saves value to local storage that associates with key. |
| 276 * @param {string} key The key that associates with value. | 269 * @param {string} key The key that associates with value. |
| 277 * @param {string} value The value to save to local storage. | 270 * @param {string} value The value to save to local storage. |
| 278 * @param {function=} opt_callback The callback on success. | 271 * @param {function=} opt_callback The callback on success. |
| 279 */ | 272 */ |
| (...skipping 29 matching lines...) Expand all Loading... |
| 309 * @param {string} appName The third party app name. If the current wallpaper is | 302 * @param {string} appName The third party app name. If the current wallpaper is |
| 310 * set by the built-in wallpaper picker, it is set to an empty string. | 303 * set by the built-in wallpaper picker, it is set to an empty string. |
| 311 */ | 304 */ |
| 312 WallpaperUtil.saveWallpaperInfo = function(url, layout, source, appName) { | 305 WallpaperUtil.saveWallpaperInfo = function(url, layout, source, appName) { |
| 313 chrome.wallpaperPrivate.recordWallpaperUMA(source); | 306 chrome.wallpaperPrivate.recordWallpaperUMA(source); |
| 314 | 307 |
| 315 // In order to keep the wallpaper sync working across different versions, we | 308 // In order to keep the wallpaper sync working across different versions, we |
| 316 // have to revert DAILY/THIRDPARTY type wallpaper info to ONLINE/CUSTOM type | 309 // have to revert DAILY/THIRDPARTY type wallpaper info to ONLINE/CUSTOM type |
| 317 // after record the correct UMA stats. | 310 // after record the correct UMA stats. |
| 318 source = (source == Constants.WallpaperSourceEnum.Daily) ? | 311 source = (source == Constants.WallpaperSourceEnum.Daily) ? |
| 319 Constants.WallpaperSourceEnum.Online : source; | 312 Constants.WallpaperSourceEnum.Online : |
| 313 source; |
| 320 source = (source == Constants.WallpaperSourceEnum.ThirdParty) ? | 314 source = (source == Constants.WallpaperSourceEnum.ThirdParty) ? |
| 321 Constants.WallpaperSourceEnum.Custom : source; | 315 Constants.WallpaperSourceEnum.Custom : |
| 316 source; |
| 322 var wallpaperInfo = { | 317 var wallpaperInfo = { |
| 323 url: url, | 318 url: url, |
| 324 layout: layout, | 319 layout: layout, |
| 325 source: source, | 320 source: source, |
| 326 appName: appName, | 321 appName: appName, |
| 327 }; | 322 }; |
| 328 WallpaperUtil.saveToLocalStorage(Constants.AccessLocalWallpaperInfoKey, | 323 WallpaperUtil.saveToLocalStorage( |
| 329 wallpaperInfo, function() { | 324 Constants.AccessLocalWallpaperInfoKey, wallpaperInfo, function() { |
| 330 WallpaperUtil.saveToSyncStorage(Constants.AccessSyncWallpaperInfoKey, | 325 WallpaperUtil.saveToSyncStorage( |
| 331 wallpaperInfo); | 326 Constants.AccessSyncWallpaperInfoKey, wallpaperInfo); |
| 332 }); | 327 }); |
| 333 }; | 328 }; |
| 334 | 329 |
| 335 /** | 330 /** |
| 336 * Downloads resources from url. Calls onSuccess and opt_onFailure accordingly. | 331 * Downloads resources from url. Calls onSuccess and opt_onFailure accordingly. |
| 337 * @param {string} url The url address where we should fetch resources. | 332 * @param {string} url The url address where we should fetch resources. |
| 338 * @param {string} type The response type of XMLHttprequest. | 333 * @param {string} type The response type of XMLHttprequest. |
| 339 * @param {function} onSuccess The success callback. It must be called with | 334 * @param {function} onSuccess The success callback. It must be called with |
| 340 * current XMLHttprequest object. | 335 * current XMLHttprequest object. |
| 341 * @param {function} onFailure The failure callback. | 336 * @param {function} onFailure The failure callback. |
| 342 * @param {XMLHttpRequest=} opt_xhr The XMLHttpRequest object. | 337 * @param {XMLHttpRequest=} opt_xhr The XMLHttpRequest object. |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 WallpaperUtil.setOnlineWallpaper = function(url, layout, onSuccess, onFailure) { | 373 WallpaperUtil.setOnlineWallpaper = function(url, layout, onSuccess, onFailure) { |
| 379 var self = this; | 374 var self = this; |
| 380 chrome.wallpaperPrivate.setWallpaperIfExists(url, layout, function(exists) { | 375 chrome.wallpaperPrivate.setWallpaperIfExists(url, layout, function(exists) { |
| 381 if (exists) { | 376 if (exists) { |
| 382 onSuccess(); | 377 onSuccess(); |
| 383 return; | 378 return; |
| 384 } | 379 } |
| 385 | 380 |
| 386 self.fetchURL(url, 'arraybuffer', function(xhr) { | 381 self.fetchURL(url, 'arraybuffer', function(xhr) { |
| 387 if (xhr.response != null) { | 382 if (xhr.response != null) { |
| 388 chrome.wallpaperPrivate.setWallpaper(xhr.response, layout, url, | 383 chrome.wallpaperPrivate.setWallpaper( |
| 389 onSuccess); | 384 xhr.response, layout, url, onSuccess); |
| 390 } else { | 385 } else { |
| 391 onFailure(); | 386 onFailure(); |
| 392 } | 387 } |
| 393 }, onFailure); | 388 }, onFailure); |
| 394 }); | 389 }); |
| 395 }; | 390 }; |
| 396 | 391 |
| 397 /** | 392 /** |
| 398 * Runs chrome.test.sendMessage in test environment. Does nothing if running | 393 * Runs chrome.test.sendMessage in test environment. Does nothing if running |
| 399 * in production environment. | 394 * in production environment. |
| 400 * | 395 * |
| 401 * @param {string} message Test message to send. | 396 * @param {string} message Test message to send. |
| 402 */ | 397 */ |
| 403 WallpaperUtil.testSendMessage = function(message) { | 398 WallpaperUtil.testSendMessage = function(message) { |
| 404 var test = chrome.test || window.top.chrome.test; | 399 var test = chrome.test || window.top.chrome.test; |
| 405 if (test) | 400 if (test) |
| 406 test.sendMessage(message); | 401 test.sendMessage(message); |
| 407 }; | 402 }; |
| OLD | NEW |