gwtproject / gwt

GWT Open Source Project
http://www.gwtproject.org
1.51k stars 372 forks source link

Open SUSE Chromium fails to load the dev plugin (SUSE packaging bug, not a GWT bug) #5739

Closed dankurka closed 9 years ago

dankurka commented 9 years ago

Originally reported on Google Code with ID 5740

When using the plugin with Chromium the application starts loading. Then the "missing
plugin" is opened (although the plugin is already installed). When the plugin is reinstalled
the same problem occurs. Closing and reopening Chromium after the plugin installation
does not help.

I am using:
openSuse 11.3
Kernel: 2.6.34.7 (64-bit)
Chromium 9.0.598.0 (0)

The extension page says:
GWT Developer Plugin - Version: 1.0.9274
A plugin to enable debugging with GWT's Development Mode
ID: jpjpnpmbddbjkfaccnmhnkdgjideieim

The Plugin page says:

GWT Development-Mode Plugin
Plugin to enable debugging of Google Web Toolkit applications in development mode.
Name: GWT Development-Mode Plugin
Description: Plugin to enable debugging of Google Web Toolkit applications in development
mode.
Version:
Priority:2
Location:/home/bla/.config/chromium/Default/Extensions/jpjpnpmbddbjkfaccnmhnkdgjideieim/1.0.9274_1/Linux_x86_64-gcc3/libGwtDevPlugin.so
Disable

If You have any other questions feel free to ask.

Reported by goran.stojsic on 2010-12-09 16:43:12

dankurka commented 9 years ago
run ldd on the libGwtDevPlugin.so and copy the output here.

also, go to chrome://extensions, enable developer mode, click on the 'background.html'
for the plugin and open the console (should be second button from the left in the bottom
left corner). Do you see anything there?

Can you close all your chromium processes, start chromium from the command line and
capture the output?

Reported by conroy@google.com on 2010-12-09 16:50:49

dankurka commented 9 years ago

Reported by conroy@google.com on 2010-12-09 16:51:09

dankurka commented 9 years ago
ldd Linux_x86_64-gcc3/libGwtDevPlugin.so
says:

ldd: warning: you do not have execution permission for `Linux_x86_64-gcc3/libGwtDevPlugin.so'
        linux-vdso.so.1 =>  (0x00007fff6b965000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fb73226e000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fb732017000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fb731e00000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fb731aa0000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fb7325bb000)

The console shows several messages like the following:
TypeError: Object #<an HTMLEmbedElement> has no method 'getHostPermission'   chrome/EventBindings:168

the console output is:

chromium --enable-plugins --enable-greasemonkey --enable-extension-timeline-api --enable-user-scripts
--enable-extensions --enable-sync --enable-geolocation --enable-webgl --enable-nacl
--enable-default-apps

[12477:12477:1627557894507:ERROR:base/native_library_linux.cc(32)] dlopen failed when
trying to open /usr/lib64/chromium/libffmpegsumo.so: /usr/lib64/chromium/libffmpegsumo.so:
cannot open shared object file: No such file or directory
[12478:12478:1627557895652:ERROR:base/native_library_linux.cc(32)] dlopen failed when
trying to open /usr/lib64/chromium/libffmpegsumo.so: /usr/lib64/chromium/libffmpegsumo.so:
cannot open shared object file: No such file or directory
[12479:12479:1627557902716:ERROR:base/native_library_linux.cc(32)] dlopen failed when
trying to open /usr/lib64/chromium/libffmpegsumo.so: /usr/lib64/chromium/libffmpegsumo.so:
cannot open shared object file: No such file or directory
[12482:12482:1627557914283:ERROR:base/native_library_linux.cc(32)] dlopen failed when
trying to open /usr/lib64/chromium/libffmpegsumo.so: /usr/lib64/chromium/libffmpegsumo.so:
cannot open shared object file: No such file or directory
[12484:12484:1627557921376:ERROR:base/native_library_linux.cc(32)] dlopen failed when
trying to open /usr/lib64/chromium/libffmpegsumo.so: /usr/lib64/chromium/libffmpegsumo.so:
cannot open shared object file: No such file or directory
[12488:12488:1627558154390:ERROR:base/native_library_linux.cc(32)] dlopen failed when
trying to open /usr/lib64/chromium/libffmpegsumo.so: /usr/lib64/chromium/libffmpegsumo.so:
cannot open shared object file: No such file or directory
NP_GetMIMEDescription: returned mime description
NP_GetValue(var=1)
NP_GetValue(var=2)
NP_GetMIMEDescription: returned mime description
NP_GetValue(var=1)
NP_GetValue(var=2)
NP_Initialize (gwt-hosted-mode/c++), pid=12521
[12532:12532:1627588487157:ERROR:base/native_library_linux.cc(32)] dlopen failed when
trying to open /usr/lib64/chromium/libffmpegsumo.so: /usr/lib64/chromium/libffmpegsumo.so:
cannot open shared object file: No such file or directory

The last lines (after NP_GetValue(var=2)) appeared when I navigated to the development
Server. Of course if You need more info please ask.

Reported by goran.stojsic on 2010-12-09 17:11:48

dankurka commented 9 years ago
If you can, please upgrade GWT to trunk and try again. My working theory is you are
using the xsiframe linker and we have fixes that recently went in to trunk for the
devmode.js bootstrap that it relies on.

http://code.google.com/p/google-web-toolkit/source/browse/trunk/dev/core/src/com/google/gwt/core/ext/linker/impl/devmode.js

Reported by conroy@google.com on 2010-12-10 00:20:04

dankurka commented 9 years ago
It seems I cannot build the extension properly. After svn up (which updates to SVN 9401)
I enter the plugins/npapi/ directory and issue:
make all x86_64  

The build ends with the following:
cp build/Linux_x86_64-gcc3/libGwtDevPlugin.so prebuilt/gwt-dev-plugin/Linux_x86_64-gcc3/""
make: *** No rule to make target `../plugins/npapi/gwt-dev-plugin.pem', needed by `prebuilt/gwt-dev-plugin.crx'.
 Stop.

