Commit Graph

736 Commits

Author SHA1 Message Date
John Mark Bell 8d13c93c89 Remove bogus assertions: content handlers which spawn fetches may not transition out of the LOADING state until after the fetches have completed.
svn path=/trunk/netsurf/; revision=11860
2011-02-28 20:16:48 +00:00
John Mark Bell abbf958b4c Unlock the content when transitioning into the READY state.
svn path=/trunk/netsurf/; revision=11859
2011-02-28 19:58:08 +00:00
John Mark Bell 86a2e0076d Fix bug #3194007: stop emitting duplicate READY/DONE events.
* Make content handlers responsible for setting READY/DONE state & emitting events.
	* Stop content_convert doing this when there is a registered convert function for the content type.

svn path=/trunk/netsurf/; revision=11850
2011-02-27 20:11:39 +00:00
John Mark Bell 2e04c57929 Fix WWW-Authenticate parsing to leave f->realm alone if there is no realm specified in the header
svn path=/trunk/netsurf/; revision=11793
2011-02-25 00:41:16 +00:00
John Mark Bell d25a88145b Make no-cache a tristate. In the case of a forced reload, we want to revalidate once only.
svn path=/trunk/netsurf/; revision=11791
2011-02-24 21:22:24 +00:00
John Mark Bell 00bf0fbd24 Revert the functional change from r11789: the no-cache directive forces us to revalidate a cached object, not reject it entirely.
svn path=/trunk/netsurf/; revision=11790
2011-02-24 21:06:45 +00:00
John Mark Bell 4f740f5a32 Ensure cache hits after a forced reload -- don't even attempt to reuse objects with the no_cache flag set (as they'll never be considered fresh, thus requiring a round trip to the server every time they're used). Instead, we'll fetch a new object, which will be considered fresh for caching purposes.
svn path=/trunk/netsurf/; revision=11789
2011-02-24 20:51:35 +00:00
John Mark Bell 6b26f77bb1 Use cache control data invalidation function everywhere we want the cache control data reset.
Fix cache control data invalidation to reset the age and max_age fields to INVALID_AGE.
Fix cache control data reset on encountering an HTTP response line to occur before we fill in the response time, rather than after it.

svn path=/trunk/netsurf/; revision=11783
2011-02-24 10:14:50 +00:00
John Mark Bell b967824575 Improve commentary.
Stop leaking object_scheme in error cases.

svn path=/trunk/netsurf/; revision=11778
2011-02-23 23:05:36 +00:00
John Mark Bell 308f549f78 Fix backend fetcher poll loops
svn path=/trunk/netsurf/; revision=11775
2011-02-23 22:41:17 +00:00
Vincent Sanders 0231675abf add resource handling
move gtk and framebuffer to use generic resource handling

svn path=/trunk/netsurf/; revision=11772
2011-02-23 22:27:55 +00:00
John Mark Bell 1b5d9f07c8 Squash warnings
svn path=/trunk/netsurf/; revision=11745
2011-02-20 23:41:50 +00:00
Michael Drake f54fc080c2 Add module namespace to options_snoptionf()
svn path=/trunk/netsurf/; revision=11739
2011-02-20 22:38:43 +00:00
Vincent Sanders 675a07083a add options display to about: scheme
svn path=/trunk/netsurf/; revision=11733
2011-02-20 21:04:53 +00:00
John Mark Bell d8d0353a73 Fix bug #3184972: cope with server sending a 304 in response to an unconditional request.
svn path=/trunk/netsurf/; revision=11710
2011-02-17 17:50:14 +00:00
John Mark Bell daf23b0860 Add missing include
svn path=/trunk/netsurf/; revision=11694
2011-02-15 23:26:34 +00:00
Vincent Sanders fa98e3d76a add about: fetcher
rename fetchers to be more sensible 

