Commit Graph

48 Commits

Author SHA1 Message Date
John Mark Bell 78d194cb77 Rework handling of HTTP redirects -- we now count the number of redirects followed for a given item and abort if a fixed limit is reached. This fixes sites which have pages that redirect to themselves.
Redirect handling is now transparent to clients of fetchcache.

The new scheme works as follows:

1) Request content for URL (fetchcache()
2) Start fetch of content (fetchcache_go()
3) If no redirect, continue through LOADING, READY, DONE etc. states as before
   If redirect, receive NEWPTR for each redirect that occurs, then continue
   through LOADING, READY, DONE etc. states as before.

The upshot of this is that redirects result in extra contents being created. It also means that, until LOADING has been received, the content (and thus the URL being fetched) may change. Therefore, fetchcache clients should expect to have to deal with transient data prior to LOADING occurring.

As a necessary side-effect of this, the HTML object URLs and CSS @import URLs are no longer stored alongside the relevant contents. These URLs can be accessed by interrogating the url member of struct content anyway, so it was a rather redundant scheme before.

svn path=/trunk/netsurf/; revision=3787
2008-01-28 01:35:00 +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
Michael Drake ba23e4b693 Update project URL.
svn path=/trunk/netsurf/; revision=3073
2006-11-27 15:35:18 +00:00
Richard Wilson 74fa727509 Experimental new frames code.
svn path=/trunk/netsurf/; revision=2906
2006-09-02 15:52:41 +00:00
Adrian Lees dbfdafdf18 [project @ 2006-02-15 23:09:53 by adrianl]
Extend text selection, copying, saving and searching code to handle textplain contents; modified textplain code to accept other line terminators

svn path=/import/netsurf/; revision=2081
2006-02-15 23:09:55 +00:00
James Bursa c28747d710 [project @ 2005-10-30 21:23:03 by bursa]
Add page, index, and box to struct content_html_data. Implement html_replace_object() and html_find_target(). No longer combine box trees of frames and frameset (was causing crashes).

svn path=/import/netsurf/; revision=1874
2005-10-30 21:23:03 +00:00
James Bursa 8afd957986 [project @ 2005-08-20 22:52:20 by bursa]
Work towards implementing link target frames: add target attribute to struct box, add frame to struct content_html_object and html_fetch_object().

svn path=/import/netsurf/; revision=1849
2005-08-20 22:52:20 +00:00
James Bursa ff74a126f7 [project @ 2005-05-21 23:30:19 by bursa]
Improve selector specificity support by adding "working stylesheets" with pre-sorted lists of rules. This also simplifies css_get_style(). The stylesheet origin is now encoded in the specificity. Improve output of css_dump_style().

svn path=/import/netsurf/; revision=1729
2005-05-21 23:30:19 +00:00
James Bursa 2920bca14a [project @ 2005-04-09 09:47:36 by bursa]
Move HTML contents almost fully over to talloc(), simplifying code. Improvements to title attributes, broken forms, cellpadding. Reorder functions in box_construct.c.

svn path=/import/netsurf/; revision=1608
2005-04-09 09:47:37 +00:00
James Bursa 1a52a32e5d [project @ 2005-02-20 13:18:21 by bursa]
Font rewrite, part 2.

svn path=/import/netsurf/; revision=1518
2005-02-20 13:18:21 +00:00
James Bursa 7a71363d76 [project @ 2005-01-01 22:05:20 by bursa]
xcalloc/xrealloc/xstrdup-purge week, part 5. Improve and simplify encoding detection.

svn path=/import/netsurf/; revision=1416
2005-01-01 22:05:21 +00:00
John Mark Bell fff5f231ed [project @ 2004-10-17 22:13:34 by jmb]
Lose hard-coded stylesheet URLs.

svn path=/import/netsurf/; revision=1323
2004-10-17 22:13:35 +00:00
James Bursa fd4e3de0b5 [project @ 2004-10-17 21:10:19 by bursa]
Move box tree from html.layout->children to html.layout. Work on scrollbars.

svn path=/import/netsurf/; revision=1314
2004-10-17 21:10:19 +00:00
John Mark Bell 006344401c [project @ 2004-08-15 19:06:23 by jmb]
Rationalise image redraw.
Supply background colour when redrawing contents
Reenable printing of background images
Require Tinct 0.07

