Trending

#WebExtensions

Latest posts tagged with #WebExtensions on Bluesky

Latest Top
Trending

Posts tagged #WebExtensions

Video

🚀 Exciting news! Our extension has earned the 🏆 Featured Badge on the Chrome Web Store! 🎉 Thank you to everyone for the support. If you haven’t tried it yet, check it out now!

chromewebstore.google.com/detail/googl... 🦊 bit.ly/3XKzjCI

#WebExtensions #W3C #WebTools #Chrome #Firefox #UX

1 0 0 0
Post image

After a 3-day sprint, V2.4.0 just dropped 🏃💨
New feats: sticky header, hidden icons, and… Translation 🌍🌍🌍 What a milestone! Talk is cheap, try it yourself!

👉 addons.mozilla.org/en-US/firefo...
👉 chromewebstore.google.com/detail/pnl-r...

#WebExtensions #devlog #webdev #buildinpublic #pnlreader

5 0 0 0
Announcing data collection consent changes for new Firefox extensions As of November 3rd 2025, all **new** Firefox extensions will be required to specify if they collect or transmit personal data in their `manifest.json` file using the `browser_specific_settings.gecko.data_collection_permissions key`. This will apply to new extensions only, and **not new versions of existing extensions**. Extensions that do not collect or transmit any personal data are required to specify this by setting the none required data collection permission in this property. This information will then be displayed to the user when they start to install the extension, alongside any permissions it requests. This information will also be displayed on the addons.mozilla.org page, if it is publicly listed, and in the _Permissions and Data_ section of the Firefox about:addons page for that extension. If an extension supports versions of Firefox prior to 140 for Desktop, or 142 for Android, then the developer will need to continue to provide the user with a clear way to control the add-on’s data collection and transmission immediately after installation of the add-on. Once any extension starts using these `data_collection_permissions` keys in a new version, it will need to continue using them for all subsequent versions. Extensions that do not have this property set correctly, and are required to use it, will be prevented from being submitted to addons.mozilla.org for signing with a message explaining why. In the first half of 2026, Mozilla will require all extensions to adopt this framework. But don’t worry, we’ll give plenty of notice via the add-ons blog. We’re also developing some new features to ease this transition for both extension developers and users, which we will announce here.

Announcing data collection consent changes for new Firefox extensions As of November 3rd 2025, all new Firefox extensions will be required to specify if they collect or transmit personal data in th...

#developers #end #users #policy #webextensions #data #consent

Origin | Interest | Match

0 0 0 0
Post image

Sparkbox

https://macintoshgarden.org/apps/sparkbox

Sparkbox helps you managing images for your design, unlike iPhoto, It is designed to manage the images besides the picture or photograph you took. It is wonderful when you could browse or find your […]

[Original post on bitbang.social]

0 0 0 0

What the fucking fuck that #Chrome doesn't support `background.scripts` in its Manifest v3 for #WebExtensions.

That is stupid.

If you wanna know why I haven't released BlogCat for Google Chrome and by consequence for Vivaldi, Edge and the other Chromiums, it is because of that.

0 0 0 0
Original post on mastodon.social

Any browser extension gurus able to help me figure this out?

I have an extension and I'm creating two context menu items via two separate calls to the 'chrome.contextMenus.create' method and by default it will stick those two items under a top level menu and I have not been able to find an easy […]

0 0 0 0
Best Practices  |  Chrome Extensions  |  Chrome for Developers How to create a high-quality extension and Chrome Web store listing.

To get the Featured badge:
✅ Meet Google’s best practices
✅ Submit a nomination for review

After migrating to Manifest V3, I sent a self-nomination via the developer support form.

🔗 Best practices:
developer.chrome.com/docs/webstor...

#ManifestV3 #WebExtensions #TechTips

0 0 1 0
Lien Firefox autorise la publication d'extensions privées * https://blog.mozilla.org/addons/2025/06/23/updated-add-on-policies-simplified-clarified/

Firefox autorise la publication d'extensions privées blog.mozilla.org/addons/2025/06/23/update... Commentaires : voir le flux Atom ouvrir dans le n...

#firefox #webextensions

Origin | Interest | Match

0 0 0 0
Lien Focus2console est une extension Firefox pour voir l'élément focus, pratique pour audit RGAA * https://addons.mozilla.org/fr/firefox/addon/focus2console/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=search

Focus2console est une extension Firefox pour voir l'élément focus, pratique pour audit RGAA addons.mozilla.org/fr/firefox/addon/focus2c... Commentaires : voir le flux Atom ouvrir...

#firefox #icecat #rgaa #webextensions

Origin | Interest | Match