svn path=/trunk/netsurf/; revision=11692
2011-02-15 23:18:10 +00:00
John Mark Bell f42ed976e5 Constify
svn path=/trunk/netsurf/; revision=11680
2011-02-14 19:17:08 +00:00
Michael Drake fe7921a387 Pass clip rect as struct through content_redraw api. Update the front ends to use this. Note only RO build tested.
svn path=/trunk/netsurf/; revision=11670
2011-02-13 22:25:11 +00:00
Michael Drake 81f6f2552c Better documentation of content_redraw
svn path=/trunk/netsurf/; revision=11645
2011-02-11 10:55:46 +00:00
Vincent Sanders 2a8e8a5cf1 add browser_window_redraw() method to make content_redraw calls from frontends common RISC OS, atari, amiga and beos have not been updated
svn path=/trunk/netsurf/; revision=11640
2011-02-10 22:35:41 +00:00
John Mark Bell 27924aa38c Minor fix for path defaulting: retain rightmost / iff it's the first character in the path
svn path=/trunk/netsurf/; revision=11524
2011-01-29 15:17:42 +00:00
Daniel Silverstone 822fffa8e3 A little more debug to help us spot how many users of locked contents there are, during shutdown
svn path=/trunk/netsurf/; revision=11418
2011-01-20 12:55:51 +00:00
Daniel Silverstone d00c5b0cd5 Add CONTENT_MSG_FAVICON_REFRESH and emit and handle it appropriately. Animated favicons now work
svn path=/trunk/netsurf/; revision=11242
2011-01-07 13:10:20 +00:00
John Mark Bell 3fcb02afa1 Revert r10650/1. We no longer require noisy fetch/cache logging.
svn path=/trunk/netsurf/; revision=11223
2011-01-06 00:31:54 +00:00
Michael Drake 0eb65d3344 Add some assert()s.
svn path=/trunk/netsurf/; revision=11144
2010-12-29 20:42:00 +00:00
Daniel Silverstone b85b1f5ba5 Make fetch.c use new RING_COUNTBYLWCHOST
svn path=/trunk/netsurf/; revision=11108
2010-12-20 10:32:15 +00:00
John Mark Bell bcfb508f86 User may have no handle if it was the target of an iterator when the handle was aborted
svn path=/trunk/netsurf/; revision=11071
2010-12-16 00:18:41 +00:00
John Mark Bell c675c3552d Ensure that we clean up after the client even if they report an error from their notification callback.
svn path=/trunk/netsurf/; revision=11067
2010-12-15 22:59:19 +00:00
John Mark Bell d745dae903 Make llcache_object_user objects distinct from llcache_handles.
This allows us to be robust against clients completely changing the contents of the user list underneath us during iteration.
Fix llcache_send_event_to_users to also be robust against the user list changing under it.

svn path=/trunk/netsurf/; revision=11063
2010-12-15 21:15:49 +00:00
John Mark Bell 67556f54fe Always invalidate next/prev pointers
svn path=/trunk/netsurf/; revision=11052
2010-12-13 08:36:27 +00:00
John Mark Bell c0f49a2785 Revert r11047-11050: if we remove a user from an object while it's the iterator target, the effect will be that the iteration terminates early.
Subsequent users that require notifications will simply have their notifications delayed

svn path=/trunk/netsurf/; revision=11051
2010-12-13 08:34:01 +00:00
John Mark Bell f919b689ba Take 2: make callers of llcache_object_user_destroy invalidate next/prev pointers
svn path=/trunk/netsurf/; revision=11050
2010-12-13 08:28:22 +00:00
John Mark Bell a5221248c2 Revert last change
svn path=/trunk/netsurf/; revision=11049
2010-12-13 08:25:54 +00:00
John Mark Bell 991472d264 Remove bogus assertions
svn path=/trunk/netsurf/; revision=11048
2010-12-13 08:24:04 +00:00
John Mark Bell f40da966ad We cannot invalidate a user's next/prev pointers when removing it from an object, as it may be the target of iteration
svn path=/trunk/netsurf/; revision=11047
2010-12-13 08:16:32 +00:00
John Mark Bell 702c94bb30 Fix assertion: user->next may be NULL, so there's no point asserting that it isn't
svn path=/trunk/netsurf/; revision=11046
2010-12-13 08:12:31 +00:00
John Mark Bell d9f8b8949e Fix assertion to compare, and not assign
svn path=/trunk/netsurf/; revision=11045
2010-12-13 08:10:29 +00:00
John Mark Bell 650f884527 Make llcache_object_notify_users robust to the object's user list changing underneath it
svn path=/trunk/netsurf/; revision=11044
2010-12-12 23:37:21 +00:00
Rob Kendrick 1a7dffdac6 Brain fix on last night's IPv6 modifications
svn path=/trunk/netsurf/; revision=11000
2010-12-05 14:23:30 +00:00
Rob Kendrick ab704ba7a7 Make urldb_add_url IPv6-aware
svn path=/trunk/netsurf/; revision=10990
2010-12-04 22:46:33 +00:00
Chris Young 46617cbe64 Fix compilation
svn path=/trunk/netsurf/; revision=10929
2010-10-31 13:27:31 +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
John Mark Bell 8814bca33e Fix cleanup of hlcache_retrieval_ctx_ring
svn path=/trunk/netsurf/; revision=10915
2010-10-28 21:00:07 +00:00
John Mark Bell e5bc525030 Fix bug 3096811: discard HTTP headers for all but the last response
svn path=/trunk/netsurf/; revision=10912
2010-10-27 22:12:00 +00:00
John Mark Bell 6173bb0e6c Merge treeview-redux to trunk
svn path=/trunk/netsurf/; revision=10865
2010-10-05 19:14:46 +00:00
Chris Young c0b63c111b WebP image support, needs libwebp (from trunk/libwebp) and libvpx.
Only enabled for Amiga build currently, may have colour issues on little-endian CPUs

svn path=/trunk/netsurf/; revision=10860
2010-10-03 20:41:31 +00:00
John Mark Bell a10c4d3a7b Fix crash on receipt of a 304 response: it turns out that FETCH_HEADER may be called before any decision about how to process the response is made.
Move FETCH_HEADER handler to start of switch statement to reflect this.

