mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-25 20:01:50 +00:00
491 lines
12 KiB
JavaScript
491 lines
12 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
/**
|
|
* A Map of themes built in to the browser, alongwith a Map of collections those themes belong to. Params for the objects contained
|
|
* within the map:
|
|
*
|
|
* @param {string} id
|
|
* The unique identifier for the theme. The map's key.
|
|
* @param {string} version
|
|
* The theme add-on's semantic version, as defined in its manifest.
|
|
* @param {string} path
|
|
* Path to the add-on files.
|
|
* @param {string} [expiry]
|
|
* Date in YYYY-MM-DD format. Optional. If defined, the themes in the collection can no longer be
|
|
* used after this date, unless the user has permission to retain it.
|
|
* @param {string} [collection]
|
|
* The collection id that the theme is a part of. Optional.
|
|
*/
|
|
export const BuiltInThemeConfig = new Map([
|
|
[
|
|
"firefox-compact-light@mozilla.org",
|
|
{
|
|
version: "1.2",
|
|
path: "resource://builtin-themes/light/",
|
|
},
|
|
],
|
|
[
|
|
"firefox-compact-dark@mozilla.org",
|
|
{
|
|
version: "1.2",
|
|
path: "resource://builtin-themes/dark/",
|
|
},
|
|
],
|
|
[
|
|
"firefox-alpenglow@mozilla.org",
|
|
{
|
|
version: "1.4",
|
|
path: "resource://builtin-themes/alpenglow/",
|
|
},
|
|
],
|
|
[
|
|
"2022red-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022red/",
|
|
collection: "true-colors",
|
|
},
|
|
],
|
|
[
|
|
"2022orange-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022orange/",
|
|
collection: "true-colors",
|
|
},
|
|
],
|
|
[
|
|
"2022green-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022green/",
|
|
collection: "true-colors",
|
|
},
|
|
],
|
|
[
|
|
"2022yellow-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022yellow/",
|
|
collection: "true-colors",
|
|
},
|
|
],
|
|
[
|
|
"2022purple-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022purple/",
|
|
collection: "true-colors",
|
|
},
|
|
],
|
|
[
|
|
"2022blue-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022blue/",
|
|
collection: "true-colors",
|
|
},
|
|
],
|
|
[
|
|
"lush-soft-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021lush/soft/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"lush-balanced-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021lush/balanced/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"lush-bold-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021lush/bold/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"abstract-soft-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021abstract/soft/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"abstract-balanced-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021abstract/balanced/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"abstract-bold-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021abstract/bold/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"elemental-soft-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021elemental/soft/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"elemental-balanced-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021elemental/balanced/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"elemental-bold-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021elemental/bold/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"cheers-soft-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021cheers/soft/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"cheers-balanced-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021cheers/balanced/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"cheers-bold-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021cheers/bold/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"graffiti-soft-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021graffiti/soft/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"graffiti-balanced-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021graffiti/balanced/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"graffiti-bold-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021graffiti/bold/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"foto-soft-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021foto/soft/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"foto-balanced-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021foto/balanced/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"foto-bold-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2021foto/bold/",
|
|
collection: "life-in-color",
|
|
},
|
|
],
|
|
[
|
|
"playmaker-soft-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022playmaker/soft/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "playmaker-colorway-description",
|
|
groupName: "playmaker-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"playmaker-balanced-colorway@mozilla.org",
|
|
{
|
|
version: "1.1.2",
|
|
path: "resource://builtin-themes/colorways/2022playmaker/balanced/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "playmaker-colorway-description",
|
|
groupName: "playmaker-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"playmaker-bold-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022playmaker/bold/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "playmaker-colorway-description",
|
|
groupName: "playmaker-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"expressionist-soft-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022expressionist/soft/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "expressionist-colorway-description",
|
|
groupName: "expressionist-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"expressionist-balanced-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022expressionist/balanced/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "expressionist-colorway-description",
|
|
groupName: "expressionist-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"expressionist-bold-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022expressionist/bold/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "expressionist-colorway-description",
|
|
groupName: "expressionist-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"visionary-soft-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022visionary/soft/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "visionary-colorway-description",
|
|
groupName: "visionary-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"visionary-balanced-colorway@mozilla.org",
|
|
{
|
|
version: "1.1.2",
|
|
path: "resource://builtin-themes/colorways/2022visionary/balanced/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "visionary-colorway-description",
|
|
groupName: "visionary-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"visionary-bold-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022visionary/bold/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "visionary-colorway-description",
|
|
groupName: "visionary-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"activist-soft-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022activist/soft/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "activist-colorway-description",
|
|
groupName: "activist-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"activist-balanced-colorway@mozilla.org",
|
|
{
|
|
version: "1.1.2",
|
|
path: "resource://builtin-themes/colorways/2022activist/balanced/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "activist-colorway-description",
|
|
groupName: "activist-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"activist-bold-colorway@mozilla.org",
|
|
{
|
|
version: "1.1.2",
|
|
path: "resource://builtin-themes/colorways/2022activist/bold/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "activist-colorway-description",
|
|
groupName: "activist-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"dreamer-soft-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022dreamer/soft/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "dreamer-colorway-description",
|
|
groupName: "dreamer-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"dreamer-balanced-colorway@mozilla.org",
|
|
{
|
|
version: "1.1.2",
|
|
path: "resource://builtin-themes/colorways/2022dreamer/balanced/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "dreamer-colorway-description",
|
|
groupName: "dreamer-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"dreamer-bold-colorway@mozilla.org",
|
|
{
|
|
version: "1.1.1",
|
|
path: "resource://builtin-themes/colorways/2022dreamer/bold/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "dreamer-colorway-description",
|
|
groupName: "dreamer-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"innovator-soft-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022innovator/soft/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "innovator-colorway-description",
|
|
groupName: "innovator-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"innovator-balanced-colorway@mozilla.org",
|
|
{
|
|
version: "1.1.1",
|
|
path: "resource://builtin-themes/colorways/2022innovator/balanced/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "innovator-colorway-description",
|
|
groupName: "innovator-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
[
|
|
"innovator-bold-colorway@mozilla.org",
|
|
{
|
|
version: "1.1",
|
|
path: "resource://builtin-themes/colorways/2022innovator/bold/",
|
|
collection: "independent-voices",
|
|
l10nId: {
|
|
description: "innovator-colorway-description",
|
|
groupName: "innovator-colorway-name",
|
|
},
|
|
},
|
|
],
|
|
]);
|
|
|
|
const ColorwayCollections = [
|
|
{
|
|
id: "life-in-color",
|
|
expiry: "2022-02-08",
|
|
},
|
|
{
|
|
id: "true-colors",
|
|
expiry: "2022-05-03",
|
|
},
|
|
{
|
|
id: "independent-voices",
|
|
expiry: "2023-01-17",
|
|
},
|
|
];
|
|
|
|
export function _applyColorwayConfig(collections) {
|
|
const collectionsSorted = collections
|
|
.map(({ expiry, ...rest }) => ({
|
|
expiry: new Date(expiry),
|
|
...rest,
|
|
}))
|
|
.sort((a, b) => a.expiry - b.expiry);
|
|
const collectionsMap = collectionsSorted.reduce((map, c) => {
|
|
map.set(c.id, c);
|
|
return map;
|
|
}, new Map());
|
|
for (let [key, value] of BuiltInThemeConfig.entries()) {
|
|
if (value.collection) {
|
|
const collectionConfig = collectionsMap.get(value.collection);
|
|
BuiltInThemeConfig.set(key, {
|
|
...value,
|
|
expiry: collectionConfig.expiry,
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
_applyColorwayConfig(ColorwayCollections);
|