[Webkit-unassigned] [Bug 56178] [EFL] Repaint throttling API for WebKit-EFL

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon May 9 23:51:19 PDT 2011


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





--- Comment #8 from Grzegorz <g.czajkowski at samsung.com>  2011-05-09 23:51:19 PST ---
(In reply to comment #7)
> (In reply to comment #6)
> > (From update of attachment 85446 [details] [details])
> > View in context: https://bugs.webkit.org/attachment.cgi?id=85446&action=review
> > 
> > Don't you need to ENABLE(REPAINT_THROTTLING)?
> 
> Yes, you are right.
> 
> > 

This macro assigns values for throttling parameters in WebCore only (exactly the legacy level in proposed patch). It doesn't contains any API, variables, methods etc. So in patch for WebKit-EFL we don't need this macro, we are suggesting our levels for repaint throttling.
When the macro is disabled all variables responsible for repaint throttling are initialized on zero. In this case we do not any delay for the repaints, all ones come to update process one by one.

When application has used the values for repaint throttling WebCore accumulates the repaints in vector. On timer the repaints from vector are put to the Efl's queue. The timer calling is calculates on throttling parameters.

Delaying of repaints may help to display some contents on mobile devices.

> 
> > Source/WebKit/efl/ewk/ewk_settings.cpp:67
> > +static const struct _repaint_throttling_values {
> > +    double deferred_repaint_delay;
> > +    double initial_deferred_repaint_delay_during_loading;
> > +    double max_deferred_repaint_delay_during_loading;
> > +    double deferred_repaint_delay_increment_during_loading;
> > +} repaint_throttling_values[] = {
> > +            {   0,          0,      0,      0   },
> > +            {   0.025,      0,      2.5,    0.5 },
> > +            {   0.01,       0,      1,      0.2 },
> > +            {   0.025,      1,      5,      0.5 },
> > +            {   0.1,        2,      10,      1  }
> > +        };
> > +
> 
> It seems weird for me to expose this API. Wouldn't it be better to let the browser decide which value each field takes? With a quick grep I couldn't find a similar implementation in other ports.

I don't know whether browser should assign the values. Of course we can expose API like:
void ewk_setting_defereed_repaint_delay_set(doube )
void ewk_setting_initial_deferred_repaint_delay_during_loading_set(doube )
void ewk_setting_max_deferred_repaint_delay_during_loading_set(doube )
void ewk_setting_deferred_repaint_delay_increment_during_loading_set(doube )

I think it's a good idea to have some dedicated levels for repaints throttling. Please decide which option you prefer. What about to have both ones?

-- 
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