svn path=/trunk/netsurf/; revision=10792
2010-09-16 22:46:40 +00:00
John Mark Bell a7dd752046 Ensure that candidate count is reduced if a conditional request results in a non-304 response
svn path=/trunk/netsurf/; revision=10791
2010-09-16 22:04:06 +00:00
Vincent Sanders 1391ebe5cc perpetrate a neatness to centralise all the low level cache cache control data invalidation
svn path=/trunk/netsurf/; revision=10787
2010-09-16 19:47:15 +00:00
John Mark Bell db736f8378 Fix heap corruption
svn path=/trunk/netsurf/; revision=10786
2010-09-16 19:33:18 +00:00
John Mark Bell dafccf21d5 Fix validation of invalidated cache entries.
svn path=/trunk/netsurf/; revision=10785
2010-09-16 18:58:32 +00:00
Daniel Silverstone be59d5870b Ensure we free etags before invalidating cache control data
svn path=/trunk/netsurf/; revision=10784
2010-09-16 16:21:58 +00:00
John Mark Bell cf30b8b074 Use ETag to validate file: URLs, returning 304 if there's no change.
Force directories to be uncacheable.
Don't emit a Last-Modified header for files, as it may result in a cached object being considered fresh (c.f. RFC2616 $13.2.3/4)
Fix leak of file descriptor on failure to allocate buffer.

svn path=/trunk/netsurf/; revision=10782
2010-09-15 20:32:14 +00:00
John Mark Bell 051dc72a56 Purge last vestiges of file: cruft from curl binding
svn path=/trunk/netsurf/; revision=10781
2010-09-15 19:40:17 +00:00
John Mark Bell c88044c8cb Forcibly invalidate contents with response codes that aren't 200 or 203.
svn path=/trunk/netsurf/; revision=10780
2010-09-15 19:33:18 +00:00
Michael Drake 0285ab5e91 Give markup peepers a slightly easier time of it.
svn path=/trunk/netsurf/; revision=10769
2010-09-13 19:49:05 +00:00
John Mark Bell 1075214307 Improve error reporting, and reflow to 80 columns.
svn path=/trunk/netsurf/; revision=10768
2010-09-13 18:34:11 +00:00
Chris Young 4972283771 Ensure the file that is read for info is in the platform's native path format, whilst
the path used for any links is in the correct URL format.

svn path=/trunk/netsurf/; revision=10761
2010-09-12 11:42:37 +00:00
Vincent Sanders faca1687ce hell with it, heres a version which should result in fewer portability complaints
svn path=/trunk/netsurf/; revision=10756
2010-09-11 18:47:36 +00:00
Michael Drake 150e4d18bb Add a bit of padding to bottom of directory listings. Tidy code indentation.
svn path=/trunk/netsurf/; revision=10752
2010-09-10 12:49:41 +00:00
John Mark Bell 2077918805 Merge branches/vince/netsurf-file-fetcher to trunk
r=jmb

svn path=/trunk/netsurf/; revision=10750
2010-09-09 21:45:59 +00:00
John Mark Bell 78f3bbaed3 Fix bug #3055480: properly compare URLs, instead of erroneously assuming that strcasecmp is the correct answer.
svn path=/trunk/netsurf/; revision=10721
2010-08-29 17:41:54 +00:00
Michael Drake 175bb0344c Move directory listing HTML generation functions into separate module.
svn path=/trunk/netsurf/; revision=10715
2010-08-26 17:29:02 +00:00
John Mark Bell 00aeb20334 Less spam
svn path=/trunk/netsurf/; revision=10687
2010-08-10 21:46:45 +00:00
John Mark Bell 48b17a5aea Rate-limit cache clean attempts
svn path=/trunk/netsurf/; revision=10686
2010-08-10 19:58:39 +00:00
John Mark Bell 1052f19075 Don't suppress curl debug output, either
svn path=/trunk/netsurf/; revision=10651
2010-07-17 09:13:44 +00:00
John Mark Bell 183974b437 Enable noisy logging
svn path=/trunk/netsurf/; revision=10650
2010-07-17 08:17:42 +00:00
Vincent Sanders 4b329697f7 move url database test to test directory
svn path=/trunk/netsurf/; revision=10589
2010-06-29 07:20:12 +00:00
Michael Drake b010a25771 + Refactor input handling from browser window code into content
handlers.
+ Disentangle all box tree manipulation from browser window
  code and put it where it belongs.
+ Move other content specific and other irrelevant code from
  browser window handling to appropriate places.
+ Put mouse state enum in new mouse header, since it's not just
  used by browser window code, and it is used by treeview
  windows on the treeview branch.

svn path=/trunk/netsurf/; revision=10561
2010-06-04 09:35:08 +00:00
John Mark Bell 0de2013f25 Clean up caches on exit
svn path=/trunk/netsurf/; revision=10494
2010-04-27 06:48:09 +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 7eef1a387a Ensure we propagate the error to our client, and then abort the llcache handle, should we fail to find a content when converting a nascent hlcache context into an object
svn path=/trunk/netsurf/; revision=10453
2010-04-22 12:29:15 +00:00
John Mark Bell 014cbd63cc Purge spurious filetype computation
svn path=/trunk/netsurf/; revision=10431
2010-04-18 16:08:32 +00:00
John Mark Bell 3958f3730b Fix failed assertion in content_convert when process_data fails.
svn path=/trunk/netsurf/; revision=10425
2010-04-18 11:04:13 +00:00
John Mark Bell 248a53f6ba Avoid double free when shrink-wrapping source data on fetch completion.
svn path=/trunk/netsurf/; revision=10423
2010-04-17 21:17:08 +00:00
John Mark Bell 06145e570d Fix mismatched free call
svn path=/trunk/netsurf/; revision=10420
2010-04-17 09:05:15 +00:00
Vincent Sanders 448b0275ae Fix file: handling on risc os, gtk, windows and framebuffer frontends
svn path=/trunk/netsurf/; revision=10419
2010-04-16 23:56:53 +00:00
John Mark Bell 01eb197f56 When the fetch system informs its clients that certificate verification has failed, it has already stopped and cleaned up the fetch.
Stop llcache_fetch_cert_error attempting to abort the fetch, as this will result in a double free.

