Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
michael@0 | 1 | /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
michael@0 | 2 | /* This Source Code Form is subject to the terms of the Mozilla Public |
michael@0 | 3 | * License, v. 2.0. If a copy of the MPL was not distributed with this |
michael@0 | 4 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
michael@0 | 5 | |
michael@0 | 6 | |
michael@0 | 7 | #include "nsICollection.idl" |
michael@0 | 8 | |
michael@0 | 9 | /* |
michael@0 | 10 | * This entire interface is deprecated and should not be used. |
michael@0 | 11 | * See nsIArray and nsIMutableArray for the new implementations. |
michael@0 | 12 | * |
michael@0 | 13 | * http://groups.google.com/groups?q=nsisupportsarray+group:netscape.public.mozilla.xpcom&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=3D779491.3050506%40netscape.com&rnum=2 |
michael@0 | 14 | * http://groups.google.com/groups?q=nsisupportsarray+group:netscape.public.mozilla.xpcom&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=al8412%245ab2%40ripley.netscape.com&rnum=8 |
michael@0 | 15 | */ |
michael@0 | 16 | |
michael@0 | 17 | %{C++ |
michael@0 | 18 | |
michael@0 | 19 | class nsIBidirectionalEnumerator; |
michael@0 | 20 | class nsISupportsArray; |
michael@0 | 21 | |
michael@0 | 22 | #define NS_SUPPORTSARRAY_CID \ |
michael@0 | 23 | { /* bda17d50-0d6b-11d3-9331-00104ba0fd40 */ \ |
michael@0 | 24 | 0xbda17d50, \ |
michael@0 | 25 | 0x0d6b, \ |
michael@0 | 26 | 0x11d3, \ |
michael@0 | 27 | {0x93, 0x31, 0x00, 0x10, 0x4b, 0xa0, 0xfd, 0x40} \ |
michael@0 | 28 | } |
michael@0 | 29 | #define NS_SUPPORTSARRAY_CONTRACTID "@mozilla.org/supports-array;1" |
michael@0 | 30 | |
michael@0 | 31 | %} |
michael@0 | 32 | |
michael@0 | 33 | [scriptable, uuid(241addc8-3608-4e73-8083-2fd6fa09eba2)] |
michael@0 | 34 | interface nsISupportsArray : nsICollection { |
michael@0 | 35 | |
michael@0 | 36 | [notxpcom] boolean Equals([const] in nsISupportsArray other); |
michael@0 | 37 | |
michael@0 | 38 | [notxpcom] long IndexOf([const] in nsISupports aPossibleElement); |
michael@0 | 39 | [notxpcom] long IndexOfStartingAt([const] in nsISupports aPossibleElement, |
michael@0 | 40 | in unsigned long aStartIndex); |
michael@0 | 41 | [notxpcom] long LastIndexOf([const] in nsISupports aPossibleElement); |
michael@0 | 42 | |
michael@0 | 43 | // xpcom-compatible versions |
michael@0 | 44 | long GetIndexOf(in nsISupports aPossibleElement); |
michael@0 | 45 | long GetIndexOfStartingAt(in nsISupports aPossibleElement, |
michael@0 | 46 | in unsigned long aStartIndex); |
michael@0 | 47 | long GetLastIndexOf(in nsISupports aPossibleElement); |
michael@0 | 48 | |
michael@0 | 49 | [notxpcom] boolean InsertElementAt(in nsISupports aElement, |
michael@0 | 50 | in unsigned long aIndex); |
michael@0 | 51 | [notxpcom] boolean ReplaceElementAt(in nsISupports aElement, |
michael@0 | 52 | in unsigned long aIndex); |
michael@0 | 53 | |
michael@0 | 54 | [notxpcom] boolean RemoveElementAt(in unsigned long aIndex); |
michael@0 | 55 | [notxpcom] boolean RemoveLastElement([const] in nsISupports aElement); |
michael@0 | 56 | |
michael@0 | 57 | // xpcom-compatible versions |
michael@0 | 58 | void DeleteLastElement(in nsISupports aElement); |
michael@0 | 59 | void DeleteElementAt(in unsigned long aIndex); |
michael@0 | 60 | |
michael@0 | 61 | [notxpcom] boolean AppendElements(in nsISupportsArray aElements); |
michael@0 | 62 | |
michael@0 | 63 | void Compact(); |
michael@0 | 64 | |
michael@0 | 65 | |
michael@0 | 66 | nsISupportsArray clone(); |
michael@0 | 67 | |
michael@0 | 68 | [notxpcom] boolean MoveElement(in long aFrom, |
michael@0 | 69 | in long aTo); |
michael@0 | 70 | |
michael@0 | 71 | [notxpcom] boolean InsertElementsAt(in nsISupportsArray aOther, |
michael@0 | 72 | in unsigned long aIndex); |
michael@0 | 73 | |
michael@0 | 74 | [notxpcom] boolean RemoveElementsAt(in unsigned long aIndex, |
michael@0 | 75 | in unsigned long aCount); |
michael@0 | 76 | |
michael@0 | 77 | [notxpcom] boolean SizeTo(in long aSize); |
michael@0 | 78 | |
michael@0 | 79 | }; |
michael@0 | 80 | |
michael@0 | 81 | %{C++ |
michael@0 | 82 | |
michael@0 | 83 | // Construct and return a default implementation of nsISupportsArray: |
michael@0 | 84 | extern nsresult |
michael@0 | 85 | NS_NewISupportsArray(nsISupportsArray** aInstancePtrResult); |
michael@0 | 86 | |
michael@0 | 87 | %} |