M mozilla/nppluglet.cpp

M mozilla/nppluglet.h
M src/Pluglet.cpp
M src/Pluglet.h
M src/PlugletEngine.cpp

SetWindow works.  Next step is to try hook up scriptability.


git-svn-id: svn://10.0.0.236/trunk@213586 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
edburns%acm.org
2006-10-13 14:45:14 +00:00
parent 4ff5fe6ed1
commit 53efe6b0fd
5 changed files with 84 additions and 25 deletions

View File

@@ -42,7 +42,7 @@ static NS_DEFINE_IID(kIPluginInstanceIID, NS_IPLUGININSTANCE_IID);
NS_IMPL_ISUPPORTS1(Pluglet,nsIPluginInstance);
Pluglet::Pluglet(jobject object) : plugletEngine(nsnull) {
Pluglet::Pluglet(jobject object) : plugletEngine(nsnull), peer(nsnull) {
nsIServiceManager *servman = nsnull;
NS_GetServiceManager(&servman);
nsresult rv;
@@ -66,7 +66,6 @@ Pluglet::Pluglet(jobject object) : plugletEngine(nsnull) {
jthis = jniEnv->NewGlobalRef(object);
//nb check for null
peer = NULL;
view = PlugletViewFactory::GetPlugletView();
Registry::SetPeer(jthis,(jlong)this);
}
@@ -83,7 +82,7 @@ Pluglet::~Pluglet() {
}
jniEnv->DeleteGlobalRef(jthis);
NS_RELEASE(peer);
peer = nsnull;
}
NS_METHOD Pluglet::HandleEvent(nsPluginEvent* event, PRBool* handled) {
@@ -148,20 +147,20 @@ NS_METHOD Pluglet::Initialize(nsIPluginInstancePeer* _peer) {
}
}
peer = _peer;
peer->AddRef();
jobject obj = PlugletPeer::GetJObject(peer);
if (!obj) {
return NS_ERROR_FAILURE;
if (peer) {
jobject obj = PlugletPeer::GetJObject(peer);
if (!obj) {
return NS_ERROR_FAILURE;
}
env->CallVoidMethod(jthis,initializeMID,obj);
}
env->CallVoidMethod(jthis,initializeMID,obj);
return NS_OK;
}
NS_METHOD Pluglet::GetPeer(nsIPluginInstancePeer* *result) {
PR_LOG(PlugletLog::log, PR_LOG_DEBUG,
("Pluglet::GetPeer\n"));
peer->AddRef();
*result = peer;
NS_ADDREF(*result = peer);
return NS_OK;
}