Commit Graph

214 Commits

Author SHA1 Message Date
John-Mark Bell
ae8a3ede3e Fix bug #3572539: handle empty option elements. 2012-09-28 08:27:32 +01:00
Michael Drake
ee9ab42f75 Fixup for latest libdom. 2012-09-11 13:10:50 +01:00
Michael Drake
02afe314af Fix object box construction. 2012-08-21 16:46:46 +01:00
Michael Drake
2f408f0ecb More use of interns. 2012-07-26 15:57:33 +01:00
John-Mark Bell
5d8959b30c Fix reference handling when computing next node. 2012-07-22 17:52:30 +01:00
John-Mark Bell
1ecc94b187 Use case insensitive string comparisions for nodes 2012-07-15 01:39:25 +01:00
John-Mark Bell
64f098dfc7 Do not render noscript when script is enabled. 2012-07-15 01:17:04 +01:00
Vincent Sanders
bd244b121a Merge branch 'vince/forms-fixed'
Conflicts:
	Makefile.sources
	render/box_construct.c
	render/html.c
	render/html_internal.h

Merge Daniel Silverstones forms branch
2012-07-14 14:42:02 -06:00
Vincent Sanders
6ab102c3b1 Rework form acessors to deal with binding changes 2012-07-14 13:24:14 -06:00
Vincent Sanders
394357b7c9 fix quirks mode setting with libdom hubbub parser 2012-07-14 09:13:21 -06:00
Vincent Sanders
d7289f6701 remove parser binding layer 2012-07-13 17:37:22 -06:00
Daniel Silverstone
b42c43dc01 Early <input> elements working, but we need more caseless comparisons 2012-07-08 11:45:27 +01:00
Michael Drake
cc35563f2b Fix frameset processing.
svn path=/trunk/netsurf/; revision=13875
2012-04-16 16:14:40 +00:00
John Mark Bell
29708a2bf3 Fix logic inversion
svn path=/trunk/netsurf/; revision=13679
2012-03-25 11:23:09 +00:00
John Mark Bell
2b215a8df1 Initialise/finalise box constructor string constants
svn path=/trunk/netsurf/; revision=13653
2012-03-25 08:37:48 +00:00
John Mark Bell
d00b3c79c8 Squash aliasing warnings
svn path=/trunk/netsurf/; revision=13640
2012-03-24 22:30:28 +00:00
John Mark Bell
682eba9a56 Port box construction to libdom
svn path=/trunk/netsurf/; revision=13608
2012-03-24 18:47:51 +00:00
Vincent Sanders
b21f85a072 initial move to libdom
svn path=/trunk/netsurf/; revision=13573
2012-03-23 23:18:04 +00:00
Vincent Sanders
1490b52a6b NetSurf options rework (a=vince r=daniels,jmb)
svn path=/trunk/netsurf/; revision=13548
2012-03-22 09:34:34 +00:00
Michael Drake
081217a321 Add core options to disable fetch of foreground & background images.
Remove broken background image option from RISC OS front end.

