ExtensionSyncService doesn't handle App<->Extension changes |
||||
Issue descriptionAn App can change to being an Extension (or vice versa). When that happens, the user ends up with an orphaned App (or Extension) sync data item, which will never go away, and which will cause the Extension to be reinstalled whenever the user removes it. In practice, this happened for the Hangouts extension (nckgahadagoaajjgafhacjanaoiihapd) which used to be an App called "Google Talk". Lots of discussion leading to this diagnosis on issue 517910
,
Mar 11 2016
Issue 594061 has been merged into this issue.
,
Mar 12 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e48ab754b00bbb2dee227adebb8936b3b13be77c commit e48ab754b00bbb2dee227adebb8936b3b13be77c Author: asargent <asargent@chromium.org> Date: Sat Mar 12 00:59:20 2016 Fix extensions sync in cases where items change type If an extension changes into an app or vice versa, we can be left with an old sync data item even if the installed item is uninstalled. Then on the next sync, we'll try re-installing based on the id in this old record, so it becomes impossible to remove. The chrome webstore does not normally allow items to change type, but it has happened in a few cases, possibly either via their publishing API or one-off manual inteventions. A notable case is Google Hangouts, which started out as a packaged app and became an extension at some point. This CL changes the sync logic to always delete the sync data item if there is an installed item of a differing type. Previously, we only did this in the special case of themes due to a bug where themes could end up being recorded as extensions. Also, while working on tests for this CL I discovered some unit and browser tests where we were directly calling the ProcessSyncChanges method on ExtensionSyncService without first calling MergeDataAndStartSyncing, which is a violation of the expectations of the SyncableService interface, so I've fixed those and added a DCHECK to help prevent future occurences. BUG= 590692 Review URL: https://codereview.chromium.org/1778923003 Cr-Commit-Position: refs/heads/master@{#380813} [modify] https://crrev.com/e48ab754b00bbb2dee227adebb8936b3b13be77c/chrome/browser/extensions/extension_disabled_ui_browsertest.cc [modify] https://crrev.com/e48ab754b00bbb2dee227adebb8936b3b13be77c/chrome/browser/extensions/extension_service_sync_unittest.cc [modify] https://crrev.com/e48ab754b00bbb2dee227adebb8936b3b13be77c/chrome/browser/extensions/extension_sync_service.cc [add] https://crrev.com/e48ab754b00bbb2dee227adebb8936b3b13be77c/chrome/test/data/extensions/sync_datatypes/key.pem [add] https://crrev.com/e48ab754b00bbb2dee227adebb8936b3b13be77c/chrome/test/data/extensions/sync_datatypes/v1.crx [add] https://crrev.com/e48ab754b00bbb2dee227adebb8936b3b13be77c/chrome/test/data/extensions/sync_datatypes/v2.crx
,
Jan 21 2018
asargent@: Is this issue fixed?
,
Apr 30 2018
Ping again: Is there anything left to do here?
,
May 15 2018
,
Jun 25 2018
There's hopes the issue was fixed since we never heard back, and since I don't expect any future actions here, I'm closing the bug. |
||||
►
Sign in to add a comment |
||||
Comment 1 by treib@chromium.org
, Mar 1 2016