Author: johnh
Date: Sat Nov 14 00:04:21 2009
New Revision: 836067

URL: http://svn.apache.org/viewvc?rev=836067&view=rev
Log:
Disallow <script type="os/data"> nodes from <head>. Neko's parser, as of 
v1.9.13, explicitly disallows children of <head> to have child nodes of their 
own (except for #text), breaking os/data nodes in <head>.

As noted in discussion, there may be good reasons to allow os/data and 
os/template in <head> at some point, but at present it appears that nobody uses 
this at present.


Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSimplifiedHtmlParser.java
    
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test-socialmarkup.html

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSimplifiedHtmlParser.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSimplifiedHtmlParser.java?rev=836067&r1=836066&r2=836067&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSimplifiedHtmlParser.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSimplifiedHtmlParser.java
 Sat Nov 14 00:04:21 2009
@@ -75,12 +75,12 @@
     OSML_TEMPLATE_ELEMENT.parent =
         new HTMLElements.Element[]{HTMLElements.getElement(HTMLElements.BODY)};
 
-    // data tags are allowed in HEAD or BODY
+    // data tags are allowed in BODY only, since Neko disallows HEAD elements 
from
+    // having child elements of their own.
     OSML_DATA_ELEMENT = new HTMLElements.Element(unknown.code, 
OSML_TEMPLATE_TAG,
         unknown.flags, HTMLElements.BODY, unknown.closes);
     OSML_DATA_ELEMENT.parent = new HTMLElements.Element[]{
-        HTMLElements.getElement(HTMLElements.BODY),
-        HTMLElements.getElement(HTMLElements.HEAD)};
+        HTMLElements.getElement(HTMLElements.BODY)};
   }
 
   private static final Map<String, HTMLElements.Element> OSML_ELEMENTS = 
ImmutableMap.of(

Modified: 
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test-socialmarkup.html
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test-socialmarkup.html?rev=836067&r1=836066&r2=836067&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test-socialmarkup.html
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test-socialmarkup.html
 Sat Nov 14 00:04:21 2009
@@ -1,3 +1,5 @@
+<link rel="foo"></link>
+
 <script type="text/os-data" xmlns:os="http://ns.opensocial.org/2008/markup";>
   <os:ViewerRequest key="viewer"/>
 </script>
@@ -14,4 +16,4 @@
 
 <span>Some content</span>
 
-<div><!-- foo -->bar<!-- baz --></div>
\ No newline at end of file
+<div><!-- foo -->bar<!-- baz --></div>


Reply via email to