0 0 0 0
Lien Focus2console est une extension Firefox pour voir l'élément focus, pratique pour audit RGAA * https://addons.mozilla.org/fr/firefox/addon/focus2console/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=search

Focus2console est une extension Firefox pour voir l'élément focus, pratique pour audit RGAA addons.mozilla.org/fr/firefox/addon/focus2c...

#firefox #icecat #rgaa #webextensions

Origin | Interest | Match

0 0 0 0
Post image Post image Post image Post image

Thanks to Alba Silvente we learned how to build web extensions AND how to consume AI from the browser!

She has supported this event from the very first call we made with her and we cannot be more grateful 💚 Thank you, Alba, for being part of this journey!

#MadVue #WebExtensions

0 0 0 0
The YouTube interface with a conspicuous empty space on the right hand side.

The YouTube interface with a conspicuous empty space on the right hand side.

Drove myself crazy trying to fix this weird phantom space while testing my YouTube web extension—but it turns out it's just there normally when using YouTube while logged out -_-

#youtube #webextensions

0 0 0 0
A YouTube video player showing an episode of Gundam Wing, with the player ui slightly misaligned.

A YouTube video player showing an episode of Gundam Wing, with the player ui slightly misaligned.

Looks like I've got the new YouTube UI now. Looking a wee bit cursed during my extension testing with "unusually sized" YouTube videos (4:3 instead of 16:9).

#youtube #webextensions

