OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 * @fileoverview | 6 * @fileoverview |
7 * 'settings-people-page' is the settings page containing sign-in settings. | 7 * 'settings-people-page' is the settings page containing sign-in settings. |
8 */ | 8 */ |
9 Polymer({ | 9 Polymer({ |
10 is: 'settings-people-page', | 10 is: 'settings-people-page', |
11 | 11 |
12 behaviors: [ | 12 behaviors: [ |
13 settings.RouteObserverBehavior, | 13 settings.RouteObserverBehavior, I18nBehavior, WebUIListenerBehavior, |
14 I18nBehavior, | 14 // <if expr="chromeos"> |
15 WebUIListenerBehavior, | |
16 // <if expr="chromeos"> | |
17 LockStateBehavior, | 15 LockStateBehavior, |
18 // </if> | 16 // </if> |
19 ], | 17 ], |
20 | 18 |
21 properties: { | 19 properties: { |
22 /** | 20 /** |
23 * Preferences state. | 21 * Preferences state. |
24 */ | 22 */ |
25 prefs: { | 23 prefs: { |
26 type: Object, | 24 type: Object, |
27 notify: true, | 25 notify: true, |
28 }, | 26 }, |
(...skipping 29 matching lines...) Expand all Loading... |
58 /** | 56 /** |
59 * True if the profile deletion warning is visible. | 57 * True if the profile deletion warning is visible. |
60 */ | 58 */ |
61 deleteProfileWarningVisible_: Boolean, | 59 deleteProfileWarningVisible_: Boolean, |
62 | 60 |
63 /** | 61 /** |
64 * True if the checkbox to delete the profile has been checked. | 62 * True if the checkbox to delete the profile has been checked. |
65 */ | 63 */ |
66 deleteProfile_: Boolean, | 64 deleteProfile_: Boolean, |
67 | 65 |
68 // <if expr="not chromeos"> | 66 // <if expr="not chromeos"> |
69 /** @private */ | 67 /** @private */ |
70 showImportDataDialog_: { | 68 showImportDataDialog_: { |
71 type: Boolean, | 69 type: Boolean, |
72 value: false, | 70 value: false, |
73 }, | 71 }, |
74 // </if> | 72 // </if> |
75 | 73 |
76 /** @private */ | 74 /** @private */ |
77 showDisconnectDialog_: Boolean, | 75 showDisconnectDialog_: Boolean, |
78 | 76 |
79 // <if expr="chromeos"> | 77 // <if expr="chromeos"> |
80 /** | 78 /** |
81 * True if fingerprint settings should be displayed on this machine. | 79 * True if fingerprint settings should be displayed on this machine. |
82 * @private | 80 * @private |
83 */ | 81 */ |
84 fingerprintUnlockEnabled_: { | 82 fingerprintUnlockEnabled_: { |
85 type: Boolean, | 83 type: Boolean, |
86 value: function() { | 84 value: function() { |
87 return loadTimeData.getBoolean('fingerprintUnlockEnabled'); | 85 return loadTimeData.getBoolean('fingerprintUnlockEnabled'); |
88 }, | 86 }, |
89 readOnly: true, | 87 readOnly: true, |
90 }, | 88 }, |
91 // </if> | 89 // </if> |
92 | 90 |
93 /** @private {!Map<string, string>} */ | 91 /** @private {!Map<string, string>} */ |
94 focusConfig_: { | 92 focusConfig_: { |
95 type: Object, | 93 type: Object, |
96 value: function() { | 94 value: function() { |
97 var map = new Map(); | 95 var map = new Map(); |
98 map.set( | 96 map.set(settings.Route.SYNC.path, '#sync-status .subpage-arrow'); |
99 settings.Route.SYNC.path, '#sync-status .subpage-arrow'); | 97 // <if expr="not chromeos"> |
100 // <if expr="not chromeos"> | |
101 map.set( | 98 map.set( |
102 settings.Route.MANAGE_PROFILE.path, | 99 settings.Route.MANAGE_PROFILE.path, |
103 '#picture-subpage-trigger .subpage-arrow'); | 100 '#picture-subpage-trigger .subpage-arrow'); |
104 // </if> | 101 // </if> |
105 // <if expr="chromeos"> | 102 // <if expr="chromeos"> |
106 map.set( | 103 map.set( |
107 settings.Route.CHANGE_PICTURE.path, | 104 settings.Route.CHANGE_PICTURE.path, |
108 '#picture-subpage-trigger .subpage-arrow'); | 105 '#picture-subpage-trigger .subpage-arrow'); |
109 map.set( | 106 map.set( |
110 settings.Route.LOCK_SCREEN.path, | 107 settings.Route.LOCK_SCREEN.path, |
111 '#lock-screen-subpage-trigger .subpage-arrow'); | 108 '#lock-screen-subpage-trigger .subpage-arrow'); |
112 map.set( | 109 map.set( |
113 settings.Route.ACCOUNTS.path, | 110 settings.Route.ACCOUNTS.path, |
114 '#manage-other-people-subpage-trigger .subpage-arrow'); | 111 '#manage-other-people-subpage-trigger .subpage-arrow'); |
115 // </if> | 112 // </if> |
116 return map; | 113 return map; |
117 }, | 114 }, |
118 }, | 115 }, |
119 }, | 116 }, |
120 | 117 |
121 /** @private {?settings.SyncBrowserProxy} */ | 118 /** @private {?settings.SyncBrowserProxy} */ |
122 syncBrowserProxy_: null, | 119 syncBrowserProxy_: null, |
123 | 120 |
124 /** @override */ | 121 /** @override */ |
125 attached: function() { | 122 attached: function() { |
126 var profileInfoProxy = settings.ProfileInfoBrowserProxyImpl.getInstance(); | 123 var profileInfoProxy = settings.ProfileInfoBrowserProxyImpl.getInstance(); |
127 profileInfoProxy.getProfileInfo().then(this.handleProfileInfo_.bind(this)); | 124 profileInfoProxy.getProfileInfo().then(this.handleProfileInfo_.bind(this)); |
128 this.addWebUIListener('profile-info-changed', | 125 this.addWebUIListener( |
129 this.handleProfileInfo_.bind(this)); | 126 'profile-info-changed', this.handleProfileInfo_.bind(this)); |
130 | 127 |
131 profileInfoProxy.getProfileManagesSupervisedUsers().then( | 128 profileInfoProxy.getProfileManagesSupervisedUsers().then( |
132 this.handleProfileManagesSupervisedUsers_.bind(this)); | 129 this.handleProfileManagesSupervisedUsers_.bind(this)); |
133 this.addWebUIListener('profile-manages-supervised-users-changed', | 130 this.addWebUIListener( |
134 this.handleProfileManagesSupervisedUsers_.bind(this)); | 131 'profile-manages-supervised-users-changed', |
| 132 this.handleProfileManagesSupervisedUsers_.bind(this)); |
135 | 133 |
136 this.addWebUIListener('profile-stats-count-ready', | 134 this.addWebUIListener( |
137 this.handleProfileStatsCount_.bind(this)); | 135 'profile-stats-count-ready', this.handleProfileStatsCount_.bind(this)); |
138 | 136 |
139 this.syncBrowserProxy_ = settings.SyncBrowserProxyImpl.getInstance(); | 137 this.syncBrowserProxy_ = settings.SyncBrowserProxyImpl.getInstance(); |
140 this.syncBrowserProxy_.getSyncStatus().then( | 138 this.syncBrowserProxy_.getSyncStatus().then( |
141 this.handleSyncStatus_.bind(this)); | 139 this.handleSyncStatus_.bind(this)); |
142 this.addWebUIListener('sync-status-changed', | 140 this.addWebUIListener( |
143 this.handleSyncStatus_.bind(this)); | 141 'sync-status-changed', this.handleSyncStatus_.bind(this)); |
144 }, | 142 }, |
145 | 143 |
146 /** @protected */ | 144 /** @protected */ |
147 currentRouteChanged: function() { | 145 currentRouteChanged: function() { |
148 this.showImportDataDialog_ = | 146 this.showImportDataDialog_ = |
149 settings.getCurrentRoute() == settings.Route.IMPORT_DATA; | 147 settings.getCurrentRoute() == settings.Route.IMPORT_DATA; |
150 | 148 |
151 if (settings.getCurrentRoute() == settings.Route.SIGN_OUT) { | 149 if (settings.getCurrentRoute() == settings.Route.SIGN_OUT) { |
152 // If the sync status has not been fetched yet, optimistically display | 150 // If the sync status has not been fetched yet, optimistically display |
153 // the disconnect dialog. There is another check when the sync status is | 151 // the disconnect dialog. There is another check when the sync status is |
154 // fetched. The dialog will be closed then the user is not signed in. | 152 // fetched. The dialog will be closed then the user is not signed in. |
155 if (this.syncStatus && !this.syncStatus.signedIn) { | 153 if (this.syncStatus && !this.syncStatus.signedIn) { |
156 settings.navigateToPreviousRoute(); | 154 settings.navigateToPreviousRoute(); |
157 } else { | 155 } else { |
158 this.showDisconnectDialog_ = true; | 156 this.showDisconnectDialog_ = true; |
159 this.async(function() { | 157 this.async(function() { |
160 this.$$('#disconnectDialog').showModal(); | 158 this.$$('#disconnectDialog').showModal(); |
161 }.bind(this)); | 159 }.bind(this)); |
162 } | 160 } |
163 } else if (this.showDisconnectDialog_) { | 161 } else if (this.showDisconnectDialog_) { |
164 this.$$('#disconnectDialog').close(); | 162 this.$$('#disconnectDialog').close(); |
165 } | 163 } |
166 }, | 164 }, |
167 | 165 |
168 // <if expr="chromeos"> | 166 // <if expr="chromeos"> |
169 /** @private */ | 167 /** @private */ |
170 getPasswordState_: function(hasPin, enableScreenLock) { | 168 getPasswordState_: function(hasPin, enableScreenLock) { |
171 if (!enableScreenLock) | 169 if (!enableScreenLock) |
172 return this.i18n('lockScreenNone'); | 170 return this.i18n('lockScreenNone'); |
173 if (hasPin) | 171 if (hasPin) |
174 return this.i18n('lockScreenPinOrPassword'); | 172 return this.i18n('lockScreenPinOrPassword'); |
175 return this.i18n('lockScreenPasswordOnly'); | 173 return this.i18n('lockScreenPasswordOnly'); |
176 }, | 174 }, |
177 // </if> | 175 // </if> |
178 | 176 |
179 /** | 177 /** |
180 * Handler for when the profile's icon and name is updated. | 178 * Handler for when the profile's icon and name is updated. |
181 * @private | 179 * @private |
182 * @param {!settings.ProfileInfo} info | 180 * @param {!settings.ProfileInfo} info |
183 */ | 181 */ |
184 handleProfileInfo_: function(info) { | 182 handleProfileInfo_: function(info) { |
185 this.profileName_ = info.name; | 183 this.profileName_ = info.name; |
186 this.profileIconUrl_ = info.iconUrl; | 184 this.profileIconUrl_ = info.iconUrl; |
187 }, | 185 }, |
188 | 186 |
189 /** | 187 /** |
190 * Handler for when the profile starts or stops managing supervised users. | 188 * Handler for when the profile starts or stops managing supervised users. |
191 * @private | 189 * @private |
192 * @param {boolean} managesSupervisedUsers | 190 * @param {boolean} managesSupervisedUsers |
193 */ | 191 */ |
194 handleProfileManagesSupervisedUsers_: function(managesSupervisedUsers) { | 192 handleProfileManagesSupervisedUsers_: function(managesSupervisedUsers) { |
195 this.profileManagesSupervisedUsers_ = managesSupervisedUsers; | 193 this.profileManagesSupervisedUsers_ = managesSupervisedUsers; |
196 }, | 194 }, |
197 | 195 |
198 /** | 196 /** |
199 * Handler for when the profile stats count is pushed from the browser. | 197 * Handler for when the profile stats count is pushed from the browser. |
200 * @param {number} count | 198 * @param {number} count |
201 * @private | 199 * @private |
202 */ | 200 */ |
203 handleProfileStatsCount_: function(count) { | 201 handleProfileStatsCount_: function(count) { |
204 this.deleteProfileWarning_ = (count > 0) ? | 202 this.deleteProfileWarning_ = (count > 0) ? |
205 (count == 1) ? | 203 (count == 1) ? loadTimeData.getStringF( |
206 loadTimeData.getStringF('deleteProfileWarningWithCountsSingular', | 204 'deleteProfileWarningWithCountsSingular', |
207 this.syncStatus.signedInUsername) : | 205 this.syncStatus.signedInUsername) : |
208 loadTimeData.getStringF('deleteProfileWarningWithCountsPlural', | 206 loadTimeData.getStringF( |
209 count, this.syncStatus.signedInUsername) : | 207 'deleteProfileWarningWithCountsPlural', count, |
210 loadTimeData.getStringF('deleteProfileWarningWithoutCounts', | 208 this.syncStatus.signedInUsername) : |
211 this.syncStatus.signedInUsername); | 209 loadTimeData.getStringF( |
| 210 'deleteProfileWarningWithoutCounts', |
| 211 this.syncStatus.signedInUsername); |
212 }, | 212 }, |
213 | 213 |
214 /** | 214 /** |
215 * Handler for when the sync state is pushed from the browser. | 215 * Handler for when the sync state is pushed from the browser. |
216 * @param {?settings.SyncStatus} syncStatus | 216 * @param {?settings.SyncStatus} syncStatus |
217 * @private | 217 * @private |
218 */ | 218 */ |
219 handleSyncStatus_: function(syncStatus) { | 219 handleSyncStatus_: function(syncStatus) { |
220 if (!this.syncStatus && syncStatus && !syncStatus.signedIn) | 220 if (!this.syncStatus && syncStatus && !syncStatus.signedIn) |
221 chrome.metricsPrivate.recordUserAction('Signin_Impression_FromSettings'); | 221 chrome.metricsPrivate.recordUserAction('Signin_Impression_FromSettings'); |
222 | 222 |
223 // <if expr="not chromeos"> | 223 // <if expr="not chromeos"> |
224 if (syncStatus.signedIn) | 224 if (syncStatus.signedIn) |
225 settings.ProfileInfoBrowserProxyImpl.getInstance().getProfileStatsCount(); | 225 settings.ProfileInfoBrowserProxyImpl.getInstance().getProfileStatsCount(); |
226 // </if> | 226 // </if> |
227 | 227 |
228 if (!syncStatus.signedIn && this.showDisconnectDialog_) | 228 if (!syncStatus.signedIn && this.showDisconnectDialog_) |
229 this.$$('#disconnectDialog').close(); | 229 this.$$('#disconnectDialog').close(); |
230 | 230 |
231 this.syncStatus = syncStatus; | 231 this.syncStatus = syncStatus; |
232 }, | 232 }, |
233 | 233 |
234 /** @private */ | 234 /** @private */ |
235 onPictureTap_: function() { | 235 onPictureTap_: function() { |
236 // <if expr="chromeos"> | 236 // <if expr="chromeos"> |
237 settings.navigateTo(settings.Route.CHANGE_PICTURE); | 237 settings.navigateTo(settings.Route.CHANGE_PICTURE); |
238 // </if> | 238 // </if> |
239 // <if expr="not chromeos"> | 239 // <if expr="not chromeos"> |
240 settings.navigateTo(settings.Route.MANAGE_PROFILE); | 240 settings.navigateTo(settings.Route.MANAGE_PROFILE); |
241 // </if> | 241 // </if> |
242 }, | 242 }, |
243 | 243 |
244 // <if expr="not chromeos"> | 244 // <if expr="not chromeos"> |
245 /** @private */ | 245 /** @private */ |
246 onProfileNameTap_: function() { | 246 onProfileNameTap_: function() { |
247 settings.navigateTo(settings.Route.MANAGE_PROFILE); | 247 settings.navigateTo(settings.Route.MANAGE_PROFILE); |
248 }, | 248 }, |
249 // </if> | 249 // </if> |
250 | 250 |
251 /** @private */ | 251 /** @private */ |
252 onSigninTap_: function() { | 252 onSigninTap_: function() { |
253 this.syncBrowserProxy_.startSignIn(); | 253 this.syncBrowserProxy_.startSignIn(); |
254 }, | 254 }, |
255 | 255 |
256 /** @private */ | 256 /** @private */ |
257 onDisconnectClosed_: function() { | 257 onDisconnectClosed_: function() { |
258 this.showDisconnectDialog_ = false; | 258 this.showDisconnectDialog_ = false; |
259 cr.ui.focusWithoutInk(assert(this.$$('#disconnectButton'))); | 259 cr.ui.focusWithoutInk(assert(this.$$('#disconnectButton'))); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 assert(this.syncStatus.syncSystemEnabled); | 295 assert(this.syncStatus.syncSystemEnabled); |
296 | 296 |
297 if (!this.isSyncStatusActionable_(this.syncStatus)) | 297 if (!this.isSyncStatusActionable_(this.syncStatus)) |
298 return; | 298 return; |
299 | 299 |
300 switch (this.syncStatus.statusAction) { | 300 switch (this.syncStatus.statusAction) { |
301 case settings.StatusAction.REAUTHENTICATE: | 301 case settings.StatusAction.REAUTHENTICATE: |
302 this.syncBrowserProxy_.startSignIn(); | 302 this.syncBrowserProxy_.startSignIn(); |
303 break; | 303 break; |
304 case settings.StatusAction.SIGNOUT_AND_SIGNIN: | 304 case settings.StatusAction.SIGNOUT_AND_SIGNIN: |
305 // <if expr="chromeos"> | 305 // <if expr="chromeos"> |
306 this.syncBrowserProxy_.attemptUserExit(); | 306 this.syncBrowserProxy_.attemptUserExit(); |
307 // </if> | 307 // </if> |
308 // <if expr="not chromeos"> | 308 // <if expr="not chromeos"> |
309 if (this.syncStatus.domain) | 309 if (this.syncStatus.domain) |
310 settings.navigateTo(settings.Route.SIGN_OUT); | 310 settings.navigateTo(settings.Route.SIGN_OUT); |
311 else { | 311 else { |
312 // Silently sign the user out without deleting their profile and | 312 // Silently sign the user out without deleting their profile and |
313 // prompt them to sign back in. | 313 // prompt them to sign back in. |
314 this.syncBrowserProxy_.signOut(false); | 314 this.syncBrowserProxy_.signOut(false); |
315 this.syncBrowserProxy_.startSignIn(); | 315 this.syncBrowserProxy_.startSignIn(); |
316 } | 316 } |
317 // </if> | 317 // </if> |
318 break; | 318 break; |
319 case settings.StatusAction.UPGRADE_CLIENT: | 319 case settings.StatusAction.UPGRADE_CLIENT: |
320 settings.navigateTo(settings.Route.ABOUT); | 320 settings.navigateTo(settings.Route.ABOUT); |
321 break; | 321 break; |
322 case settings.StatusAction.ENTER_PASSPHRASE: | 322 case settings.StatusAction.ENTER_PASSPHRASE: |
323 case settings.StatusAction.CONFIRM_SYNC_SETTINGS: | 323 case settings.StatusAction.CONFIRM_SYNC_SETTINGS: |
324 case settings.StatusAction.NO_ACTION: | 324 case settings.StatusAction.NO_ACTION: |
325 default: | 325 default: |
326 settings.navigateTo(settings.Route.SYNC); | 326 settings.navigateTo(settings.Route.SYNC); |
327 } | 327 } |
328 }, | 328 }, |
329 | 329 |
330 // <if expr="chromeos"> | 330 // <if expr="chromeos"> |
331 /** | 331 /** |
332 * @param {!Event} e | 332 * @param {!Event} e |
333 * @private | 333 * @private |
334 */ | 334 */ |
335 onConfigureLockTap_: function(e) { | 335 onConfigureLockTap_: function(e) { |
336 // Navigating to the lock screen will always open the password prompt | 336 // Navigating to the lock screen will always open the password prompt |
337 // dialog, so prevent the end of the tap event to focus what is underneath | 337 // dialog, so prevent the end of the tap event to focus what is underneath |
338 // it, which takes focus from the dialog. | 338 // it, which takes focus from the dialog. |
339 e.preventDefault(); | 339 e.preventDefault(); |
340 settings.navigateTo(settings.Route.LOCK_SCREEN); | 340 settings.navigateTo(settings.Route.LOCK_SCREEN); |
341 }, | 341 }, |
342 // </if> | 342 // </if> |
343 | 343 |
344 /** @private */ | 344 /** @private */ |
345 onManageOtherPeople_: function() { | 345 onManageOtherPeople_: function() { |
346 // <if expr="not chromeos"> | 346 // <if expr="not chromeos"> |
347 this.syncBrowserProxy_.manageOtherPeople(); | 347 this.syncBrowserProxy_.manageOtherPeople(); |
348 // </if> | 348 // </if> |
349 // <if expr="chromeos"> | 349 // <if expr="chromeos"> |
350 settings.navigateTo(settings.Route.ACCOUNTS); | 350 settings.navigateTo(settings.Route.ACCOUNTS); |
351 // </if> | 351 // </if> |
352 }, | 352 }, |
353 | 353 |
354 // <if expr="not chromeos"> | 354 // <if expr="not chromeos"> |
355 /** | 355 /** |
356 * @private | 356 * @private |
357 * @param {string} domain | 357 * @param {string} domain |
358 * @return {string} | 358 * @return {string} |
359 */ | 359 */ |
360 getDomainHtml_: function(domain) { | 360 getDomainHtml_: function(domain) { |
361 var innerSpan = | 361 var innerSpan = '<span id="managed-by-domain-name">' + domain + '</span>'; |
362 '<span id="managed-by-domain-name">' + domain + '</span>'; | |
363 return loadTimeData.getStringF('domainManagedProfile', innerSpan); | 362 return loadTimeData.getStringF('domainManagedProfile', innerSpan); |
364 }, | 363 }, |
365 | 364 |
366 /** @private */ | 365 /** @private */ |
367 onImportDataTap_: function() { | 366 onImportDataTap_: function() { |
368 settings.navigateTo(settings.Route.IMPORT_DATA); | 367 settings.navigateTo(settings.Route.IMPORT_DATA); |
369 }, | 368 }, |
370 | 369 |
371 /** @private */ | 370 /** @private */ |
372 onImportDataDialogClosed_: function() { | 371 onImportDataDialogClosed_: function() { |
373 settings.navigateToPreviousRoute(); | 372 settings.navigateToPreviousRoute(); |
374 cr.ui.focusWithoutInk(assert(this.$.importDataDialogTrigger)); | 373 cr.ui.focusWithoutInk(assert(this.$.importDataDialogTrigger)); |
375 }, | 374 }, |
376 // </if> | 375 // </if> |
377 | 376 |
378 /** | 377 /** |
379 * @private | 378 * @private |
380 * @param {string} domain | 379 * @param {string} domain |
381 * @return {string} | 380 * @return {string} |
382 */ | 381 */ |
383 getDisconnectExplanationHtml_: function(domain) { | 382 getDisconnectExplanationHtml_: function(domain) { |
384 // <if expr="not chromeos"> | 383 // <if expr="not chromeos"> |
385 if (domain) { | 384 if (domain) { |
386 return loadTimeData.getStringF( | 385 return loadTimeData.getStringF( |
387 'syncDisconnectManagedProfileExplanation', | 386 'syncDisconnectManagedProfileExplanation', |
388 '<span id="managed-by-domain-name">' + domain + '</span>'); | 387 '<span id="managed-by-domain-name">' + domain + '</span>'); |
389 } | 388 } |
390 // </if> | 389 // </if> |
391 return loadTimeData.getString('syncDisconnectExplanation'); | 390 return loadTimeData.getString('syncDisconnectExplanation'); |
392 }, | 391 }, |
393 | 392 |
394 /** | 393 /** |
395 * @private | 394 * @private |
396 * @param {?settings.SyncStatus} syncStatus | 395 * @param {?settings.SyncStatus} syncStatus |
397 * @return {boolean} | 396 * @return {boolean} |
398 */ | 397 */ |
399 isAdvancedSyncSettingsVisible_: function(syncStatus) { | 398 isAdvancedSyncSettingsVisible_: function(syncStatus) { |
400 return !!syncStatus && !!syncStatus.signedIn && | 399 return !!syncStatus && !!syncStatus.signedIn && |
401 !!syncStatus.syncSystemEnabled; | 400 !!syncStatus.syncSystemEnabled; |
402 }, | 401 }, |
403 | 402 |
404 /** | 403 /** |
405 * @private | 404 * @private |
406 * @param {?settings.SyncStatus} syncStatus | 405 * @param {?settings.SyncStatus} syncStatus |
407 * @return {boolean} Whether an action can be taken with the sync status. sync | 406 * @return {boolean} Whether an action can be taken with the sync status. sync |
408 * status is actionable if sync is not managed and if there is a sync | 407 * status is actionable if sync is not managed and if there is a sync |
409 * error, there is an action associated with it. | 408 * error, there is an action associated with it. |
410 */ | 409 */ |
411 isSyncStatusActionable_: function(syncStatus) { | 410 isSyncStatusActionable_: function(syncStatus) { |
412 return !!syncStatus && !syncStatus.managed && (!syncStatus.hasError || | 411 return !!syncStatus && !syncStatus.managed && |
413 syncStatus.statusAction != settings.StatusAction.NO_ACTION); | 412 (!syncStatus.hasError || |
| 413 syncStatus.statusAction != settings.StatusAction.NO_ACTION); |
414 }, | 414 }, |
415 | 415 |
416 /** | 416 /** |
417 * @private | 417 * @private |
418 * @param {?settings.SyncStatus} syncStatus | 418 * @param {?settings.SyncStatus} syncStatus |
419 * @return {string} | 419 * @return {string} |
420 */ | 420 */ |
421 getSyncIcon_: function(syncStatus) { | 421 getSyncIcon_: function(syncStatus) { |
422 if (!syncStatus) | 422 if (!syncStatus) |
423 return ''; | 423 return ''; |
(...skipping 30 matching lines...) Expand all Loading... |
454 | 454 |
455 /** | 455 /** |
456 * @param {!settings.SyncStatus} syncStatus | 456 * @param {!settings.SyncStatus} syncStatus |
457 * @return {boolean} Whether to show the "Sign in to Chrome" button. | 457 * @return {boolean} Whether to show the "Sign in to Chrome" button. |
458 * @private | 458 * @private |
459 */ | 459 */ |
460 showSignin_: function(syncStatus) { | 460 showSignin_: function(syncStatus) { |
461 return !!syncStatus.signinAllowed && !syncStatus.signedIn; | 461 return !!syncStatus.signinAllowed && !syncStatus.signedIn; |
462 }, | 462 }, |
463 }); | 463 }); |
OLD | NEW |