[Dillo-dev]Refresh patch for 0.8.4
Heya. New here. Glad someone's working on Dillo. Hope it comes full-featured like Firefox is with less than half the bloat! I'm attaching a fixed patch for 0.8.4 that allows meta-http refreshes. This is quite common with web chats (including Tag-Board). I've test-compiled and ran it, and so far so good. The next thing we'll need is the frames/iframes code now! -- Kelly "STrRedWolf" Price http://strredwolf.furrynet.com
In message <7ff5668305012822047c7c59a5@mail.gmail.com>, Kelly Price <strredwolf@gmail.com> writes
Heya. New here. Glad someone's working on Dillo. Hope it comes full-featured like Firefox is with less than half the bloat!
well some of us want NO bloat, and would err on the side of something less than fully-featured to ensure that. If others really require a firefox-competitor, perhaps we are heading for a dillo-lite... -- robert w hall
On Sat, Jan 29, 2005 at 01:46:13PM +0000, robert w hall wrote:
In message <7ff5668305012822047c7c59a5@mail.gmail.com>, Kelly Price <strredwolf@gmail.com> writes
Heya. New here. Glad someone's working on Dillo. Hope it comes full-featured like Firefox is with less than half the bloat!
well some of us want NO bloat, and would err on the side of something less than fully-featured to ensure that.
If others really require a firefox-competitor, perhaps we are heading for a dillo-lite...
through the use of dillo plug-ins, i think we should be fully capable of keeping the core dillo small and light, while easily allowing the ability to add features that some people need without increasing the core bloat. https is a perfect example of this for one. -brian -- "Now you know why I got the everliving hell OUT of Windows administration. Knowing it doesn't make it any easier. It's just broken-as-designed."
* Brian Hechinger <wonko@4amlunch.net> [01-29-05 11:41]:
through the use of dillo plug-ins, i think we should be fully capable of keeping the core dillo small and light, while easily allowing the ability to add features that some people need without increasing the core bloat.
https is a perfect example of this for one.
https is already available by merely commenting out one line of code before complying. I use it exclusively. The only problem I have with it is it's only available to *one* screen/instance at a time :^(. -- Patrick Shanahan Registered Linux User #207535 http://wahoo.no-ip.org @ http://counter.li.org HOG # US1244711 Photo Album: http://wahoo.no-ip.org/photos
On Sat, 29 Jan 2005 12:30:54 -0500, Patrick Shanahan <ptilopteri@gmail.com> wrote:
before complying. I use it exclusively. The only problem I have with it is it's only available to *one* screen/instance at a time :^(.
uuhmm?! are you sure? arent you thinking in the cookies? i have https in every instance i try, the only problem with https is the "always ask for the certificate" problem higuita -- Naturally the common people don't want war... but after all it is the leaders of a country who determine the policy, and it is always a simple matter to drag the people along, whether it is a democracy, or a fascist dictatorship, or a parliament, or a communist dictatorship. Voice or no voice, the people can always be brought to the bidding of the leaders. That is easy. All you have to do is tell them they are being attacked, and denounce the pacifists for lack of patriotism and exposing the country to danger. It works the same in every country. -- Hermann Goering, Nazi and war criminal, 1883-1946
* higuita <higuita7@yahoo.co.uk> [01-30-05 03:16]:
uuhmm?! are you sure? arent you thinking in the cookies? i have https in every instance i try, the only problem with https is the "always ask for the certificate" problem
maybe ?? -- Patrick Shanahan Registered Linux User #207535 http://wahoo.no-ip.org @ http://counter.li.org HOG # US1244711 Photo Album: http://wahoo.no-ip.org/photos
robert w hall wrote:
In message <7ff5668305012822047c7c59a5@mail.gmail.com>, Kelly Price <strredwolf@gmail.com> writes
Heya. New here. Glad someone's working on Dillo. Hope it comes full-featured like Firefox is with less than half the bloat!
well some of us want NO bloat, and would err on the side of something less than fully-featured to ensure that.
If others really require a firefox-competitor, perhaps we are heading for a dillo-lite...
Robert you have some problems but because I'm here as software developer and not as puppy mainteiner I will avoid to explain you why you missed THE point of that mail. But you still missed! ;-) However if some patches doesn't meet the strict requirements of the core dillo developers team doesn't mean that patches are crap or useless to others people. I still remember you that free software is for free people who have the right of choice and not to be forced to use 'dillo' as you imagined. Because you could be a genius but your imagination, by definition of genius as human being element, is still limitated. Because there are some patches out of there AT LEAST could be interesting for dillo users and for the project itself have a page collecting all these contribute AS patches. "AT LEAST for project itself too" exactly means "to reduce the risk of a fork". Which it could be not so difficult as you think, that could be less difficult than still sticky to YOUR limnitated-imagination-dillo. :-) Cheers, -- Roberto A. Foglietta Analista Programmatore GNU/Linux SAD Trasporto Locale S.p.a. Corso Italia 13/N 39100 BOLZANO (I) Tel. +39/0471-450.261 Fax +39/0471-450.253
Kelly Price wrote:
Heya. New here. Glad someone's working on Dillo. Hope it comes full-featured like Firefox is with less than half the bloat!
I'm attaching a fixed patch for 0.8.4 that allows meta-http refreshes. This is quite common with web chats (including Tag-Board). I've test-compiled and ran it, and so far so good.
The next thing we'll need is the frames/iframes code now!
I'm the authoir of original patch. I developed it for 0.8.4 too reducing size of patch itself. I tried to talk with dillo author to evaluete if there was any chances to include it in the main branch but I didn't received any answer. If somebody else is using this patch I will put on my website and I will keep it uptodate. Let me know. :-) Cheers, -- Roberto A. Foglietta Analista Programmatore GNU/Linux SAD Trasporto Locale S.p.a. Corso Italia 13/N 39100 BOLZANO (I) Tel. +39/0471-450.261 Fax +39/0471-450.253
On Mon, 31 Jan 2005, Roberto A. Foglietta wrote:
Kelly Price wrote:
Heya. New here. Glad someone's working on Dillo. Hope it comes full-featured like Firefox is with less than half the bloat!
I'm attaching a fixed patch for 0.8.4 that allows meta-http refreshes. This is quite common with web chats (including Tag-Board). I've test-compiled and ran it, and so far so good.
The next thing we'll need is the frames/iframes code now!
I'm the authoir of original patch. I developed it for 0.8.4 too reducing size of patch itself. I tried to talk with dillo author to evaluete if there was any chances to include it in the main branch but I didn't received any answer.
This is only my opinion, which may be wrong (I am only contributed few patches to Dillo), but I think the reason for no answer is that strict standards compliance is one of the goals of the Dillo project and the w3c html standard discourages the usage of meta tag for refresh. http://www.w3.org/TR/html401/struct/global.html#idx-meta_data-2
Madis Janson wrote:
This is only my opinion, which may be wrong (I am only contributed few patches to Dillo), but I think the reason for no answer is that strict standards compliance is one of the goals of the Dillo project and the w3c html standard discourages the usage of meta tag for refresh.
http://www.w3.org/TR/html401/struct/global.html#idx-meta_data-2
Actually, that document only discourages using meta refresh for *forwarding*, as there are better, more accessible ways to do it (i.e. 302 Moved and similar responses). It says nothing negative about using a meta http-equiv tag to *refresh* the page. "Note. Some user agents support the use of META to refresh the current page after a specified number of seconds, with the option of replacing it by a different URI. Authors should not use this technique to forward users to different pages, as this makes the page inaccessible to some users. Instead, automatic page forwarding should be done using server-side redirects." -- Kelson Vibber www.hyperborea.org
Kelson Vibber wrote:
Madis Janson wrote:
This is only my opinion, which may be wrong (I am only contributed few patches to Dillo), but I think the reason for no answer is that strict standards compliance is one of the goals of the Dillo project and the w3c html standard discourages the usage of meta tag for refresh.
http://www.w3.org/TR/html401/struct/global.html#idx-meta_data-2
Actually, that document only discourages using meta refresh for *forwarding*, as there are better, more accessible ways to do it (i.e. 302 Moved and similar responses). It says nothing negative about using a meta http-equiv tag to *refresh* the page.
"Note. Some user agents support the use of META to refresh the current page after a specified number of seconds, with the option of replacing it by a different URI. Authors should not use this technique to forward users to different pages, as this makes the page inaccessible to some users. Instead, automatic page forwarding should be done using server-side redirects."
I hope this could make change your minds about including my patch in dillo project. I remember you that patch doesn't modify standard dillo behaviure but simple add -r flags which allow refresh tag to act. :-) If I have to modify something in the patch to make it accepted feel free to suggest me. Cheers, -- Roberto A. Foglietta Analista Programmatore GNU/Linux SAD Trasporto Locale S.p.a. Corso Italia 13/N 39100 BOLZANO (I) Tel. +39/0471-450.261 Fax +39/0471-450.253 diff -pru dillo-0.8.4/src/browser.h dillo-0.8.4-refresh/src/browser.h --- dillo-0.8.4/src/browser.h 2004-10-20 21:09:51.000000000 +0200 +++ dillo-0.8.4-refresh/src/browser.h 2005-01-17 14:39:34.000000000 +0100 @@ -139,6 +139,12 @@ struct _BrowserWindow /* The id for the idle function that sets button sensitivity. */ guint sens_idle_id; + + /* RAF, 2004-10-26: usefull to refresh tag */ + guint timeout; + guint delay; + guint idle_id; + DilloUrl *refresh_url; }; diff -pru dillo-0.8.4/src/cache.c dillo-0.8.4-refresh/src/cache.c --- dillo-0.8.4/src/cache.c 2004-12-24 16:22:53.000000000 +0100 +++ dillo-0.8.4-refresh/src/cache.c 2005-01-17 14:51:58.000000000 +0100 @@ -906,6 +906,12 @@ static void Cache_process_queue(CacheDat DEBUG_MSG(1, "QueueSize ====> %d\n", g_slist_length(ClientQueue)); } +/* RAF, 2004-10-28 */ +gint a_Cache_queue_size(void) +{ + return g_slist_length(ClientQueue); +} + /* * Callback function for Cache_delayed_process_queue. */ diff -pru dillo-0.8.4/src/cache.h dillo-0.8.4-refresh/src/cache.h --- dillo-0.8.4/src/cache.h 2004-12-23 19:55:07.000000000 +0100 +++ dillo-0.8.4-refresh/src/cache.h 2005-01-17 14:52:16.000000000 +0100 @@ -50,6 +50,7 @@ struct _CacheClient { /* * Function prototypes */ +gint a_Cache_queue_size(void); //RAF, 2004-10-28 void a_Cache_init(void); gint a_Cache_open_url(void *Web, CA_Callback_t Call, void *CbData); gint a_Cache_get_buf(const DilloUrl *Url, gchar **PBuf, gint *BufSize); diff -pru dillo-0.8.4/src/dillo.c dillo-0.8.4-refresh/src/dillo.c --- dillo-0.8.4/src/dillo.c 2005-01-06 13:14:39.000000000 +0100 +++ dillo-0.8.4-refresh/src/dillo.c 2005-01-17 13:55:23.000000000 +0100 @@ -70,6 +70,7 @@ enum { DILLO_CLI_LOCAL = 1 << 5, DILLO_CLI_GEOMETRY = 1 << 6, DILLO_CLI_DBG_RENDERING = 1 << 7, + DILLO_CLI_REFRESH = 1 << 8, //RAF-2004-10-27 DILLO_CLI_ERROR = 1 << 15 }; @@ -82,6 +83,9 @@ enum { */ gboolean dillo_dbg_rendering = FALSE; +/* RAF, 2004-10-27: adding command line option to allow refresh */ +gboolean dillo_refresh = FALSE; + /* * Forward declarations */ @@ -114,6 +118,9 @@ static CLI_options Options[] = { 0, DILLO_CLI_DBG_RENDERING, " -D, --debug-rendering Draw additionaly several lines in a web page,\n" " representing its structure. For debugging. "}, + /* RAF 2004-10-27: command line option add */ + {"-r", "-refresh", 0, DILLO_CLI_REFRESH, + " -r, -refresh Allow meta refresh working as webmaster decided."}, {NULL, NULL, 0, 0, NULL} }; @@ -249,6 +256,10 @@ gint main(int argc, char *argv[]) case DILLO_CLI_DBG_RENDERING: dillo_dbg_rendering = TRUE; break; + /* RAF, 2004-10-27: adding command line option for meta refresh */ + case DILLO_CLI_REFRESH: + dillo_refresh = TRUE; + break; case DILLO_CLI_GEOMETRY: if (a_Misc_parse_geometry(opt_argv[0], &xpos, &ypos, &width, &height)) break; diff -pru dillo-0.8.4/src/dillo.h dillo-0.8.4-refresh/src/dillo.h --- dillo-0.8.4/src/dillo.h 2004-05-22 00:13:07.000000000 +0200 +++ dillo-0.8.4-refresh/src/dillo.h 2005-01-17 13:53:23.000000000 +0100 @@ -6,4 +6,7 @@ extern gboolean dillo_dbg_rendering; +/* RAF, 2004-10-27: adding command line option to allow refresh */ +extern gboolean dillo_refresh; + #endif /* __DILLO_H__ */ diff -pru dillo-0.8.4/src/html.c dillo-0.8.4-refresh/src/html.c --- dillo-0.8.4/src/html.c 2005-01-05 22:01:00.000000000 +0100 +++ dillo-0.8.4-refresh/src/html.c 2005-01-17 14:52:58.000000000 +0100 @@ -3150,6 +3150,56 @@ static void Html_tag_close_form(DilloHtm * is a hackish way to put the message. A much cleaner approach is to * build a custom widget for it. */ + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * WORKING ON SUPPORTING DEPRECATED META REFRESH + * Roberto A. Foglietta <roberto.foglietta@sad.it> + * + * Actually I'm working for a local public transport company in which + * I have to to develop a new way to display time table and information + * to people. Using Dillo into embedded linux system allow my collegues + * to change graphical display just editing php code in the server BUT + * this kind of information have to stay up-to-date. Commit a refresh + * from server is, in this case, the best solution I can immagine. + * So supporting meta refresh tag makes Dillo good for embedded client + * systems. This is the main reason because I developed this web-deprecated + * but very-useful-in-embedded function. In addition to this pratical + * consideration I think people use free software to be free, so it makes + * sense give them the freedoom to choose also deprecated functions. + * Obviously to respect Dillo's team decision to do not allow refresh + * as default policy I make it optional by setting a flag from command + * line + */ + +void refresh_true_callback(gpointer client_data) { + BrowserWindow *bw = client_data; + + if(bw->timeout) { + gtk_timeout_remove(bw->timeout); + bw->timeout = 0; + } + + a_Commands_open_link_callback(NULL, client_data); +} + +void refresh_callback(gpointer client_data) { + BrowserWindow *bw = client_data; + + if(a_Cache_queue_size()) { + return; + } + + MSG("a_Cache_queue_size: %d\n", a_Cache_queue_size()); + + if(bw->idle_id) { + gtk_idle_remove(bw->idle_id); + bw->idle_id = 0; + } + + bw->timeout = gtk_timeout_add((guint32)bw->delay*1000, + (GtkFunction)refresh_true_callback, (gpointer)(bw)); +} + static void Html_tag_open_meta(DilloHtml *html, char *tag, gint tagsize) { const gchar *meta_template = @@ -3161,7 +3211,7 @@ static void Html_tag_open_meta(DilloHtml " <a href='%s'>here</a>%s</td></tr></table><br>\n"; const gchar *equiv, *content; - gchar *html_msg, delay_str[64]; + gchar *ptr, *html_msg, delay_str[64]; gint delay; /* only valid inside HEAD */ @@ -3173,7 +3223,34 @@ static void Html_tag_open_meta(DilloHtml if ((equiv = Html_get_attr(html, tag, tagsize, "http-equiv")) && !g_strcasecmp(equiv, "refresh") && (content = Html_get_attr(html, tag, tagsize, "content"))) { + } else { + return; + } + + /* check for delay */ + delay = strtol(content, &ptr, 0); + if(ptr) ptr = (gchar *)content; + + if(*ptr) { + /* todo: fix this to parse "URL =" & friends (HTML spec) */ + /* RAF, 2004-10-25: DONE, I suppose... */ + if (strstr(ptr, "URL") || strstr(ptr, "url") || strstr(ptr, "Url")) { + ptr = strstr(ptr, "="); + while (*(++ptr) == ' ' && *ptr != '>'); /* skip URL= & friends */ + if(*ptr == '>') *ptr = 0; /* doesn't exist any URL= */ + } else { + *ptr = 0; /* doesn't exist any URL= */ + } + } + + if(!*ptr && !delay) { + return; + } else { + g_print("meta refresh: start with refresh %sallowed\n", (dillo_refresh) ? "" : "not "); + g_print("meta refresh: delay -> %d, url -> %s\n", delay, (*ptr) ? ptr : "none"); + } + if(!dillo_refresh) { /* Get delay, if present, and make a message with it */ if ((delay = strtol(content, NULL, 0))) g_snprintf(delay_str, 64, " after %d second%s.", @@ -3196,6 +3273,33 @@ static void Html_tag_open_meta(DilloHtml html->InFlags = SaveFlags; } g_free(html_msg); + } else { + //if(html->bw->refresh_url) + a_Url_free(html->bw->refresh_url); + + if(*ptr) { + html->bw->refresh_url = a_Url_new(ptr, NULL, 0, 0, 0); + a_Url_set_flags(html->bw->refresh_url, URL_FLAGS(html->bw->refresh_url) | URL_E2EReload); + a_Menu_popup_set_url(html->bw, html->bw->refresh_url); + } else { + html->bw->refresh_url = a_History_get_url(NAV_TOP(html->bw)); + a_Url_set_flags(html->bw->refresh_url, URL_FLAGS(html->bw->refresh_url) | URL_E2EReload); + a_Url_set_flags(html->bw->refresh_url, URL_FLAGS(html->bw->refresh_url) & ~URL_SpamSafe); + a_Menu_popup_set_url(html->bw, html->bw->refresh_url); + html->bw->refresh_url = NULL; + } + + /* RAF, 2004-10-25: Use a timeout to refresh the page automatically */ + if(delay) { + //html->bw->timeout = gtk_timeout_add((guint32)delay*1000, + // (GtkFunction)refresh_callback, (gpointer)(html->bw)); + html->bw->delay = delay; + html->bw->idle_id = gtk_idle_add((GtkFunction)refresh_callback, (gpointer)(html->bw)); + } else { + html->bw->timeout = 0; + html->bw->delay = 0; + refresh_callback(html->bw); + } } } diff -pru dillo-0.8.4/src/interface.c dillo-0.8.4-refresh/src/interface.c --- dillo-0.8.4/src/interface.c 2004-12-29 14:26:48.000000000 +0100 +++ dillo-0.8.4-refresh/src/interface.c 2005-01-17 14:46:41.000000000 +0100 @@ -1127,6 +1127,12 @@ a_Interface_browser_window_new(gint widt bw->viewsource_window = NULL; bw->pagebugs_window = NULL; + /* RAF, 2004-10-26: null value for time out */ + bw->timeout = 0; + bw->delay = 0; + bw->idle_id = 0; + bw->refresh_url = NULL; + /* now that the bw is made, let's customize it.. */ Interface_browser_window_customize(bw); diff -pru dillo-0.8.4/src/nav.c dillo-0.8.4-refresh/src/nav.c --- dillo-0.8.4/src/nav.c 2004-12-16 20:02:21.000000000 +0100 +++ dillo-0.8.4-refresh/src/nav.c 2005-01-17 14:43:20.000000000 +0100 @@ -55,6 +55,9 @@ void a_Nav_free(BrowserWindow *bw) { a_Nav_cancel_expect(bw); g_free(bw->nav_stack); + + /* RAF, 2004-10-27: free the url redirection */ + a_Url_free(bw->refresh_url); } @@ -156,6 +159,11 @@ static void Nav_open_url(BrowserWindow * gboolean ForceReload = (URL_FLAGS(url) & URL_E2EReload); MSG("Nav_open_url: Url=>%s<\n", URL_STR_(url)); + /* RAF, 2004-10-28: switch off reload timeout */ + if(bw->timeout) { + gtk_timeout_remove(bw->timeout); + bw->timeout = 0; + } /* Get the url of the current page */ if ( a_Nav_stack_ptr(bw) != -1 )
Kelly Price wrote:
Heya. New here. Glad someone's working on Dillo. Hope it comes full-featured like Firefox is with less than half the bloat!
I'm attaching a fixed patch for 0.8.4 that allows meta-http refreshes. This is quite common with web chats (including Tag-Board). I've test-compiled and ran it, and so far so good.
The next thing we'll need is the frames/iframes code now!
Here you are the refresh patch for dillo 0.8.4 from the author (me) http://www.roberto.foglietta.name/pub/dillo-0.8.4-refresh.patch.bz2 please don't spread modified patch which containing my name (and so people are let to refer at me like the original author) WITHOUT commenting the code about your modifies to adapt it to new releases. That patch cointaining ONLY the code necessary to use refresh option. Most of others changes (like in the patch you have submitted) doesn't make any sense (or not make sensa anymore). Thank you for your patience, -- Roberto A. Foglietta Analista Programmatore GNU/Linux SAD Trasporto Locale S.p.a. Corso Italia 13/N 39100 BOLZANO (I) Tel. +39/0471-450.261 Fax +39/0471-450.253
* Kelly Price <strredwolf@gmail.com> wrote:
Heya. New here. Glad someone's working on Dillo. Hope it comes full-featured like Firefox is with less than half the bloat!
I'm attaching a fixed patch for 0.8.4 that allows meta-http refreshes. This is quite common with web chats (including Tag-Board). I've test-compiled and ran it, and so far so good.
The next thing we'll need is the frames/iframes code now!
I don't know about anyone else, but much of the reason I use dillo is because it does *not* do things like frames, meta-refresh, GIF animations, and Flash ads. It is very small, very fast, and implements useful browser functions without all the flashy cruft a lot of annoying sites use. If you want firefox, then use firefox. As for meta-refresh, I suppose it could be included without causing much trouble, on two conditions: It should retain its current "warn the user instead of refreshing" behavior, if the refresh goes to a different page. Also, it should let the user specify a minimum refresh time that the page cannot override. This would allow it to follow W3C standards, and not bother users. -- Scott
Scott Scriven wrote: [cut]
As for meta-refresh, I suppose it could be included without causing much trouble, on two conditions: It should retain its current "warn the user instead of refreshing" behavior, if the refresh goes to a different page. Also, it should let the user specify a minimum refresh time that the page cannot override. This would allow it to follow W3C standards, and not bother users.
Since the first patch I published the refresh meta tag has to be activated by '-r' option or it doesn't work and show the warning as usual. If you use the '-r' option so dillo behave like every bloat mozilla/firefox/opera/ie etc. etc. The option could *not* be save in the /etc/.dillorc but has to be put on the command line. Scott, do you thing this is sufficent? An option have to be activated by the user so I suppose he/she has to know what that option will be. If I want to be bothered, may I choose it? ;-) Cheers, -- Roberto A. Foglietta Analista Programmatore GNU/Linux SAD Trasporto Locale S.p.a. Corso Italia 13/N 39100 BOLZANO (I) Tel. +39/0471-450.261 Fax +39/0471-450.253
* Roberto A. Foglietta <roberto.foglietta@sad.it> wrote:
As for meta-refresh, I suppose it could be included without causing much trouble, on two conditions: It should retain its current "warn the user instead of refreshing" behavior, if the refresh goes to a different page. Also, it should let the user specify a minimum refresh time that the page cannot override. This would allow it to follow W3C standards, and not bother users.
Since the first patch I published the refresh meta tag has to be activated by '-r' option or it doesn't work and show the warning as usual. If you use the '-r' option so dillo behave like every bloat mozilla/firefox/opera/ie etc. etc.
The option could *not* be save in the /etc/.dillorc but has to be put on the command line. Scott, do you thing this is sufficent? An option have to be activated by the user so I suppose he/she has to know what that option will be. If I want to be bothered, may I choose it? ;-)
It seems to me like something which should be in the config file instead of the command line. I also don't think it should follow refresh links to other pages; it's annoying and the W3C recommends not doing so. A single config option could work; something like "min_refresh_time=5" would enable the feature, and prevent it from reloading more than once every 5 seconds. Or, set the value to -1 to disable the feature and revert to previous behavior. As a command-line option, I'd probably never use it. I don't want dillo to refresh automatically to a different page, ever, so I wouldn't turn the feature on most of the time. But I don't usually know in advance when I'll view a page which refreshes itself, so the feature wouldn't be enabled when I want it. I'm just a regular dillo user, though, so I don't get to decide which patches are accepted. :) -- Scott
Hi Roberto, Sorry for not having had the time to answer this. I'm more than busy finishing all the details of my trip to FOSDEM 2005. I'll post a detailed answer before I depart If I have the time. Meta-refresh causes problems to regular users. It can also be easily abused (for instance auto reloading advertising), it is troublesome for people that have set connect on demand. It's a big problem for consumers with dialups or ISPs that collect cash on a per KB or MB basis. When on limited bandwith it consumes scarce resources. There's also a great incentive to abuse meta-refresh for sites that get their revenues on a per-click basis for advertising. There's a security problem too. A meta refresh is taken as it was a click from the user, so it can be taken advantage off in a way it'd be unwise to describe in a public forum. ;) AFAIK, there's no standard that specifies what meta-refresh does and how. So it must be implemented "by ear". OTOH, I can perfectly understand its uses on an embedded scenery. As a matter of fact I developed this a couple of years ago for a company needing it for an embedded app. A meta-refresh patch is small and almost no bloat, so maybe having it as a 'configure' option for embedded developers that know what they're doing could be considered. FWIW, I decided not to make it public long ago because some packagers were just picking up patches from the net and making them available to users that were even more unaware than the packager! :-) More interesting facts and concerns can be found in the W3C's original thread: http://lists.w3.org/Archives/Public/www-html/2000Feb/thread.html#232 After considering all these facts (and maybe more), a good solution may come. -- Cheers Jorge.- PS: I ended writing the detailed answer. :)
Jorge Arellano Cid wrote:
Hi Roberto,
A meta-refresh patch is small and almost no bloat, so maybe having it as a 'configure' option for embedded developers that know what they're doing could be considered. FWIW, I decided not to make it public long ago because some packagers were just picking up patches from the net and making them available to users that were even more unaware than the packager! :-)
For this reason I decide to have -r option instead put an option in a config file because packager could deliver its own default config with that option activated by default. It could be much more difficult for the packager to force me using that option by command line, instead. ;-) Users would have option active by default could have an alias dillo = 'dillo -r', but a bona-fide package install should not change users alias. Yes, by the way, it could modify /etc/profile but it could apply a rootkit too... ;-) Cheers, -- Roberto A. Foglietta Analista Programmatore GNU/Linux SAD Trasporto Locale S.p.a. Corso Italia 13/N 39100 BOLZANO (I) Tel. +39/0471-450.261 Fax +39/0471-450.253
On Mon, Feb 21, 2005 at 09:19:34AM +0100, Roberto A. Foglietta wrote:
For this reason I decide to have -r option instead put an option in a config file because packager could deliver its own default config with that option activated by default. It could be much more difficult for the packager to force me using that option by command line, instead. ;-)
this is why my plan was to have an rc file similar to the cookierc file so you can have fine grained control over which sites are allowed to meta-refresh and which ones aren't. IMNSHO, the best solution. ;) -brian -- "Now you know why I got the everliving hell OUT of Windows administration. Knowing it doesn't make it any easier. It's just broken-as-designed."
Brian Hechinger wrote:
On Mon, Feb 21, 2005 at 09:19:34AM +0100, Roberto A. Foglietta wrote:
For this reason I decide to have -r option instead put an option in a config file because packager could deliver its own default config with that option activated by default. It could be much more difficult for the packager to force me using that option by command line, instead. ;-)
this is why my plan was to have an rc file similar to the cookierc file so you can have fine grained control over which sites are allowed to meta-refresh and which ones aren't. IMNSHO, the best solution. ;)
-brian
Ok, I will as soon as possible, but not immediately because I'm working on something else now. I hope this will be enought to adopt my patch! ;-) Cheers, -- Roberto A. Foglietta Analista Programmatore GNU/Linux SAD Trasporto Locale S.p.a. Corso Italia 13/N 39100 BOLZANO (I) Tel. +39/0471-450.261 Fax +39/0471-450.253
participants (10)
-
Brian Hechinger
-
higuita
-
Jorge Arellano Cid
-
Kelly Price
-
Kelson Vibber
-
Madis Janson
-
Patrick Shanahan
-
robert w hall
-
Roberto A. Foglietta
-
Scott Scriven