summaryrefslogtreecommitdiffstats
path: root/netwerk/cookie/PCookieService.ipdl
diff options
context:
space:
mode:
Diffstat (limited to 'netwerk/cookie/PCookieService.ipdl')
-rw-r--r--netwerk/cookie/PCookieService.ipdl109
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__();
+};
+
+}
+}
+