Dillo-dev
By thread
dillo-dev@mailman3.com
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1999 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1998 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1997 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1996 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1995 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
October 2010
- 8 participants
- 66 messages
[bug]: CSS sets insanely huge vertical extent
by onepoint@starurchin.org
This small bit of HTML (attached) renders with an enormous vertical
extent in Dillo - I have to hold down the mouse in the lower half of
the scrollbar for several seconds before the slider moves even one
pixel! Strangely, if you take out the "<span>"s then the vertical
extent is *much* smaller, although still far too large. What's going
on?
Regards,
Jeremy Henty
Oct. 14, 2010
Re: Dillo config in LTIB
by vic@smartqsys.com
Hi Johannes,
Right, after editing etc/resolv.conf and setting nameserver ip after dillo is launched, it can now resolve WLAN addresses but still remains unreachable. However, local LAN published web pages can now display. So I'm sure wget will work within LAN but not WLAN. It looks like a gateway ip/ routing issue at this point. Is there a gateway ip related variable much like what nameserver is for the dns ip?
Btw, does dillo support printing initiated via the web page's html script?
Thanks so much,
Vic
Message: 4
Date: Thu, 14 Oct 2010 09:13:40 +0200
From: Johannes Hofmann
Subject: Re: [Dillo-dev] Re: Dillo config in LTIB
To: dillo-dev(a)dillo.org
Message-ID: <20101014071340.GB934(a)blob.baaderstrasse.com>
Content-Type: text/plain; charset=us-ascii
On Thu, Oct 14, 2010 at 12:00:47AM +0800, vic wrote:
> Hi Jorge,
>
> Thanks for the prompt reply. I'm using ltib Linux kernel 2.6.34 on an Embedded Artists LPC3250 development board, no firewall. The board is connected to a gateway router.
>
> Does "ping www.dillo.org" resolve?
> It does not, it responds with "unreachable destination". However, a ping to a host in the local LAN is fine and a link to a host in the local LAN has this response...
>
> > Nav_open_url: new url='http://192.168.1.6:88'
> > Dns_server [0]: 192.168.1.6 is 192.168.1.6
> > Connecting to 192.168.1.6
> > ** WARNING **: IO_write, closing with pending data not sent
> > ** WARNING **: "GET / HTTP/1.1\x0D
>
> I read from a thread to place "nameserver=dns ip" in /etc/resolv.conf but nothing changed. I took a look at dns.c but I can't figure out where it's getting the value of "nameserver" from or whether it's really using that module.
I think it's resolving fine, so it's probabely not a DNS issue.
Can you install e.g. wget and try
wget http://192.168.1.6:88
Cheers,
Johannes
Oct. 14, 2010
Pending tasks
by jcid@dillo.org
On Thu, Oct 14, 2010 at 09:49:37AM +0200, Johannes Hofmann wrote:
> On Wed, Oct 13, 2010 at 03:13:16PM -0300, Jorge Arellano Cid wrote:
> > On Tue, Oct 12, 2010 at 09:54:13PM +0200, Johannes Hofmann wrote:
>
> *snip*
>
> > >
> > > Oh, "The collapsing border model" in the spec looks tricky :-)
> >
> > Given the too many overlapping directives in the model, it was
> > destined to be complex.
> >
> > Personally I believe the collapsing model and its baroque
> > combinations are seldom used in the Web. Most sites are
> > structured around floating DIVs these days, and even the last
> > SPEC more or less recognizes the problem:
> >
> > <cite>
> > Automatic table layout algorithm
> >
> > The input to the suggested (non-normative) automatic layout
> > algorithm for tables is restricted to (1) the containing block
> > width and (2) the content and properties of the table and its
> > children. This restriction may be lifted.
> > </cite>
> >
> > Nevertheless, digging into the SPEC makes clear that if the
> > collapsing border model is to be partly implemented (the simple
> > cases at least), there's a need to move rendering from the cell
> > widget into the table in Dw.
> >
> >
> > > > The only way I've found is to set a hard value in postprocessAttrs(),
> > > > but not yet a way to do it from Html_tag_open_table().
> > > >
> > > > As you're working on the API, please give me some hints on how
> > > > it works.
> > >
> > > The basic idea is that the stuff in css.cc is doing pure CSS
> > > and does not care about the actual implementation or rendering in
> > > dw/*. StyleEngine then translates this to dw::core::style::Style
> > > objects (which also were designed with CSS in mind).
> >
> > Yes, that's the basis.
> > The engine also takes care of inheritance, rules, nonCSS hints
> > (i.e. old HTML visual directives) and their precedence.
> >
> > One specific question is where's the correct point to take into
> > account that cell margin should be ignored in table cells.
> >
> > One way is to tweak the value (set it to 0), but then the
> > "computed" value is not honoured as you point out.
>
> If the spec would say, that the computed value is set to 0 if
> border-collapse is 'collapse' (which it doesn't say as far as I can
> see), the correct place would be in postprocessAttrs().
> E.g. in http://www.w3.org/TR/CSS2/box.html#propdef-border-top-width
> it is stated that
> "Computed?value:??absolute length; '0' if the border style is
> 'none' or 'hidden'"
> That's why borderWidth is set to 0 in postprocessAttrs() if
> borderStyle is 'none'.
> ... and now I see, that the same thing for 'hidden' is missing.
> Boh, I always thought that the difference between 'none' and
> 'hidden' was exactly that 'hidden' does not affect the computed
> value of border-width - seems that I was wrong.
>
> If the computed value should not be changed, we need to tweak the
> style somewhere else where it does not interfere with inheritance
> (see below).
Thanks for the detailed explanation. My concern here is not to
introduce cascading errors.
> >
> > Another is to ignore it in the draw method, but then draw()
> > must know what element it is drawing, and for "collapsing"
> > there's a need to know much more context.
> >
> > I quite agree with your view of the subject matter.
> >
> > > >
> > > > As currently the cell border, padding and margin are drawn by
> > > > the cell widget (textblock) inside a table, the general idea is
> > > > to make textblock consider "collapse" mode when inside a table.
> > >
> > > postprocessAttrs() does not take into account in which
> > > element we currently are (e.g. <table>, <td>, ...)
> > > You could check whether you currently are in a certain element by
> > > looking at doctree->top ()->element and do special things for
> > > certain elements.
> > > However looking at "The collapsing border model" I'm not sure
> > > whether you can get away with leaving the dw/* code as it is and
> > > just fiddling with the Style objects.
> > > For example if you have
> > >
> > > <td>1</td><td>2</td>
> > >
> > > There currently is no way to get the style of the first <td> when
> > > creating the style of the second <td> in StyleEngine - which you
> > > would need to compute the thickness of the border between the two.
> >
> > Fully agreed.
> >
> > > Actually we can't play with the values of the Style object in
> > > postprocessAttrs() as we like.
> > > They must contain what the spec mentions as "computed
> > > value". And as I read the spec, the computed value of e.g.
> > > border-width does not depend on the value of border-collapse.
> >
> > I didn't know this ("computed value" requirement). Well, it
> > defines better what's to be done if ever.
> >
> >
> > > What *might* work is to take the Style object that StyleEngine gives
> > > you and modify it in in case that border-collapse is set before passing
> > > it to the table cell in src/table.cc:293.
> >
> > Do you mean as if it was a nonCssHint?
> > I was afraid CSS would take precedence (i.e. if nonCssHint says
> > margin is 0 and CSS says it's 20, I'd bet on the second one!).
>
> No, not via nonCssHints. I meant to directly modify the style before
> giving it to the Textblock. Attached is a small patch to demonstrate
> what I mean.
> With some more work I think we could make it cover the most common
> cases of the collapsing border model.
I tried four or five fragile methods that didn't work,
postprocessAttrs() showed something but clearly wasn't the place
to change.
Agreed. With the gained knowledge, and the example patch, I can
work further on a workaround that works using the current in-cell
rendering.
> >
> > At this point, if we can set margin to zero for the "separate"
> > model, and half the value for "collapsing" it would be quite an
> > advance (in rendering). OTOH, it must be commented as a
> > workaround because it's not the correct way to implement it. An
> > implementation would need major surgery.
> >
> >
> > > > Another approach is to make dw::table render its borders and
> > > > margin, and only leave padding to the cell widget.
> > >
> > > Yes, that's the other way to do it. You could still reuse the border
> > > drawing helper routines from style.cc.
> > > Nevertheless it might be pretty complex. Not sure if it is really
> > > worth it...
> >
> > Fully agreed.
> >
> > Most probably a full implementation is not worth ATM, given the
> > small use cases out there. A partial workaround may help though.
>
> Yes, I think it would be reasonable to just cover the common cases
> e.g a table with a 1px grid with a single color and style.
ACK.
> > > - but of course I don't want to discourage you :-)
> >
> > you did! :-)
> >
> > Seriously, so far we have a better effort estimation on it, and
> > we know how not to try to implement it, and what a correct
> > implementation would need.
> >
> > Given the high cost/benefit, besides a workaround, i'd move to
> > investigate 8 and 6:
*postponed*
--
Cheers
Jorge.-
Oct. 14, 2010
Pending tasks
by Johannes.Hofmann@gmx.de
On Wed, Oct 13, 2010 at 03:13:16PM -0300, Jorge Arellano Cid wrote:
> On Tue, Oct 12, 2010 at 09:54:13PM +0200, Johannes Hofmann wrote:
*snip*
> >
> > Oh, "The collapsing border model" in the spec looks tricky :-)
>
> Given the too many overlapping directives in the model, it was
> destined to be complex.
>
> Personally I believe the collapsing model and its baroque
> combinations are seldom used in the Web. Most sites are
> structured around floating DIVs these days, and even the last
> SPEC more or less recognizes the problem:
>
> <cite>
> Automatic table layout algorithm
>
> The input to the suggested (non-normative) automatic layout
> algorithm for tables is restricted to (1) the containing block
> width and (2) the content and properties of the table and its
> children. This restriction may be lifted.
> </cite>
>
> Nevertheless, digging into the SPEC makes clear that if the
> collapsing border model is to be partly implemented (the simple
> cases at least), there's a need to move rendering from the cell
> widget into the table in Dw.
>
>
> > > The only way I've found is to set a hard value in postprocessAttrs(),
> > > but not yet a way to do it from Html_tag_open_table().
> > >
> > > As you're working on the API, please give me some hints on how
> > > it works.
> >
> > The basic idea is that the stuff in css.cc is doing pure CSS
> > and does not care about the actual implementation or rendering in
> > dw/*. StyleEngine then translates this to dw::core::style::Style
> > objects (which also were designed with CSS in mind).
>
> Yes, that's the basis.
> The engine also takes care of inheritance, rules, nonCSS hints
> (i.e. old HTML visual directives) and their precedence.
>
> One specific question is where's the correct point to take into
> account that cell margin should be ignored in table cells.
>
> One way is to tweak the value (set it to 0), but then the
> "computed" value is not honoured as you point out.
If the spec would say, that the computed value is set to 0 if
border-collapse is 'collapse' (which it doesn't say as far as I can
see), the correct place would be in postprocessAttrs().
E.g. in http://www.w3.org/TR/CSS2/box.html#propdef-border-top-width
it is stated that
"Computed?value:??absolute length; '0' if the border style is
'none' or 'hidden'"
That's why borderWidth is set to 0 in postprocessAttrs() if
borderStyle is 'none'.
... and now I see, that the same thing for 'hidden' is missing.
Boh, I always thought that the difference between 'none' and
'hidden' was exactly that 'hidden' does not affect the computed
value of border-width - seems that I was wrong.
If the computed value should not be changed, we need to tweak the
style somewhere else where it does not interfere with inheritance
(see below).
>
> Another is to ignore it in the draw method, but then draw()
> must know what element it is drawing, and for "collapsing"
> there's a need to know much more context.
>
> I quite agree with your view of the subject matter.
>
> > >
> > > As currently the cell border, padding and margin are drawn by
> > > the cell widget (textblock) inside a table, the general idea is
> > > to make textblock consider "collapse" mode when inside a table.
> >
> > postprocessAttrs() does not take into account in which
> > element we currently are (e.g. <table>, <td>, ...)
> > You could check whether you currently are in a certain element by
> > looking at doctree->top ()->element and do special things for
> > certain elements.
> > However looking at "The collapsing border model" I'm not sure
> > whether you can get away with leaving the dw/* code as it is and
> > just fiddling with the Style objects.
> > For example if you have
> >
> > <td>1</td><td>2</td>
> >
> > There currently is no way to get the style of the first <td> when
> > creating the style of the second <td> in StyleEngine - which you
> > would need to compute the thickness of the border between the two.
>
> Fully agreed.
>
> > Actually we can't play with the values of the Style object in
> > postprocessAttrs() as we like.
> > They must contain what the spec mentions as "computed
> > value". And as I read the spec, the computed value of e.g.
> > border-width does not depend on the value of border-collapse.
>
> I didn't know this ("computed value" requirement). Well, it
> defines better what's to be done if ever.
>
>
> > What *might* work is to take the Style object that StyleEngine gives
> > you and modify it in in case that border-collapse is set before passing
> > it to the table cell in src/table.cc:293.
>
> Do you mean as if it was a nonCssHint?
> I was afraid CSS would take precedence (i.e. if nonCssHint says
> margin is 0 and CSS says it's 20, I'd bet on the second one!).
No, not via nonCssHints. I meant to directly modify the style before
giving it to the Textblock. Attached is a small patch to demonstrate
what I mean.
With some more work I think we could make it cover the most common
cases of the collapsing border model.
>
> At this point, if we can set margin to zero for the "separate"
> model, and half the value for "collapsing" it would be quite an
> advance (in rendering). OTOH, it must be commented as a
> workaround because it's not the correct way to implement it. An
> implementation would need major surgery.
>
>
> > > Another approach is to make dw::table render its borders and
> > > margin, and only leave padding to the cell widget.
> >
> > Yes, that's the other way to do it. You could still reuse the border
> > drawing helper routines from style.cc.
> > Nevertheless it might be pretty complex. Not sure if it is really
> > worth it...
>
> Fully agreed.
>
> Most probably a full implementation is not worth ATM, given the
> small use cases out there. A partial workaround may help though.
Yes, I think it would be reasonable to just cover the common cases
e.g a table with a 1px grid with a single color and style.
>
>
> > - but of course I don't want to discourage you :-)
>
> you did! :-)
>
> Seriously, so far we have a better effort estimation on it, and
> we know how not to try to implement it, and what a correct
> implementation would need.
>
> Given the high cost/benefit, besides a workaround, i'd move to
> investigate 8 and 6:
>
> 8 support more border-style options (dotted, dashed ...)
> Once implemented, this code can be reused/moved if
> necessary.
>
> 6 support more vertical-align options
> I hope vertical-align in the textblock can help with
> vertical align inside the table. If rows need to
> coordinate it will be complex. This feature is much more
> visible than border-collapse. This needs coordination
> among us, and corvid has already advanced working on it.
Ok.
Cheers,
Johannes
Oct. 14, 2010
Re: Dillo config in LTIB
by Johannes.Hofmann@gmx.de
On Thu, Oct 14, 2010 at 12:00:47AM +0800, vic wrote:
> Hi Jorge,
>
> Thanks for the prompt reply. I'm using ltib Linux kernel 2.6.34 on an Embedded Artists LPC3250 development board, no firewall. The board is connected to a gateway router.
>
> Does "ping www.dillo.org" resolve?
> It does not, it responds with "unreachable destination". However, a ping to a host in the local LAN is fine and a link to a host in the local LAN has this response...
>
> > Nav_open_url: new url='http://192.168.1.6:88'
> > Dns_server [0]: 192.168.1.6 is 192.168.1.6
> > Connecting to 192.168.1.6
> > ** WARNING **: IO_write, closing with pending data not sent
> > ** WARNING **: "GET / HTTP/1.1\x0D
>
> I read from a thread to place "nameserver=dns ip" in /etc/resolv.conf but nothing changed. I took a look at dns.c but I can't figure out where it's getting the value of "nameserver" from or whether it's really using that module.
I think it's resolving fine, so it's probabely not a DNS issue.
Can you install e.g. wget and try
wget http://192.168.1.6:88
Cheers,
Johannes
Oct. 14, 2010
Dillo config in LTIB
by vic@smartqsys.com
Hi Jorge,
The EA lpc3250 is connected to a gateway router with IP 192.168.1.4. pinging
local LAN hosts is fine but WLAN host are unreachable. I tried editing
etc/resolv.conf with nameserver 192.168.1.4 , but this time after dillo is
up instead and not before launching dillo. It is able to
resolve but this is what I get...
[root@nxp /]# ping www.dillo.org -c 4
PING www.dillo.org (134.102.206.165): 56 data bytes
ping: sendto: Network is unreachable
[root@nxp /]#
Nav_open_url: new url='http://www.dillo.org'
Dns_server [0]: www.dillo.org is 134.102.206.165
Connecting to 134.102.206.165
Http_connect_socket ERROR: Network is unreachable
Thanks,
Vic
>
> Message: 1
> Date: Tue, 12 Oct 2010 09:20:50 -0300
> From: Jorge Arellano Cid <jcid(a)dillo.org>
> Subject: Re: [Dillo-dev] Dillo config in LTIB
> To: dillo-dev(a)dillo.org
> Message-ID: <20101012122050.GB2862(a)dillo.org>
> Content-Type: text/plain; charset=us-ascii
>
> Hi,
>
> On Mon, Oct 11, 2010 at 08:12:09PM -0700, Vic wrote:
>> Hi,
>>
>> I installed Dillo in LTIB and while the splash page went up,
>> clicking links reported a dns error. I checked out dillorc and
>> saw no setting related to dns.
>
> Dillo uses getaddrinfo(). It depends on the OS.
>
>> Trying a link to localhost also
>> gave I/O errors.
>
> This is strange...
>
>> My trace as follows:
>>
>> Nav_open_url: new url='http://www.dillo.org/'
>> DNS error: TRY_AGAIN
>> Dns_server [0]: www.dillo.org is (nil)
>
> Does "ping www.dillo.org" resolve?
>
>
>> Using localhost:
>>
>> Nav_open_url: new url='http://localhost:88'
>> Dns_server [0]: localhost is 127.0.0.1
>> Connecting to 127.0.0.1
>> ** WARNING **: IO_write, closing with pending data not sent
>> ** WARNING **: "GET / HTTP/1.1\x0D
>> Connection: close\x0D
>> Accept-Charset: utf-8,*;q=0.8\x0D
>> Accept-Encoding: gzip\x0D
>> Host: localhost:88\x0D
>> Referer: http://localhost:88/\x0D
>> User-Agent: Dillo/2.1\x0D
>> \x0D
>> "
>>
>> Thanks for any help.
>
> It looks like something external closed the connection.
> Firewall?
>
> --
> Cheers
> Jorge.-
>
>
>
Oct. 14, 2010
Pending tasks
by jcid@dillo.org
On Tue, Oct 12, 2010 at 09:54:13PM +0200, Johannes Hofmann wrote:
> Hi Jorge,
>
> On Tue, Oct 12, 2010 at 02:59:24PM -0300, Jorge Arellano Cid wrote:
> > On Mon, Oct 11, 2010 at 11:08:11PM +0200, Johannes Hofmann wrote:
> > > On Mon, Oct 11, 2010 at 01:33:17PM -0300, Jorge Arellano Cid wrote:
> > > > Hi,
> > > >
> > > > With regard to:
> > > >
> > > > > 1 provide a dillo css compatibility table (and keep it up to date)
> > > > > 2 optimizing line-breaks - i.e. break at '-' but don't
> > > > > break e.g. <b>D</b>illo (after the 'D').
> > > > > 3 support for ­
> > > > > 4 support for text-indent
> > > > > 5 support font-variant
> > > > > 6 support more vertical-align options
> > > > > 7 make thickness of lines for underline and line-through
> > > > > depending on the font size and weight
> > > > > 8 support more border-style options (dotted, dashed ...)
> > > > > 9 support border-collapse (table related)
> > > >
> > > > 5 and 7 are in testing phase (in the repo).
> > > > AFAIK, 2,3,4,6,8 and 9 are open, with some work done for 6 by
> > > > corvid.
> > > >
> > > > After the big table rendering work long ago, I'm studying the
> > > > tables code again.
> > > >
> > > > Please notice that the doxygen dw documentation on table
> > > > algorithms (the math formulas part) is not up-to-date. It's done
> > > > in a different way since the big patch.
> > > >
> > > > My idea is to refresh my memory on this part of the code, and
> > > > then to try to devise a way to implement 8 and 9. At the same
> > > > time, working on this part will help for 6.
> > > >
> > > > Most probably we'll have to try to tackle these complex
> > > > problems coordinating our effort/knowledge. I'll be in better
> > > > shape to help with this after working for a while on tables.
> > > >
> > > > @Johannes, @corvid, please state what are your plans for work
> > > > on these remaining parts (if there's one already).
> > >
> > > I'm still working on CSS for the <html>-element (the issue reported
> > > by Jeremy).
> > > As my original patch had issues with pages that have multiple <head>
> > > elements, I decided to make some major changes to the
> > > StyleEngine-API.
> > > It looks ok now, but I need to do some more tests.
> >
> > I'm working on 9, and so far haven't found a convenient way to
> > tweak CSS atributes for a certain element (most probably my
> > fault). For instance, margin and padding are not meant as usual
> > for tables (CSS2 SPEC), see the difference between FF and dillo
> > here:
> >
> > http://www.dillo.org/test/bc1.html
>
> Oh, "The collapsing border model" in the spec looks tricky :-)
Given the too many overlapping directives in the model, it was
destined to be complex.
Personally I believe the collapsing model and its baroque
combinations are seldom used in the Web. Most sites are
structured around floating DIVs these days, and even the last
SPEC more or less recognizes the problem:
<cite>
Automatic table layout algorithm
The input to the suggested (non-normative) automatic layout
algorithm for tables is restricted to (1) the containing block
width and (2) the content and properties of the table and its
children. This restriction may be lifted.
</cite>
Nevertheless, digging into the SPEC makes clear that if the
collapsing border model is to be partly implemented (the simple
cases at least), there's a need to move rendering from the cell
widget into the table in Dw.
> > The only way I've found is to set a hard value in postprocessAttrs(),
> > but not yet a way to do it from Html_tag_open_table().
> >
> > As you're working on the API, please give me some hints on how
> > it works.
>
> The basic idea is that the stuff in css.cc is doing pure CSS
> and does not care about the actual implementation or rendering in
> dw/*. StyleEngine then translates this to dw::core::style::Style
> objects (which also were designed with CSS in mind).
Yes, that's the basis.
The engine also takes care of inheritance, rules, nonCSS hints
(i.e. old HTML visual directives) and their precedence.
One specific question is where's the correct point to take into
account that cell margin should be ignored in table cells.
One way is to tweak the value (set it to 0), but then the
"computed" value is not honoured as you point out.
Another is to ignore it in the draw method, but then draw()
must know what element it is drawing, and for "collapsing"
there's a need to know much more context.
I quite agree with your view of the subject matter.
> >
> > As currently the cell border, padding and margin are drawn by
> > the cell widget (textblock) inside a table, the general idea is
> > to make textblock consider "collapse" mode when inside a table.
>
> postprocessAttrs() does not take into account in which
> element we currently are (e.g. <table>, <td>, ...)
> You could check whether you currently are in a certain element by
> looking at doctree->top ()->element and do special things for
> certain elements.
> However looking at "The collapsing border model" I'm not sure
> whether you can get away with leaving the dw/* code as it is and
> just fiddling with the Style objects.
> For example if you have
>
> <td>1</td><td>2</td>
>
> There currently is no way to get the style of the first <td> when
> creating the style of the second <td> in StyleEngine - which you
> would need to compute the thickness of the border between the two.
Fully agreed.
> Actually we can't play with the values of the Style object in
> postprocessAttrs() as we like.
> They must contain what the spec mentions as "computed
> value". And as I read the spec, the computed value of e.g.
> border-width does not depend on the value of border-collapse.
I didn't know this ("computed value" requirement). Well, it
defines better what's to be done if ever.
> What *might* work is to take the Style object that StyleEngine gives
> you and modify it in in case that border-collapse is set before passing
> it to the table cell in src/table.cc:293.
Do you mean as if it was a nonCssHint?
I was afraid CSS would take precedence (i.e. if nonCssHint says
margin is 0 and CSS says it's 20, I'd bet on the second one!).
At this point, if we can set margin to zero for the "separate"
model, and half the value for "collapsing" it would be quite an
advance (in rendering). OTOH, it must be commented as a
workaround because it's not the correct way to implement it. An
implementation would need major surgery.
> > Another approach is to make dw::table render its borders and
> > margin, and only leave padding to the cell widget.
>
> Yes, that's the other way to do it. You could still reuse the border
> drawing helper routines from style.cc.
> Nevertheless it might be pretty complex. Not sure if it is really
> worth it...
Fully agreed.
Most probably a full implementation is not worth ATM, given the
small use cases out there. A partial workaround may help though.
> - but of course I don't want to discourage you :-)
you did! :-)
Seriously, so far we have a better effort estimation on it, and
we know how not to try to implement it, and what a correct
implementation would need.
Given the high cost/benefit, besides a workaround, i'd move to
investigate 8 and 6:
8 support more border-style options (dotted, dashed ...)
Once implemented, this code can be reused/moved if
necessary.
6 support more vertical-align options
I hope vertical-align in the textblock can help with
vertical align inside the table. If rows need to
coordinate it will be complex. This feature is much more
visible than border-collapse. This needs coordination
among us, and corvid has already advanced working on it.
--
Cheers
Jorge.-
Oct. 13, 2010
Re: Dillo config in LTIB
by vic@smartqsys.com
Hi Jorge,
Thanks for the prompt reply. I'm using ltib Linux kernel 2.6.34 on an Embedded Artists LPC3250 development board, no firewall. The board is connected to a gateway router.
Does "ping www.dillo.org" resolve?
It does not, it responds with "unreachable destination". However, a ping to a host in the local LAN is fine and a link to a host in the local LAN has this response...
> Nav_open_url: new url='http://192.168.1.6:88'
> Dns_server [0]: 192.168.1.6 is 192.168.1.6
> Connecting to 192.168.1.6
> ** WARNING **: IO_write, closing with pending data not sent
> ** WARNING **: "GET / HTTP/1.1\x0D
I read from a thread to place "nameserver=dns ip" in /etc/resolv.conf but nothing changed. I took a look at dns.c but I can't figure out where it's getting the value of "nameserver" from or whether it's really using that module.
Thanks,
Vic
Message: 1
Date: Tue, 12 Oct 2010 09:20:50 -0300
From: Jorge Arellano Cid
Subject: Re: [Dillo-dev] Dillo config in LTIB
To: dillo-dev(a)dillo.org
Message-ID: <20101012122050.GB2862(a)dillo.org>
Content-Type: text/plain; charset=us-ascii
Hi,
On Mon, Oct 11, 2010 at 08:12:09PM -0700, Vic wrote:
> Hi,
>
> I installed Dillo in LTIB and while the splash page went up,
> clicking links reported a dns error. I checked out dillorc and
> saw no setting related to dns.
Dillo uses getaddrinfo(). It depends on the OS.
> Trying a link to localhost also
> gave I/O errors.
This is strange...
> My trace as follows:
>
> Nav_open_url: new url='http://www.dillo.org/'
> DNS error: TRY_AGAIN
> Dns_server [0]: www.dillo.org is (nil)
Does "ping www.dillo.org" resolve?
> Using localhost:
>
> Nav_open_url: new url='http://localhost:88'
> Dns_server [0]: localhost is 127.0.0.1
> Connecting to 127.0.0.1
> ** WARNING **: IO_write, closing with pending data not sent
> ** WARNING **: "GET / HTTP/1.1\x0D
> Connection: close\x0D
> Accept-Charset: utf-8,*;q=0.8\x0D
> Accept-Encoding: gzip\x0D
> Host: localhost:88\x0D
> Referer: http://localhost:88/\x0D
> User-Agent: Dillo/2.1\x0D
> \x0D
> "
>
> Thanks for any help.
It looks like something external closed the connection.
Firewall?
--
Cheers
Jorge.-
Oct. 13, 2010
Pending tasks
by Johannes.Hofmann@gmx.de
Hi Jorge,
On Tue, Oct 12, 2010 at 02:59:24PM -0300, Jorge Arellano Cid wrote:
> On Mon, Oct 11, 2010 at 11:08:11PM +0200, Johannes Hofmann wrote:
> > On Mon, Oct 11, 2010 at 01:33:17PM -0300, Jorge Arellano Cid wrote:
> > > Hi,
> > >
> > > With regard to:
> > >
> > > > 1 provide a dillo css compatibility table (and keep it up to date)
> > > > 2 optimizing line-breaks - i.e. break at '-' but don't
> > > > break e.g. <b>D</b>illo (after the 'D').
> > > > 3 support for ­
> > > > 4 support for text-indent
> > > > 5 support font-variant
> > > > 6 support more vertical-align options
> > > > 7 make thickness of lines for underline and line-through
> > > > depending on the font size and weight
> > > > 8 support more border-style options (dotted, dashed ...)
> > > > 9 support border-collapse (table related)
> > >
> > > 5 and 7 are in testing phase (in the repo).
> > > AFAIK, 2,3,4,6,8 and 9 are open, with some work done for 6 by
> > > corvid.
> > >
> > > After the big table rendering work long ago, I'm studying the
> > > tables code again.
> > >
> > > Please notice that the doxygen dw documentation on table
> > > algorithms (the math formulas part) is not up-to-date. It's done
> > > in a different way since the big patch.
> > >
> > > My idea is to refresh my memory on this part of the code, and
> > > then to try to devise a way to implement 8 and 9. At the same
> > > time, working on this part will help for 6.
> > >
> > > Most probably we'll have to try to tackle these complex
> > > problems coordinating our effort/knowledge. I'll be in better
> > > shape to help with this after working for a while on tables.
> > >
> > > @Johannes, @corvid, please state what are your plans for work
> > > on these remaining parts (if there's one already).
> >
> > I'm still working on CSS for the <html>-element (the issue reported
> > by Jeremy).
> > As my original patch had issues with pages that have multiple <head>
> > elements, I decided to make some major changes to the
> > StyleEngine-API.
> > It looks ok now, but I need to do some more tests.
>
> I'm working on 9, and so far haven't found a convenient way to
> tweak CSS atributes for a certain element (most probably my
> fault). For instance, margin and padding are not meant as usual
> for tables (CSS2 SPEC), see the difference between FF and dillo
> here:
>
> http://www.dillo.org/test/bc1.html
Oh, "The collapsing border model" in the spec looks tricky :-)
>
> The only way I've found is to set a hard value in postprocessAttrs(),
> but not yet a way to do it from Html_tag_open_table().
>
> As you're working on the API, please give me some hints on how
> it works.
The basic idea is that the stuff in css.cc is doing pure CSS
and does not care about the actual implementation or rendering in
dw/*. StyleEngine then translates this to dw::core::style::Style
objects (which also were designed with CSS in mind).
>
> As currently the cell border, padding and margin are drawn by
> the cell widget (textblock) inside a table, the general idea is
> to make textblock consider "collapse" mode when inside a table.
postprocessAttrs() does not take into account in which
element we currently are (e.g. <table>, <td>, ...)
You could check whether you currently are in a certain element by
looking at doctree->top ()->element and do special things for
certain elements.
However looking at "The collapsing border model" I'm not sure
whether you can get away with leaving the dw/* code as it is and
just fiddling with the Style objects.
For example if you have
<td>1</td><td>2</td>
There currently is no way to get the style of the first <td> when
creating the style of the second <td> in StyleEngine - which you
would need to compute the thickness of the border between the two.
Actually we can't play with the values of the Style object in
postprocessAttrs() as we like.
They must contain what the spec mentions as "computed
value". And as I read the spec, the computed value of e.g.
border-width does not depend on the value of border-collapse.
What *might* work is to take the Style object that StyleEngine gives
you and modify it in in case that border-collapse is set before passing
it to the table cell in src/table.cc:293.
>
> Another approach is to make dw::table render its borders and
> margin, and only leave padding to the cell widget.
Yes, that's the other way to do it. You could still reuse the border
drawing helper routines from style.cc.
Nevertheless it might be pretty complex. Not sure if it is really
worth it... - but of course I don't want to discourage you :-)
Cheers,
Johannes
Oct. 12, 2010
Pending tasks
by jcid@dillo.org
On Mon, Oct 11, 2010 at 11:08:11PM +0200, Johannes Hofmann wrote:
> On Mon, Oct 11, 2010 at 01:33:17PM -0300, Jorge Arellano Cid wrote:
> > Hi,
> >
> > With regard to:
> >
> > > 1 provide a dillo css compatibility table (and keep it up to date)
> > > 2 optimizing line-breaks - i.e. break at '-' but don't
> > > break e.g. <b>D</b>illo (after the 'D').
> > > 3 support for ­
> > > 4 support for text-indent
> > > 5 support font-variant
> > > 6 support more vertical-align options
> > > 7 make thickness of lines for underline and line-through
> > > depending on the font size and weight
> > > 8 support more border-style options (dotted, dashed ...)
> > > 9 support border-collapse (table related)
> >
> > 5 and 7 are in testing phase (in the repo).
> > AFAIK, 2,3,4,6,8 and 9 are open, with some work done for 6 by
> > corvid.
> >
> > After the big table rendering work long ago, I'm studying the
> > tables code again.
> >
> > Please notice that the doxygen dw documentation on table
> > algorithms (the math formulas part) is not up-to-date. It's done
> > in a different way since the big patch.
> >
> > My idea is to refresh my memory on this part of the code, and
> > then to try to devise a way to implement 8 and 9. At the same
> > time, working on this part will help for 6.
> >
> > Most probably we'll have to try to tackle these complex
> > problems coordinating our effort/knowledge. I'll be in better
> > shape to help with this after working for a while on tables.
> >
> > @Johannes, @corvid, please state what are your plans for work
> > on these remaining parts (if there's one already).
>
> I'm still working on CSS for the <html>-element (the issue reported
> by Jeremy).
> As my original patch had issues with pages that have multiple <head>
> elements, I decided to make some major changes to the
> StyleEngine-API.
> It looks ok now, but I need to do some more tests.
I'm working on 9, and so far haven't found a convenient way to
tweak CSS atributes for a certain element (most probably my
fault). For instance, margin and padding are not meant as usual
for tables (CSS2 SPEC), see the difference between FF and dillo
here:
http://www.dillo.org/test/bc1.html
The only way I've found is to set a hard value in postprocessAttrs(),
but not yet a way to do it from Html_tag_open_table().
As you're working on the API, please give me some hints on how
it works.
As currently the cell border, padding and margin are drawn by
the cell widget (textblock) inside a table, the general idea is
to make textblock consider "collapse" mode when inside a table.
Another approach is to make dw::table render its borders and
margin, and only leave padding to the cell widget.
--
Cheers
Jorge.-
Oct. 12, 2010