fune/toolkit/components/remote/nsXRemoteService.h
Martin Stransky 6657eb539e Bug 1360566 - [Wayland] - Implement XRemote Server by D-Bus, r=jhorak
It creates new nsRemoteService instance which is parent (proxy) class which is registered as global nsIRemoteService. It provides basic functionality (watch observer for shutdown, launch firefox instance by HandleCommandLine()) for child services which are system specific. nsDBusRemoteService listens on DBus interface and it's available on DBus enabled systems only. nsGtkRemoteService is the former one based on X window propery mechanism.

MozReview-Commit-ID: GHpXdjstwyY

--HG--
extra : rebase_source : 54847a04ebd0bae6dc3d33352e8155a1e3fa09f4
2017-11-09 12:13:32 +01:00

54 lines
1.5 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:expandtab:shiftwidth=2:tabstop=8:
*/
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef NSXREMOTESERVICE_H
#define NSXREMOTESERVICE_H
#include "nsString.h"
#include <X11/Xlib.h>
#include <X11/X.h>
class nsIDOMWindow;
class nsIWeakReference;
#ifdef IS_BIG_ENDIAN
#define TO_LITTLE_ENDIAN32(x) \
((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \
(((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
#else
#define TO_LITTLE_ENDIAN32(x) (x)
#endif
/**
Base class for GTK/Qt remote service
*/
class nsXRemoteService
{
protected:
nsXRemoteService();
static bool HandleNewProperty(Window aWindowId,Display* aDisplay,
Time aEventTime, Atom aChangedAtom,
nsIWeakReference* aDomWindow);
void XRemoteBaseStartup(const char *aAppName, const char *aProfileName);
void HandleCommandsFor(Window aWindowId);
private:
void EnsureAtoms();
nsCString mAppName;
nsCString mProfileName;
static Atom sMozVersionAtom;
static Atom sMozLockAtom;
static Atom sMozResponseAtom;
static Atom sMozUserAtom;
static Atom sMozProfileAtom;
static Atom sMozProgramAtom;
static Atom sMozCommandLineAtom;
};
#endif // NSXREMOTESERVICE_H