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

Side by Side Diff: chrome/browser/resources/settings/people_page/people_page.js

Issue 2946563002: Run clang-format on .js files in c/b/r/settings (Closed)
Patch Set: dschuyler@ review Created 3 years, 6 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
OLDNEW
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
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
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
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 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698