browser_454908.js (1956B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 if (gFissionBrowser) { 7 addCoopTask( 8 "browser_454908_sample.html", 9 test_dont_save_passwords, 10 HTTPSROOT 11 ); 12 } 13 addNonCoopTask("browser_454908_sample.html", test_dont_save_passwords, ROOT); 14 addNonCoopTask( 15 "browser_454908_sample.html", 16 test_dont_save_passwords, 17 HTTPROOT 18 ); 19 addNonCoopTask( 20 "browser_454908_sample.html", 21 test_dont_save_passwords, 22 HTTPSROOT 23 ); 24 25 const PASS = "pwd-" + Math.random(); 26 27 /** 28 * Bug 454908 - Don't save/restore values of password fields. 29 */ 30 async function test_dont_save_passwords(aURL) { 31 // Make sure we do save form data. 32 Services.prefs.clearUserPref("browser.sessionstore.privacy_level"); 33 34 // Add a tab with a password field. 35 let tab = BrowserTestUtils.addTab(gBrowser, aURL); 36 let browser = tab.linkedBrowser; 37 await promiseBrowserLoaded(browser); 38 39 // Fill in some values. 40 let usernameValue = "User " + Math.random(); 41 await setPropertyOfFormField(browser, "#username", "value", usernameValue); 42 await setPropertyOfFormField(browser, "#passwd", "value", PASS); 43 44 // Close and restore the tab. 45 await promiseRemoveTabAndSessionState(tab); 46 tab = ss.undoCloseTab(window, 0); 47 browser = tab.linkedBrowser; 48 await promiseTabRestored(tab); 49 50 // Check that password fields aren't saved/restored. 51 let username = await getPropertyOfFormField(browser, "#username", "value"); 52 is(username, usernameValue, "username was saved/restored"); 53 let passwd = await getPropertyOfFormField(browser, "#passwd", "value"); 54 is(passwd, "", "password wasn't saved/restored"); 55 56 // Write to disk and read our file. 57 await forceSaveState(); 58 await promiseForEachSessionRestoreFile((state, key) => 59 // Ensure that we have not saved our password. 60 ok(!state.includes(PASS), "password has not been written to file " + key) 61 ); 62 63 // Cleanup. 64 gBrowser.removeTab(tab); 65 }