Commit Graph

184 Commits

Author SHA1 Message Date
Michael Drake
41e12953dc Add scroll request message to content message system. 2012-08-13 22:54:18 +01:00
Vincent Sanders
4c89c9d5df improve javascript support
svn path=/trunk/netsurf/; revision=13962
2012-06-10 22:17:30 +00:00
Vincent Sanders
df18a97143 Change GTK plotting to use cairo surfaces throughout
svn path=/trunk/netsurf/; revision=13354
2011-12-30 00:58:35 +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
02780e1f2d Currently untested (and unused) "drop file on content" handling, and HTML implementation.
svn path=/trunk/netsurf/; revision=13214
2011-12-01 21:49:57 +00:00
Michael Drake
4856a4c1fb Pass scroll wheel action into contents. Handle scrolling of box scrollbars and iframes.
svn path=/trunk/netsurf/; revision=13200
2011-11-29 17:47:29 +00:00
Vincent Sanders
230779848e metadata links stored in contents
browser uses metadata links for favicons

svn path=/trunk/netsurf/; revision=12977
2011-10-07 18:12:47 +00:00
Vincent Sanders
52ad2c1e25 initial favicon support
svn path=/trunk/netsurf/; revision=12975
2011-10-06 23:31:55 +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
Michael Drake
4075648e7a Content interface to get at contextual content at point.
svn path=/trunk/netsurf/; revision=12753
2011-09-06 18:07:30 +00:00
Vincent Sanders
2348b13492 refactor bitmap out of generic content structure
svn path=/trunk/netsurf/; revision=12686
2011-08-31 12:12:41 +00:00
Michael Drake
9c91893028 Fix selection for non-gui browser windows (iframes).
Selection no longer uses current_redraw_browser.
Fix long-standing selection bugs on platforms that use action on release behaviour.

svn path=/trunk/netsurf/; revision=12598
2011-07-13 13:20:26 +00:00
Michael Drake
eddae6af06 Remove plotter table global. Pass a redraw context around redraw functions. Knockout could be handled better. Note: untested on most front ends.
svn path=/trunk/netsurf/; revision=12543
2011-06-30 15:48:07 +00:00
Michael Drake
3128ecf2a5 Unify content_redraw params in content_redraw_data struct. Core and RISC OS content handlers updated.
svn path=/trunk/netsurf/; revision=12529
2011-06-28 20:17:39 +00:00
Michael Drake
5a4c8916ef If iframes are reformatted due to containing document reflow, don't need to redraw them since they will be redrawn when the containing document is redrawn. Make iframe handling more robust.
svn path=/trunk/netsurf/; revision=12497
2011-06-24 09:30:33 +00:00
Vincent Sanders
8be1e85e91 consolidate content redraw
more cleanups ready for image content refactor

svn path=/trunk/netsurf/; revision=12317
2011-05-08 19:54:35 +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
John Mark Bell
1edcef6141 Remove redundant parameter from content_open API
svn path=/trunk/netsurf/; revision=11964
2011-03-10 23:13:03 +00:00
John Mark Bell
b7893f85cd Do not attempt to destroy contents that are still loading
svn path=/trunk/netsurf/; revision=11898
2011-03-03 21:13:58 +00:00
Michael Drake
cfe6b8cc66 Pass content msg redraw coords as ints.
svn path=/trunk/netsurf/; revision=11893
2011-03-02 21:10:29 +00:00
John Mark Bell
8373123b71 Purge CONTENT_STATUS_TYPE_UNKNOWN
svn path=/trunk/netsurf/; revision=11861
2011-02-28 20:38:23 +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
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
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
be3b246eab Add accessor for quirks
svn path=/trunk/netsurf/; revision=10415
2010-04-16 20:54:57 +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
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
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
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
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 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 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
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
3a56b67d95 Add missing #include.
Fix guard macro -- how long has this been wrong, I wonder?

