WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED DUPLICATE of
bug 33150
38418
[Qt] REGRESSION: fixed elements don't behave correctly when composited (AC)
https://bugs.webkit.org/show_bug.cgi?id=38418
Summary
[Qt] REGRESSION: fixed elements don't behave correctly when composited (AC)
Noam Rosenthal
Reported
2010-05-01 00:49:54 PDT
This regression was probably introduced with some changes to the scrolling mechanism from a few weeks ago. some of the tests under LayoutTests/compositing/geometry now show red when they shouldn't.
Attachments
Fix
(3.76 KB, patch)
2010-05-02 03:01 PDT
,
Noam Rosenthal
no flags
Details
Formatted Diff
Diff
Re-upload
(3.04 KB, patch)
2010-05-02 03:02 PDT
,
Noam Rosenthal
hausmann
: review-
Details
Formatted Diff
Diff
Different approach
(3.51 KB, patch)
2010-06-02 15:02 PDT
,
Noam Rosenthal
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Noam Rosenthal
Comment 1
2010-05-02 03:01:02 PDT
Created
attachment 54864
[details]
Fix This probably needs another set of eyes because it affects non-AC code paths as well.
Noam Rosenthal
Comment 2
2010-05-02 03:02:12 PDT
Created
attachment 54865
[details]
Re-upload
Simon Hausmann
Comment 3
2010-05-02 14:14:44 PDT
It looks like this only covers the case for the main frame, but not if the same happens within a child frame. AFAICS in the mac code that's done per frame. I wonder if the right fix is cross-platform inside WebCore instead of going through the WebKit layer and then back into WebCore?
Noam Rosenthal
Comment 4
2010-05-02 14:25:39 PDT
I think it should be platform specific - there's no way for WebCore to know when the platform actually scrolled.
Simon Hausmann
Comment 5
2010-05-02 14:30:53 PDT
(In reply to
comment #4
)
> I think it should be platform specific - there's no way for WebCore to know > when the platform actually scrolled.
Why not? In your patch you're modifying ChromeClient(Qt)::scroll, which _is_ cross-platform and the place where WebCore tells the platform to scroll. The other way around, when the upper application layer wants to scroll the WebCore::ScrollView, then it calls functions like scrollBy() inside WebCore. I must be missing something :)
Noam Rosenthal
Comment 6
2010-05-02 14:40:23 PDT
hmm, I guess you're right. But wouldn't that mess with the Apple implementation?
Noam Rosenthal
Comment 7
2010-05-03 18:09:57 PDT
I researched further: this has to be platform specific, as other platforms might choose to implement scrolling in an async way. scrollPoitionChanged() should be called after the async scroll operation actually took place. In Qt we do sync scrolling, so it happens that we can call scrollPositionChanged() directly - but that behavior is platform specific. Therefore, I can't think of a differrent/more appropriate way to do this than ChromeClientQt :)
Simon Hausmann
Comment 8
2010-06-02 14:15:19 PDT
(In reply to
comment #7
)
> I researched further: this has to be platform specific, as other platforms might choose to implement scrolling in an async way. scrollPoitionChanged() should be called after the async scroll operation actually took place. In Qt we do sync scrolling, so it happens that we can call scrollPositionChanged() directly - but that behavior is platform specific. > Therefore, I can't think of a differrent/more appropriate way to do this than ChromeClientQt :)
You're right. Ok, what about the main frame vs. child frames point? :)
Noam Rosenthal
Comment 9
2010-06-02 15:02:20 PDT
Created
attachment 57707
[details]
Different approach How about this approach then (see new attachment). It's not for review yet, just discussion.
Simon Hausmann
Comment 10
2010-06-07 04:14:00 PDT
Comment on
attachment 57707
[details]
Different approach I like this approach :) WebCore/platform/HostWindow.h:60 + // Returns true if The docs should give some more help, so that the other ports have an idea what to do here ;)
Simon Hausmann
Comment 11
2010-06-07 04:14:45 PDT
Comment on
attachment 54865
[details]
Re-upload r- because of lack of frame handling, but the new patch looks promising :)
Noam Rosenthal
Comment 12
2010-06-10 16:53:10 PDT
What's missing for this to handle frames? It's implemented entirely in ScrollView so it should work for anything.
Noam Rosenthal
Comment 13
2010-06-10 16:54:19 PDT
Also, can we add it for the common use case and test frames later? I don't get the logic of "Let's reject a bug that fixes FOO because it doesn't fix BAR" :) No'am
Simon Hausmann
Comment 14
2010-06-10 22:43:55 PDT
I think your third party is good, I like the approach. I r-'ed the second patch, because your third patch replaces it. Please add a changelog to the third one and put it up for review :)
Noam Rosenthal
Comment 15
2010-06-11 11:51:41 PDT
ah, I see. my misunderstanding. New patch coming up :)
Noam Rosenthal
Comment 16
2010-06-11 13:05:50 PDT
This was apparently fixed, see
bug 33150
. *** This bug has been marked as a duplicate of
bug 33150
***
Benjamin Poulain
Comment 17
2010-06-11 15:28:05 PDT
(In reply to
comment #16
)
> This was apparently fixed, see
bug 33150
. > > *** This bug has been marked as a duplicate of
bug 33150
***
I have not checked the bug but it looks unrelated to 33150. On scroll, the layers are updated via FrameView::scrollPositionChanged() See
https://bugs.webkit.org/show_bug.cgi?id=36783
&&
https://bugs.webkit.org/show_bug.cgi?id=38286
https://bugs.webkit.org/show_bug.cgi?id=33150
improves performance but don't really change the behavior.
Noam Rosenthal
Comment 18
2010-06-11 15:33:43 PDT
It could have been 39918 then. The point is the bug is no longer there.
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