Option key shouldn't reveal password when editing a different 1P text field

Options
rbondi
rbondi
Community Member

There is already a similar closed thread from 2017 with the title Option key shouldn't reveal password when used as part of a combined keyboard shortcut.

Nothing has been done about this problem for two years, and the thread doesn't say why AFAICT.

In the age of Zoom, with shared screens, this problem has become completely unacceptable and needs to be fixed ASAP.

(Even without Zoom, holding down modifier keys in one field should have no effect whatsoever on other fields: that's just a basic UI expectation of any reasonable user.)

To reproduce

  1. Be in a Zoom conference with a shared screen while presenting.
  2. In your presentation, you suddenly need to log in to a web site https://foo.org. You have a number of choices:

    A. Stop sharing the whole screen, log in, turn on sharing again. This is many clicks and makes you look like an idiot while everybody is waiting for you.
    B. Stop sharing the whole screen, turn on "tab" or "window" sharing instead so that people can't see your 1P window when you launch 1P. This is also many clicks, makes you look like an idiot, and isn't an option if your presentation requires showing multiple windows.
    C. Since 1P doesn't show passwords, launch 1P to copy/paste your login and password, thereby minimally interrupting your presentation.

  3. Decide for option C.

  4. Open 1P while everyone is watching.
  5. Ctrl-F to get the foo.org entry
  6. As you are about to click the website field, you notice that instead of being https://www.foo.org, it is https://login43-emailcampaign.foo.org/confirm-email/register-user/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwdXJwb3NlIjoiZW1haWwtdmVyaWZpY2F0aW9uIiwiZW1haWwiOiJ0ZWFmaXNoQGhleS5jb20iLCJwYXJ0bmVyIjoic3RhbmR1cGFtZXJpY2EiLCJkZWZhdWx0RGlzdHJpY3RJZCI6IiIsInVzZXJNZXNzYWdlSWQiOjIwOTQ5NTMsImlhdCI6MTYwMDg3Nzc3MywiZXhwIjoxNjAwODgxMzczfQ.FO2P1uAqIjODRJUB643tDpXx5CXQrFhyAR_s-41HJ-k. You need to fix that before you can click the website field.
  7. Click Edit in 1P.
  8. Click in the website field to edit it. The cursor is in front of the "h" of "https:".
  9. Press Option + right arrow to advance word-by-word to the part of the field you want to delete, then Option + Shift + right arrow to select everything you want to delete.

Expected Result

You can edit the website field without changing anything else in the 1P window.

Actual Result

Everybody in the Zoom conference can see your password while you are holding down the option key. They all have plenty of time to do e.g. Command-Shift-3 to grab a screenshot showing your password.


1Password Version: Not Provided
Extension Version: Not Provided
OS Version: Not Provided
Sync Type: Not Provided

Comments

  • rbondi
    rbondi
    Community Member
    Options

    1P version: 7.6
    Extension Version: n/a
    OS Version: macOS 10.15.7
    Sync Type: n/a

  • Ben
    Ben
    edited September 2020
    Options

    Hey @rbondi

    We discussed it back in 2017 when it was originally brought up, but it didn't go anywhere beyond discussion. I'll bring the subject up again and see if we can get some traction. :+1: For now I think A is the option I'd personally choose, and if people think of me as an idiot for not showing my screen while interacting with my password manager I think that is on them not me. ;) That said there are also other valid reasons to consider a way to turn this off.

    Ben

  • rbondi
    rbondi
    Community Member
    Options

    Thank you Ben.

    It seems to me this should be a simple fix, of adding the parameter(s) and code below to your existing function that unhides passwords, which in my pseudocode I'm assuming is named revealPassword:

    /**
    * In the 1P app window, reveal the value of a specific password-type field.
    * 
    * @userContext context object with information about current user's state
    * @fieldToReveal the field whose value is to be revealed
    */
    function revealPassword(userContext, fieldToReveal) {
    
      // Existing code to check for invalid arguments remains unchanged
      ...
    
       // New code to check for conditions not to reveal the password
    
       // Leave unrevealed if any other modifier key pressed
       BitMap modifierKeys = userContext.getModifierKeysPressed();
       if ((modifierKeys OR OPTION_KEY) > 0) {
         return;
       }
    
       // Leave unrevealed if user is editing a field other than fieldToReveal
       if (userContext.isEditingAField()) {
         if (userContext.fieldBeingEdited() != fieldToReveal) {
           return;
         }
      }
    
      // Rest of function's code remains unchanged.
    
    }
    
  • You're welcome. I don't think the challenge / any resistance has ever been the difficulty of implementing the change. :)

    Ben

This discussion has been closed.