WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
49868
REGRESSION (
r71934
): Main search field at Apple tech specs does not accept typing
https://bugs.webkit.org/show_bug.cgi?id=49868
Summary
REGRESSION (r71934): Main search field at Apple tech specs does not accept ty...
mitz
Reported
2010-11-20 12:47:57 PST
To reproduce, navigate to the URL, focus the search field next to “Search Tech Specs” and type.
Attachments
Patch
(4.19 KB, patch)
2010-11-24 16:50 PST
,
Dimitri Glazkov (Google)
darin
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
mitz
Comment 1
2010-11-20 12:49:12 PST
<
rdar://problem/8692047
>
Alexey Proskuryakov
Comment 2
2010-11-20 14:15:00 PST
The only relevant commit in this range is the shadow DOM-aware event targeting one.
Mark Rowe (bdash)
Comment 3
2010-11-20 15:42:12 PST
Confirmed via bisection that <
http://trac.webkit.org/changeset/71934
> is to blame. This also breaks the search field in the web inspector.
Dave Hyatt
Comment 4
2010-11-20 16:15:54 PST
Just a guess, but focus/blur events that remain inside the shadow nodes of the same enclosing explicit element should not retarget. The same is also true for mouseover and mouseout events that remain inside the object. If those are now propagating out, that would cause odd behaviors. See:
http://www.w3.org/TR/xbl/#event2
and then also sections 6.10 and 6.11.
Pavel Feldman
Comment 5
2010-11-21 07:35:44 PST
Is anyone looking at this? It does break inspector's search.
Dimitri Glazkov (Google)
Comment 6
2010-11-22 08:58:03 PST
Fixing..
Dimitri Glazkov (Google)
Comment 7
2010-11-23 07:20:11 PST
(In reply to
comment #5
)
> Is anyone looking at this? It does break inspector's search.
FWIW, tech specs behavior is slightly this is different from inspector's search. You can still search in Inspector by clicking on the loupe. I've been tracking through the code, have some leads.
Dimitri Glazkov (Google)
Comment 8
2010-11-23 07:21:55 PST
(In reply to
comment #4
)
> Just a guess, but focus/blur events that remain inside the shadow nodes of the same enclosing explicit element should not retarget. The same is also true for mouseover and mouseout events that remain inside the object. If those are now propagating out, that would cause odd behaviors. > > See: > >
http://www.w3.org/TR/xbl/#event2
> > and then also > > sections 6.10 and 6.11.
Yup, I didn't yet implement that. However, all of the shadow DOM elements today are explicitly marked as not focusable. I think the issue is with the style recalc not being triggered when focusing somehow. If you go in Inspector and modify width, the problem goes away.
Dimitri Glazkov (Google)
Comment 9
2010-11-24 16:50:44 PST
Created
attachment 74812
[details]
Patch
Dimitri Glazkov (Google)
Comment 10
2010-11-24 16:52:18 PST
(In reply to
comment #9
)
> Created an attachment (id=74812) [details] > Patch
This corrects the issue with the site reported. The problem still persists with the Inspector, but it's a totally different issue, related to manipulating (removing, actually) selection while inside of the focus event. I'll file a separate bug.
Pavel Feldman
Comment 11
2010-11-25 12:55:31 PST
> This corrects the issue with the site reported. The problem still persists with the Inspector, but it's a totally different issue, related to manipulating (removing, actually) selection while inside of the focus event. I'll file a separate bug.
Any idea what regressed it? Is there a bug already?
Dimitri Glazkov (Google)
Comment 12
2010-11-25 13:12:47 PST
(In reply to
comment #11
)
> > This corrects the issue with the site reported. The problem still persists with the Inspector, but it's a totally different issue, related to manipulating (removing, actually) selection while inside of the focus event. I'll file a separate bug. > > Any idea what regressed it? Is there a bug already?
No yet, I'll file and provide reduction and fix after the Thanksgiving break. It regressed with the same revision.
Darin Adler
Comment 13
2010-11-27 18:26:51 PST
Comment on
attachment 74812
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=74812&action=review
I wonder if some of the code in RenderBlock::hasLineIfEmpty can now be deleted.
> LayoutTests/fast/forms/disabled-search-input.html:59 > \ No newline at end of file
We normally put those end-of-file newlines in WebKit source files.
> WebCore/rendering/TextControlInnerElements.cpp:54 > + virtual bool hasLineIfEmpty() const { return true; }
I slightly prefer that such overrides be private rather than public. It’s typically a programming error if someone calls the function on a RenderTextControlInnerBlock* directly, and it’s nice to have this caught at compile time. And the privacy has no effect on overriding.
Dimitri Glazkov (Google)
Comment 14
2010-11-27 18:42:38 PST
(In reply to
comment #13
)
> (From update of
attachment 74812
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=74812&action=review
> > I wonder if some of the code in RenderBlock::hasLineIfEmpty can now be deleted.
Not yet. The spin buttons still use it :( But soon, soon, I shall make this all be not so crappy! :)
> > > LayoutTests/fast/forms/disabled-search-input.html:59 > > \ No newline at end of file > > We normally put those end-of-file newlines in WebKit source files. > > > WebCore/rendering/TextControlInnerElements.cpp:54 > > + virtual bool hasLineIfEmpty() const { return true; } > > I slightly prefer that such overrides be private rather than public. It’s typically a programming error if someone calls the function on a RenderTextControlInnerBlock* directly, and it’s nice to have this caught at compile time. And the privacy has no effect on overriding.
Sounds great! Wil do.
Dimitri Glazkov (Google)
Comment 15
2010-11-27 19:49:08 PST
(In reply to
comment #14
)
> (In reply to
comment #13
) > > (From update of
attachment 74812
[details]
[details]) > > View in context:
https://bugs.webkit.org/attachment.cgi?id=74812&action=review
> > > > I wonder if some of the code in RenderBlock::hasLineIfEmpty can now be deleted. > > Not yet. The spin buttons still use it :( But soon, soon, I shall make this all be not so crappy! :)
I think I can remove one check though. I'll do that.
> > > > > > LayoutTests/fast/forms/disabled-search-input.html:59 > > > \ No newline at end of file > > > > We normally put those end-of-file newlines in WebKit source files. > > > > > WebCore/rendering/TextControlInnerElements.cpp:54 > > > + virtual bool hasLineIfEmpty() const { return true; } > > > > I slightly prefer that such overrides be private rather than public. It’s typically a programming error if someone calls the function on a RenderTextControlInnerBlock* directly, and it’s nice to have this caught at compile time. And the privacy has no effect on overriding. > > Sounds great! Wil do.
Dimitri Glazkov (Google)
Comment 16
2010-11-29 09:52:31 PST
Committed
r72807
: <
http://trac.webkit.org/changeset/72807
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug