Changeset 19544 in webkit


Ignore:
Timestamp:
Feb 9, 2007 2:37:27 PM (17 years ago)
Author:
brmorris
Message:

yaharon, Reviewed by yongjun

DESC: [S60] BrowserNG: Passwords stored without notifying the user MLIO-6XXE6N
http://bugs.webkit.org/show_bug.cgi?id=12712

Location:
S60/branches/3.1m/WebKit
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • S60/branches/3.1m/WebKit/BrowserView/inc/FormDataLoginStore.h

    r14549 r19544  
    1010*    All rights reserved.
    1111
    12      Redistribution and use in source and binary forms, with or without
    13      modification, are permitted provided that the following conditions
    14      are met:
     12 Redistribution and use in source and binary forms, with or without
     13 modification, are permitted provided that the following conditions
     14 are met:
    1515
    1616*      * Redistributions of source code must retain the above copyright
     
    2424*        from this software without specific prior written permission.
    2525
    26      THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    27      "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    28      LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    29      A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    30      OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    31      SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    32      LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    33      DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    34      THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    35      (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
    36      USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
    37      DAMAGE.
     26 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     27 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     28 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     29 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     30 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     31 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     32 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     33 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     34 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     35 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
     36 USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
     37 DAMAGE.
    3838
    3939*    Please see file patentlicense.txt for further grants.
     
    8787    {
    8888   
    89         class CLoginDataElement : public CBase
    90                 {
    91                 public:
    92 
    93                 /**
    94                 * Destructor
    95                 */
    96                 ~CLoginDataElement();
    97 
    98                 public:
    99                         HBufC* iUrl;
    100                         HBufC* iLoginName;
    101                         HBufC* iLoginValue;
    102                         HBufC* iPasswordName;
    103                         HBufC* iPasswordValue;
    104                 };
     89    class CLoginDataElement : public CBase
     90        {
     91        public:
     92
     93            /**
     94            * Destructor
     95            */
     96            ~CLoginDataElement();
     97
     98        public:
     99            HBufC* iUrl;
     100            HBufC* iLoginName;
     101            HBufC* iLoginValue;
     102            HBufC* iPasswordName;
     103            HBufC* iPasswordValue;
     104        };
    105105
    106106
     
    133133        */
    134134        void GetDataL (CArrayPtrFlat<COptionData>& aOptions,
    135                                                         const TDesC& aUrl, const TDesC& aName) const;
    136        
    137                 /**
    138                 * Sets the Password value in the input control
    139                 */
     135                                const TDesC& aUrl, const TDesC& aName) const;
     136       
     137        /**
     138        * Sets the Password value in the input control
     139        */
    140140        void SetPassword (CWebKitBridge& aWebKitBridge,
    141                                                 const TDesC& aUrl, const TDesC& aLoginName, const TDesC& aLoginValue) const;
    142 
    143                 /**
    144                 * Save the username/password in store.
    145                 */
    146                 void SaveDataL (const TDesC& aUrl, const CArrayPtrFlat<CWebCoreFormDataElement>& aFormData);
    147                
    148                 /**
    149                 * PasswordIndex
    150                 * @return index of first password field.  return -1 if no password
    151                 */
    152                 TInt PasswordIndex(const CArrayPtrFlat<CWebCoreFormDataElement>& aFormData);
    153                
    154                 /**
    155                 * Clear the saved data
    156                 */
    157                 void ClearData ();
     141                            const TDesC& aUrl, const TDesC& aLoginName, const TDesC& aLoginValue) const;
     142
     143        /**
     144        * Save the username/password in store.
     145        */
     146        void SaveDataL (const TDesC& aUrl, const CArrayPtrFlat<CWebCoreFormDataElement>& aFormData);
     147       
     148        /**
     149        * PasswordIndex
     150        * @return index of first password field.  return -1 if no password
     151        */
     152        TInt PasswordIndex(const CArrayPtrFlat<CWebCoreFormDataElement>& aFormData);
     153       
     154        /**
     155        * Clear the saved data
     156        */
     157        void ClearData ();
    158158
    159159        /**
     
    169169        void ConstructL(MBrCtlDialogsProvider* aDialogProvider);
    170170
    171                 /**
    172                 *  Default constructor
    173                 */
    174                 CFormDataLoginStore();
    175                
    176                 /**
    177                 * Load the file to fill in the blocked list and username/password list
    178                 */
    179                 void LoadListsL();
    180                
    181                 /**
    182                 * Load the file to fill in the blocked list and username/password list
    183                 */
    184                 void SaveListsL();
    185                
    186                 /**
    187                 * Popup save data dialog
    188                 */
    189                 TLoginDataSaveDialogType SaveDialogL(const TDesC& aUrl);
     171        /**
     172        *  Default constructor
     173        */
     174        CFormDataLoginStore();
     175       
     176        /**
     177        * Load the file to fill in the blocked list and username/password list
     178        */
     179        void LoadListsL();
     180       
     181        /**
     182        * Load the file to fill in the blocked list and username/password list
     183        */
     184        void SaveListsL();
     185       
     186        /**
     187        * Popup save data dialog
     188        */
     189        TLoginDataSaveDialogType SaveDialogL(const TDesC& aUrl);
     190
     191        /**
     192        * Decide if SaveDialog is needed
     193        */
     194        TBool ShouldAskUser(const TDesC& aUrl, const CWebCoreFormDataElement* aLogin,
     195            const CWebCoreFormDataElement* aPassword);
    190196
    191197        /**
     
    194200        void BlockL (const TDesC& aUrl);
    195201
    196                 /**
    197                 * Encrypt and decrypt password
    198                 */
    199                 TInt Encrypt(TPtr aOutput, const TDesC& aInput);
    200                 TInt Decrypt(TPtr aOutput, const TDesC& aInput);
     202        /**
     203        * Encrypt and decrypt password
     204        */
     205        TInt Encrypt(TPtr aOutput, const TDesC& aInput);
     206        TInt Decrypt(TPtr aOutput, const TDesC& aInput);
    201207
    202208        /*  Private Members  */
     
    204210    private :
    205211
    206                 MBrCtlDialogsProvider*  iDialogProvider;
    207                 // List of blocked urls
    208                 CArrayPtrFlat<HBufC>* iBlockedList;
    209                 CArrayPtrFlat<CLoginDataElement>* iLoginList;
    210                 HBufC* iFormDataLoginStoreFile;
     212        MBrCtlDialogsProvider*  iDialogProvider;
     213        // List of blocked urls
     214        CArrayPtrFlat<HBufC>* iBlockedList;
     215        CArrayPtrFlat<CLoginDataElement>* iLoginList;
     216        HBufC* iFormDataLoginStoreFile;
    211217    };
    212218
  • S60/branches/3.1m/WebKit/BrowserView/src/FormDataLoginStore.cpp

    r19283 r19544  
    299299      loginIdx > -1 && aFormData.At(loginIdx)->iValue->Length()>0 &&
    300300      aFormData.At(loginIdx)->isAutoComplete &&
    301       SaveDialogL(aUrl) == ELoginDataSaveYes)
     301      (!ShouldAskUser(aUrl, aFormData.At(loginIdx), aFormData.At(passwordIdx)) || SaveDialogL(aUrl) == ELoginDataSaveYes))
    302302    {
    303303    CLoginDataElement* elem = new (ELeave) CLoginDataElement();
     
    516516
    517517//-----------------------------------------------------------------------------
     518// CFormDataLoginStore::ShouldAskUser
     519// Decide if SaveDialog is needed
     520//-----------------------------------------------------------------------------
     521TBool CFormDataLoginStore::ShouldAskUser(const TDesC& aUrl, const CWebCoreFormDataElement* aLogin,
     522                                         const CWebCoreFormDataElement* aPassword)
     523    {
     524    for (TInt i = 0; i < iLoginList->Count(); i++)
     525        {
     526        if (iLoginList->At(i)->iUrl->CompareF(aUrl) == 0 &&
     527            iLoginList->At(i)->iLoginValue->Compare(aLogin->iValue->Des()) == 0 &&
     528            iLoginList->At(i)->iPasswordValue->Compare(aPassword->iValue->Des()) == 0)
     529            {
     530            return EFalse;
     531            }
     532        }
     533    return ETrue;
     534    }
     535
     536//-----------------------------------------------------------------------------
    518537// CFormDataLoginStore::SaveDialog
    519538// Asks to save - yes, no, never.
     
    521540TLoginDataSaveDialogType CFormDataLoginStore::SaveDialogL(const TDesC& aUrl)
    522541  {
    523   if (Exists(aUrl))
    524     {
    525     // if it was already saved there is no need to ask again
    526     return ELoginDataSaveYes;
    527     }
    528 
    529542  TLoginDataSaveDialogType selected(ELoginDataSaveNo);
    530543 
  • S60/branches/3.1m/WebKit/ChangeLog

    r19540 r19544  
     1yaharon, Reviewed by yongjun
     2        DESC: [S60] BrowserNG: Passwords stored without notifying the user MLIO-6XXE6N
     3        http://bugs.webkit.org/show_bug.cgi?id=12712
     4
     5        * BrowserView/inc/FormDataLoginStore.h:
     6        * BrowserView/src/FormDataLoginStore.cpp:
     7        (CFormDataLoginStore::SaveDataL):
     8        (CFormDataLoginStore::ShouldAskUser):
     9        (CFormDataLoginStore::SaveDialogL):
     10
    111bujtas, Reviewed by Yongjun.
    212        DESC:  Can not open the Browser application. fix: delay formmanager construct ALES-6Y9GG7
Note: See TracChangeset for help on using the changeset viewer.