Categories

Developer

Kevin Jones
Kevin Jones

Container Buddy v0.0.2

  • rating
  • rating
  • rating
  • rating
  • rating
0 (0 reviews)
Provides support for addons who want to support Containers features, but do not wish to annoy users not interested in such features. Workaround for bug 1386673. __WARNING__ see bug 1663547 caveat below (applies to all Containers support addons.)

WARNING - Using this or any other Containers supporting addon can potentially cause unexpected closing of Container tabs if the addon is removed. See Firefox bug 1663547 for details:
https://bugzilla.mozilla.org/show_bug.cgi?id=1663547

Provides Containers support for addons which only need it optionally. Due to bug 1386673, access to Containers data (via contextualIdentities permission) can not be made optional. This is a workaround for a problem that could annoy users. This addon is very lightweight, only 8 lines of code.

Presently, if an addon wants to support the Firefox Containers feature, it will force the Containers feature to be enabled anytime the addon is installed, even if the addon wants to offer those features optionally. This could be annoying to a user who does not want to use Container tabs, eg seeing menus populated with Container-related options. In that case their only option would be to disable the addon.

This addon works as a "buddy" to such type addons. This way the addon does not have to require Containers access (contextualIdentities permission) and force enabling Containers feature even for users who don't want it. Those who wish to use the addon's Containers-related features can install this buddy addon.

Firefox bug 1662329
https://bugzilla.mozilla.org/show_bug.cgi?id=1662329

Addon Devs:

To access the buddy, do something like this:

In place of `await browser.contextualIdentities.get(cookieStoreId)`:

let identity;

try {
identity = await browser.runtime.sendMessage("[email protected]",
{ topic: "getContainerData", cookieStoreId });
} catch(e) {
// Handle error
};

let { name, color } = identity;

In place of `await browser.contextualIdentities.query({})`:

let identities;

try {
identities = await browser.runtime.sendMessage("[email protected]",
{ topic: "getIdentities" });
} catch(e) {
// Handle error
};