Opened 3 years ago
Last modified 7 days ago
#59890 new defect (bug)
Brower console output shows horizontal ellipsis as html entity
| Reported by: | Ov3rfly | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | Awaiting Review |
| Component: | Upgrade/Install | Version: | |
| Severity: | minor | Keywords: | has-patch has-unit-tests |
| Cc: | Focuses: |
Description
When installing a plugin etc. the browser console output shows horizontal ellipsis as html entity …
Downloading installation package from https://downloads.wordpress.org/plugin/classic-editor.1.6.3.zip… The authenticity of classic-editor.1.6.3.zip could not be verified as no signature was found. Unpacking the package…
Observed with Firefox and Chrome in Windows.
In addition translations of the horizontal ellipsis part are inconsistent.
German (with added space before horizontal ellipsis entity):
Herunterladen des Installationspakets von %s …
French (with actual UTF-8 0xE2 0x80 0xA6 char instead of html entity)
Téléchargement du paquet d’installation depuis %s…
Attachments (1)
Change History (3)
This ticket was mentioned in PR #13962 on WordPress/wordpress-develop by @wpnomad.
7 days ago
#2
- Keywords has-patch has-unit-tests added
Note:
See TracTickets
for help on using tickets.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
Upgrader debug messages from Shiny Updates are logged to the browser console via
wp.sanitize.stripTagsAndEncodeText(), which intentionally returns HTML-escaped text. Because the console shows plain text, messages appear with raw character references, e.g.Unpacking the package….This PR strips tags and decodes character references with
DOMParser(body.textContent) before logging, and skips non-string messages.stripTagsAndEncodeText()itself is unchanged, as other callers rely on its escaped output. Decoding happens client-side only because the same messages are also used in emails/logs server-side.Tests
wp.updates.ajaxAlways()(tests/qunit/wp-admin/js/updates-ajax-always.js): decoding, tag stripping, no markup execution, non-string skipping. They fail without the fix.updates.jsin the QUnit suite and fixes the_wpUpdatesItemCountsfixture (totalslackedcounts, which maderefreshCount()throw on load).Testing instructions
Downloading installation package from …zip…. After:Downloading installation package from …zip….Use of AI Tools
AI assistance: Yes
Tool(s): Claude Code
Model(s): Claude Opus 5.5
Used for: Investigation, implementation, tests and local verification, under my direction.
---
This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.
🤖 Generated with Claude Code
https://claude.ai/code/session_014nJenDidRzoohF8JCEKbZ9