svn path=/trunk/netsurf/; revision=13332
2011-12-23 19:48:09 +00:00
John Mark Bell
f2993e6ed0 content_get_url -> hlcache_handle_get_url, content__get_url -> content_get_url
svn path=/trunk/netsurf/; revision=13236
2011-12-04 14:55:23 +00:00
Michael Drake
62e551f34d Give INLINE_END boxes their own id reference.
svn path=/trunk/netsurf/; revision=13094
2011-10-29 12:03:54 +00:00
Michael Drake
ab45ecd228 Use lwc_string for box->id.
svn path=/trunk/netsurf/; revision=13093
2011-10-29 11:37:05 +00:00
John Mark Bell
6e23106b45 Convert more boxes before yielding
svn path=/trunk/netsurf/; revision=13023
2011-10-09 16:54:34 +00:00
John Mark Bell
4e574f1252 Improve performance of style selection
svn path=/trunk/netsurf/; revision=13000
2011-10-08 00:21:59 +00:00
Michael Drake
08b42089ca Pass nsurls through html_fetch_object.
svn path=/trunk/netsurf/; revision=12945
2011-10-04 10:23:47 +00:00
Michael Drake
012e0838cb Set url pointers to NULL after unref.
svn path=/trunk/netsurf/; revision=12942
2011-10-03 22:06:47 +00:00
Michael Drake
19f0f7053b More talloc destructors for nsurls.
svn path=/trunk/netsurf/; revision=12939
2011-10-03 21:49:28 +00:00
John Mark Bell
3043c58aaf Fix handling of preformatted text
svn path=/trunk/netsurf/; revision=12938
2011-10-03 21:32:32 +00:00
Michael Drake
2c41d4b44e Add talloc destructor for object_params.
svn path=/trunk/netsurf/; revision=12937
2011-10-03 21:04:54 +00:00
Michael Drake
898b01e721 More conversion to nsurl. (box->href, object params, imagemaps, (i)frames)
svn path=/trunk/netsurf/; revision=12933
2011-10-03 20:28:29 +00:00
Michael Drake
36eff6da2b Port more internals to nsurl. Front ends may need updating.
svn path=/trunk/netsurf/; revision=12926
2011-10-03 15:56:47 +00:00
John Mark Bell
74395ac888 Restartable box tree constructor. Yield between elements.
svn path=/trunk/netsurf/; revision=12912
2011-09-29 19:15:54 +00:00
John Mark Bell
f27d5a3e15 Remove gui_multitask
svn path=/trunk/netsurf/; revision=12828
2011-09-21 00:25:09 +00:00
John Mark Bell
b34502af82 Refactor http utilities
svn path=/trunk/netsurf/; revision=12595
2011-07-08 08:38:17 +00:00
Michael Drake
53f4da3420 First pass at core iframes. Currently lacking scrollbars.
svn path=/trunk/netsurf/; revision=12474
2011-06-14 20:00:18 +00:00
Michael Drake
ae46764ec4 Remove box_applet.
svn path=/trunk/netsurf/; revision=12427
2011-05-18 16:01:02 +00:00
John Mark Bell
e71691bae8 Merge branches/jmb/content-factory to trunk
svn path=/trunk/netsurf/; revision=12283
2011-05-06 20:40:09 +00:00
Michael Drake
1304964f92 Reduce number of page reflows and viewport
redraws as images are fetched:
+ Flag known-sized boxes generated by images.
+ Treat them as replaced all through layout.
+ Only reflow the document for fetched images
  if we don't already have the box at the
  right size.

svn path=/trunk/netsurf/; revision=12243
2011-04-27 13:50:49 +00:00
John Mark Bell
b5f94b26dc Apply same hack for :before as for :after
svn path=/trunk/netsurf/; revision=12224
2011-04-22 14:48:54 +00:00
John Mark Bell
8f3ed71cba Keep child objects of a HTML content in a list, instead of an array
svn path=/trunk/netsurf/; revision=11963
2011-03-10 23:08:34 +00:00
Chris Young
aa35550b86 plugins aren't images
svn path=/trunk/netsurf/; revision=11926
2011-03-06 15:34:48 +00:00
Chris Young
5ac45472c7 Fix broken CONTENT_PLUGIN API.
Add a default content handler for Amiga using the plugin interface, which passes
unknown files (currently images only) through DataTypes.

