Bug 815053 might be related.
Could you be more specific about how you're obtaining the localStorage object for the page and how you're querying it?
var principal = Services.scriptSecurityManager.getCodebasePrincipal(uri, ""); return new this.Storage(window.QueryInterface(Ci.nsIInterfaceRequestor). getInterface(Ci.nsIWebNavigation). QueryInterface(Ci.nsIDocShell). getSessionStorageForPrincipal(principal, "", false), Services.domStorageManager.getLocalStorageForPrincipal(principal, "", isPrivate)); That doesn't look well-formatted in Bugzilla, but the important lines for this question are the first one and the last one. Once I have the storage object, I just treat it as a localStorage object the same as if it had come directly from window.localStorage, for example querying the length property. The complex method for obtaining the storage areas is necessary because of limitations in versions of Firefox before 23, but using window.localStorage directly gives the same result.
How are you determining the isPrivate value there?
(In reply to Josh Matthews [:jdm] from comment #4) > How are you determining the isPrivate value there? It is a flag that I carry on each window, determined when the window loads by: PrivateBrowsingUtils.isWindowPrivate(window)
What's the value of isPrivate in cases where you are expecting to see private data but see public data instead?
I tried running tests to double-check what value isPrivate has (it is clearly true because the icon is styled differently, but double-checking anyway) and I'm having trouble reproducing this now. I don't know what version I initially raised it against. Clearly not 17 as listed (I just use 17 ESR for general browsing), but equally not the current release 23 codebase or higher. This may have been fixed already, or perhaps I just don't have the right settings to reproduce it now. Or maybe I was just confused. I'll spend a few more days trying to reproduce this, and then close it out.
Cannot reproduce in Firefox 24.