Share

DjVuLibre

Tracker: Bugs

5 XEmbeded nsplugin does't work with djview4 - ID: 2803148
Last Update: Comment added ( petrp )

Dview4-4.5 and djvulibre-3.5.22 brings new netscape plugin code with XEmbed
support. Problem is the djview4 binary does not work with this plug-in
(tested in Firefox 3.0.10).

The plug-in writes on tty:

djview: QDjViewPlugin::exec() begin
nsdejavu: using the XEmbed protocol.

and the document is loaded and displayed. However any attempt to change
input to GUI element or clicking into the document canvas breaks connection
between djview4 and web browser and the plugin disappears (i.e. you get
gray default background and the right click pops Firefox's context menu
up).

Djview3 works fine through the same plug-in. Standalone djview4 works fine
too. I use qt-4.5.1.

I found the plug-in is compiled with glib-2.0 headers but not linked to
glib library.


Petr Písař ( petrp ) - 2009-06-08 20:20

5

Open

Works For Me

Nobody/Anonymous

None

None

Public


Comments ( 5 )

Date: 2009-06-22 19:20
Sender: petrp

I'm sorry I can't help to debug it. Just for reference there is another guy
having problems <https://bugs.gentoo.org/show_bug.cgi?id=271469#c3>.


Date: 2009-06-22 18:36
Sender: leonbProject Admin

The trace suggests that djview terminates in orderly fashion.
It even takes the time to save the preferences.
It would not do that in the case of a crash.
The question is "why?"

Nothing wrong is visible in the communication protocol.
Debugging this is difficult for me because this works perfectly
on all the machines I have around.

- L.



Date: 2009-06-09 10:47
Sender: petrp

My libpthread library (part of glibc) is compiled without frame pointers
and gdb stops backtrace on "previous frame inner to this frame".

I also compiled nsdejavu with headers from xulrunner-1.9.0.10/unstable and
nspr-4.7.4 instead of the ones packaged to djview4 and it did not help.

I also observed following: I can scroll using mouse wheel in the document.
If I do right-click, the content will dismiss, but the djview context menu
will pop up and I could invoke About or Settings window. Other document
related items (like Show metadata) does nothing.

I tested nsdejvu in Firefox nightbuild (3.6a1pre) and there is the same
problem. In addition, JS output does not work there (the second section on
test page).

The Opera 9.64 operapluginwrap crashes with SIGSEGV.

I tested npdjvu plugin (the Qt variant) and it works in the same Firefox
very well. I can click inside the document and so on. It also works very
well in Opera.

So npdjvu looks like functional replacement for nsdjvu for me. On the
other hand I dislike to have the whole djvu, Qt library and others loaded
into web browser memory space. It's quite risky and heavy.


Date: 2009-06-09 08:59
Sender: petrp

My environment is:
Gentoo (i386; in real i686: -march=athlon-tbird -pipe
-fomit-frame-pointer), sys-devel/gcc-4.3.2-r3,
x11-libs/qt-4.5.1,www-client/mozilla-firefox-3.0.10, app-text/djview4-4.5
and djvulibre-3.5.22.

I use nsplugin from djvulibre and /usr/bin/djview links to djview4.
However the same problem is when I use djvulibre-3.5.21 and nsplugin from
djview4-4.5.

So the problem is somewhere between djview4 – nsdejavu – firefox.
Only this combination allows XEmbed protocol which is failing on my
system.

Djview4 does not crash. It works very well, I can control it via JS in
your test page, I can use the lense to magnify a square area. However when
I click into the area, djview user inteface in plug-in area disappears,
even if djview4 remains running.

If I strace djview I will see strange things: The content is loaded,
djview polls on socket, it reads data from the socket when I do anything on
the web browser page, but when I do the click, djview tries to reread it's
configuration and then then I lost the content. After that it still polls
for input from browser and reads the input:

