3 <!-- This Source Code Form is subject to the terms of the Mozilla Public
4 - License, v. 2.0. If a copy of the MPL was not distributed with this
5 - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
7 <?xml-stylesheet href=
"chrome://global/skin/" type=
"text/css"?>
8 <?xml-stylesheet href=
"chrome://browser/skin/syncSetup.css" type=
"text/css"?>
9 <?xml-stylesheet href=
"chrome://browser/skin/syncCommon.css" type=
"text/css"?>
12 <!ENTITY % brandDTD SYSTEM
"chrome://branding/locale/brand.dtd">
13 <!ENTITY % syncBrandDTD SYSTEM
"chrome://browser/locale/syncBrand.dtd">
14 <!ENTITY % syncSetupDTD SYSTEM
"chrome://browser/locale/syncSetup.dtd">
20 title=
"&accountSetupTitle.label;"
21 windowtype=
"Weave:AccountSetup"
22 persist=
"screenX screenY"
23 xmlns=
"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
24 xmlns:
html=
"http://www.w3.org/1999/xhtml"
25 onwizardnext=
"return gSyncSetup.onWizardAdvance()"
26 onwizardback=
"return gSyncSetup.onWizardBack()"
27 onwizardcancel=
"gSyncSetup.onWizardCancel()"
28 onload=
"gSyncSetup.init()">
30 <script type=
"application/javascript"
31 src=
"chrome://browser/content/sync/setup.js"/>
32 <script type=
"application/javascript"
33 src=
"chrome://browser/content/sync/utils.js"/>
34 <script type=
"application/javascript"
35 src=
"chrome://browser/content/utilityOverlay.js"/>
36 <script type=
"application/javascript"
37 src=
"chrome://global/content/printUtils.js"/>
39 <wizardpage id=
"addDevicePage"
40 label=
"&pairDevice.title.label;"
41 onpageshow=
"gSyncSetup.onPageShow()">
43 &pairDevice.dialog.description.label;
44 <label class=
"text-link"
45 value=
"&addDevice.showMeHow.label;"
46 href=
"https://services.mozilla.com/sync/help/add-device"/>
48 <separator class=
"groove-thin"/>
50 &addDevice.dialog.enterCode.label;
52 <separator class=
"groove-thin"/>
56 oninput=
"gSyncSetup.onPINInput(this);"
57 onfocus=
"this.select();"
61 oninput=
"gSyncSetup.onPINInput(this);"
62 onfocus=
"this.select();"
66 oninput=
"gSyncSetup.onPINInput(this);"
67 onfocus=
"this.select();"
70 <separator class=
"groove-thin"/>
71 <vbox id=
"pairDeviceThrobber" align=
"center" hidden=
"true">
74 <hbox id=
"pairDeviceErrorRow" pack=
"center" hidden=
"true">
75 <image class=
"statusIcon" status=
"error"/>
77 value=
"&addDevice.dialog.tryAgain.label;"/>
81 <wizardpage id=
"pickSetupType"
82 label=
"&syncBrand.fullName.label;"
83 onpageshow=
"gSyncSetup.onPageShow()">
84 <vbox align=
"center" flex=
"1">
85 <description style=
"padding: 0 7em;">
86 &setup.pickSetupType.description2;
89 <button id=
"newAccount"
90 class=
"accountChoiceButton"
91 label=
"&button.createNewAccount.label;"
92 oncommand=
"gSyncSetup.startNewAccountSetup()"
96 <separator class=
"groove"/>
97 <vbox align=
"center" flex=
"1">
99 <button id=
"existingAccount"
100 class=
"accountChoiceButton"
101 label=
"&button.haveAccount.label;"
102 oncommand=
"gSyncSetup.useExistingAccount()"/>
107 <wizardpage label=
"&setup.newAccountDetailsPage.title.label;"
109 onextra1=
"gSyncSetup.onSyncOptions()"
110 onpageshow=
"gSyncSetup.onPageShow();">
114 <column class=
"inputColumn" flex=
"1"/>
117 <row id=
"emailRow" align=
"center">
118 <label value=
"&setup.emailAddress.label;"
119 accesskey=
"&setup.emailAddress.accesskey;"
120 control=
"weaveEmail"/>
121 <textbox id=
"weaveEmail"
122 oninput=
"gSyncSetup.onEmailInput()"/>
124 <row id=
"emailFeedbackRow" align=
"center" hidden=
"true">
127 <image class=
"statusIcon"/>
128 <label class=
"status" value=
" "/>
131 <row id=
"passwordRow" align=
"center">
132 <label value=
"&setup.choosePassword.label;"
133 accesskey=
"&setup.choosePassword.accesskey;"
134 control=
"weavePassword"/>
135 <textbox id=
"weavePassword"
137 onchange=
"gSyncSetup.onPasswordChange()"/>
139 <row id=
"confirmRow" align=
"center">
140 <label value=
"&setup.confirmPassword.label;"
141 accesskey=
"&setup.confirmPassword.accesskey;"
142 control=
"weavePasswordConfirm"/>
143 <textbox id=
"weavePasswordConfirm"
145 onchange=
"gSyncSetup.onPasswordChange()"/>
147 <row id=
"passwordFeedbackRow" align=
"center" hidden=
"true">
150 <image class=
"statusIcon"/>
151 <label class=
"status" value=
" "/>
155 <label control=
"server"
156 value=
"&server.label;"/>
157 <menulist id=
"server"
158 oncommand=
"gSyncSetup.onServerCommand()"
159 oninput=
"gSyncSetup.onServerInput()">
161 <menuitem label=
"&serverType.default.label;"
163 <menuitem label=
"&serverType.custom2.label;"
168 <row id=
"serverFeedbackRow" align=
"center" hidden=
"true">
171 <image class=
"statusIcon"/>
172 <label class=
"status" value=
" "/>
177 <row id=
"metroRow" align=
"center">
179 <hbox align=
"center">
180 <checkbox label=
"&setup.setupMetro.label;"
181 accesskey=
"&setup.setupMetro.accesskey;"
182 control=
"weavePasswordConfirm"
183 id=
"metroSetupCheckbox"
189 <row id=
"TOSRow" align=
"center">
191 <hbox align=
"center">
193 accesskey=
"&setup.tosAgree1.accesskey;"
194 oncommand=
"this.focus(); gSyncSetup.checkFields();"/>
195 <description id=
"tosDesc"
197 onclick=
"document.getElementById('tos').focus();
198 document.getElementById('tos').click()">
199 &setup.tosAgree1.label;
200 <label class=
"text-link inline-link"
201 onclick=
"event.stopPropagation();gSyncUtils.openToS();">
202 &setup.tosLink.label;
204 &setup.tosAgree2.label;
205 <label class=
"text-link inline-link"
206 onclick=
"event.stopPropagation();gSyncUtils.openPrivacyPolicy();">
209 &setup.tosAgree3.label;
216 <vbox flex=
"1" align=
"center">
217 <browser height=
"150"
221 disablehistory=
"true"/>
223 <hbox id=
"captchaFeedback">
224 <image class=
"statusIcon"/>
225 <label class=
"status" value=
" "/>
230 <wizardpage id=
"addDevice"
231 label=
"&pairDevice.title.label;"
232 onextra1=
"gSyncSetup.onSyncOptions()"
233 onpageshow=
"gSyncSetup.onPageShow()">
235 &pairDevice.setup.description.label;
236 <label class=
"text-link"
237 value=
"&addDevice.showMeHow.label;"
238 href=
"https://services.mozilla.com/sync/help/easy-setup"/>
240 <label value=
"&addDevice.setup.enterCode.label;"
241 control=
"easySetupPIN1"/>
243 <vbox align=
"center" flex=
"1">
244 <textbox id=
"easySetupPIN1"
249 <textbox id=
"easySetupPIN2"
254 <textbox id=
"easySetupPIN3"
261 <label class=
"text-link"
262 value=
"&addDevice.dontHaveDevice.label;"
263 onclick=
"gSyncSetup.manualSetup();"/>
266 <wizardpage id=
"existingAccount"
267 label=
"&setup.signInPage.title.label;"
268 onextra1=
"gSyncSetup.onSyncOptions()"
269 onpageshow=
"gSyncSetup.onPageShow()">
273 <column class=
"inputColumn" flex=
"1"/>
276 <row id=
"existingAccountRow" align=
"center">
277 <label id=
"existingAccountLabel"
278 value=
"&signIn.account2.label;"
279 accesskey=
"&signIn.account2.accesskey;"
280 control=
"existingAccount"/>
281 <textbox id=
"existingAccountName"
282 oninput=
"gSyncSetup.checkFields(event)"
283 onchange=
"gSyncSetup.checkFields(event)"/>
285 <row id=
"existingPasswordRow" align=
"center">
286 <label id=
"existingPasswordLabel"
287 value=
"&signIn.password.label;"
288 accesskey=
"&signIn.password.accesskey;"
289 control=
"existingPassword"/>
290 <textbox id=
"existingPassword"
292 onkeyup=
"gSyncSetup.checkFields(event)"
293 onchange=
"gSyncSetup.checkFields(event)"/>
295 <row id=
"existingPasswordFeedbackRow" align=
"center" hidden=
"true">
298 <image class=
"statusIcon"/>
299 <label class=
"status" value=
" "/>
304 <label class=
"text-link"
305 value=
"&resetPassword.label;"
306 onclick=
"gSyncUtils.resetPassword(); return false;"/>
309 <label control=
"existingServer"
310 value=
"&server.label;"/>
311 <menulist id=
"existingServer"
312 oncommand=
"gSyncSetup.onExistingServerCommand()"
313 oninput=
"gSyncSetup.onExistingServerInput()">
315 <menuitem label=
"&serverType.default.label;"
317 <menuitem label=
"&serverType.custom2.label;"
322 <row id=
"existingServerFeedbackRow" align=
"center" hidden=
"true">
325 <image class=
"statusIcon"/>
327 <label class=
"status" value=
" "/>
335 <label id=
"existingPassphraseLabel"
336 value=
"&signIn.recoveryKey.label;"
337 accesskey=
"&signIn.recoveryKey.accesskey;"
338 control=
"existingPassphrase"/>
339 <textbox id=
"existingPassphrase"
340 oninput=
"gSyncSetup.checkFields()"/>
341 <hbox id=
"login-throbber" hidden=
"true">
343 <label value=
"&verifying.label;"/>
345 <vbox align=
"left" id=
"existingPassphraseFeedbackRow" hidden=
"true">
347 <image class=
"statusIcon"/>
348 <label class=
"status" value=
" "/>
353 <vbox id=
"passphraseHelpBox">
355 &existingRecoveryKey.description;
356 <label class=
"text-link"
357 href=
"https://services.mozilla.com/sync/help/manual-setup">
358 &addDevice.showMeHow.label;
360 <spacer id=
"passphraseHelpSpacer"/>
361 <label class=
"text-link"
362 onclick=
"gSyncSetup.resetPassphrase(); return false;">
369 <wizardpage id=
"syncOptionsPage"
370 label=
"&setup.optionsPage.title;"
371 onpageshow=
"gSyncSetup.onPageShow()">
372 <groupbox id=
"syncOptions">
376 <column flex=
"1" style=
"-moz-margin-end: 2px"/>
380 <label value=
"&syncDeviceName.label;"
381 accesskey=
"&syncDeviceName.accesskey;"
382 control=
"syncComputerName"/>
383 <textbox id=
"syncComputerName" flex=
"1"
384 onchange=
"gSyncUtils.changeName(this)"/>
387 <label value=
"&syncMy.label;" />
389 <checkbox label=
"&engine.addons.label;"
390 accesskey=
"&engine.addons.accesskey;"
393 <checkbox label=
"&engine.bookmarks.label;"
394 accesskey=
"&engine.bookmarks.accesskey;"
395 id=
"engine.bookmarks"
397 <checkbox label=
"&engine.passwords.label;"
398 accesskey=
"&engine.passwords.accesskey;"
399 id=
"engine.passwords"
401 <checkbox label=
"&engine.prefs.label;"
402 accesskey=
"&engine.prefs.accesskey;"
405 <checkbox label=
"&engine.history.label;"
406 accesskey=
"&engine.history.accesskey;"
409 <checkbox label=
"&engine.tabs.label;"
410 accesskey=
"&engine.tabs.accesskey;"
419 <groupbox id=
"mergeOptions">
420 <radiogroup id=
"mergeChoiceRadio" pack=
"start">
428 <radio id=
"resetClient"
429 class=
"mergeChoiceButton"
430 aria-labelledby=
"resetClientLabel"/>
431 <label id=
"resetClientLabel" control=
"resetClient">
432 <html:strong>&choice2.merge.recommended.label;
</html:strong>
433 &choice2a.merge.main.label;
437 <radio id=
"wipeClient"
438 class=
"mergeChoiceButton"
439 aria-labelledby=
"wipeClientLabel"/>
440 <label id=
"wipeClientLabel"
441 control=
"wipeClient">
442 &choice2a.client.main.label;
446 <radio id=
"wipeRemote"
447 class=
"mergeChoiceButton"
448 aria-labelledby=
"wipeRemoteLabel"/>
449 <label id=
"wipeRemoteLabel"
450 control=
"wipeRemote">
451 &choice2a.server.main.label;
460 <wizardpage id=
"syncOptionsConfirm"
461 label=
"&setup.optionsConfirmPage.title;"
462 onpageshow=
"gSyncSetup.onPageShow()">
463 <deck id=
"chosenActionDeck">
464 <vbox id=
"chosenActionMerge" class=
"confirm">
465 <description class=
"normal">
466 &confirm.merge2.label;
469 <vbox id=
"chosenActionWipeClient" class=
"confirm">
470 <description class=
"normal">
471 &confirm.client3.label;
473 <separator class=
"thin"/>
475 <label class=
"data indent" id=
"bookmarkCount"/>
476 <label class=
"data indent" id=
"historyCount"/>
477 <label class=
"data indent" id=
"passwordCount"/>
478 <label class=
"data indent" id=
"addonCount"/>
479 <label class=
"data indent" id=
"prefsWipe"
480 value=
"&engine.prefs.label;"/>
482 <separator class=
"thin"/>
483 <description class=
"normal">
484 &confirm.client2.moreinfo.label;
487 <vbox id=
"chosenActionWipeServer" class=
"confirm">
488 <description class=
"normal">
489 &confirm.server2.label;
491 <separator class=
"thin"/>
492 <vbox id=
"clientList">
497 <!-- In terms of the wizard flow shown to the user, the 'syncOptionsConfirm'
498 page above is not the last wizard page. To prevent the wizard binding from
499 assuming that it is, we're inserting this dummy page here. This also means
500 that the wizard needs to always be closed manually via wizardFinish(). -->