After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 565669 - epiphany doesn't compile against xulrunner 1.9.1
epiphany doesn't compile against xulrunner 1.9.1
Status: RESOLVED FIXED
Product: epiphany
Classification: Core
Component: [obsolete] Backend:Mozilla
2.24.x
Other Linux
: High blocker
: gnome-2-26
Assigned To: Epiphany Maintainers
Epiphany Maintainers
fixed-2-24,fixed-2-26
Depends on:
Blocks:
 
 
Reported: 2008-12-26 06:19 UTC by Alex Lancaster
Modified: 2009-02-28 00:19 UTC
See Also:
GNOME target: ---
GNOME version: 2.25/2.26


Attachments
config.log (105.22 KB, text/plain)
2009-02-07 18:24 UTC, Christopher Aillon
  Details
patch to EventContext.cpp (940 bytes, patch)
2009-02-07 18:44 UTC, Christopher Aillon
none Details | Review

Description Alex Lancaster 2008-12-26 06:19:27 UTC
On Fedora/rawhide:

build log here:

http://koji.fedoraproject.org/koji/getfile?taskID=1021841&name=build.log

extract:

/bin/sh ../../libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I../..  -I../../lib -I../../embed -I../.. -I/usr/include/xulrunner-sdk-1.9.1/unstable/. -I/usr/include/xulrunner-sdk-1.9.1/unstable/caps -I/usr/include/xulrunner-sdk-1.9.1/unstable/chardet -I/usr/include/xulrunner-sdk-1.9.1/unstable/chrome -I/usr/include/xulrunner-sdk-1.9.1/unstable/commandhandler -I/usr/include/xulrunner-sdk-1.9.1/unstable/content -I/usr/include/xulrunner-sdk-1.9.1/unstable/cookie -I/usr/include/xulrunner-sdk-1.9.1/unstable/docshell -I/usr/include/xulrunner-sdk-1.9.1/unstable/dom -I/usr/include/xulrunner-sdk-1.9.1/unstable/exthandler -I/usr/include/xulrunner-sdk-1.9.1/unstable/fastfind -I/usr/include/xulrunner-sdk-1.9.1/unstable/helperAppDlg -I/usr/include/xulrunner-sdk-1.9.1/unstable/find -I/usr/include/xulrunner-sdk-1.9.1/unstable/gfx -I/usr/include/xulrunner-sdk-1.9.1/unstable/gtkembedmoz -I/usr/include/xulrunner-sdk-1.9.1/unstable/history -I/usr/include/xulrunner-sdk-1.9.1/unstable/js -I/usr/include/xulrunner-sdk-1.9.1/unstable/layout -I/usr/include/xulrunner-sdk-1.9.1/unstable/locale -I/usr/include/xulrunner-sdk-1.9.1/unstable/mimetype -I/usr/include/xulrunner-sdk-1.9.1/unstable/necko -I/usr/include/xulrunner-sdk-1.9.1/unstable/nkcache -I/usr/include/xulrunner-sdk-1.9.1/unstable/passwordmgr -I/usr/include/xulrunner-sdk-1.9.1/unstable/pipboot -I/usr/include/xulrunner-sdk-1.9.1/unstable/pipnss -I/usr/include/xulrunner-sdk-1.9.1/unstable/pref -I/usr/include/xulrunner-sdk-1.9.1/unstable/shistory -I/usr/include/xulrunner-sdk-1.9.1/unstable/string -I/usr/include/xulrunner-sdk-1.9.1/unstable/sidebar -I/usr/include/xulrunner-sdk-1.9.1/unstable/spellchecker -I/usr/include/xulrunner-sdk-1.9.1/unstable/uriloader -I/usr/include/xulrunner-sdk-1.9.1/unstable/uconv -I/usr/include/xulrunner-sdk-1.9.1/unstable/wallet -I/usr/include/xulrunner-sdk-1.9.1/unstable/webbrowserpersist -I/usr/include/xulrunner-sdk-1.9.1/unstable/webbrwsr -I/usr/include/xulrunner-sdk-1.9.1/unstable/widget -I/usr/include/xulrunner-sdk-1.9.1/unstable/windowwatcher -I/usr/include/xulrunner-sdk-1.9.1/unstable/xmlextras -I/usr/include/xulrunner-sdk-1.9.1/unstable/xpcom -I/usr/include/xulrunner-sdk-1.9.1/unstable/xpconnect -DSHARE_DIR=\"/usr/share/epiphany\" -DPLUGINDIR=\"/usr/lib/epiphany/2.24/plugins\" -DMOZILLA_HOME=\"\" -DMOZILLA_PREFIX=\"/usr\" -DMOZILLA_NATIVE_PLUGINSDIR=\"/usr/lib/mozilla/plugins\" -DUA_VERSION=\"2.22\" -DALLOW_PRIVATE_API  -DXPCOM_GLUE_USE_NSPR  -DXPCOM_GLUE -fshort-wchar -I/usr/include/xulrunner-sdk-1.9.1/stable -I/usr/include/nspr4   -DXPCOM_GLUE -fshort-wchar -I/usr/include/xulrunner-sdk-1.9.1/unstable -I/usr/include/nspr4   -I/usr/include/nspr4   -DORBIT2=1 -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/libxml2 -I/usr/include/libgnome-2.0 -I/usr/include/orbit-2.0 -I/usr/include/gconf/2 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/libbonobo-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gnome-keyring-1 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gail-1.0 -I/usr/include/libglade-2.0 -I/usr/include/gnome-desktop-2.0 -I/usr/include/startup-notification-1.0   -fno-rtti  -fshort-wchar -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -Wno-unused  -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -MT libephymozillaembed_la-EphyRedirectChannel.lo -MD
 -MP -MF .deps/libephymozillaembed_la-EphyRedirectChannel.Tpo -c -o libephymozillaembed_la-EphyRedirectChannel.lo `test -f 'EphyRedirectChannel.cpp' || echo './'`EphyRedirectChannel.cpp
