Repository navigation
feat(frontend): device test names blockers and gives a verdict - #2063
Merged
Merged
Conversation
…e screen row Work in progress for #2060, waiting on the format to be confirmed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018srx5hc431EYmG4MHUr2KA
The connection row printed `effectiveType`, a speed class the browser estimates, as a network generation, so a wired desktop read "4G". It now reads one pair on every device, "Online/Speed: <medium> / <speed>": the medium from `connection.type` where Chromium for Android gives it (Wi-Fi, mobile data, wired, Bluetooth, other), the speed as "Fast (like 4G or better)", "Slow (like 3G)", "Very slow (like 2G)" or "Very slow (below 2G)", and "not reported" in the slot the browser leaves empty. When neither is given, the row stays informational and its "i" button says iOS (or this browser) does not tell, and that the forms do not need it. Data saver is a warning whose fix carries the message. The screen row says density instead of zoom. Closes #2060 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018srx5hc431EYmG4MHUr2KA
The device test could not see a blocker that stops the plugin's own scripts, and listed its rows in no particular order (#2062). - New "Server requests" row: an empty POST to admin-ajax.php, which WordPress answers with 400 and "0"; a firewall's code or no answer is reported, with the time taken. - Device ID: a collector missing where the browser could run it is reported as stopped by a blocker. - Captcha: where the site uses ALTCHA, the page loads the bundle the forms use and reports when its widget never defined itself. - A notice revealed by the stylesheet alone after a delay says the test could not run; the script cancels it on start, or shows it at once when a script it needs is missing. The noscript message uses the shared notice component. - A verdict above the rows (ready / warnings / may fail), drawn with FFC.notice from the row states. - Location permission and precision are one row; the rows are grouped by subject with the PDF last. - "Copy the results" adds the plugin version, the captcha mode and whether the device limit is on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018srx5hc431EYmG4MHUr2KA
…k-blockers # Conflicts: # assets/js/ffc-device-check.js # assets/js/ffc-device-check.min.js # includes/frontend/class-ffc-device-check.php # languages/ffcertificate-pt_BR.l10n.php # languages/ffcertificate-pt_BR.mo # languages/ffcertificate-pt_BR.po
CaptchaFieldNameTest reads `{ altcha: … }` as a script enumerating the
captcha's fields. The copied-results label is now a small function, so
the device test names the mode without that shape (#2062).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018srx5hc431EYmG4MHUr2KA
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.
Summary
The device test (
[ffc_verification]with?ffc_device_check=1) could not see a blocker that stops the plugin's own scripts, and listed its rows in no particular order. Closes #2062.admin-ajax.php, which WordPress answers with400and0. The row reports the response time; a firewall's status code ("refused"); or no answer at all ("blocked"). Each failure carries its own fix.altchaorboth), the page loads the sameffc-altchabundle the forms use, before the script, and fails the row whenaltcha-widgetnever defined itself..ffc-noticesits in the markup and the stylesheet alone reveals it after 12 s. The script cancels it on start (is-running), or shows it at once whenFFC.Preflight/FFC.Platformare missing (is-stalled). The<noscript>message now usesNotice::render()too.FFC.notice()from the row states once every row has answered. Kept at the top, where a screenshot shows it first.ffcCoreConfig.version), the captcha mode and whether the device limit is on (ffc_device_config).Reused rather than added:
Notice/FFC.notice,ffcCoreConfig,ffc_device_config,ffc_ajax.ajax_url,AltchaCaptcha::register_assets(). No new endpoint, no inline style. A stale-JS-cache notice was left out: telling it reliably would need the server to report its version through a new endpoint.Tests
DeviceCheckTest: row order, stalled and verdict markup, nostyle=, ALTCHA dependency foraltchaandboth,captchain the localized config.is-runningit stays hidden; withis-stalledit shows at once.Docs
The Certificates documentation topic describes the new rows, the verdict, the blocker notices and the copied setup. The CHANGELOG has an
Addedentry.Generated by Claude Code