Open Bug 1659298 Opened 3 months ago Updated 2 months ago

Get rid of distribution extensions in favor of application global


(SeaMonkey :: Build Config, enhancement)



(seamonkey2.53? affected, seamonkey2.57esr? affected)

Tracking Status
seamonkey2.53 ? affected
seamonkey2.57esr ? affected


(Reporter: dmitry, Unassigned)



(1 file, 1 obsolete file)

Currently Lightning, Chatzilla and Inspector are provided as distribution extensions.

They placed in the special "distribution/extensions" directory, which is checked by SeaMonkey and addons from it are copied into the user profile.

It is kinda traditional way for SM and Fx bundled addons, but it has its drawbacks:

  • An extra copying into the user profile (ie. two or more instances of the same addon in the filesystem).;
  • Too hard to restore an addon if the user (occasionally) remove it (either from UI, or directly in filesystem). It should check extensions.installedDistroAddon.* branch in about:config, find and reset a needed one.
  • Disabled state of the addon is not preserved when a new version is copied (it always becomes enabled).

A preliminary testing shows that all the issues gone when the addons are placed in the standard "app-global" location (ie. the same way as for themes).
In the case of Linux for example, it is just moving from /usr/lib64/seamonkey/distribution/extensions to app-global's /usr/lib64/seamonkey/extensions.

Since all the addons mentioned is going to be integrated anyway in the future, such a moving looks perfectly acceptable.

When new version of SeaMonkey starts to provide the mentioned addons in the "app-global" location, the copied ones of the previous version still remain in the user profile (and since it has the highest priority, still take effect).

Fortunately, each distribution addon should have the correspond extensions.installedDistroAddon. preference, which means that the addon is not installed by the user (manually), but just was copied automatically from a system location.

The patch adds a proper check for this case at the application's update time, and removes the old copies of such addons from the user profile.
Additonally, it allows user to have a more recent version anyway, as well as preserves the disabled states.

Regardless of the acceptance of the proposed change upstream, the patch will be beneficial enough for downstream (ie. Linux), since it is too easy to place addons "just in another dir" in the distro packages.

Flags: needinfo?(frgrahl)
Summary: Get rid of distributed extensions in favor of application global → Get rid of distribution extensions in favor of application global
Type: defect → enhancement
Ever confirmed: true
Flags: needinfo?(frgrahl)
Version: SeaMonkey 2.53 Branch → Trunk

Comment on attachment 9170212 [details] [diff] [review]

Not so sure about 2.53 but maybe an option for 2.57

Attachment #9170212 - Flags: feedback?(iann_bugzilla)
Component: General → Build Config

A bit fixed for respecting the previously disabled addon state.

(Ill-considered optimization of unknown code written in an unknown language is the source of all troubles. :) )

Attachment #9170212 - Attachment is obsolete: true
Attachment #9170212 - Flags: feedback?(iann_bugzilla)
Attachment #9170212 - Flags: feedback?(iann_bugzilla)
You need to log in before you can comment on or make changes to this bug.