EphyBrowser.cpp: In member function 'virtual nsresult EphyCommandEventListener::HandleEvent(nsIDOMEvent*)':
EphyBrowser.cpp:703: error: 'nsIDOMNSLocation' was not declared in this scope
EphyBrowser.cpp:703: error: template argument 1 is invalid
EphyBrowser.cpp:703: error: invalid type in declaration before '(' token
EphyBrowser.cpp:703: error: cannot convert 'nsQueryInterface' to 'int' in initialization
EphyBrowser.cpp:739: error: base operand of '->' is not a pointer
EphyBrowser.h: In constructor 'EphyBrowser::EphyBrowser()':
EphyBrowser.h:226: warning: 'EphyBrowser::mInitialized' will be initialized after
EphyBrowser.h:211: warning:   'float EphyBrowser::mZoom'
EphyBrowser.cpp:822: warning:   when initialized here

Full build info here:

http://koji.fedoraproject.org/koji/taskinfo?taskID=1021841
Comment 1 Christian Persch 2008-12-26 13:29:34 UTC
Confirmed. Apparently nsIDOMNSLocation was removed in https://bugzilla.mozilla.org/show_bug.cgi?id=453571 ; the reload function now lives in nsIDOMLocation.
Comment 2 Christian Persch 2008-12-26 13:49:08 UTC
Should be fixed on gnome-2-24 branch in svn, but since I have no xulrunner 1.9.1 build, I cannot test. Please re-open if the patch didn't work.
Comment 3 Alex Lancaster 2008-12-26 22:29:26 UTC
(In reply to comment #2)
> Should be fixed on gnome-2-24 branch in svn, but since I have no xulrunner
> 1.9.1 build, I cannot test. Please re-open if the patch didn't work.

Thanks, I filed a downstream bug:

http://bugzilla.redhat.com/show_bug.cgi?id=477982

asking the maintainer of the Fedora package to test the new build. Can you make a snapshot or new point release as a tarball for this?

Comment 4 Christian Persch 2008-12-26 22:31:54 UTC
There will be a 2.24.3 release according to the schedule at http://live.gnome.org/TwoPointTwentyfive .
Comment 5 Christopher Aillon 2009-02-07 17:13:22 UTC
Ah, I didn't notice this bug, but that fix is insufficient.

There are two more changes that affect epiphany:

http://hg.mozilla.org/releases/mozilla-1.9.1/rev/2e8dfe209f09
http://hg.mozilla.org/releases/mozilla-1.9.1/rev/cf62923208e1

I have a patch which fixes those issues here, however it needs the appropriate configure checks:

http://cvs.fedoraproject.org/viewvc/rpms/epiphany/devel/epiphany-2.24-moz191.patch?revision=1.1&view=markup
Comment 6 Christian Persch 2009-02-07 17:42:04 UTC
The nsIDOM[NS]Element thing should be fixed in 2.24.3 and 2-26 branch, or did that not work (I worked blindly on the code, since I don't have a 1.9.1 build) ?

The plugin stuff really sucks; I think I'll just disable the plugin on 1.9.1.
Comment 7 Christopher Aillon 2009-02-07 17:45:34 UTC
Oh, yeah.  I guess it did get fixed.  Not sure how I missed that.  The plugin changes are pretty much just symbol renames.  You can get away with a typedef or #define or something if you don't want to have a huge #ifdef in the actual code.
Comment 8 Christopher Aillon 2009-02-07 17:53:15 UTC
Oh, I see.  No, the changes for the nsIDOM[NS]Element thing didn't work, which is why I assumed that it hadn't been accounted for yet.

EventContext.cpp:693: error: 'class nsIDOMNSHTMLElement' has no member named 'GetScrollTop'
EventContext.cpp:695: error: 'class nsIDOMNSHTMLElement' has no member named 'GetScrollLeft'


Because they are 'NS' interfaces and not part of the DOM spec, they don't follow normal rules, so nsIDOMNSHTMLElement _does not_ inherit from nsIDOMNSElement which means you can't use one interface for them, you must use both.  You must use the HTMLElement one for the Offset functions, and the Element one for the Scroll functions.  See my patch.
Comment 9 Christian Persch 2009-02-07 18:02:00 UTC
Hmm, I don't understand that compiler error. GetScrollTop is on nsIDOMNSElement, and the code uses this:

#ifdef HAVE_GECKO_1_9_1
		elem->GetOffsetTop(&val);	y += val;
		elem->GetScrollTop(&val);	y -= val;
		elem->GetOffsetLeft(&val);	x += val;
		elem->GetScrollLeft(&val);	x -= val;
#else
...

so I thought I should replace GetOffsetTop and GetOffsetLeft calls with htmlElem->... not the other ones... ?

Can you check that the HAVE_GECKO_1_9_1 define is getting correctly defined in config.h ?  If it isn't, please attach the config.log file .
Comment 10 Christian Persch 2009-02-07 18:07:23 UTC
What does "pkg-config --modversion libxul-embedding" output?
Comment 11 Christopher Aillon 2009-02-07 18:24:44 UTC
Created attachment 128178 [details]
config.log

HAVE_GECKO_1_9_1 is not getting defined, though gecko_cv_have_gecko_1_9_1=yes per the log file...
Comment 12 Christopher Aillon 2009-02-07 18:44:25 UTC
Created attachment 128179 [details] [review]
patch to EventContext.cpp
Comment 13 Christopher Aillon 2009-02-07 19:28:05 UTC
Got together with chpe on irc, and after a couple of other patches, I think this can be closed again.
Comment 14 Mike Auty 2009-02-27 23:44:10 UTC
Sorry to suggest reopening this, but it looks like one of the lines sneaked out of the #ifdef...

I've just been trying to compile this against xulrunner-1.9.1, and I ran into a "NewNPP_NewProc not defined" error.

It looks as though, in http://svn.gnome.org/viewvc/epiphany/branches/gnome-2-26/plugins/desktop-file/plugin.cpp?revision=8766&view=markup, line 537 should be at line 556...
Comment 15 Christian Persch 2009-02-28 00:19:29 UTC
Right; fixed in gnome-2-26 branch in svn.