toolkit/components/autocomplete/nsAutoCompleteSimpleResult.cpp

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

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.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 #include "nsAutoCompleteSimpleResult.h"
     7 NS_IMPL_ISUPPORTS(nsAutoCompleteSimpleResult,
     8                   nsIAutoCompleteResult,
     9                   nsIAutoCompleteSimpleResult)
    11 nsAutoCompleteSimpleResult::nsAutoCompleteSimpleResult() :
    12   mDefaultIndex(-1),
    13   mSearchResult(RESULT_NOMATCH),
    14   mTypeAheadResult(false)
    15 {
    16 }
    18 // searchString
    19 NS_IMETHODIMP
    20 nsAutoCompleteSimpleResult::GetSearchString(nsAString &aSearchString)
    21 {
    22   aSearchString = mSearchString;
    23   return NS_OK;
    24 }
    25 NS_IMETHODIMP
    26 nsAutoCompleteSimpleResult::SetSearchString(const nsAString &aSearchString)
    27 {
    28   mSearchString.Assign(aSearchString);
    29   return NS_OK;
    30 }
    32 // searchResult
    33 NS_IMETHODIMP
    34 nsAutoCompleteSimpleResult::GetSearchResult(uint16_t *aSearchResult)
    35 {
    36   *aSearchResult = mSearchResult;
    37   return NS_OK;
    38 }
    39 NS_IMETHODIMP
    40 nsAutoCompleteSimpleResult::SetSearchResult(uint16_t aSearchResult)
    41 {
    42   mSearchResult = aSearchResult;
    43   return NS_OK;
    44 }
    46 // defaultIndex
    47 NS_IMETHODIMP
    48 nsAutoCompleteSimpleResult::GetDefaultIndex(int32_t *aDefaultIndex)
    49 {
    50   *aDefaultIndex = mDefaultIndex;
    51   return NS_OK;
    52 }
    53 NS_IMETHODIMP
    54 nsAutoCompleteSimpleResult::SetDefaultIndex(int32_t aDefaultIndex)
    55 {
    56   mDefaultIndex = aDefaultIndex;
    57   return NS_OK;
    58 }
    60 // errorDescription
    61 NS_IMETHODIMP
    62 nsAutoCompleteSimpleResult::GetErrorDescription(nsAString & aErrorDescription)
    63 {
    64   aErrorDescription = mErrorDescription;
    65   return NS_OK;
    66 }
    67 NS_IMETHODIMP
    68 nsAutoCompleteSimpleResult::SetErrorDescription(
    69                                              const nsAString &aErrorDescription)
    70 {
    71   mErrorDescription.Assign(aErrorDescription);
    72   return NS_OK;
    73 }
    75 // typeAheadResult
    76 NS_IMETHODIMP
    77 nsAutoCompleteSimpleResult::GetTypeAheadResult(bool *aTypeAheadResult)
    78 {
    79   *aTypeAheadResult = mTypeAheadResult;
    80   return NS_OK;
    81 }
    82 NS_IMETHODIMP
    83 nsAutoCompleteSimpleResult::SetTypeAheadResult(bool aTypeAheadResult)
    84 {
    85   mTypeAheadResult = aTypeAheadResult;
    86   return NS_OK;
    87 }
    89 NS_IMETHODIMP
    90 nsAutoCompleteSimpleResult::AppendMatch(const nsAString& aValue,
    91                                         const nsAString& aComment,
    92                                         const nsAString& aImage,
    93                                         const nsAString& aStyle,
    94                                         const nsAString& aFinalCompleteValue)
    95 {
    96   CheckInvariants();
    98   if (! mValues.AppendElement(aValue))
    99     return NS_ERROR_OUT_OF_MEMORY;
   100   if (! mComments.AppendElement(aComment)) {
   101     mValues.RemoveElementAt(mValues.Length() - 1);
   102     return NS_ERROR_OUT_OF_MEMORY;
   103   }
   104   if (! mImages.AppendElement(aImage)) {
   105     mValues.RemoveElementAt(mValues.Length() - 1);
   106     mComments.RemoveElementAt(mComments.Length() - 1);
   107     return NS_ERROR_OUT_OF_MEMORY;
   108   }
   109   if (! mStyles.AppendElement(aStyle)) {
   110     mValues.RemoveElementAt(mValues.Length() - 1);
   111     mComments.RemoveElementAt(mComments.Length() - 1);
   112     mImages.RemoveElementAt(mImages.Length() - 1);
   113     return NS_ERROR_OUT_OF_MEMORY;
   114   }
   115   if (!mFinalCompleteValues.AppendElement(aFinalCompleteValue)) {
   116     mValues.RemoveElementAt(mValues.Length() - 1);
   117     mComments.RemoveElementAt(mComments.Length() - 1);
   118     mImages.RemoveElementAt(mImages.Length() - 1);
   119     mStyles.RemoveElementAt(mStyles.Length() - 1);
   120     return NS_ERROR_OUT_OF_MEMORY;
   121   }
   122   return NS_OK;
   123 }
   125 NS_IMETHODIMP
   126 nsAutoCompleteSimpleResult::GetMatchCount(uint32_t *aMatchCount)
   127 {
   128   CheckInvariants();
   130   *aMatchCount = mValues.Length();
   131   return NS_OK;
   132 }
   134 NS_IMETHODIMP
   135 nsAutoCompleteSimpleResult::GetValueAt(int32_t aIndex, nsAString& _retval)
   136 {
   137   NS_ENSURE_TRUE(aIndex >= 0 && aIndex < int32_t(mValues.Length()),
   138                  NS_ERROR_ILLEGAL_VALUE);
   139   CheckInvariants();
   141   _retval = mValues[aIndex];
   142   return NS_OK;
   143 }
   145 NS_IMETHODIMP
   146 nsAutoCompleteSimpleResult::GetLabelAt(int32_t aIndex, nsAString& _retval)
   147 {
   148   return GetValueAt(aIndex, _retval);
   149 }
   151 NS_IMETHODIMP
   152 nsAutoCompleteSimpleResult::GetCommentAt(int32_t aIndex, nsAString& _retval)
   153 {
   154   NS_ENSURE_TRUE(aIndex >= 0 && aIndex < int32_t(mComments.Length()),
   155                  NS_ERROR_ILLEGAL_VALUE);
   156   CheckInvariants();
   157   _retval = mComments[aIndex];
   158   return NS_OK;
   159 }
   161 NS_IMETHODIMP
   162 nsAutoCompleteSimpleResult::GetImageAt(int32_t aIndex, nsAString& _retval)
   163 {
   164   NS_ENSURE_TRUE(aIndex >= 0 && aIndex < int32_t(mImages.Length()),
   165                  NS_ERROR_ILLEGAL_VALUE);
   166   CheckInvariants();
   167   _retval = mImages[aIndex];
   168   return NS_OK;
   169 }
   171 NS_IMETHODIMP
   172 nsAutoCompleteSimpleResult::GetStyleAt(int32_t aIndex, nsAString& _retval)
   173 {
   174   NS_ENSURE_TRUE(aIndex >= 0 && aIndex < int32_t(mStyles.Length()),
   175                  NS_ERROR_ILLEGAL_VALUE);
   176   CheckInvariants();
   177   _retval = mStyles[aIndex];
   178   return NS_OK;
   179 }
   181 NS_IMETHODIMP
   182 nsAutoCompleteSimpleResult::GetFinalCompleteValueAt(int32_t aIndex,
   183                                                     nsAString& _retval)
   184 {
   185   NS_ENSURE_TRUE(aIndex >= 0 && aIndex < int32_t(mFinalCompleteValues.Length()),
   186                  NS_ERROR_ILLEGAL_VALUE);
   187   CheckInvariants();
   188   _retval = mFinalCompleteValues[aIndex];
   189   if (_retval.Length() == 0)
   190     _retval = mValues[aIndex];
   191   return NS_OK;
   192 }
   194 NS_IMETHODIMP
   195 nsAutoCompleteSimpleResult::SetListener(nsIAutoCompleteSimpleResultListener* aListener)
   196 {
   197   mListener = aListener;
   198   return NS_OK;
   199 }
   201 NS_IMETHODIMP
   202 nsAutoCompleteSimpleResult::RemoveValueAt(int32_t aRowIndex,
   203                                           bool aRemoveFromDb)
   204 {
   205   NS_ENSURE_TRUE(aRowIndex >= 0 && aRowIndex < int32_t(mValues.Length()),
   206                  NS_ERROR_ILLEGAL_VALUE);
   208   nsAutoString removedValue(mValues[aRowIndex]);
   209   mValues.RemoveElementAt(aRowIndex);
   210   mComments.RemoveElementAt(aRowIndex);
   211   mImages.RemoveElementAt(aRowIndex);
   212   mStyles.RemoveElementAt(aRowIndex);
   213   mFinalCompleteValues.RemoveElementAt(aRowIndex);
   215   if (mListener)
   216     mListener->OnValueRemoved(this, removedValue, aRemoveFromDb);
   218   return NS_OK;
   219 }

mercurial