From 01822effc88faa05cf1437bd74564d90af33e81c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Aug 2025 11:11:53 -0400 Subject: [PATCH 1/3] chore(deps): bump actions/checkout from 4 to 5 (#40700) Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Joshua Chen Co-authored-by: Dipika Bhattacharya --- .github/workflows/auto-cleanup-bot.yml | 2 +- .github/workflows/interfacedata-updater.yml | 4 ++-- .github/workflows/markdown-lint.yml | 2 +- .github/workflows/pr-check-lint_content.yml | 4 ++-- .github/workflows/pr-check_cspell_lists.yml | 2 +- .github/workflows/pr-check_javascript.yml | 2 +- .github/workflows/pr-check_json.yml | 2 +- .github/workflows/pr-check_redirects.yml | 2 +- .github/workflows/pr-check_scripts.yml | 10 +++++----- .github/workflows/pr-check_url-issues.yml | 2 +- .github/workflows/pr-check_yml.yml | 2 +- .github/workflows/pr-review-companion.yml | 2 +- .github/workflows/pr-test.yml | 2 +- .github/workflows/spelling-check-bot.yml | 2 +- 14 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/auto-cleanup-bot.yml b/.github/workflows/auto-cleanup-bot.yml index edd519e51769765..eac7b8cee33dc27 100644 --- a/.github/workflows/auto-cleanup-bot.yml +++ b/.github/workflows/auto-cleanup-bot.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Node.js environment uses: actions/setup-node@v4 diff --git a/.github/workflows/interfacedata-updater.yml b/.github/workflows/interfacedata-updater.yml index 4c4331555b13a53..e869215205610cc 100644 --- a/.github/workflows/interfacedata-updater.yml +++ b/.github/workflows/interfacedata-updater.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Checkout content - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: path: mdn-content ref: main @@ -27,7 +27,7 @@ jobs: node-version-file: "mdn-content/.nvmrc" - name: Checkout webref - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: repository: w3c/webref path: webref diff --git a/.github/workflows/markdown-lint.yml b/.github/workflows/markdown-lint.yml index abc9030366839ca..9417f497f8974ee 100644 --- a/.github/workflows/markdown-lint.yml +++ b/.github/workflows/markdown-lint.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Node.js environment uses: actions/setup-node@v4 diff --git a/.github/workflows/pr-check-lint_content.yml b/.github/workflows/pr-check-lint_content.yml index 135de58f4eae80e..77fe6a427b65e07 100644 --- a/.github/workflows/pr-check-lint_content.yml +++ b/.github/workflows/pr-check-lint_content.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout BASE - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Get changed files id: check @@ -55,7 +55,7 @@ jobs: - name: Checkout HEAD if: steps.check.outputs.HAS_FILES == 'true' - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ github.event.pull_request.head.sha }} path: pr_head diff --git a/.github/workflows/pr-check_cspell_lists.yml b/.github/workflows/pr-check_cspell_lists.yml index ec9f40d2d913f3c..576fc9b8c264233 100644 --- a/.github/workflows/pr-check_cspell_lists.yml +++ b/.github/workflows/pr-check_cspell_lists.yml @@ -14,7 +14,7 @@ jobs: docs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: sparse-checkout-cone-mode: false sparse-checkout: | diff --git a/.github/workflows/pr-check_javascript.yml b/.github/workflows/pr-check_javascript.yml index cfb477c123a4540..1f08e2df2939515 100644 --- a/.github/workflows/pr-check_javascript.yml +++ b/.github/workflows/pr-check_javascript.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Node.js environment uses: actions/setup-node@v4 diff --git a/.github/workflows/pr-check_json.yml b/.github/workflows/pr-check_json.yml index a2bb981f97bec2e..b9493f6d56ace3c 100644 --- a/.github/workflows/pr-check_json.yml +++ b/.github/workflows/pr-check_json.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Node.js environment uses: actions/setup-node@v4 diff --git a/.github/workflows/pr-check_redirects.yml b/.github/workflows/pr-check_redirects.yml index deb9d7412362fc7..bdced02fccd740b 100644 --- a/.github/workflows/pr-check_redirects.yml +++ b/.github/workflows/pr-check_redirects.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Node.js environment uses: actions/setup-node@v4 diff --git a/.github/workflows/pr-check_scripts.yml b/.github/workflows/pr-check_scripts.yml index a475212217ff236..07364ecb0c7ead4 100644 --- a/.github/workflows/pr-check_scripts.yml +++ b/.github/workflows/pr-check_scripts.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Node.js environment uses: actions/setup-node@v4 @@ -38,7 +38,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Node.js environment uses: actions/setup-node@v4 @@ -78,7 +78,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Node.js environment uses: actions/setup-node@v4 @@ -98,7 +98,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Node.js environment uses: actions/setup-node@v4 @@ -122,7 +122,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Node.js environment uses: actions/setup-node@v4 diff --git a/.github/workflows/pr-check_url-issues.yml b/.github/workflows/pr-check_url-issues.yml index bff1bf2350fa13a..2f8b2c0e24abd8f 100644 --- a/.github/workflows/pr-check_url-issues.yml +++ b/.github/workflows/pr-check_url-issues.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: fetch-depth: 0 diff --git a/.github/workflows/pr-check_yml.yml b/.github/workflows/pr-check_yml.yml index 4b7789a519a4617..94c70e086847df4 100644 --- a/.github/workflows/pr-check_yml.yml +++ b/.github/workflows/pr-check_yml.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Node.js environment uses: actions/setup-node@v4 diff --git a/.github/workflows/pr-review-companion.yml b/.github/workflows/pr-review-companion.yml index 39794da83d201be..36c558ebbc8f741 100644 --- a/.github/workflows/pr-review-companion.yml +++ b/.github/workflows/pr-review-companion.yml @@ -76,7 +76,7 @@ jobs: process_gcloudignore: false - name: Checkout (mdn/content) - uses: actions/checkout@v4 + uses: actions/checkout@v5 if: steps.check.outputs.HAS_ARTIFACT with: path: content diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index 26aaee13342c6b6..219be98a896bda5 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -29,7 +29,7 @@ jobs: BUILD_OUT_ROOT: build steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get changed files id: check diff --git a/.github/workflows/spelling-check-bot.yml b/.github/workflows/spelling-check-bot.yml index 216d41efcbb7d1c..8bc55f34fac6ab6 100644 --- a/.github/workflows/spelling-check-bot.yml +++ b/.github/workflows/spelling-check-bot.yml @@ -18,7 +18,7 @@ jobs: timeout-minutes: 5 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Node.js environment uses: actions/setup-node@v4 From 0e2ec54f4eb55cccad11af843d83061857918bee Mon Sep 17 00:00:00 2001 From: Eric Portis Date: Wed, 13 Aug 2025 09:45:05 -0700 Subject: [PATCH 2/3] Clarify requirements for render-blocking (#39809) * Clarify requirements for render-blocking Fixes #39663 Also make clear that we are not only blocking on fetching; also on parsing/application. * Update notes * Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update index.md --------- Co-authored-by: Joshua Chen Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- files/en-us/web/api/htmllinkelement/blocking/index.md | 3 +++ files/en-us/web/api/htmlscriptelement/blocking/index.md | 3 +++ files/en-us/web/api/htmlstyleelement/blocking/index.md | 3 +++ files/en-us/web/api/view_transition_api/using/index.md | 5 ++++- files/en-us/web/html/reference/attributes/rel/index.md | 2 +- files/en-us/web/html/reference/elements/link/index.md | 7 +++++-- files/en-us/web/html/reference/elements/script/index.md | 5 ++++- files/en-us/web/html/reference/elements/style/index.md | 6 +++++- 8 files changed, 28 insertions(+), 6 deletions(-) diff --git a/files/en-us/web/api/htmllinkelement/blocking/index.md b/files/en-us/web/api/htmllinkelement/blocking/index.md index 6e08a02bdba7c70..fe6d6ca97253bb1 100644 --- a/files/en-us/web/api/htmllinkelement/blocking/index.md +++ b/files/en-us/web/api/htmllinkelement/blocking/index.md @@ -19,6 +19,9 @@ A string. Must be a space-separated list of blocking tokens listed below indicat - `render` - : The rendering of content on the screen is blocked. + > [!NOTE] + > Only `link` elements in the document's `` can possibly block rendering. By default, a `link` element with `rel="stylesheet"` in the `` blocks rendering when the browser discovers it during parsing. If such a `link` element is added dynamically via script, you must additionally set `blocking = "render"` for it to block rendering. + ## Examples ```html diff --git a/files/en-us/web/api/htmlscriptelement/blocking/index.md b/files/en-us/web/api/htmlscriptelement/blocking/index.md index d5b54bf4d726a49..92ae4ca828cd2cb 100644 --- a/files/en-us/web/api/htmlscriptelement/blocking/index.md +++ b/files/en-us/web/api/htmlscriptelement/blocking/index.md @@ -19,6 +19,9 @@ A string. Must be a space-separated list of blocking tokens listed below indicat - `render` - : The rendering of content on the screen is blocked. + > [!NOTE] + > Only `script` elements in the document's `` can possibly block rendering. Scripts are not render-blocking by default; if a `script` element does not include `type="module"`, `async`, or `defer`, then it blocks _parsing_, not _rendering_. If such a `script` element is added dynamically via script, you must set `blocking = "render"` for it to block rendering. + ## Examples ```html diff --git a/files/en-us/web/api/htmlstyleelement/blocking/index.md b/files/en-us/web/api/htmlstyleelement/blocking/index.md index 84d734f677af4e8..00102f3ea37d376 100644 --- a/files/en-us/web/api/htmlstyleelement/blocking/index.md +++ b/files/en-us/web/api/htmlstyleelement/blocking/index.md @@ -19,6 +19,9 @@ A string. Must be a space-separated list of blocking tokens listed below indicat - `render` - : The rendering of content on the screen is blocked. + > [!NOTE] + > Only `style` elements in the document's `` can possibly block rendering. By default, a `style` element in the `` blocks rendering when the browser discovers it during parsing. If such a `style` element is added dynamically via script, you must additionally set `blocking = "render"` for it to block rendering. + ## Examples ```html diff --git a/files/en-us/web/api/view_transition_api/using/index.md b/files/en-us/web/api/view_transition_api/using/index.md index a17d46f2ed8334d..d3f2277df138e30 100644 --- a/files/en-us/web/api/view_transition_api/using/index.md +++ b/files/en-us/web/api/view_transition_api/using/index.md @@ -501,7 +501,7 @@ Before running a cross-document transition, you ideally want to wait until the s 2. Critical scripts are loaded and run. 3. The HTML visible for the user's initial view of the page has been parsed, so it renders consistently. -Styles are render blocked by default, and scripts can be render blocked using the [`blocking="render"`](/en-US/docs/Web/HTML/Reference/Elements/script#blocking) attribute. +Styles are render blocked by default unless they are added to the document dynamically, via script. Both scripts and dynamically-added styles can be render blocked using the [`blocking="render"`](/en-US/docs/Web/HTML/Reference/Elements/script#blocking) attribute. To ensure that your initial HTML has been parsed and will always render consistently before the transition animation runs, you can use [``](/en-US/docs/Web/HTML/Reference/Attributes/rel#expect). In this element, you include the following attributes: @@ -509,6 +509,9 @@ To ensure that your initial HTML has been parsed and will always render consiste - `href="#element-id"` to indicate the ID of the element you want to render block. - `blocking="render"` to render block the specified HTML. +> [!NOTE] +> In order to block rendering, `script`, `link`, and `style` elements with `blocking="render"` must be in the `head` of the document. + Let's explore what this looks like with an example HTML document: ```html diff --git a/files/en-us/web/html/reference/attributes/rel/index.md b/files/en-us/web/html/reference/attributes/rel/index.md index fc82760279f5b3f..96f77d148d05158 100644 --- a/files/en-us/web/html/reference/attributes/rel/index.md +++ b/files/en-us/web/html/reference/attributes/rel/index.md @@ -26,7 +26,7 @@ The following table lists some of the most important existing keywords. Every ke | [`compression-dictionary`](/en-US/docs/Web/HTML/Reference/Attributes/rel/compression-dictionary) | Link to a {{glossary("Compression dictionary transport", "compression dictionary")}} that can be used to compress future downloads for resources on this site. | Link | Not allowed | Not allowed | | [`dns-prefetch`](/en-US/docs/Web/HTML/Reference/Attributes/rel/dns-prefetch) | Tells the browser to preemptively perform DNS resolution for the target resource's origin. | External Resource | Not allowed | Not allowed | | [`external`](#external) | The referenced document is not part of the same site as the current document. | Not allowed | Annotation | Annotation | -| [`expect`](#expect) | Allows the page to be [render-blocked](/en-US/docs/Glossary/Render_blocking) until the essential parts of the document are parsed so it will render consistently. | Link | Not allowed | Not allowed | +| [`expect`](#expect) | When used with [`blocking="render"`](/en-US/docs/Web/HTML/Reference/Elements/link#blocking), allows the page to be [render-blocked](/en-US/docs/Glossary/Render_blocking) until the essential parts of the document are parsed so it will render consistently. | Link | Not allowed | Not allowed | | [`help`](#help) | Link to context-sensitive help. | Link | Link | Link | | [`icon`](#icon) | An icon representing the current document. | External Resource | Not allowed | Not allowed | | [`license`](#license) | Indicates that the main content of the current document is covered by the copyright license described by the referenced document. | Link | Link | Link | diff --git a/files/en-us/web/html/reference/elements/link/index.md b/files/en-us/web/html/reference/elements/link/index.md index fdd879c4c6f8a2b..bcb8afa0b0f1d0a 100644 --- a/files/en-us/web/html/reference/elements/link/index.md +++ b/files/en-us/web/html/reference/elements/link/index.md @@ -175,9 +175,12 @@ This element includes the [global attributes](/en-US/docs/Web/HTML/Reference/Glo - `blocking` - - : This attribute explicitly indicates that certain operations should be blocked on the fetching of an external resource. It must only be used when the `rel` attribute contains `expect` or `stylesheet` keywords. The operations that are to be blocked must be a space-separated list of blocking tokens listed below. + - : This attribute explicitly indicates that certain operations should be blocked until specific conditions are met. It must only be used when the `rel` attribute contains the `expect` or `stylesheet` keywords. With [`rel="expect"`](/en-US/docs/Web/HTML/Reference/Attributes/rel#expect), it indicates that operations should be blocked until a specific DOM node has been parsed. With [`rel="stylesheet"`](/en-US/docs/Web/HTML/Reference/Attributes/rel#stylesheet), it indicates that operations should be blocked until an external stylesheet and its critical subresources have been fetched and applied to the document. The operations that are to be blocked must be a space-separated list of blocking tokens listed below. Currently there is only one token: - `render`: The rendering of content on the screen is blocked. + > [!NOTE] + > Only `link` elements in the document's `` can possibly block rendering. By default, a `link` element with `rel="stylesheet"` in the `` blocks rendering when the browser discovers it during parsing. If such a `link` element is added dynamically via script, you must additionally set `blocking = "render"` for it to block rendering. + - [`crossorigin`](/en-US/docs/Web/HTML/Reference/Attributes/crossorigin) - : This [enumerated](/en-US/docs/Glossary/Enumerated) attribute indicates whether {{Glossary("CORS")}} must be used when fetching the resource. [CORS-enabled images](/en-US/docs/Web/HTML/How_to/CORS_enabled_image) can be reused in the {{HTMLElement("canvas")}} element without being _tainted_. @@ -387,7 +390,7 @@ You can find a number of `` examples in [Preloading content ### Blocking rendering till a resource is fetched You can include `render` token inside a `blocking` attribute; -the rendering of the page will be blocked till the resource is fetched. For example: +the rendering of the page will be blocked till the resource and its critical subresources are fetched and applied to the document. For example: ```html diff --git a/files/en-us/web/html/reference/elements/script/index.md b/files/en-us/web/html/reference/elements/script/index.md index 5022db11f867bce..d23ea37fb633d96 100644 --- a/files/en-us/web/html/reference/elements/script/index.md +++ b/files/en-us/web/html/reference/elements/script/index.md @@ -52,9 +52,12 @@ This element includes the [global attributes](/en-US/docs/Web/HTML/Reference/Glo See the [Attribution Reporting API](/en-US/docs/Web/API/Attribution_Reporting_API) for more details. - `blocking` - - : This attribute explicitly indicates that certain operations should be blocked on the fetching of the script. The operations that are to be blocked must be a space-separated list of blocking tokens listed below. + - : This attribute explicitly indicates that certain operations should be blocked until the script has executed. The operations that are to be blocked must be a space-separated list of blocking tokens. Currently there is only one token: - `render`: The rendering of content on the screen is blocked. + > [!NOTE] + > Only `script` elements in the document's `` can possibly block rendering. Scripts are not render-blocking by default; if a `script` element does not include `type="module"`, `async`, or `defer`, then it blocks _parsing_, not _rendering_. If such a `script` element is added dynamically via script, you must set `blocking = "render"` for it to block rendering. + - [`crossorigin`](/en-US/docs/Web/HTML/Reference/Attributes/crossorigin) - : Normal `script` elements pass minimal information to the {{domxref('Window.error_event', 'window.onerror')}} for scripts which do not pass the standard {{Glossary("CORS")}} checks. To allow error logging for sites which use a separate domain for static media, use this attribute. See [CORS settings attributes](/en-US/docs/Web/HTML/Reference/Attributes/crossorigin) for a more descriptive explanation of its valid arguments. - `defer` diff --git a/files/en-us/web/html/reference/elements/style/index.md b/files/en-us/web/html/reference/elements/style/index.md index a5eb280156047aa..bbb99aeee37fab2 100644 --- a/files/en-us/web/html/reference/elements/style/index.md +++ b/files/en-us/web/html/reference/elements/style/index.md @@ -47,8 +47,12 @@ In the same manner as `` elements, `