Mercurial > hg > release > icedtea-1.10
view overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/NetxPanel.java @ 1805:8dc304404e01
Update plugin and javaws.
2009-05-13 Omair Majid <omajid@redhat.com>
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/JNLPSplashScreen.java: New file. This new class
is responsible for displaying the splash screen.
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/Launcher.java (launchApplication): Show a splash
screen if specified in the JNLP file while loading the remote jars.
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java (getListener):
Reposition the frame at the bottom right corner of the screen.
2009-05-13 Lillian Angel <langel@redhat.com>
* plugin/icedtea/sun/applet/PluginAppletSecurityContext.java
(PluginAppletSecurityContext): Added comment.
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java
(checkPermission): Fixed style.
2009-05-11 Lillian Angel <langel@redhat.com>
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPRuntime.java
(getDefaultBaseDir): Added check for home dir. Return null if homeDir
not found in system properties.
2009-05-11 Lillian Angel <langel@redhat.com>
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPRuntime.java
(getDefaultBaseDir): Added null check.
2009-05-11 Lillian Angel <langel@redhat.com>
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPRuntime.java
(getDefaultBaseDir): Set basedir for netx applications to ~/.netx,
rather than asking. Now consistant with the plugin.
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/InstallDialog.java: Removed.
2009-05-06 Lillian Angel <langel@redhat.com>
Fixes bz#498108
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/NetxPanel.java
(runLoader): Pass false to JNLPRuntime.initialize, since this is an
applet.
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java
(PluginAppletSecurityContext): Likewise.
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/Boot.java
(run): Pass true to JNLPRuntime.initialize, since this
is a webstart app.
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPRuntime.java
(initialize): Added new parameter isApplication, which is used to set
global static variable isWebstartApplication.
(isWebstartApplication): New accessor function.
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java:
(checkPermission): Added call to JNLPRuntime.isWebstartApplication so
the check is bypassed if the permissions are to be checked for
a webstart application.
2009-04-30 Deepak Bhole <dbhole@redhat.com>
* plugin/icedtea/sun/applet/PluginAppletSecurityContext.java: Forgo
permission check if JS source is [System] (i.e. Mozilla
extension/chrome).
2009-04-23 Deepak Bhole <dbhole@redhat.com>
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Handle nested
jars.
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/runtime/JNLPPolicy.java: Use site address when
checking for policy against CodeSource.
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/tools/JarSigner.java: Handle nested
jars.
2009-04-10 Deepak Bhole <dbhole@redhat.com>
* IcedTeaPlugin.cc: Fix rhbz478561 (freeze with empty string return from
Java side).
* plugin/icedtea/sun/applet/PluginMessageConsumer.java: Bump max workers
from 3 to 20, limiting initial to 3, and growing if/when needed.
2009-04-02 Deepak Bhole <dbhole@redhat.com>
* IcedTeaPlugin.cc: Incremented timeout to 3 minutes. Added functions to
process proxy and auth info requests (the latter is unused).
* plugin/icedtea/sun/applet/PasswordAuthenticationDialog.java: New file.
Displays a username/password input dialog to users for sites and proxies
requiring http auth.
* plugin/icedtea/sun/applet/PluginAppletViewer.java: Fix wait mechanism to
detect applet initialization failures correctly. Add support for
requesting proxy information from the browser.
* plugin/icedtea/sun/applet/PluginCallRequestFactory.java: Add support for
PluginProxyInfoRequest objects.
* plugin/icedtea/sun/applet/PluginMain.java: Wire in custom authenticator
and proxy selector.
* plugin/icedtea/sun/applet/PluginProxyInfoRequest.java: New file. Object
representing proxy information request from browser.
* plugin/icedtea/sun/applet/PluginProxySelector.java: Custom proxy
selector that requests information from browser and uses it.
* plugin/icedtea/sun/applet/PluginStreamHandler.java: Improve handling
code for "plugin specific" messages on the wire.
* overlays/openjdk/jdk/src/share/classes/net/sourceforge/jnlp/NetxPanel.java: Add support for improved
initialization failure detection.
author | Andrew John Hughes <ahughes@redhat.com> |
---|---|
date | Wed, 20 May 2009 21:17:02 +0100 |
parents | 9f7d3e786d0a |
children |
line wrap: on
line source
/* * Copyright 2007 Red Hat, Inc. * This file is part of IcedTea, http://icedtea.classpath.org * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ package net.sourceforge.jnlp; import net.sourceforge.jnlp.runtime.AppletInstance; import net.sourceforge.jnlp.runtime.JNLPRuntime; import java.net.URL; import java.util.Hashtable; import sun.applet.AppletViewerPanel; /** * This panel calls into netx to run an applet, and pipes the display * into a panel from gcjwebplugin. * * @author Francis Kung <fkung@redhat.com> */ public class NetxPanel extends AppletViewerPanel { private PluginBridge bridge = null; private boolean exitOnFailure = true; private AppletInstance appInst = null; private String cookieStr; private boolean appletAlive; public NetxPanel(URL documentURL, Hashtable atts) { super(documentURL, atts); } // overloaded constructor, called when initialized via plugin public NetxPanel(URL documentURL, String cookieStr, Hashtable atts, boolean exitOnFailure) { this(documentURL, atts); this.exitOnFailure = exitOnFailure; this.cookieStr = cookieStr; this.appletAlive = true; } //Overriding to use Netx classloader. You might need to relax visibility //in sun.applet.AppletPanel for runLoader(). protected void runLoader() { try { bridge = new PluginBridge(baseURL, cookieStr, getDocumentBase(), getJarFiles(), getCode(), getWidth(), getHeight(), atts); synchronized(JNLPRuntime.initMutex) { //The custom NetX Policy and SecurityManager are set here. if (!JNLPRuntime.isInitialized()) { if (JNLPRuntime.isDebug()) System.out.println("initializing JNLPRuntime..."); JNLPRuntime.initialize(false); } else { if (JNLPRuntime.isDebug()) System.out.println("JNLPRuntime already initialized"); } } doInit = true; dispatchAppletEvent(APPLET_LOADING, null); status = APPLET_LOAD; Launcher l = new Launcher(exitOnFailure); try { appInst = (AppletInstance) l.launch(bridge, this); } catch (LaunchException e) { // Assume user has indicated he does not trust the // applet. if (exitOnFailure) System.exit(0); } applet = appInst.getApplet(); //On the other hand, if you create an applet this way, it'll work //fine. Note that you might to open visibility in sun.applet.AppletPanel //for this to work (the loader field, and getClassLoader). //loader = getClassLoader(getCodeBase(), getClassLoaderCacheKey()); //applet = createApplet(loader); // This shows that when using NetX's JNLPClassLoader, keyboard input // won't make it to the applet, whereas using sun.applet.AppletClassLoader // works just fine. dispatchAppletEvent(APPLET_LOADING_COMPLETED, null); if (applet != null) { // Stick it in the frame applet.setStub(this); applet.setVisible(false); add("Center", applet); showAppletStatus("loaded"); validate(); } } catch (Exception e) { this.appletAlive = false; e.printStackTrace(); } } // Reminder: Relax visibility in sun.applet.AppletPanel protected synchronized void createAppletThread() { handler = new Thread(this); handler.start(); } public void updateSizeInAtts(int height, int width) { this.atts.put("height", Integer.toString(height)); this.atts.put("width", Integer.toString(width)); } public ClassLoader getAppletClassLoader() { return appInst.getClassLoader(); } public boolean isAlive() { return handler.isAlive() && this.appletAlive; } }