acrobat fails on plugin registration on Linux

VERIFIED FIXED in mozilla0.9.5

Status

()

P3
normal
VERIFIED FIXED
18 years ago
17 years ago

People

(Reporter: shrir, Assigned: srgchrpv)

Tracking

Trunk
mozilla0.9.5
x86
Linux
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [PDT+] [correctness], URL)

Attachments

(2 attachments)

(Reporter)

Description

18 years ago
Linux only (mac got fixed recently)

Steps:
1 Put the nppdf.so file for acrobat plugin inside mozilla plugins folder
2 Go to the url above
3 Observe that the File Save dialog pops up.. (if you do not have acrobat as a 
  helper app configured)
4 typing 'about:plugins' does not list the plugin...

expected: acrobat should appear embedded inside the browser window just like on 
other platforms..

Comment 1

18 years ago
Since this never has worked, I think this is due to the gtk switch over and 
Adobe needs to update their plugin. 

Andrei, thouhts?

If so, then Adobe needs to be evanglized.
Keywords: acrobat
Priority: -- → P3
Target Milestone: --- → Future

Comment 2

18 years ago
That's a possibility. But we need to make sure that we at least try to load the 
plug-in.

Comment 3

18 years ago
see the same prolem on Solaris. The plugin loading fails during the
initializtion process. 

Immediately after the plugin(nppdf.so) is loaded, nppdf.so's NP_Initialize is
called (see the code below). Note that the call to PR_FindSymbol returns a
function pointer (not null) but the subsequent call to the returned function
fails. The function call, 
 pfnInitialize(&(ns4xPlugin::CALLBACKS),&callbacks),  returns a NPError of 4,
NPERR_MODULE_LOAD_FAILED_REEOR.

///////////////
ns4xPlugin::CreatePllugin
    NP_PLUGINUNIXINIT pfnInitialize =
        (NP_PLUGINUNIXINIT)PR_FindSymbol(aLibrary, "NP_Initialize");

    if (pfnInitialize == NULL)
        return NS_ERROR_UNEXPECTED; // XXX Right error?

    if (pfnInitialize(&(ns4xPlugin::CALLBACKS),&callbacks) != NS_OK){
-->>		return NS_ERROR_UNEXPECTED;
    }
//////////////////////////////////////////////////////////

Comment 4

18 years ago
So the library gets loaded and evev an entry point is retreived. Does not look 
like missing linked libraries. Serge, do you have any ideas what could happen 
here?

Comment 5

18 years ago
Changing summary and re-assign to Serge.
Assignee: peterlubczynski → serge
Summary: acrobat does not workas a plugin but works as a helper app → acrobat fails on plugin registration on Linux
(Assignee)

Comment 6

18 years ago
av, shrir
did unix mozilla ever handles pdf files using acrobat plugin?
as I recall it does handle it using helper apps, am I right?
(Reporter)

Comment 7

18 years ago
yes, it always worked as a helper app, never embedded as  a plugin inside the 
browser.

Comment 8

18 years ago
Might this be similar to bug 56464 (RealPlayer plugin only works if Mozilla is
compiled using gcc 2.95.2)?

Comment 9

18 years ago
using a build of gcc 2.95 doesn't solve the problem in this case. 

Comment 10

18 years ago
Figures. No sooner do I say that I can't get acrobat to work in 4.x (in bug
84427), it starts working (albeit on a different box).   It still doesn't work
in mozilla and I think it may be due to nppdf.so requiring symbols not found in
the mozilla tree.  Here's the list of undefined symbols referenced by nppdf.so 
(nm --dynamic nppdf.so) but not found in libc, libdl, libX11 or libXt:

CreateQueue
DeQueue
DestroyQueue
EnQueue
NPN_GetURLNotify
CreateQueue
DeQueue
DestroyQueue
EnQueue
NPN_GetURLNotify

List generated using:
 nm --dynamic /usr/lib/netscape/plugins/nppdf.so | grep -v ^0 | sed 's|^        
||' | grep ^U | sed 's|^U ||' > ack 
# That's 9 spaces in the first sed

cat >findlibs<<EOF
#!/bin/sh