When I try to install the extension from chromium via "Load Unpacked Extension" it
complains:

Could not load extension from '../plugins/npapi/prebuilt/gwt-dev-plugin'. Could not
load options page 'DevModeOptions.html'.

Reported by goran.stojsic on 2010-12-10 07:57:46

dankurka commented 9 years ago
sorry for the confusion: i meant for you to upgrade your GWT SDK that your application
is using to GWT trunk. You do not need to build the plugin. To build the necessary
files, you want to invoke 'ant dist-dev' in the svn/trunk folder. Then point your app
to use the SDK in build/staging/gwt-0.0.0/

(Unrelated to your issue: you don't want to do a make all since that includes crx,
and you don't care about packaging it. You should instead just invoke make with no
args to get the default target)

Reported by conroy@google.com on 2010-12-10 16:03:01

dankurka commented 9 years ago

Reported by conroy@google.com on 2010-12-10 16:04:57

dankurka commented 9 years ago
I'm going to have to backtrack my theory: I set up a local repro using the xsilinker
and while I hit exceptions, I am not getting redirected to the missing plugin page.
Now, that may very well be something we need to fix for 2.1, but I'm unclear what issue
you are really facing here.

Let me know if upgrading the SDK fixes you. If this is by any chance an open source
code base, please point me at the repro. If it isn't an open code base, do you have
another platform you could test on (Windows, mac, another linux distro--preferably
ubuntu?)

Reported by conroy@google.com on 2010-12-10 21:59:25

dankurka commented 9 years ago
The new GWT version (SVN 9401) made some nasty breaking changes to my code. I'll have
to fix them before I can test the plugin. I'll let You know as soon as I am done.

Reported by goran.stojsic on 2010-12-11 01:03:42

dankurka commented 9 years ago
#con...@google.com
Here is some news. I created a very simple GWT app:

public class App implements EntryPoint {
   public void onModuleLoad() {
       final RootPanel root = RootPanel.get();
       root.clear();
       final Label label = new Label("Hello world from GWT version:"
+ GWT.getVersion());
       root.add(label);
   }
}

It still manifests the buggy behavior. First I uninstalled the plugin.
Then I ran the app built with GWT svn 9401. Since the plugin was
missing I was redirected to the
https://dl-ssl.google.com/gwt/plugins/chrome/gwt-dev-plugin.crx site
to install the plugin. After the installation I tried to reload the
app but was redirected to the same page (the one with the Yellow
background with the blue button pointing down) and asked again to load
the plugin (which now was installed and visible in both the plugins
and extensions page).
The exact same behavior repeated when I installed the plugin built
from the GWT repo and installed it. The moment I started the app the
Yellow/blue button page was shown. (BTW when I tried to install the
plugin then, it crashed the whole browser)
IMHO the code that detects the dev-plugin from the Chromium version of
the browser is faulty (i.e. it does not recognize that the plugin is
installed)
As for trying on another platform I see a few problems. Since it is a
plugin for Chrome on Linux I'd have to test on another Linux distro. I
could install an ubuntu on a virtual machine however I get my Chromium
versions from an opensuse repository (as I mentioned before currently
it is 9.0.598.0 (0)). If the ubuntu repository doesn't have the same
version I'd be in trouble. I assume I'd have to build that version
from sources and that is a nontrivial problem (since I have never
built Chromium from sources it could waste me a lot of time) which I'd
like to avoid unless absolutely necessary.

Feel free to contact me via mail or chat.

Reported by goran.stojsic on 2010-12-14 18:04:07

dankurka commented 9 years ago
Using an OpenSUSE liveCD, I was able to confirm the reported behavior with the chromium
from http://software.opensuse.org/ymp/openSUSE:11.3:Contrib/standard/chromium.ymp?base=openSUSE%3A11.3&query=chromium

