summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/IO/http.c2
-rw-r--r--src/cache.c4
-rw-r--r--src/capi.c4
-rw-r--r--src/nav.c27
-rw-r--r--src/url.h2
5 files changed, 23 insertions, 16 deletions
diff --git a/src/IO/http.c b/src/IO/http.c
index 702fc23c..46a2f313 100644
--- a/src/IO/http.c
+++ b/src/IO/http.c
@@ -267,7 +267,7 @@ Dstr *a_Http_make_query_str(const DilloUrl *url, bool_t use_proxy)
"%s"
"\r\n",
full_path->str,
- (URL_FLAGS(url) & URL_E2EReload) ?
+ (URL_FLAGS(url) & URL_E2EQuery) ?
"Cache-Control: no-cache\r\nPragma: no-cache\r\n" : "",
URL_HOST(url), s_port->str,
proxy_auth->str, referer, VERSION, cookies);
diff --git a/src/cache.c b/src/cache.c
index ab0f46fa..cb3fccd4 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -360,7 +360,7 @@ int a_Cache_open_url(void *web, CA_Callback_t Call, void *CbData)
DilloWeb *Web = web;
DilloUrl *Url = Web->url;
- if (URL_FLAGS(Url) & URL_E2EReload) {
+ if (URL_FLAGS(Url) & URL_E2EQuery) {
/* remove current entry */
Cache_entry_remove(NULL, Url);
}
@@ -746,7 +746,7 @@ static int Cache_redirect(CacheEntry_t *entry, int Flags, BrowserWindow *bw)
NewUrl = a_Url_new(URL_STR_(entry->Location), URL_STR_(entry->Url),
0, 0, 0);
if (entry->Flags & CA_TempRedirect)
- a_Url_set_flags(NewUrl, URL_FLAGS(NewUrl) | URL_E2EReload);
+ a_Url_set_flags(NewUrl, URL_FLAGS(NewUrl) | URL_E2EQuery);
a_Nav_push(bw, NewUrl);
a_Url_free(NewUrl);
} else {
diff --git a/src/capi.c b/src/capi.c
index cbe3febc..2be5045e 100644
--- a/src/capi.c
+++ b/src/capi.c
@@ -312,7 +312,7 @@ int a_Capi_open_url(DilloWeb *web, CA_Callback_t Call, void *CbData)
/* reload test */
reload = (!(a_Capi_get_flags(web->url) & CAPI_IsCached) ||
- (URL_FLAGS(web->url) & URL_E2EReload));
+ (URL_FLAGS(web->url) & URL_E2EQuery));
if (web->flags & WEB_Download) {
/* download request: if cached save from cache, else
@@ -337,7 +337,7 @@ int a_Capi_open_url(DilloWeb *web, CA_Callback_t Call, void *CbData)
if ((safe = Capi_dpi_verify_request(web))) {
if (dStrcasecmp(scheme, "dpi") == 0) {
/* make "dpi:/" prefixed urls always reload. */
- a_Url_set_flags(web->url, URL_FLAGS(web->url) | URL_E2EReload);
+ a_Url_set_flags(web->url, URL_FLAGS(web->url) | URL_E2EQuery);
reload = 1;
}
if (reload) {
diff --git a/src/nav.c b/src/nav.c
index 30972697..5329a326 100644
--- a/src/nav.c
+++ b/src/nav.c
@@ -206,7 +206,7 @@ static void Nav_open_url(BrowserWindow *bw, const DilloUrl *url, int offset)
MSG("Nav_open_url: new url='%s'\n", URL_STR_(url));
- ForceReload = (URL_FLAGS(url) & (URL_E2EReload + URL_ReloadFromCache)) != 0;
+ ForceReload = (URL_FLAGS(url) & (URL_E2EQuery + URL_ReloadFromCache)) != 0;
/* Get the url of the current page */
idx = a_Nav_stack_ptr(bw);
@@ -265,12 +265,13 @@ void a_Nav_cancel_expect(BrowserWindow *bw)
/*
* We have an answer! Set things accordingly.
+ * This function is called for root URLs only.
* Beware: this function is much more complex than it looks
* because URLs with repush pass twice through it.
*/
void a_Nav_expect_done(BrowserWindow *bw)
{
- int url_idx, posx, posy, repush, e2ereload, goto_old_scroll = TRUE;
+ int url_idx, posx, posy, reload, repush, e2equery, goto_old_scroll = TRUE;
DilloUrl *url;
char *fragment = NULL;
@@ -278,18 +279,22 @@ void a_Nav_expect_done(BrowserWindow *bw)
if (bw->nav_expecting) {
url = bw->nav_expect_url;
+ reload = (URL_FLAGS(url) & URL_ReloadPage);
repush = (URL_FLAGS(url) & URL_ReloadFromCache);
- e2ereload = (URL_FLAGS(url) & URL_E2EReload);
+ e2equery = (URL_FLAGS(url) & URL_E2EQuery);
fragment = a_Url_decode_hex_str(URL_FRAGMENT_(url));
- /* unset E2EReload before adding this url to history */
- a_Url_set_flags(url, URL_FLAGS(url) & ~URL_E2EReload);
- /* unset ReloadFromCache before adding this url to history */
+ /* Unset E2EQuery, ReloadPage and ReloadFromCache
+ * before adding this url to history */
+ a_Url_set_flags(url, URL_FLAGS(url) & ~URL_E2EQuery);
+ a_Url_set_flags(url, URL_FLAGS(url) & ~URL_ReloadPage);
a_Url_set_flags(url, URL_FLAGS(url) & ~URL_ReloadFromCache);
url_idx = a_History_add_url(url);
- if (repush || e2ereload) {
- MSG("a_Nav_expect_done: %s!\n", repush ? "repush" : "e2ereload");
+ if (repush) {
+ MSG("a_Nav_expect_done: repush!\n");
+ } else if (reload) {
+ MSG("a_Nav_expect_done: reload!\n");
} else {
Nav_stack_truncate(bw, a_Nav_stack_ptr(bw) + 1);
Nav_stack_insert(bw, url_idx, a_Nav_stack_ptr(bw) + 1, 0, 0);
@@ -302,7 +307,7 @@ void a_Nav_expect_done(BrowserWindow *bw)
Nav_get_scroll_pos(bw, &posx, &posy);
if (posx || posy)
goto_old_scroll = TRUE;
- } else if (e2ereload) {
+ } else if (e2equery) {
/* Reset scroll, so repush goes to fragment in the next pass */
Nav_save_scroll_pos(bw, a_Nav_stack_ptr(bw), 0, 0);
}
@@ -452,8 +457,10 @@ static void Nav_reload(BrowserWindow *bw)
a_Nav_cancel_expect(bw);
if (a_Nav_stack_size(bw)) {
ReqURL = a_Url_dup(a_History_get_url(NAV_TOP_UIDX(bw)));
+ /* Mark URL as reload to differentiate from push */
+ a_Url_set_flags(ReqURL, URL_FLAGS(ReqURL) | URL_ReloadPage);
/* Let's make reload be end-to-end */
- a_Url_set_flags(ReqURL, URL_FLAGS(ReqURL) | URL_E2EReload);
+ a_Url_set_flags(ReqURL, URL_FLAGS(ReqURL) | URL_E2EQuery);
/* This is an explicit reload, so clear the SpamSafe flag */
a_Url_set_flags(ReqURL, URL_FLAGS(ReqURL) & ~URL_SpamSafe);
bw->nav_expect_url = ReqURL;
diff --git a/src/url.h b/src/url.h
index bb77fef1..4fbdca60 100644
--- a/src/url.h
+++ b/src/url.h
@@ -34,7 +34,7 @@
#define URL_Ismap (1 << 3)
#define URL_RealmAccess (1 << 4)
-#define URL_E2EReload (1 << 5)
+#define URL_E2EQuery (1 << 5)
#define URL_ReloadImages (1 << 6)
#define URL_ReloadPage (1 << 7)
#define URL_ReloadFromCache (1 << 8)