checklist="/lib/libc.so.6 /lib/libdl.so.2 /usr/X11R6/lib/libX11.so
/usr/X11R6/lib/libXt.so.6"

for l in $checklist; do
    rm -f found-$l
done
rm -f found-not
for s in `cat $1`; do
    found=0
    for l in $checklist; do
        nm $l | grep -c $s >/dev/null 2>&1
        if [ $? = 0 ]; then
            echo $s >> found-`basename $l`
            found=1
            break;
        fi
    done
    if [ $found = 0 ]; then
        echo $s >> found-not
    fi
done
EOF

# Then
sh -x findlibs ack


Comment 11

18 years ago
I have got the same problem, using the Acrobat 4.05 plugin.  It works fine in
Netscape 4.77 (by simply dropping nppdf.so in the netscape plugins directory),
but not in mozilla build 2001061308.
(Assignee)

Comment 12

17 years ago
Created attachment 48515 [details] [diff] [review]
initial patch proposal
(Assignee)

Comment 13

17 years ago
small notice:
to run acrobat reader on linux you have to 
setenv PATH <wherever acrobat install dir>/bin:$PATH, or  equivalent for your
shell, then try 'acroread' it should start stand alone reader.

Comment 14

17 years ago
Wow! Acrobat is now working in the browser window! Thanks for the great effort,
serge.

Although, there are still some problems with the patch like it doesn't behave
correctly on resizing the browser window, I think it worth checking into the
trunk. The changes in GetPluginInfo code are likely to help with the long
standing problem we have with starting Mozilla when audio device is active,
because it will not try to initialize plugins on start up. 

r=av

Comment 15

17 years ago
Changing milestone as we have progress here.
Target Milestone: Future → mozilla0.9.5

Comment 16

17 years ago
The original design was to have ns4xPlugin wrap _all_ interfaces to 4.x plugins.
I don't know if that is relevant anymore, maybe av or beard can comment. If it
_is_ relevant, than promoting the logic to nsPluginsDirUnix.cpp is not right; we
ought to continue to hide 4.x plugin logic from the brave new world. I'd suggest
either altering ns4xPlugin::Create() to simply return a wrapped, but
un-initialized plugin, or adding a static method to ns4xPlugin that can be used
to extract the MIME type given a pLibrary or something.

The changes in ns4xPlugin look fine to me.

Comment 17

17 years ago
This is good point. Although we decided to deprecate the new api (the Mozilla
Plugin API as it has been known) and encourage people to stick with old api with
some new additions to it for scriptability and access to the browser services
(now we are promoting name NPAPI), I think we are still going to keep the
Mozilla API in place as some vendors already invested in it and released
commercial products based on it. So, the suggestion looks reasonble. I think
something like ns4xPlugin::GetPluginInfo will be good to have.
(Assignee)

Comment 18

17 years ago
Chris, thank you for comments.
I completely agree it's better to keep all legacy (4.x) interfaces in one place, 
but those stuff is platform specific, and ns4xPlugin.cpp has a lot of #ifdef  
it's getting difficult to read, maybe it's time to break it by platforms.
Sure, I'm going to implement something like static ns4xPlugin::GetPluginInfo for 
unix.

Comment 19

17 years ago
Nominating for the branch. This patch is going to fix a long standing and very
annoying issue known as "hang on start up when audio device is active".
Keywords: nsbranch
(Assignee)

Comment 20

17 years ago
Created attachment 49297 [details] [diff] [review]
ns4xPlugin::Create() returns not initialized plugin object

Comment 21

17 years ago
Well... This sort of parameter overloading may seem confusing, I would prefer a
clear flag, but not insisting. r=av.
(Assignee)

Comment 22

17 years ago
I agree, but I have strong feeling we have to split ns4xPlugin.cpp by platforms 
or toolkits, and I do not want to add any platform specific methods into 
that now.

Comment 23

17 years ago
nsbranch+ per pdt triage
please try to fix it within next couple of weeks
Keywords: nsbranch → nsbranch+

Comment 24

17 years ago
Attachment 49297 [details] [diff] looks fine; sr=waterson. Let's get a bug on file to break
ns4xPlugin up by platform as serge suggests. I agree that would be a good idea.
(Assignee)

