forked from mirrors/gecko-dev
		
	 e50427aec6
			
		
	
	
		e50427aec6
		
	
	
	
	
		
			
			This only works because the Gecko CSP implementation special-cases linked stylesheets with chrome:// URLs. See https://hg.mozilla.org/mozilla-central/file/085cdfb90903d4985f0de1dc7786522d9fb45596/dom/security/nsCSPService.cpp#l92 MozReview-Commit-ID: EvFTgVObCiS --HG-- extra : rebase_source : e69a8e297f371e08a1de580b0391d95aa23aadc4
		
			
				
	
	
		
			140 lines
		
	
	
	
		
			4.1 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
	
		
			4.1 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0"?>
 | |
| <!-- This Source Code Form is subject to the terms of the Mozilla Public
 | |
|    - License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 | |
| 
 | |
| <!DOCTYPE overlay [
 | |
|   <!ENTITY % prettyPrintDTD SYSTEM "chrome://global/locale/xml/prettyprint.dtd">
 | |
|   %prettyPrintDTD;
 | |
|   <!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
 | |
|   %globalDTD;
 | |
| ]>
 | |
| 
 | |
| <xsl:stylesheet version="1.0"
 | |
|                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 | |
|                 xmlns="http://www.w3.org/1999/xhtml">
 | |
| 
 | |
|   <xsl:output method="xml"/>
 | |
| 
 | |
|   <xsl:template match="/">
 | |
|     <div id="top">
 | |
|       <link rel="stylesheet" href="chrome://global/content/xml/XMLPrettyPrint.css"/>
 | |
|       <div id="header" dir="&locale.dir;">
 | |
|         <p>
 | |
|           &xml.nostylesheet;
 | |
|         </p>
 | |
|       </div>
 | |
|       <main id="tree" class="highlight">
 | |
|         <xsl:apply-templates/>
 | |
|       </main>
 | |
|     </div>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <xsl:template match="*">
 | |
|     <div>
 | |
|       <xsl:text><</xsl:text>
 | |
|       <span class="start-tag"><xsl:value-of select="name(.)"/></span>
 | |
|       <xsl:apply-templates select="@*"/>
 | |
|       <xsl:text>/></xsl:text>
 | |
|     </div>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <xsl:template match="*[node()]">
 | |
|     <div>
 | |
|       <xsl:text><</xsl:text>
 | |
|       <span class="start-tag"><xsl:value-of select="name(.)"/></span>
 | |
|       <xsl:apply-templates select="@*"/>
 | |
|       <xsl:text>></xsl:text>
 | |
| 
 | |
|       <span class="text"><xsl:value-of select="."/></span>
 | |
| 
 | |
|       <xsl:text></</xsl:text>
 | |
|       <span class="end-tag"><xsl:value-of select="name(.)"/></span>
 | |
|       <xsl:text>></xsl:text>
 | |
|     </div>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <xsl:template match="*[* or processing-instruction() or comment() or string-length(.) > 50]">
 | |
|     <div>
 | |
|       <details open="" class="expandable-body">
 | |
|         <summary class="expandable-opening">
 | |
|           <xsl:text><</xsl:text>
 | |
|           <span class="start-tag"><xsl:value-of select="name(.)"/></span>
 | |
|           <xsl:apply-templates select="@*"/>
 | |
|           <xsl:text>></xsl:text>
 | |
|         </summary>
 | |
| 
 | |
|         <div class="expandable-children"><xsl:apply-templates/></div>
 | |
| 
 | |
|       </details>
 | |
|       <span class="expandable-closing">
 | |
|         <xsl:text></</xsl:text>
 | |
|         <span class="end-tag"><xsl:value-of select="name(.)"/></span>
 | |
|         <xsl:text>></xsl:text>
 | |
|       </span>
 | |
|     </div>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <xsl:template match="@*">
 | |
|     <xsl:text> </xsl:text>
 | |
|     <span class="attribute-name"><xsl:value-of select="name(.)"/></span>
 | |
|     <xsl:text>=</xsl:text>
 | |
|     <span class="attribute-value">"<xsl:value-of select="."/>"</span>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <xsl:template match="text()">
 | |
|     <xsl:if test="normalize-space(.)">
 | |
|       <xsl:value-of select="."/>
 | |
|     </xsl:if>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <xsl:template match="processing-instruction()">
 | |
|     <div class="pi">
 | |
|       <xsl:text><?</xsl:text>
 | |
|       <xsl:value-of select="name(.)"/>
 | |
|       <xsl:text> </xsl:text>
 | |
|       <xsl:value-of select="."/>
 | |
|       <xsl:text>?></xsl:text>
 | |
|     </div>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <xsl:template match="processing-instruction()[string-length(.) > 50]">
 | |
|     <div class="pi">
 | |
|       <details open="" class="expandable-body">
 | |
|         <summary class="expandable-opening">
 | |
|           <xsl:text><?</xsl:text>
 | |
|           <xsl:value-of select="name(.)"/>
 | |
|         </summary>
 | |
|         <div class="expandable-children"><xsl:value-of select="."/></div>
 | |
|       </details>
 | |
|       <span class="expandable-closing">
 | |
|         <xsl:text>?></xsl:text>
 | |
|       </span>
 | |
|     </div>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <xsl:template match="comment()">
 | |
|     <div class="comment">
 | |
|       <xsl:text><!--</xsl:text>
 | |
|       <xsl:value-of select="."/>
 | |
|       <xsl:text>--></xsl:text>
 | |
|     </div>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <xsl:template match="comment()[string-length(.) > 50]">
 | |
|     <div class="comment">
 | |
|       <details open="" class="expandable-body">
 | |
|         <summary class="expandable-opening">
 | |
|           <xsl:text><!--</xsl:text>
 | |
|         </summary>
 | |
|         <div class="expandable-children">
 | |
|           <xsl:value-of select="."/>
 | |
|         </div>
 | |
|       </details>
 | |
|       <span class="expandable-closing">
 | |
|         <xsl:text>--></xsl:text>
 | |
|       </span>
 | |
|     </div>
 | |
|   </xsl:template>
 | |
| 
 | |
| </xsl:stylesheet>
 |