svn path=/trunk/netsurf/; revision=10418
2010-04-16 23:15:22 +00:00
John Mark Bell be3b246eab Add accessor for quirks
svn path=/trunk/netsurf/; revision=10415
2010-04-16 20:54:57 +00:00
John Mark Bell bf27f667c9 Add assertion
svn path=/trunk/netsurf/; revision=10414
2010-04-16 20:47:22 +00:00
John Mark Bell 34465a06ab Remove fresh field from struct content
svn path=/trunk/netsurf/; revision=10413
2010-04-16 20:44:44 +00:00
John Mark Bell e58a7d88f4 Make content_invalidate_reuse_data cause llcache to invalidate cache control data
svn path=/trunk/netsurf/; revision=10412
2010-04-16 20:43:36 +00:00
John Mark Bell 44552e7492 Provide API to invalidate llcache object cache control data
svn path=/trunk/netsurf/; revision=10411
2010-04-16 20:42:10 +00:00
John Mark Bell ca0daa1a66 Reset fetch state when refetching object.
Ensure that cache control data is invalidated for 401/certificate failure so that conditional headers are not emitted when object is refetched.

svn path=/trunk/netsurf/; revision=10408
2010-04-16 20:08:27 +00:00
John Mark Bell b008327de1 Improve 401 response handling
svn path=/trunk/netsurf/; revision=10407
2010-04-16 20:00:10 +00:00
John Mark Bell 1c42c0569f Ensure we invalidate cache data and mark objects as complete on failure to fetch.
svn path=/trunk/netsurf/; revision=10402
2010-04-14 20:42:03 +00:00
Daniel Silverstone 2ba2dab3a7 Eat any #fragment in llcache_object_retrieve -- fixing double-fragment issues at the top level, and preventing fragment(ed) redirects from confusing the issue
svn path=/trunk/netsurf/; revision=10399
2010-04-14 14:53:21 +00:00
Daniel Silverstone b56886d0ee Abstract a number of unsafe iterations of object users into a single safe function call
svn path=/trunk/netsurf/; revision=10398
2010-04-14 10:56:44 +00:00
John Mark Bell 3840e3911b Stop leaking hlcache handles.
svn path=/trunk/netsurf/; revision=10395
2010-04-13 23:24:07 +00:00
Vincent Sanders d1cd04a0b9 remove incorrect low level cache release
svn path=/trunk/netsurf/; revision=10391
2010-04-13 16:53:52 +00:00
Michael Drake f58fa3b2ac Revert last change.
svn path=/trunk/netsurf/; revision=10382
2010-04-12 09:31:34 +00:00
Michael Drake de6f1a2b2e Make new cache strip the fragment identifier, like fetchcache did.
svn path=/trunk/netsurf/; revision=10381
2010-04-12 09:25:41 +00:00
John Mark Bell 18081664eb Provide API to enable a handle's callback to be replaced
svn path=/trunk/netsurf/; revision=10376
2010-04-11 23:02:49 +00:00
John Mark Bell 4b8c720ac5 Shrink source buffer to final length on fetch completion
svn path=/trunk/netsurf/; revision=10373
2010-04-11 21:26:20 +00:00
John Mark Bell 486731e589 Release low-level cache handle when destroying contents
svn path=/trunk/netsurf/; revision=10372
2010-04-11 20:58:50 +00:00
John Mark Bell 71de3618f1 Implement hlcache_poll(), which drives the low-level cache event loop, and attempts to clean the high-level cache.
Call this, instead of llcache_poll().