svn path=/import/netsurf/; revision=1234
2004-08-15 19:06:24 +00:00
John Tytgat 7d3a242132 [project @ 2004-08-14 12:57:00 by joty]
Using more stddef.h types.

svn path=/import/netsurf/; revision=1230
2004-08-14 12:57:02 +00:00
James Bursa acfb4c0adb [project @ 2004-08-11 22:08:25 by bursa]
Remove content_add_instance(), content_remove_instance(), content_reshape_instance(). Add content_open(), content_close(). Implement for CONTENT_HTML.

svn path=/import/netsurf/; revision=1213
2004-08-11 22:08:26 +00:00
John Mark Bell 912d09b1cb [project @ 2004-08-11 16:26:13 by jmb]
Make content_redraw return a bool
Printing of foreground images now uses OS_SpriteOp
Printing of background images disabled
Mega-paranoid SWI result checking in htmlredraw.c
Rearranged GIF data structure slightly - updates to reflect this.
Other stuff I've probably forgotten

svn path=/import/netsurf/; revision=1208
2004-08-11 16:26:13 +00:00
John Mark Bell 8e650e3e39 [project @ 2004-07-30 23:40:00 by jmb]
Rework stylesheet fetching code to remove dependence on magic numbers (now uses
values defined in html.h)
Make ad blocking optional.

svn path=/import/netsurf/; revision=1168
2004-07-30 23:40:01 +00:00
James Bursa 58e2d033ec [project @ 2004-07-18 17:38:01 by bursa]
Improve form control interaction code. Replace box_under_area() with simpler box_at_point(). Detect objects for menu once on menu opening. Remove obsolete text selection code.

svn path=/import/netsurf/; revision=1096
2004-07-18 17:38:01 +00:00
James Bursa f8825b81e4 [project @ 2004-06-20 23:09:51 by bursa]
Implement content_stop() and html_stop().

svn path=/import/netsurf/; revision=982
2004-06-20 23:09:52 +00:00
James Bursa 08177fa581 [project @ 2004-06-10 20:41:26 by bursa]
Add global content list. Better error handling in content code. Improved code documentation. Remove some obsolete functions. Implement debug window listing contents.

svn path=/import/netsurf/; revision=951
2004-06-10 20:41:26 +00:00
James Bursa 035eaa7849 [project @ 2004-06-09 23:13:55 by bursa]
Fix double-free of background image url. Add background parameter to html_fetch_object().

svn path=/import/netsurf/; revision=944
2004-06-09 23:13:55 +00:00
John Mark Bell 78594f3f60 [project @ 2004-06-09 19:55:06 by jmb]
Implement background-image, background-repeat, background-position and background-attachment CSS properties.

background-attachment and background-position need more work.
Some redraw issues remain.

svn path=/import/netsurf/; revision=938
2004-06-09 19:55:06 +00:00
James Bursa 8b78a7803d [project @ 2004-05-21 14:26:59 by bursa]
Improved handling of objects and frames; some work on malloc() failure in box conversion.

svn path=/import/netsurf/; revision=880
2004-05-21 14:26:59 +00:00
John Tytgat 226c002d57 [project @ 2004-05-09 16:49:53 by joty]
Type change of struct content_html.encoding from xmlCharEncoding to xmlChar; Pickup Content-Type charset in the HTML file and use this if the server didn't send it or there was no server involved (e.g. HTML loading from disk).

svn path=/import/netsurf/; revision=846
2004-05-09 16:49:53 +00:00
John Mark Bell 4b38a2d61a [project @ 2004-03-26 22:16:31 by jmb]
Imagemap support

svn path=/import/netsurf/; revision=671
2004-03-26 22:16:31 +00:00
John Mark Bell b2242ae0f0 [project @ 2004-03-24 20:10:03 by jmb]
Remove need for XML parse tree to be kept in memory.
The source document is now reparsed when saving complete.

svn path=/import/netsurf/; revision=662
2004-03-24 20:10:03 +00:00
John Mark Bell 9c723a5924 [project @ 2004-03-24 00:07:21 by jmb]
Add URL rewriting for most URLs.
Still TODO:
	1) rewriting of @import rules
	2) Objects used by embedded html pages

NB. This change means that the XML parse tree is kept in memory until the content is freed.

