Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions src/components/PolicyCompat.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
---
import allPolicies from "../data/policies.json";

type SupportEntry = {
version_added?: string;
version_removed?: string;
notes?: string;
};

type Policy = {
cck2_equivalent?: string[];
compatibility?: Record<string, SupportEntry | SupportEntry[]>;
preferences_affected?: string[];
};

const policies = allPolicies as Record<string, Policy>;

interface Props {
policyId: string;
}

const { policyId } = Astro.props as Props;
const entry = policies[policyId];

if (!entry) {
throw new Error(`PolicyCompat: No entry found for "${policyId}"`);
}

const cck2 = entry.cck2_equivalent ?? [];
const compat = entry.compatibility ?? {};
const preferences = entry.preferences_affected ?? [];

const browserName: Record<string, string> = {
firefox: "Firefox",
firefox_esr: "Firefox ESR",
};

function normalizeSupport(v: SupportEntry | SupportEntry[]) {
return Array.isArray(v) ? v : [v];
}
---

<style>
.policy-meta-section {
margin-block-start: 2.5rem;
}
.compat-table {
width: 100%;
display: table;
}

.compat-table th,
.compat-table td {
border-bottom: 1px solid #ddd;
}
.compat-table th {
background: var(--color-bg-alt, #f5f5f5);
}

.pref-list ul {
margin: 0.35rem 0 1rem 0;
padding-left: 1.25rem;
}
</style>

<section class="policy-meta-section">
<h3><code>{policyId}</code></h3>
<table class="compat-table">
<thead>
<tr>
<th>Browser</th>
<th>Version added</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
{
Object.entries(compat).map(([browserId, supportData]) => {
const browserLabel = browserName[browserId] ?? browserId;
const statements = normalizeSupport(supportData);

return statements.map((statement) => (
<tr>
<td>{browserLabel}</td>
<td>{statement.version_added ?? "—"}</td>
<td>{statement.notes ?? ""}</td>
</tr>
));
})
}
</tbody>
</table>
<dl>
<dt>CCK2 equivalent:</dt>
<dd>
{
cck2.length === 0 ? (
<p>None</p>
) : (
<ul>
{cck2.map((item) => (
<li>
<code>{item}</code>
</li>
))}
</ul>
)
}
</dd>
<dt>Preferences affected:</dt>
<dd>
{
preferences.length === 0 ? (
<p>None</p>
) : (
<ul>
{preferences.map((pref) => (
<li>
<code>{pref}</code>
</li>
))}
</ul>
)
}
</dd>
</dl>
</section>
8 changes: 8 additions & 0 deletions src/content/docs/reference/policies/Certificates.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,11 @@ The following policies allow for configuring certificates in Firefox:

- **[Install](/reference/policies/certificates_install/):** Install certificates into the Firefox certificate store
- **[ImportEnterpriseRoots](/reference/policies/certificates_importenterpriseroots/):** Trust certificates that have been added to the operating system certificate store by a user or administrator.

## Compatibility

import PolicyCompat from "../../../../components/PolicyCompat.astro";

<PolicyCompat policyId={"Certificates_Install"} />

<PolicyCompat policyId={"Certificates_ImportEnterpriseRoots"} />
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,11 @@ Trust certificates that have been added to the operating system certificate stor
> [!NOTE] This policy only works on Windows and macOS.
> For Linux discussion, see [bug 1600509](https://bugzilla.mozilla.org/show_bug.cgi?id=1600509).

**Compatibility:** Firefox 60, Firefox ESR 60 (macOS support in Firefox 63, Firefox ESR 68)\
**CCK2 Equivalent:** N/A\
**Preferences Affected:** `security.enterprise_roots.enabled`
## Compatibility

import PolicyCompat from "../../../../components/PolicyCompat.astro";

<PolicyCompat policyId={"Certificates_Install"} />

## Windows (GPO)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: "Certificates: Install"
description: "Install certificates into the Firefox certificate store."
category: "Certificate management"
policy-id: "Certificates_Install"
---

Install certificates into the Firefox certificate store.
Expand Down Expand Up @@ -29,9 +30,11 @@ Certificates are installed using the trust string `CT,CT,`.

Binary (DER) and ASCII (PEM) certificates are both supported.

**Compatibility:** Firefox 64, Firefox ESR 64\
**CCK2 Equivalent:** `certs.ca`\
**Preferences Affected:** N/A
## Compatibility

import PolicyCompat from "../../../../components/PolicyCompat.astro";

<PolicyCompat policyId={"Certificates_Install"} />

## Windows (GPO)

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/reference/policies/Cookies.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Configure cookie preferences.
- `Default`: determines whether cookies are accepted at all. (_Deprecated_. Use `Behavior` instead)
- `AcceptThirdParty` determines how third-party cookies are handled. (_Deprecated_. Use `Behavior` instead)
- `RejectTracker` only rejects cookies for trackers. (_Deprecated_. Use `Behavior` instead)
- `ExpireAtSessionEnd` determines when cookies expire. (_Deprecated_. Use [`SanitizeOnShutdown`](/reference/policies/sanitizeonshutdown_selective_) instead)
- `ExpireAtSessionEnd` determines when cookies expire. (_Deprecated_. Use [`SanitizeOnShutdown`](/reference/policies/sanitizeonshutdown_selective) instead)

## Windows (GPO)

Expand Down
12 changes: 12 additions & 0 deletions src/content/docs/reference/policies/SearchEngines.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,15 @@ As of Firefox 139, these policies are available in all Firefox release channels:
- **[Default](/reference/policies/searchengines_default/):** Set the default search engine.
- **[PreventInstalls](/reference/policies/searchengines_preventinstalls/):** Prevent installing search engines from webpages.
- **[Remove](/reference/policies/searchengines_remove/):** Hide built-in search engines.

## Compatibility

import PolicyCompat from "../../../../components/PolicyCompat.astro";

<PolicyCompat policyId={"SearchEngines_Add"} />

<PolicyCompat policyId={"SearchEngines_Default"} />

<PolicyCompat policyId={"SearchEngines_PreventInstalls"} />

<PolicyCompat policyId={"SearchEngines_Remove"} />
8 changes: 5 additions & 3 deletions src/content/docs/reference/policies/SearchEngines_Add.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@ Add new search engines.
Although there are five engines available in the ADMX template, there is no maximum number that can be specified.
To add more in the ADMX template, you can duplicate the XML.

**Compatibility:** Firefox 139, Firefox ESR 60 (POST support in Firefox ESR 68, Encoding support in Firefox 91)\
**CCK2 Equivalent:** `searchplugins`\
**Preferences Affected:** N/A
## Compatibility

import PolicyCompat from "../../../../components/PolicyCompat.astro";

<PolicyCompat policyId={"SearchEngines_Add"} />

## Values

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ category: "Search"

Set the default search engine.

**Compatibility:** Firefox 139, Firefox ESR 60\
**CCK2 Equivalent:** `defaultSearchEngine`\
**Preferences Affected:** N/A
## Compatibility

import PolicyCompat from "../../../../components/PolicyCompat.astro";

<PolicyCompat policyId={"SearchEngines_Default"} />

## Windows (GPO)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ category: "Search"

Prevent installing search engines from webpages.

**Compatibility:** Firefox 139, Firefox ESR 60\
**CCK2 Equivalent:** `disableSearchEngineInstall`\
**Preferences Affected:** N/A
## Compatibility

import PolicyCompat from "../../../../components/PolicyCompat.astro";

<PolicyCompat policyId={"SearchEngines_PreventInstalls"} />

## Windows (GPO)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ category: "Search"

Hide built-in search engines.

**Compatibility:** Firefox 139, Firefox ESR 60.2\
**CCK2 Equivalent:** `removeDefaultSearchEngines` (removed all built-in engines)\
**Preferences Affected:** N/A
## Compatibility

import PolicyCompat from "../../../../components/PolicyCompat.astro";

<PolicyCompat policyId={"SearchEngines_Remove"} />

## Windows (GPO)

Expand Down
Loading