Issue metadata
Sign in to add a comment
|
Notifications no longer show in a bubble - they have their own separate window |
||||||||||||||||||||||
Issue descriptionChrome Version: 64.0.3253.3 (Official Build) dev (64-bit) OS: Goobuntu Trusty Windows manager: LXDE + OpenBox What steps will reproduce the problem? (1) Go to https://davidwalsh.name/demo/notifications-api.php (2) Press "Show a Notification" button What is the expected result? A subtle bubble shows up in a bottom-right corner. What happens instead? - A new obnoxious dialog window shows up with Ok/Cancel buttons - see the attached screenshot which contains multiple of them. - The dialog window is visible in the taskbar / on the window list.
,
Nov 3 2017
I'll try bisecting in a moment. This is really annoying (hangouts uses web notifications - I get a new dialog window for *every*, *single* message from the team chat...).
,
Nov 3 2017
For reference attaching how the old notification looked like. In particular, I do notice a "settings" / "gear" icon that is missing in the new dialog window.
,
Nov 3 2017
Bisecting didn't work - I only get "good" behavior between r509944 and r513639. Notifications don't work in incognito mode, so I can't check that. FWIW, below is the list of experiments I am in: c134752e-b8b72c88 61fba06-ca7d8d80 1e528f0f-15305a2 b130ecb8-2e32ee7e ca05d627-3f4a17df 7c1bc906-6790560b 47e5d3db-3d47f4f4 1210a805-ecd831c 34d450b1-3f4a17df 79616653-3f4a17df 19c1fdaf-3f4a17df 3042ad4b-cf4f6ead 591576c8-ace4e138 44c96c7b-f23d1dea 57f575bb-3f4a17df 2e5ffa4b-f23d1dea b72f69e9-3f4a17df 4b61504a-e8b77cbe 9773d3bd-7c7ea110 93731dca-e89d496c 8fa604e0-f23d1dea 99144bc3-c3f822de 9e5c75f1-3c439a48 f79cb77b-3f4a17df 4ea303a6-759f970c d92562a9-ca7d8d80 90bcbadc-7737cf5f 25fc488a-f23d1dea 1aecb842-f23d1dea 1bced4a3-7f6272b7 4932440-f23d1dea 757a5d98-ca7d8d80 6e6e1048-3f4a17df b2f0086-870290a7 ef25c1eb-3f4a17df 4bc337ce-66edfe5b 3ac60855-3ec2a267 f296190c-6e3b1976 4442aae2-75cb33fc ed1d377-e1cc0f14 75f0f0a0-a5822863 e2b18481-a90023b1 e7e71889-e1cc0f14 f5fff3a2-f23d1dea 41aa6aaa-da82a76f f141d4bc-65bced95 e9ce63c1-5bda69fd 81c6897f-2d9ebb2e da4aaa01-3f4a17df
,
Nov 3 2017
Attaching again the screenshot of the new behavior (for some reason I can't find it in the bug's original descritpion).
,
Nov 3 2017
This is a UI change right? Should it go to the UX folks, or whomever works in this area?
,
Nov 3 2017
FWIW, I can't repro after restarting. I am still on 64.0.3253.3, but obviously the finch hashes changed. I see that the following ones were present only when the problem was still reproing: 44c96c7b-f23d1dea 4ea303a6-759f970c 6e6e1048-3f4a17df 9773d3bd-7c7ea110 e9ce63c1-5bda69fd OTOH, the experiments above don't seem related in any way to web notifications or UI.
,
Nov 3 2017
Since I can't repro anymore, it is probably okay to resolve as WontFix?
,
Nov 3 2017
That looks incredible. Tom, I guess this is what we're going to give LXDE + OpenBox users? For the record, we're switching to native notifications on Linux. See Issue 773790. You'll continue to be able to disable it through chrome://flags.
,
Nov 4 2017
Oh my, those cancel and OK buttons O_O I installed openbox/lxde and my notifications look ok, they're definitely not dialogs. You said that you cannot repro any more, does that mean your system is using chrome notifications again, or that the system notification server is doing something reasonable now? If it's the former, please try reenabling native notifications (search for "native notifications" in chrome://flags), install d-feet, run it, click on "session bus", search for "org.freedesktop.Notifications" and tell me what it says under cmd.
,
Nov 6 2017
RE: #c10 I have opted into native notifications via chrome://flags/#enable-native-notifications and everything looks ok (i.e. I get the old kind of notification bubble - like the one I attached to #c3). I don't know what changed or what caused the problematic behavior back when I could repro... :-/ xprop shows the following for the (properly looking) notification bubble: $ xprop _NET_WM_USER_TIME(CARDINAL) = 0 WM_NORMAL_HINTS(WM_SIZE_HINTS): program specified location: 1905, 1110 XdndAware(ATOM) = BITMAP _MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x0, 0x0, 0x0 _NET_WM_ICON(CARDINAL) = Icon (64 x 64): ... WM_WINDOW_ROLE(STRING) = "popup" _NET_WM_STATE(ATOM) = _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_ABOVE _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NOTIFICATION _NET_WM_PID(CARDINAL) = 89238 WM_LOCALE_NAME(STRING) = "en_US.UTF-8" WM_CLIENT_MACHINE(STRING) = "lukasza-dev.kir.corp.google.com" WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, _NET_WM_PING FWIW, despite no repro, I still tried to install d-feet and I did find org.freedesktop.Notifications but 1) I don't know where to look for "cmd", 2) GetServerInformation gives me back "notify-osd" and 3) Introspect gives me back: <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> <node> <interface name="org.freedesktop.DBus.Introspectable"> <method name="Introspect"> <arg name="data" direction="out" type="s"/> </method> </interface> <interface name="org.freedesktop.DBus.Properties"> <method name="Get"> <arg name="interface" direction="in" type="s"/> <arg name="propname" direction="in" type="s"/> <arg name="value" direction="out" type="v"/> </method> <method name="Set"> <arg name="interface" direction="in" type="s"/> <arg name="propname" direction="in" type="s"/> <arg name="value" direction="in" type="v"/> </method> <method name="GetAll"> <arg name="interface" direction="in" type="s"/> <arg name="props" direction="out" type="a{sv}"/> </method> </interface> <interface name="org.freedesktop.Notifications"> <method name="GetServerInformation"> <arg name="return_name" type="s" direction="out"/> <arg name="return_vendor" type="s" direction="out"/> <arg name="return_version" type="s" direction="out"/> <arg name="return_spec_version" type="s" direction="out"/> </method> <method name="GetCapabilities"> <arg name="return_caps" type="as" direction="out"/> </method> <method name="CloseNotification"> <arg name="id" type="u" direction="in"/> </method> <method name="Notify"> <arg name="app_name" type="s" direction="in"/> <arg name="id" type="u" direction="in"/> <arg name="icon" type="s" direction="in"/> <arg name="summary" type="s" direction="in"/> <arg name="body" type="s" direction="in"/> <arg name="actions" type="as" direction="in"/> <arg name="hints" type="a{sv}" direction="in"/> <arg name="timeout" type="i" direction="in"/> <arg name="return_id" type="u" direction="out"/> </method> </interface> </node> Not sure if there is anything more that can be done for this bug?
,
Nov 6 2017
Thanks, that's the info I needed. You're using Notify OSD, which doesn't have support for actions (but when you give it an action anyway, it uses those horrible looking dialogs). The correct behavior is to fallback to using Chrome notifications for this notification server, so glad to hear that's working now. I guess Notify OSD must have bugged out somehow and said that it supported actions? Or maybe you accidentally had 2 notification servers running at once, one that supported actions and one that didn't? Either way, there's nothing Chrome can do in those cases, so I'm closing this issue out.
,
Nov 9 2017
This behavior came back today, after a reboot. Using d-feet I see: - org.freedesktop.Notifications.GetServerInformation returns: "notify-osd" - org.freedesktop.Notifications.GetCapabilities returns: ['body', 'body-markup', 'icon-static', 'image/svg+xml', 'x-canonical-private-synchronous', 'x-canonical-append', 'x-canonical-private-icon-only', 'x-canonical-truncation', 'private-synchronous', 'append', 'private-icon-only', 'truncation'] - I don't know how to execute DBug.Properties.GetAll(String interface) - I don't know how and what to specify as the argument. Let me try restarting Chrome. I bet it will heal itself this way...
,
Nov 9 2017
Very odd. Your GetCapabilities call shows that notify-osd doesn't support actions, but we blacklist this case https://cs.chromium.org/chromium/src/chrome/browser/notifications/notification_platform_bridge_linux.cc?l=458 Is it possible that notify-osd really is returning that actions are supported to chrome? I really want to get to the bottom of this. Could you try running $ dbus-monitor --session "interface='org.freedesktop.Notifications'" which will spy on all dbus notification traffic. While this is active, restart chrome a few times until you get a good run and a bad run, so that we can compare if there's any difference.
,
Nov 9 2017
Yup - this has healed itself after Chrome restart.
,
Nov 9 2017
thomasanderson@ - is this still a WontFix in light of #c14 and #c15? Just double-checking / I am not familiar with this area at all. The fact that this issue goes away after restarting Chrome might indicate that this is a problem within Chrome after all, right?
,
Nov 9 2017
It's definitely possible. But I think what's more likely is Chrome is started with a notification server that supports actions, which gets replaced by notifyosd (or notifyosd is even running at the same time as a different notification server). But I cannot reproduce this, so there's not much I can do right now. Could you try the debugging from c#14? You don't have to restart your chrome session to do the debugging. You can launch with google-chrome-unstable --user-data-dir=/tmp/test
,
Nov 9 2017
So - here is what I did: 1. Reboot 2. Don't launch Chrome yet 3. Run: $ dbus-monitor --session "interface='org.freedesktop.Notifications'" 2>&1 | tee ~/scratch/dbus.out 4. In parallel, launch Chrome: $ google-chrome-unstable --user-data-dir=$HOME/.chrome-notifications4 5. Navigate to https://davidwalsh.name/demo/notifications-api.php 6. Trigger a notification 7. Approve notifications in Chrome 8. Trigger a notification again At this point A) the problem [ugly dialogs] reproed and B) the output from dbus looked as follows: signal sender=org.freedesktop.DBus -> dest=:1.37 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired string ":1.37" method call sender=:1.40 -> dest=org.freedesktop.Notifications serial=3 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=GetCapabilities method call sender=:1.40 -> dest=org.freedesktop.Notifications serial=8 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify string "Google Chrome" uint32 0 string "file:///tmp/.com.google.Chrome.WE435M" string "Title" string "<a href="https://davidwalsh.name/">davidwalsh.name</a> I am the body text!" array [ string "default" string "Activate" string "settings" string "Settings" ] array [ dict entry( string "urgency" variant uint32 1 ) dict entry( string "desktop-entry" variant string "google-chrome-unstable" ) ] int32 -1 method call sender=:1.40 -> dest=org.freedesktop.Notifications serial=9 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify string "Google Chrome" uint32 0 string "file:///tmp/.com.google.Chrome.WE435M" string "Title" string "<a href="https://davidwalsh.name/">davidwalsh.name</a> I am the body text!" array [ string "default" string "Activate" string "settings" string "Settings" ] array [ dict entry( string "urgency" variant uint32 1 ) dict entry( string "desktop-entry" variant string "google-chrome-unstable" ) ] int32 -1 method call sender=:1.40 -> dest=org.freedesktop.Notifications serial=10 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify string "Google Chrome" uint32 0 string "file:///tmp/.com.google.Chrome.WE435M" string "Title" string "<a href="https://davidwalsh.name/">davidwalsh.name</a> I am the body text!" array [ string "default" string "Activate" string "settings" string "Settings" ] array [ dict entry( string "urgency" variant uint32 1 ) dict entry( string "desktop-entry" variant string "google-chrome-unstable" ) ] int32 -1 What I did next was: 9. Exit Chrome (including closing the dialogs :-/) 10. Launch Chrome again: $ google-chrome-unstable --user-data-dir=$HOME/.chrome-notifications4 11. Navigate to https://davidwalsh.name/demo/notifications-api.php 12. Trigger a notification This time A) the notification showed in a nice bubble and B) the following extra output of dbus was emitted (omitting previous output): method call sender=:1.55 -> dest=org.freedesktop.Notifications serial=3 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=GetCapabilities Let me try rebooting one more time and manually executing GetCapabilities via d-feet.
,
Nov 9 2017
After a reboot, I did the following:
1. d-feet shows that
- Notifications.GetCapabilities() returns ['actions', 'body', 'body-hyperlinks', 'body-markup', 'icon-static', 'sound', 'persistence', 'action-icons']
- Notifications.GetServerInformation() returns "Notification Daemon"
2. This time after triggerring a notification I got a different looking bubble (black, quite big, top-right corner) than usual (white, small, bottom-right corner). No screenshot because the bubble disappeared relatively fast.
3. The second time I triggerred a notification, I got the ugly dialog.
4. d-feet not shows that
- Notifications.GetCapabilities() returns ['body', 'body-markup', 'icon-static', 'image/svg+xml', 'x-canonical-private-synchronous', 'x-canonical-append', 'x-canonical-private-icon-only', 'x-canonical-truncation', 'private-synchronous', 'append', 'private-icon-only', 'truncation']
- Notifications.GetServerInformation() returns "notify-osd"
I have no idea what I wrote above means :-)
,
Nov 9 2017
Ah, that would explain it. You really do have 2 notification daemons running. The odd one is notification-daemon https://github.com/GNOME/notification-daemon which is usually used on GNOME flashback. You can get rid of it with $ sudo apt-get remove notification-daemon The good news is that this is definitely not a Chrome bug, so I'm WontFix'ing this again. |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by lukasza@chromium.org
, Nov 3 2017