I agree, separate cookie jars for each SSB created by Fluid would be a
killer feature. And I am still hopeful that I'll be able to make that
happen at some point. However, there are serious roadblocks to making
this happen. Here's the problem:
Fluid uses WebKit for web rendering. WebKit is open source.
By default, WebKit uses the CFNetwork stack from Apple for HTTP
networking. CFNetwork is not open source
Turns out that the CFNetwork stack does all of the cookie handling,
and this is transparent to WebKit (which makes sense if you think
about it). CFNetwork stores the cookies in a global shared cookie
storage that all WebKit-based applications use called +
[NSHTTPCookieStorage sharedCookieStorage]. I've actually done quite a
bit of work in this area, see my free app Cocoa Cookies:
http://ditchnet.org/cocoacookies.
I've asked the WebKit team about this, and AFAICT, its not really
possible to hack on WebKit and isolate cookie sharing without
replacing the entire networking stack. Please correct me if I'm wrong,
but very senior WebKit people I've talked to have told me this.
Replacing the entire HTTP networking stack used by WebKit is a very
large and complicated task... probably not one that a single developer
should tackle alone, and certainly not one that I am currently up to. :
0[
Unfortunately, the reality is that this feature will just *not happen*
in the foreseeable future. I'm always open to suggestions, however. If
you can come up with an ingenious hack to work around this, I'm all
ears. Alternatively, if anyone wants to volunteer to work on WebKit to
make it easier to swap out modular HTTP stacks, maybe that would be
interesting too, but certainly a large project.
The only other solution I've heard floated is to use some kind of
poseAs: hack as NSHTTPCookieStorage with a custom class that actually
stores the cookies separately. I'm not sure if this is feasible or
not... but I'm open to suggestions/advice in that area. Alternatively
if anyone is really keen and wants to implement something like that
with a BSD- or MIT-style license, I'll happily include it into Fluid
for all to use. (but keep in mind that Fluid is closed source).