Good news in dillo's rendering!

Jorge Arellano Cid <[email protected]>
Newsgroups gmane.comp.web.dillo.devel
Message-ID <[email protected]>
Hi there,

  Here go some good news.

  Originally  I was to send this internally to the core devs, but
as  we've  benefitted  from  the  feedback of active users in the
list, and their experiences with the patches (before/afterwards),
on the sites they usually browse, it looks like a good idea to do
it again.

  Since  June  6,  when this thread [1] was started by Sebastian,
I've  been  investigating/working in problems related to it. This
led to some extensive rendering tests that catched a laundry list
of problems with our current tip (#4643 today).

  This  is a list with brief explanations, taken from the testing
data tables I've gathered so far:

 Problems:
 1: overwrites text with images.
 2: crops images (aspect ratio).
 3: different layout.
 4: overwrites text with text float.
 5: overwrites text with text.
 6: CPU HOG with: tmp.num.html, tmp.num.small.html
 7: Missing page sections (sometimes works for the same page).
 8: Small images cut in two sometimes ("ESP", "CRO", ...)
 9: Wrong aspect ratio for images (text line height)
 10:  Page  drawn with offset (but browser thinks other section is
 on screen).

  There're  test  cases for each one, and most of them were taken
and reduced from real pages.

  Having  reduced  test cases is good, reduced and isolated tests
is  better,  but the good news is that I have a couple of patches
that solve all of them!

  I'm not saying dillo will be error-free hereafter, but that the
root  of a whole family of problems has been found and fixed, and
this will make future testing much simpler.

  GROWS2 is the "Grand Redesign Of Widget Sizes" v2 by Sebastian.
This  is a very powerful and flexible concept whose design allows
floats,  layers  (and  absolutes in the future, and more). It has
proven very fast so far, even without optimizations.

  Well  the  patches  are  two simple but deep changes in the way
markSizeChange()  and  queueResize()  interact. The patch idea is
close to graph coverage recursions (with pruning), applied to the
widget tree.

  I'd  like  to  commit  it, upload the test suite I'm using, and
show  the testing data tables I've gathered so everyone can check
it with their use cases and report on it.

  @Sebastian: May I, or would you prefer to review them before?
(the patches are the "middle ground" you mentioned. Solve the dw
hog  problems  at  dw  level,  not  in the parser, and reuse code
you've already seen. A couple of days should be enough to review)


  @Sebastian:  Problem  #10 is not related to GROWS2, but a three
year  old  bug  discovered during the tests. So let's get it done
first. How to reproduce it: Go to [2], wait a bit for most images
to  load, then use "find text" to find the "re-re" string, scroll
a  bit  downwards  to  find the image and center it. Go back then
forward;  no  image!  But  dillo thinks it *is* there so move the
cursor  to the center of the page and you'll see the hand cursor,
wait  for  the  tooltip and drag it a bit downwards to the right.
Dillo will repaint from the image data.
  Bisect  shows  the  bug  was introduced by #2863. Attached is a
simple concept patch for it. Please review/fix/commit, as I don't
know the updated invariants of resize idle.


[1] http://lists.dillo.org/pipermail/dillo-dev/2016-June/010887.html
[2] http://tinyurl.com/huvf6pn


-- 
  Cheers
  Jorge.-
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.