summaryrefslogtreecommitdiff
path: root/css
diff options
context:
space:
mode:
authorJohn-Mark Bell <jmb@netsurf-browser.org>2013-02-27 03:55:48 +0000
committerJohn-Mark Bell <jmb@netsurf-browser.org>2013-02-27 03:55:48 +0000
commit6b9f7c3094248c4b0594040bf93b7a5a071d8d6e (patch)
tree3f4afb3791c98c16527bae3b0dfe2f9a64de19aa /css
parentcd3e073354dacbd18baf0039b71b2739bd266357 (diff)
downloadnetsurf-6b9f7c3094248c4b0594040bf93b7a5a071d8d6e.tar.gz
netsurf-6b9f7c3094248c4b0594040bf93b7a5a071d8d6e.tar.bz2
Use correct base URL for inline stylesheets
Diffstat (limited to 'css')
-rw-r--r--css/css.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/css/css.c b/css/css.c
index 8923bdc07..0410f180d 100644
--- a/css/css.c
+++ b/css/css.c
@@ -129,6 +129,7 @@ nserror nscss_create(const content_handler *handler,
{
nscss_content *result;
const char *charset = NULL;
+ const char *xnsbase = NULL;
lwc_string *charset_value = NULL;
union content_msg_data msg_data;
nserror error;
@@ -155,9 +156,14 @@ nserror nscss_create(const content_handler *handler,
charset = lwc_string_data(charset_value);
}
+ /* Compute base URL for stylesheet */
+ xnsbase = llcache_handle_get_header(llcache, "X-NS-Base");
+ if (xnsbase == NULL) {
+ xnsbase = nsurl_access(content_get_url(&result->base));
+ }
+
error = nscss_create_css_data(&result->data,
- nsurl_access(content_get_url(&result->base)),
- charset, result->base.quirks,
+ xnsbase, charset, result->base.quirks,
nscss_content_done, result);
if (error != NSERROR_OK) {
msg_data.error = messages_get("NoMemory");