0 0 0 0
New Extension Data Consent Experience now available in Firefox Nightly In a previous blog post I explained that we’re working to streamline the data consent experience for extensions and allow users to consent to sharing data with extensions directly in the Firefox add-on installation flow itself — rather than during a separate post-install experience and asking developers to build their own custom consent experiences, which is the case today. We are not changing our policies on data collection, nor are we changing how extensions can collect data. Our goal is to simplify how a developer can be compliant with our existing policies so that we can dramatically reduce the: 1. _development effort_ required to be compliant with Firefox data policies 2. _confusion_ users faces when installing extensions by providing a more consistent experience, giving them more confidence and control around the data collected or transmitted 3. _time_ it takes for an extension to be reviewed to ensure it’s compliant with our data collection policies I’m pleased to announce that the initial version of this feature is now available in Firefox Nightly version 139 (and later) for extension developers to test out and provide feedback. # We need your help! We want to make sure that the new data consent experience is easy for extension developers to adopt, and works as a drop-in replacement for any existing custom consent experiences you may have created. We also need to know if the data categories available to choose from are appropriate for your extension. **We encourage extension developers to test out this new experience with their own extensions in Firefox Nightly, and let us know what they think by posting on this****Mozilla Connect thread****, or reach out to me directly on****BlueSky****!** To install an extension that has this experience configured you will need to install it from a file. You’ll need to first set the `xpinstall.signatures.required` preference to `false` in `about:config`. # How it works Developers can specify what data they wish to collect or transmit in their extensions `manifest.json` file. This information will be parsed by the browser and shown to the user when they first install the extension. A user can then choose to accept or reject the data collection, just like they do with extension permissions. The developer can also specify that the extension collects no data. To standardize this information for both developers and end users, we have created categories based on data types that extensions might be using today. In line with our current policies, there are two types of data: _Personal_ _data_ , and _Technical and Interaction_ _data_. To provide feedback on these categories, please let us know via our research survey. Therefore, please note that these options are subject to change based on the feedback we receive during this initial phase. ## Personal data Personally identifiable information can be actively provided by the user or obtained through extension APIs. It includes, but is not limited to names, email addresses, search terms and browsing activity data, as well as access to and placement of cookies. **Data type**** ** Visible during install | **Data collection permission** Used in the manifest | **Definition / Examples** ---|---|--- **Personally identifying information** | `personallyIdentifyingInfo` | Examples: contact information like name and address, email, and phone number, as well as other identifying data such as ID numbers, voice or video recordings, age, demographic information, or biometric data. **Health information** | `healthInfo` | Examples: medical history, symptoms, diagnoses, treatments, procedures, or heart rate data. **Financial and payment information** | `financialAndPaymentInfo` | Examples: credit card numbers, transactions, credit ratings, financial statements, or payment history. **Authentication information** | `authenticationInfo` | Examples: passwords, usernames, personal identification numbers (PINs), security questions, and registration information for extensions that offer account-based services. **Personal communications** | `personalCommunications` | Examples: emails, text or chat messages, social media posts, and data from phone calls and conference calls. **Location** | `locationInfo` | Examples: region, GPS coordinates, or information about things near a user’s device. **Browsing activity** | `browsingActivity` | Information about the websites you visit, like specific URLs, domains, or categories of pages you view over time. **Website content** | `websiteContent` | Covers anything visible on a website — such as text, images, videos, and links — as well as anything embedded like cookies, audio, page headers, request, and response information. **Website activity** | `websiteActivity` | Examples: interactions and mouse and keyboard activity like scrolling, clicking, typing, and covers actions such as saving and downloading. **Search terms** | `searchTerms` | Search terms entered into search engines **Bookmarks** | `bookmarksInfo` | Information about Firefox bookmarks, including specific websites, bookmark names, and folder names. ## Technical and interaction data Technical data describes information about the environment the user is running, such as browser settings, platform information, and hardware properties. User interaction data includes how the user interacts with Firefox and the installed add-on, metrics for product improvement, and error information. **Data type**** ** Visible during install | **Data collection permission** Used in the manifest | **Definition** ---|---|--- **Technical and interaction data** | `technicalAndInteraction` | Examples: Device and browser info, extension usage and settings data, crash and error reports. # Specifying data types You specify data types your extension transmits in the `browser_specific_settings.gecko` key in the `manifest.json` file. As a reminder, our policies state that data transmission refers to any data that is collected, used, transferred, shared, or handled outside of the add-on or the local browser. ## Personal data Personal data permissions can either be _required_ or _optional_ (only technicalAndInteraction cannot be required, and this is documented later): "browser_specific_settings": {   "gecko": {     "data_collection_permissions": {       "required": [...],       "optional": [...]     }   } } The rest of this section describes each key in the `data_collection_permissions` object. ### Required data When types of data are specified in the required list, users must opt in to this data collection to use the extension. Users cannot opt-out, and Figure 1 gives an example of how it could look. If a user does not agree to the data collection the extension is not installed. Unlike today, this gives the user a chance to review the data collection requirements of an extension before it is installed in their browser. In the `manifest.json` file below, the developer specifies a single type of required data: `locationInfo`. {   "manifest_version": 2,   "name": "Example - Data collection with fallback",   "version": "1.0.0",   "permissions": [     "storage",     "management"   ],   "browser_specific_settings": {     "gecko": {    "id": "example-data-collection-with-fallback@test.mozilla.org",    "data_collection_permissions": {   "required": [            "locationInfo"   ],          "optional": [     "technicalAndInteraction"   ]       }     }   },   "background": {     "scripts": [       "background.js"     ]   },   "browser_action": {},   "options_ui": {     "page": "options/page.html"   } } This results in a new paragraph in the installation prompt (see Figure 1). The data permissions are also listed in about:addons as shown in Figure 2. Figure 1: Installation prompt with data types as specified in the manifest Figure 2: The data permissions are also listed in about:addons ### Optional data Optional data collection permissions can be specified using the `optional` list. These are not surfaced during installation (except `technicalAndInteraction`; see next section), and they are not granted by default. The extension can request the user opts in to this data collection after installation via a prompt, and the user can enable or disable this option data collection at any time in `about:addons` in the `Permissions and data` section of the extension settings. ## Technical and interaction data The `technicalAndInteraction` data type behaves differently compared to all others. This data permission can only be optional, but unlike other optional data collection options the user has the opportunity to enable or disable this during the installation flow.. In Figure 1, we can see this choice available in the `optional settings` section of the installation prompt. ## No data collection We also want to be clear to users when an extension collects no data. To enable this, developers can explicitly indicate that their extension does not collect or transmit any data by specifying the `”none”` required permission in the manifest, as follows: { "manifest_version": 2, "name": "extension without data collection", "version": "1.0.0", "browser_specific_settings": { "gecko": { "id": "@extension-without-data-collection", **"data_collection_permissions":** **{** ******"required":** **["none"]** ******}** } }, "permissions": [ "bookmarks", "<all_urls>" ] } When a user attempts to install this extension, Firefox will show the usual installation prompt with the description of the required (API) permissions as well as a new description to indicate that the extension does not collect any data (see Figure 3). Figure 3: Installation prompt with no data transmission defined in the manifest The “no data collected” type is also listed in the “Permissions and data” tab of the extension in `about:addons` as shown in Figure 4. Figure 4: The “no data collected” permission is listed in about:addons **Note:** The `none` data type can only be required, and it cannot be used with other data types, including optional types. When that happens, Firefox will ignore the `none` type, and only consider the other data types (see next section for more information). In addition, Firefox will show a warning message intended to developers in `about:debugging` as shown in Figure 5. Figure 5: A warning message is displayed when the none type is combined with other data collection permissions ## Accessing the data permissions programmatically Extension developers can use the `browser.permissions` API (MDN docs) to interact with the optional data permissions. Specifically, the `getAll()` method would now return the list of granted optional data permissions as follows: await browser.permissions.getAll() { origins: ["<all_urls>"], permissions: ["bookmarks"], // In this case, the permission is granted. ​  **data_collection:** **["technicalAndInteraction"]** } Extension developers can also use the `browser.permissions.request()` API method (MDN docs) to get consent from users for ancillary data collection (defined in the `optional` list): `await browser.permissions.request({ data_collection: ["healthInfo"] });` This will show the following message to the Firefox user, giving them the choice to opt in to this data collection or not. ## Updates When an extension is updated, Firefox will only show the newly added required data permissions, unless it’s the special `none` data type because we don’t need to bother the user when the extension does not collect any data. This should behave like today for traditional permissions. ## Please try it out and let us know what you think! As I mentioned, we really want to make sure that the new data consent experience is easy for extension developers to adopt, and works as a drop-in replacement for any existing custom consent experiences you may have created. **Please test out this new experience with your own extensions in Firefox Nightly, and let us know what you think by posting on this****Mozilla Connect thread**

