Comment on attachment 8419908 Implement WakeLockListener on Linux to disable screensaver while video is playing
>+NS_IMPL_ISUPPORTS1(WakeLockListener, nsIDOMMozWakeLockListener) Will need to remove the '1' here now. >+ dbus_pending_call_set_notify(reply, &ReceiveInhibitReply, this, NULL); |this| needs to stay alive until the reply is received, and I assume that may be after the power manager service is deleted. There are probably several ways to handle this: perhaps add a reference to the WakeLockListener, and remove in free_user_data; or make the WakeLockListener a singleton and check that it still exists in ReceiveInhibitReply(). >+ DBusError err; >+ dbus_error_init(&err); This should be freed if set, but easier is to just pass nullptr. >+WakeLockTopic::InhibitScreensaver() >+{ >+ NS_ASSERTION(!mShouldInhibit, "Screensaver is already inhibited"); >+WakeLockTopic::UninhibitScreensaver() >+{ >+ if (!mShouldInhibit) { >+ // Screensaver isn't inhibited. Nothing to do here. >+ return NS_OK; Could this instead assert that this path is not reached, as in InhibitScreensaver()? >+ nsClassHashtable<nsStringHashKey, WakeLockTopic> mTopics; Topics are never removed from this hashtable (until shutdown). Is there a small finite sized set of topics? Please add a comment stating this assumption. >+ virtual ~WakeLockListener() MOZ_FINAL; By moving the MOZ_FINAL to the class definition, this destructor need not be virtual. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/434476 Title: screensaver starts while playing HTML5 videos To manage notifications about this bug go to: https://bugs.launchpad.net/firefox/+bug/434476/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs