Commit Graph

69 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
John Mark Bell 703b5fea73 Ensure content owners check that they are still interested in a content
when receiving notification that the content's in error. This prevents 
content pointers being corrupted when redirects occur. Fixes 1522002, 
1551475.

svn path=/trunk/netsurf/; revision=3211
2007-03-18 17:09:55 +00:00
John Mark Bell 25213dca24 Fix handling of cookies in unverifiable transactions caused by a redirect from a fetch into a browser window which was varifiable.
svn path=/trunk/netsurf/; revision=3165
2007-02-02 23:08:13 +00:00
John Mark Bell df4dbaf4cf Handle cookies in unverifiable transactions
svn path=/trunk/netsurf/; revision=3151
2007-01-27 20:58:20 +00:00
Michael Drake ba23e4b693 Update project URL.
svn path=/trunk/netsurf/; revision=3073
2006-11-27 15:35:18 +00:00
Richard Wilson c7f77b0165 Finish history cloning.
svn path=/trunk/netsurf/; revision=2547
2006-04-22 18:24:18 +00:00
John Mark Bell d4d3e5ee1c [project @ 2006-02-23 15:06:53 by jmb]
Handle invalid SSL certificates better - UI still needs work.
Modify fetch callback data parameter type to remove compiler warnings.
Constify things.
Lose global ssl_verify_certificates option.
Fix issue when closing a dialog without input focus.

svn path=/import/netsurf/; revision=2092
2006-02-23 15:06:54 +00:00
John Mark Bell 0f228ada91 [project @ 2006-02-06 00:10:09 by jmb]
Implement HTTP caching algorithm; this should avoid stale cache entries being used.

svn path=/import/netsurf/; revision=2059
2006-02-06 00:10:09 +00:00
James Bursa 0605ba7c12 [project @ 2005-10-30 21:23:44 by bursa]
Add index parameter to plugin_open().

svn path=/import/netsurf/; revision=1876
2005-10-30 21:23:44 +00:00
John Mark Bell 784ffb42e6 [project @ 2005-07-26 23:16:21 by jmb]
Implement plugin streams properly (can now have multiple, simultaneous streams to a plugin).
Fix race condition when performing non-file streams.
Support for GETting an URL and streaming it to a plugin (this is untested, due to a lack of access to plugins that actually use this functionality).
General source tidyup.

svn path=/import/netsurf/; revision=1824
2005-07-26 23:16:21 +00:00
James Bursa 11bc5345c5 [project @ 2005-04-13 21:58:28 by bursa]
Add fallback field to struct box for object fallback content. Add some checks for tree consistency to box_dump(). Rename struct plugin_params to object_param. Clean up box_object(), box_embed(), box_iframe(), and box_image(). Implement object fallback to contents if the fetch or conversion fails.

svn path=/import/netsurf/; revision=1627
2005-04-13 21:58:28 +00:00
John Mark Bell 63c33349f0 [project @ 2005-04-09 22:56:34 by jmb]
Fix inappropriate free()s of talloced content

svn path=/import/netsurf/; revision=1619
2005-04-09 22:56:34 +00:00
John Mark Bell a17aa7d47f [project @ 2005-02-03 10:04:06 by jmb]
Fix issue with plugins embedded in a page requesting fetch of the same page on load.
Add option to block popups.

svn path=/import/netsurf/; revision=1482
2005-02-03 10:04:06 +00:00
James Bursa 2583180b79 [project @ 2005-01-24 22:14:59 by bursa]
Simplify browser_window_go(). Replace browser_window_go_post() with browser_window_go() where possible.

svn path=/import/netsurf/; revision=1466
2005-01-24 22:14:59 +00:00
John Mark Bell 77de9c1336 [project @ 2005-01-03 02:09:20 by jmb]
Shift + Click == download

svn path=/import/netsurf/; revision=1429
2005-01-03 02:09:20 +00:00
John Mark Bell fa05ee570c [project @ 2004-12-25 18:58:04 by jmb]
Fix issue with streaming as file when handling unknown content length (plugin_convert may have been called prior to the streaming being set up, thus resulting in the file not being streamed)
Lose spurious boolean in plugin_data struct.

svn path=/import/netsurf/; revision=1411
2004-12-25 18:58:04 +00:00
John Mark Bell a36f92554a [project @ 2004-12-25 12:12:39 by jmb]
Support standalone plugins

svn path=/import/netsurf/; revision=1410
2004-12-25 12:12:39 +00:00
John Mark Bell a53d5ecfa9 [project @ 2004-11-28 23:38:38 by jmb]
Ensure dimensions specified by HTML/CSS are adhered to, rather than resizing to what the plugin wants

svn path=/import/netsurf/; revision=1375
2004-11-28 23:38:38 +00:00
John Mark Bell 3694fd54b2 [project @ 2004-11-28 00:26:17 by jmb]
Bug fixes.
Reformatting a plugin now works correctly in all cirumstances.
Streaming also works better and reloading a page containing plugins will now work properly.

svn path=/import/netsurf/; revision=1373
2004-11-28 00:26:17 +00:00
John Mark Bell 49ce807e3c [project @ 2004-10-01 21:31:55 by jmb]
A somewhat better implementation of referrers which no longer sends the referer if the URL schemes don't match.

Things to do:
1) Preservation of referer across redirects (see comment in browser.c:284)
2) GUI templates/code for configuration of referer sending (simple on/off toggle only)
3) Make referer sending when fetching objects/stylesheets for a page pay attention to option_send_referer?
4) Handle the case where the referer is in the form of http://moo:foo@mysite.com/ (ie the login details embedded in the referer - not good).

svn path=/import/netsurf/; revision=1297
2004-10-01 21:31:55 +00:00
John Mark Bell 39ad1632eb [project @ 2004-10-01 00:06:49 by jmb]
Send HTTP referer header. This is _only_ sent when a link is clicked (theoretically, at least).

svn path=/import/netsurf/; revision=1296
2004-10-01 00:06:49 +00:00
John Mark Bell 8f9221c6ca [project @ 2004-09-13 23:56:45 by jmb]
Fixup to handle changed option variable name

svn path=/import/netsurf/; revision=1275
2004-09-13 23:56:45 +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 Mark Bell d7627ceceb [project @ 2004-08-13 00:55:59 by jmb]
Rewrite of plugin handling. This is now much nicer than before although it has about the same amount of functionality.
Note: This is now configurable via an option (defaults to OFF)
This has only really been tested with the Flash plugin and seems to work reasonably.

svn path=/import/netsurf/; revision=1216
2004-08-13 00:55:59 +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 dba4904ddb [project @ 2004-08-11 16:38:04 by jmb]
Add gui and plugin sources missed from previous checkin

svn path=/import/netsurf/; revision=1210
2004-08-11 16:38:04 +00:00
John Mark Bell bd6ec25190 [project @ 2004-06-10 22:39:56 by jmb]
Compiler warning purge

svn path=/import/netsurf/; revision=954
2004-06-10 22:39:56 +00:00
James Bursa bb41604045 [project @ 2004-05-05 16:33:15 by bursa]
Fix some compiler warnings. Ignore size attribute for file inputs.

svn path=/import/netsurf/; revision=828
2004-05-05 16:33:15 +00:00
Richard Wilson e7da747f5f [project @ 2004-05-04 22:21:37 by rjw]
Revised GUI.

svn path=/import/netsurf/; revision=823
2004-05-04 22:23:44 +00:00
John Mark Bell 8cb321ec78 [project @ 2004-05-02 00:21:40 by jmb]
Minimal fixes to allow compilation with Norcroft

svn path=/import/netsurf/; revision=813
2004-05-02 00:21:41 +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
John Mark Bell 62245d13ec [project @ 2004-01-05 02:10:59 by jmb]
Add ability to turn off browser features in build.
This may be useful when hunting down bugs.

svn path=/import/netsurf/; revision=480
2004-01-05 02:10:59 +00:00
John Mark Bell 59fb052818 [project @ 2003-12-27 00:11:57 by jmb]
Tidy code to reduce compiler warnings. htmlredraw.c and plugin.c produce
the most now. Hopefully I haven't broken anything ;)

svn path=/import/netsurf/; revision=451
2003-12-27 00:11:57 +00:00
John Mark Bell adc3476157 [project @ 2003-12-21 22:10:15 by jmb]
Tidy up and integrate frames code. Still incomplete.

svn path=/import/netsurf/; revision=439
2003-12-21 22:10:15 +00:00
John Mark Bell bf202492f9 [project @ 2003-11-08 21:47:10 by jmb]
Sync Info box and About Page version numbers.
If no version is specified in the Messages file, it defaults to "CVS
Test Build"
Remove unnecessary TODOs in plugin.c

svn path=/import/netsurf/; revision=415
2003-11-08 21:47:10 +00:00
James Bursa b055948973 [project @ 2003-11-07 23:51:13 by bursa]
Split out window.c, implement DataOpen and tidy up gui code.

svn path=/import/netsurf/; revision=408
2003-11-07 23:51:13 +00:00
James Bursa b212e59a20 [project @ 2003-11-06 19:41:41 by bursa]
Mask null polls and use PollIdle when appropriate.

svn path=/import/netsurf/; revision=406
2003-11-06 19:41:41 +00:00
John Mark Bell 62f5ea585b [project @ 2003-09-17 21:47:21 by jmb]
Make applets load (untested). Plugin loading conforms closer to the spec

svn path=/import/netsurf/; revision=302
2003-09-17 21:47:21 +00:00
James Bursa af6baf91f0 [project @ 2003-09-17 12:58:19 by bursa]
Update plugin_redraw() parameters.

svn path=/import/netsurf/; revision=297
2003-09-17 12:58:19 +00:00
John Mark Bell 9a23a2bc77 [project @ 2003-09-16 19:53:59 by jmb]
Streaming plugin support, beginnings of URL_Access support, fix codebase for ActiveX Flash objects

svn path=/import/netsurf/; revision=293
2003-09-16 19:53:59 +00:00
John Mark Bell 47dcb4f127 [project @ 2003-09-09 19:21:06 by jmb]
plugin_closed tweaks

svn path=/import/netsurf/; revision=274
2003-09-09 19:21:06 +00:00
John Mark Bell baf5791576 [project @ 2003-09-06 00:21:28 by jmb]
Improve Plugin_Reshape_Request support. There are still issues with it though :(

svn path=/import/netsurf/; revision=269
2003-09-06 00:21:28 +00:00
John Mark Bell a0c42f65da [project @ 2003-09-04 22:54:25 by jmb]
Plugin_Reshape_Request support

svn path=/import/netsurf/; revision=266
2003-09-04 22:54:25 +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
John Mark Bell 9c4d5cc75f [project @ 2003-08-29 17:50:32 by jmb]
Rewrite plugin_write_parameters_file - much tidier now

svn path=/import/netsurf/; revision=260
2003-08-29 17:50:32 +00:00
John Mark Bell 1e6e665e35 [project @ 2003-08-26 00:50:51 by jmb]
Make plugins work on WIMP versions below 4.00

svn path=/import/netsurf/; revision=250
2003-08-26 00:50:51 +00:00
John Mark Bell 5744b00bd2 [project @ 2003-08-24 23:37:59 by jmb]
Fix bug in plugin_write_parameters_file

svn path=/import/netsurf/; revision=247
2003-08-24 23:37:59 +00:00
John Mark Bell 3c11ffdc9f [project @ 2003-08-24 22:39:55 by jmb]
Make plugins work. Improve initialisation of AcornURI. Add support for <iframe> (still needs rendering tweaks). Add Ctrl-F2 key sequence to close window.

svn path=/import/netsurf/; revision=246
2003-08-24 22:39:55 +00:00