New Extension Data Consent Experience now available in Firefox Nightly In a previous blog post I ...

blog.mozilla.org/addons/2025/05/09/new-ex...

#developers #documentation #webextensions #data #consent

Result Details

0 0 0 0
New Extension Data Consent Experience now available in Firefox Nightly In a previous blog post I explained that we’re working to streamline the data consent experience for extensions and allow users to consent to sharing data with extensions directly in the Firefox add-on installation flow itself — rather than during a separate post-install experience and asking developers to build their own custom consent experiences, which is the case today. We are not changing our policies on data collection, nor are we changing how extensions can collect data. Our goal is to simplify how a developer can be compliant with our existing policies so that we can dramatically reduce the: 1. _development effort_ required to be compliant with Firefox data policies 2. _confusion_ users faces when installing extensions by providing a more consistent experience, giving them more confidence and control around the data collected or transmitted 3. _time_ it takes for an extension to be reviewed to ensure it’s compliant with our data collection policies I’m pleased to announce that the initial version of this feature is now available in Firefox Nightly version 139 (and later) for extension developers to test out and provide feedback. # We need your help! We want to make sure that the new data consent experience is easy for extension developers to adopt, and works as a drop-in replacement for any existing custom consent experiences you may have created. We also need to know if the data categories available to choose from are appropriate for your extension. **We encourage extension developers to test out this new experience with their own extensions in Firefox Nightly, and let us know what they think by posting on this****Mozilla Connect thread****, or reach out to me directly on****BlueSky****!** To install an extension that has this experience configured you will need to install it from a file. You’ll need to first set the `xpinstall.signatures.required` preference to `false` in `about:config`. # How it works Developers can specify what data they wish to collect or transmit in their extensions `manifest.json` file. This information will be parsed by the browser and shown to the user when they first install the extension. A user can then choose to accept or reject the data collection, just like they do with extension permissions. The developer can also specify that the extension collects no data. To standardize this information for both developers and end users, we have created categories based on data types that extensions might be using today. In line with our current policies, there are two types of data: _Personal_ _data_ , and _Technical and Interaction_ _data_. To provide feedback on these categories, please let us know via our research survey. Therefore, please note that these options are subject to change based on the feedback we receive during this initial phase. ## Personal data Personally identifiable information can be actively provided by the user or obtained through extension APIs. It includes, but is not limited to names, email addresses, search terms and browsing activity data, as well as access to and placement of cookies. **Data type**** ** Visible during install | **Data collection permission** Used in the manifest | **Definition / Examples** ---|---|--- **Personally identifying information** | `personallyIdentifyingInfo` | Examples: contact information like name and address, email, and phone number, as well as other identifying data such as ID numbers, voice or video recordings, age, demographic information, or biometric data. **Health information** | `healthInfo` | Examples: medical history, symptoms, diagnoses, treatments, procedures, or heart rate data. **Financial and payment information** | `financialAndPaymentInfo` | Examples: credit card numbers, transactions, credit ratings, financial statements, or payment history. **Authentication information** | `authenticationInfo` | Examples: passwords, usernames, personal identification numbers (PINs), security questions, and registration information for extensions that offer account-based services. **Personal communications** | `personalCommunications` | Examples: emails, text or chat messages, social media posts, and data from phone calls and conference calls. **Location** | `locationInfo` | Examples: region, GPS coordinates, or information about things near a user’s device. **Browsing activity** | `browsingActivity` | Information about the websites you visit, like specific URLs, domains, or categories of pages you view over time. **Website content** | `websiteContent` | Covers anything visible on a website — such as text, images, videos, and links — as well as anything embedded like cookies, audio, page headers, request, and response information. **Website activity** | `websiteActivity` | Examples: interactions and mouse and keyboard activity like scrolling, clicking, typing, and covers actions such as saving and downloading. **Search terms** | `searchTerms` | Search terms entered into search engines **Bookmarks** | `bookmarksInfo` | Information about Firefox bookmarks, including specific websites, bookmark names, and folder names. ## Technical and interaction data Technical data describes information about the environment the user is running, such as browser settings, platform information, and hardware properties. User interaction data includes how the user interacts with Firefox and the installed add-on, metrics for product improvement, and error information. **Data type**** ** Visible during install | **Data collection permission** Used in the manifest | **Definition** ---|---|--- **Technical and interaction data** | `technicalAndInteraction` | Examples: Device and browser info, extension usage and settings data, crash and error reports. # Specifying data types You specify data types your extension transmits in the `browser_specific_settings.gecko` key in the `manifest.json` file. As a reminder, our policies state that data transmission refers to any data that is collected, used, transferred, shared, or handled outside of the add-on or the local browser. ## Personal data Personal data permissions can either be _required_ or _optional_ (only technicalAndInteraction cannot be required, and this is documented later): "browser_specific_settings": {   "gecko": {     "data_collection_permissions": {       "required": [...],       "optional": [...]     }   } } The rest of this section describes each key in the `data_collection_permissions` object. ### Required data When types of data are specified in the required list, users must opt in to this data collection to use the extension. Users cannot opt-out, and Figure 1 gives an example of how it could look. If a user does not agree to the data collection the extension is not installed. Unlike today, this gives the user a chance to review the data collection requirements of an extension before it is installed in their browser. In the `manifest.json` file below, the developer specifies a single type of required data: `locationInfo`. {   "manifest_version": 2,   "name": "Example - Data collection with fallback",   "version": "1.0.0",   "permissions": [     "storage",     "management"   ],   "browser_specific_settings": {     "gecko": {    "id": "example-data-collection-with-fallback@test.mozilla.org",    "data_collection_permissions": {   "required": [            "locationInfo"   ],          "optional": [     "technicalAndInteraction"   ]       }     }   },   "background": {     "scripts": [       "background.js"     ]   },   "browser_action": {},   "options_ui": {     "page": "options/page.html"   } } This results in a new paragraph in the installation prompt (see Figure 1). The data permissions are also listed in about:addons as shown in Figure 2. Figure 1: Installation prompt with data types as specified in the manifest Figure 2: The data permissions are also listed in about:addons ### Optional data Optional data collection permissions can be specified using the `optional` list. These are not surfaced during installation (except `technicalAndInteraction`; see next section), and they are not granted by default. The extension can request the user opts in to this data collection after installation via a prompt, and the user can enable or disable this option data collection at any time in `about:addons` in the `Permissions and data` section of the extension settings. ## Technical and interaction data The `technicalAndInteraction` data type behaves differently compared to all others. This data permission can only be optional, but unlike other optional data collection options the user has the opportunity to enable or disable this during the installation flow.. In Figure 1, we can see this choice available in the `optional settings` section of the installation prompt. ## No data collection We also want to be clear to users when an extension collects no data. To enable this, developers can explicitly indicate that their extension does not collect or transmit any data by specifying the `”none”` required permission in the manifest, as follows: { "manifest_version": 2, "name": "extension without data collection", "version": "1.0.0", "browser_specific_settings": { "gecko": { "id": "@extension-without-data-collection", **"data_collection_permissions":** **{** ******"required":** **["none"]** ******}** } }, "permissions": [ "bookmarks", "<all_urls>" ] } When a user attempts to install this extension, Firefox will show the usual installation prompt with the description of the required (API) permissions as well as a new description to indicate that the extension does not collect any data (see Figure 3). Figure 3: Installation prompt with no data transmission defined in the manifest The “no data collected” type is also listed in the “Permissions and data” tab of the extension in `about:addons` as shown in Figure 4. Figure 4: The “no data collected” permission is listed in about:addons **Note:** The `none` data type can only be required, and it cannot be used with other data types, including optional types. When that happens, Firefox will ignore the `none` type, and only consider the other data types (see next section for more information). In addition, Firefox will show a warning message intended to developers in `about:debugging` as shown in Figure 5. Figure 5: A warning message is displayed when the none type is combined with other data collection permissions ## Accessing the data permissions programmatically Extension developers can use the `browser.permissions` API (MDN docs) to interact with the optional data permissions. Specifically, the `getAll()` method would now return the list of granted optional data permissions as follows: await browser.permissions.getAll() { origins: ["<all_urls>"], permissions: ["bookmarks"], // In this case, the permission is granted. ​  **data_collection:** **["technicalAndInteraction"]** } Extension developers can also use the `browser.permissions.request()` API method (MDN docs) to get consent from users for ancillary data collection (defined in the `optional` list): `await browser.permissions.request({ data_collection: ["healthInfo"] });` This will show the following message to the Firefox user, giving them the choice to opt in to this data collection or not. ## Updates When an extension is updated, Firefox will only show the newly added required data permissions, unless it’s the special `none` data type because we don’t need to bother the user when the extension does not collect any data. This should behave like today for traditional permissions. ## Please try it out and let us know what you think! As I mentioned, we really want to make sure that the new data consent experience is easy for extension developers to adopt, and works as a drop-in replacement for any existing custom consent experiences you may have created. **Please test out this new experience with your own extensions in Firefox Nightly, and let us know what you think by posting on this****Mozilla Connect thread**

New Extension Data Consent Experience now available in Firefox Nightly In a previous blog post I ...

blog.mozilla.org/addons/2025/05/09/new-ex...

#developers #documentation #webextensions #data #consent

Result Details

0 0 0 0
New Extension Data Consent Experience now available in Firefox Nightly In a previous blog post I explained that we’re working to streamline the data consent experience for extensions and allow users to consent to sharing data with extensions directly in the Firefox add-on installation flow itself — rather than during a separate post-install experience and asking developers to build their own custom consent experiences, which is the case today. We are not changing our policies on data collection, nor are we changing how extensions can collect data. Our goal is to simplify how a developer can be compliant with our existing policies so that we can dramatically reduce the: 1. _development effort_ required to be compliant with Firefox data policies 2. _confusion_ users faces when installing extensions by providing a more consistent experience, giving them more confidence and control around the data collected or transmitted 3. _time_ it takes for an extension to be reviewed to ensure it’s compliant with our data collection policies I’m pleased to announce that the initial version of this feature is now available in Firefox Nightly version 139 (and later) for extension developers to test out and provide feedback. # We need your help! We want to make sure that the new data consent experience is easy for extension developers to adopt, and works as a drop-in replacement for any existing custom consent experiences you may have created. We also need to know if the data categories available to choose from are appropriate for your extension. **We encourage extension developers to test out this new experience with their own extensions in Firefox Nightly, and let us know what they think by posting on this****Mozilla Connect thread****, or reach out to me directly on****BlueSky****!** To install an extension that has this experience configured you will need to install it from a file. You’ll need to first set the `xpinstall.signatures.required` preference to `false` in `about:config`. # How it works Developers can specify what data they wish to collect or transmit in their extensions `manifest.json` file. This information will be parsed by the browser and shown to the user when they first install the extension. A user can then choose to accept or reject the data collection, just like they do with extension permissions. The developer can also specify that the extension collects no data. To standardize this information for both developers and end users, we have created categories based on data types that extensions might be using today. In line with our current policies, there are two types of data: _Personal_ _data_ , and _Technical and Interaction_ _data_. To provide feedback on these categories, please let us know via our research survey. Therefore, please note that these options are subject to change based on the feedback we receive during this initial phase. ## Personal data Personally identifiable information can be actively provided by the user or obtained through extension APIs. It includes, but is not limited to names, email addresses, search terms and browsing activity data, as well as access to and placement of cookies. **Data type**** ** Visible during install | **Data collection permission** Used in the manifest | **Definition / Examples** ---|---|--- **Personally identifying information** | `personallyIdentifyingInfo` | Examples: contact information like name and address, email, and phone number, as well as other identifying data such as ID numbers, voice or video recordings, age, demographic information, or biometric data. **Health information** | `healthInfo` | Examples: medical history, symptoms, diagnoses, treatments, procedures, or heart rate data. **Financial and payment information** | `financialAndPaymentInfo` | Examples: credit card numbers, transactions, credit ratings, financial statements, or payment history. **Authentication information** | `authenticationInfo` | Examples: passwords, usernames, personal identification numbers (PINs), security questions, and registration information for extensions that offer account-based services. **Personal communications** | `personalCommunications` | Examples: emails, text or chat messages, social media posts, and data from phone calls and conference calls. **Location** | `locationInfo` | Examples: region, GPS coordinates, or information about things near a user’s device. **Browsing activity** | `browsingActivity` | Information about the websites you visit, like specific URLs, domains, or categories of pages you view over time. **Website content** | `websiteContent` | Covers anything visible on a website — such as text, images, videos, and links — as well as anything embedded like cookies, audio, page headers, request, and response information. **Website activity** | `websiteActivity` | Examples: interactions and mouse and keyboard activity like scrolling, clicking, typing, and covers actions such as saving and downloading. **Search terms** | `searchTerms` | Search terms entered into search engines **Bookmarks** | `bookmarksInfo` | Information about Firefox bookmarks, including specific websites, bookmark names, and folder names. ## Technical and interaction data Technical data describes information about the environment the user is running, such as browser settings, platform information, and hardware properties. User interaction data includes how the user interacts with Firefox and the installed add-on, metrics for product improvement, and error information. **Data type**** ** Visible during install | **Data collection permission** Used in the manifest | **Definition** ---|---|--- **Technical and interaction data** | `technicalAndInteraction` | Examples: Device and browser info, extension usage and settings data, crash and error reports. # Specifying data types You specify data types your extension transmits in the `browser_specific_settings.gecko` key in the `manifest.json` file. As a reminder, our policies state that data transmission refers to any data that is collected, used, transferred, shared, or handled outside of the add-on or the local browser. ## Personal data Personal data permissions can either be _required_ or _optional_ (only technicalAndInteraction cannot be required, and this is documented later): "browser_specific_settings": {   "gecko": {     "data_collection_permissions": {       "required": [...],       "optional": [...]     }   } } The rest of this section describes each key in the `data_collection_permissions` object. ### Required data When types of data are specified in the required list, users must opt in to this data collection to use the extension. Users cannot opt-out, and Figure 1 gives an example of how it could look. If a user does not agree to the data collection the extension is not installed. Unlike today, this gives the user a chance to review the data collection requirements of an extension before it is installed in their browser. In the `manifest.json` file below, the developer specifies a single type of required data: `locationInfo`. {   "manifest_version": 2,   "name": "Example - Data collection with fallback",   "version": "1.0.0",   "permissions": [     "storage",     "management"   ],   "browser_specific_settings": {     "gecko": {    "id": "example-data-collection-with-fallback@test.mozilla.org",    "data_collection_permissions": {   "required": [            "locationInfo"   ],          "optional": [     "technicalAndInteraction"   ]       }     }   },   "background": {     "scripts": [       "background.js"     ]   },   "browser_action": {},   "options_ui": {     "page": "options/page.html"   } } This results in a new paragraph in the installation prompt (see Figure 1). The data permissions are also listed in about:addons as shown in Figure 2. Figure 1: Installation prompt with data types as specified in the manifest Figure 2: The data permissions are also listed in about:addons ### Optional data Optional data collection permissions can be specified using the `optional` list. These are not surfaced during installation (except `technicalAndInteraction`; see next section), and they are not granted by default. The extension can request the user opts in to this data collection after installation via a prompt, and the user can enable or disable this option data collection at any time in `about:addons` in the `Permissions and data` section of the extension settings. ## Technical and interaction data The `technicalAndInteraction` data type behaves differently compared to all others. This data permission can only be optional, but unlike other optional data collection options the user has the opportunity to enable or disable this during the installation flow.. In Figure 1, we can see this choice available in the `optional settings` section of the installation prompt. ## No data collection We also want to be clear to users when an extension collects no data. To enable this, developers can explicitly indicate that their extension does not collect or transmit any data by specifying the `”none”` required permission in the manifest, as follows: { "manifest_version": 2, "name": "extension without data collection", "version": "1.0.0", "browser_specific_settings": { "gecko": { "id": "@extension-without-data-collection", **"data_collection_permissions":** **{** ******"required":** **["none"]** ******}** } }, "permissions": [ "bookmarks", "<all_urls>" ] } When a user attempts to install this extension, Firefox will show the usual installation prompt with the description of the required (API) permissions as well as a new description to indicate that the extension does not collect any data (see Figure 3). Figure 3: Installation prompt with no data transmission defined in the manifest The “no data collected” type is also listed in the “Permissions and data” tab of the extension in `about:addons` as shown in Figure 4. Figure 4: The “no data collected” permission is listed in about:addons **Note:** The `none` data type can only be required, and it cannot be used with other data types, including optional types. When that happens, Firefox will ignore the `none` type, and only consider the other data types (see next section for more information). In addition, Firefox will show a warning message intended to developers in `about:debugging` as shown in Figure 5. Figure 5: A warning message is displayed when the none type is combined with other data collection permissions ## Accessing the data permissions programmatically Extension developers can use the `browser.permissions` API (MDN docs) to interact with the optional data permissions. Specifically, the `getAll()` method would now return the list of granted optional data permissions as follows: await browser.permissions.getAll() { origins: ["<all_urls>"], permissions: ["bookmarks"], // In this case, the permission is granted. ​  **data_collection:** **["technicalAndInteraction"]** } Extension developers can also use the `browser.permissions.request()` API method (MDN docs) to get consent from users for ancillary data collection (defined in the `optional` list): `await browser.permissions.request({ data_collection: ["healthInfo"] });` This will show the following message to the Firefox user, giving them the choice to opt in to this data collection or not. ## Updates When an extension is updated, Firefox will only show the newly added required data permissions, unless it’s the special `none` data type because we don’t need to bother the user when the extension does not collect any data. This should behave like today for traditional permissions. ## Please try it out and let us know what you think! As I mentioned, we really want to make sure that the new data consent experience is easy for extension developers to adopt, and works as a drop-in replacement for any existing custom consent experiences you may have created. **Please test out this new experience with your own extensions in Firefox Nightly, and let us know what you think by posting on this****Mozilla Connect thread**

