Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Issue 2533303007: [Autofill] Transfer cards' billing address id when deduping profiles. (Closed)

Created:
4 years ago by sebsg
Modified:
4 years ago
CC:
chromium-reviews, mlamouri+watch-content_chromium.org, rouslan+autofill_chromium.org, jam, sebsg+autofillwatch_chromium.org, browser-components-watch_chromium.org, jdonnelly+autofillwatch_chromium.org, mathp+autofillwatch_chromium.org, darin-cc_chromium.org, vabr+watchlistautofill_chromium.org, estade+watch_chromium.org, anthonyvd
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Transfer cards' billing address id when deduping profiles. A new billing_address_id field was recently added to CreditCard object to reference a profile it uses as its billing address. The deduping algo doesn't do anything about that field. This means it is possible to dedupe (merge profile A into profile B, then delete A) and have a credit card point to the GUID of profile A. This CL uses an acyclic graph to keep track of the profiles merges and uses it to update the billing address of the credit cards. The full solution is described in this document: https://docs.google.com/document/d/1Xg6CAWJCL6WZxv5v5cuoZt1UfQ4moKFDJScbf3Q8q2s/edit?usp=sharing BUG=670477 TEST=DedupeProfiles_GuidsMergeMap UpdateCardsBillingAddressReference ApplyDedupingRoutine_CardsBillingAddressIdUpdated Committed: https://crrev.com/3cd4e5505fe1f927ee2d7e6f482cfa2a4e8622bf Cr-Commit-Position: refs/heads/master@{#436604}

Patch Set 1 #

Total comments: 12

Patch Set 2 : Added DCHECK in billing address update loop Addressed comments #

Total comments: 2

Patch Set 3 : Fixed comment error + added a safety break #

Total comments: 4

Patch Set 4 : Removed unused line #

Total comments: 4

Patch Set 5 : Addressed Roger's comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+347 lines, -8 lines) Patch
M components/autofill/core/browser/personal_data_manager.h View 3 chunks +18 lines, -3 lines 0 comments Download
M components/autofill/core/browser/personal_data_manager.cc View 1 2 3 4 6 chunks +60 lines, -4 lines 0 comments Download
M components/autofill/core/browser/personal_data_manager_unittest.cc View 1 2 2 chunks +269 lines, -1 line 0 comments Download

Messages

Total messages: 56 (40 generated)
sebsg
Hi Rouslan and Math, PTAL?
4 years ago (2016-12-02 20:30:48 UTC) #6
please use gerrit instead
https://www.chromium.org/developers/contributing-code#TOC-Writing-change-list-descriptions
4 years ago (2016-12-02 20:47:19 UTC) #7
please use gerrit instead
Remove any confidential info from the design doc, publish it as sebsg@chromium.org with public visibility, ...
4 years ago (2016-12-02 20:48:57 UTC) #8
Mathieu
lgtm, seems pretty straightforward but would love Roger to have a look https://codereview.chromium.org/2533303007/diff/60001/components/autofill/core/browser/personal_data_manager.cc File components/autofill/core/browser/personal_data_manager.cc ...
4 years ago (2016-12-02 21:12:39 UTC) #16
Roger McFarlane (Chromium)
https://codereview.chromium.org/2533303007/diff/60001/components/autofill/core/browser/personal_data_manager.cc File components/autofill/core/browser/personal_data_manager.cc (right): https://codereview.chromium.org/2533303007/diff/60001/components/autofill/core/browser/personal_data_manager.cc#newcode1824 components/autofill/core/browser/personal_data_manager.cc:1824: while (guids_merge_map.count(credit_card->billing_address_id())) { the count() and the at() both ...
4 years ago (2016-12-02 21:23:05 UTC) #17
sebsg
Thanks, another look? https://codereview.chromium.org/2533303007/diff/60001/components/autofill/core/browser/personal_data_manager.cc File components/autofill/core/browser/personal_data_manager.cc (right): https://codereview.chromium.org/2533303007/diff/60001/components/autofill/core/browser/personal_data_manager.cc#newcode1793 components/autofill/core/browser/personal_data_manager.cc:1793: // Keep track of the merges ...
4 years ago (2016-12-02 21:46:34 UTC) #19
please use gerrit instead
lgtm https://codereview.chromium.org/2533303007/diff/100001/components/autofill/core/browser/personal_data_manager.cc File components/autofill/core/browser/personal_data_manager.cc (right): https://codereview.chromium.org/2533303007/diff/100001/components/autofill/core/browser/personal_data_manager.cc#newcode1845 components/autofill/core/browser/personal_data_manager.cc:1845: Put this statement here to avoid "unused var" ...
4 years ago (2016-12-05 11:52:02 UTC) #20
sebsg
Addressed Rouslan's comments plus added a safety break out of the loop. Roger, do I ...
4 years ago (2016-12-05 18:31:26 UTC) #34
please use gerrit instead
https://codereview.chromium.org/2533303007/diff/140001/components/autofill/core/browser/personal_data_manager.cc File components/autofill/core/browser/personal_data_manager.cc (right): https://codereview.chromium.org/2533303007/diff/140001/components/autofill/core/browser/personal_data_manager.cc#newcode1819 components/autofill/core/browser/personal_data_manager.cc:1819: /* Here is an example of what the graph ...
4 years ago (2016-12-05 18:36:09 UTC) #35
sebsg
https://codereview.chromium.org/2533303007/diff/140001/components/autofill/core/browser/personal_data_manager.cc File components/autofill/core/browser/personal_data_manager.cc (right): https://codereview.chromium.org/2533303007/diff/140001/components/autofill/core/browser/personal_data_manager.cc#newcode1819 components/autofill/core/browser/personal_data_manager.cc:1819: /* Here is an example of what the graph ...
4 years ago (2016-12-05 18:46:22 UTC) #36
Roger McFarlane (Chromium)
https://codereview.chromium.org/2533303007/diff/160001/components/autofill/core/browser/personal_data_manager.cc File components/autofill/core/browser/personal_data_manager.cc (right): https://codereview.chromium.org/2533303007/diff/160001/components/autofill/core/browser/personal_data_manager.cc#newcode1795 components/autofill/core/browser/personal_data_manager.cc:1795: guids_merge_map->insert(std::pair<std::string, std::string>( emplace() ? you could also keep the ...
4 years ago (2016-12-05 19:52:12 UTC) #37
sebsg
https://codereview.chromium.org/2533303007/diff/160001/components/autofill/core/browser/personal_data_manager.cc File components/autofill/core/browser/personal_data_manager.cc (right): https://codereview.chromium.org/2533303007/diff/160001/components/autofill/core/browser/personal_data_manager.cc#newcode1795 components/autofill/core/browser/personal_data_manager.cc:1795: guids_merge_map->insert(std::pair<std::string, std::string>( On 2016/12/05 19:52:12, Roger McFarlane (Chromium) wrote: ...
4 years ago (2016-12-05 22:02:24 UTC) #44
Roger McFarlane (Chromium)
lgtm
4 years ago (2016-12-06 15:25:54 UTC) #48
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2533303007/200001
4 years ago (2016-12-06 15:32:43 UTC) #51
commit-bot: I haz the power
Committed patchset #5 (id:200001)
4 years ago (2016-12-06 15:37:41 UTC) #54
commit-bot: I haz the power
4 years ago (2016-12-06 15:40:33 UTC) #56
Message was sent while issue was closed.
Patchset 5 (id:??) landed as
https://crrev.com/3cd4e5505fe1f927ee2d7e6f482cfa2a4e8622bf
Cr-Commit-Position: refs/heads/master@{#436604}

Powered by Google App Engine
This is Rietveld 408576698