svn path=/trunk/netsurf/; revision=10371
2010-04-11 20:21:13 +00:00
John Mark Bell 60d1b74099 Remove redundant todo
svn path=/trunk/netsurf/; revision=10363
2010-04-11 16:39:58 +00:00
John Mark Bell 0650096403 CSS contents may be shared
svn path=/trunk/netsurf/; revision=10362
2010-04-11 16:38:16 +00:00
John Mark Bell ff8791a3f7 Ensure content can be shared when retrieving from cache
svn path=/trunk/netsurf/; revision=10361
2010-04-11 16:37:39 +00:00
John Mark Bell 7577e2a1e6 Ensure quirks mode matches when retrieving contents from cache
svn path=/trunk/netsurf/; revision=10360
2010-04-11 16:34:23 +00:00
John Mark Bell ad89d5b263 Copy child charset, if any
svn path=/trunk/netsurf/; revision=10359
2010-04-11 16:23:45 +00:00
John Mark Bell 6a88eaf67a Pedantic whitespace changes
svn path=/trunk/netsurf/; revision=10356
2010-04-11 14:39:26 +00:00
John Mark Bell fe87225ccf Complete low-level cache cleaner
svn path=/trunk/netsurf/; revision=10355
2010-04-11 14:32:39 +00:00
John Mark Bell 9666787dfa Remove redundant todo
svn path=/trunk/netsurf/; revision=10354
2010-04-11 14:12:13 +00:00
John Mark Bell a70c67fa35 Support 307 redirects for GET requests
svn path=/trunk/netsurf/; revision=10353
2010-04-11 14:11:33 +00:00
John Mark Bell 863d5c77c3 Forbid redirects to file:/// URLs
svn path=/trunk/netsurf/; revision=10352
2010-04-11 14:06:02 +00:00
John Mark Bell 40bac34ffd Bail out if we're redirected to an URL we can't handle
svn path=/trunk/netsurf/; revision=10351
2010-04-11 14:01:11 +00:00
John Mark Bell 758190f37b Reintroduce redirect limit
svn path=/trunk/netsurf/; revision=10350
2010-04-11 13:58:12 +00:00
John Mark Bell 3470764041 Remove redundant todos
svn path=/trunk/netsurf/; revision=10349
2010-04-11 13:29:02 +00:00
John Mark Bell 737d6ad557 Merge jmb/kill-reentrancy. r=vince
svn path=/trunk/netsurf/; revision=10346
2010-04-11 10:52:18 +00:00
John Mark Bell b0f1b7b170 Improve const-correctness of fetch_start
svn path=/trunk/netsurf/; revision=10342
2010-04-10 17:13:53 +00:00
John Mark Bell 24c853281d Return cookies to the same level of working/brokenness as they had before new-cache.
svn path=/trunk/netsurf/; revision=10340
2010-04-10 12:24:25 +00:00
John Mark Bell ee2a5b40ce Use computed POST data when redirecting, instead of original.
Certain redirect methods result in POST being converted to GET.

svn path=/trunk/netsurf/; revision=10339
2010-04-10 11:56:14 +00:00
John Mark Bell 4a4cc0d1bc Introduce content_set_ready.
Make content_convert emit events only if content is in appropriate state.
Remove no-longer-relevant assertion from content_convert.

svn path=/trunk/netsurf/; revision=10330
2010-04-09 18:52:44 +00:00
Daniel Silverstone b2124867db Kill uninitialized warning about 'type'
svn path=/trunk/netsurf/; revision=10329
2010-04-09 09:10:23 +00:00
Daniel Silverstone dfae5c33d2 Some more asserts to try and help spot multiple-release of llcache handles
svn path=/trunk/netsurf/; revision=10327
2010-04-09 00:06:36 +00:00
Daniel Silverstone 2b8adb0c8a Move the removal of the retrieval context to prevent a re-entrancy race causing double-release of llcache handles
svn path=/trunk/netsurf/; revision=10307
2010-04-08 13:39:07 +00:00
Daniel Silverstone 4262232956 Fix missing 'break' introduced by 10300
svn path=/trunk/netsurf/; revision=10304
2010-04-08 13:18:50 +00:00
Daniel Silverstone 92bd0d4ce0 Add an assert to clarify a segfault I'm investigating
svn path=/trunk/netsurf/; revision=10303
2010-04-08 13:12:30 +00:00
Daniel Silverstone 5c55264217 Remove todo -- no longer appropriate
svn path=/trunk/netsurf/; revision=10302
2010-04-08 12:24:29 +00:00
Daniel Silverstone 45faa483e5 Ensure an error'd fetch's llcache object is implicitly stale so it is not reused
svn path=/trunk/netsurf/; revision=10301
2010-04-08 12:20:20 +00:00
Daniel Silverstone 6c9e4bea8e Purge FETCH_TYPE which is unused throughout NetSurf. Clearing a todo in llcachec.
svn path=/trunk/netsurf/; revision=10300
2010-04-08 12:16:52 +00:00
Daniel Silverstone 2b1146bcb3 Remove parent from fetches, clearing a todo from llcache.c
svn path=/trunk/netsurf/; revision=10299
2010-04-08 11:47:05 +00:00
Daniel Silverstone 6948496d45 Ensure that aborting or releasing hlcache handles will result in nascent retrieval contexts being cleaned up
svn path=/trunk/netsurf/; revision=10298
2010-04-08 11:21:50 +00:00
John Mark Bell bba7fbbd9b Abort and release llcache handle on failure to process data.
Make hlcache retrieval ignore erroneous contents.