svn path=/import/netsurf/; revision=659
2004-03-24 00:07:21 +00:00
James Bursa fba46de9cb [project @ 2004-03-11 02:19:13 by bursa]
Add source_data to content structure and remove equivalents from individual contents.

svn path=/import/netsurf/; revision=606
2004-03-11 02:19:14 +00:00
John Mark Bell 217eae922b [project @ 2004-03-08 18:21:21 by jmb]
Attempt to detect document charset encoding if the server doesn't send it.

svn path=/import/netsurf/; revision=592
2004-03-08 18:21:21 +00:00
James Bursa 7897a98a4c [project @ 2004-02-25 15:12:57 by bursa]
Implement scaling; rewrite desktop/browser; add riscos/thumbnail; rewrite history.

svn path=/import/netsurf/; revision=566
2004-02-25 15:12:58 +00:00
James Bursa a7f3829d55 [project @ 2004-02-20 00:43:17 by bursa]
Fix html_destroy() crash, add documentation.

svn path=/import/netsurf/; revision=562
2004-02-20 00:43:17 +00:00
James Bursa 86f7dfbc96 [project @ 2004-02-15 20:39:53 by bursa]
Document box.h, remove struct page_elements.

svn path=/import/netsurf/; revision=547
2004-02-15 20:39:53 +00:00
James Bursa 1bdcb44639 [project @ 2004-01-24 17:08:15 by bursa]
Add permitted_types to html_fetch_object().

svn path=/import/netsurf/; revision=500
2004-01-24 17:08:16 +00:00
James Bursa 825c81f03a [project @ 2004-01-02 12:04:04 by bursa]
Use memory pool for box tree.

svn path=/import/netsurf/; revision=477
2004-01-02 12:04:04 +00:00
James Bursa ce0d5294d5 [project @ 2003-12-27 20:15:22 by bursa]
Use charset from Content-Type header.

svn path=/import/netsurf/; revision=460
2003-12-27 20:15:23 +00:00
James Bursa f1b59814f8 [project @ 2003-12-26 00:17:55 by bursa]
New url_join using liburi, <base href=...>.

svn path=/import/netsurf/; revision=441
2003-12-26 00:17:55 +00:00
John Mark Bell 01d735dab8 [project @ 2003-11-12 22:22:45 by jmb]
Begin frames support. Just data structure handling for now. None of this
code is called atm.

svn path=/import/netsurf/; revision=416
2003-11-12 22:22:45 +00:00
James Bursa 9c2e649290 [project @ 2003-09-10 17:10:25 by bursa]
Set graphics window when rendering objects.

svn path=/import/netsurf/; revision=279
2003-09-10 17:10:25 +00:00
James Bursa 9fa8f4037a [project @ 2003-09-07 21:08:13 by bursa]
Document cache and content, split struct content up.

svn path=/import/netsurf/; revision=270
2003-09-07 21:08:13 +00:00
John Mark Bell b19462e1ff [project @ 2003-09-03 21:58:54 by jmb]
Call content_reshape_instance

svn path=/import/netsurf/; revision=265
2003-09-03 21:58:54 +00:00
James Bursa 5911578eaf [project @ 2003-07-15 14:37:34 by bursa]
Implement html_redraw.

svn path=/import/netsurf/; revision=218
2003-07-15 14:37:34 +00:00
James Bursa 889ae885c6 [project @ 2003-07-14 22:57:45 by bursa]
Add content instances.

svn path=/import/netsurf/; revision=216
2003-07-14 22:57:45 +00:00
James Bursa 017fc4eb4b [project @ 2003-06-30 12:44:02 by bursa]
New file headers.

svn path=/import/netsurf/; revision=190
2003-06-30 12:44:03 +00:00
James Bursa 0c0ff3c596 [project @ 2003-06-17 19:24:20 by bursa]
Change fetchcache system to store loading contents in cache.

svn path=/import/netsurf/; revision=180
2003-06-17 19:24:21 +00:00
James Bursa 09b1ede5a3 [project @ 2003-04-15 17:53:00 by bursa]
Inline images and related.

svn path=/import/netsurf/; revision=125
2003-04-15 17:53:00 +00:00
James Bursa a4c5929a2f [project @ 2003-02-09 12:58:14 by bursa]
Reorganization and rewrite of fetch, cache, and content handling.

svn path=/import/netsurf/; revision=96
2003-02-09 12:58:15 +00:00