WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
55021
[EFL] Scroll doesn't work on tiled backing store
https://bugs.webkit.org/show_bug.cgi?id=55021
Summary
[EFL] Scroll doesn't work on tiled backing store
Eunsol Park
Reported
2011-02-22 21:03:08 PST
Scroll doesn't work on tiled backing store, but it works on single. There is no Scroll bar when receiving mouse wheel event, because paintsEntireContents() set TRUE. paintsEntireContents() is set on Tiled backing store in QT port and EFL port. I analyzed that it wouldn't be needed on EFL port, because tiled backing store process is different from QT. Patch will be uploaded after more analysis.
Attachments
proposed patch
(1.42 KB, patch)
2011-04-18 03:56 PDT
,
Eunsol Park
no flags
Details
Formatted Diff
Diff
proposed patch
(1.51 KB, patch)
2011-04-19 05:39 PDT
,
Eunsol Park
no flags
Details
Formatted Diff
Diff
proposed patch
(1.44 KB, patch)
2011-04-19 17:55 PDT
,
Eunsol Park
no flags
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Gyuyoung Kim
Comment 1
2011-03-10 21:29:47 PST
Now, EWebLauncher starts to use single backing store instead of tiled's because of some problems. When you test a patch for this bug, please reference to this.
Gyuyoung Kim
Comment 2
2011-04-13 20:38:09 PDT
Eunsol, when do you upload your patch ?
Eunsol Park
Comment 3
2011-04-18 03:56:08 PDT
Created
attachment 90013
[details]
proposed patch I uploaded patch, please review this. If ewk_frame_paint_full_set() set True, view size return content size and scroll can't be made. Calling ewk_frame_paint_full_set() is removed.
Gyuyoung Kim
Comment 4
2011-04-18 03:59:42 PDT
Demarchi, my colleague makes a patch for this bug. Please review this.
Lucas De Marchi
Comment 5
2011-04-18 06:48:57 PDT
(In reply to
comment #4
)
> Demarchi, my colleague makes a patch for this bug. Please review this.
CC'ing Antognolli, who knows more about the tiled backing store
Eric Seidel (no email)
Comment 6
2011-04-18 09:09:43 PDT
Comment on
attachment 90013
[details]
proposed patch How do we test this? I'm not sure the EFL port if far enough along to even run the tests, so maybe it doesn't matter. But all changes required layout tests if possible in WebKit. :)
Lucas De Marchi
Comment 7
2011-04-18 10:12:52 PDT
Comment on
attachment 90013
[details]
proposed patch I prefer to wait for Antognolli reviewing this. I think it's plain wrong.
WebKit Commit Bot
Comment 8
2011-04-18 10:13:25 PDT
Comment on
attachment 90013
[details]
proposed patch Clearing flags on attachment: 90013 Committed
r84155
: <
http://trac.webkit.org/changeset/84155
>
WebKit Commit Bot
Comment 9
2011-04-18 10:13:31 PDT
All reviewed patches have been landed. Closing bug.
Eric Seidel (no email)
Comment 10
2011-04-18 10:19:11 PDT
My appologies. Feel free to roll out. sheriff-bot rollout 84155 REASON on IRC.
Rafael Antognolli
Comment 11
2011-04-18 10:26:47 PDT
(In reply to
comment #0
)
> Scroll doesn't work on tiled backing store, but it works on single. > There is no Scroll bar when receiving mouse wheel event, because paintsEntireContents() set TRUE. > paintsEntireContents() is set on Tiled backing store in QT port and EFL port. > I analyzed that it wouldn't be needed on EFL port, because tiled backing store process is different from QT. > > Patch will be uploaded after more analysis.
Eunsol, I've made the first patch for adding the paintEntireContents flag, and I made it because the EFL port required it. The Qt port also started using it at the same time, because they were also implementing a tiled backing store (the one that is inside WebCore now). This flag needs to be set if you want to paint anything outside of the screen, otherwise the paint area will be clipped to the viewport and no pre-rendering can be made. So just disabling it will probably break the tiled backing store anyway (I can't check it right now). The view size returns the content size instead of viewport size when the paintEntireContents is set because of this change:
http://trac.webkit.org/changeset/72242/trunk/WebCore/platform/ScrollView.cpp
I believe that the Qt port has a good reason for this change, but it just broke us. So we need to fix this on some other way.
WebKit Review Bot
Comment 12
2011-04-18 12:21:08 PDT
http://trac.webkit.org/changeset/84155
might have broken GTK Linux 32-bit Debug
Gyuyoung Kim
Comment 13
2011-04-18 16:19:27 PDT
(In reply to
comment #6
)
> (From update of
attachment 90013
[details]
) > How do we test this? I'm not sure the EFL port if far enough along to even run the tests, so maybe it doesn't matter. But all changes required layout tests if possible in WebKit. :)
Bug 44500
is a patch for EFL Layout Test. My colleagues will revise the patch as soon as they finish current work. :-)
Bug 44500
- [EFL] API for Dump Render Tree application
Eunsol Park
Comment 14
2011-04-19 05:39:51 PDT
Created
attachment 90184
[details]
proposed patch Scrolling in QT tiled backing store works using delegatedScrollRequested() in webcore. EFL can't use this function, because it depends on some other functions for QT tiled backing store. As you know, EFL is implemented differently, so it's difficult to modify as similar to QT backing store. So, I want to change Veiw size in ScrollView. I removed the change below and test, and I checked it worked fine.
http://trac.webkit.org/changeset/72242/trunk/WebCore/platform/ScrollView.cpp
So, this patch is the defence of the change in only EFL port. akrekde
Lucas De Marchi
Comment 15
2011-04-19 05:58:20 PDT
Comment on
attachment 90184
[details]
proposed patch View in context:
https://bugs.webkit.org/attachment.cgi?id=90184&action=review
> Source/WebCore/platform/ScrollView.cpp:240 > +// FIXME:EFL does not work scrolling with tiled backing store. > +//
https://bugs.webkit.org/show_bug.cgi?id=55021
> +#if !PLATFORM(EFL) > if (paintsEntireContents()) > return IntRect(IntPoint(0, 0), contentsSize()); > +#endif
LGTM, but there's no need to keep this comment in code. Antognolli, what do you think?
Lucas De Marchi
Comment 16
2011-04-19 06:02:45 PDT
Reopen for the evaluation of a new patch.
Rafael Antognolli
Comment 17
2011-04-19 07:51:00 PDT
(In reply to
comment #15
)
> (From update of
attachment 90184
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=90184&action=review
> > > Source/WebCore/platform/ScrollView.cpp:240 > > +// FIXME:EFL does not work scrolling with tiled backing store. > > +//
https://bugs.webkit.org/show_bug.cgi?id=55021
> > +#if !PLATFORM(EFL) > > if (paintsEntireContents()) > > return IntRect(IntPoint(0, 0), contentsSize()); > > +#endif > > LGTM, but there's no need to keep this comment in code. Antognolli, what do you think?
LGTM too, and the comment could also be removed. I'm adding Andreas Kling, since he's the one who made the patch that changed this.
Eunsol Park
Comment 18
2011-04-19 17:31:31 PDT
OK, I will remove the comment and upload patch again.
Eunsol Park
Comment 19
2011-04-19 17:55:47 PDT
Created
attachment 90284
[details]
proposed patch The comment was removed in this patch.
Antonio Gomes
Comment 20
2011-04-20 09:42:26 PDT
Comment on
attachment 90284
[details]
proposed patch Would not it be clearer if from FrameLoaderClientEFL::transitionToCommittedForNewPage (when frame view is created) you do: ... m_frame->createView(blablabla); ... m_frame->view()->setPaintsEntireContents(false); }
Rafael Antognolli
Comment 21
2011-04-20 09:56:26 PDT
(In reply to
comment #20
)
> (From update of
attachment 90284
[details]
) > Would not it be clearer if from FrameLoaderClientEFL::transitionToCommittedForNewPage (when frame view is created) you do: > > ... > m_frame->createView(blablabla); > ... > m_frame->view()->setPaintsEntireContents(false); > }
But we need paintEntireContents set to True in order to make our tiled backing store work.
Antonio Gomes
Comment 22
2011-04-20 10:15:43 PDT
(In reply to
comment #21
)
> (In reply to
comment #20
) > > (From update of
attachment 90284
[details]
[details]) > > Would not it be clearer if from FrameLoaderClientEFL::transitionToCommittedForNewPage (when frame view is created) you do: > > > > ... > > m_frame->createView(blablabla); > > ... > > m_frame->view()->setPaintsEntireContents(false); > > } > > But we need paintEntireContents set to True in order to make our tiled backing store work.
so it needs to be true, but you still need it to clip painting to the viewport? I did not understood the problem, I think ... :(
Rafael Antognolli
Comment 23
2011-04-20 10:19:18 PDT
(In reply to
comment #22
)
> (In reply to
comment #21
) > > (In reply to
comment #20
) > > > (From update of
attachment 90284
[details]
[details] [details]) > > > Would not it be clearer if from FrameLoaderClientEFL::transitionToCommittedForNewPage (when frame view is created) you do: > > > > > > ... > > > m_frame->createView(blablabla); > > > ... > > > m_frame->view()->setPaintsEntireContents(false); > > > } > > > > But we need paintEntireContents set to True in order to make our tiled backing store work. > > so it needs to be true, but you still need it to clip painting to the viewport? I did not understood the problem, I think ... :(
hmm... sorry, maybe I wasn't clear. But we need it to be true because we *don't want* to clip painting to the viewport. We need to be able to paint things outside of the viewport too.
Eunsol Park
Comment 24
2011-04-20 22:46:51 PDT
(In reply to
comment #23
)
> (In reply to
comment #22
) > > (In reply to
comment #21
) > > > (In reply to
comment #20
) > > > > (From update of
attachment 90284
[details]
[details] [details] [details]) > > > > Would not it be clearer if from FrameLoaderClientEFL::transitionToCommittedForNewPage (when frame view is created) you do: > > > > > > > > ... > > > > m_frame->createView(blablabla); > > > > ... > > > > m_frame->view()->setPaintsEntireContents(false); > > > > } > > > > > > But we need paintEntireContents set to True in order to make our tiled backing store work. > > > > so it needs to be true, but you still need it to clip painting to the viewport? I did not understood the problem, I think ... :( > > hmm... sorry, maybe I wasn't clear. But we need it to be true because we *don't want* to clip painting to the viewport. We need to be able to paint things outside of the viewport too.
Dear,Antonio Gomes 1st patch I uploaded was modified like your opinion, because ewk_frame_paint_full_set() calls setPaintsEntireContents(). I removed ewk_frame_paint_full_set() in 1st patch. But 1st one had error to paint out of the viewport, so I modified to 2nd patch. I checked it solved in 2nd patch.
WebKit Commit Bot
Comment 25
2011-04-21 08:55:06 PDT
The commit-queue encountered the following flaky tests while processing
attachment 90284
[details]
: http/tests/misc/favicon-loads-with-icon-loading-override.html
bug 58412
(author:
alice.liu@apple.com
) The commit-queue is continuing to process your patch.
WebKit Commit Bot
Comment 26
2011-04-21 08:58:31 PDT
Comment on
attachment 90284
[details]
proposed patch Clearing flags on attachment: 90284 Committed
r84505
: <
http://trac.webkit.org/changeset/84505
>
WebKit Commit Bot
Comment 27
2011-04-21 08:58:36 PDT
All reviewed patches have been landed. Closing bug.
WebKit Review Bot
Comment 28
2011-04-21 10:46:03 PDT
http://trac.webkit.org/changeset/84505
might have broken GTK Linux 32-bit Release
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