Commit Graph

11028 Commits

Author SHA1 Message Date
Vincent Sanders 246a1fec05 remove constness from backing stores store method 2014-11-23 01:37:24 +00:00
Vincent Sanders 63c35da66e annotate element struct with packing attributes to reduce entry size 2014-11-23 01:25:14 +00:00
Vincent Sanders 08c7ef6bed Do not use anonymous union as it is not portable
unnamed unions are not portable to old compilers. When reloading data
ensure the heap allocation status is discarded.
2014-11-23 00:35:11 +00:00
Vincent Sanders 8b810ee4a1 change the persistant data store to owning the allocations 2014-11-22 23:56:43 +00:00
Chris Young 335ba082fd Ensure we're not running events ahead of time. 2014-11-22 17:15:52 +00:00
Chris Young 4a395ad025 Process scheduled event changes before incoming timer events.
This stops things being run that have just been deleted.  However, may cause the next event to run early because we don't check the time.
2014-11-22 17:10:07 +00:00
Chris Young 4589cab433 Re-enable asynchronous backing store writes 2014-11-22 16:52:27 +00:00
Chris Young bcd7413f8e Fix llcache ops table 2014-11-22 16:51:00 +00:00
Chris Young 0cd682644b Revert "Revert "Write out to the backing store asynchronously.""
This reverts commit 75623179aa.
2014-11-22 16:41:29 +00:00
Chris Young 71cdc991c7 fix warning 2014-11-22 16:39:31 +00:00
Chris Young 277ceb9fc2 Reduce stack to 2K 2014-11-22 16:38:26 +00:00
Chris Young 9e98d77531 Reply to the timer before running the scheduled task. 2014-11-22 16:37:49 +00:00
Chris Young 186e1f4ee3 New asynchronous scheduler
This ensures that if other processes other than the main NetSurf process try to create scheduled tasks, they are always run on the main process.
2014-11-22 16:30:43 +00:00
Chris Young 2de1553a00 New scheduler 2014-11-22 16:27:39 +00:00
Chris Young f8d8d218d8 Initial steps for a scheduler process 2014-11-22 16:27:39 +00:00
Chris Young fe56795205 Revert "Should be a while loop in case of multiple simultaneous event triggers."
This reverts commit 9dcf001a0b.

