tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }