New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 590692 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner: ----
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocking:
issue 517910


Show other hotlists

Hotlists containing this issue:
Hotlist-1


Sign in to add a comment

ExtensionSyncService doesn't handle App<->Extension changes

Project Member Reported by treib@chromium.org, Feb 29 2016

Issue description

An 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 
 

Comment 1 by treib@chromium.org, Mar 1 2016

Status: Assigned (was: Untriaged)

Comment 2 by wfh@chromium.org, Mar 11 2016

 Issue 594061  has been merged into this issue.
Project Member

Comment 3 by bugdroid1@chromium.org, 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

Comment 4 by pav...@chromium.org, Jan 21 2018

Labels: SyncHandoff2018
asargent@: Is this issue fixed?

Comment 5 by treib@chromium.org, Apr 30 2018

Ping again: Is there anything left to do here?
Owner: ----

Comment 7 by mastiz@chromium.org, Jun 25 2018

Status: Fixed (was: Assigned)
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