updates to processing of Web pages:

1) adopted the code from Rational for HTML handling
    i) extended it to integrate better source mapping into IR
    ii) integrated fixes from the old html processing to collect more info on forms
    iii) added some copyright comments
  2) updated version of jericho
  3) added support for nu.validator for html5
  4) added script to fetch html parser jars, and removed binary jar
  

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4093 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
This commit is contained in:
dolby-oss 2011-04-04 15:27:43 +00:00
parent 79b44cc3bc
commit 3c35edb899
3 changed files with 37 additions and 11 deletions

View File

@ -22,6 +22,6 @@ public class TestSimplePageCallGraphShapeRhino extends TestSimplePageCallGraphSh
@Before
public void setUp() {
com.ibm.wala.cast.js.ipa.callgraph.Util.setTranslatorFactory(new CAstRhinoTranslatorFactory());
com.ibm.wala.cast.js.ipa.callgraph.Util.setTranslatorFactory(new CAstRhinoTranslatorFactory());
}
}

View File

@ -0,0 +1,25 @@
package com.ibm.wala.cast.js.test;
import org.junit.Before;
import com.ibm.wala.cast.js.html.IHtmlParser;
import com.ibm.wala.cast.js.html.IHtmlParserFactory;
import com.ibm.wala.cast.js.html.WebUtil;
import com.ibm.wala.cast.js.html.nu_validator.NuValidatorHtmlParser;
public class TestSimplePageCallGraphShapeRhinoNu extends TestSimplePageCallGraphShapeRhino {
public static void main(String[] args) {
justThisTest(TestSimplePageCallGraphShapeRhinoNu.class);
}
@Before
public void setUp() {
super.setUp();
WebUtil.setFactory(new IHtmlParserFactory() {
public IHtmlParser getParser() {
return new NuValidatorHtmlParser();
}
});
}
}

View File

@ -2,20 +2,21 @@ package com.ibm.wala.cast.js.vis;
import java.io.IOException;
import java.net.URL;
import java.util.Map;
import java.util.Set;
import com.ibm.wala.cast.js.html.DefaultSourceExtractor;
import com.ibm.wala.cast.js.html.DomLessSourceExtractor;
import com.ibm.wala.cast.js.html.FileMapping;
import com.ibm.wala.cast.js.html.IdentityUrlResover;
import com.ibm.wala.cast.js.html.IdentityUrlResolver;
import com.ibm.wala.cast.js.html.JSSourceExtractor;
import com.ibm.wala.cast.js.html.MappedSourceModule;
import com.ibm.wala.cast.js.html.WebUtil;
import com.ibm.wala.cast.js.html.jericho.JerichoHtmlParser;
import com.ibm.wala.cast.js.ipa.callgraph.JSCFABuilder;
import com.ibm.wala.cast.js.loader.JavaScriptLoader;
import com.ibm.wala.cast.js.test.Util;
import com.ibm.wala.cast.js.translator.CAstRhinoTranslatorFactory;
import com.ibm.wala.cast.js.util.Generator;
import com.ibm.wala.classLoader.SourceFileModule;
import com.ibm.wala.classLoader.SourceModule;
import com.ibm.wala.ipa.callgraph.CallGraph;
import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis;
import com.ibm.wala.ipa.cha.ClassHierarchyException;
@ -34,9 +35,9 @@ public class JsViewerDriver {
// computing CG + PA
Util.setTranslatorFactory(new CAstRhinoTranslatorFactory());
JavaScriptLoader.addBootstrapFile(Generator.preamble);
JavaScriptLoader.addBootstrapFile(WebUtil.preamble);
SourceFileModule[] sources = getSources(domless, url);
SourceModule[] sources = getSources(domless, url);
JSCFABuilder builder = Util.makeCGBuilder(sources, false);
builder.setBaseURL(url);
@ -47,7 +48,7 @@ public class JsViewerDriver {
new JsViewer(cg, pa);
}
private static SourceFileModule[] getSources(boolean domless, URL url)
private static SourceModule[] getSources(boolean domless, URL url)
throws IOException {
JSSourceExtractor sourceExtractor;
if (domless ){
@ -56,10 +57,10 @@ public class JsViewerDriver {
sourceExtractor = new DefaultSourceExtractor();
}
Map<SourceFileModule, FileMapping> sourcesMap = sourceExtractor.extractSources(url, new JerichoHtmlParser(), new IdentityUrlResover());
SourceFileModule[] sources = new SourceFileModule[sourcesMap.size()];
Set<MappedSourceModule> sourcesMap = sourceExtractor.extractSources(url, new JerichoHtmlParser(), new IdentityUrlResolver());
SourceModule[] sources = new SourceFileModule[sourcesMap.size()];
int i = 0;
for (SourceFileModule m : sourcesMap.keySet()){
for (SourceModule m : sourcesMap){
sources[i++] = m;
}
return sources;