diff options
author | James Bursa <james@netsurf-browser.org> | 2004-06-10 23:55:23 +0000 |
---|---|---|
committer | James Bursa <james@netsurf-browser.org> | 2004-06-10 23:55:23 +0000 |
commit | d938fe135b5e0fc5b4c957beac2445ae5e6d54ed (patch) | |
tree | 823ec259b37319d7790303c5a7b84528dae52fd6 /desktop/browser.c | |
parent | d58147aa584b8642a94d8c701d18e09252fb85f0 (diff) | |
download | netsurf-d938fe135b5e0fc5b4c957beac2445ae5e6d54ed.tar.gz netsurf-d938fe135b5e0fc5b4c957beac2445ae5e6d54ed.tar.bz2 |
[project @ 2004-06-10 23:55:23 by bursa]
Split fetchcache() into fetchcache() and fetchcache_go() to solve problems of callbacks being called before fetchcache() returns. Fix <style> breakage. Error handling fixes & improvements.
svn path=/import/netsurf/; revision=957
Diffstat (limited to 'desktop/browser.c')
-rw-r--r-- | desktop/browser.c | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index 2c8c28441..499d07997 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -152,7 +152,8 @@ void browser_window_go_post(struct browser_window *bw, const char *url, { struct content *c; char *url2; - union content_msg_data data; + + LOG(("bw %p, url %s", bw, url)); url2 = url_normalize(url); if (!url2) { @@ -165,36 +166,21 @@ void browser_window_go_post(struct browser_window *bw, const char *url, browser_window_set_status(bw, messages_get("Loading")); bw->history_add = history_add; bw->time0 = clock(); - if (strncmp(url2, "about:", 6) == 0) { - c = about_create(url2, browser_window_callback, bw, 0, - gui_window_get_width(bw->window), 0); - } - else { - c = fetchcache(url2, 0, - browser_window_callback, bw, 0, - gui_window_get_width(bw->window), 0, - false, - post_urlenc, post_multipart, - true); - } + c = fetchcache(url2, browser_window_callback, bw, 0, + gui_window_get_width(bw->window), 0, + false, + post_urlenc, post_multipart, true); free(url2); if (!c) { - browser_window_set_status(bw, messages_get("FetchFailed")); + browser_window_set_status(bw, messages_get("NoMemory")); + warn_user("NoMemory", 0); return; } bw->loading_content = c; browser_window_start_throbber(bw); - if (c->status == CONTENT_STATUS_READY) { - browser_window_callback(CONTENT_MSG_READY, c, bw, 0, data); - - } else if (c->status == CONTENT_STATUS_DONE) { - browser_window_callback(CONTENT_MSG_READY, c, bw, 0, data); - if (c->type == CONTENT_OTHER) - download_window_callback(CONTENT_MSG_DONE, c, bw, 0, data); - else - browser_window_callback(CONTENT_MSG_DONE, c, bw, 0, data); - } + fetchcache_go(c, 0, browser_window_callback, bw, 0, + post_urlenc, post_multipart, true); } |