зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1266054: GTK+: Hold references to |DBusMessage| in |RefPtr|, r=karlt
MozReview-Commit-ID: CuweWk1ZMT1
This commit is contained in:
Родитель
51bb662a3f
Коммит
e4b9259642
|
@ -7,10 +7,12 @@
|
||||||
|
|
||||||
#ifdef MOZ_ENABLE_DBUS
|
#ifdef MOZ_ENABLE_DBUS
|
||||||
|
|
||||||
|
#include "WakeLockListener.h"
|
||||||
|
|
||||||
#include <dbus/dbus.h>
|
#include <dbus/dbus.h>
|
||||||
#include <dbus/dbus-glib-lowlevel.h>
|
#include <dbus/dbus-glib-lowlevel.h>
|
||||||
|
|
||||||
#include "WakeLockListener.h"
|
#include "mozilla/ipc/DBusMessageRefPtr.h"
|
||||||
|
|
||||||
#define FREEDESKTOP_SCREENSAVER_TARGET "org.freedesktop.ScreenSaver"
|
#define FREEDESKTOP_SCREENSAVER_TARGET "org.freedesktop.ScreenSaver"
|
||||||
#define FREEDESKTOP_SCREENSAVER_OBJECT "/ScreenSaver"
|
#define FREEDESKTOP_SCREENSAVER_OBJECT "/ScreenSaver"
|
||||||
|
@ -82,8 +84,6 @@ WakeLockTopic::SendMessage(DBusMessage* aMessage)
|
||||||
DBusPendingCall* reply;
|
DBusPendingCall* reply;
|
||||||
dbus_connection_send_with_reply(mConnection, aMessage, &reply,
|
dbus_connection_send_with_reply(mConnection, aMessage, &reply,
|
||||||
DBUS_TIMEOUT);
|
DBUS_TIMEOUT);
|
||||||
dbus_message_unref(aMessage);
|
|
||||||
|
|
||||||
if (!reply) {
|
if (!reply) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -97,11 +97,11 @@ WakeLockTopic::SendMessage(DBusMessage* aMessage)
|
||||||
bool
|
bool
|
||||||
WakeLockTopic::SendFreeDesktopInhibitMessage()
|
WakeLockTopic::SendFreeDesktopInhibitMessage()
|
||||||
{
|
{
|
||||||
DBusMessage* message =
|
RefPtr<DBusMessage> message = already_AddRefed<DBusMessage>(
|
||||||
dbus_message_new_method_call(FREEDESKTOP_SCREENSAVER_TARGET,
|
dbus_message_new_method_call(FREEDESKTOP_SCREENSAVER_TARGET,
|
||||||
FREEDESKTOP_SCREENSAVER_OBJECT,
|
FREEDESKTOP_SCREENSAVER_OBJECT,
|
||||||
FREEDESKTOP_SCREENSAVER_INTERFACE,
|
FREEDESKTOP_SCREENSAVER_INTERFACE,
|
||||||
"Inhibit");
|
"Inhibit"));
|
||||||
|
|
||||||
if (!message) {
|
if (!message) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -120,11 +120,11 @@ WakeLockTopic::SendFreeDesktopInhibitMessage()
|
||||||
bool
|
bool
|
||||||
WakeLockTopic::SendGNOMEInhibitMessage()
|
WakeLockTopic::SendGNOMEInhibitMessage()
|
||||||
{
|
{
|
||||||
DBusMessage* message =
|
RefPtr<DBusMessage> message = already_AddRefed<DBusMessage>(
|
||||||
dbus_message_new_method_call(SESSION_MANAGER_TARGET,
|
dbus_message_new_method_call(SESSION_MANAGER_TARGET,
|
||||||
SESSION_MANAGER_OBJECT,
|
SESSION_MANAGER_OBJECT,
|
||||||
SESSION_MANAGER_INTERFACE,
|
SESSION_MANAGER_INTERFACE,
|
||||||
"Inhibit");
|
"Inhibit"));
|
||||||
|
|
||||||
if (!message) {
|
if (!message) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -172,20 +172,20 @@ WakeLockTopic::SendInhibit()
|
||||||
bool
|
bool
|
||||||
WakeLockTopic::SendUninhibit()
|
WakeLockTopic::SendUninhibit()
|
||||||
{
|
{
|
||||||
DBusMessage* message = nullptr;
|
RefPtr<DBusMessage> message;
|
||||||
|
|
||||||
if (mDesktopEnvironment == FreeDesktop) {
|
if (mDesktopEnvironment == FreeDesktop) {
|
||||||
message =
|
message = already_AddRefed<DBusMessage>(
|
||||||
dbus_message_new_method_call(FREEDESKTOP_SCREENSAVER_TARGET,
|
dbus_message_new_method_call(FREEDESKTOP_SCREENSAVER_TARGET,
|
||||||
FREEDESKTOP_SCREENSAVER_OBJECT,
|
FREEDESKTOP_SCREENSAVER_OBJECT,
|
||||||
FREEDESKTOP_SCREENSAVER_INTERFACE,
|
FREEDESKTOP_SCREENSAVER_INTERFACE,
|
||||||
"UnInhibit");
|
"UnInhibit"));
|
||||||
} else if (mDesktopEnvironment == GNOME) {
|
} else if (mDesktopEnvironment == GNOME) {
|
||||||
message =
|
message = already_AddRefed<DBusMessage>(
|
||||||
dbus_message_new_method_call(SESSION_MANAGER_TARGET,
|
dbus_message_new_method_call(SESSION_MANAGER_TARGET,
|
||||||
SESSION_MANAGER_OBJECT,
|
SESSION_MANAGER_OBJECT,
|
||||||
SESSION_MANAGER_INTERFACE,
|
SESSION_MANAGER_INTERFACE,
|
||||||
"Uninhibit");
|
"Uninhibit"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!message) {
|
if (!message) {
|
||||||
|
@ -198,7 +198,6 @@ WakeLockTopic::SendUninhibit()
|
||||||
|
|
||||||
dbus_connection_send(mConnection, message, nullptr);
|
dbus_connection_send(mConnection, message, nullptr);
|
||||||
dbus_connection_flush(mConnection);
|
dbus_connection_flush(mConnection);
|
||||||
dbus_message_unref(message);
|
|
||||||
|
|
||||||
mInhibitRequest = 0;
|
mInhibitRequest = 0;
|
||||||
|
|
||||||
|
@ -291,7 +290,8 @@ WakeLockTopic::ReceiveInhibitReply(DBusPendingCall* pending, void* user_data)
|
||||||
|
|
||||||
WakeLockTopic* self = static_cast<WakeLockTopic*>(user_data);
|
WakeLockTopic* self = static_cast<WakeLockTopic*>(user_data);
|
||||||
|
|
||||||
DBusMessage* msg = dbus_pending_call_steal_reply(pending);
|
RefPtr<DBusMessage> msg = already_AddRefed<DBusMessage>(
|
||||||
|
dbus_pending_call_steal_reply(pending));
|
||||||
if (!msg) {
|
if (!msg) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -306,8 +306,6 @@ WakeLockTopic::ReceiveInhibitReply(DBusPendingCall* pending, void* user_data)
|
||||||
} else {
|
} else {
|
||||||
self->InhibitFailed();
|
self->InhibitFailed();
|
||||||
}
|
}
|
||||||
|
|
||||||
dbus_message_unref(msg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче