Closed Bug 27755 Opened 25 years ago Closed 25 years ago

Mozilla looks for OJI plug-in first in old Navigator's plugins directory

Categories

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

x86
Windows NT
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: stanley.ho, Assigned: serhunt)

References

Details

(Whiteboard: [PDT+] w/b minus on 3/10)

From Bug Helper: User-Agent: Mozilla/4.51 [en] (X11; U; SunOS 5.7 sun4u) BuildID: 1999122808 When Mozilla is ran, it will look for OJI plug-in in old version of Navigator's plugins directory first, before looking into its plugins directory in Mozilla. This has big impact to OJI. Since older version of Navigator may have older version of Java Plug-in installed and they may not be compatible with latest Mozilla, the wrong version of OJI plug-in will be loaded, and it will fail. Although I have the latest OJI plug-in in Mozilla's plugins directory, it will not be loaded. Reproducible: Always Steps to Reproduce: 1. Install older version of Java Plug-in in older browser 2. Install newer version of Java Plug-in in Mozilla 3. Start browsing HTML page which has APPLET tag Actual Results: The older version of Java Plug-in installed with older browser will be loaded. Expected Results: The newer version of Java Plug-in installed with Mozilla should be loaded. Mozilla should look for OJI plug-in from its Mozilla's plugins directory first.
This is really a plugin bug.
Assignee: drapeau → av
Component: OJI → Plug-ins
QA Contact: paw → shrir
Status: NEW → ASSIGNED
This bug is blocking OJI/Java Plug-In from working correctly. With the current behavior, an older Java Plug-In will likely be found, which is not compatible with current Mozilla builds.
Keywords: beta1
How old was the build? I checked in a new plugin finding logic on Jan 31 and fixed some problems on Feb 11. I stepped through the plugin list creation process and see nothing wrong: it looks for plugins in new dir first and adds plugins to the list, then goes to the old dir to add plugins from there but skips the filenames we already got.
Putting on PDT+ radar for beta1.
Whiteboard: [PDT+]
Increasing the severity from critical to blocker as this bug, if confirmed, prevents us from testing and QAing Java support in the browser. QA is of course free to change this back if I'm doing the wrong thing.
Severity: critical → blocker
Blocks: 23672
Note: if PDT team assigns a fix cut-off date to this bug, for consistency, it shouldn't be earlier than the fix cut-off date for bug 23672 (currently 3/03).
Blocks: 18567
Stanley, is this still happening? I tried Mozilla with no java plugin in its own plugins dir and it does not work. Then I added three dlls and it works fine to me. With release build. On debug build it gracefully fails. What else should I do to determine whether old or new plugin is picked up?
I am going to close this one. Please respond if anyone thinks it is still here.
Nobdy responded so I close it.
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
I have the latest Mozilla bug (02/29/2000), and this bug still shows up. Basically, if there are older version of Navigator installed, when Mozilla starts up, it will look for the plug-in DLLs first in older Navigator's plugins folder instead of Mozilla's plugins folder. I am pretty sure about this because the console output of the Debug build Mozilla actually prints out the search location one-by-one, and the older Navigator comes first.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Stanley, the console output you see shows the order of creation of nsPluginDir objects and the output comes from their constructors. Actual scanning occurs later, Mozilla plugins dir being first. Can you confirm the bug is still here by trying actual configurations and seeing the result?
I tried the latest build 03/01/2000, and I put NPJava32.dll (WIn32 OJI DLL) into both old Navigator's plugins directory and Mozilla's plugins directory, I can see from the debugger that the one in old Navigator's plugins directory is get loaded, so this bug is not fixed yet.
I stepped through the code. The bug is in modules\plugins\nglsrc\nsPluginHostImpl.cpp. In nsPluginHostImpl::LoadPlugins, it will enumerate the Mozilla's plugins folder first, and then enumerate the Nav 4x plugins folder. However, in the enumeration, the plugin information is added to the head of a linked list one by one. Since Nav 4x plugins are enumerated after Mozilla's plugins, the plugins in the Nav 4x folder will be added to the head to the list -- so the Nav 4x plugins will be used instead of the one in Mozilla's plugins directory. The fix will be to add the plugins in the right order into the linked list, or reverse the order of enumeration.
The bug seems both understood, and straight forward. Can you add a landing date for this item to the status whiteboard. Note that if we don't have a fix in place before 3/10, this will become PDT-
Whiteboard: [PDT+] → [PDT+] w/b minus on 3/10
I have talked to av and worked out a fix with him, and hopefully he will check it in soon.
Checked in.
Status: REOPENED → RESOLVED
Closed: 25 years ago25 years ago
Resolution: --- → FIXED
Stanley, I do not have a debug build to verify if this logic works perfectly. Could you please verify this bug for me? Thanks !
I have tested out the fix, and it works!! However, we have other issues: the fix is to do a case insensitive comparsion of plug-in file name, so the proper file names are compared in Win32. However, this will break Solaris or other UNIX platform because their filesystem are case sensitive. Therefore, the fix need to be conditionly apply only to Win32 build.
The whole logic is currently turned on for Windows only. I'll keep this in mind when implementing it for other platforms.
By the way, anybody knows how Win2000 is doing in this department? The rumors are it allows filenames differing only by case in the same dir.
I had a talk with Andrei and he agreed that I mark this bug as verified. I will file a new bug for 'implementing plugin finding logic similar to Windows on other platforms'. Thanks !!
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.