Closed
Bug 1281435
Opened 8 years ago
Closed 6 years ago
Keep up with GdkDrawingContext/Gtk 3.20
Categories
(Core :: Widget: Gtk, defect)
Tracking
()
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
firefox50 | --- | affected |
People
(Reporter: stransky, Unassigned)
References
(Blocks 1 open bug)
Details
See https://git.gnome.org/browse/gtk+/commit/?id=40ee61a686826ac8e937af720bc152895b10392b for details. We may play nice with Gtk 3.20.
Comment 1•8 years ago
|
||
I agree that Gecko should not disable double buffering on the toplevel if it is not drawing to the toplevel. With CSD GTK will be drawing to that window and Gecko should not change things. But Gecko disables double buffering on the toplevel only when !shellHasCSD http://searchfox.org/mozilla-central/rev/970569ad57ac4436ff31aa2ac63f38ed3ee2932d/widget/gtk/nsWindow.cpp#3920 So I don't understand the issue.
Reporter | ||
Comment 2•8 years ago
|
||
I pinged Red Hat gtk folks about it.
Comment 3•8 years ago
|
||
The commit message in question should give a bit of a background, but I guess the tl;dr is: we'd like GTK to keep double buffering top level windows, mostly because that's the only consistent behaviour we can adopt across all backends — especially on Wayland, where everything is by definition double buffered. Ideally, the shell GtkWindow should stay double buffered, while MozContainer could use the existing code path to create a child GdkWindow, and disable double buffering only on the container, for both the shellHasCSD and !shellHasCSD cases.
Reporter | ||
Comment 4•8 years ago
|
||
> Ideally, the shell GtkWindow should stay double buffered, while MozContainer
> could use the existing code path to create a child GdkWindow, and disable
> double buffering only on the container, for both the shellHasCSD and
> !shellHasCSD cases.
So you're talking about a situation when csd is disabled, right? Because Firefox doesn't disable double buffering on toplevel (mShell) when csd is enabled.
Flags: needinfo?(ebassi)
Reporter | ||
Comment 5•8 years ago
|
||
After some debugging it looks like Firefox does not get csd state reliably. For instance on Gnome-shell Wayland session when I run Firefox on Wayland display the csd is detected but when run on X display the csd state is false although it may be actually used.
Comment 6•8 years ago
|
||
¡Hola Martin! I happen to run Nightly from a terminal in Debian sid and got the lines below today. Shall I file a separate bug about them or are these part of https://bugzilla.mozilla.org/show_bug.cgi?id=1281435 ? ¡Gracias! Alex Gtk-Message: Failed to load module "canberra-gtk-module" (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to underallocate MozContainer's child GtkSocket 0x7fc9ea1eb950. Allocation is 0x0, but minimum required size is 1x1. (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to underallocate MozContainer's child GtkSocket 0x7fc9ea1eb950. Allocation is 0x0, but minimum required size is 1x1. (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to underallocate MozContainer's child GtkSocket 0x7fc9ea1eb950. Allocation is 0x0, but minimum required size is 1x1. Gtk-Message: Failed to load module "canberra-gtk-module" (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to underallocate MozContainer's child GtkSocket 0x7fc9ea1eb950. Allocation is 0x0, but minimum required size is 1x1. (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to underallocate MozContainer's child GtkSocket 0x7fc9ea1eb950. Allocation is 0x0, but minimum required size is 1x1. (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to underallocate MozContainer's child GtkSocket 0x7fc9ea1eb950. Allocation is 0x0, but minimum required size is 1x1. (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to underallocate MozContainer's child GtkSocket 0x7fc9ea1eb950. Allocation is 0x0, but minimum required size is 1x1. (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to underallocate MozContainer's child GtkSocket 0x7fc9e9fec350. Allocation is 0x0, but minimum required size is 1x1. (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to underallocate MozContainer's child GtkSocket 0x7fc9e9fec350. Allocation is 0x0, but minimum required size is 1x1. (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to underallocate MozContainer's child GtkSocket 0x7fc9e9fec350. Allocation is 0x0, but minimum required size is 1x1. (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to underallocate MozContainer's child GtkSocket 0x7fc9ea1eb950. Allocation is 0x0, but minimum required size is 1x1. Gtk-Message: Failed to load module "canberra-gtk-module" (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to underallocate MozContainer's child GtkSocket 0x7fc9e9fec350. Allocation is 0x0, but minimum required size is 1x1. (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to underallocate MozContainer's child GtkSocket 0x7fc9ea1eb950. Allocation is 0x0, but minimum required size is 1x1. (firefox:2213): Gtk-WARNING **: GtkSocket 0x7fc9ea1eb950 is mapped but visible=1 child_visible=1 parent MozContainer 0x7fc9d2226350 mapped=0 (firefox:2213): Gtk-WARNING **: GtkSocket 0x7fc9e9fec350 is mapped but visible=1 child_visible=1 parent MozContainer 0x7fc9d2226350 mapped=0
Flags: needinfo?(stransky)
Comment 7•8 years ago
|
||
(In reply to alex_mayorga from comment #6) > I happen to run Nightly from a terminal in Debian sid and got the lines > below today. > > Shall I file a separate bug about them or are these part of > https://bugzilla.mozilla.org/show_bug.cgi?id=1281435 ? No, these warnings are likely caused by something else in the MozContainer widget implementation. > (firefox:2213): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to > underallocate MozContainer's child GtkSocket 0x7fc9ea1eb950. Allocation is > 0x0, but minimum required size is 1x1. Widgets must have a minimum allocation of 1x1 for historical reasons (back when they were backed by a native windowing system surface the minimum size for them was at least 1 pixel width and height).
Reporter | ||
Comment 8•8 years ago
|
||
GtkSocket? Looks related to some plugin you run. Can you try in safe mode? (firefox -safe-mode) and disable plugins? If that's caused by some plugin please file a new bug for it.
Flags: needinfo?(stransky) → needinfo?(alex_mayorga)
Comment 9•7 years ago
|
||
¡Hola Martin! I no longer see the Gtk-WARNING. Now I wonder if the dconf-CRITICAL is bug worthy or a missconfiguration of my copy of Debian. ¡Gracias! Alex 1482886890027 addons.xpi WARN Exception running bootstrap method install on shield-recipe-client@mozilla.org: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPrefBranch.getBoolPref]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/alex/Escritorio/firefox-mx/browser/features/shield-recipe-client@mozilla.org.xpi!/bootstrap.js :: this.install :: line 38" data: no] Stack trace: this.install()@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/alex/Escritorio/firefox-mx/browser/features/shield-recipe-client@mozilla.org.xpi!/bootstrap.js:38 < callBootstrapMethod()@resource://gre/modules/addons/XPIProvider.jsm:4979 < processFileChanges()@resource://gre/modules/addons/XPIProvider.jsm -> resource://gre/modules/addons/XPIProviderUtils.js:2097 < checkForChanges()@resource://gre/modules/addons/XPIProvider.jsm:3825 < startup()@resource://gre/modules/addons/XPIProvider.jsm:2829 < callProvider()@resource://gre/modules/AddonManager.jsm:264 < _startProvider()@resource://gre/modules/AddonManager.jsm:771 < startup()@resource://gre/modules/AddonManager.jsm:957 < startup()@resource://gre/modules/AddonManager.jsm:2923 < observe()@resource://gre/components/addonManager.js:65 console.log: *** aboutsync: starting up data.id=b2g-installer@mozilla.org data.version=0.9.10 data.installPath=[xpconnect wrapped nsIFile] data.resourceURI=[xpconnect wrapped nsIURI] data.instanceID=Symbol(b2g-installer@mozilla.org) IN registerAddonResourceHandler WITH file=/home/alex/.mozilla/firefox/neieo8wu.default/extensions/b2g-installer@mozilla.org1482886890219 addons.xpi WARN Error loading bootstrap.js for {c37bac34-849a-4d28-be41-549b2c76c64e}: SyntaxError: non-generator method definitions may not contain yield (resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/alex/.mozilla/firefox/neieo8wu.default/extensions/%7Bc37bac34-849a-4d28-be41-549b2c76c64e%7D.xpi!/bootstrap.js:582:28) JS Stack trace: @XPIProvider.jsm:4831:1 < loadBootstrapScope@XPIProvider.jsm:4831:7 < callBootstrapMethod@XPIProvider.jsm:4910:9 < startup@XPIProvider.jsm:2884:13 < callProvider@AddonManager.jsm:264:12 < _startProvider@AddonManager.jsm:771:5 < startup@AddonManager.jsm:957:9 < startup@AddonManager.jsm:2923:5 < observe@addonManager.js:65:9 1482886890220 addons.xpi WARN Add-on {c37bac34-849a-4d28-be41-549b2c76c64e} is missing bootstrap method startup 1482886890655 addons.webextension.jid1-mjpB54bRzP9Zxw@jetpack WARN Please specify whether you want browser_style or not in your browser_action options. (/home/alex/Escritorio/firefox-mx/firefox:20415): dconf-CRITICAL **: unable to create file '/run/user/1000/dconf/user': Permiso denegado. dconf will not work properly. (/home/alex/Escritorio/firefox-mx/firefox:20415): dconf-CRITICAL **: unable to create file '/run/user/1000/dconf/user': Permiso denegado. dconf will not work properly. (/home/alex/Escritorio/firefox-mx/firefox:20415): dconf-CRITICAL **: unable to create file '/run/user/1000/dconf/user': Permiso denegado. dconf will not work properly.
Flags: needinfo?(alex_mayorga)
Updated•7 years ago
|
Blocks: gtk3-pre-3.20
Reporter | ||
Updated•6 years ago
|
Flags: needinfo?(ebassi)
Reporter | ||
Comment 10•6 years ago
|
||
We already do what's requested at (In reply to Karl Tomlinson (:karlt) from comment #1) > I agree that Gecko should not disable double buffering on the toplevel if it > is not drawing to the toplevel. With CSD GTK will be drawing to that window > and Gecko should not change things. > > But Gecko disables double buffering on the toplevel only when !shellHasCSD > http://searchfox.org/mozilla-central/rev/ > 970569ad57ac4436ff31aa2ac63f38ed3ee2932d/widget/gtk/nsWindow.cpp#3920 > > So I don't understand the issue. You're right, let's close it.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•