However, I went through the masochistic rpm and debian library symlinking process to
get a chrome-linux buildbot snapshot up and running. (For reference, I used http://build.chromium.org/f/chromium/snapshots/Linux/69223/chrome-linux.zip)

And the plugin worked just fine. 

I'm inclined to say this is a problem with OpenSUSE's packaging of chromium. I'd say
you should report this issue to them. The GWT plugin's NPP_New entry point is never
even called by the SUSE packaged chromium.

Reported by conroy@google.com on 2010-12-15 05:06:34

dankurka commented 9 years ago
The plugin also works fine on Ubuntu 10.10 with Chromium 9.0.597.0 (It is not 9.0.598.0
however). The OpenSUSE Chromium version has been upgraded to 10.0.610.0. It still manifests
the bug. It seems it is a packaging issue after all. I'll try with a newer version
than 9.0.598.0 on Ubuntu later.

Reported by goran.stojsic on 2010-12-16 09:16:44

dankurka commented 9 years ago
Unfortunatly it doesn't work properly under Ubuntu 10.10 and Chrome 8.0.552.215 (67652)
and 9.0.576.0 dev with gwt-ext. 

The Problem is that hosted mode starts and takes a long time to be loaded after a few
time I get white page. 

FF and IE working fine.

Reported by wbabachan on 2010-12-16 15:27:23

dankurka commented 9 years ago
I have compiled with all user agents ie6, ie8, gecko, safari, ...

Reported by wbabachan on 2010-12-16 15:28:06

dankurka commented 9 years ago
#15 Are You getting the Yellow background with the blue button pointing down page asking
You to download the plugin?

Reported by goran.stojsic on 2010-12-16 15:34:43

dankurka commented 9 years ago
wbabachan: what linux distro/version are you on?

Reported by conroy@google.com on 2010-12-16 15:42:19

dankurka commented 9 years ago
#17 Of course. I have installed the plugin. I get no Error. Application didn't come
up in Chrome. I see in console that it starts but at the end I don't see my panels.

#18 I am using Ubuntu 10.10 Kernel Linux 2.6.35-23-generic on i686 (32 Bit). I have
updated my Chrome to unstable release 9.09.597.19.  The same effect only in Chrome.

Reported by wbabachan on 2010-12-16 15:53:38

dankurka commented 9 years ago
Maybe this screenshot from hostedmode log in eclipse helps you ?

Reported by wbabachan on 2010-12-16 16:10:43


dankurka commented 9 years ago
On the Ubuntu 10.10. virtual machine the Chromium version 10.0.613.0 (69331) works fine.

Reported by goran.stojsic on 2010-12-17 00:14:19

dankurka commented 9 years ago
I'm going to mark this bug as invalid because it's really a SUSE packaging issue and
there's not much we can do about it from here.

If you report this to SUSE, feel free to link them to this bug and to cross reference
the SUSE packaging issue in the comments here so interested parties can track it.

I'll also update the title accordingly.

Reported by conroy@google.com on 2010-12-17 00:27:25

dankurka commented 9 years ago
Has anyone posted a bug report on bugzilla.novell.com ?

Reported by robert.munteanu on 2011-01-08 09:23:11

dankurka commented 9 years ago
Yes. It can be found here: https://bugzilla.novell.com/show_bug.cgi?id=663318

Reported by goran.stojsic on 2011-01-10 08:52:20

dankurka commented 9 years ago
As that I am the packager for Chromium on openSUSE, my question here would be in which
direction I have to look.  Is this NSS, NSPR related or any other system library ?
If this is a packaging error, then the same error would occur with the Fedora packages.

However why was it working before 9.0.598 ? We didn't change anything related to the
packaging method, so something else must have triggered this packaging bug. 

In order to solve it, I would like to get some hints regarding the direction. Please
also be aware that this is NOT an OFFICIAL openSUSE Package, but a community package
!!

Reported by tittiatcoke on 2011-01-27 16:24:37

dankurka commented 9 years ago
I also just started getting this exact same issue and my Chromium version is 8.0.552.237.
I was not aware of what changed to cause the issue, because at first I thought my most
recent changes to my GWT app had somehow broken it. However, most likely my browser
did an automatic update because I have actually done some Chrome restarts recently
(I normally go days/weeks w/o any).

Unfortunately I don't know what version of Chromium I had before this update.

The GWT Dev Plugin was version 1.0.9614 but now is 1.0.9639 but both these versions
had this issue.

If there's anything I can do to help please let me know. Chrome is my favorite browser
for developing GWT apps because I can be in the middle of debugging an app and other
browser tabs don't freeze up and I can continue to travel the interwebs.

Reported by myonceinalifetime on 2011-01-28 01:34:26

dankurka commented 9 years ago
with regards to comment #27: What distribution are you using ?  The version number seems
to be as that this is not an openSUSE package.

Reported by tittiatcoke on 2011-01-30 13:24:44

dankurka commented 9 years ago
Do you mean what channel? I'm on the regular stable channel for chrome. I also noticed
that you guys said openSUSE started at version 9.0.598 or w/e and clearly I'm still
on version 8.

All I know is that I have the same problem.

Reported by myonceinalifetime on 2011-01-30 19:57:06

dankurka commented 9 years ago
I no longer have this problem with GWT Dev Plugin version 1.0.9646

Reported by myonceinalifetime on 2011-02-02 16:52:14

dankurka commented 9 years ago
#30: it sounds like you were hitting a different issue all along.

Though the 9639 to 9646 only changed the windows binary so I'm not sure how that fixed
the problem you were having.

#26: Sorry I can't give you a more detailed direction to look, but the NP_Initialize
function is never called. Given that the same binary worked on an official chromium
build, the linkage of the plugin seems to be fine.

Reported by conroy@google.com on 2011-02-02 17:00:29

dankurka commented 9 years ago
#31:  Then it is going to be looking for a needle in a haystack. 

openSUSE is building chrome with the following system libraries : 

zlib, libpng, bzip2, libjpeg, libxml, libxslt, libevent, libicu. Also we are using
the standard libnss, libnspr libraries.  This to stay in line with the libraries that
the system has installed already. More distributions are using the same method and
I find it strange that it seems to affect only openSUSE. Especially since the browser
itself is working fine. 

No other changes are done and the question is now which library should be calling that
NP_Initialize function. 

Reported by tittiatcoke on 2011-02-03 08:38:48

dankurka commented 9 years ago
#32: libnspr is the most likely culprit.

Reported by conroy@google.com on 2011-02-03 15:12:41

dankurka commented 9 years ago
Thanks. 

This would help a lot. I have currently disabled the patch for removal of the chromium
internal nspr and nss stuff and will perform a rebuild tonight. 

Reported by tittiatcoke on 2011-02-03 15:24:52

dankurka commented 9 years ago
I have used the build for openSUSE to Contrib with hopefully the internal nspr stuff.
This also means that the build is no longer using openSSL, but the internal chromium
provided SSL stuff. 

I hope that this resolves this issue for openSUSE. If not, then I believe that the
libnspr (mozilla-nspr and mozilla-nss) are no longer compatible with Chromium. Which
means that a lot of distro's will start having this issue. 

Please try the latest build (11.0.659) to see if the issue has been resolved.

Reported by tittiatcoke on 2011-02-06 12:36:47

dankurka commented 9 years ago
As of chromium version 11.0.659.0 (0) the plugin works as intended. Thanks guys.

Reported by goran.stojsic on 2011-02-07 09:39:50