svn path=/trunk/netsurf/; revision=11924
2011-03-06 13:58:02 +00:00
Sven Weidauer
208b98bb44 Created content handler CONTENT_APPLE_IMAGE for Mac OS X that can handle all image file formats supported by Apples ImageIO framework. Right now used only for JPEG to get rid of libjpeg dependency.
svn path=/trunk/netsurf/; revision=11911
2011-03-05 09:49:15 +00:00
Michael Drake
be366b0e6b Move strip_leading_newline to box flags.
svn path=/trunk/netsurf/; revision=11889
2011-03-02 19:16:03 +00:00
Michael Drake
e3f00b8546 Cache space widths.
svn path=/trunk/netsurf/; revision=11877
2011-03-01 20:00:41 +00:00
John Mark Bell
d9280e8d72 Fix bug #2076786: do not apply fallback content to failed objects
svn path=/trunk/netsurf/; revision=11797
2011-02-25 19:14:38 +00:00
Michael Drake
4f47cad962 Non block level :after boxes aren't supported yet, so don't generate them.
svn path=/trunk/netsurf/; revision=11691
2011-02-15 23:08:38 +00:00
John Mark Bell
5d27aa256f Port to latest libcss
svn path=/trunk/netsurf/; revision=11526
2011-01-29 19:22:12 +00:00
Michael Drake
749dfa52ba Completion of first-letter and first-line pseudo element computed styles is not handled yet.
svn path=/trunk/netsurf/; revision=11228
2011-01-06 11:11:47 +00:00
John Mark Bell
77ea8a8d63 Always want inline style now (also prevents use of an uninitialised variable)
svn path=/trunk/netsurf/; revision=11220
2011-01-05 22:38:37 +00:00
John Mark Bell
9422e6dad0 Remove redundant validation -- if you successfully obtain a css_select_results object, then its base style is guaranteed to exist
svn path=/trunk/netsurf/; revision=11217
2011-01-05 20:14:34 +00:00
Michael Drake
08ed4c207f Update to new libcss API for simultanious selection for base element and its pseudo elements.
svn path=/trunk/netsurf/; revision=11215
2011-01-05 19:36:05 +00:00
Michael Drake
027726c432 Don't create iframes for hidden or non-displayed boxes.
svn path=/trunk/netsurf/; revision=11213
2011-01-05 01:26:29 +00:00
Michael Drake
61b7c722be Implement enough support for the :after pseudo element for the widely-used clearfix CSS layout hack to work.
svn path=/trunk/netsurf/; revision=11206
2011-01-04 21:52:43 +00:00
Chris Young
835d033e7b Amiga icon loader. Treeviews will now use the user's icons for content types.
svn path=/trunk/netsurf/; revision=10925
2010-10-30 14:23:38 +00:00
Chris Young
c052d534e7 Add some missing CONTENT_WEBPs. WebP images in HTML docs now display correctly.
svn path=/trunk/netsurf/; revision=10890
2010-10-16 15:26:28 +00:00
John Mark Bell
6e161d822c Restrict permissible content types for list marker images
svn path=/trunk/netsurf/; revision=10798
2010-09-19 11:27:43 +00:00
Michael Drake
0642cdafc2 Fix mouse.h file description. Add iframe comment.
svn path=/trunk/netsurf/; revision=10571
2010-06-09 09:53:07 +00:00
Michael Drake
bc9fef0a1a Add iframe comment.
svn path=/trunk/netsurf/; revision=10559
2010-06-03 15:15:31 +00:00
John Mark Bell
000e6ad3de It turns out that realloc(ptr, 0) --> free(ptr) is not actually required by the C standard (whereas realloc(NULL, size) --> malloc(size) is).
Therefore, explicitly model the behaviour expected by our libraries (that realloc of 0 size is equivalent to free).

svn path=/trunk/netsurf/; revision=10524
2010-04-30 07:00:58 +00:00
Daniel Silverstone
30e0cfe7a9 First step to fixing memory leaks -- Box model no longer leaks computed styles
svn path=/trunk/netsurf/; revision=10500
2010-04-27 21:38:41 +00:00
Vincent Sanders
03bb3e8636 remove _GNU_SOURCE define from everywhere.
strndup is not standard so provide an implementation.

svn path=/trunk/netsurf/; revision=10474
2010-04-24 15:22:17 +00:00
Daniel Silverstone
270ef59a98 Merge jmb/new-cache; r=dsilvers,rs=vince
svn path=/trunk/netsurf/; revision=10180
2010-03-28 12:56:39 +00:00
John Mark Bell
9e86512c4f Fix quirks mode propagation for @style.
svn path=/trunk/netsurf/; revision=9675
2009-11-15 10:10:00 +00:00
John Mark Bell
0665611cc2 Port to modified libcss API.
svn path=/trunk/netsurf/; revision=8997
2009-08-02 19:19:43 +00:00
John Mark Bell
c51b14383c Now that libwapcaplet guarantees NUL-termination of strings, stop copying them unnecessarily.
svn path=/trunk/netsurf/; revision=8785
2009-07-25 15:47:11 +00:00
John Mark Bell
ddeadd1c02 Merge LibCSS port to trunk.
svn path=/trunk/netsurf/; revision=8752
2009-07-23 23:05:34 +00:00
John Mark Bell
90c0fb6f3e Fix frame targets.
svn path=/trunk/netsurf/; revision=7729
2009-06-08 09:34:58 +00:00
John Mark Bell
243c1ba03f Limit scope of manually-defined NDEBUG. Purge a bunch of redundant #undef NDEBUG.
svn path=/trunk/netsurf/; revision=7593
2009-05-28 10:39:53 +00:00
John Mark Bell
c18945f771 Fix numbering of floated list items
svn path=/trunk/netsurf/; revision=7361
2009-04-29 10:44:20 +00:00
Michael Drake
a99a5bdd70 Move handling of TR height attribute from box construction to layout and add support for height property on TR.
svn path=/trunk/netsurf/; revision=7358
2009-04-28 20:13:10 +00:00
John Mark Bell
daf7a52dd6 Hubbub is no longer optional.
Remove libxml2 parser binding.

