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 | /* This Source Code Form is subject to the terms of the Mozilla Public |
michael@0 | 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this |
michael@0 | 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
michael@0 | 4 | |
michael@0 | 5 | #ifndef __nsAutoCompleteSimpleResult__ |
michael@0 | 6 | #define __nsAutoCompleteSimpleResult__ |
michael@0 | 7 | |
michael@0 | 8 | #include "nsIAutoCompleteResult.h" |
michael@0 | 9 | #include "nsIAutoCompleteSimpleResult.h" |
michael@0 | 10 | |
michael@0 | 11 | #include "nsString.h" |
michael@0 | 12 | #include "nsCOMPtr.h" |
michael@0 | 13 | #include "nsTArray.h" |
michael@0 | 14 | #include "mozilla/Attributes.h" |
michael@0 | 15 | |
michael@0 | 16 | class nsAutoCompleteSimpleResult MOZ_FINAL : public nsIAutoCompleteSimpleResult |
michael@0 | 17 | { |
michael@0 | 18 | public: |
michael@0 | 19 | nsAutoCompleteSimpleResult(); |
michael@0 | 20 | inline void CheckInvariants() { |
michael@0 | 21 | NS_ASSERTION(mValues.Length() == mComments.Length(), "Arrays out of sync"); |
michael@0 | 22 | NS_ASSERTION(mValues.Length() == mImages.Length(), "Arrays out of sync"); |
michael@0 | 23 | NS_ASSERTION(mValues.Length() == mStyles.Length(), "Arrays out of sync"); |
michael@0 | 24 | NS_ASSERTION(mValues.Length() == mFinalCompleteValues.Length(), "Arrays out of sync"); |
michael@0 | 25 | } |
michael@0 | 26 | |
michael@0 | 27 | NS_DECL_ISUPPORTS |
michael@0 | 28 | NS_DECL_NSIAUTOCOMPLETERESULT |
michael@0 | 29 | NS_DECL_NSIAUTOCOMPLETESIMPLERESULT |
michael@0 | 30 | |
michael@0 | 31 | private: |
michael@0 | 32 | ~nsAutoCompleteSimpleResult() {} |
michael@0 | 33 | |
michael@0 | 34 | protected: |
michael@0 | 35 | |
michael@0 | 36 | // What we really want is an array of structs with value/comment/image/style contents. |
michael@0 | 37 | // But then we'd either have to use COM or manage object lifetimes ourselves. |
michael@0 | 38 | // Having four arrays of string simplifies this, but is stupid. |
michael@0 | 39 | nsTArray<nsString> mValues; |
michael@0 | 40 | nsTArray<nsString> mComments; |
michael@0 | 41 | nsTArray<nsString> mImages; |
michael@0 | 42 | nsTArray<nsString> mStyles; |
michael@0 | 43 | nsTArray<nsString> mFinalCompleteValues; |
michael@0 | 44 | |
michael@0 | 45 | nsString mSearchString; |
michael@0 | 46 | nsString mErrorDescription; |
michael@0 | 47 | int32_t mDefaultIndex; |
michael@0 | 48 | uint32_t mSearchResult; |
michael@0 | 49 | |
michael@0 | 50 | bool mTypeAheadResult; |
michael@0 | 51 | |
michael@0 | 52 | nsCOMPtr<nsIAutoCompleteSimpleResultListener> mListener; |
michael@0 | 53 | }; |
michael@0 | 54 | |
michael@0 | 55 | #endif // __nsAutoCompleteSimpleResult__ |