Ensure content can be shared when retrieving from cache

svn path=/trunk/netsurf/; revision=10361
This commit is contained in:
John Mark Bell 2010-04-11 16:37:39 +00:00
parent 7577e2a1e6
commit ff8791a3f7
3 changed files with 16 additions and 1 deletions

View File

@ -988,6 +988,17 @@ bool content_matches_quirks(struct content *c, bool quirks)
return c->quirks == quirks;
}
/**
* Determine if a content is shareable
*
* \param c Content to consider
* \return True if content is shareable, false otherwise
*/
bool content_is_shareable(struct content *c)
{
return handler_map[c->type].no_share == false;
}
/**
* Send a message to all users.
*/

View File

@ -104,6 +104,7 @@ void content_remove_user(struct content *c,
uint32_t content_count_users(struct content *c);
bool content_matches_quirks(struct content *c, bool quirks);
bool content_is_shareable(struct content *c);
const struct llcache_handle *content_get_llcache_handle(struct content *c);

View File

@ -427,7 +427,6 @@ nserror hlcache_find_content(hlcache_retrieval_ctx *ctx)
hlcache_handle entry_handle = { entry, NULL, NULL };
const llcache_handle *entry_llcache;
/** \todo Need to ensure that content is shareable */
/** \todo Need to ensure that content can be reused */
if (entry->content == NULL)
continue;
@ -436,6 +435,10 @@ nserror hlcache_find_content(hlcache_retrieval_ctx *ctx)
if (content_get_status(&entry_handle) == CONTENT_STATUS_ERROR)
continue;
/* Ensure that content is shareable */
if (content_is_shareable(entry->content) == false)
continue;
/* Ensure that quirks mode is acceptable */
if (content_matches_quirks(entry->content,
ctx->child.quirks) == false)