diff options
Diffstat (limited to 'netwerk/cookie/PCookieService.ipdl')
-rw-r--r-- | netwerk/cookie/PCookieService.ipdl | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/netwerk/cookie/PCookieService.ipdl b/netwerk/cookie/PCookieService.ipdl new file mode 100644 index 000000000..7d01096d4 --- /dev/null +++ b/netwerk/cookie/PCookieService.ipdl @@ -0,0 +1,109 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set sw=2 ts=8 et tw=80 ft=cpp : */ + +/* 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 protocol PNecko; +include URIParams; + +using mozilla::NeckoOriginAttributes from "mozilla/ipc/BackgroundUtils.h"; + +namespace mozilla { +namespace net { + +/** + * PCookieService + * + * Provides IPDL methods for setting and getting cookies. These are stored on + * and managed by the parent; the child process goes through the parent for + * all cookie operations. Lower-level programmatic operations (i.e. those + * provided by the nsICookieManager and nsICookieManager2 interfaces) are not + * currently implemented and requesting these interfaces in the child will fail. + * + * @see nsICookieService + * @see nsICookiePermission + */ + +nested(upto inside_cpow) sync protocol PCookieService +{ + manager PNecko; + +parent: + + /* + * Get the complete cookie string associated with the URI. This is a sync + * call in order to avoid race conditions -- for instance, an HTTP response + * on the parent and script access on the child. + * + * @param host + * Same as the 'aURI' argument to nsICookieService.getCookieString. + * @param isForeign + * True if the the request is third party, for purposes of allowing + * access to cookies. This should be obtained from + * mozIThirdPartyUtil.isThirdPartyChannel. Third party requests may be + * rejected depending on user preferences; if those checks are + * disabled, this parameter is ignored. + * @param fromHttp + * Whether the result is for an HTTP request header. This should be + * true for nsICookieService.getCookieStringFromHttp calls, false + * otherwise. + * @param attrs + * The origin attributes from the HTTP channel or document that the + * cookie is being set on. + * + * @see nsICookieService.getCookieString + * @see nsICookieService.getCookieStringFromHttp + * @see mozIThirdPartyUtil.isThirdPartyChannel + * + * @return the resulting cookie string. + */ + nested(inside_cpow) sync GetCookieString(URIParams host, + bool isForeign, + bool fromHttp, + NeckoOriginAttributes attrs) + returns (nsCString result); + + /* + * Set a cookie string. + * + * @param host + * Same as the 'aURI' argument to nsICookieService.setCookieString. + * @param isForeign + * True if the the request is third party, for purposes of allowing + * access to cookies. This should be obtained from + * mozIThirdPartyUtil.isThirdPartyChannel. Third party requests may be + * rejected depending on user preferences; if those checks are + * disabled, this parameter is ignored. + * @param cookieString + * Same as the 'aCookie' argument to nsICookieService.setCookieString. + * @param serverTime + * Same as the 'aServerTime' argument to + * nsICookieService.setCookieStringFromHttp. If the string is empty or + * null (e.g. for non-HTTP requests), the current local time is used. + * @param fromHttp + * Whether the result is for an HTTP request header. This should be + * true for nsICookieService.setCookieStringFromHttp calls, false + * otherwise. + * @param attrs + * The origin attributes from the HTTP channel or document that the + * cookie is being set on. + * + * @see nsICookieService.setCookieString + * @see nsICookieService.setCookieStringFromHttp + * @see mozIThirdPartyUtil.isThirdPartyChannel + */ + nested(inside_cpow) async SetCookieString(URIParams host, + bool isForeign, + nsCString cookieString, + nsCString serverTime, + bool fromHttp, + NeckoOriginAttributes attrs); + + async __delete__(); +}; + +} +} + |