Changeset 418
- Timestamp:
- Feb 11, 2013, 8:53:47 PM (13 years ago)
- Location:
- trunk/icedtea-web
- Files:
-
- 2 deleted
- 95 edited
- 512 copied
-
. (modified) (1 prop)
-
AUTHORS (modified) (1 diff)
-
ChangeLog (modified) (11 diffs)
-
Makefile.am (modified) (20 diffs)
-
Makefile.in (modified) (32 diffs)
-
NEWS (modified) (2 diffs)
-
acinclude.m4 (modified) (7 diffs)
-
aclocal.m4 (modified) (20 diffs)
-
config.guess (modified) (34 diffs)
-
config.sub (modified) (32 diffs)
-
configure (modified) (54 diffs)
-
configure.ac (modified) (6 diffs)
-
extra/net/sourceforge/javaws/about/Main.java (modified) (2 diffs)
-
extra/net/sourceforge/javaws/about/resources/about.html (modified) (1 diff)
-
extra/net/sourceforge/javaws/about/resources/notes.html (modified) (3 diffs)
-
install-sh (modified) (8 diffs)
-
jrunscript.in (modified) (1 diff)
-
launcher/javaws.in (modified) (3 diffs)
-
missing (modified) (6 diffs)
-
netx/net/sourceforge/jnlp/AbstractLaunchHandler.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/AbstractLaunchHandler.java )
-
netx/net/sourceforge/jnlp/AppletDesc.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/ApplicationDesc.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/DefaultLaunchHandler.java (modified) (4 diffs)
-
netx/net/sourceforge/jnlp/GuiLaunchHandler.java (modified) (6 diffs)
-
netx/net/sourceforge/jnlp/InstallerDesc.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/JNLPCreator.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/JNLPCreator.java )
-
netx/net/sourceforge/jnlp/JNLPFile.java (modified) (19 diffs)
-
netx/net/sourceforge/jnlp/JNLPMatcher.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/JNLPMatcher.java )
-
netx/net/sourceforge/jnlp/JNLPMatcherException.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/JNLPMatcherException.java )
-
netx/net/sourceforge/jnlp/JNLPSplashScreen.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/LaunchDesc.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/LaunchDesc.java )
-
netx/net/sourceforge/jnlp/LaunchException.java (modified) (7 diffs)
-
netx/net/sourceforge/jnlp/LaunchHandler.java (modified) (1 diff)
-
netx/net/sourceforge/jnlp/Launcher.java (modified) (7 diffs)
-
netx/net/sourceforge/jnlp/MissingInformationException.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/MissingInformationException.java )
-
netx/net/sourceforge/jnlp/MissingTitleException.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/MissingTitleException.java )
-
netx/net/sourceforge/jnlp/MissingVendorException.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/MissingVendorException.java )
-
netx/net/sourceforge/jnlp/NetxPanel.java (modified) (7 diffs)
-
netx/net/sourceforge/jnlp/Node.java (modified) (4 diffs)
-
netx/net/sourceforge/jnlp/Parser.java (modified) (8 diffs)
-
netx/net/sourceforge/jnlp/PluginBridge.java (modified) (12 diffs)
-
netx/net/sourceforge/jnlp/RequiredElementException.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/RequiredElementException.java )
-
netx/net/sourceforge/jnlp/ResourcesDesc.java (modified) (3 diffs)
-
netx/net/sourceforge/jnlp/SecurityDesc.java (modified) (4 diffs)
-
netx/net/sourceforge/jnlp/Version.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java (modified) (6 diffs)
-
netx/net/sourceforge/jnlp/cache/CacheUtil.java (modified) (10 diffs)
-
netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java (modified) (5 diffs)
-
netx/net/sourceforge/jnlp/cache/IllegalResourceDescriptorException.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/cache/IllegalResourceDescriptorException.java )
-
netx/net/sourceforge/jnlp/cache/LruCacheException.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/cache/LruCacheException.java )
-
netx/net/sourceforge/jnlp/cache/Resource.java (modified) (1 diff)
-
netx/net/sourceforge/jnlp/cache/ResourceTracker.java (modified) (25 diffs)
-
netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/controlpanel/TemporaryInternetFilesPanel.java (modified) (3 diffs)
-
netx/net/sourceforge/jnlp/resources/Messages.properties (modified) (7 diffs)
-
netx/net/sourceforge/jnlp/resources/question.png (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/resources/question.png )
-
netx/net/sourceforge/jnlp/runtime/AppThreadGroup.java (deleted)
-
netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/runtime/AppletInstance.java (modified) (1 diff)
-
netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/runtime/Boot.java (modified) (1 diff)
-
netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java (modified) (1 diff)
-
netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java (modified) (45 diffs)
-
netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java (modified) (10 diffs)
-
netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/runtime/pac-funcs.js (modified) (13 diffs)
-
netx/net/sourceforge/jnlp/security/AccessWarningPane.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/security/CertWarningPane.java (modified) (10 diffs)
-
netx/net/sourceforge/jnlp/security/CertificateUtils.java (modified) (4 diffs)
-
netx/net/sourceforge/jnlp/security/CertsInfoPane.java (modified) (1 diff)
-
netx/net/sourceforge/jnlp/security/KeyStores.java (modified) (3 diffs)
-
netx/net/sourceforge/jnlp/security/MoreInfoPane.java (modified) (4 diffs)
-
netx/net/sourceforge/jnlp/security/SecurityDialog.java (modified) (8 diffs)
-
netx/net/sourceforge/jnlp/security/SecurityDialogs.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java (modified) (3 diffs)
-
netx/net/sourceforge/jnlp/security/viewer/CertificatePane.java (modified) (5 diffs)
-
netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/services/ServiceUtil.java (modified) (2 diffs)
-
netx/net/sourceforge/jnlp/services/XPersistenceService.java (modified) (3 diffs)
-
netx/net/sourceforge/jnlp/tools/JarCertVerifier.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/tools/JarCertVerifier.java )
-
netx/net/sourceforge/jnlp/tools/JarSigner.java (deleted)
-
netx/net/sourceforge/jnlp/tools/KeyStoreUtil.java (modified) (1 diff)
-
netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java (modified) (1 diff)
-
netx/net/sourceforge/jnlp/util/ImageResources.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/util/ImageResources.java )
-
netx/net/sourceforge/jnlp/util/PropertiesFile.java (modified) (6 diffs)
-
netx/net/sourceforge/jnlp/util/replacements (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/util/replacements )
-
netx/net/sourceforge/jnlp/util/replacements/BASE64Encoder.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/util/replacements/BASE64Encoder.java )
-
netx/net/sourceforge/jnlp/util/replacements/CharacterEncoder.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/netx/net/sourceforge/jnlp/util/replacements/CharacterEncoder.java )
-
netx/net/sourceforge/nanoxml/XMLElement.java (modified) (2 diffs)
-
plugin/icedteanp/IcedTeaJavaRequestProcessor.cc (modified) (5 diffs)
-
plugin/icedteanp/IcedTeaNPPlugin.cc (modified) (23 diffs)
-
plugin/icedteanp/IcedTeaPluginRequestProcessor.cc (modified) (23 diffs)
-
plugin/icedteanp/IcedTeaPluginUtils.cc (modified) (15 diffs)
-
plugin/icedteanp/IcedTeaPluginUtils.h (modified) (2 diffs)
-
plugin/icedteanp/java/netscape/javascript/JSObject.java (modified) (2 diffs)
-
plugin/icedteanp/java/sun/applet/AppletSecurityContextManager.java (modified) (1 diff)
-
plugin/icedteanp/java/sun/applet/GetMemberPluginCallRequest.java (modified) (1 diff)
-
plugin/icedteanp/java/sun/applet/JavaConsole.java (modified) (3 diffs)
-
plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java (modified) (2 diffs)
-
plugin/icedteanp/java/sun/applet/PluginAppletViewer.java (modified) (5 diffs)
-
plugin/icedteanp/java/sun/applet/PluginCallRequest.java (modified) (1 diff)
-
plugin/icedteanp/java/sun/applet/PluginCallRequestFactory.java (modified) (2 diffs)
-
plugin/icedteanp/java/sun/applet/PluginCookieManager.java (modified) (2 diffs)
-
plugin/icedteanp/java/sun/applet/PluginException.java (modified) (1 diff)
-
plugin/icedteanp/java/sun/applet/PluginMain.java (modified) (2 diffs)
-
plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java (modified) (1 diff)
-
plugin/icedteanp/java/sun/applet/PluginStreamHandler.java (modified) (3 diffs)
-
tests/junit-runner/CommandLine.java (modified) (3 diffs)
-
tests/junit-runner/JunitLikeXmlOutputListener.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/junit-runner/JunitLikeXmlOutputListener.java )
-
tests/junit-runner/LessVerboseTextListener.java (modified) (5 diffs)
-
tests/netx/pac/pac-funcs-test.js (modified) (3 diffs)
-
tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java )
-
tests/netx/unit/net/sourceforge/jnlp/JNLPFileTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/JNLPFileTest.java )
-
tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java )
-
tests/netx/unit/net/sourceforge/jnlp/LaunchExceptionTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/LaunchExceptionTest.java )
-
tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java (modified) (4 diffs)
-
tests/netx/unit/net/sourceforge/jnlp/ParserMalformedXml.java (modified) (4 diffs)
-
tests/netx/unit/net/sourceforge/jnlp/ParserTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/ParserTest.java )
-
tests/netx/unit/net/sourceforge/jnlp/PluginBridgeTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/PluginBridgeTest.java )
-
tests/netx/unit/net/sourceforge/jnlp/application (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/application )
-
tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/application/application1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/application/application1.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/application/application2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/application/application2.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/application/application3.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/application/application3.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/application/application4.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/application/application4.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/application/application5.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/application/application5.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/application/application6.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/application/application6.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/application/application7.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/application/application7.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/application/application8.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/application/application8.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/cache (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/cache )
-
tests/netx/unit/net/sourceforge/jnlp/cache/CacheLRUWrapperTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/cache/CacheLRUWrapperTest.java )
-
tests/netx/unit/net/sourceforge/jnlp/cache/CacheUtilTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/cache/CacheUtilTest.java )
-
tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java )
-
tests/netx/unit/net/sourceforge/jnlp/launchApp.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/launchApp.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/runtime (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/runtime )
-
tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java )
-
tests/netx/unit/net/sourceforge/jnlp/templates (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/templates )
-
tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/templates/template1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/templates/template1.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/templates/template2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/templates/template2.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/templates/template3.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/templates/template3.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/templates/template4.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/templates/template4.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/templates/template5.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/templates/template5.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/templates/template6.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/templates/template6.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/templates/template7.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/templates/template7.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/templates/template9.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/templates/template9.jnlp )
-
tests/netx/unit/net/sourceforge/jnlp/tools (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/tools )
-
tests/netx/unit/net/sourceforge/jnlp/tools/JarCertVerifierTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/tools/JarCertVerifierTest.java )
-
tests/netx/unit/net/sourceforge/jnlp/util (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/util )
-
tests/netx/unit/net/sourceforge/jnlp/util/ImageResourcesTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/util/ImageResourcesTest.java )
-
tests/netx/unit/net/sourceforge/jnlp/util/PropertiesFileTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/util/PropertiesFileTest.java )
-
tests/netx/unit/net/sourceforge/jnlp/util/replacements (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/util/replacements )
-
tests/netx/unit/net/sourceforge/jnlp/util/replacements/BASE64EncoderTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/netx/unit/net/sourceforge/jnlp/util/replacements/BASE64EncoderTest.java )
-
tests/report-styles (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/report-styles )
-
tests/report-styles/index.js (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/report-styles/index.js )
-
tests/report-styles/jreport.xsl (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/report-styles/jreport.xsl )
-
tests/report-styles/logs.xsl (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/report-styles/logs.xsl )
-
tests/report-styles/output.css (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/report-styles/output.css )
-
tests/report-styles/report.css (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/report-styles/report.css )
-
tests/reproducers (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers )
-
tests/reproducers/README (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/README )
-
tests/reproducers/custom (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom )
-
tests/reproducers/custom/AppletFolderInArchiveTag (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/AppletFolderInArchiveTag )
-
tests/reproducers/custom/AppletFolderInArchiveTag/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/AppletFolderInArchiveTag/resources )
-
tests/reproducers/custom/AppletFolderInArchiveTag/resources/AppletFolderInArchiveTag.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/AppletFolderInArchiveTag/resources/AppletFolderInArchiveTag.html )
-
tests/reproducers/custom/AppletFolderInArchiveTag/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/AppletFolderInArchiveTag/srcs )
-
tests/reproducers/custom/AppletFolderInArchiveTag/srcs/AppletFolderInArchiveTag.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/AppletFolderInArchiveTag/srcs/AppletFolderInArchiveTag.java )
-
tests/reproducers/custom/AppletFolderInArchiveTag/srcs/Makefile (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/AppletFolderInArchiveTag/srcs/Makefile )
-
tests/reproducers/custom/AppletFolderInArchiveTag/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/AppletFolderInArchiveTag/testcases )
-
tests/reproducers/custom/AppletFolderInArchiveTag/testcases/AppletFolderInArchiveTagTests.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/AppletFolderInArchiveTag/testcases/AppletFolderInArchiveTagTests.java )
-
tests/reproducers/custom/UnsignedContentInMETAINF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/UnsignedContentInMETAINF )
-
tests/reproducers/custom/UnsignedContentInMETAINF/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/UnsignedContentInMETAINF/resources )
-
tests/reproducers/custom/UnsignedContentInMETAINF/resources/UnsignedContentInMETAINF.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/UnsignedContentInMETAINF/resources/UnsignedContentInMETAINF.jnlp )
-
tests/reproducers/custom/UnsignedContentInMETAINF/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/UnsignedContentInMETAINF/srcs )
-
tests/reproducers/custom/UnsignedContentInMETAINF/srcs/META-INF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/UnsignedContentInMETAINF/srcs/META-INF )
-
tests/reproducers/custom/UnsignedContentInMETAINF/srcs/META-INF/unsigned_file_in_metainf (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/UnsignedContentInMETAINF/srcs/META-INF/unsigned_file_in_metainf )
-
tests/reproducers/custom/UnsignedContentInMETAINF/srcs/Makefile (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/UnsignedContentInMETAINF/srcs/Makefile )
-
tests/reproducers/custom/UnsignedContentInMETAINF/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/UnsignedContentInMETAINF/testcases )
-
tests/reproducers/custom/UnsignedContentInMETAINF/testcases/UnsignedContentInMETAINF.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/custom/UnsignedContentInMETAINF/testcases/UnsignedContentInMETAINF.java )
-
tests/reproducers/signed (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed )
-
tests/reproducers/signed/AccessClassInPackageSigned (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AccessClassInPackageSigned )
-
tests/reproducers/signed/AccessClassInPackageSigned/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AccessClassInPackageSigned/resources )
-
tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp )
-
tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp )
-
tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp )
-
tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp )
-
tests/reproducers/signed/AccessClassInPackageSigned/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AccessClassInPackageSigned/srcs )
-
tests/reproducers/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java )
-
tests/reproducers/signed/AppletTestSigned (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AppletTestSigned )
-
tests/reproducers/signed/AppletTestSigned/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AppletTestSigned/resources )
-
tests/reproducers/signed/AppletTestSigned/resources/AppletTestSigned.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AppletTestSigned/resources/AppletTestSigned.html )
-
tests/reproducers/signed/AppletTestSigned/resources/AppletTestSigned.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AppletTestSigned/resources/AppletTestSigned.jnlp )
-
tests/reproducers/signed/AppletTestSigned/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AppletTestSigned/srcs )
-
tests/reproducers/signed/AppletTestSigned/srcs/AppletTestSigned.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AppletTestSigned/srcs/AppletTestSigned.java )
-
tests/reproducers/signed/AppletTestSigned/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AppletTestSigned/testcases )
-
tests/reproducers/signed/AppletTestSigned/testcases/AppletTestSignedTests.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/AppletTestSigned/testcases/AppletTestSignedTests.java )
-
tests/reproducers/signed/CacheReproducer (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/CacheReproducer )
-
tests/reproducers/signed/CacheReproducer/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/CacheReproducer/resources )
-
tests/reproducers/signed/CacheReproducer/resources/CacheReproducer1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/CacheReproducer/resources/CacheReproducer1.jnlp )
-
tests/reproducers/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp )
-
tests/reproducers/signed/CacheReproducer/resources/CacheReproducer2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/CacheReproducer/resources/CacheReproducer2.jnlp )
-
tests/reproducers/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp )
-
tests/reproducers/signed/CacheReproducer/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/CacheReproducer/srcs )
-
tests/reproducers/signed/CacheReproducer/srcs/CacheReproducer.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/CacheReproducer/srcs/CacheReproducer.java )
-
tests/reproducers/signed/CacheReproducer/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/CacheReproducer/testcases )
-
tests/reproducers/signed/CacheReproducer/testcases/CacheReproducerTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/CacheReproducer/testcases/CacheReproducerTest.java )
-
tests/reproducers/signed/Classpath.Manifest.Test.Helper (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/Classpath.Manifest.Test.Helper )
-
tests/reproducers/signed/Classpath.Manifest.Test.Helper/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/Classpath.Manifest.Test.Helper/srcs )
-
tests/reproducers/signed/Classpath.Manifest.Test.Helper/srcs/CheckForClasspath.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/Classpath.Manifest.Test.Helper/srcs/CheckForClasspath.java )
-
tests/reproducers/signed/ClasspathManifestTest (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ClasspathManifestTest )
-
tests/reproducers/signed/ClasspathManifestTest/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ClasspathManifestTest/resources )
-
tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestAppletTest.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestAppletTest.html )
-
tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestAppletTest.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestAppletTest.jnlp )
-
tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestApplicationTest.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestApplicationTest.jnlp )
-
tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestJNLPHrefTest.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestJNLPHrefTest.html )
-
tests/reproducers/signed/ClasspathManifestTest/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ClasspathManifestTest/srcs )
-
tests/reproducers/signed/ClasspathManifestTest/srcs/ClasspathManifest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ClasspathManifestTest/srcs/ClasspathManifest.java )
-
tests/reproducers/signed/ClasspathManifestTest/srcs/META-INF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ClasspathManifestTest/srcs/META-INF )
-
tests/reproducers/signed/ClasspathManifestTest/srcs/META-INF/MANIFEST.MF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ClasspathManifestTest/srcs/META-INF/MANIFEST.MF )
-
tests/reproducers/signed/ClasspathManifestTest/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ClasspathManifestTest/testcases )
-
tests/reproducers/signed/ClasspathManifestTest/testcases/ClasspathManifestTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ClasspathManifestTest/testcases/ClasspathManifestTest.java )
-
tests/reproducers/signed/ExtensionJnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ExtensionJnlp )
-
tests/reproducers/signed/ExtensionJnlp/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ExtensionJnlp/resources )
-
tests/reproducers/signed/ExtensionJnlp/resources/UsesSignedJar.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ExtensionJnlp/resources/UsesSignedJar.jnlp )
-
tests/reproducers/signed/ExtensionJnlp/resources/UsesSignedJarExtension.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ExtensionJnlp/resources/UsesSignedJarExtension.jnlp )
-
tests/reproducers/signed/ExtensionJnlp/resources/UsesSignedJnlp.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ExtensionJnlp/resources/UsesSignedJnlp.jnlp )
-
tests/reproducers/signed/ExtensionJnlp/resources/UsesSignedJnlpExtension.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ExtensionJnlp/resources/UsesSignedJnlpExtension.jnlp )
-
tests/reproducers/signed/ExtensionJnlp/resources/UsesSignedJnlpJarAndSignedJarExtension.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ExtensionJnlp/resources/UsesSignedJnlpJarAndSignedJarExtension.jnlp )
-
tests/reproducers/signed/ExtensionJnlp/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ExtensionJnlp/testcases )
-
tests/reproducers/signed/ExtensionJnlp/testcases/ExtensionJnlpTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ExtensionJnlp/testcases/ExtensionJnlpTest.java )
-
tests/reproducers/signed/InternalClassloaderWithDownloadedResource (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/InternalClassloaderWithDownloadedResource )
-
tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources )
-
tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-hack.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-hack.jnlp )
-
tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-new.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-new.jnlp )
-
tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.html )
-
tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.jnlp )
-
tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.html )
-
tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.jnlp )
-
tests/reproducers/signed/InternalClassloaderWithDownloadedResource/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/srcs )
-
tests/reproducers/signed/InternalClassloaderWithDownloadedResource/srcs/InternalClassloaderWithDownloadedResource.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/srcs/InternalClassloaderWithDownloadedResource.java )
-
tests/reproducers/signed/InternalClassloaderWithDownloadedResource/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/testcases )
-
tests/reproducers/signed/InternalClassloaderWithDownloadedResource/testcases/InternalClassloaderWithDownloadedResourceTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/testcases/InternalClassloaderWithDownloadedResourceTest.java )
-
tests/reproducers/signed/MissingJar (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/MissingJar )
-
tests/reproducers/signed/MissingJar/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/MissingJar/resources )
-
tests/reproducers/signed/MissingJar/resources/MissingJar.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/MissingJar/resources/MissingJar.jnlp )
-
tests/reproducers/signed/MissingJar/resources/MissingJar2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/MissingJar/resources/MissingJar2.jnlp )
-
tests/reproducers/signed/MissingJar/resources/MissingJar3.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/MissingJar/resources/MissingJar3.jnlp )
-
tests/reproducers/signed/MissingJar/resources/MissingJar4.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/MissingJar/resources/MissingJar4.jnlp )
-
tests/reproducers/signed/MissingJar/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/MissingJar/srcs )
-
tests/reproducers/signed/MissingJar/srcs/MissingJar.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/MissingJar/srcs/MissingJar.java )
-
tests/reproducers/signed/MissingJar/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/MissingJar/testcases )
-
tests/reproducers/signed/MissingJar/testcases/MissingJarTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/MissingJar/testcases/MissingJarTest.java )
-
tests/reproducers/signed/ReadPropertiesBySignedHack (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesBySignedHack )
-
tests/reproducers/signed/ReadPropertiesBySignedHack/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesBySignedHack/resources )
-
tests/reproducers/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp )
-
tests/reproducers/signed/ReadPropertiesBySignedHack/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesBySignedHack/srcs )
-
tests/reproducers/signed/ReadPropertiesBySignedHack/srcs/ReadPropertiesBySignedHack.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesBySignedHack/srcs/ReadPropertiesBySignedHack.java )
-
tests/reproducers/signed/ReadPropertiesBySignedHack/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesBySignedHack/testcases )
-
tests/reproducers/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java )
-
tests/reproducers/signed/ReadPropertiesSigned (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesSigned )
-
tests/reproducers/signed/ReadPropertiesSigned/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesSigned/resources )
-
tests/reproducers/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp )
-
tests/reproducers/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp )
-
tests/reproducers/signed/ReadPropertiesSigned/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesSigned/srcs )
-
tests/reproducers/signed/ReadPropertiesSigned/srcs/ReadPropertiesSigned.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesSigned/srcs/ReadPropertiesSigned.java )
-
tests/reproducers/signed/ReadPropertiesSigned/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesSigned/testcases )
-
tests/reproducers/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java )
-
tests/reproducers/signed/SavingCookies (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies )
-
tests/reproducers/signed/SavingCookies/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies/resources )
-
tests/reproducers/signed/SavingCookies/resources/CheckCookie.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies/resources/CheckCookie.html )
-
tests/reproducers/signed/SavingCookies/resources/CheckCookieAndGotoClear.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies/resources/CheckCookieAndGotoClear.html )
-
tests/reproducers/signed/SavingCookies/resources/ClearPersistentCookie.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies/resources/ClearPersistentCookie.html )
-
tests/reproducers/signed/SavingCookies/resources/SavePersistentCookie.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies/resources/SavePersistentCookie.html )
-
tests/reproducers/signed/SavingCookies/resources/SavePersistentCookieAndGotoCheck.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies/resources/SavePersistentCookieAndGotoCheck.html )
-
tests/reproducers/signed/SavingCookies/resources/SaveSessionCookie.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies/resources/SaveSessionCookie.html )
-
tests/reproducers/signed/SavingCookies/resources/SaveSessionCookieAndGotoCheck.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies/resources/SaveSessionCookieAndGotoCheck.html )
-
tests/reproducers/signed/SavingCookies/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies/srcs )
-
tests/reproducers/signed/SavingCookies/srcs/CheckingCookies.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies/srcs/CheckingCookies.java )
-
tests/reproducers/signed/SavingCookies/srcs/SavingCookies.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies/srcs/SavingCookies.java )
-
tests/reproducers/signed/SavingCookies/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies/testcases )
-
tests/reproducers/signed/SavingCookies/testcases/SavingCookiesTests.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SavingCookies/testcases/SavingCookiesTests.java )
-
tests/reproducers/signed/SignedJarResource (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJarResource )
-
tests/reproducers/signed/SignedJarResource/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJarResource/resources )
-
tests/reproducers/signed/SignedJarResource/resources/SignedJarExtension.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJarResource/resources/SignedJarExtension.jnlp )
-
tests/reproducers/signed/SignedJarResource/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJarResource/srcs )
-
tests/reproducers/signed/SignedJarResource/srcs/SignedJarResource.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJarResource/srcs/SignedJarResource.java )
-
tests/reproducers/signed/SignedJnlpApplication (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpApplication )
-
tests/reproducers/signed/SignedJnlpApplication/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpApplication/resources )
-
tests/reproducers/signed/SignedJnlpApplication/resources/SignedJnlpApplication1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpApplication/resources/SignedJnlpApplication1.jnlp )
-
tests/reproducers/signed/SignedJnlpApplication/resources/SignedJnlpApplication2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpApplication/resources/SignedJnlpApplication2.jnlp )
-
tests/reproducers/signed/SignedJnlpApplication/resources/SignedJnlpApplication3.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpApplication/resources/SignedJnlpApplication3.jnlp )
-
tests/reproducers/signed/SignedJnlpApplication/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpApplication/srcs )
-
tests/reproducers/signed/SignedJnlpApplication/srcs/JNLP-INF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpApplication/srcs/JNLP-INF )
-
tests/reproducers/signed/SignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp )
-
tests/reproducers/signed/SignedJnlpApplication/srcs/SignedJnlpApplication.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpApplication/srcs/SignedJnlpApplication.java )
-
tests/reproducers/signed/SignedJnlpApplication/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpApplication/testcases )
-
tests/reproducers/signed/SignedJnlpApplication/testcases/SignedJnlpApplicationTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpApplication/testcases/SignedJnlpApplicationTest.java )
-
tests/reproducers/signed/SignedJnlpCaseTestOne (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestOne )
-
tests/reproducers/signed/SignedJnlpCaseTestOne/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestOne/resources )
-
tests/reproducers/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne1.jnlp )
-
tests/reproducers/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne2.jnlp )
-
tests/reproducers/signed/SignedJnlpCaseTestOne/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestOne/srcs )
-
tests/reproducers/signed/SignedJnlpCaseTestOne/srcs/JNLP-INF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestOne/srcs/JNLP-INF )
-
tests/reproducers/signed/SignedJnlpCaseTestOne/srcs/JNLP-INF/aPpLiCaTioN.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestOne/srcs/JNLP-INF/aPpLiCaTioN.jnlp )
-
tests/reproducers/signed/SignedJnlpCaseTestOne/srcs/SignedJnlpCase.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestOne/srcs/SignedJnlpCase.java )
-
tests/reproducers/signed/SignedJnlpCaseTestOne/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestOne/testcases )
-
tests/reproducers/signed/SignedJnlpCaseTestOne/testcases/SignedJnlpCaseOneTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestOne/testcases/SignedJnlpCaseOneTest.java )
-
tests/reproducers/signed/SignedJnlpCaseTestTwo (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestTwo )
-
tests/reproducers/signed/SignedJnlpCaseTestTwo/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestTwo/resources )
-
tests/reproducers/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo1.jnlp )
-
tests/reproducers/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo2.jnlp )
-
tests/reproducers/signed/SignedJnlpCaseTestTwo/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestTwo/srcs )
-
tests/reproducers/signed/SignedJnlpCaseTestTwo/srcs/JNLP-INF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestTwo/srcs/JNLP-INF )
-
tests/reproducers/signed/SignedJnlpCaseTestTwo/srcs/JNLP-INF/aPpLiCaTiOn_tEmPlAte.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestTwo/srcs/JNLP-INF/aPpLiCaTiOn_tEmPlAte.jnlp )
-
tests/reproducers/signed/SignedJnlpCaseTestTwo/srcs/SignedJnlpCase.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestTwo/srcs/SignedJnlpCase.java )
-
tests/reproducers/signed/SignedJnlpCaseTestTwo/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestTwo/testcases )
-
tests/reproducers/signed/SignedJnlpCaseTestTwo/testcases/SignedJnlpCaseTwoTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpCaseTestTwo/testcases/SignedJnlpCaseTwoTest.java )
-
tests/reproducers/signed/SignedJnlpResource (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpResource )
-
tests/reproducers/signed/SignedJnlpResource/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpResource/resources )
-
tests/reproducers/signed/SignedJnlpResource/resources/MatchingSignedJnlpExtension.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpResource/resources/MatchingSignedJnlpExtension.jnlp )
-
tests/reproducers/signed/SignedJnlpResource/resources/UnmatchingSignedJnlpExtension.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpResource/resources/UnmatchingSignedJnlpExtension.jnlp )
-
tests/reproducers/signed/SignedJnlpResource/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpResource/srcs )
-
tests/reproducers/signed/SignedJnlpResource/srcs/JNLP-INF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpResource/srcs/JNLP-INF )
-
tests/reproducers/signed/SignedJnlpResource/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpResource/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp )
-
tests/reproducers/signed/SignedJnlpResource/srcs/SignedJnlpResource.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpResource/srcs/SignedJnlpResource.java )
-
tests/reproducers/signed/SignedJnlpTemplate (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpTemplate )
-
tests/reproducers/signed/SignedJnlpTemplate/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpTemplate/resources )
-
tests/reproducers/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate1.jnlp )
-
tests/reproducers/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate2.jnlp )
-
tests/reproducers/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate3.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate3.jnlp )
-
tests/reproducers/signed/SignedJnlpTemplate/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpTemplate/srcs )
-
tests/reproducers/signed/SignedJnlpTemplate/srcs/JNLP-INF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpTemplate/srcs/JNLP-INF )
-
tests/reproducers/signed/SignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp )
-
tests/reproducers/signed/SignedJnlpTemplate/srcs/SignedJnlpTemplate.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpTemplate/srcs/SignedJnlpTemplate.java )
-
tests/reproducers/signed/SignedJnlpTemplate/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpTemplate/testcases )
-
tests/reproducers/signed/SignedJnlpTemplate/testcases/SignedJnlpTemplateTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SignedJnlpTemplate/testcases/SignedJnlpTemplateTest.java )
-
tests/reproducers/signed/SimpletestSigned1 (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SimpletestSigned1 )
-
tests/reproducers/signed/SimpletestSigned1/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SimpletestSigned1/resources )
-
tests/reproducers/signed/SimpletestSigned1/resources/SimpletestSigned1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SimpletestSigned1/resources/SimpletestSigned1.jnlp )
-
tests/reproducers/signed/SimpletestSigned1/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SimpletestSigned1/srcs )
-
tests/reproducers/signed/SimpletestSigned1/srcs/SimpletestSigned1.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/SimpletestSigned1/srcs/SimpletestSigned1.java )
-
tests/reproducers/signed/Spaces can be everywhere signed (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/Spaces can be everywhere signed )
-
tests/reproducers/signed/Spaces can be everywhere signed/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/Spaces can be everywhere signed/resources ) (1 prop)
-
tests/reproducers/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere1 signed.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere1 signed.jnlp ) (1 prop)
-
tests/reproducers/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere2 signed.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere2 signed.jnlp ) (1 prop)
-
tests/reproducers/signed/Spaces can be everywhere signed/resources/SpacesCanBeEverywhere1signed.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/Spaces can be everywhere signed/resources/SpacesCanBeEverywhere1signed.jnlp ) (1 prop)
-
tests/reproducers/signed/Spaces can be everywhere signed/resources/spaces applet Tests signed.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/Spaces can be everywhere signed/resources/spaces applet Tests signed.html ) (1 prop)
-
tests/reproducers/signed/Spaces can be everywhere signed/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/Spaces can be everywhere signed/srcs )
-
tests/reproducers/signed/Spaces can be everywhere signed/srcs/SpacesCanBeEverywhereSigned.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/Spaces can be everywhere signed/srcs/SpacesCanBeEverywhereSigned.java )
-
tests/reproducers/signed/Spaces can be everywhere signed/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/Spaces can be everywhere signed/testcases )
-
tests/reproducers/signed/Spaces can be everywhere signed/testcases/SpacesCanBeEverywhereTestsSigned.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/signed/Spaces can be everywhere signed/testcases/SpacesCanBeEverywhereTestsSigned.java )
-
tests/reproducers/simple (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple )
-
tests/reproducers/simple/AccessClassInPackage (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AccessClassInPackage )
-
tests/reproducers/simple/AccessClassInPackage/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AccessClassInPackage/resources )
-
tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp )
-
tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp )
-
tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp )
-
tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp )
-
tests/reproducers/simple/AccessClassInPackage/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AccessClassInPackage/srcs )
-
tests/reproducers/simple/AccessClassInPackage/srcs/AccessClassInPackage.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AccessClassInPackage/srcs/AccessClassInPackage.java )
-
tests/reproducers/simple/AccessClassInPackage/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AccessClassInPackage/testcases )
-
tests/reproducers/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java )
-
tests/reproducers/simple/AddShutdownHook (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AddShutdownHook )
-
tests/reproducers/simple/AddShutdownHook/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AddShutdownHook/resources )
-
tests/reproducers/simple/AddShutdownHook/resources/AddShutdownHook.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AddShutdownHook/resources/AddShutdownHook.jnlp )
-
tests/reproducers/simple/AddShutdownHook/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AddShutdownHook/srcs )
-
tests/reproducers/simple/AddShutdownHook/srcs/AddShutdownHook.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AddShutdownHook/srcs/AddShutdownHook.java )
-
tests/reproducers/simple/AddShutdownHook/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AddShutdownHook/testcases )
-
tests/reproducers/simple/AddShutdownHook/testcases/AddShutdownHookTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AddShutdownHook/testcases/AddShutdownHookTest.java )
-
tests/reproducers/simple/AllStackTraces (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AllStackTraces )
-
tests/reproducers/simple/AllStackTraces/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AllStackTraces/resources )
-
tests/reproducers/simple/AllStackTraces/resources/AllStackTraces.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AllStackTraces/resources/AllStackTraces.jnlp )
-
tests/reproducers/simple/AllStackTraces/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AllStackTraces/srcs )
-
tests/reproducers/simple/AllStackTraces/srcs/AllStackTraces.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AllStackTraces/srcs/AllStackTraces.java )
-
tests/reproducers/simple/AllStackTraces/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AllStackTraces/testcases )
-
tests/reproducers/simple/AllStackTraces/testcases/AllStackTracesTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AllStackTraces/testcases/AllStackTracesTest.java )
-
tests/reproducers/simple/AppletBaseURLTest (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletBaseURLTest )
-
tests/reproducers/simple/AppletBaseURLTest/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletBaseURLTest/resources )
-
tests/reproducers/simple/AppletBaseURLTest/resources/AppletBaseURLTest.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletBaseURLTest/resources/AppletBaseURLTest.html )
-
tests/reproducers/simple/AppletBaseURLTest/resources/AppletBaseURLTest.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletBaseURLTest/resources/AppletBaseURLTest.jnlp )
-
tests/reproducers/simple/AppletBaseURLTest/resources/AppletJNLPHrefBaseURLTest.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletBaseURLTest/resources/AppletJNLPHrefBaseURLTest.html )
-
tests/reproducers/simple/AppletBaseURLTest/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletBaseURLTest/srcs )
-
tests/reproducers/simple/AppletBaseURLTest/srcs/AppletBaseURL.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletBaseURLTest/srcs/AppletBaseURL.java )
-
tests/reproducers/simple/AppletBaseURLTest/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletBaseURLTest/testcases )
-
tests/reproducers/simple/AppletBaseURLTest/testcases/AppletBaseURLTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletBaseURLTest/testcases/AppletBaseURLTest.java )
-
tests/reproducers/simple/AppletReadsInvalidJar (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletReadsInvalidJar )
-
tests/reproducers/simple/AppletReadsInvalidJar/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletReadsInvalidJar/resources )
-
tests/reproducers/simple/AppletReadsInvalidJar/resources/AppletReadsInvalidJar.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletReadsInvalidJar/resources/AppletReadsInvalidJar.html )
-
tests/reproducers/simple/AppletReadsInvalidJar/resources/AppletReadsInvalidJar.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletReadsInvalidJar/resources/AppletReadsInvalidJar.jnlp )
-
tests/reproducers/simple/AppletReadsInvalidJar/resources/NOT_A_VALID_JAR.jar (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletReadsInvalidJar/resources/NOT_A_VALID_JAR.jar )
-
tests/reproducers/simple/AppletReadsInvalidJar/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletReadsInvalidJar/srcs )
-
tests/reproducers/simple/AppletReadsInvalidJar/srcs/Valid.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletReadsInvalidJar/srcs/Valid.java )
-
tests/reproducers/simple/AppletReadsInvalidJar/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletReadsInvalidJar/testcases )
-
tests/reproducers/simple/AppletReadsInvalidJar/testcases/AppletReadsInvalidJarTests.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletReadsInvalidJar/testcases/AppletReadsInvalidJarTests.java )
-
tests/reproducers/simple/AppletTakesLastParam (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTakesLastParam )
-
tests/reproducers/simple/AppletTakesLastParam/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTakesLastParam/resources )
-
tests/reproducers/simple/AppletTakesLastParam/resources/appletTakesLastParam.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTakesLastParam/resources/appletTakesLastParam.html )
-
tests/reproducers/simple/AppletTakesLastParam/resources/appletTakesLastParam.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTakesLastParam/resources/appletTakesLastParam.jnlp )
-
tests/reproducers/simple/AppletTakesLastParam/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTakesLastParam/srcs )
-
tests/reproducers/simple/AppletTakesLastParam/srcs/AppletTakesLastParam.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTakesLastParam/srcs/AppletTakesLastParam.java )
-
tests/reproducers/simple/AppletTakesLastParam/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTakesLastParam/testcases )
-
tests/reproducers/simple/AppletTakesLastParam/testcases/AppletTakesLastParamTests.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTakesLastParam/testcases/AppletTakesLastParamTests.java )
-
tests/reproducers/simple/AppletTest (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTest )
-
tests/reproducers/simple/AppletTest/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTest/resources )
-
tests/reproducers/simple/AppletTest/resources/AppletTest.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTest/resources/AppletTest.jnlp )
-
tests/reproducers/simple/AppletTest/resources/appletAutoTests.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTest/resources/appletAutoTests.html )
-
tests/reproducers/simple/AppletTest/resources/appletAutoTests2.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTest/resources/appletAutoTests2.html )
-
tests/reproducers/simple/AppletTest/resources/appletViewTest.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTest/resources/appletViewTest.html )
-
tests/reproducers/simple/AppletTest/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTest/srcs )
-
tests/reproducers/simple/AppletTest/srcs/AppletTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTest/srcs/AppletTest.java )
-
tests/reproducers/simple/AppletTest/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTest/testcases )
-
tests/reproducers/simple/AppletTest/testcases/AppletTestTests.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/AppletTest/testcases/AppletTestTests.java )
-
tests/reproducers/simple/CheckServices (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CheckServices )
-
tests/reproducers/simple/CheckServices/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CheckServices/resources )
-
tests/reproducers/simple/CheckServices/resources/CheckPluginServices.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CheckServices/resources/CheckPluginServices.html )
-
tests/reproducers/simple/CheckServices/resources/CheckServices.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CheckServices/resources/CheckServices.jnlp )
-
tests/reproducers/simple/CheckServices/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CheckServices/srcs )
-
tests/reproducers/simple/CheckServices/srcs/CheckServices.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CheckServices/srcs/CheckServices.java )
-
tests/reproducers/simple/CheckServices/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CheckServices/testcases )
-
tests/reproducers/simple/CheckServices/testcases/CheckServicesTests.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CheckServices/testcases/CheckServicesTests.java )
-
tests/reproducers/simple/CreateClassLoader (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CreateClassLoader )
-
tests/reproducers/simple/CreateClassLoader/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CreateClassLoader/resources )
-
tests/reproducers/simple/CreateClassLoader/resources/CreateClassLoader.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CreateClassLoader/resources/CreateClassLoader.jnlp )
-
tests/reproducers/simple/CreateClassLoader/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CreateClassLoader/srcs )
-
tests/reproducers/simple/CreateClassLoader/srcs/CreateClassLoader.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CreateClassLoader/srcs/CreateClassLoader.java )
-
tests/reproducers/simple/CreateClassLoader/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CreateClassLoader/testcases )
-
tests/reproducers/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java )
-
tests/reproducers/simple/InformationTitleVendorParser (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/InformationTitleVendorParser )
-
tests/reproducers/simple/InformationTitleVendorParser/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/InformationTitleVendorParser/resources )
-
tests/reproducers/simple/InformationTitleVendorParser/resources/InformationParser.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/InformationTitleVendorParser/resources/InformationParser.jnlp )
-
tests/reproducers/simple/InformationTitleVendorParser/resources/TitleParser.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/InformationTitleVendorParser/resources/TitleParser.jnlp )
-
tests/reproducers/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp )
-
tests/reproducers/simple/InformationTitleVendorParser/resources/VendorParser.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/InformationTitleVendorParser/resources/VendorParser.jnlp )
-
tests/reproducers/simple/InformationTitleVendorParser/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/InformationTitleVendorParser/testcases )
-
tests/reproducers/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java )
-
tests/reproducers/simple/LocalisedInformationElement (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/LocalisedInformationElement )
-
tests/reproducers/simple/LocalisedInformationElement/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/LocalisedInformationElement/resources )
-
tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement1.jnlp )
-
tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement2.jnlp )
-
tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement3.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement3.jnlp )
-
tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement4.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement4.jnlp )
-
tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement_noLoc.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement_noLoc.jnlp )
-
tests/reproducers/simple/LocalisedInformationElement/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/LocalisedInformationElement/srcs )
-
tests/reproducers/simple/LocalisedInformationElement/srcs/LocalisedInformationElement.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/LocalisedInformationElement/srcs/LocalisedInformationElement.java )
-
tests/reproducers/simple/LocalisedInformationElement/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/LocalisedInformationElement/testcases )
-
tests/reproducers/simple/LocalisedInformationElement/testcases/LocalisedInformationElementTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/LocalisedInformationElement/testcases/LocalisedInformationElementTest.java )
-
tests/reproducers/simple/ManifestedJar1 (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1 )
-
tests/reproducers/simple/ManifestedJar1/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/resources )
-
tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp )
-
tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp )
-
tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp )
-
tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp )
-
tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp )
-
tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp )
-
tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp )
-
tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp )
-
tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingNoAppDesc.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingNoAppDesc.jnlp )
-
tests/reproducers/simple/ManifestedJar1/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/srcs )
-
tests/reproducers/simple/ManifestedJar1/srcs/META-INF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/srcs/META-INF )
-
tests/reproducers/simple/ManifestedJar1/srcs/META-INF/MANIFEST.MF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/srcs/META-INF/MANIFEST.MF )
-
tests/reproducers/simple/ManifestedJar1/srcs/ManifestedJar1.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/srcs/ManifestedJar1.java )
-
tests/reproducers/simple/ManifestedJar1/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/testcases )
-
tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java )
-
tests/reproducers/simple/ManifestedJar2 (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar2 )
-
tests/reproducers/simple/ManifestedJar2/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar2/srcs )
-
tests/reproducers/simple/ManifestedJar2/srcs/META-INF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar2/srcs/META-INF )
-
tests/reproducers/simple/ManifestedJar2/srcs/META-INF/MANIFEST.MF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar2/srcs/META-INF/MANIFEST.MF )
-
tests/reproducers/simple/ManifestedJar2/srcs/ManifestedJar2.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ManifestedJar2/srcs/ManifestedJar2.java )
-
tests/reproducers/simple/ReadEnvironment (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadEnvironment )
-
tests/reproducers/simple/ReadEnvironment/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadEnvironment/resources )
-
tests/reproducers/simple/ReadEnvironment/resources/ReadEnvironment.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadEnvironment/resources/ReadEnvironment.jnlp )
-
tests/reproducers/simple/ReadEnvironment/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadEnvironment/srcs )
-
tests/reproducers/simple/ReadEnvironment/srcs/ReadEnvironment.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadEnvironment/srcs/ReadEnvironment.java )
-
tests/reproducers/simple/ReadEnvironment/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadEnvironment/testcases )
-
tests/reproducers/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java )
-
tests/reproducers/simple/ReadProperties (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadProperties )
-
tests/reproducers/simple/ReadProperties/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadProperties/resources )
-
tests/reproducers/simple/ReadProperties/resources/ReadProperties1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadProperties/resources/ReadProperties1.jnlp )
-
tests/reproducers/simple/ReadProperties/resources/ReadProperties2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadProperties/resources/ReadProperties2.jnlp )
-
tests/reproducers/simple/ReadProperties/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadProperties/srcs )
-
tests/reproducers/simple/ReadProperties/srcs/ReadProperties.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadProperties/srcs/ReadProperties.java )
-
tests/reproducers/simple/ReadProperties/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadProperties/testcases )
-
tests/reproducers/simple/ReadProperties/testcases/ReadPropertiesTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReadProperties/testcases/ReadPropertiesTest.java )
-
tests/reproducers/simple/RedirectStreams (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/RedirectStreams )
-
tests/reproducers/simple/RedirectStreams/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/RedirectStreams/resources )
-
tests/reproducers/simple/RedirectStreams/resources/RedirectStreams.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/RedirectStreams/resources/RedirectStreams.jnlp )
-
tests/reproducers/simple/RedirectStreams/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/RedirectStreams/srcs )
-
tests/reproducers/simple/RedirectStreams/srcs/RedirectStreams.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/RedirectStreams/srcs/RedirectStreams.java )
-
tests/reproducers/simple/RedirectStreams/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/RedirectStreams/testcases )
-
tests/reproducers/simple/RedirectStreams/testcases/RedirectStreamsTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/RedirectStreams/testcases/RedirectStreamsTest.java )
-
tests/reproducers/simple/ReplaceSecurityManager (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReplaceSecurityManager )
-
tests/reproducers/simple/ReplaceSecurityManager/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReplaceSecurityManager/resources )
-
tests/reproducers/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp )
-
tests/reproducers/simple/ReplaceSecurityManager/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReplaceSecurityManager/srcs )
-
tests/reproducers/simple/ReplaceSecurityManager/srcs/ReplaceSecurityManager.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReplaceSecurityManager/srcs/ReplaceSecurityManager.java )
-
tests/reproducers/simple/ReplaceSecurityManager/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReplaceSecurityManager/testcases )
-
tests/reproducers/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java )
-
tests/reproducers/simple/SetContextClassLoader (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/SetContextClassLoader )
-
tests/reproducers/simple/SetContextClassLoader/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/SetContextClassLoader/resources )
-
tests/reproducers/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp )
-
tests/reproducers/simple/SetContextClassLoader/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/SetContextClassLoader/srcs )
-
tests/reproducers/simple/SetContextClassLoader/srcs/SetContextClassLoader.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/SetContextClassLoader/srcs/SetContextClassLoader.java )
-
tests/reproducers/simple/SetContextClassLoader/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/SetContextClassLoader/testcases )
-
tests/reproducers/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java )
-
tests/reproducers/simple/Spaces can be everywhere (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/Spaces can be everywhere )
-
tests/reproducers/simple/Spaces can be everywhere/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/Spaces can be everywhere/resources ) (1 prop)
-
tests/reproducers/simple/Spaces can be everywhere/resources/Spaces can be everywhere1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/Spaces can be everywhere/resources/Spaces can be everywhere1.jnlp ) (1 prop)
-
tests/reproducers/simple/Spaces can be everywhere/resources/Spaces can be everywhere2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/Spaces can be everywhere/resources/Spaces can be everywhere2.jnlp ) (1 prop)
-
tests/reproducers/simple/Spaces can be everywhere/resources/SpacesCanBeEverywhere1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/Spaces can be everywhere/resources/SpacesCanBeEverywhere1.jnlp ) (1 prop)
-
tests/reproducers/simple/Spaces can be everywhere/resources/spaces applet Tests.html (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/Spaces can be everywhere/resources/spaces applet Tests.html ) (1 prop)
-
tests/reproducers/simple/Spaces can be everywhere/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/Spaces can be everywhere/srcs )
-
tests/reproducers/simple/Spaces can be everywhere/srcs/SpacesCanBeEverywhere.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/Spaces can be everywhere/srcs/SpacesCanBeEverywhere.java )
-
tests/reproducers/simple/Spaces can be everywhere/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/Spaces can be everywhere/testcases )
-
tests/reproducers/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java )
-
tests/reproducers/simple/UnsignedJnlpApplication (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpApplication )
-
tests/reproducers/simple/UnsignedJnlpApplication/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpApplication/resources )
-
tests/reproducers/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication1.jnlp )
-
tests/reproducers/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication2.jnlp )
-
tests/reproducers/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication3.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication3.jnlp )
-
tests/reproducers/simple/UnsignedJnlpApplication/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpApplication/srcs )
-
tests/reproducers/simple/UnsignedJnlpApplication/srcs/JNLP-INF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpApplication/srcs/JNLP-INF )
-
tests/reproducers/simple/UnsignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp )
-
tests/reproducers/simple/UnsignedJnlpApplication/srcs/UnsignedJnlpApplication.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpApplication/srcs/UnsignedJnlpApplication.java )
-
tests/reproducers/simple/UnsignedJnlpApplication/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpApplication/testcases )
-
tests/reproducers/simple/UnsignedJnlpApplication/testcases/UnsignedJnlpApplicationTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpApplication/testcases/UnsignedJnlpApplicationTest.java )
-
tests/reproducers/simple/UnsignedJnlpTemplate (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpTemplate )
-
tests/reproducers/simple/UnsignedJnlpTemplate/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpTemplate/resources )
-
tests/reproducers/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate1.jnlp )
-
tests/reproducers/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate2.jnlp )
-
tests/reproducers/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate3.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate3.jnlp )
-
tests/reproducers/simple/UnsignedJnlpTemplate/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpTemplate/srcs )
-
tests/reproducers/simple/UnsignedJnlpTemplate/srcs/JNLP-INF (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpTemplate/srcs/JNLP-INF )
-
tests/reproducers/simple/UnsignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp )
-
tests/reproducers/simple/UnsignedJnlpTemplate/srcs/UnsignedJnlpTemplate.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpTemplate/srcs/UnsignedJnlpTemplate.java )
-
tests/reproducers/simple/UnsignedJnlpTemplate/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpTemplate/testcases )
-
tests/reproducers/simple/UnsignedJnlpTemplate/testcases/UnsignedJnlpTemplateTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/UnsignedJnlpTemplate/testcases/UnsignedJnlpTemplateTest.java )
-
tests/reproducers/simple/deadlocktest (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/deadlocktest )
-
tests/reproducers/simple/deadlocktest/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/deadlocktest/resources )
-
tests/reproducers/simple/deadlocktest/resources/deadlocktest.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/deadlocktest/resources/deadlocktest.jnlp )
-
tests/reproducers/simple/deadlocktest/resources/deadlocktest_1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/deadlocktest/resources/deadlocktest_1.jnlp )
-
tests/reproducers/simple/deadlocktest/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/deadlocktest/srcs )
-
tests/reproducers/simple/deadlocktest/srcs/DeadlockTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/deadlocktest/srcs/DeadlockTest.java )
-
tests/reproducers/simple/deadlocktest/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/deadlocktest/testcases )
-
tests/reproducers/simple/deadlocktest/testcases/DeadLockTestTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/deadlocktest/testcases/DeadLockTestTest.java )
-
tests/reproducers/simple/simpletest1 (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest1 )
-
tests/reproducers/simple/simpletest1/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest1/resources )
-
tests/reproducers/simple/simpletest1/resources/simpletest1.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest1/resources/simpletest1.jnlp )
-
tests/reproducers/simple/simpletest1/resources/simpletestCustomSplash.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest1/resources/simpletestCustomSplash.jnlp )
-
tests/reproducers/simple/simpletest1/resources/simpletestMegaSlow.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest1/resources/simpletestMegaSlow.jnlp )
-
tests/reproducers/simple/simpletest1/resources/simpletestSlow.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest1/resources/simpletestSlow.jnlp )
-
tests/reproducers/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp )
-
tests/reproducers/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp )
-
tests/reproducers/simple/simpletest1/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest1/srcs )
-
tests/reproducers/simple/simpletest1/srcs/SimpleTest1.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest1/srcs/SimpleTest1.java )
-
tests/reproducers/simple/simpletest1/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest1/testcases )
-
tests/reproducers/simple/simpletest1/testcases/SimpleTest1Test.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest1/testcases/SimpleTest1Test.java )
-
tests/reproducers/simple/simpletest2 (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest2 )
-
tests/reproducers/simple/simpletest2/resources (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest2/resources )
-
tests/reproducers/simple/simpletest2/resources/simpletest2.jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest2/resources/simpletest2.jnlp )
-
tests/reproducers/simple/simpletest2/srcs (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest2/srcs )
-
tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java )
-
tests/reproducers/simple/simpletest2/testcases (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest2/testcases )
-
tests/reproducers/simple/simpletest2/testcases/SimpleTest2Test.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/reproducers/simple/simpletest2/testcases/SimpleTest2Test.java )
-
tests/test-extensions (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions )
-
tests/test-extensions-tests (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions-tests )
-
tests/test-extensions-tests/net (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions-tests/net )
-
tests/test-extensions-tests/net/sourceforge (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions-tests/net/sourceforge )
-
tests/test-extensions-tests/net/sourceforge/jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions-tests/net/sourceforge/jnlp )
-
tests/test-extensions-tests/net/sourceforge/jnlp/ResourcesTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions-tests/net/sourceforge/jnlp/ResourcesTest.java )
-
tests/test-extensions-tests/net/sourceforge/jnlp/ServerAccessTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions-tests/net/sourceforge/jnlp/ServerAccessTest.java )
-
tests/test-extensions/net (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net )
-
tests/test-extensions/net/sourceforge (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge )
-
tests/test-extensions/net/sourceforge/jnlp (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp )
-
tests/test-extensions/net/sourceforge/jnlp/ContentReader.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/ContentReader.java )
-
tests/test-extensions/net/sourceforge/jnlp/ContentReaderListener.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/ContentReaderListener.java )
-
tests/test-extensions/net/sourceforge/jnlp/LogItem.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/LogItem.java )
-
tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java )
-
tests/test-extensions/net/sourceforge/jnlp/ProcessAssasin.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/ProcessAssasin.java )
-
tests/test-extensions/net/sourceforge/jnlp/ProcessResult.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/ProcessResult.java )
-
tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java )
-
tests/test-extensions/net/sourceforge/jnlp/ServerLauncher.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/ServerLauncher.java )
-
tests/test-extensions/net/sourceforge/jnlp/TestsLogs.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/TestsLogs.java )
-
tests/test-extensions/net/sourceforge/jnlp/ThreadedProcess.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/ThreadedProcess.java )
-
tests/test-extensions/net/sourceforge/jnlp/TinyHttpdImpl.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/TinyHttpdImpl.java )
-
tests/test-extensions/net/sourceforge/jnlp/annotations (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/annotations )
-
tests/test-extensions/net/sourceforge/jnlp/annotations/Bug.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/annotations/Bug.java )
-
tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java )
-
tests/test-extensions/net/sourceforge/jnlp/annotations/NeedsDisplay.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/annotations/NeedsDisplay.java )
-
tests/test-extensions/net/sourceforge/jnlp/annotations/TestInBrowsers.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/annotations/TestInBrowsers.java )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browser.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browser.java )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserFactory.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserFactory.java )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTest.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTest.java )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browsers.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browsers.java )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Midory.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Midory.java )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser.java )
-
tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Opera.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Opera.java )
-
tests/test-extensions/net/sourceforge/jnlp/mock (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/mock )
-
tests/test-extensions/net/sourceforge/jnlp/mock/MockJNLPFile.java (copied) (copied from branches/vendor/sourceforge/icedtea-web/1.3/tests/test-extensions/net/sourceforge/jnlp/mock/MockJNLPFile.java )
Legend:
- Unmodified
- Added
- Removed
-
trunk/icedtea-web
-
Property svn:mergeinfo
set to
/branches/vendor/sourceforge/icedtea-web/1.3 merged eligible /branches/vendor/sourceforge/icedtea-web/current merged eligible
-
Property svn:mergeinfo
set to
-
trunk/icedtea-web/AUTHORS
r348 r418 5 5 Deepak Bhole <dbhole@redhat.com> 6 6 Ricardo MartÃn Camarero <rickyepoderi@yahoo.es> 7 Danesh Dadachanji <ddadacha@redhat.com> 8 Adam Domurad <adomurad@redhat.com> 7 9 Thomas Fitzsimmons <fitzsim@redhat.com> 8 10 Mark Greenwood <mark@dcs.shef.ac.uk> 9 Andrew John Hughes <gnu_andrew@member.fsf.org, ahughes@redhat.com> 11 Peter Hatina <phatina@redhat.com> 12 Andrew John Hughes <ahughes@redhat.com> 10 13 Matthias Klose <doko@ubuntu.com> 14 MichaÅ Górny < mgorny@gentoo.org > 11 15 Francis Kung <fkung@redhat.com> 16 Denis Lila <dlila@redhat.com> 12 17 DJ Lucas <dj@lucasit.com> 13 18 Omair Majid <omajid@redhat.com> 14 19 Jon A. Maxwell <jmaxwell@users.sourceforge.net> 20 Thomas Meyer <thomas@m3y3r.de> 21 Saad Mohammad <smohammad@redhat.com> 22 Martin Olsson <martin@minimum.se> 15 23 Andrew Su <asu@redhat.com> 16 24 Joshua Sumali <jsumali@redhat.com> 25 Jiri Vanek <jvanek@redhat.com> 17 26 Mark Wielaard <mark@klomp.org> 18 27 Man Lung Wong <mwong@redhat.com> -
trunk/icedtea-web/ChangeLog
r348 r418 1 2011-08-31 Deepak Bhole <dbhole@redhat.com> 2 3 * NEWS: Prepare for 1.1.2 4 * configure.ac: Same 1 2012-08-27 Deepak Bhole <dbhole@redhat.com> 2 3 * configure.ac: Prepare for 1.3 4 * NEWS: Same 5 6 2012-08-27 Deepak Bhole <dbhole@redhat.com> 7 8 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 9 (getAccessControlContextForClassLoading): Catch ClassCircularityErrors and 10 ignore them (thus denying permission to caller). 11 12 2012-08-13 Jiri Vanek <jvanek@redhat.com> 13 14 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: 15 (executeProcessUponURL)Fixed wrong call in previous commit which was 16 causing null process name. 17 * tests/reproducers/simple/AppletTest/testcases/AppletTestTests.java: 18 Removed unused import. 19 20 2012-08-13 Jiri Vanek <jvanek@redhat.com> 21 22 Reproducers of PR955 23 * tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement1.jnlp: 24 * tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement2.jnlp: 25 * tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement3.jnlp: 26 * tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement4.jnlp: 27 Test jnlp files with various combinations of locales, reproducers of PR955. 28 * tests/reproducers/simple/LocalisedInformationElement/resources/LocalisedInformationElement_noLoc.jnlp 29 Jnlp file with which is not affected by PR955 and is helping to catch error in LOCALE changing hack 30 * tests/reproducers/simple/LocalisedInformationElement/srcs/LocalisedInformationElement.java: 31 Reproducer main class, after loading prints out default locale. 32 * tests/reproducers/simple/LocalisedInformationElement/testcases/LocalisedInformationElementTest.java: 33 Testcases launching above jnlps under various locales. 34 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: 35 Added set of methods allowing passing of custom variables to ThreadedProcess. 36 * tests/test-extensions/net/sourceforge/jnlp/ThreadedProcess.java: 37 Added processing of custom variables. 38 39 2012-08-22 Danesh Dadachanji <ddadacha@redhat.com> 40 41 Fix PR955: regression: SweetHome3D fails to run 42 * NEWS: Added entry for PR955 43 * netx/net/sourceforge/jnlp/JNLPFile.java: New enum Match that represents 44 the level of precision to use when matching locales. 45 (localMatches): Renamed to localeMatches, added matchLevel paramater 46 and updated conditionals to handle the level of precision specified by it. 47 (getVendor): New method that returns an information's vendor text. 48 (getInformation): Added override methods for getTitle and getVendor 49 that are used by the anonymous class to filter by locale. All three 50 methods now go through all levels of precision to search for the best 51 fitted locale. 52 (getResources), (getResourcesDescs): Updated to check if any level of 53 precision matches when searching for locales. 54 (parse): Added call to checkForTitleVendor. 55 * netx/net/sourceforge/jnlp/Parser.java 56 (checkForTitleVendor): New method to check for availability of localized 57 title and vendor from the information tags. Throws ParseException. 58 (getInfo): Replace loop with foreach loop. 59 (getInformationDesc): Remove check for present title and vendor. 60 (getLocale): Variant returned can now use everything after the eigth 61 element of the locale's string. 62 * netx/net/sourceforge/jnlp/resources/Messages.properties: 63 Update missing title and vendor messages to mention localization. 64 * tests/reproducers/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java: 65 Update output string as per new changes to Messages internationalizations. 66 * tests/netx/unit/net/sourceforge/jnlp/JNLPFileTest.java: 67 New unit test that checks the localesMatches method in JNLPFile. 68 * tests/netx/unit/net/sourceforge/jnlp/MockJNLPFile.java: 69 New class used to create a mock JNLPFile object. 70 * tests/netx/unit/net/sourceforge/jnlp/ParserTest.java: 71 New unit test that checks that the return of getTitle and getVendor 72 have localized information. 73 74 2012-08-21 Jiri Vanek <jvanek@redhat.com> 75 76 * tests/test-extensions/net/sourceforge/jnlp/ProcessAssasin.java: 77 (sigInt), (sigKill), (sigTerm) new methods for various killing of 78 processes by kill. 79 (kill) new method, launching kill process. 80 (destroyProcess ) is now calling sigInt instead of unwrapped sigTerm. 81 82 2012-08-21 Jiri Vanek <jvanek@redhat.com> 83 84 * launcher/javaws.in: java is now launched by exec 85 86 2012-08-17 Adam Domurad <adomurad@redhat.com> 87 88 Fixes PR588, cookies set in the java cookie jar are now stored properly 89 * plugin/icedteanp/IcedTeaNPPlugin.cc 90 (set_cookie_info): New, uses setvalueforurl 91 (consume_plugin_message): Additional message added allowing 92 set_cookie_info to be used from the java side. 93 * plugin/icedteanp/java/sun/applet/PluginCookieManager.java: Now 94 overrides put method, results in set_cookie_info calls in C++ 95 * plugin/icedteanp/java/sun/applet/PluginMain.java: Passes 96 PluginStreamHandler to PluginCookieManager to allow C++ side 97 communication 98 99 2012-08-17 Adam Domurad <adomurad@redhat.com> 100 101 * plugin/icedteanp/IcedTeaNPPlugin.cc 102 (consume_plugin_message): New, called by consume_message, handles 103 cookie and proxy info retrieval, and setting cookie info 104 (consume_message): Call consume_plugin_message for "plugin ..." 105 messages 106 107 2012-08-17 Adam Domurad <adomurad@redhat.com> 108 109 Reproducers for PR588, sets persistent and session cookies in the 110 cookie jar and tries to read them with various means. 111 * tests/reproducers/signed/SavingCookies/resources/CheckCookie.html: 112 Print the cookie store contents 113 * tests/reproducers/signed/SavingCookies/resources/CheckCookieAndGotoClear.html: 114 Print the cookie store contents, and then go to 115 ClearPersistentCookie.html with showDocument 116 * tests/reproducers/signed/SavingCookies/resources/ClearPersistentCookie.html: 117 Clear the test cookie so it does not interfere with further tests 118 * tests/reproducers/signed/SavingCookies/resources/SavePersistentCookie.html: 119 Create a persistent cookie 120 * tests/reproducers/signed/SavingCookies/resources/SavePersistentCookieAndGotoCheck.html: 121 Create a persistent cookie and check it with showDocument 122 * tests/reproducers/signed/SavingCookies/resources/SaveSessionCookie.html: 123 Create a session cookie 124 * tests/reproducers/signed/SavingCookies/resources/SaveSessionCookieAndGotoCheck.html: 125 Create a session cookie and check it with showDocument 126 * tests/reproducers/signed/SavingCookies/srcs/CheckingCookies.java: 127 Checks the contents of the cookie store. 128 Depending on the test, this may go to another page upon completion. 129 * tests/reproducers/signed/SavingCookies/srcs/SavingCookies.java: 130 Store cookies in the java cookie store. Depending on the test, this may 131 go to another page upon completion. 132 * tests/reproducers/signed/SavingCookies/testcases/SavingCookiesTests.java 133 Test driver for testing persistent and session cookies in different 134 ways 135 136 2012-08-18 Jiri Vanek <jvanek@redhat.com> 137 138 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: added 139 VERBOSE_OPTION constant with -verbose value for javaws launching. 140 141 2012-08-17 Jiri Vanek <jvanek@redhat.com> 142 143 * tests/reproducers/simple/deadlocktest/testcases/DeadLockTestTest.java: 144 (testDeadLockTestTerminatedBody) removed tests for killed-process and 145 termination of remaining javas put on correct place. 146 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: 147 (executeBrowser) stout and stderr listeners forwarded to next method in 148 correct order. 149 150 2012-08-14 Danesh Dadachanji <ddadacha@redhat.com> 151 152 Small addition to NEWS entry and bug annotation indicating the PR975 fix. 153 * NEWS: Add entry for PR975 154 * tests/reproducers/signed/ClasspathManifestTest/testcases/ClasspathManifestTest.java: 155 Add bug annotation for PR975. 156 157 2012-08-14 Danesh Dadachanji <ddadacha@redhat.com> 158 159 Classpaths in jars' manifests are only considered when the applet is run 160 without using jnlp_href and a JNLP file. 161 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java (activateJars): 162 Add conditional check for use of jnlp_href. 163 * tests/reproducers/signed/Classpath.Manifest.Test.Helper/srcs/CheckForClasspath.java: 164 Applet whose jar is stored in a subdir under the test engine server. 165 * tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestAppletTest.html: 166 * tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestAppletTest.jnlp: 167 * tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestApplicationTest.jnlp: 168 * tests/reproducers/signed/ClasspathManifestTest/resources/ClasspathManifestJNLPHrefTest.html: 169 * tests/reproducers/signed/ClasspathManifestTest/srcs/ClasspathManifest.java: 170 * tests/reproducers/signed/ClasspathManifestTest/srcs/META-INF/MANIFEST.MF: 171 * tests/reproducers/signed/ClasspathManifestTest/testcases/ClasspathManifestTest.java: 172 Test if manifest entry is searched for classpath only when in the plugin 173 is run without using jnlp_href. 174 175 2012-08-14 Adam Domurad <adomurad@redhat.com> 176 177 Reproducer for allowing unsigned content in META-INF/ folder. 178 Derives from ReadPropertiesSigned test's signed jar. 179 * tests/reproducers/custom/UnsignedContentInMETAINF/resources/UnsignedContentInMETAINF.jnlp: 180 New, runs a modified version of ReadPropertiesSigned.jar (UnsignedContentInMETAINF.jar) 181 * tests/reproducers/custom/UnsignedContentInMETAINF/srcs/META-INF/unsigned_file_in_metainf: 182 New, placed into a modified version of ReadPropertiesSigned.jar 183 (UnsignedContentInMETAINF.jar) so that there is unsigned content in the 184 META-INF/ folder. 185 * tests/reproducers/custom/UnsignedContentInMETAINF/srcs/Makefile: 186 New, creates a modified version of ReadPropertiesSigned.jar, named 187 UnsignedContentInMETAINF.jar, and places unsigned content inside its 188 META-INF/ folder 189 * tests/reproducers/custom/UnsignedContentInMETAINF/testcases/UnsignedContentInMETAINF.java: 190 Test driver for jnlp file 191 192 2012-08-14 Adam Domurad <adomurad@redhat.com> 193 194 Unit test for method in JCV, isMetaInfFile() 195 * netx/net/sourceforge/jnlp/tools/JarCertVerifier.java: 196 Made isMetaInfFile package-private for testing purposes. 197 * tests/netx/unit/net/sourceforge/jnlp/tools/JarCertVerifierTest.java: 198 New, tests isMetaInfFile 199 200 2012-08-07 Adam Domurad <adomurad@redhat.com> 201 202 Fixes PR1106, plugin crashing with firefox + archlinux/gentoo 203 * plugin/icedteanp/IcedTeaNPPlugin.cc 204 (initialize_browser_functions): Account for the fact that 205 browserTable->size can be larger than sizeof(NPNetscapeFuncs) 206 207 2012-07-31 Jiri Vanek <jvanek@redhat.com> 208 Peter Hatina <phatina@redhat.com> 209 210 Introduced configure option --with-gtk=2|3|default to be able 211 to compile against different version of GTK+ (2.x or 3.x). 212 * NEWS: mentioned bug fix 213 * acinclude.m4: (ITW_GTK_CHECK_VERSION) macro for getting GTK+ version 214 (ITW_GTK_CHECK) macro for checking GTK+ version 215 216 2012-07-24 Adam Domurad <adomurad@redhat.com> 217 218 CVE-2012-3422, RH840592: Potential read from an uninitialized 219 memory location. 220 * plugin/icedteanp/IcedTeaNPPlugin.cc 221 (get_cookie_info): Only attempt to perform this operation if there is a 222 valid plugin instance 223 (get_proxy_info): Only attempt to perform this operation if there is a 224 valid plugin instance 225 226 2012-07-24 Adam Domurad <adomurad@redhat.com> 227 228 * plugin/icedteanp/IcedTeaPluginUtils.cc 229 (IcedTeaPluginUtilities::strSplit): Replace usage of " " with proper 230 delimiter 231 232 2012-07-24 Adam Domurad <adomurad@redhat.com> 233 234 Refactor JNLPFile#launchType into its own interface type (as opposed to 235 Object), LaunchDesc. 236 * netx/net/sourceforge/jnlp/AppletDesc.java: Add override annotation to 237 getMainClass(). 238 * netx/net/sourceforge/jnlp/ApplicationDesc.java: Same as above 239 * netx/net/sourceforge/jnlp/InstallerDesc.java: Same as above 240 * netx/net/sourceforge/jnlp/JNLPFile.java: Make launchType a 241 LaunchDesc object. Update getLaunchInfo() accordingly. 242 * netx/net/sourceforge/jnlp/LaunchDesc.java: New launch description. 243 * netx/net/sourceforge/jnlp/Parser.java 244 (getLauncher): Return type changed to LaunchDesc 245 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Replace 246 occurences of instanceof with respect to launchType. 247 248 2012-07-18 Danesh Dadachanji <ddadacha@redhat.com> 249 250 Fix RH838417, Fix RH838559: Disambiguate signed applet security prompt 251 from certificate warning. 252 * NEWS: Added entries for RH838417 and RH838559. 253 * netx/net/sourceforge/jnlp/resources/Messages.properties: 254 Added SWarnFullPermissionsIgnorePolicy and updated SHttpsUnverified. 255 * netx/net/sourceforge/jnlp/security/CertWarningPane.java: Display 256 SWarnFullPermissionsIgnorePolicy if the cert is from a jar and is either 257 unverified or has a signing error. Also added warning.png to HTTPS dialogs. 258 259 2012-07-11 Jiri Vanek <jvanek@redhat.com> 260 261 try to close browser before kill it 262 * tests/reproducers/signed/AppletTestSigned/testcases/AppletTestSignedTests.java: 263 * tests/reproducers/simple/AppletTest/testcases/AppletTestTests.java: 264 * tests/reproducers/simple/CheckServices/testcases/CheckServicesTests.java 265 (evaluateSignedApplet) addapted to properly closed browser 266 * tests/reproducers/simple/CheckServices/srcs/CheckServices.java: 267 removed fixme section as it shuld work now 268 * tests/test-extensions/net/sourceforge/jnlp/ProcessAssasin.java 269 (destroyProcess) new method, launching kill with SIGTERM before clasical 270 process.destroy() 271 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: 272 removed Set<Thread> terminated, should be removed long ago 273 274 2012-07-09 Saad Mohammad <smohammad@redhat.com> 275 276 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java (initializeExtensions): 277 Checks and assigns the main-class name prior to the for loop. 278 279 2012-07-09 Martin Olsson <martin@minimum.se> 280 281 * plugin/icedteanp/IcedTeaPluginUtils.cc: Change calls from g_free 282 to free when allocated with calloc. 283 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc 284 (PluginRequestProcessor::call): Make sure args_array doesnt hold 285 garbage when freed. 286 (_loadURL): Change calls from g_free to free when allocated with 287 calloc. 288 289 2012-07-09 Adam Domurad <adomurad@redhat.com> 290 291 Ignore invalid jar files in applets, like the oracle plugin does. 292 * netx/net/sourceforge/jnlp/cache/IllegalResourceDescriptorException.java: 293 New exception type for ResourceTracker to throw instead of 294 IllegalArgumentException 295 * netx/net/sourceforge/jnlp/cache/IllegalResourceDescriptorException.java: 296 Throws IllegalArgumentDescriptorException instead of 297 IllegalArgumentException. 298 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 299 (isInvalidJar): New, checks for ZipException in new JarFile(...) 300 (shouldFilterInvalidJars): New, checks if we are in an applet 301 (initializeResources): if 'shouldFilterInvalidJars()' is true and a jar 302 is not a valid jar file, the jar is filtered out and normal execution 303 continues. 304 305 2012-07-03 Saad Mohammad <smohammad@redhat.com> 306 307 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 308 (JNLPClassLoader): New constructor that accepts an additional parameter 309 containing the main class name. 310 (getInstance): Accepts mainName as parameter to override application's 311 main class name 312 (initializeExtensions): Passes in the name of the application's main class 313 when creating a new JNLPClassLoader instance. 314 (initializeResources): If the loader owns no jars, it will consider 315 itself as signed if all of the extension loaders are signed. Also, if the 316 extension jars have the main class, it will set foundMainJar to true. 317 (initializeResources): If the main class was not found, check if it was 318 found within the extension jars. 319 (checkForMain): Uses the overwritten main class name (if set) when 320 searching for the main within the jars. 321 (hasMainJar): Returns true if this loader holds the main jar. 322 (hasMainInExtensions): Returns true if extension loaders have the main jar 323 * tests/jnlp_tests/signed/ExtensionJnlp/resources/UsesSignedJarExtension.jnlp: 324 * tests/jnlp_tests/signed/ExtensionJnlp/resources/UsesSignedJnlpExtension.jnlp: 325 * tests/jnlp_tests/signed/ExtensionJnlp/resources/UsesSignedJnlpJarAndSignedJarExtension.jnlp: 326 Launching jnlps that use extension jnlp as its resource. 327 * tests/jnlp_tests/signed/ExtensionJnlp/resources/UsesSignedJar.jnlp: 328 Launching jnlp that directly launches SignedJarResource class. 329 * tests/jnlp_tests/signed/ExtensionJnlp/resources/UsesSignedJnlp.jnlp: 330 Launching jnlp that directly launches SignedJnlpResource class. 331 * tests/jnlp_tests/signed/ExtensionJnlp/testcases/ExtensionJnlpTest.java: 332 Testcase that tests the launching of jnlp files containing extension jnlps 333 as resource. 334 * tests/jnlp_tests/signed/SignedJarResource/resources/SignedJarExtension.jnlp: 335 Component jnlp file that is used as an extension resource. 336 * tests/jnlp_tests/signed/SignedJarResource/srcs/SignedJarResource.java: 337 A simple java class that outputs a string. 338 * tests/jnlp_tests/signed/SignedJnlpResource/resources/UnmatchingSignedJnlpExtension.jnlp: 339 Component jnlp file that is used as an extension resource and does not 340 match the signed jnlp file. 341 * tests/jnlp_tests/signed/SignedJnlpResource/resources/MatchingSignedJnlpExtension.jnlp: 342 Component jnlp file that is used as an extension resource and matches the 343 signed jnlp file. 344 * tests/jnlp_tests/signed/SignedJnlpResource/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp: 345 Signed jnlp file. 346 * tests/jnlp_tests/signed/SignedJnlpResource/srcs/SignedJnlpResource.java: 347 A simple java class that outputs a string. 348 349 2012-07-02 Jiri Vanek <jvanek@redhat.com> 350 351 Added missing headers 352 * tests/reproducers/simple/CreateClassLoader/resources/CreateClassLoader.jnlp: 353 * tests/reproducers/simple/ReadEnvironment/resources/ReadEnvironment.jnlp: 354 * tests/reproducers/simple/ReadProperties/resources/ReadProperties1.jnlp: 355 * tests/reproducers/simple/ReadProperties/resources/ReadProperties2.jnlp: 356 * tests/reproducers/simple/RedirectStreams/resources/RedirectStreams.jnlp: 357 * tests/reproducers/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp: 358 * tests/reproducers/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp: 359 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: 360 * tests/test-extensions/net/sourceforge/jnlp/annotations/Bug.java: 361 * tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java: 362 * tests/test-extensions/net/sourceforge/jnlp/annotations/NeedsDisplay.java: 363 * tests/test-extensions/net/sourceforge/jnlp/annotations/TestInBrowsers.java: 364 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browser.java: 365 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserFactory.java: 366 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTest.java: 367 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java: 368 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browsers.java: 369 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java: 370 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java: 371 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java: 372 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java: 373 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java: 374 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Midory.java: 375 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser.java: 376 * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Opera.java: 377 added license headers 378 379 2012-07-02 Jiri Vanek <jvanek@redhat.com> 380 381 Makefile adapted to recent (three changelog items) refactoring 382 * Makefile.am: (JNLP_TESTS_ENGINE_SRCDIR) now points correctly to 383 test-extensions. (JNLP_TESTS_ENGINE_TESTS_SRCDIR) new variable for 384 test-extensions-tests. (JNLP_TESTS_SRCDIR) now points to reproducers. 385 (JNLP_TESTS_ENGINE_TESTS_DIR) new variable for built 386 JNLP_TESTS_ENGINE_TESTS_SRCDIR 387 (netx-dist-tests-tests-source-files.txt) new target for list of 388 content of JNLP_TESTS_ENGINE_TESTS_SRCDIR. 389 (stamps/netx-dist-tests-tests-compile.stamp) new target for compiling 390 netx-dist-tests-tests-source-files.txt 391 (netx-dist-tests-source-files.tx) now depends on 392 stamps/netx-dist-tests-tests-compile.stamp 393 ($(REPRODUCERS_CLASS_NAMES)) target is now working in JNLP_TESTS_ENGINE_TESTS_DIR 394 instead of JNLP_TESTS_ENGINE_DIR 395 (stamps/run-netx-dist-tests.stamp): added JNLP_TESTS_ENGINE_TESTS_DIR to classpath 396 (stamps/run-unit-test-code-coverage.stamp), (stamps/run-reproducers-test-code-coverage.stamp) 397 added JNLP_TESTS_ENGINE_TESTS_DIR to classpath and 398 JNLP_TESTS_ENGINE_TESTS_SRCDIR to sources path 399 400 2012-07-02 Jiri Vanek <jvanek@redhat.com> 401 402 All tests from test-extensions extracted to test-extensions-tests. 403 All inner classes in test-extensions extracted as outer classes 404 * tests/test-extensions/net/sourceforge/jnlp/ResourcesTest.java: 405 moved to test-extensions-tests 406 * tests/test-extensions-tests/net/sourceforge/jnlp/ResourcesTest.java: 407 new file, copied from test-extensions 408 * tests/test-extensions-tests/net/sourceforge/jnlp/ServerAccessTest.java: 409 all tests from original ServerAccess.java 410 * tests/test-extensions/net/sourceforge/jnlp/ContentReader.java: 411 * tests/test-extensions/net/sourceforge/jnlp/LogItem.java: 412 * tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java: 413 * tests/test-extensions/net/sourceforge/jnlp/ProcessAssasin.java: 414 * tests/test-extensions/net/sourceforge/jnlp/ProcessResult.java: 415 * tests/test-extensions/net/sourceforge/jnlp/ServerLauncher.java: 416 * tests/test-extensions/net/sourceforge/jnlp/TestsLogs.java: 417 * tests/test-extensions/net/sourceforge/jnlp/ThreadedProcess.java: 418 * tests/test-extensions/net/sourceforge/jnlp/TinyHttpdImpl.java: 419 new files, extracted classes from ServerAccess 420 * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: 421 extracted tests and inner classes 422 423 2012-07-02 Jiri Vanek <jvanek@redhat.com> 424 425 hg move tests/netx/jnlp_testsengine/ tests/test-extensions 426 427 2012-07-02 Jiri Vanek <jvanek@redhat.com> 428 429 hg move tests/jnlp_tests/ tests/reproducers 430 431 2012-06-29 Jiri Vanek <jvanek@redhat.com> 432 433 Fixed resource tests and Browsers.none behavior 434 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: 435 Added slash into all executeBrowsers urls. 436 Added midori and epiphany to simple proxies test. 437 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java: 438 Corrected handling of Browsers.none together with -Dmodified.browsers.run switch 439 440 2012-06-28 Omair Majid <omajid@redhat.com> 441 442 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 443 (findClass): Invoke CodeBaseClassLoader.findClass with a flag to avoid 444 infinite recursion. 445 (CodeBaseClassLoader.findClass(String)): Delegate to ... 446 (CodeBaseClassLoader.findClass(String,boolean)): New method. 447 * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java 448 (testParentClassLoaderIsAskedForClasses): New method. 449 450 2012-06-28 Jiri Vanek <jvanek@redhat.com> 451 452 Correctly backup all log files re-writable by emma during code-coverage 453 * Makefile.am: (EMMA_MODIFIED_FILES) new variable with list of files to 454 backup/restore. (stamps/run-unit-test-code-coverage.stamp) and 455 (stamps/run-reproducers-test-code-coverage.stamp) are now iterating over 456 EMMA_MODIFIED_FILES instead of enumerating them 457 458 2012-06-28 Jiri Vanek <jvanek@redhat.com> 459 460 Removed repeated re-runing of tests during coverage, stamped pac tests 461 * Makefile.am: (check-pac-functions) moved to target aliases and replaced 462 by stamps/check-pac-functions.stamp. 463 (clean-netx-unit-tests) added removing of stamps/check-pac-functions.stamp 464 (stamps/exported-test-certs.stamp): no longer depends on 465 netx-dist-tests-remove-cert-from-public, logic of it have to be 466 copy-pasted from here. 467 (stamps/run-unit-test-code-coverage.stamp): no longer depends on check, 468 but was added direct dependences 469 470 2012-06-28 Adam Domurad <adomurad@redhat.com> 471 472 Allow for folders in archive tag. 473 * netx/net/sourceforge/jnlp/PluginBridge.java: 474 (PluginBridge) Changes jar -> archive, parse contents with 475 addArchiveEntries. 476 (addArchiveEntries) New method. Adds entries ending with / to the list 477 of folders. 478 (getCodeBaseFolders) Returns the folders collected by addArchiveEntries 479 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 480 (initializeResources) If ran as plugin, add archive tag folders to the 481 code base loader. 482 483 2012-06-27 Adam Domurad <adomurad@redhat.com> 484 485 Tests folders in archive tag 486 * tests/jnlp_tests/custom/AppletFolderInArchiveTag/testcases/AppletFolderInArchiveTagTests.java: 487 Runs html file in browser 488 * tests/jnlp_tests/custom/AppletFolderInArchiveTag/srcs/Makefile: 489 packages compiled source files in folder 490 * tests/jnlp_tests/custom/AppletFolderInArchiveTag/srcs/AppletFolderInArchiveTag.java: 491 Simple output to confirm it is running 492 * tests/jnlp_tests/custom/AppletFolderInArchiveTag/resources/AppletFolderInArchiveTag.html: 493 Has folder in its archive tag that contains a class file 494 495 2012-06-26 Jiri Vanek <jvanek@redhat.com> 496 497 Added slipped midori and epiphany to recognized browsers. 498 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserFactory.java: 499 (BrowserFactory) added slipped cases for creating Epiphany and Midori singletons 500 501 2012-06-26 Jiri Vanek <jvanek@redhat.com> 502 503 * Makefile.am: Most crucial variables exported to be used by custom Makefiles 504 (CUSTOM_REPRODUCERS): new variable to hold custom name 505 (ALL_NONCUSTOM_REPRODUCERS): new variable for gathering all except custom reproducers 506 (ALL_REPRODUCERS): now contains also custom ones 507 (stamps/junit-jnlp-dist-dirs): now depends also on junit-jnlp-dist-custom.txt 508 (junit-jnlp-dist-custom.txt): new target scanning for directories in jnlp_tests/custom 509 and saving them as list for future purposes. 510 (stamps/netx-dist-tests-prepare-reproducers.stamp): and 511 ( stamps/change-dots-to-paths.stamp):iterate through ALL_NONCUSTOM_REPRODUCERS 512 instead of ALL__REPRODUCERS 513 (stamps/process-custom-reproducers.stamp) : new target for iterating by 514 junit-jnlp-dist-custom.txt through jnlp_tests/custom/srcs* and launching 515 make prepare-reproducer in each. 516 (clean-custom-reproducers): same as above but launching make clean-reproducer 517 (run-netx-dist-tests) now depends on stamps/process-custom-reproducers.stamp 518 (clean-netx-dist-tests): now depends on clean-custom-reproducers and is removing 519 stamps/netx-dist-tests-copy-resources.stamp 520 (stamps/netx-dist-tests-copy-resources.stamp): new target extracting 521 copying of resources from stamps/netx-dist-tests-compile-testcases.stamp 522 * tests/jnlp_tests/README: described this mechanism a bit 523 524 2012-06-26 Jiri Vanek <jvanek@redhat.com> 525 526 Reproducer for classes which should be loaded before verification but are not 527 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-hack.jnlp 528 jnlp launcher of applet variant with injecting new url to classlaoder 529 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-new.jnlp 530 jnlp launcher of applet variant with custom classlaoder 531 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.html 532 html launcher of applet variant with injecting new url to classlaoder 533 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.jnlp 534 jnlp launcher of application variant with injecting new url to classlaoder 535 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.html 536 html launcher of applet variant with custom classlaoder 537 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.jnlp 538 jnlp launcher of application variant with custom classlaoder 539 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/srcs/InternalClassloaderWithDownloadedResource.java: 540 Both application and applet reproducing behavior of this bug 541 * tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/testcases/InternalClassloaderWithDownloadedResourceTest.java: 542 Testcase launching jnlp application, jnlp applet and html applet 543 544 2012-06-26 Jiri Vanek <jvanek@redhat.com> 545 546 Last hope for not downloaded resources to be verified 547 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 548 (getCodeSourceSecurity): will now try to download and verify resource 549 which was downloaded outside of netx. 550 (alreadyTried) set for memory of once tried resources to not try again 551 552 2012-06-25 Adam Domurad <adomurad@redhat.com> 553 554 Small comment cleanup to classes with missing or wrong descriptions. 555 * plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java: 556 Comment at top fixed 557 * plugin/icedteanp/java/sun/applet/AppletSecurityContextManager.java: 558 Same 559 * plugin/icedteanp/java/sun/applet/PluginException.java: Same 560 * plugin/icedteanp/java/sun/applet/PluginCallRequestFactory.java: Same 561 * netx/net/sourceforge/jnlp/PluginBridge.java: Add class description. 562 * plugin/icedteanp/java/sun/applet/PluginCallRequest.java: 563 Removed FIXME that had already been fixed. 564 565 2012-06-25 Adam Domurad <adomurad@redhat.com> 566 567 Allow passing of plugin tables and browser tables in NP_Initialize that 568 are not the expected length but still large enough for our purposes. 569 * plugin/icedteanp/IcedTeaNPPlugin.cc 570 (initialize_browser_functions): New function to check size of passed 571 browser function table, and initialize 'browser_functions' global 572 variable. 573 (initialize_plugin_table): New function to check size of passed 574 plugin function table, and initialize proper plugin callbacks. 575 (NP_Initialize): Make use of initialization helper functions, get 576 rid of old size tests and error if the helper functions fail. 577 578 2012-06-20 Adam Domurad <adomurad@redhat.com> 579 580 * netx/net/sourceforge/jnlp/tools/JarCertVerifier.java 581 (verifyJar): two for loops made into for-each loops 582 583 2012-06-19 Jiri Vanek <jvanek@redhat.com> 584 585 various test for browser engine 586 * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: 587 fixed missing parenthesis 588 * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests2.html: 589 new test excluding XslowX for applets 590 * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests: 591 (doubleChrome) test for ensuring that two chrome browsers launched 592 behind themselves will not cause errors as they were without 593 criticalFixes patch 594 (AppletInBrowserTest) and (AppletInBrowserTestXslowX) testing methods 595 for all browser 596 * tests/jnlp_tests/simple/AppletTest/testcases/AppletBaseURLTest: 597 * tests/jnlp_tests/simple/AppletTest/testcases/CheckServicesTests: 598 * tests/jnlp_tests/simple/AppletTest/testcases/AppletReadsInvalidJarTests: 599 Included @TestInBrowser instead of plain executeBrowser 600 * tests/jnlp_tests/simple/deadlocktest/srcs/DeadlockTest.java: improved 601 to print sometimes something out 602 * tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: 603 (testDeadLockTestTerminatedBody) enhanced to ensure that not so much is 604 lost when process is terminated, but showing that something can be lost 605 (which is correct) 606 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: 607 (testNonExisitngBrowserWillNotDeadlock) testing taht when no browser is 608 set, then no deadlock happens as happen before criticalFixes's deadlyException 609 (testUnexistingProcessWillFailRecognizedly) is actually testing deadlyException 610 (testNonExisitngBrowserWillNotCauseMess) some but with annotation which 611 was also harming output of tool little bit without TestInBrowsersAnnotation fixed. 612 (testBrowsers2) is testing all browsers configuration without annotation 613 and (testBrowser3) do the same configuration tests annotation driven 614 (testBrowser) body of above two methods. Is testing whether used 615 browsers are correctly linked with latest build 616 (testBrowsers1) is testing parsing of -D variable 617 (testListeners) annotated that needs display 618 * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: 619 annotated with Bug annotation 620 621 2012-06-19 Jiri Vanek <jvanek@redhat.com> 622 623 introduced possibility to run comfortably applets+html reproducers 624 * Makefile.am: used BROWSER_TESTS_MODIFICATION variable to pass global 625 switch from configure 626 * acinclude.m4: (IT_SET_GLOBAL_BROWSERTESTS_BHAVIOUR) new method 627 handling --with-browser-tests 628 * configure.ac: used IT_SET_GLOBAL_BROWSERTESTS_BHAVIOUR 629 switch and passing BROWSER_TESTS_MODIFICATION variable to Makefile. 630 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 631 (currentBrowser) variable holding injected browser for ServerAccess instance 632 (loggedBrowser) static variable keeping id of (currentBrowser) for static 633 logging purposes 634 (modifyMethodWithForBrowser) new function changing the name of method to 635 "method - browser" for logging purposes 636 (getBrowserLocation) - returning path to process to be launched when 637 browser requested 638 (getBrowserParams) - gathering set default's browser settings 639 (set/getCurrentBrowsers) - set browser by id/return id of set browser 640 (set/getCurrentBrowser) - set browser instance /returns instance of 641 current browser 642 (executeBrowser) family of methods now cooperate with above methods for 643 default set browser 644 (executeBrowser(Browser) family to work with implicit browser 645 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/TestInBrowsers.java: 646 annotation for determining which browser(s) to use with annotated method 647 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/Browser.java: 648 interface for dealing with various browsers 649 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserFactory.java: 650 singleton for mapping configured browsers x requested browser x browsers proxies 651 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTest.java: 652 Forefather of all testcases which have methods to do tests iniside browser. 653 Is allowing correct annotation -> proxy trasnver to VirtualServer for 654 selected method and is requesting custom runner from junit framework 655 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java: 656 custom test Ruuner which is responsible for translating annotation and 657 run the method mutlipletimes for each requested browser and to name it properly 658 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/Browsers.java: 659 enumeration of abstract browsers and theirs sets or subsets. 660 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/*: 661 individual browsers proxies and theirs abstractions,namely: 662 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Opera.java: 663 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java: 664 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java: 665 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java: 666 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Midori.java: 667 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java: 668 proxies for browsers as name suggests 669 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java: 670 abstract forefather for all browsers implementing Browser interface. Is 671 setting /usr/bin as bin path, libjavaplugin.so as default plugin library name, 672 intorducing stubs for methods (eg 32/64 bit libs) 673 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser: 674 forefather for all browsers except Opera. Is unifying .mozilla/plugins directories 675 676 2012-06-15 Jiri Vanek <jvanek@redhat.com> 677 678 * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: 679 Added quotes around parameters of html applet tag. 680 * tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: 681 Output verification is counting with repeated and probably unfinished outputs. 682 * tests/jnlp_tests/simple/deadlocktest/srcs/DeadlockTest.java 683 Is now printing out sentence in intervals to avoid destroy-consume as much as possible 684 * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: 685 Added bug annotation with threads on distro-pkg-dev 686 687 2012-06-15 Adam Domurad <adomurad@redhat.com> 688 689 Fixed two memory leaks 690 * plugin/icedteanp/IcedTeaNPPlugin.cc 691 (consume_message): Call to g_strsplit matched with call to g_strfreev. 692 * plugin/icedteanp/IcedTeaPluginUtils.cc 693 (post): Removed copy of string, which assumed consumer freed string 694 (which was not true and not always possible) 695 696 2012-06-11 Danesh Dadachanji <ddadacha@redhat.com> 697 698 PR855: AppletStub getDocumentBase() doesn't return full URL 699 * NEWS: Added PR855 entry. 700 * plugin/icedteanp/IcedTeaNPPlugin.cc (plugin_get_documentbase): 701 Assign documentbase_copy directly to href's value instead of iterating 702 through the segments to remove the file from the path. 703 * tests/jnlp_tests/simple/AppletBaseURLTest/srcs/AppletBaseURL.java: 704 * tests/jnlp_tests/simple/AppletBaseURLTest/testcases/AppletBaseURLTest.java: 705 * tests/jnlp_tests/simple/AppletBaseURLTest/resources/AppletBaseURLTest.html: 706 * tests/jnlp_tests/simple/AppletBaseURLTest/resources/AppletBaseURLTest.jnlp: 707 * tests/jnlp_tests/simple/AppletBaseURLTest/resources/AppletJNLPHrefBaseURLTest.html: 708 New reproducer that checks the URLS that document and codebase 709 point are correct. 710 711 2012-06-13 Danesh Dadachanji <ddadacha@redhat.com> 712 713 Update CheckServices reproducer to handle browser testcase. 714 * tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java: 715 Added browser test and annotation, refactored asserts into helper method. 716 * tests/jnlp_tests/simple/CheckServices/resources/CheckPluginServices.html: 717 New browser test file that runs applet using jnlp_href. 718 719 2012-06-13 Jiri Vanek <jvanek@redhat.com> 720 721 * tests/junit-runner/JunitLikeXmlOutputListener.java: 722 Introduced TEST_IGNORED_ATTRIBUTE to mark test as ignored if should be. 723 * tests/report-styles/jreport.xsl: Applied correct text and style for 724 tests with attribute ignored. 725 726 2012-06-12 Adam Domurad <adomurad@redhat.com> 727 728 Fixes PR722, javaws failing to run with unsigned content in META-INF/ 729 * NEWS: Added entry: Fixes PR722 730 * netx/net/sourceforge/jnlp/tools/JarCertVerifier.java: Changed 731 isSignatureRelated => isMetaInfFile. Now all files under META-INF/ are 732 disregarded in checking the jar signage. 733 734 2012-06-11 Jiri Vanek <jvanek@redhat.com> 735 736 Implemented xml logging backend 737 * Makefile.am: (stamps/run-netx-unit-tests.stamp) and 738 (stamps/run-netx-dist-tests.stamp) removed redirection of streams as 739 logging is now done in ServerAccess tests extensions 740 added xsltproc execution above generated xml log 741 xsltproc generating results html files is now receiving result of above 742 as parameter 743 * tests/report-styles/jreport.xsl: log parameter is now accepted, and 744 if set, then all tests are linking into specified file to show the log 745 * tests/report-styles/report.css: added styles for new links 746 * tests/report-styles/index.js: new functions to work for result of below sheet 747 * tests/report-styles/logs.xsl: new file, sheet to convert xml log to html file 748 * tests/report-styles/output.css: new file, styles of above html file 749 * tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: 750 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: 751 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 752 Tests', server's and ProcessAssasin's logs are now redirected to bottleneck 753 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 754 (LOGS_REPRINT) flag for debugging purposes, will enable reprinting to 755 stdout/err again 756 (DEFAULT_LOG_FILE ) default name of xml output 757 (DEFAULT_STDERR_FILE)(DEFAULT_STDOUT_FILE)(DEFAULT_STDLOGS_FILE) default 758 values of plain text output files 759 (*ELEMENT) and( (*ATTRIBUTE) variables keeping repeated names of xml 760 output parts 761 (writeXmlLog) method called from Sytsem.hook to save xml log 762 (addToXmlLog) method to record item to xml structure 763 (TestsLogs) and (LogItem) inner classes to keep logging information 764 (log) is now reprinting message with id to std out/err dependently on 765 (LOGS_REPRINT) but always to internal streams, possilbe exception is thrown 766 (logException) new method, shortcut to log exception in same way as message 767 (getTestMethod) now can handle methods inside ServerAccess class too 768 769 2012-06-11 Adam Domurad <adomurad@redhat.com> 770 771 * NEWS: Added mention of fixing PR518 772 773 2012-06-07 Saad Mohammad <smohammad@redhat.com> 774 775 Allows the user to configure browser paths and/or disable browsers. 776 * acinclude.m4 (IT_FIND_BROWSER): Checks if the browser is set to be 777 disabled, or if the path provided is valid. Otherwise, it locates the 778 default path to the browser if found on the system. 779 * configure.ac: Uses IT_FIND_BROWSER to find/configure browsers. 780 781 2012-06-06 Deepak Bhole <dbhole@redhat.com> 782 783 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 784 (getAccessControlContextForClassLoading): Iterate over codebase URLs only 785 if codeBaseLoader is not null. 786 787 2012-06-05 Deepak Bhole <dbhole@redhat.com> 788 789 PR861: Allow loading from non codebase hosts. Allow code to connect to 790 hosting server. 791 * netx/net/sourceforge/jnlp/SecurityDesc.java 792 (getSandBoxPermissions): Only add host if it is not empty. 793 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 794 (getPermissions): Add SocketPermission for code source host. 795 (findLoadedClassAll): Call super methods privileged so that connection to 796 non codebase hosts can be made. 797 (findClass): Same. 798 (findResourcesBySearching): Same. Also use privileged context for enum 799 operations because the enum is defined on the fly by URLClassLoader and 800 checks for hosting server connectivity via next(). 801 (getAccessControlContextForClassLoading): New method. Returns a control 802 context for classloader operations like find/load/etc. 803 (CodeBaseClassLoader::findClass): Call super methods privileged so that 804 connection to non codebase hosts can be made. 805 (CodeBaseClassLoader::findResource): Same. 806 807 2012-06-05 Jiri Vanek <jvanek@redhat.com> 808 809 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/KnownToFail.java 810 New file. Annotation for marking failing tests. 811 * tests/report-styles/jreport.xsl: 812 * tests/junit-runner/LessVerboseTextListener.java: 813 * tests/junit-runner/JunitLikeXmlOutputListener.java: Added counting 814 and printing of @KnownToFail annotations if presented. 815 * tests/jnlp_tests/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java: 816 (SpacesCanBeEverywhereRemoteTests1) (SpacesCanBeEverywhereRemoteTests2) 817 (SpacesCanBeEverywhereRemoteTests3) 818 * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java: (testTemplateCDATA) 819 (testApplicationCDATA) 820 * tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java: 821 (testCDataFirstChild) (testCDataSecondChild) (testCommentInAttributes) 822 * tests/netx/unit/net/sourceforge/jnlp/ParserMalformedXml.java: 823 (testMalformedArguments) (testTagNotClosed) (testUnquotedAttributes) 824 marked as KnownToFail 825 826 2012-06-05 Jiri Vanek <jvanek@redhat.com> 827 828 isDateInRange renamed to isDateInRange_internallForIcedTeaWebTesting 829 * netx/net/sourceforge/jnlp/runtime/pac-funcs.js: and 830 * tests/netx/pac/pac-funcs-test.js: 831 (isDateInRange): Renamed to isDateInRange_internallForIcedTeaWebTesting. 832 (isDateInRange_internallForIcedTeaWebTesting): New function 833 834 2012-06-04 Saad Mohammad <smohammad@redhat.com> 835 836 Added signed jnlp file tests. 837 * tests/jnlp_tests/signed/SignedJnlpApplication/resources/SignedJnlpApplication1.jnlp: 838 Launching jnlp file that matches the signed jnlp application file. 839 * tests/jnlp_tests/signed/SignedJnlpApplication/resources/SignedJnlpApplication2.jnlp: 840 * tests/jnlp_tests/signed/SignedJnlpApplication/resources/SignedJnlpApplication3.jnlp: 841 Launching jnlp file that does not match the signed jnlp application file. 842 * tests/jnlp_tests/signed/SignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp: 843 Signed jnlp application file. 844 * tests/jnlp_tests/signed/SignedJnlpApplication/srcs/SignedJnlpApplication.java: 845 A simple java class that outputs a string. 846 * tests/jnlp_tests/signed/SignedJnlpApplication/testcases/SignedJnlpApplicationTest.java: 847 Testcase that tests the launching of applications with a signed jnlp 848 application file. 849 * tests/jnlp_tests/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate1.jnlp: 850 Launching jnlp file that matches the signed jnlp application template file. 851 * tests/jnlp_tests/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate2.jnlp: 852 * tests/jnlp_tests/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate3.jnlp: 853 Launching jnlp file that does not match the signed jnlp application 854 template file. 855 * tests/jnlp_tests/signed/SignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp: 856 Signed jnlp application template file. 857 * tests/jnlp_tests/signed/SignedJnlpTemplate/srcs/SignedJnlpTemplate.java: 858 A simple java class that outputs a string. 859 * tests/jnlp_tests/signed/SignedJnlpTemplate/testcases/SignedJnlpTemplateTest.java: 860 Testcase that tests the launching of applications with a signed jnlp 861 application template file. 862 * tests/jnlp_tests/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication1.jnlp: 863 Launching jnlp file that matches the unsigned jnlp application file. 864 * tests/jnlp_tests/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication2.jnlp: 865 * tests/jnlp_tests/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication3.jnlp: 866 Launching jnlp file that does not match the unsigned jnlp application file. 867 * tests/jnlp_tests/simple/UnsignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp: 868 Unsigned jnlp application file. 869 * tests/jnlp_tests/simple/UnsignedJnlpApplication/srcs/UnsignedJnlpApplication.java: 870 A simple java class that outputs a string. 871 * tests/jnlp_tests/simple/UnsignedJnlpApplication/testcases/UnsignedJnlpApplicationTest.java: 872 Testcase that tests the launching of applications with an unsigned jnlp 873 application file. 874 * tests/jnlp_tests/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate1.jnlp: 875 Launching jnlp file that matches the unsigned jnlp application 876 template file. 877 * tests/jnlp_tests/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate2.jnlp: 878 * tests/jnlp_tests/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate3.jnlp: 879 Launching jnlp file that does not match the unsigned jnlp application 880 template file. 881 * tests/jnlp_tests/simple/UnsignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp: 882 Unsigned jnlp application template file. 883 * tests/jnlp_tests/simple/UnsignedJnlpTemplate/srcs/UnsignedJnlpTemplate.java: 884 A simple java class that outputs a string. 885 * tests/jnlp_tests/simple/UnsignedJnlpTemplate/testcases/UnsignedJnlpTemplateTest.java: 886 Testcase that tests the launching of applications with an unsigned jnlp 887 application template file. 888 * tests/jnlp_tests/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne1.jnlp: 889 Launching jnlp file that matches the signed jnlp application file. 890 * tests/jnlp_tests/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne2.jnlp: 891 Launching jnlp file that does not match the signed jnlp application file. 892 * tests/jnlp_tests/signed/SignedJnlpCaseTestOne/srcs/JNLP-INF/aPpLiCaTioN.jnlp: 893 Signed jnlp application file. 894 * tests/jnlp_tests/signed/SignedJnlpCaseTestOne/srcs/SignedJnlpCase.java: 895 A simple java class that outputs a string. 896 * tests/jnlp_tests/signed/SignedJnlpCaseTestOne/testcases/SignedJnlpCaseOneTest.java: 897 Testcase that tests the case-sensitivity of the signed jnlp application's 898 filename. 899 * tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo1.jnlp: 900 Launching jnlp file that matches the signed jnlp application template file. 901 * tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo2.jnlp: 902 Launching jnlp file that does not match the signed jnlp application 903 template file. 904 * tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/srcs/JNLP-INF/aPpLiCaTiOn_tEmPlAte.jnlp: 905 Signed jnlp application template file. 906 * tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/srcs/SignedJnlpCase.java: 907 A simple java class that outputs a string. 908 * tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/testcases/SignedJnlpCaseTwoTest.java: 909 Testcase that tests the case-sensitivity of the signed jnlp application 910 template's filename. 911 912 2012-06-04 Danesh Dadachanji <ddadacha@redhat.com> 913 914 Fix to handle absolute paths passed into jnlp_href's value. 915 * netx/net/sourceforge/jnlp/PluginBridge.java 916 (PluginBridge): Uses context of codebase to evaluate jnlp_href's value. 917 Uses JNLPCreator's create method to make new JNLPFile variables. 918 New constructor that wraps around the original one, creating a new 919 JNLPCreator to use. 920 * netx/net/sourceforge/jnlp/JNLPCreator.java: New strategy pattern class 921 to be used to wrap around the creation of a JNLPFile. Replace this creator 922 when unit testing to skip running parsing code. 923 * tests/netx/unit/net/sourceforge/jnlp/PluginBridgeTest.java: 924 New class to unit test getEvaluatedJNLPHref. 925 926 2012-06-04 Adam Domurad <adomurad@redhat.com> 927 928 Added self to AUTHORS. 929 This patch fixes PR518, ensures null termination of strings based off 930 of NPVariant results. 931 * plugin/icedteanp/IcedTeaPluginUtils.h: Added declaration of 932 NPVariantAsString 933 * plugin/icedteanp/IcedTeaPluginUtils.cc 934 (NPVariantAsString): New. Converts an NPVariant to a 935 std::string, assumes it is a valid NPString. 936 (isObjectJSArray): Now uses NPVariantAsString, minor cleanup. 937 * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc 938 (plugin_get_documentbase): Now uses NPVariantAsString. 939 * plugin/icedteanp/IcedTeaNPPlugin.cc 940 (NPVariantToString): Now uses NPVariantAsString, minor cleanup. 941 942 2012-06-01 Deepak Bhole <dbhole@redhat.com> 943 944 PR863: Error passing strings to applet methods in Chromium 945 * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc 946 (createJavaObjectFromVariant): Account for length of the characters. 947 * plugin/icedteanp/IcedTeaNPPlugin.cc (plugin_get_documentbase): Same. 948 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc (_eval): Print the 949 string's c_str rather than utf8characters. 950 * plugin/icedteanp/IcedTeaPluginUtils.cc (printNPVariant): Account for 951 length of the characters. 952 (NPVariantToString): Same. 953 (isObjectJSArray): Same. 954 955 2012-05-30 Jiri Vanek <jvanek@redhat.com> 956 957 Enabled multiple certificates and extracted variables 958 * Makefile.am: EXPORTED_TEST_CERT by EXPORTED_TEST_CERT_PREFIX and 959 EXPORTED_TEST_CERT_SUFFIX for further composition 960 SIGNED_REPRODUCERS new variable for iterating through signed reproducers 961 SIMPLE_REPRODUCERS new variable for iterating through simple reproducers 962 ALL_REPRODUCER new variable for iterating through all reproducers 963 (junit-jnlp-dist-signed.txt) replaced by 964 (stamps/junit-jnlp-dist-signed.stamp) which generates 965 junit-jnlp-dist-signedX.txt for each directory with signed reproducers 966 (stamps/netx-dist-tests-prepare-reproducers.stamp) 967 (stamps/change-dots-to-paths.stamp) 968 (stamps/netx-dist-tests-compile-testcases.stamp) 969 (run-netx-dist-codecoverage): extracted variables 970 (clean-netx-dist-tests): iterates through all the list and removes them 971 (stamps/netx-dist-tests-sign-some-reproducers.stamp): now iterate through 972 SIGNED_REPRODUCERS and creates special certificate for each member. Each 973 jar from this directory is then signed by corresponding certificate 974 (netx-dist-tests-remove-cert-from-public): iterates through all certificates 975 (stamps/netx-dist-tests-import-cert-to-public): exports each certificate 976 created during tests preparations 977 ($(EXPORTED_TEST_CERT)) replaced by stamps/exported-test-certs.stamp which 978 create for each of SIGNED_REPRODUCERS individual certificate 979 (tests/jnlp_tests/README): mentioned possibility of multiple certificate 980 981 2012-05-29 Jiri Vanek <jvanek@redhat.com> 982 983 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (getPermissions): 984 New rethrow of exceptions and following condition make more accurate. 985 986 2012-05-29 Jiri Vanek <jvanek@redhat.com> 987 988 Get rid of repeated sout/serr in reproducers testcases/unit tests and 989 introduce bottleneck for loging. 990 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 991 (PROCESS_LOG) static flag for enabling/disabling automatic logging of 992 statically executed processes. 993 (logErrorReprint) (logOutputReprint) (logNoReprint) new methods, to call 994 logging bottleneck. 995 (log) main logging bottleneck, reprint message to according stream with 996 calling test-class and test-method as suffix. 997 (getTestMethod) new method to analyze calling test-method. 998 (executeProcess) enhanced for conditional automatic logging of start of 999 process and outputs of process. 1000 * tests/jnlp_tests/signed/AppletTestSigned/testcases/AppletTestSignedTests.java: 1001 * tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java: 1002 * tests/jnlp_tests/signed/MissingJar/testcases/MissingJarTest.java: 1003 * tests/jnlp_tests/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java: 1004 * tests/jnlp_tests/signed/Spaces can be everywhere signed/testcases/SpacesCanBeEverywhereTestsSigned.java: 1005 * tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java: 1006 * tests/jnlp_tests/simple/AddShutdownHook/testcases/AddShutdownHookTest.java: 1007 * tests/jnlp_tests/simple/AllStackTraces/testcases/AllStackTracesTest.java: 1008 * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java: 1009 * tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java: 1010 * tests/jnlp_tests/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java: 1011 * tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java: 1012 * tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: 1013 * tests/jnlp_tests/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java: 1014 * tests/jnlp_tests/simple/ReadProperties/testcases/ReadPropertiesTest.java: 1015 * tests/jnlp_tests/simple/RedirectStreams/testcases/RedirectStreamsTest.java: 1016 * tests/jnlp_tests/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java: 1017 * tests/jnlp_tests/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java: 1018 * tests/jnlp_tests/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java: 1019 * tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: 1020 * tests/jnlp_tests/simple/simpletest1/testcases/SimpleTest1Test.java: 1021 * tests/jnlp_tests/simple/simpletest2/testcases/SimpleTest2Test.java: 1022 * tests/netx/unit/net/sourceforge/jnlp/cache/CacheLRUWrapperTest.java: 1023 * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: 1024 * tests/netx/unit/net/sourceforge/jnlp/util/replacements/BASE64EncoderTest.java: 1025 all System.out replaced by ServerAccess.logOutputReprint 1026 and System.err replaced by ServerAccess.logErrorReprint 1027 1028 2012-05-25 Adam Domurad <adomurad@redhat.com> 1029 1030 Changed for-loops over iterators and indices to for-each loops if they 1031 were sufficient and clearer. 1032 * netx/net/sourceforge/jnlp/JNLPFile.java: Changed for-loops that could 1033 be expressed more clearly as for-each loops. 1034 * netx/net/sourceforge/jnlp/PluginBridge.java: Same 1035 * netx/net/sourceforge/jnlp/ResourcesDesc.java: Same 1036 * netx/net/sourceforge/jnlp/cache/CacheUtil.java: Same 1037 * netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java: Same 1038 * netx/net/sourceforge/jnlp/cache/Resource.java: Same 1039 * netx/net/sourceforge/jnlp/cache/ResourceTracker.java: Same 1040 * netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java: Same 1041 * netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java: Same 1042 * plugin/icedteanp/java/netscape/javascript/JSObject.java: Same 1043 * plugin/icedteanp/java/sun/applet/JavaConsole.java: Same 1044 * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: Same 1045 1046 2012-05-23 Adam Domurad <adomurad@redhat.com> 1047 Removed instances of snprintf where buffer size was not known. Added 1048 buffer size constant for allocating buffers for numeric conversions. 1049 * plugin/icedteanp/IcedTeaNPPlugin.cc: Removed usage of snprintf for 1050 simple blanking of strings. Buffer size was misguided previously. 1051 Used NUM_STR_BUFFER_SIZE constant to replace magic numbers/ 1052 * plugin/icedteanp/IcedTeaPluginUtils.cc: Made 1053 NPVariantToString(NPVariant variant, std::string* result) use two 1054 space indentation. Used NUM_STR_BUFFER_SIZE constant to replace magic 1055 numbers. 1056 * plugin/icedteanp/IcedTeaPluginUtils.h: Added constant, 1057 NUM_STR_BUFFER_SIZE. 1058 1059 2012-05-24 Danesh Dadachanji <ddadacha@redhat.com> 1060 1061 Fix use of src dir instead of build dir when whitelisting. 1062 * Makefile.am (REPRODUCERS_CLASS_WHITELIST): Use abs_top_srcdir 1063 instead of abs_top_builddir. 1064 1065 2012-05-23 Martin Olsson <martin@minimum.se> 1066 1067 * plugin/icedteanp/IcedTeaPluginUtils.cc: 1068 Tiny fixup for changeset 383; don't do free(stack_variable). 1069 1070 2012-05-20 Jiri Vanek <jvanek@redhat.com> 1071 1072 Reproducers engine enhanced for jars in subdirectories by "." naming convention 1073 * Makefile.am: (stamps/change-dots-to-paths.stamp) new target to copy jars 1074 with dots (.jar omitted) to the java-like package/directory structure in 1075 jnlp_test_server 1076 (EXPORTED_TEST_CERT) now depends on stamps/change-dots-to-paths.stamp 1077 (clean-netx-dist-tests) removes stamps/change-dots-to-paths.stamp too. 1078 1079 2012-05-24 Jiri Vanek <jvanek@redhat.com> 1080 1081 Introduced whitelist for reproducers 1082 * netx-dist-tests-whitelist: new file, contains regular expressions 1083 (separated by space) for expr to select testcases which only will be 1084 run. By default set to all by expression .* 1085 * Makefile.am: (REPRODUCERS_CLASS_NAMES) When class with testcases is 1086 going to be included in list, it is at first check for match in whitelist. 1087 If there is no match, will not be included. 1088 1089 2012-05-24 Martin Olsson <martin@minimum.se> 1090 1091 * plugin/icedteanp/IcedTeaPluginUtils.cc: 1092 Fix two typos. 1093 1094 2012-05-23 Deepak Bhole <dbhole@redhat.com> 1095 1096 * AUTHORS: Added Martin Olsson to list. 1097 1098 2012-05-23 Martin Olsson <martin@minimum.se> 1099 1100 * plugin/icedteanp/IcedTeaNPPlugin.cc: 1101 Use g_mutex_free instead of g_free to free appletviewer_mutex (fixes 1102 crash). 1103 1104 2012-05-23 Deepak Bhole <dbhole@redhat.com> 1105 1106 * ChangeLog: Converted spaces to tabs in an older entry 1107 1108 2012-05-23 Jiri Vanek <jvanek@redhat.com> 1109 1110 * netx/net/sourceforge/jnlp/resources/Messages.properties: fixed error 1111 in PBadNonrelativeUrl 1112 1113 2012-05-23 Jiri Vanek <jvanek@redhat.com> 1114 1115 Added more debugging outputs 1116 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 1117 (getCodeSourceSecurity): added output message when no SecurityDesc is found 1118 for some url/resource 1119 * netx/net/sourceforge/jnlp/resources/Messages.properties: added LNoSecInstance 1120 and LCertFoundIn values 1121 * netx/net/sourceforge/jnlp/security/KeyStores.java: (getPathToKeystore): 1122 new method, able to search for file used for creating of KeyStore if possible 1123 * netx/net/sourceforge/jnlp/security/CertificateUtils.java: (inKeyStores) 1124 using getPathToKeystore for debug output 1125 1126 2012-05-23 Jiri Vanek <jvanek@redhat.com> 1127 1128 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (getPermissions): 1129 Any exception from this method is consumed somewhere. I have cough exception, 1130 reprint it in debug mode and re-throw (to be lost). Main condition in this 1131 method had several possible NullPointer exceptions. Separated and thrown before 1132 this condition. 1133 1134 2012-05-23 Jiri Vanek <jvanek@redhat.com> 1135 1136 Enhanced about dialog 1137 * extra/net/sourceforge/javaws/about/Main.java: Main frame and Main tab 1138 renamed from "About NetX" to "About IcedTea-Web and NetX". 1139 * extra/net/sourceforge/javaws/about/resources/about.html: mentioned 1140 IcedTea-Web. 1141 * extra/net/sourceforge/javaws/about/resources/notes.html: List of authors 1142 synchronized with AUTHORS, mentioned classpath's IcedTea-Web as homepage 1143 of IcedTea-web. 1144 1145 2012-05-23 Jiri Vanek <jvanek@redhat.com> 1146 1147 Fixed error in reproducers source preparation 1148 * Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp) removed 1149 inappropriately used quotes when copying notSrcFiles. Source files now 1150 copied only if src dir exists in reproducer 1151 1152 2012-05-22 Adam Domurad <adomurad@redhat.com> 1153 1154 Changed allocation of small, fixed-size buffers to stack-based 1155 allocations. Changed occurences of sprintf to the safer function 1156 snprintf, added buffer information. While unlikely to change 1157 functionality, snprintf adds an extra check to prevent buffer 1158 overflows. 1159 * plugin/icedteanp/IcedTeaNPPlugin.cc: Allocation of small buffers 1160 using malloc changed to stack allocation & changed sprintf calls to 1161 buffer-size aware snprintf calls. 1162 * plugin/icedteanp/IcedTeaPluginUtils.cc: Same as above. 1163 1164 2012-05-22 Jiri Vanek <jvanek@redhat.com> 1165 1166 * tests/jnlp_tests/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java: 1167 * tests/jnlp_tests/simple/AddShutdownHook/testcases/AddShutdownHookTest.java: 1168 * tests/jnlp_tests/simple/AllStackTraces/testcases/AllStackTracesTest.java: 1169 * tests/jnlp_tests/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java: 1170 * tests/jnlp_tests/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java: 1171 * tests/jnlp_tests/simple/ReadProperties/testcases/ReadPropertiesTest.java: 1172 * tests/jnlp_tests/simple/RedirectStreams/testcases/RedirectStreamsTest.java: 1173 * tests/jnlp_tests/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java: 1174 * tests/jnlp_tests/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java: 1175 All exact matches upon AccessControlException replaced by regular expression matching both jdk7 and jdk6 syntax 1176 1177 2012-05-21 Jiri Vanek <jvanek@redhat.com> 1178 1179 * Makefile.am: mzilla-filesystem linking targets now counts also with 1180 midori and epiphany. Extracted duplicated entries to variables 1181 * configure.ac: added check for midori and epiphany 1182 1183 2012-05-21 Jiri Vanek <jvanek@redhat.com> 1184 1185 Added detection of installed browsers and added targets to create 1186 symbolic links from install dir to browsers' plugin directories. 1187 Primarily for testing purposes 1188 * Makefile.am: (stamps/user-links.stamp) with alias (links) - new target for 1189 creating symlinks for all users. One must be root to execute this target. 1190 (stamps/global-links.stamp) with alias (user-links) - new target 1191 for creating symlinks for logged user only. Because opera is missing this feature, 1192 quite useless for testing or dependence targets, but good for live user. 1193 (restore-global-links): target for restoring original global links. 1194 One must be root again 1195 (restore-user-links): target for restoring user's links 1196 * configure.ac: added basic check whether and which browsers are 1197 installed 1198 1199 2012-05-18 Jiri Vanek <jvanek@redhat.com> 1200 1201 Fixed behavior when encoded/characters needed encoding included in url 1202 * NEWS: mentioned PR811 1203 * netx/net/sourceforge/jnlp/cache/CacheUtil.java: (urlEquals) Enhanced 1204 to be able compare encoded/decoded urls correctly. 1205 (notNullUrlEquals) new method to separate comparing of individual parts of 1206 url from null checks 1207 * netx/net/sourceforge/jnlp/cache/ResourceTracker.java: (addResource) 1208 is now encoding url if needed. (normalizeUrl) new method to encode path in 1209 url of all except file protocol. (normalizeChunk) New method for encoding 1210 of atomic piece. 1211 1212 2012-05-18 Jiri Vanek <jvanek@redhat.com> 1213 1214 More tests for Spaces and characters in urls 1215 * netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java: and 1216 * netx/net/sourceforge/jnlp/cache/CacheUtil.java: for unit-tests 1217 purposes (cacheDir) make to point to tmp dir when no 1218 DeploymentConfiguration exists. 1219 * tests/jnlp_tests/signed/Spaces can be everywhere signed/: 1220 couple of new test doing the same as simple "Spaces can be everywhere" 1221 but are signed 1222 * tests/jnlp_tests/simple/Spaces can be everywhere/: added new test-cases 1223 and html/jnlp test files to try more combinations of encodable characters 1224 x launches 1225 * tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java: 1226 unittest for url encoder behavior 1227 * tests/netx/unit/net/sourceforge/jnlp/cache/CacheUtilTest.java: 1228 unittest for urlEquals function 1229 1230 2012-05-17 Adam Domurad <adomurad@redhat.com> 1231 1232 Fixed uses of == to compare String objects to .equals where 1233 appropriate. 1234 Noted a non-obvious use of == to compare a 'magic' String reference. 1235 * netx/net/sourceforge/jnlp/JNLPFile.java: 1236 Changed calls that compare String contents from == to .equals 1237 * plugin/icedteanp/java/sun/applet/GetMemberPluginCallRequest.java: 1238 Same 1239 * plugin/icedteanp/java/sun/applet/PluginCallRequestFactory.java: 1240 Same 1241 * netx/net/sourceforge/jnlp/Version.java: Added comment explaining why 1242 == was used vs .equals 1243 1244 2012-05-14 Jiri Vanek <jvanek@redhat.com> 1245 1246 * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: 1247 * tests/netx/unit/net/sourceforge/jnlp/cache/CacheLRUWrapperTest.java: 1248 System.out replaced with System.err 1249 1250 2012-05-14 Jiri Vanek <jvanek@redhat.com> 1251 1252 * tests/junit-runner/JunitLikeXmlOutputListener.java: fixed indentation 1253 and spacing 1254 1255 2012-05-11 Thomas Meyer <thomas@m3y3r.de> 1256 1257 * tests/netx/unit/net/sourceforge/jnlp/util/PropertiesFileTest.java: Add 1258 some unit tests for the PropertiesFile class 1259 * tests/netx/unit/net/sourceforge/jnlp/cache/CacheLRUWrapperTest.java: Add 1260 some unit tests for the CacheLRUWrapper class 1261 * netx/net/sourceforge/jnlp/util/PropertiesFile.java: Use last 1262 modification timestamp of the underlying file to lazy load properties. 1263 (load): Only reload file, if the file modification timestamp has changed. 1264 (store): Actually fsync() the file to disk. 1265 * netx/net/sourceforge/jnlp/services/XPersistenceService.java (create): 1266 Fix coding style 1267 * netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java (load): Only check 1268 data when the recently_used file was reloaded. 1269 1270 2012-05-02 Jiri Vanek <jvanek@redhat.com> 1271 1272 Introduced new annotations Bug (to connect test/reproducer with documentation) 1273 and NeedsDisplay which tells the launching engine that this particular 1274 test needs Display. Based on ptisnovs's ideas and jtreg experiences 1275 *Makefile.am: (JUNIT_RUNNER_JAR), (stamps/run-netx-unit-tests.stamp) and 1276 (stamps/run-unit-test-code-coverage.stamp) are now dependent on (stamps/netx-dist-tests-compile) 1277 and classpaths inside them have been enriched for JNLP_TESTS_ENGINE_DIR 1278 which contains definitions of those annotations 1279 *tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java: and 1280 *tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: and 1281 *tests/jnlp_tests/simple/Spaces can be everywhere/testcase/SpacesCanBeEverywhereTests.java: 1282 filled Bug annotations 1283 *tests/junit-runner/JunitLikeXmlOutputListener.java: made to understand 1284 Bug annotation 1285 *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/NeedsDisplay.java: 1286 and 1287 *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/Bug.java: 1288 annotations definitions 1289 *tests/report-styles/jreport.xsl: made nice links from bug annotation 1290 prepared by JunitLikeXmlOutputListener 1291 1292 2012-04-24 Omair Majid <omajid@redhat.com> 1293 1294 * Makefile.am 1295 (RUNTIME): Add resources.jar. 1296 (stamps/run-unit-test-code-coverage.stamp) [WITH_EMMA]: Add resouces.jar 1297 to classpath. 1298 (stamps/run-reproducers-test-code-coverage.stamp) [WITH_EMMA]: Include 1299 resources.jar in classpath. 1300 (stamps/bootstrap-directory.stamp): Create a link to resources.jar in 1301 BOOT_DIR. 1302 1303 2012-04-19 Omair Majid <omajid@redhat.com> 1304 1305 PR918: java applet windows uses a low resulution black/white icon 1306 * NEWS: Update with fix. 1307 * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java: Remove windowIcon. 1308 (initialize): Do not call loadWindowIcon. 1309 (getWindowIcon): Remove. 1310 (setWindowIcon): Remove. 1311 (loadWindowIcon): Remove. 1312 * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java 1313 (checkTopLevelWindow): Do not set the icon for all top level windows. Use 1314 the default java icon instead. 1315 * netx/net/sourceforge/jnlp/util/ImageResources.java: New file. Provides 1316 access to icons. 1317 * netx/net/sourceforge/jnlp/JNLPSplashScreen.java (JNLPSplashScreen), 1318 * netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java 1319 (getListener), 1320 * netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java 1321 (AdvancedProxySettingsDialog), 1322 * netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java (CacheViewer), 1323 * netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java (ControlPanel), 1324 * netx/net/sourceforge/jnlp/security/SecurityDialog.java (SecurityDialog), 1325 * netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java 1326 (CertificateViewer), 1327 * netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java (show), 1328 * plugin/icedteanp/java/sun/applet/JavaConsole.java (initialize): 1329 Explicitly load icons. 1330 * tests/netx/unit/net/sourceforge/jnlp/util/ImageResourcesTest.java: Test 1331 for ImageResources class. 1332 1333 2012-04-18 Jiri Vanek <jvanek@redhat.com> 1334 1335 Allowed signed applets in automatic reproducers tests 1336 * tests/jnlp_tests/signed/AppletTestSigned/resources/AppletTestSigned.html: 1337 html file for launching signed applet. Its style is different from the one for 1338 calling unsigned applets - red. 1339 * tests/jnlp_tests/signed/AppletTestSigned/resources/AppletTestSigned.jnlp: 1340 jnlp file for launched signed applet 1341 * tests/jnlp_tests/signed/AppletTestSigned/srcs/AppletTestSigned.java 1342 body of signed applet 1343 * tests/jnlp_tests/signed/AppletTestSigned/testcases/AppletTestSignedTests.java: 1344 (AppletTestSignedTest): testing method to launch signed applet in javaws 1345 (AppletTestSignedFirefoxTest): testing method to launch signed applet in 1346 browser 1347 * Makefile.am: PUBLIC_KEYSTORE_PASS, EXPORTED_TEST_CERT, TEST_CERT_ALIAS, 1348 PUBLIC_KEYSTORE PUBLIC_KEYSTORE_PASS: new global variables holding 1349 keystores' credentials 1350 (clean-local): clean-bootstrap-directory moved to be last one, as keytool 1351 is necessary for removing certificate 1352 (EXPORTED_TEST_CERT): new target exporting certificate from testing keystore 1353 (stamps/netx-dist-tests-import-cert-to-public): new target to import 1354 certificate to PUBLIC_KEYSTORE 1355 (netx-dist-tests-remove-cert-from-public): new target removing testing 1356 certificate from PUBLIC_KEYSTORE 1357 (clean-netx-dist-tests): now depends on netx-dist-tests-remove-cert-from-public 1358 and is removing EXPORTED_TEST_CERT file 1359 1360 2012-04-17 Jiri Vanek <jvanek@redhat.com> 1361 1362 Rewritten DeadLockTestTest to stop failing in more then 1/2 of cases 1363 All assassinated processes were hanging as zombies, killed forcibly by 1364 kill -9 now. 1365 * /tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: 1366 (countJavaInstances) now return pids of found javas. 1367 (killDiff) new method killing zombie javas forcibly. 1368 1369 2012-04-11 Jiri Vanek <jvanek@redhat.com> 1370 1371 * Makefile.am: EMMA_JAVA_ARGS, new variable for adjusting emma runs. 1372 Currently set to -Xmx2G. 1373 (stamps/run-unit-test-code-coverage.stamp), 1374 (stamps/run-reproducers-test-code-coverage.stamp), 1375 (run-test-code-coverage): Use EMMA_JAVA_ARGS in theirs emma runs. 1376 1377 2012-06-04 Jiri Vanek <jvanek@redhat.com> 1378 Thomas Meyer <thomas@m3y3r.de> 1379 1380 * makefile.am: (stamps/run-netx-dist-tests.stamp) and 1381 (run-reproducers-test-code-coverage.stamp) 1382 now using $(javaws) variable instead of plaintext javaws 1383 * netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java: (checkData) new 1384 method checking for sanity of cache entries 1385 (load) now checks for data sanity after loading, and stores without 1386 corrupted items if necessary 1387 (Comparator.compare) for sorting lru items. Now redundant checking for 1388 sanity removed 1389 * netx/net/sourceforge/jnlp/cache/CacheUtil.java: (getCacheFile) don't 1390 call lruHandler.store twice for new cache entries 1391 (getCacheFileIfExist) removed iteration and cleaning mechanism 1392 * netx/net/sourceforge/jnlp/resources/Messages.properties: modified 1393 cache messages 1394 * tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java 1395 Added test for checking corrupted path in entry and all tests adapted for 1396 exception thrown only in debug mode 1397 1398 2012-04-04 Danesh Dadachanji <ddadacha@redhat.com> 1399 1400 Change the name of JarSigner to JarCertVerifier to make it more 1401 relevant to the purpose of the file. 1402 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 1403 * netx/net/sourceforge/jnlp/tools/KeyStoreUtil.java: 1404 Replace all instances, paramaters and references of JarSigner 1405 by JarCertVerifier. 1406 * netx/net/sourceforge/jnlp/security/CertWarningPane.java 1407 * netx/net/sourceforge/jnlp/security/CertsInfoPane.java 1408 * netx/net/sourceforge/jnlp/security/MoreInfoPane.java 1409 * netx/net/sourceforge/jnlp/security/SecurityDialogs.java: 1410 Replaced all paramaters, references and variable names of JarSigner 1411 to CertVerifier to match the variable object type. 1412 * netx/net/sourceforge/jnlp/security/SecurityDialog.java (getJarSigner): 1413 Renamed to getCertVerifier as it returns the certVerfier instance. 1414 * netx/net/sourceforge/jnlp/tools/JarSigner.java: 1415 Renamed to JarCertVerifier. 1416 * netx/net/sourceforge/jnlp/tools/JarCertVerifier.java: 1417 The rename of JarSigner. 1418 1419 2012-04-05 Jiri Vanek <jvanek@redhat.com> 1420 1421 Fixing issue when process was not launched at all and when was killed but 1422 left behind living/hanging, fixing mime-types 1423 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 1424 (getContentOfStream) this method overloaded with possibility to specify 1425 encoding (I needed to set it to ASCII in one test) 1426 (deadlyException) field introduced in ThreadedProcess to record exception 1427 caused by impassibility of launching the process. And so process have 1428 been null without any sign why. 1429 (TinyHttpdImpl) now correctly returns known mime types 1430 (ProcessAssasin) can now skip or smoothly (and finally correctly) 1431 destroy its process, and all his logging messages were done null-proof 1432 (as deadlyException now allows) 1433 Asynchronous (ContentReader) have been silenced when complaining about 1434 closed streams by Assassin. 1435 1436 2012-04-03 Danesh Dadachanji <ddadacha@redhat.com> 1437 1438 Change all vendors in JNLP test suite to IcedTea and homepage href's to 1439 a link to IcedTea-Web's wiki page. 1440 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp 1441 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp 1442 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp 1443 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp 1444 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp 1445 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp 1446 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp 1447 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp 1448 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp 1449 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar2.jnlp 1450 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar3.jnlp 1451 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar4.jnlp 1452 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp 1453 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp 1454 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp 1455 * tests/jnlp_tests/signed/SimpletestSigned1/resources/SimpletestSigned1.jnlp 1456 * tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp 1457 * tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp 1458 * tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp 1459 * tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp 1460 * tests/jnlp_tests/simple/AddShutdownHook/resources/AddShutdownHook.jnlp 1461 * tests/jnlp_tests/simple/AllStackTraces/resources/AllStackTraces.jnlp 1462 * tests/jnlp_tests/simple/AppletTest/resources/AppletTest.jnlp 1463 * tests/jnlp_tests/simple/CheckServices/resources/CheckServices.jnlp 1464 * tests/jnlp_tests/simple/CreateClassLoader/resources/CreateClassLoader.jnlp 1465 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp 1466 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp 1467 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp 1468 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp 1469 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp 1470 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp 1471 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp 1472 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp 1473 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp 1474 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp 1475 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp 1476 * tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingNoAppDesc.jnlp 1477 * tests/jnlp_tests/simple/ReadEnvironment/resources/ReadEnvironment.jnlp 1478 * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties1.jnlp 1479 * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties2.jnlp 1480 * tests/jnlp_tests/simple/RedirectStreams/resources/RedirectStreams.jnlp 1481 * tests/jnlp_tests/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp 1482 * tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp 1483 * tests/jnlp_tests/simple/Spaces can be everywhere/resources/Spaces can be everywhere1.jnlp 1484 * tests/jnlp_tests/simple/Spaces can be everywhere/resources/Spaces can be everywhere2.jnlp 1485 * tests/jnlp_tests/simple/Spaces can be everywhere/resources/SpacesCanBeEverywhere1.jnlp 1486 * tests/jnlp_tests/simple/deadlocktest/resources/deadlocktest.jnlp 1487 * tests/jnlp_tests/simple/deadlocktest/resources/deadlocktest_1.jnlp 1488 * tests/jnlp_tests/simple/simpletest1/resources/simpletest1.jnlp 1489 * tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp 1490 * tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp 1491 * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp 1492 * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp 1493 * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp 1494 * tests/jnlp_tests/simple/simpletest2/resources/simpletest2.jnlp: 1495 Replaced the specified vendor with IcedTea and homepage with a link to 1496 IcedTea-Web's wiki. 1497 1498 2012-04-03 Omair Majid <omajid@redhat.com> 1499 1500 * netx/net/sourceforge/jnlp/runtime/pac-funcs.js: Replace incorrect use of 1501 getYear() with getFullYear(). 1502 (inYearMonthDateRange): Add missing conditional case. 1503 * tests/netx/pac/pac-funcs-test.js 1504 (runTest): New function. 1505 (runTests): Call runTest. 1506 (incDate): Deal with month/year wrapping around. 1507 (decDate): Removed. 1508 (testDateRange, testDateRange2, testDateRange3): Handle wrapping of month 1509 and days. 1510 1511 2012-04-03 Jiri Vanek <jvanek@redhat.com> 1512 1513 Tests virtual server thread marked as daemon by default 1514 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 1515 All (ServerLauncher) instances returned by methods were marked as daemon 1516 by default. Possibility to change and api were kept. 1517 1518 2012-03-30 Danesh Dadachanji <ddadacha@redhat.com> 1519 1520 Certificate start dates are not being checked, they are still verified 1521 even if the date has yet not been reached. 1522 * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJar): If the start 1523 date is in the future, set notYetValidCert to true. 1524 1525 2012-03-21 Omair Majid <omajid@redhat.com> 1526 1527 * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java 1528 (testIsMatchDoesNotHangOnLargeData): New method. 1529 1530 2012-03-21 Lars Herschke <lhersch@dssgmbh.de> 1531 1532 PR898: signed applications with big jnlp-file doesn't start 1533 * netx/net/sourceforge/jnlp/JNLPMatcher.java (JNLPMatcher): Handle large 1534 files correctly. 1535 1536 2012-03-19 Danesh Dadachanji <ddadacha@redhat.com> 1537 1538 Fix failing unit test missing title/vendor tags in the JNLP stream. 1539 * tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java 1540 (testNestedComments): Added title and vendor tags to malformedJnlp. 1541 1542 2012-03-19 Jiri Vanek <jvanek@redhat.com> 1543 * tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java: 1544 as javaws have now integrated splash, I have changed this test to lunch 1545 javaws -Xclearcache with -headless to skip this logo (although it is 1546 not fatal fr testrun itself) 1547 * tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html: 1548 this html file is lunched during tests run in browser and stdout of 1549 lunched applet is examined. Is lunched with slow resources to test 1550 spalshscreen 1551 * tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html: this 1552 test html file is dedicated to manual lunch and let user to look how the 1553 applet (with slow loading) is loaded and how looks splashscreen in 1554 small mode and in large mode 1555 * tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java: 1556 test is enriched for lunching the html file with applet in browser and 1557 is examining output of this file. Browser must be always terminated as 1558 there is no way how to close from inside 1559 * tests/jnlp_tests/simple/simpletest1/resources/netxPlugin.png: 1560 image to let user observe that user-defined splashscreen is still 1561 working even when internal splashscreen is enabled 1562 * tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp: 1563 this and all jnlp files below are just for manual lunching and for 1564 watching various lunches of splash screen - slow loading of resources 1565 and with custom splash 1566 * tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp: 1567 slow loading of resource and (XslowX)jnlp also 1568 * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp: 1569 slow loading of resource 1570 * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp: 1571 slow loading of resource with broken user's splash (our internal will be used) 1572 * tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp: 1573 slow loading of custom splash screen and resource 1574 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 1575 Main server launcher was modified to support lunching of browser, 1576 stdout listteners and for slowing download of resources to provide time 1577 for watching splash screen (main) was rewritten to provide free port OR 1578 run server in-D specified directory on custom or default port - very 1579 useful for debuging reproducers 1580 (getIndependentInstance) can now run also on specified port and (or) directory 1581 (USED_BROWSER_COMMAND) new constant handling value of -D property to 1582 set browser = "used.browser.command"; 1583 (getBrowserLocation) new method to provide specified 1584 (by used.browser.command -D property) or default browser location (firefox) 1585 (ensureServer) test is testing weather XslowXmodifier is working 1586 (executeBrowser) set of overloaded functions to lunch browser 1587 (TinyHttpdImpl) was enriched for XslowX modifier. When resource starts 1588 with this, is returned slowly - splited to 10 parts with 1s delay 1589 betwen sending each of them. 1590 Although it is throwing BrokenPipe exception, is working fine. 1591 (splitArray) new function to split array of byte to n arrays of bytes, 1592 which when concated do the same array 1593 (splitArrayTestN) set of tests for splitArray 1594 (ContentReader) now can also have lsteners for catching outputs n runtime. 1595 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ContentReaderListener.java: 1596 Listener for catching chars and lines form processes outputs 1597 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: 1598 added (testListeners) to test listeners behaviour 1599 1600 2012-03-16 Danesh Dadachanji <ddadacha@redhat.com> 1601 1602 Applications using JNLP files without a title or vendor section 1603 still run, despite them being required elements. 1604 * netx/net/sourceforge/jnlp/Parser.java: 1605 (getInformationDesc): If title or vendor are not found in info, 1606 a new ParseException is thrown. 1607 * netx/net/sourceforge/jnlp/resources/Messages.properties: 1608 Added PNoTitleElement and PNoVendorElement 1609 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/InformationParser.jnlp, 1610 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp, 1611 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp, 1612 * tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp, 1613 * tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/TitleVendorParserTest.java: 1614 New test that runs JNLPs in a combination of missing information, title 1615 and vendor tags, checking for the appropriate exceptions. 1616 1617 2012-03-14 Deepak Bhole <dbhole@redhat.com> 1618 Omair Majid <omajid@redhat.com> 1619 1620 PR895: IcedTea-Web searches for missing classes on each loadClass or 1621 findClass 1622 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 1623 (CodeBaseClassLoader): Added new map to track resources that are not 1624 found. 1625 (findClass): If resource was not found before, return immediately. If 1626 resource was not found for the first time, record it in the new map. 1627 (findResouces): Same. 1628 (findResource): Same. 1629 * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: 1630 Test case for PR895 from Omair Majid. 1631 1632 2012-03-14 Omair Majid <omajid@redhat.com> 1633 1634 Print exceptions to terminal when running in gui mode too. 1635 * netx/net/sourceforge/jnlp/AbstractLaunchHandler.java: New file. 1636 * netx/net/sourceforge/jnlp/DefaultLaunchHandler.java: Extend 1637 AbstractLaunchHandler. 1638 (DefaultLaunchHandler): New method. 1639 (printMessage): Moved to parent class. 1640 * netx/net/sourceforge/jnlp/GuiLaunchHandler.java: Extend 1641 AbstractLaunchHandler. 1642 (GuiLauchHandler): New method. 1643 (launchError): Print the error too. 1644 (launchWarning,validationError): Call parent's printMessage. 1645 * netx/net/sourceforge/jnlp/LaunchException.java: Use standard java 1646 exception chaining. This removes compatibility with pre-java 1.3 class 1647 libraries. 1648 (LaunchException(JNLPFile,Exception,String,String,String,String)): Pass 1649 cause to parent so exceptions are chanined properly. 1650 (LaunchException(String,Throwable),LaunchException(Throwable)): Call 1651 parent's constructor. 1652 (printStackTrace(PrintStream),printStackTrace(PrintWriter),getCause): 1653 Removed. Use parent's implementation instead. 1654 (getCauses): Removed. 1655 * netx/net/sourceforge/jnlp/LaunchHandler.java 1656 (validationError): Rename argument to clarify meaing. 1657 * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java 1658 (initialize): Redirect output of all handlers to System.err. 1659 * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java 1660 (PluginAppletSecurityContext): Likewise. 1661 * tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java, 1662 * tests/netx/unit/net/sourceforge/jnlp/LaunchExceptionTest.java: New 1663 file. Contains tests. 1664 1665 2012-03-12 Danesh Dadachanji <ddadacha@redhat.com> 1666 1667 Adding test for regression of JNLP API accessibility in constructor 1668 methods of applets. 1669 * Makefile.am: Added classes.jar to classpath when compiling jnlp_tests. 1670 * tests/jnlp_tests/simple/CheckServices/resources/CheckServices.jnlp: 1671 * tests/jnlp_tests/simple/CheckServices/srcs/CheckServices.java: 1672 * tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java: 1673 New test file added. Tests ServiceManager is setup correctly when called 1674 from applet constructors. 1675 1676 2012-03-12 Danesh Dadachanji <ddadacha@redhat.com> 1677 1678 Update tests that are missing title/vendor tag in their JNLPs. 1679 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp, 1680 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp, 1681 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp, 1682 * tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp, 1683 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp, 1684 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar2.jnlp, 1685 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar3.jnlp, 1686 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar4.jnlp, 1687 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp, 1688 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp, 1689 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp, 1690 * tests/jnlp_tests/simple/AddShutdownHook/resources/AddShutdownHook.jnlp, 1691 * tests/jnlp_tests/simple/AllStackTraces/resources/AllStackTraces.jnlp 1692 * tests/jnlp_tests/simple/CreateClassLoader/resources/CreateClassLoader.jnlp, 1693 * tests/jnlp_tests/simple/ReadEnvironment/resources/ReadEnvironment.jnlp, 1694 * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties1.jnlp, 1695 * tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties2.jnlp, 1696 * tests/jnlp_tests/simple/RedirectStreams/resources/RedirectStreams.jnlp, 1697 * tests/jnlp_tests/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp, 1698 * tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp, 1699 * tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp: 1700 Added missing title/vendor tags that make them fail with this changeset. 1701 1702 2012-03-05 Jiri Vanek <jvanek@redhat.com> 1703 1704 Added test for main-class in manifest for jnlp 1705 * Makefile.am: (prepare-reproducers.stamp) fixed manifest handling. Till 1706 now was manifest copied as any other non java file, and so was rewritten 1707 by jar tool 1708 * tests/jnlp_tests/simple/ManifestedJar2/srcs: secondary jar file which 1709 should have manifest and so should help ManifestedJar1 with testing 1710 * tests/jnlp_tests/simple/ManifestedJar2/resources/META-INF/MANIFEST.MF: 1711 manifest for ManifestedJar2.jar 1712 * tests/jnlp_tests/simple/ManifestedJar1/srcs: main testing jar 1713 * tests/jnlp_tests/simple/ManifestedJar2/resources/META-INF/MANIFEST.MF: 1714 manifest for ManifestedJar1.jar 1715 * tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: 1716 testing class for this reproducers 1717 * tests/jnlp_tests/simple/ManifestedJar1/resources/: nine reproducers jnlps 1718 1719 2012-03-06 Jiri Vanek <jvanek@redhat.com> 1720 1721 Improved reflection test: 1722 * tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java: 1723 This testcase was extended for three more unsigned reflection tries and four signed 1724 *tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java: 1725 now accepting class to be findByName as argument. Four new jnlp files in 1726 signed a four in simple are then passing those argument 1727 *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp: 1728 *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp: 1729 *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp: 1730 *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp: 1731 *tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackage.jnlp: 1732 removed 1733 * tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java 1734 signed variation of AccessClassInPackage, tescase is also in AccessClassInPackage 1735 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp 1736 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp 1737 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp 1738 * tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp 1739 1740 2012-02-29 Deepak Bhole <dbhole@redhat.com> 1741 1742 * configure.ac: Bumped version to 1.3pre 1743 1744 2012-02-29 Deepak Bhole <dbhole@redhat.com> 1745 1746 * netx/net/sourceforge/jnlp/security/CertificateUtils.java 1747 (inKeyStores): Only check for certificate equality. 1748 1749 2012-02-28 Deepak Bhole <dbhole@redhat.com> 1750 1751 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 1752 (checkForMain): Also check manifest file of main jar. 1753 (getMainClassName): New method. Looks in a jar manifest to see if there is 1754 a Main-Class specified. 1755 1756 2012-02-28 Deepak Bhole <dbhole@redhat.com> 1757 1758 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc 1759 (_eval): Return 0 id to Java side if eval fails. 1760 (_call): Return 0 id to Java side if call fails. 1761 1762 2012-02-27 Matthias Klose <doko@ubuntu.com> 1763 1764 * acinclude.m4 (IT_CHECK_PLUGIN_DEPENDENCIES): Use the mozilla-plugin 1765 pkgconfig module if the libxul module is not available. 1766 1767 2012-02-27 Matthias Klose <doko@ubuntu.com> 1768 1769 * acinclude.m4 (IT_FIND_JAVA): Set VERSION_DEFS. 1770 * Makefile.am ($(PLUGIN_DIR)/%.o): Pass $(VERSION_DEFS) 1771 * IcedTeaNPPlugin.cc (PLUGIN_MIME_DESC): Define in terms 1772 of HAVE_JAVA7. 1773 1774 2012-02-27 Thomas Meyer <thomas@m3y3r.de> 1775 Deepak Bhole <dbhole@redhat.com> 1776 1777 PR820: IcedTea-Web 1.1.3 crashing Firefox when loading Citrix XenApp 1778 * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc 1779 (createJavaObjectFromVariant): If variant is a generic object array, 1780 create a JSObject on Java side instead of JSObject array. 1781 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc 1782 (newMessageOnBus): Run finalize on main thread. 1783 (eval): Create Java object in _eval 1784 (call): Create Java object in _call. 1785 (setMember): Create Java object in _setMember. 1786 (sendMember): Create Java object in _getMember. 1787 (sendString): Create Java object in _getString. 1788 (_setMember): Process result and create Java object if needed. 1789 (_getMember): Same. 1790 (_eval): Same. 1791 (_call): Same. 1792 (_getString): Same. 1793 1794 2012-02-22 Danesh Dadachanji <ddadacha@redhat.com> 1795 1796 Add ability to check for jnlp_href use outside of PluginBridge. 1797 * netx/net/sourceforge/jnlp/PluginBridge.java 1798 (PluginBridge): New boolean useJNLPHref is set if jnlp_href is used. 1799 (useJNLPHref): New getter method, returns boolean useJNLPHref. 1800 1801 2012-02-10 Danesh Dadachanji <ddadacha@redhat.com> 1802 1803 Fix path to NEW_LINE_IFS for when one builds outside of src directory. 1804 * Makefile.am: Use top src directory instead of top build directory 1805 for NEW_LINE_IFS 1806 1807 2012-02-06 Danesh Dadachanji <ddadacha@redhat.com> 1808 1809 Fixed regression in running webstart applets from JNLP files. 1810 * netx/net/sourceforge/jnlp/Launcher.java (createApplet): Added call to 1811 set applet variable in the AppletInstance's AppletEnvironment. 1812 * netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java 1813 (setApplet): New method, set AppletEnvironment's applet variable only once. 1814 1815 2012-02-02 Danesh Dadachanji <ddadacha@redhat.com> 1816 1817 * netx/net/sourceforge/jnlp/LaunchException.java: Fix message 1818 to handle null description 1819 1820 2012-02-01 Danesh Dadachanji <ddadacha@redhat.com> 1821 1822 * netx/net/sourceforge/jnlp/LaunchException.java: Add description 1823 parameter to the message the exception stores. 1824 1825 2012-02-01 Jiri Vanek<jvanek@redhat.com> 1826 1827 Fix for PR844 1828 * netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java: (getLRUSortedEntries) 1829 instead of error throwing own LRU exception. Also catches more then 1830 NumberFormatException 1831 (clearLRUSortedEntries) new method - making soft clearing of cache public 1832 (clearCache) now return true if cache was cleared, false otherwise 1833 (or exception) 1834 * netx/net/sourceforge/jnlp/cache/CacheUtil.java: (getCacheFileIfExist) 1835 does three tires to load cache. If ifrst fails, then recently_used file 1836 is emptied both in memory and on disc. When second attemmpt fails, then 1837 LRU cache is forcibly cleared. if clearing fails, then error is thrown. 1838 If it pass, then one more try to load entries is allowed. When third 1839 attempt fails, then error is thrown. 1840 * /netx/net/sourceforge/jnlp/cache/LruCacheException.java: 1841 new file, for purpose of catching this particular exception 1842 * netx/net/sourceforge/jnlp/util/PropertiesFile.java: (store) tries to 1843 mkdirs to its path. It is better then to fail when no cache directory exists. 1844 * tests/jnlp_tests/signed/CacheReproducer: new reproducr trying severals 1845 way of corupted cache on several types of jnlp files. Is signed because 1846 of reflection used. 1847 * tests/jnlp_tests/signed/SimpletestSigned1: signed hello world to be 1848 used in CacheReproducer tests. 1849 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 1850 timeout for processes doubled, as clear cache methods sometimes took 1851 more then original allowed. 1852 1853 2012-01-27 Deepak Bhole <dbhole@redhat.com> 1854 1855 PR852: Classloader not being flushed after last applet from a site is closed 1856 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Added variable 1857 to count usage for a given ClassLoader instance. 1858 (getInstance): Decrement use count for a loader after it is merged with 1859 another. Increment loader use count before returning. 1860 (incrementLoaderUseCount): New method. Increments loader use count. 1861 (decrementLoaderUseCount): New method. Decrements loader use count. 1862 * java/sun/applet/PluginAppletViewer.java (appletClose): Decrement loader 1863 use count when applet is closed. 1864 1865 2012-01-25 Jiri Vanek <jvanek@redhat.com> 1866 1867 Added test for -Xnofork option and for applet launching by jnlp 1868 * tests/jnlp_tests/simple/deadlocktest/resources/deadlocktest_1.jnlp: new file 1869 By specifying new max heap size, should invoke jvm to fork when launched 1870 * tests/jnlp_tests/simple/deadlocktest/srcs/DeadlockTest.java: 1871 improved indentation, added debug output that main method was lunched 1872 * tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java: 1873 small refactoring, add lunching of deadlocktest_1.jnlp with and 1874 without -Xnofork, and counting java instances during runtime 1875 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java 1876 (ThreadedProcess.run) fixed situation, when process ended, but not all 1877 the output was read by its stdout/stderr readers 1878 (ContentReader.run) enabled exception printing to stderr. 1879 * tests/jnlp_tests/simple/AppletTest/ : test for loading applets by jnlp file 1880 1881 2012-01-06 Danesh Dadachanji <ddadacha@redhat.com> 1882 1883 Use the JNLP file's information section for the Name and 1884 Publisher labels of access dialogs, if available. 1885 * netx/net/sourceforge/jnlp/PluginBridge.java: 1886 (PluginBridge): Assigned info variable to JNLP file's information 1887 section (if one is used), otherwise to a new, empty ArrayList. 1888 (getInformation): Removed method, superclass method 1889 should be used instead. 1890 * netx/net/sourceforge/jnlp/resources/Messages.properties: 1891 Adding SUnverified. 1892 * a/netx/net/sourceforge/jnlp/security/AccessWarningPane.java: 1893 (addComponents): Append unverified note to the publisher label. 1894 1895 2012-01-09 Deepak Bhole <dbhole@redhat.com> 1896 1897 PR838: IcedTea plugin crashes with chrome browser when javascript is executed 1898 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc (eval): Added a check 1899 to ensure that the result pointer is valid before attempting to create an 1900 NPVariant from it. 1901 1902 2012-01-05 Omair Majid <omajid@redhat.com> 1903 1904 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 1905 (initializeResources): Only throw exceptions about the main class not 1906 being found when the jnlp file can have a main class. 1907 (addToCodeBaseLoader): Dont try to process null URLs. 1908 1909 2011-12-15 Jiri Vanek <jvanek@redhat.com> 1910 1911 * configure.ac: added search for xsltproc program and setting 1912 WITH_XSLTPROC variable 1913 * Makefile.am: xsltproc result is no longer ignored, command 1914 itself is in conditional block 1915 1916 2011-12-22 Thomas Meyer <thomas@m3y3r.de> 1917 1918 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc(sendMember): Use 1919 correct response parameter when returning array member vs member itself. 1920 1921 2011-12-21 Thomas Meyer <thomas@m3y3r.de> 1922 1923 RH586194: Unable to connect to connect with Juniper VPN client 1924 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc(sendMember): Use 1925 createJavaObjectFromVariant to create the resulting object on Java side, 1926 rather than always creating a JSObject. 1927 1928 2011-12-21 Jiri Vanek <jvanek@redhat.com> 1929 1930 * acinclude.m4: added definition of IT_CHECK_XULRUNNER_API_VERSION, 1931 which tries to compile small program against new xulrunner api 1932 * configure.ac: added call of IT_CHECK_XULRUNNER_API_VERSION 1933 * plugin/icedteanp/IcedTeaNPPlugin.cc: (NP_GetMIMEDescription) 1934 return type set-up by dependency on defined LEGACY_XULRUNNERAPI. 1935 This one is set by IT_CHECK_XULRUNNER_API_VERSION during configure. 1936 if defined, then old char* is used. New const char* is used otherwise. 1937 1938 2011-12-19 Danesh Dadachanji <ddadacha@redhat.com> 1939 1940 Fix for BasicService being used in applet constructors but not 1941 having access to ApplicationInstance variable. 1942 * netx/net/sourceforge/jnlp/Launcher.java: 1943 (createApplet): Moved applet initialization below loader.setApplication, 1944 appletInstance is now initialized with applet param as null. 1945 * netx/net/sourceforge/jnlp/runtime/AppletInstance.java: 1946 (setApplet): New method, allows setting of AppletInstance's applet 1947 only once. 1948 1949 2011-12-16 Deepak Bhole <dbhole@redhat.com> 1950 1951 Patch from Thomas Meyer <thomas@m3y3r.de> 1952 * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc: Fixed function name 1953 in comment for sendMember. 1954 1955 2011-12-08 Omair Majid <omajid@redhat.com> 1956 1957 * netx/net/sourceforge/jnlp/Launcher.java 1958 (launchApplication): Print arguments being passed to the application's 1959 main method in debug mode. 1960 1961 2011-12-05 Danesh Dadachanji <ddadacha@redhat.com> 1962 1963 Update UI for AccessWarningPane 1964 * netx/net/sourceforge/jnlp/security/AccessWarningPane.java: 1965 Use question.png instead of warning.png for access dialogs. 1966 1967 2011-11-28 Jiri Vanek <jvanek@redhat.com> 1968 1969 Added code-coverage generation targets 1970 * configure.ac: added search for optional emma.jar 1971 * makefile.am: added UNIT_CLASS_NAMES and REPRODUCERS_CLASS_NAMES variables 1972 to store tests clases for reuse in emmarun. Both also moved to separate target 1973 (run-netx-unit-tests): made dependent on reused stamped version 1974 (run-netx-dist-tests): made dependent on reused stamped version 1975 (stamps/run-netx-dist-tests): stamped rusable version of run-netx-dist-tests 1976 (run-unit-test-code-coverage) targets to generate report from unit-tests. 1977 Result binary and xml file and html report in tests.build/netx/unit 1978 (run-reproducers-test-code-coverage) targets to generate report from 1979 reproducers-test. Result binary file, xml and html report in 1980 tests.build/netx/jnlp_testsengine 1981 (run-test-code-coverage): merges binary results from unit and reproducers 1982 (clean-unit-test-code-coverage) conditionaly removes html,xml report 1983 and es and ec files from tests.build/netx/unit 1984 (clean-reproducers-test-code-coverage) condtionlay removes html and xml 1985 report and es file from tests.build/netx/jnlp_testsengine 1986 (clean-test-code-coverage) conditionlay removes merged html, xml es and em 1987 files from tests.build 1988 (clean-netx-tests) now depends also on clean-test-code-coverage 1989 1990 2011-11-11 Jiri Vanek <jvanek@redhat.com> 1991 1992 Added reproducer for PR804 and PR8011 1993 * tests/jnlp_tests/simple/Spaces can be everywhere/resources/Spaces can be everywhere1.jnlp: 1994 new jnlp file with space in name and with jar in resources which name does not contain 1995 spaces 1996 * tests/jnlp_tests/simple/Spaces can be everywhere/resources/Spaces can be everywhere2.jnlp: 1997 new jnlp file with space in name and with jar in resources which name contains spaces 1998 * tests/jnlp_tests/simple/Spaces can be everywhere/resources/SpacesCanBeEverywhere1.jnlp: 1999 jnlp file without space in name but with jar in resources which name contains spaces 2000 * tests/jnlp_tests/simple/Spaces can be everywhere/srcs/SpacesCanBeEverywhere.java: 2001 new file containig simple main method of "Spaces can be everywhere.jar" jar 2002 * tests/jnlp_tests/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java 2003 testcase for this reproducer. It is lunching each of this jnlp once locally from filesystem and 2004 once remotely from server. Please note that except it's own jar, this reproducer is also 2005 using simpletest1.jar 2006 2007 2011-11-11 Jiri Vanek <jvanek@redhat.com> 2008 2009 Fixed reproducers engine to handle spaces in files and in urls 2010 * Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp) 2011 (stamps/netx-dist-tests-sign-some-reproducers.stamp) 2012 (stamps/netx-dist-tests-compile-testcases.stamp): 2013 added call to NEW_LINE_IFS to use line breake temporarily as parameter 2014 separator while loading files from list and correct quoting 2015 * NEW_LINE_IFS: new file, small separate script used in makefile as inline script 2016 which backup original IFS variable and then set it to pure new line. It is in 2017 separate file because it is reused and I do not know another way how to save a new 2018 line variable in makefile. Restore to original vlaue is handled in Makefile 2019 *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: 2020 (testResourcesExists) filename is encoded to correct URL before requested from server 2021 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 2022 "-headless" string extracted to variable HEADLES_OPTION 2023 (executeProcess) and (ThreadedProcess) enhanced for variable dir to specify working 2024 directory. Backward compatibility kept 2025 (TinyHttpdImpl) now expects url on requests, so all requests are now decoded by 2026 java.net.URLDecoder 2027 2028 2011-11-10 Jiri Vanek <jvanek at redhat.com> 2029 2030 Added tests which covers corner cases or rhino support function dateRange 2031 Enabled testWeekdayRange test 2032 * tests/netx/pac/pac-funcs-test.js: (testWeekdayRange) - added mising 2033 runTests call 2034 (incDate) (decDate) (monthToStr) moved level up from function scope 2035 to be shareable 2036 (testDateRange2) new method, tests last days of months. 2037 (testDateRange3) new method, tests first days of months 2038 * netx/net/sourceforge/jnlp/runtime/pac-funcs.js: 2039 (dateRange) logic of this method moved to isDateInRange. This one now serve 2040 just as api using current date 2041 (isDateInRange) logic of dateRange, can calculate ranges against any date 2042 2043 2011-10-31 Omair Majid <omajid@redhat.com> 2044 2045 PR808: javaws is unable to start when missing jars are enumerated before 2046 main jar 2047 * NEWS: Update. 2048 * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJars): Continue 2049 with other jars if the first jar can't be used. 2050 2051 2011-10-28 Deepak Bhole <dbhole@redhat.com> 2052 2053 RH742515, CVE-2011-3377: IcedTea-Web: second-level domain subdomains and 2054 suffix domain SOP bypass 2055 * NEWS: Updated 2056 * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java 2057 (checkPermission): Remove special case for SocketPermission. 2058 2059 2011-10-27 Deepak Bhole <dbhole@redhat.com> 2060 2061 PR778: Jar download and server certificate verification deadlock 2062 * ChangeLog: Removed extra whitespace from previous entries 2063 * NEWS: Updated 2064 * netx/net/sourceforge/jnlp/GuiLaunchHandler.java (launchInitialized): 2065 Moved as much code as possible out of the invokeLater block. 2066 2067 2011-10-25 Omair Majid <omajid@redhat.com> 2068 2069 PR804: javaws launcher incorrectly handles file names with spaces 2070 * NEWS: Update. 2071 * launcher/javaws.in: Use bash arrays to store arguments to handle 2072 filenames with spaces correctly. 2073 2074 2011-10-24 Jiri Vanek <jvanek@redhat.com> 2075 2076 Added reproducer for - PR788: Elluminate Live! is not working 2077 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp 2078 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar2.jnlp 2079 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar3.jnlp 2080 * tests/jnlp_tests/signed/MissingJar/resources/MissingJar4.jnlp 2081 four testcases's jnlp files. Differs by order and by used resoure tags 2082 * tests/jnlp_tests/signed/MissingJar/srcs/MissingJar.java 2083 very simple main jar, just printing message when initialized 2084 * tests/jnlp_tests/signed/MissingJar/testcases/MissingJarTest.java 2085 testing file of reproducer, launchiing above four jnlp files, each in individual test 2086 2087 2011-10-17 Jiri Vanek <jvanek@redhat.com> 2088 2089 PR564: NetX depends on sun.misc.BASE64Encoder 2090 * configure.ac: removed IT564 comment, removed check for sun.misc.BASE64Encoder 2091 * netx/net/sourceforge/jnlp/security/CertificateUtils.java : sun.misc.BASE64Encoder; 2092 replaced (just changed import) by internal implementation from 2093 net.sourceforge.jnlp.util.replacements.BASE64Encoder; 2094 * netx/net/sourceforge/jnlp/util/replacements/BASE64Encoder.java: 2095 * netx/net/sourceforge/jnlp/util/replacements/CharacterEncoder.java: 2096 New files, internal implementation of BASE64Encoder, copied from OpenJDK 2097 * tests/netx/unit/net/sourceforge/jnlp/util/replacements/BASE64EncoderTest.java 2098 New file, to test internal base64encoder implementation 2099 2100 2101 2011-10-03 Jiri Vanek <jvanek@redhat.com> 2102 2103 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp 2104 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/srcs/ReadPropertiesBySignedHack.java 2105 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java 2106 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp 2107 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp 2108 * tests/jnlp_tests/signed/ReadPropertiesSigned/srcs/ReadPropertiesSigned.java 2109 * tests/jnlp_tests/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java 2110 Direcory signed was somehow missing from my commit from 2011-09-22. 2111 Now it have been added with all its original files 2112 2113 2011-09-29 Omair Majid <omajid@redhat.com> 2114 2115 PR618: Can't install OpenDJ, JavaWebStart fails with Input stream is null 2116 error. 2117 * NEWS: Update. 2118 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 2119 (getResource): Rename to ... 2120 (findResource): New method. 2121 (findResources): If resource can not be found, search in lazy resources. 2122 (findResourcesBySearching): New method. 2123 2124 2011-09-28 Omair Majid <omajid@redhat.com> 2125 2126 * netx/net/sourceforge/jnlp/AppletDesc.java (getMainClass): Clarify the 2127 return value in javadoc. 2128 * netx/net/sourceforge/jnlp/Launcher.java 2129 (createApplet, createAppletObject): Do not replace '/' with '.'. 2130 * netx/net/sourceforge/jnlp/PluginBridge.java (PluginBridge): Ensure that 2131 the class name is in the dot-separated from. 2132 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 2133 (checkForMain): Ensure that the name is an exact match. 2134 2135 2011-09-28 Deepak Bhole <dbhole@redhat.com> 2136 2137 PR794: IcedTea-Web does not work if a Web Start app jar has a Class-Path 2138 element in the manifest. 2139 * netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java 2140 (retrieve): Blank out the Class-Path elements in manifest. 2141 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 2142 (activateJars): Only load Class-Path elements if this is an applet. 2143 (addNewJar): Add the right permissions for the cached jar file and verify 2144 signatures. 2145 2146 2011-09-26 Lars Herschke <lhersch@dssgmbh.de> 2147 2148 * netx/net/sourceforge/jnlp/resources/Messages.properties: Add 2149 CVExportPasswordMessage, CVImportPasswordMessage and 2150 CVPasswordTitle. 2151 * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java (initialize): 2152 Initialize SSLContext with the user's client certificates. 2153 * netx/net/sourceforge/jnlp/security/CertificateUtils.java 2154 (addPKCS12ToKeyStore, addPKCS12ToKeyStore, dumpPKCS12): New methods. 2155 * netx/net/sourceforge/jnlp/security/viewer/CertificatePane.java 2156 (getPasswords): New method. 2157 (ImportButtonListener.actionPerformed): Import client certificates 2158 in PKCS12 format. 2159 (ExportButtonListener.actionPerformed): Export client certificates 2160 in PKCS12 format. 2161 2162 2011-09-23 Omair Majid <omajid@redhat.com> 2163 2164 RH738814: Access denied at ssl handshake 2165 * netx/net/sourceforge/jnlp/security/SecurityDialogs.java 2166 (showCertWarningDialog): Add a javadoc comment. 2167 * netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java 2168 (askUser): Wrap the call to showCertWarningDialog in a doPrivileged 2169 block. 2170 2171 2011-09-22 Omair Majid <omajid@redhat.com> 2172 2173 PR788: Elluminate Live! is not working 2174 * NEWS: Update. 2175 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java 2176 (checkForMain): If localFile is null (JAR couldn't be downloaded), try to 2177 continue, rather than allowing the exception to cause an abort. 2178 2179 2011-09-21 Omair Majid <omajid@redhat.com> 2180 2181 PR766: javaws fails to parse an <argument> node that contains CDATA 2182 * netx/net/sourceforge/nanoxml/XMLElement.java 2183 (sanitizeInput): Do not remove CDATA sections along with comments. 2184 2185 2011-09-20 Omair Majid <omajid@redhat.com> 2186 2187 * tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java 2188 (testCdata, testCdataNested, testCDataFirstChild, testCDataSecondChild) 2189 (testCommentInElements2, testDoubleDashesInComments): New methods 2190 * tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp, 2191 * tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp: 2192 Change <!CDATA[ to <![CDATA[. 2193 2194 2011-09-22 Lars Herschke <lhersch@dssgmbh.de> 2195 2196 PR789: typo in jrunscript.sh 2197 * jrunscript.in: Use = instead of ==. 2198 2199 2011-09-22 Jiri Vanek <jvanek@redhat.com> 2200 2201 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp: 2202 jnlp file to lunch ReadPropertiesBySignedHack, notice please dependenci 2203 on ReadProperties.jar from simple reproducers 2204 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/srcs/ReadPropertiesBySignedHack.java: 2205 this reproducers verify, that even reflection-by enabled 2206 XtrustAll will not allow to lunch unsigned code 2207 * tests/jnlp_tests/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java: 2208 testcase for this reproducer 2209 2210 2011-09-22 Jiri Vanek <jvanek@redhat.com> 2211 2212 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp: 2213 * tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp: 2214 * tests/jnlp_tests/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java: 2215 * tests/jnlp_tests/signed/ReadPropertiesSigned/srcs/ReadPropertiesSigned.java: 2216 those four files are example of signed reproducer 2217 * tests/jnlp_tests/simple/ReadProperties/srcs/ReadProperties.java: now prints out got 2218 variable for comparsion with above created signed example 2219 2220 2011-09-22 Jiri Vanek <jvanek@redhat.com> 2221 2222 Added signed reproducers engine 2223 * Makefile.am: added variable KEYSTORE_NAME 2224 (stamps/junit-jnlp-dist-dirs): creates stamp and depend on next two targets 2225 (junit-jnlp-dist-simple.txt): creates list of simple reproducers, extracted 2226 from stamps/junit-jnlp-dist-dirs 2227 (junit-jnlp-dist-signed.txt): creates list of signed reproducers 2228 (stamps/netx-dist-tests-prepare-reproducers.stamp): now traverse over 2229 signed and simple 2230 (stamps/netx-dist-tests-sign-some-reproducers.stamp): depends 2231 on netx-dist-tests-prepare-reproducers, traverse through signed 2232 reproducers and sign them 2233 (stamps/netx-dist-tests-compile-testcases.stamp): now traverse over 2234 signed and simple 2235 (stamps/bootstrap-directory.stamp): creates symlinks/stubs to 2236 jarsigner and keytool 2237 (clean-netx-dist-tests):remove new stamps, signed and simple list and keysstore 2238 * acinclude.m4: declared to proceed IT_FIND_KEYTOOL and IT_FIND_JARSIGNER macro 2239 * configure.ac: declared macros to check for keytool and jarsigner 2240 * tests/jnlp_tests/README: mentioned signed directory 2241 2242 2011-09-22 Jiri Vanek <jvanek@redhat.com> 2243 2244 * netx/net/sourceforge/jnlp/runtime/Boot.java: (main): added logic to 2245 handle -Xtrustall option 2246 * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java: declared private static boolean 2247 trustAll=false; with public getter and pkg.private setter 2248 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (checkTrustWithUser): modified, 2249 when XtrustAll declared, then user is not asked and certificate is trusted 2250 * netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java: (askUser): modified, 2251 when XtrustAll declared, then user is not asked and certificate is trusted 2252 2253 2011-09-15 Jiri Vanek <jvanek@redhat.com> 2254 2255 * tests/jnlp_tests/: all current reproducers (AccessClassInPackage 2256 AddShutdownHook AllStackTraces CreateClassLoader deadlocktest 2257 ReadEnvironment ReadProperties RedirectStreams ReplaceSecurityManager 2258 SetContextClassLoader simpletest1 simpletest2) junit's asserts are enchanted 2259 for reason, so junit assertion exception message is much clearer. 2260 2261 2011-09-13 Deepak Bhole <dbhole@redhat.com> 2262 2263 PR782: Support building against npapi-sdk as well 2264 Patch from MichaÅ Górny < mgorny at gentoo dot org > 2265 * acinclude.m4: Build against npapi-sdk. 2266 2267 2011-09-13 Deepak Bhole <dbhole@redhat.com> 2268 2269 * ChangeLog: Fixed formatting issues in previous entry. 2270 2271 2011-09-01 Jiri Vanek<jvanek@redhat.com> 2272 2273 Added functionality to allow icedtea web to be buildable with 2274 rhel5 libraries. 2275 * configure.ac: added IT_CHECK_GLIB_VERSION check. 2276 * acinclude.m4: added IT_CHECK_GLIB_VERSION definition block to test. 2277 version of glib installed and add LEGACY_GLIB define macro into 2278 variable DEFS if version is <2.16. 2279 * plugin/icedteanp/IcedTeaNPPlugin.cc: added replacements for incompatible 2280 functions (g_strcmp0 and find_first_item_in_hash_table)if LEGACY_GLIB 2281 is defined. Added define sections for use this function instead of glib ones. 2282 Duplicated code moved into function getFirstInTableInstance(GHashTble* table). 2283 * Makefile.am: ($(PLUGIN_DIR)/%.o): using DEFS setted by configure for compilation 5 2284 6 2285 2011-08-29 Deepak Bhole <dbhole@redhat.com> … … 24 2303 (checkServerTrusted): Account for a null hostname that the 25 2304 overloaded implementation may pass. 2305 2306 2011-08-23 Omair Majid <omajid@redhat.com> 2307 2308 * configure.ac: Add check for new non-standard classes 2309 sun.net.www.protocol.jar.URLJarFile and 2310 sun.net.www.protocol.jar.URLJarFileCallBack. 26 2311 27 2312 2011-08-23 Omair Majid <omajid@redhat.com> … … 34 2319 JRE. 35 2320 2321 2011-08-22 Saad Mohammad <smohammad@redhat.com> 2322 * netx/net/sourceforge/jnlp/JNLPFile.java: 2323 (parse): After the file has been parsed, it calls 2324 checkForSpecialProperties() to check if the resources contain any special 2325 properties. 2326 (checkForSpecialProperties): Scans through resources and checks if it 2327 contains any special properties. 2328 (requiresSignedJNLPWarning): Returns a boolean after determining if a signed 2329 JNLP warning should be displayed. 2330 (setSignedJNLPAsMissing): Informs JNLPFile that a signed JNLP file is 2331 missing in the main jar. 2332 * netx/net/sourceforge/jnlp/SecurityDesc.java: 2333 (getJnlpRIAPermissions): Returns all the names of the basic JNLP system 2334 properties accessible by RIAs. 2335 * netx/net/sourceforge/jnlp/resources/Messages.properties: 2336 Added LSignedJNLPFileDidNotMatch and SJNLPFileIsNotSigned. 2337 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 2338 (initializeResources): Locates the jar file that contains the main class 2339 and verifies if a signed JNLP file is also located in that jar. This also 2340 checks 'lazy' jars if the the main class was not found in 'eager' jars. 2341 If the main jar was not found, a LaunchException is thrown which terminates 2342 the launch of the application. 2343 (checkForMain): A method that goes through each jar and checks to see 2344 if it has the main class. If the main class is found, it calls 2345 verifySignedJNLP() to verify if a valid signed JNLP file is also found in 2346 the jar. 2347 (verifySignedJNLP): A method that checks if the jar file contains a valid 2348 signed JNLP file. 2349 (closeStream): Closes a stream. 2350 (loadClassExt): Added a try/catch block when addNextResource() is called. 2351 (addNextResource): If the main jar has not been found, checkForMain() is 2352 called to check if the jar contains the main class, and verifies if a signed 2353 JNLP file is also located. 2354 * netx/net/sourceforge/jnlp/security/MoreInfoPane.java: 2355 (addComponents): Displays the signed JNLP warning message if necessary. 2356 * netx/net/sourceforge/jnlp/security/SecurityDialog.java: 2357 (SecurityDialog): Stores the value of whether a signed JNLP warning should 2358 be displayed. 2359 (showMoreInfoDialog): Passes in the associated JNLP file when creating a 2360 SecurityDialog object. 2361 (requiresSignedJNLPWarning): Returns a boolean after determining if a signed 2362 JNLP warning should be displayed. 2363 2364 2011-08-17 Danesh Dadachanji <ddadacha@redhat.com> 2365 2366 Update UI for SecurityDialog 2367 * netx/net/sourceforge/jnlp/resources/question.png: New icon added. 2368 * netx/net/sourceforge/jnlp/security/CertWarningPane.java: 2369 (addComponents): When certs are verified, question.png is used as the icon 2370 and SAlwaysTrustPublisher is automatically selected. 2371 * netx/net/sourceforge/jnlp/security/SecurityDialog.java: 2372 (initDialog): Changed the title of a CERT_WARNING dialog. 2373 2374 2011-08-17 Danesh Dadachanji <ddadacha@redhat.com> 2375 2376 AUTHORS: Adding myself and Denis Lila. Removing the extra email from 2377 Andrew Hughes. 2378 2379 2011-08-11 Danesh Dadachanji <ddadacha@redhat.com> 2380 2381 PR742: IcedTea-Web checks certs only upto 1 level deep before declaring 2382 them untrusted. 2383 * NEWS: Updated. 2384 * netx/net/sourceforge/jnlp/tools/JarSigner.java: 2385 (checkTrustedCerts): All certs along certPath are now checked for trust. 2386 2387 2011-08-09 Deepak Bhole <dbhole@redhat.com> 2388 2389 PR771: IcedTea-Web certificate verification code does not use the right 2390 API 2391 * netx/net/sourceforge/jnlp/security/CertificateUtils.java 2392 (inKeyStores): Use Certificate.verify to correctly verify a certificate 2393 against a public key in the store. 2394 2395 2011-08-09 Saad Mohammad <smohammad@redhat.com> 2396 2397 PR765: JNLP file with all resource jars marked as 'lazy' fails to validate 2398 signature and stops the launch of application 2399 * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 2400 (initializeResources): Initializes the first jar file if all resources 2401 are marked as lazy jars 2402 2403 2011-08-03 Saad Mohammad <smohammad@redhat.com> 2404 2405 * netx/net/sourceforge/jnlp/JNLPMatcher.java: 2406 (JNLPMatcher): Removed NullPointerException from being thrown, caught and 2407 then thrown again via JNLPMatcherException. This was replaced by throwing 2408 a checked exception [JNLPMatcherException] directly. 2409 (JNLPMatcher): Removed unused code [getters] 2410 (JNLPMatcher): Closed Input/Output streams that were opened. 2411 (isMatch): Removed caching of return value 2412 (closeInputStream): Added this method to close input streams 2413 (closeOutputStream): Added this method to close output streams 2414 * netx/net/sourceforge/jnlp/Node.java: 2415 Removed getAttributeNames() method from the commented section 2416 36 2417 2011-08-03 Deepak Bhole <dbhole@redhat.com> 37 2418 … … 40 2421 cert hashtable only if the entry is expected to be signed. 41 2422 2423 2011-08-02 Jiri Vanek <jvanek@redhat.com> 2424 2425 *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): 2426 now are compiled files correctly compiled from directory structure. 2427 Also not java files are copied with expected directory structure and 2428 jarred together with classes. 2429 2430 2011-07-26 Jiri Vanek <jvanek@redhat.com> 2431 2432 *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: String 2433 containing "localhost" have been declared as final constant. 2434 (SERVER_NAME) have been moved instant Server instance so each server can 2435 have it name without affecting others 2436 (getUrl()) added - can return URL of server singleton. Implementation of 2437 this method is inside server, so each server can return its own useful URL. 2438 (saveFile()) is now public. 2439 Added identification for ThreadedProcess based on commandlineArgs and its 2440 run is now slowed by Thread.sleep 2441 (ServerLuncher) inner class is now public (it was bug to not be as we have 2442 getIndependentInstance of it method ) and renamed to ServerLauncher 2443 Enchanted wrapping of executeProcess 2444 2445 42 2446 2011-07-21 Deepak Bhole <dbhole@redhat.com> 43 2447 44 2448 PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow 45 Patch from: Ricardo MartÃn Camarero (Ricky)<rickyepoderi at yahoo dot es>2449 Original patch from: Ricardo MartÃn Camarero <rickyepoderi at yahoo dot es> 46 2450 * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java 47 2451 (readPair): New function. … … 49 2453 than using String.split(). 50 2454 51 2011-07-20 Deepak Bhole <dbhole@redhat.com> 52 53 * configure.ac: Prepare for 1.1.2 54 * NEWS: Same 55 56 2011-07-15 Deepak Bhole <dbhole@redhat.com> 57 58 * configure.ac: Prepare to release 1.1.1 59 * NEWS: Same 2455 2011-07-19 Saad Mohammad <smohammad@redhat.com> 2456 2457 * netx/net/sourceforge/jnlp/JNLPMatcher.java: 2458 Created this class to compare signed JNLP file with the launching 2459 JNLP file. When comparing, it has support for both method of signing 2460 of a JNLP file: APPLICATION_TEMPLATE.JNLP and APPLICATION.JNLP. 2461 * netx/net/sourceforge/jnlp/JNLPMatcherException.java: 2462 Added a custom exception: JNLPMatcherException. Thrown if verifying 2463 signed JNLP files fails. 2464 * netx/net/sourceforge/jnlp/Node.java: 2465 Created a method that retrieves the attribute names of the Node and 2466 stores it in private string [] member. The method returns the 2467 attribute names. 2468 * tests/netx/unit/net/sourceforge/jnlp/JNLPMatcherTest.java: 2469 This is a test case that tests the functionality of JNLPMatcher. 2470 It tests the algorithm with a variety of template and application 2471 JNLP files. 2472 * tests/netx/unit/net/sourceforge/jnlp/launchApp.jnlp: 2473 Launching JNLP file: This is the launching JNLP file used to compare 2474 with templates and application JNLP files in JNLPMatcherTest.java 2475 * tests/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp: 2476 Test Template JNLP file: Contains CDATA. 2477 * tests/netx/unit/net/sourceforge/jnlp/templates/template1.jnlp: 2478 Test Template JNLP file: An exact duplicate of the launching 2479 JNLP file. 2480 * tests/netx/unit/net/sourceforge/jnlp/templates/template2.jnlp: 2481 Test Template JNLP file: Contains wildchars as attribute/element 2482 values. 2483 * tests/netx/unit/net/sourceforge/jnlp/templates/template3.jnlp: 2484 Test Template JNLP file: Different order of elements/attributes 2485 (same value) 2486 * tests/netx/unit/net/sourceforge/jnlp/templates/template4.jnlp: 2487 Test Template JNLP file: Contains wildchars as values of ALL elements 2488 and attribute. 2489 * tests/netx/unit/net/sourceforge/jnlp/templates/template5.jnlp: 2490 Test Template JNLP file: Contains comments. 2491 * tests/netx/unit/net/sourceforge/jnlp/templates/template6.jnlp: 2492 Test Template JNLP file: Contains different attribute and element 2493 values. 2494 * tests/netx/unit/net/sourceforge/jnlp/templates/template7.jnlp: 2495 Test Template JNLP file: Contains additional children in element. 2496 * tests/netx/unit/net/sourceforge/jnlp/templates/template8.jnlp: 2497 Test Template JNLP file: Contains fewer children in element. 2498 * tests/netx/unit/net/sourceforge/jnlp/templates/template9.jnlp: 2499 Test Template JNLP file: All values are different from the launching 2500 JNLP file. 2501 * tests/netx/unit/net/sourceforge/jnlp/application/application0.jnlp: 2502 Test Application JNLP file: Contains CDATA. 2503 * tests/netx/unit/net/sourceforge/jnlp/application/application1.jnlp: 2504 Test Application JNLP file: An exact duplicate of the launching 2505 JNLP file. 2506 * tests/netx/unit/net/sourceforge/jnlp/application/application2.jnlp: 2507 Test Application JNLP file: Different order of element/attributes 2508 (same value). 2509 * tests/netx/unit/net/sourceforge/jnlp/application/application3.jnlp: 2510 Test Application JNLP file: Contains comments. 2511 * tests/netx/unit/net/sourceforge/jnlp/application/application4.jnlp: 2512 Test Application JNLP file: Contains wildchars as attribute/element 2513 values. 2514 * tests/netx/unit/net/sourceforge/jnlp/application/application5.jnlp: 2515 Test Application JNLP file: Contains a different attribute (codebase) 2516 value. 2517 * tests/netx/unit/net/sourceforge/jnlp/application/application6.jnlp: 2518 Test Application JNLP file: Contains additional children in element. 2519 * tests/netx/unit/net/sourceforge/jnlp/application/application7.jnlp: 2520 Test Application JNLP file: Contains fewer children in element. 2521 * tests/netx/unit/net/sourceforge/jnlp/application/application8.jnlp: 2522 Test Application JNLP file: All values are different from the 2523 launching JNLP file. 2524 * Makefile.am: 2525 (run-netx-unit-tests): Copies resources(non java files) to test.build 2526 before running the unit tests. 2527 2528 2011-06-22 Jiri Vanek <jvanek@redhat.com> 2529 2530 * tests/report-styles/jreport.xsl: part with classes statistics is now collapsable 2531 2532 2011-06-21 Jiri Vanek <jvanek@redhat.com> 2533 2534 *tests/jnlp_tests/simple: AccessClassInPackage, ReplaceSecurityManager, 2535 AddShutdownHook, ReadEnvironment, SetContextClassLoader, 2536 AllStackTraces, ReadProperties, CreateClassLoader, RedirectStreams tests 2537 2538 2011-06-21 Jiri Vanek <jvanek@redhat.com> 2539 2540 *Makefile.am: (run-netx-dist-tests): no depends on copying of styles 2541 (clean-netx-dist-tests): depends also on removing of styles 2542 2543 2011-06-17 Jiri Vanek <jvanek@redhat.com> 2544 2545 * tests/jnlp_tests: directory for reproducers 2546 * tests/jnlp_tests/advanced: reproducers which must care about 2547 deploying and compiling thmselves 2548 * tests/jnlp_tests/simple: reproducers compiled, jared and deployed 2549 automatically 2550 * tests/jnlp_tests/simple/name/srcs|testcases|resources/: sourcefiles, 2551 resources and testaces for simple reproducers 2552 * tests/jnlp_tests/simple/deadlocktest: test for tracing not-killable 2553 javaws 2554 * tests/jnlp_tests/simple/simpletest1: tutorial test 2555 * tests/jnlp_tests/simple/simpletest2: tutorial test with exception 2556 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java: 2557 tests for server basic functionality 2558 * tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: 2559 implementation of server to produce jnlps and resources. Implementation 2560 of helpers to run javaws process. 2561 *Makefile.am: new variables pointing to structure above; 2562 (junit-jnlp-dist-dirs.txt): prepare destination directory structure 2563 (stamps/netx-dist-tests-prepare-reproducers.stamp):compile tescascases of simple reproducers 2564 (netx-dist-tests-source-files.txt): lookup for server and helping classes 2565 (stamps/netx-dist-tests-compile.stamp): compile server and helping classes 2566 (stamps/netx-dist-tests-compile-testcases.stamp): compile, jar and deploy all simple testcases and their resources 2567 (run-netx-dist-tests): after make install run junit testsuite upon reproducers on virtual server 2568 (clean-netx-tests): added dependence on clean-netx-dist-tests 2569 (clean-netx-dist-tests): deleting of reproducers 2570 2571 2011-06-16 Jiri Vanek <jvanek@redhat.com> 2572 2573 * tests/report-styles/index.js: fast navigation functions 2574 * tests/report-styles/report.css: styles for transformed result 2575 * tests/report-styles/jreport.xsl: template for human-readable 2576 xml->html transformation. 2577 * Makefile.am: New variable for report-styles directory; 2578 ($(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)): goal for copying styles and 2579 javascripts; (run-netx-unit-tests): added nonfaling xsltproc 2580 transformation of sheet and unit-tests' xml report to index_unit.html; 2581 (clean-netx-unit-tests): now depends also on clean_tests_reports; 2582 (clean_tests_reports): new goal to remove report styles directory and 2583 indexs html files. 60 2584 61 2585 2011-07-14 Omair Majid <omajid@redhat.com> … … 97 2621 addComponents): Changed to a layout that will resize itself. 98 2622 99 2011-06-08 Deepak Bhole <dbhole@redhat.com> 100 101 * configure.ac: Prepare for 1.1.1 102 * NEWS: Same 103 104 2011-06-08 Deepak Bhole <dbhole@redhat.com> 105 106 * configure.ac: Update for release. 107 * NEWS: Update for release. 108 109 2011-06-08 Deepak Bhole <dbhole@redhat.com> 110 111 * NEWS: Remove security update notes from NEWS as they are not "New" 2623 2011-06-10 Denis Lila <dlila@redhat.com> 2624 2625 * netx/net/sourceforge/jnlp/GuiLaunchHandler.java: 2626 (mutex): New mutex for synchronizing splashScreen. 2627 (closeSplashScreen): New method to hide and dispose 2628 splashScreen. 2629 (launchStarting): Call closeSplashScreen instead of doing it 2630 inline. 2631 (launchInitialized): Sync splashScreen creation. 2632 (validationError, launchError): Call closeSplashScreen. 2633 2634 2011-06-10 Denis Lila <dlila@redhat.com> 2635 2636 * netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java: 2637 (frameMutex): New mutex to synchronize accesses to "frame". 2638 (getListener): Make almost all of it synchronized on frameMutex. 2639 (disposeListener): Sync hider's body around frameMutex and call 2640 dispose on the frame so that the awt threads die when they should. 2641 (addProgressPanel): Sync "frame" usage. 2642 2643 2011-06-08 Saad Mohammad <smohammad@redhat.com> 2644 2645 * AUTHORS: Updated 2646 * netx/net/sourceforge/jnlp/services/ServiceUtil.java 2647 (checkAccess): Moved the process of checking if the application is a trusted 2648 application to a new method called isSigned(). 2649 * netx/net/sourceforge/jnlp/services/XPersistenceService.java 2650 (checkLocation): Allows trusted application to have access to 2651 PersistenceService data from different hosts. It uses ServiceUtil.isSigned() 2652 to determine if the current application is a trusted application. 2653 2654 2011-06-08 Andrew Su <asu@redhat.com> 2655 2656 * NEWS: Updated. 2657 * netx/net/sourceforge/jnlp/JNLPFile.java: 2658 (JNLPFile): Calls new constructor. 2659 (JNLPFile): New constructor to take an option for forcing a codebase. 2660 (JNLPFile): Call parse with extra parameter. 2661 (parse): Use the given codebase passed in if we did not find one. 2662 * netx/net/sourceforge/jnlp/Parser.java: 2663 (Parser): Calls new constructor. 2664 (Parser): New constructor which takes in a codebase as a last option. 2665 * netx/net/sourceforge/jnlp/PluginBridge.java: 2666 (PluginBridge): Calls new JNLPFile's constructor with current codebase 2667 2668 2011-06-08 Andrew Su <asu@redhat.com> 2669 2670 * netx/net/sourceforge/jnlp/PluginBridge.java: 2671 (jars): Changed to use HashSet instead of String[]. 2672 (PluginBridge): Updated to work with HashSet instead of String[] 2673 (getResources): Likewise. 112 2674 113 2675 2011-06-08 Deepak Bhole <dbhole@redhat.com> … … 159 2721 _createAndRetainJavaObject. 160 2722 2723 2011-05-31 Omair Majid <omajid@redhat.com> 2724 2725 * netx/net/sourceforge/jnlp/JNLPSplashScreen.java: Subclass JDialog, not 2726 JFrame. 2727 2728 2011-05-30 Andrew Su <asu@redhat.com> 2729 2730 * netx/net/sourceforge/jnlp/controlpanel/TemporaryInternetFilesPanel.java: 2731 (addComponent): Add check to see if specified cache directory is 2732 writable. 2733 161 2734 2011-05-30 Andrew Su <asu@redhat.com> 162 2735 … … 230 2803 (lock): Removed creation of file here. 231 2804 2805 2011-05-17 Jiri Vanek <jvanek@redhat.com> 2806 2807 * tests/junit-runner/JunitLikeXmlOutputListener: This listener exports 2808 results of junit in xml which "follows junit-output schema". Extended 2809 for date, duration and some statististics for future purpose 2810 * Makefile.am (run-netx-unit-tests): backuping stdout/stderr of tests 2811 * tests/junit-runner/CommandLine.java: registered 2812 JunitLikeXmlOutputListener 2813 232 2814 2011-05-10 Andrew Su <asu@redhat.com> 233 2815 … … 235 2817 (addComponents):Created a new comparator for sorting by file size and 236 2818 date. 2819 2820 2011-05-09 Jiri Vanek <jvanek@redhat.com> 2821 * tests/junit-runner/CommandLine.java:r added skipping of inner 2822 classes and one jnlp file from sources package. 2823 2824 2011-05-03 Denis Lila <dlila@redhat.com> 2825 2826 * netx/net/sourceforge/jnlp/NetxPanel.java: 2827 Add imports. 2828 (uKeyToTG): Change to HashMap. 2829 (TGMapMutex): New mutex to synchronize uKeyToTG. 2830 (getThreadGroup): Synchronize on TGMapMutex. 2831 (NetxPanel): Only create a new thread group if one doesn't already 2832 exist for the computed uKey. 237 2833 238 2834 2011-05-02 Deepak Bhole <dbhole@redhat.com> … … 243 2839 invokeAndWait. 244 2840 (appletSystemExit): Exit the VM when called. 2841 2842 2011-04-28 Denis Lila <dlila@redhat.com> 2843 2844 * netx/net/sourceforge/jnlp/NetxPanel.java: 2845 Remove unused import; add imports. 2846 (uKey, uKeyToTG, appContextCreated): New members. 2847 (getThreadGroup, createNewAppContext): New methods. 2848 (runLoader): Pass uKey to PluginBridge's constructor. 2849 (run): Remove. No longer needed. 2850 (NetxPanel): Initialize uKey. If it is a new key, make a new thread 2851 group for it and save it in the hash map. 2852 (createAppletThread): Use getFutureTG instead of creating a thread 2853 group on the spot. 2854 * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: 2855 (createPanel): Initialize and frame the panel in a separate thread. 2856 * netx/net/sourceforge/jnlp/Launcher.java: 2857 Remove unused import. 2858 (createApplet, createApplication, createThreadGroup): Replace 2859 AppThreadGroup with ThreadGroup. Remove all calls to setApplication. 2860 * netx/net/sourceforge/jnlp/PluginBridge.java: 2861 (PluginBridge): Remove the uniqueKey initialization logic. Set 2862 uniqueKey to the uKey parameter. 2863 * netx/net/sourceforge/jnlp/runtime/AppThreadGroup.java: 2864 Remove file. 245 2865 246 2866 2011-04-28 Omair Majid <omajid@redhat.com> … … 255 2875 (launcher.build/itweb-settings): Replace with... 256 2876 (launcher.build/$(itweb-settings)): New target. 2877 2878 2011-04-21 Deepak Bhole <dbhole@redhat.com> 2879 2880 * configure.ac: Bumped version to 1.2pre 257 2881 258 2882 2011-04-21 Deepak Bhole <dbhole@redhat.com> -
trunk/icedtea-web/Makefile.am
r362 r418 1 1 # Source directories 2 2 3 NETX_DIR = $(abs_top_builddir)/netx.build 4 NETX_SRCDIR = $(abs_top_srcdir)/netx 5 NETX_RESOURCE_DIR=$(NETX_SRCDIR)/net/sourceforge/jnlp/resources 6 NETX_EXTRA_DIR=$(abs_top_srcdir)/extra/net/sourceforge/javaws/about/resources 7 NETX_EXTRA_DIST_DIR=$(abs_top_builddir)/extra-lib/net/sourceforge/javaws/about/resources 8 9 TESTS_SRCDIR=$(abs_top_srcdir)/tests 10 TESTS_DIR=$(abs_top_builddir)/tests.build 11 12 NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit 13 NETX_UNIT_TEST_DIR=$(TESTS_DIR)/netx/unit 14 15 JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner 16 JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner 17 18 JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar 3 export NETX_DIR = $(abs_top_builddir)/netx.build 4 export NETX_SRCDIR = $(abs_top_srcdir)/netx 5 export NETX_RESOURCE_DIR=$(NETX_SRCDIR)/net/sourceforge/jnlp/resources 6 export NETX_EXTRA_DIR=$(abs_top_srcdir)/extra/net/sourceforge/javaws/about/resources 7 export NETX_EXTRA_DIST_DIR=$(abs_top_builddir)/extra-lib/net/sourceforge/javaws/about/resources 8 9 export REPORT_STYLES_DIRNAME=report-styles 10 11 export TESTS_SRCDIR=$(abs_top_srcdir)/tests 12 export TESTS_DIR=$(abs_top_builddir)/tests.build 13 14 export NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit 15 export NETX_UNIT_TEST_DIR=$(TESTS_DIR)/netx/unit 16 17 export JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner 18 export JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner 19 20 21 export JNLP_TESTS_ENGINE_SRCDIR=$(TESTS_SRCDIR)/test-extensions 22 export JNLP_TESTS_ENGINE_TESTS_SRCDIR=$(TESTS_SRCDIR)/test-extensions-tests 23 export JNLP_TESTS_SRCDIR=$(TESTS_SRCDIR)/reproducers 24 export JNLP_TESTS_ENGINE_DIR=$(TESTS_DIR)/jnlp_testsengine 25 export JNLP_TESTS_ENGINE_TESTS_DIR=$(TESTS_DIR)/netx/jnlp_testsengine_tests 26 export JNLP_TESTS_SERVER_DEPLOYDIR=$(TESTS_DIR)/jnlp_test_server 27 export JNLP_TESTS_DIR=$(TESTS_DIR)/jnlp_tests 28 export PRIVATE_KEYSTORE_NAME=teststore.ks 29 export PRIVATE_KEYSTORE_PASS=123456789 30 export EXPORTED_TEST_CERT_PREFIX=icedteatests 31 export EXPORTED_TEST_CERT_SUFFIX=crt 32 export TEST_CERT_ALIAS=icedteaweb 33 export PUBLIC_KEYSTORE=${HOME}/.icedtea/security/trusted.certs 34 export PUBLIC_KEYSTORE_PASS=changeit 35 36 export JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar 37 export UNIT_CLASS_NAMES = $(abs_top_builddir)/unit_class_names 38 export REPRODUCERS_CLASS_NAMES = $(abs_top_builddir)/reproducers_class_names 39 export REPRODUCERS_CLASS_WHITELIST = $(abs_top_srcdir)/netx-dist-tests-whitelist 40 export EMMA_JAVA_ARGS=-Xmx2G 41 export EMMA_MODIFIED_FILES=tests-output.xml ServerAccess-logs.xml stdout.log stderr.log all.log 42 export EMMA_BACKUP_SUFFIX=_noEmma 43 export EMMA_SUFFIX=_withEmma 44 export META_MANIFEST = META-INF/MANIFEST.MF 45 export SIGNED_REPRODUCERS=signed 46 export SIMPLE_REPRODUCERS=simple 47 export CUSTOM_REPRODUCERS=custom 48 export ALL_NONCUSTOM_REPRODUCERS=$(SIMPLE_REPRODUCERS) $(SIGNED_REPRODUCERS) 49 export ALL_REPRODUCERS=$(ALL_NONCUSTOM_REPRODUCERS) $(CUSTOM_REPRODUCERS) 50 51 52 # linking variables 53 export PLUGIN_LINK_NAME=libjavaplugin.so 54 export MOZILLA_LOCAL_PLUGINDIR=${HOME}/.mozilla/plugins 55 export MOZILLA_GLOBAL64_PLUGINDIR=/usr/lib64/mozilla/plugins 56 export MOZILLA_GLOBAL32_PLUGINDIR=/usr/lib/mozilla/plugins 57 export OPERA_GLOBAL64_PLUGINDIR=/usr/lib64/opera/plugins 58 export OPERA_GLOBAL32_PLUGINDIR=/usr/lib/opera/plugins 59 export BUILT_PLUGIN_LIBRARY=IcedTeaPlugin.so 60 export MOZILLA_LOCAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origU 61 export MOZILLA_GLOBAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origMG 62 export OPERA_GLOBAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origOG 63 export MOZILLA_FAMILY_TEST= "$(FIREFOX)" != "" -o "$(CHROMIUM)" != "" -o "$(CHROME)" != "" -o "$(MIDORI)" != "" -o "$(EPIPHANY)" != "" 64 # end of linking variables 19 65 20 66 # Build directories 21 67 22 BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.068 export BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0 23 69 24 70 if WITH_RHINO … … 28 74 endif 29 75 30 RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME) 76 export RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME):$(BOOT_DIR)/jre/lib/resources.jar 31 77 32 78 # Flags 33 IT_CFLAGS=$(CFLAGS) $(ARCHFLAG)34 IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE)35 IT_LANGUAGE_SOURCE_VERSION=636 IT_CLASS_TARGET_VERSION=637 IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION)79 export IT_CFLAGS=$(CFLAGS) $(ARCHFLAG) 80 export IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE) 81 export IT_LANGUAGE_SOURCE_VERSION=6 82 export IT_CLASS_TARGET_VERSION=6 83 export IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION) 38 84 39 85 # … … 44 90 # - we want full privileges 45 91 # 46 LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)"47 PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"'92 export LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)" 93 export PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"' 48 94 49 95 # Fake update version to work with the Deployment Toolkit script used by Oracle 50 96 # http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html 51 JDK_UPDATE_VERSION=5097 export JDK_UPDATE_VERSION=50 52 98 53 99 # Sources list 54 100 55 PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java56 57 NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \101 export PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java 102 103 export NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \ 58 104 net.sourceforge.jnlp.cache net.sourceforge.jnlp.config \ 59 105 net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \ … … 64 110 # Conditional defintions 65 111 if ENABLE_PLUGIN 66 ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin67 LIVECONNECT_DIR = netscape sun/applet68 PLUGIN_DIR=$(abs_top_builddir)/plugin/icedteanp69 PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp70 LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java71 ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/IcedTeaPlugin.sostamps/liveconnect-dist.stamp72 PLUGIN_PKGS = sun.applet netscape.security netscape.javascript112 export ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin 113 export LIVECONNECT_DIR = netscape sun/applet 114 export PLUGIN_DIR=$(abs_top_builddir)/plugin/icedteanp 115 export PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp 116 export LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java 117 export ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) stamps/liveconnect-dist.stamp 118 export PLUGIN_PKGS = sun.applet netscape.security netscape.javascript 73 119 endif 74 120 … … 92 138 93 139 if WITH_RHINO 94 RHINO_TESTS= check-pac-functions140 RHINO_TESTS=stamps/check-pac-functions.stamp 95 141 else 96 142 RHINO_TESTS= … … 98 144 99 145 if WITH_JUNIT 100 JUNIT_TESTS= run-netx-unit-tests146 JUNIT_TESTS=stamps/run-netx-unit-tests.stamp 101 147 else 102 148 JUNIT_TESTS= … … 104 150 105 151 106 PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION)107 108 EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \152 export PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION) 153 154 export EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \ 109 155 itweb-settings.desktop.in $(top_srcdir)/tests 156 157 # reproducers `D`shortcuts 158 export DTEST_SERVER=-Dtest.server.dir=$(JNLP_TESTS_SERVER_DEPLOYDIR) 159 export DJAVAWS_BUILD=-Djavaws.build.bin=$(DESTDIR)$(bindir)/$(javaws) 160 export DBROWSERS=-Dused.browsers=$(FIREFOX):$(CHROMIUM):$(CHROME):$(OPERA):$(MIDORI):$(EPIPHANY) 161 export REPRODUCERS_DPARAMETERS= $(DTEST_SERVER) $(DJAVAWS_BUILD) $(DBROWSERS) $(BROWSER_TESTS_MODIFICATION) 162 # end of `D`shortcuts 163 164 #exported autoconf copies 165 export EXPORTED_JAVAC=$(BOOT_DIR)/bin/javac 166 #end of exported autoconf copies 110 167 111 168 # binary names … … 130 187 check-local: $(RHINO_TESTS) $(JUNIT_TESTS) 131 188 132 clean-local: clean-netx clean-plugin clean-liveconnect clean-extra clean-bootstrap-directory\133 clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-tests 189 clean-local: clean-netx clean-plugin clean-liveconnect clean-extra \ 190 clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-tests clean-bootstrap-directory 134 191 if [ -e stamps ] ; then \ 135 192 rmdir stamps ; \ … … 138 195 .PHONY: clean-IcedTeaPlugin clean-add-netx clean-add-netx-debug clean-add-plugin clean-add-plugin-debug \ 139 196 clean-bootstrap-directory clean-native-ecj clean-desktop-files clean-netx-docs clean-docs clean-plugin-docs \ 140 clean-tests check-local clean-launchers check-pac-functions run-netx-unit-testsclean-netx-tests \197 clean-tests check-local clean-launchers stamps/check-pac-functions.stamp stamps/run-netx-unit-tests.stamp clean-netx-tests \ 141 198 clean-junit-runner clean-netx-unit-tests 142 199 … … 144 201 ${mkinstalldirs} $(DESTDIR)$(bindir) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/ $(DESTDIR)$(libdir) 145 202 if ENABLE_PLUGIN 146 ${INSTALL_PROGRAM} $(PLUGIN_DIR)/ IcedTeaPlugin.so$(DESTDIR)$(libdir)203 ${INSTALL_PROGRAM} $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) $(DESTDIR)$(libdir) 147 204 ${INSTALL_DATA} $(abs_top_builddir)/liveconnect/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar 148 205 endif … … 173 230 174 231 uninstall-local: 175 rm -f $(DESTDIR)$(libdir)/ IcedTeaPlugin.so232 rm -f $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) 176 233 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar 177 234 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar … … 203 260 cd $(PLUGIN_DIR) && \ 204 261 $(CXX) $(CXXFLAGS) \ 262 $(DEFS) $(VERSION_DEFS) \ 205 263 -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ 206 264 -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ … … 215 273 -fPIC -o $@ -c $< 216 274 217 $(PLUGIN_DIR)/ IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS))275 $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY): $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) 218 276 cd $(PLUGIN_DIR) && \ 219 277 $(CXX) $(CXXFLAGS) \ … … 226 284 clean-IcedTeaPlugin: 227 285 rm -f $(PLUGIN_DIR)/*.o 228 rm -f $(PLUGIN_DIR)/ IcedTeaPlugin.so286 rm -f $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) 229 287 if [ $(abs_top_srcdir) != $(abs_top_builddir) ]; then \ 230 288 if [ -e $(abs_top_builddir)/plugin/icedteanp ] ; then \ … … 433 491 fi 434 492 435 check-pac-functions: stamps/bootstrap-directory.stamp493 stamps/check-pac-functions.stamp: stamps/bootstrap-directory.stamp 436 494 ./jrunscript $(abs_top_srcdir)/tests/netx/pac/pac-funcs-test.js \ 437 $$(readlink -f $(abs_top_srcdir)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js) 495 $$(readlink -f $(abs_top_srcdir)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js) ; \ 496 mkdir -p stamps && \ 497 touch $@ 438 498 439 499 junit-runner-source-files.txt: 440 500 find $(JUNIT_RUNNER_SRCDIR) -name '*.java' | sort > $@ 441 501 442 $(JUNIT_RUNNER_JAR): junit-runner-source-files.txt 502 $(JUNIT_RUNNER_JAR): junit-runner-source-files.txt stamps/netx-dist-tests-compile.stamp 443 503 mkdir -p $(JUNIT_RUNNER_DIR) && \ 444 504 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 445 505 -d $(JUNIT_RUNNER_DIR) \ 446 -classpath $(JUNIT_JAR) \506 -classpath $(JUNIT_JAR):$(JNLP_TESTS_ENGINE_DIR) \ 447 507 @junit-runner-source-files.txt && \ 448 508 $(BOOT_DIR)/bin/jar cf $@ -C $(JUNIT_RUNNER_DIR) . 449 509 510 stamps/junit-jnlp-dist-dirs: junit-jnlp-dist-simple.txt stamps/junit-jnlp-dist-signed.stamp junit-jnlp-dist-custom.txt 511 mkdir -p $(JNLP_TESTS_SERVER_DEPLOYDIR) 512 mkdir -p $(JNLP_TESTS_DIR) 513 touch $@ 514 515 junit-jnlp-dist-custom.txt: 516 cd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/ ; \ 517 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@ 518 519 junit-jnlp-dist-simple.txt: 520 cd $(JNLP_TESTS_SRCDIR)/simple/ ; \ 521 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@ 522 523 stamps/junit-jnlp-dist-signed.stamp: 524 types=($(SIGNED_REPRODUCERS)) ; \ 525 for which in "$${types[@]}" ; do \ 526 pushd $(JNLP_TESTS_SRCDIR)/$$which/ ; \ 527 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/junit-jnlp-dist-$$which.txt ; \ 528 popd ; \ 529 done ; \ 530 mkdir -p stamps && \ 531 touch $@ 532 533 stamps/netx-dist-tests-prepare-reproducers.stamp: stamps/junit-jnlp-dist-dirs 534 types=($(ALL_NONCUSTOM_REPRODUCERS)); \ 535 for which in "$${types[@]}" ; do \ 536 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 537 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 538 IFS="$$IFS_BACKUP" ; \ 539 for dir in "$${simpleReproducers[@]}" ; do \ 540 echo "processing: $$dir" ; \ 541 mkdir -p "$(JNLP_TESTS_DIR)/$$dir" ; \ 542 if [ -e "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ]; then \ 543 d=`pwd` ; \ 544 cd "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ; \ 545 srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \ 546 notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \ 547 $(BOOT_DIR)/bin/javac -cp $(NETX_DIR)/lib/classes.jar -d "$(JNLP_TESTS_DIR)/$$dir/" $$srcFiles ; \ 548 if [ -n "$$notSrcFiles" ] ; then \ 549 cp -R --parents $$notSrcFiles "$(JNLP_TESTS_DIR)/$$dir/" ; \ 550 fi ; \ 551 cd "$(JNLP_TESTS_DIR)/$$dir/" ; \ 552 if [ -f $(META_MANIFEST) ]; \ 553 then \ 554 $(BOOT_DIR)/bin/jar cfm "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $(META_MANIFEST) * ; \ 555 else \ 556 $(BOOT_DIR)/bin/jar cf "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \ 557 fi; \ 558 cd "$$d" ; \ 559 fi; \ 560 done ; \ 561 done ; \ 562 mkdir -p stamps && \ 563 touch $@ 564 565 stamps/netx-dist-tests-sign-some-reproducers.stamp: stamps/netx-dist-tests-prepare-reproducers.stamp 566 keystore=$(abs_top_builddir)/$(PRIVATE_KEYSTORE_NAME); \ 567 types=($(SIGNED_REPRODUCERS)) ; \ 568 for which in "$${types[@]}" ; do \ 569 tcaw=$(TEST_CERT_ALIAS)_$$which ; \ 570 $(BOOT_DIR)/bin/keytool -genkey -alias $$tcaw -keystore $$keystore -keypass $(PRIVATE_KEYSTORE_PASS) -storepass $(PRIVATE_KEYSTORE_PASS) -dname "cn=$$tcaw, ou=$$tcaw, o=$$tcaw, c=$$tcaw" ; \ 571 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 572 signedReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 573 IFS="$$IFS_BACKUP" ; \ 574 for dir in "$${signedReproducers[@]}" ; do \ 575 $(BOOT_DIR)/bin/jarsigner -keystore $$keystore -storepass $(PRIVATE_KEYSTORE_PASS) -keypass $(PRIVATE_KEYSTORE_PASS) "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $$tcaw ; \ 576 done ; \ 577 done ; \ 578 mkdir -p stamps && \ 579 touch $@ 580 581 stamps/change-dots-to-paths.stamp: stamps/netx-dist-tests-sign-some-reproducers.stamp 582 pushd $(JNLP_TESTS_SERVER_DEPLOYDIR); \ 583 types=($(ALL_NONCUSTOM_REPRODUCERS)); \ 584 for which in "$${types[@]}" ; do \ 585 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 586 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 587 IFS="$$IFS_BACKUP" ; \ 588 for dir in "$${simpleReproducers[@]}" ; do \ 589 if test "$${dir:0:1}" = "." ; then \ 590 echo "reproducer $$dir starts with dot. It is forbidden" ; \ 591 exit 5; \ 592 fi; \ 593 if test "$${dir:(-1)}" = "." ; then \ 594 echo "reproducer $$dir ends with dot. It is forbidden" ; \ 595 exit 5; \ 596 fi; \ 597 q=`expr index "$$dir" .`; \ 598 r=$$? ; \ 599 if [ $$r = 0 ]; then \ 600 slashed_dir="./$${dir//.//}" ; \ 601 path="`dirname $$slashed_dir`" ; \ 602 file="`basename $$slashed_dir`.jar" ; \ 603 echo "copying $$dir.jar to $$path as $$file" ; \ 604 mkdir --parents $$path ; \ 605 cp $$dir".jar" "$$path"/"$$file" ; \ 606 fi ; \ 607 done ; \ 608 done ; \ 609 popd ; \ 610 mkdir -p stamps && \ 611 touch $@ 612 613 #this always tries to remove previous testcert 614 #the code is copypasted from netx-dist-tests-remove-cert-from-public, because 615 #with depending to not stamped target we always have to rerun reproducers targets 616 stamps/exported-test-certs.stamp: stamps/change-dots-to-paths.stamp 617 -types=($(SIGNED_REPRODUCERS)) ; \ 618 for which in "$${types[@]}" ; do \ 619 $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) ; \ 620 done ; 621 types=($(SIGNED_REPRODUCERS)) ; \ 622 for which in "$${types[@]}" ; do \ 623 keytool -export -alias $(TEST_CERT_ALIAS)_$$which -file $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) -storepass $(PRIVATE_KEYSTORE_PASS) -keystore $(PRIVATE_KEYSTORE_NAME) ; \ 624 done ; 625 mkdir -p stamps && \ 626 touch $@ 627 628 stamps/netx-dist-tests-import-cert-to-public: stamps/exported-test-certs.stamp 629 types=($(SIGNED_REPRODUCERS)) ; \ 630 for which in "$${types[@]}" ; do \ 631 yes | $(BOOT_DIR)/bin/keytool -import -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) -file $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) ;\ 632 done ; 633 mkdir -p stamps && \ 634 touch $@ 635 636 netx-dist-tests-remove-cert-from-public: 637 -types=($(SIGNED_REPRODUCERS)) ; \ 638 for which in "$${types[@]}" ; do \ 639 $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) ; \ 640 done ; 641 -rm -rf stamps/netx-dist-tests-import-cert-to-public 642 643 netx-dist-tests-source-files.txt: 644 find $(JNLP_TESTS_ENGINE_SRCDIR) -name '*.java' | sort > $@ 645 646 stamps/netx-dist-tests-compile.stamp: stamps/netx.stamp \ 647 stamps/junit-jnlp-dist-dirs netx-dist-tests-source-files.txt 648 mkdir -p $(JNLP_TESTS_ENGINE_DIR); 649 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 650 -d $(JNLP_TESTS_ENGINE_DIR) \ 651 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \ 652 @netx-dist-tests-source-files.txt && \ 653 mkdir -p stamps && \ 654 touch $@ 655 656 netx-dist-tests-tests-source-files.txt: 657 find $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) -name '*.java' | sort > $@ 658 659 stamps/netx-dist-tests-tests-compile.stamp: stamps/junit-jnlp-dist-dirs netx-dist-tests-tests-source-files.txt stamps/netx-dist-tests-compile.stamp 660 mkdir -p $(JNLP_TESTS_ENGINE_TESTS_DIR); 661 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 662 -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \ 663 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \ 664 @netx-dist-tests-tests-source-files.txt && \ 665 mkdir -p stamps && \ 666 touch $@ 667 668 stamps/netx-dist-tests-compile-testcases.stamp: stamps/netx.stamp stamps/junit-jnlp-dist-dirs \ 669 netx-dist-tests-source-files.txt stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-tests-compile.stamp 670 types=($(ALL_REPRODUCERS)); \ 671 for which in "$${types[@]}" ; do \ 672 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 673 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 674 IFS="$$IFS_BACKUP" ; \ 675 for dir in "$${simpleReproducers[@]}" ; do \ 676 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 677 -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \ 678 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \ 679 "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/"* ; \ 680 done ; \ 681 done ; \ 682 mkdir -p stamps && \ 683 touch $@ 684 685 stamps/netx-dist-tests-copy-resources.stamp: stamps/junit-jnlp-dist-dirs 686 types=($(ALL_REPRODUCERS)); \ 687 for which in "$${types[@]}" ; do \ 688 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 689 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 690 IFS="$$IFS_BACKUP" ; \ 691 for dir in "$${simpleReproducers[@]}" ; do \ 692 cp -R "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/resources/"* $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \ 693 done ; \ 694 done ; \ 695 mkdir -p stamps && \ 696 touch $@ 697 698 $(REPRODUCERS_CLASS_NAMES): $(REPRODUCERS_CLASS_WHITELIST) 699 whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \ 700 cd $(JNLP_TESTS_ENGINE_TESTS_DIR) ; \ 701 class_names= ; \ 702 for test in `find -type f` ; do \ 703 class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \ 704 class_name=`echo $$class_name | sed -e 's|/|.|g' ` ; \ 705 INLCUDE="NO" ; \ 706 for x in $$whiteListed ; do \ 707 q=`expr match "$$class_name" "$$x"`; \ 708 r=$$? ; \ 709 if [ $$r = 0 ]; then \ 710 echo "$$class_name will be included in reproducers testcases because of $$x pattern in $(REPRODUCERS_CLASS_WHITELIST). Matching was $$q"; \ 711 INLCUDE="YES" ; \ 712 fi; \ 713 done; \ 714 if [ "$$INLCUDE" = "YES" ]; then \ 715 class_names="$$class_names $$class_name" ; \ 716 else \ 717 echo "$$class_name had no match in $(REPRODUCERS_CLASS_WHITELIST). Excluding"; \ 718 fi; \ 719 done ; \ 720 echo $$class_names > $(REPRODUCERS_CLASS_NAMES) 721 722 stamps/run-netx-dist-tests.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \ 723 javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop \ 724 stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \ 725 stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-compile-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/netx-dist-tests-copy-resources.stamp\ 726 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) stamps/process-custom-reproducers.stamp 727 cd $(JNLP_TESTS_ENGINE_DIR) ; \ 728 class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \ 729 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):.:$(JNLP_TESTS_ENGINE_TESTS_DIR) \ 730 $(BOOT_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \ 731 -Xbootclasspath:$(RUNTIME) CommandLine $$class_names 732 if WITH_XSLTPROC 733 $(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(JNLP_TESTS_ENGINE_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_reproducers.html 734 $(XSLTPROC) --stringparam logs logs_reproducers.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(JNLP_TESTS_ENGINE_DIR)/tests-output.xml > $(TESTS_DIR)/index_reproducers.html 735 endif 736 touch $@ 737 738 stamps/process-custom-reproducers.stamp: stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \ 739 stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-compile-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/netx-dist-tests-copy-resources.stamp\ 740 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) 741 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 742 customReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-custom.txt `); \ 743 IFS="$$IFS_BACKUP" ; \ 744 for dir in "$${customReproducers[@]}" ; do \ 745 pushd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/$$dir/srcs; \ 746 $(MAKE) prepare-reproducer ; \ 747 popd ; \ 748 done ; \ 749 mkdir -p stamps && \ 750 touch $@ 751 752 clean-custom-reproducers: junit-jnlp-dist-custom.txt 753 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 754 customReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-custom.txt `); \ 755 IFS="$$IFS_BACKUP" ; \ 756 for dir in "$${customReproducers[@]}" ; do \ 757 pushd $(JNLP_TESTS_SRCDIR)/custom/$$dir/srcs; \ 758 $(MAKE) clean-reproducer ; \ 759 popd ; \ 760 done ; \ 761 rm -f stamps/process-custom-reproducers.stamp 762 763 #for global-links you must be root, for opera there do not exists user-links 764 #although this targets will indeed create symbolic links to enable 765 #icedtea-web plugin inside browser it is intended for testing purposes 766 if ENABLE_PLUGIN 767 stamps/user-links.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp \ 768 launcher.build/$(javaws) stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) 769 if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 770 if [ -e $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ] ; then \ 771 mv -f $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) $(MOZILLA_LOCAL_BACKUP_FILE) ; \ 772 echo "$(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) backed up as $(MOZILLA_LOCAL_BACKUP_FILE)" ; \ 773 else \ 774 echo "$(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) doesn't exists, nothing to be backed up to $(MOZILLA_LOCAL_BACKUP_FILE)" ; \ 775 fi ; \ 776 pushd $(MOZILLA_LOCAL_PLUGINDIR) ; \ 777 ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ 778 echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ 779 popd ; \ 780 fi ; \ 781 touch $@ 782 783 restore-user-links: 784 if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 785 if [ -e $(MOZILLA_LOCAL_BACKUP_FILE) ] ; then \ 786 mv -f $(MOZILLA_LOCAL_BACKUP_FILE) $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ; \ 787 echo "$(MOZILLA_LOCAL_BACKUP_FILE) restored as $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME)" ; \ 788 else \ 789 rm -f $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ; \ 790 echo "$(MOZILLA_LOCAL_BACKUP_FILE) do not exists, nothing to be restored. $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) removed" ; \ 791 fi ; \ 792 fi ; 793 if [ -e stamps/user-links.stamp ] ; then \ 794 rm -f stamps/user-links.stamp ; \ 795 fi 796 797 stamps/global-links.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \ 798 stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) 799 if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 800 dir="$(MOZILLA_GLOBAL32_PLUGINDIR)" ; \ 801 arch=`arch` ; \ 802 if [ "$$arch" = "x86_64" ] ; then \ 803 dir="$(MOZILLA_GLOBAL64_PLUGINDIR)" ; \ 804 fi ; \ 805 if [ -e "$$dir"/$(PLUGIN_LINK_NAME) ] ; then \ 806 mv -f "$$dir"/$(PLUGIN_LINK_NAME) $(MOZILLA_GLOBAL_BACKUP_FILE) ; \ 807 echo "$$dir/$(PLUGIN_LINK_NAME) backed up as $(MOZILLA_GLOBAL_BACKUP_FILE)" ; \ 808 else \ 809 echo "$$dir/$(PLUGIN_LINK_NAME) do not exists, nothing to be backed up to $(MOZILLA_GLOBAL_BACKUP_FILE)" ; \ 810 fi ; \ 811 pushd "$$dir" ; \ 812 ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ 813 echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ 814 popd ; \ 815 fi ; 816 if [ "$(OPERA)" != "" ] ; then \ 817 dir="$(OPERA_GLOBAL32_PLUGINDIR)" ; \ 818 arch=`arch` ; \ 819 if [ "$$arch" = "x86_64" ] ; then \ 820 dir="$(OPERA_GLOBAL64_PLUGINDIR)" ; \ 821 fi ; \ 822 if [ -e "$$dir"/$(PLUGIN_LINK_NAME) ] ; then \ 823 mv -f "$$dir"/$(PLUGIN_LINK_NAME) $(OPERA_GLOBAL_BACKUP_FILE) ; \ 824 echo "$$dir/$(PLUGIN_LINK_NAME) backed up as $(OPERA_GLOBAL_BACKUP_FILE) "; \ 825 else \ 826 echo "$$dir/$(PLUGIN_LINK_NAME) do not exists, nothing to be backed up to $(OPERA_GLOBAL_BACKUP_FILE) "; \ 827 fi ; \ 828 pushd "$$dir" ; \ 829 ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ 830 echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ 831 popd ; \ 832 fi ; \ 833 touch $@ 834 835 restore-global-links: 836 if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 837 dir="$(MOZILLA_GLOBAL32_PLUGINDIR)" ; \ 838 arch=`arch` ; \ 839 if [ "$$arch" = "x86_64" ] ; then \ 840 dir="$(MOZILLA_GLOBAL64_PLUGINDIR)" ; \ 841 fi ; \ 842 if [ -e $(MOZILLA_GLOBAL_BACKUP_FILE) ] ; then \ 843 mv -f $(MOZILLA_GLOBAL_BACKUP_FILE) "$$dir"/$(PLUGIN_LINK_NAME) ; \ 844 echo "$(MOZILLA_GLOBAL_BACKUP_FILE) restored as $$dir/$(PLUGIN_LINK_NAME)" ; \ 845 else \ 846 rm -f "$$dir"/$(PLUGIN_LINK_NAME) ; \ 847 echo "$(MOZILLA_GLOBAL_BACKUP_FILE) do not exists, nothing to be restored. $$dir/$(PLUGIN_LINK_NAME) removed" ; \ 848 fi ; \ 849 fi ; 850 if [ "$(OPERA)" != "" ] ; then \ 851 dir="$(OPERA_GLOBAL32_PLUGINDIR)" ; \ 852 arch=`arch` ; \ 853 if [ "$$arch" = "x86_64" ] ; then \ 854 dir="$(OPERA_GLOBAL64_PLUGINDIR)" ; \ 855 fi ; \ 856 if [ -e $(OPERA_GLOBAL_BACKUP_FILE) ] ; then \ 857 mv -f $(OPERA_GLOBAL_BACKUP_FILE) "$$dir"/$(PLUGIN_LINK_NAME) ; \ 858 echo "$(OPERA_GLOBAL_BACKUP_FILE) restored as $$dir/$(PLUGIN_LINK_NAME)" ; \ 859 else \ 860 rm -f "$$dir"/$(PLUGIN_LINK_NAME) ; \ 861 echo "$(OPERA_GLOBAL_BACKUP_FILE) do not exist, nothing to be restored. $$dir/$(PLUGIN_LINK_NAME) removed" ; \ 862 fi ; \ 863 fi ; 864 if [ -e stamps/global-links.stamp ] ; then \ 865 rm -f stamps/global-links.stamp ; \ 866 fi 867 endif 868 450 869 netx-unit-tests-source-files.txt: 451 870 find $(NETX_UNIT_TEST_SRCDIR) -name '*.java' | sort > $@ 452 871 453 872 stamps/netx-unit-tests-compile.stamp: stamps/netx.stamp \ 454 netx-unit-tests-source-files.txt 873 netx-unit-tests-source-files.txt stamps/netx-dist-tests-compile.stamp 455 874 mkdir -p $(NETX_UNIT_TEST_DIR) && \ 456 875 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 457 876 -d $(NETX_UNIT_TEST_DIR) \ 458 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \877 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \ 459 878 @netx-unit-tests-source-files.txt && \ 460 879 mkdir -p stamps && \ 461 880 touch $@ 462 881 463 run-netx-unit-tests: stamps/netx-unit-tests-compile.stamp \ 464 $(JUNIT_RUNNER_JAR) 465 cp {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/basic.jnlp 882 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME): 883 mkdir $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) 884 cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.css $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ 885 cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.js $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ 886 887 $(UNIT_CLASS_NAMES): 466 888 cd $(NETX_UNIT_TEST_DIR) ; \ 467 889 class_names= ; \ … … 471 893 class_names="$$class_names $$class_name" ; \ 472 894 done ; \ 473 echo $$class_names ; \ 474 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):. \ 475 $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names 476 477 clean-netx-tests: clean-netx-unit-tests clean-junit-runner 895 echo $$class_names > $(UNIT_CLASS_NAMES); 896 897 stamps/run-netx-unit-tests.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR) \ 898 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(UNIT_CLASS_NAMES) 899 filename=" " ; \ 900 cd $(NETX_UNIT_TEST_SRCDIR) ; \ 901 for file in `find . -type f \! -iname "*.java"`; do\ 902 filename=`echo $$file `; \ 903 cp --parents $$filename $(NETX_UNIT_TEST_DIR) ; \ 904 done ; \ 905 cd $(NETX_UNIT_TEST_DIR) ; \ 906 class_names=`cat $(UNIT_CLASS_NAMES)` ; \ 907 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(JNLP_TESTS_ENGINE_DIR):. \ 908 $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names 909 if WITH_XSLTPROC 910 $(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(NETX_UNIT_TEST_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_unit.html 911 $(XSLTPROC) --stringparam logs logs_unit.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(NETX_UNIT_TEST_DIR)/tests-output.xml > $(TESTS_DIR)/index_unit.html 912 endif 913 mkdir -p stamps && \ 914 touch $@ 915 916 #warning, during this target tests.build/netx/unit/tests-output.xml is backup and rewriten (but not coresponding html file) 917 #xml results run from emma sandbox, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored 918 #you can add -ix "-*Test*" -ix "-*test*" to ignore all test cases from statistics 919 stamps/run-unit-test-code-coverage.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR) \ 920 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(UNIT_CLASS_NAMES) 921 if WITH_EMMA 922 cd $(NETX_UNIT_TEST_DIR) ; \ 923 for file in $(EMMA_MODIFIED_FILES) ; do \ 924 mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \ 925 done ;\ 926 class_names=`cat $(UNIT_CLASS_NAMES)` ; \ 927 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -Xbootclasspath:$(RUNTIME) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emmarun \ 928 -Dreport.html.out.encoding=UTF-8 \ 929 -raw \ 930 -sp $(NETX_SRCDIR) \ 931 -sp $(NETX_UNIT_TEST_SRCDIR) \ 932 -sp $(JUNIT_RUNNER_SRCDIR) \ 933 -r html \ 934 -r xml \ 935 -cp $(NETX_DIR)/lib/classes.jar \ 936 -cp $(JUNIT_JAR) \ 937 -cp $(JUNIT_RUNNER_JAR) \ 938 -cp $(BOOT_DIR)/jre/lib/rt.jar \ 939 -cp $(BOOT_DIR)/jre/lib/jsse.jar \ 940 -cp $(BOOT_DIR)/jre/lib/resources.jar \ 941 -cp $(RHINO_RUNTIME) \ 942 -cp $(JNLP_TESTS_ENGINE_DIR) \ 943 -cp . \ 944 -ix "-org.junit.*" \ 945 -ix "-junit.*" \ 946 CommandLine $$class_names ; \ 947 for file in $(EMMA_MODIFIED_FILES) ; do \ 948 mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_SUFFIX)" ; \ 949 mv $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" $(NETX_UNIT_TEST_DIR)/$$file ; \ 950 done ; 951 else 952 echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ; 953 exit 5 954 endif 955 touch $@ 956 957 #warning, during this target tests.build/netx/jnlp_testsengine/tests-output.xml is backup and rewriten (but not coresponding html file) 958 #xml results run from emma sandbox, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored 959 stamps/run-reproducers-test-code-coverage.stamp: stamps/run-netx-dist-tests.stamp $(REPRODUCERS_CLASS_NAMES) 960 if WITH_EMMA 961 cd $(TESTS_DIR) ; \ 962 for file in $(EMMA_MODIFIED_FILES) ; do \ 963 mv $(JNLP_TESTS_ENGINE_DIR)/$$file $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \ 964 done ;\ 965 echo "backuping javaws and netx.jar in $(DESTDIR)" ; \ 966 netx_backup=$(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx_backup.jar ; \ 967 javaws_backup=$(DESTDIR)$(bindir)/javaws_backup ; \ 968 mv $(DESTDIR)$(bindir)/javaws $$javaws_backup ; \ 969 mv $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar $$netx_backup ; \ 970 nw_bootclasspath="$(LAUNCHER_BOOTCLASSPATH):$(EMMA_JAR):$$netx_backup" ; \ 971 instructed_dir=$(TESTS_DIR)/instr ; \ 972 echo "instrumenting netx.jar from $$netx_backup through $$instructed_dir" ; \ 973 $(BOOT_DIR)/bin/java -cp $(EMMA_JAR) emma instr -d $$instructed_dir -ip $$netx_backup ; \ 974 pushd $$instructed_dir ; \ 975 $(BOOT_DIR)/bin/jar -cf $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar * ; \ 976 popd ; \ 977 rm -rf $$instructed_dir ; \ 978 echo "patching $(javaws)" ; \ 979 cat $$javaws_backup | sed "s,$(LAUNCHER_BOOTCLASSPATH),$$nw_bootclasspath," > $(DESTDIR)$(bindir)/$(javaws) ; \ 980 chmod 777 $(DESTDIR)$(bindir)/$(javaws) ; \ 981 testcases_srcs=( ) ; \ 982 k=0 ; \ 983 types=($(ALL_REPRODUCERS)); \ 984 for which in "$${types[@]}" ; do \ 985 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 986 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 987 IFS="$$IFS_BACKUP" ; \ 988 for dir in "$${simpleReproducers[@]}" ; do \ 989 testcases_srcs[k]="-sp" ; \ 990 k=$$((k+1)) ; \ 991 testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \ 992 k=$$((k+1)) ; \ 993 done ; \ 994 done ; \ 995 cd $(JNLP_TESTS_ENGINE_DIR) ; \ 996 class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \ 997 $(BOOT_DIR)/bin/java \ 998 $(EMMA_JAVA_ARGS) \ 999 $(REPRODUCERS_DPARAMETERS) \ 1000 -Xbootclasspath:$(RUNTIME) -cp $(EMMA_JAR) emmarun \ 1001 -raw \ 1002 -cp $(NETX_DIR)/lib/classes.jar \ 1003 -cp $(JUNIT_JAR) \ 1004 -cp $(JUNIT_RUNNER_JAR) \ 1005 -cp $(BOOT_DIR)/jre/lib/rt.jar \ 1006 -cp $(BOOT_DIR)/jre/lib/jsse.jar \ 1007 -cp $(BOOT_DIR)/jre/lib/resources.jar \ 1008 -cp $(RHINO_RUNTIME) \ 1009 -cp . \ 1010 -cp $(JNLP_TESTS_ENGINE_TESTS_DIR) \ 1011 -ix "-org.junit.*" \ 1012 -ix "-junit.*" \ 1013 CommandLine $$class_names ; \ 1014 mv $(JNLP_TESTS_ENGINE_DIR)/coverage.ec $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec ; \ 1015 mv $(JNLP_TESTS_ENGINE_DIR)/coverage.es $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \ 1016 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \ 1017 -in $(TESTS_DIR)/coverage.em \ 1018 -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec \ 1019 -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \ 1020 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emma report \ 1021 -Dreport.html.out.encoding=UTF-8 \ 1022 -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es \ 1023 -sp $(NETX_SRCDIR) \ 1024 -sp $(NETX_UNIT_TEST_SRCDIR) \ 1025 -sp $(JUNIT_RUNNER_SRCDIR) \ 1026 -sp $(JNLP_TESTS_ENGINE_SRCDIR) \ 1027 -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \ 1028 -r html \ 1029 -r xml \ 1030 "$${testcases_srcs[@]}" ; \ 1031 echo "restoring javaws and netx.jar in $(DESTDIR)" ; \ 1032 rm -f $(DESTDIR)$(bindir)/$(javaws) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \ 1033 rm -f $(DESTDIR)$(bindir)/$(javaws); \ 1034 mv $$javaws_backup $(DESTDIR)$(bindir)/$(javaws); \ 1035 mv $$netx_backup $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \ 1036 for file in $(EMMA_MODIFIED_FILES) ; do \ 1037 mv $(JNLP_TESTS_ENGINE_DIR)/$$file $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_SUFFIX)" ; \ 1038 mv $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" $(JNLP_TESTS_ENGINE_DIR)/$$file ; \ 1039 done ;\ 1040 rm $(JNLP_TESTS_ENGINE_DIR)/coverage.txt ; 1041 else 1042 echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ; 1043 exit 5 1044 endif 1045 touch $@ 1046 1047 run-test-code-coverage: run-unit-test-code-coverage run-reproducers-test-code-coverage 1048 if WITH_EMMA 1049 cd $(TESTS_DIR) ; \ 1050 k=0 ; \ 1051 types=($(ALL_REPRODUCERS)); \ 1052 for which in "$${types[@]}" ; do \ 1053 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1054 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1055 IFS="$$IFS_BACKUP" ; \ 1056 for dir in "$${simpleReproducers[@]}" ; do \ 1057 testcases_srcs[k]="-sp" ; \ 1058 k=$$((k+1)) ; \ 1059 testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \ 1060 k=$$((k+1)) ; \ 1061 done ; \ 1062 done ; \ 1063 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \ 1064 -in $(NETX_UNIT_TEST_DIR)/coverage.es \ 1065 -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \ 1066 $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emma report \ 1067 -Dreport.html.out.encoding=UTF-8 \ 1068 -in $(TESTS_DIR)/coverage.es \ 1069 -in $(TESTS_DIR)/coverage.em \ 1070 -sp $(NETX_SRCDIR) \ 1071 -sp $(NETX_UNIT_TEST_SRCDIR) \ 1072 -sp $(JUNIT_RUNNER_SRCDIR) \ 1073 -sp $(JNLP_TESTS_ENGINE_SRCDIR) \ 1074 -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \ 1075 "$${testcases_srcs[@]}" \ 1076 -r html \ 1077 -r xml ; 1078 else 1079 echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ; 1080 exit 5 1081 endif 1082 1083 clean-netx-tests: clean-netx-unit-tests clean-junit-runner clean-netx-dist-tests clean-test-code-coverage 478 1084 if [ -e $(TESTS_DIR)/netx ]; then \ 479 1085 rmdir $(TESTS_DIR)/netx ; \ … … 485 1091 rm -f $(JUNIT_RUNNER_JAR) 486 1092 487 clean-netx-unit-tests: 1093 clean-netx-unit-tests: clean_tests_reports 488 1094 rm -f netx-unit-tests-source-files.txt 489 1095 rm -rf $(NETX_UNIT_TEST_DIR) 1096 rm -f $(UNIT_CLASS_NAMES) 1097 rm -f stamps/check-pac-functions.stamp 1098 rm -f stamps/run-netx-unit-tests.stamp 490 1099 rm -f stamps/netx-unit-tests-compile.stamp 1100 1101 clean_tests_reports: 1102 rm -rf $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ 1103 rm -f $(TESTS_DIR)/*.html 1104 1105 clean-netx-dist-tests: clean_tests_reports netx-dist-tests-remove-cert-from-public clean-custom-reproducers 1106 rm -f netx-dist-tests-source-files.txt 1107 rm -rf $(JNLP_TESTS_ENGINE_TESTS_DIR) 1108 rm -rf $(JNLP_TESTS_DIR) 1109 rm -rf $(JNLP_TESTS_SERVER_DEPLOYDIR) 1110 rm -rf $(JNLP_TESTS_ENGINE_DIR) 1111 rm -f stamps/junit-jnlp-dist-dirs 1112 rm -f stamps/netx-dist-tests-compile.stamp 1113 rm -f stamps/netx-dist-tests-tests-compile.stamp 1114 rm -f stamps/netx-dist-tests-prepare-reproducers.stamp 1115 rm -f stamps/netx-dist-tests-compile-testcases.stamp 1116 rm -f stamps/netx-dist-tests-copy-resources.stamp 1117 rm -f stamps/netx-dist-tests-sign-some-reproducers.stamp 1118 rm -f stamps/change-dots-to-paths.stamp 1119 rm -f junit-jnlp-dist-simple.txt 1120 rm -f junit-jnlp-dist-custom.txt 1121 rm -f netx-dist-tests-tests-source-files.txt 1122 types=($(SIGNED_REPRODUCERS)) ; \ 1123 for which in "$${types[@]}" ; do \ 1124 rm -f junit-jnlp-dist-$$which.txt ; \ 1125 rm -f $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) ; \ 1126 done ; 1127 rm -f stamps/exported-test-certs.stamp 1128 rm -f stamps/junit-jnlp-dist-signed.stamp 1129 rm -f $(REPRODUCERS_CLASS_NAMES) 1130 rm -f $(abs_top_builddir)/$(PRIVATE_KEYSTORE_NAME) 1131 rm -f stamps/run-netx-dist-tests.stamp 1132 1133 clean-unit-test-code-coverage: 1134 if [ -e stamps/run-unit-test-code-coverage.stamp ]; then \ 1135 rm -rf $(NETX_UNIT_TEST_DIR)/coverage ; \ 1136 rm -f $(NETX_UNIT_TEST_DIR)/coverage.xml ; \ 1137 rm -f $(NETX_UNIT_TEST_DIR)/coverageX.es ; \ 1138 rm -f $(NETX_UNIT_TEST_DIR)/coverageX.ec ; \ 1139 rm -f $(NETX_UNIT_TEST_DIR)/coverage.es ; \ 1140 rm -f $(NETX_UNIT_TEST_DIR)/tests-output_withEmma.xml ; \ 1141 rm -f stamps/run-unit-test-code-coverage.stamp ; \ 1142 fi 1143 1144 clean-reproducers-test-code-coverage: 1145 if [ -e stamps/run-reproducers-test-code-coverage.stamp ]; then \ 1146 rm -rf $(JNLP_TESTS_ENGINE_DIR)/coverage ; \ 1147 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.xml ; \ 1148 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \ 1149 rm -f $(JNLP_TESTS_ENGINE_DIR)/tests-output_withEmma.xml ; \ 1150 rm -f stamps/run-reproducers-test-code-coverage.stamp ; \ 1151 fi 1152 1153 clean-test-code-coverage: clean-unit-test-code-coverage clean-reproducers-test-code-coverage 1154 if [ -e $(TESTS_DIR)/coverage.xml ]; then \ 1155 rm -rf $(TESTS_DIR)/coverage ; \ 1156 rm -f $(TESTS_DIR)/coverage.xml ; \ 1157 rm -f $(TESTS_DIR)/coverage.es ; \ 1158 rm -f $(TESTS_DIR)/coverage.em ; \ 1159 fi 1160 491 1161 492 1162 # plugin tests … … 530 1200 ln -sf $(abs_top_builddir)/javac $(BOOT_DIR)/bin/javac 531 1201 ln -sf $(JAVADOC) $(BOOT_DIR)/bin/javadoc 1202 if [ -e "$(KEYTOOL)" ] ; then \ 1203 ln -sf $(KEYTOOL) $(BOOT_DIR)/bin/keytool ;\ 1204 else \ 1205 echo "#! /bin/sh" > $(BOOT_DIR)/bin/keytool ;\ 1206 echo "echo \"keytool not exist on your system, signed part of reproducers test will fail\"" >> $(BOOT_DIR)/bin/keytool ;\ 1207 chmod 777 $(BOOT_DIR)/bin/keytool ;\ 1208 fi 1209 if [ -e "$(JARSIGNER)" ] ; then \ 1210 ln -sf $(JARSIGNER) $(BOOT_DIR)/bin/jarsigner ;\ 1211 else \ 1212 echo "#! /bin/sh" > $(BOOT_DIR)/bin/jarsigner ;\ 1213 echo "echo \"jarsigner not exist on your system, signed part of reproducers test will fail\"" >> $(BOOT_DIR)/bin/jarsigner ;\ 1214 chmod 777 $(BOOT_DIR)/bin/jarsigner ;\ 1215 fi 532 1216 mkdir -p $(BOOT_DIR)/jre/lib && \ 533 1217 ln -s $(SYSTEM_JRE_DIR)/lib/rt.jar $(BOOT_DIR)/jre/lib && \ … … 536 1220 else \ 537 1221 ln -s rt.jar $(BOOT_DIR)/jre/lib/jsse.jar ; \ 1222 fi 1223 if [ -e $(SYSTEM_JRE_DIR)/lib/resources.jar ] ; then \ 1224 ln -s $(SYSTEM_JRE_DIR)/lib/resources.jar $(BOOT_DIR)/jre/lib ; \ 1225 else \ 1226 ln -s rt.jar $(BOOT_DIR)/jre/lib/resources.jar ; \ 538 1227 fi 539 1228 ln -sf $(SYSTEM_JRE_DIR)/lib/$(JRE_ARCH_DIR) \ … … 575 1264 576 1265 plugin-tests: stamps/plugin-tests.stamp 1266 1267 check-pac-functions: stamps/check-pac-functions.stamp 1268 1269 run-netx-unit-tests: stamps/run-netx-unit-tests.stamp 1270 1271 links: stamps/global-links.stamp 1272 1273 user-links: stamps/user-links.stamp 1274 1275 run-netx-dist-tests: stamps/run-netx-dist-tests.stamp 1276 1277 run-unit-test-code-coverage: stamps/run-unit-test-code-coverage.stamp 1278 1279 run-reproducers-test-code-coverage: stamps/run-reproducers-test-code-coverage.stamp -
trunk/icedtea-web/Makefile.in
r362 r418 1 # Makefile.in generated by automake 1.11. 1from Makefile.am.1 # Makefile.in generated by automake 1.11.3 from Makefile.am. 2 2 # @configure_input@ 3 3 4 4 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 5 # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,6 # Inc.5 # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software 6 # Foundation, Inc. 7 7 # This Makefile.in is free software; the Free Software Foundation 8 8 # gives unlimited permission to copy and/or distribute it, … … 59 59 top_distdir = $(distdir) 60 60 am__remove_distdir = \ 61 { test ! -d "$(distdir)" \ 62 || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ 63 && rm -fr "$(distdir)"; }; } 61 if test -d "$(distdir)"; then \ 62 find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ 63 && rm -rf "$(distdir)" \ 64 || { sleep 5 && rm -rf "$(distdir)"; }; \ 65 else :; fi 64 66 DIST_ARCHIVES = $(distdir).tar.gz 65 67 GZIP_ENV = --best 66 68 distuninstallcheck_listfiles = find . -type f -print 69 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ 70 | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' 67 71 distcleancheck_listfiles = find . -type f -print 68 72 ACLOCAL = @ACLOCAL@ … … 74 78 AUTOMAKE = @AUTOMAKE@ 75 79 AWK = @AWK@ 80 BROWSER_TESTS_MODIFICATION = @BROWSER_TESTS_MODIFICATION@ 76 81 BUILD_ARCH_DIR = @BUILD_ARCH_DIR@ 77 82 CC = @CC@ 78 83 CCDEPMODE = @CCDEPMODE@ 79 84 CFLAGS = @CFLAGS@ 85 CHROME = @CHROME@ 86 CHROMIUM = @CHROMIUM@ 80 87 CPPFLAGS = @CPPFLAGS@ 81 88 CXX = @CXX@ … … 90 97 ECJ = @ECJ@ 91 98 ECJ_JAR = @ECJ_JAR@ 99 EMMA_AVAILABLE = @EMMA_AVAILABLE@ 100 EMMA_JAR = @EMMA_JAR@ 101 EPIPHANY = @EPIPHANY@ 92 102 EXEEXT = @EXEEXT@ 103 FIREFOX = @FIREFOX@ 93 104 FULL_VERSION = @FULL_VERSION@ 94 105 GCJ = @GCJ@ 106 GLIB2_V_216_CFLAGS = @GLIB2_V_216_CFLAGS@ 107 GLIB2_V_216_LIBS = @GLIB2_V_216_LIBS@ 95 108 GLIB_CFLAGS = @GLIB_CFLAGS@ 96 109 GLIB_LIBS = @GLIB_LIBS@ … … 106 119 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 107 120 JAR = @JAR@ 121 JARSIGNER = @JARSIGNER@ 108 122 JAR_ACCEPTS_STDIN_LIST = @JAR_ACCEPTS_STDIN_LIST@ 109 123 JAR_KNOWS_ATFILE = @JAR_KNOWS_ATFILE@ … … 116 130 JUNIT_AVAILABLE = @JUNIT_AVAILABLE@ 117 131 JUNIT_JAR = @JUNIT_JAR@ 132 KEYTOOL = @KEYTOOL@ 118 133 LDFLAGS = @LDFLAGS@ 119 134 LIBOBJS = @LIBOBJS@ … … 121 136 LTLIBOBJS = @LTLIBOBJS@ 122 137 MAKEINFO = @MAKEINFO@ 138 MIDORI = @MIDORI@ 123 139 MKDIR_P = @MKDIR_P@ 124 140 MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ … … 126 142 MOZILLA_VERSION_COLLAPSED = @MOZILLA_VERSION_COLLAPSED@ 127 143 OBJEXT = @OBJEXT@ 144 OPERA = @OPERA@ 128 145 PACKAGE = @PACKAGE@ 129 146 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ … … 147 164 USING_ECJ = @USING_ECJ@ 148 165 VERSION = @VERSION@ 166 VERSION_DEFS = @VERSION_DEFS@ 149 167 X11_CFLAGS = @X11_CFLAGS@ 150 168 X11_LIBS = @X11_LIBS@ 169 XSLTPROC = @XSLTPROC@ 151 170 ZIP = @ZIP@ 152 171 abs_builddir = @abs_builddir@ … … 201 220 top_builddir = @top_builddir@ 202 221 top_srcdir = @top_srcdir@ 203 NETX_DIR = $(abs_top_builddir)/netx.build204 NETX_SRCDIR = $(abs_top_srcdir)/netx205 NETX_RESOURCE_DIR = $(NETX_SRCDIR)/net/sourceforge/jnlp/resources206 NETX_EXTRA_DIR = $(abs_top_srcdir)/extra/net/sourceforge/javaws/about/resources207 NETX_EXTRA_DIST_DIR = $(abs_top_builddir)/extra-lib/net/sourceforge/javaws/about/resources208 TESTS_SRCDIR = $(abs_top_srcdir)/tests209 TESTS_DIR = $(abs_top_builddir)/tests.build210 NETX_UNIT_TEST_SRCDIR = $(TESTS_SRCDIR)/netx/unit211 NETX_UNIT_TEST_DIR = $(TESTS_DIR)/netx/unit212 JUNIT_RUNNER_DIR = $(TESTS_DIR)/junit-runner213 JUNIT_RUNNER_SRCDIR = $(TESTS_SRCDIR)/junit-runner214 JUNIT_RUNNER_JAR = $(abs_top_builddir)/junit-runner.jar215 216 # Build directories217 BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0218 222 @WITH_RHINO_FALSE@RHINO_RUNTIME = 219 223 @WITH_RHINO_TRUE@RHINO_RUNTIME = :$(RHINO_JAR) 220 RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME)221 222 # Flags223 IT_CFLAGS = $(CFLAGS) $(ARCHFLAG)224 IT_JAVAC_SETTINGS = -g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE)225 IT_LANGUAGE_SOURCE_VERSION = 6226 IT_CLASS_TARGET_VERSION = 6227 IT_JAVACFLAGS = $(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION)228 229 #230 # We need the jars in bootclasspath for a couple of reasons231 # - we use classes (in the sun.applet package) loaded by the bootclassloader232 # using another classloader to load classes from the same package causes an233 # IllegalAccessException234 # - we want full privileges235 #236 LAUNCHER_BOOTCLASSPATH = "-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)"237 PLUGIN_BOOTCLASSPATH = '"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"'238 239 # Fake update version to work with the Deployment Toolkit script used by Oracle240 # http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html241 JDK_UPDATE_VERSION = 50242 243 # Sources list244 PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java245 NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \246 net.sourceforge.jnlp.cache net.sourceforge.jnlp.config \247 net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \248 net.sourceforge.jnlp.runtime net.sourceforge.jnlp.security \249 net.sourceforge.jnlp.security.viewer net.sourceforge.jnlp.services \250 net.sourceforge.jnlp.tools net.sourceforge.jnlp.util251 252 253 # Conditional defintions254 @ENABLE_PLUGIN_TRUE@ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin255 @ENABLE_PLUGIN_TRUE@LIVECONNECT_DIR = netscape sun/applet256 @ENABLE_PLUGIN_TRUE@PLUGIN_DIR = $(abs_top_builddir)/plugin/icedteanp257 @ENABLE_PLUGIN_TRUE@PLUGIN_SRCDIR = $(abs_top_srcdir)/plugin/icedteanp258 @ENABLE_PLUGIN_TRUE@LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java259 @ENABLE_PLUGIN_TRUE@ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/IcedTeaPlugin.so stamps/liveconnect-dist.stamp260 @ENABLE_PLUGIN_TRUE@PLUGIN_PKGS = sun.applet netscape.security netscape.javascript261 224 @CP_SUPPORTS_REFLINK_TRUE@REFLINK = --reflink=auto 262 225 @SRC_DIR_HARDLINKABLE_FALSE@SRC_DIR_LINK = $(REFLINK) … … 267 230 @ENABLE_DOCS_TRUE@@JAVADOC_SUPPORTS_J_OPTIONS_TRUE@JAVADOC_MEM_OPTS = -J-Xmx1024m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m 268 231 @WITH_RHINO_FALSE@RHINO_TESTS = 269 @WITH_RHINO_TRUE@RHINO_TESTS = check-pac-functions232 @WITH_RHINO_TRUE@RHINO_TESTS = stamps/check-pac-functions.stamp 270 233 @WITH_JUNIT_FALSE@JUNIT_TESTS = 271 @WITH_JUNIT_TRUE@JUNIT_TESTS = run-netx-unit-tests 272 PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION) 273 EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \ 274 itweb-settings.desktop.in $(top_srcdir)/tests 275 234 @WITH_JUNIT_TRUE@JUNIT_TESTS = stamps/run-netx-unit-tests.stamp 235 #end of exported autoconf copies 276 236 277 237 # binary names … … 306 266 307 267 .SUFFIXES: 308 am--refresh: 268 am--refresh: Makefile 309 269 @: 310 270 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) … … 399 359 400 360 dist-bzip2: distdir 401 tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 361 tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 362 $(am__remove_distdir) 363 364 dist-lzip: distdir 365 tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz 402 366 $(am__remove_distdir) 403 367 … … 407 371 408 372 dist-xz: distdir 409 tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz373 tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz 410 374 $(am__remove_distdir) 411 375 … … 438 402 *.tar.lzma*) \ 439 403 lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ 404 *.tar.lz*) \ 405 lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ 440 406 *.tar.xz*) \ 441 407 xz -dc $(distdir).tar.xz | $(am__untar) ;;\ … … 457 423 && $(am__cd) $(distdir)/_build \ 458 424 && ../configure --srcdir=.. --prefix="$$dc_install_base" \ 425 $(AM_DISTCHECK_CONFIGURE_FLAGS) \ 459 426 $(DISTCHECK_CONFIGURE_FLAGS) \ 460 427 && $(MAKE) $(AM_MAKEFLAGS) \ … … 485 452 sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' 486 453 distuninstallcheck: 487 @$(am__cd) '$(distuninstallcheck_dir)' \ 488 && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ 454 @test -n '$(distuninstallcheck_dir)' || { \ 455 echo 'ERROR: trying to run $@ with an empty' \ 456 '$$(distuninstallcheck_dir)' >&2; \ 457 exit 1; \ 458 }; \ 459 $(am__cd) '$(distuninstallcheck_dir)' || { \ 460 echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ 461 exit 1; \ 462 }; \ 463 test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ 489 464 || { echo "ERROR: files left after uninstall:" ; \ 490 465 if test -n "$(DESTDIR)"; then \ … … 517 492 installcheck: installcheck-am 518 493 install-strip: 519 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 520 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 521 `test -z '$(STRIP)' || \ 522 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install 494 if test -z '$(STRIP)'; then \ 495 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 496 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 497 install; \ 498 else \ 499 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 500 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 501 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ 502 fi 523 503 mostlyclean-generic: 524 504 … … 605 585 .PHONY: all all-am all-local am--refresh check check-am check-local \ 606 586 clean clean-generic clean-local dist dist-all dist-bzip2 \ 607 dist-gzip dist-lz ma dist-shar dist-tarZ dist-xz dist-zip\608 dist check distclean distclean-generic distcleancheck distdir\609 dist uninstallcheck dvi dvi-am html html-am info info-am\610 in stall install-am install-data install-data-am \587 dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \ 588 dist-zip distcheck distclean distclean-generic distcleancheck \ 589 distdir distuninstallcheck dvi dvi-am html html-am info \ 590 info-am install install-am install-data install-data-am \ 611 591 install-data-local install-dvi install-dvi-am install-exec \ 612 592 install-exec-am install-exec-local install-html \ … … 619 599 620 600 601 export NETX_DIR = $(abs_top_builddir)/netx.build 602 export NETX_SRCDIR = $(abs_top_srcdir)/netx 603 export NETX_RESOURCE_DIR=$(NETX_SRCDIR)/net/sourceforge/jnlp/resources 604 export NETX_EXTRA_DIR=$(abs_top_srcdir)/extra/net/sourceforge/javaws/about/resources 605 export NETX_EXTRA_DIST_DIR=$(abs_top_builddir)/extra-lib/net/sourceforge/javaws/about/resources 606 607 export REPORT_STYLES_DIRNAME=report-styles 608 609 export TESTS_SRCDIR=$(abs_top_srcdir)/tests 610 export TESTS_DIR=$(abs_top_builddir)/tests.build 611 612 export NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit 613 export NETX_UNIT_TEST_DIR=$(TESTS_DIR)/netx/unit 614 615 export JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner 616 export JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner 617 618 export JNLP_TESTS_ENGINE_SRCDIR=$(TESTS_SRCDIR)/test-extensions 619 export JNLP_TESTS_ENGINE_TESTS_SRCDIR=$(TESTS_SRCDIR)/test-extensions-tests 620 export JNLP_TESTS_SRCDIR=$(TESTS_SRCDIR)/reproducers 621 export JNLP_TESTS_ENGINE_DIR=$(TESTS_DIR)/jnlp_testsengine 622 export JNLP_TESTS_ENGINE_TESTS_DIR=$(TESTS_DIR)/netx/jnlp_testsengine_tests 623 export JNLP_TESTS_SERVER_DEPLOYDIR=$(TESTS_DIR)/jnlp_test_server 624 export JNLP_TESTS_DIR=$(TESTS_DIR)/jnlp_tests 625 export PRIVATE_KEYSTORE_NAME=teststore.ks 626 export PRIVATE_KEYSTORE_PASS=123456789 627 export EXPORTED_TEST_CERT_PREFIX=icedteatests 628 export EXPORTED_TEST_CERT_SUFFIX=crt 629 export TEST_CERT_ALIAS=icedteaweb 630 export PUBLIC_KEYSTORE=${HOME}/.icedtea/security/trusted.certs 631 export PUBLIC_KEYSTORE_PASS=changeit 632 633 export JUNIT_RUNNER_JAR=$(abs_top_builddir)/junit-runner.jar 634 export UNIT_CLASS_NAMES = $(abs_top_builddir)/unit_class_names 635 export REPRODUCERS_CLASS_NAMES = $(abs_top_builddir)/reproducers_class_names 636 export REPRODUCERS_CLASS_WHITELIST = $(abs_top_srcdir)/netx-dist-tests-whitelist 637 export EMMA_JAVA_ARGS=-Xmx2G 638 export EMMA_MODIFIED_FILES=tests-output.xml ServerAccess-logs.xml stdout.log stderr.log all.log 639 export EMMA_BACKUP_SUFFIX=_noEmma 640 export EMMA_SUFFIX=_withEmma 641 export META_MANIFEST = META-INF/MANIFEST.MF 642 export SIGNED_REPRODUCERS=signed 643 export SIMPLE_REPRODUCERS=simple 644 export CUSTOM_REPRODUCERS=custom 645 export ALL_NONCUSTOM_REPRODUCERS=$(SIMPLE_REPRODUCERS) $(SIGNED_REPRODUCERS) 646 export ALL_REPRODUCERS=$(ALL_NONCUSTOM_REPRODUCERS) $(CUSTOM_REPRODUCERS) 647 648 # linking variables 649 export PLUGIN_LINK_NAME=libjavaplugin.so 650 export MOZILLA_LOCAL_PLUGINDIR=${HOME}/.mozilla/plugins 651 export MOZILLA_GLOBAL64_PLUGINDIR=/usr/lib64/mozilla/plugins 652 export MOZILLA_GLOBAL32_PLUGINDIR=/usr/lib/mozilla/plugins 653 export OPERA_GLOBAL64_PLUGINDIR=/usr/lib64/opera/plugins 654 export OPERA_GLOBAL32_PLUGINDIR=/usr/lib/opera/plugins 655 export BUILT_PLUGIN_LIBRARY=IcedTeaPlugin.so 656 export MOZILLA_LOCAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origU 657 export MOZILLA_GLOBAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origMG 658 export OPERA_GLOBAL_BACKUP_FILE=${HOME}/$(PLUGIN_LINK_NAME).origOG 659 export MOZILLA_FAMILY_TEST= "$(FIREFOX)" != "" -o "$(CHROMIUM)" != "" -o "$(CHROME)" != "" -o "$(MIDORI)" != "" -o "$(EPIPHANY)" != "" 660 # end of linking variables 661 662 # Build directories 663 664 export BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0 665 666 export RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar$(RHINO_RUNTIME):$(BOOT_DIR)/jre/lib/resources.jar 667 668 # Flags 669 export IT_CFLAGS=$(CFLAGS) $(ARCHFLAG) 670 export IT_JAVAC_SETTINGS=-g -encoding utf-8 $(JAVACFLAGS) $(MEMORY_LIMIT) $(PREFER_SOURCE) 671 export IT_LANGUAGE_SOURCE_VERSION=6 672 export IT_CLASS_TARGET_VERSION=6 673 export IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -source $(IT_LANGUAGE_SOURCE_VERSION) -target $(IT_CLASS_TARGET_VERSION) 674 675 # 676 # We need the jars in bootclasspath for a couple of reasons 677 # - we use classes (in the sun.applet package) loaded by the bootclassloader 678 # using another classloader to load classes from the same package causes an 679 # IllegalAccessException 680 # - we want full privileges 681 # 682 export LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)" 683 export PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"' 684 685 # Fake update version to work with the Deployment Toolkit script used by Oracle 686 # http://download.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html 687 export JDK_UPDATE_VERSION=50 688 689 # Sources list 690 691 export PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java 692 693 export NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \ 694 net.sourceforge.jnlp.cache net.sourceforge.jnlp.config \ 695 net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \ 696 net.sourceforge.jnlp.runtime net.sourceforge.jnlp.security \ 697 net.sourceforge.jnlp.security.viewer net.sourceforge.jnlp.services \ 698 net.sourceforge.jnlp.tools net.sourceforge.jnlp.util 699 700 # Conditional defintions 701 @ENABLE_PLUGIN_TRUE@export ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin 702 @ENABLE_PLUGIN_TRUE@export LIVECONNECT_DIR = netscape sun/applet 703 @ENABLE_PLUGIN_TRUE@export PLUGIN_DIR=$(abs_top_builddir)/plugin/icedteanp 704 @ENABLE_PLUGIN_TRUE@export PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp 705 @ENABLE_PLUGIN_TRUE@export LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java 706 @ENABLE_PLUGIN_TRUE@export ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) stamps/liveconnect-dist.stamp 707 @ENABLE_PLUGIN_TRUE@export PLUGIN_PKGS = sun.applet netscape.security netscape.javascript 708 709 export PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION) 710 711 export EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in extra launcher \ 712 itweb-settings.desktop.in $(top_srcdir)/tests 713 714 # reproducers `D`shortcuts 715 export DTEST_SERVER=-Dtest.server.dir=$(JNLP_TESTS_SERVER_DEPLOYDIR) 716 export DJAVAWS_BUILD=-Djavaws.build.bin=$(DESTDIR)$(bindir)/$(javaws) 717 export DBROWSERS=-Dused.browsers=$(FIREFOX):$(CHROMIUM):$(CHROME):$(OPERA):$(MIDORI):$(EPIPHANY) 718 export REPRODUCERS_DPARAMETERS= $(DTEST_SERVER) $(DJAVAWS_BUILD) $(DBROWSERS) $(BROWSER_TESTS_MODIFICATION) 719 # end of `D`shortcuts 720 721 #exported autoconf copies 722 export EXPORTED_JAVAC=$(BOOT_DIR)/bin/javac 723 621 724 # Top-Level Targets 622 725 # ================= … … 627 730 check-local: $(RHINO_TESTS) $(JUNIT_TESTS) 628 731 629 clean-local: clean-netx clean-plugin clean-liveconnect clean-extra clean-bootstrap-directory\630 clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-tests 732 clean-local: clean-netx clean-plugin clean-liveconnect clean-extra \ 733 clean-native-ecj clean-launchers clean-desktop-files clean-docs clean-tests clean-bootstrap-directory 631 734 if [ -e stamps ] ; then \ 632 735 rmdir stamps ; \ … … 635 738 .PHONY: clean-IcedTeaPlugin clean-add-netx clean-add-netx-debug clean-add-plugin clean-add-plugin-debug \ 636 739 clean-bootstrap-directory clean-native-ecj clean-desktop-files clean-netx-docs clean-docs clean-plugin-docs \ 637 clean-tests check-local clean-launchers check-pac-functions run-netx-unit-testsclean-netx-tests \740 clean-tests check-local clean-launchers stamps/check-pac-functions.stamp stamps/run-netx-unit-tests.stamp clean-netx-tests \ 638 741 clean-junit-runner clean-netx-unit-tests 639 742 640 743 install-exec-local: 641 744 ${mkinstalldirs} $(DESTDIR)$(bindir) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/ $(DESTDIR)$(libdir) 642 @ENABLE_PLUGIN_TRUE@ ${INSTALL_PROGRAM} $(PLUGIN_DIR)/ IcedTeaPlugin.so$(DESTDIR)$(libdir)745 @ENABLE_PLUGIN_TRUE@ ${INSTALL_PROGRAM} $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) $(DESTDIR)$(libdir) 643 746 @ENABLE_PLUGIN_TRUE@ ${INSTALL_DATA} $(abs_top_builddir)/liveconnect/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar 644 747 ${INSTALL_DATA} $(NETX_DIR)/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar … … 664 767 665 768 uninstall-local: 666 rm -f $(DESTDIR)$(libdir)/ IcedTeaPlugin.so769 rm -f $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) 667 770 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar 668 771 rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar … … 678 781 @ENABLE_PLUGIN_TRUE@ cd $(PLUGIN_DIR) && \ 679 782 @ENABLE_PLUGIN_TRUE@ $(CXX) $(CXXFLAGS) \ 783 @ENABLE_PLUGIN_TRUE@ $(DEFS) $(VERSION_DEFS) \ 680 784 @ENABLE_PLUGIN_TRUE@ -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ 681 785 @ENABLE_PLUGIN_TRUE@ -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ … … 690 794 @ENABLE_PLUGIN_TRUE@ -fPIC -o $@ -c $< 691 795 692 @ENABLE_PLUGIN_TRUE@$(PLUGIN_DIR)/ IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS))796 @ENABLE_PLUGIN_TRUE@$(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY): $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) 693 797 @ENABLE_PLUGIN_TRUE@ cd $(PLUGIN_DIR) && \ 694 798 @ENABLE_PLUGIN_TRUE@ $(CXX) $(CXXFLAGS) \ … … 701 805 @ENABLE_PLUGIN_TRUE@clean-IcedTeaPlugin: 702 806 @ENABLE_PLUGIN_TRUE@ rm -f $(PLUGIN_DIR)/*.o 703 @ENABLE_PLUGIN_TRUE@ rm -f $(PLUGIN_DIR)/ IcedTeaPlugin.so807 @ENABLE_PLUGIN_TRUE@ rm -f $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) 704 808 @ENABLE_PLUGIN_TRUE@ if [ $(abs_top_srcdir) != $(abs_top_builddir) ]; then \ 705 809 @ENABLE_PLUGIN_TRUE@ if [ -e $(abs_top_builddir)/plugin/icedteanp ] ; then \ … … 898 1002 fi 899 1003 900 check-pac-functions: stamps/bootstrap-directory.stamp1004 stamps/check-pac-functions.stamp: stamps/bootstrap-directory.stamp 901 1005 ./jrunscript $(abs_top_srcdir)/tests/netx/pac/pac-funcs-test.js \ 902 $$(readlink -f $(abs_top_srcdir)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js) 1006 $$(readlink -f $(abs_top_srcdir)/netx/net/sourceforge/jnlp/runtime/pac-funcs.js) ; \ 1007 mkdir -p stamps && \ 1008 touch $@ 903 1009 904 1010 junit-runner-source-files.txt: 905 1011 find $(JUNIT_RUNNER_SRCDIR) -name '*.java' | sort > $@ 906 1012 907 $(JUNIT_RUNNER_JAR): junit-runner-source-files.txt 1013 $(JUNIT_RUNNER_JAR): junit-runner-source-files.txt stamps/netx-dist-tests-compile.stamp 908 1014 mkdir -p $(JUNIT_RUNNER_DIR) && \ 909 1015 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 910 1016 -d $(JUNIT_RUNNER_DIR) \ 911 -classpath $(JUNIT_JAR) \1017 -classpath $(JUNIT_JAR):$(JNLP_TESTS_ENGINE_DIR) \ 912 1018 @junit-runner-source-files.txt && \ 913 1019 $(BOOT_DIR)/bin/jar cf $@ -C $(JUNIT_RUNNER_DIR) . 914 1020 1021 stamps/junit-jnlp-dist-dirs: junit-jnlp-dist-simple.txt stamps/junit-jnlp-dist-signed.stamp junit-jnlp-dist-custom.txt 1022 mkdir -p $(JNLP_TESTS_SERVER_DEPLOYDIR) 1023 mkdir -p $(JNLP_TESTS_DIR) 1024 touch $@ 1025 1026 junit-jnlp-dist-custom.txt: 1027 cd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/ ; \ 1028 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@ 1029 1030 junit-jnlp-dist-simple.txt: 1031 cd $(JNLP_TESTS_SRCDIR)/simple/ ; \ 1032 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@ 1033 1034 stamps/junit-jnlp-dist-signed.stamp: 1035 types=($(SIGNED_REPRODUCERS)) ; \ 1036 for which in "$${types[@]}" ; do \ 1037 pushd $(JNLP_TESTS_SRCDIR)/$$which/ ; \ 1038 find . -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/junit-jnlp-dist-$$which.txt ; \ 1039 popd ; \ 1040 done ; \ 1041 mkdir -p stamps && \ 1042 touch $@ 1043 1044 stamps/netx-dist-tests-prepare-reproducers.stamp: stamps/junit-jnlp-dist-dirs 1045 types=($(ALL_NONCUSTOM_REPRODUCERS)); \ 1046 for which in "$${types[@]}" ; do \ 1047 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1048 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1049 IFS="$$IFS_BACKUP" ; \ 1050 for dir in "$${simpleReproducers[@]}" ; do \ 1051 echo "processing: $$dir" ; \ 1052 mkdir -p "$(JNLP_TESTS_DIR)/$$dir" ; \ 1053 if [ -e "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ]; then \ 1054 d=`pwd` ; \ 1055 cd "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ; \ 1056 srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \ 1057 notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \ 1058 $(BOOT_DIR)/bin/javac -cp $(NETX_DIR)/lib/classes.jar -d "$(JNLP_TESTS_DIR)/$$dir/" $$srcFiles ; \ 1059 if [ -n "$$notSrcFiles" ] ; then \ 1060 cp -R --parents $$notSrcFiles "$(JNLP_TESTS_DIR)/$$dir/" ; \ 1061 fi ; \ 1062 cd "$(JNLP_TESTS_DIR)/$$dir/" ; \ 1063 if [ -f $(META_MANIFEST) ]; \ 1064 then \ 1065 $(BOOT_DIR)/bin/jar cfm "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $(META_MANIFEST) * ; \ 1066 else \ 1067 $(BOOT_DIR)/bin/jar cf "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \ 1068 fi; \ 1069 cd "$$d" ; \ 1070 fi; \ 1071 done ; \ 1072 done ; \ 1073 mkdir -p stamps && \ 1074 touch $@ 1075 1076 stamps/netx-dist-tests-sign-some-reproducers.stamp: stamps/netx-dist-tests-prepare-reproducers.stamp 1077 keystore=$(abs_top_builddir)/$(PRIVATE_KEYSTORE_NAME); \ 1078 types=($(SIGNED_REPRODUCERS)) ; \ 1079 for which in "$${types[@]}" ; do \ 1080 tcaw=$(TEST_CERT_ALIAS)_$$which ; \ 1081 $(BOOT_DIR)/bin/keytool -genkey -alias $$tcaw -keystore $$keystore -keypass $(PRIVATE_KEYSTORE_PASS) -storepass $(PRIVATE_KEYSTORE_PASS) -dname "cn=$$tcaw, ou=$$tcaw, o=$$tcaw, c=$$tcaw" ; \ 1082 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1083 signedReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1084 IFS="$$IFS_BACKUP" ; \ 1085 for dir in "$${signedReproducers[@]}" ; do \ 1086 $(BOOT_DIR)/bin/jarsigner -keystore $$keystore -storepass $(PRIVATE_KEYSTORE_PASS) -keypass $(PRIVATE_KEYSTORE_PASS) "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $$tcaw ; \ 1087 done ; \ 1088 done ; \ 1089 mkdir -p stamps && \ 1090 touch $@ 1091 1092 stamps/change-dots-to-paths.stamp: stamps/netx-dist-tests-sign-some-reproducers.stamp 1093 pushd $(JNLP_TESTS_SERVER_DEPLOYDIR); \ 1094 types=($(ALL_NONCUSTOM_REPRODUCERS)); \ 1095 for which in "$${types[@]}" ; do \ 1096 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1097 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1098 IFS="$$IFS_BACKUP" ; \ 1099 for dir in "$${simpleReproducers[@]}" ; do \ 1100 if test "$${dir:0:1}" = "." ; then \ 1101 echo "reproducer $$dir starts with dot. It is forbidden" ; \ 1102 exit 5; \ 1103 fi; \ 1104 if test "$${dir:(-1)}" = "." ; then \ 1105 echo "reproducer $$dir ends with dot. It is forbidden" ; \ 1106 exit 5; \ 1107 fi; \ 1108 q=`expr index "$$dir" .`; \ 1109 r=$$? ; \ 1110 if [ $$r = 0 ]; then \ 1111 slashed_dir="./$${dir//.//}" ; \ 1112 path="`dirname $$slashed_dir`" ; \ 1113 file="`basename $$slashed_dir`.jar" ; \ 1114 echo "copying $$dir.jar to $$path as $$file" ; \ 1115 mkdir --parents $$path ; \ 1116 cp $$dir".jar" "$$path"/"$$file" ; \ 1117 fi ; \ 1118 done ; \ 1119 done ; \ 1120 popd ; \ 1121 mkdir -p stamps && \ 1122 touch $@ 1123 1124 #this always tries to remove previous testcert 1125 #the code is copypasted from netx-dist-tests-remove-cert-from-public, because 1126 #with depending to not stamped target we always have to rerun reproducers targets 1127 stamps/exported-test-certs.stamp: stamps/change-dots-to-paths.stamp 1128 -types=($(SIGNED_REPRODUCERS)) ; \ 1129 for which in "$${types[@]}" ; do \ 1130 $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) ; \ 1131 done ; 1132 types=($(SIGNED_REPRODUCERS)) ; \ 1133 for which in "$${types[@]}" ; do \ 1134 keytool -export -alias $(TEST_CERT_ALIAS)_$$which -file $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) -storepass $(PRIVATE_KEYSTORE_PASS) -keystore $(PRIVATE_KEYSTORE_NAME) ; \ 1135 done ; 1136 mkdir -p stamps && \ 1137 touch $@ 1138 1139 stamps/netx-dist-tests-import-cert-to-public: stamps/exported-test-certs.stamp 1140 types=($(SIGNED_REPRODUCERS)) ; \ 1141 for which in "$${types[@]}" ; do \ 1142 yes | $(BOOT_DIR)/bin/keytool -import -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) -file $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) ;\ 1143 done ; 1144 mkdir -p stamps && \ 1145 touch $@ 1146 1147 netx-dist-tests-remove-cert-from-public: 1148 -types=($(SIGNED_REPRODUCERS)) ; \ 1149 for which in "$${types[@]}" ; do \ 1150 $(BOOT_DIR)/bin/keytool -delete -alias $(TEST_CERT_ALIAS)_$$which -keystore $(PUBLIC_KEYSTORE) -storepass $(PUBLIC_KEYSTORE_PASS) ; \ 1151 done ; 1152 -rm -rf stamps/netx-dist-tests-import-cert-to-public 1153 1154 netx-dist-tests-source-files.txt: 1155 find $(JNLP_TESTS_ENGINE_SRCDIR) -name '*.java' | sort > $@ 1156 1157 stamps/netx-dist-tests-compile.stamp: stamps/netx.stamp \ 1158 stamps/junit-jnlp-dist-dirs netx-dist-tests-source-files.txt 1159 mkdir -p $(JNLP_TESTS_ENGINE_DIR); 1160 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 1161 -d $(JNLP_TESTS_ENGINE_DIR) \ 1162 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \ 1163 @netx-dist-tests-source-files.txt && \ 1164 mkdir -p stamps && \ 1165 touch $@ 1166 1167 netx-dist-tests-tests-source-files.txt: 1168 find $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) -name '*.java' | sort > $@ 1169 1170 stamps/netx-dist-tests-tests-compile.stamp: stamps/junit-jnlp-dist-dirs netx-dist-tests-tests-source-files.txt stamps/netx-dist-tests-compile.stamp 1171 mkdir -p $(JNLP_TESTS_ENGINE_TESTS_DIR); 1172 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 1173 -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \ 1174 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \ 1175 @netx-dist-tests-tests-source-files.txt && \ 1176 mkdir -p stamps && \ 1177 touch $@ 1178 1179 stamps/netx-dist-tests-compile-testcases.stamp: stamps/netx.stamp stamps/junit-jnlp-dist-dirs \ 1180 netx-dist-tests-source-files.txt stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-tests-compile.stamp 1181 types=($(ALL_REPRODUCERS)); \ 1182 for which in "$${types[@]}" ; do \ 1183 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1184 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1185 IFS="$$IFS_BACKUP" ; \ 1186 for dir in "$${simpleReproducers[@]}" ; do \ 1187 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 1188 -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \ 1189 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \ 1190 "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/"* ; \ 1191 done ; \ 1192 done ; \ 1193 mkdir -p stamps && \ 1194 touch $@ 1195 1196 stamps/netx-dist-tests-copy-resources.stamp: stamps/junit-jnlp-dist-dirs 1197 types=($(ALL_REPRODUCERS)); \ 1198 for which in "$${types[@]}" ; do \ 1199 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1200 simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1201 IFS="$$IFS_BACKUP" ; \ 1202 for dir in "$${simpleReproducers[@]}" ; do \ 1203 cp -R "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/resources/"* $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \ 1204 done ; \ 1205 done ; \ 1206 mkdir -p stamps && \ 1207 touch $@ 1208 1209 $(REPRODUCERS_CLASS_NAMES): $(REPRODUCERS_CLASS_WHITELIST) 1210 whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \ 1211 cd $(JNLP_TESTS_ENGINE_TESTS_DIR) ; \ 1212 class_names= ; \ 1213 for test in `find -type f` ; do \ 1214 class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \ 1215 class_name=`echo $$class_name | sed -e 's|/|.|g' ` ; \ 1216 INLCUDE="NO" ; \ 1217 for x in $$whiteListed ; do \ 1218 q=`expr match "$$class_name" "$$x"`; \ 1219 r=$$? ; \ 1220 if [ $$r = 0 ]; then \ 1221 echo "$$class_name will be included in reproducers testcases because of $$x pattern in $(REPRODUCERS_CLASS_WHITELIST). Matching was $$q"; \ 1222 INLCUDE="YES" ; \ 1223 fi; \ 1224 done; \ 1225 if [ "$$INLCUDE" = "YES" ]; then \ 1226 class_names="$$class_names $$class_name" ; \ 1227 else \ 1228 echo "$$class_name had no match in $(REPRODUCERS_CLASS_WHITELIST). Excluding"; \ 1229 fi; \ 1230 done ; \ 1231 echo $$class_names > $(REPRODUCERS_CLASS_NAMES) 1232 1233 stamps/run-netx-dist-tests.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \ 1234 javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop \ 1235 stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \ 1236 stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-compile-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/netx-dist-tests-copy-resources.stamp\ 1237 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) stamps/process-custom-reproducers.stamp 1238 cd $(JNLP_TESTS_ENGINE_DIR) ; \ 1239 class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \ 1240 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):.:$(JNLP_TESTS_ENGINE_TESTS_DIR) \ 1241 $(BOOT_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \ 1242 -Xbootclasspath:$(RUNTIME) CommandLine $$class_names 1243 @WITH_XSLTPROC_TRUE@ $(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(JNLP_TESTS_ENGINE_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_reproducers.html 1244 @WITH_XSLTPROC_TRUE@ $(XSLTPROC) --stringparam logs logs_reproducers.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(JNLP_TESTS_ENGINE_DIR)/tests-output.xml > $(TESTS_DIR)/index_reproducers.html 1245 touch $@ 1246 1247 stamps/process-custom-reproducers.stamp: stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \ 1248 stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-compile-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/netx-dist-tests-copy-resources.stamp\ 1249 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) 1250 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1251 customReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-custom.txt `); \ 1252 IFS="$$IFS_BACKUP" ; \ 1253 for dir in "$${customReproducers[@]}" ; do \ 1254 pushd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/$$dir/srcs; \ 1255 $(MAKE) prepare-reproducer ; \ 1256 popd ; \ 1257 done ; \ 1258 mkdir -p stamps && \ 1259 touch $@ 1260 1261 clean-custom-reproducers: junit-jnlp-dist-custom.txt 1262 . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1263 customReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-custom.txt `); \ 1264 IFS="$$IFS_BACKUP" ; \ 1265 for dir in "$${customReproducers[@]}" ; do \ 1266 pushd $(JNLP_TESTS_SRCDIR)/custom/$$dir/srcs; \ 1267 $(MAKE) clean-reproducer ; \ 1268 popd ; \ 1269 done ; \ 1270 rm -f stamps/process-custom-reproducers.stamp 1271 1272 #for global-links you must be root, for opera there do not exists user-links 1273 #although this targets will indeed create symbolic links to enable 1274 #icedtea-web plugin inside browser it is intended for testing purposes 1275 @ENABLE_PLUGIN_TRUE@stamps/user-links.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp \ 1276 @ENABLE_PLUGIN_TRUE@ launcher.build/$(javaws) stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) 1277 @ENABLE_PLUGIN_TRUE@ if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 1278 @ENABLE_PLUGIN_TRUE@ if [ -e $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ] ; then \ 1279 @ENABLE_PLUGIN_TRUE@ mv -f $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) $(MOZILLA_LOCAL_BACKUP_FILE) ; \ 1280 @ENABLE_PLUGIN_TRUE@ echo "$(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) backed up as $(MOZILLA_LOCAL_BACKUP_FILE)" ; \ 1281 @ENABLE_PLUGIN_TRUE@ else \ 1282 @ENABLE_PLUGIN_TRUE@ echo "$(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) doesn't exists, nothing to be backed up to $(MOZILLA_LOCAL_BACKUP_FILE)" ; \ 1283 @ENABLE_PLUGIN_TRUE@ fi ; \ 1284 @ENABLE_PLUGIN_TRUE@ pushd $(MOZILLA_LOCAL_PLUGINDIR) ; \ 1285 @ENABLE_PLUGIN_TRUE@ ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ 1286 @ENABLE_PLUGIN_TRUE@ echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ 1287 @ENABLE_PLUGIN_TRUE@ popd ; \ 1288 @ENABLE_PLUGIN_TRUE@ fi ; \ 1289 @ENABLE_PLUGIN_TRUE@ touch $@ 1290 1291 @ENABLE_PLUGIN_TRUE@restore-user-links: 1292 @ENABLE_PLUGIN_TRUE@ if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 1293 @ENABLE_PLUGIN_TRUE@ if [ -e $(MOZILLA_LOCAL_BACKUP_FILE) ] ; then \ 1294 @ENABLE_PLUGIN_TRUE@ mv -f $(MOZILLA_LOCAL_BACKUP_FILE) $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ; \ 1295 @ENABLE_PLUGIN_TRUE@ echo "$(MOZILLA_LOCAL_BACKUP_FILE) restored as $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME)" ; \ 1296 @ENABLE_PLUGIN_TRUE@ else \ 1297 @ENABLE_PLUGIN_TRUE@ rm -f $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ; \ 1298 @ENABLE_PLUGIN_TRUE@ echo "$(MOZILLA_LOCAL_BACKUP_FILE) do not exists, nothing to be restored. $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) removed" ; \ 1299 @ENABLE_PLUGIN_TRUE@ fi ; \ 1300 @ENABLE_PLUGIN_TRUE@ fi ; 1301 @ENABLE_PLUGIN_TRUE@ if [ -e stamps/user-links.stamp ] ; then \ 1302 @ENABLE_PLUGIN_TRUE@ rm -f stamps/user-links.stamp ; \ 1303 @ENABLE_PLUGIN_TRUE@ fi 1304 1305 @ENABLE_PLUGIN_TRUE@stamps/global-links.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \ 1306 @ENABLE_PLUGIN_TRUE@ stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) 1307 @ENABLE_PLUGIN_TRUE@ if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 1308 @ENABLE_PLUGIN_TRUE@ dir="$(MOZILLA_GLOBAL32_PLUGINDIR)" ; \ 1309 @ENABLE_PLUGIN_TRUE@ arch=`arch` ; \ 1310 @ENABLE_PLUGIN_TRUE@ if [ "$$arch" = "x86_64" ] ; then \ 1311 @ENABLE_PLUGIN_TRUE@ dir="$(MOZILLA_GLOBAL64_PLUGINDIR)" ; \ 1312 @ENABLE_PLUGIN_TRUE@ fi ; \ 1313 @ENABLE_PLUGIN_TRUE@ if [ -e "$$dir"/$(PLUGIN_LINK_NAME) ] ; then \ 1314 @ENABLE_PLUGIN_TRUE@ mv -f "$$dir"/$(PLUGIN_LINK_NAME) $(MOZILLA_GLOBAL_BACKUP_FILE) ; \ 1315 @ENABLE_PLUGIN_TRUE@ echo "$$dir/$(PLUGIN_LINK_NAME) backed up as $(MOZILLA_GLOBAL_BACKUP_FILE)" ; \ 1316 @ENABLE_PLUGIN_TRUE@ else \ 1317 @ENABLE_PLUGIN_TRUE@ echo "$$dir/$(PLUGIN_LINK_NAME) do not exists, nothing to be backed up to $(MOZILLA_GLOBAL_BACKUP_FILE)" ; \ 1318 @ENABLE_PLUGIN_TRUE@ fi ; \ 1319 @ENABLE_PLUGIN_TRUE@ pushd "$$dir" ; \ 1320 @ENABLE_PLUGIN_TRUE@ ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ 1321 @ENABLE_PLUGIN_TRUE@ echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ 1322 @ENABLE_PLUGIN_TRUE@ popd ; \ 1323 @ENABLE_PLUGIN_TRUE@ fi ; 1324 @ENABLE_PLUGIN_TRUE@ if [ "$(OPERA)" != "" ] ; then \ 1325 @ENABLE_PLUGIN_TRUE@ dir="$(OPERA_GLOBAL32_PLUGINDIR)" ; \ 1326 @ENABLE_PLUGIN_TRUE@ arch=`arch` ; \ 1327 @ENABLE_PLUGIN_TRUE@ if [ "$$arch" = "x86_64" ] ; then \ 1328 @ENABLE_PLUGIN_TRUE@ dir="$(OPERA_GLOBAL64_PLUGINDIR)" ; \ 1329 @ENABLE_PLUGIN_TRUE@ fi ; \ 1330 @ENABLE_PLUGIN_TRUE@ if [ -e "$$dir"/$(PLUGIN_LINK_NAME) ] ; then \ 1331 @ENABLE_PLUGIN_TRUE@ mv -f "$$dir"/$(PLUGIN_LINK_NAME) $(OPERA_GLOBAL_BACKUP_FILE) ; \ 1332 @ENABLE_PLUGIN_TRUE@ echo "$$dir/$(PLUGIN_LINK_NAME) backed up as $(OPERA_GLOBAL_BACKUP_FILE) "; \ 1333 @ENABLE_PLUGIN_TRUE@ else \ 1334 @ENABLE_PLUGIN_TRUE@ echo "$$dir/$(PLUGIN_LINK_NAME) do not exists, nothing to be backed up to $(OPERA_GLOBAL_BACKUP_FILE) "; \ 1335 @ENABLE_PLUGIN_TRUE@ fi ; \ 1336 @ENABLE_PLUGIN_TRUE@ pushd "$$dir" ; \ 1337 @ENABLE_PLUGIN_TRUE@ ln -s $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $(PLUGIN_LINK_NAME) ; \ 1338 @ENABLE_PLUGIN_TRUE@ echo "$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) linked as $$PWD/$(PLUGIN_LINK_NAME)" ; \ 1339 @ENABLE_PLUGIN_TRUE@ popd ; \ 1340 @ENABLE_PLUGIN_TRUE@ fi ; \ 1341 @ENABLE_PLUGIN_TRUE@ touch $@ 1342 1343 @ENABLE_PLUGIN_TRUE@restore-global-links: 1344 @ENABLE_PLUGIN_TRUE@ if [ $(MOZILLA_FAMILY_TEST) ] ; then \ 1345 @ENABLE_PLUGIN_TRUE@ dir="$(MOZILLA_GLOBAL32_PLUGINDIR)" ; \ 1346 @ENABLE_PLUGIN_TRUE@ arch=`arch` ; \ 1347 @ENABLE_PLUGIN_TRUE@ if [ "$$arch" = "x86_64" ] ; then \ 1348 @ENABLE_PLUGIN_TRUE@ dir="$(MOZILLA_GLOBAL64_PLUGINDIR)" ; \ 1349 @ENABLE_PLUGIN_TRUE@ fi ; \ 1350 @ENABLE_PLUGIN_TRUE@ if [ -e $(MOZILLA_GLOBAL_BACKUP_FILE) ] ; then \ 1351 @ENABLE_PLUGIN_TRUE@ mv -f $(MOZILLA_GLOBAL_BACKUP_FILE) "$$dir"/$(PLUGIN_LINK_NAME) ; \ 1352 @ENABLE_PLUGIN_TRUE@ echo "$(MOZILLA_GLOBAL_BACKUP_FILE) restored as $$dir/$(PLUGIN_LINK_NAME)" ; \ 1353 @ENABLE_PLUGIN_TRUE@ else \ 1354 @ENABLE_PLUGIN_TRUE@ rm -f "$$dir"/$(PLUGIN_LINK_NAME) ; \ 1355 @ENABLE_PLUGIN_TRUE@ echo "$(MOZILLA_GLOBAL_BACKUP_FILE) do not exists, nothing to be restored. $$dir/$(PLUGIN_LINK_NAME) removed" ; \ 1356 @ENABLE_PLUGIN_TRUE@ fi ; \ 1357 @ENABLE_PLUGIN_TRUE@ fi ; 1358 @ENABLE_PLUGIN_TRUE@ if [ "$(OPERA)" != "" ] ; then \ 1359 @ENABLE_PLUGIN_TRUE@ dir="$(OPERA_GLOBAL32_PLUGINDIR)" ; \ 1360 @ENABLE_PLUGIN_TRUE@ arch=`arch` ; \ 1361 @ENABLE_PLUGIN_TRUE@ if [ "$$arch" = "x86_64" ] ; then \ 1362 @ENABLE_PLUGIN_TRUE@ dir="$(OPERA_GLOBAL64_PLUGINDIR)" ; \ 1363 @ENABLE_PLUGIN_TRUE@ fi ; \ 1364 @ENABLE_PLUGIN_TRUE@ if [ -e $(OPERA_GLOBAL_BACKUP_FILE) ] ; then \ 1365 @ENABLE_PLUGIN_TRUE@ mv -f $(OPERA_GLOBAL_BACKUP_FILE) "$$dir"/$(PLUGIN_LINK_NAME) ; \ 1366 @ENABLE_PLUGIN_TRUE@ echo "$(OPERA_GLOBAL_BACKUP_FILE) restored as $$dir/$(PLUGIN_LINK_NAME)" ; \ 1367 @ENABLE_PLUGIN_TRUE@ else \ 1368 @ENABLE_PLUGIN_TRUE@ rm -f "$$dir"/$(PLUGIN_LINK_NAME) ; \ 1369 @ENABLE_PLUGIN_TRUE@ echo "$(OPERA_GLOBAL_BACKUP_FILE) do not exist, nothing to be restored. $$dir/$(PLUGIN_LINK_NAME) removed" ; \ 1370 @ENABLE_PLUGIN_TRUE@ fi ; \ 1371 @ENABLE_PLUGIN_TRUE@ fi ; 1372 @ENABLE_PLUGIN_TRUE@ if [ -e stamps/global-links.stamp ] ; then \ 1373 @ENABLE_PLUGIN_TRUE@ rm -f stamps/global-links.stamp ; \ 1374 @ENABLE_PLUGIN_TRUE@ fi 1375 915 1376 netx-unit-tests-source-files.txt: 916 1377 find $(NETX_UNIT_TEST_SRCDIR) -name '*.java' | sort > $@ 917 1378 918 1379 stamps/netx-unit-tests-compile.stamp: stamps/netx.stamp \ 919 netx-unit-tests-source-files.txt 1380 netx-unit-tests-source-files.txt stamps/netx-dist-tests-compile.stamp 920 1381 mkdir -p $(NETX_UNIT_TEST_DIR) && \ 921 1382 $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ 922 1383 -d $(NETX_UNIT_TEST_DIR) \ 923 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \1384 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \ 924 1385 @netx-unit-tests-source-files.txt && \ 925 1386 mkdir -p stamps && \ 926 1387 touch $@ 927 1388 928 run-netx-unit-tests: stamps/netx-unit-tests-compile.stamp \ 929 $(JUNIT_RUNNER_JAR) 930 cp {$(NETX_UNIT_TEST_SRCDIR),$(NETX_UNIT_TEST_DIR)}/net/sourceforge/jnlp/basic.jnlp 1389 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME): 1390 mkdir $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) 1391 cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.css $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ 1392 cp $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/*.js $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ 1393 1394 $(UNIT_CLASS_NAMES): 931 1395 cd $(NETX_UNIT_TEST_DIR) ; \ 932 1396 class_names= ; \ … … 936 1400 class_names="$$class_names $$class_name" ; \ 937 1401 done ; \ 938 echo $$class_names ; \ 939 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):. \ 940 $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names 941 942 clean-netx-tests: clean-netx-unit-tests clean-junit-runner 1402 echo $$class_names > $(UNIT_CLASS_NAMES); 1403 1404 stamps/run-netx-unit-tests.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR) \ 1405 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(UNIT_CLASS_NAMES) 1406 filename=" " ; \ 1407 cd $(NETX_UNIT_TEST_SRCDIR) ; \ 1408 for file in `find . -type f \! -iname "*.java"`; do\ 1409 filename=`echo $$file `; \ 1410 cp --parents $$filename $(NETX_UNIT_TEST_DIR) ; \ 1411 done ; \ 1412 cd $(NETX_UNIT_TEST_DIR) ; \ 1413 class_names=`cat $(UNIT_CLASS_NAMES)` ; \ 1414 CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(JNLP_TESTS_ENGINE_DIR):. \ 1415 $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names 1416 @WITH_XSLTPROC_TRUE@ $(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(NETX_UNIT_TEST_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_unit.html 1417 @WITH_XSLTPROC_TRUE@ $(XSLTPROC) --stringparam logs logs_unit.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(NETX_UNIT_TEST_DIR)/tests-output.xml > $(TESTS_DIR)/index_unit.html 1418 mkdir -p stamps && \ 1419 touch $@ 1420 1421 #warning, during this target tests.build/netx/unit/tests-output.xml is backup and rewriten (but not coresponding html file) 1422 #xml results run from emma sandbox, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored 1423 #you can add -ix "-*Test*" -ix "-*test*" to ignore all test cases from statistics 1424 stamps/run-unit-test-code-coverage.stamp: stamps/netx-unit-tests-compile.stamp $(JUNIT_RUNNER_JAR) \ 1425 $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(UNIT_CLASS_NAMES) 1426 @WITH_EMMA_TRUE@ cd $(NETX_UNIT_TEST_DIR) ; \ 1427 @WITH_EMMA_TRUE@ for file in $(EMMA_MODIFIED_FILES) ; do \ 1428 @WITH_EMMA_TRUE@ mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \ 1429 @WITH_EMMA_TRUE@ done ;\ 1430 @WITH_EMMA_TRUE@ class_names=`cat $(UNIT_CLASS_NAMES)` ; \ 1431 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -Xbootclasspath:$(RUNTIME) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emmarun \ 1432 @WITH_EMMA_TRUE@ -Dreport.html.out.encoding=UTF-8 \ 1433 @WITH_EMMA_TRUE@ -raw \ 1434 @WITH_EMMA_TRUE@ -sp $(NETX_SRCDIR) \ 1435 @WITH_EMMA_TRUE@ -sp $(NETX_UNIT_TEST_SRCDIR) \ 1436 @WITH_EMMA_TRUE@ -sp $(JUNIT_RUNNER_SRCDIR) \ 1437 @WITH_EMMA_TRUE@ -r html \ 1438 @WITH_EMMA_TRUE@ -r xml \ 1439 @WITH_EMMA_TRUE@ -cp $(NETX_DIR)/lib/classes.jar \ 1440 @WITH_EMMA_TRUE@ -cp $(JUNIT_JAR) \ 1441 @WITH_EMMA_TRUE@ -cp $(JUNIT_RUNNER_JAR) \ 1442 @WITH_EMMA_TRUE@ -cp $(BOOT_DIR)/jre/lib/rt.jar \ 1443 @WITH_EMMA_TRUE@ -cp $(BOOT_DIR)/jre/lib/jsse.jar \ 1444 @WITH_EMMA_TRUE@ -cp $(BOOT_DIR)/jre/lib/resources.jar \ 1445 @WITH_EMMA_TRUE@ -cp $(RHINO_RUNTIME) \ 1446 @WITH_EMMA_TRUE@ -cp $(JNLP_TESTS_ENGINE_DIR) \ 1447 @WITH_EMMA_TRUE@ -cp . \ 1448 @WITH_EMMA_TRUE@ -ix "-org.junit.*" \ 1449 @WITH_EMMA_TRUE@ -ix "-junit.*" \ 1450 @WITH_EMMA_TRUE@ CommandLine $$class_names ; \ 1451 @WITH_EMMA_TRUE@ for file in $(EMMA_MODIFIED_FILES) ; do \ 1452 @WITH_EMMA_TRUE@ mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_SUFFIX)" ; \ 1453 @WITH_EMMA_TRUE@ mv $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" $(NETX_UNIT_TEST_DIR)/$$file ; \ 1454 @WITH_EMMA_TRUE@ done ; 1455 @WITH_EMMA_FALSE@ echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ; 1456 @WITH_EMMA_FALSE@ exit 5 1457 touch $@ 1458 1459 #warning, during this target tests.build/netx/jnlp_testsengine/tests-output.xml is backup and rewriten (but not coresponding html file) 1460 #xml results run from emma sandbox, however, can be wrong, co the new tests-output.xml is then renamed and orginal one restored 1461 stamps/run-reproducers-test-code-coverage.stamp: stamps/run-netx-dist-tests.stamp $(REPRODUCERS_CLASS_NAMES) 1462 @WITH_EMMA_TRUE@ cd $(TESTS_DIR) ; \ 1463 @WITH_EMMA_TRUE@ for file in $(EMMA_MODIFIED_FILES) ; do \ 1464 @WITH_EMMA_TRUE@ mv $(JNLP_TESTS_ENGINE_DIR)/$$file $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \ 1465 @WITH_EMMA_TRUE@ done ;\ 1466 @WITH_EMMA_TRUE@ echo "backuping javaws and netx.jar in $(DESTDIR)" ; \ 1467 @WITH_EMMA_TRUE@ netx_backup=$(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx_backup.jar ; \ 1468 @WITH_EMMA_TRUE@ javaws_backup=$(DESTDIR)$(bindir)/javaws_backup ; \ 1469 @WITH_EMMA_TRUE@ mv $(DESTDIR)$(bindir)/javaws $$javaws_backup ; \ 1470 @WITH_EMMA_TRUE@ mv $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar $$netx_backup ; \ 1471 @WITH_EMMA_TRUE@ nw_bootclasspath="$(LAUNCHER_BOOTCLASSPATH):$(EMMA_JAR):$$netx_backup" ; \ 1472 @WITH_EMMA_TRUE@ instructed_dir=$(TESTS_DIR)/instr ; \ 1473 @WITH_EMMA_TRUE@ echo "instrumenting netx.jar from $$netx_backup through $$instructed_dir" ; \ 1474 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java -cp $(EMMA_JAR) emma instr -d $$instructed_dir -ip $$netx_backup ; \ 1475 @WITH_EMMA_TRUE@ pushd $$instructed_dir ; \ 1476 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/jar -cf $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar * ; \ 1477 @WITH_EMMA_TRUE@ popd ; \ 1478 @WITH_EMMA_TRUE@ rm -rf $$instructed_dir ; \ 1479 @WITH_EMMA_TRUE@ echo "patching $(javaws)" ; \ 1480 @WITH_EMMA_TRUE@ cat $$javaws_backup | sed "s,$(LAUNCHER_BOOTCLASSPATH),$$nw_bootclasspath," > $(DESTDIR)$(bindir)/$(javaws) ; \ 1481 @WITH_EMMA_TRUE@ chmod 777 $(DESTDIR)$(bindir)/$(javaws) ; \ 1482 @WITH_EMMA_TRUE@ testcases_srcs=( ) ; \ 1483 @WITH_EMMA_TRUE@ k=0 ; \ 1484 @WITH_EMMA_TRUE@ types=($(ALL_REPRODUCERS)); \ 1485 @WITH_EMMA_TRUE@ for which in "$${types[@]}" ; do \ 1486 @WITH_EMMA_TRUE@ . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1487 @WITH_EMMA_TRUE@ simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1488 @WITH_EMMA_TRUE@ IFS="$$IFS_BACKUP" ; \ 1489 @WITH_EMMA_TRUE@ for dir in "$${simpleReproducers[@]}" ; do \ 1490 @WITH_EMMA_TRUE@ testcases_srcs[k]="-sp" ; \ 1491 @WITH_EMMA_TRUE@ k=$$((k+1)) ; \ 1492 @WITH_EMMA_TRUE@ testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \ 1493 @WITH_EMMA_TRUE@ k=$$((k+1)) ; \ 1494 @WITH_EMMA_TRUE@ done ; \ 1495 @WITH_EMMA_TRUE@ done ; \ 1496 @WITH_EMMA_TRUE@ cd $(JNLP_TESTS_ENGINE_DIR) ; \ 1497 @WITH_EMMA_TRUE@ class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \ 1498 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java \ 1499 @WITH_EMMA_TRUE@ $(EMMA_JAVA_ARGS) \ 1500 @WITH_EMMA_TRUE@ $(REPRODUCERS_DPARAMETERS) \ 1501 @WITH_EMMA_TRUE@ -Xbootclasspath:$(RUNTIME) -cp $(EMMA_JAR) emmarun \ 1502 @WITH_EMMA_TRUE@ -raw \ 1503 @WITH_EMMA_TRUE@ -cp $(NETX_DIR)/lib/classes.jar \ 1504 @WITH_EMMA_TRUE@ -cp $(JUNIT_JAR) \ 1505 @WITH_EMMA_TRUE@ -cp $(JUNIT_RUNNER_JAR) \ 1506 @WITH_EMMA_TRUE@ -cp $(BOOT_DIR)/jre/lib/rt.jar \ 1507 @WITH_EMMA_TRUE@ -cp $(BOOT_DIR)/jre/lib/jsse.jar \ 1508 @WITH_EMMA_TRUE@ -cp $(BOOT_DIR)/jre/lib/resources.jar \ 1509 @WITH_EMMA_TRUE@ -cp $(RHINO_RUNTIME) \ 1510 @WITH_EMMA_TRUE@ -cp . \ 1511 @WITH_EMMA_TRUE@ -cp $(JNLP_TESTS_ENGINE_TESTS_DIR) \ 1512 @WITH_EMMA_TRUE@ -ix "-org.junit.*" \ 1513 @WITH_EMMA_TRUE@ -ix "-junit.*" \ 1514 @WITH_EMMA_TRUE@ CommandLine $$class_names ; \ 1515 @WITH_EMMA_TRUE@ mv $(JNLP_TESTS_ENGINE_DIR)/coverage.ec $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec ; \ 1516 @WITH_EMMA_TRUE@ mv $(JNLP_TESTS_ENGINE_DIR)/coverage.es $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \ 1517 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \ 1518 @WITH_EMMA_TRUE@ -in $(TESTS_DIR)/coverage.em \ 1519 @WITH_EMMA_TRUE@ -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec \ 1520 @WITH_EMMA_TRUE@ -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \ 1521 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emma report \ 1522 @WITH_EMMA_TRUE@ -Dreport.html.out.encoding=UTF-8 \ 1523 @WITH_EMMA_TRUE@ -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es \ 1524 @WITH_EMMA_TRUE@ -sp $(NETX_SRCDIR) \ 1525 @WITH_EMMA_TRUE@ -sp $(NETX_UNIT_TEST_SRCDIR) \ 1526 @WITH_EMMA_TRUE@ -sp $(JUNIT_RUNNER_SRCDIR) \ 1527 @WITH_EMMA_TRUE@ -sp $(JNLP_TESTS_ENGINE_SRCDIR) \ 1528 @WITH_EMMA_TRUE@ -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \ 1529 @WITH_EMMA_TRUE@ -r html \ 1530 @WITH_EMMA_TRUE@ -r xml \ 1531 @WITH_EMMA_TRUE@ "$${testcases_srcs[@]}" ; \ 1532 @WITH_EMMA_TRUE@ echo "restoring javaws and netx.jar in $(DESTDIR)" ; \ 1533 @WITH_EMMA_TRUE@ rm -f $(DESTDIR)$(bindir)/$(javaws) $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \ 1534 @WITH_EMMA_TRUE@ rm -f $(DESTDIR)$(bindir)/$(javaws); \ 1535 @WITH_EMMA_TRUE@ mv $$javaws_backup $(DESTDIR)$(bindir)/$(javaws); \ 1536 @WITH_EMMA_TRUE@ mv $$netx_backup $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \ 1537 @WITH_EMMA_TRUE@ for file in $(EMMA_MODIFIED_FILES) ; do \ 1538 @WITH_EMMA_TRUE@ mv $(JNLP_TESTS_ENGINE_DIR)/$$file $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_SUFFIX)" ; \ 1539 @WITH_EMMA_TRUE@ mv $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" $(JNLP_TESTS_ENGINE_DIR)/$$file ; \ 1540 @WITH_EMMA_TRUE@ done ;\ 1541 @WITH_EMMA_TRUE@ rm $(JNLP_TESTS_ENGINE_DIR)/coverage.txt ; 1542 @WITH_EMMA_FALSE@ echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ; 1543 @WITH_EMMA_FALSE@ exit 5 1544 touch $@ 1545 1546 run-test-code-coverage: run-unit-test-code-coverage run-reproducers-test-code-coverage 1547 @WITH_EMMA_TRUE@ cd $(TESTS_DIR) ; \ 1548 @WITH_EMMA_TRUE@ k=0 ; \ 1549 @WITH_EMMA_TRUE@ types=($(ALL_REPRODUCERS)); \ 1550 @WITH_EMMA_TRUE@ for which in "$${types[@]}" ; do \ 1551 @WITH_EMMA_TRUE@ . $(abs_top_srcdir)/NEW_LINE_IFS ; \ 1552 @WITH_EMMA_TRUE@ simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \ 1553 @WITH_EMMA_TRUE@ IFS="$$IFS_BACKUP" ; \ 1554 @WITH_EMMA_TRUE@ for dir in "$${simpleReproducers[@]}" ; do \ 1555 @WITH_EMMA_TRUE@ testcases_srcs[k]="-sp" ; \ 1556 @WITH_EMMA_TRUE@ k=$$((k+1)) ; \ 1557 @WITH_EMMA_TRUE@ testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \ 1558 @WITH_EMMA_TRUE@ k=$$((k+1)) ; \ 1559 @WITH_EMMA_TRUE@ done ; \ 1560 @WITH_EMMA_TRUE@ done ; \ 1561 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \ 1562 @WITH_EMMA_TRUE@ -in $(NETX_UNIT_TEST_DIR)/coverage.es \ 1563 @WITH_EMMA_TRUE@ -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \ 1564 @WITH_EMMA_TRUE@ $(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) -Demma.report.html.out.encoding=UTF-8 emma report \ 1565 @WITH_EMMA_TRUE@ -Dreport.html.out.encoding=UTF-8 \ 1566 @WITH_EMMA_TRUE@ -in $(TESTS_DIR)/coverage.es \ 1567 @WITH_EMMA_TRUE@ -in $(TESTS_DIR)/coverage.em \ 1568 @WITH_EMMA_TRUE@ -sp $(NETX_SRCDIR) \ 1569 @WITH_EMMA_TRUE@ -sp $(NETX_UNIT_TEST_SRCDIR) \ 1570 @WITH_EMMA_TRUE@ -sp $(JUNIT_RUNNER_SRCDIR) \ 1571 @WITH_EMMA_TRUE@ -sp $(JNLP_TESTS_ENGINE_SRCDIR) \ 1572 @WITH_EMMA_TRUE@ -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \ 1573 @WITH_EMMA_TRUE@ "$${testcases_srcs[@]}" \ 1574 @WITH_EMMA_TRUE@ -r html \ 1575 @WITH_EMMA_TRUE@ -r xml ; 1576 @WITH_EMMA_FALSE@ echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ; 1577 @WITH_EMMA_FALSE@ exit 5 1578 1579 clean-netx-tests: clean-netx-unit-tests clean-junit-runner clean-netx-dist-tests clean-test-code-coverage 943 1580 if [ -e $(TESTS_DIR)/netx ]; then \ 944 1581 rmdir $(TESTS_DIR)/netx ; \ … … 950 1587 rm -f $(JUNIT_RUNNER_JAR) 951 1588 952 clean-netx-unit-tests: 1589 clean-netx-unit-tests: clean_tests_reports 953 1590 rm -f netx-unit-tests-source-files.txt 954 1591 rm -rf $(NETX_UNIT_TEST_DIR) 1592 rm -f $(UNIT_CLASS_NAMES) 1593 rm -f stamps/check-pac-functions.stamp 1594 rm -f stamps/run-netx-unit-tests.stamp 955 1595 rm -f stamps/netx-unit-tests-compile.stamp 1596 1597 clean_tests_reports: 1598 rm -rf $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ 1599 rm -f $(TESTS_DIR)/*.html 1600 1601 clean-netx-dist-tests: clean_tests_reports netx-dist-tests-remove-cert-from-public clean-custom-reproducers 1602 rm -f netx-dist-tests-source-files.txt 1603 rm -rf $(JNLP_TESTS_ENGINE_TESTS_DIR) 1604 rm -rf $(JNLP_TESTS_DIR) 1605 rm -rf $(JNLP_TESTS_SERVER_DEPLOYDIR) 1606 rm -rf $(JNLP_TESTS_ENGINE_DIR) 1607 rm -f stamps/junit-jnlp-dist-dirs 1608 rm -f stamps/netx-dist-tests-compile.stamp 1609 rm -f stamps/netx-dist-tests-tests-compile.stamp 1610 rm -f stamps/netx-dist-tests-prepare-reproducers.stamp 1611 rm -f stamps/netx-dist-tests-compile-testcases.stamp 1612 rm -f stamps/netx-dist-tests-copy-resources.stamp 1613 rm -f stamps/netx-dist-tests-sign-some-reproducers.stamp 1614 rm -f stamps/change-dots-to-paths.stamp 1615 rm -f junit-jnlp-dist-simple.txt 1616 rm -f junit-jnlp-dist-custom.txt 1617 rm -f netx-dist-tests-tests-source-files.txt 1618 types=($(SIGNED_REPRODUCERS)) ; \ 1619 for which in "$${types[@]}" ; do \ 1620 rm -f junit-jnlp-dist-$$which.txt ; \ 1621 rm -f $(EXPORTED_TEST_CERT_PREFIX)_$$which.$(EXPORTED_TEST_CERT_SUFFIX) ; \ 1622 done ; 1623 rm -f stamps/exported-test-certs.stamp 1624 rm -f stamps/junit-jnlp-dist-signed.stamp 1625 rm -f $(REPRODUCERS_CLASS_NAMES) 1626 rm -f $(abs_top_builddir)/$(PRIVATE_KEYSTORE_NAME) 1627 rm -f stamps/run-netx-dist-tests.stamp 1628 1629 clean-unit-test-code-coverage: 1630 if [ -e stamps/run-unit-test-code-coverage.stamp ]; then \ 1631 rm -rf $(NETX_UNIT_TEST_DIR)/coverage ; \ 1632 rm -f $(NETX_UNIT_TEST_DIR)/coverage.xml ; \ 1633 rm -f $(NETX_UNIT_TEST_DIR)/coverageX.es ; \ 1634 rm -f $(NETX_UNIT_TEST_DIR)/coverageX.ec ; \ 1635 rm -f $(NETX_UNIT_TEST_DIR)/coverage.es ; \ 1636 rm -f $(NETX_UNIT_TEST_DIR)/tests-output_withEmma.xml ; \ 1637 rm -f stamps/run-unit-test-code-coverage.stamp ; \ 1638 fi 1639 1640 clean-reproducers-test-code-coverage: 1641 if [ -e stamps/run-reproducers-test-code-coverage.stamp ]; then \ 1642 rm -rf $(JNLP_TESTS_ENGINE_DIR)/coverage ; \ 1643 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.xml ; \ 1644 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \ 1645 rm -f $(JNLP_TESTS_ENGINE_DIR)/tests-output_withEmma.xml ; \ 1646 rm -f stamps/run-reproducers-test-code-coverage.stamp ; \ 1647 fi 1648 1649 clean-test-code-coverage: clean-unit-test-code-coverage clean-reproducers-test-code-coverage 1650 if [ -e $(TESTS_DIR)/coverage.xml ]; then \ 1651 rm -rf $(TESTS_DIR)/coverage ; \ 1652 rm -f $(TESTS_DIR)/coverage.xml ; \ 1653 rm -f $(TESTS_DIR)/coverage.es ; \ 1654 rm -f $(TESTS_DIR)/coverage.em ; \ 1655 fi 956 1656 957 1657 # plugin tests … … 993 1693 ln -sf $(abs_top_builddir)/javac $(BOOT_DIR)/bin/javac 994 1694 ln -sf $(JAVADOC) $(BOOT_DIR)/bin/javadoc 1695 if [ -e "$(KEYTOOL)" ] ; then \ 1696 ln -sf $(KEYTOOL) $(BOOT_DIR)/bin/keytool ;\ 1697 else \ 1698 echo "#! /bin/sh" > $(BOOT_DIR)/bin/keytool ;\ 1699 echo "echo \"keytool not exist on your system, signed part of reproducers test will fail\"" >> $(BOOT_DIR)/bin/keytool ;\ 1700 chmod 777 $(BOOT_DIR)/bin/keytool ;\ 1701 fi 1702 if [ -e "$(JARSIGNER)" ] ; then \ 1703 ln -sf $(JARSIGNER) $(BOOT_DIR)/bin/jarsigner ;\ 1704 else \ 1705 echo "#! /bin/sh" > $(BOOT_DIR)/bin/jarsigner ;\ 1706 echo "echo \"jarsigner not exist on your system, signed part of reproducers test will fail\"" >> $(BOOT_DIR)/bin/jarsigner ;\ 1707 chmod 777 $(BOOT_DIR)/bin/jarsigner ;\ 1708 fi 995 1709 mkdir -p $(BOOT_DIR)/jre/lib && \ 996 1710 ln -s $(SYSTEM_JRE_DIR)/lib/rt.jar $(BOOT_DIR)/jre/lib && \ … … 999 1713 else \ 1000 1714 ln -s rt.jar $(BOOT_DIR)/jre/lib/jsse.jar ; \ 1715 fi 1716 if [ -e $(SYSTEM_JRE_DIR)/lib/resources.jar ] ; then \ 1717 ln -s $(SYSTEM_JRE_DIR)/lib/resources.jar $(BOOT_DIR)/jre/lib ; \ 1718 else \ 1719 ln -s rt.jar $(BOOT_DIR)/jre/lib/resources.jar ; \ 1001 1720 fi 1002 1721 ln -sf $(SYSTEM_JRE_DIR)/lib/$(JRE_ARCH_DIR) \ … … 1039 1758 plugin-tests: stamps/plugin-tests.stamp 1040 1759 1760 check-pac-functions: stamps/check-pac-functions.stamp 1761 1762 run-netx-unit-tests: stamps/run-netx-unit-tests.stamp 1763 1764 links: stamps/global-links.stamp 1765 1766 user-links: stamps/user-links.stamp 1767 1768 run-netx-dist-tests: stamps/run-netx-dist-tests.stamp 1769 1770 run-unit-test-code-coverage: stamps/run-unit-test-code-coverage.stamp 1771 1772 run-reproducers-test-code-coverage: stamps/run-reproducers-test-code-coverage.stamp 1773 1041 1774 # Tell versions [3.59,3.63) of GNU make to not export all variables. 1042 1775 # Otherwise a system limit (for SysV at least) may be exceeded. -
trunk/icedtea-web/NEWS
r348 r418 9 9 CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY 10 10 11 New in release 1.1.2 (2011-08-31): 11 New in release 1.3 (2012-09-04): 12 * Security updates 13 - CVE-2012-3422, RH840592: Potential read from an uninitialized memory location 14 - CVE-2012-3423, RH841345: Incorrect handling of not 0-terminated strings 15 * NetX 16 - PR898: signed applications with big jnlp-file doesn't start (webstart affect like "frozen") 17 - PR811: javaws is not handling urls with spaces (and other characters needing encoding) correctly 18 * Plugin 19 - PR820: IcedTea-Web 1.1.3 crashing Firefox when loading Citrix XenApp 20 - PR863: Error passing strings to applet methods in Chromium 21 - PR895: IcedTea-Web searches for missing classes on each loadClass or findClass 22 - PR861: Allow loading from non codebase hosts. Allow code to connect to hosting server 23 - PR518: NPString.utf8characters not guaranteed to be nul-terminated 24 - PR722: META-INF/ unsigned entries should be ignored in signing 25 - PR855: AppletStub getDocumentBase() doesn't return full URL 26 - PR1011: Folders treated as jar files in archive tag 27 - PR1106: Buffer overflow in plugin table 28 - PR975: Plugin should not include classpaths specified in jar manifests when using jnlp_href 29 - PR588: Cookies not written from cookie jar to browser cookies 30 * Common 31 - PR918: java applet windows uses a low resulution black/white icon 32 - RH838417: Disambiguate signed applet security prompt from certificate warning 33 - RH838559: Disambiguate signed applet security prompt from certificate warning 34 - RH720836: project can be compiled against GTK+ 2 or 3 librarie 35 - PR955: regression: SweetHome3D fails to run 36 37 New in release 1.2 (2011-XX-XX): 38 * Security updates: 39 - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications 40 - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation 41 - RH742515, CVE-2011-3377: IcedTea-Web: second-level domain subdomains and suffix domain SOP bypass 42 * NetX 43 - PR618: Can't install OpenDJ, JavaWebStart fails with Input stream is null error 44 - PR765: JNLP file with all resource jars marked as 'lazy' fails to validate signature and stops the launch of application 45 - PR788: Elluminate Live! is not working 46 - PR804: javaws launcher incorrectly handles file names with spaces 12 47 * Plugin 13 48 - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow 49 - PR782: Support building against npapi-sdk as well 50 - PR838: IcedTea plugin crashes with chrome browser when javascript is executed 51 - PR852: Classloader not being flushed after last applet from a site is closed 52 - RH586194: Unable to connect to connect with Juniper VPN client 14 53 - RH718693: MindTerm SSH Applet doesn't work 15 54 Common 16 55 - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up 56 - PR771: IcedTea-Web certificate verification code does not use the right API 57 - PR742: IcedTea-Web checks certs only upto 1 level deep before declaring them untrusted. 17 58 - PR769: IcedTea-Web does not work with some ssl sites with OpenJDK7 59 - PR778: Jar download and server certificate verification deadlock 60 - PR789: typo in jrunscript.sh 61 - PR794: IcedTea-Web does not work if a Web Start app jar has a Class-Path element in the manifest 62 - PR808: javaws is unable to start, when missing jars are enumerated before main jar 18 63 - RH734081: Javaws cannot use proxy settings from Firefox 64 - RH738814: Access denied at ssl handshake 65 - Support for authenticating using client certificates 19 66 20 New in release 1.1.1 (2011-07-20): 21 * Security updates: 22 - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications 23 - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation 24 25 New in release 1.1 (2011-06-08): 67 New in release 1.1 (2011-XX-XX): 68 * Security updates 69 - S6983554, CVE-2010-4450: Launcher incorrect processing of empty library path entries 70 - RH677332, CVE-2011-0706: IcedTea multiple signers privilege escalation 26 71 * New Features 27 72 - IcedTea-Web now installs to a FHS-compliant location … … 38 83 - The user's default browser (determined from xdg-open or $BROWSER) is used 39 84 - RH669942: javaws fails to download version/packed files (missing support for jnlp.packEnabled and jnlp.versionEnabled) 85 - PR464: plugin can now load parameters from jnlp files. 40 86 - PR658: now jnlp.packEnabled works with applets. 41 87 - PR726: closing javaws -about no longer throws exceptions. -
trunk/icedtea-web/acinclude.m4
r348 r418 360 360 ]) 361 361 362 dnl ITW_GTK_CHECK_VERSION([gtk version]) 363 AC_DEFUN([ITW_GTK_CHECK_VERSION], 364 [ 365 AC_MSG_CHECKING([for GTK$1 version]) 366 GTK_VER=`$PKG_CONFIG --modversion gtk+-$1.0` 367 AC_MSG_RESULT([$GTK_VER]) 368 ]) 369 370 dnl ITW_GTK_CHECK([gtk version]) 371 AC_DEFUN([ITW_GTK_CHECK], 372 [ 373 case "$1" in 374 default) 375 PKG_CHECK_MODULES(GTK, gtk+-3.0, 376 [ITW_GTK_CHECK_VERSION([3])], 377 [PKG_CHECK_MODULES(GTK, gtk+-2.0, 378 [ITW_GTK_CHECK_VERSION([2])], 379 [AC_MSG_ERROR([GTK $1 not found])] 380 )] 381 ) 382 ;; 383 *) 384 PKG_CHECK_MODULES(GTK, gtk+-$1.0, 385 [ITW_GTK_CHECK_VERSION([$1])], 386 [AC_MSG_ERROR([GTK $1 not found])] 387 ) 388 ;; 389 esac 390 ]) 391 362 392 AC_DEFUN_ONCE([IT_CHECK_PLUGIN_DEPENDENCIES], 363 393 [ … … 366 396 AC_REQUIRE([IT_CHECK_PLUGIN]) 367 397 if test "x${enable_plugin}" = "xyes" ; then 368 PKG_CHECK_MODULES(GTK, gtk+-2.0) 398 AC_ARG_WITH([gtk], 399 [AS_HELP_STRING([--with-gtk=[2|3|default]], 400 [the GTK+ version to use (default: 3)])], 401 [case "$with_gtk" in 402 2|3|default) ;; 403 *) AC_MSG_ERROR([invalid GTK version specified]) ;; 404 esac], 405 [with_gtk=default]) 406 ITW_GTK_CHECK([$with_gtk]) 369 407 PKG_CHECK_MODULES(GLIB, glib-2.0) 370 408 AC_SUBST(GLIB_CFLAGS) … … 373 411 AC_SUBST(GTK_LIBS) 374 412 375 PKG_CHECK_MODULES(MOZILLA, mozilla-plugin) 376 413 PKG_CHECK_MODULES(MOZILLA, npapi-sdk, [ 414 AC_CACHE_CHECK([for xulrunner version], [xulrunner_cv_collapsed_version],[ 415 # XXX: use NPAPI versions instead 416 xulrunner_cv_collapsed_version=20000000 417 ]) 418 ], [ 419 PKG_CHECK_MODULES(MOZILLA, mozilla-plugin) 420 ]) 421 377 422 AC_SUBST(MOZILLA_CFLAGS) 378 423 AC_SUBST(MOZILLA_LIBS) … … 390 435 then 391 436 xulrunner_cv_collapsed_version=`pkg-config --modversion libxul | awk -F. '{power=6; v=0; for (i=1; i <= NF; i++) {v += $i * 10 ^ power; power -=2}; print v}'` 437 elif pkg-config --modversion mozilla-plugin >/dev/null 2>&1 438 then 439 xulrunner_cv_collapsed_version=`pkg-config --modversion mozilla-plugin | awk -F. '{power=6; v=0; for (i=1; i <= NF; i++) {v += $i * 10 ^ power; power -=2}; print v}'` 392 440 else 393 441 AC_MSG_FAILURE([cannot determine xulrunner version]) … … 483 531 AM_CONDITIONAL(HAS_PKGVERSION, test "x${PKGVERSION}" != "xnone") 484 532 AC_SUBST(PKGVERSION) 533 ]) 534 535 AC_DEFUN_ONCE([IT_CHECK_GLIB_VERSION],[ 536 PKG_CHECK_MODULES([GLIB2_V_216],[glib-2.0 >= 2.16],[],[AC_DEFINE([LEGACY_GLIB])]) 537 ]) 538 539 AC_DEFUN_ONCE([IT_CHECK_XULRUNNER_API_VERSION], 540 [ 541 AC_MSG_CHECKING([for legacy xulrunner api]) 542 AC_LANG_PUSH(C++) 543 CXXFLAGS_BACKUP=$CXXFLAGS 544 CXXFLAGS=$CXXFLAGS" "$MOZILLA_CFLAGS 545 AC_TRY_COMPILE([ 546 #include <npfunctions.h> 547 const char* NP_GetMIMEDescription () 548 {return (char*) "yap!";} 549 ],[],[ 550 AC_MSG_RESULT(no) 551 ],[ 552 AC_MSG_RESULT(yes) 553 AC_DEFINE([LEGACY_XULRUNNERAPI]) 554 ]) 555 CXXFLAGS=$CXXFLAGS_BACKUP 556 AC_LANG_POP(C++) 485 557 ]) 486 558 … … 643 715 AC_MSG_RESULT(${JAVA}) 644 716 AC_SUBST(JAVA) 717 JAVA_VERSION=`$JAVA -version 2>&1 | sed -n '1s/@<:@^"@:>@*"\(.*\)"$/\1/p'` 718 case "${JAVA_VERSION}" in 719 1.7*) VERSION_DEFS='-DHAVE_JAVA7';; 720 esac 721 AC_SUBST(VERSION_DEFS) 722 ]) 723 724 AC_DEFUN_ONCE([IT_FIND_KEYTOOL], 725 [ 726 AC_REQUIRE([IT_CHECK_FOR_JDK]) 727 AC_MSG_CHECKING([for keytool]) 728 AC_ARG_WITH([keytool], 729 [AS_HELP_STRING(--with-keytool,specify location of keytool for signed part of run-netx-dist)], 730 [ 731 if test "${withval}" = "yes" ; then 732 KEYTOOL=${SYSTEM_JDK_DIR}/bin/keytool 733 else 734 KEYTOOL="${withval}" 735 fi 736 ], 737 [ 738 KEYTOOL=${SYSTEM_JDK_DIR}/bin/keytool 739 ]) 740 if ! test -f "${KEYTOOL}"; then 741 AC_PATH_PROG(KEYTOOL, keytool) 742 fi 743 if ! test -f "${KEYTOOL}"; then 744 KEYTOOL="" 745 fi 746 if test -z "${KEYTOOL}" ; then 747 AC_MSG_WARN("keytool not found so signed part of run-netx-dist will fail") 748 fi 749 AC_MSG_RESULT(${KEYTOOL}) 750 AC_SUBST(KEYTOOL) 751 ]) 752 753 AC_DEFUN_ONCE([IT_FIND_JARSIGNER], 754 [ 755 AC_REQUIRE([IT_CHECK_FOR_JDK]) 756 AC_MSG_CHECKING([for jarsigner]) 757 AC_ARG_WITH([jarsigner], 758 [AS_HELP_STRING(--with-jarsigner,specify location of jarsigner for signed part od run-netx-dist)], 759 [ 760 if test "${withval}" = "yes" ; then 761 JARSIGNER=${SYSTEM_JDK_DIR}/bin/jarsigner 762 else 763 JARSIGNER="${withval}" 764 fi 765 ], 766 [ 767 JARSIGNER=${SYSTEM_JDK_DIR}/bin/jarsigner 768 ]) 769 if ! test -f "${JARSIGNER}"; then 770 AC_PATH_PROG(JARSIGNER, jarsigner,"") 771 fi 772 if ! test -f "${JARSIGNER}"; then 773 JARSIGNER="" 774 fi 775 if test -z "${JARSIGNER}"; then 776 AC_MSG_WARN("jarsigner not found so signed part of run-netx-dist will fail") 777 fi 778 AC_MSG_RESULT(${JARSIGNER}) 779 AC_SUBST(JARSIGNER) 645 780 ]) 646 781 … … 784 919 AC_SUBST([FULL_VERSION]) 785 920 ]) 921 922 dnl Allows you to configure (enable/disable/set path to) the browser 923 dnl REQUIRED Parameters: 924 dnl [browser name, variable to store path, default command to run browser (if not provided, assume it's the same as the browser name] 925 AC_DEFUN([IT_FIND_BROWSER], 926 [ 927 AC_ARG_WITH([$1], 928 [AS_HELP_STRING(--with-$1,specify the location of $1)], 929 [ 930 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 931 $2="" 932 elif test -f "${withval}" ; then 933 $2="${withval}" 934 else 935 AC_MSG_CHECKING([for $1]) 936 AC_MSG_RESULT([not found]) 937 AC_MSG_FAILURE([invalid location specified to $1: ${withval}]) 938 fi 939 ], 940 [ 941 withval="yes" 942 ]) 943 944 if test -f "${$2}"; then 945 AC_MSG_CHECKING([for $1]) 946 AC_MSG_RESULT([${$2}]) 947 elif test "${withval}" != "no"; then 948 if test $# -gt 2; then 949 AC_PATH_TOOL([$2], [$3], [], []) 950 else 951 AC_PATH_TOOL([$2], [$1], [], []) 952 fi 953 else 954 AC_MSG_CHECKING([for $1]) 955 AC_MSG_RESULT([no]) 956 fi 957 ]) 958 959 AC_DEFUN_ONCE([IT_SET_GLOBAL_BROWSERTESTS_BEHAVIOUR], 960 [ 961 AC_MSG_CHECKING([how browser test will be run]) 962 AC_ARG_WITH([browser-tests], 963 [AS_HELP_STRING([--with-browser-tests], 964 [yes - as defined (default), no - all browser tests will be skipped, one - all "mutiple browsers" test will behave as "one" test, all - all browser tests will be run for all set browsers])], 965 [ 966 BROWSER_SWITCH=${withval} 967 ], 968 [ 969 BROWSER_SWITCH="yes" 970 ]) 971 D_PARAM_PART="-Dmodified.browsers.run" 972 case "$BROWSER_SWITCH" in 973 "yes" ) 974 BROWSER_TESTS_MODIFICATION="" ;; 975 "no" ) 976 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=ignore" ;; 977 "one" ) 978 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=one" ;; 979 "all" ) 980 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=all" ;; 981 *) 982 AC_MSG_ERROR([unknown valkue of with-browser-tests ($BROWSER_SWITCH), so not use (yes) or set yes|no|one|all]) 983 esac 984 AC_MSG_RESULT(${BROWSER_SWITCH}) 985 AC_SUBST(BROWSER_TESTS_MODIFICATION) 986 ]) -
trunk/icedtea-web/aclocal.m4
r348 r418 1 # generated automatically by aclocal 1.11. 1-*- Autoconf -*-1 # generated automatically by aclocal 1.11.3 -*- Autoconf -*- 2 2 3 3 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 4 # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. 4 # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, 5 # Inc. 5 6 # This file is free software; the Free Software Foundation 6 7 # gives unlimited permission to copy and/or distribute it, … … 178 179 ])# PKG_CHECK_MODULES 179 180 180 # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 181 # 182 # This file is free software; the Free Software Foundation 183 # gives unlimited permission to copy and/or distribute it, 184 # with or without modifications, as long as this notice is preserved. 181 # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software 182 # Foundation, Inc. 183 # 184 # This file is free software; the Free Software Foundation 185 # gives unlimited permission to copy and/or distribute it, 186 # with or without modifications, as long as this notice is preserved. 187 188 # serial 1 185 189 186 190 # AM_AUTOMAKE_VERSION(VERSION) … … 193 197 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to 194 198 dnl require some minimum version. Point them to the right macro. 195 m4_if([$1], [1.11. 1], [],199 m4_if([$1], [1.11.3], [], 196 200 [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl 197 201 ]) … … 209 213 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. 210 214 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], 211 [AM_AUTOMAKE_VERSION([1.11. 1])dnl215 [AM_AUTOMAKE_VERSION([1.11.3])dnl 212 216 m4_ifndef([AC_AUTOCONF_VERSION], 213 217 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl … … 216 220 # AM_AUX_DIR_EXPAND -*- Autoconf -*- 217 221 218 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. 219 # 220 # This file is free software; the Free Software Foundation 221 # gives unlimited permission to copy and/or distribute it, 222 # with or without modifications, as long as this notice is preserved. 222 # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. 223 # 224 # This file is free software; the Free Software Foundation 225 # gives unlimited permission to copy and/or distribute it, 226 # with or without modifications, as long as this notice is preserved. 227 228 # serial 1 223 229 224 230 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets … … 303 309 fi])]) 304 310 305 # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 306 # Free Software Foundation, Inc.307 # 308 # This file is free software; the Free Software Foundation 309 # gives unlimited permission to copy and/or distribute it, 310 # with or without modifications, as long as this notice is preserved. 311 312 # serial 1 0311 # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, 312 # 2010, 2011 Free Software Foundation, Inc. 313 # 314 # This file is free software; the Free Software Foundation 315 # gives unlimited permission to copy and/or distribute it, 316 # with or without modifications, as long as this notice is preserved. 317 318 # serial 12 313 319 314 320 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be … … 350 356 # making a dummy file named `D' -- because `-MD' means `put the output 351 357 # in D'. 358 rm -rf conftest.dir 352 359 mkdir conftest.dir 353 360 # Copy depcomp to subdir because otherwise we won't find it if we're … … 414 421 fi 415 422 ;; 416 msv isualcpp | msvcmsys)423 msvc7 | msvc7msys | msvisualcpp | msvcmsys) 417 424 # This compiler won't grok `-c -o', but also, the minuso test has 418 425 # not run yet. These depmodes are late enough in the game, and … … 479 486 am_depcomp="$ac_aux_dir/depcomp" 480 487 AMDEPBACKSLASH='\' 488 am__nodep='_no' 481 489 fi 482 490 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) 483 491 AC_SUBST([AMDEPBACKSLASH])dnl 484 492 _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl 493 AC_SUBST([am__nodep])dnl 494 _AM_SUBST_NOTMAKE([am__nodep])dnl 485 495 ]) 486 496 … … 704 714 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) 705 715 706 # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. 707 # 708 # This file is free software; the Free Software Foundation 709 # gives unlimited permission to copy and/or distribute it, 710 # with or without modifications, as long as this notice is preserved. 716 # Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, 717 # Inc. 718 # 719 # This file is free software; the Free Software Foundation 720 # gives unlimited permission to copy and/or distribute it, 721 # with or without modifications, as long as this notice is preserved. 722 723 # serial 1 711 724 712 725 # AM_PROG_INSTALL_SH … … 841 854 ]) 842 855 843 # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. 844 # 845 # This file is free software; the Free Software Foundation 846 # gives unlimited permission to copy and/or distribute it, 847 # with or without modifications, as long as this notice is preserved. 856 # Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, 857 # Inc. 858 # 859 # This file is free software; the Free Software Foundation 860 # gives unlimited permission to copy and/or distribute it, 861 # with or without modifications, as long as this notice is preserved. 862 863 # serial 1 848 864 849 865 # AM_PROG_MKDIR_P … … 869 885 # Helper functions for option handling. -*- Autoconf -*- 870 886 871 # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. 872 # 873 # This file is free software; the Free Software Foundation 874 # gives unlimited permission to copy and/or distribute it, 875 # with or without modifications, as long as this notice is preserved. 876 877 # serial 4 887 # Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software 888 # Foundation, Inc. 889 # 890 # This file is free software; the Free Software Foundation 891 # gives unlimited permission to copy and/or distribute it, 892 # with or without modifications, as long as this notice is preserved. 893 894 # serial 5 878 895 879 896 # _AM_MANGLE_OPTION(NAME) … … 883 900 884 901 # _AM_SET_OPTION(NAME) 885 # -------------------- ----------902 # -------------------- 886 903 # Set option NAME. Presently that only means defining a flag for this option. 887 904 AC_DEFUN([_AM_SET_OPTION], … … 889 906 890 907 # _AM_SET_OPTIONS(OPTIONS) 891 # ------------------------ ----------908 # ------------------------ 892 909 # OPTIONS is a space-separated list of Automake options. 893 910 AC_DEFUN([_AM_SET_OPTIONS], … … 900 917 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) 901 918 902 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. 903 # 904 # This file is free software; the Free Software Foundation 905 # gives unlimited permission to copy and/or distribute it, 906 # with or without modifications, as long as this notice is preserved. 919 # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. 920 # 921 # This file is free software; the Free Software Foundation 922 # gives unlimited permission to copy and/or distribute it, 923 # with or without modifications, as long as this notice is preserved. 924 925 # serial 1 907 926 908 927 # AM_RUN_LOG(COMMAND) … … 982 1001 AC_MSG_RESULT(yes)]) 983 1002 984 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. 985 # 986 # This file is free software; the Free Software Foundation 987 # gives unlimited permission to copy and/or distribute it, 988 # with or without modifications, as long as this notice is preserved. 1003 # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. 1004 # 1005 # This file is free software; the Free Software Foundation 1006 # gives unlimited permission to copy and/or distribute it, 1007 # with or without modifications, as long as this notice is preserved. 1008 1009 # serial 1 989 1010 990 1011 # AM_PROG_INSTALL_STRIP … … 1010 1031 AC_SUBST([INSTALL_STRIP_PROGRAM])]) 1011 1032 1012 # Copyright (C) 2006, 2008 Free Software Foundation, Inc.1013 # 1014 # This file is free software; the Free Software Foundation 1015 # gives unlimited permission to copy and/or distribute it, 1016 # with or without modifications, as long as this notice is preserved. 1017 1018 # serial 21033 # Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. 1034 # 1035 # This file is free software; the Free Software Foundation 1036 # gives unlimited permission to copy and/or distribute it, 1037 # with or without modifications, as long as this notice is preserved. 1038 1039 # serial 3 1019 1040 1020 1041 # _AM_SUBST_NOTMAKE(VARIABLE) … … 1025 1046 1026 1047 # AM_SUBST_NOTMAKE(VARIABLE) 1027 # -------------------------- -1048 # -------------------------- 1028 1049 # Public sister of _AM_SUBST_NOTMAKE. 1029 1050 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) … … 1031 1052 # Check how to create a tarball. -*- Autoconf -*- 1032 1053 1033 # Copyright (C) 2004, 2005 Free Software Foundation, Inc.1054 # Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. 1034 1055 # 1035 1056 # This file is free software; the Free Software Foundation … … 1053 1074 # $(am__untar) < result.tar 1054 1075 AC_DEFUN([_AM_PROG_TAR], 1055 [# Always define AMTAR for backward compatibility. 1056 AM_MISSING_PROG([AMTAR], [tar]) 1076 [# Always define AMTAR for backward compatibility. Yes, it's still used 1077 # in the wild :-( We should find a proper way to deprecate it ... 1078 AC_SUBST([AMTAR], ['$${TAR-tar}']) 1057 1079 m4_if([$1], [v7], 1058 [am__tar='$ {AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],1080 [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], 1059 1081 [m4_case([$1], [ustar],, [pax],, 1060 1082 [m4_fatal([Unknown tar format])]) -
trunk/icedtea-web/config.guess
r348 r418 2 2 # Attempt to guess a canonical system name. 3 3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 4 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 5 # Free Software Foundation, Inc.6 7 timestamp='20 09-11-20'4 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 5 # 2011, 2012 Free Software Foundation, Inc. 6 7 timestamp='2012-01-01' 8 8 9 9 # This file is free software; you can redistribute it and/or modify it … … 57 57 58 58 Originally written by Per Bothner. 59 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 60 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 59 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 60 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 61 Free Software Foundation, Inc. 61 62 62 63 This is free software; see the source for copying conditions. There is NO … … 145 146 *:NetBSD:*:*) 146 147 # NetBSD (nbsd) targets should (where applicable) match one or 147 # more of the tup ples: *-*-netbsdelf*, *-*-netbsdaout*,148 # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, 148 149 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently 149 150 # switched to ELF, *-*-netbsd* would select the old … … 181 182 ;; 182 183 *) 183 os=netbsd184 os=netbsd 184 185 ;; 185 186 esac … … 224 225 ;; 225 226 *5.*) 226 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`227 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` 227 228 ;; 228 229 esac … … 270 271 # 1.2 uses "1.2" for uname -r. 271 272 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 272 exit ;; 273 # Reset EXIT trap before exiting to avoid spurious non-zero exit code. 274 exitcode=$? 275 trap '' 0 276 exit $exitcode ;; 273 277 Alpha\ *:Windows_NT*:*) 274 278 # How do we know it's Interix rather than the generic POSIX subsystem? … … 296 300 exit ;; 297 301 *:OS400:*:*) 298 echo powerpc-ibm-os400302 echo powerpc-ibm-os400 299 303 exit ;; 300 304 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) … … 395 399 # be no problem. 396 400 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) 397 echo m68k-atari-mint${UNAME_RELEASE}401 echo m68k-atari-mint${UNAME_RELEASE} 398 402 exit ;; 399 403 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) 400 404 echo m68k-atari-mint${UNAME_RELEASE} 401 exit ;;405 exit ;; 402 406 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) 403 echo m68k-atari-mint${UNAME_RELEASE}407 echo m68k-atari-mint${UNAME_RELEASE} 404 408 exit ;; 405 409 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) 406 echo m68k-milan-mint${UNAME_RELEASE}407 exit ;;410 echo m68k-milan-mint${UNAME_RELEASE} 411 exit ;; 408 412 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) 409 echo m68k-hades-mint${UNAME_RELEASE}410 exit ;;413 echo m68k-hades-mint${UNAME_RELEASE} 414 exit ;; 411 415 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) 412 echo m68k-unknown-mint${UNAME_RELEASE}413 exit ;;416 echo m68k-unknown-mint${UNAME_RELEASE} 417 exit ;; 414 418 m68k:machten:*:*) 415 419 echo m68k-apple-machten${UNAME_RELEASE} … … 481 485 exit ;; 482 486 AViiON:dgux:*:*) 483 # DG/UX returns AViiON for all architectures484 UNAME_PROCESSOR=`/usr/bin/uname -p`487 # DG/UX returns AViiON for all architectures 488 UNAME_PROCESSOR=`/usr/bin/uname -p` 485 489 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] 486 490 then … … 495 499 echo i586-dg-dgux${UNAME_RELEASE} 496 500 fi 497 exit ;;501 exit ;; 498 502 M88*:DolphinOS:*:*) # DolphinOS (SVR3) 499 503 echo m88k-dolphin-sysv3 … … 552 556 fi 553 557 exit ;; 554 *:AIX:*:[456 ])558 *:AIX:*:[4567]) 555 559 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` 556 560 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then … … 595 599 if [ -x /usr/bin/getconf ]; then 596 600 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` 597 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`598 case "${sc_cpu_version}" in599 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0600 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1601 532) # CPU_PA_RISC2_0602 case "${sc_kernel_bits}" in603 32) HP_ARCH="hppa2.0n" ;;604 64) HP_ARCH="hppa2.0w" ;;601 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` 602 case "${sc_cpu_version}" in 603 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 604 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 605 532) # CPU_PA_RISC2_0 606 case "${sc_kernel_bits}" in 607 32) HP_ARCH="hppa2.0n" ;; 608 64) HP_ARCH="hppa2.0w" ;; 605 609 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 606 esac ;;607 esac610 esac ;; 611 esac 608 612 fi 609 613 if [ "${HP_ARCH}" = "" ]; then 610 614 eval $set_cc_for_build 611 sed 's/^ //' << EOF >$dummy.c612 613 #define _HPUX_SOURCE614 #include <stdlib.h>615 #include <unistd.h>616 617 int main ()618 {619 #if defined(_SC_KERNEL_BITS)620 long bits = sysconf(_SC_KERNEL_BITS);621 #endif622 long cpu = sysconf (_SC_CPU_VERSION);623 624 switch (cpu)625 {626 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;627 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;628 case CPU_PA_RISC2_0:629 #if defined(_SC_KERNEL_BITS)630 switch (bits)631 {632 case 64: puts ("hppa2.0w"); break;633 case 32: puts ("hppa2.0n"); break;634 default: puts ("hppa2.0"); break;635 } break;636 #else /* !defined(_SC_KERNEL_BITS) */637 puts ("hppa2.0"); break;638 #endif639 default: puts ("hppa1.0"); break;640 }641 exit (0);642 }615 sed 's/^ //' << EOF >$dummy.c 616 617 #define _HPUX_SOURCE 618 #include <stdlib.h> 619 #include <unistd.h> 620 621 int main () 622 { 623 #if defined(_SC_KERNEL_BITS) 624 long bits = sysconf(_SC_KERNEL_BITS); 625 #endif 626 long cpu = sysconf (_SC_CPU_VERSION); 627 628 switch (cpu) 629 { 630 case CPU_PA_RISC1_0: puts ("hppa1.0"); break; 631 case CPU_PA_RISC1_1: puts ("hppa1.1"); break; 632 case CPU_PA_RISC2_0: 633 #if defined(_SC_KERNEL_BITS) 634 switch (bits) 635 { 636 case 64: puts ("hppa2.0w"); break; 637 case 32: puts ("hppa2.0n"); break; 638 default: puts ("hppa2.0"); break; 639 } break; 640 #else /* !defined(_SC_KERNEL_BITS) */ 641 puts ("hppa2.0"); break; 642 #endif 643 default: puts ("hppa1.0"); break; 644 } 645 exit (0); 646 } 643 647 EOF 644 648 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` … … 731 735 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) 732 736 echo c1-convex-bsd 733 exit ;;737 exit ;; 734 738 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) 735 739 if getsysinfo -f scalar_acc … … 737 741 else echo c2-convex-bsd 738 742 fi 739 exit ;;743 exit ;; 740 744 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) 741 745 echo c34-convex-bsd 742 exit ;;746 exit ;; 743 747 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) 744 748 echo c38-convex-bsd 745 exit ;;749 exit ;; 746 750 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) 747 751 echo c4-convex-bsd 748 exit ;;752 exit ;; 749 753 CRAY*Y-MP:*:*:*) 750 754 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' … … 770 774 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) 771 775 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 772 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`773 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`774 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"775 exit ;;776 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` 777 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` 778 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 779 exit ;; 776 780 5000:UNIX_System_V:4.*:*) 777 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`778 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`779 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"781 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` 782 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` 783 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 780 784 exit ;; 781 785 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) … … 789 793 exit ;; 790 794 *:FreeBSD:*:*) 791 case ${UNAME_MACHINE} in 792 pc98) 793 echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 795 UNAME_PROCESSOR=`/usr/bin/uname -p` 796 case ${UNAME_PROCESSOR} in 794 797 amd64) 795 798 echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 796 799 *) 797 echo ${UNAME_ MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;800 echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 798 801 esac 799 802 exit ;; … … 804 807 echo ${UNAME_MACHINE}-pc-mingw32 805 808 exit ;; 809 i*:MSYS*:*) 810 echo ${UNAME_MACHINE}-pc-msys 811 exit ;; 806 812 i*:windows32*:*) 807 # uname -m includes "-pc" on this system.808 echo ${UNAME_MACHINE}-mingw32813 # uname -m includes "-pc" on this system. 814 echo ${UNAME_MACHINE}-mingw32 809 815 exit ;; 810 816 i*:PW*:*) … … 812 818 exit ;; 813 819 *:Interix*:*) 814 case ${UNAME_MACHINE} in820 case ${UNAME_MACHINE} in 815 821 x86) 816 822 echo i586-pc-interix${UNAME_RELEASE} … … 867 873 EV67) UNAME_MACHINE=alphaev67 ;; 868 874 EV68*) UNAME_MACHINE=alphaev68 ;; 869 esac875 esac 870 876 objdump --private-headers /bin/sh | grep -q ld.so.1 871 877 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi … … 879 885 echo ${UNAME_MACHINE}-unknown-linux-gnu 880 886 else 881 echo ${UNAME_MACHINE}-unknown-linux-gnueabi 887 if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ 888 | grep -q __ARM_PCS_VFP 889 then 890 echo ${UNAME_MACHINE}-unknown-linux-gnueabi 891 else 892 echo ${UNAME_MACHINE}-unknown-linux-gnueabihf 893 fi 882 894 fi 883 895 exit ;; … … 886 898 exit ;; 887 899 cris:Linux:*:*) 888 echo cris-axis-linux-gnu900 echo ${UNAME_MACHINE}-axis-linux-gnu 889 901 exit ;; 890 902 crisv32:Linux:*:*) 891 echo crisv32-axis-linux-gnu903 echo ${UNAME_MACHINE}-axis-linux-gnu 892 904 exit ;; 893 905 frv:Linux:*:*) 894 echo frv-unknown-linux-gnu 906 echo ${UNAME_MACHINE}-unknown-linux-gnu 907 exit ;; 908 hexagon:Linux:*:*) 909 echo ${UNAME_MACHINE}-unknown-linux-gnu 895 910 exit ;; 896 911 i*86:Linux:*:*) … … 934 949 ;; 935 950 or32:Linux:*:*) 936 echo or32-unknown-linux-gnu951 echo ${UNAME_MACHINE}-unknown-linux-gnu 937 952 exit ;; 938 953 padre:Linux:*:*) … … 960 975 exit ;; 961 976 sh64*:Linux:*:*) 962 echo ${UNAME_MACHINE}-unknown-linux-gnu977 echo ${UNAME_MACHINE}-unknown-linux-gnu 963 978 exit ;; 964 979 sh*:Linux:*:*) … … 968 983 echo ${UNAME_MACHINE}-unknown-linux-gnu 969 984 exit ;; 985 tile*:Linux:*:*) 986 echo ${UNAME_MACHINE}-unknown-linux-gnu 987 exit ;; 970 988 vax:Linux:*:*) 971 989 echo ${UNAME_MACHINE}-dec-linux-gnu 972 990 exit ;; 973 991 x86_64:Linux:*:*) 974 echo x86_64-unknown-linux-gnu992 echo ${UNAME_MACHINE}-unknown-linux-gnu 975 993 exit ;; 976 994 xtensa*:Linux:*:*) 977 echo ${UNAME_MACHINE}-unknown-linux-gnu995 echo ${UNAME_MACHINE}-unknown-linux-gnu 978 996 exit ;; 979 997 i*86:DYNIX/ptx:4*:*) … … 984 1002 exit ;; 985 1003 i*86:UNIX_SV:4.2MP:2.*) 986 # Unixware is an offshoot of SVR4, but it has its own version987 # number series starting with 2...988 # I am not positive that other SVR4 systems won't match this,1004 # Unixware is an offshoot of SVR4, but it has its own version 1005 # number series starting with 2... 1006 # I am not positive that other SVR4 systems won't match this, 989 1007 # I just have to hope. -- rms. 990 # Use sysv4.2uw... so that sysv4* matches it.1008 # Use sysv4.2uw... so that sysv4* matches it. 991 1009 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} 992 1010 exit ;; … … 1020 1038 exit ;; 1021 1039 i*86:*:5:[678]*) 1022 # UnixWare 7.x, OpenUNIX and OpenServer 6.1040 # UnixWare 7.x, OpenUNIX and OpenServer 6. 1023 1041 case `/bin/uname -X | grep "^Machine"` in 1024 1042 *486*) UNAME_MACHINE=i486 ;; … … 1048 1066 pc:*:*:*) 1049 1067 # Left here for compatibility: 1050 # uname -m prints for DJGPP always 'pc', but it prints nothing about1051 # the processor, so we play safe by assuming i586.1068 # uname -m prints for DJGPP always 'pc', but it prints nothing about 1069 # the processor, so we play safe by assuming i586. 1052 1070 # Note: whatever this is, it MUST be the same as what config.sub 1053 1071 # prints for the "djgpp" host, or else GDB configury will decide that 1054 1072 # this is a cross-build. 1055 1073 echo i586-pc-msdosdjgpp 1056 exit ;;1074 exit ;; 1057 1075 Intel:Mach:3*:*) 1058 1076 echo i386-pc-mach3 … … 1089 1107 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 1090 1108 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) 1091 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \1092 && { echo i486-ncr-sysv4; exit; } ;;1109 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ 1110 && { echo i486-ncr-sysv4; exit; } ;; 1093 1111 NCR*:*:4.2:* | MPRAS*:*:4.2:*) 1094 1112 OS_REL='.3' … … 1133 1151 fi 1134 1152 exit ;; 1135 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort1136 # says <Richard.M.Bartel@ccMail.Census.GOV>1137 echo i586-unisys-sysv41138 exit ;;1153 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort 1154 # says <Richard.M.Bartel@ccMail.Census.GOV> 1155 echo i586-unisys-sysv4 1156 exit ;; 1139 1157 *:UNIX_System_V:4*:FTX*) 1140 1158 # From Gerald Hewes <hewes@openmarket.com>. … … 1162 1180 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) 1163 1181 if [ -d /usr/nec ]; then 1164 echo mips-nec-sysv${UNAME_RELEASE}1182 echo mips-nec-sysv${UNAME_RELEASE} 1165 1183 else 1166 echo mips-unknown-sysv${UNAME_RELEASE}1167 fi 1168 exit ;;1184 echo mips-unknown-sysv${UNAME_RELEASE} 1185 fi 1186 exit ;; 1169 1187 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. 1170 1188 echo powerpc-be-beos … … 1231 1249 echo i386-pc-qnx 1232 1250 exit ;; 1251 NEO-?:NONSTOP_KERNEL:*:*) 1252 echo neo-tandem-nsk${UNAME_RELEASE} 1253 exit ;; 1233 1254 NSE-?:NONSTOP_KERNEL:*:*) 1234 1255 echo nse-tandem-nsk${UNAME_RELEASE} … … 1276 1297 exit ;; 1277 1298 SEI:*:*:SEIUX) 1278 echo mips-sei-seiux${UNAME_RELEASE}1299 echo mips-sei-seiux${UNAME_RELEASE} 1279 1300 exit ;; 1280 1301 *:DragonFly:*:*) … … 1282 1303 exit ;; 1283 1304 *:*VMS:*:*) 1284 UNAME_MACHINE=`(uname -p) 2>/dev/null`1305 UNAME_MACHINE=`(uname -p) 2>/dev/null` 1285 1306 case "${UNAME_MACHINE}" in 1286 1307 A*) echo alpha-dec-vms ; exit ;; … … 1322 1343 printf ("m68k-sony-newsos%s\n", 1323 1344 #ifdef NEWSOS4 1324 "4"1345 "4" 1325 1346 #else 1326 ""1327 #endif 1328 ); exit (0);1347 "" 1348 #endif 1349 ); exit (0); 1329 1350 #endif 1330 1351 #endif -
trunk/icedtea-web/config.sub
r348 r418 2 2 # Configuration validation subroutine script. 3 3 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 4 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 5 # Free Software Foundation, Inc.6 7 timestamp='20 09-11-20'4 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 5 # 2011, 2012 Free Software Foundation, Inc. 6 7 timestamp='2012-01-01' 8 8 9 9 # This file is (in principle) common to ALL GNU software. … … 76 76 GNU config.sub ($timestamp) 77 77 78 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 79 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 78 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 79 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 80 Free Software Foundation, Inc. 80 81 81 82 This is free software; see the source for copying conditions. There is NO … … 124 125 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` 125 126 case $maybe_os in 126 nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ 127 uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ 127 nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ 128 linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ 129 knetbsd*-gnu* | netbsd*-gnu* | \ 128 130 kopensolaris*-gnu* | \ 129 131 storm-chaos* | os2-emx* | rtmk-nova*) … … 157 159 basic_machine=$1 158 160 ;; 159 -bluegene*)160 os=-cnk161 -bluegene*) 162 os=-cnk 161 163 ;; 162 164 -sim | -cisco | -oki | -wec | -winbond) … … 174 176 basic_machine=$1 175 177 ;; 176 -chorusrdb)177 os=-chorusrdb178 -chorusrdb) 179 os=-chorusrdb 178 180 basic_machine=$1 179 ;;181 ;; 180 182 -hiux*) 181 183 os=-hiuxwe2 … … 250 252 | am33_2.0 \ 251 253 | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ 254 | be32 | be64 \ 252 255 | bfin \ 253 256 | c4x | clipper \ 254 257 | d10v | d30v | dlx | dsp16xx \ 258 | epiphany \ 255 259 | fido | fr30 | frv \ 256 260 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 261 | hexagon \ 257 262 | i370 | i860 | i960 | ia64 \ 258 263 | ip2k | iq2000 \ 264 | le32 | le64 \ 259 265 | lm32 \ 260 266 | m32c | m32r | m32rle | m68000 | m68k | m88k \ … … 282 288 | mt \ 283 289 | msp430 \ 290 | nds32 | nds32le | nds32be \ 284 291 | nios | nios2 \ 285 292 | ns16k | ns32k \ 293 | open8 \ 286 294 | or32 \ 287 295 | pdp10 | pdp11 | pj | pjl \ 288 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe\296 | powerpc | powerpc64 | powerpc64le | powerpcle \ 289 297 | pyramid \ 290 | r x \298 | rl78 | rx \ 291 299 | score \ 292 300 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ … … 294 302 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ 295 303 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ 296 | spu | strongarm\297 | tahoe | t humb | tic4x | tic80 | tron \304 | spu \ 305 | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ 298 306 | ubicom32 \ 299 | v850 | v850e \307 | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ 300 308 | we32k \ 301 | x86 | xc16x | xs cale | xscalee[bl] | xstormy16 | xtensa \309 | x86 | xc16x | xstormy16 | xtensa \ 302 310 | z8k | z80) 303 311 basic_machine=$basic_machine-unknown 304 312 ;; 313 c54x) 314 basic_machine=tic54x-unknown 315 ;; 316 c55x) 317 basic_machine=tic55x-unknown 318 ;; 319 c6x) 320 basic_machine=tic6x-unknown 321 ;; 305 322 m6811 | m68hc11 | m6812 | m68hc12 | picochip) 306 # Motorola 68HC11/12.307 323 basic_machine=$basic_machine-unknown 308 324 os=-none … … 312 328 ms1) 313 329 basic_machine=mt-unknown 330 ;; 331 332 strongarm | thumb | xscale) 333 basic_machine=arm-unknown 334 ;; 335 336 xscaleeb) 337 basic_machine=armeb-unknown 338 ;; 339 340 xscaleel) 341 basic_machine=armel-unknown 314 342 ;; 315 343 … … 333 361 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ 334 362 | avr-* | avr32-* \ 363 | be32-* | be64-* \ 335 364 | bfin-* | bs2000-* \ 336 | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-*\365 | c[123]* | c30-* | [cjt]90-* | c4x-* \ 337 366 | clipper-* | craynv-* | cydra-* \ 338 367 | d10v-* | d30v-* | dlx-* \ … … 341 370 | h8300-* | h8500-* \ 342 371 | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ 372 | hexagon-* \ 343 373 | i*86-* | i860-* | i960-* | ia64-* \ 344 374 | ip2k-* | iq2000-* \ 375 | le32-* | le64-* \ 345 376 | lm32-* \ 346 377 | m32c-* | m32r-* | m32rle-* \ … … 368 399 | mt-* \ 369 400 | msp430-* \ 401 | nds32-* | nds32le-* | nds32be-* \ 370 402 | nios-* | nios2-* \ 371 403 | none-* | np1-* | ns16k-* | ns32k-* \ 404 | open8-* \ 372 405 | orion-* \ 373 406 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ 374 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-*\407 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ 375 408 | pyramid-* \ 376 | r omp-* | rs6000-* | rx-* \409 | rl78-* | romp-* | rs6000-* | rx-* \ 377 410 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ 378 411 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ 379 412 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ 380 413 | sparclite-* \ 381 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ 382 | tahoe-* | thumb-* \ 383 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ 414 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ 415 | tahoe-* \ 416 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ 417 | tile*-* \ 384 418 | tron-* \ 385 419 | ubicom32-* \ 386 | v850-* | v850e-* | vax-* \ 420 | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ 421 | vax-* \ 387 422 | we32k-* \ 388 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-*\423 | x86-* | x86_64-* | xc16x-* | xps100-* \ 389 424 | xstormy16-* | xtensa*-* \ 390 425 | ymp-* \ … … 411 446 os=-udi 412 447 ;; 413 abacus)448 abacus) 414 449 basic_machine=abacus-unknown 415 450 ;; … … 481 516 os=-cnk 482 517 ;; 518 c54x-*) 519 basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` 520 ;; 521 c55x-*) 522 basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` 523 ;; 524 c6x-*) 525 basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` 526 ;; 483 527 c90) 484 528 basic_machine=c90-cray 485 529 os=-unicos 486 530 ;; 487 cegcc)531 cegcc) 488 532 basic_machine=arm-unknown 489 533 os=-cegcc … … 517 561 os=-unicosmp 518 562 ;; 519 cr16 )563 cr16 | cr16-*) 520 564 basic_machine=cr16-unknown 521 565 os=-elf … … 675 719 basic_machine=i370-ibm 676 720 ;; 677 # I'm not sure what "Sysv32" means. Should this be sysv3.2?678 721 i*86v32) 679 722 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` … … 733 776 os=-sysv 734 777 ;; 735 microblaze)778 microblaze) 736 779 basic_machine=microblaze-xilinx 737 780 ;; … … 772 815 basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` 773 816 ;; 817 msys) 818 basic_machine=i386-pc 819 os=-msys 820 ;; 774 821 mvs) 775 822 basic_machine=i370-ibm 776 823 os=-mvs 824 ;; 825 nacl) 826 basic_machine=le32-unknown 827 os=-nacl 777 828 ;; 778 829 ncr3000) … … 840 891 basic_machine=np1-gould 841 892 ;; 893 neo-tandem) 894 basic_machine=neo-tandem 895 ;; 896 nse-tandem) 897 basic_machine=nse-tandem 898 ;; 842 899 nsr-tandem) 843 900 basic_machine=nsr-tandem … … 922 979 power) basic_machine=power-ibm 923 980 ;; 924 ppc) basic_machine=powerpc-unknown 925 ;; 926 ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` 981 ppc | ppcbe) basic_machine=powerpc-unknown 982 ;; 983 ppc-* | ppcbe-*) 984 basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` 927 985 ;; 928 986 ppcle | powerpclittle | ppc-le | powerpc-little) … … 1018 1076 os=-sysv4 1019 1077 ;; 1078 strongarm-* | thumb-*) 1079 basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` 1080 ;; 1020 1081 sun2) 1021 1082 basic_machine=m68000-sun … … 1074 1135 os=-unicos 1075 1136 ;; 1076 tic54x | c54x*)1077 basic_machine=tic54x-unknown1078 os=-coff1079 ;;1080 tic55x | c55x*)1081 basic_machine=tic55x-unknown1082 os=-coff1083 ;;1084 tic6x | c6x*)1085 basic_machine=tic6x-unknown1086 os=-coff1087 ;;1088 1137 tile*) 1089 basic_machine= tile-unknown1138 basic_machine=$basic_machine-unknown 1090 1139 os=-linux-gnu 1091 1140 ;; … … 1156 1205 xps | xps100) 1157 1206 basic_machine=xps100-honeywell 1207 ;; 1208 xscale-* | xscalee[bl]-*) 1209 basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` 1158 1210 ;; 1159 1211 ymp) … … 1254 1306 then 1255 1307 case $os in 1256 # First match some system type aliases1257 # that might get confused with valid system types.1308 # First match some system type aliases 1309 # that might get confused with valid system types. 1258 1310 # -solaris* is a basic system type, with this one exception. 1259 -auroraux)1260 os=-auroraux1311 -auroraux) 1312 os=-auroraux 1261 1313 ;; 1262 1314 -solaris1 | -solaris1.*) … … 1294 1346 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ 1295 1347 | -chorusos* | -chorusrdb* | -cegcc* \ 1296 | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ 1297 | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ 1348 | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ 1349 | -mingw32* | -linux-gnu* | -linux-android* \ 1350 | -linux-newlib* | -linux-uclibc* \ 1298 1351 | -uxpv* | -beos* | -mpeix* | -udk* \ 1299 1352 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ … … 1342 1395 os=-openedition 1343 1396 ;; 1344 -os400*)1397 -os400*) 1345 1398 os=-os400 1346 1399 ;; … … 1391 1444 os=-sysv4 1392 1445 ;; 1393 -tpf*)1446 -tpf*) 1394 1447 os=-tpf 1395 1448 ;; … … 1435 1488 -dicos*) 1436 1489 os=-dicos 1490 ;; 1491 -nacl*) 1437 1492 ;; 1438 1493 -none) … … 1458 1513 1459 1514 case $basic_machine in 1460 score-*)1515 score-*) 1461 1516 os=-elf 1462 1517 ;; 1463 spu-*)1518 spu-*) 1464 1519 os=-elf 1465 1520 ;; … … 1473 1528 os=-aout 1474 1529 ;; 1475 c4x-* | tic4x-*) 1476 os=-coff 1530 c4x-* | tic4x-*) 1531 os=-coff 1532 ;; 1533 tic54x-*) 1534 os=-coff 1535 ;; 1536 tic55x-*) 1537 os=-coff 1538 ;; 1539 tic6x-*) 1540 os=-coff 1477 1541 ;; 1478 1542 # This must come before the *-dec entry. … … 1494 1558 m68000-sun) 1495 1559 os=-sunos3 1496 # This also exists in the configure program, but was not the1497 # default.1498 # os=-sunos41499 1560 ;; 1500 1561 m68*-cisco) 1501 1562 os=-aout 1502 1563 ;; 1503 mep-*)1564 mep-*) 1504 1565 os=-elf 1505 1566 ;; … … 1528 1589 os=-aix 1529 1590 ;; 1530 *-knuth)1591 *-knuth) 1531 1592 os=-mmixware 1532 1593 ;; -
trunk/icedtea-web/configure
r348 r418 1 1 #! /bin/sh 2 2 # Guess values for system-dependent variables and create Makefiles. 3 # Generated by GNU Autoconf 2.68 for icedtea-web 1. 1.2.3 # Generated by GNU Autoconf 2.68 for icedtea-web 1.3. 4 4 # 5 5 # Report bugs to <distro-pkg-dev@openjdk.java.net>. … … 560 560 PACKAGE_NAME='icedtea-web' 561 561 PACKAGE_TARNAME='icedtea-web' 562 PACKAGE_VERSION='1. 1.2'563 PACKAGE_STRING='icedtea-web 1. 1.2'562 PACKAGE_VERSION='1.3' 563 PACKAGE_STRING='icedtea-web 1.3' 564 564 PACKAGE_BUGREPORT='distro-pkg-dev@openjdk.java.net' 565 565 PACKAGE_URL='http://icedtea.classpath.org/wiki/IcedTea-Web' … … 569 569 LTLIBOBJS 570 570 LIBOBJS 571 EMMA_AVAILABLE 572 EMMA_JAR 573 WITH_EMMA_FALSE 574 WITH_EMMA_TRUE 571 575 JUNIT_AVAILABLE 572 576 JUNIT_JAR … … 577 581 WITH_RHINO_FALSE 578 582 WITH_RHINO_TRUE 583 WITH_XSLTPROC_FALSE 584 WITH_XSLTPROC_TRUE 585 BROWSER_TESTS_MODIFICATION 586 EPIPHANY 587 MIDORI 588 OPERA 589 CHROMIUM 590 CHROME 591 FIREFOX 592 XSLTPROC 593 GLIB2_V_216_LIBS 594 GLIB2_V_216_CFLAGS 595 VERSION_DEFS 579 596 JAVA 580 597 SYSTEM_JRE_DIR … … 601 618 ICEDTEA_REVISION 602 619 HG 620 JARSIGNER 621 KEYTOOL 603 622 JAVADOC_SUPPORTS_J_OPTIONS_FALSE 604 623 JAVADOC_SUPPORTS_J_OPTIONS_TRUE … … 636 655 am__fastdepCC_TRUE 637 656 CCDEPMODE 657 am__nodep 638 658 AMDEPBACKSLASH 639 659 AMDEP_FALSE … … 732 752 with_ecj_jar 733 753 with_javadoc 754 with_keytool 755 with_jarsigner 734 756 with_pkgversion 735 757 enable_plugin 758 with_gtk 736 759 with_jre_home 737 760 with_java 761 with_firefox 762 with_chrome 763 with_chromium 764 with_opera 765 with_midori 766 with_epiphany 767 with_browser_tests 738 768 with_rhino 739 769 with_junit 770 with_emma 740 771 ' 741 772 ac_precious_vars='build_alias … … 760 791 MOZILLA_LIBS 761 792 X11_CFLAGS 762 X11_LIBS' 793 X11_LIBS 794 GLIB2_V_216_CFLAGS 795 GLIB2_V_216_LIBS' 763 796 764 797 … … 1303 1336 # This message is too long to be a string in the A/UX 3.1 sh. 1304 1337 cat <<_ACEOF 1305 \`configure' configures icedtea-web 1. 1.2to adapt to many kinds of systems.1338 \`configure' configures icedtea-web 1.3 to adapt to many kinds of systems. 1306 1339 1307 1340 Usage: $0 [OPTION]... [VAR=VALUE]... … … 1373 1406 if test -n "$ac_init_help"; then 1374 1407 case $ac_init_help in 1375 short | recursive ) echo "Configuration of icedtea-web 1. 1.2:";;1408 short | recursive ) echo "Configuration of icedtea-web 1.3:";; 1376 1409 esac 1377 1410 cat <<\_ACEOF … … 1398 1431 --with-javadoc specify location of Java documentation tool 1399 1432 (javadoc) 1433 --with-keytool specify location of keytool for signed part of 1434 run-netx-dist 1435 --with-jarsigner specify location of jarsigner for signed part od 1436 run-netx-dist 1400 1437 --with-pkgversion=PKG Use PKG in the version string in addition to 1401 1438 "IcedTea" 1439 --with-gtk=2|3|default the GTK+ version to use (default: 3) 1402 1440 --with-jre-home jre home directory (default is the JRE under the 1403 1441 JDK) 1404 1442 --with-java specify location of the 1.5 java vm 1443 --with-firefox specify the location of firefox 1444 --with-chrome specify the location of chrome 1445 --with-chromium specify the location of chromium 1446 --with-opera specify the location of opera 1447 --with-midori specify the location of midori 1448 --with-epiphany specify the location of epiphany 1449 --with-browser-tests yes - as defined (default), no - all browser tests 1450 will be skipped, one - all "mutiple browsers" test 1451 will behave as "one" test, all - all browser tests 1452 will be run for all set browsers 1405 1453 --with-rhino specify location of the rhino jar 1406 1454 --with-junit specify location of the junit jar 1455 --with-emma specify location of the emma jar 1407 1456 1408 1457 Some influential environment variables: … … 1431 1480 X11_CFLAGS C compiler flags for X11, overriding pkg-config 1432 1481 X11_LIBS linker flags for X11, overriding pkg-config 1482 GLIB2_V_216_CFLAGS 1483 C compiler flags for GLIB2_V_216, overriding pkg-config 1484 GLIB2_V_216_LIBS 1485 linker flags for GLIB2_V_216, overriding pkg-config 1433 1486 1434 1487 Use these variables to override the choices made by `configure' or to help … … 1499 1552 if $ac_init_version; then 1500 1553 cat <<\_ACEOF 1501 icedtea-web configure 1. 1.21554 icedtea-web configure 1.3 1502 1555 generated by GNU Autoconf 2.68 1503 1556 … … 1638 1691 running configure, to aid debugging if configure makes a mistake. 1639 1692 1640 It was created by icedtea-web $as_me 1. 1.2, which was1693 It was created by icedtea-web $as_me 1.3, which was 1641 1694 generated by GNU Autoconf 2.68. Invocation command line was 1642 1695 … … 2453 2506 # Define the identity of the package. 2454 2507 PACKAGE='icedtea-web' 2455 VERSION='1. 1.2'2508 VERSION='1.3' 2456 2509 2457 2510 … … 2483 2536 # We need awk for the "check" target. The system "awk" is bad on 2484 2537 # some platforms. 2485 # Always define AMTAR for backward compatibility. 2486 2487 AMTAR= ${AMTAR-"${am_missing_run}tar"}2538 # Always define AMTAR for backward compatibility. Yes, it's still used 2539 # in the wild :-( We should find a proper way to deprecate it ... 2540 AMTAR='$${TAR-tar}' 2488 2541 2489 2542 … … 3498 3551 am_depcomp="$ac_aux_dir/depcomp" 3499 3552 AMDEPBACKSLASH='\' 3553 am__nodep='_no' 3500 3554 fi 3501 3555 if test "x$enable_dependency_tracking" != xno; then … … 3522 3576 # making a dummy file named `D' -- because `-MD' means `put the output 3523 3577 # in D'. 3578 rm -rf conftest.dir 3524 3579 mkdir conftest.dir 3525 3580 # Copy depcomp to subdir because otherwise we won't find it if we're … … 3581 3636 fi 3582 3637 ;; 3583 msv isualcpp | msvcmsys)3638 msvc7 | msvc7msys | msvisualcpp | msvcmsys) 3584 3639 # This compiler won't grok `-c -o', but also, the minuso test has 3585 3640 # not run yet. These depmodes are late enough in the game, and … … 3906 3961 # making a dummy file named `D' -- because `-MD' means `put the output 3907 3962 # in D'. 3963 rm -rf conftest.dir 3908 3964 mkdir conftest.dir 3909 3965 # Copy depcomp to subdir because otherwise we won't find it if we're … … 3965 4021 fi 3966 4022 ;; 3967 msv isualcpp | msvcmsys)4023 msvc7 | msvc7msys | msvisualcpp | msvcmsys) 3968 4024 # This compiler won't grok `-c -o', but also, the minuso test has 3969 4025 # not run yet. These depmodes are late enough in the game, and … … 5832 5888 mkdir pkg 5833 5889 cat << \EOF > $CLASS 5834 /* [#]line 58 34"configure" */5890 /* [#]line 5890 "configure" */ 5835 5891 package pkg; 5836 5892 … … 5870 5926 5871 5927 5928 5929 5930 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for keytool" >&5 5931 $as_echo_n "checking for keytool... " >&6; } 5932 5933 # Check whether --with-keytool was given. 5934 if test "${with_keytool+set}" = set; then : 5935 withval=$with_keytool; 5936 if test "${withval}" = "yes" ; then 5937 KEYTOOL=${SYSTEM_JDK_DIR}/bin/keytool 5938 else 5939 KEYTOOL="${withval}" 5940 fi 5941 5942 else 5943 5944 KEYTOOL=${SYSTEM_JDK_DIR}/bin/keytool 5945 5946 fi 5947 5948 if ! test -f "${KEYTOOL}"; then 5949 # Extract the first word of "keytool", so it can be a program name with args. 5950 set dummy keytool; ac_word=$2 5951 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 5952 $as_echo_n "checking for $ac_word... " >&6; } 5953 if ${ac_cv_path_KEYTOOL+:} false; then : 5954 $as_echo_n "(cached) " >&6 5955 else 5956 case $KEYTOOL in 5957 [\\/]* | ?:[\\/]*) 5958 ac_cv_path_KEYTOOL="$KEYTOOL" # Let the user override the test with a path. 5959 ;; 5960 *) 5961 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 5962 for as_dir in $PATH 5963 do 5964 IFS=$as_save_IFS 5965 test -z "$as_dir" && as_dir=. 5966 for ac_exec_ext in '' $ac_executable_extensions; do 5967 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 5968 ac_cv_path_KEYTOOL="$as_dir/$ac_word$ac_exec_ext" 5969 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 5970 break 2 5971 fi 5972 done 5973 done 5974 IFS=$as_save_IFS 5975 5976 ;; 5977 esac 5978 fi 5979 KEYTOOL=$ac_cv_path_KEYTOOL 5980 if test -n "$KEYTOOL"; then 5981 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $KEYTOOL" >&5 5982 $as_echo "$KEYTOOL" >&6; } 5983 else 5984 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 5985 $as_echo "no" >&6; } 5986 fi 5987 5988 5989 fi 5990 if ! test -f "${KEYTOOL}"; then 5991 KEYTOOL="" 5992 fi 5993 if test -z "${KEYTOOL}" ; then 5994 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"keytool not found so signed part of run-netx-dist will fail\"" >&5 5995 $as_echo "$as_me: WARNING: \"keytool not found so signed part of run-netx-dist will fail\"" >&2;} 5996 fi 5997 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${KEYTOOL}" >&5 5998 $as_echo "${KEYTOOL}" >&6; } 5999 6000 6001 6002 6003 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jarsigner" >&5 6004 $as_echo_n "checking for jarsigner... " >&6; } 6005 6006 # Check whether --with-jarsigner was given. 6007 if test "${with_jarsigner+set}" = set; then : 6008 withval=$with_jarsigner; 6009 if test "${withval}" = "yes" ; then 6010 JARSIGNER=${SYSTEM_JDK_DIR}/bin/jarsigner 6011 else 6012 JARSIGNER="${withval}" 6013 fi 6014 6015 else 6016 6017 JARSIGNER=${SYSTEM_JDK_DIR}/bin/jarsigner 6018 6019 fi 6020 6021 if ! test -f "${JARSIGNER}"; then 6022 # Extract the first word of "jarsigner", so it can be a program name with args. 6023 set dummy jarsigner; ac_word=$2 6024 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 6025 $as_echo_n "checking for $ac_word... " >&6; } 6026 if ${ac_cv_path_JARSIGNER+:} false; then : 6027 $as_echo_n "(cached) " >&6 6028 else 6029 case $JARSIGNER in 6030 [\\/]* | ?:[\\/]*) 6031 ac_cv_path_JARSIGNER="$JARSIGNER" # Let the user override the test with a path. 6032 ;; 6033 *) 6034 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 6035 for as_dir in $PATH 6036 do 6037 IFS=$as_save_IFS 6038 test -z "$as_dir" && as_dir=. 6039 for ac_exec_ext in '' $ac_executable_extensions; do 6040 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 6041 ac_cv_path_JARSIGNER="$as_dir/$ac_word$ac_exec_ext" 6042 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 6043 break 2 6044 fi 6045 done 6046 done 6047 IFS=$as_save_IFS 6048 6049 test -z "$ac_cv_path_JARSIGNER" && ac_cv_path_JARSIGNER="""" 6050 ;; 6051 esac 6052 fi 6053 JARSIGNER=$ac_cv_path_JARSIGNER 6054 if test -n "$JARSIGNER"; then 6055 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JARSIGNER" >&5 6056 $as_echo "$JARSIGNER" >&6; } 6057 else 6058 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6059 $as_echo "no" >&6; } 6060 fi 6061 6062 6063 fi 6064 if ! test -f "${JARSIGNER}"; then 6065 JARSIGNER="" 6066 fi 6067 if test -z "${JARSIGNER}"; then 6068 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"jarsigner not found so signed part of run-netx-dist will fail\"" >&5 6069 $as_echo "$as_me: WARNING: \"jarsigner not found so signed part of run-netx-dist will fail\"" >&2;} 6070 fi 6071 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${JARSIGNER}" >&5 6072 $as_echo "${JARSIGNER}" >&6; } 6073 6074 5872 6075 ac_config_files="$ac_config_files javac" 5873 6076 … … 6175 6378 if test "x${enable_plugin}" = "xyes" ; then 6176 6379 6380 # Check whether --with-gtk was given. 6381 if test "${with_gtk+set}" = set; then : 6382 withval=$with_gtk; case "$with_gtk" in 6383 2|3|default) ;; 6384 *) as_fn_error $? "invalid GTK version specified" "$LINENO" 5 ;; 6385 esac 6386 else 6387 with_gtk=default 6388 fi 6389 6390 6391 case "$with_gtk" in 6392 default) 6393 6394 pkg_failed=no 6395 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 6396 $as_echo_n "checking for GTK... " >&6; } 6397 6398 if test -n "$GTK_CFLAGS"; then 6399 pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" 6400 elif test -n "$PKG_CONFIG"; then 6401 if test -n "$PKG_CONFIG" && \ 6402 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0\""; } >&5 6403 ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5 6404 ac_status=$? 6405 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6406 test $ac_status = 0; }; then 6407 pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0" 2>/dev/null` 6408 else 6409 pkg_failed=yes 6410 fi 6411 else 6412 pkg_failed=untried 6413 fi 6414 if test -n "$GTK_LIBS"; then 6415 pkg_cv_GTK_LIBS="$GTK_LIBS" 6416 elif test -n "$PKG_CONFIG"; then 6417 if test -n "$PKG_CONFIG" && \ 6418 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0\""; } >&5 6419 ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5 6420 ac_status=$? 6421 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6422 test $ac_status = 0; }; then 6423 pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0" 2>/dev/null` 6424 else 6425 pkg_failed=yes 6426 fi 6427 else 6428 pkg_failed=untried 6429 fi 6430 6431 6432 6433 if test $pkg_failed = yes; then 6434 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6435 $as_echo "no" >&6; } 6436 6437 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 6438 _pkg_short_errors_supported=yes 6439 else 6440 _pkg_short_errors_supported=no 6441 fi 6442 if test $_pkg_short_errors_supported = yes; then 6443 GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-3.0" 2>&1` 6444 else 6445 GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-3.0" 2>&1` 6446 fi 6447 # Put the nasty error message in config.log where it belongs 6448 echo "$GTK_PKG_ERRORS" >&5 6449 6450 6177 6451 pkg_failed=no 6178 6452 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 … … 6231 6505 echo "$GTK_PKG_ERRORS" >&5 6232 6506 6233 as_fn_error $? "Package requirements (gtk+-2.0) were not met: 6234 6235 $GTK_PKG_ERRORS 6236 6237 Consider adjusting the PKG_CONFIG_PATH environment variable if you 6238 installed software in a non-standard prefix. 6239 6240 Alternatively, you may set the environment variables GTK_CFLAGS 6241 and GTK_LIBS to avoid the need to call pkg-config. 6242 See the pkg-config man page for more details." "$LINENO" 5 6507 as_fn_error $? "GTK $with_gtk not found" "$LINENO" 5 6243 6508 6244 6509 elif test $pkg_failed = untried; then 6245 6510 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6246 6511 $as_echo "no" >&6; } 6247 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 6248 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 6249 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 6250 is in your PATH or set the PKG_CONFIG environment variable to the full 6251 path to pkg-config. 6252 6253 Alternatively, you may set the environment variables GTK_CFLAGS 6254 and GTK_LIBS to avoid the need to call pkg-config. 6255 See the pkg-config man page for more details. 6256 6257 To get pkg-config, see <http://pkg-config.freedesktop.org/>. 6258 See \`config.log' for more details" "$LINENO" 5; } 6512 as_fn_error $? "GTK $with_gtk not found" "$LINENO" 5 6259 6513 6260 6514 else … … 6264 6518 $as_echo "yes" >&6; } 6265 6519 6266 fi 6520 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK2 version" >&5 6521 $as_echo_n "checking for GTK2 version... " >&6; } 6522 GTK_VER=`$PKG_CONFIG --modversion gtk+-2.0` 6523 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_VER" >&5 6524 $as_echo "$GTK_VER" >&6; } 6525 6526 fi 6527 6528 elif test $pkg_failed = untried; then 6529 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6530 $as_echo "no" >&6; } 6531 6532 pkg_failed=no 6533 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 6534 $as_echo_n "checking for GTK... " >&6; } 6535 6536 if test -n "$GTK_CFLAGS"; then 6537 pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" 6538 elif test -n "$PKG_CONFIG"; then 6539 if test -n "$PKG_CONFIG" && \ 6540 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\""; } >&5 6541 ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5 6542 ac_status=$? 6543 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6544 test $ac_status = 0; }; then 6545 pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0" 2>/dev/null` 6546 else 6547 pkg_failed=yes 6548 fi 6549 else 6550 pkg_failed=untried 6551 fi 6552 if test -n "$GTK_LIBS"; then 6553 pkg_cv_GTK_LIBS="$GTK_LIBS" 6554 elif test -n "$PKG_CONFIG"; then 6555 if test -n "$PKG_CONFIG" && \ 6556 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\""; } >&5 6557 ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5 6558 ac_status=$? 6559 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6560 test $ac_status = 0; }; then 6561 pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0" 2>/dev/null` 6562 else 6563 pkg_failed=yes 6564 fi 6565 else 6566 pkg_failed=untried 6567 fi 6568 6569 6570 6571 if test $pkg_failed = yes; then 6572 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6573 $as_echo "no" >&6; } 6574 6575 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 6576 _pkg_short_errors_supported=yes 6577 else 6578 _pkg_short_errors_supported=no 6579 fi 6580 if test $_pkg_short_errors_supported = yes; then 6581 GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0" 2>&1` 6582 else 6583 GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0" 2>&1` 6584 fi 6585 # Put the nasty error message in config.log where it belongs 6586 echo "$GTK_PKG_ERRORS" >&5 6587 6588 as_fn_error $? "GTK $with_gtk not found" "$LINENO" 5 6589 6590 elif test $pkg_failed = untried; then 6591 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6592 $as_echo "no" >&6; } 6593 as_fn_error $? "GTK $with_gtk not found" "$LINENO" 5 6594 6595 else 6596 GTK_CFLAGS=$pkg_cv_GTK_CFLAGS 6597 GTK_LIBS=$pkg_cv_GTK_LIBS 6598 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 6599 $as_echo "yes" >&6; } 6600 6601 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK2 version" >&5 6602 $as_echo_n "checking for GTK2 version... " >&6; } 6603 GTK_VER=`$PKG_CONFIG --modversion gtk+-2.0` 6604 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_VER" >&5 6605 $as_echo "$GTK_VER" >&6; } 6606 6607 fi 6608 6609 else 6610 GTK_CFLAGS=$pkg_cv_GTK_CFLAGS 6611 GTK_LIBS=$pkg_cv_GTK_LIBS 6612 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 6613 $as_echo "yes" >&6; } 6614 6615 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK3 version" >&5 6616 $as_echo_n "checking for GTK3 version... " >&6; } 6617 GTK_VER=`$PKG_CONFIG --modversion gtk+-3.0` 6618 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_VER" >&5 6619 $as_echo "$GTK_VER" >&6; } 6620 6621 fi 6622 ;; 6623 *) 6624 6625 pkg_failed=no 6626 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 6627 $as_echo_n "checking for GTK... " >&6; } 6628 6629 if test -n "$GTK_CFLAGS"; then 6630 pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" 6631 elif test -n "$PKG_CONFIG"; then 6632 if test -n "$PKG_CONFIG" && \ 6633 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-\$with_gtk.0\""; } >&5 6634 ($PKG_CONFIG --exists --print-errors "gtk+-$with_gtk.0") 2>&5 6635 ac_status=$? 6636 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6637 test $ac_status = 0; }; then 6638 pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-$with_gtk.0" 2>/dev/null` 6639 else 6640 pkg_failed=yes 6641 fi 6642 else 6643 pkg_failed=untried 6644 fi 6645 if test -n "$GTK_LIBS"; then 6646 pkg_cv_GTK_LIBS="$GTK_LIBS" 6647 elif test -n "$PKG_CONFIG"; then 6648 if test -n "$PKG_CONFIG" && \ 6649 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-\$with_gtk.0\""; } >&5 6650 ($PKG_CONFIG --exists --print-errors "gtk+-$with_gtk.0") 2>&5 6651 ac_status=$? 6652 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6653 test $ac_status = 0; }; then 6654 pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-$with_gtk.0" 2>/dev/null` 6655 else 6656 pkg_failed=yes 6657 fi 6658 else 6659 pkg_failed=untried 6660 fi 6661 6662 6663 6664 if test $pkg_failed = yes; then 6665 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6666 $as_echo "no" >&6; } 6667 6668 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 6669 _pkg_short_errors_supported=yes 6670 else 6671 _pkg_short_errors_supported=no 6672 fi 6673 if test $_pkg_short_errors_supported = yes; then 6674 GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-$with_gtk.0" 2>&1` 6675 else 6676 GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-$with_gtk.0" 2>&1` 6677 fi 6678 # Put the nasty error message in config.log where it belongs 6679 echo "$GTK_PKG_ERRORS" >&5 6680 6681 as_fn_error $? "GTK $with_gtk not found" "$LINENO" 5 6682 6683 elif test $pkg_failed = untried; then 6684 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6685 $as_echo "no" >&6; } 6686 as_fn_error $? "GTK $with_gtk not found" "$LINENO" 5 6687 6688 else 6689 GTK_CFLAGS=$pkg_cv_GTK_CFLAGS 6690 GTK_LIBS=$pkg_cv_GTK_LIBS 6691 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 6692 $as_echo "yes" >&6; } 6693 6694 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK$with_gtk version" >&5 6695 $as_echo_n "checking for GTK$with_gtk version... " >&6; } 6696 GTK_VER=`$PKG_CONFIG --modversion gtk+-$with_gtk.0` 6697 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_VER" >&5 6698 $as_echo "$GTK_VER" >&6; } 6699 6700 fi 6701 ;; 6702 esac 6703 6267 6704 6268 6705 pkg_failed=no … … 6370 6807 elif test -n "$PKG_CONFIG"; then 6371 6808 if test -n "$PKG_CONFIG" && \ 6809 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"npapi-sdk\""; } >&5 6810 ($PKG_CONFIG --exists --print-errors "npapi-sdk") 2>&5 6811 ac_status=$? 6812 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6813 test $ac_status = 0; }; then 6814 pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "npapi-sdk" 2>/dev/null` 6815 else 6816 pkg_failed=yes 6817 fi 6818 else 6819 pkg_failed=untried 6820 fi 6821 if test -n "$MOZILLA_LIBS"; then 6822 pkg_cv_MOZILLA_LIBS="$MOZILLA_LIBS" 6823 elif test -n "$PKG_CONFIG"; then 6824 if test -n "$PKG_CONFIG" && \ 6825 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"npapi-sdk\""; } >&5 6826 ($PKG_CONFIG --exists --print-errors "npapi-sdk") 2>&5 6827 ac_status=$? 6828 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6829 test $ac_status = 0; }; then 6830 pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "npapi-sdk" 2>/dev/null` 6831 else 6832 pkg_failed=yes 6833 fi 6834 else 6835 pkg_failed=untried 6836 fi 6837 6838 6839 6840 if test $pkg_failed = yes; then 6841 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6842 $as_echo "no" >&6; } 6843 6844 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 6845 _pkg_short_errors_supported=yes 6846 else 6847 _pkg_short_errors_supported=no 6848 fi 6849 if test $_pkg_short_errors_supported = yes; then 6850 MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "npapi-sdk" 2>&1` 6851 else 6852 MOZILLA_PKG_ERRORS=`$PKG_CONFIG --print-errors "npapi-sdk" 2>&1` 6853 fi 6854 # Put the nasty error message in config.log where it belongs 6855 echo "$MOZILLA_PKG_ERRORS" >&5 6856 6857 6858 6859 pkg_failed=no 6860 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MOZILLA" >&5 6861 $as_echo_n "checking for MOZILLA... " >&6; } 6862 6863 if test -n "$MOZILLA_CFLAGS"; then 6864 pkg_cv_MOZILLA_CFLAGS="$MOZILLA_CFLAGS" 6865 elif test -n "$PKG_CONFIG"; then 6866 if test -n "$PKG_CONFIG" && \ 6372 6867 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin\""; } >&5 6373 6868 ($PKG_CONFIG --exists --print-errors "mozilla-plugin") 2>&5 … … 6453 6948 fi 6454 6949 6950 elif test $pkg_failed = untried; then 6951 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6952 $as_echo "no" >&6; } 6953 6954 6955 pkg_failed=no 6956 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MOZILLA" >&5 6957 $as_echo_n "checking for MOZILLA... " >&6; } 6958 6959 if test -n "$MOZILLA_CFLAGS"; then 6960 pkg_cv_MOZILLA_CFLAGS="$MOZILLA_CFLAGS" 6961 elif test -n "$PKG_CONFIG"; then 6962 if test -n "$PKG_CONFIG" && \ 6963 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin\""; } >&5 6964 ($PKG_CONFIG --exists --print-errors "mozilla-plugin") 2>&5 6965 ac_status=$? 6966 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6967 test $ac_status = 0; }; then 6968 pkg_cv_MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "mozilla-plugin" 2>/dev/null` 6969 else 6970 pkg_failed=yes 6971 fi 6972 else 6973 pkg_failed=untried 6974 fi 6975 if test -n "$MOZILLA_LIBS"; then 6976 pkg_cv_MOZILLA_LIBS="$MOZILLA_LIBS" 6977 elif test -n "$PKG_CONFIG"; then 6978 if test -n "$PKG_CONFIG" && \ 6979 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mozilla-plugin\""; } >&5 6980 ($PKG_CONFIG --exists --print-errors "mozilla-plugin") 2>&5 6981 ac_status=$? 6982 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 6983 test $ac_status = 0; }; then 6984 pkg_cv_MOZILLA_LIBS=`$PKG_CONFIG --libs "mozilla-plugin" 2>/dev/null` 6985 else 6986 pkg_failed=yes 6987 fi 6988 else 6989 pkg_failed=untried 6990 fi 6991 6992 6993 6994 if test $pkg_failed = yes; then 6995 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 6996 $as_echo "no" >&6; } 6997 6998 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 6999 _pkg_short_errors_supported=yes 7000 else 7001 _pkg_short_errors_supported=no 7002 fi 7003 if test $_pkg_short_errors_supported = yes; then 7004 MOZILLA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "mozilla-plugin" 2>&1` 7005 else 7006 MOZILLA_PKG_ERRORS=`$PKG_CONFIG --print-errors "mozilla-plugin" 2>&1` 7007 fi 7008 # Put the nasty error message in config.log where it belongs 7009 echo "$MOZILLA_PKG_ERRORS" >&5 7010 7011 as_fn_error $? "Package requirements (mozilla-plugin) were not met: 7012 7013 $MOZILLA_PKG_ERRORS 7014 7015 Consider adjusting the PKG_CONFIG_PATH environment variable if you 7016 installed software in a non-standard prefix. 7017 7018 Alternatively, you may set the environment variables MOZILLA_CFLAGS 7019 and MOZILLA_LIBS to avoid the need to call pkg-config. 7020 See the pkg-config man page for more details." "$LINENO" 5 7021 7022 elif test $pkg_failed = untried; then 7023 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 7024 $as_echo "no" >&6; } 7025 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 7026 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 7027 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it 7028 is in your PATH or set the PKG_CONFIG environment variable to the full 7029 path to pkg-config. 7030 7031 Alternatively, you may set the environment variables MOZILLA_CFLAGS 7032 and MOZILLA_LIBS to avoid the need to call pkg-config. 7033 See the pkg-config man page for more details. 7034 7035 To get pkg-config, see <http://pkg-config.freedesktop.org/>. 7036 See \`config.log' for more details" "$LINENO" 5; } 7037 7038 else 7039 MOZILLA_CFLAGS=$pkg_cv_MOZILLA_CFLAGS 7040 MOZILLA_LIBS=$pkg_cv_MOZILLA_LIBS 7041 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 7042 $as_echo "yes" >&6; } 7043 7044 fi 7045 7046 else 7047 MOZILLA_CFLAGS=$pkg_cv_MOZILLA_CFLAGS 7048 MOZILLA_LIBS=$pkg_cv_MOZILLA_LIBS 7049 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 7050 $as_echo "yes" >&6; } 7051 7052 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xulrunner version" >&5 7053 $as_echo_n "checking for xulrunner version... " >&6; } 7054 if ${xulrunner_cv_collapsed_version+:} false; then : 7055 $as_echo_n "(cached) " >&6 7056 else 7057 7058 # XXX: use NPAPI versions instead 7059 xulrunner_cv_collapsed_version=20000000 7060 7061 fi 7062 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xulrunner_cv_collapsed_version" >&5 7063 $as_echo "$xulrunner_cv_collapsed_version" >&6; } 7064 7065 fi 7066 6455 7067 6456 7068 … … 6478 7090 then 6479 7091 xulrunner_cv_collapsed_version=`pkg-config --modversion libxul | awk -F. '{power=6; v=0; for (i=1; i <= NF; i++) {v += $i * 10 ^ power; power -=2}; print v}'` 7092 elif pkg-config --modversion mozilla-plugin >/dev/null 2>&1 7093 then 7094 xulrunner_cv_collapsed_version=`pkg-config --modversion mozilla-plugin | awk -F. '{power=6; v=0; for (i=1; i <= NF; i++) {v += $i * 10 ^ power; power -=2}; print v}'` 6480 7095 else 6481 7096 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 … … 6787 7402 $as_echo "${JAVA}" >&6; } 6788 7403 7404 JAVA_VERSION=`$JAVA -version 2>&1 | sed -n '1s/[^"]*"\(.*\)"$/\1/p'` 7405 case "${JAVA_VERSION}" in 7406 1.7*) VERSION_DEFS='-DHAVE_JAVA7';; 7407 esac 7408 6789 7409 6790 7410 … … 6802 7422 cd tmp.$$ 6803 7423 cat << \EOF > $CLASS 6804 /* [#]line 6804 "configure" */7424 /* [#]line 7424 "configure" */ 6805 7425 package sun.applet; 6806 7426 … … 6852 7472 cd tmp.$$ 6853 7473 cat << \EOF > $CLASS 6854 /* [#]line 6854 "configure" */7474 /* [#]line 7474 "configure" */ 6855 7475 package sun.applet; 6856 7476 … … 6902 7522 cd tmp.$$ 6903 7523 cat << \EOF > $CLASS 6904 /* [#]line 6904 "configure" */7524 /* [#]line 7524 "configure" */ 6905 7525 package sun.applet; 6906 7526 … … 6952 7572 cd tmp.$$ 6953 7573 cat << \EOF > $CLASS 6954 /* [#]line 6954 "configure" */7574 /* [#]line 7574 "configure" */ 6955 7575 package sun.applet; 6956 7576 … … 7002 7622 cd tmp.$$ 7003 7623 cat << \EOF > $CLASS 7004 /* [#]line 7 004 "configure" */7624 /* [#]line 7624 "configure" */ 7005 7625 package sun.applet; 7006 7626 … … 7052 7672 cd tmp.$$ 7053 7673 cat << \EOF > $CLASS 7054 /* [#]line 7 054 "configure" */7674 /* [#]line 7674 "configure" */ 7055 7675 package sun.applet; 7056 7676 … … 7102 7722 cd tmp.$$ 7103 7723 cat << \EOF > $CLASS 7104 /* [#]line 7 104 "configure" */7724 /* [#]line 7724 "configure" */ 7105 7725 package sun.applet; 7106 7726 … … 7152 7772 cd tmp.$$ 7153 7773 cat << \EOF > $CLASS 7154 /* [#]line 7 154 "configure" */7774 /* [#]line 7774 "configure" */ 7155 7775 package sun.applet; 7156 7776 … … 7191 7811 7192 7812 7193 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun.misc. BASE64Encoder is available" >&57194 $as_echo_n "checking if sun.misc. BASE64Encoder is available... " >&6; }7195 if ${it_cv_SUN_MISC_ BASE64ENCODER+:} false; then :7813 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun.misc.HexDumpEncoder is available" >&5 7814 $as_echo_n "checking if sun.misc.HexDumpEncoder is available... " >&6; } 7815 if ${it_cv_SUN_MISC_HEXDUMPENCODER+:} false; then : 7196 7816 $as_echo_n "(cached) " >&6 7197 7817 else … … 7202 7822 cd tmp.$$ 7203 7823 cat << \EOF > $CLASS 7204 /* [#]line 7204 "configure" */ 7205 package sun.applet; 7206 7207 import sun.misc.BASE64Encoder; 7208 7209 public class Test 7210 { 7211 public static void main(String[] args) 7212 throws Exception 7213 { 7214 System.out.println(Class.forName("sun.misc.BASE64Encoder")); 7215 } 7216 } 7217 7218 EOF 7219 if $JAVAC -cp . $JAVACFLAGS -nowarn $CLASS >&5 2>&1; then 7220 if $JAVA -classpath . $BYTECODE >&5 2>&1; then 7221 it_cv_SUN_MISC_BASE64ENCODER=yes; 7222 else 7223 it_cv_SUN_MISC_BASE64ENCODER=no; 7224 fi 7225 else 7226 it_cv_SUN_MISC_BASE64ENCODER=no; 7227 fi 7228 7229 fi 7230 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $it_cv_SUN_MISC_BASE64ENCODER" >&5 7231 $as_echo "$it_cv_SUN_MISC_BASE64ENCODER" >&6; } 7232 rm -f $CLASS *.class 7233 cd .. 7234 # should be rmdir but has to be rm -rf due to sun.applet usage 7235 rm -rf tmp.$$ 7236 if test x"${it_cv_SUN_MISC_BASE64ENCODER}" = "xno"; then 7237 as_fn_error $? "sun.misc.BASE64Encoder not found." "$LINENO" 5 7238 fi 7239 7240 7241 7242 7243 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun.misc.HexDumpEncoder is available" >&5 7244 $as_echo_n "checking if sun.misc.HexDumpEncoder is available... " >&6; } 7245 if ${it_cv_SUN_MISC_HEXDUMPENCODER+:} false; then : 7246 $as_echo_n "(cached) " >&6 7247 else 7248 7249 CLASS=sun/applet/Test.java 7250 BYTECODE=$(echo $CLASS|sed 's#\.java##') 7251 mkdir -p tmp.$$/$(dirname $CLASS) 7252 cd tmp.$$ 7253 cat << \EOF > $CLASS 7254 /* [#]line 7254 "configure" */ 7824 /* [#]line 7824 "configure" */ 7255 7825 package sun.applet; 7256 7826 … … 7302 7872 cd tmp.$$ 7303 7873 cat << \EOF > $CLASS 7304 /* [#]line 7 304 "configure" */7874 /* [#]line 7874 "configure" */ 7305 7875 package sun.applet; 7306 7876 … … 7352 7922 cd tmp.$$ 7353 7923 cat << \EOF > $CLASS 7354 /* [#]line 7 354 "configure" */7924 /* [#]line 7924 "configure" */ 7355 7925 package sun.applet; 7356 7926 … … 7391 7961 7392 7962 7393 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun. awt.X11.XEmbeddedFrame is available" >&57394 $as_echo_n "checking if sun. awt.X11.XEmbeddedFrame is available... " >&6; }7395 if ${it_cv_SUN_ AWT_X11_XEMBEDDEDFRAME+:} false; then :7963 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun.net.www.protocol.jar.URLJarFile is available" >&5 7964 $as_echo_n "checking if sun.net.www.protocol.jar.URLJarFile is available... " >&6; } 7965 if ${it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE+:} false; then : 7396 7966 $as_echo_n "(cached) " >&6 7397 7967 else … … 7402 7972 cd tmp.$$ 7403 7973 cat << \EOF > $CLASS 7404 /* [#]line 7404 "configure" */ 7974 /* [#]line 7974 "configure" */ 7975 package sun.applet; 7976 7977 import sun.net.www.protocol.jar.URLJarFile; 7978 7979 public class Test 7980 { 7981 public static void main(String[] args) 7982 throws Exception 7983 { 7984 System.out.println(Class.forName("sun.net.www.protocol.jar.URLJarFile")); 7985 } 7986 } 7987 7988 EOF 7989 if $JAVAC -cp . $JAVACFLAGS -nowarn $CLASS >&5 2>&1; then 7990 if $JAVA -classpath . $BYTECODE >&5 2>&1; then 7991 it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE=yes; 7992 else 7993 it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE=no; 7994 fi 7995 else 7996 it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE=no; 7997 fi 7998 7999 fi 8000 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE" >&5 8001 $as_echo "$it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE" >&6; } 8002 rm -f $CLASS *.class 8003 cd .. 8004 # should be rmdir but has to be rm -rf due to sun.applet usage 8005 rm -rf tmp.$$ 8006 if test x"${it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE}" = "xno"; then 8007 as_fn_error $? "sun.net.www.protocol.jar.URLJarFile not found." "$LINENO" 5 8008 fi 8009 8010 8011 8012 8013 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun.net.www.protocol.jar.URLJarFileCallBack is available" >&5 8014 $as_echo_n "checking if sun.net.www.protocol.jar.URLJarFileCallBack is available... " >&6; } 8015 if ${it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK+:} false; then : 8016 $as_echo_n "(cached) " >&6 8017 else 8018 8019 CLASS=sun/applet/Test.java 8020 BYTECODE=$(echo $CLASS|sed 's#\.java##') 8021 mkdir -p tmp.$$/$(dirname $CLASS) 8022 cd tmp.$$ 8023 cat << \EOF > $CLASS 8024 /* [#]line 8024 "configure" */ 8025 package sun.applet; 8026 8027 import sun.net.www.protocol.jar.URLJarFileCallBack; 8028 8029 public class Test 8030 { 8031 public static void main(String[] args) 8032 throws Exception 8033 { 8034 System.out.println(Class.forName("sun.net.www.protocol.jar.URLJarFileCallBack")); 8035 } 8036 } 8037 8038 EOF 8039 if $JAVAC -cp . $JAVACFLAGS -nowarn $CLASS >&5 2>&1; then 8040 if $JAVA -classpath . $BYTECODE >&5 2>&1; then 8041 it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK=yes; 8042 else 8043 it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK=no; 8044 fi 8045 else 8046 it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK=no; 8047 fi 8048 8049 fi 8050 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK" >&5 8051 $as_echo "$it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK" >&6; } 8052 rm -f $CLASS *.class 8053 cd .. 8054 # should be rmdir but has to be rm -rf due to sun.applet usage 8055 rm -rf tmp.$$ 8056 if test x"${it_cv_SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK}" = "xno"; then 8057 as_fn_error $? "sun.net.www.protocol.jar.URLJarFileCallBack not found." "$LINENO" 5 8058 fi 8059 8060 8061 8062 8063 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sun.awt.X11.XEmbeddedFrame is available" >&5 8064 $as_echo_n "checking if sun.awt.X11.XEmbeddedFrame is available... " >&6; } 8065 if ${it_cv_SUN_AWT_X11_XEMBEDDEDFRAME+:} false; then : 8066 $as_echo_n "(cached) " >&6 8067 else 8068 8069 CLASS=sun/applet/Test.java 8070 BYTECODE=$(echo $CLASS|sed 's#\.java##') 8071 mkdir -p tmp.$$/$(dirname $CLASS) 8072 cd tmp.$$ 8073 cat << \EOF > $CLASS 8074 /* [#]line 8074 "configure" */ 7405 8075 package sun.applet; 7406 8076 … … 7452 8122 cd tmp.$$ 7453 8123 cat << \EOF > $CLASS 7454 /* [#]line 7454 "configure" */8124 /* [#]line 8124 "configure" */ 7455 8125 package sun.applet; 7456 8126 … … 7502 8172 cd tmp.$$ 7503 8173 cat << \EOF > $CLASS 7504 /* [#]line 7504 "configure" */8174 /* [#]line 8174 "configure" */ 7505 8175 package sun.applet; 7506 8176 … … 7552 8222 cd tmp.$$ 7553 8223 cat << \EOF > $CLASS 7554 /* [#]line 7554 "configure" */8224 /* [#]line 8224 "configure" */ 7555 8225 package sun.applet; 7556 8226 … … 7602 8272 cd tmp.$$ 7603 8273 cat << \EOF > $CLASS 7604 /* [#]line 7604 "configure" */8274 /* [#]line 8274 "configure" */ 7605 8275 import java.lang.reflect.Modifier; 7606 8276 … … 7654 8324 7655 8325 8326 8327 pkg_failed=no 8328 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB2_V_216" >&5 8329 $as_echo_n "checking for GLIB2_V_216... " >&6; } 8330 8331 if test -n "$GLIB2_V_216_CFLAGS"; then 8332 pkg_cv_GLIB2_V_216_CFLAGS="$GLIB2_V_216_CFLAGS" 8333 elif test -n "$PKG_CONFIG"; then 8334 if test -n "$PKG_CONFIG" && \ 8335 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.16\""; } >&5 8336 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.16") 2>&5 8337 ac_status=$? 8338 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 8339 test $ac_status = 0; }; then 8340 pkg_cv_GLIB2_V_216_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.16" 2>/dev/null` 8341 else 8342 pkg_failed=yes 8343 fi 8344 else 8345 pkg_failed=untried 8346 fi 8347 if test -n "$GLIB2_V_216_LIBS"; then 8348 pkg_cv_GLIB2_V_216_LIBS="$GLIB2_V_216_LIBS" 8349 elif test -n "$PKG_CONFIG"; then 8350 if test -n "$PKG_CONFIG" && \ 8351 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.16\""; } >&5 8352 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.16") 2>&5 8353 ac_status=$? 8354 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 8355 test $ac_status = 0; }; then 8356 pkg_cv_GLIB2_V_216_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.16" 2>/dev/null` 8357 else 8358 pkg_failed=yes 8359 fi 8360 else 8361 pkg_failed=untried 8362 fi 8363 8364 8365 8366 if test $pkg_failed = yes; then 8367 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8368 $as_echo "no" >&6; } 8369 8370 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 8371 _pkg_short_errors_supported=yes 8372 else 8373 _pkg_short_errors_supported=no 8374 fi 8375 if test $_pkg_short_errors_supported = yes; then 8376 GLIB2_V_216_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= 2.16" 2>&1` 8377 else 8378 GLIB2_V_216_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= 2.16" 2>&1` 8379 fi 8380 # Put the nasty error message in config.log where it belongs 8381 echo "$GLIB2_V_216_PKG_ERRORS" >&5 8382 8383 $as_echo "#define LEGACY_GLIB 1" >>confdefs.h 8384 8385 elif test $pkg_failed = untried; then 8386 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8387 $as_echo "no" >&6; } 8388 $as_echo "#define LEGACY_GLIB 1" >>confdefs.h 8389 8390 else 8391 GLIB2_V_216_CFLAGS=$pkg_cv_GLIB2_V_216_CFLAGS 8392 GLIB2_V_216_LIBS=$pkg_cv_GLIB2_V_216_LIBS 8393 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 8394 $as_echo "yes" >&6; } 8395 8396 fi 8397 8398 8399 8400 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for legacy xulrunner api" >&5 8401 $as_echo_n "checking for legacy xulrunner api... " >&6; } 8402 ac_ext=cpp 8403 ac_cpp='$CXXCPP $CPPFLAGS' 8404 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' 8405 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' 8406 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu 8407 8408 CXXFLAGS_BACKUP=$CXXFLAGS 8409 CXXFLAGS=$CXXFLAGS" "$MOZILLA_CFLAGS 8410 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 8411 /* end confdefs.h. */ 8412 8413 #include <npfunctions.h> 8414 const char* NP_GetMIMEDescription () 8415 {return (char*) "yap!";} 8416 8417 int 8418 main () 8419 { 8420 8421 ; 8422 return 0; 8423 } 8424 _ACEOF 8425 if ac_fn_cxx_try_compile "$LINENO"; then : 8426 8427 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8428 $as_echo "no" >&6; } 8429 8430 else 8431 8432 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 8433 $as_echo "yes" >&6; } 8434 $as_echo "#define LEGACY_XULRUNNERAPI 1" >>confdefs.h 8435 8436 8437 fi 8438 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext 8439 CXXFLAGS=$CXXFLAGS_BACKUP 8440 ac_ext=c 8441 ac_cpp='$CPP $CPPFLAGS' 8442 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' 8443 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' 8444 ac_compiler_gnu=$ac_cv_c_compiler_gnu 8445 8446 8447 7656 8448 # 7657 8449 # Find optional depedencies 7658 8450 # 8451 8452 for ac_prog in xsltproc 8453 do 8454 # Extract the first word of "$ac_prog", so it can be a program name with args. 8455 set dummy $ac_prog; ac_word=$2 8456 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8457 $as_echo_n "checking for $ac_word... " >&6; } 8458 if ${ac_cv_prog_XSLTPROC+:} false; then : 8459 $as_echo_n "(cached) " >&6 8460 else 8461 if test -n "$XSLTPROC"; then 8462 ac_cv_prog_XSLTPROC="$XSLTPROC" # Let the user override the test. 8463 else 8464 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8465 for as_dir in $PATH 8466 do 8467 IFS=$as_save_IFS 8468 test -z "$as_dir" && as_dir=. 8469 for ac_exec_ext in '' $ac_executable_extensions; do 8470 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8471 ac_cv_prog_XSLTPROC="$ac_prog" 8472 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8473 break 2 8474 fi 8475 done 8476 done 8477 IFS=$as_save_IFS 8478 8479 fi 8480 fi 8481 XSLTPROC=$ac_cv_prog_XSLTPROC 8482 if test -n "$XSLTPROC"; then 8483 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5 8484 $as_echo "$XSLTPROC" >&6; } 8485 else 8486 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8487 $as_echo "no" >&6; } 8488 fi 8489 8490 8491 test -n "$XSLTPROC" && break 8492 done 8493 8494 # browser to be linked/tested 8495 # Example: IT_FIND_BROWSER([browser-name],[variable-to-store-path],[default-run-command-if-different-from-the-browser-name]) 8496 8497 8498 # Check whether --with-firefox was given. 8499 if test "${with_firefox+set}" = set; then : 8500 withval=$with_firefox; 8501 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 8502 FIREFOX="" 8503 elif test -f "${withval}" ; then 8504 FIREFOX="${withval}" 8505 else 8506 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for firefox" >&5 8507 $as_echo_n "checking for firefox... " >&6; } 8508 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 8509 $as_echo "not found" >&6; } 8510 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 8511 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 8512 as_fn_error $? "invalid location specified to firefox: ${withval} 8513 See \`config.log' for more details" "$LINENO" 5; } 8514 fi 8515 8516 else 8517 8518 withval="yes" 8519 8520 fi 8521 8522 8523 if test -f "${FIREFOX}"; then 8524 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for firefox" >&5 8525 $as_echo_n "checking for firefox... " >&6; } 8526 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${FIREFOX}" >&5 8527 $as_echo "${FIREFOX}" >&6; } 8528 elif test "${withval}" != "no"; then 8529 if test 2 -gt 2; then 8530 if test -n "$ac_tool_prefix"; then 8531 # Extract the first word of "${ac_tool_prefix}", so it can be a program name with args. 8532 set dummy ${ac_tool_prefix}; ac_word=$2 8533 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8534 $as_echo_n "checking for $ac_word... " >&6; } 8535 if ${ac_cv_path_FIREFOX+:} false; then : 8536 $as_echo_n "(cached) " >&6 8537 else 8538 case $FIREFOX in 8539 [\\/]* | ?:[\\/]*) 8540 ac_cv_path_FIREFOX="$FIREFOX" # Let the user override the test with a path. 8541 ;; 8542 *) 8543 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8544 for as_dir in $PATH 8545 do 8546 IFS=$as_save_IFS 8547 test -z "$as_dir" && as_dir=. 8548 for ac_exec_ext in '' $ac_executable_extensions; do 8549 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8550 ac_cv_path_FIREFOX="$as_dir/$ac_word$ac_exec_ext" 8551 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8552 break 2 8553 fi 8554 done 8555 done 8556 IFS=$as_save_IFS 8557 8558 ;; 8559 esac 8560 fi 8561 FIREFOX=$ac_cv_path_FIREFOX 8562 if test -n "$FIREFOX"; then 8563 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIREFOX" >&5 8564 $as_echo "$FIREFOX" >&6; } 8565 else 8566 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8567 $as_echo "no" >&6; } 8568 fi 8569 8570 8571 fi 8572 if test -z "$ac_cv_path_FIREFOX"; then 8573 ac_pt_FIREFOX=$FIREFOX 8574 # Extract the first word of "", so it can be a program name with args. 8575 set dummy ; ac_word=$2 8576 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8577 $as_echo_n "checking for $ac_word... " >&6; } 8578 if ${ac_cv_path_ac_pt_FIREFOX+:} false; then : 8579 $as_echo_n "(cached) " >&6 8580 else 8581 case $ac_pt_FIREFOX in 8582 [\\/]* | ?:[\\/]*) 8583 ac_cv_path_ac_pt_FIREFOX="$ac_pt_FIREFOX" # Let the user override the test with a path. 8584 ;; 8585 *) 8586 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8587 for as_dir in $PATH 8588 do 8589 IFS=$as_save_IFS 8590 test -z "$as_dir" && as_dir=. 8591 for ac_exec_ext in '' $ac_executable_extensions; do 8592 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8593 ac_cv_path_ac_pt_FIREFOX="$as_dir/$ac_word$ac_exec_ext" 8594 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8595 break 2 8596 fi 8597 done 8598 done 8599 IFS=$as_save_IFS 8600 8601 ;; 8602 esac 8603 fi 8604 ac_pt_FIREFOX=$ac_cv_path_ac_pt_FIREFOX 8605 if test -n "$ac_pt_FIREFOX"; then 8606 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_FIREFOX" >&5 8607 $as_echo "$ac_pt_FIREFOX" >&6; } 8608 else 8609 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8610 $as_echo "no" >&6; } 8611 fi 8612 8613 if test "x$ac_pt_FIREFOX" = x; then 8614 FIREFOX="" 8615 else 8616 case $cross_compiling:$ac_tool_warned in 8617 yes:) 8618 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 8619 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 8620 ac_tool_warned=yes ;; 8621 esac 8622 FIREFOX=$ac_pt_FIREFOX 8623 fi 8624 else 8625 FIREFOX="$ac_cv_path_FIREFOX" 8626 fi 8627 8628 else 8629 if test -n "$ac_tool_prefix"; then 8630 # Extract the first word of "${ac_tool_prefix}firefox", so it can be a program name with args. 8631 set dummy ${ac_tool_prefix}firefox; ac_word=$2 8632 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8633 $as_echo_n "checking for $ac_word... " >&6; } 8634 if ${ac_cv_path_FIREFOX+:} false; then : 8635 $as_echo_n "(cached) " >&6 8636 else 8637 case $FIREFOX in 8638 [\\/]* | ?:[\\/]*) 8639 ac_cv_path_FIREFOX="$FIREFOX" # Let the user override the test with a path. 8640 ;; 8641 *) 8642 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8643 for as_dir in $PATH 8644 do 8645 IFS=$as_save_IFS 8646 test -z "$as_dir" && as_dir=. 8647 for ac_exec_ext in '' $ac_executable_extensions; do 8648 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8649 ac_cv_path_FIREFOX="$as_dir/$ac_word$ac_exec_ext" 8650 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8651 break 2 8652 fi 8653 done 8654 done 8655 IFS=$as_save_IFS 8656 8657 ;; 8658 esac 8659 fi 8660 FIREFOX=$ac_cv_path_FIREFOX 8661 if test -n "$FIREFOX"; then 8662 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIREFOX" >&5 8663 $as_echo "$FIREFOX" >&6; } 8664 else 8665 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8666 $as_echo "no" >&6; } 8667 fi 8668 8669 8670 fi 8671 if test -z "$ac_cv_path_FIREFOX"; then 8672 ac_pt_FIREFOX=$FIREFOX 8673 # Extract the first word of "firefox", so it can be a program name with args. 8674 set dummy firefox; ac_word=$2 8675 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8676 $as_echo_n "checking for $ac_word... " >&6; } 8677 if ${ac_cv_path_ac_pt_FIREFOX+:} false; then : 8678 $as_echo_n "(cached) " >&6 8679 else 8680 case $ac_pt_FIREFOX in 8681 [\\/]* | ?:[\\/]*) 8682 ac_cv_path_ac_pt_FIREFOX="$ac_pt_FIREFOX" # Let the user override the test with a path. 8683 ;; 8684 *) 8685 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8686 for as_dir in $PATH 8687 do 8688 IFS=$as_save_IFS 8689 test -z "$as_dir" && as_dir=. 8690 for ac_exec_ext in '' $ac_executable_extensions; do 8691 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8692 ac_cv_path_ac_pt_FIREFOX="$as_dir/$ac_word$ac_exec_ext" 8693 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8694 break 2 8695 fi 8696 done 8697 done 8698 IFS=$as_save_IFS 8699 8700 ;; 8701 esac 8702 fi 8703 ac_pt_FIREFOX=$ac_cv_path_ac_pt_FIREFOX 8704 if test -n "$ac_pt_FIREFOX"; then 8705 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_FIREFOX" >&5 8706 $as_echo "$ac_pt_FIREFOX" >&6; } 8707 else 8708 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8709 $as_echo "no" >&6; } 8710 fi 8711 8712 if test "x$ac_pt_FIREFOX" = x; then 8713 FIREFOX="" 8714 else 8715 case $cross_compiling:$ac_tool_warned in 8716 yes:) 8717 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 8718 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 8719 ac_tool_warned=yes ;; 8720 esac 8721 FIREFOX=$ac_pt_FIREFOX 8722 fi 8723 else 8724 FIREFOX="$ac_cv_path_FIREFOX" 8725 fi 8726 8727 fi 8728 else 8729 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for firefox" >&5 8730 $as_echo_n "checking for firefox... " >&6; } 8731 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8732 $as_echo "no" >&6; } 8733 fi 8734 8735 8736 8737 # Check whether --with-chrome was given. 8738 if test "${with_chrome+set}" = set; then : 8739 withval=$with_chrome; 8740 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 8741 CHROME="" 8742 elif test -f "${withval}" ; then 8743 CHROME="${withval}" 8744 else 8745 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chrome" >&5 8746 $as_echo_n "checking for chrome... " >&6; } 8747 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 8748 $as_echo "not found" >&6; } 8749 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 8750 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 8751 as_fn_error $? "invalid location specified to chrome: ${withval} 8752 See \`config.log' for more details" "$LINENO" 5; } 8753 fi 8754 8755 else 8756 8757 withval="yes" 8758 8759 fi 8760 8761 8762 if test -f "${CHROME}"; then 8763 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chrome" >&5 8764 $as_echo_n "checking for chrome... " >&6; } 8765 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${CHROME}" >&5 8766 $as_echo "${CHROME}" >&6; } 8767 elif test "${withval}" != "no"; then 8768 if test 3 -gt 2; then 8769 if test -n "$ac_tool_prefix"; then 8770 # Extract the first word of "${ac_tool_prefix}google-chrome", so it can be a program name with args. 8771 set dummy ${ac_tool_prefix}google-chrome; ac_word=$2 8772 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8773 $as_echo_n "checking for $ac_word... " >&6; } 8774 if ${ac_cv_path_CHROME+:} false; then : 8775 $as_echo_n "(cached) " >&6 8776 else 8777 case $CHROME in 8778 [\\/]* | ?:[\\/]*) 8779 ac_cv_path_CHROME="$CHROME" # Let the user override the test with a path. 8780 ;; 8781 *) 8782 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8783 for as_dir in $PATH 8784 do 8785 IFS=$as_save_IFS 8786 test -z "$as_dir" && as_dir=. 8787 for ac_exec_ext in '' $ac_executable_extensions; do 8788 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8789 ac_cv_path_CHROME="$as_dir/$ac_word$ac_exec_ext" 8790 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8791 break 2 8792 fi 8793 done 8794 done 8795 IFS=$as_save_IFS 8796 8797 ;; 8798 esac 8799 fi 8800 CHROME=$ac_cv_path_CHROME 8801 if test -n "$CHROME"; then 8802 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHROME" >&5 8803 $as_echo "$CHROME" >&6; } 8804 else 8805 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8806 $as_echo "no" >&6; } 8807 fi 8808 8809 8810 fi 8811 if test -z "$ac_cv_path_CHROME"; then 8812 ac_pt_CHROME=$CHROME 8813 # Extract the first word of "google-chrome", so it can be a program name with args. 8814 set dummy google-chrome; ac_word=$2 8815 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8816 $as_echo_n "checking for $ac_word... " >&6; } 8817 if ${ac_cv_path_ac_pt_CHROME+:} false; then : 8818 $as_echo_n "(cached) " >&6 8819 else 8820 case $ac_pt_CHROME in 8821 [\\/]* | ?:[\\/]*) 8822 ac_cv_path_ac_pt_CHROME="$ac_pt_CHROME" # Let the user override the test with a path. 8823 ;; 8824 *) 8825 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8826 for as_dir in $PATH 8827 do 8828 IFS=$as_save_IFS 8829 test -z "$as_dir" && as_dir=. 8830 for ac_exec_ext in '' $ac_executable_extensions; do 8831 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8832 ac_cv_path_ac_pt_CHROME="$as_dir/$ac_word$ac_exec_ext" 8833 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8834 break 2 8835 fi 8836 done 8837 done 8838 IFS=$as_save_IFS 8839 8840 ;; 8841 esac 8842 fi 8843 ac_pt_CHROME=$ac_cv_path_ac_pt_CHROME 8844 if test -n "$ac_pt_CHROME"; then 8845 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CHROME" >&5 8846 $as_echo "$ac_pt_CHROME" >&6; } 8847 else 8848 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8849 $as_echo "no" >&6; } 8850 fi 8851 8852 if test "x$ac_pt_CHROME" = x; then 8853 CHROME="" 8854 else 8855 case $cross_compiling:$ac_tool_warned in 8856 yes:) 8857 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 8858 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 8859 ac_tool_warned=yes ;; 8860 esac 8861 CHROME=$ac_pt_CHROME 8862 fi 8863 else 8864 CHROME="$ac_cv_path_CHROME" 8865 fi 8866 8867 else 8868 if test -n "$ac_tool_prefix"; then 8869 # Extract the first word of "${ac_tool_prefix}chrome", so it can be a program name with args. 8870 set dummy ${ac_tool_prefix}chrome; ac_word=$2 8871 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8872 $as_echo_n "checking for $ac_word... " >&6; } 8873 if ${ac_cv_path_CHROME+:} false; then : 8874 $as_echo_n "(cached) " >&6 8875 else 8876 case $CHROME in 8877 [\\/]* | ?:[\\/]*) 8878 ac_cv_path_CHROME="$CHROME" # Let the user override the test with a path. 8879 ;; 8880 *) 8881 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8882 for as_dir in $PATH 8883 do 8884 IFS=$as_save_IFS 8885 test -z "$as_dir" && as_dir=. 8886 for ac_exec_ext in '' $ac_executable_extensions; do 8887 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8888 ac_cv_path_CHROME="$as_dir/$ac_word$ac_exec_ext" 8889 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8890 break 2 8891 fi 8892 done 8893 done 8894 IFS=$as_save_IFS 8895 8896 ;; 8897 esac 8898 fi 8899 CHROME=$ac_cv_path_CHROME 8900 if test -n "$CHROME"; then 8901 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHROME" >&5 8902 $as_echo "$CHROME" >&6; } 8903 else 8904 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8905 $as_echo "no" >&6; } 8906 fi 8907 8908 8909 fi 8910 if test -z "$ac_cv_path_CHROME"; then 8911 ac_pt_CHROME=$CHROME 8912 # Extract the first word of "chrome", so it can be a program name with args. 8913 set dummy chrome; ac_word=$2 8914 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 8915 $as_echo_n "checking for $ac_word... " >&6; } 8916 if ${ac_cv_path_ac_pt_CHROME+:} false; then : 8917 $as_echo_n "(cached) " >&6 8918 else 8919 case $ac_pt_CHROME in 8920 [\\/]* | ?:[\\/]*) 8921 ac_cv_path_ac_pt_CHROME="$ac_pt_CHROME" # Let the user override the test with a path. 8922 ;; 8923 *) 8924 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 8925 for as_dir in $PATH 8926 do 8927 IFS=$as_save_IFS 8928 test -z "$as_dir" && as_dir=. 8929 for ac_exec_ext in '' $ac_executable_extensions; do 8930 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 8931 ac_cv_path_ac_pt_CHROME="$as_dir/$ac_word$ac_exec_ext" 8932 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 8933 break 2 8934 fi 8935 done 8936 done 8937 IFS=$as_save_IFS 8938 8939 ;; 8940 esac 8941 fi 8942 ac_pt_CHROME=$ac_cv_path_ac_pt_CHROME 8943 if test -n "$ac_pt_CHROME"; then 8944 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CHROME" >&5 8945 $as_echo "$ac_pt_CHROME" >&6; } 8946 else 8947 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8948 $as_echo "no" >&6; } 8949 fi 8950 8951 if test "x$ac_pt_CHROME" = x; then 8952 CHROME="" 8953 else 8954 case $cross_compiling:$ac_tool_warned in 8955 yes:) 8956 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 8957 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 8958 ac_tool_warned=yes ;; 8959 esac 8960 CHROME=$ac_pt_CHROME 8961 fi 8962 else 8963 CHROME="$ac_cv_path_CHROME" 8964 fi 8965 8966 fi 8967 else 8968 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chrome" >&5 8969 $as_echo_n "checking for chrome... " >&6; } 8970 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 8971 $as_echo "no" >&6; } 8972 fi 8973 8974 8975 8976 # Check whether --with-chromium was given. 8977 if test "${with_chromium+set}" = set; then : 8978 withval=$with_chromium; 8979 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 8980 CHROMIUM="" 8981 elif test -f "${withval}" ; then 8982 CHROMIUM="${withval}" 8983 else 8984 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chromium" >&5 8985 $as_echo_n "checking for chromium... " >&6; } 8986 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 8987 $as_echo "not found" >&6; } 8988 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 8989 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 8990 as_fn_error $? "invalid location specified to chromium: ${withval} 8991 See \`config.log' for more details" "$LINENO" 5; } 8992 fi 8993 8994 else 8995 8996 withval="yes" 8997 8998 fi 8999 9000 9001 if test -f "${CHROMIUM}"; then 9002 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chromium" >&5 9003 $as_echo_n "checking for chromium... " >&6; } 9004 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${CHROMIUM}" >&5 9005 $as_echo "${CHROMIUM}" >&6; } 9006 elif test "${withval}" != "no"; then 9007 if test 3 -gt 2; then 9008 if test -n "$ac_tool_prefix"; then 9009 # Extract the first word of "${ac_tool_prefix}chromium-browser", so it can be a program name with args. 9010 set dummy ${ac_tool_prefix}chromium-browser; ac_word=$2 9011 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9012 $as_echo_n "checking for $ac_word... " >&6; } 9013 if ${ac_cv_path_CHROMIUM+:} false; then : 9014 $as_echo_n "(cached) " >&6 9015 else 9016 case $CHROMIUM in 9017 [\\/]* | ?:[\\/]*) 9018 ac_cv_path_CHROMIUM="$CHROMIUM" # Let the user override the test with a path. 9019 ;; 9020 *) 9021 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9022 for as_dir in $PATH 9023 do 9024 IFS=$as_save_IFS 9025 test -z "$as_dir" && as_dir=. 9026 for ac_exec_ext in '' $ac_executable_extensions; do 9027 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9028 ac_cv_path_CHROMIUM="$as_dir/$ac_word$ac_exec_ext" 9029 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9030 break 2 9031 fi 9032 done 9033 done 9034 IFS=$as_save_IFS 9035 9036 ;; 9037 esac 9038 fi 9039 CHROMIUM=$ac_cv_path_CHROMIUM 9040 if test -n "$CHROMIUM"; then 9041 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHROMIUM" >&5 9042 $as_echo "$CHROMIUM" >&6; } 9043 else 9044 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9045 $as_echo "no" >&6; } 9046 fi 9047 9048 9049 fi 9050 if test -z "$ac_cv_path_CHROMIUM"; then 9051 ac_pt_CHROMIUM=$CHROMIUM 9052 # Extract the first word of "chromium-browser", so it can be a program name with args. 9053 set dummy chromium-browser; ac_word=$2 9054 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9055 $as_echo_n "checking for $ac_word... " >&6; } 9056 if ${ac_cv_path_ac_pt_CHROMIUM+:} false; then : 9057 $as_echo_n "(cached) " >&6 9058 else 9059 case $ac_pt_CHROMIUM in 9060 [\\/]* | ?:[\\/]*) 9061 ac_cv_path_ac_pt_CHROMIUM="$ac_pt_CHROMIUM" # Let the user override the test with a path. 9062 ;; 9063 *) 9064 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9065 for as_dir in $PATH 9066 do 9067 IFS=$as_save_IFS 9068 test -z "$as_dir" && as_dir=. 9069 for ac_exec_ext in '' $ac_executable_extensions; do 9070 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9071 ac_cv_path_ac_pt_CHROMIUM="$as_dir/$ac_word$ac_exec_ext" 9072 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9073 break 2 9074 fi 9075 done 9076 done 9077 IFS=$as_save_IFS 9078 9079 ;; 9080 esac 9081 fi 9082 ac_pt_CHROMIUM=$ac_cv_path_ac_pt_CHROMIUM 9083 if test -n "$ac_pt_CHROMIUM"; then 9084 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CHROMIUM" >&5 9085 $as_echo "$ac_pt_CHROMIUM" >&6; } 9086 else 9087 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9088 $as_echo "no" >&6; } 9089 fi 9090 9091 if test "x$ac_pt_CHROMIUM" = x; then 9092 CHROMIUM="" 9093 else 9094 case $cross_compiling:$ac_tool_warned in 9095 yes:) 9096 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9097 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9098 ac_tool_warned=yes ;; 9099 esac 9100 CHROMIUM=$ac_pt_CHROMIUM 9101 fi 9102 else 9103 CHROMIUM="$ac_cv_path_CHROMIUM" 9104 fi 9105 9106 else 9107 if test -n "$ac_tool_prefix"; then 9108 # Extract the first word of "${ac_tool_prefix}chromium", so it can be a program name with args. 9109 set dummy ${ac_tool_prefix}chromium; ac_word=$2 9110 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9111 $as_echo_n "checking for $ac_word... " >&6; } 9112 if ${ac_cv_path_CHROMIUM+:} false; then : 9113 $as_echo_n "(cached) " >&6 9114 else 9115 case $CHROMIUM in 9116 [\\/]* | ?:[\\/]*) 9117 ac_cv_path_CHROMIUM="$CHROMIUM" # Let the user override the test with a path. 9118 ;; 9119 *) 9120 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9121 for as_dir in $PATH 9122 do 9123 IFS=$as_save_IFS 9124 test -z "$as_dir" && as_dir=. 9125 for ac_exec_ext in '' $ac_executable_extensions; do 9126 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9127 ac_cv_path_CHROMIUM="$as_dir/$ac_word$ac_exec_ext" 9128 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9129 break 2 9130 fi 9131 done 9132 done 9133 IFS=$as_save_IFS 9134 9135 ;; 9136 esac 9137 fi 9138 CHROMIUM=$ac_cv_path_CHROMIUM 9139 if test -n "$CHROMIUM"; then 9140 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHROMIUM" >&5 9141 $as_echo "$CHROMIUM" >&6; } 9142 else 9143 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9144 $as_echo "no" >&6; } 9145 fi 9146 9147 9148 fi 9149 if test -z "$ac_cv_path_CHROMIUM"; then 9150 ac_pt_CHROMIUM=$CHROMIUM 9151 # Extract the first word of "chromium", so it can be a program name with args. 9152 set dummy chromium; ac_word=$2 9153 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9154 $as_echo_n "checking for $ac_word... " >&6; } 9155 if ${ac_cv_path_ac_pt_CHROMIUM+:} false; then : 9156 $as_echo_n "(cached) " >&6 9157 else 9158 case $ac_pt_CHROMIUM in 9159 [\\/]* | ?:[\\/]*) 9160 ac_cv_path_ac_pt_CHROMIUM="$ac_pt_CHROMIUM" # Let the user override the test with a path. 9161 ;; 9162 *) 9163 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9164 for as_dir in $PATH 9165 do 9166 IFS=$as_save_IFS 9167 test -z "$as_dir" && as_dir=. 9168 for ac_exec_ext in '' $ac_executable_extensions; do 9169 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9170 ac_cv_path_ac_pt_CHROMIUM="$as_dir/$ac_word$ac_exec_ext" 9171 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9172 break 2 9173 fi 9174 done 9175 done 9176 IFS=$as_save_IFS 9177 9178 ;; 9179 esac 9180 fi 9181 ac_pt_CHROMIUM=$ac_cv_path_ac_pt_CHROMIUM 9182 if test -n "$ac_pt_CHROMIUM"; then 9183 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CHROMIUM" >&5 9184 $as_echo "$ac_pt_CHROMIUM" >&6; } 9185 else 9186 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9187 $as_echo "no" >&6; } 9188 fi 9189 9190 if test "x$ac_pt_CHROMIUM" = x; then 9191 CHROMIUM="" 9192 else 9193 case $cross_compiling:$ac_tool_warned in 9194 yes:) 9195 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9196 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9197 ac_tool_warned=yes ;; 9198 esac 9199 CHROMIUM=$ac_pt_CHROMIUM 9200 fi 9201 else 9202 CHROMIUM="$ac_cv_path_CHROMIUM" 9203 fi 9204 9205 fi 9206 else 9207 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for chromium" >&5 9208 $as_echo_n "checking for chromium... " >&6; } 9209 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9210 $as_echo "no" >&6; } 9211 fi 9212 9213 9214 9215 # Check whether --with-opera was given. 9216 if test "${with_opera+set}" = set; then : 9217 withval=$with_opera; 9218 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 9219 OPERA="" 9220 elif test -f "${withval}" ; then 9221 OPERA="${withval}" 9222 else 9223 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for opera" >&5 9224 $as_echo_n "checking for opera... " >&6; } 9225 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 9226 $as_echo "not found" >&6; } 9227 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 9228 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 9229 as_fn_error $? "invalid location specified to opera: ${withval} 9230 See \`config.log' for more details" "$LINENO" 5; } 9231 fi 9232 9233 else 9234 9235 withval="yes" 9236 9237 fi 9238 9239 9240 if test -f "${OPERA}"; then 9241 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for opera" >&5 9242 $as_echo_n "checking for opera... " >&6; } 9243 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${OPERA}" >&5 9244 $as_echo "${OPERA}" >&6; } 9245 elif test "${withval}" != "no"; then 9246 if test 2 -gt 2; then 9247 if test -n "$ac_tool_prefix"; then 9248 # Extract the first word of "${ac_tool_prefix}", so it can be a program name with args. 9249 set dummy ${ac_tool_prefix}; ac_word=$2 9250 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9251 $as_echo_n "checking for $ac_word... " >&6; } 9252 if ${ac_cv_path_OPERA+:} false; then : 9253 $as_echo_n "(cached) " >&6 9254 else 9255 case $OPERA in 9256 [\\/]* | ?:[\\/]*) 9257 ac_cv_path_OPERA="$OPERA" # Let the user override the test with a path. 9258 ;; 9259 *) 9260 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9261 for as_dir in $PATH 9262 do 9263 IFS=$as_save_IFS 9264 test -z "$as_dir" && as_dir=. 9265 for ac_exec_ext in '' $ac_executable_extensions; do 9266 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9267 ac_cv_path_OPERA="$as_dir/$ac_word$ac_exec_ext" 9268 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9269 break 2 9270 fi 9271 done 9272 done 9273 IFS=$as_save_IFS 9274 9275 ;; 9276 esac 9277 fi 9278 OPERA=$ac_cv_path_OPERA 9279 if test -n "$OPERA"; then 9280 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPERA" >&5 9281 $as_echo "$OPERA" >&6; } 9282 else 9283 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9284 $as_echo "no" >&6; } 9285 fi 9286 9287 9288 fi 9289 if test -z "$ac_cv_path_OPERA"; then 9290 ac_pt_OPERA=$OPERA 9291 # Extract the first word of "", so it can be a program name with args. 9292 set dummy ; ac_word=$2 9293 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9294 $as_echo_n "checking for $ac_word... " >&6; } 9295 if ${ac_cv_path_ac_pt_OPERA+:} false; then : 9296 $as_echo_n "(cached) " >&6 9297 else 9298 case $ac_pt_OPERA in 9299 [\\/]* | ?:[\\/]*) 9300 ac_cv_path_ac_pt_OPERA="$ac_pt_OPERA" # Let the user override the test with a path. 9301 ;; 9302 *) 9303 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9304 for as_dir in $PATH 9305 do 9306 IFS=$as_save_IFS 9307 test -z "$as_dir" && as_dir=. 9308 for ac_exec_ext in '' $ac_executable_extensions; do 9309 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9310 ac_cv_path_ac_pt_OPERA="$as_dir/$ac_word$ac_exec_ext" 9311 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9312 break 2 9313 fi 9314 done 9315 done 9316 IFS=$as_save_IFS 9317 9318 ;; 9319 esac 9320 fi 9321 ac_pt_OPERA=$ac_cv_path_ac_pt_OPERA 9322 if test -n "$ac_pt_OPERA"; then 9323 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_OPERA" >&5 9324 $as_echo "$ac_pt_OPERA" >&6; } 9325 else 9326 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9327 $as_echo "no" >&6; } 9328 fi 9329 9330 if test "x$ac_pt_OPERA" = x; then 9331 OPERA="" 9332 else 9333 case $cross_compiling:$ac_tool_warned in 9334 yes:) 9335 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9336 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9337 ac_tool_warned=yes ;; 9338 esac 9339 OPERA=$ac_pt_OPERA 9340 fi 9341 else 9342 OPERA="$ac_cv_path_OPERA" 9343 fi 9344 9345 else 9346 if test -n "$ac_tool_prefix"; then 9347 # Extract the first word of "${ac_tool_prefix}opera", so it can be a program name with args. 9348 set dummy ${ac_tool_prefix}opera; ac_word=$2 9349 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9350 $as_echo_n "checking for $ac_word... " >&6; } 9351 if ${ac_cv_path_OPERA+:} false; then : 9352 $as_echo_n "(cached) " >&6 9353 else 9354 case $OPERA in 9355 [\\/]* | ?:[\\/]*) 9356 ac_cv_path_OPERA="$OPERA" # Let the user override the test with a path. 9357 ;; 9358 *) 9359 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9360 for as_dir in $PATH 9361 do 9362 IFS=$as_save_IFS 9363 test -z "$as_dir" && as_dir=. 9364 for ac_exec_ext in '' $ac_executable_extensions; do 9365 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9366 ac_cv_path_OPERA="$as_dir/$ac_word$ac_exec_ext" 9367 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9368 break 2 9369 fi 9370 done 9371 done 9372 IFS=$as_save_IFS 9373 9374 ;; 9375 esac 9376 fi 9377 OPERA=$ac_cv_path_OPERA 9378 if test -n "$OPERA"; then 9379 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPERA" >&5 9380 $as_echo "$OPERA" >&6; } 9381 else 9382 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9383 $as_echo "no" >&6; } 9384 fi 9385 9386 9387 fi 9388 if test -z "$ac_cv_path_OPERA"; then 9389 ac_pt_OPERA=$OPERA 9390 # Extract the first word of "opera", so it can be a program name with args. 9391 set dummy opera; ac_word=$2 9392 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9393 $as_echo_n "checking for $ac_word... " >&6; } 9394 if ${ac_cv_path_ac_pt_OPERA+:} false; then : 9395 $as_echo_n "(cached) " >&6 9396 else 9397 case $ac_pt_OPERA in 9398 [\\/]* | ?:[\\/]*) 9399 ac_cv_path_ac_pt_OPERA="$ac_pt_OPERA" # Let the user override the test with a path. 9400 ;; 9401 *) 9402 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9403 for as_dir in $PATH 9404 do 9405 IFS=$as_save_IFS 9406 test -z "$as_dir" && as_dir=. 9407 for ac_exec_ext in '' $ac_executable_extensions; do 9408 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9409 ac_cv_path_ac_pt_OPERA="$as_dir/$ac_word$ac_exec_ext" 9410 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9411 break 2 9412 fi 9413 done 9414 done 9415 IFS=$as_save_IFS 9416 9417 ;; 9418 esac 9419 fi 9420 ac_pt_OPERA=$ac_cv_path_ac_pt_OPERA 9421 if test -n "$ac_pt_OPERA"; then 9422 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_OPERA" >&5 9423 $as_echo "$ac_pt_OPERA" >&6; } 9424 else 9425 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9426 $as_echo "no" >&6; } 9427 fi 9428 9429 if test "x$ac_pt_OPERA" = x; then 9430 OPERA="" 9431 else 9432 case $cross_compiling:$ac_tool_warned in 9433 yes:) 9434 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9435 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9436 ac_tool_warned=yes ;; 9437 esac 9438 OPERA=$ac_pt_OPERA 9439 fi 9440 else 9441 OPERA="$ac_cv_path_OPERA" 9442 fi 9443 9444 fi 9445 else 9446 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for opera" >&5 9447 $as_echo_n "checking for opera... " >&6; } 9448 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9449 $as_echo "no" >&6; } 9450 fi 9451 9452 9453 9454 # Check whether --with-midori was given. 9455 if test "${with_midori+set}" = set; then : 9456 withval=$with_midori; 9457 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 9458 MIDORI="" 9459 elif test -f "${withval}" ; then 9460 MIDORI="${withval}" 9461 else 9462 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for midori" >&5 9463 $as_echo_n "checking for midori... " >&6; } 9464 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 9465 $as_echo "not found" >&6; } 9466 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 9467 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 9468 as_fn_error $? "invalid location specified to midori: ${withval} 9469 See \`config.log' for more details" "$LINENO" 5; } 9470 fi 9471 9472 else 9473 9474 withval="yes" 9475 9476 fi 9477 9478 9479 if test -f "${MIDORI}"; then 9480 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for midori" >&5 9481 $as_echo_n "checking for midori... " >&6; } 9482 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${MIDORI}" >&5 9483 $as_echo "${MIDORI}" >&6; } 9484 elif test "${withval}" != "no"; then 9485 if test 2 -gt 2; then 9486 if test -n "$ac_tool_prefix"; then 9487 # Extract the first word of "${ac_tool_prefix}", so it can be a program name with args. 9488 set dummy ${ac_tool_prefix}; ac_word=$2 9489 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9490 $as_echo_n "checking for $ac_word... " >&6; } 9491 if ${ac_cv_path_MIDORI+:} false; then : 9492 $as_echo_n "(cached) " >&6 9493 else 9494 case $MIDORI in 9495 [\\/]* | ?:[\\/]*) 9496 ac_cv_path_MIDORI="$MIDORI" # Let the user override the test with a path. 9497 ;; 9498 *) 9499 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9500 for as_dir in $PATH 9501 do 9502 IFS=$as_save_IFS 9503 test -z "$as_dir" && as_dir=. 9504 for ac_exec_ext in '' $ac_executable_extensions; do 9505 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9506 ac_cv_path_MIDORI="$as_dir/$ac_word$ac_exec_ext" 9507 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9508 break 2 9509 fi 9510 done 9511 done 9512 IFS=$as_save_IFS 9513 9514 ;; 9515 esac 9516 fi 9517 MIDORI=$ac_cv_path_MIDORI 9518 if test -n "$MIDORI"; then 9519 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MIDORI" >&5 9520 $as_echo "$MIDORI" >&6; } 9521 else 9522 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9523 $as_echo "no" >&6; } 9524 fi 9525 9526 9527 fi 9528 if test -z "$ac_cv_path_MIDORI"; then 9529 ac_pt_MIDORI=$MIDORI 9530 # Extract the first word of "", so it can be a program name with args. 9531 set dummy ; ac_word=$2 9532 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9533 $as_echo_n "checking for $ac_word... " >&6; } 9534 if ${ac_cv_path_ac_pt_MIDORI+:} false; then : 9535 $as_echo_n "(cached) " >&6 9536 else 9537 case $ac_pt_MIDORI in 9538 [\\/]* | ?:[\\/]*) 9539 ac_cv_path_ac_pt_MIDORI="$ac_pt_MIDORI" # Let the user override the test with a path. 9540 ;; 9541 *) 9542 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9543 for as_dir in $PATH 9544 do 9545 IFS=$as_save_IFS 9546 test -z "$as_dir" && as_dir=. 9547 for ac_exec_ext in '' $ac_executable_extensions; do 9548 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9549 ac_cv_path_ac_pt_MIDORI="$as_dir/$ac_word$ac_exec_ext" 9550 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9551 break 2 9552 fi 9553 done 9554 done 9555 IFS=$as_save_IFS 9556 9557 ;; 9558 esac 9559 fi 9560 ac_pt_MIDORI=$ac_cv_path_ac_pt_MIDORI 9561 if test -n "$ac_pt_MIDORI"; then 9562 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_MIDORI" >&5 9563 $as_echo "$ac_pt_MIDORI" >&6; } 9564 else 9565 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9566 $as_echo "no" >&6; } 9567 fi 9568 9569 if test "x$ac_pt_MIDORI" = x; then 9570 MIDORI="" 9571 else 9572 case $cross_compiling:$ac_tool_warned in 9573 yes:) 9574 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9575 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9576 ac_tool_warned=yes ;; 9577 esac 9578 MIDORI=$ac_pt_MIDORI 9579 fi 9580 else 9581 MIDORI="$ac_cv_path_MIDORI" 9582 fi 9583 9584 else 9585 if test -n "$ac_tool_prefix"; then 9586 # Extract the first word of "${ac_tool_prefix}midori", so it can be a program name with args. 9587 set dummy ${ac_tool_prefix}midori; ac_word=$2 9588 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9589 $as_echo_n "checking for $ac_word... " >&6; } 9590 if ${ac_cv_path_MIDORI+:} false; then : 9591 $as_echo_n "(cached) " >&6 9592 else 9593 case $MIDORI in 9594 [\\/]* | ?:[\\/]*) 9595 ac_cv_path_MIDORI="$MIDORI" # Let the user override the test with a path. 9596 ;; 9597 *) 9598 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9599 for as_dir in $PATH 9600 do 9601 IFS=$as_save_IFS 9602 test -z "$as_dir" && as_dir=. 9603 for ac_exec_ext in '' $ac_executable_extensions; do 9604 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9605 ac_cv_path_MIDORI="$as_dir/$ac_word$ac_exec_ext" 9606 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9607 break 2 9608 fi 9609 done 9610 done 9611 IFS=$as_save_IFS 9612 9613 ;; 9614 esac 9615 fi 9616 MIDORI=$ac_cv_path_MIDORI 9617 if test -n "$MIDORI"; then 9618 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MIDORI" >&5 9619 $as_echo "$MIDORI" >&6; } 9620 else 9621 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9622 $as_echo "no" >&6; } 9623 fi 9624 9625 9626 fi 9627 if test -z "$ac_cv_path_MIDORI"; then 9628 ac_pt_MIDORI=$MIDORI 9629 # Extract the first word of "midori", so it can be a program name with args. 9630 set dummy midori; ac_word=$2 9631 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9632 $as_echo_n "checking for $ac_word... " >&6; } 9633 if ${ac_cv_path_ac_pt_MIDORI+:} false; then : 9634 $as_echo_n "(cached) " >&6 9635 else 9636 case $ac_pt_MIDORI in 9637 [\\/]* | ?:[\\/]*) 9638 ac_cv_path_ac_pt_MIDORI="$ac_pt_MIDORI" # Let the user override the test with a path. 9639 ;; 9640 *) 9641 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9642 for as_dir in $PATH 9643 do 9644 IFS=$as_save_IFS 9645 test -z "$as_dir" && as_dir=. 9646 for ac_exec_ext in '' $ac_executable_extensions; do 9647 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9648 ac_cv_path_ac_pt_MIDORI="$as_dir/$ac_word$ac_exec_ext" 9649 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9650 break 2 9651 fi 9652 done 9653 done 9654 IFS=$as_save_IFS 9655 9656 ;; 9657 esac 9658 fi 9659 ac_pt_MIDORI=$ac_cv_path_ac_pt_MIDORI 9660 if test -n "$ac_pt_MIDORI"; then 9661 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_MIDORI" >&5 9662 $as_echo "$ac_pt_MIDORI" >&6; } 9663 else 9664 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9665 $as_echo "no" >&6; } 9666 fi 9667 9668 if test "x$ac_pt_MIDORI" = x; then 9669 MIDORI="" 9670 else 9671 case $cross_compiling:$ac_tool_warned in 9672 yes:) 9673 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9674 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9675 ac_tool_warned=yes ;; 9676 esac 9677 MIDORI=$ac_pt_MIDORI 9678 fi 9679 else 9680 MIDORI="$ac_cv_path_MIDORI" 9681 fi 9682 9683 fi 9684 else 9685 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for midori" >&5 9686 $as_echo_n "checking for midori... " >&6; } 9687 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9688 $as_echo "no" >&6; } 9689 fi 9690 9691 9692 9693 # Check whether --with-epiphany was given. 9694 if test "${with_epiphany+set}" = set; then : 9695 withval=$with_epiphany; 9696 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then 9697 EPIPHANY="" 9698 elif test -f "${withval}" ; then 9699 EPIPHANY="${withval}" 9700 else 9701 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epiphany" >&5 9702 $as_echo_n "checking for epiphany... " >&6; } 9703 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 9704 $as_echo "not found" >&6; } 9705 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 9706 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 9707 as_fn_error $? "invalid location specified to epiphany: ${withval} 9708 See \`config.log' for more details" "$LINENO" 5; } 9709 fi 9710 9711 else 9712 9713 withval="yes" 9714 9715 fi 9716 9717 9718 if test -f "${EPIPHANY}"; then 9719 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epiphany" >&5 9720 $as_echo_n "checking for epiphany... " >&6; } 9721 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${EPIPHANY}" >&5 9722 $as_echo "${EPIPHANY}" >&6; } 9723 elif test "${withval}" != "no"; then 9724 if test 2 -gt 2; then 9725 if test -n "$ac_tool_prefix"; then 9726 # Extract the first word of "${ac_tool_prefix}", so it can be a program name with args. 9727 set dummy ${ac_tool_prefix}; ac_word=$2 9728 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9729 $as_echo_n "checking for $ac_word... " >&6; } 9730 if ${ac_cv_path_EPIPHANY+:} false; then : 9731 $as_echo_n "(cached) " >&6 9732 else 9733 case $EPIPHANY in 9734 [\\/]* | ?:[\\/]*) 9735 ac_cv_path_EPIPHANY="$EPIPHANY" # Let the user override the test with a path. 9736 ;; 9737 *) 9738 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9739 for as_dir in $PATH 9740 do 9741 IFS=$as_save_IFS 9742 test -z "$as_dir" && as_dir=. 9743 for ac_exec_ext in '' $ac_executable_extensions; do 9744 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9745 ac_cv_path_EPIPHANY="$as_dir/$ac_word$ac_exec_ext" 9746 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9747 break 2 9748 fi 9749 done 9750 done 9751 IFS=$as_save_IFS 9752 9753 ;; 9754 esac 9755 fi 9756 EPIPHANY=$ac_cv_path_EPIPHANY 9757 if test -n "$EPIPHANY"; then 9758 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EPIPHANY" >&5 9759 $as_echo "$EPIPHANY" >&6; } 9760 else 9761 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9762 $as_echo "no" >&6; } 9763 fi 9764 9765 9766 fi 9767 if test -z "$ac_cv_path_EPIPHANY"; then 9768 ac_pt_EPIPHANY=$EPIPHANY 9769 # Extract the first word of "", so it can be a program name with args. 9770 set dummy ; ac_word=$2 9771 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9772 $as_echo_n "checking for $ac_word... " >&6; } 9773 if ${ac_cv_path_ac_pt_EPIPHANY+:} false; then : 9774 $as_echo_n "(cached) " >&6 9775 else 9776 case $ac_pt_EPIPHANY in 9777 [\\/]* | ?:[\\/]*) 9778 ac_cv_path_ac_pt_EPIPHANY="$ac_pt_EPIPHANY" # Let the user override the test with a path. 9779 ;; 9780 *) 9781 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9782 for as_dir in $PATH 9783 do 9784 IFS=$as_save_IFS 9785 test -z "$as_dir" && as_dir=. 9786 for ac_exec_ext in '' $ac_executable_extensions; do 9787 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9788 ac_cv_path_ac_pt_EPIPHANY="$as_dir/$ac_word$ac_exec_ext" 9789 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9790 break 2 9791 fi 9792 done 9793 done 9794 IFS=$as_save_IFS 9795 9796 ;; 9797 esac 9798 fi 9799 ac_pt_EPIPHANY=$ac_cv_path_ac_pt_EPIPHANY 9800 if test -n "$ac_pt_EPIPHANY"; then 9801 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_EPIPHANY" >&5 9802 $as_echo "$ac_pt_EPIPHANY" >&6; } 9803 else 9804 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9805 $as_echo "no" >&6; } 9806 fi 9807 9808 if test "x$ac_pt_EPIPHANY" = x; then 9809 EPIPHANY="" 9810 else 9811 case $cross_compiling:$ac_tool_warned in 9812 yes:) 9813 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9814 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9815 ac_tool_warned=yes ;; 9816 esac 9817 EPIPHANY=$ac_pt_EPIPHANY 9818 fi 9819 else 9820 EPIPHANY="$ac_cv_path_EPIPHANY" 9821 fi 9822 9823 else 9824 if test -n "$ac_tool_prefix"; then 9825 # Extract the first word of "${ac_tool_prefix}epiphany", so it can be a program name with args. 9826 set dummy ${ac_tool_prefix}epiphany; ac_word=$2 9827 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9828 $as_echo_n "checking for $ac_word... " >&6; } 9829 if ${ac_cv_path_EPIPHANY+:} false; then : 9830 $as_echo_n "(cached) " >&6 9831 else 9832 case $EPIPHANY in 9833 [\\/]* | ?:[\\/]*) 9834 ac_cv_path_EPIPHANY="$EPIPHANY" # Let the user override the test with a path. 9835 ;; 9836 *) 9837 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9838 for as_dir in $PATH 9839 do 9840 IFS=$as_save_IFS 9841 test -z "$as_dir" && as_dir=. 9842 for ac_exec_ext in '' $ac_executable_extensions; do 9843 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9844 ac_cv_path_EPIPHANY="$as_dir/$ac_word$ac_exec_ext" 9845 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9846 break 2 9847 fi 9848 done 9849 done 9850 IFS=$as_save_IFS 9851 9852 ;; 9853 esac 9854 fi 9855 EPIPHANY=$ac_cv_path_EPIPHANY 9856 if test -n "$EPIPHANY"; then 9857 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EPIPHANY" >&5 9858 $as_echo "$EPIPHANY" >&6; } 9859 else 9860 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9861 $as_echo "no" >&6; } 9862 fi 9863 9864 9865 fi 9866 if test -z "$ac_cv_path_EPIPHANY"; then 9867 ac_pt_EPIPHANY=$EPIPHANY 9868 # Extract the first word of "epiphany", so it can be a program name with args. 9869 set dummy epiphany; ac_word=$2 9870 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 9871 $as_echo_n "checking for $ac_word... " >&6; } 9872 if ${ac_cv_path_ac_pt_EPIPHANY+:} false; then : 9873 $as_echo_n "(cached) " >&6 9874 else 9875 case $ac_pt_EPIPHANY in 9876 [\\/]* | ?:[\\/]*) 9877 ac_cv_path_ac_pt_EPIPHANY="$ac_pt_EPIPHANY" # Let the user override the test with a path. 9878 ;; 9879 *) 9880 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 9881 for as_dir in $PATH 9882 do 9883 IFS=$as_save_IFS 9884 test -z "$as_dir" && as_dir=. 9885 for ac_exec_ext in '' $ac_executable_extensions; do 9886 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 9887 ac_cv_path_ac_pt_EPIPHANY="$as_dir/$ac_word$ac_exec_ext" 9888 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 9889 break 2 9890 fi 9891 done 9892 done 9893 IFS=$as_save_IFS 9894 9895 ;; 9896 esac 9897 fi 9898 ac_pt_EPIPHANY=$ac_cv_path_ac_pt_EPIPHANY 9899 if test -n "$ac_pt_EPIPHANY"; then 9900 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_EPIPHANY" >&5 9901 $as_echo "$ac_pt_EPIPHANY" >&6; } 9902 else 9903 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9904 $as_echo "no" >&6; } 9905 fi 9906 9907 if test "x$ac_pt_EPIPHANY" = x; then 9908 EPIPHANY="" 9909 else 9910 case $cross_compiling:$ac_tool_warned in 9911 yes:) 9912 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 9913 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} 9914 ac_tool_warned=yes ;; 9915 esac 9916 EPIPHANY=$ac_pt_EPIPHANY 9917 fi 9918 else 9919 EPIPHANY="$ac_cv_path_EPIPHANY" 9920 fi 9921 9922 fi 9923 else 9924 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for epiphany" >&5 9925 $as_echo_n "checking for epiphany... " >&6; } 9926 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 9927 $as_echo "no" >&6; } 9928 fi 9929 9930 9931 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how browser test will be run" >&5 9932 $as_echo_n "checking how browser test will be run... " >&6; } 9933 9934 # Check whether --with-browser-tests was given. 9935 if test "${with_browser_tests+set}" = set; then : 9936 withval=$with_browser_tests; 9937 BROWSER_SWITCH=${withval} 9938 9939 else 9940 9941 BROWSER_SWITCH="yes" 9942 9943 fi 9944 9945 D_PARAM_PART="-Dmodified.browsers.run" 9946 case "$BROWSER_SWITCH" in 9947 "yes" ) 9948 BROWSER_TESTS_MODIFICATION="" ;; 9949 "no" ) 9950 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=ignore" ;; 9951 "one" ) 9952 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=one" ;; 9953 "all" ) 9954 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=all" ;; 9955 *) 9956 as_fn_error $? "unknown valkue of with-browser-tests ($BROWSER_SWITCH), so not use (yes) or set yes|no|one|all" "$LINENO" 5 9957 esac 9958 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${BROWSER_SWITCH}" >&5 9959 $as_echo "${BROWSER_SWITCH}" >&6; } 9960 9961 9962 9963 if test x"$XSLTPROC" != x ; then 9964 WITH_XSLTPROC_TRUE= 9965 WITH_XSLTPROC_FALSE='#' 9966 else 9967 WITH_XSLTPROC_TRUE='#' 9968 WITH_XSLTPROC_FALSE= 9969 fi 7659 9970 7660 9971 … … 7798 10109 else 7799 10110 JUNIT_AVAILABLE=false 10111 fi 10112 10113 10114 10115 10116 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for emma jar" >&5 10117 $as_echo_n "checking for emma jar... " >&6; } 10118 10119 # Check whether --with-emma was given. 10120 if test "${with_emma+set}" = set; then : 10121 withval=$with_emma; 10122 case "${withval}" in 10123 yes) 10124 EMMA_JAR=yes 10125 ;; 10126 no) 10127 EMMA_JAR=no 10128 ;; 10129 *) 10130 if test -f "${withval}"; then 10131 EMMA_JAR="${withval}" 10132 elif test -z "${withval}"; then 10133 EMMA_JAR=yes 10134 else 10135 { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 10136 $as_echo "not found" >&6; } 10137 as_fn_error $? "\"The emma jar ${withval} was not found.\"" "$LINENO" 5 10138 fi 10139 ;; 10140 esac 10141 10142 else 10143 10144 EMMA_JAR=yes 10145 10146 fi 10147 10148 it_extra_paths_emma="/usr/share/java/emma.jar" 10149 if test "x${EMMA_JAR}" = "xyes"; then 10150 for path in ${it_extra_paths_emma}; do 10151 if test -f ${path}; then 10152 EMMA_JAR=${path} 10153 break 10154 fi 10155 done 10156 fi 10157 if test x"${EMMA_JAR}" = "xyes"; then 10158 if test -f "/usr/share/java/emma.jar"; then 10159 EMMA_JAR=/usr/share/java/emma.jar 10160 fi 10161 fi 10162 if test x"${EMMA_JAR}" = "xyes"; then 10163 EMMA_JAR=no 10164 fi 10165 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${EMMA_JAR}" >&5 10166 $as_echo "${EMMA_JAR}" >&6; } 10167 if test x"${EMMA_JAR}" != "xno"; then 10168 WITH_EMMA_TRUE= 10169 WITH_EMMA_FALSE='#' 10170 else 10171 WITH_EMMA_TRUE='#' 10172 WITH_EMMA_FALSE= 10173 fi 10174 10175 # Clear EMMA_JAR if it doesn't contain a valid filename 10176 if test x"${EMMA_JAR}" = "xno"; then 10177 EMMA_JAR= 10178 fi 10179 if test -n "${EMMA_JAR}" ; then 10180 EMMA_AVAILABLE=true 10181 else 10182 EMMA_AVAILABLE=false 7800 10183 fi 7801 10184 … … 8001 10384 Usually this means the macro was only invoked conditionally." "$LINENO" 5 8002 10385 fi 10386 if test -z "${WITH_XSLTPROC_TRUE}" && test -z "${WITH_XSLTPROC_FALSE}"; then 10387 as_fn_error $? "conditional \"WITH_XSLTPROC\" was never defined. 10388 Usually this means the macro was only invoked conditionally." "$LINENO" 5 10389 fi 8003 10390 if test -z "${WITH_RHINO_TRUE}" && test -z "${WITH_RHINO_FALSE}"; then 8004 10391 as_fn_error $? "conditional \"WITH_RHINO\" was never defined. … … 8007 10394 if test -z "${WITH_JUNIT_TRUE}" && test -z "${WITH_JUNIT_FALSE}"; then 8008 10395 as_fn_error $? "conditional \"WITH_JUNIT\" was never defined. 10396 Usually this means the macro was only invoked conditionally." "$LINENO" 5 10397 fi 10398 if test -z "${WITH_EMMA_TRUE}" && test -z "${WITH_EMMA_FALSE}"; then 10399 as_fn_error $? "conditional \"WITH_EMMA\" was never defined. 8009 10400 Usually this means the macro was only invoked conditionally." "$LINENO" 5 8010 10401 fi … … 8418 10809 # values after options handling. 8419 10810 ac_log=" 8420 This file was extended by icedtea-web $as_me 1. 1.2, which was10811 This file was extended by icedtea-web $as_me 1.3, which was 8421 10812 generated by GNU Autoconf 2.68. Invocation command line was 8422 10813 … … 8476 10867 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 8477 10868 ac_cs_version="\\ 8478 icedtea-web config.status 1. 1.210869 icedtea-web config.status 1.3 8479 10870 configured by $0, generated by GNU Autoconf 2.68, 8480 10871 with options \\"\$ac_cs_config\\" -
trunk/icedtea-web/configure.ac
r348 r418 1 AC_INIT([icedtea-web],[1. 1.2],[distro-pkg-dev@openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web])1 AC_INIT([icedtea-web],[1.3],[distro-pkg-dev@openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) 2 2 AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) 3 3 AC_CONFIG_FILES([Makefile netx.manifest]) … … 34 34 FIND_ECJ_JAR 35 35 IT_FIND_JAVADOC 36 IT_FIND_KEYTOOL 37 IT_FIND_JARSIGNER 36 38 AC_CONFIG_FILES([javac], [chmod +x javac]) 37 39 … … 52 54 dnl PR46074 (gcc) - Missing java.net cookie code required by IcedTea plugin 53 55 dnl IT563 - NetX uses sun.security code 54 dnl IT564 - NetX depends on sun.misc.BASE64Encoder55 56 dnl IT605 - NetX depends on sun.misc.HexDumpEncoder 56 57 dnl IT570 - NetX depends on sun.applet.AppletViewPanel … … 69 70 IT_CHECK_FOR_CLASS(SUN_SECURITY_UTIL_HOSTNAMECHECKER, [sun.security.util.HostnameChecker]) 70 71 IT_CHECK_FOR_CLASS(SUN_SECURITY_X509_X500NAME, [sun.security.x509.X500Name]) 71 IT_CHECK_FOR_CLASS(SUN_MISC_BASE64ENCODER, [sun.misc.BASE64Encoder])72 72 IT_CHECK_FOR_CLASS(SUN_MISC_HEXDUMPENCODER, [sun.misc.HexDumpEncoder]) 73 73 IT_CHECK_FOR_CLASS(SUN_SECURITY_VALIDATOR_VALIDATOREXCEPTION, [sun.security.validator.ValidatorException]) 74 74 IT_CHECK_FOR_CLASS(COM_SUN_NET_SSL_INTERNAL_SSL_X509EXTENDEDTRUSTMANAGER, 75 75 [com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager]) 76 IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE, [sun.net.www.protocol.jar.URLJarFile]) 77 IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK, [sun.net.www.protocol.jar.URLJarFileCallBack]) 76 78 IT_CHECK_FOR_CLASS(SUN_AWT_X11_XEMBEDDEDFRAME, [sun.awt.X11.XEmbeddedFrame]) 77 79 IT_CHECK_FOR_CLASS(SUN_MISC_REF, [sun.misc.Ref]) … … 79 81 IT_CHECK_FOR_CLASS(SUN_APPLET_APPLETIMAGEREF, [sun.applet.AppletImageRef]) 80 82 IT_CHECK_FOR_APPLETVIEWERPANEL_HOLE 83 IT_CHECK_GLIB_VERSION 84 IT_CHECK_XULRUNNER_API_VERSION 81 85 82 86 # … … 84 88 # 85 89 90 AC_CHECK_PROGS([XSLTPROC],[xsltproc],[], []) 91 # browser to be linked/tested 92 # Example: IT_FIND_BROWSER([browser-name],[variable-to-store-path],[default-run-command-if-different-from-the-browser-name]) 93 IT_FIND_BROWSER([firefox],[FIREFOX]) 94 IT_FIND_BROWSER([chrome],[CHROME],[google-chrome]) 95 IT_FIND_BROWSER([chromium],[CHROMIUM],[chromium-browser]) 96 IT_FIND_BROWSER([opera],[OPERA]) 97 IT_FIND_BROWSER([midori],[MIDORI]) 98 IT_FIND_BROWSER([epiphany],[EPIPHANY]) 99 IT_SET_GLOBAL_BROWSERTESTS_BEHAVIOUR 100 101 AM_CONDITIONAL([WITH_XSLTPROC], [test x"$XSLTPROC" != x ]) 86 102 IT_FIND_OPTIONAL_JAR([rhino], RHINO, 87 103 [/usr/share/java/js.jar /usr/share/rhino-1.6/lib/js.jar]) 88 104 IT_FIND_OPTIONAL_JAR([junit], JUNIT, 89 105 [/usr/share/java/junit4.jar /usr/share/junit-4/lib/junit.jar]) 106 IT_FIND_OPTIONAL_JAR([emma], EMMA, 107 [/usr/share/java/emma.jar]) 90 108 91 109 AC_CONFIG_FILES([jrunscript], [chmod u+x jrunscript]) -
trunk/icedtea-web/extra/net/sourceforge/javaws/about/Main.java
r348 r418 67 67 tabbedPane = new JTabbedPane(); 68 68 69 tabbedPane.add("About NetX", aboutPanel);69 tabbedPane.add("About IcedTea-Web and NetX", aboutPanel); 70 70 tabbedPane.add("Applications", appsPanel); 71 71 tabbedPane.add("Notes", notesPanel); … … 82 82 } 83 83 84 JFrame frame = new JFrame("About NetX");84 JFrame frame = new JFrame("About IcedTea-Web and NetX"); 85 85 frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 86 86 Main demo = null; -
trunk/icedtea-web/extra/net/sourceforge/javaws/about/resources/about.html
r348 r418 6 6 </head> 7 7 <body> 8 < b>NetX</b> is a high-quality JNLP clientthat executes8 <h3>IcedTea-Web</h3> is a high-quality JNLP client, built on <b>NetX</b>, that executes 9 9 network-based applications. 10 10 <br>NetX downloads code over the -
trunk/icedtea-web/extra/net/sourceforge/javaws/about/resources/notes.html
r348 r418 24 24 <b>Lillian Angel</b> <br> 25 25 <b>Deepak Bhole</b> <br> 26 <b>Danesh Dadachanji</b> <br> 27 <b>Adam Domurad</b> <br> 26 28 <b>Thomas Fitzsimmons</b> <br> 27 29 <b>Andrew John Hughes</b> <br> … … 30 32 <b>Omair Majid</b> <br> 31 33 <b>Jon A. Maxwell</b> <br> 34 <b>Thomas Meyer</b> <br> 35 <b>Saad Mohammad</b> <br> 32 36 <b>Andrew Su</b> <br> 33 37 <b>Joshua Sumali</b> <br> 38 <b>Jiri Vanek</b> <br> 34 39 <b>Mark Wielaard</b> <br> 35 40 <b>Man Lung Wong</b> <br> … … 80 85 </tbody> 81 86 </table> 82 <b>Please visit the SourceForge site 87 <b> Home page of IcedTea-Web: 88 <a href="http://icedtea.classpath.org/wiki/IcedTea-Web"> 89 http://icedtea.classpath.org/wiki/IcedTea-Web 90 </a><br> 91 Please visit also the SourceForge site 83 92 <a href="http://jnlp.sourceforge.net/netx/index.html"> 84 93 http://jnlp.sourceforge.net/netx/index.html -
trunk/icedtea-web/install-sh
r348 r418 2 2 # install - install a program, script, or datafile 3 3 4 scriptversion=20 09-04-28.21; # UTC4 scriptversion=2011-01-19.21; # UTC 5 5 6 6 # This originates from X11R5 (mit/util/scripts/install.sh), which was … … 157 157 158 158 -t) dst_arg=$2 159 # Protect names problematic for `test' and other utilities. 160 case $dst_arg in 161 -* | [=\(\)!]) dst_arg=./$dst_arg;; 162 esac 159 163 shift;; 160 164 … … 187 191 shift # arg 188 192 dst_arg=$arg 193 # Protect names problematic for `test' and other utilities. 194 case $dst_arg in 195 -* | [=\(\)!]) dst_arg=./$dst_arg;; 196 esac 189 197 done 190 198 fi … … 201 209 202 210 if test -z "$dir_arg"; then 203 trap '(exit $?); exit' 1 2 13 15 211 do_exit='(exit $ret); exit $ret' 212 trap "ret=129; $do_exit" 1 213 trap "ret=130; $do_exit" 2 214 trap "ret=141; $do_exit" 13 215 trap "ret=143; $do_exit" 15 204 216 205 217 # Set umask so as not to create temps with too-generous modes. … … 229 241 for src 230 242 do 231 # Protect names starting with `-'.243 # Protect names problematic for `test' and other utilities. 232 244 case $src in 233 -* ) src=./$src;;245 -* | [=\(\)!]) src=./$src;; 234 246 esac 235 247 … … 253 265 exit 1 254 266 fi 255 256 267 dst=$dst_arg 257 # Protect names starting with `-'.258 case $dst in259 -*) dst=./$dst;;260 esac261 268 262 269 # If destination is a directory, append the input filename; won't work … … 386 393 case $dstdir in 387 394 /*) prefix='/';; 388 -*) prefix='./';;395 [-=\(\)!]*) prefix='./';; 389 396 *) prefix='';; 390 397 esac … … 404 411 for d 405 412 do 406 test -z "$d"&& continue413 test X"$d" = X && continue 407 414 408 415 prefix=$prefix$d -
trunk/icedtea-web/jrunscript.in
r348 r418 1 1 #!/bin/bash 2 2 3 if [ x"@RHINO_JAR@" = =x ] ; then3 if [ x"@RHINO_JAR@" = x ] ; then 4 4 echo "jrunscript requires rhino support" 5 5 exit 1 -
trunk/icedtea-web/launcher/javaws.in
r348 r418 1 #!/bin/ sh1 #!/bin/bash 2 2 3 3 JAVA=@JAVA@ … … 9 9 CP=@JRE@/lib/rt.jar 10 10 11 JAVA_ARGS= 12 ARGS= 11 JAVA_ARGS=( ) 12 ARGS=( ) 13 COMMAND=() 14 15 i=0 16 j=0 13 17 14 18 while [ "$#" -gt "0" ]; do 15 19 case "$1" in 16 20 -J*) 17 JAVA_ARGS="${JAVA_ARGS} ${1##-J}" 21 JAVA_ARGS[$i]="${1##-J}" 22 i=$((i+1)) 18 23 ;; 19 24 *) 20 ARGS="${ARGS} $1" 25 ARGS[$j]="$1" 26 j=$((j+1)) 21 27 ;; 22 28 esac … … 24 30 done 25 31 26 ${JAVA} ${LAUNCHER_BOOTCLASSPATH} ${LAUNCHER_FLAGS} \ 27 ${JAVA_ARGS} \ 28 -classpath ${CP} \ 29 -Dicedtea-web.bin.name=${PROGRAM_NAME} \ 30 -Dicedtea-web.bin.location=${BINARY_LOCATION} \ 31 ${CLASSNAME} \ 32 ${ARGS} 32 k=0 33 COMMAND[k]="${JAVA}" 34 k=$((k+1)) 35 COMMAND[k]="${LAUNCHER_BOOTCLASSPATH}" 36 k=$((k+1)) 37 COMMAND[k]="${LAUNCHER_FLAGS}" 38 k=$((k+1)) 39 i=0 40 while [ "$i" -lt "${#JAVA_ARGS[@]}" ]; do 41 COMMAND[k]="${JAVA_ARGS[$i]}" 42 i=$((i+1)) 43 k=$((k+1)) 44 done 45 COMMAND[k]="-classpath" 46 k=$((k+1)) 47 COMMAND[k]="${CP}" 48 k=$((k+1)) 49 COMMAND[k]="-Dicedtea-web.bin.name=${PROGRAM_NAME}" 50 k=$((k+1)) 51 COMMAND[k]="-Dicedtea-web.bin.location=${BINARY_LOCATION}" 52 k=$((k+1)) 53 COMMAND[k]="${CLASSNAME}" 54 k=$((k+1)) 55 j=0 56 while [ "$j" -lt "${#ARGS[@]}" ]; do 57 COMMAND[k]="${ARGS[$j]}" 58 j=$((j+1)) 59 k=$((k+1)) 60 done 61 62 exec -a "javaws" "${COMMAND[@]}" 33 63 34 64 exit $? -
trunk/icedtea-web/missing
r348 r418 2 2 # Common stub for a few missing GNU programs while installing. 3 3 4 scriptversion=20 09-04-28.21; # UTC4 scriptversion=2012-01-06.13; # UTC 5 5 6 6 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 7 # 2008, 2009 Free Software Foundation, Inc.7 # 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. 8 8 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 9 9 … … 85 85 lex create \`lex.yy.c', if possible, from existing .c 86 86 makeinfo touch the output file 87 tar try tar, gnutar, gtar, then tar without non-portable flags88 87 yacc create \`y.tab.[ch]', if possible, from existing .[ch] 89 88 … … 121 120 lex*|yacc*) 122 121 # Not GNU programs, they don't have --version. 123 ;;124 125 tar*)126 if test -n "$run"; then127 echo 1>&2 "ERROR: \`tar' requires --run"128 exit 1129 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then130 exit 1131 fi132 122 ;; 133 123 … … 227 217 rm -f y.tab.c y.tab.h 228 218 if test $# -ne 1; then 229 eval LASTARG= "\${$#}"219 eval LASTARG=\${$#} 230 220 case $LASTARG in 231 221 *.y) … … 257 247 rm -f lex.yy.c 258 248 if test $# -ne 1; then 259 eval LASTARG= "\${$#}"249 eval LASTARG=\${$#} 260 250 case $LASTARG in 261 251 *.l) … … 319 309 ;; 320 310 321 tar*)322 shift323 324 # We have already tried tar in the generic part.325 # Look for gnutar/gtar before invocation to avoid ugly error326 # messages.327 if (gnutar --version > /dev/null 2>&1); then328 gnutar "$@" && exit 0329 fi330 if (gtar --version > /dev/null 2>&1); then331 gtar "$@" && exit 0332 fi333 firstarg="$1"334 if shift; then335 case $firstarg in336 *o*)337 firstarg=`echo "$firstarg" | sed s/o//`338 tar "$firstarg" "$@" && exit 0339 ;;340 esac341 case $firstarg in342 *h*)343 firstarg=`echo "$firstarg" | sed s/h//`344 tar "$firstarg" "$@" && exit 0345 ;;346 esac347 fi348 349 echo 1>&2 "\350 WARNING: I can't seem to be able to run \`tar' with the given arguments.351 You may want to install GNU tar or Free paxutils, or check the352 command line arguments."353 exit 1354 ;;355 356 311 *) 357 312 echo 1>&2 "\ -
trunk/icedtea-web/netx/net/sourceforge/jnlp/AppletDesc.java
r348 r418 26 26 * @version $Revision: 1.8 $ 27 27 */ 28 public class AppletDesc {28 public class AppletDesc implements LaunchDesc { 29 29 30 30 /** the applet name */ … … 74 74 75 75 /** 76 * Returns the main class name 76 * Returns the main class name in the dot-separated form (eg: foo.bar.Baz) 77 77 */ 78 @Override 78 79 public String getMainClass() { 79 80 return mainClass; -
trunk/icedtea-web/netx/net/sourceforge/jnlp/ApplicationDesc.java
r348 r418 25 25 * @version $Revision: 1.7 $ 26 26 */ 27 public class ApplicationDesc {27 public class ApplicationDesc implements LaunchDesc { 28 28 29 29 /** the main class name and package */ … … 47 47 * Returns the main class name 48 48 */ 49 @Override 49 50 public String getMainClass() { 50 51 return mainClass; -
trunk/icedtea-web/netx/net/sourceforge/jnlp/DefaultLaunchHandler.java
r348 r418 17 17 package net.sourceforge.jnlp; 18 18 19 import java.io.PrintStream; 20 19 21 import net.sourceforge.jnlp.runtime.*; 20 22 … … 27 29 * @version $Revision: 1.1 $ 28 30 */ 29 public class DefaultLaunchHandler implements LaunchHandler { 31 public class DefaultLaunchHandler extends AbstractLaunchHandler { 32 33 public DefaultLaunchHandler(PrintStream out) { 34 super(out); 35 } 30 36 31 37 /** … … 58 64 * @return true to allow the application to continue, false to stop it. 59 65 */ 60 public boolean validationError(LaunchException security) {61 printMessage( security);66 public boolean validationError(LaunchException error) { 67 printMessage(error); 62 68 return true; 63 69 } … … 72 78 public void launchCompleted(ApplicationInstance application) { 73 79 // 74 }75 76 /**77 * Print a message to stdout.78 */79 protected static void printMessage(LaunchException ex) {80 StringBuffer result = new StringBuffer();81 result.append("netx: ");82 result.append(ex.getCategory());83 if (ex.getSummary() != null) {84 result.append(": ");85 result.append(ex.getSummary());86 }87 88 if (JNLPRuntime.isDebug()) {89 if (ex.getCause() != null)90 ex.getCause().printStackTrace();91 else92 ex.printStackTrace();93 }94 95 Throwable causes[] = ex.getCauses();96 97 for (int i = 0; i < causes.length; i++) {98 result.append(" (");99 result.append(causes[i].getClass().getName());100 result.append(" ");101 result.append(causes[i].getMessage());102 result.append(")");103 }104 80 } 105 81 -
trunk/icedtea-web/netx/net/sourceforge/jnlp/GuiLaunchHandler.java
r348 r418 38 38 package net.sourceforge.jnlp; 39 39 40 import java.io.PrintStream; 41 import java.lang.reflect.InvocationTargetException; 40 42 import java.net.URL; 41 43 … … 51 53 * including splash screens and exception dialogs. 52 54 */ 53 public class GuiLaunchHandler implementsLaunchHandler {55 public class GuiLaunchHandler extends AbstractLaunchHandler { 54 56 55 57 private JNLPSplashScreen splashScreen = null; 58 private final Object mutex = new Object(); 56 59 private UpdatePolicy policy = UpdatePolicy.ALWAYS; 60 61 public GuiLaunchHandler(PrintStream outputStream) { 62 super(outputStream); 63 } 57 64 58 65 @Override … … 66 73 @Override 67 74 public void run() { 75 closeSplashScreen(); 68 76 BasicExceptionDialog.show(exception); 69 77 } 70 78 }); 79 printMessage(exception); 80 } 81 82 private void closeSplashScreen() { 83 synchronized(mutex) { 84 if (splashScreen != null) { 85 if (splashScreen.isSplashScreenValid()) { 86 splashScreen.setVisible(false); 87 } 88 splashScreen.dispose(); 89 } 90 } 71 91 } 72 92 … … 76 96 @Override 77 97 public void run() { 78 if (splashScreen != null) { 79 if (splashScreen.isSplashScreenValid()) { 80 splashScreen.setVisible(false); 81 } 82 splashScreen.dispose(); 83 } 98 closeSplashScreen(); 84 99 } 85 100 }); … … 88 103 @Override 89 104 public void launchInitialized(final JNLPFile file) { 105 106 int preferredWidth = 500; 107 int preferredHeight = 400; 108 109 final URL splashImageURL = file.getInformation().getIconLocation( 110 IconDesc.SPLASH, preferredWidth, preferredHeight); 111 112 if (splashImageURL != null) { 113 final ResourceTracker resourceTracker = new ResourceTracker(true); 114 resourceTracker.addResource(splashImageURL, file.getFileVersion(), null, policy); 115 synchronized(mutex) { 116 try { 117 SwingUtilities.invokeAndWait(new Runnable() { 118 @Override 119 public void run() { 120 splashScreen = new JNLPSplashScreen(resourceTracker, null, null); 121 } 122 }); 123 } catch (InterruptedException ie) { 124 // Wait till splash screen is created 125 while (splashScreen == null); 126 } catch (InvocationTargetException ite) { 127 ite.printStackTrace(); 128 } 129 130 splashScreen.setSplashImageURL(splashImageURL); 131 } 132 } 133 90 134 SwingUtilities.invokeLater(new Runnable() { 91 135 @Override 92 136 public void run() { 93 final int preferredWidth = 500;94 final int preferredHeight = 400;95 96 URL splashImageURL = file.getInformation().getIconLocation(97 IconDesc.SPLASH, preferredWidth, preferredHeight);98 137 if (splashImageURL != null) { 99 ResourceTracker resourceTracker = new ResourceTracker(true); 100 resourceTracker.addResource(splashImageURL, file.getFileVersion(), null, policy); 101 splashScreen = new JNLPSplashScreen(resourceTracker, null, null); 102 splashScreen.setSplashImageURL(splashImageURL); 103 if (splashScreen.isSplashScreenValid()) { 104 splashScreen.setVisible(true); 138 synchronized(mutex) { 139 if (splashScreen.isSplashScreenValid()) { 140 splashScreen.setVisible(true); 141 } 105 142 } 106 143 } … … 111 148 @Override 112 149 public boolean launchWarning(LaunchException warning) { 113 DefaultLaunchHandler.printMessage(warning);150 printMessage(warning); 114 151 return true; 115 152 } 116 153 117 154 @Override 118 public boolean validationError(LaunchException security) { 119 DefaultLaunchHandler.printMessage(security); 155 public boolean validationError(LaunchException error) { 156 closeSplashScreen(); 157 printMessage(error); 120 158 return true; 121 159 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/InstallerDesc.java
r348 r418 23 23 * @version $Revision: 1.6 $ 24 24 */ 25 public class InstallerDesc {25 public class InstallerDesc implements LaunchDesc { 26 26 27 27 /** the main class name and package. */ … … 40 40 * Returns the main class name and package. 41 41 */ 42 @Override 42 43 public String getMainClass() { 43 44 return mainClass; -
trunk/icedtea-web/netx/net/sourceforge/jnlp/JNLPFile.java
r348 r418 92 92 93 93 /** the application description */ 94 protected ObjectlaunchType;94 protected LaunchDesc launchType; 95 95 96 96 /** the component description */ … … 100 100 protected SecurityDesc security; 101 101 102 /** the default JVM locale */ 103 protected Locale defaultLocale = null; 104 102 105 /** the default OS */ 103 protected Locale defaultLocale= null;106 protected String defaultOS = null; 104 107 105 108 /** the default arch */ 106 protected String defaultOS = null;107 108 /** the default jvm */109 109 protected String defaultArch = null; 110 111 /** A signed JNLP file is missing from the main jar */ 112 private boolean missingSignedJNLP = false; 113 114 /** JNLP file contains special properties */ 115 private boolean containsSpecialProperties = false; 116 117 /** 118 * List of acceptable properties (not-special) 119 */ 120 private String[] generalProperties = SecurityDesc.getJnlpRIAPermissions(); 110 121 111 122 { // initialize defaults if security allows … … 119 130 } 120 131 132 static enum Match { LANG_COUNTRY_VARIANT, LANG_COUNTRY, LANG, GENERALIZED } 133 121 134 /** 122 135 * Empty stub, allowing child classes to override the constructor … … 175 188 */ 176 189 public JNLPFile(URL location, Version version, boolean strict, UpdatePolicy policy) throws IOException, ParseException { 190 this(location, version, strict, policy, null); 191 } 192 193 /** 194 * Create a JNLPFile from a URL and a version, checking for updates 195 * using the specified policy. 196 * 197 * @param location the location of the JNLP file 198 * @param version the version of the JNLP file 199 * @param strict whether to enforce the spec when 200 * @param policy the update policy 201 * @param forceCodebase codebase to use if not specified in JNLP file. 202 * @throws IOException if an IO exception occurred 203 * @throws ParseException if the JNLP file was invalid 204 */ 205 protected JNLPFile(URL location, Version version, boolean strict, UpdatePolicy policy, URL forceCodebase) throws IOException, ParseException { 177 206 Node root = Parser.getRootNode(openURL(location, version, policy)); 178 parse(root, strict, location );207 parse(root, strict, location, forceCodebase); 179 208 180 209 //Downloads the original jnlp file into the cache if possible … … 182 211 //originated from a website, then download the one from the website 183 212 //into the cache). 184 if (sourceLocation != null && location.getProtocol() == "file") {213 if (sourceLocation != null && "file".equals(location.getProtocol())) { 185 214 openURL(sourceLocation, version, policy); 186 215 } … … 223 252 */ 224 253 public JNLPFile(InputStream input, boolean strict) throws ParseException { 225 parse(Parser.getRootNode(input), strict, null );254 parse(Parser.getRootNode(input), strict, null, null); 226 255 } 227 256 … … 258 287 259 288 /** 260 * Returns the JNLP file's title.This method returns the same289 * Returns the JNLP file's best localized title. This method returns the same 261 290 * value as InformationDesc.getTitle(). 262 291 */ … … 266 295 267 296 /** 297 * Returns the JNLP file's best localized vendor. This method returns the same 298 * value as InformationDesc.getVendor(). 299 */ 300 public String getVendor() { 301 return getInformation().getVendor(); 302 } 303 304 /** 268 305 * Returns the JNLP file's network location as specified in the 269 306 * JNLP file. … … 323 360 public InformationDesc getInformation(final Locale locale) { 324 361 return new InformationDesc(this, new Locale[] { locale }) { 362 @Override 325 363 protected List<Object> getItems(Object key) { 326 364 List<Object> result = new ArrayList<Object>(); 327 365 328 for (int i = 0; i < info.size(); i++) { 329 InformationDesc infoDesc = info.get(i); 330 331 if (localMatches(locale, infoDesc.getLocales())) 332 result.addAll(infoDesc.getItems(key)); 366 for (Match precision : Match.values()) { 367 for (InformationDesc infoDesc : JNLPFile.this.info) { 368 if (localeMatches(locale, infoDesc.getLocales(), precision)) { 369 result.addAll(infoDesc.getItems(key)); 370 } 371 } 372 373 if (result.size() > 0) { 374 return result; 375 } 333 376 } 334 335 377 return result; 378 } 379 380 @Override 381 public String getTitle() { 382 for (Match precision : Match.values()) { 383 for (InformationDesc infoDesc : JNLPFile.this.info) { 384 String title = infoDesc.getTitle(); 385 if (localeMatches(locale, infoDesc.getLocales(), precision) 386 && title != null && !"".equals(title)) { 387 return title; 388 } 389 } 390 } 391 392 return null; 393 } 394 395 @Override 396 public String getVendor() { 397 for (Match precision : Match.values()) { 398 for (InformationDesc infoDesc : JNLPFile.this.info) { 399 String vendor = infoDesc.getVendor(); 400 if (localeMatches(locale, infoDesc.getLocales(), precision) 401 && vendor != null && !"".equals(vendor)) { 402 return vendor; 403 } 404 } 405 } 406 407 return null; 336 408 } 337 409 }; … … 367 439 public ResourcesDesc getResources(final Locale locale, final String os, final String arch) { 368 440 return new ResourcesDesc(this, new Locale[] { locale }, new String[] { os }, new String[] { arch }) { 441 442 @Override 369 443 public <T> List<T> getResources(Class<T> launchType) { 370 444 List<T> result = new ArrayList<T>(); 371 445 372 for (int i = 0; i < resources.size(); i++) { 373 ResourcesDesc rescDesc = resources.get(i); 374 375 if (localMatches(locale, rescDesc.getLocales()) 446 for (ResourcesDesc rescDesc : resources) { 447 boolean hasUsableLocale = false; 448 for (Match match : Match.values()) { 449 hasUsableLocale |= localeMatches(locale, rescDesc.getLocales(), match); 450 } 451 if (hasUsableLocale 376 452 && stringMatches(os, rescDesc.getOS()) 377 453 && stringMatches(arch, rescDesc.getArch())) … … 384 460 } 385 461 462 @Override 386 463 public void addResource(Object resource) { 387 464 // todo: honor the current locale, os, arch values … … 409 486 List<ResourcesDesc> matchingResources = new ArrayList<ResourcesDesc>(); 410 487 for (ResourcesDesc rescDesc: resources) { 411 if (localMatches(locale, rescDesc.getLocales()) 488 boolean hasUsableLocale = false; 489 for (Match match : Match.values()) { 490 hasUsableLocale |= localeMatches(locale, rescDesc.getLocales(), match); 491 } 492 if (hasUsableLocale 412 493 && stringMatches(os, rescDesc.getOS()) 413 494 && stringMatches(arch, rescDesc.getArch())) { … … 422 503 * ApplicationDesc and InstallerDesc 423 504 */ 424 public ObjectgetLaunchInfo() {505 public LaunchDesc getLaunchInfo() { 425 506 return launchType; 426 507 } … … 522 603 * @param requested the local 523 604 * @param available the available locales 605 * @param precision the depth with which to match locales. 1 checks only 606 * language, 2 checks language and country, 3 checks language, country and 607 * variant for matches. Passing 0 will always return true. 524 608 * @return true if requested matches any of available, or if 525 609 * available is empty or null. 526 610 */ 527 private boolean localMatches(Locale requested, Locale available[]) { 528 if (available == null || available.length == 0) 529 return true; 530 531 for (int i = 0; i < available.length; i++) { 532 String language = requested.getLanguage(); // "" but never null 533 String country = requested.getCountry(); 534 String variant = requested.getVariant(); 535 536 if (!"".equals(language) && !language.equalsIgnoreCase(available[i].getLanguage())) 537 continue; 538 if (!"".equals(country) && !country.equalsIgnoreCase(available[i].getCountry())) 539 continue; 540 if (!"".equals(variant) && !variant.equalsIgnoreCase(available[i].getVariant())) 541 continue; 542 543 return true; 544 } 545 611 public boolean localeMatches(Locale requested, Locale available[], Match matchLevel) { 612 613 if (matchLevel == Match.GENERALIZED) 614 return available == null || available.length == 0; 615 616 String language = requested.getLanguage(); // "" but never null 617 String country = requested.getCountry(); 618 String variant = requested.getVariant(); 619 620 for (Locale locale : available) { 621 switch (matchLevel) { 622 case LANG: 623 if (!language.isEmpty() 624 && language.equals(locale.getLanguage()) 625 && locale.getCountry().isEmpty() 626 && locale.getVariant().isEmpty()) 627 return true; 628 break; 629 case LANG_COUNTRY: 630 if (!language.isEmpty() 631 && language.equals(locale.getLanguage()) 632 && !country.isEmpty() 633 && country.equals(locale.getCountry()) 634 && locale.getVariant().isEmpty()) 635 return true; 636 break; 637 case LANG_COUNTRY_VARIANT: 638 if (language.equals(locale.getLanguage()) 639 && country.equals(locale.getCountry()) 640 && variant.equals(locale.getVariant())) 641 return true; 642 break; 643 default: 644 break; 645 } 646 } 546 647 return false; 547 648 } … … 575 676 * @param location the file location or null 576 677 */ 577 private void parse(Node root, boolean strict, URL location ) throws ParseException {678 private void parse(Node root, boolean strict, URL location, URL forceCodebase) throws ParseException { 578 679 try { 579 680 //if (location != null) 580 681 // location = new URL(location, "."); // remove filename 581 682 582 Parser parser = new Parser(this, location, root, strict, true ); // true == allow extensions683 Parser parser = new Parser(this, location, root, strict, true, forceCodebase); // true == allow extensions 583 684 584 685 // JNLP tag information … … 588 689 sourceLocation = parser.getFileLocation() != null ? parser.getFileLocation() : location; 589 690 info = parser.getInfo(root); 691 parser.checkForInformation(); 590 692 update = parser.getUpdate(root); 591 693 resources = parser.getResources(root, false); // false == not a j2se/java resources section … … 593 695 component = parser.getComponent(root); 594 696 security = parser.getSecurity(root); 697 698 checkForSpecialProperties(); 699 595 700 } catch (ParseException ex) { 596 701 throw ex; … … 600 705 601 706 throw new RuntimeException(ex.toString()); 707 } 708 } 709 710 /** 711 * Inspects the JNLP file to check if it contains any special properties 712 */ 713 private void checkForSpecialProperties() { 714 715 for (ResourcesDesc res : resources) { 716 for (PropertyDesc propertyDesc : res.getProperties()) { 717 718 for (int i = 0; i < generalProperties.length; i++) { 719 String property = propertyDesc.getKey(); 720 721 if (property.equals(generalProperties[i])) { 722 break; 723 } else if (!property.equals(generalProperties[i]) 724 && i == generalProperties.length - 1) { 725 containsSpecialProperties = true; 726 return; 727 } 728 } 729 730 } 602 731 } 603 732 } … … 675 804 } 676 805 806 /** 807 * Returns a boolean after determining if a signed JNLP warning should be 808 * displayed in the 'More Information' panel. 809 * 810 * @return true if a warning should be displayed; otherwise false 811 */ 812 public boolean requiresSignedJNLPWarning() { 813 return (missingSignedJNLP && containsSpecialProperties); 814 } 815 816 /** 817 * Informs that a signed JNLP file is missing in the main jar 818 */ 819 public void setSignedJNLPAsMissing() { 820 missingSignedJNLP = true; 821 } 677 822 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/JNLPSplashScreen.java
r348 r418 11 11 12 12 import javax.imageio.ImageIO; 13 import javax.swing.J Frame;13 import javax.swing.JDialog; 14 14 15 15 import net.sourceforge.jnlp.cache.ResourceTracker; 16 16 import net.sourceforge.jnlp.runtime.JNLPRuntime; 17 import net.sourceforge.jnlp.util.ImageResources; 17 18 18 public class JNLPSplashScreen extends J Frame{19 public class JNLPSplashScreen extends JDialog { 19 20 20 21 String applicationTitle; … … 28 29 public JNLPSplashScreen(ResourceTracker resourceTracker, 29 30 String applicationTitle, String applicationVendor) { 31 32 setIconImages(ImageResources.INSTANCE.getApplicationImages()); 30 33 31 34 // If the JNLP file does not contain any icon images, the splash image -
trunk/icedtea-web/netx/net/sourceforge/jnlp/LaunchException.java
r348 r418 17 17 package net.sourceforge.jnlp; 18 18 19 import java.io.*;20 import java.util.*;21 22 import net.sourceforge.jnlp.util.*;23 24 19 /** 25 20 * Thrown when a JNLP application, applet, or installer could not … … 31 26 public class LaunchException extends Exception { 32 27 33 /** the original exception */ 34 private Throwable cause = null; 28 private static final long serialVersionUID = 7283827853612357423L; 35 29 36 30 /** the file being launched */ … … 53 47 */ 54 48 public LaunchException(JNLPFile file, Exception cause, String severity, String category, String summary, String description) { 55 super(severity + ": " + category + ": " + summary); 49 super(severity + ": " + category + ": " + summary + " " 50 + (description == null ? "" : description), cause); 56 51 57 52 this.file = file; … … 60 55 this.description = description; 61 56 this.severity = severity; 62 63 // replace with setCause when no longer 1.3 compatible64 this.cause = cause;65 57 } 66 58 … … 69 61 */ 70 62 public LaunchException(Throwable cause) { 71 this(cause.getMessage()); 72 73 // replace with setCause when no longer 1.3 compatible 74 this.cause = cause; 63 super(cause); 75 64 } 76 65 … … 79 68 */ 80 69 public LaunchException(String message, Throwable cause) { 81 this(message + ": " + cause.getMessage()); 82 83 // replace with setCause when no longer 1.3 compatible 84 this.cause = cause; 70 super(message, cause); 85 71 } 86 72 … … 132 118 } 133 119 134 /**135 * Return the cause of the launch exception or null if there136 * is no cause exception.137 */138 public Throwable getCause() {139 return cause;140 }141 142 /**143 * Returns the causes for this exception. This method is144 * useful on JRE 1.3 since getCause is not a standard method,145 * and will be removed once netx no longer supports 1.3.146 */147 public Throwable[] getCauses() {148 ArrayList<Throwable> result = new ArrayList<Throwable>();149 150 Reflect r = new Reflect();151 Throwable cause = this.cause;152 153 while (cause != null) {154 result.add(cause);155 cause = (Throwable) r.invoke(cause, "getCause");156 }157 158 return result.toArray(new Throwable[0]);159 }160 161 /**162 * Print the stack trace and the cause exception (1.3163 * compatible)164 */165 public void printStackTrace(PrintStream stream) {166 super.printStackTrace(stream);167 168 if (cause != null) {169 stream.println("Caused by: ");170 cause.printStackTrace(stream);171 }172 }173 174 /**175 * Print the stack trace and the cause exception (1.3176 * compatible)177 */178 public void printStackTrace(PrintWriter stream) {179 super.printStackTrace(stream);180 181 if (cause != null) {182 stream.println("Caused by: ");183 cause.printStackTrace(stream);184 }185 }186 187 120 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/LaunchHandler.java
r348 r418 51 51 * @return true to allow the application to continue, false to stop it. 52 52 */ 53 public boolean validationError(LaunchException security);53 public boolean validationError(LaunchException error); 54 54 55 55 // this method will probably be replaced when real security -
trunk/icedtea-web/netx/net/sourceforge/jnlp/Launcher.java
r348 r418 26 26 import java.net.URL; 27 27 import java.net.UnknownHostException; 28 import java.util.Arrays; 28 29 import java.util.LinkedList; 29 30 import java.util.List; … … 33 34 import net.sourceforge.jnlp.cache.CacheUtil; 34 35 import net.sourceforge.jnlp.cache.UpdatePolicy; 35 import net.sourceforge.jnlp.runtime.AppThreadGroup;36 36 import net.sourceforge.jnlp.runtime.AppletInstance; 37 37 import net.sourceforge.jnlp.runtime.ApplicationInstance; … … 588 588 589 589 main.setAccessible(true); 590 591 if (JNLPRuntime.isDebug()) { 592 System.out.println("Invoking main() with args: " + Arrays.toString(args)); 593 } 590 594 main.invoke(null, new Object[] { args }); 591 595 … … 703 707 } 704 708 705 AppThreadGroup group = (AppThreadGroup) Thread.currentThread().getThreadGroup(); 706 709 ThreadGroup group = Thread.currentThread().getThreadGroup(); 710 711 // appletInstance is needed by ServiceManager when looking up 712 // services. This could potentially be done in applet constructor 713 // so initialize appletInstance before creating applet. 714 AppletInstance appletInstance; 715 if (cont == null) 716 appletInstance = new AppletInstance(file, group, loader, null); 717 else 718 appletInstance = new AppletInstance(file, group, loader, null, cont); 719 720 loader.setApplication(appletInstance); 721 722 // Initialize applet now that ServiceManager has access to its 723 // appletInstance. 707 724 String appletName = file.getApplet().getMainClass(); 708 709 //Classloader chokes if there's '/' in the path to the main class.710 //Must replace with '.' instead.711 appletName = appletName.replace('/', '.');712 725 Class appletClass = loader.loadClass(appletName); 713 726 Applet applet = (Applet) appletClass.newInstance(); 714 715 AppletInstance appletInstance; 716 if (cont == null) 717 appletInstance = new AppletInstance(file, group, loader, applet); 718 else 719 appletInstance = new AppletInstance(file, group, loader, applet, cont); 720 721 group.setApplication(appletInstance); 722 loader.setApplication(appletInstance); 723 727 // Finish setting up appletInstance. 728 appletInstance.setApplet(applet); 729 appletInstance.getAppletEnvironment().setApplet(applet); 730 724 731 setContextClassLoaderForAllThreads(appletInstance.getThreadGroup(), appletInstance.getClassLoader()); 725 732 … … 747 754 748 755 String appletName = file.getApplet().getMainClass(); 749 750 //Classloader chokes if there's '/' in the path to the main class.751 //Must replace with '.' instead.752 appletName = appletName.replace('/', '.');753 756 Class appletClass = loader.loadClass(appletName); 754 757 Applet applet = (Applet) appletClass.newInstance(); … … 766 769 try { 767 770 JNLPClassLoader loader = JNLPClassLoader.getInstance(file, updatePolicy); 768 AppThreadGroup group = (AppThreadGroup)Thread.currentThread().getThreadGroup();771 ThreadGroup group = Thread.currentThread().getThreadGroup(); 769 772 770 773 ApplicationInstance app = new ApplicationInstance(file, group, loader); 771 group.setApplication(app);772 774 loader.setApplication(app); 773 775 … … 785 787 * ThreadGroup has to be created at an earlier point in the applet code. 786 788 */ 787 protected AppThreadGroup createThreadGroup(JNLPFile file) {788 AppThreadGroup appThreadGroup= null;789 protected ThreadGroup createThreadGroup(JNLPFile file) { 790 ThreadGroup tg = null; 789 791 790 792 if (file instanceof PluginBridge) { 791 appThreadGroup = (AppThreadGroup)Thread.currentThread().getThreadGroup();793 tg = Thread.currentThread().getThreadGroup(); 792 794 } else { 793 appThreadGroup = new AppThreadGroup(mainGroup, file.getTitle());794 } 795 796 return appThreadGroup;795 tg = new ThreadGroup(mainGroup, file.getTitle()); 796 } 797 798 return tg; 797 799 } 798 800 -
trunk/icedtea-web/netx/net/sourceforge/jnlp/NetxPanel.java
r348 r418 24 24 25 25 import net.sourceforge.jnlp.AppletLog; 26 import net.sourceforge.jnlp.runtime.AppThreadGroup;27 26 import net.sourceforge.jnlp.runtime.AppletInstance; 28 27 import net.sourceforge.jnlp.runtime.JNLPRuntime; 29 28 30 29 import java.net.URL; 30 import java.util.HashMap; 31 31 import java.util.Hashtable; 32 import java.util.Map; 33 import java.util.concurrent.ConcurrentHashMap; 34 import java.util.concurrent.ConcurrentMap; 32 35 33 36 import sun.applet.AppletViewerPanel; … … 45 48 private AppletInstance appInst = null; 46 49 private boolean appletAlive; 50 private final String uKey; 51 52 // We use this so that we can create exactly one thread group 53 // for all panels with the same uKey. 54 private static final Map<String, ThreadGroup> uKeyToTG = 55 new HashMap<String, ThreadGroup>(); 56 private static final Object TGMapMutex = new Object(); 57 58 // This map is actually a set (unfortunately there is no ConcurrentSet 59 // in java.util.concurrent). If KEY is in this map, then we know that 60 // an app context has been created for the panel that has uKey.equals(KEY), 61 // so we avoid creating it a second time for panels with the same uKey. 62 // Because it's a set, only the keys matter. However, we can't insert 63 // null values in because if we did, we couldn't use null checks to see 64 // if a key was absent before a putIfAbsent. 65 private static final ConcurrentMap<String, Boolean> appContextCreated = 66 new ConcurrentHashMap<String, Boolean>(); 47 67 48 68 public NetxPanel(URL documentURL, Hashtable<String, String> atts) { 49 69 super(documentURL, atts); 70 71 /* According to http://download.oracle.com/javase/6/docs/technotes/guides/deployment/deployment-guide/applet-compatibility.html, 72 * classloaders are shared iff these properties match: 73 * codebase, cache_archive, java_archive, archive 74 * 75 * To achieve this, we create the uniquekey based on those 4 values, 76 * always in the same order. The initial "<NAME>=" parts ensure a 77 * bad tag cannot trick the loader into getting shared with another. 78 */ 79 80 // Firefox sometimes skips the codebase if it is default -- ".", 81 // so set it that way if absent 82 String codebaseAttr = atts.get("codebase") != null ? 83 atts.get("codebase") : "."; 84 85 String cache_archiveAttr = atts.get("cache_archive") != null ? 86 atts.get("cache_archive") : ""; 87 88 String java_archiveAttr = atts.get("java_archive") != null ? 89 atts.get("java_archive") : ""; 90 91 String archiveAttr = atts.get("archive") != null ? 92 atts.get("archive") : ""; 93 94 this.uKey = "codebase=" + codebaseAttr + 95 "cache_archive=" + cache_archiveAttr + 96 "java_archive=" + java_archiveAttr + 97 "archive=" + archiveAttr; 98 99 // when this was being done (incorrectly) in Launcher, the call was 100 // new AppThreadGroup(mainGroup, file.getTitle()); 101 synchronized(TGMapMutex) { 102 if (!uKeyToTG.containsKey(this.uKey)) { 103 ThreadGroup tg = new ThreadGroup(Launcher.mainGroup, this.documentURL.toString()); 104 uKeyToTG.put(this.uKey, tg); 105 } 106 } 50 107 } 51 108 … … 56 113 this.exitOnFailure = exitOnFailure; 57 114 this.appletAlive = true; 58 }59 60 @Override61 public void run() {62 /*63 * create an AppContext for this thread associated with this particular64 * plugin instance (which runs in a different thread group from the rest65 * of the plugin).66 */67 SunToolkit.createNewAppContext();68 69 super.run();70 115 } 71 116 … … 79 124 super.showAppletException(t); 80 125 } 81 126 82 127 //Overriding to use Netx classloader. You might need to relax visibility 83 128 //in sun.applet.AppletPanel for runLoader(). … … 91 136 getWidth(), 92 137 getHeight(), 93 atts );138 atts, uKey); 94 139 95 140 doInit = true; … … 155 200 } 156 201 157 // when this was being done (incorrectly) in Launcher, the call was 158 // new AppThreadGroup(mainGroup, file.getTitle()); 159 ThreadGroup tg = new AppThreadGroup(Launcher.mainGroup, 160 this.documentURL.toString()); 161 handler = new Thread(tg, this); 202 handler = new Thread(getThreadGroup(), this); 162 203 handler.start(); 163 204 } … … 175 216 return handler != null && handler.isAlive() && this.appletAlive; 176 217 } 218 219 public ThreadGroup getThreadGroup() { 220 synchronized(TGMapMutex) { 221 return uKeyToTG.get(uKey); 222 } 223 } 224 225 public void createNewAppContext() { 226 if (Thread.currentThread().getThreadGroup() != getThreadGroup()) { 227 throw new RuntimeException("createNewAppContext called from the wrong thread."); 228 } 229 // only create a new context if one hasn't already been created for the 230 // applets with this unique key. 231 if (null == appContextCreated.putIfAbsent(uKey, Boolean.TRUE)) { 232 SunToolkit.createNewAppContext(); 233 } 234 } 177 235 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/Node.java
r348 r418 20 20 private Node next; 21 21 private Node children[]; 22 private List <String> attributeNames= null; 22 23 23 24 Node(XMLElement xml) { … … 61 62 return children; 62 63 } 64 65 /** 66 * To retrieve all attribute names 67 * @return all attribute names of the Node in ArrayList<String> 68 */ 69 List<String> getAttributeNames() { 70 if (attributeNames == null) { 71 attributeNames= new ArrayList<String>(); 72 73 for (Enumeration e = xml.enumerateAttributeNames(); e.hasMoreElements();) 74 attributeNames.add(new String((String) e.nextElement())); 75 } 76 77 return attributeNames; 78 } 63 79 64 80 String getAttribute(String name) { … … 87 103 private Node next; 88 104 private Node children[]; 105 private String attributeNames[]; 89 106 90 107 Node(ParsedXML tinyNode) { … … 128 145 return children; 129 146 } 130 147 131 148 String getAttribute(String name) { 132 149 return tinyNode.getAttribute(name); -
trunk/icedtea-web/netx/net/sourceforge/jnlp/Parser.java
r348 r418 1 1 // Copyright (C) 2001-2003 Jon A. Maxwell (JAM) 2 // Copyright (C) 20 09Red Hat, Inc.2 // Copyright (C) 2012 Red Hat, Inc. 3 3 // 4 4 // This library is free software; you can redistribute it and/or … … 29 29 import net.sourceforge.jnlp.UpdateDesc.Check; 30 30 import net.sourceforge.jnlp.UpdateDesc.Policy; 31 import net.sourceforge.jnlp.runtime.JNLPRuntime; 31 32 import net.sourceforge.nanoxml.*; 32 33 … … 111 112 */ 112 113 public Parser(JNLPFile file, URL base, Node root, boolean strict, boolean allowExtensions) throws ParseException { 114 this(file, base, root, strict, allowExtensions, null); 115 } 116 117 /** 118 * Create a parser for the JNLP file. If the location 119 * parameters is not null it is used as the default codebase 120 * (does not override value of jnlp element's href 121 * attribute).<p> 122 * 123 * The root node may be normalized as a side effect of this 124 * constructor. 125 * 126 * @param file the (uninitialized) file reference 127 * @param base if codebase is not specified, a default base for relative URLs 128 * @param root the root node 129 * @param strict whether to enforce strict compliance with the JNLP spec 130 * @param allowExtensions whether to allow extensions to the JNLP spec 131 * @param codebase codebase to use if we did not parse one from JNLP file. 132 * @throws ParseException if the JNLP file is invalid 133 */ 134 public Parser(JNLPFile file, URL base, Node root, boolean strict, boolean allowExtensions, URL codebase) throws ParseException { 113 135 this.file = file; 114 136 this.root = root; … … 123 145 this.spec = getVersion(root, "spec", "1.0+"); 124 146 this.codebase = addSlash(getURL(root, "codebase", base)); 125 this.base = (codebase != null) ? codebase : base; // if codebase not specified use default codebase 147 if (this.codebase == null) // We only override it if it is not specified. 148 this.codebase = codebase; 149 this.base = (this.codebase != null) ? this.codebase : base; // if codebase not specified use default codebase 126 150 fileLocation = getURL(root, "href", this.base); 127 151 … … 403 427 404 428 /** 429 * Make sure a title and vendor are present and nonempty and localized as 430 * best matching as possible for the JVM's current locale. Fallback to a 431 * generalized title and vendor otherwise. If none is found, throw an exception. 432 * 433 * Additionally prints homepage, description, title and vendor to stdout 434 * if in Debug mode. 435 * @throws RequiredElementException 436 */ 437 void checkForInformation() throws RequiredElementException { 438 if (JNLPRuntime.isDebug()) { 439 System.out.println("Homepage: " + file.getInformation().getHomepage()); 440 System.out.println("Description: " + file.getInformation().getDescription()); 441 } 442 443 String title = file.getTitle(); 444 String vendor = file.getVendor(); 445 446 if (title == null || title.trim().isEmpty()) 447 throw new MissingTitleException(); 448 else if (JNLPRuntime.isDebug()) 449 System.out.println("Acceptable title tag found, contains: " + title); 450 451 if (vendor == null || vendor.trim().isEmpty()) 452 throw new MissingVendorException(); 453 else if (JNLPRuntime.isDebug()) 454 System.out.println("Acceptable vendor tag found, contains: " + vendor); 455 } 456 457 /** 405 458 * Returns all of the information elements under the specified 406 459 * node. … … 416 469 // ensure that there are at least one information section present 417 470 if (info.length == 0) 418 throw new ParseException(R("PNoInfoElement"));471 throw new MissingInformationException(); 419 472 420 473 // create objects from the info sections 421 for (int i = 0; i < info.length; i++) 422 result.add(getInformationDesc(info[i])); 474 for (Node infoNode : info) { 475 result.add(getInformationDesc(infoNode)); 476 } 423 477 424 478 return result; … … 582 636 * @throws ParseException if the JNLP file is invalid 583 637 */ 584 public ObjectgetLauncher(Node parent) throws ParseException {638 public LaunchDesc getLauncher(Node parent) throws ParseException { 585 639 // check for other than one application type 586 640 if (1 < getChildNodes(parent, "applet-desc").length … … 869 923 String language = localeStr.substring(0, 2); 870 924 String country = (localeStr.length() < 5) ? "" : localeStr.substring(3, 5); 871 String variant = (localeStr.length() < 7) ? "" : localeStr.substring(6, 8);925 String variant = (localeStr.length() > 7) ? localeStr.substring(6) : ""; 872 926 873 927 // null is not allowed n locale but "" is -
trunk/icedtea-web/netx/net/sourceforge/jnlp/PluginBridge.java
r348 r418 1 1 /* 2 * Copyright 20 07Red Hat, Inc.2 * Copyright 2012 Red Hat, Inc. 3 3 * This file is part of IcedTea, http://icedtea.classpath.org 4 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. … … 23 23 package net.sourceforge.jnlp; 24 24 25 import java.io.File; 25 26 import java.net.URL; 26 27 import java.net.MalformedURLException; 27 import java.util.Hash table;28 import java.util.HashSet; 28 29 import java.util.Locale; 29 30 import java.util.List; 30 31 import java.util.ArrayList; 31 32 import java.util.Map; 33 import java.util.Set; 32 34 33 35 import net.sourceforge.jnlp.runtime.JNLPRuntime; 34 36 37 /** 38 * Allows reuse of code that expects a JNLPFile object, 39 * while overriding behaviour specific to applets. 40 */ 35 41 public class PluginBridge extends JNLPFile { 36 42 37 String name; 38 String[] jars = new String[0]; 39 String[] cacheJars = new String[0]; 40 String[] cacheExJars = new String[0]; 41 Hashtable<String, String> atts; 43 private String name; 44 private Set<String> jars = new HashSet<String>(); 45 //Folders can be added to the code-base through the archive tag 46 private List<String> codeBaseFolders = new ArrayList<String>(); 47 private String[] cacheJars = new String[0]; 48 private String[] cacheExJars = new String[0]; 49 private Map<String, String> atts; 42 50 private boolean usePack; 43 51 private boolean useVersion; 44 52 private boolean codeBaseLookup; 45 53 private boolean useJNLPHref; 54 55 /** 56 * Creates a new PluginBridge using a default JNLPCreator. 57 */ 46 58 public PluginBridge(URL codebase, URL documentBase, String jar, String main, 47 int width, int height, Hashtable<String, String> atts) 59 int width, int height, Map<String, String> atts, 60 String uKey) 61 throws Exception { 62 this(codebase, documentBase, jar, main, width, height, atts, uKey, new JNLPCreator()); 63 } 64 65 /** 66 * Handles archive tag entries, which may be folders or jar files 67 * @param archives the components of the archive tag 68 */ 69 private void addArchiveEntries(String[] archives) { 70 for (String archiveEntry : archives){ 71 // trim white spaces 72 archiveEntry = archiveEntry.trim(); 73 74 /*Only '/' on linux, '/' or '\\' on windows*/ 75 if (archiveEntry.endsWith("/") || archiveEntry.endsWith(File.pathSeparator)) { 76 this.codeBaseFolders.add(archiveEntry); 77 } else { 78 this.jars.add(archiveEntry); 79 } 80 } 81 } 82 83 public PluginBridge(URL codebase, URL documentBase, String archive, String main, 84 int width, int height, Map<String, String> atts, 85 String uKey, JNLPCreator jnlpCreator) 48 86 throws Exception { 49 87 specVersion = new Version("1.0"); … … 51 89 this.codeBase = codebase; 52 90 this.sourceLocation = documentBase; 91 this.atts = atts; 53 92 54 93 if (atts.containsKey("jnlp_href")) { 94 useJNLPHref = true; 55 95 try { 56 URL jnlp = new URL(codeBase.toExternalForm() + atts.get("jnlp_href")); 57 JNLPFile jnlpFile = new JNLPFile(jnlp); 96 // Use codeBase as the context for the URL. If jnlp_href's 97 // value is a complete URL, it will replace codeBase's context. 98 URL jnlp = new URL(codeBase, atts.get("jnlp_href")); 99 JNLPFile jnlpFile = jnlpCreator.create(jnlp, null, false, JNLPRuntime.getDefaultUpdatePolicy(), codeBase); 58 100 Map<String, String> jnlpParams = jnlpFile.getApplet().getParameters(); 101 info = jnlpFile.info; 59 102 60 103 // Change the parameter name to lowercase to follow conventions. 61 104 for (Map.Entry<String, String> entry : jnlpParams.entrySet()) { 62 atts.put(entry.getKey().toLowerCase(), entry.getValue());105 this.atts.put(entry.getKey().toLowerCase(), entry.getValue()); 63 106 } 107 JARDesc[] jarDescs = jnlpFile.getResources().getJARs(); 108 for (JARDesc jarDesc : jarDescs) { 109 String fileName = jarDesc.getLocation().toExternalForm(); 110 this.jars.add(fileName); 111 } 64 112 } catch (MalformedURLException e) { 65 113 // Don't fail because we cannot get the jnlp file. Parameters are optional not required. 66 114 // it is the site developer who should ensure that file exist. 67 System.err.println("Unable to get JNLP file at: " + codeBase.toExternalForm() 68 + atts.get("jnlp_href")); 69 } 115 System.err.println("Unable to get JNLP file at: " + atts.get("jnlp_href") 116 + " with context of URL as: " + codeBase.toExternalForm()); 117 } 118 } else { 119 // Should we populate this list with applet attribute tags? 120 info = new ArrayList<InformationDesc>(); 121 useJNLPHref = false; 70 122 } 71 123 … … 100 152 } 101 153 102 if (jar != null && jar.length() > 0) { 103 this.jars = jar.split(","); 104 105 // trim white spaces 106 for (int i = 0; i < this.jars.length; i++) { 107 this.jars[i] = this.jars[i].trim(); 108 } 154 if (archive != null && archive.length() > 0) { 155 String[] archives = archive.split(","); 156 157 addArchiveEntries(archives); 109 158 110 159 if (JNLPRuntime.isDebug()) { 111 System.err.println("Jar string: " + jar); 112 System.err.println("jars length: " + jars.length); 113 } 114 } 115 this.atts = atts; 160 System.err.println("Jar string: " + archive); 161 System.err.println("jars length: " + archives.length); 162 } 163 } 116 164 117 165 name = atts.get("name"); … … 124 172 main = main.substring(0, main.length() - 6); 125 173 126 launchType = new AppletDesc(name, main, documentBase, width, 174 // the class name should be of the form foo.bar.Baz not foo/bar/Baz 175 String mainClass = main.replace('/', '.'); 176 launchType = new AppletDesc(name, mainClass, documentBase, width, 127 177 height, atts); 128 178 … … 133 183 security = null; 134 184 135 /* According to http://download.oracle.com/javase/6/docs/technotes/guides/deployment/deployment-guide/applet-compatibility.html, 136 * classloaders are shared iff these properties match: 137 * codebase, cache_archive, java_archive, archive 138 * 139 * To achieve this, we create the uniquekey based on those 4 values, 140 * always in the same order. The initial "<NAME>=" parts ensure a 141 * bad tag cannot trick the loader into getting shared with another. 142 */ 143 144 // Firefox sometimes skips the codebase if it is default -- ".", 145 // so set it that way if absent 146 String codebaseAttr = atts.get("codebase") != null ? 147 atts.get("codebase") : "."; 148 149 String cache_archiveAttr = atts.get("cache_archive") != null ? 150 atts.get("cache_archive") : ""; 151 152 String java_archiveAttr = atts.get("java_archive") != null ? 153 atts.get("java_archive") : ""; 154 155 String archiveAttr = atts.get("archive") != null ? 156 atts.get("archive") : ""; 157 158 this.uniqueKey = "codebase=" + codebaseAttr + 159 "cache_archive=" + cache_archiveAttr + 160 "java_archive=" + java_archiveAttr + 161 "archive=" + archiveAttr; 162 185 this.uniqueKey = uKey; 163 186 usePack = false; 164 187 useVersion = false; … … 184 207 } 185 208 209 public boolean useJNLPHref() { 210 return useJNLPHref; 211 } 212 186 213 /** 187 214 * {@inheritdoc } … … 194 221 public String getTitle() { 195 222 return name; 196 }197 198 public InformationDesc getInformation(final Locale locale) {199 return new InformationDesc(this, new Locale[] { locale }) {200 protected List<Object> getItems(Object key) {201 // Should we populate this list with applet attribute tags?202 return new ArrayList<Object>();203 }204 };205 223 } 206 224 … … 218 236 jarDescs.addAll(sharedResources.getResources(JARDesc.class)); 219 237 220 for ( int i = 0; i < jars.length; i++)221 if ( jars[i].length() > 0)222 jarDescs.add(new JARDesc(new URL(codeBase, jars[i]),238 for (String name : jars) { 239 if (name.length() > 0) 240 jarDescs.add(new JARDesc(new URL(codeBase, name), 223 241 null, null, false, true, false, true)); 242 } 224 243 225 244 boolean cacheable = true; … … 229 248 cacheable = false; 230 249 231 for ( int i = 0; i < cacheJars.length; i++) {232 233 String[] jarAndVer = cacheJar s[i].split(";");250 for (String cacheJar : cacheJars) { 251 252 String[] jarAndVer = cacheJar.split(";"); 234 253 235 254 String jar = jarAndVer[0]; … … 247 266 } 248 267 249 for ( int i = 0; i < cacheExJars.length; i++) {250 251 if (cacheExJar s[i].length() == 0)268 for (String cacheExJar : cacheExJars) { 269 270 if (cacheExJar.length() == 0) 252 271 continue; 253 272 254 String[] jarInfo = cacheExJar s[i].split(";");273 String[] jarInfo = cacheExJar.split(";"); 255 274 256 275 String jar = jarInfo[0].trim(); … … 302 321 303 322 /** 323 * Returns the list of folders to be added to the codebase 324 */ 325 public List<String> getCodeBaseFolders() { 326 return new ArrayList<String>(codeBaseFolders); 327 } 328 329 /** 304 330 * Returns the resources section of the JNLP file for the 305 331 * specified locale, os, and arch. -
trunk/icedtea-web/netx/net/sourceforge/jnlp/ResourcesDesc.java
r348 r418 76 76 JARDesc jars[] = getJARs(); 77 77 78 for (int i = 0; i < jars.length; i++) 79 if (jars[i].isMain()) 80 return jars[i]; 78 for (JARDesc jar : jars) { 79 if (jar.isMain()) 80 return jar; 81 } 81 82 82 83 if (jars.length > 0) … … 161 162 Map<String, String> properties = new HashMap<String, String>(); 162 163 List<PropertyDesc> resources = getResources(PropertyDesc.class); 163 for (int i = 0; i < resources.size(); i++) { 164 PropertyDesc prop = resources.get(i); 164 for (PropertyDesc prop : resources) { 165 165 properties.put(prop.getKey(), prop.getValue()); 166 166 } … … 206 206 List<T> result = new ArrayList<T>(); 207 207 208 for (int i = 0; i < resources.size(); i++) 209 if (type.isAssignableFrom(resources.get(i).getClass())) 210 result.add(type.cast(resources.get(i))); 208 for (Object resource : resources) { 209 if (type.isAssignableFrom(resource.getClass())) 210 result.add(type.cast(resource)); 211 } 211 212 212 213 return result; -
trunk/icedtea-web/netx/net/sourceforge/jnlp/SecurityDesc.java
r348 r418 203 203 204 204 // discard sandbox, give all 205 if ( type == ALL_PERMISSIONS) {205 if (ALL_PERMISSIONS.equals(type)) { 206 206 permissions = new Permissions(); 207 207 if (customTrustedPolicy == null) { … … 214 214 215 215 // add j2ee to sandbox if needed 216 if ( type == J2EE_PERMISSIONS)216 if (J2EE_PERMISSIONS.equals(type)) 217 217 for (int i = 0; i < j2eePermissions.length; i++) 218 218 permissions.add(j2eePermissions[i]); … … 239 239 permissions.add(jnlpRIAPermissions[i]); 240 240 241 if (downloadHost != null )241 if (downloadHost != null && downloadHost.length() > 0) 242 242 permissions.add(new SocketPermission(downloadHost, 243 243 "connect, accept")); … … 245 245 return permissions; 246 246 } 247 248 /** 249 * Returns all the names of the basic JNLP system properties accessible by RIAs 250 */ 251 public static String[] getJnlpRIAPermissions() { 252 String[] jnlpPermissions = new String[jnlpRIAPermissions.length]; 253 254 for (int i = 0; i < jnlpRIAPermissions.length; i++) 255 jnlpPermissions[i] = jnlpRIAPermissions[i].getName(); 256 257 return jnlpPermissions; 258 } 247 259 248 260 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/Version.java
r348 r418 231 231 232 232 // compare as integers 233 // for normalization key, compare exact object, not using .equals 233 234 try { 234 235 if (!(part1 == emptyString)) // compare to magic normalization key … … 243 244 } 244 245 245 if (part1 == emptyString) 246 if (part1 == emptyString) // compare to magic normalization key 246 247 part1 = ""; 247 if (part2 == emptyString) 248 if (part2 == emptyString) // compare to magic normalization key 248 249 part2 = ""; 249 250 -
trunk/icedtea-web/netx/net/sourceforge/jnlp/cache/CacheLRUWrapper.java
r348 r418 37 37 package net.sourceforge.jnlp.cache; 38 38 39 import java.util.Set; 40 import static net.sourceforge.jnlp.runtime.Translator.R; 41 39 42 import java.io.File; 40 43 import java.io.IOException; … … 44 47 import java.util.Collections; 45 48 import java.util.Comparator; 49 import java.util.Iterator; 46 50 import java.util.List; 47 51 import java.util.Map.Entry; … … 68 72 69 73 /* location of cache directory */ 70 private final String cacheDir = new File(JNLPRuntime.getConfiguration()71 .getProperty(DeploymentConfiguration.KEY_USER_CACHE_DIR)).getPath();74 private final String setCachePath = JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_CACHE_DIR); 75 private final String cacheDir = new File(setCachePath != null ? setCachePath : System.getProperty("java.io.tmpdir")).getPath(); 72 76 73 77 /* … … 105 109 */ 106 110 public synchronized void load() { 107 cacheOrder.load(); 111 boolean loaded = cacheOrder.load(); 112 /* 113 * clean up possibly corrupted entries 114 */ 115 if (loaded && checkData()) { 116 if (JNLPRuntime.isDebug()) { 117 new LruCacheException().printStackTrace(); 118 } 119 System.out.println(R("CFakeCache")); 120 store(); 121 System.out.println(R("CFakedCache")); 122 } 123 } 124 125 /** 126 * check content of cacheOrder and remove invalid/corrupt entries 127 * 128 * @return true, if cache was corrupted and affected entry removed 129 */ 130 private boolean checkData () { 131 boolean modified = false; 132 Set<Entry<Object, Object>> q = cacheOrder.entrySet(); 133 for (Iterator<Entry<Object, Object>> it = q.iterator(); it.hasNext();) { 134 Entry<Object, Object> currentEntry = it.next(); 135 136 final String key = (String) currentEntry.getKey(); 137 final String path = (String) currentEntry.getValue(); 138 139 // 1. check key format: "milliseconds,number" 140 try { 141 String sa[] = key.split(","); 142 Long l1 = Long.parseLong(sa[0]); 143 Long l2 = Long.parseLong(sa[1]); 144 } catch (Exception ex) { 145 it.remove(); 146 modified = true; 147 continue; 148 } 149 150 // 2. check path format - does the path look correct? 151 if (path != null) { 152 if (path.indexOf(cacheDir) < 0) { 153 it.remove(); 154 modified = true; 155 } 156 } else { 157 it.remove(); 158 modified = true; 159 } 160 } 161 162 return modified; 108 163 } 109 164 … … 173 228 @Override 174 229 public int compare(Entry<String, String> e1, Entry<String, String> e2) { 175 try { 176 Long t1 = Long.parseLong(e1.getKey().split(",")[0]); 177 Long t2 = Long.parseLong(e2.getKey().split(",")[0]); 178 179 int c = t1.compareTo(t2); 180 return c < 0 ? 1 : (c > 0 ? -1 : 0); 181 } catch (NumberFormatException e) { 182 // Perhaps an error is too harsh. Maybe just somehow turn 183 // caching off if this is the case. 184 throw new InternalError("Corrupt LRU file entries"); 185 } 230 Long t1 = Long.parseLong(e1.getKey().split(",")[0]); 231 Long t2 = Long.parseLong(e2.getKey().split(",")[0]); 232 233 int c = t1.compareTo(t2); 234 return c < 0 ? 1 : (c > 0 ? -1 : 0); 186 235 } 187 236 }); … … 250 299 return System.currentTimeMillis() + "," + getIdForCacheFolder(path); 251 300 } 301 302 void clearLRUSortedEntries() { 303 cacheOrder.clear(); 304 } 252 305 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/cache/CacheUtil.java
r382 r418 48 48 public class CacheUtil { 49 49 50 private static final String cacheDir = new File(JNLPRuntime.getConfiguration()51 .getProperty(DeploymentConfiguration.KEY_USER_CACHE_DIR)).getPath(); // Do this with file to standardize it.50 private static final String setCacheDir = JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_CACHE_DIR); 51 private static final String cacheDir = new File(setCacheDir != null ? setCacheDir : System.getProperty("java.io.tmpdir")).getPath(); // Do this with file to standardize it. 52 52 private static final CacheLRUWrapper lruHandler = CacheLRUWrapper.getInstance(); 53 53 private static final HashMap<String, FileLock> propertiesLockPool = new HashMap<String, FileLock>(); … … 62 62 */ 63 63 public static boolean urlEquals(URL u1, URL u2) { 64 if (u1 == u2) 64 if (u1 == u2) { 65 65 return true; 66 if (u1 == null || u2 == null) 67 return false; 68 69 if (!compare(u1.getProtocol(), u2.getProtocol(), true) || 70 !compare(u1.getHost(), u2.getHost(), true) || 71 //u1.getDefaultPort() != u2.getDefaultPort() || // only in 1.4 72 !compare(u1.getPath(), u2.getPath(), false) || 73 !compare(u1.getQuery(), u2.getQuery(), false) || 74 !compare(u1.getRef(), u2.getRef(), false)) 75 return false; 76 else 66 } 67 if (u1 == null || u2 == null) { 68 return false; 69 } 70 71 if (notNullUrlEquals(u1, u2)) { 77 72 return true; 78 } 79 73 } 74 try { 75 URL nu1 = ResourceTracker.normalizeUrl(u1, false); 76 URL nu2 = ResourceTracker.normalizeUrl(u2, false); 77 if (notNullUrlEquals(nu1, nu2)) { 78 return true; 79 } 80 } catch (Exception ex) { 81 //keep silent here and return false 82 } 83 return false; 84 } 85 86 private static boolean notNullUrlEquals(URL u1, URL u2) { 87 if (!compare(u1.getProtocol(), u2.getProtocol(), true) 88 || !compare(u1.getHost(), u2.getHost(), true) 89 || //u1.getDefaultPort() != u2.getDefaultPort() || // only in 1.4 90 !compare(u1.getPath(), u2.getPath(), false) 91 || !compare(u1.getQuery(), u2.getQuery(), false) 92 || !compare(u1.getRef(), u2.getRef(), false)) { 93 return false; 94 } else { 95 return true; 96 } 97 } 80 98 /** 81 99 * Caches a resource and returns a URL for it in the cache; … … 145 163 * and we check for those by calling {@link #okToClearCache()} 146 164 */ 147 public static voidclearCache() {165 public static boolean clearCache() { 148 166 149 167 if (!okToClearCache()) { 150 168 System.err.println(R("CCannotClearCache")); 151 return ;169 return false; 152 170 } 153 171 154 172 File cacheDir = new File(CacheUtil.cacheDir); 155 173 if (!(cacheDir.isDirectory())) { 156 return ;174 return false; 157 175 } 158 176 … … 166 184 throw new RuntimeException(e); 167 185 } 186 return true; 168 187 } 169 188 … … 307 326 if (cacheFile == null) { // We did not find a copy of it. 308 327 cacheFile = makeNewCacheFile(source, version); 309 } 310 lruHandler.store();328 } else 329 lruHandler.store(); 311 330 lruHandler.unlock(); 312 331 } … … 329 348 final String path = e.getValue(); 330 349 331 if (path != null) { 332 if (pathToURLPath(path).equals(urlPath.getPath())) { // Match found. 333 cacheFile = new File(path); 334 lruHandler.updateEntry(key); 335 break; // Stop searching since we got newest one already. 336 } 350 if (pathToURLPath(path).equals(urlPath.getPath())) { // Match found. 351 cacheFile = new File(path); 352 lruHandler.updateEntry(key); 353 break; // Stop searching since we got newest one already. 337 354 } 338 355 } … … 481 498 // only resources not starting out downloaded are displayed 482 499 List<URL> urlList = new ArrayList<URL>(); 483 for ( int i = 0; i < resources.length; i++) {484 if (!tracker.checkResource( resources[i]))485 urlList.add( resources[i]);500 for (URL url : resources) { 501 if (!tracker.checkResource(url)) 502 urlList.add(url); 486 503 } 487 504 URL undownloaded[] = urlList.toArray(new URL[urlList.size()]); … … 493 510 long total = 0; 494 511 495 for ( int i = 0; i < undownloaded.length; i++) {512 for (URL url : undownloaded) { 496 513 // add in any -1's; they're insignificant 497 total += tracker.getTotalSize(u ndownloaded[i]);498 read += tracker.getAmountRead(u ndownloaded[i]);514 total += tracker.getTotalSize(url); 515 read += tracker.getAmountRead(url); 499 516 } 500 517 501 518 int percent = (int) ((100 * read) / Math.max(1, total)); 502 519 503 for ( int i = 0; i < undownloaded.length; i++)504 listener.progress(u ndownloaded[i], "version",505 tracker.getAmountRead(u ndownloaded[i]),506 tracker.getTotalSize(u ndownloaded[i]),520 for (URL url : undownloaded) { 521 listener.progress(url, "version", 522 tracker.getAmountRead(url), 523 tracker.getTotalSize(url), 507 524 percent); 525 } 508 526 } while (!tracker.waitForResources(resources, indicator.getUpdateRate())); 509 527 510 528 // make sure they read 100% until indicator closes 511 for ( int i = 0; i < undownloaded.length; i++)512 listener.progress(u ndownloaded[i], "version",513 tracker.getTotalSize(u ndownloaded[i]),514 tracker.getTotalSize(u ndownloaded[i]),529 for (URL url : undownloaded) { 530 listener.progress(url, "version", 531 tracker.getTotalSize(url), 532 tracker.getTotalSize(url), 515 533 100); 516 534 } 517 535 } catch (InterruptedException ex) { 518 536 if (JNLPRuntime.isDebug()) … … 528 546 */ 529 547 public static void cleanCache() { 548 530 549 if (okToClearCache()) { 531 550 // First we want to figure out which stuff we need to delete. … … 546 565 // Check if the item is contained in cacheOrder. 547 566 final String key = e.getKey(); 548 final String value = e.getValue(); 549 550 if (value != null) { 551 File file = new File(value); 552 PropertiesFile pf = new PropertiesFile(new File(value + ".info")); 553 boolean delete = Boolean.parseBoolean(pf.getProperty("delete")); 554 555 /* 556 * This will get me the root directory specific to this cache item. 557 * Example: 558 * cacheDir = /home/user1/.icedtea/cache 559 * file.getPath() = /home/user1/.icedtea/cache/0/http/www.example.com/subdir/a.jar 560 * rStr first becomes: /0/http/www.example.com/subdir/a.jar 561 * then rstr becomes: /home/user1/.icedtea/cache/0 562 */ 563 String rStr = file.getPath().substring(cacheDir.length()); 564 rStr = cacheDir + rStr.substring(0, rStr.indexOf(File.separatorChar, 1)); 565 long len = file.length(); 566 567 if (keep.contains(file.getPath().substring(rStr.length()))) { 568 lruHandler.removeEntry(key); 569 continue; 570 } 571 572 /* 573 * we remove entries from our lru if any of the following condition is met. 574 * Conditions: 575 * - delete: file has been marked for deletion. 576 * - !file.isFile(): if someone tampered with the directory, file doesn't exist. 577 * - maxSize >= 0 && curSize + len > maxSize: If a limit was set and the new size 578 * on disk would exceed the maximum size. 579 */ 580 if (delete || !file.isFile() || (maxSize >= 0 && curSize + len > maxSize)) { 581 lruHandler.removeEntry(key); 582 remove.add(rStr); 583 } else { 584 curSize += len; 585 keep.add(file.getPath().substring(rStr.length())); 586 587 for (File f : file.getParentFile().listFiles()) { 588 if (!(f.equals(file) || f.equals(pf.getStoreFile()))){ 589 try { 590 FileUtils.recursiveDelete(f, f); 591 } catch (IOException e1) { 592 e1.printStackTrace(); 593 } 594 } 567 final String path = e.getValue(); 568 569 File file = new File(path); 570 PropertiesFile pf = new PropertiesFile(new File(path + ".info")); 571 boolean delete = Boolean.parseBoolean(pf.getProperty("delete")); 572 573 /* 574 * This will get me the root directory specific to this cache item. 575 * Example: 576 * cacheDir = /home/user1/.icedtea/cache 577 * file.getPath() = /home/user1/.icedtea/cache/0/http/www.example.com/subdir/a.jar 578 * rStr first becomes: /0/http/www.example.com/subdir/a.jar 579 * then rstr becomes: /home/user1/.icedtea/cache/0 580 */ 581 String rStr = file.getPath().substring(cacheDir.length()); 582 rStr = cacheDir + rStr.substring(0, rStr.indexOf(File.separatorChar, 1)); 583 long len = file.length(); 584 585 if (keep.contains(file.getPath().substring(rStr.length()))) { 586 lruHandler.removeEntry(key); 587 continue; 588 } 589 590 /* 591 * we remove entries from our lru if any of the following condition is met. 592 * Conditions: 593 * - delete: file has been marked for deletion. 594 * - !file.isFile(): if someone tampered with the directory, file doesn't exist. 595 * - maxSize >= 0 && curSize + len > maxSize: If a limit was set and the new size 596 * on disk would exceed the maximum size. 597 */ 598 if (delete || !file.isFile() || (maxSize >= 0 && curSize + len > maxSize)) { 599 lruHandler.removeEntry(key); 600 remove.add(rStr); 601 continue; 602 } 603 604 curSize += len; 605 keep.add(file.getPath().substring(rStr.length())); 606 607 for (File f : file.getParentFile().listFiles()) { 608 if (!(f.equals(file) || f.equals(pf.getStoreFile()))) { 609 try { 610 FileUtils.recursiveDelete(f, f); 611 } catch (IOException e1) { 612 e1.printStackTrace(); 595 613 } 596 614 } 597 } else { 598 lruHandler.removeEntry(key); 615 599 616 } 600 617 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java
r348 r418 29 29 30 30 import net.sourceforge.jnlp.runtime.*; 31 import net.sourceforge.jnlp.util.ImageResources; 31 32 32 33 /** … … 58 59 /** the display window */ 59 60 private static JFrame frame; 61 private static final Object frameMutex = new Object(); 60 62 61 63 /** shared constraint */ … … 98 100 DownloadPanel result = new DownloadPanel(downloadName); 99 101 100 if (frame == null) { 101 frame = new JFrame(downloading + "..."); 102 frame.getContentPane().setLayout(new GridBagLayout()); 103 } 104 105 if (resources != null) 106 for (int i = 0; i < resources.length; i++) 107 result.addProgressPanel(resources[i], null); 108 109 frame.getContentPane().add(result, vertical); 110 frame.pack(); 111 112 if (!frame.isVisible()) { 113 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 114 Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); 115 Dimension screen = new Dimension(screenSize.width - insets.left, 116 screenSize.height - insets.top); 117 frame.setLocation(screen.width - frame.getWidth(), 118 screen.height - frame.getHeight()); 119 } 120 121 frame.setVisible(true); 122 123 return result; 102 synchronized (frameMutex) { 103 if (frame == null) { 104 frame = new JFrame(downloading + "..."); 105 frame.setIconImages(ImageResources.INSTANCE.getApplicationImages()); 106 frame.getContentPane().setLayout(new GridBagLayout()); 107 } 108 109 if (resources != null) { 110 for (URL url : resources) { 111 result.addProgressPanel(url, null); 112 } 113 } 114 115 frame.getContentPane().add(result, vertical); 116 frame.pack(); 117 118 if (!frame.isVisible()) { 119 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 120 Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); 121 Dimension screen = new Dimension(screenSize.width - insets.left, 122 screenSize.height - insets.top); 123 frame.setLocation(screen.width - frame.getWidth(), 124 screen.height - frame.getHeight()); 125 } 126 127 frame.setVisible(true); 128 129 return result; 130 } 124 131 } 125 132 … … 135 142 ActionListener hider = new ActionListener() { 136 143 public void actionPerformed(ActionEvent evt) { 137 if (frame.getContentPane().getComponentCount() == 1) 138 frame.setVisible(false); 139 140 frame.getContentPane().remove((DownloadPanel) listener); 141 frame.pack(); 144 synchronized(frameMutex) { 145 frame.getContentPane().remove((DownloadPanel) listener); 146 frame.pack(); 147 148 if (frame.getContentPane().getComponentCount() == 0) { 149 frame.setVisible(false); 150 frame.dispose(); 151 frame = null; 152 } 153 } 142 154 } 143 155 }; … … 187 199 188 200 add(panel, verticalIndent); 189 frame.pack(); 201 synchronized (frameMutex) { 202 frame.pack(); 203 } 190 204 191 205 urls.add(url); -
trunk/icedtea-web/netx/net/sourceforge/jnlp/cache/Resource.java
r348 r418 273 273 } 274 274 275 for (int i = 0; i < send.size(); i++) { 276 ResourceTracker rt = send.get(i); 275 for (ResourceTracker rt : send) { 277 276 rt.fireDownloadEvent(this); 278 277 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/cache/ResourceTracker.java
r348 r418 25 25 import java.io.InputStream; 26 26 import java.io.OutputStream; 27 import java.io.UnsupportedEncodingException; 27 28 import java.net.HttpURLConnection; 28 29 import java.net.MalformedURLException; 29 30 import java.net.URL; 30 31 import java.net.URLConnection; 32 import java.net.URLDecoder; 33 import java.net.URLEncoder; 31 34 import java.security.AccessController; 32 35 import java.security.PrivilegedAction; … … 109 112 private static final int STARTED = Resource.STARTED; 110 113 114 // normalization of url 115 private static final char PATH_DELIMITER_MARK = '/'; 116 private static final String PATH_DELIMITER = "" + PATH_DELIMITER_MARK; 117 private static final char QUERY_DELIMITER_MARK = '&'; 118 private static final String QUERY_DELIMITER = "" + QUERY_DELIMITER_MARK; 119 private static final char QUERY_MARK = '?'; 120 private static final char HREF_MARK = '#'; 121 private static final String UTF8 = "utf-8"; 122 111 123 /** max threads */ 112 124 private static final int maxThreads = 5; … … 173 185 public void addResource(URL location, Version version, DownloadOptions options, UpdatePolicy updatePolicy) { 174 186 if (location == null) 175 throw new IllegalArgumentException("location==null"); 176 187 throw new IllegalResourceDescriptorException("location==null"); 188 try { 189 location = normalizeUrl(location, JNLPRuntime.isDebug()); 190 } catch (Exception ex) { 191 System.err.println("Normalization of " + location.toString() + " have failed"); 192 ex.printStackTrace(); 193 } 177 194 Resource resource = Resource.getResource(location, version, updatePolicy); 178 195 boolean downloaded = false; … … 209 226 * collected. 210 227 * 211 * @throws Illegal ArgumentException if the resource is not being tracked228 * @throws IllegalResourceDescriptorException if the resource is not being tracked 212 229 */ 213 230 public void removeResource(URL location) { … … 315 332 316 333 DownloadEvent event = new DownloadEvent(this, resource); 317 for ( int i = 0; i < l.length; i++) {334 for (DownloadListener dl : l) { 318 335 if (0 != ((ERROR | DOWNLOADED) & status)) 319 l[i].downloadCompleted(event);336 dl.downloadCompleted(event); 320 337 else if (0 != (DOWNLOADING & status)) 321 l[i].downloadStarted(event);338 dl.downloadStarted(event); 322 339 else if (0 != (CONNECTING & status)) 323 l[i].updateStarted(event);340 dl.updateStarted(event); 324 341 } 325 342 } … … 335 352 * @param location the resource location 336 353 * @return the resource, or null if it could not be downloaded 337 * @throws Illegal ArgumentException if the resource is not being tracked354 * @throws IllegalResourceDescriptorException if the resource is not being tracked 338 355 * @see CacheUtil#isCacheable 339 356 */ … … 362 379 * @param location the resource location 363 380 * @return a local file containing the resource, or null 364 * @throws Illegal ArgumentException if the resource is not being tracked381 * @throws IllegalResourceDescriptorException if the resource is not being tracked 365 382 * @see CacheUtil#isCacheable 366 383 */ … … 402 419 * 403 420 * @throws IOException if there was an error opening the stream 404 * @throws Illegal ArgumentException if the resource is not being tracked421 * @throws IllegalResourceDescriptorException if the resource is not being tracked 405 422 */ 406 423 public InputStream getInputStream(URL location) throws IOException { … … 426 443 * @param timeout the time in ms to wait before returning, 0 for no timeout 427 444 * @return whether the resources downloaded before the timeout 428 * @throws Illegal ArgumentException if the resource is not being tracked445 * @throws IllegalResourceDescriptorException if the resource is not being tracked 429 446 */ 430 447 public boolean waitForResources(URL urls[], long timeout) throws InterruptedException { … … 433 450 synchronized (resources) { 434 451 // keep the lock so getResource doesn't have to aquire it each time 435 for (int i = 0; i < urls.length; i++) 452 for (int i = 0; i < urls.length; i++) { 436 453 resources[i] = getResource(urls[i]); 454 } 437 455 } 438 456 … … 451 469 * @return whether the resource downloaded before the timeout 452 470 * @throws InterruptedException if another thread interrupted the wait 453 * @throws Illegal ArgumentException if the resource is not being tracked471 * @throws IllegalResourceDescriptorException if the resource is not being tracked 454 472 */ 455 473 public boolean waitForResource(URL location, long timeout) throws InterruptedException { … … 462 480 * @param location the resource location 463 481 * @return the number of bytes transferred 464 * @throws Illegal ArgumentException if the resource is not being tracked482 * @throws IllegalResourceDescriptorException if the resource is not being tracked 465 483 */ 466 484 public long getAmountRead(URL location) { … … 474 492 * accessed with the getCacheFile method). 475 493 * 476 * @throws Illegal ArgumentException if the resource is not being tracked494 * @throws IllegalResourceDescriptorException if the resource is not being tracked 477 495 */ 478 496 public boolean checkResource(URL location) { … … 488 506 * 489 507 * @return true if the resource is already downloaded (or an error occurred) 490 * @throws Illegal ArgumentException if the resource is not being tracked508 * @throws IllegalResourceDescriptorException if the resource is not being tracked 491 509 */ 492 510 public boolean startResource(URL location) { … … 501 519 * 502 520 * @return true if the resource is already downloaded (or an error occurred) 503 * @throws Illegal ArgumentException if the resource is not being tracked521 * @throws IllegalResourceDescriptorException if the resource is not being tracked 504 522 */ 505 523 private boolean startResource(Resource resource) { … … 533 551 * @param location the resource location 534 552 * @return the number of bytes, or -1 535 * @throws Illegal ArgumentException if the resource is not being tracked553 * @throws IllegalResourceDescriptorException if the resource is not being tracked 536 554 */ 537 555 public long getTotalSize(URL location) { … … 589 607 synchronized (lock) { 590 608 if (!resource.isSet(CONNECT | DOWNLOAD)) 591 throw new Illegal ArgumentException("Invalid resource state (resource: " + resource + ")");609 throw new IllegalResourceDescriptorException("Invalid resource state (resource: " + resource + ")"); 592 610 593 611 queue.add(resource); … … 852 870 } 853 871 URL bestUrl = null; 854 for (int i = 0; i < urls.size(); i++) { 855 URL url = urls.get(i); 872 for (URL url : urls) { 856 873 try { 857 874 URLConnection connection = url.openConnection(); … … 983 1000 int score = Integer.MAX_VALUE; 984 1001 985 for (int i = 0; i < source.size(); i++) { 986 Resource resource = source.get(i); 1002 for (Resource resource : source) { 987 1003 boolean selectable = false; 988 1004 … … 995 1011 int activeCount = 0; 996 1012 997 for ( int j = 0; j < active.size(); j++)998 if ( active.get(j)== resource.getTracker())1013 for (ResourceTracker rt : active) { 1014 if (rt == resource.getTracker()) 999 1015 activeCount++; 1016 } 1000 1017 1001 1018 // try to spread out the downloads so that a slow host … … 1014 1031 * Return the resource matching the specified URL. 1015 1032 * 1016 * @throws Illegal ArgumentException if the resource is not being tracked1033 * @throws IllegalResourceDescriptorException if the resource is not being tracked 1017 1034 */ 1018 1035 private Resource getResource(URL location) { 1019 1036 synchronized (resources) { 1020 for (int i = 0; i < resources.size(); i++) { 1021 Resource resource = resources.get(i); 1022 1037 for (Resource resource : resources) { 1023 1038 if (CacheUtil.urlEquals(resource.location, location)) 1024 1039 return resource; … … 1026 1041 } 1027 1042 1028 throw new Illegal ArgumentException("Location does not specify a resource being tracked.");1043 throw new IllegalResourceDescriptorException("Location does not specify a resource being tracked."); 1029 1044 } 1030 1045 … … 1042 1057 1043 1058 // start them downloading / connecting in background 1044 for (int i = 0; i < resources.length; i++) 1045 startResource(resources[i]); 1059 for (Resource resource : resources) { 1060 startResource(resource); 1061 } 1046 1062 1047 1063 // wait for completion … … 1051 1067 synchronized (lock) { 1052 1068 // check for completion 1053 for ( int i = 0; i < resources.length; i++) {1069 for (Resource resource : resources) { 1054 1070 //NetX Deadlocking may be solved by removing this 1055 1071 //synch block. 1056 synchronized (resource s[i]) {1057 if (!resource s[i].isSet(DOWNLOADED | ERROR)) {1072 synchronized (resource) { 1073 if (!resource.isSet(DOWNLOADED | ERROR)) { 1058 1074 finished = false; 1059 1075 break; … … 1128 1144 }; 1129 1145 1146 private static String normalizeChunk(String base, boolean debug) throws UnsupportedEncodingException { 1147 if (base == null) { 1148 return base; 1149 } 1150 if ("".equals(base)) { 1151 return base; 1152 } 1153 String result = base; 1154 String ssE = URLDecoder.decode(base, UTF8); 1155 // System.out.println("*" + base + "*"); 1156 // System.out.println("-" + ssE + "-"); 1157 if (base.equals(ssE)) { 1158 result = URLEncoder.encode(base, UTF8); 1159 if (debug) { 1160 System.out.println(base + " chunk needs to be encoded => " + result); 1161 } 1162 } else { 1163 if (debug) { 1164 System.out.println(base + " chunk already encoded"); 1165 } 1166 } 1167 return result; 1168 } 1169 1170 public static URL normalizeUrl(URL u, boolean debug) throws MalformedURLException, UnsupportedEncodingException { 1171 if (u == null) { 1172 return null; 1173 } 1174 String protocol = u.getProtocol(); 1175 if (protocol == null || "file".equals(protocol)) { 1176 return u; 1177 } 1178 String file = u.getPath(); 1179 if (file == null) { 1180 return u; 1181 } 1182 String host = u.getHost(); 1183 String ref = u.getRef(); 1184 int port = u.getPort(); 1185 String query = u.getQuery(); 1186 String[] qq = {}; 1187 if (query != null) { 1188 qq = query.split(QUERY_DELIMITER); 1189 } 1190 String[] ss = file.split(PATH_DELIMITER); 1191 int normalized = 0; 1192 if (debug) { 1193 System.out.println("normalizing path " + file + " in " + u.toString()); 1194 } 1195 for (int i = 0; i < ss.length; i++) { 1196 String base = ss[i]; 1197 String r = normalizeChunk(base, debug); 1198 if (!r.equals(ss[i])) { 1199 normalized++; 1200 } 1201 ss[i] = r; 1202 } 1203 if (debug) { 1204 System.out.println("normalizing query " + query + " in " + u.toString()); 1205 } 1206 for (int i = 0; i < qq.length; i++) { 1207 String base = qq[i]; 1208 String r = normalizeChunk(base, debug); 1209 if (!r.equals(qq[i])) { 1210 normalized++; 1211 } 1212 qq[i] = r; 1213 } 1214 if (normalized == 0) { 1215 if (debug) { 1216 System.out.println("Nothing was normalized in this url"); 1217 } 1218 return u; 1219 } else { 1220 if (debug) { 1221 System.out.println(normalized + " chunks normalized, rejoining url"); 1222 } 1223 } 1224 StringBuilder composed = new StringBuilder(""); 1225 for (int i = 0; i < ss.length; i++) { 1226 String string = ss[i]; 1227 if (ss.length <= 1 || (string != null && !"".equals(string))) { 1228 composed.append(PATH_DELIMITER_MARK).append(string); 1229 } 1230 } 1231 String composed1 = composed.toString(); 1232 if (query != null && !query.trim().equals("")) { 1233 composed.append(QUERY_MARK); 1234 for (int i = 0; i < qq.length; i++) { 1235 String string = qq[i]; 1236 if ((string != null && !"".equals(string))) { 1237 composed.append(string); 1238 if (i != qq.length - 1) { 1239 composed.append(QUERY_DELIMITER_MARK); 1240 } 1241 } 1242 } 1243 } 1244 String composed2 = composed.substring(composed1.length() - 1); 1245 if (ref != null && !ref.trim().equals("")) { 1246 composed.append(HREF_MARK).append(ref); 1247 } 1248 1249 URL result = new URL(protocol, host, port, composed.toString()); 1250 1251 if (debug) { 1252 System.out.println("normalized `" + composed1 + "` and `" + composed2 + "` in " + result.toString()); 1253 } 1254 return result; 1255 1256 } 1130 1257 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java
r348 r418 32 32 import net.sourceforge.jnlp.config.DeploymentConfiguration; 33 33 import net.sourceforge.jnlp.runtime.Translator; 34 import net.sourceforge.jnlp.util.ImageResources; 34 35 35 36 /** … … 55 56 public AdvancedProxySettingsDialog(DeploymentConfiguration config) { 56 57 super((Frame) null, dialogTitle, true); // Don't need a parent. 58 setIconImages(ImageResources.INSTANCE.getApplicationImages()); 59 57 60 this.config = config; 58 61 -
trunk/icedtea-web/netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java
r348 r418 31 31 import net.sourceforge.jnlp.config.DeploymentConfiguration; 32 32 import net.sourceforge.jnlp.runtime.Translator; 33 import net.sourceforge.jnlp.util.ImageResources; 33 34 34 35 /** … … 52 53 public CacheViewer(DeploymentConfiguration config) { 53 54 super((Frame) null, dialogTitle, true); // Don't need a parent. 55 setIconImages(ImageResources.INSTANCE.getApplicationImages()); 54 56 this.config = config; 55 57 -
trunk/icedtea-web/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java
r348 r418 56 56 import net.sourceforge.jnlp.security.KeyStores; 57 57 import net.sourceforge.jnlp.security.viewer.CertificatePane; 58 import net.sourceforge.jnlp.util.ImageResources; 58 59 59 60 /** … … 103 104 super(); 104 105 setTitle(Translator.R("CPHead")); 106 setIconImages(ImageResources.INSTANCE.getApplicationImages()); 105 107 106 108 this.config = config; -
trunk/icedtea-web/netx/net/sourceforge/jnlp/controlpanel/TemporaryInternetFilesPanel.java
r348 r418 27 27 import java.awt.event.ItemEvent; 28 28 import java.awt.event.ItemListener; 29 import java.io.File; 29 30 30 31 import javax.swing.JButton; … … 34 35 import javax.swing.JFileChooser; 35 36 import javax.swing.JLabel; 37 import javax.swing.JOptionPane; 36 38 import javax.swing.JPanel; 37 39 import javax.swing.JSlider; … … 110 112 JFileChooser fileChooser = new JFileChooser(); 111 113 fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 114 fileChooser.setFileHidingEnabled(false); 112 115 if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 116 // Check if we have permission to write to that location. 113 117 String result = fileChooser.getSelectedFile().getAbsolutePath(); 114 location.setText(result); 115 config.setProperty(properties[1], result); 118 File dirLocation = new File(result); 119 boolean canWrite = dirLocation.canWrite(); 120 while (!canWrite && dirLocation != null){ // File does not exist, or no permission. 121 122 if (dirLocation.exists()) { 123 JOptionPane.showMessageDialog(null, "No permission to write to this location."); 124 return; 125 } 126 127 dirLocation = dirLocation.getParentFile(); 128 canWrite = dirLocation.canWrite(); 129 } 130 131 if (canWrite) { 132 location.setText(result); 133 config.setProperty(properties[1], result); 134 } 116 135 } 117 136 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/resources/Messages.properties
r372 r418 81 81 LSignedAppJarUsingUnsignedJar=Signed application using unsigned jars. 82 82 LSignedAppJarUsingUnsignedJarInfo=The main application jar is signed, but some of the jars it is using aren't. 83 83 LSignedJNLPFileDidNotMatch=The signed JNLP file did not match the launching JNLP file. 84 LNoSecInstance=Error: No security instance for {0}. The application may have trouble continuing 85 LCertFoundIn={0} found in cacerts ({1}) 86 84 87 JNotApplet=File is not an applet. 85 88 JNotApplication=File is not an application. … … 104 107 PTwoMains=Duplicate main JAR defined in a resources element (there can be only one) 105 108 PNativeHasMain=Cannot specify main attribute on native JARs. 106 PNoInfoElement=No information section defined 109 PNoInfoElement=No information section defined. 110 PMissingTitle=title 111 PMissingVendor=vendor 112 PMissingElement=The {0} section has not been defined for your locale nor does a default value exist in the JNLP file. 107 113 PTwoDescriptions=Duplicate description of kind {0} 108 114 PSharing=Element "sharing-allowed" is illegal in a standard JNLP file … … 120 126 PUrlNotInCodebase=Relative URL does not specify a subdirectory of the codebase. (node={0}, href={1}, base={2}) 121 127 PBadRelativeUrl=Invalid relative URL (node={0}, href={1}, base={2}) 122 PBadNonrelativeUrl=Invalid non-relative URL (node={0}, href={ 0}).128 PBadNonrelativeUrl=Invalid non-relative URL (node={0}, href={1}) 123 129 PNeedsAttribute=The {0} element must specify a {1} attribute. 124 130 PBadXML=Invalid XML document syntax. … … 190 196 CChooseCacheDir=Cache directory 191 197 CCannotClearCache=Can not clear cache at this time 198 CFakeCache=Cache is corrupt. Fixing. 199 CFakedCache=Cache is corrupt and has been fixed. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. 192 200 193 201 # Security … … 199 207 SSignatureError=The application's digital signature has an error. Do you want to run the application? 200 208 SUntrustedSource=The digital signature could not be verified by a trusted source. Only run if you trust the origin of the application. 209 SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any java policies you may have. 201 210 STrustedSource=The digital signature has been validated by a trusted source. 202 211 SClipboardReadAccess=The application has requested read-only access to the system clipboard. Do you want to allow this action? … … 205 214 SNetworkAccess=The application has requested permission to establish connections to {0}. Do you want to allow this action? 206 215 SNoAssociatedCertificate=<no associated certificate> 216 SUnverified=(unverified) 207 217 SAlwaysTrustPublisher=Always trust content from this publisher 208 SHttpsUnverified=The website's certificate cannot be verified.218 SHttpsUnverified=The website's HTTPS certificate cannot be verified. 209 219 SNotAllSignedSummary=Only parts of this application code are signed. 210 220 SNotAllSignedDetail=This application contains both signed and unsigned code. While signed code is safe if you trust the provider, unsigned code may imply code outside of the trusted provider's control. 211 221 SNotAllSignedQuestion=Do you wish to proceed and run this application anyway? 212 222 SAuthenticationPrompt=The {0} server at {1} is requesting authentication. It says "{2}" 223 SJNLPFileIsNotSigned=This application contains a digital signature in which the launching JNLP file is not signed. 213 224 214 225 # Security - used for the More Information dialog … … 241 252 CVDetails=Details 242 253 CVExport=Export 254 CVExportPasswordMessage=Enter password to protect key file: 243 255 CVImport=Import 256 CVImportPasswordMessage=Enter password to access file: 244 257 CVIssuedBy=Issued By 245 258 CVIssuedTo=Issued To 259 CVPasswordTitle=Authentication Required 246 260 CVRemove=Remove 247 261 CVRemoveConfirmMessage=Are you sure you want to remove the selected certificate? -
trunk/icedtea-web/netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java
r348 r418 117 117 118 118 List<AppletAudioClip> clips = weakClips.hardList(); 119 for ( int i = 0; i < clips.size(); i++) {120 clip s.get(i).dispose();119 for (AppletAudioClip clip : clips) { 120 clip.dispose(); 121 121 } 122 122 } … … 208 208 209 209 /** 210 * Set the applet of this environment; can only be called once. 211 */ 212 public void setApplet(Applet applet) { 213 if (this.applet != null) { 214 if (JNLPRuntime.isDebug()) { 215 Exception ex = new IllegalStateException("Applet can only be set once."); 216 ex.printStackTrace(); 217 } 218 return; 219 } 220 this.applet = applet; 221 } 222 223 /** 210 224 * Returns an enumeration that contains only the applet 211 225 * from the JNLP file. -
trunk/icedtea-web/netx/net/sourceforge/jnlp/runtime/AppletInstance.java
r348 r418 50 50 51 51 this.environment = new AppletEnvironment(file, this); 52 } 53 54 /** 55 * Set the applet of this launched application; can only be called once. 56 */ 57 public void setApplet(Applet applet) { 58 if (this.applet != null) { 59 if (JNLPRuntime.isDebug()) { 60 Exception ex = new IllegalStateException("Applet can only be set once."); 61 ex.printStackTrace(); 62 } 63 return; 64 } 65 this.applet = applet; 52 66 } 53 67 -
trunk/icedtea-web/netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java
r348 r418 232 232 PrivilegedAction<Object> installProps = new PrivilegedAction<Object>() { 233 233 public Object run() { 234 for ( int i = 0; i < props.length; i++) {235 System.setProperty(prop s[i].getKey(), props[i].getValue());234 for (PropertyDesc propDesc : props) { 235 System.setProperty(propDesc.getKey(), propDesc.getValue()); 236 236 } 237 237 … … 273 273 try { 274 274 // destroy resources 275 for (int i = 0; i < weakWindows.size(); i++) { 276 Window w = weakWindows.get(i); 275 for (Window w : weakWindows) { 277 276 if (w != null) 278 277 w.dispose(); -
trunk/icedtea-web/netx/net/sourceforge/jnlp/runtime/Boot.java
r348 r418 157 157 JNLPRuntime.setForksAllowed(false); 158 158 } 159 if (null != getOption("-Xtrustall")) { 160 JNLPRuntime.setTrustAll(true); 161 } 159 162 160 163 JNLPRuntime.setInitialArgments(Arrays.asList(argsIn)); -
trunk/icedtea-web/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java
r348 r418 95 95 if (UrlUtils.isLocalFile(localUrl)) { 96 96 // if it is known to us, just return the cached file 97 return new JarFile(localUrl.getPath()); 97 JarFile returnFile = new JarFile(localUrl.getPath()); 98 99 try { 100 101 // Blank out the class-path because: 102 // 1) Web Start does not support it 103 // 2) For the plug-in, we want to cache files from class-path so we do it manually 104 returnFile.getManifest().getMainAttributes().putValue("Class-Path", ""); 105 106 if (JNLPRuntime.isDebug()) { 107 System.err.println("Class-Path attribute cleared for " + returnFile.getName()); 108 } 109 110 } catch (NullPointerException npe) { 111 // Discard NPE here. Maybe there was no manifest, maybe there were no attributes, etc. 112 } 113 114 return returnFile; 98 115 } else { 99 116 // throw new IllegalStateException("a non-local file in cache"); -
trunk/icedtea-web/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
r348 r418 18 18 import static net.sourceforge.jnlp.runtime.Translator.R; 19 19 20 import java.io.Closeable; 20 21 import java.io.File; 21 22 import java.io.FileOutputStream; 23 import java.io.FileReader; 22 24 import java.io.IOException; 23 25 import java.io.InputStream; 26 import java.io.InputStreamReader; 24 27 import java.net.MalformedURLException; 28 import java.net.SocketPermission; 25 29 import java.net.URL; 26 30 import java.net.URLClassLoader; 27 31 import java.security.AccessControlContext; 32 import java.security.AccessControlException; 28 33 import java.security.AccessController; 29 34 import java.security.AllPermission; … … 33 38 import java.security.Permissions; 34 39 import java.security.PrivilegedAction; 40 import java.security.PrivilegedActionException; 41 import java.security.PrivilegedExceptionAction; 42 import java.security.ProtectionDomain; 35 43 import java.util.ArrayList; 44 import java.util.Arrays; 45 import java.util.Collection; 36 46 import java.util.Collections; 37 47 import java.util.Enumeration; 38 48 import java.util.HashMap; 39 49 import java.util.HashSet; 50 import java.util.Iterator; 40 51 import java.util.LinkedList; 41 52 import java.util.List; … … 44 55 import java.util.TreeSet; 45 56 import java.util.Vector; 57 import java.util.concurrent.ConcurrentHashMap; 46 58 import java.util.jar.JarEntry; 47 59 import java.util.jar.JarFile; 48 60 import java.util.jar.Manifest; 49 61 62 import net.sourceforge.jnlp.AppletDesc; 63 import net.sourceforge.jnlp.ApplicationDesc; 50 64 import net.sourceforge.jnlp.DownloadOptions; 51 65 import net.sourceforge.jnlp.ExtensionDesc; 52 66 import net.sourceforge.jnlp.JARDesc; 53 67 import net.sourceforge.jnlp.JNLPFile; 68 import net.sourceforge.jnlp.JNLPMatcher; 69 import net.sourceforge.jnlp.JNLPMatcherException; 70 import net.sourceforge.jnlp.LaunchDesc; 54 71 import net.sourceforge.jnlp.LaunchException; 55 72 import net.sourceforge.jnlp.ParseException; … … 59 76 import net.sourceforge.jnlp.Version; 60 77 import net.sourceforge.jnlp.cache.CacheUtil; 78 import net.sourceforge.jnlp.cache.IllegalResourceDescriptorException; 61 79 import net.sourceforge.jnlp.cache.ResourceTracker; 62 80 import net.sourceforge.jnlp.cache.UpdatePolicy; 63 81 import net.sourceforge.jnlp.security.SecurityDialogs; 64 82 import net.sourceforge.jnlp.security.SecurityDialogs.AccessType; 65 import net.sourceforge.jnlp.tools.Jar Signer;83 import net.sourceforge.jnlp.tools.JarCertVerifier; 66 84 import net.sourceforge.jnlp.util.FileUtils; 67 85 import sun.misc.JarIndex; … … 82 100 // resources in an extension. 83 101 102 /** Signed JNLP File and Template */ 103 final public static String TEMPLATE = "JNLP-INF/APPLICATION_TEMPLATE.JNLP"; 104 final public static String APPLICATION = "JNLP-INF/APPLICATION.JNLP"; 105 106 /** True if the application has a signed JNLP File */ 107 private boolean isSignedJNLP = false; 108 84 109 /** map from JNLPFile url to shared classloader */ 85 110 private static Map<String, JNLPClassLoader> urlToLoader = … … 134 159 private ArrayList<String> unverifiedJars = null; 135 160 136 /** the jar signer tool to verify our jars */137 private Jar Signer js= null;161 /** the jar cert verifier tool to verify our jars */ 162 private JarCertVerifier jcv = null; 138 163 139 164 private boolean signing = false; … … 151 176 private HashMap<URL, SecurityDesc> jarLocationSecurityMap = 152 177 new HashMap<URL, SecurityDesc>(); 178 179 /*Set to prevent once tried-to-get resources to be tried again*/ 180 private Set<URL> alreadyTried = Collections.synchronizedSet(new HashSet<URL>()); 153 181 154 182 /** Loader for codebase (which is a path, rather than a file) */ 155 183 private CodeBaseClassLoader codeBaseLoader; 184 185 /** True if the jar with the main class has been found 186 * */ 187 private boolean foundMainJar= false; 188 189 /** Name of the application's main class */ 190 private String mainClass = null; 191 192 /** 193 * Variable to track how many times this loader is in use 194 */ 195 private int useCount = 0; 156 196 157 197 /** … … 161 201 */ 162 202 protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy) throws LaunchException { 203 this(file,policy,null); 204 } 205 206 /** 207 * Create a new JNLPClassLoader from the specified file. 208 * 209 * @param file the JNLP file 210 * @param name of the application's main class 211 */ 212 protected JNLPClassLoader(JNLPFile file, UpdatePolicy policy, String mainName) throws LaunchException { 163 213 super(new URL[0], JNLPClassLoader.class.getClassLoader()); 164 214 … … 169 219 this.updatePolicy = policy; 170 220 this.resources = file.getResources(); 221 222 this.mainClass = mainName; 171 223 172 224 // initialize extensions … … 276 328 */ 277 329 public static JNLPClassLoader getInstance(JNLPFile file, UpdatePolicy policy) throws LaunchException { 330 return getInstance(file, policy, null); 331 } 332 333 /** 334 * Returns a JNLP classloader for the specified JNLP file. 335 * 336 * @param file the file to load classes for 337 * @param policy the update policy to use when downloading resources 338 * @param mainName Overrides the main class name of the application 339 */ 340 public static JNLPClassLoader getInstance(JNLPFile file, UpdatePolicy policy, String mainName) throws LaunchException { 278 341 JNLPClassLoader baseLoader = null; 279 342 JNLPClassLoader loader = null; … … 292 355 !baseLoader.getJNLPFile().getFileLocation().equals(file.getFileLocation()))) { 293 356 294 loader = new JNLPClassLoader(file, policy );357 loader = new JNLPClassLoader(file, policy, mainName); 295 358 296 359 // New loader init may have caused extentions to create a … … 304 367 305 368 loader.merge(extLoader); 369 extLoader.decrementLoaderUseCount(); // loader urls have been merged, ext loader is no longer used 306 370 } 307 371 … … 309 373 // the baseLoader 310 374 if (baseLoader != null && baseLoader != loader) { 311 loader.merge(baseLoader);375 loader.merge(baseLoader); 312 376 } 313 377 … … 316 380 if (!file.isApplication()) { 317 381 // If this is an applet, we do need to consider its loader 318 loader = new JNLPClassLoader(file, policy);382 loader = new JNLPClassLoader(file, policy, mainName); 319 383 320 384 if (baseLoader != null) … … 330 394 // loaders are mapped to a unique key. Only extensions and parent 331 395 // share a key, so it is safe to always share based on it 332 urlToLoader.put(uniqueKey, loader); 396 397 loader.incrementLoaderUseCount(); 398 synchronized(urlToLoader) { 399 urlToLoader.put(uniqueKey, loader); 400 } 333 401 334 402 return loader; … … 342 410 * @param version the file's version 343 411 * @param policy the update policy to use when downloading resources 344 */ 345 public static JNLPClassLoader getInstance(URL location, String uniqueKey, Version version, UpdatePolicy policy) 412 * @param mainName Overrides the main class name of the application 413 */ 414 public static JNLPClassLoader getInstance(URL location, String uniqueKey, Version version, UpdatePolicy policy, String mainName) 346 415 throws IOException, ParseException, LaunchException { 347 416 JNLPClassLoader loader = urlToLoader.get(uniqueKey); 348 417 349 if (loader == null || !location.equals(loader.getJNLPFile().getFileLocation())) 350 loader = getInstance(new JNLPFile(location, uniqueKey, version, false, policy), policy); 418 if (loader == null || !location.equals(loader.getJNLPFile().getFileLocation())) { 419 JNLPFile jnlpFile = new JNLPFile(location, uniqueKey, version, false, policy); 420 421 loader = getInstance(jnlpFile, policy, mainName); 422 } 351 423 352 424 return loader; … … 362 434 363 435 loaderList.add(this); 436 437 if (mainClass == null) { 438 Object obj = file.getLaunchInfo(); 439 440 if (obj instanceof ApplicationDesc) { 441 ApplicationDesc ad = (ApplicationDesc) file.getLaunchInfo(); 442 mainClass = ad.getMainClass(); 443 } else if (obj instanceof AppletDesc) { 444 AppletDesc ad = (AppletDesc) file.getLaunchInfo(); 445 mainClass = ad.getMainClass(); 446 } 447 } 364 448 365 449 //if (ext != null) { … … 367 451 try { 368 452 String uniqueKey = this.getJNLPFile().getUniqueKey(); 369 JNLPClassLoader loader = getInstance(ext[i].getLocation(), uniqueKey, ext[i].getVersion(), updatePolicy );453 JNLPClassLoader loader = getInstance(ext[i].getLocation(), uniqueKey, ext[i].getVersion(), updatePolicy, mainClass); 370 454 loaderList.add(loader); 371 455 } catch (Exception ex) { … … 401 485 402 486 /** 487 * Check if a described jar file is invalid 488 * @param jar the jar to check 489 * @return true if file exists AND is an invalid jar, false otherwise 490 */ 491 private boolean isInvalidJar(JARDesc jar){ 492 File cacheFile = tracker.getCacheFile(jar.getLocation()); 493 if (cacheFile == null) 494 return false;//File cannot be retrieved, do not claim it is an invalid jar 495 boolean isInvalid = false; 496 try { 497 JarFile jarFile = new JarFile(cacheFile.getAbsolutePath()); 498 jarFile.close(); 499 } catch (IOException ioe){ 500 //Catch a ZipException or any other read failure 501 isInvalid = true; 502 } 503 return isInvalid; 504 } 505 506 /** 507 * Determine how invalid jars should be handled 508 * @return whether to filter invalid jars, or error later on 509 */ 510 private boolean shouldFilterInvalidJars(){ 511 if (file instanceof PluginBridge){ 512 PluginBridge pluginBridge = (PluginBridge)file; 513 /*Ignore on applet, ie !useJNLPHref*/ 514 return !pluginBridge.useJNLPHref(); 515 } 516 return false;//Error is default behaviour 517 } 518 519 /** 403 520 * Load all of the JARs used in this JNLP file into the 404 521 * ResourceTracker for downloading. 405 522 */ 406 523 void initializeResources() throws LaunchException { 524 if (file instanceof PluginBridge){ 525 PluginBridge bridge = (PluginBridge)file; 526 527 for (String codeBaseFolder : bridge.getCodeBaseFolders()){ 528 try { 529 addToCodeBaseLoader(new URL(file.getCodeBase(), codeBaseFolder)); 530 } catch (MalformedURLException mfe) { 531 System.err.println("Problem trying to add folder to code base:"); 532 System.err.println(mfe.getMessage()); 533 } 534 } 535 } 536 407 537 JARDesc jars[] = resources.getJARs(); 408 if (jars == null || jars.length == 0) 538 539 if (jars == null || jars.length == 0) { 540 541 boolean allSigned = true; 542 for (int i = 1; i < loaders.length; i++) { 543 if (!loaders[i].getSigning()) { 544 allSigned = false; 545 break; 546 } 547 } 548 549 if(allSigned) 550 signing = true; 551 552 //Check if main jar is found within extensions 553 foundMainJar = foundMainJar || hasMainInExtensions(); 554 409 555 return; 556 } 410 557 /* 411 558 if (jars == null || jars.length == 0) { … … 429 576 ); 430 577 } 578 579 //If there are no eager jars, initialize the first jar 580 if(initialJars.size() == 0) 581 initialJars.add(jars[0]); 431 582 432 583 if (strict) 433 584 fillInPartJars(initialJars); // add in each initial part's lazy jars 434 585 586 waitForJars(initialJars); //download the jars first. 587 588 //A ZipException will propagate later on if the jar is invalid and not checked here 589 if (shouldFilterInvalidJars()){ 590 //We filter any invalid jars 591 Iterator<JARDesc> iterator = initialJars.iterator(); 592 while (iterator.hasNext()){ 593 JARDesc jar = iterator.next(); 594 if (isInvalidJar(jar)) { 595 //Remove this jar as an available jar 596 iterator.remove(); 597 tracker.removeResource(jar.getLocation()); 598 available.remove(jar); 599 } 600 } 601 } 602 435 603 if (JNLPRuntime.isVerifying()) { 436 604 437 JarSigner js; 438 waitForJars(initialJars); //download the jars first. 605 JarCertVerifier jcv; 439 606 440 607 try { 441 j s= verifyJars(initialJars);608 jcv = verifyJars(initialJars); 442 609 } catch (Exception e) { 443 //we caught an Exception from the Jar Signer class.610 //we caught an Exception from the JarCertVerifier class. 444 611 //Note: one of these exceptions could be from not being able 445 612 //to read the cacerts or trusted.certs files. … … 450 617 451 618 //Case when at least one jar has some signing 452 if (j s.anyJarsSigned() && js.isFullySignedByASingleCert()) {619 if (jcv.anyJarsSigned() && jcv.isFullySignedByASingleCert()) { 453 620 signing = true; 454 621 455 if (!j s.allJarsSigned() &&622 if (!jcv.allJarsSigned() && 456 623 !SecurityDialogs.showNotAllSignedWarningDialog(file)) 457 624 throw new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LSignedAppJarUsingUnsignedJar"), R("LSignedAppJarUsingUnsignedJarInfo")); 458 625 626 627 // Check for main class in the downloaded jars, and check/verify signed JNLP fill 628 checkForMain(initialJars); 629 630 // If jar with main class was not found, check available resources 631 while (!foundMainJar && available != null && available.size() != 0) 632 addNextResource(); 633 634 // If the jar with main class was not found, check extension 635 // jnlp's resources 636 foundMainJar = foundMainJar || hasMainInExtensions(); 637 638 // If jar with main class was not found and there are no more 639 // available jars, throw a LaunchException 640 if (file.getLaunchInfo() != null) { 641 if (!foundMainJar 642 && (available == null || available.size() == 0)) 643 throw new LaunchException(file, null, R("LSFatal"), 644 R("LCClient"), R("LCantDetermineMainClass"), 645 R("LCantDetermineMainClassInfo")); 646 } 647 648 // If main jar was found, but a signed JNLP file was not located 649 if (!isSignedJNLP && foundMainJar) 650 file.setSignedJNLPAsMissing(); 651 459 652 //user does not trust this publisher 460 if (!j s.getAlreadyTrustPublisher()) {461 checkTrustWithUser(j s);653 if (!jcv.getAlreadyTrustPublisher()) { 654 checkTrustWithUser(jcv); 462 655 } else { 463 656 /** … … 476 669 for (JARDesc jarDesc : file.getResources().getJARs()) { 477 670 try { 478 File cachedFile = tracker.getCacheFile(jarDesc.getLocation()); 671 672 File cachedFile; 673 674 try { 675 cachedFile = tracker.getCacheFile(jarDesc.getLocation()); 676 } catch (IllegalResourceDescriptorException irde){ 677 //Caused by ignored resource being removed due to not being valid 678 System.err.println("JAR " + jarDesc.getLocation() + " is not a valid jar file. Continuing."); 679 continue; 680 } 479 681 480 682 if (cachedFile == null) { … … 515 717 } 516 718 } 517 518 719 activateJars(initialJars); 519 720 } 520 521 private void checkTrustWithUser(JarSigner js) throws LaunchException { 522 if (!js.getRootInCacerts()) { //root cert is not in cacerts 721 722 /*** 723 * Checks for the jar that contains the main class. If the main class was 724 * found, it checks to see if the jar is signed and whether it contains a 725 * signed JNLP file 726 * 727 * @param jars Jars that are checked to see if they contain the main class 728 * @throws LaunchException Thrown if the signed JNLP file, within the main jar, fails to be verified or does not match 729 */ 730 private void checkForMain(List<JARDesc> jars) throws LaunchException { 731 732 // Check launch info 733 if (mainClass == null) { 734 LaunchDesc launchDesc = file.getLaunchInfo(); 735 if (launchDesc == null) { 736 return; 737 } 738 739 mainClass = launchDesc.getMainClass(); 740 } 741 742 // The main class may be specified in the manifest 743 744 // Check main jar 745 if (mainClass == null) { 746 JARDesc mainJarDesc = file.getResources().getMainJAR(); 747 mainClass = getMainClassName(mainJarDesc.getLocation()); 748 } 749 750 // Check first jar 751 if (mainClass == null) { 752 JARDesc firstJarDesc = jars.get(0); 753 mainClass = getMainClassName(firstJarDesc.getLocation()); 754 } 755 756 // Still not found? Iterate and set if only 1 was found 757 if (mainClass == null) { 758 759 for (JARDesc jarDesc: jars) { 760 String mainClassInThisJar = getMainClassName(jarDesc.getLocation()); 761 762 if (mainClassInThisJar != null) { 763 764 if (mainClass == null) { // first main class 765 mainClass = mainClassInThisJar; 766 } else { // There is more than one main class. Set to null and break. 767 mainClass = null; 768 break; 769 } 770 } 771 } 772 } 773 774 String desiredJarEntryName = mainClass + ".class"; 775 776 for (int i = 0; i < jars.size(); i++) { 777 778 try { 779 File localFile = tracker 780 .getCacheFile(jars.get(i).getLocation()); 781 782 if (localFile == null) { 783 System.err.println("JAR " + jars.get(i).getLocation() + " not found. Continuing."); 784 continue; // JAR not found. Keep going. 785 } 786 787 JarFile jarFile = new JarFile(localFile); 788 Enumeration<JarEntry> entries = jarFile.entries(); 789 JarEntry je; 790 791 while (entries.hasMoreElements()) { 792 je = entries.nextElement(); 793 String jeName = je.getName().replaceAll("/", "."); 794 if (jeName.equals(desiredJarEntryName)) { 795 foundMainJar = true; 796 verifySignedJNLP(jars.get(i), jarFile); 797 break; 798 } 799 } 800 } catch (IOException e) { 801 /* 802 * After this exception is caught, it is escaped. This will skip 803 * the jarFile that may have thrown this exception and move on 804 * to the next jarFile (if there are any) 805 */ 806 } 807 } 808 } 809 810 /** 811 * Gets the name of the main method if specified in the manifest 812 * 813 * @param location The JAR location 814 * @return the main class name, null if there isn't one of if there was an error 815 */ 816 private String getMainClassName(URL location) { 817 818 String mainClass = null; 819 File f = tracker.getCacheFile(location); 820 821 if( f != null) { 822 try { 823 JarFile mainJar = new JarFile(f); 824 mainClass = mainJar.getManifest(). 825 getMainAttributes().getValue("Main-Class"); 826 } catch (IOException ioe) { 827 mainClass = null; 828 } 829 } 830 831 return mainClass; 832 } 833 834 /** 835 * Returns true if this loader has the main jar 836 */ 837 public boolean hasMainJar() { 838 return this.foundMainJar; 839 } 840 841 /** 842 * Returns true if extension loaders have the main jar 843 */ 844 private boolean hasMainInExtensions() { 845 boolean foundMain = false; 846 847 for (int i = 1; i < loaders.length && !foundMain; i++) { 848 foundMain = loaders[i].hasMainJar(); 849 } 850 851 return foundMain; 852 } 853 854 /** 855 * Is called by checkForMain() to check if the jar file is signed and if it 856 * contains a signed JNLP file. 857 * 858 * @param jarDesc JARDesc of jar 859 * @param jarFile the jar file 860 * @throws LaunchException thrown if the signed JNLP file, within the main jar, fails to be verified or does not match 861 */ 862 private void verifySignedJNLP(JARDesc jarDesc, JarFile jarFile) 863 throws LaunchException { 864 865 JarCertVerifier signer = new JarCertVerifier(); 866 List<JARDesc> desc = new ArrayList<JARDesc>(); 867 desc.add(jarDesc); 868 869 // Initialize streams 870 InputStream inStream = null; 871 InputStreamReader inputReader = null; 872 FileReader fr = null; 873 InputStreamReader jnlpReader = null; 874 875 try { 876 signer.verifyJars(desc, tracker); 877 878 if (signer.allJarsSigned()) { // If the jar is signed 879 880 Enumeration<JarEntry> entries = jarFile.entries(); 881 JarEntry je; 882 883 while (entries.hasMoreElements()) { 884 je = entries.nextElement(); 885 String jeName = je.getName().toUpperCase(); 886 887 if (jeName.equals(TEMPLATE) || jeName.equals(APPLICATION)) { 888 889 if (JNLPRuntime.isDebug()) 890 System.err.println("Creating Jar InputStream from JarEntry"); 891 892 inStream = jarFile.getInputStream(je); 893 inputReader = new InputStreamReader(inStream); 894 895 if (JNLPRuntime.isDebug()) 896 System.err.println("Creating File InputStream from lauching JNLP file"); 897 898 JNLPFile jnlp = this.getJNLPFile(); 899 URL url = jnlp.getFileLocation(); 900 File jn = null; 901 902 // If the file is on the local file system, use original path, otherwise find cached file 903 if (url.getProtocol().toLowerCase().equals("file")) 904 jn = new File(url.getPath()); 905 else 906 jn = CacheUtil.getCacheFile(url, null); 907 908 fr = new FileReader(jn); 909 jnlpReader = fr; 910 911 // Initialize JNLPMatcher class 912 JNLPMatcher matcher; 913 914 if (jeName.equals(APPLICATION)) { // If signed application was found 915 if (JNLPRuntime.isDebug()) 916 System.err.println("APPLICATION.JNLP has been located within signed JAR. Starting verfication..."); 917 918 matcher = new JNLPMatcher(inputReader, jnlpReader, false); 919 } else { // Otherwise template was found 920 if (JNLPRuntime.isDebug()) 921 System.err.println("APPLICATION_TEMPLATE.JNLP has been located within signed JAR. Starting verfication..."); 922 923 matcher = new JNLPMatcher(inputReader, jnlpReader, 924 true); 925 } 926 927 // If signed JNLP file does not matches launching JNLP file, throw JNLPMatcherException 928 if (!matcher.isMatch()) 929 throw new JNLPMatcherException("Signed Application did not match launching JNLP File"); 930 931 this.isSignedJNLP = true; 932 if (JNLPRuntime.isDebug()) 933 System.err.println("Signed Application Verification Successful"); 934 935 break; 936 } 937 } 938 } 939 } catch (JNLPMatcherException e) { 940 941 /* 942 * Throws LaunchException if signed JNLP file fails to be verified 943 * or fails to match the launching JNLP file 944 */ 945 946 throw new LaunchException(file, null, R("LSFatal"), R("LCClient"), 947 R("LSignedJNLPFileDidNotMatch"), R(e.getMessage())); 948 949 /* 950 * Throwing this exception will fail to initialize the application 951 * resulting in the termination of the application 952 */ 953 954 } catch (Exception e) { 955 956 if (JNLPRuntime.isDebug()) 957 e.printStackTrace(System.err); 958 959 /* 960 * After this exception is caught, it is escaped. If an exception is 961 * thrown while handling the jar file, (mainly for 962 * JarCertVerifier.verifyJars) it assumes the jar file is unsigned and 963 * skip the check for a signed JNLP file 964 */ 965 966 } finally { 967 968 //Close all streams 969 closeStream(inStream); 970 closeStream(inputReader); 971 closeStream(fr); 972 closeStream(jnlpReader); 973 } 974 975 if (JNLPRuntime.isDebug()) 976 System.err.println("Ending check for signed JNLP file..."); 977 } 978 979 /*** 980 * Closes a stream 981 * 982 * @param stream the stream that will be closed 983 */ 984 private void closeStream (Closeable stream) { 985 if (stream != null) 986 try { 987 stream.close(); 988 } catch (Exception e) { 989 e.printStackTrace(System.err); 990 } 991 } 992 993 private void checkTrustWithUser(JarCertVerifier jcv) throws LaunchException { 994 if (JNLPRuntime.isTrustAll()){ 995 return; 996 } 997 if (!jcv.getRootInCacerts()) { //root cert is not in cacerts 523 998 boolean b = SecurityDialogs.showCertWarningDialog( 524 AccessType.UNVERIFIED, file, j s);999 AccessType.UNVERIFIED, file, jcv); 525 1000 if (!b) 526 1001 throw new LaunchException(null, null, R("LSFatal"), 527 1002 R("LCLaunching"), R("LNotVerified"), ""); 528 } else if (j s.getRootInCacerts()) { //root cert is in cacerts1003 } else if (jcv.getRootInCacerts()) { //root cert is in cacerts 529 1004 boolean b = false; 530 if (j s.noSigningIssues())1005 if (jcv.noSigningIssues()) 531 1006 b = SecurityDialogs.showCertWarningDialog( 532 AccessType.VERIFIED, file, j s);533 else if (!j s.noSigningIssues())1007 AccessType.VERIFIED, file, jcv); 1008 else if (!jcv.noSigningIssues()) 534 1009 b = SecurityDialogs.showCertWarningDialog( 535 AccessType.SIGNING_ERROR, file, j s);1010 AccessType.SIGNING_ERROR, file, jcv); 536 1011 if (!b) 537 1012 throw new LaunchException(null, null, R("LSFatal"), … … 583 1058 */ 584 1059 protected PermissionCollection getPermissions(CodeSource cs) { 585 Permissions result = new Permissions(); 586 587 // should check for extensions or boot, automatically give all 588 // access w/o security dialog once we actually check certificates. 589 590 // copy security permissions from SecurityDesc element 591 if (security != null) { 592 // Security desc. is used only to track security settings for the 593 // application. However, an application may comprise of multiple 594 // jars, and as such, security must be evaluated on a per jar basis. 595 596 // set default perms 597 PermissionCollection permissions = security.getSandBoxPermissions(); 598 599 // If more than default is needed: 600 // 1. Code must be signed 601 // 2. ALL or J2EE permissions must be requested (note: plugin requests ALL automatically) 602 if (cs.getCodeSigners() != null && 603 (getCodeSourceSecurity(cs.getLocation()).getSecurityType().equals(SecurityDesc.ALL_PERMISSIONS) || 604 getCodeSourceSecurity(cs.getLocation()).getSecurityType().equals(SecurityDesc.J2EE_PERMISSIONS))) { 605 606 permissions = getCodeSourceSecurity(cs.getLocation()).getPermissions(cs); 607 } 608 609 Enumeration<Permission> e = permissions.elements(); 610 while (e.hasMoreElements()) 611 result.add(e.nextElement()); 612 } 613 614 // add in permission to read the cached JAR files 615 for (int i = 0; i < resourcePermissions.size(); i++) 616 result.add(resourcePermissions.get(i)); 617 618 // add in the permissions that the user granted. 619 for (int i = 0; i < runtimePermissions.size(); i++) 620 result.add(runtimePermissions.get(i)); 621 622 return result; 1060 try { 1061 Permissions result = new Permissions(); 1062 1063 // should check for extensions or boot, automatically give all 1064 // access w/o security dialog once we actually check certificates. 1065 1066 // copy security permissions from SecurityDesc element 1067 if (security != null) { 1068 // Security desc. is used only to track security settings for the 1069 // application. However, an application may comprise of multiple 1070 // jars, and as such, security must be evaluated on a per jar basis. 1071 1072 // set default perms 1073 PermissionCollection permissions = security.getSandBoxPermissions(); 1074 1075 // If more than default is needed: 1076 // 1. Code must be signed 1077 // 2. ALL or J2EE permissions must be requested (note: plugin requests ALL automatically) 1078 if (cs == null) { 1079 throw new NullPointerException("Code source was null"); 1080 } 1081 if (cs.getCodeSigners() != null) { 1082 if (cs.getLocation() == null) { 1083 throw new NullPointerException("Code source location was null"); 1084 } 1085 if (getCodeSourceSecurity(cs.getLocation()) == null) { 1086 throw new NullPointerException("Code source security was null"); 1087 } 1088 if (getCodeSourceSecurity(cs.getLocation()).getSecurityType() == null) { 1089 if (JNLPRuntime.isDebug()){ 1090 new NullPointerException("Warning! Code source security type was null").printStackTrace(); 1091 } 1092 } 1093 Object securityType = getCodeSourceSecurity(cs.getLocation()).getSecurityType(); 1094 if (SecurityDesc.ALL_PERMISSIONS.equals(securityType) 1095 || SecurityDesc.J2EE_PERMISSIONS.equals(securityType)) { 1096 1097 permissions = getCodeSourceSecurity(cs.getLocation()).getPermissions(cs); 1098 } 1099 } 1100 1101 Enumeration<Permission> e = permissions.elements(); 1102 while (e.hasMoreElements()) { 1103 result.add(e.nextElement()); 1104 } 1105 } 1106 1107 // add in permission to read the cached JAR files 1108 for (int i = 0; i < resourcePermissions.size(); i++) { 1109 result.add(resourcePermissions.get(i)); 1110 } 1111 1112 // add in the permissions that the user granted. 1113 for (int i = 0; i < runtimePermissions.size(); i++) { 1114 result.add(runtimePermissions.get(i)); 1115 } 1116 1117 // Class from host X should be allowed to connect to host X 1118 if (cs.getLocation().getHost().length() > 0) 1119 result.add(new SocketPermission(cs.getLocation().getHost(), 1120 "connect, accept")); 1121 1122 return result; 1123 } catch (RuntimeException ex) { 1124 if (JNLPRuntime.isDebug()) { 1125 ex.printStackTrace(); 1126 } 1127 throw ex; 1128 } 623 1129 } 624 1130 … … 719 1225 } 720 1226 721 Jar Signer signer = new JarSigner();1227 JarCertVerifier signer = new JarCertVerifier(); 722 1228 List<JARDesc> jars = new ArrayList<JARDesc>(); 723 1229 JARDesc jarDesc = new JARDesc(new File(extractedJarLocation).toURL(), null, null, false, false, false, false); … … 780 1286 JarFile jarFile = new JarFile(localFile.getAbsolutePath()); 781 1287 Manifest mf = jarFile.getManifest(); 782 classpaths.addAll(getClassPathsFromManifest(mf, jar.getLocation().getPath())); 1288 1289 // Only check classpath if this is the plugin and there is no jnlp_href usage. 1290 // Note that this is different from proprietary plugin behaviour. 1291 // If jnlp_href is used, the app should be treated similarly to when 1292 // it is run from javaws as a webstart. 1293 if (file instanceof PluginBridge && !((PluginBridge) file).useJNLPHref()) { 1294 classpaths.addAll(getClassPathsFromManifest(mf, jar.getLocation().getPath())); 1295 } 1296 783 1297 JarIndex index = JarIndex.getJarIndex(jarFile, null); 784 1298 if (index != null) … … 964 1478 * @param jars the jars to be verified. 965 1479 */ 966 private Jar Signer verifyJars(List<JARDesc> jars) throws Exception {967 968 j s = new JarSigner();969 j s.verifyJars(jars, tracker);970 return j s;1480 private JarCertVerifier verifyJars(List<JARDesc> jars) throws Exception { 1481 1482 jcv = new JarCertVerifier(); 1483 jcv.verifyJars(jars, tracker); 1484 return jcv; 971 1485 } 972 1486 … … 978 1492 Class result = null; 979 1493 980 if (loaders[i] == this) 981 result = super.findLoadedClass(name); 982 else 1494 if (loaders[i] == this) { 1495 final String fName = name; 1496 try { 1497 result = AccessController.doPrivileged( 1498 new PrivilegedExceptionAction<Class<?>>() { 1499 public Class<?> run() { 1500 return JNLPClassLoader.super.findLoadedClass(fName); 1501 } 1502 }, getAccessControlContextForClassLoading()); 1503 } catch (PrivilegedActionException pae) { 1504 result = null; 1505 } 1506 } else { 983 1507 result = loaders[i].findLoadedClassAll(name); 1508 } 984 1509 985 1510 if (result != null) … … 1095 1620 * @param desc the JARDesc for the new jar 1096 1621 */ 1097 private void addNewJar( JARDesc desc) {1622 private void addNewJar(final JARDesc desc) { 1098 1623 1099 1624 available.add(desc); … … 1105 1630 ); 1106 1631 1107 URL remoteURL = desc.getLocation(); 1108 URL cachedUrl = tracker.getCacheURL(remoteURL); 1109 addURL(remoteURL); 1110 CachedJarFileCallback.getInstance().addMapping(remoteURL, cachedUrl); 1632 // Give read permissions to the cached jar file 1633 AccessController.doPrivileged(new PrivilegedAction<Void>() { 1634 public Void run() { 1635 Permission p = CacheUtil.getReadPermission(desc.getLocation(), 1636 desc.getVersion()); 1637 1638 resourcePermissions.add(p); 1639 1640 return null; 1641 } 1642 }); 1643 1644 final URL remoteURL = desc.getLocation(); 1645 final URL cachedUrl = tracker.getCacheURL(remoteURL); // blocks till download 1646 1647 available.remove(desc); // Resource downloaded. Remove from available list. 1648 1649 try { 1650 1651 // Verify if needed 1652 1653 final JarCertVerifier signer = new JarCertVerifier(); 1654 final List<JARDesc> jars = new ArrayList<JARDesc>(); 1655 jars.add(desc); 1656 1657 // Decide what level of security this jar should have 1658 // The verification and security setting functions rely on 1659 // having AllPermissions as those actions normally happen 1660 // during initialization. We therefore need to do those 1661 // actions as privileged. 1662 1663 AccessController.doPrivileged(new PrivilegedExceptionAction<Void>() { 1664 public Void run() throws Exception { 1665 signer.verifyJars(jars, tracker); 1666 1667 if (signer.anyJarsSigned() && !signer.getAlreadyTrustPublisher()) { 1668 checkTrustWithUser(signer); 1669 } 1670 1671 final SecurityDesc security; 1672 if (signer.anyJarsSigned()) { 1673 security = new SecurityDesc(file, 1674 SecurityDesc.ALL_PERMISSIONS, 1675 file.getCodeBase().getHost()); 1676 } else { 1677 security = new SecurityDesc(file, 1678 SecurityDesc.SANDBOX_PERMISSIONS, 1679 file.getCodeBase().getHost()); 1680 } 1681 1682 jarLocationSecurityMap.put(remoteURL, security); 1683 1684 return null; 1685 } 1686 }); 1687 1688 addURL(remoteURL); 1689 CachedJarFileCallback.getInstance().addMapping(remoteURL, cachedUrl); 1690 1691 } catch (Exception e) { 1692 // Do nothing. This code is called by loadClass which cannot 1693 // throw additional exceptions. So instead, just ignore it. 1694 // Exception => jar will not get added to classpath, which will 1695 // result in CNFE from loadClass. 1696 e.printStackTrace(); 1697 } 1111 1698 } 1112 1699 … … 1117 1704 for (int i = 0; i < loaders.length; i++) { 1118 1705 try { 1119 if (loaders[i] == this) 1120 return super.findClass(name); 1121 else 1706 if (loaders[i] == this) { 1707 final String fName = name; 1708 return AccessController.doPrivileged( 1709 new PrivilegedExceptionAction<Class<?>>() { 1710 public Class<?> run() throws ClassNotFoundException { 1711 return JNLPClassLoader.super.findClass(fName); 1712 } 1713 }, getAccessControlContextForClassLoading()); 1714 } else { 1122 1715 return loaders[i].findClass(name); 1716 } 1123 1717 } catch (ClassNotFoundException ex) { 1124 1718 } catch (ClassFormatError cfe) { 1719 } catch (PrivilegedActionException pae) { 1125 1720 } 1126 1721 } … … 1128 1723 // Try codebase loader 1129 1724 if (codeBaseLoader != null) 1130 return codeBaseLoader.findClass(name );1131 1725 return codeBaseLoader.findClass(name, true); 1726 1132 1727 // All else failed. Throw CNFE 1133 1728 throw new ClassNotFoundException(name); … … 1151 1746 // add resources until found 1152 1747 while (true) { 1153 JNLPClassLoader addedTo = addNextResource(); 1748 JNLPClassLoader addedTo = null; 1749 1750 try { 1751 addedTo = addNextResource(); 1752 } catch (LaunchException e) { 1753 1754 /* 1755 * This method will never handle any search for the main class 1756 * [It is handled in initializeResources()]. Therefore, this 1757 * exception will never be thrown here and is escaped 1758 */ 1759 1760 throw new IllegalStateException(e); 1761 } 1154 1762 1155 1763 if (addedTo == null) … … 1166 1774 * Finds the resource in this, the parent, or the extension 1167 1775 * class loaders. 1168 */ 1169 public URL getResource(String name) { 1170 URL result = super.getResource(name); 1171 1172 for (int i = 1; i < loaders.length; i++) 1173 if (result == null) 1174 result = loaders[i].getResource(name); 1776 * 1777 * @return a <code>URL</code> for the resource, or <code>null</code> 1778 * if the resource could not be found. 1779 */ 1780 @Override 1781 public URL findResource(String name) { 1782 URL result = null; 1783 1784 try { 1785 Enumeration<URL> e = findResources(name); 1786 if (e.hasMoreElements()) { 1787 result = e.nextElement(); 1788 } 1789 } catch (IOException e) { 1790 if (JNLPRuntime.isDebug()) { 1791 e.printStackTrace(); 1792 } 1793 } 1175 1794 1176 1795 // If result is still null, look in the codebase loader 1177 1796 if (result == null && codeBaseLoader != null) 1178 result = codeBaseLoader. getResource(name);1797 result = codeBaseLoader.findResource(name); 1179 1798 1180 1799 return result; … … 1182 1801 1183 1802 /** 1184 * Find s the resourcein this, the parent, or the extension1185 * class loaders. 1803 * Find the resources in this, the parent, or the extension 1804 * class loaders. Load lazy resources if not found in current resources. 1186 1805 */ 1187 1806 @Override 1188 1807 public Enumeration<URL> findResources(String name) throws IOException { 1189 Vector<URL> resources = new Vector<URL>(); 1190 Enumeration<URL> e; 1808 Enumeration<URL> resources = findResourcesBySearching(name); 1809 1810 try { 1811 // if not found, load all lazy resources; repeat search 1812 while (!resources.hasMoreElements() && addNextResource() != null) { 1813 resources = findResourcesBySearching(name); 1814 } 1815 } catch (LaunchException le) { 1816 le.printStackTrace(); 1817 } 1818 1819 return resources; 1820 } 1821 1822 /** 1823 * Find the resources in this, the parent, or the extension 1824 * class loaders. 1825 */ 1826 private Enumeration<URL> findResourcesBySearching(String name) throws IOException { 1827 List<URL> resources = new ArrayList<URL>(); 1828 Enumeration<URL> e = null; 1191 1829 1192 1830 for (int i = 0; i < loaders.length; i++) { 1193 1194 if (loaders[i] == this) 1195 e = super.findResources(name); 1196 else 1831 // TODO check if this will blow up or not 1832 // if loaders[1].getResource() is called, wont it call getResource() on 1833 // the original caller? infinite recursion? 1834 1835 if (loaders[i] == this) { 1836 final String fName = name; 1837 try { 1838 e = AccessController.doPrivileged( 1839 new PrivilegedExceptionAction<Enumeration<URL>>() { 1840 public Enumeration<URL> run() throws IOException { 1841 return JNLPClassLoader.super.findResources(fName); 1842 } 1843 }, getAccessControlContextForClassLoading()); 1844 } catch (PrivilegedActionException pae) { 1845 } 1846 } else { 1197 1847 e = loaders[i].findResources(name); 1198 1199 while (e.hasMoreElements()) 1200 resources.add(e.nextElement()); 1848 } 1849 1850 final Enumeration<URL> fURLEnum = e; 1851 try { 1852 resources.addAll(AccessController.doPrivileged( 1853 new PrivilegedExceptionAction<Collection<URL>>() { 1854 public Collection<URL> run() { 1855 List<URL> resources = new ArrayList<URL>(); 1856 while (fURLEnum != null && fURLEnum.hasMoreElements()) { 1857 resources.add(fURLEnum.nextElement()); 1858 } 1859 return resources; 1860 } 1861 }, getAccessControlContextForClassLoading())); 1862 } catch (PrivilegedActionException pae) { 1863 } 1201 1864 } 1202 1865 … … 1209 1872 } 1210 1873 1211 return resources.elements();1874 return Collections.enumeration(resources); 1212 1875 } 1213 1876 … … 1242 1905 * 1243 1906 * @return the classloader that resources were added to, or null 1244 */ 1245 protected JNLPClassLoader addNextResource() { 1907 * @throws LaunchException Thrown if the signed JNLP file, within the main jar, fails to be verified or does not match 1908 */ 1909 protected JNLPClassLoader addNextResource() throws LaunchException { 1246 1910 if (available.size() == 0) { 1247 1911 for (int i = 1; i < loaders.length; i++) { … … 1259 1923 1260 1924 fillInPartJars(jars); 1925 checkForMain(jars); 1261 1926 activateJars(jars); 1262 1927 … … 1306 1971 1307 1972 protected SecurityDesc getCodeSourceSecurity(URL source) { 1308 return jarLocationSecurityMap.get(source); 1973 SecurityDesc sec=jarLocationSecurityMap.get(source); 1974 if (sec == null && !alreadyTried.contains(source)) { 1975 alreadyTried.add(source); 1976 //try to load the jar which is requesting the permissions, but was NOT downloaded by standard way 1977 if (JNLPRuntime.isDebug()) { 1978 System.out.println("Application is trying to get permissions for " + source.toString() + ", which was not added by standard way. Trying to download and verify!"); 1979 } 1980 try { 1981 JARDesc des = new JARDesc(source, null, null, false, false, false, false); 1982 addNewJar(des); 1983 sec = jarLocationSecurityMap.get(source); 1984 } catch (Throwable t) { 1985 if (JNLPRuntime.isDebug()) { 1986 t.printStackTrace(); 1987 } 1988 sec = null; 1989 } 1990 } 1991 if (sec == null){ 1992 System.out.println(Translator.R("LNoSecInstance",source.toString())); 1993 } 1994 return sec; 1309 1995 } 1310 1996 … … 1347 2033 */ 1348 2034 private void addToCodeBaseLoader(URL u) { 2035 if (u == null) { 2036 return; 2037 } 1349 2038 1350 2039 // Only paths may be added … … 1403 2092 return result; 1404 2093 } 2094 2095 /** 2096 * Increments loader use count by 1 2097 * 2098 * @throws SecurityException if caller is not trusted 2099 */ 2100 private synchronized void incrementLoaderUseCount() { 2101 2102 // For use by trusted code only 2103 if (System.getSecurityManager() != null) 2104 System.getSecurityManager().checkPermission(new AllPermission()); 2105 2106 useCount++; 2107 } 2108 2109 /** 2110 * Decrements loader use count by 1 2111 * 2112 * If count reaches 0, loader is removed from list of available loaders 2113 * 2114 * @throws SecurityException if caller is not trusted 2115 */ 2116 public synchronized void decrementLoaderUseCount() { 2117 2118 // For use by trusted code only 2119 if (System.getSecurityManager() != null) 2120 System.getSecurityManager().checkPermission(new AllPermission()); 2121 2122 useCount--; 2123 2124 if (useCount <= 0) { 2125 synchronized(urlToLoader) { 2126 urlToLoader.remove(file.getUniqueKey()); 2127 } 2128 } 2129 } 2130 2131 /** 2132 * Returns an appropriate AccessControlContext for loading classes in 2133 * the running instance. 2134 * 2135 * The default context during class-loading only allows connection to 2136 * codebase. However applets are allowed to load jars from arbitrary 2137 * locations and the codebase only access falls short if a class from 2138 * one location needs a class from another. 2139 * 2140 * Given protected access since CodeBaseClassloader uses this function too. 2141 * 2142 * @return The appropriate AccessControlContext for loading classes for this instance 2143 */ 2144 public AccessControlContext getAccessControlContextForClassLoading() { 2145 AccessControlContext context = AccessController.getContext(); 2146 2147 try { 2148 context.checkPermission(new AllPermission()); 2149 return context; // If context already has all permissions, don't bother 2150 } catch (AccessControlException ace) { 2151 // continue below 2152 } catch (ClassCircularityError cce) { 2153 // continue below 2154 } 2155 2156 // Since this is for class-loading, technically any class from one jar 2157 // should be able to access a class from another, therefore making the 2158 // original context code source irrelevant 2159 PermissionCollection permissions = this.security.getSandBoxPermissions(); 2160 2161 // Local cache access permissions 2162 for (Permission resourcePermission : resourcePermissions) { 2163 permissions.add(resourcePermission); 2164 } 2165 2166 // Permissions for all remote hosting urls 2167 for (URL u: jarLocationSecurityMap.keySet()) { 2168 permissions.add(new SocketPermission(u.getHost(), 2169 "connect, accept")); 2170 } 2171 2172 // Permissions for codebase urls (if there is a loader) 2173 if (codeBaseLoader != null) { 2174 for (URL u : codeBaseLoader.getURLs()) { 2175 permissions.add(new SocketPermission(u.getHost(), 2176 "connect, accept")); 2177 } 2178 } 2179 2180 ProtectionDomain pd = new ProtectionDomain(null, permissions); 2181 2182 return new AccessControlContext(new ProtectionDomain[] { pd }); 2183 } 1405 2184 1406 2185 /* … … 1412 2191 JNLPClassLoader parentJNLPClassLoader; 1413 2192 2193 /** 2194 * Classes that are not found, so that findClass can skip them next time 2195 */ 2196 ConcurrentHashMap<String, URL[]> notFoundResources = new ConcurrentHashMap<String, URL[]>(); 2197 1414 2198 public CodeBaseClassLoader(URL[] urls, JNLPClassLoader cl) { 1415 2199 super(urls); … … 1423 2207 1424 2208 @Override 1425 public Class<?> findClass(String name) throws ClassNotFoundException { 1426 return super.findClass(name); 2209 public Class<?> findClass(String name) throws ClassNotFoundException { 2210 return findClass(name, false); 2211 } 2212 2213 public Class<?> findClass(String name, boolean recursivelyInvoked) throws ClassNotFoundException { 2214 2215 if (!recursivelyInvoked) { 2216 try { 2217 return parentJNLPClassLoader.findClass(name); 2218 } catch (ClassNotFoundException cnfe) { 2219 // continue 2220 } 2221 } 2222 2223 // If we have searched this path before, don't try again 2224 if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) 2225 throw new ClassNotFoundException(name); 2226 2227 try { 2228 final String fName = name; 2229 return AccessController.doPrivileged( 2230 new PrivilegedExceptionAction<Class<?>>() { 2231 public Class<?> run() throws ClassNotFoundException { 2232 return CodeBaseClassLoader.super.findClass(fName); 2233 } 2234 }, parentJNLPClassLoader.getAccessControlContextForClassLoading()); 2235 } catch (PrivilegedActionException pae) { 2236 notFoundResources.put(name, super.getURLs()); 2237 throw new ClassNotFoundException("Could not find class " + name); 2238 } 1427 2239 } 1428 2240 … … 1451 2263 @Override 1452 2264 public Enumeration<URL> findResources(String name) throws IOException { 2265 2266 // If we have searched this path before, don't try again 2267 if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) 2268 return (new Vector<URL>(0)).elements(); 2269 1453 2270 if (!name.startsWith("META-INF")) { 1454 return super.findResources(name); 1455 } 2271 Enumeration<URL> urls = super.findResources(name); 2272 2273 if (!urls.hasMoreElements()) { 2274 notFoundResources.put(name, super.getURLs()); 2275 } 2276 2277 return urls; 2278 } 2279 1456 2280 return (new Vector<URL>(0)).elements(); 1457 2281 } … … 1459 2283 @Override 1460 2284 public URL findResource(String name) { 2285 2286 // If we have searched this path before, don't try again 2287 if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) 2288 return null; 2289 2290 URL url = null; 1461 2291 if (!name.startsWith("META-INF")) { 1462 return super.findResource(name); 1463 } 2292 try { 2293 final String fName = name; 2294 url = AccessController.doPrivileged( 2295 new PrivilegedExceptionAction<URL>() { 2296 public URL run() { 2297 return CodeBaseClassLoader.super.findResource(fName); 2298 } 2299 }, parentJNLPClassLoader.getAccessControlContextForClassLoading()); 2300 } catch (PrivilegedActionException pae) { 2301 } 2302 2303 if (url == null) { 2304 notFoundResources.put(name, super.getURLs()); 2305 } 2306 2307 return url; 2308 } 2309 1464 2310 return null; 1465 2311 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java
r348 r418 30 30 import javax.naming.ConfigurationException; 31 31 import javax.net.ssl.HttpsURLConnection; 32 import javax.net.ssl.KeyManagerFactory; 32 33 import javax.net.ssl.SSLContext; 33 34 import javax.net.ssl.SSLSocketFactory; … … 94 95 private static UpdatePolicy updatePolicy = UpdatePolicy.ALWAYS; 95 96 96 /** netx window icon */97 private static Image windowIcon = null;98 99 97 /** whether initialized */ 100 98 private static boolean initialized = false; … … 124 122 private static boolean forksAllowed = true; 125 123 124 /** all security dialogs will be consumed and pretented as beeing verified by user and allowed.*/ 125 private static boolean trustAll=false; 126 126 127 /** contains the arguments passed to the jnlp runtime */ 127 128 private static List<String> initialArguments; … … 132 133 public static final String STDERR_FILE = "java.stderr"; 133 134 public static final String STDOUT_FILE = "java.stdout"; 135 134 136 135 137 /** … … 184 186 checkHeadless(); 185 187 186 if (!headless && windowIcon == null)187 loadWindowIcon();188 189 188 if (!headless && indicator == null) 190 189 indicator = new DefaultDownloadIndicator(); … … 192 191 if (handler == null) { 193 192 if (headless) { 194 handler = new DefaultLaunchHandler( );193 handler = new DefaultLaunchHandler(System.err); 195 194 } else { 196 handler = new GuiLaunchHandler( );195 handler = new GuiLaunchHandler(System.err); 197 196 } 198 197 } … … 222 221 SSLSocketFactory sslSocketFactory; 223 222 SSLContext context = SSLContext.getInstance("SSL"); 223 KeyStore ks = KeyStores.getKeyStore(KeyStores.Level.USER, KeyStores.Type.CLIENT_CERTS); 224 KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); 225 kmf.init(ks, KeyStores.getPassword()); 224 226 TrustManager[] trust = new TrustManager[] { VariableX509TrustManager.getInstance() }; 225 context.init( null, trust, null);227 context.init(kmf.getKeyManagers(), trust, null); 226 228 sslSocketFactory = context.getSocketFactory(); 227 229 … … 326 328 public static boolean isWebstartApplication() { 327 329 return isWebstartApplication; 328 }329 330 /**331 * Returns the window icon.332 */333 public static Image getWindowIcon() {334 return windowIcon;335 }336 337 /**338 * Sets the window icon that is displayed in Java applications339 * and applets instead of the default Java icon.340 *341 * @throws IllegalStateException if caller is not the exit class342 */343 public static void setWindowIcon(Image image) {344 checkExitClass();345 windowIcon = image;346 330 } 347 331 … … 611 595 } catch (Exception ex) { 612 596 throw new IllegalStateException("Missing resource bundle in netx.jar:net/sourceforge/jnlp/resource/Messages.properties"); 613 }614 }615 616 /**617 * Load the window icon.618 */619 private static void loadWindowIcon() {620 if (windowIcon != null)621 return;622 623 try {624 windowIcon = new javax.swing.ImageIcon((new sun.misc.Launcher())625 .getClassLoader().getResource("net/sourceforge/jnlp/resources/netx-icon.png")).getImage();626 } catch (Exception ex) {627 if (JNLPRuntime.isDebug())628 ex.printStackTrace();629 597 } 630 598 } … … 733 701 } 734 702 703 static void setTrustAll(boolean b) { 704 trustAll=b; 705 } 706 707 public static boolean isTrustAll() { 708 return trustAll; 709 } 710 735 711 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java
r348 r418 282 282 // } 283 283 284 try { 285 super.checkPermission(perm); 286 } catch (SecurityException se) { 287 288 //This section is a special case for dealing with SocketPermissions. 289 if (JNLPRuntime.isDebug()) 290 System.err.println("Requesting permission: " + perm.toString()); 291 292 //Change this SocketPermission's action to connect and accept 293 //(and resolve). This is to avoid asking for connect permission 294 //on every address resolve. 295 Permission tmpPerm = null; 296 if (perm instanceof SocketPermission) { 297 tmpPerm = new SocketPermission(perm.getName(), 298 SecurityConstants.SOCKET_CONNECT_ACCEPT_ACTION); 299 300 // before proceeding, check if we are trying to connect to same origin 301 ApplicationInstance app = getApplication(); 302 JNLPFile file = app.getJNLPFile(); 303 304 String srcHost = file.getSourceLocation().getAuthority(); 305 String destHost = name; 306 307 // host = abc.xyz.com or abc.xyz.com:<port> 308 if (destHost.indexOf(':') >= 0) 309 destHost = destHost.substring(0, destHost.indexOf(':')); 310 311 // host = abc.xyz.com 312 String[] hostComponents = destHost.split("\\."); 313 314 int length = hostComponents.length; 315 if (length >= 2) { 316 317 // address is in xxx.xxx.xxx format 318 destHost = hostComponents[length - 2] + "." + hostComponents[length - 1]; 319 320 // host = xyz.com i.e. origin 321 boolean isDestHostName = false; 322 323 // make sure that it is not an ip address 324 try { 325 Integer.parseInt(hostComponents[length - 1]); 326 } catch (NumberFormatException e) { 327 isDestHostName = true; 328 } 329 330 if (isDestHostName) { 331 // okay, destination is hostname. Now figure out if it is a subset of origin 332 if (srcHost.endsWith(destHost)) { 333 addPermission(tmpPerm); 334 return; 335 } 336 } 337 } 338 } else { 339 tmpPerm = perm; 340 } 341 342 if (tmpPerm != null) { 343 //askPermission will only prompt the user on SocketPermission 344 //meaning we're denying all other SecurityExceptions that may arise. 345 if (askPermission(tmpPerm)) { 346 addPermission(tmpPerm); 347 //return quietly. 348 } else { 349 throw se; 350 } 351 } 352 } 284 super.checkPermission(perm); 353 285 } catch (SecurityException ex) { 354 286 if (JNLPRuntime.isDebug()) { … … 418 350 app.addWindow(w); 419 351 } 420 421 // change coffee cup to netx for default icon422 if (window instanceof Window)423 for (Window w = (Window) window; w != null; w = w.getOwner())424 if (window instanceof Frame)425 ((Frame) window).setIconImage(JNLPRuntime.getWindowIcon());426 352 427 353 // todo: set awt.appletWarning to custom message -
trunk/icedtea-web/netx/net/sourceforge/jnlp/runtime/pac-funcs.js
r348 r418 326 326 */ 327 327 function dateRange() { 328 329 // note: watch out for wrapping around of dates. date ranges, like 330 // month=9 to month=8, wrap around and cover the entire year. this 331 // makes everything more interesting 332 333 var gmt; 334 if (arguments.length > 1) { 335 if (arguments[arguments.length-1] === "GMT") { 336 gmt = true; 337 arguments.splice(0,arguments.length-1); 338 } 339 } 328 switch (arguments.length) { 329 case 1: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0]); 330 case 2: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0],arguments[1]); 331 case 3: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0],arguments[1],arguments[2]); 332 case 4: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0],arguments[1],arguments[2],arguments[3]); 333 case 5: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]); 334 case 6: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]); 335 case 7: return isDateInRange_internallForIcedTeaWebTesting(new Date(),arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6]); //GMT 336 default: 337 return false; 338 } 339 } 340 341 function isDateInRange_internallForIcedTeaWebTesting() { 340 342 341 343 function isDate(date) { … … 414 416 415 417 function inYearRange(today, year1, year2) { 416 if (year1 <= today.get Year() && today.getYear() <= year2) {418 if (year1 <= today.getFullYear() && today.getFullYear() <= year2) { 417 419 return true; 418 420 } else { … … 481 483 function inYearMonthRange(today, month1, year1, month2, year2) { 482 484 if (year1 === year2) { 483 if (today.get Year() === year1) {485 if (today.getFullYear() === year1) { 484 486 if (month1 <= today.getMonth() && today.getMonth() <= month2) { 485 487 return true; … … 492 494 } 493 495 if (year1 < year2) { 494 if (year1 <= today.get Year() && today.getYear() <= year2) {495 if (today.get Year() === year1) {496 if (year1 <= today.getFullYear() && today.getFullYear() <= year2) { 497 if (today.getFullYear() === year1) { 496 498 if (today.getMonth() >= month1) { 497 499 return true; … … 499 501 return false; 500 502 } 501 } else if (today.get Year() === year2) {503 } else if (today.getFullYear() === year2) { 502 504 if (today.getMonth() <= month2) { 503 505 return true; … … 514 516 return false; 515 517 } 516 517 518 } 518 519 519 520 function inYearMonthDateRange(today, date1, month1, year1, date2, month2, year2) { 520 521 if (year1 === year2) { 521 if (year1 === today.get Year()) {522 if (year1 === today.getFullYear()) { 522 523 if ((month1 <= today.getMonth()) && (today.getMonth() <= month2)) { 523 524 if (month1 === month2) { … … 549 550 } 550 551 } else if (year1 < year2) { 551 if (year1 <= today.get Year() && today.getYear() <= year2) {552 if (today.get Year() === year1) {552 if (year1 <= today.getFullYear() && today.getFullYear() <= year2) { 553 if (today.getFullYear() === year1) { 553 554 if (today.getMonth() === month1) { 554 555 if (today.getDate() >= date1) { … … 562 563 return false; 563 564 } 564 } else if (today.getYear() === year2) { 565 if (today.getMonth() <= month2) { 566 567 } else { 568 return true; 569 } 570 } else { 571 return true; 572 } 573 } else { 574 return false; 575 } 576 } else { 577 return false; 578 } 579 } 580 565 } else if (today.getFullYear() === year2) { 566 if (today.getMonth() === month2) { 567 if (today.getDate() <= date1) { 568 return true; 569 } else { 570 return false; 571 } 572 } else if (today.getMonth() < month2) { 573 return true; 574 } else { 575 return false; 576 } 577 } else { 578 return true; 579 } 580 } else { 581 return false; 582 } 583 } else { 584 return false; 585 } 586 } 587 588 // note: watch out for wrapping around of dates. date ranges, like 589 // month=9 to month=8, wrap around and cover the entire year. this 590 // makes everything more interesting 591 592 var gmt; 593 if (arguments.length > 2) { 594 if (arguments[arguments.length-1] === "GMT") { 595 gmt = true; 596 arguments.splice(0,arguments.length-1); 597 } 598 } 581 599 // TODO: change date to gmt, whatever 582 var today = new Date();600 var today = arguments[0] 583 601 584 602 var arg1; … … 589 607 var arg6; 590 608 591 switch (arguments.length ) {609 switch (arguments.length-1) { 592 610 case 1: 593 var arg = arguments[ 0];611 var arg = arguments[1]; 594 612 if (isDate(arg)) { 595 613 if (today.getDate() === arg) { … … 605 623 } 606 624 } else { // year 607 if (today.get Year() === arg) {625 if (today.getFullYear() === arg) { 608 626 return true; 609 627 } else { … … 612 630 } 613 631 case 2: 614 arg1 = arguments[ 0];615 arg2 = arguments[ 1];632 arg1 = arguments[1]; 633 arg2 = arguments[2]; 616 634 if (isDate(arg1) && isDate(arg2)) { 617 635 var date1 = arg1; … … 635 653 } 636 654 case 4: 637 arg1 = arguments[ 0];638 arg2 = arguments[ 1];639 arg3 = arguments[ 2];640 arg4 = arguments[ 3];655 arg1 = arguments[1]; 656 arg2 = arguments[2]; 657 arg3 = arguments[3]; 658 arg4 = arguments[4]; 641 659 642 660 if (isDate(arg1) && isMonth(arg2) && isDate(arg3) && isMonth(arg4)) { … … 659 677 } 660 678 case 6: 661 arg1 = arguments[ 0];662 arg2 = arguments[ 1];663 arg3 = arguments[ 2];664 arg4 = arguments[ 3];665 arg5 = arguments[ 4];666 arg6 = arguments[ 5];679 arg1 = arguments[1]; 680 arg2 = arguments[2]; 681 arg3 = arguments[3]; 682 arg4 = arguments[4]; 683 arg5 = arguments[5]; 684 arg6 = arguments[6]; 667 685 if (isDate(arg1) && isMonth(arg2) && isYear(arg3) && 668 686 isDate(arg4) && isMonth(arg5) && isYear(arg6)) { -
trunk/icedtea-web/netx/net/sourceforge/jnlp/security/AccessWarningPane.java
r348 r418 105 105 106 106 try { 107 publisher = file.getInformation().getVendor() != null ? file.getInformation().getVendor() : R("SNoAssociatedCertificate"); 107 publisher = file.getInformation().getVendor() != null ? 108 file.getInformation().getVendor() + " " + R("SUnverified") : 109 R("SNoAssociatedCertificate"); 108 110 } catch (Exception e) { 109 111 } … … 151 153 } 152 154 153 ImageIcon icon = new ImageIcon((new sun.misc.Launcher()).getClassLoader().getResource("net/sourceforge/jnlp/resources/ warning.png"));155 ImageIcon icon = new ImageIcon((new sun.misc.Launcher()).getClassLoader().getResource("net/sourceforge/jnlp/resources/question.png")); 154 156 JLabel topLabel = new JLabel(htmlWrap(topLabelText), icon, SwingConstants.LEFT); 155 157 topLabel.setFont(new Font(topLabel.getFont().toString(), -
trunk/icedtea-web/netx/net/sourceforge/jnlp/security/CertWarningPane.java
r348 r418 1 1 /* CertWarningPane.java 2 Copyright (C) 20 08Red Hat, Inc.2 Copyright (C) 2012 Red Hat, Inc. 3 3 4 4 This file is part of IcedTea. … … 97 97 AccessType type = parent.getAccessType(); 98 98 JNLPFile file = parent.getFile(); 99 Certificate c = parent.get JarSigner().getPublisher();99 Certificate c = parent.getCertVerifier().getPublisher(); 100 100 101 101 String name = ""; … … 133 133 } 134 134 135 // Top label135 // Labels 136 136 String topLabelText = ""; 137 String bottomLabelText = parent.getCertVerifier().getRootInCacerts() ? 138 R("STrustedSource") : R("SUntrustedSource"); 137 139 String propertyName = ""; 140 String iconLocation = "net/sourceforge/jnlp/resources/"; 141 boolean alwaysTrustSelected = false; 138 142 if (certVerifier instanceof HttpsCertVerifier) { 139 topLabelText = R("SHttpsUnverified") + " " + 140 R("Continue"); 143 // HTTPS certs that are verified do not prompt for a dialog. 144 // @see VariableX509TrustManager#checkServerTrusted 145 topLabelText = R("SHttpsUnverified") + " " + R("Continue"); 141 146 propertyName = "OptionPane.warningIcon"; 147 iconLocation += "warning.png"; 142 148 } else 143 149 switch (type) { … … 145 151 topLabelText = R("SSigVerified"); 146 152 propertyName = "OptionPane.informationIcon"; 153 iconLocation += "question.png"; 154 alwaysTrustSelected = true; 147 155 break; 148 156 case UNVERIFIED: 149 157 topLabelText = R("SSigUnverified"); 150 158 propertyName = "OptionPane.warningIcon"; 159 iconLocation += "warning.png"; 160 bottomLabelText += " " + R("SWarnFullPermissionsIgnorePolicy"); 151 161 break; 152 162 case SIGNING_ERROR: 153 163 topLabelText = R("SSignatureError"); 154 164 propertyName = "OptionPane.warningIcon"; 165 iconLocation += "warning.png"; 166 bottomLabelText += " " + R("SWarnFullPermissionsIgnorePolicy"); 155 167 break; 156 168 } 169 157 170 ImageIcon icon = new ImageIcon((new sun.misc.Launcher()) 158 .getClassLoader().getResource( "net/sourceforge/jnlp/resources/warning.png"));171 .getClassLoader().getResource(iconLocation)); 159 172 JLabel topLabel = new JLabel(htmlWrap(topLabelText), icon, SwingConstants.LEFT); 160 173 topLabel.setFont(new Font(topLabel.getFont().toString(), … … 163 176 topPanel.setBackground(Color.WHITE); 164 177 topPanel.add(topLabel, BorderLayout.CENTER); 165 topPanel.setPreferredSize(new Dimension(400, 60));178 topPanel.setPreferredSize(new Dimension(400, 75)); 166 179 topPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); 167 180 … … 176 189 alwaysTrust = new JCheckBox(R("SAlwaysTrustPublisher")); 177 190 alwaysTrust.setEnabled(true); 191 alwaysTrust.setSelected(alwaysTrustSelected); 178 192 179 193 JPanel infoPanel = new JPanel(new GridLayout(4, 1)); … … 211 225 add(buttonPanel); 212 226 213 JLabel bottomLabel ;227 JLabel bottomLabel = new JLabel(htmlWrap(bottomLabelText));; 214 228 JButton moreInfo = new JButton(R("ButMoreInformation")); 215 229 moreInfo.addActionListener(new MoreInfoButtonListener()); 216 217 if (parent.getJarSigner().getRootInCacerts())218 bottomLabel = new JLabel(htmlWrap(R("STrustedSource")));219 else220 bottomLabel = new JLabel(htmlWrap(R("SUntrustedSource")));221 230 222 231 JPanel bottomPanel = new JPanel(); … … 224 233 bottomPanel.add(bottomLabel); 225 234 bottomPanel.add(moreInfo); 226 bottomPanel.setPreferredSize(new Dimension( 500, 100));235 bottomPanel.setPreferredSize(new Dimension(600, 100)); 227 236 bottomPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); 228 237 add(bottomPanel); … … 232 241 private class MoreInfoButtonListener implements ActionListener { 233 242 public void actionPerformed(ActionEvent e) { 234 SecurityDialog.showMoreInfoDialog(parent.get JarSigner(),243 SecurityDialog.showMoreInfoDialog(parent.getCertVerifier(), 235 244 parent); 236 245 } … … 245 254 try { 246 255 KeyStore ks = KeyStores.getKeyStore(Level.USER, Type.CERTS); 247 X509Certificate c = (X509Certificate) parent.get JarSigner().getPublisher();256 X509Certificate c = (X509Certificate) parent.getCertVerifier().getPublisher(); 248 257 CertificateUtils.addToKeyStore(c, ks); 249 258 File keyStoreFile = new File(KeyStores.getKeyStoreLocation(Level.USER, Type.CERTS)); -
trunk/icedtea-web/netx/net/sourceforge/jnlp/security/CertificateUtils.java
r348 r418 39 39 40 40 import java.io.BufferedInputStream; 41 import java.io.BufferedOutputStream; 41 42 import java.io.File; 42 43 import java.io.FileInputStream; 44 import java.io.FileOutputStream; 43 45 import java.io.IOException; 44 46 import java.io.PrintStream; 45 47 import java.math.BigInteger; 48 import java.security.InvalidKeyException; 49 import java.security.Key; 46 50 import java.security.KeyStore; 47 51 import java.security.KeyStoreException; 52 import java.security.NoSuchAlgorithmException; 53 import java.security.NoSuchProviderException; 54 import java.security.SignatureException; 48 55 import java.security.cert.Certificate; 49 56 import java.security.cert.CertificateException; 50 57 import java.security.cert.CertificateFactory; 51 58 import java.security.cert.X509Certificate; 59 import java.util.Enumeration; 52 60 import java.util.Random; 53 61 54 62 import net.sourceforge.jnlp.runtime.JNLPRuntime; 55 56 import sun.misc.BASE64Encoder;63 import net.sourceforge.jnlp.runtime.Translator; 64 import net.sourceforge.jnlp.util.replacements.BASE64Encoder; 57 65 import sun.security.provider.X509Factory; 58 66 … … 114 122 } 115 123 124 public static void addPKCS12ToKeyStore(File file, KeyStore ks, char[] password) 125 throws Exception { 126 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); 127 KeyStore keyStore = KeyStore.getInstance("PKCS12"); 128 keyStore.load(bis, password); 129 130 Enumeration<String> aliasList = keyStore.aliases(); 131 132 while (aliasList.hasMoreElements()) { 133 String alias = aliasList.nextElement(); 134 Certificate[] certChain = keyStore.getCertificateChain(alias); 135 Key key = keyStore.getKey(alias, password); 136 addPKCS12ToKeyStore(certChain, key, ks); 137 } 138 } 139 140 public static void addPKCS12ToKeyStore(Certificate[] certChain, Key key, KeyStore ks) 141 throws KeyStoreException { 142 String alias = null; 143 144 // does this certificate already exist? 145 alias = ks.getCertificateAlias(certChain[0]); 146 if (alias != null) { 147 return; 148 } 149 150 // create a unique alias for this new certificate 151 Random random = new Random(); 152 do { 153 alias = new BigInteger(20, random).toString(); 154 } while (ks.getCertificate(alias) != null); 155 156 ks.setKeyEntry(alias, key, KeyStores.getPassword(), certChain); 157 } 158 116 159 /** 117 160 * Checks whether an X509Certificate is already in one of the keystores … … 123 166 for (int i = 0; i < keyStores.length; i++) { 124 167 try { 125 if (keyStores[i].getCertificateAlias(c) != null) { 126 if (JNLPRuntime.isDebug()) { 127 System.out.println(c.getSubjectX500Principal().getName() + " found in cacerts"); 128 } 129 return true; 168 // Check against all certs 169 Enumeration<String> aliases = keyStores[i].aliases(); 170 while (aliases.hasMoreElements()) { 171 172 // Verify against this entry 173 String alias = aliases.nextElement(); 174 175 if (c.equals(keyStores[i].getCertificate(alias))) { 176 if (JNLPRuntime.isDebug()) { 177 System.out.println(Translator.R("LCertFoundIn", c.getSubjectX500Principal().getName(), KeyStores.getPathToKeystore(keyStores[i].hashCode()))); 178 } 179 180 return true; 181 } // else continue 130 182 } 183 131 184 } catch (KeyStoreException e) { 132 185 e.printStackTrace(); … … 149 202 out.println(X509Factory.END_CERT); 150 203 } 204 205 public static void dumpPKCS12(String alias, File file, KeyStore ks, char[] password) 206 throws Exception { 207 Certificate[] certChain = ks.getCertificateChain(alias); 208 Key key = ks.getKey(alias, KeyStores.getPassword()); 209 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); 210 KeyStore keyStore = KeyStore.getInstance("PKCS12"); 211 keyStore.load(null, null); 212 keyStore.setKeyEntry(alias, key, password, certChain); 213 keyStore.store(bos, password); 214 } 151 215 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/security/CertsInfoPane.java
r348 r418 85 85 */ 86 86 void buildTree() { 87 certPath = parent.get JarSigner().getCertPath();87 certPath = parent.getCertVerifier().getCertPath(); 88 88 X509Certificate firstCert = 89 89 ((X509Certificate) certPath.getCertificates().get(0)); -
trunk/icedtea-web/netx/net/sourceforge/jnlp/security/KeyStores.java
r348 r418 48 48 import java.security.cert.CertificateException; 49 49 import java.util.ArrayList; 50 import java.util.HashMap; 50 51 import java.util.List; 52 import java.util.Map; 51 53 import java.util.StringTokenizer; 52 54 … … 76 78 } 77 79 80 public static final Map<Integer,String> keystoresPaths=new HashMap<Integer, String>(); 81 78 82 private static DeploymentConfiguration config = null; 79 83 … … 134 138 try { 135 139 ks = createKeyStoreFromFile(new File(location), create, DEFAULT_PASSWORD); 140 //hashcode is used instead of instance so when no references are left 141 //to keystore, then this will not be blocker for garbage collection 142 keystoresPaths.put(ks.hashCode(),location); 136 143 } catch (Exception e) { 137 144 e.printStackTrace(); 138 145 } 139 146 return ks; 147 } 148 149 public static String getPathToKeystore(int k) { 150 String s = keystoresPaths.get(k); 151 if (s == null) { 152 return "unknown keystore location"; 153 } 154 return s; 140 155 } 141 156 -
trunk/icedtea-web/netx/net/sourceforge/jnlp/security/MoreInfoPane.java
r348 r418 62 62 public class MoreInfoPane extends SecurityDialogPanel { 63 63 64 private boolean showSignedJNLPWarning; 65 64 66 public MoreInfoPane(SecurityDialog x, CertVerifier certVerifier) { 65 67 super(x, certVerifier); 68 showSignedJNLPWarning= x.requiresSignedJNLPWarning(); 66 69 addComponents(); 67 70 } … … 73 76 ArrayList<String> details = certVerifier.getDetails(); 74 77 78 // Show signed JNLP warning if the signed main jar does not have a 79 // signed JNLP file and the launching JNLP file contains special properties 80 if(showSignedJNLPWarning) 81 details.add(R("SJNLPFileIsNotSigned")); 82 75 83 int numLabels = details.size(); 76 84 JPanel errorPanel = new JPanel(new GridLayout(numLabels, 1)); … … 89 97 errorPanel.add(new JLabel(htmlWrap(details.get(i)), icon, SwingConstants.LEFT)); 90 98 } 99 100 // Removes signed JNLP warning after it has been used. This will avoid 101 // any alteration to certVerifier. 102 if(showSignedJNLPWarning) 103 details.remove(details.size()-1); 91 104 92 105 JPanel buttonsPanel = new JPanel(new BorderLayout()); … … 106 119 private class CertInfoButtonListener implements ActionListener { 107 120 public void actionPerformed(ActionEvent e) { 108 SecurityDialog.showCertInfoDialog(parent.get JarSigner(),121 SecurityDialog.showCertInfoDialog(parent.getCertVerifier(), 109 122 parent); 110 123 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/security/SecurityDialog.java
r348 r418 42 42 import net.sourceforge.jnlp.security.SecurityDialogs.AccessType; 43 43 import net.sourceforge.jnlp.security.SecurityDialogs.DialogType; 44 import net.sourceforge.jnlp.util.ImageResources; 44 45 45 46 import java.awt.*; … … 93 94 private Object value; 94 95 95 SecurityDialog(DialogType dialogType, AccessType accessType, 96 JNLPFile file, CertVerifier jarSigner, X509Certificate cert, Object[] extras) { 96 /** Should show signed JNLP file warning */ 97 private boolean requiresSignedJNLPWarning; 98 99 SecurityDialog(DialogType dialogType, AccessType accessType, 100 JNLPFile file, CertVerifier JarCertVerifier, X509Certificate cert, Object[] extras) { 97 101 super(); 102 setIconImages(ImageResources.INSTANCE.getApplicationImages()); 98 103 this.dialogType = dialogType; 99 104 this.accessType = accessType; 100 105 this.file = file; 101 this.certVerifier = jarSigner;106 this.certVerifier = JarCertVerifier; 102 107 this.cert = cert; 103 108 this.extras = extras; 104 109 initialized = true; 105 110 111 if(file != null) 112 requiresSignedJNLPWarning= file.requiresSignedJNLPWarning(); 113 106 114 initDialog(); 107 115 } … … 119 127 */ 120 128 SecurityDialog(DialogType dialogType, AccessType accessType, 121 JNLPFile file, CertVerifier jarSigner) {122 this(dialogType, accessType, file, jarSigner, null, null);129 JNLPFile file, CertVerifier certVerifier) { 130 this(dialogType, accessType, file, certVerifier, null, null); 123 131 } 124 132 … … 159 167 * Shows more information regarding jar code signing 160 168 * 161 * @param jarSigner the JarSigner used to verify this application169 * @param certVerifier the JarCertVerifier used to verify this application 162 170 * @param parent the parent option pane 163 171 */ 164 172 public static void showMoreInfoDialog( 165 CertVerifier jarSigner, SecurityDialog parent) { 166 173 CertVerifier certVerifier, SecurityDialog parent) { 174 175 JNLPFile file= parent.getFile(); 167 176 SecurityDialog dialog = 168 new SecurityDialog(DialogType.MORE_INFO, null, null,169 jarSigner);177 new SecurityDialog(DialogType.MORE_INFO, null, file, 178 certVerifier); 170 179 dialog.setModalityType(ModalityType.APPLICATION_MODAL); 171 180 dialog.setVisible(true); … … 176 185 * Displays CertPath information in a readable table format. 177 186 * 178 * @param jarSigner the JarSigner used to verify this application187 * @param certVerifier the JarCertVerifier used to verify this application 179 188 * @param parent the parent option pane 180 189 */ 181 public static void showCertInfoDialog(CertVerifier jarSigner,190 public static void showCertInfoDialog(CertVerifier certVerifier, 182 191 SecurityDialog parent) { 183 192 SecurityDialog dialog = new SecurityDialog(DialogType.CERT_INFO, 184 null, null, jarSigner);193 null, null, certVerifier); 185 194 dialog.setLocationRelativeTo(parent); 186 195 dialog.setModalityType(ModalityType.APPLICATION_MODAL); … … 208 217 209 218 String dialogTitle = ""; 210 if (dialogType == DialogType.CERT_WARNING) 211 dialogTitle = "Warning - Security"; 212 else if (dialogType == DialogType.MORE_INFO) 219 if (dialogType == DialogType.CERT_WARNING) { 220 if (accessType == AccessType.VERIFIED) 221 dialogTitle = "Security Approval Required"; 222 else 223 dialogTitle = "Security Warning"; 224 } else if (dialogType == DialogType.MORE_INFO) 213 225 dialogTitle = "More Information"; 214 226 else if (dialogType == DialogType.CERT_INFO) … … 267 279 } 268 280 269 public CertVerifier get JarSigner() {281 public CertVerifier getCertVerifier() { 270 282 return certVerifier; 271 283 } … … 370 382 listeners.add(listener); 371 383 } 384 385 public boolean requiresSignedJNLPWarning() 386 { 387 return requiresSignedJNLPWarning; 388 } 372 389 373 390 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/security/SecurityDialogs.java
r348 r418 181 181 * @param accessType the type of warning dialog to show 182 182 * @param file the JNLPFile associated with this warning 183 * @param jarSigner the JarSigner used to verify this application 183 * @param certVerifier the JarCertVerifier used to verify this application 184 * 185 * @return true if the user accepted the certificate 184 186 */ 185 187 public static boolean showCertWarningDialog(AccessType accessType, 186 JNLPFile file, CertVerifier jarSigner) {188 JNLPFile file, CertVerifier certVerifier) { 187 189 188 190 if (!shouldPromptUser()) { … … 194 196 message.accessType = accessType; 195 197 message.file = file; 196 message.certVerifier = jarSigner;198 message.certVerifier = certVerifier; 197 199 198 200 Object selectedValue = getUserResponse(message); -
trunk/icedtea-web/netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java
r348 r418 38 38 package net.sourceforge.jnlp.security; 39 39 40 import java.security.AccessController; 40 41 import java.security.KeyStore; 42 import java.security.PrivilegedAction; 41 43 import java.security.cert.Certificate; 42 44 import java.security.cert.CertificateException; … … 54 56 55 57 import com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager; 58 import net.sourceforge.jnlp.runtime.JNLPRuntime; 56 59 57 60 import net.sourceforge.jnlp.security.SecurityDialogs.AccessType; … … 380 383 * @return user's response 381 384 */ 382 private boolean askUser(X509Certificate[] chain, String authType, 383 boolean isTrusted, boolean hostMatched, 384 String hostName) { 385 return SecurityDialogs.showCertWarningDialog( 385 private boolean askUser(final X509Certificate[] chain, final String authType, 386 final boolean isTrusted, final boolean hostMatched, 387 final String hostName) { 388 if (JNLPRuntime.isTrustAll()){ 389 return true; 390 } 391 final VariableX509TrustManager trustManager = this; 392 return AccessController.doPrivileged(new PrivilegedAction<Boolean>() { 393 @Override 394 public Boolean run() { 395 return SecurityDialogs.showCertWarningDialog( 386 396 AccessType.UNVERIFIED, null, 387 new HttpsCertVerifier(t his, chain, authType,397 new HttpsCertVerifier(trustManager, chain, authType, 388 398 isTrusted, hostMatched, 389 399 hostName)); 400 } 401 }); 390 402 } 391 403 -
trunk/icedtea-web/netx/net/sourceforge/jnlp/security/viewer/CertificatePane.java
r348 r418 67 67 import javax.swing.JOptionPane; 68 68 import javax.swing.JPanel; 69 import javax.swing.JPasswordField; 69 70 import javax.swing.JScrollPane; 70 71 import javax.swing.JTabbedPane; … … 101 102 new CertificateType(KeyStores.Type.CERTS), 102 103 new CertificateType(KeyStores.Type.JSSE_CERTS), 104 new CertificateType(KeyStores.Type.CLIENT_CERTS) 103 105 }; 104 106 … … 302 304 } 303 305 306 private char[] getPassword(final String label) { 307 JPasswordField jpf = new JPasswordField(); 308 int result = JOptionPane.showConfirmDialog(parent, 309 new Object[]{label, jpf}, R("CVPasswordTitle"), 310 JOptionPane.OK_CANCEL_OPTION, 311 JOptionPane.INFORMATION_MESSAGE); 312 if (result == JOptionPane.OK_OPTION) 313 return jpf.getPassword(); 314 else 315 return null; 316 } 317 304 318 /** Allows storing KeyStores.Types in a JComponent */ 305 319 private static class CertificateType { … … 365 379 try { 366 380 KeyStore ks = keyStore; 367 CertificateUtils.addToKeyStore(chooser.getSelectedFile(), ks); 381 if (currentKeyStoreType == KeyStores.Type.CLIENT_CERTS) { 382 char[] password = getPassword(R("CVImportPasswordMessage")); 383 if (password != null) { 384 CertificateUtils.addPKCS12ToKeyStore( 385 chooser.getSelectedFile(), ks, password); 386 } else { 387 return; 388 } 389 } else { 390 CertificateUtils.addToKeyStore(chooser.getSelectedFile(), ks); 391 } 368 392 File keyStoreFile = new File(KeyStores 369 393 .getKeyStoreLocation(currentKeyStoreLevel, currentKeyStoreType)); … … 409 433 .get(selectedRow)); 410 434 if (alias != null) { 411 Certificate c = keyStore.getCertificate(alias); 412 PrintStream ps = new PrintStream(chooser.getSelectedFile().getAbsolutePath()); 413 CertificateUtils.dump(c, ps); 435 if (currentKeyStoreType == KeyStores.Type.CLIENT_CERTS) { 436 char[] password = getPassword(R("CVExportPasswordMessage")); 437 if (password != null) 438 CertificateUtils.dumpPKCS12(alias, chooser.getSelectedFile(), keyStore, password); 439 } else { 440 Certificate c = keyStore.getCertificate(alias); 441 PrintStream ps = new PrintStream(chooser.getSelectedFile().getAbsolutePath()); 442 CertificateUtils.dump(c, ps); 443 } 414 444 repopulateTables(); 415 445 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java
r348 r418 52 52 53 53 import net.sourceforge.jnlp.runtime.JNLPRuntime; 54 import net.sourceforge.jnlp.util.ImageResources; 54 55 55 56 public class CertificateViewer extends JDialog { … … 62 63 public CertificateViewer() { 63 64 super((Frame) null, dialogTitle, true); 65 setIconImages(ImageResources.INSTANCE.getApplicationImages()); 64 66 65 67 Container contentPane = getContentPane(); -
trunk/icedtea-web/netx/net/sourceforge/jnlp/services/ServiceUtil.java
r348 r418 236 236 Object... extras) { 237 237 238 if (app == null) 239 app = JNLPRuntime.getApplication(); 240 241 boolean codeTrusted = true; 242 243 StackTraceElement[] stack = Thread.currentThread().getStackTrace(); 244 245 for (int i = 0; i < stack.length; i++) { 246 247 Class c = null; 248 249 try { 250 c = Class.forName(stack[i].getClassName()); 251 } catch (Exception e1) { 252 try { 253 c = Class.forName(stack[i].getClassName(), false, app.getClassLoader()); 254 } catch (Exception e2) { 255 System.err.println(e2.getMessage()); 256 } 257 } 258 259 // Everything up to the desired class/method must be trusted 260 if (c == null || // class not found 261 (c.getProtectionDomain().getCodeSource() != null && // class is not in bootclasspath 262 c.getProtectionDomain().getCodeSource().getCodeSigners() == null) // class is trusted 263 ) { 264 codeTrusted = false; 265 } 266 } 267 268 if (!codeTrusted) { 238 boolean trusted = isSigned(app); 239 240 if (!trusted) { 269 241 270 242 if (!shouldPromptUser()) { 271 243 return false; 272 244 } 245 if (app == null) 246 app = JNLPRuntime.getApplication(); 273 247 274 248 final AccessType tmpType = type; … … 308 282 }); 309 283 } 284 285 /** 286 * Returns whether the app requesting a JNLP service is a trusted 287 * application 288 * 289 * @param app 290 * the application which is requesting the check. If null, the 291 * current application is used. 292 * @return true, if the app is a trusted application; false otherwise 293 */ 294 295 public static boolean isSigned(ApplicationInstance app) { 296 297 if (app == null) 298 app = JNLPRuntime.getApplication(); 299 300 StackTraceElement[] stack = Thread.currentThread().getStackTrace(); 301 302 for (int i = 0; i < stack.length; i++) { 303 304 Class c = null; 305 306 try { 307 c = Class.forName(stack[i].getClassName()); 308 } catch (Exception e1) { 309 try { 310 c = Class.forName(stack[i].getClassName(), false, 311 app.getClassLoader()); 312 } catch (Exception e2) { 313 System.err.println(e2.getMessage()); 314 } 315 } 316 317 // Everything up to the desired class/method must be trusted 318 if (c == null || // class not found 319 (c.getProtectionDomain().getCodeSource() != null && // class is not in bootclasspath 320 c.getProtectionDomain().getCodeSource().getCodeSigners() == null) // class is trusted 321 ) { 322 return false; 323 } 324 } 325 return true; 326 } 310 327 311 328 } -
trunk/icedtea-web/netx/net/sourceforge/jnlp/services/XPersistenceService.java
r348 r418 53 53 54 54 URL source = app.getJNLPFile().getCodeBase(); 55 56 if (!source.getHost().equalsIgnoreCase(location.getHost()) 57 && !ServiceUtil.isSigned(app)) // Allow trusted application to have access to data from a different host 58 throw new MalformedURLException( 59 "Untrusted application cannot access data from a different host."); 55 60 56 if (!source.getHost().equalsIgnoreCase(location.getHost()))57 throw new MalformedURLException("Cannot access data from a different host.");58 61 59 62 // test for above codebase, not perfect but works for now … … 70 73 } 71 74 72 if (!source.getFile().startsWith(requestPath)) 73 throw new MalformedURLException("Cannot access data below source URL path."); 75 if (!source.getFile().startsWith(requestPath) 76 && !ServiceUtil.isSigned(app)) // Allow trusted application to have access to data below source URL path 77 throw new MalformedURLException( 78 "Cannot access data below source URL path."); 74 79 } 75 80 … … 123 128 124 129 File file = toCacheFile(location); 125 if (!file.exists()) 130 if (!file.exists()) { 126 131 throw new FileNotFoundException("Persistence store for " 127 132 + location.toString() + " is not found."); 133 } 128 134 FileUtils.createParentDir(file, "Persistence store for " 129 135 + location.toString()); -
trunk/icedtea-web/netx/net/sourceforge/jnlp/tools/KeyStoreUtil.java
r348 r418 34 34 35 35 // Class and methods marked as public so that they can be 36 // accessed by Jar Signer, which although lies in a package36 // accessed by JarCertVerifier, which although lies in a package 37 37 // with the same name, but bundled in tools.jar and loaded 38 38 // by another class loader, hence in a different *runtime* -
trunk/icedtea-web/netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java
r348 r418 83 83 JOptionPane optionPane = new JOptionPane(mainPanel, JOptionPane.ERROR_MESSAGE); 84 84 final JDialog errorDialog = optionPane.createDialog(R("Error")); 85 errorDialog.setIconImages(ImageResources.INSTANCE.getApplicationImages()); 85 86 86 87 final JPanel quickInfoPanel = new JPanel(); -
trunk/icedtea-web/netx/net/sourceforge/jnlp/util/PropertiesFile.java
r348 r418 36 36 /** the header string */ 37 37 String header = "netx file"; 38 39 /** lazy loaded on getProperty */40 boolean loaded = false;38 39 /** time of last modification, lazy loaded on getProperty */ 40 long lastStore; 41 41 42 42 /** … … 65 65 */ 66 66 public String getProperty(String key) { 67 if ( !loaded)67 if (lastStore == 0) 68 68 load(); 69 69 … … 76 76 */ 77 77 public String getProperty(String key, String defaultValue) { 78 if ( !loaded)78 if (lastStore == 0) 79 79 load(); 80 80 … … 88 88 */ 89 89 public Object setProperty(String key, String value) { 90 if ( !loaded)90 if (lastStore == 0) 91 91 load(); 92 92 … … 105 105 * loaded; call this method before calling any method defined by 106 106 * a superclass. 107 * 108 * @return true, if file was (re-)loaded 109 * false, if file was still current 107 110 */ 108 public void load() { 109 loaded = true; 111 public boolean load() { 110 112 111 InputStream s = null; 112 try { 113 if (!file.exists()) 114 return; 113 if (!file.exists()) { 114 return false; 115 } 115 116 117 long currentStore = file.lastModified(); 118 long currentTime = System.currentTimeMillis(); 119 120 /* (re)load file, if 121 * - it wasn't loaded/stored, yet (lastStore == 0) 122 * - current file modification timestamp has changed since last store (currentStore != lastStore) OR 123 * - current file modification timestamp has not changed since last store AND current system time equals current file modification timestamp 124 * This is necessary because some filesystems seems only to provide accuracy of the timestamp on the level of seconds! 125 */ 126 if(lastStore == 0 || currentStore != lastStore || (currentStore == lastStore && currentStore / 1000 == currentTime / 1000)) { 127 InputStream s = null; 116 128 try { 117 s = new FileInputStream(file); 118 load(s); 119 } finally { 120 if (s != null) s.close(); 129 130 try { 131 s = new FileInputStream(file); 132 load(s); 133 } finally { 134 if (s != null) { 135 s.close(); 136 lastStore=currentStore; 137 return true; 138 } 139 } 140 } catch (IOException ex) { 141 ex.printStackTrace(); 121 142 } 122 } catch (IOException ex) {123 ex.printStackTrace();124 143 } 144 145 return false; 125 146 } 126 147 … … 129 150 */ 130 151 public void store() { 131 if (!loaded)132 return; // nothing could have changed so save unnecessary load/save133 152 134 OutputStream s = null;153 FileOutputStream s = null; 135 154 try { 136 155 try { 156 file.getParentFile().mkdirs(); 137 157 s = new FileOutputStream(file); 138 158 store(s, header); 159 160 // fsync() 161 s.getChannel().force(true); 162 lastStore = file.lastModified(); 139 163 } finally { 140 164 if (s != null) s.close(); -
trunk/icedtea-web/netx/net/sourceforge/nanoxml/XMLElement.java
r348 r418 1167 1167 * xml file. 1168 1168 */ 1169 public void sanitizeInput( InputStreamReader isr, PipedOutputStream pout) {1169 public void sanitizeInput(Reader isr, OutputStream pout) { 1170 1170 try { 1171 1171 PrintStream out = new PrintStream(pout); … … 1221 1221 this.sanitizeCharReadTooMuch = next; 1222 1222 1223 // If the next char is a ? or !, then we've hit a specialtag,1223 // If the next chars are !--, then we've hit a comment tag, 1224 1224 // and should skip it. 1225 if (prev == '<' && (next == '!' || next == '?')) { 1226 this.skipSpecialTag(0); 1227 this.sanitizeCharReadTooMuch = '\0'; 1225 if (ch == '<' && sanitizeCharReadTooMuch == '!') { 1226 ch = (char) this.reader.read(); 1227 if (ch == '-') { 1228 ch = (char) this.reader.read(); 1229 if (ch == '-') { 1230 this.skipComment(); 1231 this.sanitizeCharReadTooMuch = '\0'; 1232 } else { 1233 out.print('<'); 1234 out.print('!'); 1235 out.print('-'); 1236 this.sanitizeCharReadTooMuch = ch; 1237 if (JNLPRuntime.isDebug()) { 1238 System.out.print('<'); 1239 System.out.print('!'); 1240 System.out.print('-'); 1241 } 1242 } 1243 } else { 1244 out.print('<'); 1245 out.print('!'); 1246 this.sanitizeCharReadTooMuch = ch; 1247 if (JNLPRuntime.isDebug()) { 1248 System.out.print('<'); 1249 System.out.print('!'); 1250 } 1251 } 1228 1252 } 1229 1253 // Otherwise we haven't hit a comment, and we should write ch. -
trunk/icedtea-web/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc
r358 r418 921 921 { 922 922 className = "java.lang.String"; 923 #if MOZILLA_VERSION_COLLAPSED < 1090200 924 stringArg += NPVARIANT_TO_STRING(variant).utf8characters; 925 #else 926 stringArg += NPVARIANT_TO_STRING(variant).UTF8Characters; 927 #endif 923 stringArg = IcedTeaPluginUtilities::NPVariantAsString(variant); 928 924 } else if (NPVARIANT_IS_OBJECT(variant)) 929 925 { … … 938 934 PLUGIN_DEBUG("NPObject is not a Java object\n"); 939 935 NPIdentifier length_id = browser_functions.getstringidentifier("length"); 936 bool isJSObjectArray = false; 940 937 941 938 // FIXME: We currently only handle <= 2 dim arrays. Do we really need more though? … … 953 950 IcedTeaPluginUtilities::itoa(NPVARIANT_TO_INT32(length), &length_str); 954 951 955 if (NPVARIANT_TO_INT32(length) > 0)952 if (NPVARIANT_TO_INT32(length) >= 0) 956 953 { 957 954 NPIdentifier id_0 = browser_functions.getintidentifier(0); … … 973 970 getArrayTypeForJava(instance, first_element, &java_array_type); 974 971 } 975 } else 976 java_array_type.append("jsobject"); 972 } 973 974 // For JSObject arrays, we create a regular object (accessible via JSObject.getSlot()) 975 if (NPVARIANT_TO_INT32(length) < 0 || !java_array_type.compare("jsobject")) 976 { 977 isJSObjectArray = true; 978 goto createRegularObject; 979 } 977 980 978 981 java_result = java_request.newArray(java_array_type, length_str); … … 1012 1015 // Got here => no errors above. We're good to return! 1013 1016 return; 1014 } else // Else it is not an array 1017 } 1018 1019 createRegularObject: 1020 if (!IcedTeaPluginUtilities::isObjectJSArray(instance, obj) || isJSObjectArray) // Else it is not an array 1015 1021 { 1016 1022 -
trunk/icedtea-web/plugin/icedteanp/IcedTeaNPPlugin.cc
r394 r418 108 108 #define PLUGIN_FULL_NAME PLUGIN_NAME " (using " PLUGIN_VERSION ")" 109 109 #define PLUGIN_DESC "The <a href=\"" PACKAGE_URL "\">" PLUGIN_NAME "</a> executes Java applets." 110 111 #ifdef HAVE_JAVA7 112 #define JPI_VERSION "1.7.0_" JDK_UPDATE_VERSION 113 #define PLUGIN_APPLET_MIME_DESC7 \ 114 "application/x-java-applet;version=1.7:class,jar:IcedTea;" 115 #define PLUGIN_BEAN_MIME_DESC7 \ 116 "application/x-java-bean;version=1.7:class,jar:IcedTea;" 117 #else 118 #define JPI_VERSION "1.6.0_" JDK_UPDATE_VERSION 119 #define PLUGIN_APPLET_MIME_DESC7 120 #define PLUGIN_BEAN_MIME_DESC7 121 #endif 110 122 111 123 #define PLUGIN_MIME_DESC \ … … 126 138 "application/x-java-applet;version=1.5:class,jar:IcedTea;" \ 127 139 "application/x-java-applet;version=1.6:class,jar:IcedTea;" \ 128 "application/x-java-applet;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ 140 PLUGIN_APPLET_MIME_DESC7 \ 141 "application/x-java-applet;jpi-version=" JPI_VERSION ":class,jar:IcedTea;" \ 129 142 "application/x-java-bean:class,jar:IcedTea;" \ 130 143 "application/x-java-bean;version=1.1:class,jar:IcedTea;" \ … … 142 155 "application/x-java-bean;version=1.5:class,jar:IcedTea;" \ 143 156 "application/x-java-bean;version=1.6:class,jar:IcedTea;" \ 144 "application/x-java-bean;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ 157 PLUGIN_BEAN_MIME_DESC7 \ 158 "application/x-java-bean;jpi-version=" JPI_VERSION ":class,jar:IcedTea;" \ 145 159 "application/x-java-vm-npruntime::IcedTea;" 146 160 … … 280 294 pthread_cond_t cond_message_available = PTHREAD_COND_INITIALIZER; 281 295 296 297 #ifdef LEGACY_GLIB 298 // Returns key from first item stored in hashtable 299 gboolean 300 find_first_item_in_hash_table(gpointer key, gpointer value, gpointer user_data) 301 { 302 user_data = key; 303 return (gboolean)TRUE; 304 } 305 306 int 307 g_strcmp0(char *str1, char *str2) 308 { 309 if (str1 != NULL) 310 return str2 != NULL ? strcmp(str1, str2) : 1; 311 else // str1 == NULL 312 return str2 != NULL ? 1 : 0; 313 } 314 315 316 #endif 317 318 319 /* 320 * Find first member in GHashTable* depending on version of glib 321 */ 322 gpointer getFirstInTableInstance(GHashTable* table) 323 { 324 gpointer id, instance; 325 #ifndef LEGACY_GLIB 326 GHashTableIter iter; 327 g_hash_table_iter_init (&iter, table); 328 g_hash_table_iter_next (&iter, &instance, &id); 329 #else 330 g_hash_table_find(table, (GHRFunc)find_first_item_in_hash_table, &instance); 331 #endif 332 return instance; 333 } 334 282 335 // Functions prefixed by ITNP_ are instance functions. They are called 283 336 // by the browser and operate on instances of ITNPPluginData. … … 405 458 406 459 cleanup_appletviewer_mutex: 407 g_ free (data->appletviewer_mutex);460 g_mutex_free (data->appletviewer_mutex); 408 461 data->appletviewer_mutex = NULL; 409 462 … … 965 1018 get_cookie_info(const char* siteAddr, char** cookieString, uint32_t* len) 966 1019 { 1020 // Only attempt to perform this operation if there is a valid plugin instance 1021 if (g_hash_table_size(instance_to_id_map) <= 0) 1022 { 1023 return NPERR_GENERIC_ERROR; 1024 } 967 1025 #if MOZILLA_VERSION_COLLAPSED < 1090100 968 1026 nsresult rv; … … 1008 1066 if (browser_functions.getvalueforurl) 1009 1067 { 1010 GHashTableIter iter; 1011 gpointer id, instance; 1012 1013 g_hash_table_iter_init (&iter, instance_to_id_map); 1014 g_hash_table_iter_next (&iter, &instance, &id); 1015 1068 gpointer instance=getFirstInTableInstance(instance_to_id_map); 1016 1069 return browser_functions.getvalueforurl((NPP) instance, NPNURLVCookie, siteAddr, cookieString, len); 1017 1070 } else … … 1023 1076 1024 1077 return NPERR_NO_ERROR; 1078 } 1079 1080 static NPError 1081 set_cookie_info(const char* siteAddr, const char* cookieString, uint32_t len) 1082 { 1083 // Only attempt to perform this operation if there is a valid plugin instance 1084 if (g_hash_table_size(instance_to_id_map) > 0 && browser_functions.getvalueforurl) 1085 { 1086 // We arbitrarily use the first valid instance we can grab 1087 // For an explanation of the logic behind this, see get_cookie_info 1088 gpointer instance = getFirstInTableInstance(instance_to_id_map); 1089 return browser_functions.setvalueforurl((NPP) instance, NPNURLVCookie, siteAddr, cookieString, len); 1090 } 1091 1092 return NPERR_GENERIC_ERROR;; 1025 1093 } 1026 1094 … … 1138 1206 href_id, &href); 1139 1207 1140 // Strip everything after the last "/" 1141 #if MOZILLA_VERSION_COLLAPSED < 1090200 1142 gchar** parts = g_strsplit (NPVARIANT_TO_STRING(href).utf8characters, "/", -1); 1143 #else 1144 gchar** parts = g_strsplit (NPVARIANT_TO_STRING(href).UTF8Characters, "/", -1); 1145 #endif 1146 guint parts_sz = g_strv_length (parts); 1147 1148 std::string location_str; 1149 for (int i=0; i < parts_sz - 1; i++) 1150 { 1151 location_str += parts[i]; 1152 location_str += "/"; 1153 } 1154 1155 documentbase_copy = g_strdup (location_str.c_str()); 1208 std::string href_str = IcedTeaPluginUtilities::NPVariantAsString(href); 1209 documentbase_copy = g_strdup (href_str.c_str()); 1156 1210 1157 1211 // Release references. … … 1258 1312 } 1259 1313 1314 static 1315 void consume_plugin_message(gchar* message) { 1316 // internal plugin related message 1317 gchar** parts = g_strsplit (message, " ", 5); 1318 if (g_str_has_prefix(parts[1], "PluginProxyInfo")) 1319 { 1320 gchar* proxy; 1321 uint32_t len; 1322 1323 gchar* decoded_url = (gchar*) calloc(strlen(parts[4]) + 1, sizeof(gchar)); 1324 IcedTeaPluginUtilities::decodeURL(parts[4], &decoded_url); 1325 PLUGIN_DEBUG("parts[0]=%s, parts[1]=%s, reference, parts[3]=%s, parts[4]=%s -- decoded_url=%s\n", parts[0], parts[1], parts[3], parts[4], decoded_url); 1326 1327 gchar* proxy_info; 1328 1329 #if MOZILLA_VERSION_COLLAPSED < 1090100 1330 proxy = (char*) malloc(sizeof(char)*2048); 1331 #endif 1332 1333 proxy_info = g_strconcat ("plugin PluginProxyInfo reference ", parts[3], " ", NULL); 1334 if (get_proxy_info(decoded_url, &proxy, &len) == NPERR_NO_ERROR) 1335 { 1336 proxy_info = g_strconcat (proxy_info, proxy, NULL); 1337 } 1338 1339 PLUGIN_DEBUG("Proxy info: %s\n", proxy_info); 1340 plugin_send_message_to_appletviewer(proxy_info); 1341 1342 free(decoded_url); 1343 decoded_url = NULL; 1344 g_free(proxy_info); 1345 proxy_info = NULL; 1346 1347 #if MOZILLA_VERSION_COLLAPSED < 1090100 1348 g_free(proxy); 1349 proxy = NULL; 1350 #endif 1351 1352 } else if (g_str_has_prefix(parts[1], "PluginCookieInfo")) 1353 { 1354 gchar* decoded_url = (gchar*) calloc(strlen(parts[4])+1, sizeof(gchar)); 1355 IcedTeaPluginUtilities::decodeURL(parts[4], &decoded_url); 1356 1357 gchar* cookie_info = g_strconcat ("plugin PluginCookieInfo reference ", parts[3], " ", NULL); 1358 gchar* cookie_string; 1359 uint32_t len; 1360 if (get_cookie_info(decoded_url, &cookie_string, &len) == NPERR_NO_ERROR) 1361 { 1362 cookie_info = g_strconcat (cookie_info, cookie_string, NULL); 1363 } 1364 1365 PLUGIN_DEBUG("Cookie info: %s\n", cookie_info); 1366 plugin_send_message_to_appletviewer(cookie_info); 1367 1368 free(decoded_url); 1369 decoded_url = NULL; 1370 g_free(cookie_info); 1371 cookie_info = NULL; 1372 } else if (g_str_has_prefix(parts[1], "PluginSetCookie")) 1373 { 1374 // Message structure: plugin PluginSetCookie reference -1 <url> <cookie> 1375 gchar** cookie_parts = g_strsplit (message, " ", 6); 1376 1377 if (g_strv_length(cookie_parts) < 6) 1378 { 1379 g_strfreev (parts); 1380 g_strfreev (cookie_parts); 1381 return; // Defensive, message _should_ be properly formatted 1382 } 1383 1384 gchar* decoded_url = (gchar*) calloc(strlen(cookie_parts[4])+1, sizeof(gchar)); 1385 IcedTeaPluginUtilities::decodeURL(cookie_parts[4], &decoded_url); 1386 1387 gchar* cookie_string = cookie_parts[5]; 1388 uint32_t len = strlen(cookie_string); 1389 if (set_cookie_info(decoded_url, cookie_string, len) == NPERR_NO_ERROR) 1390 { 1391 PLUGIN_DEBUG("Setting cookie for URL %s to %s\n", decoded_url, cookie_string); 1392 } else 1393 { 1394 PLUGIN_DEBUG("Not able to set cookie for URL %s to %s\n", decoded_url, cookie_string); 1395 } 1396 1397 free(decoded_url); 1398 decoded_url = NULL; 1399 g_strfreev (cookie_parts); 1400 cookie_parts = NULL; 1401 } 1402 1403 g_strfreev (parts); 1404 parts = NULL; 1405 } 1406 1260 1407 void consume_message(gchar* message) { 1261 1408 … … 1287 1434 1288 1435 // clear the "instance X status" parts 1289 s printf(parts[0], "");1290 s printf(parts[1], "");1291 s printf(parts[2], "");1436 strcpy(parts[0], ""); 1437 strcpy(parts[1], ""); 1438 strcpy(parts[2], ""); 1292 1439 1293 1440 // join the rest … … 1320 1467 else if (g_str_has_prefix (message, "plugin ")) 1321 1468 { 1322 // internal plugin related message 1323 gchar** parts = g_strsplit (message, " ", 5); 1324 if (g_str_has_prefix(parts[1], "PluginProxyInfo")) 1325 { 1326 gchar* proxy; 1327 uint32_t len; 1328 1329 gchar* decoded_url = (gchar*) calloc(strlen(parts[4]) + 1, sizeof(gchar)); 1330 IcedTeaPluginUtilities::decodeURL(parts[4], &decoded_url); 1331 PLUGIN_DEBUG("parts[0]=%s, parts[1]=%s, reference, parts[3]=%s, parts[4]=%s -- decoded_url=%s\n", parts[0], parts[1], parts[3], parts[4], decoded_url); 1332 1333 gchar* proxy_info; 1334 1335 #if MOZILLA_VERSION_COLLAPSED < 1090100 1336 proxy = (char*) malloc(sizeof(char)*2048); 1337 #endif 1338 1339 proxy_info = g_strconcat ("plugin PluginProxyInfo reference ", parts[3], " ", NULL); 1340 if (get_proxy_info(decoded_url, &proxy, &len) == NPERR_NO_ERROR) 1341 { 1342 proxy_info = g_strconcat (proxy_info, proxy, NULL); 1343 } 1344 1345 PLUGIN_DEBUG("Proxy info: %s\n", proxy_info); 1346 plugin_send_message_to_appletviewer(proxy_info); 1347 1348 g_free(decoded_url); 1349 decoded_url = NULL; 1350 g_free(proxy_info); 1351 proxy_info = NULL; 1352 1353 #if MOZILLA_VERSION_COLLAPSED < 1090100 1354 g_free(proxy); 1355 proxy = NULL; 1356 #endif 1357 1358 } else if (g_str_has_prefix(parts[1], "PluginCookieInfo")) 1359 { 1360 gchar* decoded_url = (gchar*) calloc(strlen(parts[4])+1, sizeof(gchar)); 1361 IcedTeaPluginUtilities::decodeURL(parts[4], &decoded_url); 1362 1363 gchar* cookie_info = g_strconcat ("plugin PluginCookieInfo reference ", parts[3], " ", NULL); 1364 gchar* cookie_string; 1365 uint32_t len; 1366 if (get_cookie_info(decoded_url, &cookie_string, &len) == NPERR_NO_ERROR) 1367 { 1368 cookie_info = g_strconcat (cookie_info, cookie_string, NULL); 1369 } 1370 1371 PLUGIN_DEBUG("Cookie info: %s\n", cookie_info); 1372 plugin_send_message_to_appletviewer(cookie_info); 1373 1374 g_free(decoded_url); 1375 decoded_url = NULL; 1376 g_free(cookie_info); 1377 cookie_info = NULL; 1378 } 1469 consume_plugin_message(message); 1379 1470 } 1380 1471 else … … 1382 1473 g_print (" Unable to handle message: %s\n", message); 1383 1474 } 1475 1384 1476 } 1385 1477 … … 1401 1493 get_proxy_info(const char* siteAddr, char** proxy, uint32_t* len) 1402 1494 { 1495 // Only attempt to perform this operation if there is a valid plugin instance 1496 if (g_hash_table_size(instance_to_id_map) <= 0) 1497 { 1498 return NPERR_GENERIC_ERROR; 1499 } 1403 1500 #if MOZILLA_VERSION_COLLAPSED < 1090100 1404 1501 nsresult rv; … … 1475 1572 1476 1573 // As in get_cookie_info, we use the first active instance 1477 GHashTableIter iter; 1478 gpointer id, instance; 1479 1480 g_hash_table_iter_init (&iter, instance_to_id_map); 1481 g_hash_table_iter_next (&iter, &instance, &id); 1482 1574 gpointer instance=getFirstInTableInstance(instance_to_id_map); 1483 1575 browser_functions.getvalueforurl((NPP) instance, NPNURLVProxy, siteAddr, proxy, len); 1484 1576 } else … … 2086 2178 2087 2179 // cleanup_appletviewer_mutex: 2088 g_ free (tofree->appletviewer_mutex);2180 g_mutex_free (tofree->appletviewer_mutex); 2089 2181 tofree->appletviewer_mutex = NULL; 2090 2182 … … 2109 2201 } 2110 2202 2111 static NPError 2112 plugin_get_entry_points (NPPluginFuncs* pluginTable) 2113 { 2114 // Ensure that the plugin function table we've received is large 2115 // enough to store the number of functions that we may provide. 2116 if (pluginTable->size < sizeof (NPPluginFuncs)) 2117 { 2118 PLUGIN_ERROR ("Invalid plugin function table."); 2119 2120 return NPERR_INVALID_FUNCTABLE_ERROR; 2121 } 2122 2123 // Return to the browser the plugin functions that we implement. 2203 static bool 2204 initialize_browser_functions(const NPNetscapeFuncs* browserTable) 2205 { 2206 #if MOZILLA_VERSION_COLLAPSED < 1090100 2207 #define NPNETSCAPEFUNCS_LAST_FIELD_USED (browserTable->pluginthreadasynccall) 2208 #else 2209 #define NPNETSCAPEFUNCS_LAST_FIELD_USED (browserTable->setvalueforurl) 2210 #endif 2211 2212 //Determine the size in bytes, as a difference of the address past the last used field 2213 //And the browser table address 2214 size_t usedSize = (char*)(1 + &NPNETSCAPEFUNCS_LAST_FIELD_USED) - (char*)browserTable; 2215 2216 // compare the reported size versus the size we required 2217 if (browserTable->size < usedSize) 2218 { 2219 return false; 2220 } 2221 2222 //Ensure any unused fields are NULL 2223 memset(&browser_functions, 0, sizeof(NPNetscapeFuncs)); 2224 2225 //browserTable->size can be larger than sizeof(NPNetscapeFuncs) (PR1106) 2226 size_t copySize = browserTable->size < sizeof(NPNetscapeFuncs) ? 2227 browserTable->size : sizeof(NPNetscapeFuncs); 2228 2229 //Copy fields according to given size 2230 memcpy(&browser_functions, browserTable, copySize); 2231 2232 return true; 2233 } 2234 2235 /* Set the plugin table to the correct contents, taking care not to write past 2236 * the provided object space */ 2237 static bool 2238 initialize_plugin_table(NPPluginFuncs* pluginTable) 2239 { 2240 #define NPPLUGINFUNCS_LAST_FIELD_USED (pluginTable->getvalue) 2241 2242 //Determine the size in bytes, as a difference of the address past the last used field 2243 //And the browser table address 2244 size_t usedSize = (char*)(1 + &NPPLUGINFUNCS_LAST_FIELD_USED) - (char*)pluginTable; 2245 2246 // compare the reported size versus the size we required 2247 if (pluginTable->size < usedSize) 2248 return false; 2249 2124 2250 pluginTable->version = (NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR; 2125 2251 pluginTable->size = sizeof (NPPluginFuncs); … … 2151 2277 #endif 2152 2278 2153 return NPERR_NO_ERROR;2279 return true; 2154 2280 } 2155 2281 … … 2200 2326 } 2201 2327 2202 // Ensure that the browser function table is large enough to store 2203 // the number of browser functions that we may use. 2204 if (browserTable->size < sizeof (NPNetscapeFuncs)) 2205 { 2206 fprintf (stderr, "ERROR: Invalid browser function table. Some functionality may be restricted.\n"); 2207 } 2208 2209 // Store in a local table the browser functions that we may use. 2210 browser_functions.size = browserTable->size; 2211 browser_functions.version = browserTable->version; 2212 browser_functions.geturlnotify = browserTable->geturlnotify; 2213 browser_functions.geturl = browserTable->geturl; 2214 browser_functions.posturlnotify = browserTable->posturlnotify; 2215 browser_functions.posturl = browserTable->posturl; 2216 browser_functions.requestread = browserTable->requestread; 2217 browser_functions.newstream = browserTable->newstream; 2218 browser_functions.write = browserTable->write; 2219 browser_functions.destroystream = browserTable->destroystream; 2220 browser_functions.status = browserTable->status; 2221 browser_functions.uagent = browserTable->uagent; 2222 browser_functions.memalloc = browserTable->memalloc; 2223 browser_functions.memfree = browserTable->memfree; 2224 browser_functions.memflush = browserTable->memflush; 2225 browser_functions.reloadplugins = browserTable->reloadplugins; 2226 browser_functions.getJavaEnv = browserTable->getJavaEnv; 2227 browser_functions.getJavaPeer = browserTable->getJavaPeer; 2228 browser_functions.getvalue = browserTable->getvalue; 2229 browser_functions.setvalue = browserTable->setvalue; 2230 browser_functions.invalidaterect = browserTable->invalidaterect; 2231 browser_functions.invalidateregion = browserTable->invalidateregion; 2232 browser_functions.forceredraw = browserTable->forceredraw; 2233 browser_functions.getstringidentifier = browserTable->getstringidentifier; 2234 browser_functions.getstringidentifiers = browserTable->getstringidentifiers; 2235 browser_functions.getintidentifier = browserTable->getintidentifier; 2236 browser_functions.identifierisstring = browserTable->identifierisstring; 2237 browser_functions.utf8fromidentifier = browserTable->utf8fromidentifier; 2238 browser_functions.intfromidentifier = browserTable->intfromidentifier; 2239 browser_functions.createobject = browserTable->createobject; 2240 browser_functions.retainobject = browserTable->retainobject; 2241 browser_functions.releaseobject = browserTable->releaseobject; 2242 browser_functions.invoke = browserTable->invoke; 2243 browser_functions.invokeDefault = browserTable->invokeDefault; 2244 browser_functions.evaluate = browserTable->evaluate; 2245 browser_functions.getproperty = browserTable->getproperty; 2246 browser_functions.setproperty = browserTable->setproperty; 2247 browser_functions.removeproperty = browserTable->removeproperty; 2248 browser_functions.hasproperty = browserTable->hasproperty; 2249 browser_functions.hasmethod = browserTable->hasmethod; 2250 browser_functions.releasevariantvalue = browserTable->releasevariantvalue; 2251 browser_functions.setexception = browserTable->setexception; 2252 browser_functions.pluginthreadasynccall = browserTable->pluginthreadasynccall; 2253 #if MOZILLA_VERSION_COLLAPSED >= 1090100 2254 browser_functions.getvalueforurl = browserTable->getvalueforurl; 2255 browser_functions.setvalueforurl = browserTable->setvalueforurl; 2256 #endif 2257 2258 NPError np_error = NPERR_NO_ERROR; 2328 // Copy into a global table (browser_functions) the browser functions that we may use. 2329 // If the browser functions needed change, update NPNETSCAPEFUNCS_LAST_FIELD_USED 2330 // within this function 2331 bool browser_functions_supported = initialize_browser_functions(browserTable); 2332 2333 // Check if everything we rely on is supported 2334 if ( !browser_functions_supported ) 2335 { 2336 PLUGIN_ERROR ("Invalid browser function table."); 2337 2338 return NPERR_INVALID_FUNCTABLE_ERROR; 2339 } 2340 2259 2341 #if !defined(_WIN32) && !defined (__OS2__) 2260 np_error = plugin_get_entry_points (pluginTable); 2261 if (np_error != NPERR_NO_ERROR) 2262 return np_error; 2342 // Return to the browser the plugin functions that we implement. 2343 // If the plugin functions needed change, update NPPLUGINFUNCS_LAST_FIELD_USED 2344 // within this function 2345 bool plugin_functions_supported = initialize_plugin_table(pluginTable); 2346 2347 // Check if everything we rely on is supported 2348 if ( !plugin_functions_supported ) 2349 { 2350 PLUGIN_ERROR ("Invalid plugin function table."); 2351 2352 return NPERR_INVALID_FUNCTABLE_ERROR; 2353 } 2263 2354 #endif 2264 2355 … … 2287 2378 return NPERR_OUT_OF_MEMORY_ERROR; 2288 2379 } 2380 NPError np_error = NPERR_NO_ERROR; 2381 gchar* filename = NULL; 2289 2382 2290 2383 // If P_tmpdir does not exist, try /tmp directly … … 2293 2386 (GFileTest) (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) 2294 2387 { 2388 int file_error = 0; 2389 2295 2390 data_directory = g_strconcat ("/tmp", NULL); 2296 2391 if (!data_directory) … … 2453 2548 } 2454 2549 2455 return plugin_get_entry_points (pluginTable); 2550 // Return to the browser the plugin functions that we implement. 2551 // If the plugin functions needed change, update NPPLUGINFUNCS_LAST_FIELD_USED 2552 // within this function 2553 bool plugin_functions_supported = initialize_plugin_table(pluginTable); 2554 2555 // Check if everything we rely on is supported 2556 if ( !plugin_functions_supported ) 2557 { 2558 PLUGIN_ERROR ("Invalid plugin function table."); 2559 2560 return NPERR_INVALID_FUNCTABLE_ERROR; 2561 } 2562 2563 return NPERR_NO_ERROR; 2456 2564 } 2457 2565 #endif … … 2459 2567 // Returns a string describing the MIME type that this plugin 2460 2568 // handles. 2461 const char* 2569 #ifdef LEGACY_XULRUNNERAPI 2570 char* 2571 #else 2572 const char* 2573 #endif 2462 2574 OSCALL NP_GetMIMEDescription () 2463 2575 { -
trunk/icedtea-web/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc
r369 r418 124 124 this->sendWindow(message_parts); 125 125 return true; 126 } else if (!command->find("Finalize")) 127 { 128 // Object can be finalized from the main thread only. And this 129 // call returns immediately, so we do it in the same thread. 130 this->finalize(message_parts); 131 return true; 126 132 } else if (!command->find("GetMember") || 127 133 !command->find("SetMember") || … … 131 137 !command->find("SetSlot") || 132 138 !command->find("Eval") || 133 !command->find("Finalize") ||134 139 !command->find("LoadURL")) 135 140 { … … 242 247 IcedTeaPluginUtilities::callAndWaitForResult(instance, &_eval, &thread_data); 243 248 244 NPVariant* result_variant = (NPVariant*) IcedTeaPluginUtilities::stringToJSID(thread_data.result);245 std::string result_variant_jniid = std::string();246 createJavaObjectFromVariant(instance, *result_variant, &result_variant_jniid);247 248 249 IcedTeaPluginUtilities::constructMessagePrefix(0, reference, &response); 249 250 response += " JavaScriptEval "; 250 response += result_variant_jniid;251 response += thread_data.result; 251 252 252 253 plugin_to_java_bus->post(response.c_str()); … … 275 276 NPVariant* result_variant; 276 277 std::string result_variant_jniid = std::string(); 277 NPVariant* args_array ;278 NPVariant* args_array = NULL; 278 279 AsyncCallThreadData thread_data = AsyncCallThreadData(); 279 280 … … 331 332 IcedTeaPluginUtilities::callAndWaitForResult(instance, &_call, &thread_data); 332 333 333 result_variant = (NPVariant*) IcedTeaPluginUtilities::stringToJSID(thread_data.result);334 335 if (result_variant)336 {337 createJavaObjectFromVariant(instance, *result_variant, &result_variant_jniid);338 } else339 {340 result_variant_jniid = "0";341 }342 343 334 IcedTeaPluginUtilities::constructMessagePrefix(0, reference, &response); 344 335 response += " JavaScriptCall "; 345 response += result_variant_jniid;336 response += thread_data.result; 346 337 347 338 plugin_to_java_bus->post(response.c_str()); … … 410 401 NPP instance; 411 402 NPVariant* member; 412 NPIdentifier property_identifier; 403 std::string property_id = std::string(); 404 bool int_identifier; 413 405 414 406 JavaRequestProcessor java_request = JavaRequestProcessor(); … … 440 432 if (*(message_parts->at(4)) == "SetSlot") 441 433 { 442 property_identifier = browser_functions.getintidentifier(atoi(message_parts->at(6)->c_str())); 434 property_id.append(*(message_parts->at(6))); 435 int_identifier = true; 443 436 } else 444 437 { … … 452 445 } 453 446 454 property_identifier = browser_functions.getstringidentifier(java_result->return_string->c_str()); 447 property_id.append(*(java_result->return_string)); 448 int_identifier = false; 455 449 } 456 450 … … 462 456 thread_data.parameters.push_back(instance); 463 457 thread_data.parameters.push_back(NPVARIANT_TO_OBJECT(*member)); 464 thread_data.parameters.push_back(&property_id entifier);458 thread_data.parameters.push_back(&property_id); 465 459 thread_data.parameters.push_back(&value); 460 thread_data.parameters.push_back(&int_identifier); 466 461 467 462 IcedTeaPluginUtilities::callAndWaitForResult(instance, &_setMember, &thread_data); … … 478 473 * can only be requested from the main thread in Mozilla, this function 479 474 * does whatever it can seperately, and then makes an internal request that 480 * causes _ sendMember to do the rest of the work.475 * causes _getMember to do the rest of the work. 481 476 * 482 477 * @param message_parts The request message … … 491 486 JavaResultData* java_result; 492 487 NPVariant* parent_ptr; 488 NPVariant* member_ptr; 493 489 494 490 //int reference; 495 491 std::string member_id = std::string(); 496 std::string jsObjectClassID = std::string();497 std::string jsObjectConstructorID = std::string();498 492 std::string response = std::string(); 493 std::string result_id = std::string(); 499 494 500 495 NPIdentifier member_identifier; … … 503 498 int instance_id; 504 499 int reference; 500 bool int_identifier; 505 501 506 502 // debug printout of parent thread data … … 517 513 if (*(message_parts->at(4)) == "GetSlot") 518 514 { 519 member_identifier = browser_functions.getintidentifier(atoi(member_id.c_str()));515 int_identifier=true; 520 516 } else 521 517 { … … 530 526 } 531 527 532 member_identifier = browser_functions.getstringidentifier(java_result->return_string->c_str()); 528 member_id.assign(*(java_result->return_string)); 529 int_identifier=false; 533 530 } 534 531 … … 546 543 thread_data.parameters.push_back(instance); 547 544 thread_data.parameters.push_back(NPVARIANT_TO_OBJECT(*parent_ptr)); 548 thread_data.parameters.push_back(&member_identifier); 545 thread_data.parameters.push_back(&member_id); 546 thread_data.parameters.push_back(&int_identifier); 549 547 550 548 IcedTeaPluginUtilities::callAndWaitForResult(instance, &_getMember, &thread_data); 551 549 552 PLUGIN_DEBUG("Member PTR after internal request: %s\n", thread_data.result.c_str());553 554 java_result = java_request.findClass(0, "netscape.javascript.JSObject");555 556 // the result we want is in result_string (assuming there was no error)557 if (java_result->error_occurred)558 {559 printf("Unable to process getMember request. Error occurred: %s\n", java_result->error_msg->c_str());560 //goto cleanup;561 }562 563 jsObjectClassID.append(*(java_result->return_string));564 565 args = std::vector<std::string>();566 std::string longArg = "J";567 args.push_back(longArg);568 569 java_result = java_request.getMethodID(jsObjectClassID,570 browser_functions.getstringidentifier("<init>"),571 args);572 573 // the result we want is in result_string (assuming there was no error)574 if (java_result->error_occurred)575 {576 printf("Unable to process getMember request. Error occurred: %s\n", java_result->error_msg->c_str());577 //goto cleanup;578 }579 580 jsObjectConstructorID.append(*(java_result->return_string));581 582 // We have the method id. Now create a new object.583 584 args.clear();585 args.push_back(thread_data.result);586 java_result = java_request.newObjectWithConstructor("",587 jsObjectClassID,588 jsObjectConstructorID,589 args);590 591 // the result we want is in result_string (assuming there was no error)592 if (java_result->error_occurred)593 {594 printf("Unable to process getMember request. Error occurred: %s\n", java_result->error_msg->c_str());595 //goto cleanup;596 }597 598 599 550 IcedTeaPluginUtilities::constructMessagePrefix(0, reference, &response); 600 if (*(message_parts->at(2)) == "GetSlot") 601 { 551 if (*(message_parts->at(4)) == "GetSlot") 552 { 553 response.append(" JavaScriptGetSlot "); 554 } else { 602 555 response.append(" JavaScriptGetMember "); 603 } else { 604 response.append(" JavaScriptGetSlot "); 605 } 606 response.append(java_result->return_string->c_str()); 556 } 557 response.append(thread_data.result); 607 558 plugin_to_java_bus->post(response.c_str()); 608 559 } … … 764 715 processor->setMember(message_parts); 765 716 pthread_mutex_unlock(&syn_write_mutex); 766 } else if (command == "Finalize")767 {768 // write methods are synchronized769 pthread_mutex_lock(&syn_write_mutex);770 processor->finalize(message_parts);771 pthread_mutex_unlock(&syn_write_mutex);772 717 } else if (command == "LoadURL") // For instance X url <url> <target> 773 718 { … … 821 766 NPVariant value_variant = NPVariant(); 822 767 NPObject* member; 823 NPIdentifier* property; 768 NPIdentifier property_identifier; 769 824 770 825 771 std::vector<void*> parameters = ((AsyncCallThreadData*) data)->parameters; 826 772 instance = (NPP) parameters.at(0); 827 773 member = (NPObject*) parameters.at(1); 828 property = (NPIdentifier*) parameters.at(2);774 std::string* property_id = (std::string*) parameters.at(2); 829 775 value = (std::string*) parameters.at(3); 830 831 PLUGIN_DEBUG("Setting %s on instance %p, object %p to value %s\n", browser_functions.utf8fromidentifier(*property), instance, member, value->c_str()); 776 bool* int_identifier = (bool*) parameters.at(4); 777 778 if(*int_identifier==true) 779 property_identifier = browser_functions.getintidentifier(atoi(property_id->c_str())); 780 else 781 property_identifier = browser_functions.getstringidentifier(property_id->c_str()); 782 783 PLUGIN_DEBUG("Setting %s on instance %p, object %p to value %s\n", browser_functions.utf8fromidentifier(property_identifier), instance, member, value->c_str()); 832 784 833 785 IcedTeaPluginUtilities::javaResultToNPVariant(instance, value, &value_variant); 834 786 835 ((AsyncCallThreadData*) data)->call_successful = browser_functions.setproperty(instance, member, *property, &value_variant);787 ((AsyncCallThreadData*) data)->call_successful = browser_functions.setproperty(instance, member, property_identifier, &value_variant); 836 788 837 789 ((AsyncCallThreadData*) data)->result_ready = true; … … 850 802 instance = (NPP) parameters.at(0); 851 803 parent_ptr = (NPObject*) parameters.at(1); 852 NPIdentifier* member_identifier = (NPIdentifier*) parameters.at(2); 804 std::string* member_id = (std::string*) parameters.at(2); 805 NPIdentifier member_identifier; 806 807 bool* int_identifier = (bool*) parameters.at(3); 808 809 if(*int_identifier==true) 810 member_identifier = browser_functions.getintidentifier(atoi(member_id->c_str())); 811 else 812 member_identifier = browser_functions.getstringidentifier(member_id->c_str()); 853 813 854 814 // Get the NPVariant corresponding to this member 855 PLUGIN_DEBUG("Looking for %p %p %p (%s)\n", instance, parent_ptr, member_identifier, browser_functions.utf8fromidentifier( *member_identifier));856 857 if (!browser_functions.hasproperty(instance, parent_ptr, *member_identifier))858 { 859 printf("%s not found!\n", browser_functions.utf8fromidentifier( *member_identifier));860 } 861 ((AsyncCallThreadData*) data)->call_successful = browser_functions.getproperty(instance, parent_ptr, *member_identifier, member_ptr);815 PLUGIN_DEBUG("Looking for %p %p %p (%s)\n", instance, parent_ptr, member_identifier, browser_functions.utf8fromidentifier(member_identifier)); 816 817 if (!browser_functions.hasproperty(instance, parent_ptr, member_identifier)) 818 { 819 printf("%s not found!\n", browser_functions.utf8fromidentifier(member_identifier)); 820 } 821 ((AsyncCallThreadData*) data)->call_successful = browser_functions.getproperty(instance, parent_ptr, member_identifier, member_ptr); 862 822 863 823 IcedTeaPluginUtilities::printNPVariant(*member_ptr); … … 865 825 if (((AsyncCallThreadData*) data)->call_successful) 866 826 { 867 IcedTeaPluginUtilities::JSIDToString(member_ptr, &member_ptr_str);827 createJavaObjectFromVariant(instance, *member_ptr, &member_ptr_str); 868 828 ((AsyncCallThreadData*) data)->result.append(member_ptr_str); 829 869 830 } 870 831 ((AsyncCallThreadData*) data)->result_ready = true; … … 884 845 NPIdentifier script_identifier; 885 846 NPString script = NPString(); 886 NPVariant* eval_ result = new NPVariant();887 std::string eval_ result_ptr_str = std::string();847 NPVariant* eval_variant = new NPVariant(); 848 std::string eval_variant_str = std::string(); 888 849 889 850 PLUGIN_DEBUG("_eval called\n"); … … 899 860 script.utf8length = script_str->size(); 900 861 901 PLUGIN_DEBUG("Evaluating: %s\n", script .utf8characters);862 PLUGIN_DEBUG("Evaluating: %s\n", script_str->c_str()); 902 863 #else 903 864 script.UTF8Characters = script_str->c_str(); 904 865 script.UTF8Length = script_str->size(); 905 866 906 PLUGIN_DEBUG("Evaluating: %s\n", script .UTF8Characters);867 PLUGIN_DEBUG("Evaluating: %s\n", script_str->c_str()); 907 868 #endif 908 869 909 ((AsyncCallThreadData*) data)->call_successful = browser_functions.evaluate(instance, window_ptr, &script, eval_ result);910 IcedTeaPluginUtilities::printNPVariant(*eval_ result);870 ((AsyncCallThreadData*) data)->call_successful = browser_functions.evaluate(instance, window_ptr, &script, eval_variant); 871 IcedTeaPluginUtilities::printNPVariant(*eval_variant); 911 872 912 873 if (((AsyncCallThreadData*) data)->call_successful) 913 874 { 914 IcedTeaPluginUtilities::JSIDToString(eval_result, &eval_result_ptr_str); 915 ((AsyncCallThreadData*) data)->result.append(eval_result_ptr_str); 916 } 875 if (eval_variant) 876 { 877 createJavaObjectFromVariant(instance, *eval_variant, &eval_variant_str); 878 } else 879 { 880 eval_variant_str = "0"; 881 } 882 } else 883 { 884 eval_variant_str = "0"; 885 } 886 887 ((AsyncCallThreadData*) data)->result.append(eval_variant_str); 917 888 ((AsyncCallThreadData*) data)->result_ready = true; 918 889 … … 957 928 if (((AsyncCallThreadData*) data)->call_successful) 958 929 { 959 IcedTeaPluginUtilities::JSIDToString(call_result, &call_result_ptr_str); 960 ((AsyncCallThreadData*) data)->result.append(call_result_ptr_str); 961 } 962 930 931 if (call_result) 932 { 933 createJavaObjectFromVariant(instance, *call_result, &call_result_ptr_str); 934 } else 935 { 936 call_result_ptr_str = "0"; 937 } 938 } else 939 { 940 call_result_ptr_str = "0"; 941 } 942 943 ((AsyncCallThreadData*) data)->result.append(call_result_ptr_str); 963 944 ((AsyncCallThreadData*) data)->result_ready = true; 964 945 … … 1031 1012 ((AsyncCallThreadData*) data)->result_ready = true; 1032 1013 1033 g_free(decoded_url);1014 free(decoded_url); 1034 1015 decoded_url = NULL; 1035 1016 -
trunk/icedtea-web/plugin/icedteanp/IcedTeaPluginUtils.cc
r375 r418 151 151 IcedTeaPluginUtilities::JSIDToString(void* id, std::string* result) 152 152 { 153 154 char* id_str = (char*) malloc(sizeof(char)*20); // max = long long = 8446744073709551615 == 19 chars 153 char id_str[NUM_STR_BUFFER_SIZE]; 155 154 156 155 if (sizeof(void*) == sizeof(long long)) 157 156 { 158 s printf(id_str, "%llu", id);157 snprintf(id_str, NUM_STR_BUFFER_SIZE, "%llu", id); 159 158 } 160 159 else 161 160 { 162 s printf(id_str, "%lu", id); // else use long161 snprintf(id_str, NUM_STR_BUFFER_SIZE, "%lu", id); // else use long 163 162 } 164 163 … … 166 165 167 166 PLUGIN_DEBUG("Converting pointer %p to %s\n", id, id_str); 168 free(id_str);169 167 } 170 168 … … 262 260 IcedTeaPluginUtilities::itoa(int i, std::string* result) 263 261 { 264 // largest possible integer is 10 digits long 265 char* int_str = (char*) malloc(sizeof(char)*11); 266 sprintf(int_str, "%d", i); 262 char int_str[NUM_STR_BUFFER_SIZE]; 263 snprintf(int_str, NUM_STR_BUFFER_SIZE, "%d", i); 267 264 result->append(int_str); 268 269 free(int_str);270 265 } 271 266 … … 297 292 * @param str The string to split 298 293 * @param The delimiters to split on 299 * @return A string vector containing the aplit components294 * @return A string vector containing the split components 300 295 */ 301 296 … … 307 302 char* copy; 308 303 309 // Tokeni ngis done on a copy304 // Tokenization is done on a copy 310 305 copy = (char*) malloc (sizeof(char)*strlen(str) + 1); 311 306 strcpy(copy, str); … … 318 313 // Allocation on heap since caller has no way to knowing how much will 319 314 // be needed. Make sure caller cleans up! 320 std::string* s = new std::string();321 s->append(tok_ptr);322 v->push_back(s);323 tok_ptr = strtok (NULL, " ");315 std::string* s = new std::string(); 316 s->append(tok_ptr); 317 v->push_back(s); 318 tok_ptr = strtok (NULL, delim); 324 319 } 320 free(copy); 325 321 326 322 return v; … … 376 372 ostream << length; 377 373 378 // UTF-8 characters are 4-bytes max + space + '\0' 379 char* hex_value = (char*) malloc(sizeof(char)*10); 374 char hex_value[NUM_STR_BUFFER_SIZE]; 380 375 381 376 for (int i = 0; i < str->length(); i++) 382 377 { 383 s printf(hex_value," %hx", str->at(i));378 snprintf(hex_value, NUM_STR_BUFFER_SIZE," %hx", str->at(i)); 384 379 ostream << hex_value; 385 380 } … … 388 383 *utf_str = ostream.str(); 389 384 390 free(hex_value);391 385 PLUGIN_DEBUG("Converted %s to UTF-8 string %s\n", str->c_str(), utf_str->c_str()); 392 386 } … … 673 667 else if (NPVARIANT_IS_STRING(variant)) 674 668 { 675 #if MOZILLA_VERSION_COLLAPSED < 1090200 676 PLUGIN_DEBUG("STRING: %s\n", NPVARIANT_TO_STRING(variant).utf8characters); 677 #else 678 PLUGIN_DEBUG("STRING: %s\n", NPVARIANT_TO_STRING(variant).UTF8Characters); 679 #endif 669 std::string str = IcedTeaPluginUtilities::NPVariantAsString(variant); 670 PLUGIN_DEBUG("STRING: %s (length=%d)\n", str.c_str(), str.size()); 680 671 } 681 672 else … … 688 679 IcedTeaPluginUtilities::NPVariantToString(NPVariant variant, std::string* result) 689 680 { 690 char* str = (char*) malloc(sizeof(char)*32); // enough for everything except string 691 692 if (NPVARIANT_IS_VOID(variant)) 693 { 694 sprintf(str, "%p", variant); 695 } 696 else if (NPVARIANT_IS_NULL(variant)) 697 { 698 sprintf(str, "NULL"); 699 } 700 else if (NPVARIANT_IS_BOOLEAN(variant)) 701 { 702 if (NPVARIANT_TO_BOOLEAN(variant)) 703 sprintf(str, "true"); 704 else 705 sprintf(str, "false"); 706 } 707 else if (NPVARIANT_IS_INT32(variant)) 708 { 709 sprintf(str, "%d", NPVARIANT_TO_INT32(variant)); 710 } 711 else if (NPVARIANT_IS_DOUBLE(variant)) 712 { 713 sprintf(str, "%f", NPVARIANT_TO_DOUBLE(variant));; 714 } 715 else if (NPVARIANT_IS_STRING(variant)) 716 { 717 free(str); 718 #if MOZILLA_VERSION_COLLAPSED < 1090200 719 str = (char*) malloc(sizeof(char)*NPVARIANT_TO_STRING(variant).utf8length); 720 sprintf(str, "%s", NPVARIANT_TO_STRING(variant).utf8characters); 721 #else 722 str = (char*) malloc(sizeof(char)*NPVARIANT_TO_STRING(variant).UTF8Length); 723 sprintf(str, "%s", NPVARIANT_TO_STRING(variant).UTF8Characters); 724 #endif 725 } 681 char conv_str[NUM_STR_BUFFER_SIZE]; // conversion buffer 682 bool was_string_already = false; 683 684 if (NPVARIANT_IS_STRING(variant)) 685 { 686 result->append(IcedTeaPluginUtilities::NPVariantAsString(variant)); 687 was_string_already = true; 688 } 689 else if (NPVARIANT_IS_VOID(variant)) 690 { 691 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "%p", variant); 692 } 693 else if (NPVARIANT_IS_NULL(variant)) 694 { 695 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "NULL"); 696 } 697 else if (NPVARIANT_IS_BOOLEAN(variant)) 698 { 699 if (NPVARIANT_TO_BOOLEAN(variant)) 700 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "true"); 726 701 else 727 { 728 sprintf(str, "[Object %p]", variant); 729 } 730 731 result->append(str); 732 free(str); 702 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "false"); 703 } 704 else if (NPVARIANT_IS_INT32(variant)) 705 { 706 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "%d", NPVARIANT_TO_INT32(variant)); 707 } 708 else if (NPVARIANT_IS_DOUBLE(variant)) 709 { 710 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "%f", NPVARIANT_TO_DOUBLE(variant)); 711 } 712 else 713 { 714 snprintf(conv_str, NUM_STR_BUFFER_SIZE, "[Object %p]", variant); 715 } 716 717 if (!was_string_already){ 718 result->append(conv_str); 719 } 733 720 } 734 721 … … 869 856 IcedTeaPluginUtilities::printNPVariant(constructor_str); 870 857 871 std::string constructor_name = std::string(); 872 873 #if MOZILLA_VERSION_COLLAPSED < 1090200 874 constructor_name.append(NPVARIANT_TO_STRING(constructor_str).utf8characters); 875 #else 876 constructor_name.append(NPVARIANT_TO_STRING(constructor_str).UTF8Characters); 877 #endif 858 std::string constructor_name = IcedTeaPluginUtilities::NPVariantAsString(constructor_str); 878 859 879 860 PLUGIN_DEBUG("Constructor for NPObject is %s\n", constructor_name.c_str()); … … 918 899 } 919 900 901 /* Copies a variant data type into a C++ string */ 902 std::string 903 IcedTeaPluginUtilities::NPVariantAsString(NPVariant variant) 904 { 905 #if MOZILLA_VERSION_COLLAPSED < 1090200 906 return std::string( 907 NPVARIANT_TO_STRING(variant).utf8characters, 908 NPVARIANT_TO_STRING(variant).utf8length); 909 #else 910 return std::string( 911 NPVARIANT_TO_STRING(variant).UTF8Characters, 912 NPVARIANT_TO_STRING(variant).UTF8Length); 913 #endif 914 } 920 915 921 916 /** … … 1081 1076 PLUGIN_DEBUG("Error: Unable to initialize message queue mutex: %d\n", ret); 1082 1077 1083 PLUGIN_DEBUG("Mutex s %p and %p initialized\n", &subscriber_mutex, &msg_queue_mutex);1078 PLUGIN_DEBUG("Mutexes %p and %p initialized\n", &subscriber_mutex, &msg_queue_mutex); 1084 1079 } 1085 1080 … … 1145 1140 MessageBus::post(const char* message) 1146 1141 { 1147 char* msg = (char*) malloc(sizeof(char)*strlen(message) + 1);1148 1142 bool message_consumed = false; 1149 1150 // consumer frees this memory1151 strcpy(msg, message);1152 1143 1153 1144 PLUGIN_DEBUG("Trying to lock %p...\n", &msg_queue_mutex); 1154 1145 pthread_mutex_lock(&subscriber_mutex); 1155 1146 1156 PLUGIN_DEBUG("Message %s received on bus. Notifying subscribers.\n", m sg);1147 PLUGIN_DEBUG("Message %s received on bus. Notifying subscribers.\n", message); 1157 1148 1158 1149 std::list<BusSubscriber*>::const_iterator i; 1159 1150 for( i = subscribers.begin(); i != subscribers.end() && !message_consumed; ++i ) { 1160 PLUGIN_DEBUG("Notifying subscriber %p of %s\n", *i, m sg);1161 message_consumed = ((BusSubscriber*) *i)->newMessageOnBus(m sg);1151 PLUGIN_DEBUG("Notifying subscriber %p of %s\n", *i, message); 1152 message_consumed = ((BusSubscriber*) *i)->newMessageOnBus(message); 1162 1153 } 1163 1154 … … 1165 1156 1166 1157 if (!message_consumed) 1167 PLUGIN_DEBUG("Warning: No consumer found for message %s\n", m sg);1158 PLUGIN_DEBUG("Warning: No consumer found for message %s\n", message); 1168 1159 1169 1160 PLUGIN_DEBUG("%p unlocked...\n", &msg_queue_mutex); -
trunk/icedtea-web/plugin/icedteanp/IcedTeaPluginUtils.h
r375 r418 97 97 (*c >= 'A' && *c <= 'F')) 98 98 99 //long long max ~ 19 chars + terminator 100 //leave some room for converting strings like "<var> = %d" 101 const size_t NUM_STR_BUFFER_SIZE = 32; 102 99 103 /* 100 104 * This struct holds data specific to a Java operation requested by the plugin … … 206 210 static void itoa(int i, std::string* result); 207 211 212 /* Copies a variant data type into a C++ string */ 213 static std::string NPVariantAsString(NPVariant variant); 214 208 215 /* Frees the given vector and the strings that its contents point to */ 209 216 static void freeStringPtrVector(std::vector<std::string*>* v); -
trunk/icedtea-web/plugin/icedteanp/java/netscape/javascript/JSObject.java
r348 r418 131 131 boolean mayProceed = false; 132 132 133 for ( int i = 0; i < stack.length; i++) {134 if ( stack[i].getClassName().equals("netscape.javascript.JSObject") &&135 stack[i].getMethodName().equals("getWindow")) {133 for (StackTraceElement element : stack) { 134 if (element.getClassName().equals("netscape.javascript.JSObject") && 135 element.getMethodName().equals("getWindow")) { 136 136 mayProceed = true; 137 137 } … … 210 210 211 211 PluginDebug.debug("JSObject.call ", methodName); 212 for (int i = 0; i < args.length; i++) 213 PluginDebug.debug(" ", args[i]); 212 for (Object arg : args) { 213 PluginDebug.debug(" ", arg); 214 } 214 215 PluginDebug.debug(""); 215 216 return PluginAppletViewer.call(internal, methodName, args); -
trunk/icedtea-web/plugin/icedteanp/java/sun/applet/AppletSecurityContextManager.java
r348 r418 1 /* VoidPluginCallRequest -- represent Java-to-JavaScript requests 1 /* AppletSecurityContextManager -- handles messages in an appropriate security 2 context 3 2 4 Copyright (C) 2008 Red Hat 3 5 -
trunk/icedtea-web/plugin/icedteanp/java/sun/applet/GetMemberPluginCallRequest.java
r348 r418 51 51 // FIXME: Is it even possible to distinguish between null and void 52 52 // here? 53 if ( args[3] != "null" && args[3] != "void")53 if (!"null".equals(args[3]) && !"void".equals(args[3])) 54 54 object = AppletSecurityContextManager.getSecurityContext(0).getObject(Integer.parseInt(args[3])); 55 55 setDone(true); -
trunk/icedtea-web/plugin/icedteanp/java/sun/applet/JavaConsole.java
r348 r418 66 66 import net.sourceforge.jnlp.config.DeploymentConfiguration; 67 67 import net.sourceforge.jnlp.runtime.JNLPRuntime; 68 import net.sourceforge.jnlp.util.ImageResources; 68 69 69 70 /** … … 93 94 94 95 consoleWindow = new JFrame("Java Console"); 96 consoleWindow.setIconImages(ImageResources.INSTANCE.getApplicationImages()); 95 97 96 98 JPanel contentPanel = new JPanel(); … … 307 309 boolean toShowConsole = false; 308 310 309 for ( int i = 0; i < args.length; i++) {310 if ( args[i] == "--show-console") {311 for (String arg : args) { 312 if ("--show-console".equals(arg)) { 311 313 toShowConsole = true; 312 314 } -
trunk/icedtea-web/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java
r348 r418 244 244 if (System.getSecurityManager() == null) { 245 245 JNLPRuntime.initialize(/* isApplication */false); 246 JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler( ));246 JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler(System.err)); 247 247 } 248 248 … … 1296 1296 Permissions grantedPermissions = new Permissions(); 1297 1297 1298 for (int i = 0; i < nsPrivilegeList.length; i++) { 1299 String privilege = nsPrivilegeList[i]; 1300 1298 for (String privilege : nsPrivilegeList) { 1301 1299 if (privilege.equals("UniversalBrowserRead")) { 1302 1300 BrowserReadPermission bp = new BrowserReadPermission(); -
trunk/icedtea-web/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java
r362 r418 123 123 124 124 public AppletPanel createPanel(PluginStreamHandler streamhandler, 125 int identifier,126 long handle, int x, int y,127 final URL doc,128 final Hashtable<String, String> atts) {125 final int identifier, 126 final long handle, int x, int y, 127 final URL doc, 128 final Hashtable<String, String> atts) { 129 129 final NetxPanel panel = AccessController.doPrivileged(new PrivilegedAction<NetxPanel>() { 130 130 public NetxPanel run() { … … 136 136 }); 137 137 138 // create the frame. 139 PluginAppletViewer.framePanel(identifier, handle, panel); 140 141 panel.init(); 142 143 // Start the applet 144 initEventQueue(panel); 138 // Framing the panel needs to happen in a thread whose thread group 139 // is the same as the threadgroup of the applet thread. If this 140 // isn't the case, the awt eventqueue thread's context classloader 141 // won't be set to a JNLPClassLoader, and when an applet class needs 142 // to be loaded from the awt eventqueue, it won't be found. 143 Thread panelInit = new Thread(panel.getThreadGroup(), new Runnable() { 144 @Override public void run() { 145 panel.createNewAppContext(); 146 // create the frame. 147 PluginAppletViewer.framePanel(identifier, handle, panel); 148 panel.init(); 149 // Start the applet 150 initEventQueue(panel); 151 } 152 }, "NetXPanel initializer"); 153 154 panelInit.start(); 155 while(panelInit.isAlive()) { 156 try { 157 panelInit.join(); 158 } catch (InterruptedException e) { 159 } 160 } 145 161 146 162 // Wait for the panel to initialize … … 221 237 String[] events = eventList.split(","); 222 238 223 for ( int i = 0; i < events.length; i++) {224 PluginDebug.debug("Adding event to queue: ", event s[i]);225 if ( events[i].equals("dispose"))239 for (String event : events) { 240 PluginDebug.debug("Adding event to queue: ", event); 241 if ("dispose".equals(event)) 226 242 panel.sendEvent(AppletPanel.APPLET_DISPOSE); 227 else if ( events[i].equals("load"))243 else if ("load".equals(event)) 228 244 panel.sendEvent(AppletPanel.APPLET_LOAD); 229 else if ( events[i].equals("init"))245 else if ("init".equals(event)) 230 246 panel.sendEvent(AppletPanel.APPLET_INIT); 231 else if ( events[i].equals("start"))247 else if ("start".equals(event)) 232 248 panel.sendEvent(AppletPanel.APPLET_START); 233 else if ( events[i].equals("stop"))249 else if ("stop".equals(event)) 234 250 panel.sendEvent(AppletPanel.APPLET_STOP); 235 else if ( events[i].equals("destroy"))251 else if ("destroy".equals(event)) 236 252 panel.sendEvent(AppletPanel.APPLET_DESTROY); 237 else if ( events[i].equals("quit"))253 else if ("quit".equals(event)) 238 254 panel.sendEvent(AppletPanel.APPLET_QUIT); 239 else if ( events[i].equals("error"))255 else if ("error".equals(event)) 240 256 panel.sendEvent(AppletPanel.APPLET_ERROR); 241 257 else 242 258 // non-fatal error if we get an unrecognized event 243 PluginDebug.debug("Unrecognized event name: ", event s[i]);259 PluginDebug.debug("Unrecognized event name: ", event); 244 260 } 245 261 … … 1609 1625 appletShutdown(p); 1610 1626 appletPanels.removeElement(p); 1627 1628 // Mark classloader unusable 1629 ((JNLPClassLoader) cl).decrementLoaderUseCount(); 1611 1630 1612 1631 try { … … 1904 1923 String att = t.get("name"); 1905 1924 1906 if (atts.containsKey(att))1907 continue;1908 1909 1925 if (att == null) { 1910 1926 statusMsgStream.println(requiresNameWarning); -
trunk/icedtea-web/plugin/icedteanp/java/sun/applet/PluginCallRequest.java
r348 r418 38 38 package sun.applet; 39 39 40 // FIXME: for each type of request extend a new (anonymous?)41 // PluginCallRequest.42 40 public abstract class PluginCallRequest { 43 41 private String message; -
trunk/icedtea-web/plugin/icedteanp/java/sun/applet/PluginCallRequestFactory.java
r348 r418 1 /* VoidPluginCallRequest -- represent Java-to-JavaScript requests 1 /* PluginCallRequestFactory -- contains factory methods for dispatching 2 an appropriate PluginCallRequest. 2 3 Copyright (C) 2008 Red Hat 3 4 … … 42 43 public PluginCallRequest getPluginCallRequest(String id, String message, Long reference) { 43 44 44 if ( id == "member") {45 if ("member".equals(id)) { 45 46 return new GetMemberPluginCallRequest(message, reference); 46 } else if ( id == "void") {47 } else if ("void".equals(id)) { 47 48 return new VoidPluginCallRequest(message, reference); 48 } else if ( id == "window") {49 } else if ("window".equals(id)) { 49 50 return new GetWindowPluginCallRequest(message, reference); 50 } else if ( id == "proxyinfo") {51 } else if ("proxyinfo".equals(id)) { 51 52 return new PluginProxyInfoRequest(message, reference); 52 } else if ( id == "cookieinfo") {53 } else if ("cookieinfo".equals(id)) { 53 54 return new PluginCookieInfoRequest(message, reference); 54 55 } else { -
trunk/icedtea-web/plugin/icedteanp/java/sun/applet/PluginCookieManager.java
r348 r418 46 46 import java.util.Map; 47 47 48 import com.sun.jndi.toolkit.url.UrlUtil; 49 48 50 public class PluginCookieManager extends CookieManager { 51 private PluginStreamHandler streamHandler; 52 53 public PluginCookieManager(PluginStreamHandler streamHandler) { 54 this.streamHandler = streamHandler; 55 } 56 57 @Override 49 58 public Map<String, List<String>> get(URI uri, 50 59 Map<String, List<String>> requestHeaders) throws IOException { … … 85 94 return false; 86 95 } 96 97 @Override 98 public void put(URI uri, 99 Map<String, List<String>> responseHeaders) throws IOException { 100 super.put(uri, responseHeaders); 101 102 for (Map.Entry<String, List<String>> headerEntry : responseHeaders.entrySet()) { 103 String type = headerEntry.getKey(); 104 if ("Set-Cookie".equalsIgnoreCase(type) || "Set-Cookie2".equalsIgnoreCase(type)) { 105 List<String> cookies = headerEntry.getValue(); 106 for (String cookie : cookies) { 107 streamHandler.write("plugin PluginSetCookie reference -1 " + UrlUtil.encode(uri.toString(), "UTF-8") + " " + cookie); 108 } 109 } 110 111 } 112 } 87 113 } -
trunk/icedtea-web/plugin/icedteanp/java/sun/applet/PluginException.java
r348 r418 1 /* VoidPluginCallRequest -- represent Java-to-JavaScript requests1 /* PluginException -- represents an exception in handling a plugin message 2 2 Copyright (C) 2008 Red Hat 3 3 -
trunk/icedtea-web/plugin/icedteanp/java/sun/applet/PluginMain.java
r368 r418 115 115 // Streams set. Start processing. 116 116 streamHandler.startProcessing(); 117 118 setCookieHandler(streamHandler); 119 117 120 } catch (Exception e) { 118 121 e.printStackTrace(); … … 185 188 // override the proxy selector set by JNLPRuntime 186 189 ProxySelector.setDefault(new PluginProxySelector()); 190 } 187 191 188 CookieManager ckManager = new PluginCookieManager(); 192 private static void setCookieHandler(PluginStreamHandler streamHandler) { 193 CookieManager ckManager = new PluginCookieManager(streamHandler); 189 194 CookieHandler.setDefault(ckManager); 190 195 } -
trunk/icedtea-web/plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java
r348 r418 1 /* VoidPluginCallRequest -- represent Java-to-JavaScript requests1 /* PluginMessageHandlerWorker -- worker thread for handling messages 2 2 Copyright (C) 2008 Red Hat 3 3 -
trunk/icedtea-web/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java
r348 r418 60 60 61 61 private PluginMessageConsumer consumer; 62 private Boolean shuttingDown = false;62 private volatile boolean shuttingDown = false; 63 63 64 64 … … 323 323 324 324 if (message == null || message.equals("shutdown")) { 325 synchronized (shuttingDown) { 326 shuttingDown = true; 327 } 325 shuttingDown = true; 328 326 try { 329 327 // Close input/output channels to plugin. … … 363 361 // if we are shutting down, ignore write failures as 364 362 // pipe may have closed 365 synchronized (shuttingDown) { 366 if (!shuttingDown) { 367 e.printStackTrace(); 368 } 363 if (!shuttingDown) { 364 e.printStackTrace(); 369 365 } 370 366 -
trunk/icedtea-web/tests/junit-runner/CommandLine.java
r348 r418 8 8 */ 9 9 10 import java.io.File; 10 11 import java.util.ArrayList; 11 12 import java.util.List; … … 35 36 for (String each : args) { 36 37 try { 38 if (each.contains("$")) continue; 39 if (each.toLowerCase().endsWith(".jnlp")) continue; 37 40 classes.add(Class.forName(each)); 38 41 } catch (ClassNotFoundException e) { … … 40 43 } 41 44 } 45 RunListener jXmlOutput = new JunitLikeXmlOutputListener(system, new File("tests-output.xml")); 46 addListener(jXmlOutput); 42 47 RunListener listener = new LessVerboseTextListener(system); 43 48 addListener(listener); -
trunk/icedtea-web/tests/junit-runner/LessVerboseTextListener.java
r348 r418 7 7 */ 8 8 import java.io.PrintStream; 9 import java.lang.reflect.Method; 10 import net.sourceforge.jnlp.annotations.KnownToFail; 9 11 10 12 import org.junit.internal.JUnitSystem; … … 18 20 private PrintStream writer; 19 21 private boolean testFailed = false; 22 private int totalK2F=0; 23 private int failedK2F=0; 24 private int passedK2F=0; 25 private int ignoredK2F=0; 20 26 21 27 public LessVerboseTextListener(JUnitSystem system) { … … 29 35 30 36 @Override 37 public void testIgnored(Description description) throws Exception { 38 writer.println("Ignored: " + description.getClassName() + "." + description.getMethodName()); 39 printK2F(writer, null, description); 40 } 41 42 43 @Override 31 44 public void testFailure(Failure failure) { 32 45 testFailed = true; 33 46 writer.println("FAILED: " + failure.getTestHeader() + " " + failure.getMessage()); 47 printK2F(writer,true,failure.getDescription()); 34 48 } 35 49 … … 38 52 if (!testFailed) { 39 53 writer.println("Passed: " + description.getClassName() + "." + description.getMethodName()); 54 printK2F(writer,false,description); 40 55 } 41 56 } … … 46 61 int failed = result.getFailureCount(); 47 62 int ignored = result.getIgnoreCount(); 63 writer.println("Total tests run: "+result.getRunCount()+"; From those : " + totalK2F + " known to fail"); 64 writer.println("Test known to fail: passed: " + passedK2F + "; failed: " + failedK2F + "; ignored: " + ignoredK2F); 48 65 writer.println("Test results: passed: " + passed + "; failed: " + failed + "; ignored: " + ignored); 66 67 } 68 69 private void printK2F(PrintStream writer, Boolean failed, Description description) { 70 try { 71 KnownToFail k2f = getK2F(description); 72 if (k2f != null) { 73 totalK2F++; 74 if (failed != null) { 75 if (failed) { 76 failedK2F++; 77 } else { 78 passedK2F++; 79 } 80 } else { 81 ignoredK2F++; 82 } 83 if (failed != null && !failed) { 84 writer.println(" - WARNING This test is known to fail, but have passed!"); 85 } else { 86 writer.println(" - This test is known to fail"); 87 } 88 } 89 90 91 } catch (Exception ex) { 92 ex.printStackTrace(); 93 } 94 } 95 96 public static KnownToFail getK2F(Description description) { 97 try { 98 Class q = description.getTestClass(); 99 if (q != null) { 100 String qs = description.getMethodName(); 101 if (qs.contains(" - ")) { 102 qs = qs.replaceAll(" - .*", ""); 103 } 104 Method qm = q.getMethod(qs); 105 if (qm != null) { 106 KnownToFail k2f = qm.getAnnotation(KnownToFail.class); 107 return k2f; 108 109 } 110 } 111 } catch (Exception ex) { 112 ex.printStackTrace(); 113 } 114 return null; 49 115 } 50 116 -
trunk/icedtea-web/tests/netx/pac/pac-funcs-test.js
r348 r418 22 22 testDnsDomainLevels(); 23 23 testShExpMatch(); 24 testWeekdayRange();25 24 testDateRange(); 26 25 testTimeRange(); 26 testWeekdayRange(); 27 testDateRange2(); 28 testDateRange3(); 27 29 28 30 java.lang.System.out.println("Test results: passed: " + testsPassed + "; failed: " + testsFailed + ";"); … … 30 32 31 33 function runTests(name, tests) { 32 33 34 var undefined_var; 34 35 35 for ( var i = 0; i < tests.length; i++) { 36 37 var expectedVal = tests[i][0]; 38 var args = tests[i].slice(1); 39 var returnVal; 40 try { 41 returnVal = name.apply(null, args); 42 } catch (e) { 43 returnVal = e; 44 } 45 if (returnVal === expectedVal) { 46 java.lang.System.out.println("Passed: " + name.name + "(" + args.join(", ") + ")"); 47 testsPassed++; 48 } else { 49 java.lang.System.out.println("FAILED: " + name.name + "(" + args.join(", ") + ")"); 50 java.lang.System.out.println(" Expected '" + expectedVal + "' but got '" + returnVal + "'"); 51 testsFailed++; 52 } 36 runTest(name, tests[i]); 53 37 } 54 38 } 39 40 function runTest(name, test) { 41 var expectedVal = test[0]; 42 var args = test.slice(1); 43 var returnVal; 44 try { 45 returnVal = name.apply(null, args); 46 } catch (e) { 47 returnVal = e; 48 } 49 if (returnVal === expectedVal) { 50 java.lang.System.out.println("Passed: " + name.name + "(" + args.join(", ") + ")"); 51 testsPassed++; 52 } else { 53 java.lang.System.out.println("FAILED: " + name.name + "(" + args.join(", ") + ")"); 54 java.lang.System.out.println(" Expected '" + expectedVal + "' but got '" + returnVal + "'"); 55 testsFailed++; 56 } 57 } 58 55 59 56 60 function testIsPlainHostName() { … … 236 240 [ false, dayToStr(day-1) ], 237 241 ]; 242 243 runTests(weekdayRange, tests); 244 } 245 246 /** Returns an array: [day, month, year] */ 247 function incDate() { 248 if ((arguments.length >= 3) && (arguments.length % 2 === 1)) { 249 var date = arguments[0]; 250 var result = date; 251 var index = 1; 252 while (index < arguments.length) { 253 var whichThing = arguments[index]; 254 var by = arguments[index+1]; 255 switch (whichThing) { 256 case 'year': 257 result = new Date(result.getFullYear()+by, result.getMonth(), result.getDate()); 258 break; 259 case 'month': 260 result = new Date(result.getFullYear(), result.getMonth()+by, result.getDate()); 261 break; 262 case 'day': 263 result = new Date(result.getFullYear(), result.getMonth(), result.getDate()+by); 264 break; 265 } 266 index += 2; 267 } 268 return [result.getDate(), result.getMonth(), result.getFullYear()]; 269 } 270 throw "Please call incDate properly"; 271 } 272 273 function monthToStr(month) { 274 switch (month) { 275 case -1: return "DEC"; 276 case 0: return "JAN"; 277 case 1: return "FEB"; 278 case 2: return "MAR"; 279 case 3: return "APR"; 280 case 4: return "MAY"; 281 case 5: return "JUN"; 282 case 6: return "JUL"; 283 case 7: return "AUG"; 284 case 8: return "SEP"; 285 case 9: return "OCT"; 286 case 10: return "NOV"; 287 case 11: return "DEC"; 288 case 12: return "JAN"; 289 default: throw "Invalid Month" + month; 290 } 238 291 } 239 292 240 293 function testDateRange() { 241 294 242 function incDate(date) { 243 return (date + 1 - 1) % 31 +1 ; 244 } 245 246 function decDate(date) { 247 return (date - 1 - 1 + 31) % 31 + 1; 248 } 249 250 function monthToStr(month) { 251 switch (month) { 252 case -1: return "DEC"; 253 case 0: return "JAN"; 254 case 1: return "FEB"; 255 case 2: return "MAR"; 256 case 3: return "APR"; 257 case 4: return "MAY"; 258 case 5: return "JUN"; 259 case 6: return "JUL"; 260 case 7: return "AUG"; 261 case 8: return "SEP"; 262 case 9: return "OCT"; 263 case 10: return "NOV"; 264 case 11: return "DEC"; 265 case 12: return "JAN"; 266 default: throw "Invalid Month"; 267 } 268 } 269 270 var today = new Date(); 271 var date = today.getDate(); 272 var month = today.getMonth(); 273 var year = today.getYear(); 274 275 var tests = [ 276 [ true, date ], 277 [ false, incDate(date) ], 278 [ false, decDate(date) ], 279 280 [ true, monthToStr(month) ], 281 [ false, monthToStr(month+1) ], 282 [ false, monthToStr(month-1) ], 283 284 [ true, year ], 285 [ false, year - 1], 286 [ false, year + 1], 287 288 [ true, date, date ], 289 [ true, date, incDate(date) ], 290 [ true, decDate(date), date ], 291 [ true, decDate(date), incDate(date) ], 292 [ false, incDate(date), decDate(date) ], 293 [ false, decDate(decDate(date)), decDate(date) ], 294 [ false, incDate(date), incDate(incDate(date)) ], 295 296 [ true, monthToStr(month), monthToStr(month) ], 297 [ true, monthToStr(month), monthToStr(month+1) ], 298 [ true, monthToStr(month-1), monthToStr(month) ], 299 [ true, monthToStr(month-1), monthToStr(month+1) ], 300 [ true, "JAN", "DEC" ], 301 [ true, "DEC", "NOV" ], 302 [ true, "JUL", "JUN"], 303 [ false, monthToStr(month+1), monthToStr(month+1) ], 304 [ false, monthToStr(month-1), monthToStr(month-1) ], 305 [ false, monthToStr(month+1), monthToStr(month-1) ], 306 307 [ true, year, year ], 308 [ true, year, year+1 ], 309 [ true, year-1, year ], 310 [ true, year-1, year+1 ], 311 [ false, year-2, year-1 ], 312 [ false, year+1, year+1 ], 313 [ false, year+1, year+2 ], 314 [ false, year+1, year-1 ], 315 316 [ true, date, monthToStr(month) , date, monthToStr(month) ], 317 [ true, decDate(date), monthToStr(month) , date, monthToStr(month) ], 318 [ false, decDate(date), monthToStr(month) , decDate(date), monthToStr(month) ], 319 [ true, date, monthToStr(month) , incDate(date), monthToStr(month) ], 320 [ false, incDate(date), monthToStr(month) , incDate(date), monthToStr(month) ], 321 [ true, decDate(date), monthToStr(month) , incDate(date), monthToStr(month) ], 322 [ false, incDate(date), monthToStr(month) , decDate(date), monthToStr(month) ], 323 [ true, date, monthToStr(month-1) , date, monthToStr(month) ], 324 [ true, date, monthToStr(month) , date, monthToStr(month+1) ], 325 [ true, date, monthToStr(month-1) , date, monthToStr(month+1) ], 326 [ true, incDate(date), monthToStr(month-1) , date, monthToStr(month+1) ], 327 [ true, date, monthToStr(month-1) , decDate(date), monthToStr(month+1) ], 328 [ false, date, monthToStr(month+1) , date, monthToStr(month-1) ], 329 [ false, incDate(date), monthToStr(month+1) , incDate(date), monthToStr(month-1) ], 330 [ false, decDate(date), monthToStr(month+1) , decDate(date), monthToStr(month-1) ], 331 [ true, 1, "JAN", 31, "DEC" ], 332 [ true, 2, "JAN", 1, "JAN" ], 333 [ false, 1, monthToStr(month+1), 31, monthToStr(month+1) ], 334 [ false, 1, monthToStr(month-1), 31, monthToStr(month-1) ], 335 336 [ true, monthToStr(month), year, monthToStr(month), year ], 337 [ true, monthToStr(month-1), year, monthToStr(month), year ], 338 [ true, monthToStr(month), year, monthToStr(month+1), year ], 339 [ true, monthToStr(month-1), year, monthToStr(month+1), year ], 340 [ true, monthToStr(0), year, monthToStr(11), year ], 341 [ false, monthToStr(month+1), year, monthToStr(month-1), year ], 342 [ false, monthToStr(month+1), year, monthToStr(month+1), year ], 343 [ false, monthToStr(month-1), year, monthToStr(month-1), year ], 344 [ false, monthToStr(month), year-1, monthToStr(month-1), year ], 345 [ true, monthToStr(month), year, monthToStr(month), year + 1 ], 346 [ true, monthToStr(month), year-1, monthToStr(month), year ], 347 [ true, monthToStr(month), year-1, monthToStr(month), year+1 ], 348 [ true, monthToStr(0), year, monthToStr(0), year+1 ], 349 [ true, monthToStr(0), year-1, monthToStr(0), year+1 ], 350 [ false, monthToStr(0), year-1, monthToStr(11), year-1 ], 351 [ false, monthToStr(0), year+1, monthToStr(11), year+1 ], 352 353 [ true, date, monthToStr(month), year, date, monthToStr(month), year ], 354 [ true, decDate(date), monthToStr(month), year, incDate(date), monthToStr(month), year ], 355 [ true, decDate(date), monthToStr(month-1), year, incDate(date), monthToStr(month+1), year ], 356 [ true, decDate(date), monthToStr(month-1), year-1, incDate(date), monthToStr(month+1), year+1 ], 357 [ true, incDate(date), monthToStr(month-1), year-1, incDate(date), monthToStr(month+1), year+1 ], 358 [ false, incDate(date), monthToStr(month), year, incDate(date), monthToStr(month+1), year+1 ], 359 [ false, date, monthToStr(month+1), year, incDate(date), monthToStr(month+1), year+1 ], 360 [ true, 1, monthToStr(0), 0, 31, monthToStr(11), 100000 ], 361 [ true, 1, monthToStr(0), year, 31, monthToStr(11), year ], 362 [ true, 1, monthToStr(0), year-1, 31, monthToStr(11), year+1 ], 363 [ false, 1, monthToStr(0), year-1, 31, monthToStr(11), year-1 ], 364 [ false, 1, monthToStr(0), year+1, 31, monthToStr(11), year+1 ], 365 366 ]; 367 368 runTests(dateRange, tests); 369 295 { 296 var current = new Date(); 297 var date = current.getDate(); 298 var month = current.getMonth(); 299 var year = current.getFullYear(); 300 301 var today = incDate(current, 'day', 0); 302 var tomorrow = incDate(current, 'day', 1); 303 var yesterday = incDate(current, 'day', -1); 304 305 runTest(dateRange, [ true, date ]); 306 runTest(dateRange, [ false, tomorrow[0] ]); 307 runTest(dateRange, [ false, yesterday[0] ]); 308 309 runTest(dateRange, [ true, monthToStr(month) ]); 310 runTest(dateRange, [ false, monthToStr(month+1) ]); 311 runTest(dateRange, [ false, monthToStr(month-1) ]); 312 313 runTest(dateRange, [ true, year ]); 314 runTest(dateRange, [ false, year - 1]); 315 runTest(dateRange, [ false, year + 1]); 316 317 runTest(dateRange, [ true, date, date ]); 318 runTest(dateRange, [ true, today[0], tomorrow[0] ]); 319 runTest(dateRange, [ true, yesterday[0], today[0] ]); 320 runTest(dateRange, [ true, yesterday[0], tomorrow[0] ]); 321 runTest(dateRange, [ false, tomorrow[0], yesterday[0] ]); 322 runTest(dateRange, [ false, incDate(current,'day',-2)[0], yesterday[0] ]); 323 runTest(dateRange, [ false, tomorrow[0], incDate(current,'day',2)[0] ]); 324 325 runTest(dateRange, [ true, monthToStr(month), monthToStr(month) ]); 326 runTest(dateRange, [ true, monthToStr(month), monthToStr(month+1) ]); 327 runTest(dateRange, [ true, monthToStr(month-1), monthToStr(month) ]); 328 runTest(dateRange, [ true, monthToStr(month-1), monthToStr(month+1) ]); 329 runTest(dateRange, [ true, "JAN", "DEC" ]); 330 runTest(dateRange, [ true, "FEB", "JAN" ]); 331 runTest(dateRange, [ true, "DEC", "NOV" ]); 332 runTest(dateRange, [ true, "JUL", "JUN"]); 333 runTest(dateRange, [ false, monthToStr(month+1), monthToStr(month+1) ]); 334 runTest(dateRange, [ false, monthToStr(month-1), monthToStr(month-1) ]); 335 runTest(dateRange, [ false, monthToStr(month+1), monthToStr(month-1) ]); 336 337 runTest(dateRange, [ true, year, year ]); 338 runTest(dateRange, [ true, year, year+1 ]); 339 runTest(dateRange, [ true, year-1, year ]); 340 runTest(dateRange, [ true, year-1, year+1 ]); 341 runTest(dateRange, [ false, year-2, year-1 ]); 342 runTest(dateRange, [ false, year+1, year+1 ]); 343 runTest(dateRange, [ false, year+1, year+2 ]); 344 runTest(dateRange, [ false, year+1, year-1 ]); 345 346 runTest(dateRange, [ true, date, monthToStr(month) , date, monthToStr(month) ]); 347 runTest(dateRange, [ true, yesterday[0], monthToStr(yesterday[1]) , date, monthToStr(month) ]); 348 runTest(dateRange, [ false, yesterday[0], monthToStr(yesterday[1]) , yesterday[0], monthToStr(yesterday[1]) ]); 349 runTest(dateRange, [ true, date, monthToStr(month) , tomorrow[0], monthToStr(tomorrow[1]) ]); 350 runTest(dateRange, [ false, tomorrow[0], monthToStr(tomorrow[1]) , tomorrow[0], monthToStr(tomorrow[1]) ]); 351 runTest(dateRange, [ true, yesterday[0], monthToStr(yesterday[1]) , tomorrow[0], monthToStr(tomorrow[1]) ]); 352 runTest(dateRange, [ false, tomorrow[0], monthToStr(tomorrow[1]) , yesterday[0], monthToStr(yesterday[1]) ]); 353 } 354 355 { 356 var lastMonth = incDate(new Date(), 'month', -1); 357 var thisMonth = incDate(new Date(), 'month', 0); 358 var nextMonth = incDate(new Date(), 'month', +1); 359 runTest(dateRange, [ true, lastMonth[0], monthToStr(lastMonth[1]) , thisMonth[0], monthToStr(thisMonth[1]) ]); 360 runTest(dateRange, [ true, thisMonth[0], monthToStr(thisMonth[1]) , nextMonth[0], monthToStr(nextMonth[1]) ]); 361 runTest(dateRange, [ true, lastMonth[0], monthToStr(lastMonth[1]) , nextMonth[0], monthToStr(nextMonth[1]) ]); 362 var date1 = incDate(new Date(), 'day', +1, 'month', -1); 363 var date2 = incDate(new Date(), 'day', -1, 'month', +1); 364 runTest(dateRange, [ true, date1[0], monthToStr(date1[1]) , nextMonth[0], monthToStr(nextMonth[1]) ]); 365 runTest(dateRange, [ true, lastMonth[0], monthToStr(lastMonth[1]) , date2[0], monthToStr(date2[1]) ]); 366 runTest(dateRange, [ false, nextMonth[0], monthToStr(nextMonth[1]) , lastMonth[0], monthToStr(lastMonth[1]) ]); 367 var date3 = incDate(new Date(), 'day', +1, 'month', +1); 368 var date4 = incDate(new Date(), 'day', +1, 'month', -1); 369 runTest(dateRange, [ false, date3[0], monthToStr(date3[1]) , date4[0], monthToStr(date4[1]) ]); 370 371 var date5 = incDate(new Date(), 'day', -1, 'month', -1); 372 runTest(dateRange, [ false, date2[0], monthToStr(date2[1]) , date5[0], monthToStr(date5[1]) ]); 373 374 runTest(dateRange, [ true, 1, "JAN", 31, "DEC" ]); 375 runTest(dateRange, [ true, 2, "JAN", 1, "JAN" ]); 376 377 var month = new Date().getMonth(); 378 runTest(dateRange, [ false, 1, monthToStr(month+1), 31, monthToStr(month+1) ]); 379 runTest(dateRange, [ false, 1, monthToStr(month-1), 31, monthToStr(month-1) ]); 380 } 381 382 383 { 384 var lastMonth = incDate(new Date(), 'month', -1); 385 var thisMonth = incDate(new Date(), 'month', 0); 386 var nextMonth = incDate(new Date(), 'month', +1); 387 runTest(dateRange, [ true, monthToStr(thisMonth[1]), thisMonth[2], monthToStr(thisMonth[1]), thisMonth[2] ]); 388 runTest(dateRange, [ true, monthToStr(lastMonth[1]), lastMonth[2], monthToStr(thisMonth[1]), thisMonth[2] ]); 389 runTest(dateRange, [ true, monthToStr(thisMonth[1]), thisMonth[2], monthToStr(nextMonth[1]), nextMonth[2] ]); 390 runTest(dateRange, [ true, monthToStr(lastMonth[1]), lastMonth[2], monthToStr(nextMonth[1]), nextMonth[2] ]); 391 runTest(dateRange, [ true, monthToStr(0), year, monthToStr(11), year ]); 392 393 runTest(dateRange, [ false, monthToStr(nextMonth[1]), nextMonth[2], monthToStr(lastMonth[1]), lastMonth[2] ]); 394 runTest(dateRange, [ false, monthToStr(nextMonth[1]), nextMonth[2], monthToStr(nextMonth[1]), nextMonth[2] ]); 395 runTest(dateRange, [ false, monthToStr(lastMonth[1]), lastMonth[2], monthToStr(lastMonth[1]), lastMonth[2] ]); 396 397 var lastYear = incDate(new Date(), 'year', -1); 398 var nextYear = incDate(new Date(), 'year', +1); 399 400 runTest(dateRange, [ false, monthToStr(lastYear[1]), lastYear[2], monthToStr(lastMonth[1]), lastMonth[2] ]); 401 runTest(dateRange, [ true, monthToStr(thisMonth[1]), thisMonth[2], monthToStr(nextYear[1]), nextYear[2] ]); 402 403 var year = new Date().getFullYear(); 404 var month = new Date().getMonth(); 405 406 runTest(dateRange, [ true, monthToStr(month), year-1, monthToStr(month), year ]); 407 runTest(dateRange, [ true, monthToStr(month), year-1, monthToStr(month), year+1 ]); 408 runTest(dateRange, [ true, monthToStr(0), year, monthToStr(0), year+1 ]); 409 runTest(dateRange, [ true, monthToStr(0), year-1, monthToStr(0), year+1 ]); 410 runTest(dateRange, [ false, monthToStr(0), year-1, monthToStr(11), year-1 ]); 411 runTest(dateRange, [ false, monthToStr(0), year+1, monthToStr(11), year+1 ]); 412 } 413 414 { 415 var today = incDate(new Date(), 'day', 0); 416 var yesterday = incDate(new Date(), 'day', -1); 417 var tomorrow = incDate(new Date(), 'day', +1); 418 runTest(dateRange, [ true, 419 today[0], monthToStr(today[1]), today[2], today[0], monthToStr(today[1]), today[2] ]); 420 runTest(dateRange, [ true, 421 yesterday[0], monthToStr(yesterday[1]), yesterday[2], tomorrow[0], monthToStr(tomorrow[1]), tomorrow[2] ]); 422 } 423 424 { 425 var dayLastMonth = incDate(new Date(), 'day', -1, 'month', -1); 426 var dayNextMonth = incDate(new Date(), 'day', +1, 'month', +1); 427 runTest(dateRange, [ true, 428 dayLastMonth[0], monthToStr(dayLastMonth[1]), dayLastMonth[2], dayNextMonth[0], monthToStr(dayNextMonth[1]), dayNextMonth[2] ]); 429 } 430 431 { 432 var dayLastYear = incDate(new Date(), 'day', -1, 'month', -1, 'year', -1); 433 var dayNextYear = incDate(new Date(), 'day', +1, 'month', +1, 'year', +1); 434 runTest(dateRange, [ true, 435 dayLastYear[0], monthToStr(dayLastYear[1]), dayLastYear[2], dayNextYear[0], monthToStr(dayNextYear[1]), dayNextYear[2] ]); 436 } 437 438 { 439 var dayLastYear = incDate(new Date(), 'day', +1, 'month', -1, 'year', -1); 440 var dayNextYear = incDate(new Date(), 'day', +1, 'month', +1, 'year', +1); 441 runTest(dateRange, [ true, 442 dayLastYear[0], monthToStr(dayLastYear[1]), dayLastYear[2], dayNextYear[0], monthToStr(dayNextYear[1]), dayNextYear[2] ]); 443 } 444 445 { 446 var tomorrow = incDate(new Date(), 'day', +1); 447 var dayNextYear = incDate(new Date(), 'day', +1, 'month', +1, 'year', +1); 448 runTest(dateRange, [ false, 449 tomorrow[0], monthToStr(tomorrow[1]), tomorrow[2], dayNextYear[0], monthToStr(dayNextYear[1]), dayNextYear[2] ]); 450 451 } 452 453 { 454 var nextMonth = incDate(new Date(), 'month', +1); 455 var nextYear = incDate(new Date(), 'day', +1, 'month', +1, 'year', +1); 456 runTest(dateRange, [ false, 457 nextMonth[0], monthToStr(nextMonth[1]), nextMonth[2], nextYear[0], monthToStr(nextYear[1]), nextYear[2] ]); 458 } 459 460 { 461 runTest(dateRange, [ true, 1, monthToStr(0), 0, 31, monthToStr(11), 100000 ]); 462 runTest(dateRange, [ true, 1, monthToStr(0), year, 31, monthToStr(11), year ]); 463 runTest(dateRange, [ true, 1, monthToStr(0), year-1, 31, monthToStr(11), year+1 ]); 464 runTest(dateRange, [ false, 1, monthToStr(0), year-1, 31, monthToStr(11), year-1 ]); 465 runTest(dateRange, [ false, 1, monthToStr(0), year+1, 31, monthToStr(11), year+1 ]); 466 } 467 468 } 469 470 function testDateRange2() { 471 472 var dates = [ 473 new Date("January 31, 2011 3:33:33"), 474 new Date("February 28, 2011 3:33:33"), 475 new Date("February 29, 2012 3:33:33"), 476 new Date("March 31, 2011 3:33:33"), 477 new Date("April 30, 2011 3:33:33"), 478 new Date("May 31, 2011 3:33:33"), 479 new Date("June 30, 2011 3:33:33"), 480 new Date("July 31, 2011 3:33:33"), 481 new Date("August 31, 2011 3:33:33"), 482 new Date("September 30, 2011 3:33:33"), 483 new Date("October 31, 2011 3:33:33"), 484 new Date("November 30, 2011 3:33:33"), 485 new Date("December 31, 2011 3:33:33"), 486 ] 487 for (var i = 0; i < dates.length; i++) { 488 var current = dates[i]; 489 var today = incDate(current, 'day', 0); 490 var yesterday = incDate(current, 'day', -1); 491 var tomorrow = incDate(current, 'day', 1); 492 var aYearFromNow = new Date(current.getFullYear()+1, current.getMonth()+1, current.getDate()+1); 493 var later = [aYearFromNow.getDate(), aYearFromNow.getMonth(), aYearFromNow.getFullYear()]; 494 495 runTest(isDateInRange_internallForIcedTeaWebTesting, [ true, current, 496 today[0], monthToStr(today[1]) , tomorrow[0], monthToStr(tomorrow[1]) ]); 497 runTest(isDateInRange_internallForIcedTeaWebTesting, [ true, current, 498 yesterday[0], monthToStr(yesterday[1]) , tomorrow[0], monthToStr(tomorrow[1]) ]); 499 runTest(isDateInRange_internallForIcedTeaWebTesting, [ true, current, 500 yesterday[0], monthToStr(yesterday[1]), yesterday[2], tomorrow[0], monthToStr(tomorrow[1]), tomorrow[2] ]); 501 runTest(isDateInRange_internallForIcedTeaWebTesting, [ false, current, 502 tomorrow[0], monthToStr(tomorrow[1]), tomorrow[2], later[0], monthToStr(later[1]), later[2] ]); 503 } 504 505 } 506 507 function testDateRange3() { 508 var dates = [ 509 new Date("January 1, 2011 1:11:11"), 510 new Date("February 1, 2011 1:11:11"), 511 new Date("March 1, 2011 1:11:11"), 512 new Date("April 1, 2011 1:11:11"), 513 new Date("May 1, 2011 1:11:11"), 514 new Date("June 1, 2011 1:11:11"), 515 new Date("July 1, 2011 1:11:11"), 516 new Date("August 1, 2011 1:11:11"), 517 new Date("September 1, 2011 1:11:11"), 518 new Date("October 1, 2011 1:11:11"), 519 new Date("November 1, 2011 1:11:11"), 520 new Date("December 1, 2011 1:11:11"), 521 522 ] 523 524 525 526 for (var i = 0; i < dates.length; i++) { 527 var current = dates[i]; 528 var yesterday = incDate(current,'day',-1); 529 var today = incDate(current,'day',0); 530 var tomorrow = incDate(current,'day',1); 531 runTest(isDateInRange_internallForIcedTeaWebTesting, [ true, current, 532 yesterday[0], monthToStr(yesterday[1]) , today[0], monthToStr(today[1]) ]); 533 runTest(isDateInRange_internallForIcedTeaWebTesting, [ true, current, 534 yesterday[0], monthToStr(yesterday[1]) , tomorrow[0], monthToStr(tomorrow[1]) ]); 535 runTest(isDateInRange_internallForIcedTeaWebTesting, [ true, current, 536 yesterday[0], monthToStr(yesterday[1]), yesterday[2], tomorrow[0], monthToStr(tomorrow[1]), tomorrow[2] ]); 537 } 370 538 } 371 539 -
trunk/icedtea-web/tests/netx/unit/net/sourceforge/jnlp/ParserCornerCases.java
r348 r418 39 39 40 40 import java.io.ByteArrayInputStream; 41 import java.io.IOException; 42 import java.io.StringReader; 43 import net.sourceforge.jnlp.annotations.KnownToFail; 41 44 42 import org.junit.After; 45 import net.sourceforge.nanoxml.XMLElement; 46 import net.sourceforge.nanoxml.XMLParseException; 47 43 48 import org.junit.Assert; 44 import org.junit.Before;45 49 import org.junit.Test; 46 50 47 51 /** Test various corner cases of the parser */ 48 52 public class ParserCornerCases { 53 54 @Test 55 public void testCdata() throws ParseException, XMLParseException, IOException { 56 String data = "<argument><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?> <!DOCTYPE properties SYSTEM \"http://java.sun.com/dtd/properties.dtd\"> <properties> <entry key=\"key\">value</entry> </properties> ]]></argument>"; 57 XMLElement elem = new XMLElement(); 58 elem.parseFromReader(new StringReader(data)); 59 XMLElement target = elem; 60 Assert.assertEquals("argument", target.getName()); 61 Assert.assertTrue("too small", target.getContent().length() > 20); 62 Assert.assertTrue(target.getContent().contains("xml")); 63 Assert.assertTrue(target.getContent().contains("DOCTYPE")); 64 Assert.assertTrue(target.getContent().contains("<entry key=\"key\">value</entry>")); 65 66 Node node = Parser.getRootNode(new ByteArrayInputStream(data.getBytes())); 67 Assert.assertEquals("argument", node.getNodeName()); 68 String contents = node.getNodeValue(); 69 Assert.assertTrue(contents.contains("xml")); 70 Assert.assertTrue(contents.contains("DOCTYPE")); 71 Assert.assertTrue(contents.contains("<entry key=\"key\">value</entry>")); 72 } 73 74 @Test 75 public void testCdataNested() throws ParseException, XMLParseException, IOException { 76 String data = "<jnlp>\n" + 77 "<application-desc>\n" + 78 "<argument>\n" + 79 "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?> <!DOCTYPE properties SYSTEM \"http://java.sun.com/dtd/properties.dtd\"> <properties> <entry key=\"key\">value</entry> </properties> ]]>" + 80 "</argument>\n" + 81 "<argument>1</argument>\n" + 82 "</application-desc>\n" + 83 "</jnlp>"; 84 XMLElement elem = new XMLElement(); 85 elem.parseFromReader(new StringReader(data)); 86 XMLElement target = (XMLElement) ((XMLElement) elem.enumerateChildren().nextElement()).enumerateChildren().nextElement(); 87 Assert.assertEquals("argument", target.getName()); 88 Assert.assertTrue("too small", target.getContent().length() > 20); 89 Assert.assertTrue(target.getContent().contains("xml")); 90 Assert.assertTrue(target.getContent().contains("DOCTYPE")); 91 Assert.assertTrue(target.getContent().contains("<entry key=\"key\">value</entry>")); 92 93 Node node = Parser.getRootNode(new ByteArrayInputStream(data.getBytes())); 94 node = node.getFirstChild().getFirstChild(); 95 Assert.assertEquals("argument", node.getNodeName()); 96 String contents = node.getNodeValue(); 97 Assert.assertTrue(contents.contains("xml")); 98 Assert.assertTrue(contents.contains("DOCTYPE")); 99 Assert.assertTrue(contents.contains("<entry key=\"key\">value</entry>")); 100 } 101 102 @Test 103 @KnownToFail 104 public void testCDataFirstChild() throws XMLParseException, IOException { 105 String xml = "<?xml version=\"1.0\"?>\n" + 106 "<jnlp spec=\"1.5+\">\n" + 107 "<![CDATA[Text you want to escape goes here...<test> random tag test </test>]]>\n" + 108 "<information/>\n" + 109 "</jnlp>"; 110 XMLElement elem = new XMLElement(); 111 elem.parseFromReader(new StringReader(xml)); 112 } 113 114 @Test 115 @KnownToFail 116 public void testCDataSecondChild() throws XMLParseException, IOException { 117 String xml = "<?xml version=\"1.0\"?>\n" + 118 "<jnlp spec=\"1.5+\">\n" + 119 "<information/>\n" + 120 "<![CDATA[Text you want to escape goes here...<test> random tag test </test>]]>\n" + 121 "</jnlp>"; 122 XMLElement elem = new XMLElement(); 123 elem.parseFromReader(new StringReader(xml)); 124 } 125 49 126 @Test 50 127 public void testUnsupportedSpecNumber() throws ParseException { … … 72 149 73 150 @Test 151 public void testCommentInElements2() throws ParseException { 152 String malformedJnlp = "<?xml?><jnlp <!-- comment --> spec='1.0'> </jnlp>"; 153 Node root = Parser.getRootNode(new ByteArrayInputStream(malformedJnlp.getBytes())); 154 Parser p = new Parser(null, null, root, false, false); 155 Assert.assertEquals("1.0", p.getSpecVersion().toString()); 156 } 157 158 @Test 159 @KnownToFail 74 160 public void testCommentInAttributes() throws ParseException { 75 161 String malformedJnlp = "<?xml?><jnlp spec='<!-- something -->'></jnlp>"; … … 82 168 public void testNestedComments() throws ParseException { 83 169 String malformedJnlp = "<?xml?>" + 84 "<jnlp><information><description>" + 170 "<jnlp><information><title>testNestedComments</title>" + 171 "<vendor>IcedTea</vendor><description>" + 85 172 "<!-- outer <!-- inner --> -->" + 86 173 "</description></information></jnlp>"; … … 89 176 Assert.assertEquals(" -->", p.getInfo(root).get(0).getDescription()); 90 177 } 178 179 @Test 180 public void testDoubleDashesInComments() throws ParseException { 181 String malformedJnlp = "<?xml?>" + 182 "<jnlp> <!-- \n" + 183 " -- a very very long and \n" + 184 " -- multiline comment \n" + 185 " -- that contains double dashes \n" + 186 " -->\n" + 187 " <information/>" + 188 "</jnlp>"; 189 Node root = Parser.getRootNode(new ByteArrayInputStream(malformedJnlp.getBytes())); 190 Parser p = new Parser(null, null, root, false, false); 191 } 192 91 193 } -
trunk/icedtea-web/tests/netx/unit/net/sourceforge/jnlp/ParserMalformedXml.java
r348 r418 43 43 import java.io.InputStreamReader; 44 44 import java.io.IOException; 45 import net.sourceforge.jnlp.annotations.KnownToFail; 45 46 46 47 import org.junit.BeforeClass; … … 75 76 76 77 @Test 78 @KnownToFail 77 79 public void testMalformedArguments() throws ParseException { 78 80 String malformedJnlp = originalJnlp.replace("arg2</argument", "arg2<argument"); … … 81 83 82 84 @Test 85 @KnownToFail 83 86 public void testTagNotClosed() throws ParseException { 84 87 String malformedJnlp = originalJnlp.replace("</jnlp>", "<jnlp>"); … … 87 90 88 91 @Test 92 @KnownToFail 89 93 public void testUnquotedAttributes() throws ParseException { 90 94 String malformedJnlp = originalJnlp.replace("'jnlp.jnlp'", "jnlp.jnlp"); -
trunk/icedtea-web/tests/reproducers/signed/Spaces can be everywhere signed/resources
- Property svn:mergeinfo set to
-
trunk/icedtea-web/tests/reproducers/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere1 signed.jnlp
- Property svn:mergeinfo set to
-
trunk/icedtea-web/tests/reproducers/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere2 signed.jnlp
- Property svn:mergeinfo set to
-
trunk/icedtea-web/tests/reproducers/signed/Spaces can be everywhere signed/resources/SpacesCanBeEverywhere1signed.jnlp
- Property svn:mergeinfo set to
-
trunk/icedtea-web/tests/reproducers/signed/Spaces can be everywhere signed/resources/spaces applet Tests signed.html
- Property svn:mergeinfo set to
-
trunk/icedtea-web/tests/reproducers/simple/Spaces can be everywhere/resources
- Property svn:mergeinfo set to
-
trunk/icedtea-web/tests/reproducers/simple/Spaces can be everywhere/resources/Spaces can be everywhere1.jnlp
- Property svn:mergeinfo set to
-
trunk/icedtea-web/tests/reproducers/simple/Spaces can be everywhere/resources/Spaces can be everywhere2.jnlp
- Property svn:mergeinfo set to
-
trunk/icedtea-web/tests/reproducers/simple/Spaces can be everywhere/resources/SpacesCanBeEverywhere1.jnlp
- Property svn:mergeinfo set to
-
trunk/icedtea-web/tests/reproducers/simple/Spaces can be everywhere/resources/spaces applet Tests.html
- Property svn:mergeinfo set to
Note:
See TracChangeset
for help on using the changeset viewer.