svn path=/trunk/netsurf/; revision=6069
2009-01-15 15:58:35 +00:00
François Revel
54a49823b5 Revert r5478, I didn't notice content struct had a mime_type field.
svn path=/trunk/netsurf/; revision=5480
2008-10-03 04:30:47 +00:00
François Revel
209c72b011 Add a function to tell the mime type for a content type.
svn path=/trunk/netsurf/; revision=5478
2008-10-03 03:40:42 +00:00
John Tytgat
2d1481fafc 'unsigned long' -> 'colour' where it made sense.
svn path=/trunk/netsurf/; revision=5459
2008-09-28 22:37:13 +00:00
Daniel Silverstone
d3270ed648 Add libpng support. Default to off.
svn path=/trunk/netsurf/; revision=5330
2008-09-15 20:23:02 +00:00
John Tytgat
611b558d0e Constify content_type_name & content_status_name
svn path=/trunk/netsurf/; revision=4815
2008-07-30 00:54:43 +00:00
Rob Kendrick
e7c5e16b9b Performance improvements: rather than calling content_clean() every poll, we now call it no more frequently than once every 5 seconds. Additionally, we cache the result of talloc_total_size() in content_clean() rather than calculating it twice. On large documents, this function took 25% of CPU time. This makes the fetching/rendering/scrolling/redrawing of large documents over twice as fast.
svn path=/trunk/netsurf/; revision=4527
2008-07-07 14:05:29 +00:00
James Bursa
8282253a54 Move struct cache_data from fetch to content as it is no longer needed by fetch. Make it a member instead of pointer in struct content.
svn path=/trunk/netsurf/; revision=4246
2008-06-03 01:10:46 +00:00
John Mark Bell
dc85ddb0a8 Launch redirects to unsupported URLs in other applications.
svn path=/trunk/netsurf/; revision=4098
2008-04-19 11:07:42 +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
Rob Kendrick
4ec38922ac Change meaning of c->redraw_time to be the earliest time to reflow during page asset fetch. Have the time selected vary depending on how long the last reflow took.
svn path=/trunk/netsurf/; revision=3925
2008-03-11 00:14:39 +00:00
Michael Drake
bae61d9224 Periodically reflow the page while fetching a page's objects. Make buffer all rendering default.
svn path=/trunk/netsurf/; revision=3874
2008-02-29 23:03:26 +00:00
John Mark Bell
ad6fcea6b0 Add url_fragment to extract fragment from URL
Optionally allow url_compare to ignore fragments in comparison
Fix handling of url_compare result in a few places
Fix redirects which contain fragments in the Location header

svn path=/trunk/netsurf/; revision=3826
2008-02-03 12:04:48 +00:00
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
James Bursa
07c54283e3 Move window scaling from platform-specific code to desktop/browser.c. Modify gtk gui to handle scaling in the same way as RO.
svn path=/trunk/netsurf/; revision=3478
2007-08-07 03:55:18 +00:00
Rob Kendrick
04292695be Initial work on RSVG image handler. Still a lot to do.
svn path=/trunk/netsurf/; revision=3433
2007-07-18 17:58:35 +00:00
Rob Kendrick
59f358eb0f Wrap internal SVG renderer with appropriate #ifdef WITH_NS_SVG
svn path=/trunk/netsurf/; revision=3432
2007-07-18 14:49:26 +00:00
James Bursa
afc9517fbd Add CONTENT_SVG to content handling.
svn path=/trunk/netsurf/; revision=3406
2007-07-13 03:54:47 +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
Richard Wilson
7368688642 Dynamically update scale view (implement 1556975) and prevent double redraws.
svn path=/trunk/netsurf/; revision=3191
2007-03-03 19:46:20 +00:00
Rob Kendrick
7c88381a59 Make time taken that is displayed in status bar use gettimeofday()-based time rather than clock()-based time
svn path=/trunk/netsurf/; revision=3157
2007-01-30 15:32:31 +00:00
James Bursa
bda01b3135 Fix parsing error when an empty HTML data is returned. Add HTTP status and other information to status bar.
svn path=/trunk/netsurf/; revision=3140
2007-01-13 00:21:15 +00:00
James Bursa
b6b768f521 Improved tracking of memory usage. c->size is now exclusive of talloc size, and the two are added to find the full size.
svn path=/trunk/netsurf/; revision=3103
2006-12-03 22:34:26 +00:00
Michael Drake
ba23e4b693 Update project URL.
svn path=/trunk/netsurf/; revision=3073
2006-11-27 15:35:18 +00:00
James Bursa
65b356ba75 Documentation moved to Docs/01-content
svn path=/trunk/netsurf/; revision=3050
2006-11-11 19:46:51 +00:00
Richard Wilson
60ea34ad48 [project @ 2006-02-26 02:25:19 by rjw]
Add support for ICO files.

svn path=/import/netsurf/; revision=2096
2006-02-26 02:25:19 +00:00
Richard Wilson
da4a9313f1 [project @ 2006-02-25 18:50:34 by rjw]
Support for BMP files

svn path=/import/netsurf/; revision=2095
2006-02-25 18:51:51 +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
Richard Wilson
4cc85469cb [project @ 2006-02-21 20:49:11 by rjw]
Allow any content to be used as a background. Simplify bitmap code.

svn path=/import/netsurf/; revision=2087
2006-02-21 20:49:12 +00:00
James Bursa
415254c326 [project @ 2006-02-12 23:07:28 by bursa]
Rewrite handling of text/plain contents. Now rendered directly instead of converting to HTML.

svn path=/import/netsurf/; revision=2078
2006-02-12 23:07:28 +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
John Mark Bell
0f77b057a1 [project @ 2006-01-25 06:52:38 by jmb]
Meta refresh support

svn path=/import/netsurf/; revision=2039
2006-01-25 06:52:38 +00:00
Adrian Lees
1efd4796a2 [project @ 2005-12-10 14:31:32 by adrianl]
ArtWorks support

svn path=/import/netsurf/; revision=1891
2005-12-10 14:31:33 +00:00
James Bursa
972392ef66 [project @ 2005-10-30 21:22:19 by bursa]
Add index parameter to content_open().

