From: Frederick R. (c. <cy...@so...> - 2006-02-21 18:45:55
|
Hello I am writing to see if you know about a problem with gtkmozembed. I also sent a similar email to one of the developers and realized this may be a better place to ask first. after trying several example programs I have determined (at least it seems) that it does not work out side of gnome. Example: ----------------------------------- #!/usr/bin/ruby require 'gtkmozembed' Gtk.init w = Gtk::Window.new w.title = "Lean & mean browser" w.resize(780, 570) w << Gtk::MozEmbed.new w.child.chrome_mask = Gtk::MozEmbed::ALLCHROME w.child.location = "http://www.ruby-lang.org" w.show_all Gtk.main ----------------------------------- This Program will work very well while I am running gnome however if I run a different window manager/enviroment enlightement, twm or just plain metacity no gnome it will lock up and sometimes not even respond to the kill signal. After running through it a little I have discovered that the lock up always comes when trying to show the Gtk::MozEmbed widget. So if I run this for example: ----------------------------------- #!/usr/bin/ruby require 'gtkmozembed' Gtk.init w = Gtk::Window.new w.title = "Lean & mean browser" w.resize(780, 570) moz = Gtk::MozEmbed.new w << moz w.child.chrome_mask = Gtk::MozEmbed::ALLCHROME w.child.location = "http://www.ruby-lang.org" puts 1 w.show puts 2 moz.show puts 3 Gtk.main ----------------------------------- I see this in the terminal: ----------------------------------- $ ./programName 1 2 ----------------------------------- then the window shows up and I never see 3 and eventual have to kill -9 the pid. Of course this same program runs with out a hitch in the gnome enviroment. I am not trying to be discoraging you guys are doing great. Thankyou! I just want to be informative. I am switching from python with gnome to ruby with gnome. The python module does not have this problem so I assume that it must be with the wrapper and not gtkmozembed as it comes with firefox/mozilla. Anyway. Thanks for all the hard work. If anyone has any information on this I would be most greatful. Frederick |
From: Mirko M. <mi...@li...> - 2006-02-26 21:29:41
|
Frederick Reeve (cylix) ha scritto: >Hello > >I am writing to see if you know about a problem with gtkmozembed. I also sent a similar email to one of the developers and realized this may be a better place to ask first. >after trying several example programs I have determined (at least it seems) that it does not work out side of gnome. > > Hi Frederick, I'm trying to reproduce your error, but i have to clean up my installation first. In the meantime can you tell me which version of ruby-gnome2 and ruby-gtkmozembed are you using? have you compiled gtkmozembed yourself or are you using a packaged version? Is it compiled against firefox or mozilla? Thank you, Mirko |
From: Frederick R. (c. <cy...@so...> - 2006-02-27 00:44:46
|
Mirko Maischberger <mi...@li...> wrote: > Frederick Reeve (cylix) ha scritto: > >I am writing to see if you know about a problem with gtkmozembed. I also sent a similar email to one of the developers and realized this may be a better place to ask first. > >after trying several example programs I have determined (at least it seems) that it does not work out side of gnome. > I'm trying to reproduce your error, but i have to clean up my > installation first. > > In the meantime can you tell me which version of ruby-gnome2 and > ruby-gtkmozembed are you using? have you compiled gtkmozembed yourself > or are you using a packaged version? Is it compiled against firefox or > mozilla? Sure. I'm using version ruby-gnome2-0.14.1. I have compiled it myself so by way of example: $ cd ruby-gnome2-all-0.14.1 $ ruby extconf.rb gconf gdkpixbuf glib gnome gnomecanvas gnomeprint gnomeprintui gnomevfs gstreamer gtk gtkhtml2 gtkmozembed gtksourceview libart libglade panel-applet pango rsvg $ make > logme $ sudo make install $ I have firefox 1.0.7 and mozilla 1.7.12 installed on my system and am compiled against mozilla because according to my 'logme' file gtkmozembed.so is linked with "-L/usr/lib/mozilla-1.7.12". I have right now just to try to help you out also compiled current cvs and 0.14.1 against mozilla and firefox. I compiled against firefox by doing. $ cd gtkmozembed $ sed -i -e 's/mozilla-gtkmozembed/firefox-gtkmozembed/' extconf.rb $ ruby extconf.rb $ make > logme $ sudo make install The sed line could also have been reversed depending on which I was compiling for. All 4 compiles had the same problem when running the previously sent programs they work in gnome but not in any other window manager i can find (although I did not try kde as I don't have it and don't want to compile it.) As a nusance though it did work just once after compiling it from 0.14.1 against mozilla but only once after closing it and rerunning the program the same problem ensued again... I was disapointed it didn't just go away. :-) Anyway if I may be of any help to you I would be happy to. I might look for the problem myself but really have no idea where to start. Thanks for you reponce :-) Frederick |
From: Frederick R. (c. <cy...@so...> - 2006-02-27 03:30:00
|
Just an extra note. I have just tried this on another machine I have running an earlier version of the gnome libs 2.10 instead of 2.12. It seams to work just fine on the other machine and the configureations are almost identical other than not having updated gnome. I running gentoo on both machines and am now upgrading the 2.10 machine to 2.12 but the compiling will take at least another 5 hours. I'll try it then and give a report back. Later Frederick |
From: Frederick R. (c. <cy...@so...> - 2006-02-27 15:50:26
|
Frederick Reeve (cylix) <cy...@so...> wrote: > Just an extra note. > I have just tried this on another machine I have running an earlier version of the gnome libs 2.10 instead of 2.12. It seams to work just fine on the other machine and the configureations are almost identical other than not having updated gnome. I running gentoo on both machines and am now upgrading the 2.10 machine to 2.12 but the compiling will take at least another 5 hours. I'll try it then and give a report back. Ok this has been confirmed. I have now tried this on multiple systems with the same results. Starting on systems with a base-gnome 2.10 installation we find every thing works well. After upgrading the systems to 2.12 they all manifest the same problem. One can only hope 2.14 might fix it but I wouldn't be willing to guess that. Again it is interesting that only the ruby bindings were affected the python bindings continue to work well. After doing a little testing I think it is a posible race condition. Examples follow. As in previous mails this does not work or only works about 1 in 100 tries: ----------------------------------- #!/usr/bin/ruby require 'gtkmozembed' Gtk.init w = Gtk::Window.new w.title = "Lean & mean browser" w.resize(400, 600) moz = Gtk::MozEmbed.new w << moz w.child.chrome_mask = Gtk::MozEmbed::ALLCHROME w.child.location = "http://www.google.com" puts 1 w.show puts 2 moz.show puts 3 Gtk.main ----------------------------------- This on the other hand works in other window mangagers about 1 in 3 times at least on my systems: ----------------------------------- #!/usr/bin/ruby require 'gtkmozembed' Gtk.init w = Gtk::Window.new w.title = "Lean & mean browser" w.resize(400, 600) mozhome = ENV['MOZILLA_FIVE_HOME'] if mozhome Gtk::MozEmbed.set_comp_path(mozhome) end Gtk::MozEmbed.set_profile_path(ENV['HOME'] + '/.mozilla', 'test1') # Two / doesn't make trouble none doesn't work if ENV['HOME'] has no trailing / moz = Gtk::MozEmbed.new w << moz w.signal_connect("destroy") { Gtk.main_quit } puts 1 w.show puts 2 ### time out ### sleep(3) moz.location = "http://www.google.com" moz.show puts 3 Gtk.main ----------------------------------- Both work in gnome with no trouble. If the sleep(3) is removed from the second one it will not work why... I have no idea. Strangly it also will not work if it is too great. So sleep(10) will not work. This is what drives me to think that it must be some kind of race condition amoung the threads. If that is correct logic or not I'm not sure but hey I did my best anyway. :-) This problem is the same also if your compiled against mozilla or firefox. Anyway I'm done messing around with it. I am happy to help you anyway I can. Please just let me know. Thanks again! Frederick |
From: <eu...@tr...> - 2006-03-01 08:34:55
|
Federick, Looking over things, there's a couple of questions I must ask, cause these are things sometimes are looked over. First, can you confirm that the Object returned from Gtk::MozEmbed.new is valid? Sometimes, a program will hang, or crash, when attempting to show a Widget, that is not valid. Looking at the documentation for GTK MozEmbed on the Mozilla Website, it looks to me, that if gtk_moz_embed_new doesn't successfully create the widget, that it'll return NULL. The second question is, have you tried showing the widget, before setting the location in the widget? Sometimes, this may be an overlooked deal, but if the Gtk Mozilla Embed Widget isn't fully initailized, and you attempt to set the URL Location on it, without it being fully initalized, it may be either, overwritten, or it may have some "troubles" attempting to load the page, when it's trying to create itself still. These are just a couple of possibilities, that may, or may not have any bearing on your problem. If you have already covered these points, I apologize, but I wanted to make certian, for both your sake, and Mirko's sake, that you have covered these points. L8ers, Mario > Frederick Reeve (cylix) <cy...@so...> wrote: <snip> ----------------------------------- > #!/usr/bin/ruby > require 'gtkmozembed' > Gtk.init > w = Gtk::Window.new > w.title = "Lean & mean browser" > w.resize(400, 600) > moz = Gtk::MozEmbed.new > w << moz > w.child.chrome_mask = Gtk::MozEmbed::ALLCHROME > w.child.location = "http://www.google.com" > puts 1 > w.show > puts 2 > moz.show > puts 3 > Gtk.main > ----------------------------------- > > This on the other hand works in other window mangagers about 1 in 3 times > at least on my systems: > > ----------------------------------- > #!/usr/bin/ruby > require 'gtkmozembed' > Gtk.init > w = Gtk::Window.new > w.title = "Lean & mean browser" > w.resize(400, 600) > mozhome = ENV['MOZILLA_FIVE_HOME'] > if mozhome > Gtk::MozEmbed.set_comp_path(mozhome) > end > Gtk::MozEmbed.set_profile_path(ENV['HOME'] + '/.mozilla', 'test1') # Two / > doesn't make trouble none doesn't work if ENV['HOME'] has no trailing / > moz = Gtk::MozEmbed.new > w << moz > w.signal_connect("destroy") { > Gtk.main_quit > } > puts 1 > w.show > puts 2 > > ### time out ### > sleep(3) > > moz.location = "http://www.google.com" > moz.show > puts 3 > Gtk.main > > ----------------------------------- <snip> |
From: Frederick R. (c. <cy...@so...> - 2006-03-01 20:49:49
|
eu...@tr... wrote: > Looking over things, there's a couple of questions I > must ask, cause these are things sometimes are looked over.=A0 First, > can you confirm that the Object returned from Gtk::MozEmbed.new is > valid? From a ruby view yes. puts mozwidget always returns a vaild #<Gtk::MozEmbed:0xb718f350> if it works or not. From a C view no I haven't checked that yet but I will now that you say it. =A0 Sometimes, a program will hang, or crash, when attempting to > show a Widget, that is not valid.=A0 Looking at the documentation for > GTK MozEmbed on the Mozilla Website, it looks to me, that if > gtk_moz_embed_new doesn't successfully create the widget, that it'll > return NULL. Ok I can alter the cvs copy i have and get the code to check to make sure t= he widget is ok before handing it off (assuming it doesn't aready do that). I will look in= to this and report back. =20 > The second question is, have you tried showing the > widget, before setting the location in the widget?=A0 Sometimes, this > may be an overlooked deal, but if the Gtk Mozilla Embed Widget isn't fully > initailized, and you attempt to set the URL Location on it, without it > being fully initalized, it may be either, overwritten, or it may have some > "troubles" attempting to load the page, when it's trying to > create itself still.=A0 These are just a couple of possibilities, that > may, or may not have any bearing on your problem.=A0 If you have > already covered these points, I apologize, but I wanted to make certian, > for both your sake, and Mirko's sake, that you have covered these > points. I believe I had I messed with it for hours one night but just in case I did= n't. Would this cover the points you speak of in that last paragraph? ------------------------------------- #!/usr/bin/ruby require 'gtkmozembed' Gtk.init w =3D Gtk::Window.new w.title =3D "Lean & mean browser" w.resize(400, 600) pushed =3D false mozhome =3D ENV['MOZILLA_FIVE_HOME'] Gtk::MozEmbed.set_comp_path(mozhome) Gtk::MozEmbed.set_profile_path(ENV['HOME'] + '/.mozilla', 'test1') moz =3D Gtk::MozEmbed.new puts "moz:" puts moz vbox =3D Gtk::VBox.new w << vbox vbox << moz button =3D Gtk::Button.new("push-me") vbox << button button.signal_connect("clicked") { if pushed moz.load_url("about:blank") pushed =3D false else moz.load_url("file:///home/frederick/doc/dev-lang/ruby/using-ruby-dbi.htm= l") pushed =3D true end puts 'sent url to widget' } w.signal_connect("destroy") { Gtk.main_quit } puts 1 w.show puts 2 vbox.show button.show puts 3 sleep(3) moz.show puts 4 sleep(3) moz.location =3D "about:blank" puts 5 Gtk.main ------------------------------------- in gnome this program works great. In another wm with libs 2.12 it gives moz: #<Gtk::MozEmbed:0xb725e1e8> 1 2 3 or moz: #<Gtk::MozEmbed:0xb72771e8> 1 2 3 4 5 LOCKUP With no blank page or It works fine about 1/10 of the time. The problem is VERY random. It is th= at way on all the machines I have tested. Having said that I have only test= ed on Gentoo. I will be installing Ubuntu and trying it since thats what M= irko is using. Any other test suggestions welcome. You know I want to say right hear I appreciat what everyone has done on thi= s project and I'm not trying to cause Mirko or anyone else any trouble. If= I can do more to help I am happy to as I can. Also I am happy you write a= nd point things out to me because I am only human and I forget or miss thin= gs like anyone else. Yes I am eager to have this problem fixed but no I do= n't want get anyone upset or such over it. No stress please :-) Thanks Frederick |
From: Mirko M. <mi...@li...> - 2006-03-01 17:29:49
|
Hi Frederick, Mirko Maischberger ha scritto: > Hi Frederick, > I'm trying to reproduce your error, but i have to clean up my > installation first. I just tryied ruby-gecko.rb (the shipped sample) on Ubuntu with CVS version of ruby-gnome2 and was not able to reproduce your error. Mirko Maischberger |
From: Frederick R. (c. <cy...@so...> - 2006-03-01 20:17:39
|
Mirko Maischberger <mi...@li...> wrote: > Mirko Maischberger ha scritto: > > Hi Frederick, > > I'm trying to reproduce your error, but i have to clean up my > > installation first. > > I just tryied ruby-gecko.rb (the shipped sample) on Ubuntu with CVS version > of ruby-gnome2 and was not able to reproduce your error. Ok Like I posted in other emails and I just want to confirm. I only have this problem with gnome libs release 2.12 is yours version 2.12? I have tested it also with version 2.10 on the same box and same installation and this works perfectly. I want to find this problem as I have it on mutiple machines in the same way. I will download a copy of ubuntu and install it to see if I can reproduce this there myself. It maybe its caused by the distro and if so should be submitted to there bugs. thanks Frederick |
From: Mirko M. <mi...@li...> - 2006-03-02 09:16:03
|
Frederick Reeve (cylix) ha scritto: > I believe I had I messed with it for hours one night but just in case I didn't. > Would this cover the points you speak of in that last paragraph? > [snip] > vbox.show > button.show > puts 3 > sleep(3) > moz.show > puts 4 > sleep(3) > moz.location = "about:blank" > puts 5 > Gtk.main Not really a solution, but i've had problems setting moz.location before entering the main loop. Have you tried commenting out the "moz.location = "about:blank"" line? I can't try it myself since i can't reproduce your problem, and yes, Ubuntu Breezy Badger is Gnome 2.12 based. Beside that i only tried with ruby-gecko.rb from the sample directory. I'll try with your script as soon as i can. Mirko -- Mirko Maischberger |
From: Frederick R. (c. <cy...@so...> - 2006-03-02 14:25:08
|
On Thu, 02 Mar 2006 10:15:21 +0100 Mirko Maischberger <mi...@li...> wrote: > Frederick Reeve (cylix) ha scritto: > > I believe I had I messed with it for hours one night but just in case I didn't. > > Would this cover the points you speak of in that last paragraph? > > > [snip] > > vbox.show > > button.show > > puts 3 > > sleep(3) > > moz.show > > puts 4 > > sleep(3) > > moz.location = "about:blank" > > puts 5 > > Gtk.main > Not really a solution, but i've had problems setting moz.location before > entering the main loop. Have you tried commenting out the "moz.location = > "about:blank"" line? Yes, It makes no differance that paticular program crashes on setting location when the button is pressed. Sometimes it never makes it that fare as I stated before. > I can't try it myself since i can't reproduce your problem, and yes, Ubuntu > Breezy Badger is Gnome 2.12 based. Beside that i only tried with > ruby-gecko.rb from the sample directory. I'll try with your script as soon > as i can. If the sample program works you should be it should be ok on your end. Be I just got Ubuntu installed last night and today I have to see about installing ruby and ruby-gnome I will keep you informed. Let me see if I can reproduce this on Ubuntu and some other distros until then I wouldn't worry about it. :-) I'll let you know what I find. thanks Frederick |
From: Mirko M. <mi...@li...> - 2006-03-03 08:48:29
|
Frederick Reeve (cylix) ha scritto: > ----------------------------------- > #!/usr/bin/ruby > require 'gtkmozembed' > Gtk.init > w = Gtk::Window.new > w.title = "Lean & mean browser" > w.resize(400, 600) > moz = Gtk::MozEmbed.new > w << moz > w.child.chrome_mask = Gtk::MozEmbed::ALLCHROME > w.child.location = "http://www.google.com" > puts 1 > w.show > puts 2 > moz.show > puts 3 > Gtk.main > ----------------------------------- Hi, this worked on ubuntu breezy even without a wm at all. -- Mirko Maischberger |
From: Frederick R. (c. <cy...@so...> - 2006-03-03 18:49:14
|
Mirko Maischberger <mi...@li...> wrote: > Hi, this worked on ubuntu breezy even without a wm at all. Yes it does (work that is) I tested this on breezy as well yesterday with fluxbox and gnome. I even tested it compiled with gcc-3.4 and gcc-4 just because breezy defaults to 4 and Gentoo to 3.4. Althought I never thought the wm was the problem but possible the lack of the "gnome application web" or whatever they call that. Running in another wm that stuff is not up and running buy default. perhaps I should have made that more clear. The problem happens on all my Gentoo boxes so... I am wondering if one of the patches applied causes a problem or maybe one of the patches on breezy fixes the problem. I mean patches to mozilla/firefox of course. I will look into that as I have time and will also install and try this on some more distros. The compile order firefox before the gnome upgrade with out the recompile of firefox may cause a problem too... The possibilities are endless. I find it still very strange it happens only with the ruby bindings and only with gnome 2.12 and so far only on gentoo. I have tested on mutiple gentoo boxes and all have the same problem. What a mess. Anyway at this point I can see only one significant differance between gentoo and breezy. Breezy doesn't have mitiple processes running for the program. On gentoo there are 5 or more processes for the program on breezy there is only the main process. A threading impemetation differance between the two no doubt. Anyway I think the problem is not your bindings even thought it only happens to the ruby bindings. I will continue to try to track this down and may submit a bug report to the gentoo team after testing some more distro's. If Gentoo were not our main developing system I would say just install another distro... but it is and is usualy a good choice. I just need this to work so parden all the mail. I will continue to look myself but I don't expect you to look farther since you can't reproduce it. Thank you for your help! :-) If I find something in the future I will drop a mail and tell you so at least you can point anyone else who might have the problem in a hopefully right direction. Now I will stop writing. I have done so much compiling resently I feel like my head is bobbing from watching all the text scroll. If this email seems out of sorts pardon I have not been getting near enough sleep. Thanks Again for all your hard work and putting up with me. Frederick |