Comment 25

17 years ago
can I get PDT+ for check into the branch?

Comment 26

17 years ago
I was able to view pdf documents in 0.9.3 using the nppdf.so plugin from
acrobat, but after switching to 0.9.4, it doesn't work anymore.
(Assignee)

Comment 27

17 years ago
Do you mean you were able to run acrobat on unix as helper apps, not in browser 
window, am I right?

Comment 28

17 years ago
Adding correctness Status Whiteboard, correct/expected behavior does not occur.
Whiteboard: [correctness]

Updated

17 years ago
Whiteboard: [correctness] → [PDT] [correctness]
(Assignee)

Comment 29

17 years ago
checked into the trunk
modules/plugin/base/src/ns4xPlugin.cpp,v  <--  ns4xPlugin.cpp
new revision: 1.71; previous revision: 1.70
modules/plugin/base/src/nsPluginsDirUnix.cpp,v  <--  nsPluginsDirUnix.cpp
new revision: 1.14; previous revision: 1.13
(Assignee)

Comment 30

17 years ago
resolve as FIXED
Status: NEW → RESOLVED
Last Resolved: 17 years ago
Resolution: --- → FIXED

Comment 31

17 years ago
I don't think this was checked into the 0.9.4 branch. Looks like it still needs
a PDT+ approval. Reopening...
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
(Assignee)

Comment 32

17 years ago
that's right, I did not check it into the 094 branch yet
(Reporter)

Comment 33

17 years ago
hm..on today's trunk on linux 0924, my acroreader is not getting launched as a 
plugin. I get an error in the console.

500 Cannot exec acroread or acroexch errorno=2
Acrobat Plugin-Could not launch acrobat
(Assignee)

Comment 34

17 years ago
see Comments From serge@netscape.com 2001-09-06 18:44
(Assignee)

Comment 35

17 years ago
warning messages like:
"Warning: Actions not found: addBookmark, viewBookmark, copy, undefined-key,
find, findAgain, history, loadImages, openURL, mailNew, new, openFile, print,
exit, reload, saveAs, paste, delete, cut, undo, historyItem, back, forward,
abort, PageUp, PageDown
Warning: Actions not found: ManagerGadgetNextTabGroup,
ManagerGadgetPrevTabGroup, DrawingAreaInput, addBookmark, viewBookmark, copy,
undefined-key, find, findAgain, history, loadImages, openURL, mailNew, new,
openFile, print, exit, reload, saveAs, paste, delete, cut, undo, historyItem,
back, forward, abort, PageUp, PageDown
Warning: No action proc named "ManagerGadgetArm" is registered for widget "form"
Warning: No action proc named "ManagerGadgetArm" is registered for widget "form"
Warning: No action proc named "ManagerGadgetArm" is registered for widget "form"
...
are coming from acrobat because it's trying to install 4.x translations which is
irrelevant for 6.x browser.

Comment 36

17 years ago
Shrirang, have you been able to test this in the trunk changing the PATH
variable? Need to confirm before getting PDT+ for this.
(Reporter)

Comment 37

17 years ago
finally..yes. Awesome, Serge ! I have tested this fix on the linux 0924 trunk 
and it looks very good. I see the warning messages that serge mentioned above. 
Pls grant pdt+

Comment 38

17 years ago
Pls update the Patch Status for both patches. Check it into the branch - PDT+
Whiteboard: [PDT] [correctness] → [PDT+] [correctness]
(Assignee)

Comment 39

17 years ago
cannot update attachments status, got error "You are not authorized to edit
attachments" :(
(Assignee)

Comment 40

17 years ago
checked into the MOZILLA_0_9_4_BRANCH
new revision: 1.10.2.1; previous revision: 1.10
new revision: 1.67.2.2; previous revision: 1.67.2.1
Status: REOPENED → RESOLVED
Last Resolved: 17 years ago17 years ago
Resolution: --- → FIXED

Updated

17 years ago
Attachment #49297 - Flags: superreview+
Attachment #49297 - Flags: review+
(Reporter)

Comment 41

17 years ago
looks good on today's linux branch (0927). VERIFIED.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.