New Extension Data Consent Experience now available in Firefox Nightly In a previous blog post I ...

blog.mozilla.org/addons/2025/05/09/new-ex...

#developers #documentation #webextensions #data #consent

Result Details

0 0 0 0
WebExtensions Support for Tab Groups Exciting news: with yesterday’s release of Firefox 138, tab groups are now available to all users! Tab groups have been a long standing feature request for users, so it’s wonderful to see this go out to everyone. New browser features are great, but what’s even better is when they’re backed by WebExtensions APIs that allow our amazing developer community to deeply integrate with those features. So, without further ado, let’s get into the new capabilities available in this release. ## What’s new in 138 Firefox 138 includes initial support for tab group management in WebExtensions APIs. More specifically, we’ve updated the Tabs API with a few new tricks that allow extension developers to create tab groups, modify a group’s membership, and ungroup tabs: * `tabs.group()` creates a new tab group that contains the specified tab(s) (MDN, bug 1959714) * `tabs.ungroup()` remove the specified tab(s) from their associated tab groups (MDN, bug 1959714) * `tabs.query()` can now be used to query for tabs with a given groupId (MDN, bug 1959715) * `Tab` objects now have a `groupId` property that identifies which group it’s in (if any) (MDN, bug 1959713) * The `tabs.onUpdated` event now emits updates for tab group membership changes (MDN, bug 1959716) ## Best practices As we learn more about how users interact with Tab Groups and how extensions integrate Tab Groups into their features, we’ll build out and expand on suggestions to help Add-on developers create better interactions for users. Here’s some suggestions we have so far. ### Moving tabs Be aware that changing a tab’s position in the tab strip may change its group membership, and that your users may not expect that moving tabs using your add-on will move tabs in or out of their tab groups. Use the `groupId` property on `Tab` instances to ensure that the tab is or is not grouped as expected. ### Reorganizing tabs Take tab groups into consideration when organizing tabs. For example, Firefox Multi-Account Containers has a “sort tabs by container” feature that reorganizes tabs so that tabs in the same container are grouped together. Since moving a tab can change its group membership, this could have unexpected consequences for users. To avoid this destructive operation, the add-on was updated to skip over grouped tabs. To avoid destructive changes to a user’s tab groups, we recommend reorganizing ungrouped tabs or tabs inside a window’s tab groups as opposed to organizing all tabs within a window. ## What’s coming In addition to the features added in 138, we are also looking to further expand tab group support with the introduction of the Tab Groups API in Firefox 139. This will address a few gaps in our tab group supporting including the ability to: * set a tab group’s title, color, and collapsed state (`tabGroups.update()`) * move an entire tab group (`tabGroups.move()`) * get info about a single tab group (`tabGroups.get()`) * get info about all tab groups (`tabGroups.query()`) * subscribe to specific tab group events (`onUpdated`, `onMoved`, `onCreated`, `onRemoved`) We’ve already landed the initial implementation of this API in Firefox 139 Beta, but we’d love to get feedback on the API design and capabilities from our development community. If you’re feeling adventurous, you can start experimenting with these new capabilities and sharing feedback with us today. We encourage you to share your experiences and thoughts with us on Discourse. If everything proceeds smoothly during the next beta cycle, we anticipate that the Tab Groups API will be available with the release of Firefox 139. We look forward to seeing what you build!

WebExtensions Support for Tab Groups Exciting news: with yesterday’s release of Firefox 138, ta...

blog.mozilla.org/addons/2025/04/30/webext...

#compatibility #developers #webextensions

Result Details

0 0 0 0
Original post on tenforward.social

Ok. Just culled ~20,000 of 25,000 #tumblr posts accumulated via #RSS over a month. I've gotta get to work on my own project applying basic statistics to this stuff. Think "reverse chronological + $all_your_own_filtering_and_sorting_and_bucketing". Not sure if I should do that within the confines […]

0 0 0 0