Loading…
Loading…
Find what breaks when Chrome 158 turns XSLT off on 17 Nov 2026
Open the URL, view source and paste the raw XML. Browsers block cross-site fetches, so the checker never downloads it for you.
0 chars · 0 lines
Scripts that call XSLTProcessor. Comments are skipped; PHP blocks count as server code.
0 chars · 0 lines
Results update as you type.
Paste a feed, a sitemap or a script to see what Chrome 158 breaks
The checker reads xml-stylesheet instructions the way Chromium does, flags XSLT stylesheet files, and finds XSLTProcessor calls outside comments. Nothing leaves your browser.
Checked 18 Oct 2026 against the vendors’ own pages. Where a vendor has not published a date, the row says so.
Chrome 142 · Console warnings28 Oct 2025
Early-warning messages start appearing in DevTools.
Chrome 143 · Officially deprecated2 Dec 2025
Deprecation warnings in the console and in Lighthouse.
Chrome 146 · Enterprise policy10 Mar 2026
The XSLTEnabled policy goes live so managed fleets can test or keep XSLT.
Chrome 152 · Origin Trial25 Aug 2026
Sites can register a token to keep XSLT past the removal date.
Chrome 158 · Off on Stable17 Nov 2026
XSLT stops working for everyone outside the Origin Trial and the policy.
Chrome 176 · Gone for everyone17 Aug 2027
The Origin Trial and the enterprise policy stop working.
A static check, not a browser test: it reads text the way Chromium’s rules describe and cannot see stylesheets added at runtime or XSLT behind a library wrapper. Pretty-print a messy feed first with the XML formatter, check the head tags that carry your feed link with the meta tags previewer, or move an XML config toward JSON with the YAML to JSON converter.
Run your projects on Claude Code?
We packaged the .claude config that runs this site — 26 specialist agents, 14 workflow skills, and 6 rule files from 31 real production incidents. From $9.
Get the Claude Code Production Pack — $29Chrome 158 reaches Stable on 17 November 2026 with XSLT switched off. Feeds and sitemaps that link an XSL stylesheet stop rendering as styled pages, and web apps that call XSLTProcessor throw. This checker reads the XML and code you paste, applies the type and placement rules Chromium uses, and lists each line that breaks. You also get a countdown, a share card and copy-paste fixes: a CSS stylesheet plus a feed discovery link, a server-side transform, or the xslt-polyfill and SaxonJS route.
The XML box runs through a small tokenizer that tracks comments, CDATA sections, the DOCTYPE and element depth. Each <?xml-stylesheet?> instruction outside a comment has its type and href parsed, with single or double quotes and any spacing. Chromium runs an instruction as XSLT for six exact types: text/xsl, text/xml, application/xml, application/xhtml+xml, application/rss+xml and application/atom+xml. An empty type or text/css means CSS, which stays supported. Chrome also ignores an instruction nested inside an element, so only ones in the prolog or after the root element count. application/xslt+xml gets a review flag: Chrome never applied it, but other browsers may. A root element of xsl:stylesheet or xsl:transform marks the whole file as an XSLT stylesheet.
The code box looks for new XSLTProcessor, any other XSLTProcessor reference, and calls to importStylesheet, transformToFragment and transformToDocument. JavaScript comments are skipped by a scanner that steps over strings, template literals and regular expressions. HTML comments are skipped outside script blocks, and PHP blocks count as server code. A script that loads xslt-polyfill marks the breaking lines in that input as covered.
The countdown counts calendar days from your local date to 17 November 2026, read once when the page loads.
A blogger whose RSS feed links a feed.xsl so it looks like a web page, checking whether people who click the feed will see a raw XML tree after 17 November.
An SEO lead with a styled XML sitemap from a plugin, confirming crawlers are unaffected and deciding whether to keep a CSS view or drop the stylesheet.
A front-end team auditing a legacy dashboard that renders XML reports with XSLTProcessor, finding every live call before choosing between the polyfill and a server-side transform.
A hardware vendor whose devices serve XML status pages with an XSL stylesheet, counting how many firmware templates need a server-side render before customers update Chrome.
Scope note: This is a static text check. It cannot see stylesheet instructions or XSLTProcessor calls created at runtime, aliases such as window["XSLT" + "Processor"], or XSLT wrapped inside a library. The JavaScript comment scanner is a heuristic, not a parser. Dates for browsers other than Chrome come from vendor statements checked on 18 October 2026; Firefox and Safari have published none.
Open your feed, sitemap or .xsl file in a browser tab, use View Source, and paste the raw XML into the first box, or open the file from disk.
Optionally paste HTML or JavaScript that might call XSLTProcessor into the second box.
Read the verdict (Breaks, Review, Covered by the polyfill or Safe) and the days left until Chrome 158 on 17 November 2026.
Work down the findings list: each one shows the line, the column and the exact text that matched.
Copy the best-fit fix, test it in Chrome with XSLT disabled at chrome://flags/#xslt, then share the result card.
About the XSLT Removal Checker
Chrome 158 turns XSLT off on Stable on 17 November 2026 for everyone except sites in the Origin Trial (open since Chrome 152 on 25 August 2026) and machines with the XSLTEnabled enterprise policy (since Chrome 146 on 10 March 2026). Chrome 176 ends both on 17 August 2027. Canary, Dev and Beta have disabled XSLT by default since Chrome 145.
Feed readers parse the raw XML and never run your stylesheet, so subscriptions keep working. What breaks is the styled page people see when they open the feed URL in Chrome: from Chrome 158 they get the untransformed XML. Replace the XSL instruction with <?xml-stylesheet type="text/css" href="/feed.css"?>, or delete it, and add <link rel="alternate" type="application/rss+xml" href="…"> to your HTML head so readers find the feed from the site itself.
Yes. Chrome’s removal guide says the instruction stays supported with type="text/css", and Chromium treats an instruction with no type as CSS too. Only the XSLT types go: text/xsl, text/xml, application/xml, application/xhtml+xml, application/rss+xml and application/atom+xml. CSS can lay out and hide XML elements, but it cannot create links or reorder entries.
No. The sitemap protocol is plain XML: crawlers read the data, and the XSL instruction only formats it for people who open the file in a browser. After Chrome 158 that human view shows raw XML instead. You can delete the instruction, or swap it for a CSS stylesheet if you still want a readable view.
Load xslt-polyfill before the code runs. It is a WebAssembly build of libxslt, published on npm as xslt-polyfill by the author of Chrome’s removal guide, and it restores the XSLTProcessor class. In an XML document, add one script element that loads xslt-polyfill.min.js, in the XHTML namespace (xmlns="http://www.w3.org/1999/xhtml"), as a direct child of the root element. Longer term, move the transform to the server or to SaxonJS, which runs XSLT 3.0 in the browser and on Node.js through its own API.
No. The removal covers XSLT inside the browser. PHP’s XSLTProcessor class, xsltproc, Python’s lxml and Saxon run on your server and keep working, which is why a server-side transform is one of the three fixes. The checker treats code inside <?php … ?> blocks as server code and does not flag it.
No. The checker is JavaScript running in your browser. It does not fetch URLs, store anything or call a server. The share image and share link carry counts and the countdown, never your XML or code.
Your AI API bill on the day each price change lands, and the cheapest switch
Open →DeveloperHow many days your $100, $200 or $500 API credit lasts
Open →DeveloperScore your system prompt for bloat and get a cut list
Open →DeveloperPrice an agent fleet per run, day and month on every major model at once
Open →