/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "mozilla/net/CookieServiceParent.h" #include "mozilla/ipc/URIUtils.h" #include "nsCookieService.h" #include "nsNetUtil.h" using namespace mozilla::ipc; namespace mozilla { namespace net { CookieServiceParent::CookieServiceParent() { // Instantiate the cookieservice via the service manager, so it sticks around // until shutdown. nsCOMPtr cs = do_GetService(NS_COOKIESERVICE_CONTRACTID); // Get the nsCookieService instance directly, so we can call internal methods. mCookieService = already_AddRefed(nsCookieService::GetSingleton()); NS_ASSERTION(mCookieService, "couldn't get nsICookieService"); } CookieServiceParent::~CookieServiceParent() { } bool CookieServiceParent::RecvGetCookieString(const URIParams& aHost, const bool& aIsForeign, const bool& aFromHttp, nsCString* aResult) { if (!mCookieService) return true; // Deserialize URI. Having a host URI is mandatory and should always be // provided by the child; thus we consider failure fatal. nsCOMPtr hostURI = DeserializeURI(aHost); if (!hostURI) return false; mCookieService->GetCookieStringInternal(hostURI, aIsForeign, aFromHttp, *aResult); return true; } bool CookieServiceParent::RecvSetCookieString(const URIParams& aHost, const bool& aIsForeign, const nsCString& aCookieString, const nsCString& aServerTime, const bool& aFromHttp) { if (!mCookieService) return true; // Deserialize URI. Having a host URI is mandatory and should always be // provided by the child; thus we consider failure fatal. nsCOMPtr hostURI = DeserializeURI(aHost); if (!hostURI) return false; nsDependentCString cookieString(aCookieString, 0); mCookieService->SetCookieStringInternal(hostURI, aIsForeign, cookieString, aServerTime, aFromHttp); return true; } } }