Closed
Bug 148098
Opened 23 years ago
Closed 19 years ago
Switch to native text widget for HTML text fields
Categories
(Camino Graveyard :: HTML Form Controls, defect)
Tracking
(Not tracked)
VERIFIED
WONTFIX
People
(Reporter: jeff, Assigned: mikepinkerton)
References
Details
One very glaring problem in chimera right now is the text feilds in HTML forms.
When typing in text feilds it can not keep up with someone of only moderate
typing speed. The problem seems to get worse when there is more text in a feild.
This bug has been apparent since quartz was introduced, thus leading me to
beleive the problem lies there.
Although this isn't a crasher or anything I filed it as major because it really
affects the usability of the app, especially for those who do a lot of text
editing in the browser.
Comment 2•23 years ago
|
||
I personally think we should implement native text fields (just as we did with
scrollbars). Then we could also dump the entire editor dylib and make the
download even smaller.
Comment 3•23 years ago
|
||
This would also eliminate the litany of text field bugs, wouldn't it?
bug 108120
bug 108125
bug 16203
Might it also provide for the simple implementation of spell-checking?
Comment 2 seems like it would be a big improvement.
Updated•23 years ago
|
Status: NEW → ASSIGNED
Summary: HTML text feilds need optimization → HTML text fields need optimization
I am pretty sure that with very little work spell checking is available to all
Cocoa NSTextViews.
Comment 5•22 years ago
|
||
*** Bug 153417 has been marked as a duplicate of this bug. ***
Comment 6•22 years ago
|
||
-->Future for now; this won't be a trivial task like scrollbars
we have to worry about commands and other things that make this a bit more messy
Keywords: helpwanted
Summary: HTML text fields need optimization → HTML text fields need optimization (native text widget)
Target Milestone: --- → Future
Comment 7•22 years ago
|
||
Short of replacing text entry fields with native controls, one optimization you
could do would be to have it not invalidate the entire text entry region (it
paints the whole thing for every character you type - this is slow). Typical
behavior is to limit repainting to the current line.
I noticed this after reading 151344 - "poor javascript & rollover performance"
and breaking out Quartz Debug (comes with the OS X developer tools) to see if
this was part of the text entry problem. You can see other weird stuff going on
with Chimera with QD running, but those aren't relevant to this bug.
The text entry field also has an "appears on-demand, with text reflow" scroll
bar rather than the normal disabled scrollbar thing. I don't know, probably a UI
issue but reflowing text is slower than not doing it so it has to have some
impact :).
Last but not least is deleting text with the delete key. This is the slowest
aspect of text entry and you can often see an extra cursor at the left margin of
the box while holding the key down - something strange is obviously going on here.
Would also help bug 151110 since NSTextView already implements NSTextInput.
AFAIU, the only drawback (besides the required work of course) for this change is that
some CSS functionality is broken. However, compared to the many many things this
would fix (not to mention that we would behave exacty like other Cocoa apps regarding
text input), this is a minor loss. Esp. since I haven't actually ever seen a page that tries to
layer stuff over a text field (I am curious, can somebody point me to an example URL?)
Here are some of the bugs that ericlob@cris.com pointed out earlier:
Bug 151682: ResizeView() invalidates too much when typing in a text widget
Bug 151882: Pressing backspace in a text field makes the cursor flash in
the beginning of the field
Bug 151882 was actually a regression caused by me when I landed the perf fixes
for bug 141900 ... specifically, the changes that made text widgets use async
reflow and paints. The problem is that the caret is shown/hidden in several
places (editor, layout, etc) several times *synchronously* and at times the
frame data it uses to draw our out of sync because the reflow hasn't happend.
I've started trying to rework the caret hiding/drawing code as part of bug
54153, but I've been sidetracked by other bugs.
I've mentioned to both sfraser and brade that my text widget async reflow/paint
perf changes can be disabled by simply commenting out the line in
mozilla/layout/html/forms/src/TextControlFrame.cpp (formerly
nsGfxTextControlFrame2.cpp) that adds the eEditorUseAsyncUpdatesMask to editorFlags.
Comment 10•22 years ago
|
||
*** Bug 167020 has been marked as a duplicate of this bug. ***
Comment 11•22 years ago
|
||
Reassigning to HTML Form Controls.
Assignee: brade → bryner
Status: ASSIGNED → NEW
Component: General → HTML Form Controls
Comment 13•22 years ago
|
||
keeping brade on the cc list after the component change.
Reporter | ||
Comment 14•22 years ago
|
||
Has any progress been made recently on this bug?
I hate to include opinion in here for fear of starting a disscussion that would
belong somewhere else (mailing list, etc.) but I think that it isn't a good idea
to target this as future. This is currently one of the big usability problems
with Chimera, and fixing it should not be put off and regarded as a low priority.
I don't want to have a discussion on here I just want to get an idea from the
developers on how big a bug they regard this as.
Comment 15•22 years ago
|
||
To Jeff and all other who think this should be higher priority, one of the best
things you can do to increase its priority is voting for it.
Droping my ballot.
Comment 16•22 years ago
|
||
*** Bug 172519 has been marked as a duplicate of this bug. ***
Comment 17•22 years ago
|
||
I've voted too.. this one is a real pain for me.. if I reply to an email, and
the original quoted message contains even a moderate amount of markup, the
response can be irritatingly slow - and gets slower as more and more input is
entered in the reply.
Even if I start a new message, after about 15k of text, things slow enough to
notice.
I see someone mentioned it happens because the entire contents of the text box
is invalidated on change, and must be fully redrawn, even if it is offscreen.
This approach is always going to result in performance issues, so something
really does need to be done about it.
Incidently, this occurs on an AMD 2100+XP athlon with 512mb of ram.. hardly a
slow system.
Comment 18•22 years ago
|
||
Ian Batterbee--I think you are mistaking. This is for Chimera. Did you port
OSX and Cocoa or something? :-)
Comment 19•22 years ago
|
||
Well, the Gecko text widget sort of sucks on all Mozilla variants on all
platforms, so it wasn't that far off topic.
Comment 20•22 years ago
|
||
Oh... so it is.. oops.
Although it's still valid.. heh..
Anyone know the bugid for this bug for the main mozilla stream ? If they fix it
there, it should fix it in all varients.
Comment 21•22 years ago
|
||
I suspect that you are talking about the multi-line INPUT controls, like the one
for "Additional Comments" on this page. But the single-line inputs (of
type="text", or default) are also non-standard. Normally on the Mac when you tab
from one text field to another any text that is already in the field gets
highlighted (try the "print" sheet, for instance). But in Mozilla/Chimera, it
inserts the cursor at the end of any existing text instead. This often messes me
up when I start typing and expect it to replace what is in the field, but
Chimera appends it to the end of what is there instead.
Comment 22•22 years ago
|
||
*** Bug 179244 has been marked as a duplicate of this bug. ***
Comment 23•22 years ago
|
||
*** Bug 169066 has been marked as a duplicate of this bug. ***
Comment 24•22 years ago
|
||
How many votes does it take to implement?
Comment 25•22 years ago
|
||
it's not about votes; it's about code... someone needs to step up and write the
code (or hire someone who can?)
Comment 26•22 years ago
|
||
brade in comment #6 you mention commands can you provide more details about what
makes this tricky? (not that I don't believe you...)
Comment 27•22 years ago
|
||
I believe the textarea performance has improved significantly on trunk builds.
Can anyone confirm? Of course, the textareas are still ugly gecko html widgets.
(We'd all prefer they looked like proper cocoa text fields that would underline
our misspelled words and work with the services menu, etc.) But as far as
"optimization" goes, we could probably close this bug.
Comment 28•22 years ago
|
||
If this bug is closed, then I think the parenthetical in the Summary should
become its own bug.
Comment 29•22 years ago
|
||
Closing this bug would be throwing out 85 votes, of which the majority I'd wager are registered with regard to the "native text widget" aspect.
Comment 30•22 years ago
|
||
So perhaps the summary should just be changed then? But the text field speed may
regress once the pseudo-native controls from Chimera are landed on the trunk..
(see bug 188254)
Comment 31•22 years ago
|
||
The text entry speed has gotten a lot better lately so I have removed my vote
for this bug.
Comment 32•22 years ago
|
||
I second the motion to change this report's description to simply read "Replacement: native text widget for HTML forms" or something of that nature.
Not that I have any meaningful clout...
Comment 33•22 years ago
|
||
Changed title. (Was: HTML text fields need optimization (native text widget))
Summary: HTML text fields need optimization (native text widget) → Switch to native text widget for HTML text fields
Comment 34•22 years ago
|
||
From a purely aesthetic standpoint, this has gotten worse since moving to the
trunk. Whereas in the past, single- and multi-line text input fields would at
least look like proper Aqua widgets, they now appear comparatively harsh. For
practical purposes, the bottom- and right-side boundaries of text entry fields
are invisible; the top- and left-side shadow is too dark. If nothing else,
they should be polished to better fit in with their Aqua neighbors.
Camino nightly 2003031808 on 10.2.4. I suppose this bug now applies to the
mainline Browser component as well?
Mark
Comment 35•22 years ago
|
||
This is Camino only. There is barely the lightest of gray lines on the right/bot
edge of text fields at the moment.
Comment 36•22 years ago
|
||
I don't really care if real Cocoa text fields are used in Camino (although it
was nice), but one behavior which was introduced recently should urgently be
fixed: Camino displays the background of a text field in the colour of the
surrounding area. This makes some text fields unreadable on dark backgrounds,
since the font colour is still black. (If this can somehow be influenced by some
setting: please tell me!)
For examples, check the search text field on http://www.versiontracker.com or
the search field on the left hand side of http://www.areadvd.com/
Comment 37•22 years ago
|
||
Comment 36 is bug 197768.
Mark
Comment 38•20 years ago
|
||
I might take a look at this, I've been looking for a holiday project. I don't
know how crufty the textarea code is, though, so I'm not promising anything!
Comment 39•20 years ago
|
||
:) please do
Comment 40•20 years ago
|
||
This is potentially relevant: Hosting cocoa widgets inside carbon windows.
http://tinyurl.com/ywmau (because nobody will tell me how to mark up a link in
Bugzilla without embarassing myself)
-reg
Comment 41•20 years ago
|
||
Also, assuming that the above doesn't pan out, we could at least upgrade text
fields to the modern HITextView and fake spell-checking with Richard Buckle's
ingenious bridge:
http://www.sailmaker.co.uk/progtools.html#spelling
-reg
Assignee | ||
Comment 42•20 years ago
|
||
a cocoa text view would work fine (we don't need any weird bridges or carbon
widgets), the work comes with making it reflect all the dom attributes and
javascript behavior hooks.
Updated•20 years ago
|
Assignee: brade → pinkerton
QA Contact: winnie
Comment 43•20 years ago
|
||
Is there any movement on this old, old bug? I've still got achingly slow text
repaint on text fields, particularly gmail's when there is a lot of text in the
box. The cursor blinks "wrongly" when typing, somehow, and there's no for-free
spell checking. It's a major camino deal-breaker here.
Comment 44•20 years ago
|
||
Most of that is bug 272954 which has nothing to do with this directly, and
spellchecking is bug 151040. This is mostly an implementation detail.
Assignee | ||
Comment 45•20 years ago
|
||
i believe the webkit team is moving away from native widgets entirely (they're
too slow) so we probably don't want to introduce them ourselves.
Comment 46•20 years ago
|
||
I hope this is the right bug. I've been told so.
I visit so many forums based on phpBB that this has become a "use breaker".
Regardless of whether other tabs or open or whether there are animated gifs, i
can no longer use Camino when in a forum i could probably type a couple
paragraphs by the time one word shows up.
(In reply to comment #46)
> I hope this is the right bug. I've been told so.
>
> Regardless of whether other tabs or open or whether there are animated gifs, i
> can no longer use Camino when in a forum i could probably type a couple
> paragraphs by the time one word shows up.
Actually, that's bug 272954.
Comment 48•20 years ago
|
||
Considering this bug is hitting its 3 year anniversary and to me is a crucial bug as it is almost impossible
to write something in a text bug. Heck I have to wait for it to catch up for me as it lags behind 3-4
sentences. This is why I am writing this up in Safari, not Camino.
Comment 49•20 years ago
|
||
Yvo van Doorn: that is bug 272954 and has nothing to do with this bug.
Please do not comment in this bug about slow text fields.
Comment 50•19 years ago
|
||
As Mike said in comment 45, Safari is moving away from native widgets and I
don't think we should go that route either.
Should this bug be WONTFIXed?
Comment 51•19 years ago
|
||
I don't think I'm the only person for whom WONTFIX on this serious flaw would clarify the position of
WONTUSE on Camino.
Isn't the entire purpose of the Camino project to wrap native UI conventions around Gecko? This seems
like a clear and worthwhile goal, and I cannot imagine why something so fundamental as text fields
would merit an exception. If we wanted nonstandard, application-level widgets, we'd be using Firefox.
I'm surprised by the suggestion that native widgets are "too slow"; I have never perceived any slowness
whatever in standard osx text fields--quite as opposed to the experience with Camino. More
importantly, this would in one fell swoop solve all of the other issues relating to standard system
spellchecking, in-field keybindings, selection after tabbing, and so on. And it would solve them in the
right way: not by reimplementing the whole shebang yourself, but simply using the native tool that's
sitting there begging to do all of the work.
L. H., given that text field performance (which is very much unresolved, despite what bug 272954
claims) is just one of many aspects of the choice to use native text widgets, I can't help but feel that
commenting upon it in this bug is precisely appropriate.
Comment 52•19 years ago
|
||
This is not a flaw. It is an implementation detail. Anything that is wrong with
text field behaviors is its own bug. Other controls in Camino are not native but
look and act native and that is enough.
WebKit is changing to controls that are not native for CSS compatibility and for
speed. They have said so on their blog. Unless you know more about creating a
browser with native controls and the speed and compatibility issues it has than
the WebKit team please do not comment about what the right way to implement this
is. Native controls would mean reimplementing all the CSS that works now and
losing some CSS compatibility so there is reimplementation either way.
The place to comment about problems with text fields is in bugs about those
problems. This is only about implementation. Only the developers understand
enough to make a good decision about implementation so only the developers
should comment about fixing this or not.
Comment 53•19 years ago
|
||
I spoke with Mike and this bug is definitely a WONTFIX.
Camino does not intend to use native form widgets in the content area. Native form widgets are slower than our home-grown widgets and any advantages they may have can be duplicated in our widgets with some work.
All other work to improve our widgets will be done in other bugs so please don't reopen this bug.
Status: NEW → RESOLVED
Closed: 19 years ago
Keywords: helpwanted
Resolution: --- → WONTFIX
Target Milestone: Future → ---
To follow up on what Sam said....
1) Spellcheck work for Camino is already well underway.
2) If there are missing keybindings or editing behaviors in textareas,
a) first check in a trunk build, as there have been many binding/behavior fixes that are only on the trunk, then
b) search for existing bugs in the "Core" product ("Editor" and "Selection" are the two most likley components, for narrowing your search), and
c) if you can't find an existing bug, file the new bug (one keybinding/behavior per bug) against the Core product and appropriate component (you can cc Sam or I so we can keep track of the bug, if you wish).
Thanks.
V. WONTFIX.
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•