The default bug view has changed. See this FAQ.

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

NEW
Unassigned

Status

()

Firefox
General
6 years ago
6 years ago

People

(Reporter: Andrey Terentyev, Unassigned)

Tracking

({regression})

Trunk
x86
Linux
regression
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment, 1 obsolete attachment)

(Reporter)

Description

6 years ago
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.14) 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
(Reporter)

Comment 1

6 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.
(Reporter)

Comment 2

6 years ago
This issue is also reproducible on Windows.
(Reporter)

Updated

6 years ago
Version: unspecified → Trunk
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...
(Reporter)

Comment 4

6 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!
(Reporter)

Comment 5

6 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
I believe that Josh made this change intentionally, but I'll let him close this WONTFIX if so when he gets back from vacation.
Status: UNCONFIRMED → NEW
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

6 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.
(Reporter)

Comment 8

6 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:
https://developer.mozilla.org/en/Gecko_Plugin_API_Reference/URLs
https://developer.mozilla.org/en/NPN_GetURLNotify
You need to log in before you can comment on or make changes to this bug.