NetSurf 2.8
by Michael Drake
We're planning a NetSurf 2.8 release. Here's the current change log:
http://www.netsurf-browser.org/temp/ChangeLog
Let me know if there's anything wrong/missing.
The release is mainly a bugfix release. It addresses the following issues
with NetSurf 2.7:
- RISC OS release shipped with welcome page with broken search
- Cocoa release required Xcode to be installed for various MIME mappings
- Framebuffer release failed to load when path to cookies file was unset
- Libraries didn't build without warnings with GCC 4.6
--
Michael Drake (tlsa) http://www.netsurf-browser.org/
12 years
image content handler bitmap entry refactor
by Vincent Sanders
This removes the bitmap entry from the generic content structure and
moves it into individual image handlers.
I think I found all the references but I may have missed some in a
frontend, please check
This is the last refactor step before altering the image handlers to
using a global bitmap cache.
I am unsure if adding the get_internal content method was the right
thing to do but as several places still use content_get_bitmap to
extract the underlying bitmap I thought a generic interface with
context allows for future use.
Comments or suggestions welcome.
amiga/dt_anim.c | 27 ++++++++++++++--------
amiga/dt_picture.c | 38 +++++++++++++++++++++---------
amiga/icon.c | 38 +++++++++++++++++++++---------
cocoa/apple_image.m | 23 +++++++++++++++---
content/content.c | 54 ++++++++++++++++++++++++++++++++++++++++----
content/content.h | 1
content/content_protected.h | 10 ++++----
image/bmp.c | 18 +++++++++++---
image/gif.c | 18 +++++++++++---
image/ico.c | 18 +++++++++++---
image/jpeg.c | 22 ++++++++++++++---
image/mng.c | 47 ++++++++++++++++++++++++--------------
image/nssprite.c | 33 +++++++++++++++++---------
image/png.c | 10 ++++++--
image/rsvg.c | 16 +++++++++----
image/webp.c | 30 +++++++++++++++++-------
render/html_redraw.c | 41 +++++++++++++++------------------
17 files changed, 319 insertions(+), 125 deletions(-)
--
Regards Vincent
http://www.kyllikki.org/
12 years
Re: NetSurf 2.8
by Michael Drake
In article
<93eb89729977335a7351c1b20d1c84fa-EhVcX1lFRQVaRwYcDTpQCEFddQZLVF5dQUNBAjBYWEJGUFEWXFloA1VTMl5cQEEEXFtbRlk=-webmailer2@s,
m0n0 <ole(a)monochrom.net> wrote:
> I'm moving to a new home, so I can't do anything for this... if needed.
There shouldn't be anything required of you.
Hope the move goes well. :)
--
Michael Drake (tlsa) http://www.netsurf-browser.org/
12 years
Core frames progress
by Michael Drake
Iframes are now done.
Text selection in iframes is sorted. Search is not broken now, however,
it's currently not possible to search the content of frames. There is a
place to implement that now though.
Those were the last uses of the current_redraw_browser global, so I've
removed that from the source tree.
I've also fixed up iframe scrolling quite a bit.
I've started on frames. Current work in progress:
http://www.netsurf-browser.org/temp/core-frames.png
( viewing http://starfighter.acornarcade.com/ )
At the moment it just renders them. Still got to do interaction (e.g.
clicking links, scrolling), and some other things.
--
Michael Drake (tlsa) http://www.netsurf-browser.org/
12 years
image handler refactor beginning
by Vincent Sanders
Add macro helper for adding image content handlers
Make all image handlers use the macro
Clean up forward references in image code
Clean up libmng handler to stop it rummaging through mime type names to change its behaviour.
Get ready for next refactor (removing bitmap pointer from content)
content/content_factory.h | 45 ++
image/bmp.c | 72 ---
image/gif.c | 46 --
image/ico.c | 56 --
image/image.c | 7
image/image.h | 1
image/jpeg.c | 52 --
image/mng.c | 872 +++++++++++++++++++++-------------------------
image/mng.h | 4
image/nssprite.c | 90 +---
image/png.c | 47 --
image/rsvg.c | 51 --
image/svg.c | 119 +-----
image/webp.c | 93 +---
14 files changed, 586 insertions(+), 969 deletions(-)
--
Regards Vincent
http://www.kyllikki.org/
12 years
[PATCH] libCSS: Support for page-break-after, page-break-before, page-break-inside
by James Montgomerie
The attached patch completes support for page-break-after, page-break-before, page-break-inside in libCSS.
To do this, I've implemented a css_computed_page structure, an instantiation of which is pointed to (if used) by css_computed_style's page element (previously a NULL void *), then just filled in the property setters getters etc. Hopefully you'll find the style and intentions all in keeping with how things should be in libCSS.
Thanks,
Jamie.
12 years
Thanks for libCSS!
by James Montgomerie
Hello,
Just wanted to send an email of appreciation - I'm using libCSS (with a modified libwapcaplet and libparserutils) in my ebook rendering library "libEucalyptus". As an indie developer, it's really what's made it plausible for me to create something that can render CSS, so I'm really grateful.
It's now used in its first commercial product, K-NFB's "Blio" book reading app (http://blog.th.ingsmadeoutofotherthin.gs/introducing-blio-with-eucalyptus...). In this product, the books can be ePub XHTML, or a proprietary XML format based on XAML. libEucalyptus uses libCSS to style both (with rendering done by my own code).
I which I could contribute more back to libCSS, but it's generally done everything I've asked of it with no modifications necessary. The one area I've changed it is to add handling for the page-break properties (important for book rendering) - I'll have a patch sent to the list for that shortly.
As I said, I've also implemented a modified libwapcaplet. It's backed by iOS-native strings to allow easier interoperation with the rest of my code (by the way, it's great that libwapcaplet is factored out of libCSS like this - made this very easy to do) but I imagine that's not something that would be all that useful to others?
Thanks again!
Jamie.
12 years
segfault bug in iframe code
by Vincent Sanders
Saw this reported, took a quick look but did not get anywhere, just a
quick mail instead of dropping it on the floor
url to trigger is http://www.canford.co.uk/Products/74-4843_VOICE-TECHNOLOGIES-VT700B-HEADW...
basically layout_calculate_descendant_bboxes() in render/layout.c:5003
is asserting because box->height is 0
The full backtrace is:
#0 0x00007ffff34d5a75 in *__GI_raise (sig=<value optimised out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007ffff34d95c0 in *__GI_abort () at abort.c:92
#2 0x00007ffff34ce941 in *__GI___assert_fail (assertion=0x50cd20 "(box->width != 2147483647) && (box->height != (-2147483647 - 1))",
file=<value optimised out>, line=5007, function=0x50d3c0 "layout_calculate_descendant_bboxes") at assert.c:81
#3 0x000000000049c911 in layout_calculate_descendant_bboxes (box=0x10cdb10) at render/layout.c:5007
#4 0x000000000049c79b in layout_calculate_descendant_bboxes (box=0x10cd660) at render/layout.c:5058
#5 0x000000000049c79b in layout_calculate_descendant_bboxes (box=0x10cd930) at render/layout.c:5058
#6 0x000000000049c7ef in layout_calculate_descendant_bboxes (box=0x10cc220) at render/layout.c:5071
#7 0x000000000049c79b in layout_calculate_descendant_bboxes (box=0x10cc5e0) at render/layout.c:5058
#8 0x000000000049c7ef in layout_calculate_descendant_bboxes (box=0xfa2c40) at render/layout.c:5071
#9 0x000000000049c79b in layout_calculate_descendant_bboxes (box=0xfa2e20) at render/layout.c:5058
#10 0x000000000049c7ef in layout_calculate_descendant_bboxes (box=0xefac30) at render/layout.c:5071
#11 0x00000000004a5855 in layout_document (content=0xac5850, width=<value optimised out>, height=572) at render/layout.c:185
#12 0x00000000004902c6 in html_reformat (c=0xac5850, width=979, height=572) at render/html.c:1817
#13 0x0000000000432880 in content__reformat (c=0xac5850, background=false, width=979, height=572) at content/content.c:361
#14 0x000000000044d08f in browser_window_callback (c=0xcaa1e0, event=0x7fffffffd770, pw=<value optimised out>) at desktop/browser.c:811
#15 0x000000000043a249 in hlcache_content_callback (c=<value optimised out>, msg=<value optimised out>, data=..., pw=0x2b54) at content/hlcache.c:701
#16 0x0000000000432683 in content_broadcast (c=0xac5850, msg=CONTENT_MSG_READY, data=...) at content/content.c:643
#17 0x000000000043340c in content_set_ready (c=0xac5850) at content/content.c:307
#18 0x00000000004914d6 in html_finish_conversion (c=0xac5850) at render/html.c:696
#19 0x0000000000491672 in html_convert_css_callback (css=0xd44c20, event=0x7fffffffd970, pw=<value optimised out>) at render/html.c:1358
#20 0x000000000043a249 in hlcache_content_callback (c=<value optimised out>, msg=<value optimised out>, data=..., pw=0x2b54) at content/hlcache.c:701
#21 0x0000000000432683 in content_broadcast (c=0xdce4b0, msg=CONTENT_MSG_DONE, data=...) at content/content.c:643
#22 0x000000000043339a in content_set_done (c=0xdce4b0) at content/content.c:321
#23 0x0000000000443806 in nscss_content_done (css=0xdce890, pw=<value optimised out>) at css/css.c:529
#24 0x0000000000442f25 in nscss_register_imports (c=0xdce890) at css/css.c:719
#25 0x0000000000443105 in nscss_import_complete (ctx=0xe2fb30) at css/css.c:667
#26 0x0000000000443190 in nscss_import (handle=<value optimised out>, event=0x2b54, pw=0x6) at css/css.c:642
#27 0x000000000043a249 in hlcache_content_callback (c=<value optimised out>, msg=<value optimised out>, data=..., pw=0x2b54) at content/hlcache.c:701
#28 0x0000000000432683 in content_broadcast (c=0xe54bc0, msg=CONTENT_MSG_DONE, data=...) at content/content.c:643
#29 0x000000000043339a in content_set_done (c=0xe54bc0) at content/content.c:321
#30 0x0000000000443806 in nscss_content_done (css=0xe54fa0, pw=<value optimised out>) at css/css.c:529
#31 0x0000000000443022 in nscss_convert_css_data (c=0xe54fa0) at css/css.c:334
#32 0x0000000000443564 in nscss_convert (c=0xe54bc0) at css/css.c:301
#33 0x00000000004336e0 in content_convert (llcache=<value optimised out>, event=<value optimised out>, pw=<value optimised out>)
at content/content.c:282
#34 content_llcache_callback (llcache=<value optimised out>, event=<value optimised out>, pw=<value optimised out>) at content/content.c:174
#35 0x000000000043b69c in llcache_object_notify_users (object=0xe30750) at content/llcache.c:1500
#36 0x000000000043ba30 in llcache_poll () at content/llcache.c:315
#37 0x000000000043a949 in hlcache_poll () at content/hlcache.c:181
#38 0x0000000000453e81 in netsurf_main_loop () at desktop/netsurf.c:183
#39 0x000000000046b894 in main (argc=2, argv=0x7fffffffe078) at gtk/gui.c:495
and parameters to teh assert are:
(gdb) up 3
#3 0x000000000049c911 in layout_calculate_descendant_bboxes (box=0x10cdb10) at render/layout.c:5007
5007 assert((box->width != UNKNOWN_WIDTH) && (box->height != AUTO));
(gdb) p box->width
$1 = 2147483647
(gdb) p box->height
$2 = 0
just fyi UNKNOWN_WIDTH is defined to INT_MAX and AUTO is INT_MIN
--
Regards Vincent
http://www.kyllikki.org/
12 years, 1 month