/[gcjwebplugin]/gcjwebplugin/src/gnu/gcjwebplugin/oji/GCJPluginInstance.cc
ViewVC logotype

Diff of /gcjwebplugin/src/gnu/gcjwebplugin/oji/GCJPluginInstance.cc

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by mkoch, Tue Nov 18 12:42:54 2003 UTC revision 1.2 by mkoch, Thu Nov 27 13:38:12 2003 UTC
# Line 34  obligated to do so.  If you do not wish Line 34  obligated to do so.  If you do not wish
34  exception statement from your version. */  exception statement from your version. */
35    
36    
 #include <cassert>  
37  #include <glib.h>  #include <glib.h>
38    
39  #include <nsplugindefs.h>  #include <nsplugindefs.h>
# Line 46  exception statement from your version. * Line 45  exception statement from your version. *
45  #include "GCJPluginInstance.h"  #include "GCJPluginInstance.h"
46  #include "pluginDebug.h"  #include "pluginDebug.h"
47    
48  NS_IMPL_ISUPPORTS1 (GCJPluginInstance, nsIJVMPluginInstance)  NS_IMPL_ISUPPORTS2 (GCJPluginInstance, nsIPluginInstance, nsIJVMPluginInstance)
   
 static NS_DEFINE_IID (kIJVMPluginTagInfoIID, NS_IJVMPLUGINTAGINFO_IID);  
 static NS_DEFINE_IID (kIPluginTagInfo2IID, NS_IPLUGINTAGINFO2_IID);  
49    
50  GCJPluginInstance::GCJPluginInstance (GCJPluginFactory* factory, JNIEnv* jniEnv)  GCJPluginInstance::GCJPluginInstance (GCJPluginFactory* factory, JNIEnv* jniEnv)
51    : m_peer (NULL)    : m_peer (NULL)
# Line 68  GCJPluginInstance::Initialize (nsIPlugin Line 64  GCJPluginInstance::Initialize (nsIPlugin
64    PLUGIN_DEBUG ("GCJPluginInstance::Initialize\n");    PLUGIN_DEBUG ("GCJPluginInstance::Initialize\n");
65        
66    m_peer = peer;    m_peer = peer;
67    m_peer->AddRef ();    NS_ADDREF(m_peer);
68    
69    nsresult result;    nsresult result;
70    nsIJVMPluginTagInfo* pluginTagInfo;    nsIJVMPluginTagInfo* pluginTagInfo;
71    nsIPluginTagInfo2* pluginTagInfo2;    nsIPluginTagInfo2* pluginTagInfo2;
72        
73    result = peer->QueryInterface (kIJVMPluginTagInfoIID,    result = CallQueryInterface(peer, &pluginTagInfo);
74                                            (void**) &pluginTagInfo);    result = CallQueryInterface(peer, &pluginTagInfo2);
75    result = peer->QueryInterface (kIPluginTagInfo2IID, (void**) &pluginTagInfo2);    
   
76    if (NS_SUCCEEDED (result))    if (NS_SUCCEEDED (result))
77      {      {
78        // Extract tag data from web browser.        // Extract tag data from web browser.
# Line 100  GCJPluginInstance::GetPeer (nsIPluginIns Line 95  GCJPluginInstance::GetPeer (nsIPluginIns
95    PLUGIN_DEBUG ("GCJPluginInstance::GetPeer\n");    PLUGIN_DEBUG ("GCJPluginInstance::GetPeer\n");
96        
97    (*result) = m_peer;    (*result) = m_peer;
98      NS_ADDREF(m_peer);
99    return NS_OK;    return NS_OK;
100  }  }
101    
# Line 141  GCJPluginInstance::SetWindow (nsPluginWi Line 137  GCJPluginInstance::SetWindow (nsPluginWi
137    width = window->width;    width = window->width;
138    height = window->height;    height = window->height;
139    xid = (int)(window->window);    xid = (int)(window->window);
140      int output_to_gcjappletviewer_fd = 0;
141      int input_from_gcjappletviewer_fd = 0;
142    
143    // FIXME: select only initialized arguments    gchar *command_line [3] = { "gcjappletviewer", "--plugin", NULL };
   gchar *cmd_line = g_strdup_printf ("appletviewer"  
                                      "--code=%s "  
                                      "--archive=%s "  
                                      "--width=%d "  
                                      "--height=%d "  
                                      "--xid=%d ",  
                                      code,  
                                      archive,  
                                      width,  
                                      height,  
                                      xid);  
144    
145    printf ("Running: %s\n", cmd_line);    printf ("Running: %s\n", command_line);
146    GError *err;    GError *err = NULL;
147    
148    // FIXME: open input and output pipes    // FIXME: open input and output pipes
149    if (!g_spawn_command_line_async (cmd_line, &err))    if (!g_spawn_async_with_pipes (NULL,
150                                     command_line,
151                                     NULL,
152                                     G_SPAWN_SEARCH_PATH,
153                                     NULL,
154                                     NULL,
155                                     NULL,
156                                     &output_to_gcjappletviewer_fd,
157                                     &input_from_gcjappletviewer_fd,
158                                     NULL,
159                                     &err))
160      {
161      fprintf (stderr, "SetWindow error: %s\n", err->message);      fprintf (stderr, "SetWindow error: %s\n", err->message);
162        return NPERR_GENERIC_ERROR;
163      }
164    
165      GIOChannel* output_to_appletviewer = g_io_channel_unix_new (output_to_gcjappletviewer_fd);
166      GIOChannel* input_from_appletviewer = g_io_channel_unix_new (input_from_gcjappletviewer_fd);
167    
168      g_printerr ("Spawned gcjappletviewer successfully.\n");
169    
170    return NS_OK;    return NS_OK;
171  }  }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26