Summary: | REGRESSION (r48698): Cannot enter text in Facebook message content field | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | mitz | ||||
Component: | Evangelism | Assignee: | Nobody <webkit-unassigned> | ||||
Status: | RESOLVED WONTFIX | ||||||
Severity: | Critical | CC: | adele, dhamlin, genzuk, marcel, mathewsb, medicatingx742, mrowe, mtrillo, mvernal, pete, poweruser.webkit, sebastianbf, tkent, vicki | ||||
Priority: | P1 | Keywords: | InRadar, Regression | ||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | Mac | ||||||
OS: | OS X 10.6 | ||||||
URL: | http://www.facebook.com/ | ||||||
Attachments: |
|
Description
mitz
2009-09-28 10:50:17 PDT
I have confirmed I couldn't type anything into a textarea. However, this <textarea> element actually had maxlength="0" according to the inspector. So, this is an expected behavior and a Facebook's bug. What should we do in such case? > However, this <textarea> element actually had maxlength="0" according to the
> inspector. So, this is an expected behavior and a Facebook's bug.
It doesn't have maxlength="0" in an HTML text. The code seems to call "textarea.maxLength = 0" and it makes a maxlength="0" attribute.
I took a look at a Facebook JS code. I guess TextInputControl class in it does something like the following: textarea.maxLength = textarea.maxLength; If maxlength= HTML attribute is missing, .maxLength is 0 according to older HTML5 draft, so the new .maxLength becomes 0, of course. Maybe this bug will be fixed if Bug#29796 is fixed. I'll check it soon. (In reply to comment #4) > I took a look at a Facebook JS code. > I guess TextInputControl class in it does something like the following: > textarea.maxLength = textarea.maxLength; My guess was wrong. Returning -1 for .maxLength didn't help. I understand the Facebook code.
In the definition of TextInpuTcontrol.prototype:
setMaxLength:function(maxlength){
this.maxLength=maxlength;
this.getRoot().maxLength=this.maxLength||null;
return this;
},
This code is called by UIComposer.prototype.initializeTextarea() like:
initializeTextarea:function(maxLength,initialHeight){
new TextAreaControl(this.input)
.setMaxLength(maxLength)
.setOriginalHeight(initialHeight)
.setAutogrow(true)
.onfocus();
this.input.onfocus='';
},
where the maxLength parameter is 0.
> this.getRoot().maxLength=this.maxLength||null;
this.getRoot() is a <textarea> element. In the case of maxLength==0, null is set. null is converted to 0. So textarea.maxLength becomes 0.
I reported this issue to Facebook. I just CCd all of the facebook.com folks with Bugzilla accounts on this bug to hopefully get this some attention. If this requires a fix on the Facebook side it would be nice to get an ETA for the fix. *** Bug 29922 has been marked as a duplicate of this bug. *** Created attachment 40410 [details]
Reduction
I've attached a reduction that demonstrates that Facebook is relying on behavior that works in Firefox but is incorrect per the HTML 5 specification.
I want to confirm this bug. Unable to insert text in response box on facebook's "inbox" I've fixed this in our trunk; the fix will go out on Tuesday afternoon. Thanks for the info, Ben! *** Bug 30046 has been marked as a duplicate of this bug. *** *** Bug 30056 has been marked as a duplicate of this bug. *** *** Bug 30058 has been marked as a duplicate of this bug. *** I confirmed Facebook's code has no problem now. |