For ehatever reason this is entirely broken, but I'm in the process of rewriting so just revert for now to get the working builds again.
2014-11-22 14:18:00 +00:00
Michael Drake d9a63bb9e0 Fix brackets. 2014-11-22 00:06:01 +00:00
Michael Drake 1a1b6f8984 Shouldn't need browser_private.h now. 2014-11-22 00:02:28 +00:00
Michael Drake 0756b544c6 Use API to find if content is selectable, instead of guessing. 2014-11-22 00:02:28 +00:00
Michael Drake ba9a049d7b Simplify ami_history_open API and use correct call to get history object. 2014-11-22 00:02:28 +00:00
Michael Drake 0c7dc95dda Use API to get URL. 2014-11-22 00:02:28 +00:00
Michael Drake c9683119c3 Use browser_window_get_content where we need to. 2014-11-22 00:02:27 +00:00
Chris Young 9dcf001a0b Should be a while loop in case of multiple simultaneous event triggers. 2014-11-21 23:47:26 +00:00
Michael Drake 60c33e0410 Should be free of reliance on browser window internals here now. 2014-11-21 14:39:12 +00:00
Michael Drake 781fe8f330 Use browser_window_get_content() to get the current content.
Although I dislike this API, and it may go at some point.
2014-11-21 14:38:17 +00:00
Michael Drake 90f89f98e3 Use API for getting browser window history. 2014-11-21 14:37:17 +00:00
Michael Drake b4e044f6c9 Use browser_window_get_url() instead of getting URL from current content. 2014-11-21 14:30:09 +00:00
Michael Drake 3b686eaccc Use browser_window_can_select(), instead of assuming based on content type. 2014-11-21 14:26:29 +00:00
Vincent Sanders 9fb0eaa1cd fix missing semicolon 2014-11-21 13:14:20 +00:00
Michael Drake 19af487fa1 Shouldn't need browser_private.h now. 2014-11-21 12:56:19 +00:00
Michael Drake 47f6e29b4c Use browser_window_stop_available()
Looking at bw->loading_content was bad and wrong in the cases
of frames, and object fetches.
2014-11-21 12:53:55 +00:00
Michael Drake 6ea2fd3a7f Use API to get content for view source. 2014-11-21 12:51:30 +00:00
Michael Drake 22ebdd3315 Use API to get current scale. 2014-11-21 12:50:02 +00:00
Vincent Sanders a481e5965a remove atari need to use browser internal data structures 2014-11-21 12:32:46 +00:00
Vincent Sanders 3ff4846c1a Remove usage of browser private interfaces
The cocoa frontend was directly acessing browser internals instead of
using the API. In the case of gui.m there was a check for the browser
window not being root (browser->parent != NULL) . As gui windows can
only ever be associated with the root brower window (i.e. its parent
will always be NULL) this was completely redundant.
2014-11-21 11:48:43 +00:00
Michael Drake 0f0c3b02d7 Use public bw header. 2014-11-21 09:28:37 +00:00
Michael Drake c3ae0c0699 Should be able to switch to public bw header now. 2014-11-21 09:28:37 +00:00
Michael Drake 8fc7da72c6 Use browser_window_get_url, instead of fishing content out of bw and getting URL from that. 2014-11-21 09:28:37 +00:00
Michael Drake 8a6be34a62 Use public bw header. 2014-11-21 09:28:37 +00:00
Michael Drake 6832f80be3 Don't appear to need browser_private.h here. 2014-11-21 09:28:37 +00:00
Vincent Sanders eb87406758 update entry points to backing store ready for allowing differing object lifetimes 2014-11-20 22:28:19 +00:00
Chris Young 75623179aa Revert "Write out to the backing store asynchronously."
This reverts commit 1ddf8215cf.

Appears to be unsafe to run this in a new process.
2014-11-19 23:34:53 +00:00
Vincent Sanders 69f4397fe4 Limit creation of store path directories.
Only create all elements of a path in the store when it is being
opened for creation instead of causing reads to create directories.
2014-11-19 16:26:29 +00:00
Vincent Sanders 92a1ac4fbb Improve backing store control data serialisation
By scheduling the control data to be maintained (entries index written
and headers updated) once activity occurs to update these control
structures rather than a single serialisation at browser exit the data
is more likely to be up to date and not lost on a crash.
2014-11-19 16:22:06 +00:00
Vincent Sanders a79b30bd6f make backing store use rename to atomicly replace entries file 2014-11-19 11:26:27 +00:00
Chris Young 1ddf8215cf Write out to the backing store asynchronously.
Despite the fact AmigaOS filesystems run as separate processes,
DOS filesystem writes occur synchronously waiting for the disk
write to finish before returning.  Here we have effectively taken
the core's fs backing store and extended it slightly so the store
operation is spun off into a new process, running at a lower task
priority than NetSurf itself.  This stops the UI pauses that occur
shortly after loading pages as NetSurf commits the cache to disk.

Somewhat experimental, pending more extensive user testing.
2014-11-18 19:31:11 +00:00
Vincent Sanders 669df172ec Fix my spelling of teh everywhere 2014-11-18 17:16:26 +00:00
Chris Young cfc9971d0e Remove no longer used poll option from schedule runner 2014-11-17 23:47:28 +00:00
Vincent Sanders d4c7a0ff77 Improve data scheme fetcher allocation
The data scheme fetcher was over allocating the space for decoded
base64 encoded urls and not using the base64 API that allocated the
correct size storage.
2014-11-17 16:05:17 +00:00
Vincent Sanders d83935f0bd add libnsutils to default conveniance library setup 2014-11-17 16:04:30 +00:00