Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
d1cf734
Consistency: put shorthand inclusion in description (#45536)
estelle Sep 14, 2026
c9f8123
Fix implied second keyword for single-keyword position-area values (#…
RizgarOzan Sep 14, 2026
6354422
Consistent value intro statements #6 (#45588)
estelle Sep 14, 2026
0451ba5
updated the line-clamp property to include new values (#45007)
dletorey Sep 14, 2026
9c560a9
Editorial review: Document RTCPeerConnection() constructor alwaysNego…
chrisdavidmills Sep 14, 2026
c1a5060
Document getBBox() options and update examples (#45581)
pepelsbey Sep 14, 2026
31f5942
45178 global timeline scope ff release (#45566)
dletorey Sep 14, 2026
f802245
Document SubtleCrypto.encrypt plaintext length limit for different al…
Josh-Cena Sep 14, 2026
4d784d8
Add PerformanceResourceTiming.contentEncoding page (#45675)
tunetheweb Sep 14, 2026
57ea7ee
FF156 ExprFeat: Scoped custom element registries update (#45690)
hamishwillee Sep 14, 2026
8f9f9d4
ViewTimeline() index param only takes absolute value and percentages …
hamishwillee Sep 14, 2026
f397956
Explain why col backgrounds can be hidden by cell backgrounds (#44980)
quepasaquepasa Sep 14, 2026
84058a6
Animation See also: link to module pages (#45702)
estelle Sep 14, 2026
ef40500
added the named-feature function and features to @supports at-rule (#…
dletorey Sep 14, 2026
9a24a8a
build(deps-dev): bump yaml from 2.9.0 to 2.9.1 (#45703)
dependabot[bot] Sep 14, 2026
cfc67e5
build(deps-dev): bump @mdn/fred from 2.9.0 to 2.9.1 (#45704)
dependabot[bot] Sep 14, 2026
6eb50f0
build(deps-dev): bump lefthook from 2.1.12 to 2.1.14 (#45705)
dependabot[bot] Sep 14, 2026
e54bce0
build(deps-dev): bump cspell from 10.3.0 to 10.3.1 (#45706)
dependabot[bot] Sep 14, 2026
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
1 change: 1 addition & 0 deletions .vscode/dictionaries/terms-abbreviations.txt
Original file line number Diff line number Diff line change
Expand Up @@ -623,6 +623,7 @@ RFCOMM
RGTC
romcoms
roundoff
RSAES-OAEP
RSAOAEP
RSASSA
RTCWEB
Expand Down

Large diffs are not rendered by default.

20 changes: 18 additions & 2 deletions files/en-us/mozilla/firefox/experimental_features/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ You can alternatively use the {{cssxref("animation-timeline/scroll")}} functiona

For more information, see [Firefox bug 1807685](https://bugzil.la/1807685), [Firefox bug 1804573](https://bugzil.la/1804573), [Firefox bug 1809005](https://bugzil.la/1809005), [Firefox bug 1676791](https://bugzil.la/1676791), [Firefox bug 1754897](https://bugzil.la/1754897), [Firefox bug 1817303](https://bugzil.la/1817303), and [Firefox bug 1737918](https://bugzil.la/1737918).

The {{cssxref('timeline-scope')}}, {{cssxref('animation-range-start')}} and {{cssxref('animation-range-end')}} properties (and the {{cssxref('animation-range')}} shorthand property) are not yet supported. For more information, see [Firefox bug 1676779](https://bugzil.la/1676779).
The {{cssxref('animation-range-start')}} and {{cssxref('animation-range-end')}} properties (and the {{cssxref('animation-range')}} shorthand property) are not yet supported. For more information, see [Firefox bug 1676779](https://bugzil.la/1676779).

| Release channel | Version added | Enabled by default? |
| ----------------- | ------------- | ------------------- |
Expand Down Expand Up @@ -446,6 +446,20 @@ The {{cssxref("view-timeline")}} shorthand property now supports the {{cssxref("
| Beta | 155 | No |
| Release | 155 | No |

- `layout.css.scroll-driven-animations.enabled`
- : Set to `true` to enable.

### `timeline-scope` names are now global by default

The default behavior of named timeline scoping has been updated to be global. This can be scoped to elements, and their subtree, using the {{cssxref("timeline-scope")}} CSS property and the value of either the {{cssxref("scroll-timeline-name")}} or {{cssxref("view-timeline-name")}} ([Firefox bug 2024012](https://bugzil.la/2024012)).

| Release channel | Version added | Enabled by default? |
| ----------------- | ------------- | ------------------- |
| Nightly | 155 | Yes |
| Developer Edition | 155 | No |
| Beta | 155 | No |
| Release | 155 | No |

- `layout.css.scroll-driven-animations.enabled`
- : Set to `true` to enable.

Expand Down Expand Up @@ -561,11 +575,13 @@ This can be used to avoid collisions where multiple web components declare eleme
The implementation includes:

- `customElementRegistry` property on {{domxref("Document")}}, {{domxref("Element")}}, and {{domxref("ShadowRoot")}}.
The [`CustomElementRegistry()` constructor](/en-US/docs/Web/API/CustomElementRegistry/CustomElementRegistry) creates a new `CustomElementRegistry` object for scoped usage.

([Firefox bug 2018900](https://bugzil.la/2018900)).

| Release channel | Version added | Enabled by default? |
| ----------------- | ------------- | ------------------- |
| Nightly | 150 | No |
| Nightly | 156 | Yes |
| Developer Edition | 150 | No |
| Beta | 150 | No |
| Release | 150 | No |
Expand Down
4 changes: 4 additions & 0 deletions files/en-us/mozilla/firefox/releases/155/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,3 +190,7 @@ You can find more such features on the [Experimental features](/en-US/docs/Mozil
- **The `MathMLAnchorElement` interface**: `mathml.a.element.enabled`

The MathML [`<a>`](/en-US/docs/Web/MathML/Reference/Element/a) element is now correctly represented in the DOM by the [`MathMLAnchorElement`](/en-US/docs/Web/API/MathMLAnchorElement) interface rather than the generic [`MathMLElement`](/en-US/docs/Web/API/MathMLElement) interface. ([Firefox bug 2059312](https://bugzil.la/2059312)).

- **`timeline-scope` names are now global by default**: `layout.css.scroll-driven-animations.enabled`

The default behavior of named timeline scoping has been updated to be global. This can be scoped to elements, and their subtree, using the {{cssxref("timeline-scope")}} CSS property and the value of either the {{cssxref("scroll-timeline-name")}} or {{cssxref("view-timeline-name")}} ([Firefox bug 2024012](https://bugzil.la/2024012)).
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ browser-compat: api.CustomElementRegistry.CustomElementRegistry

The **`CustomElementRegistry()`** constructor creates a new {{domxref("CustomElementRegistry")}} object for scoped usage.

The constructor is specifically used for creating scoped registries that limit [custom element](/en-US/docs/Web/API/Web_components/Using_custom_elements) definitions to a particular scope, such as an element or {{domxref("ShadowRoot")}}.
The constructor is specifically used for creating [scoped custom element registries](/en-US/docs/Web/API/Web_components/Using_custom_elements#scoped_custom_element_registries) that limit [custom element](/en-US/docs/Web/API/Web_components/Using_custom_elements) definitions to a particular scope, such as an element or {{domxref("ShadowRoot")}}.

> [!NOTE]
> The global `CustomElementRegistry` object associated with a {{domxref("Window")}} is not created using this constructor; it is automatically created when the window is set up, and is accessible via the {{domxref("window.customElements")}} property.
Expand Down Expand Up @@ -78,6 +78,6 @@ console.log(shadow.querySelector("my-element").textContent);

## See also

- [Using custom elements](/en-US/docs/Web/API/Web_components/Using_custom_elements)
- [Scoped custom element registries](/en-US/docs/Web/API/Web_components/Using_custom_elements#scoped_custom_element_registries) in [Using custom elements](/en-US/docs/Web/API/Web_components/Using_custom_elements)
- {{domxref("CustomElementRegistry.initialize()")}}
- {{domxref("CustomElementRegistry.define()")}}
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,4 @@ console.log(newDoc.customElementRegistry); // null
- {{domxref("Element.customElementRegistry")}}
- {{domxref("CustomElementRegistry")}}
- {{domxref("window.customElements")}}
- [Using custom elements](/en-US/docs/Web/API/Web_components/Using_custom_elements)
- [Scoped custom element registries](/en-US/docs/Web/API/Web_components/Using_custom_elements#scoped_custom_element_registries) in [Using custom elements](/en-US/docs/Web/API/Web_components/Using_custom_elements)
2 changes: 1 addition & 1 deletion files/en-us/web/api/element/customelementregistry/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,4 @@ console.log(el.customElementRegistry === myRegistry); // true
- {{domxref("Document.customElementRegistry")}}
- {{domxref("ShadowRoot.customElementRegistry")}}
- {{domxref("CustomElementRegistry")}}
- [Using custom elements](/en-US/docs/Web/API/Web_components/Using_custom_elements)
- [Scoped custom element registries](/en-US/docs/Web/API/Web_components/Using_custom_elements#scoped_custom_element_registries) in [Using custom elements](/en-US/docs/Web/API/Web_components/Using_custom_elements)
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
---
title: "PerformanceResourceTiming: contentEncoding property"
short-title: contentEncoding
slug: Web/API/PerformanceResourceTiming/contentEncoding
page-type: web-api-instance-property
status:
- experimental
browser-compat: api.PerformanceResourceTiming.contentEncoding
---

{{APIRef("Performance API")}}{{AvailableInWorkers}}{{SeeCompatTable}}

The **`contentEncoding`** read-only property of the {{domxref("PerformanceResourceTiming")}} interface is a string indicating the content encoding of the fetched resource.

The content type is extracted from the {{httpheader("Content-Encoding")}} HTTP header sent in the resource's fetch response.

## Value

A string indicating the content-encoding of the content.
This may be one of the following values:

- `gzip`
- : A format using the [Lempel-Ziv coding](https://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77) (LZ77), with a 32-bit CRC.
This is the original format of the UNIX _gzip_ program.
The HTTP/1.1 standard also recommends that the servers supporting this content-encoding should recognize `x-gzip` as an alias, for compatibility purposes.
- `compress`
- : A format using the [Lempel-Ziv-Welch](https://en.wikipedia.org/wiki/LZW) (LZW) algorithm.
The value name was taken from the UNIX _compress_ program, which implemented this algorithm.
Like the compress program, which has disappeared from most UNIX distributions, this content-encoding is not used by many browsers today, partly because of a patent issue (it expired in 2003).
- `deflate`
- : Using the [zlib](https://en.wikipedia.org/wiki/Zlib) structure (defined in {{rfc(1950)}}) with the [deflate](https://en.wikipedia.org/wiki/Deflate) compression algorithm (defined in {{rfc(1951)}}).
- `br`
- : A format using the {{glossary("Brotli compression","Brotli")}} algorithm structure (defined in {{rfc(7932)}}).
- `zstd`
- : A format using the {{glossary("Zstandard compression","Zstandard")}} algorithm structure (defined in {{rfc(8878)}}).
- `dcb` {{experimental_inline}}
- : A format that uses the [Dictionary-Compressed Brotli algorithm](https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-compression-dictionary#name-dictionary-compressed-brotl). See [Compression Dictionary Transport](/en-US/docs/Web/HTTP/Guides/Compression_dictionary_transport).
- `dcz` {{experimental_inline}}
- : A format that uses the [Dictionary-Compressed Zstandard algorithm](https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-compression-dictionary#name-dictionary-compressed-zstan). See [Compression Dictionary Transport](/en-US/docs/Web/HTTP/Guides/Compression_dictionary_transport).

## Examples

### Filtering resources

The `contentEncoding` property can be used to get specific resource timing entries only; for example, only those related to [Compression Dictionary Transport](/en-US/docs/Web/HTTP/Guides/Compression_dictionary_transport).

The following example uses a {{domxref("PerformanceObserver")}} to notify of new `resource` performance entries as they are recorded in the browser's performance timeline.
The `buffered` option is used for accessing entries from before the observer creation.

```js
const observer = new PerformanceObserver((list) => {
const dictionaryCompressedResources = list
.getEntries()
.filter(
(entry) =>
entry.contentEncoding === "dcb" || entry.contentEncoding === "dcz",
);
console.log(dictionaryCompressedResources);
});

observer.observe({ type: "resource", buffered: true });
```

The following example uses {{domxref("Performance.getEntriesByType()")}}, which only shows `resource` performance entries present in the browser's performance timeline at the time you call the method.

```js
const dictionaryCompressedResources = performance
.getEntriesByType("resource")
.filter(
(entry) =>
entry.contentEncoding === "dcb" || entry.contentEncoding === "dcz",
);
console.log(dictionaryCompressedResources);
```

## Specifications

{{Specifications}}

## Browser compatibility

{{Compat}}
2 changes: 2 additions & 0 deletions files/en-us/web/api/performanceresourcetiming/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ Additionally, this interface exposes the following properties containing more in

- {{domxref("PerformanceResourceTiming.contentType")}} {{ReadOnlyInline}}
- : A string representing a minimized and standardized version of the MIME-type of the fetched resource.
- {{domxref("PerformanceResourceTiming.contentEncoding")}} {{ReadOnlyInline}} {{Experimental_Inline}}
- : A string representing the {{httpheader("Content-Encoding")}} of the fetched resource.
- {{domxref('PerformanceResourceTiming.decodedBodySize')}} {{ReadOnlyInline}}
- : A number that is the size (in octets) received from the fetch (HTTP or cache) of the message body, after removing any applied content encoding.
- {{domxref("PerformanceResourceTiming.deliveryType")}} {{ReadOnlyInline}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ This can be useful for back-channel content, such as images, file transfer, text

If the new data channel is the first one added to the connection, renegotiation is started by delivering a {{DOMxRef("RTCPeerConnection/negotiationneeded_event", "negotiationneeded")}} event.

You can avoid this renegotiation by setting `alwaysNegotiateDataChannels` to `true` in the {{domxref("RTCPeerConnection.RTCPeerConnection", "RTCPeerConnection()")}} constructor. This specifies that the application negotiates data channels in the {{glossary("SDP")}} offer before creating an {{domxref("RTCDataChannel")}}. As a result, you don't need to create a data channel before your first `createOffer()` call, or accept a second renegotiation.

## Syntax

```js-nolint
Expand Down
2 changes: 2 additions & 0 deletions files/en-us/web/api/rtcpeerconnection/createoffer/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ The SDP offer includes information about any {{domxref("MediaStreamTrack")}} obj

Add tracks and create data channels before calling `createOffer()`. The offer describes the connection as it is when `createOffer()` is called, so any changes made afterwards are not included in the negotiation (the {{domxref("RTCPeerConnection/negotiationneeded_event", "negotiationneeded")}} event is fired if you make changes that requires a new offer).

You can avoid the renegotiation triggered by creating a data channel after your first `createOffer()` call by setting `alwaysNegotiateDataChannels` to `true` in the {{domxref("RTCPeerConnection.RTCPeerConnection", "RTCPeerConnection()")}} constructor. This specifies that the application negotiates data channels in the {{glossary("SDP")}} offer before creating an {{domxref("RTCDataChannel")}}.

## Syntax

```js-nolint
Expand Down
4 changes: 4 additions & 0 deletions files/en-us/web/api/rtcpeerconnection/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,10 @@ Listen to these events using {{domxref("EventTarget.addEventListener", "addEvent
- : Sent when a {{domxref("MediaStream")}} is removed from the connection.
Instead of listening for this obsolete event, you should listen for {{domxref("MediaStream.removetrack_event", "removetrack")}} events on each stream.

## Examples

See [WebRTC samples > `RTCPeerConnection`](https://webrtc.github.io/samples/#peerconnection) for example code.

## Specifications

{{Specifications}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,13 @@ new RTCPeerConnection(configuration)

- `configuration` {{optional_inline}}
- : An object providing options to configure the new connection:
- `alwaysNegotiateDataChannels` {{optional_inline}}
- : A boolean value that, if set to `true`, specifies that the application will negotiate data channels in the {{glossary("SDP")}} offer before creating an {{domxref("RTCDataChannel")}}. This also negotiates the data `m=` section before any audio or video `m=` sections. The data `m=` section is also used as the "offerer-tagged" `m=` section for the BUNDLE. Defaults to `false`.

The advantage of setting `alwaysNegotiateDataChannels` to `true` is that you don't need to create a data channel before your first {{domxref("RTCPeerConnection.createOffer()")}} call, or accept a second renegotiation when {{domxref("RTCPeerConnection.negotiationneeded_event", "negotiationneeded")}} is fired.

> [!NOTE]
> Once set, the value of `alwaysNegotiateDataChannels` can't be changed after the connection is created. Calling {{domxref("RTCPeerConnection.setConfiguration()")}} with a different value will throw an `InvalidModificationError`.
- `bundlePolicy` {{optional_inline}}
- : Specifies how to handle negotiation of candidates when the remote peer is not compatible with the [SDP BUNDLE standard](https://datatracker.ietf.org/doc/rfc8843/). If the remote endpoint is BUNDLE-aware, all media tracks and data channels are bundled onto a single transport at the completion of negotiation, regardless of policy used, and any superfluous transports that were created initially are closed at that point.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ None ({{jsxref("undefined")}}).
This prevents successful login to the server.
- `InvalidModificationError` {{domxref("DOMException")}}
- : Thrown if the `configuration` includes changed identity information, but the connection already has identity information specified.
This happens if `configuration.peerIdentity` or `configuration.certificates` are set and their values differ from the current configuration.
This happens if `configuration.alwaysNegotiateDataChannels`, `configuration.peerIdentity`, or `configuration.certificates` are set and their values differ from the current configuration.
This may also be thrown if there are changes to `configuration.bundlePolicy` or `configuration.rtcpMuxPolicy`, or to `configuration.iceCandidatePoolSize` when {{domxref("RTCPeerConnection.setLocalDescription()")}} has already been called.
- `InvalidStateError` {{domxref("DOMException")}}
- : Thrown if the {{domxref("RTCPeerConnection")}} is closed.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,5 +65,5 @@ console.log(shadow.querySelector("my-element").textContent);
- {{domxref("CustomElementRegistry")}}
- {{domxref("CustomElementRegistry.CustomElementRegistry()", "CustomElementRegistry()")}} constructor
- {{domxref("Element.attachShadow()")}}
- [Using custom elements](/en-US/docs/Web/API/Web_components/Using_custom_elements)
- [Scoped custom element registries](/en-US/docs/Web/API/Web_components/Using_custom_elements#scoped_custom_element_registries) in [Using custom elements](/en-US/docs/Web/API/Web_components/Using_custom_elements)
- [Using shadow DOM](/en-US/docs/Web/API/Web_components/Using_shadow_DOM)
Loading
Loading