svn path=/trunk/netsurf/; revision=7115
2009-04-17 00:54:27 +00:00
John Mark Bell
6a7b1a73a7 Fix compilation with GCC 2.95.
It astounds me how some of this lot compiled at all.

svn path=/trunk/netsurf/; revision=7104
2009-04-16 12:49:49 +00:00
John Mark Bell
cc1094f0ac Utilise hubbub's form association callback.
Please can we dispense with the libxml binding? It's causing much #ifdef mess.
Fix encoding of <input type=image> names -- previously were output as raw utf-8, rather than in the submission charset.
Actually bother to destroy forms in a document, and the controls associated with them. We still leak non form-associated controls, but that's too much effort to fix right now.

svn path=/trunk/netsurf/; revision=6573
2009-02-20 11:39:25 +00:00
Michael Drake
b7a1b3999e Implement percentage heights for block level elements in normal flow, floats and positioned boxes. Percentage min/max-height not yet handled.
svn path=/trunk/netsurf/; revision=5550
2008-10-12 21:22:28 +00:00
Michael Drake
8a6e803029 Load SVGs in IMG elements.
svn path=/trunk/netsurf/; revision=5463
2008-09-30 12:17:16 +00:00
John Mark Bell
385d274f5b A bunch of fixes to the libpng binding
svn path=/trunk/netsurf/; revision=5338
2008-09-15 22:45:44 +00:00
Michael Drake
668dd06dc3 Add comments and change height attribute handling on TR to only alter the height if attribute height is greater than current height.
svn path=/trunk/netsurf/; revision=5259
2008-09-05 13:04:30 +00:00
Michael Drake
55e2831909 Ignore height/width attributes on elements where they are not permitted.
svn path=/trunk/netsurf/; revision=5162
2008-08-21 18:00:32 +00:00
François Revel
da1b02f77f C89
svn path=/trunk/netsurf/; revision=5103
2008-08-13 17:45:44 +00:00
John Mark Bell
114f948f36 Ignore blank maxlength attributes
svn path=/trunk/netsurf/; revision=4912
2008-08-05 09:54:55 +00:00
John Mark Bell
e004e0e745 Squash more warnings.
svn path=/trunk/netsurf/; revision=4210
2008-05-26 10:46:45 +00:00
John Mark Bell
23fb72ea6b The core code has always assumed a locale of "C".
Do not change the locale globally, else things will break in weird and 
wonderful ways.

Introduce utils/locale.[ch], which provide locale-specific wrappers for various 
functions (currently just the <ctype.h> ones).

Fix up the few places I can see that actually require that the underlying 
locale is paid attention to.

Some notes:

  1) The GTK frontend code has not been touched. It is possible that reading of 
     numeric values (e.g. from the preferences dialogue) may break with this 
     change, particularly in locales that use something other than '.' as their
     decimal separator.
  2) The search code is left unchanged (i.e. assuming a locale of "C"). 
     This may break case insensitive matching of non-ASCII characters. 
     I doubt that ever actually worked, anyway. In future, it should use
     Unicode case conversion to achieve the same effect.
  3) The text input handling in the core makes use of isspace() to detect
     word boundaries. This is fine for western languages (even in the C locale,
     which it's currently assuming). It will, however, break for CJK et. al. 
     (this has always been the case, rather than being a new issue)
  4) text-transform uses locale-specific variants of to{lower,upper}. In future
     this should probably be performing Unicode case conversion. This is the
     only part of the core code that makes use of locale information.

In future, if you require locale-specific behaviour, do the following:

  setlocale(LC_<whatever>, "");
  <your operation(s) here>
  setlocale(LC_<whatever>, "C");

  The first setlocale will change the current locale to the native environment.
  The second setlocale will reset the current locale to "C".
  Any value other than "" or "C" is probably a bug, unless there's a really
  good reason for it.

In the long term, it is expected that all locale-dependent code will reside in 
platform frontends -- the core being wholly locale agnostic (though assuming 
"C" for things like decimal separators).


