Skip to content
Open
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
95 changes: 93 additions & 2 deletions source
Original file line number Diff line number Diff line change
Expand Up @@ -2794,9 +2794,12 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-copydatablockbytes">CopyDataBlockBytes</dfn> abstract operation</li>
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-createbytedatablock">CreateByteDataBlock</dfn> abstract operation</li>
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-createdataproperty">CreateDataProperty</dfn> abstract operation</li>
<li>The <dfn data-x-href="https://tc39.github.io/ecma262/#sec-daylight-saving-time-adjustment">DaylightSavingsTA</dfn> abstract operation</li>
<li>The <dfn data-x-href="https://tc39.github.io/ecma402/#sec-defaulttimezone">DefaultTimeZone</dfn> abstract operation</li>
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-detacharraybuffer">DetachArrayBuffer</dfn> abstract operation</li>
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-enumerableownpropertynames">EnumerableOwnPropertyNames</dfn> abstract operation</li>
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-finishdynamicimport">FinishDynamicImport</dfn> abstract operation</li>
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-local-time-zone-adjustment">LocalTZA</dfn> abstract operation</li>
<li>The <dfn data-x="js-OrdinaryFunctionCreate" data-x-href="https://tc39.es/ecma262/#sec-ordinaryfunctioncreate">OrdinaryFunctionCreate</dfn> abstract operation</li>
<li>The <dfn data-x="js-Get" data-x-href="https://tc39.es/ecma262/#sec-get-o-p">Get</dfn> abstract operation</li>
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-getactivescriptormodule">GetActiveScriptOrModule</dfn> abstract operation</li>
Expand Down Expand Up @@ -2868,8 +2871,12 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
<li>The <dfn data-x="js-HostGetImportMetaProperties" data-x-href="https://tc39.es/proposal-import-meta/#sec-hostgetimportmetaproperties">HostGetImportMetaProperties</dfn> abstract operation</li>
</ul>

<p>Users agents that support JavaScript must also implement <cite>ECMAScript
Internationalization API</cite>. <ref spec=JSINTL></p>
<p>Users agents that support JavaScript must also implement the <cite>ECMAScript
Internationalization API</cite>. <ref spec=JSINTL> The following term is defined there, and used in this specification:</p>

<ul class="brief">
<li>The <dfn data-x-href="https://tc39.es/ecma402/#sec-intl.datetimeformat"><code>Intl.DateTimeFormat()</code></dfn> constructor</li>
</ul>
</dd>


