OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 this.manifest_ = {}; | 76 this.manifest_ = {}; |
77 } | 77 } |
78 }; | 78 }; |
79 | 79 |
80 /** | 80 /** |
81 * Requests wallpaper manifest file from server. | 81 * Requests wallpaper manifest file from server. |
82 */ | 82 */ |
83 WallpaperManager.prototype.fetchManifest_ = function() { | 83 WallpaperManager.prototype.fetchManifest_ = function() { |
84 var xhr = new XMLHttpRequest(); | 84 var xhr = new XMLHttpRequest(); |
85 var locale = navigator.language; | 85 var locale = navigator.language; |
86 xhr.open('GET', ManifestBaseURL + locale + '.json', false); | 86 var urls = [ |
87 xhr.send(null); | 87 ManifestBaseURL + locale + '.json', |
88 // TODO(bshe): We should save the downloaded manifest to local disk. Other | 88 // Fallback url. Use 'en' locale by default. |
89 // components may want to use it (i.e. screen saver). | 89 ManifestBaseURL + 'en.json']; |
90 if (xhr.status === 200) { | 90 |
91 this.parseManifest_(xhr.responseText); | 91 for (var i = 0; i < urls.length; i++) { |
92 } else { | 92 xhr.open('GET', urls[i], false); |
93 // Fall back to en locale if current locale is not supported. | 93 try { |
94 xhr.open('GET', ManifestBaseURL + 'en.json', false); | 94 xhr.send(null); |
95 xhr.send(null); | 95 // TODO(bshe): We should save the downloaded manifest to local disk. |
96 if (xhr.status === 200) { | 96 // Other components may want to use it (i.e. screen saver). |
97 this.parseManifest_(xhr.responseText); | 97 if (xhr.status === 200) { |
98 } else { | 98 this.parseManifest_(xhr.responseText); |
| 99 return; |
| 100 } |
| 101 } catch (e) { |
99 this.manifest_ = {}; | 102 this.manifest_ = {}; |
100 this.butterBar_.showError_(str('connectionFailed')); | 103 this.butterBar_.showError_(str('connectionFailed')); |
| 104 return; |
101 } | 105 } |
102 } | 106 } |
| 107 this.manifest_ = {}; |
| 108 this.butterBar_.showError_(str('connectionFailed')); |
103 | 109 |
104 // TODO(bshe): Fall back to saved manifest if there is a problem fetching | 110 // TODO(bshe): Fall back to saved manifest if there is a problem fetching |
105 // manifest from server. | 111 // manifest from server. |
106 }; | 112 }; |
107 | 113 |
108 /** | 114 /** |
109 * One-time initialization of various DOM nodes. | 115 * One-time initialization of various DOM nodes. |
110 */ | 116 */ |
111 WallpaperManager.prototype.initDom_ = function() { | 117 WallpaperManager.prototype.initDom_ = function() { |
112 i18nTemplate.process(this.document_, loadTimeData); | 118 i18nTemplate.process(this.document_, loadTimeData); |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
384 selectedItem = wallpaperInfo; | 390 selectedItem = wallpaperInfo; |
385 } | 391 } |
386 } | 392 } |
387 } | 393 } |
388 this.wallpaperGrid_.dataModel = wallpapersDataModel; | 394 this.wallpaperGrid_.dataModel = wallpapersDataModel; |
389 this.wallpaperGrid_.selectedItem = selectedItem; | 395 this.wallpaperGrid_.selectedItem = selectedItem; |
390 } | 396 } |
391 }; | 397 }; |
392 | 398 |
393 })(); | 399 })(); |
OLD | NEW |