Author: radu Date: Fri Aug 19 13:33:14 2016 New Revision: 1756915 URL: http://svn.apache.org/viewvc?rev=1756915&view=rev Log: SLING-5944 - Sightly doesn't allow to overwrite the context for `data-sly-element`
* skip applying elementContext if the expression is an XSS RuntimeCall already * updated TCK to 1.2.4 which provides a test for data-sly-element with context set to unsafe Modified: sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/ElementPlugin.java sling/trunk/bundles/scripting/sightly/testing-content/pom.xml sling/trunk/bundles/scripting/sightly/testing/pom.xml Modified: sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/ElementPlugin.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/ElementPlugin.java?rev=1756915&r1=1756914&r2=1756915&view=diff ============================================================================== --- sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/ElementPlugin.java (original) +++ sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/ElementPlugin.java Fri Aug 19 13:33:14 2016 @@ -18,14 +18,16 @@ ******************************************************************************/ package org.apache.sling.scripting.sightly.impl.plugin; +import org.apache.sling.scripting.sightly.compiler.RuntimeFunction; import org.apache.sling.scripting.sightly.compiler.commands.Conditional; import org.apache.sling.scripting.sightly.compiler.commands.OutText; import org.apache.sling.scripting.sightly.compiler.commands.OutputVariable; import org.apache.sling.scripting.sightly.compiler.commands.VariableBinding; -import org.apache.sling.scripting.sightly.compiler.expression.MarkupContext; -import org.apache.sling.scripting.sightly.impl.compiler.PushStream; import org.apache.sling.scripting.sightly.compiler.expression.Expression; import org.apache.sling.scripting.sightly.compiler.expression.ExpressionNode; +import org.apache.sling.scripting.sightly.compiler.expression.MarkupContext; +import org.apache.sling.scripting.sightly.compiler.expression.nodes.RuntimeCall; +import org.apache.sling.scripting.sightly.impl.compiler.PushStream; import org.apache.sling.scripting.sightly.impl.compiler.frontend.CompilerContext; import org.apache.sling.scripting.sightly.impl.filter.ExpressionContext; @@ -40,7 +42,7 @@ public class ElementPlugin extends Abstr return new DefaultPluginInvoke() { - private final ExpressionNode node = compilerContext.adjustToContext(expression, MarkupContext.ELEMENT_NAME, ExpressionContext + private final ExpressionNode node = adjustContext(compilerContext, expression, MarkupContext.ELEMENT_NAME, ExpressionContext .ELEMENT).getRoot(); private String tagVar = compilerContext.generateVariable("tagVar"); @@ -87,4 +89,16 @@ public class ElementPlugin extends Abstr }; } + + private Expression adjustContext(CompilerContext compilerContext, Expression expression, MarkupContext markupContext, + ExpressionContext expressionContext) { + ExpressionNode root = expression.getRoot(); + if (root instanceof RuntimeCall) { + RuntimeCall runtimeCall = (RuntimeCall) root; + if (runtimeCall.getFunctionName().equals(RuntimeFunction.XSS)) { + return expression; + } + } + return compilerContext.adjustToContext(expression, markupContext, expressionContext); + } } Modified: sling/trunk/bundles/scripting/sightly/testing-content/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/testing-content/pom.xml?rev=1756915&r1=1756914&r2=1756915&view=diff ============================================================================== --- sling/trunk/bundles/scripting/sightly/testing-content/pom.xml (original) +++ sling/trunk/bundles/scripting/sightly/testing-content/pom.xml Fri Aug 19 13:33:14 2016 @@ -100,7 +100,7 @@ <artifactItem> <groupId>io.sightly</groupId> <artifactId>io.sightly.tck</artifactId> - <version>1.2.3</version> + <version>1.2.4</version> <type>jar</type> <outputDirectory>${project.build.directory}/sightlytck/</outputDirectory> <includes>**/*.html,**/*.js,**/*.java</includes> Modified: sling/trunk/bundles/scripting/sightly/testing/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/testing/pom.xml?rev=1756915&r1=1756914&r2=1756915&view=diff ============================================================================== --- sling/trunk/bundles/scripting/sightly/testing/pom.xml (original) +++ sling/trunk/bundles/scripting/sightly/testing/pom.xml Fri Aug 19 13:33:14 2016 @@ -196,7 +196,7 @@ <dependency> <groupId>io.sightly</groupId> <artifactId>io.sightly.tck</artifactId> - <version>1.2.3</version> + <version>1.2.4</version> <scope>test</scope> <exclusions> <exclusion>