Verified Commit 31f70fc7 authored by valenting's avatar valenting Committed by ma1
Browse files

Bug 2023943 - Make CookieNotification::GetOperation ID clone the ID r=baku,cookie-reviewers

parent 6f584e21
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
#include "CookieStoreNotificationWatcher.h"
#include "mozilla/Services.h"
#include "mozilla/Unused.h"
#include "mozilla/UniquePtrExtensions.h"
#include "nsICookie.h"
#include "nsICookieNotification.h"
#include "nsIObserverService.h"
@@ -48,8 +49,8 @@ CookieStoreNotificationWatcher::Observe(nsISupports* aSubject,
  nsCOMPtr<nsICookieNotification> notification = do_QueryInterface(aSubject);
  NS_ENSURE_TRUE(notification, NS_ERROR_FAILURE);

  nsID* operationID = nullptr;
  nsresult rv = notification->GetOperationID(&operationID);
  UniqueFreePtr<nsID> operationID;
  nsresult rv = notification->GetOperationID(TempPtrToSetter(&operationID));
  if (NS_WARN_IF(NS_FAILED(rv))) {
    return NS_OK;
  }
+6 −4
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@
#include "mozilla/TelemetryIPC.h"
#include "mozilla/ThreadSafety.h"
#include "mozilla/Unused.h"
#include "mozilla/UniquePtrExtensions.h"
#include "mozilla/WebBrowserPersistDocumentParent.h"
#include "mozilla/devtools/HeapSnapshotTempFileHelperParent.h"
#include "mozilla/dom/BlobURLProtocolHandler.h"
@@ -3914,18 +3915,19 @@ ContentParent::Observe(nsISupports* aSubject, const char* aTopic,
      return NS_OK;
    }

    nsID* operationID = nullptr;
    rv = notification->GetOperationID(&operationID);
    UniqueFreePtr<nsID> operationID;
    rv = notification->GetOperationID(TempPtrToSetter(&operationID));
    if (NS_WARN_IF(NS_FAILED(rv))) {
      return NS_OK;
    }

    if (action == nsICookieNotification::COOKIE_DELETED) {
      cs->RemoveCookie(cookie, operationID);
      cs->RemoveCookie(cookie, operationID.get());
    } else if (action == nsICookieNotification::COOKIE_ADDED ||
               action == nsICookieNotification::COOKIE_CHANGED) {
      cs->AddCookie(cookie, operationID);
      cs->AddCookie(cookie, operationID.get());
    }

  } else if (!strcmp(aTopic, NS_NETWORK_LINK_TYPE_TOPIC)) {
    UpdateNetworkLinkType();
  } else if (!strcmp(aTopic, "network:socket-process-crashed")) {
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ CookieNotification::GetBrowsingContext(dom::BrowsingContext** aResult) {
NS_IMETHODIMP
CookieNotification::GetOperationID(nsID** aOperationID) {
  NS_ENSURE_ARG_POINTER(aOperationID);
  *aOperationID = mOperationID;
  *aOperationID = mOperationID ? mOperationID->Clone() : nullptr;
  return NS_OK;
}