Closed Bug 25003 Opened 25 years ago Closed 25 years ago

LiveConnect needs to allow for testing for NAV4 plugins

Categories

(Core Graveyard :: Plug-ins, defect, P3)

defect

Tracking

(Not tracked)

VERIFIED WONTFIX

People

(Reporter: jascha, Assigned: serhunt)

Details

It is well understood that Mozilla does not support LiveConnect with NAV4 plugins (See bug #18838). Unfortunetly, it does not behave in the expected/desired manner in this circumstance. If I have a NAV4 plugin called thePlugin on a page the test "document.thePlugin==null" results in false. I suggest that the correct behavior for a NAV4 plugin is to return true for this test. Because the behavior under Mozilla is to ignore LiveConnect calls made to NAV4 plugins, it is necessary to have the ability to test for non Live Connectable plugins so that the JS code can work around this limitation. Returning null for the plugin object seems like a good way to do this (it is currently how some other browsers that don't support LiveConnect, such as IE for Mac, behave). If there is a better way to do this test, that's fine too, but there needs to be some way. -jascha franklin-hodge manager of server engineering spinner.com/america on-line
I don't think this is a LiveConnect/JS Engine bug, but let me know if there's something I need to do to help out.
Assignee: rogerl → av
Component: Live Connect → Plug-ins
QA Contact: rginda → shrir
Status: NEW → ASSIGNED
Target Milestone: --- → M17
You've raised a good issue, but the problem is this: how would Mozilla figure out whether a given plug-in binary running within it would support LiveConnect or not? I can't think of a way that Mozilla could inspect (really introspect) an arbitrary plug-in binary and determine whether it was a Mozilla-ready plug-in binary in which LiveConnect would work. (Suggestions welcome!) And if there's no way that Mozilla can determine whether a plug-in binary is Mozilla ready by direct inspection, Mozilla would have to have an internal list of every known plug-in and an identifying string for navigator.plugins by which the Mozilla-ready version could be recognized. (e.g. "FooPlayer GX isn't Mozilla-ready, but FooPlayer XL is," etc.) With a vast number of plug-ins in existence, arbitrary naming schemes, and differences in implementations across platforms, I don't think that's realistic. I'm open to all suggestions for a clever solution here! ;-> Realistically, though, I think that what will have to happen is content sniffing for (1) the browser and (2) the plug-in version from navigator.plugins. e.g. Mozilla may not have a complete database of all Mozilla-ready plug-in binary names built-in (and such a DB would be out-of-date the day it shipped), but if a content site makes the decision to use FooPlayer content, then it will know and care enough about FooPlayer to sniff the browser, recognize Mozilla, and then sniff the plug-in, recognize FooPlayer version X, and display one of two messages or redirect, either taking you to the content directly if your browser is capable, or showing a "Sorry, you need FooPlayer version N to fully enjoy this content; download from here ..." See the Ultimate Client Sniffer at http://developer.netscape.com/docs/examples/javascript/browser_type.html for sample client-side JS code for browser client sniffing. Andrei, you're free to mark this FUTURE if you can't get to this (which I suspect will be impossible anyway unless someone has a bright idea!).
I don't believe that there's a programmatic way that Mozilla can inspect a plug-in to determine whether or not it's a legacy Nav4 plug-in or an updated Mozilla plug-in. I think the only solution here is explicit sniffing from JavaScript of the browser version and then the plug-in version (presumably through document.plugins, see bug 9392) to recognize which plug-in version it is and behavior appropriately. Marking WONTFIX as a result.
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → WONTFIX
v
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.