mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-22 12:12:35 +03:00
Ensure quirks mode matches when retrieving contents from cache
svn path=/trunk/netsurf/; revision=10360
This commit is contained in:
parent
ad89d5b263
commit
7577e2a1e6
@ -972,6 +972,22 @@ uint32_t content_count_users(struct content *c)
|
||||
return counter - 1; /* Subtract 1 for the sentinel */
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if quirks mode matches
|
||||
*
|
||||
* \param c Content to consider
|
||||
* \param quirks Quirks mode to match
|
||||
* \return True if quirks match, false otherwise
|
||||
*/
|
||||
bool content_matches_quirks(struct content *c, bool quirks)
|
||||
{
|
||||
/* If the content isn't CSS, we don't care about quirks */
|
||||
if (c->type != CONTENT_CSS)
|
||||
return true;
|
||||
|
||||
return c->quirks == quirks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a message to all users.
|
||||
*/
|
||||
|
@ -103,6 +103,7 @@ void content_remove_user(struct content *c,
|
||||
void *pw);
|
||||
|
||||
uint32_t content_count_users(struct content *c);
|
||||
bool content_matches_quirks(struct content *c, bool quirks);
|
||||
|
||||
const struct llcache_handle *content_get_llcache_handle(struct content *c);
|
||||
|
||||
|
@ -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 quirks mode matches */
|
||||
/** \todo Need to ensure that content is shareable */
|
||||
/** \todo Need to ensure that content can be reused */
|
||||
if (entry->content == NULL)
|
||||
@ -437,6 +436,11 @@ nserror hlcache_find_content(hlcache_retrieval_ctx *ctx)
|
||||
if (content_get_status(&entry_handle) == CONTENT_STATUS_ERROR)
|
||||
continue;
|
||||
|
||||
/* Ensure that quirks mode is acceptable */
|
||||
if (content_matches_quirks(entry->content,
|
||||
ctx->child.quirks) == false)
|
||||
continue;
|
||||
|
||||
/* Ensure that content uses same low-level object as
|
||||
* low-level handle */
|
||||
entry_llcache = content_get_llcache_handle(entry->content);
|
||||
|
Loading…
Reference in New Issue
Block a user