svn path=/trunk/netsurf/; revision=4153
2008-05-13 14:37:44 +00:00
Michael Drake
83a83757ab Only record that the HTML alignment was set by a table element if it is actually set.
svn path=/trunk/netsurf/; revision=4058
2008-03-29 19:51:00 +00:00
James Shaw
9402e110e9 Implement sprite support for GTK using librosprite
svn path=/trunk/netsurf/; revision=4051
2008-03-29 13:30:04 +00:00
John Mark Bell
bdf3c5e56b Squash "implicit declaration of function 'gui_multitask'" warnings.
svn path=/trunk/netsurf/; revision=3980
2008-03-19 16:46:26 +00:00
Michael Drake
f7be887580 Centered tables are a special case.
svn path=/trunk/netsurf/; revision=3880
2008-03-05 08:09:06 +00:00
Michael Drake
f752aca0d4 Fix align attributes on TABLE etc being overridden in the table's cells by the default alignment of cells with no align attribute.
svn path=/trunk/netsurf/; revision=3873
2008-02-28 20:36:09 +00:00
Michael Drake
748937547a Don't meddle with blockquote's margins.
svn path=/trunk/netsurf/; revision=3869
2008-02-26 22:31:38 +00:00
John Mark Bell
1cf46a6792 SignednessWarnings.squash()
Aside from a number of instances of const being cast away (mostly relating to the urldb, which is correct to only export const data) this now builds warning-free with GCC 4 on x86, which is nice.

svn path=/trunk/netsurf/; revision=3868
2008-02-25 17:58:00 +00:00
Michael Drake
a4e1ffda1a Improve handling of HTML attributes / markup:
* Only apply presentational HTML attributes if no more
   important CSS has been set for the property. (NetSurf used
   to be a bit hit-and-miss when presentational markup and
   CSS were mixed.)
 * Change table cellpadding and border handling to happen as
   soon the boxes styles are available, rather than after the
   whole table has been constructed. Also fix default table
   border colour.
 * Improve handling of CENTER tag and ALIGN attribute. These
   could not be correctly supported in the default CSS file,
   so block level element alignment is now done during box
   construction. (Fixes #1891379, #1824492, #1723853)
Form improvements:
 * Small MAXLENGTH values on text inputs now reduce element
   width. (Fixes #1894854)
 * Prevent select option text from wrapping.

svn path=/trunk/netsurf/; revision=3866
2008-02-25 16:37:48 +00:00
John Mark Bell
1fc91faff1 Also flag box as invisible so it'll have no effect on layout
svn path=/trunk/netsurf/; revision=3864
2008-02-25 08:56:11 +00:00
John Mark Bell
73c02364a8 Ignore spurious top-level framesets correctly (previously declared memory exhaustion, which is obviously wrong)
svn path=/trunk/netsurf/; revision=3863
2008-02-25 08:53:04 +00:00
John Mark Bell
2c2ac87e37 Prevent tabbing into textfields whose styling is display: none;
svn path=/trunk/netsurf/; revision=3849
2008-02-07 00:50:37 +00:00
Richard Wilson
7163f5aadd Fix parsing of invalid colour values becoming CSS_COLOR_NONE. Make all colour parsing code common.
svn path=/trunk/netsurf/; revision=3625
2007-10-09 16:25:25 +00:00
James Bursa
21db9de5f8 Make F9 dump box tree to an editor for easier debugging.
svn path=/trunk/netsurf/; revision=3529
2007-08-20 02:39:49 +00:00
Vincent Sanders
2f864eeecc Update all source code file headers to reflect GPL version 2 only and contain appropriate licence text
svn path=/trunk/netsurf/; revision=3486
2007-08-08 16:16:03 +00:00
Daniel Silverstone
6807b4208a Remove the netsurf/ from the include paths and rationalise use of <> vs "" in includes
NetSurf includes are now done with ""s and other system includes with <>s as C intended.
The scandeps tool has been updated to only look for ""ed includes, and to verify that the
files exist in the tree before adding them to the dependency lines. The depend rule has
therefore been augmented to make sure the autogenerated files are built before it is run.

This is untested under self-hosted RISC OS builds. All else tested and works.


svn path=/trunk/netsurf/; revision=3307
2007-05-30 22:39:54 +00:00
John Mark Bell
00377eec58 Import font containing symbols we need for list items.
(Un)Install font appropriately at runtime.
Make list markers use the right characters.

svn path=/trunk/netsurf/; revision=3280
2007-05-14 22:57:11 +00:00