Bug 1460768 - Part 1 - Have StorageActivityService emit an observer notification when storage is modified. draft
authorJohann Hofmann <jhofmann@mozilla.com>
Thu, 05 Jul 2018 23:06:49 +0200
changeset 826309 eae522ddc81bc4925c0c92c99145bc943bd41291
parent 826308 3d107866825433ab1168c7d23e94eac727e0f673
child 826310 e940841e9f6320955bb1a1f7230ab2dc8e685d6f
push id118287
push userjhofmann@mozilla.com
push dateFri, 03 Aug 2018 14:35:58 +0000
bugs1460768
milestone63.0a1
Bug 1460768 - Part 1 - Have StorageActivityService emit an observer notification when storage is modified. MozReview-Commit-ID: KO1Y75AfgVc
dom/storage/StorageActivityService.cpp
dom/storage/StorageActivityService.h
--- a/dom/storage/StorageActivityService.cpp
+++ b/dom/storage/StorageActivityService.cpp
@@ -145,22 +145,30 @@ StorageActivityService::SendActivityInte
   if (NS_WARN_IF(NS_FAILED(rv))) {
     return;
   }
 
   SendActivityInternal(origin);
 }
 
 void
-StorageActivityService::SendActivityInternal(const nsACString& aOrigin)
+StorageActivityService::SendActivityInternal(const nsCString& aOrigin)
 {
   MOZ_ASSERT(XRE_IsParentProcess());
 
   mActivities.Put(aOrigin, PR_Now());
   MaybeStartTimer();
+
+  nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService();
+  if (NS_WARN_IF(!obs)) {
+    return;
+  }
+
+  obs->NotifyObservers(nullptr, "storage-activity",
+                       NS_ConvertUTF8toUTF16(aOrigin).get());
 }
 
 void
 StorageActivityService::SendActivityToParent(nsIPrincipal* aPrincipal)
 {
   MOZ_ASSERT(NS_IsMainThread());
   MOZ_ASSERT(!XRE_IsParentProcess());
 
--- a/dom/storage/StorageActivityService.h
+++ b/dom/storage/StorageActivityService.h
@@ -50,17 +50,17 @@ public:
 private:
   StorageActivityService();
   ~StorageActivityService();
 
   void
   SendActivityInternal(nsIPrincipal* aPrincipal);
 
   void
-  SendActivityInternal(const nsACString& aOrigin);
+  SendActivityInternal(const nsCString& aOrigin);
 
   void
   SendActivityToParent(nsIPrincipal* aPrincipal);
 
   void
   MaybeStartTimer();
 
   void