|
Clone of http://codereview.appspot.com/61041 -- taking change from msamuel to submission.
* * * * *
Rewrote HTML Compiler and HTML Sanitizer to output Javascript
and static HTML instead of just Javascript.
http://code.google.com/p/google-caja/issues/detail?id=294
Issue 294: Caja produces pages that don't work if Javascript is disabled
The problem is that, in order to preserve execution order
properties, we emit HTML (and CSS?) as Javascript that builds the
page.
We need to also (optionally) output just the HTML and CSS in a
<noscript> tag.
This makes two major changes:
(1) Replaces HtmlSanitizer and HtmlCompiler with a mechanism that
outputs a static HTML chunk and then reworks it to add dynamic
attributes.
(2) Added an ID suffix to PluginMeta so that containers which can
avoid suffix overlap can move more rewriting to the static side.
The new HtmlSanitizer and HtmlCompiler use that when rewriting
attributes, and when present, no javascript is needed to emit
CSS so a noscript version of a gadget will be properly styled.
The new Sanitizer and Compiler are based on the scheme described in
http://google-caja.googlecode.com/svn/trunk/doc/html/templates/TemplateCompiler.html
and can be extended to implement the entire template scheme.
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+3142 lines, -5168 lines) |
Patch |
 |
M |
build.xml
|
View
|
1
2
3
4
|
6 chunks |
+13 lines, -18 lines |
0 comments
|
Download
|
 |
M |
doc/html/templates/TemplateCompiler.html
|
View
|
1
2
3
4
|
16 chunks |
+47 lines, -42 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/demos/applet/CajaApplet.java
|
View
|
1
2
3
4
|
4 chunks |
+5 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/demos/lolcat-search/search.html
|
View
|
|
3 chunks |
+37 lines, -3 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/demos/slides/index.html
|
View
|
|
7 chunks |
+59 lines, -12 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/lang/css/css-extensions-whitelist.json
|
View
|
1
2
3
4
|
1 chunk |
+3 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/lexer/Keyword.java
|
View
|
1
2
3
4
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/lexer/escaping/Escaping.java
|
View
|
1
2
3
4
|
3 chunks |
+7 lines, -6 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/opensocial/DefaultGadgetRewriter.java
|
View
|
1
2
3
4
|
5 chunks |
+9 lines, -20 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/parser/html/AbstractElementStack.java
|
View
|
1
2
3
4
|
1 chunk |
+4 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/parser/html/XmlElementStack.java
|
View
|
1
2
3
4
|
1 chunk |
+4 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/parser/js/CajoledModule.java
|
View
|
1
2
3
4
|
2 chunks |
+1 line, -3 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/parser/js/ExpressionStmt.java
|
View
|
1
2
3
4
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/parser/js/Parser.java
|
View
|
1
2
3
4
|
4 chunks |
+12 lines, -14 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/parser/js/TranslatedCode.java
|
View
|
1
2
3
4
|
1 chunk |
+3 lines, -3 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/parser/js/UncajoledModule.java
|
View
|
1
2
3
4
|
1 chunk |
+4 lines, -4 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/parser/quasiliteral/CajitaRewriter.java
|
View
|
1
2
3
4
|
2 chunks |
+11 lines, -7 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/plugin/BuildServiceImplementation.java
|
View
|
1
2
3
4
|
6 chunks |
+42 lines, -9 lines |
0 comments
|
Download
|
 |
D |
src/com/google/caja/plugin/CssCompiler.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -214 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/plugin/CssRewriter.java
|
View
|
1
2
3
4
|
2 chunks |
+9 lines, -8 lines |
0 comments
|
Download
|
 |
A + |
src/com/google/caja/plugin/CssRuleRewriter.java
|
View
|
|
8 chunks |
+20 lines, -32 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/plugin/Dom.java
|
View
|
1
2
3
4
|
2 chunks |
+13 lines, -0 lines |
0 comments
|
Download
|
 |
D |
src/com/google/caja/plugin/DomAttributeConstraint.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -181 lines |
0 comments
|
Download
|
 |
D |
src/com/google/caja/plugin/DomProcessingEvents.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -488 lines |
0 comments
|
Download
|
 |
A |
src/com/google/caja/plugin/ExtractedHtmlContent.java
|
View
|
1
|
1 chunk |
+40 lines, -0 lines |
0 comments
|
Download
|
 |
D |
src/com/google/caja/plugin/HtmlCompiler.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -751 lines |
0 comments
|
Download
|
 |
D |
src/com/google/caja/plugin/HtmlSanitizer.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -231 lines |
0 comments
|
Download
|
 |
D |
src/com/google/caja/plugin/IdentifierWriter.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -169 lines |
0 comments
|
Download
|
 |
D |
src/com/google/caja/plugin/JsWriter.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -188 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/plugin/PluginCompiler.java
|
View
|
1
2
3
4
|
5 chunks |
+27 lines, -9 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/plugin/PluginMeta.java
|
View
|
1
2
3
4
|
2 chunks |
+17 lines, -1 line |
0 comments
|
Download
|
 |
D |
src/com/google/caja/plugin/TreeConstruction.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -70 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/plugin/html-emitter.js
|
View
|
1
2
3
4
|
1 chunk |
+200 lines, -143 lines |
0 comments
|
Download
|
 |
D |
src/com/google/caja/plugin/stages/CompileCssStage.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -47 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/plugin/stages/CompileHtmlStage.java
|
View
|
1
2
3
4
|
2 chunks |
+41 lines, -39 lines |
0 comments
|
Download
|
 |
A + |
src/com/google/caja/plugin/stages/RewriteCssStage.java
|
View
|
|
2 chunks |
+4 lines, -8 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/plugin/stages/RewriteHtmlStage.java
|
View
|
1
2
3
4
|
7 chunks |
+19 lines, -25 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/plugin/stages/SanitizeHtmlStage.java
|
View
|
1
2
3
4
|
2 chunks |
+5 lines, -4 lines |
0 comments
|
Download
|
 |
A |
src/com/google/caja/plugin/templates/IhtmlMessageType.java
|
View
|
|
1 chunk |
+78 lines, -0 lines |
0 comments
|
Download
|
 |
A |
src/com/google/caja/plugin/templates/QuasiUtil.java
|
View
|
|
1 chunk |
+56 lines, -0 lines |
0 comments
|
Download
|
 |
A |
src/com/google/caja/plugin/templates/SafeCssMaker.java
|
View
|
|
1 chunk |
+142 lines, -0 lines |
0 comments
|
Download
|
 |
A |
src/com/google/caja/plugin/templates/SafeHtmlMaker.java
|
View
|
1
|
1 chunk |
+495 lines, -0 lines |
0 comments
|
Download
|
 |
A + |
src/com/google/caja/plugin/templates/TemplateCompiler.java
|
View
|
1
2
|
6 chunks |
+423 lines, -575 lines |
0 comments
|
Download
|
 |
A + |
src/com/google/caja/plugin/templates/TemplateSanitizer.java
|
View
|
|
6 chunks |
+43 lines, -41 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/reporting/MessageGroup.java
|
View
|
1
2
3
4
|
1 chunk |
+3 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/service/CajolingService.java
|
View
|
1
2
3
4
|
5 chunks |
+37 lines, -6 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/service/GadgetHandler.java
|
View
|
1
2
3
4
|
3 chunks |
+9 lines, -4 lines |
0 comments
|
Download
|
 |
M |
src/com/google/caja/service/HtmlHandler.java
|
View
|
1
2
3
4
|
6 chunks |
+52 lines, -17 lines |
0 comments
|
Download
|
 |
M |
tests/com/google/caja/AllTests.java
|
View
|
1
2
3
4
|
5 chunks |
+8 lines, -8 lines |
0 comments
|
Download
|
 |
M |
tests/com/google/caja/demos/applet/CajaAppletTest.java
|
View
|
1
2
3
4
|
3 chunks |
+87 lines, -62 lines |
0 comments
|
Download
|
 |
M |
tests/com/google/caja/opensocial/DefaultGadgetRewriterTest.java
|
View
|
1
2
3
4
|
1 chunk |
+4 lines, -7 lines |
0 comments
|
Download
|
 |
M |
tests/com/google/caja/opensocial/example-rewritten.xml
|
View
|
1
2
3
4
|
4 chunks |
+25 lines, -9 lines |
0 comments
|
Download
|
 |
M |
tests/com/google/caja/parser/js/ParserTest.java
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -4 lines |
0 comments
|
Download
|
 |
M |
tests/com/google/caja/parser/quasiliteral/CajitaRewriterTest.java
|
View
|
1
2
3
4
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
 |
D |
tests/com/google/caja/plugin/CssCompilerTest.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -106 lines |
0 comments
|
Download
|
 |
M |
tests/com/google/caja/plugin/CssRewriterTest.java
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
A + |
tests/com/google/caja/plugin/CssRuleRewriterTest.java
|
View
|
|
2 chunks |
+22 lines, -14 lines |
0 comments
|
Download
|
 |
D |
tests/com/google/caja/plugin/DomProcessingEventsTest.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -178 lines |
0 comments
|
Download
|
 |
D |
tests/com/google/caja/plugin/DomProcessingEventsTestData.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -447 lines |
0 comments
|
Download
|
 |
M |
tests/com/google/caja/plugin/HtmlCompiledPluginTest.java
|
View
|
1
2
3
4
|
5 chunks |
+22 lines, -15 lines |
0 comments
|
Download
|
 |
D |
tests/com/google/caja/plugin/HtmlCompilerTest.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -214 lines |
0 comments
|
Download
|
 |
A |
tests/com/google/caja/plugin/HtmlEmitterTest.java
|
View
|
1
|
1 chunk |
+168 lines, -0 lines |
0 comments
|
Download
|
 |
D |
tests/com/google/caja/plugin/HtmlSanitizerTest.java
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -219 lines |
0 comments
|
Download
|
 |
D |
tests/com/google/caja/plugin/dom-processing-events-test.html
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -93 lines |
0 comments
|
Download
|
 |
M |
tests/com/google/caja/plugin/domita_test.html
|
View
|
1
2
3
4
|
2 chunks |
+34 lines, -4 lines |
0 comments
|
Download
|
 |
A |
tests/com/google/caja/plugin/html-emitter-test.html
|
View
|
|
1 chunk |
+78 lines, -0 lines |
0 comments
|
Download
|
 |
M |
tests/com/google/caja/plugin/stages/RewriteHtmlStageTest.java
|
View
|
1
2
3
4
|
7 chunks |
+30 lines, -6 lines |
0 comments
|
Download
|
 |
A |
tests/com/google/caja/plugin/templates/RenamingTest.java
|
View
|
|
1 chunk |
+23 lines, -0 lines |
0 comments
|
Download
|
 |
A + |
tests/com/google/caja/plugin/templates/TemplateCompilerTest.java
|
View
|
1
|
2 chunks |
+289 lines, -146 lines |
0 comments
|
Download
|
 |
A + |
tests/com/google/caja/plugin/templates/TemplateSanitizerTest.java
|
View
|
|
5 chunks |
+108 lines, -153 lines |
0 comments
|
Download
|
 |
A |
tests/com/google/caja/plugin/templates/template-compiler-golden1-dynamic.html
|
View
|
|
1 chunk |
+7 lines, -0 lines |
0 comments
|
Download
|
 |
A |
tests/com/google/caja/plugin/templates/template-compiler-golden1-dynamic.js
|
View
|
|
1 chunk |
+53 lines, -0 lines |
0 comments
|
Download
|
 |
A |
tests/com/google/caja/plugin/templates/template-compiler-golden1-static.html
|
View
|
|
1 chunk |
+11 lines, -0 lines |
0 comments
|
Download
|
 |
A |
tests/com/google/caja/plugin/templates/template-compiler-golden1-static.js
|
View
|
|
1 chunk |
+48 lines, -0 lines |
0 comments
|
Download
|
 |
A |
tests/com/google/caja/plugin/templates/template-compiler-input1.html
|
View
|
1
2
3
|
1 chunk |
+7 lines, -0 lines |
0 comments
|
Download
|
 |
M |
tests/com/google/caja/service/CajolingServiceTest.java
|
View
|
1
2
3
4
|
6 chunks |
+84 lines, -70 lines |
0 comments
|
Download
|
 |
M |
tests/com/google/caja/util/CajaTestCase.java
|
View
|
1
2
3
4
|
4 chunks |
+19 lines, -7 lines |
0 comments
|
Download
|
 |
M |
third_party/js/jqueryjs/runtest/env.js
|
View
|
1
2
3
4
|
2 chunks |
+4 lines, -1 line |
0 comments
|
Download
|
 |
M |
third_party/js/jsunit/2.2/jsUnitCore.js
|
View
|
1
2
3
4
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
Total messages: 6
|