Click-to-copy: load deferred regardless of site configuration - #2801
Merged
chalin merged 6 commits intoSep 10, 2026
Merged
Conversation
- Moves the plugin's `defer` from the theme's overridable default into its shim, so no configuration layer can run the one-shot scan before the document is parsed - Fixture net covers site, language, and env `defer: false`, with a sibling override guarding the env key path - Browser net copies from a block emitted by the body-end hook under a conflicting `defer: false`: the case a synchronous load misses - Retargets the layering tests that used click-to-copy's `defer` as their inheritance and override probe
- Plugins guide owns the promise and its limit: the whole server-rendered page, hook markup included, not markup scripts add later - Shim contract names the second shim role the plugin now relies on - Quality page registers the copy net and its red-first evidence
- UG states the override outright, so a reader can't take "whatever its entry carries" as "honors your value"; the shim-contract page qualifies the pin as against configuration - Site and language fixture cases gain the env case's sibling override, proving their layer reached the registry - Comments keep only local gotchas and pointers; the runtime net's copied-text claim states the actual equality
- Each layer's fixture sets `version: latest` on the click-to-copy entry and asserts the floating-version warning: with a sibling entry as the guard, dropping the click-to-copy input left every case green, the default already being deferred - Shim header and shim-contract page read as complete sentences
chalin
force-pushed
the
chalin-m24-plugin-copy-readiness-2026-0909
branch
from
September 10, 2026 10:39
8747b8f to
92491cd
Compare
- Asserts in the browser net that its conflicting entry reached the loop, as the fixture cases do - Restates the pre-click scroll gotcha as Puppeteer actually behaves: the scroll is skipped when the button already intersects the viewport - Trims test titles and comments to their input cues; registers the per-layer cases on the quality page
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
defera site, language, or environment override sets on its entry can make it synchronousdeferfield and default, other plugins' loading strategy, and the invalid-value policy (separate discussion)deferon this entry: the value is accepted and ignored; on the maintainers' task listmain, where each config layer turned the tag synchronous and the body-end hook block got no buttondefer: falseand asserts on the clipboard text