svn path=/trunk/netsurf/; revision=10296
2010-04-08 07:09:09 +00:00
John Mark Bell 4682f0ccd8 When we've snapshotted an object, make sure we add the *new* object into the list of uncacheable objects, and not the old one. Otherwise, our cache chains end up being corrupted.
svn path=/trunk/netsurf/; revision=10295
2010-04-08 07:08:16 +00:00
Michael Drake 2fba2249ee Add function to test whether hlcache_handle's content is locked.
svn path=/trunk/netsurf/; revision=10287
2010-04-07 18:50:18 +00:00
Michael Drake bbd757c34a Fix fetch_curl_post_convert() for filename_from_path() returning NULL.
svn path=/trunk/netsurf/; revision=10265
2010-04-07 11:10:55 +00:00
Michael Drake 236b6a15e1 Add mime-type getter.
svn path=/trunk/netsurf/; revision=10259
2010-04-07 09:12:09 +00:00
John Mark Bell 2748fe4f64 Make downloads work again.
svn path=/trunk/netsurf/; revision=10243
2010-04-05 21:35:38 +00:00
John Mark Bell 2dc791a253 Remove redundant content message types and associated data
svn path=/trunk/netsurf/; revision=10241
2010-04-05 10:40:16 +00:00
John Mark Bell 69f02e926f Make the high-level cache drop contents of unacceptable type on the floor.
svn path=/trunk/netsurf/; revision=10238
2010-04-04 17:17:24 +00:00
John Mark Bell 79ce683b4e Most of a stop implementation.
Remaining work:
  1) Clone content_html_data
  2) Cloning content_css_data requires the charset of the old content
  3) Calling hlcache_handle_abort() before a content has been created must clean up the retrieval context.

svn path=/trunk/netsurf/; revision=10236
2010-04-04 12:41:19 +00:00
John Mark Bell 43a99ab683 Constify data parameter to *_process_data
svn path=/trunk/netsurf/; revision=10234
2010-04-03 16:37:36 +00:00
John Mark Bell 49810d8191 Use mutator to modify content's title field.
svn path=/trunk/netsurf/; revision=10231
2010-04-03 11:55:28 +00:00
Vincent Sanders 95e4a737de rationalise the usage of the file scheme
svn path=/trunk/netsurf/; revision=10221
2010-03-31 13:59:57 +00:00
John Mark Bell 9f575c590b Do not abort fetch on receipt of FETCH_ERROR: the fetch has already been destroyed.
Implement LLCACHE_EVENT_ERROR case of hlcache_llcache_callback().

svn path=/trunk/netsurf/; revision=10218
2010-03-30 21:36:39 +00:00
Chris Young 07537e5240 Fix compilation when building WITH_NS_SVG
svn path=/trunk/netsurf/; revision=10213
2010-03-30 18:12:21 +00:00
John Mark Bell 9aca901eb1 The convert stage of a content's state progression no longer reflows the content to the provided dimensions.
It is now defined as converting the content into a state in which it is ready for use.
The user of the content is now responsible for performing an initial reformat (sic) of the content before it can be redrawn.