poll([{fd=7, events=POLLIN}, {fd=11, events=POLLIN}, {fd=3,
events=POLLIN}], 3, 249) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {4526, 507083396}) = 0
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
clock_gettime(CLOCK_MONOTONIC, {4526, 507291212}) = 0
clock_gettime(CLOCK_MONOTONIC, {4526, 507414394}) = 0
clock_gettime(CLOCK_MONOTONIC, {4526, 507475845}) = 0
clock_gettime(CLOCK_MONOTONIC, {4526, 507550703}) = 0
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
poll([{fd=7, events=POLLIN}, {fd=11, events=POLLIN}, {fd=3,
events=POLLIN}], 3, 249) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {4526, 759089885}) = 0
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
clock_gettime(CLOCK_MONOTONIC, {4526, 759294070}) = 0
clock_gettime(CLOCK_MONOTONIC, {4526, 759416972}) = 0
clock_gettime(CLOCK_MONOTONIC, {4526, 759478423}) = 0
clock_gettime(CLOCK_MONOTONIC, {4526, 759553281}) = 0
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)

** Here I do the click **

poll([{fd=7, events=POLLIN}, {fd=11, events=POLLIN}, {fd=3,
events=POLLIN}], 3, 249) = 1 ([{fd=11, revents=POLLIN}])
clock_gettime(CLOCK_MONOTONIC, {4526, 831455659}) = 0
read(11,
"\4\1\223.\356\22E\0\243\0\0\0}\3@\3\0\0\0\0\357\3\177\1\10\0002\1\0\0\1\0"...,
4096) = 32
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11,
[{"\1\0\n\0Q\4@\3F\3@\3\0\0\0\0d\0\36\0\0\0\0\0\0\0\0\0\n\0\0\0\377"...,
160}], 1) = 160
select(12, [11], [], NULL, NULL) = 1 (in [11])
read(11,
"\20\0\224.F\3@\3Q\4@\3\0\0\0\0d\0\36\0\0\0\0\10\230\377\270\277F\3@\3\34"...,
4096) = 96
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11, [{"\31\0\v\0F\227\240\2\0\0\0\0!
\0\0F\227\240\2\220\2\0\0\356\22E\0\3\0\0\0\0"..., 224}], 1) = 224
select(12, [11], [], NULL, NULL) = 1 (in [11])
read(11,
"\25#\237.Q\4@\3Q\4@\3\243\0\0\0\0\0\0\0\0\377\270\277\243\0\0\0000\302D\t\25"...,
4096) = 96
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
clock_gettime(CLOCK_MONOTONIC, {4526, 838077000}) = 0
clock_gettime(CLOCK_MONOTONIC, {4526, 838326435}) = 0
gettimeofday({1244535300, 942222}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2246, ...}) = 0
gettimeofday({1244535300, 944654}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2246, ...}) = 0
clock_gettime(CLOCK_MONOTONIC, {4526, 841207089}) = 0
poll([{fd=7, events=POLLIN}, {fd=11, events=POLLIN}, {fd=3,
events=POLLIN}], 3, 0) = 0 (Timeout)
mmap2(NULL, 987136, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb56af000
brk(0x9ec1000) = 0x9ec1000
brk(0x9efd000) = 0x9efd000
brk(0x9e73000) = 0x9e73000
select(12, [11], [11], NULL, NULL) = 2 (in [11], out [11])
read(11, "\241
\246.F\3@\3\220\2\0\0\356\22E\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5"...,
4096) = 64
writev(11,
[{"\4\0\2\0Q\4@\3\f\0\7\0S\4@\3\17\0\0\0\376\377\377\377\376\377\377\377\360\2\0\0N"...,
4088}, {";\3\5\0g\4@\3\0\0\0\0\0\0\0\0\330\2J\1"..., 20}], 2) = 4108
select(12, [11], [11], NULL, NULL) = 2 (in [11], out [11])
read(11,
"\21?\247.Q\4@\3Q\4@\3\230\377\270\277D\335\10\10<\377\270\277\243\0\0\0\311m\7\10\26"...,
4096) = 128
writev(11,
[{";\3\5\0h\4@\3\0\0\0\0\0\0\0\0\330\2J\1\227\6\5\0z\3@\3\0\0\0\0\0"...,
92},
{"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"...,
262080}], 2) = 112448
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11,
[{"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"...,
149724}], 1) = 112448
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11,
[{"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"...,
37276}], 1) = 37276
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11, [{"H\2\366\377y\3@\3g\4@\3\330\2Z\0\0\0Z\0\0\30\0\0"..., 24},
{"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"...,
262080}], 2) = 112448
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11,
[{"\0\0\0\377\277\277\277\377\377\377\377\377\377\377\377\377\377\377\377\377\333\333\333\377<<<\377\0\0\0\377\0"...,
149656}], 1) = 112448
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11,
[{"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"...,
37208}], 1) = 37208
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11, [{"H\2\366\377y\3@\3g\4@\3\330\2Z\0\0\0\264\0\0\30\0\0"...,
24},
{"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"...,
262080}], 2) = 112448
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11,
[{"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"...,
149656}], 1) = 112448
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11,
[{"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"...,
37208}], 1) = 37208
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11, [{"H\2\246\252y\3@\3g\4@\3\330\2<\0\0\0\16\1\0\30\0\0"..., 24},
{"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"...,
174720}], 2) = 112448
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11,
[{"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"...,
62296}], 1) = 62296
munmap(0xb56af000, 987136) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 70577834}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 70761070}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 71156032}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 71294855}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 71374462}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 71429210}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 72109081}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 73244527}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527write(5, "\1\0\0\0"..., 4)
= 4
write(5, "\21\0\0\0"..., 4) = 4
write(5, "\4\0\0\0"..., 4) = 4
write(5, "\240\32\303\t"..., 4) = 4
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11,
[{";\3\5\0g\4@\3\0\0\0\0\0\0\0\0\330\2J\1\227\6\5\0z\3@\3\0\0\0\0\0"...,
860}], 1) = 860
select(12, [11], [], NULL, NULL) = 1 (in [11])
read(11,
"\22\327\255/S\4@\3S\4@\3\0\302D\t\0\0\0\0\313\335\10\10\240\377\270\277S\4@\3\22"...,
4096) = 256
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11, [{"(\5\4\0\243\0\0\0F\3@\3\357\3\177\1"..., 16}], 1) = 16
select(12, [11], [], NULL, NULL) = 1 (in [11])
read(11,
"\1\1\260/\0\0\0\0\324\3@\3\344\0022\1\0\0\0\0\320\317i\t0\302D\t\0\0\0\0"...,
4096) = 32
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11, [{"(\5\4\0\243\0\0\0u\3@\3\357\3\177\1"..., 16}], 1) = 16
select(12, [11], [], NULL, NULL) = 1 (in [11])
read(11,
"\1\1\261/\0\0\0\0\0\0\0\0\344\0022\1\0\0\0\0\320\317i\t0\302D\t\0\0\0\0"...,
4096) = 32
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
clock_gettime(CLOCK_MONOTONIC, {4527, 124097149}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 124372561}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 124806070}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 124901878}) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
open("/home/petr/.config/DjVuLibre/DjView.conf", O_RDONLY|O_LARGEFILE) =
6
fstat64(6, {st_mode=S_IFREG|0600, st_size=4014, ...}) = 0
fcntl64(6, F_SETFD, FD_CLOEXEC) = 0
close(6) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
open("/home/petr/.config/DjVuLibre/DjView.conf", O_RDONLY|O_LARGEFILE) =
6
fstat64(6, {st_mode=S_IFREG|0600, st_size=4014, ...}) = 0
fcntl64(6, F_SETFD, FD_CLOEXEC) = 0
fstatfs(6, {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=3542829,
f_bfree=1061318, f_bavail=1061318, f_files=1802240, f_ffree=1414020,
f_fsid={-1562945037, -1960269227}, f_namelen=255, f_frsize=4096}) = 0
fcntl64(6, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
fstat64(6, {st_mode=S_IFREG|0600, st_size=4014, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0xb805c000
read(6, "[General]\nadvancedFeatures=true\nb"..., 4096) = 4014
read(6, ""..., 4096) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2246, ...}) = 0
close(6) = 0
munmap(0xb805c000, 4096) = 0, 74308745}) = 0
stat64("/home/petr/.config/DjVuLibre.conf", 0xbfa90f94) = -1 ENOENT (No
such file or directory)
stat64("/home/petr/.config/DjVuLibre.conf", 0x9d9a8ac) = -1 ENOENT (No
such file or directory)
stat64("/etc/qt4/DjVuLibre/DjView.conf", 0xbfa90f94) = -1 ENOENT (No such
file or directory)
stat64("/etc/qt4/DjVuLibre/DjView.conf", 0x9dce47c) = -1 ENOENT (No such
file or directory)
stat64("/etc/qt4/DjVuLibre.conf", 0xbfa90f94) = -1 ENOENT (No such file or
directory)
stat64("/etc/qt4/DjVuLibre.conf", 0x9d9a8ac) = -1 ENOENT (No such file or
directory)
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
open("/home/petr/.config/DjVuLibre/DjView.conf", O_RDWR|O_LARGEFILE) = 6
fstat64(6, {st_mode=S_IFREG|0600, st_size=4014, ...}) = 0
fcntl64(6, F_SETFD, FD_CLOEXEC) = 0
close(6) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
open("/home/petr/.config/DjVuLibre/DjView.conf", O_RDWR|O_LARGEFILE) = 6
fstat64(6, {st_mode=S_IFREG|0600, st_size=4014, ...}) = 0
fcntl64(6, F_SETFD, FD_CLOEXEC) = 0
fstatfs(6, {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=3542829,
f_bfree=1061318, f_bavail=1061318, f_files=1802240, f_ffree=1414020,
f_fsid={-1562945037, -1960269227}, f_namelen=255, f_frsize=4096}) = 0
fcntl64(6, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2246, ...}) = 0
fstat64(6, {st_mode=S_IFREG|0600, st_size=4014, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0xb805c000
_llseek(6, 0, [0], SEEK_SET) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=4014, ...}) = 0
truncate64("/home/petr/.config/DjVuLibre/DjView.conf", 0) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=0, ...}) = 0
stat64("/home/petr/.config/DjVuLibre/DjView.conf", {st_mode=S_IFREG|0600,
st_size=0, ...}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2246, ...}) = 0
write(6, "[General]\nadvancedFeatures=true\nb"..., 4014) = 4014
close(6) = 0
munmap(0xb805c000, 4096) = 0
stat64("/home/petr/.config/DjVuLibre.conf", 0xbfa91074) = -1 ENOENT (No
such file or directory)
stat64("/home/petr/.config/DjVuLibre.conf", 0x9dce47c) = -1 ENOENT (No
such file or directory)
stat64("/etc/qt4/DjVuLibre/DjView.conf", 0xbfa91074) = -1 ENOENT (No such
file or directory)
stat64("/etc/qt4/DjVuLibre/DjView.conf", 0x9d9a8ac) = -1 ENOENT (No such
file or directory)
stat64("/etc/qt4/DjVuLibre.conf", 0xbfa91074) = -1 ENOENT (No such file or
directory)
stat64("/etc/qt4/DjVuLibre.conf", 0x9dbb34c) = -1 ENOENT (No such file or
directory)
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11,
[{"\f\5\4\0\177\3@\3@\0@\3\0\0\0\0\f\5\7\0\177\3@\3\17\0@\3\0\0\0\0\0"...,
360}], 1) = 360
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
clock_gettime(CLOCK_MONOTONIC, {4527, 149722478}) = 0
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11,
[{"\227\7\2\0\300\3@\3\4\7\2\0\277\3@\3\227\7\2\0\272\3@\0036\7\2\0\271\3@\3\227"...,
260}], 1) = 260
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
uname({sys="Linux", node="album", ...}) = 0
uname({sys="Linux", node="album", ...}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 159115816}) = 0
poll([{fd=7, events=POLLIN}, {fd=11, events=POLLIN}, {fd=3,
events=POLLIN}], 3, 0) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {4527, 159362457}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 159464969}) = 0
clock_gettime(CLOCK_MONOTONIC, {4527, 159538430}) = 0
select(12, [11], [11], NULL, NULL) = 1 (out [11])
writev(11,
[{"\227\7\2\0]\3@\3\22\0\n\0\\\3@\3'\2\0\0'\2\0\0\10\0\0\0\20\0\0\0l"...,
2208}], 1) = 2208
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
clock_gettime(CLOCK_MONOTONIC, {4527, 160026128}) = 0
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
poll([{fd=7, events=POLLIN}, {fd=11, events=POLLIN}, {fd=3,
events=POLLIN}], 3, 5290) = 1 ([{fd=11, revents=POLLIN}])
clock_gettime(CLOCK_MONOTONIC, {4527, 177661435}) = 0
read(11,
"\26?\262/\177\3@\3\177\3@\3w\3@\3\0\0\0\0d\0\36\0\0\0\0\277\177\3@\3\26"...,
4096) = 4096
read(11,
"\34>W0F\3@\3\365\0\0\0<\24E\0\1\0\0\0\1\0\0\0({\377\10\31\332\t\10\34"...,
4096) = 192
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
clock_gettime(CLOCK_MONOTONIC, {4527, 179098828}) = 0
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
poll([{fd=7, events=POLLIN}, {fd=11, events=POLLIN}, {fd=3,
events=POLLIN}], 3, 5271) = 1 ([{fd=3, revents=POLLIN}])
clock_gettime(CLOCK_MONOTONIC, {4527, 261188940}) = 0
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
read(3, "\1\0\0\0"..., 4) = 4
read(3, "\20\0\0\0"..., 4) = 4
read(3, "\4\0\0\0"..., 4) = 4
read(3, "\240\32\303\t"..., 4) = 4
read(3, "\3\0\0\0"..., 4) = 4
read(3, "\4\0\0\0"..., 4) = 4
read(3, "page\0"..., 5) = 5
write(4, "\3\0\0\0"..., 4) = 4
write(4, "\2\0\0\0"..., 4) = 4
write(4, "OK\0"..., 3) = 3
write(4, "\3\0\0\0"..., 4) = 4
write(4, "\0\0\0\0"..., 4) = 4
write(4, "\0"..., 1) = 1
clock_gettime(CLOCK_MONOTONIC, {4527, 276387441}) = 0
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)
poll([{fd=7, events=POLLIN}, {fd=11, events=POLLIN}, {fd=3,
events=POLLIN}], 3, 5174) = 1 ([{fd=3, revents=POLLIN}])
clock_gettime(CLOCK_MONOTONIC, {4527, 280571693}) = 0
read(11, 0x9b64824, 4096) = -1 EAGAIN (Resource temporarily
unavailable)