svn path=/import/netsurf/; revision=1872
2005-10-30 21:22:19 +00:00
James Bursa
08e8ee3ed1 [project @ 2005-08-21 12:04:17 by bursa]
Change void * parameters to intptr_t to make them correct for storing integers or pointers.

svn path=/import/netsurf/; revision=1852
2005-08-21 12:04:18 +00:00
James Bursa
9741deb831 [project @ 2005-07-05 22:43:38 by bursa]
Add locked attribute to content structure and use it to ignore content_redraw() during _convert() or _reformat().

svn path=/import/netsurf/; revision=1787
2005-07-05 22:43:38 +00:00
Richard Wilson
92743be24d [project @ 2005-04-05 02:36:33 by rjw]
Reduce re-allocation of memory when receiving files (drastically increases the speed of loading large files locally). Sprite files no longer require two copies of their data.

svn path=/import/netsurf/; revision=1598
2005-04-05 02:36:33 +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
8334683068 [project @ 2005-01-02 03:58:20 by jmb]
xcalloc/xrealloc/xstrdup-purge - Lose remaining calls (and purge the relevant functions from utils.c)

svn path=/import/netsurf/; revision=1419
2005-01-02 03:58:21 +00:00
Richard Wilson
403f12872d [project @ 2004-10-04 23:54:42 by rjw]
Moved GIF file reading to image/, optimisation of plotting for GIFs, JNGs, PNGs and JPEGs, initial work for toolbar customisation. Possibly some other things too.

svn path=/import/netsurf/; revision=1301
2004-10-04 23:54:42 +00:00
James Bursa
3371a27391 [project @ 2004-09-03 22:44:47 by bursa]
Add generic bitmap functions. Move jpeg and mng code from riscos/ to image/ and update to use bitmap. Note: background tiling and drawfile export for jpeg and mng/png are broken.

svn path=/import/netsurf/; revision=1265
2004-09-03 22:44:48 +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
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
James Bursa
bc727dda1c [project @ 2004-08-11 19:02:32 by bursa]
Start work on removing instances and making content types non-shareable. Clean up some #includes.

svn path=/import/netsurf/; revision=1211
2004-08-11 19:02:32 +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
James Bursa
54d25de371 [project @ 2004-07-30 16:16:07 by bursa]
Implement content_quit() and ro_gui_window_quit() to free resources on quit.

svn path=/import/netsurf/; revision=1164
2004-07-30 16:16:07 +00:00
Richard Wilson
b7bb766e95 [project @ 2004-07-16 19:47:02 by rjw]
Fix for hotlist menu selection. Interface for MNG/JNG display.

svn path=/import/netsurf/; revision=1083
2004-07-16 19:47:03 +00:00
James Bursa
6720beb2c1 [project @ 2004-06-23 15:41:50 by bursa]
Fix fetchcache_go() treatment of contents which the initiator loses interest in (eg. wrong content-type).

svn path=/import/netsurf/; revision=997
2004-06-23 15:41:50 +00:00
James Bursa
fdaf72417a [project @ 2004-06-22 17:37:51 by bursa]
Fix aborting of fetches.

svn path=/import/netsurf/; revision=990
2004-06-22 17:37:51 +00:00
James Bursa
b4723c1d05 [project @ 2004-06-21 15:09:58 by bursa]
Merge memory cache into content module.

svn path=/import/netsurf/; revision=986
2004-06-21 15:09:59 +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
John Tytgat
dc65374aa6 [project @ 2004-06-05 15:03:59 by joty]
Created content_set_status() : one centralised place where status_message
in the content struct is updated in a fail safe way.

svn path=/import/netsurf/; revision=928
2004-06-05 15:03:59 +00:00
James Bursa
1f28aad336 [project @ 2004-06-02 20:58:16 by bursa]
Remove some #ifdef riscos. Use floats for animation area.

svn path=/import/netsurf/; revision=908
2004-06-02 20:58:16 +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
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
James Bursa
199eee4b0b [project @ 2004-04-26 13:47:51 by bursa]
Fix scaled GIF animations.

svn path=/import/netsurf/; revision=805
2004-04-26 13:47:51 +00:00
James Bursa
1f07fc6de5 [project @ 2004-04-24 23:42:31 by bursa]
Replace void pointer in content callbacks with union content_msg_data. Fix animated gif flickering (except for scaled or masked gifs). Add gif to the debug builds.

svn path=/import/netsurf/; revision=801
2004-04-24 23:42:32 +00:00
James Bursa
b0fdba3f59 [project @ 2004-03-27 00:53:19 by bursa]
Add imagemap and jpeg to the debug build.

svn path=/import/netsurf/; revision=675
2004-03-27 00:54:03 +00:00
James Bursa
15537fb20d [project @ 2004-03-21 12:50:10 by bursa]
Animation support, not yet optimised.

svn path=/import/netsurf/; revision=641
2004-03-21 12:50:10 +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