GNOME Bugzilla – Bug 629878
Missing "Back" and "Forward" icons for Firefox
Last modified: 2012-07-21 10:55:16 UTC
After updating from 2.21.7 to 2.21.8 I get these messages when starting Firefox: ---------------------------------------------------------------------- (firefox-bin:4965): Gtk-WARNING **: Error loading theme icon 'gtk-go-back-ltr' for stock: Icon 'gtk-go-back-ltr' not present in theme (firefox-bin:4965): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed (firefox-bin:4965): Gtk-CRITICAL **: gtk_default_render_icon: assertion `base_pixbuf != NULL' failed (firefox-bin:4965): Gtk-CRITICAL **: IA__gtk_style_render_icon: assertion `pixbuf != NULL' failed (firefox-bin:4965): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed ---------------------------------------------------------------------- And similar for 'gtk-go-forward-ltr'.
Which Firefox version is this about? If it worked in 2.21.7, did you use the same firefox version?
Firefox 3.6.10 in both cases. "Back" and "Forward" icons are missing in 2.21.8.
I have the same problem after upgrading to GTK+ 2.22.0. I tested Firefox 3.6.10 using the binary distribution and one self compiled using GTK+ 2.20.1.
I think the following commit broke it: http://git.gnome.org/browse/gtk+/commit/?h=gtk-2-22&id=5c74a696d5c1593be0f6b801cb85a4baf1087883
The important thing to know would be what firefox is doing to cause this.
Does the following explain why ? It's the default theme on Linux. If I download another theme, it works. $ grep -r gtk-go-forward-ltr * browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=menu"); browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=menu&state=disabled"); browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=toolbar"); browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=toolbar&state=disabled"); browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=menu"); browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=menu") !important; browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=menu&state=disabled"); browser/themes/gnomestripe/browser/places/organizer.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=toolbar"); browser/themes/gnomestripe/browser/places/organizer.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=toolbar&state=disabled"); toolkit/themes/gnomestripe/global/printPreview.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=menu"); toolkit/themes/gnomestripe/global/findBar.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=menu"); toolkit/themes/gnomestripe/global/findBar.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=menu&state=disabled"); toolkit/themes/gnomestripe/global/button.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=button"); toolkit/themes/gnomestripe/global/button.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=button&state=disabled"); toolkit/themes/gnomestripe/help/help.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=toolbar"); toolkit/themes/gnomestripe/help/help.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=toolbar&state=disabled"); toolkit/themes/gnomestripe/help/help.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=menu"); toolkit/themes/gnomestripe/help/help.css: list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=menu&state=disabled"); $ grep -r gtk-go-back-ltr * browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=menu"); browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=menu&state=disabled"); browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=toolbar"); browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=toolbar&state=disabled"); browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=menu"); browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=menu") !important; browser/themes/gnomestripe/browser/browser.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=menu&state=disabled"); browser/themes/gnomestripe/browser/places/organizer.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=toolbar"); browser/themes/gnomestripe/browser/places/organizer.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=toolbar&state=disabled"); toolkit/themes/gnomestripe/global/printPreview.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=menu"); toolkit/themes/gnomestripe/global/findBar.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=menu"); toolkit/themes/gnomestripe/global/findBar.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=menu&state=disabled"); toolkit/themes/gnomestripe/global/button.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=button"); toolkit/themes/gnomestripe/global/button.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=button&state=disabled"); toolkit/themes/gnomestripe/help/help.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=toolbar"); toolkit/themes/gnomestripe/help/help.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=toolbar&state=disabled"); toolkit/themes/gnomestripe/help/help.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=menu"); toolkit/themes/gnomestripe/help/help.css: list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=menu&state=disabled");
*** Bug 631184 has been marked as a duplicate of this bug. ***
I confirm this being an issue on OpenBSD too using any versions of firefox 3.5 or 3.6. Well basically everything based on mozilla is broken now. It turnes out that only icons with -ltr, -rtl are affects and icons w/o that still display fine by their old names too. You can easily test this with just putting moz-icon://stock/gtk-go-back-ltr into your URL bar.
There have been reports from the linux world too about this issue (Arch, Debian and so on.)
sharp-gtk apps like f-spot are broken too
Here is what I think about this issue: 1) What those mozilla themes do (or rather what firefox does with those stock ids) is a bug in mozilla. Stock ids need to be looked up as stock items, icon names need to be looked up in the icon theme. 2) I'd be willing to keep this working in the 2.x branch. A fix would require adding corresponding symlinks to the stamp-icons: target in gtk/Makefile.am. Patch welcome.
Matthias, we use the following diff as a local hack to the issue: http://www.openbsd.org/cgi-bin/cvsweb/ports/x11/gtk%2B2/patches/patch-gtk_Makefile_in I think it should not be commited to gtk+, so that people can fix their code.
We've been seeing failures in the LSB/desktop/gtkvts failures that seem to correspond to this change also. A sample of the test code: static void test_purpose_195() { #define STYLE widget->style #define DIRECTION GTK_TEXT_DIR_NONE #define TYPE GTK_STATE_NORMAL #define SIZE GTK_ICON_SIZE_MENU #define DETAIL NULL GtkIconSet *iconset; GtkStyle *style; GtkWidget* widget; GdkPixbuf* pixbuf; bug_inf = NULL; test_passed_flag = 1; all_test_purp_num++; fprintf (stderr, mark_symbol (all_test_purp_num)); tet_printf("test case: %s, TP number: %d ", tet_pname, tet_thistest); iconset = gtk_icon_set_new (); widget = gtk_image_new_from_icon_set (iconset,SIZE); pixbuf = gtk_icon_set_render_icon (iconset, STYLE, DIRECTION, TYPE, SIZE, widget, DETAIL ); if (!pixbuf) { TEST_FAIL ("Icon is not rendered",NULL); } ... The basic assertion of the test is that gtk_icon_set_render_icon() should never return NULL. ref: http://bugs.linuxbase.org/show_bug.cgi?id=3044
On win32 I am having problems with this, the error message is: Gtk:ERROR:gtkrecentmanager.c:1942:get_icon_fallback: assertion failed: (retval != NULL) And is caused by the GtkRecentChooserMenu widget on its own. The packages used are these: atk_1.32.0-1_win32.zip atk-dev_1.32.0-1_win32.zip bash-3.1.17-3-msys-1.0.13-bin.tar.lzma binutils-2.20.51-1-mingw32-bin.tar.lzma cairo_1.10.0-2_win32.zip cairo-dev_1.10.0-2_win32.zip coreutils-5.97-3-msys-1.0.13-bin.tar.lzma expat_2.0.1-1_win32.zip fontconfig_2.8.0-2_win32.zip fontconfig-dev_2.8.0-2_win32.zip freetype_2.4.2-1_win32.zip freetype-dev_2.4.2-1_win32.zip gcc-c++-4.5.0-1-mingw32-bin.tar.lzma gcc-core-4.5.0-1-mingw32-bin.tar.lzma gdb-7.2-1-mingw32-bin.tar.lzma gdk-pixbuf_2.22.0-1_win32.zip gdk-pixbuf-dev_2.22.0-1_win32.zip gettext-runtime_0.18.1.1-2_win32.zip gettext-runtime-dev_0.18.1.1-2_win32.zip glib_2.26.0-2_win32.zip glib-dev_2.26.0-2_win32.zip grep-2.5.4-2-msys-1.0.13-bin.tar.lzma gtk+_2.22.0-2_win32.zip gtk+-dev_2.22.0-2_win32.zip hicolor-icon-theme_0.10-1_win32.zip libgmp-5.0.1-1-mingw32-dll-10.tar.lzma libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma libintl-0.17-2-msys-dll-8.tar.lzma libmpc-0.8.1-1-mingw32-dll-2.tar.lzma libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma libpng_1.4.3-1_win32.zip libpng-dev_1.4.3-1_win32.zip libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma make-3.81-3-msys-1.0.13-bin.tar.lzma mingwrt-3.18-mingw32-dev.tar.gz mingwrt-3.18-mingw32-dll.tar.gz msysCORE-1.0.15-1-msys-1.0.15-bin.tar.lzma msysCORE-1.0.15-1-msys-1.0.15-ext.tar.lzma pango_1.28.3-1_win32.zip pango-dev_1.28.3-1_win32.zip pkg-config_0.23-3_win32.zip w32api-3.15-1-mingw32-dev.tar.lzma zlib_1.2.5-2_win32.zip
(In reply to comment #11) > Here is what I think about this issue: > > 1) What those mozilla themes do (or rather what firefox does with those stock > ids) is a bug in mozilla. Stock ids need to be looked up as stock items, icon > names need to be looked up in the icon theme. Has anyone reported this to bugzilla.mozilla.org? > > 2) I'd be willing to keep this working in the 2.x branch. A fix would require > adding corresponding symlinks to the stamp-icons: target in gtk/Makefile.am. > Patch welcome. Looks like openbsd is using: http://www.openbsd.org/cgi-bin/cvsweb/ports/x11/gtk%2B2/patches/patch-gtk_Makefile_in?rev=1.26;content-type=text/plain And also Arch: http://repos.archlinux.org/wsvn/packages/gtk2/trunk/old-icon-symlinks.patch
Reported to mozilla devs: https://bugzilla.mozilla.org/show_bug.cgi?id=621962
All the critical assertions here as well as the problem reported comment 13 (gtk_icon_set_render_icon breaking its promise never to return NULL) seem to be due to render_fallback_image in gtkiconfactory.c having the same "bug" as discovered in Gecko in comment 11. render_fallback_image is looking up the icon named "image-missing" with icon-name=GTK_STOCK_MISSING_IMAGE.
http://git.gnome.org/browse/gtk+/tree/gtk/gtkiconfactory.c?h=gtk-2-22#n1582
(In reply to comment #11) > 1) What those mozilla themes do (or rather what firefox does with those stock > ids) is a bug in mozilla. Stock ids need to be looked up as stock items, icon > names need to be looked up in the icon theme. What Gecko was doing FWIW was looking up a keyword ("gtk-go-back-ltr" in this case) first as a stock id to see if it exists. If that failed (which was and is still fine), the keyword was used as an icon name. Changes in bug 626474 mean that the icon name look-up fails. We can change Gecko to look up by stock id and direction, but icon themes (e.g. gnome-icon-theme) only provide a single "go-previous" icon (presumably because the Freedesktop Icon Naming Specification doesn't describe a means for providing directional variations). Is the intention that applications pick a single UI direction and select the icon theme based on direction. Is there a mechanism for that? Does GNOME have a "default" rtl icon theme?
i guess this should be closed as not a bug. ff4 has the
Created attachment 188346 [details] [review] Use the correct icon name for the 'missing' icon This issue is still valid in both the gtk2 and the gtk3 branches. If an application tries to render an image which can't be found, the render_fallback_image function is called, but this fails to load the fallback image as well due to the mismatch in naming of the icon. Due to this, the render_fallback_image function will return NULL and can cause assertion errors and/or crashes in other parts of the code (or theme engines). This behavior can also be seen in https://bugzilla.redhat.com/show_bug.cgi?id=667580 I've prepared a patch which makes the render_fallback_image function use the correct name for the 'missing' icon. Please consider applying this patch to both the gtk2 and gtk3 branches
I've pushed this fix to all relevant branches, thanks
I'm using gtk+-3.2.4 and have been chasing this firefox icon issue for some time. Just to clarify : is applying Erik's patch from #21 here the correct way to fix this issue? thx
No, I was getting two errors, now I get four (per icon). (firefox:28422): Gtk-WARNING **: Error loading theme icon 'go-next' for stock: Failed to load icon (firefox:28422): Gtk-CRITICAL **: render_fallback_image: assertion `pixbuf != NULL' failed (firefox:28422): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed (firefox:28422): GLib-GIO-CRITICAL **: g_loadable_icon_load: assertion `G_IS_LOADABLE_ICON (icon)' failed
(In reply to comment #23) > I'm using gtk+-3.2.4 and have been chasing this firefox icon issue for some > time. Firefox uses GTK 2: https://bugzilla.mozilla.org/show_bug.cgi?id=627699 Fix was committed to gtk-2-24 branch on 2012-01-05: http://git.gnome.org/browse/gtk+/commit/?h=gtk-2-24&id=fcd01e97187a0c58dfc5c0a4db29d2e92ec3c3de First 2.24 release after that release was 2.24.9: http://ftp.acc.umu.se/pub/GNOME/sources/gtk+/2.24/ Which GTK 2 version do you use?
Ah! no wonder I have not been making much progress, thanks. however, x11-libs/gtk+-2.24.10 :?
OK, just updated to 2.24.11 and all the console GTK errors have gone. that's a good start. However, still not seeing my ffux icons. Is that a separate issue now ? thx
Sorry, last comment is incorrect w.r.t this bug. I do now have forward/back What I do have is any icons to add (via the interface) for New tab , Reload , etc. If you can point to what that is about it would be helpful. As for this bug it seems fixed in 2.24.11 thx.
Don't understand what your question is.
Sorry, writing 'do' instead of 'do not' probably did not help clarity. Before all this icon chasing started I had firefox icons in the tabs section of the menubar that provided "new tab", "reload" and a couple of other things. Up until you helped fix gtk+ probs I was assuming this was all part of the same issue. Clearly not, now that the error have gone. Can you point me to where to look to address that problem. thx.
Very likely has nothing to do with this report (and people get bugmail), so better to ask on a mailing list or a support forum of your distribution, or (worst option as I'm neither a gtk nor a firefox expert) drop me a private email. No idea what you mean by "Firefox icons in the tabs section of the menubar". Two vague ideas: GNOME 2.28 by default disabled stock icons on buttons and in menu items. See http://blogs.operationaldynamics.com/andrew/software/gnome-desktop/where-did-all-the-icons-go . If you refer to missing favicons of websites, see https://bugzilla.mozilla.org/show_bug.cgi?id=742419 and https://bugzilla.mozilla.org/show_bug.cgi?id=748812 As said, offtopic for this report.