[Webkit-unassigned] [Bug 45889] Style visibility: hidden on <br/> tags causes input fields to lose focus after deleting all content

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jan 31 23:08:43 PST 2011


https://bugs.webkit.org/show_bug.cgi?id=45889


Ryosuke Niwa <rniwa at webkit.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #80639|review?                     |review-
               Flag|                            |




--- Comment #17 from Ryosuke Niwa <rniwa at webkit.org>  2011-01-31 23:08:42 PST ---
(From update of attachment 80639)
View in context: https://bugs.webkit.org/attachment.cgi?id=80639&action=review

> Source/WebCore/ChangeLog:9
> +        After deleting all characters in text input field, cursor 
> +        focus is being lost when style br{visibility:hidden} is set.
> +        Actually, placeholder <BR> element not needed for Input Text Field when content empty.
> +        So, additional validation included to skip adding placeholder when the editing node is Input Text field
> +        https://bugs.webkit.org/show_bug.cgi?id=45889

You shouldn't delete the bug title.  Description should come AFTER the bug title and bug url.  So it should be something like (all indented appropriately):

Style visibility: hidden on <br/> tags causes input fields to lose focus after deleting all content
https://bugs.webkit.org/show_bug.cgi?id=45889

The bug was caused by DeleteSelectionCommand's inserting a placeholder br element into a text field
when the text field becomes empty. Fixed DeleteSelectionCommand to not insert the placeholder
when the command is executed inside a text field.

r- because of the format here

> Source/WebCore/editing/DeleteSelectionCommand.cpp:753
>          Node* ancestorNode = startNode ? startNode->shadowAncestorNode() : 0;
>          if (ancestorNode && ancestorNode->hasTagName(inputTag)
>                  && static_cast<HTMLInputElement*>(ancestorNode)->isTextField()
> -                && ancestorNode->focused())
> +                && ancestorNode->focused()) {
>              document()->frame()->editor()->textWillBeDeletedInTextField(static_cast<Element*>(ancestorNode));
> +            isFocusedNodeTextInputElement = true;
> +        }

Why do we care that the input field is focused?

> LayoutTests/ChangeLog:8
> +
> +        This testcase insert characters "ABC" in input text field where style br{visibility:hidden} is set,
> +        Select all the text and delete selection. Then, insert characters "XYZ". 
> +        With this fix, characters "XYZ" can be inserted as focus should not be lost after deletion.
> +        https://bugs.webkit.org/show_bug.cgi?id=45889

Ditto about the bug title and url appearing first followed by a blank line.

I think the description is a little verbose.  Try something along the line of:

Added a test to make sure deleting text from text field doesn't lose focus even if br's visibility is hidden.

> LayoutTests/editing/deleting/textfield-loose-focus-with-br.html:1
> +<html>

Missing <!DOCTYPE html>

> LayoutTests/editing/deleting/textfield-loose-focus-with-br.html:11
> +<script src="../editing.js"></script>

Why are you including this file if you're not calling any functions in editing.js?

> LayoutTests/editing/deleting/textfield-loose-focus-with-br.html:27
> +document.execCommand("InsertText",false,'XYZ');
> +document.write(document.getElementById("t").value == "XYZ" ? "PASS" : "FAIL");

Wait, this doesn't test what the test claims to test.  Shouldn't we be testing that t is still focused?

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list