home *** CD-ROM | disk | FTP | other *** search
- package opera;
-
- import java.applet.Applet;
- import java.applet.AppletContext;
- import java.applet.AudioClip;
- import java.awt.Frame;
- import java.awt.Image;
- import java.awt.Toolkit;
- import java.io.IOException;
- import java.io.InputStream;
- import java.lang.reflect.Constructor;
- import java.net.URL;
- import java.security.AllPermission;
- import java.security.Permission;
- import java.util.Enumeration;
- import java.util.HashSet;
- import java.util.Hashtable;
- import java.util.Iterator;
- import java.util.Vector;
-
- public class PluginContext implements AppletContext {
- private static String clipImplName;
- protected static Object opera_mutex = new Object();
- private HashSet panels = new HashSet();
- private Hashtable audioCache = new Hashtable();
- private Hashtable imageCache = new Hashtable();
- public int document_ptr = 0;
- public int lf_document_ptr = 0;
- private PluginClassLoader loader = null;
-
- public PluginContext(int var1) {
- this.document_ptr = var1;
- }
-
- public Applet getApplet(String var1) {
- var1 = var1.toLowerCase();
- HashSet var3 = this.panels;
- synchronized(var3) {
- ;
- }
-
- for(PluginPanel var4 : this.panels) {
- String var5 = var4.getParameter("name");
- if (var5 != null) {
- var5 = var5.toLowerCase();
- }
-
- if (var1.equals(var5)) {
- return var4.getApplet();
- }
- }
-
- return null;
- }
-
- public Enumeration getApplets() {
- Vector var1 = new Vector();
- HashSet var3 = this.panels;
- Iterator var2;
- synchronized(var3) {
- var2 = this.panels.iterator();
- }
-
- while(var2.hasNext()) {
- var1.addElement(((PluginPanel)var2.next()).getApplet());
- }
-
- return var1.elements();
- }
-
- public AudioClip getAudioClip(URL var1) {
- checkConnect(var1);
- Hashtable var2 = this.audioCache;
- synchronized(var2) {
- AudioClip var3 = (AudioClip)this.audioCache.get(var1);
- if (var3 == null) {
- try {
- Class var4 = Class.forName(clipImplName);
- Class[] var5 = new Class[]{Class.forName("java.net.URL")};
- Object[] var6 = new Object[]{var1};
- Constructor var7 = var4.getConstructor(var5);
- var3 = (AudioClip)var7.newInstance(var6);
- this.audioCache.put(var1, var3);
- } catch (Exception var9) {
- var9.printStackTrace(System.err);
- }
- }
-
- return var3;
- }
- }
-
- public Image getImage(URL var1) {
- Hashtable var2 = this.imageCache;
- synchronized(var2) {
- Image var3 = (Image)this.imageCache.get(var1);
- if (var3 == null) {
- var3 = Toolkit.getDefaultToolkit().createImage(var1);
- this.imageCache.put(var1, var3);
- }
-
- return var3;
- }
- }
-
- public void showDocument(URL var1) {
- this.showDocument(var1, "_top");
- }
-
- public void showDocument(URL var1, String var2) {
- Object var3 = opera_mutex;
- synchronized(var3) {
- String var4 = var1.toString();
- this.showDocument(var4, var2);
- }
- }
-
- private native void showDocument(String var1, String var2);
-
- public native void showStatus(String var1);
-
- public void setStream(String var1, InputStream var2) throws IOException {
- }
-
- public InputStream getStream(String var1) {
- return null;
- }
-
- public Iterator getStreamKeys() {
- return null;
- }
-
- public static void init(String[] var0) throws SecurityException {
- try {
- JDK11ClassFileTransformer.init();
- } catch (Throwable var4) {
- }
-
- SecurityManager var1 = new SecurityManager();
- System.setSecurityManager(var1);
- SecurityManager var2 = System.getSecurityManager();
- if (var2 != null) {
- var2.checkPermission(new AllPermission());
- }
-
- for(int var3 = 0; var3 < var0.length / 2; ++var3) {
- System.setProperty(var0[var3 * 2], var0[var3 * 2 + 1]);
- }
-
- if (System.getProperty("browser.opera.useStreamHandler").equals("true")) {
- URL.setURLStreamHandlerFactory(new StreamHandlerFactory());
- }
-
- clipImplName = System.getProperty("browser.opera.audioClipClassName");
- }
-
- public PluginPanel newPanel(String[] var1, String[] var2, String[] var3, String[] var4, String var5, int var6) {
- try {
- Hashtable var7 = new Hashtable();
-
- for(int var8 = 0; var8 < var3.length; ++var8) {
- var7.put(var3[var8].toLowerCase(), var4[var8]);
- }
-
- Hashtable var9 = new Hashtable();
-
- for(int var10 = 0; var10 < var1.length; ++var10) {
- var9.put(var1[var10].toLowerCase(), var2[var10]);
- }
-
- PluginPanel var11 = new PluginPanel(this, var9, var7, new URL(var5), var6);
- HashSet var12 = this.panels;
- synchronized(var12) {
- this.panels.add(var11);
- return var11;
- }
- } catch (Exception var16) {
- var16.printStackTrace(System.err);
- return null;
- }
- }
-
- void destroyPanel(PluginPanel var1) {
- try {
- if (var1 != null) {
- Frame var2 = (Frame)var1.getParent();
- if (var2 != null) {
- var2.hide();
- var2.dispose();
- }
-
- var1.destroyApplet();
- this.panels.remove(var1);
- }
-
- if (this.panels.size() == 0) {
- PluginContextManager.deleteContext(this);
- }
- } catch (Exception var3) {
- var3.printStackTrace(System.err);
- }
-
- }
-
- public native int getJSWindow();
-
- public native int getESRuntime();
-
- private static void checkConnect(URL var0) {
- SecurityManager var1 = System.getSecurityManager();
- if (var1 != null) {
- try {
- Permission var2 = var0.openConnection().getPermission();
- if (var2 != null) {
- var1.checkPermission(var2);
- } else {
- var1.checkConnect(var0.getHost(), var0.getPort());
- }
- } catch (IOException var3) {
- var1.checkConnect(var0.getHost(), var0.getPort());
- }
- }
-
- }
-
- protected void setClassLoader(PluginClassLoader var1) {
- if (this.loader == null) {
- this.loader = var1;
- }
-
- }
-
- protected void cleanup() {
- if (this.loader != null) {
- ThreadGroup var1 = this.loader.getThreadGroup();
- this.loader = null;
- }
-
- }
-
- public int getDocumentPtr() {
- return this.document_ptr;
- }
-
- private void documentDeleted() {
- this.lf_document_ptr = this.document_ptr;
- this.document_ptr = 0;
- }
-
- protected void setDocumentPtr(int var1) {
- this.document_ptr = var1;
- }
-
- protected void setLoadingFinished(int var1) {
- if ((this.document_ptr != 0 || this.lf_document_ptr != 0) && var1 != 0) {
- this.nativeSetLoadingFinished(this.document_ptr == 0 ? this.lf_document_ptr : this.document_ptr, var1);
- }
-
- }
-
- private native void nativeSetLoadingFinished(int var1, int var2);
- }
-