Re: NPN_Evaluate changed from FFx 14 to FFx 15

Benjamin Smedberg <[email protected]>
Newsgroups gmane.comp.mozilla.devel.plugins
Message-ID <[email protected]>
On 9/10/2012 5:24 PM, Rudi Sherry wrote:
> We have a plugin that calls NPNEvaluate with "new Array;"
>
> NPVariant outObj;
> NPString str = { "new Array;", 10 };
> NPBool success = NPN_Evaluate(ourInstance, jsObjectForPlugin, str, &outObj);
>
> where 'jsObjectForPlugin' was set by the SetProperty callback, in the class returned when the container asked for NPPVpluginScriptableNPObject.
>
> The HTML Javascript looks something like:
>
> pluginObj.objForPlugin = { onMessage: function(msg) {}, onError: function(data) {} };
>
> (which invokes the SetProperty method in our plugin class).
>
> ...so jsObjForPlugin corresponds to the inline object containing those two function properties.
>
> In Firefox 14 (and every Firefox back to 3.x), NPN_Evaluate() returns 'true' and the outObj is type NPObject/
> In Firefox 15, NPN_Evaluate() returns 'false' and the outObj is of type NPNull.

I was not able to replicate your problem. I created a simple test plugin 
(sources at https://github.com/bsmedberg/blue-fishmonger-testplugin) and 
in both Firefox 15 and mozilla trunk I get NPN_Evaluate working 
correctly with the NPPVpluginScriptableNPObject as the scope object.

Is it possible that the code in question is running across multiple 
frames? We did make changes in Firefox 15 related to how JS runs when it 
touches objects from other frames/windows, and that could be affecting 
the scope lookups here. I'd love to see this problem in action with the 
smallest testcase you can come up with. File a bug and cc me if appropriate.

--BDS
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.