[Firefox 4] [NPAPI plugins] NPN_GetURLNotify does not call NPP_URLNotify if notifyData is null




8 years ago
3 days ago


(Reporter: andreycpp, Unassigned)




Firefox Tracking Flags

(Not tracked)



(1 attachment, 1 obsolete attachment)



8 years ago
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv: Gecko/20110218 Firefox/3.6.14
Build Identifier: Firefox 4.0b12

On Firefox 4, NPN_GetURLNotify does not call NPP_URLNotify

It does this on Firefox 3.6

Reproducible: Always

Steps to Reproduce:
1. Use a plugin that calls NPN_GetURLNotify with a NULL target

Comment 1

8 years ago
Created attachment 516519 [details]
Simple NPAPI plugin that calls NPN_GetURLNotify and prints to standard output whether NPP_URLNotify is called or not

This is a simple NPAPI plugin based on mozilla code (http://mxr.mozilla.org/mozilla-central/source/modules/plugin/sdk/samples/).

It issues a call to NPN_GetURLNotify( "http://google.com" ) and does printf() inside NPP_NewStream, NPP_DestroyStream and NPP_URLNotify

Under Firefox 3 you see all 3 calls. On Firefox 4, NPP_URLNotify is not called.

You need to run Firefox in console to see the printf's.

Comment 2

8 years ago
This issue is also reproducible on Windows.


8 years ago
Version: unspecified → Trunk

Comment 3

8 years ago
What are you passing for the notifyData void*? I believe we changed our behavior so that we don't notify if you pass a null pointer as notifyData...

Comment 4

8 years ago
Exactly! I'm calling NPN_GetURLNotify(mInstance, "http://google.com", NULL, NULL)

I have just tried specifying the notifyData (e.g. NPN_GetURLNotify(mInstance, "http://google.com", NULL, (void*)mInstance) ) and this works!

Comment 5

8 years ago
Created attachment 516639 [details]
Simple plugin that demonstrates the issue

First attachment had a buggy Makefile (it does not define XP_UNIX, and such plugin does not work)
Attachment #516519 - Attachment is obsolete: true

Comment 6

8 years ago
I believe that Josh made this change intentionally, but I'll let him close this WONTFIX if so when he gets back from vacation.
Ever confirmed: true
Keywords: regression
Summary: [Firefox 4] [NPAPI plugins] NPN_GetURLNotify does not call NPP_URLNotify → [Firefox 4] [NPAPI plugins] NPN_GetURLNotify does not call NPP_URLNotify if notifyData is null

Comment 7

8 years ago
I don't have time at the moment to look into this (I think it was intentional, as Benjamin said), but my advice would be to not pass NULL for notifyData if you want notifications. The browser doesn't deref that pointer value, it's just a unique identifier which you can use to reference your own stream data if you want. Technically you can pass whatever you want so long as it is unique to a stream - it doesn't have to be an actual memory address. You could just pass 0x1 if you only ever had one stream active at a time, for example.

Comment 8

8 years ago
Thanks Josh. That's exactly what I was going to use - just a dummy address like 0x1.

I have just put a warning into these wiki pages about current behavior:
Component: General → Plug-ins
Product: Firefox → Core
You need to log in before you can comment on or make changes to this bug.