OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/webdata/web_database.h" | 5 #include "chrome/browser/webdata/web_database.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 1675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1686 } | 1686 } |
1687 | 1687 |
1688 while (s.Step()) | 1688 while (s.Step()) |
1689 profiles->push_back(AutoFillProfileFromStatement(s)); | 1689 profiles->push_back(AutoFillProfileFromStatement(s)); |
1690 | 1690 |
1691 return s.Succeeded(); | 1691 return s.Succeeded(); |
1692 } | 1692 } |
1693 | 1693 |
1694 bool WebDatabase::UpdateAutoFillProfile(const AutoFillProfile& profile) { | 1694 bool WebDatabase::UpdateAutoFillProfile(const AutoFillProfile& profile) { |
1695 DCHECK(guid::IsValidGUID(profile.guid())); | 1695 DCHECK(guid::IsValidGUID(profile.guid())); |
| 1696 |
| 1697 // Preserve appropriate modification dates by not updating unchanged profiles. |
| 1698 AutoFillProfile* tmp_profile = NULL; |
| 1699 DCHECK(GetAutoFillProfileForGUID(profile.guid(), &tmp_profile)); |
| 1700 scoped_ptr<AutoFillProfile> old_profile(tmp_profile); |
| 1701 if (*old_profile == profile) |
| 1702 return true; |
| 1703 |
1696 sql::Statement s(db_.GetUniqueStatement( | 1704 sql::Statement s(db_.GetUniqueStatement( |
1697 "UPDATE autofill_profiles " | 1705 "UPDATE autofill_profiles " |
1698 "SET guid=?, label=?, first_name=?, middle_name=?, last_name=?, " | 1706 "SET guid=?, label=?, first_name=?, middle_name=?, last_name=?, " |
1699 " email=?, company_name=?, address_line_1=?, address_line_2=?, " | 1707 " email=?, company_name=?, address_line_1=?, address_line_2=?, " |
1700 " city=?, state=?, zipcode=?, country=?, phone=?, fax=?, " | 1708 " city=?, state=?, zipcode=?, country=?, phone=?, fax=?, " |
1701 " date_modified=? " | 1709 " date_modified=? " |
1702 "WHERE guid=?")); | 1710 "WHERE guid=?")); |
1703 if (!s) { | 1711 if (!s) { |
1704 NOTREACHED() << "Statement prepare failed"; | 1712 NOTREACHED() << "Statement prepare failed"; |
1705 return false; | 1713 return false; |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1806 } | 1814 } |
1807 | 1815 |
1808 while (s.Step()) | 1816 while (s.Step()) |
1809 credit_cards->push_back(CreditCardFromStatement(s)); | 1817 credit_cards->push_back(CreditCardFromStatement(s)); |
1810 | 1818 |
1811 return s.Succeeded(); | 1819 return s.Succeeded(); |
1812 } | 1820 } |
1813 | 1821 |
1814 bool WebDatabase::UpdateCreditCard(const CreditCard& credit_card) { | 1822 bool WebDatabase::UpdateCreditCard(const CreditCard& credit_card) { |
1815 DCHECK(guid::IsValidGUID(credit_card.guid())); | 1823 DCHECK(guid::IsValidGUID(credit_card.guid())); |
| 1824 |
| 1825 // Preserve appropriate modification dates by not updating unchanged cards. |
| 1826 CreditCard* tmp_credit_card = NULL; |
| 1827 DCHECK(GetCreditCardForGUID(credit_card.guid(), &tmp_credit_card)); |
| 1828 scoped_ptr<CreditCard> old_credit_card(tmp_credit_card); |
| 1829 if (*old_credit_card == credit_card) |
| 1830 return true; |
| 1831 |
1816 sql::Statement s(db_.GetUniqueStatement( | 1832 sql::Statement s(db_.GetUniqueStatement( |
1817 "UPDATE credit_cards " | 1833 "UPDATE credit_cards " |
1818 "SET guid=?, label=?, name_on_card=?, expiration_month=?, " | 1834 "SET guid=?, label=?, name_on_card=?, expiration_month=?, " |
1819 " expiration_year=?, card_number_encrypted=?, date_modified=? " | 1835 " expiration_year=?, card_number_encrypted=?, date_modified=? " |
1820 "WHERE guid=?")); | 1836 "WHERE guid=?")); |
1821 if (!s) { | 1837 if (!s) { |
1822 NOTREACHED() << "Statement prepare failed"; | 1838 NOTREACHED() << "Statement prepare failed"; |
1823 return false; | 1839 return false; |
1824 } | 1840 } |
1825 | 1841 |
(...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2557 | 2573 |
2558 // Add successive versions here. Each should set the version number and | 2574 // Add successive versions here. Each should set the version number and |
2559 // compatible version number as appropriate, then fall through to the next | 2575 // compatible version number as appropriate, then fall through to the next |
2560 // case. | 2576 // case. |
2561 | 2577 |
2562 case kCurrentVersionNumber: | 2578 case kCurrentVersionNumber: |
2563 // No migration needed. | 2579 // No migration needed. |
2564 return sql::INIT_OK; | 2580 return sql::INIT_OK; |
2565 } | 2581 } |
2566 } | 2582 } |
OLD | NEW |