Purge width/height parameters from hlcache_handle_retrieve/content_convert/*_convert APIs.
Fix up content handlers affected by the above change in semantics.
Ensure that browser_window_callback performs an initial reformat of its content.

svn path=/trunk/netsurf/; revision=10207
2010-03-29 22:33:21 +00:00
John Mark Bell 2a53c4c811 Use hlcache_child_ctx, instead of just hoping that we replicate its members correctly.
Ensure public API documentation is not duplicated.

svn path=/trunk/netsurf/; revision=10206
2010-03-29 21:17:18 +00:00
John Mark Bell 99dee5e3d0 Disable llcache tracing
svn path=/trunk/netsurf/; revision=10201
2010-03-29 06:29:56 +00:00
John Mark Bell b6f6bc5fdd Fix broken linked list removal.
svn path=/trunk/netsurf/; revision=10200
2010-03-29 06:29:25 +00:00
John Mark Bell 311b458d56 Forbid contents with active fetches from being cleaned.
svn path=/trunk/netsurf/; revision=10199
2010-03-29 06:28:46 +00:00
John Mark Bell 4e2c3a4c39 Exceptionally verbose tracing of llcache operation.
svn path=/trunk/netsurf/; revision=10198
2010-03-29 06:27:37 +00:00
John Mark Bell 57253cdd58 Fixup per review
svn path=/trunk/netsurf/; revision=10196
2010-03-28 23:25:21 +00:00
Daniel Silverstone 66d1418506 Allow us to cache foo?bar when it explicitly allows it. as per rfc2616 13.9
svn path=/trunk/netsurf/; revision=10190
2010-03-28 16:51:47 +00:00
Daniel Silverstone 8effd1cb98 Ensure that finished redirection objects in llcache do not get found by subsequent fetch attempts.
svn path=/trunk/netsurf/; revision=10188
2010-03-28 16:28:28 +00:00
Daniel Silverstone cb7412181f Replace fetch_poll with llcache_poll throughout. Allow CONTENT_OTHER to complete properly.
svn path=/trunk/netsurf/; revision=10187
2010-03-28 16:00:54 +00:00
Daniel Silverstone 05a4eceae2 Remove fetchcache.[ch]
svn path=/trunk/netsurf/; revision=10183
2010-03-28 15:34:07 +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
Chris Young 033b5d815a Move code which extracts the filename from a given path into frontend.
svn path=/trunk/netsurf/; revision=10139
2010-03-21 13:32:59 +00:00
John Mark Bell ee833877c5 Rate limit fetch progress notifications.
svn path=/trunk/netsurf/; revision=9962
2010-02-10 00:32:12 +00:00
Vincent Sanders 6990c2cd04 remove uneccissary includes
svn path=/trunk/netsurf/; revision=9931
2010-01-29 11:32:53 +00:00
James Bursa 914eedc11d Don't set proxy option for file: URLs to workaround some versions of libcurl attempting to use it (fixed in latest libcurl). Also unset curl proxy option if it's disabled so the previous xfer's setting isn't retained.
svn path=/trunk/netsurf/; revision=9759
2009-12-25 19:27:22 +00:00
John Mark Bell b75b2ae8bb Merge r9731:HEAD from branches/MarkieB/gtkmain to trunk.
svn path=/trunk/netsurf/; revision=9737
2009-12-18 20:15:50 +00:00
John Mark Bell 355799ce0b Merge branches/MarkieB/gtkmain to trunk.
svn path=/trunk/netsurf/; revision=9729
2009-12-17 23:55:02 +00:00
John Mark Bell d88945bc0b Squash leak.
svn path=/trunk/netsurf/; revision=9711
2009-12-02 16:54:17 +00:00
John Mark Bell d591d8df94 Treat decomposed URLs with no path component as being for the path "/".
svn path=/trunk/netsurf/; revision=9703
2009-11-22 23:25:18 +00:00
John Mark Bell 3f4d79e576 This optimisation was so simple that it was broken.
svn path=/trunk/netsurf/; revision=9696
2009-11-22 14:24:53 +00:00
John Mark Bell 8685cfb3b7 Fix the other half of this NULL dereference issue
svn path=/trunk/netsurf/; revision=9695
2009-11-22 14:21:47 +00:00
John Mark Bell 63848419e2 Ensure urldb file handle is closed on error.
svn path=/trunk/netsurf/; revision=9693
2009-11-22 14:12:03 +00:00
John Mark Bell eba224e09e Avoid potential NULL deference
svn path=/trunk/netsurf/; revision=9688
2009-11-22 13:52:16 +00:00
John Mark Bell 81c1b0e0df Don't call memcpy when p->segment is NULL
svn path=/trunk/netsurf/; revision=9687
2009-11-22 13:49:43 +00:00
John Mark Bell 54cd21ae0d Realm may be NULL iff there's no WWW-Authenticate header served up with a 401.
Default the realm to the fetch URL in this case. Fixes #2890933

Note for new cache implementation (which is actually capable of utilising response bodies in this situation): if there is no WWW-Authenticate header, serve up the response body immediately -- don't present an authentication dialogue.

svn path=/trunk/netsurf/; revision=9659
2009-11-03 07:03:07 +00:00
John Mark Bell 1c403cb2f8 svgtiny requires separate contents
svn path=/trunk/netsurf/; revision=9615
2009-10-08 12:03:44 +00:00
John Mark Bell e580e2bea9 Hack around cache issue. The entire cache layer needs a redesign asap.
svn path=/trunk/netsurf/; revision=9460
2009-08-26 11:22:48 +00:00
John Tytgat 2261b616f6 - content/urldb.c(auth_data): Removed;
(prot_space_data): Added, it lives linked in the leaf host_part
  struct and together with its scheme and port (which defins canonical root
  url) and realm this defines a protection space.
  (path_data): Removed auth_data field and replaced by a prot_space_data
  pointer.
  (host_part::prot_space): Added linked list of protection space data
  structs.
  (urldb_get_auth_details): Given an URL fetch fetches its auth.
  (urldb_set_auth_details): Creates or updates the contents of a
  protection space to which given URL belongs.
  (urldb_destroy_host_tree): Delete protection data space structures
  using urldb_destroy_prot_space.
  (urldb_destroy_prot_space): Added.
- content/urldb.h(urldb_get_auth_details): Added realm parameter.
- content/fetchers/fetch_curl.c(fetch_curl_set_options): Update
  urldb_get_auth_details call (we don't know realm at this point).
- content/fetchcache.c(fetchcache_callback, fetchcache_auth): At FETCH_AUTH,
  use realm to determine if we really don't know auth data and if so,
  refetch content.
- content/content.h(struct content): Add content::tried_with_auth.
- content/content.c(content_create): Initialize content::tried_with_auth.
- riscos/401login.c(ro_gui_401login_open): Show known authentication
  data in dialogue so user can see what was wrong with it and correct it.

Solves bug #2830829.

svn path=/trunk/netsurf/; revision=9045
2009-08-04 23:02:23 +00:00
John Tytgat 9d678ef7cd Drop pkg-config on cairo, not needed here. Added const.
svn path=/trunk/netsurf/; revision=8985
2009-08-02 12:07:29 +00:00
Chris Young 0cd96bdd5e Correct definition
svn path=/trunk/netsurf/; revision=8899
2009-07-29 22:00:07 +00:00
Chris Young d2c29dbe95 Keep a copy of the next_fetcher pointer to avoid a situation where the fetch gets
freed during the poll routine and the next pointer can no longer be read.

svn path=/trunk/netsurf/; revision=8898
2009-07-29 18:51:35 +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 5feb7018c5 Replace parent_url with a pointer to the parent content.
svn path=/trunk/netsurf/; revision=8428
2009-07-10 00:26:37 +00:00
John Mark Bell ceca548a1d Fix serialisation of page titles.
svn path=/trunk/netsurf/; revision=8313
2009-07-04 18:19:29 +00:00
John Mark Bell d58baf8ea4 Permit referer to propagate to https hosts from http
svn path=/trunk/netsurf/; revision=7875
2009-06-19 11:15:06 +00:00
John Mark Bell c1e3fb0bec Remove spurious "domain" variable from urldb_iterate_partial().
Lose unnecessary increment of rptr in cookie domain prefix matching.
Record that, in the long term, we need some kind of TLD service to consult so that (e.g.) .co.uk is not considered a valid domain prefix.

svn path=/trunk/netsurf/; revision=7600
2009-05-28 13:19:07 +00:00
John Mark Bell 059b6a0e15 Make logic surrounding extraction of URL + referer scheme more sensible.
Always require the fetch URL to have a scheme -- without it, we can't find a fetcher.

svn path=/trunk/netsurf/; revision=7597
2009-05-28 11:56:56 +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 42e24e8099 s/abort/abort_fetch/
svn path=/trunk/netsurf/; revision=7512
2009-05-14 10:13:20 +00:00
John Mark Bell 53bbe5fb9e Fix url completion when last character in url bar is a /
svn path=/trunk/netsurf/; revision=7105
2009-04-16 14:12:54 +00:00
John Mark Bell a763e36d2e It's probably a good idea not to redirect to file:/// URLs
svn path=/trunk/netsurf/; revision=6695
2009-03-04 13:29:54 +00:00
John Mark Bell a36535f341 Pointless warning avoidance.
svn path=/trunk/netsurf/; revision=6676
2009-03-02 20:32:05 +00:00
John Mark Bell b98f105b24 Purge WITH_AUTH
svn path=/trunk/netsurf/; revision=6600
2009-02-22 15:13:10 +00:00
John Mark Bell 847b776285 Purge NETSURF_USE_SSL and WITH_SSL
svn path=/trunk/netsurf/; revision=6599
2009-02-22 15:07:50 +00:00
John Mark Bell 16c01d97e9 Log detected state of openssl availability
svn path=/trunk/netsurf/; revision=6595
2009-02-21 23:04:49 +00:00
John Mark Bell 756c393abb Given that the build-time SSL detection can be somewhat inaccurate, attempt to determine whether we can use the SSL_CTX stuff at runtime.
svn path=/trunk/netsurf/; revision=6586
2009-02-21 02:46:47 +00:00
John Mark Bell 79b4cee9d3 Make redirects behave as a NOP wrt the verifiability of fetches.
Apparently, the interweb depends on this.

svn path=/trunk/netsurf/; revision=6542
2009-02-16 20:24:54 +00:00
John Mark Bell 79c0981402 Ensure that neither the current fetch host nor the referrer is an IP address before attempting to domain match them.
svn path=/trunk/netsurf/; revision=6466
2009-02-13 10:49:35 +00:00
John Mark Bell e5c225f7d9 Even fuzzier domain matching.
svn path=/trunk/netsurf/; revision=6463
2009-02-13 00:25:48 +00:00
John Mark Bell 19321017a9 Document the assumption that all URLs passed into urldb are already normalised. Violate this precondition at your peril.
svn path=/trunk/netsurf/; revision=6371
2009-02-06 02:08:00 +00:00
Michael Drake c1439ae4e7 Comment content_redraw.
svn path=/trunk/netsurf/; revision=6355
2009-02-02 14:06:51 +00:00
John Mark Bell 6a0a7c346a Let's try that again. Now actually passes the regression tests.
svn path=/trunk/netsurf/; revision=6317
2009-01-31 03:03:50 +00:00
John Mark Bell e2ebfb72f7 Fix urldb_match_path().
Fix test code.

svn path=/trunk/netsurf/; revision=6316
2009-01-31 02:49:26 +00:00
John Mark Bell 966b402881 urldb_destroy_path_tree() -> iteration
svn path=/trunk/netsurf/; revision=6315
2009-01-31 02:30:28 +00:00
John Mark Bell 9085c458d3 urldb_save_cookie_paths() -> iteration
svn path=/trunk/netsurf/; revision=6314
2009-01-31 02:16:01 +00:00
John Mark Bell 71e397eb84 Initialising variables helps
svn path=/trunk/netsurf/; revision=6313
2009-01-31 02:13:12 +00:00
John Mark Bell 92b3bdeda0 urldb_delete_cookie_paths() -> iteration
svn path=/trunk/netsurf/; revision=6312
2009-01-31 02:12:06 +00:00
John Mark Bell 45b222ab50 Make urldb_dump_paths iterate
svn path=/trunk/netsurf/; revision=6311
2009-01-31 02:02:01 +00:00
John Mark Bell a1d409d922 Make urldb_match_path() iterate.
svn path=/trunk/netsurf/; revision=6310
2009-01-31 01:57:15 +00:00
John Mark Bell 376ef0ca47 Make urldb_iterate_entries_path use iteration
svn path=/trunk/netsurf/; revision=6304
2009-01-30 19:58:46 +00:00