Opened 6 years ago

Closed 6 years ago

#9512 closed bug (cantfix)

Dialog: Password input is slow in Safari/Chrome

Reported by: manovotny Owned by:
Priority: minor Milestone: none
Component: ui.dialog Version: 1.10.3
Keywords: Cc:
Blocked by: Blocking:

Description

Example

http://codepen.io/manovotny/pen/wxfHD

Steps To Reproduce

  1. Have a table with a lot of data (the example above has 1000 rows).
  2. Have a jQuery UI dialog with a password input.
  3. Try typing in a password and then try deleting it one character at a time.
  4. When trying to remove last character, the browser will hang for 6 - 12 seconds.

Notes / Observations

  • Tried a few jQuery / jQuery UI version combinations. Seem to have been an issue for a while and still is even in the latest versions. The combinations I tried are in HTML comments in my example.
  • The less rows you have in the table, the shorter the hang is. The more rows you have in the table, the longer the hang is.
  • A password input works just fine when not in the dialog (aka. no hang or delay of any kind).
  • Issue is only found in WebKit browsers (ie. Chrome and Safari). Firefox and IE work properly.

Versions

  • Combinations of jQuery / jQuery UI (see comments in example):
    • jQuery v1.8.3 and jQuery UI v1.9.2
    • jQuery v1.9.1 and jQuery UI v1.10.3
    • jQuery v1.10.2 and jQuery UI v1.10.3
  • Affects browsers:
    • Latest Chrome v29.0.1547.57.
    • Latest Safari v6.0.5.
  • Affects operating systems:
    • Mac 10.7 and 10.8
    • Windows 7 and 8

Fix / Patch

Our team did try to dig into this a bit, but came up empty handed. :(

Change History (3)

comment:1 Changed 6 years ago by Scott González

Status: newopen
Summary: Using a password input in a jQuery UI dialog causes browser to hangDialog: Password input is slow in Safari/Chrome

That's certainly odd. It sounds like a WebKit/Blink bug, but we'll see if we can narrow this down some more.

comment:2 Changed 6 years ago by newz2000

I spent an hour banging my head on the desk about this yesterday. I tested on Mac OS 10.8 with Chrome 28.0.1500.95, the latest Canary, Safari 6.0.5 (8536.30.1) and Safari 7 on Mavericks. All of them have the same behavior.

I feel very strongly that it is a problem with a rendering engine, but it is weird that it only happens in a jQuery UI dialog. I tested injecting it into the page directly and cannot reproduce the problem. But if it's in a dialog it happens.

I've run the Javascript profiler in Chrome 28.0.1500.95 and Safari 6.0.5 (8536.30.1) and found that the time is not spent in any Javascript but in <program>, which presumably is the browser itself.

I'm glad someone was able to make a test case for it because I was willing to throw my hands up and tell people to just use IE. (just kidding, I wouldn't do that)

comment:3 Changed 6 years ago by Scott González

Resolution: cantfix
Status: openclosed

This is actually not caused by jQuery UI. You can see the exact same delay just by moving the password field to the end of the body: http://codepen.io/anon/pen/jvxoi

Note: See TracTickets for help on using tickets.