** And the communication between djview and nsdejavu continues.

I will try to use gdb to figure out what happens.


Date: 2009-06-08 21:14
Sender: leonbProject Admin

> plug-in is compiled with glib-2.0 headers but not linked to glib library

That is normal. Glib and Xt symbols are compiled as weak symbols.
If they are found in the browser, we use that. Otherwise we revert to non
xembed behavior.

> Problem is the djview4 binary does not work with this plug-in

It works here. What is different?

Debian stable (amd64), qt-4.4.3, djvulibre-3.5.21, djview-4.5,
iceweasel-3.0.6
Ubuntu hardy (i386), qt-4.4.3 (backported), djvulibre-3.5.21, djview-4.5,
firefox-3.0.10
Ubuntu hardy (i386), qt-4.5.1 (backported), djvulibre-3.5.21, djview-4.5,
firefox-3.0.10


Testing procedure.
- get the source of djview4-4.5
- copy your favorite djvu as test.djvu in directory djview4/nsdejavu
- open file test.html

$ firefox test.html
** Message: GetValue variable 1 (1)
** Message: GetValue variable 2 (2)
** Message: GetValue variable 1 (1)
** Message: GetValue variable 2 (2)
** Message: GetValue variable 1 (1)
** Message: GetValue variable 2 (2)
** Message: GetValue variable 1 (1)
** Message: GetValue variable 2 (2)
** Message: GetValue variable 1 (1)
** Message: GetValue variable 2 (2)
GCJ PLUGIN: thread 0x1366fb0: NP_GetMIMEDescription
GCJ PLUGIN: thread 0x1366fb0: NP_GetMIMEDescription return
GCJ PLUGIN: thread 0x1366fb0: NP_GetValue
GCJ PLUGIN: thread 0x1366fb0: NP_GetValue: returning plugin name.
GCJ PLUGIN: thread 0x1366fb0: NP_GetValue return
GCJ PLUGIN: thread 0x1366fb0: NP_GetValue
GCJ PLUGIN: thread 0x1366fb0: NP_GetValue: returning plugin description.
GCJ PLUGIN: thread 0x1366fb0: NP_GetValue return
djview: QDjViewPlugin::exec() begin
nsdejavu: using the XEmbed protocol.

I get a fully functional plugin with scriptability features enabled.


> However any attempt to change
> input to GUI element or clicking into the document canvas breaks
connection0
> between djview4 and web browser and the plugin disappears (i.e. you get
> gray default background and the right click pops Firefox's context menu
up).

That usually means that djview4 has crashed.






Attached File

No Files Currently Attached

Change ( 1 )

Field Old Value Date By
resolution_id None 2009-06-08 21:14 leonb