Closed Bug 640636 Opened 9 years ago Closed 9 years ago

jQuery removeAttr('size') not working correctly in Firefox 4

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla5
Tracking Status
blocking2.0 --- .x+

People

(Reporter: rgwalke2, Assigned: mounir)

References

()

Details

(Keywords: regression, Whiteboard: [fixed by bug 639175])

User-Agent:       Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0
Build Identifier: Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0

Details of this bug can be seen here on jQuery's bug tracker:

http://bugs.jquery.com/ticket/8117

Seeing as how this is only affecting Firefox 4 and not IE, Chrome, Opera, or older versions of Firefox, I think the bug is likely to be with Firefox 4 and not jQuery itself, despite the bug being filed over there. I ran across this problem using the asp.Net AJAX toolkit - took some hunting to figure out this is the base of the problem.

For me, this problem happens using the AJAX Asyncfileupload control with Updatepanels. A hidden field and "size" are used for setting textboxes/button placement when Asyncfileupload is generated in Firefox. Worked fine in Firefox 3.5/6. I just started testing FF4 with Beta 12; was not in B12 or new RC1.

Thanks to Laysoft for filing the bug over there - I don't know what conclusion I would have reached if I didn't have his filing to compare. I think it should at least be reviewed and inspected to see if an array is getting a bunk value or something.

Reproducible: Always

Steps to Reproduce:
1. Go to link provided
2. Click removeAttribute('size') button and observe that it works
3. Refresh page
4. Click removeAttr('size') and observe the error in console
Actual Results:  
Error: uncaught exception: [Exception... "Index or size is negative or greater than the allowed amount"  code: "1" nsresult: "0x80530001 (NS_ERROR_DOM_INDEX_SIZE_ERR)"  location: "http://code.jquery.com/jquery-1.5.js Line: 2015"]

Expected Results:  
'Size' is removed from the <select>
Correction for the above statement:

I just started testing FF4 with Beta 12; was not in B12 or new RC1.

Should be:

I just started testing FF4 with Beta 12; was not _working_ in B12 or in new RC1.

Made it sound like it was working fine in Beta 12 when it was not, whoops!
Status: UNCONFIRMED → NEW
blocking2.0: --- → ?
Component: General → DOM: Core & HTML
Ever confirmed: true
OS: Windows 7 → All
Product: Firefox → Core
QA Contact: general → general
Hardware: x86 → All
Version: unspecified → Trunk
This seems to be the same issue as bug 639175. The patch in it should fix it.
Assignee: nobody → mounir.lamouri
Blocks: 551846
Keywords: regression
Whiteboard: [should be fixed by bug 639175]
So, what happens is that removeAttr calls: |jQuery.attr( this, name, "" )| and |this.removeAttribute( name )|. I don't understand why the first call is done (for node elements)... Anyway, this is calling element[name] = "" which becomes element[name] = 0 and fails...
Would be good to add this sort of thing to the jquery regression tests... we've had this behavior for about 10 months now!
Mounir, thanks for linking these bugs together (and notifying the jQuery bug
tracker); I had done some research and didn't see anything related. Looks like
this is being addressed and I'm glad to see it is already being resolved, even
if it might be stuck with a .x release.
blocking2.0: ? → .x+
This should be fixed in current trunk.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Whiteboard: [should be fixed by bug 639175] → [fixed by bug 639175]
Target Milestone: --- → mozilla2.2
It should be fixed in Firefox 4.0.1. I guess jQuery would not have to fix that then.
You need to log in before you can comment on or make changes to this bug.