Hi!

Well, for me personally, upgrading isn't a problem, but it might be for 
some people, so your proposed solution would definitely come in handy.

w

On Wednesday, August 27, 2014 2:12:42 AM UTC+2, Eric Shulman wrote:
>
> On Monday, August 25, 2014 10:33:09 PM UTC-7, whatever wrote:
>>
>> I tried on a different computer as well, this time with Java 7.63 (the 
>> other had earlier versions). The Java prompt issue in Safari persisted, but 
>> not the double-quote issue. The double-quote issue also disappeared in 
>> Waterfox, but not in IE (64-bit, btw). I also tested in Chrome, which 
>> doesn't seem to be affected. Also, not just empty values in the Tweak menu 
>> contain quotes, other values have them as well, except for some reason 
>> txtUserName.
>>
>
> You are almost certainly correct in your assumption that this is a side 
> effect of the fix for issue #159.  Here's some background:
>
> In TW281 and earlier, the TWCore "packs" all the various option name/value 
> pairs into a single text string to be stored as a browser cookie.  This 
> string uses double-quotes to surround the individual option values for all 
> the currently defined TiddlyWiki options.   This string could be something 
> like:
>    chkSomeThing:"true" chkSomeThingElse:"false" txtSomeText:"gleep" 
> txtSomeEmptyText:""
> However, as reported in issue #159, the use of double-quotes within a 
> cookie value is NOT valid, according to the W3C specs.  As a result, some 
> browsers will fail to save the TiddlyWiki options and reject the cookie, 
> preventing the option values from persisting between TW sessions.
>
> The most direct fix for this, is to avoid storing the literal 
> double-quotes by encoding/decoding them using their hexadecimal code, %22. 
>  Thus, in TW290b1, after packing the option values into a string (as shown 
> above), the literal quotes are converted to %22 before saving to the 
> browser as a cookie.  Then, when that cookie value is read back in, the 
> embedded %22 sequences are converted back to literal quotes before 
> unpacking the options into their individual TWCore config.options[...] run 
> time storage locations.
>
> Although this works as intended, and does "solve" the problem by not 
> storing quotes in cookies... it presents a small backward-compatibility 
> issue:  as you noted... if you modify the TiddlyWiki option cookie using 
> TW290, and then read that cookie using an earlier release (e.g., TW281), 
> then that earlier release does not know to decode the %22 sequences, and 
> they are left in place as part of the individual unpacked option values. 
>  Thus, an option which is blank in TW290, will have a value of %22%22 in 
> TW281, which will appear as a pair of double quotes (e.g, "") when 
> displayed.
>
> If you upgrade ALL your working TW documents to TW290, then the "cookie 
> quote" handling will be the same across all documents, and you shouldn't 
> see any more double quotes appearing in the option values.  Of course, it 
> may not be practical to upgrade *all* your documents right away, and you 
> can always open a TW document that was sent to you by others, which could 
> still trigger the errant double-quote handling if it is based on an older 
> version of the TWCore.
>
> One possible way to address this:
> I could make the new encoding/decoding handling *optional*, with the 
> default being to leave the double-quotes alone, as before.  That way, if 
> you are working in a mixed environment with both TW290 and older versions, 
> the cookie value created by TW290 will still be compatible with the older 
> versions of TW.  The new handling option would only need to be enabled by 
> users when their browser has been actually been rejecting cookies because 
> of embedded quotes.  A hard-coded zzConfig tiddler containing something 
> like:
> config.options["chkEncodeCookieQuotes"]=true;
> would do the trick.
>
> Does that seem like a workable solution for your situation?
>
> your thoughts?
>
> -e
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tiddlywiki+unsubscr...@googlegroups.com.
To post to this group, send email to tiddlywiki@googlegroups.com.
Visit this group at http://groups.google.com/group/tiddlywiki.
For more options, visit https://groups.google.com/d/optout.

Reply via email to