$OpenBSD$ index 48d2e59..357ea5a 100644 --- dom/src/storage/DOMStorageCache.h.orig Fri Feb 20 15:40:37 2015 +++ dom/src/storage/DOMStorageCache.h Fri Feb 20 15:40:37 2015 @@ -6,6 +6,7 @@ #ifndef nsDOMStorageCache_h___ #define nsDOMStorageCache_h___ +#include "nsIURI.h" #include "nsIPrincipal.h" #include "nsITimer.h" @@ -72,7 +73,8 @@ public: DOMStorageCache(const nsACString* aScope); virtual ~DOMStorageCache(); - void Init(DOMStorageManager* aManager, bool aPersistent, nsIPrincipal* aPrincipal, + void Init(DOMStorageManager* aManager, bool aPersistent, + nsIURI* aFirstPartyIsolationURI, nsIPrincipal* aPrincipal, const nsACString& aQuotaScope); // Copies all data from the other storage. @@ -97,6 +99,8 @@ public: nsTArray* GetKeys(const DOMStorage* aStorage); + nsIURI* FirstPartyIsolationURI() const { return mFirstPartyIsolationURI; } + // Whether the principal equals principal the cache was created for bool CheckPrincipal(nsIPrincipal* aPrincipal) const; nsIPrincipal* Principal() const { return mPrincipal; } @@ -178,6 +182,9 @@ private: // Timer that holds this cache alive for a while after it has been preloaded. nsCOMPtr mKeepAliveTimer; + // The first party URI associated with this cache. + nsCOMPtr mFirstPartyIsolationURI; + // Principal the cache has been initially created for, this is used only // for sessionStorage access checks since sessionStorage objects are strictly // scoped by a principal. localStorage objects on the other hand are scoped by