Open Bug 1546652 Opened 5 years ago Updated 2 years ago

Search engine add-ons (extensions) are not properly removed when removing via search preferences

Categories

(Firefox :: Search, defect, P2)

defect

Tracking

()

Tracking Status
firefox66 --- wontfix
firefox67 --- wontfix
firefox68 --- wontfix

People

(Reporter: obotisan, Unassigned)

References

(Depends on 1 open bug)

Details

(Keywords: blocked-ux)

Affected versions

  • Firefox 68.0a1
  • Firefox 67.0b14
  • Firefox 66.0.3

Affected platforms

  • Windows 10 x64
  • Ubuntu 18.04 x64
  • macOS 10.13

Steps to reproduce

  1. Install one of the search engine extensions
  2. Go to about:preferences#search an remove it from the One-Click Search Engines list.
  3. Restart the browser and go back to about:preferences#search.

Expected result

  • The removed extension is not listed.
    or
  • A notification that the extension is still installed should be displayed.

Actual result

  • The removed extension is still in the One-Click Search Engines list.

Regression range

  • I don't think this is a regression. I can reproduce the issue on Nightly from 2017-10-02 and before that I can't seem to make the extension to install.

Additional notes

  • This happens for other search engine extensions, too, like youtube, yahoo, bing.
  • This extensions are displayed in about:addons. After you remove it from about:preferences#search, on the about:addons page it still appears as active.
  • They still seem to be active even on https://addons.mozilla.org/ ( in the case of the link above this site.
  • This might be an issue only with some of the extensions, because I can not reproduce this issue for search engines, such as: yandex amazon.

Yes, the current design is frustrating.

The difference between your examples is:

Old style .xml search engine plugins can be removed through about:preferences#search

New style .xpi search engine plugins cannot -- the extension needs to be removed through the Add-ons page -- and as you note, changes made in the One-Click Search Engines box do not persist beyond the current session

One possible approach is for the Remove button below the One-Click Search Engines box to handle both kinds of add-ons appropriately. Another would be to link the user over to the Add-ons page for XPI-type search engine plugins. At a minimum, it would be useful to have a visual cue such as a little badge to distinguish them so the SUMO articles can be sensibly updated to address the difference.

Component: Extension Compatibility → Search

The Remove button calls this code:

case "removeEngineButton":
    Services.search.removeEngine(gEngineView.selectedEngine.originalEngine);

https://dxr.mozilla.org/mozilla-central/source/browser/components/preferences/in-content/search.js#218

In removeEngine(), there's a place that the code could check whether it is an XPI search engine and do the necessary:

2060    if (engineToRemove._readOnly || engineToRemove.isBuiltin) {

2065    } else {

    if (engineToRemove._extensionID !== undefined) {
        // Uninstall the XPI or Disable the XPI?
    }

I think we need to be careful about the UX implications of just removing the extension. Some of them do more than just add a search engine - e.g. the Ecosia one linked to in comment 0 also adds a toolbar button.

We should probably either:

  1. Remove the engine from the list, but keep the add-on in Firefox
  2. Remove the add-on completely.

Yeh this is gonna need UX work,

Setting the engine as hidden may be possible but then there wouldnt be a particularly natural way to restore it, could reinstall the addon (and make sure that would actually restore it), this seems like a messy option

We could remove the addon iff the addon only provides search functionality, and if the addon provides more than just the search engine we could either disable removing it, or confirm if the user wants to delete the addon entirely

Michael you have any suggestions here?

Flags: needinfo?(mverdi)
Priority: -- → P2

Clearing my needinfos

Flags: needinfo?(mverdi)
Severity: normal → S3
Keywords: blocked-ux
Summary: [about:preferences#search] Some search engine extensions are still installed even after they were removed → Search engine add-ons (extensions) are not properly removed when removing via search preferences
Blocks: 1645183

Some of the work going on under search-alias may be looking at this.

Depends on: search-alias
See Also: → 1675624
See Also: → 1675860
See Also: 1675624, 1675860
You need to log in before you can comment on or make changes to this bug.