Expand Down Expand Up @@ -15163,6 +15170,7 @@ interface <dfn>HTMLStyleElement</dfn> : <span>HTMLElement</span> {
<dd><code data-x="handler-window-onbeforeunload">onbeforeunload</code></dd>
<dd><code data-x="handler-window-onhashchange">onhashchange</code></dd>
<dd><code data-x="handler-window-onlanguagechange">onlanguagechange</code></dd>
<dd><code data-x="handler-window-ontimezonechange">ontimezonechange</code></dd>
<dd><code data-x="handler-window-onmessage">onmessage</code></dd>
<dd><code data-x="handler-window-onmessageerror">onmessageerror</code></dd>
<dd><code data-x="handler-window-onoffline">onoffline</code></dd>
Expand Down Expand Up @@ -90250,6 +90258,26 @@ import "https://example.com/foo/../module2.mjs";</code></pre>
microtask checkpoint</span> algorithm.</p>


<h5>Time zone changes</h5>

<p>JavaScript programs can observe the current time zone. <code>Date</code> uses the time zone
through the <span>LocalTZA</span> and <span>DaylightSavingsTA</span> algorithms.
<code>Intl.DateTimeFormat</code> uses the time zone in its <span>DefaultTimeZone</span> algorithm.
Although it is not explicitly stated in the JavaScript specification, user agents may update the
current time zone over the execution of a page as the user's time zone changes, providing
different results for these algorithms over time.</p>

<p>When a UA has a new time zone to present to JavaScript, as would be observable by any of
those algorithms, the user agent must
<span>queue a task</span> to <span data-x="concept-event-fire">fire an event</span> named <code
data-x="event-timezonechange">timezonechange</code> at the <code>Window</code> or
<code>WorkerGlobalScope</code> object, if no such task is already queued. The new time zone must
be observable by JavaScript at the point the task begins to run, and it must not be observable
earlier.</p>

<p>The <span>task source</span> for this <span data-x="concept-task">task</span> is the
<span>DOM manipulation task source</span>.</p>

<h5>Queuing tasks</h5>

<p>To <dfn data-export="">queue a task</dfn> on a <span>task source</span> <var>source</var>,
Expand Down Expand Up @@ -92052,6 +92080,7 @@ typedef <span>OnBeforeUnloadEventHandlerNonNull</span>? <dfn>OnBeforeUnloadEvent
<tr><td><dfn><code data-x="handler-window-onbeforeunload">onbeforeunload</code></dfn> <td> <code data-x="event-beforeunload">beforeunload</code>
<tr><td><dfn><code data-x="handler-window-onhashchange">onhashchange</code></dfn> <td> <code data-x="event-hashchange">hashchange</code> <!-- new -->
<tr><td><dfn><code data-x="handler-window-onlanguagechange">onlanguagechange</code></dfn> <td> <code data-x="event-languagechange">languagechange</code> <!-- new -->
<tr><td><dfn><code data-x="handler-window-ontimezonechange">ontimezonechange</code></dfn> <td> <code data-x="event-timezonechange">timezonechange</code> <!-- new -->
<tr><td><dfn><code data-x="handler-window-onmessage">onmessage</code></dfn> <td> <code data-x="event-message">message</code> <!-- new for postMessage -->
<tr><td><dfn><code data-x="handler-window-onmessageerror">onmessageerror</code></dfn> <td> <code data-x="event-messageerror">messageerror</code> <!-- new for SAB -->
<tr><td><dfn><code data-x="handler-window-onoffline">onoffline</code></dfn> <td> <code data-x="event-offline">offline</code> <!-- new -->
Expand Down Expand Up @@ -92190,6 +92219,7 @@ interface mixin <dfn>WindowEventHandlers</dfn> {
attribute <span>OnBeforeUnloadEventHandler</span> <span data-x="handler-window-onbeforeunload">onbeforeunload</span>;
attribute <span>EventHandler</span> <span data-x="handler-window-onhashchange">onhashchange</span>;
attribute <span>EventHandler</span> <span data-x="handler-window-onlanguagechange">onlanguagechange</span>;
attribute <span>EventHandler</span> <span data-x="handler-window-ontimezonechange">ontimezonechange</span>;
attribute <span>EventHandler</span> <span data-x="handler-window-onmessage">onmessage</span>;
attribute <span>EventHandler</span> <span data-x="handler-window-onmessageerror">onmessageerror</span>;
attribute <span>EventHandler</span> <span data-x="handler-window-onoffline">onoffline</span>;
Expand Down Expand Up @@ -98721,6 +98751,7 @@ interface <dfn>WorkerGlobalScope</dfn> : <span>EventTarget</span> {

attribute <span>OnErrorEventHandler</span> <span data-x="handler-WorkerGlobalScope-onerror">onerror</span>;
attribute <span>EventHandler</span> <span data-x="handler-WorkerGlobalScope-onlanguagechange">onlanguagechange</span>;
attribute <span>EventHandler</span> <span data-x="handler-WorkerGlobalScope-ontimezonechange">ontimezonechange</span>;
attribute <span>EventHandler</span> <span data-x="handler-WorkerGlobalScope-onoffline">onoffline</span>;
attribute <span>EventHandler</span> <span data-x="handler-WorkerGlobalScope-ononline">ononline</span>;
attribute <span>EventHandler</span> <span data-x="handler-WorkerGlobalScope-onrejectionhandled">onrejectionhandled</span>;
Expand Down Expand Up @@ -98834,6 +98865,7 @@ interface <dfn>WorkerGlobalScope</dfn> : <span>EventTarget</span> {
<tbody>
<tr><td><dfn><code data-x="handler-WorkerGlobalScope-onerror">onerror</code></dfn> <td> <code data-x="event-error">error</code>
<tr><td><dfn><code data-x="handler-WorkerGlobalScope-onlanguagechange">onlanguagechange</code></dfn> <td> <code data-x="event-languagechange">languagechange</code> <!-- new -->
<tr><td><dfn><code data-x="handler-WorkerGlobalScope-ontimezonechange">ontimezonechange</code></dfn> <td> <code data-x="event-timezonechange">timezonechange</code>
<tr><td><dfn><code data-x="handler-WorkerGlobalScope-onoffline">onoffline</code></dfn> <td> <code data-x="event-offline">offline</code> <!-- new -->
<tr><td><dfn><code data-x="handler-WorkerGlobalScope-ononline">ononline</code></dfn> <td> <code data-x="event-online">online</code> <!-- new -->
<tr><td><dfn><code data-x="handler-WorkerGlobalScope-onrejectionhandled">onrejectionhandled</code></dfn> <td> <code data-x="event-rejectionhandled">rejectionhandled</code>
Expand Down Expand Up @@ -116248,6 +116280,49 @@ interface <dfn>External</dfn> {



<div w-nodev>

<h2 split-filename="automation" id="automation">Automation and testing support</h2>

<p>For the purposes of user agent automation and application testing, user agents that
implement the [WebDriver] specification must additionally support the following [WebDriver]
<dfn data-x-href="https://w3c.github.io/webdriver/#dfn-extension-command">extension
commands</dfn> to enable testing features defined in the HTML Standard.
<ref spec=WEBDRIVER></p>

<h3>Set time zone</h3>

<p>The “Set time zone” extension command simulates the changing of a time zone for the purposes
of testing. The extension command is defined as follows:</p>

<table>
<thead>
<tr>
<th>HTTP method
<th>URI template
<tbody>
<tr>
<td>POST
<td><code>/session/<var>{session id}</var>/time_zone</code>
</table>

<p>The <a href="https://w3c.github.io/webdriver/#dfn-remote-end-steps">remote end
steps</a> are:</p>

<ol>
<li><p>Let <var>time_zone</var> be the result of <a
href="https://w3c.github.io/webdriver/#dfn-getting-properties">getting a property</a> named
<code>time_zone</code> from the parameters argument, else let it be <code>null</code>.</p></li>
<li><p>Make <var>time_zone</var> the new session time zone.</p></li>
<li><p>Return <a href="https://w3c.github.io/webdriver/#dfn-success">success</a> with data
<code>null</code>.</p></li>
</ol>

<p>time_zone is a string of the Zone and Link names of the IANA Time Zone Database. All registered Zone and Link names are allowed. <ref spec=TZDATABASE></p>
</div>



<div w-nodev>

<h2 split-filename="iana" id="iana">IANA considerations</h2>
Expand Down Expand Up @@ -117270,6 +117345,7 @@ interface <dfn>External</dfn> {
<code data-x="handler-window-onbeforeunload">onbeforeunload</code>;
<code data-x="handler-window-onhashchange">onhashchange</code>;
<code data-x="handler-window-onlanguagechange">onlanguagechange</code>;
<code data-x="handler-window-ontimezonechange">ontimezonechange</code>;
<code data-x="handler-window-onmessage">onmessage</code>;
<code data-x="handler-window-onmessageerror">onmessageerror</code>;
<code data-x="handler-window-onoffline">onoffline</code>;
Expand Down Expand Up @@ -120374,6 +120450,12 @@ interface <dfn>External</dfn> {
<td> <code data-x="event-languagechange">languagechange</code> event handler for <code>Window</code> object
<td> <span data-x="event handler content attributes">Event handler content attribute</span>

<tr>
<th id="ix-handler-window-ontimezonechange"> <code data-x="">ontimezonechange</code>
<td> <code data-x="handler-window-ontimezonechange">body</code>
<td> <code data-x="event-timezonechange">timezonechange</code> event handler for <code>Window</code> object
<td> <span data-x="event handler content attributes">Event handler content attribute</span>

<tr>
<th id="ix-handler-onload"> <code data-x="">onload</code>
<td> <span data-x="handler-onload">HTML elements</span>
Expand Down Expand Up @@ -121255,6 +121337,12 @@ INSERT INTERFACES HERE
<td> Global scope objects
<td> Fired at the global scope object when the user's preferred languages change

<tr> <!-- timezonechange -->
<td> <dfn data-dfn-type="event" data-dfn-for="Window,WorkerGlobalScope" data-export=""><code data-x="event-timezonechange">timezonechange</code></dfn>
<td> <code>Event</code>
<td> Global scope objects
<td> Fired at the global scope object when the user's current timezone changes

<tr> <!-- load -->
<td> <dfn data-dfn-type="event" data-dfn-for="Window,HTMLElement" data-export=""><code data-x="event-load">load</code></dfn>
<td> <code>Event</code>
Expand Down Expand Up @@ -122058,6 +122146,9 @@ INSERT INTERFACES HERE
<dt id="refsWEBCRYPTO">[WEBCRYPTO]</dt>
<dd>(Non-normative) <cite><a href="https://w3c.github.io/webcrypto/Overview.html">Web Cryptography API</a></cite>, M. Watson. W3C.</dd>

<dt id="refsWEBDRIVER">[WEBDRIVER]</dt>
<dd><cite><a href="https://w3c.github.io/webdriver/">WebDriver</a></cite>, S. Stewart, D. Burns. W3C.</dd>

<dt id="refsWEBGL">[WEBGL]</dt>
<dd><cite><a href="https://www.khronos.org/registry/webgl/specs/latest/">WebGL Specifications</a></cite>, D. Jackson, J. Gilbert. Khronos Group.</dd>

Expand Down