зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1661450 - 2/8 Add wayland required code getting opt-out by disabling MOZ_X11 r=stransky,rmader
Ensure shared code with MOZ_X11 and MOZ_WAYLAND remains when MOZ_X11 is undefined Depends on D139526 Differential Revision: https://phabricator.services.mozilla.com/D139528
This commit is contained in:
Родитель
fc2a921247
Коммит
f01acfd647
|
@ -75,9 +75,11 @@
|
|||
#include "mozilla/dom/DOMRect.h"
|
||||
#include <algorithm>
|
||||
|
||||
#if defined(MOZ_X11) && defined(MOZ_WIDGET_GTK)
|
||||
#if defined(MOZ_WIDGET_GTK)
|
||||
# include <gdk/gdk.h>
|
||||
# include <gdk/gdkx.h>
|
||||
# if defined(MOZ_X11)
|
||||
# include <gdk/gdkx.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include "Layers.h"
|
||||
|
|
|
@ -55,8 +55,10 @@
|
|||
#define CAIRO_HAS_PDF_SURFACE 1
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_X11
|
||||
#if defined(MOZ_X11) || defined(MOZ_WAYLAND)
|
||||
#define CAIRO_HAS_PS_SURFACE 1
|
||||
#endif
|
||||
#ifdef MOZ_X11
|
||||
#define CAIRO_HAS_XLIB_XRENDER_SURFACE 0
|
||||
#define CAIRO_HAS_XLIB_SURFACE 1
|
||||
#endif
|
||||
|
|
|
@ -325,7 +325,6 @@ already_AddRefed<gfxASurface> gfxPlatformGtk::CreateOffscreenSurface(
|
|||
|
||||
RefPtr<gfxASurface> newSurface;
|
||||
bool needsClear = true;
|
||||
#ifdef MOZ_X11
|
||||
// XXX we really need a different interface here, something that passes
|
||||
// in more context, including the display and/or target surface type that
|
||||
// we should try to match
|
||||
|
@ -336,7 +335,6 @@ already_AddRefed<gfxASurface> gfxPlatformGtk::CreateOffscreenSurface(
|
|||
// waste time clearing again
|
||||
needsClear = false;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!newSurface) {
|
||||
// We couldn't create a native surface for whatever reason;
|
||||
|
@ -951,8 +949,10 @@ class XrandrSoftwareVsyncSource final : public SoftwareVsyncSource {
|
|||
return rate;
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
already_AddRefed<gfx::VsyncSource> gfxPlatformGtk::CreateHardwareVsyncSource() {
|
||||
#ifdef MOZ_X11
|
||||
if (IsHeadless() || IsWaylandDisplay()) {
|
||||
// On Wayland we can not create a global hardware based vsync source, thus
|
||||
// use a software based one here. We create window specific ones later.
|
||||
|
@ -988,8 +988,10 @@ already_AddRefed<gfx::VsyncSource> gfxPlatformGtk::CreateHardwareVsyncSource() {
|
|||
|
||||
RefPtr<VsyncSource> softwareVsync = new XrandrSoftwareVsyncSource();
|
||||
return softwareVsync.forget();
|
||||
}
|
||||
#else
|
||||
return gfxPlatform::CreateHardwareVsyncSource();
|
||||
#endif
|
||||
}
|
||||
|
||||
void gfxPlatformGtk::BuildContentDeviceData(ContentDeviceData* aOut) {
|
||||
gfxPlatform::BuildContentDeviceData(aOut);
|
||||
|
|
|
@ -55,10 +55,8 @@ class gfxPlatformGtk final : public gfxPlatform {
|
|||
|
||||
bool AccelerateLayersByDefault() override;
|
||||
|
||||
#ifdef MOZ_X11
|
||||
already_AddRefed<mozilla::gfx::VsyncSource> CreateHardwareVsyncSource()
|
||||
override;
|
||||
#endif
|
||||
|
||||
bool IsX11Display() { return mIsX11Display; }
|
||||
bool IsWaylandDisplay() override {
|
||||
|
|
|
@ -62,7 +62,8 @@ class CompositorWidgetDelegate {
|
|||
};
|
||||
|
||||
// Platforms that support out-of-process widgets.
|
||||
#if defined(XP_WIN) || defined(MOZ_X11) || defined(MOZ_WIDGET_ANDROID)
|
||||
#if defined(XP_WIN) || defined(MOZ_X11) || defined(MOZ_WIDGET_ANDROID) || \
|
||||
defined(MOZ_WAYLAND)
|
||||
// CompositorWidgetParent should implement CompositorWidget and
|
||||
// PCompositorWidgetParent.
|
||||
class CompositorWidgetParent;
|
||||
|
|
|
@ -33,7 +33,6 @@ TaskbarProgress::~TaskbarProgress() {
|
|||
NS_IMETHODIMP
|
||||
TaskbarProgress::SetProgressState(nsTaskbarProgressState aState,
|
||||
uint64_t aCurrentValue, uint64_t aMaxValue) {
|
||||
#ifdef MOZ_X11
|
||||
NS_ENSURE_ARG_RANGE(aState, 0, STATE_PAUSED);
|
||||
|
||||
if (aState == STATE_NO_PROGRESS || aState == STATE_INDETERMINATE) {
|
||||
|
@ -72,7 +71,6 @@ TaskbarProgress::SetProgressState(nsTaskbarProgressState aState,
|
|||
("GtkTaskbarProgress::SetProgressState progress: %lu", progress));
|
||||
|
||||
mPrimaryWindow->SetProgress(progress);
|
||||
#endif
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
|
@ -76,53 +76,49 @@ Classes = [
|
|||
'headers': ['/widget/gtk/nsApplicationChooser.h'],
|
||||
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
||||
},
|
||||
{
|
||||
'js_name': 'clipboard',
|
||||
'cid': '{8b5314ba-db01-11d2-96ce-0060b0fb9956}',
|
||||
'contract_ids': ['@mozilla.org/widget/clipboard;1'],
|
||||
'interfaces': ['nsIClipboard'],
|
||||
'type': 'nsIClipboard',
|
||||
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
||||
'overridable': True,
|
||||
},
|
||||
{
|
||||
'cid': '{77221d5a-1dd2-11b2-8c69-c710f15d2ed5}',
|
||||
'contract_ids': ['@mozilla.org/widget/clipboardhelper;1'],
|
||||
'type': 'nsClipboardHelper',
|
||||
'headers': ['/widget/nsClipboardHelper.h'],
|
||||
},
|
||||
{
|
||||
'cid': '{8b5314bb-db01-11d2-96ce-0060b0fb9956}',
|
||||
'contract_ids': ['@mozilla.org/widget/dragservice;1'],
|
||||
'singleton': True,
|
||||
'type': 'nsDragService',
|
||||
'headers': ['/widget/gtk/nsDragService.h'],
|
||||
'constructor': 'nsDragService::GetInstance',
|
||||
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
||||
},
|
||||
{
|
||||
'name': 'GfxInfo',
|
||||
'cid': '{d755a760-9f27-11df-0800-200c9a664242}',
|
||||
'contract_ids': ['@mozilla.org/gfx/info;1'],
|
||||
'type': 'mozilla::widget::GfxInfo',
|
||||
'headers': ['/widget/gtk/GfxInfo.h'],
|
||||
'init_method': 'Init',
|
||||
'processes': ProcessSelector.ALLOW_IN_GPU_PROCESS,
|
||||
},
|
||||
{
|
||||
'cid': '{6987230e-0098-4e78-bc5f-1493ee7519fa}',
|
||||
'contract_ids': ['@mozilla.org/widget/useridleservice;1'],
|
||||
'singleton': True,
|
||||
'type': 'nsUserIdleService',
|
||||
'headers': ['/widget/gtk/nsUserIdleServiceGTK.h'],
|
||||
'constructor': 'nsUserIdleServiceGTK::GetInstance',
|
||||
},
|
||||
]
|
||||
|
||||
if defined('MOZ_X11'):
|
||||
Classes += [
|
||||
{
|
||||
'js_name': 'clipboard',
|
||||
'cid': '{8b5314ba-db01-11d2-96ce-0060b0fb9956}',
|
||||
'contract_ids': ['@mozilla.org/widget/clipboard;1'],
|
||||
'interfaces': ['nsIClipboard'],
|
||||
'type': 'nsIClipboard',
|
||||
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
||||
'overridable': True,
|
||||
},
|
||||
{
|
||||
'cid': '{77221d5a-1dd2-11b2-8c69-c710f15d2ed5}',
|
||||
'contract_ids': ['@mozilla.org/widget/clipboardhelper;1'],
|
||||
'type': 'nsClipboardHelper',
|
||||
'headers': ['/widget/nsClipboardHelper.h'],
|
||||
},
|
||||
{
|
||||
'cid': '{8b5314bb-db01-11d2-96ce-0060b0fb9956}',
|
||||
'contract_ids': ['@mozilla.org/widget/dragservice;1'],
|
||||
'singleton': True,
|
||||
'type': 'nsDragService',
|
||||
'headers': ['/widget/gtk/nsDragService.h'],
|
||||
'constructor': 'nsDragService::GetInstance',
|
||||
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
|
||||
},
|
||||
{
|
||||
'name': 'GfxInfo',
|
||||
'cid': '{d755a760-9f27-11df-0800-200c9a664242}',
|
||||
'contract_ids': ['@mozilla.org/gfx/info;1'],
|
||||
'type': 'mozilla::widget::GfxInfo',
|
||||
'headers': ['/widget/gtk/GfxInfo.h'],
|
||||
'init_method': 'Init',
|
||||
'processes': ProcessSelector.ALLOW_IN_GPU_PROCESS,
|
||||
},
|
||||
{
|
||||
'cid': '{6987230e-0098-4e78-bc5f-1493ee7519fa}',
|
||||
'contract_ids': ['@mozilla.org/widget/useridleservice;1'],
|
||||
'singleton': True,
|
||||
'type': 'nsUserIdleService',
|
||||
'headers': ['/widget/gtk/nsUserIdleServiceGTK.h'],
|
||||
'constructor': 'nsUserIdleServiceGTK::GetInstance',
|
||||
},
|
||||
]
|
||||
|
||||
if defined('NS_PRINTING'):
|
||||
Classes += [
|
||||
{
|
||||
|
|
|
@ -20,9 +20,7 @@
|
|||
#include "nsHTMLFormatConverter.h"
|
||||
#include "HeadlessClipboard.h"
|
||||
#include "IMContextWrapper.h"
|
||||
#ifdef MOZ_X11
|
||||
# include "nsClipboard.h"
|
||||
#endif
|
||||
#include "nsClipboard.h"
|
||||
#include "TaskbarProgress.h"
|
||||
#include "nsFilePicker.h"
|
||||
#include "nsSound.h"
|
||||
|
@ -36,7 +34,6 @@
|
|||
using namespace mozilla;
|
||||
using namespace mozilla::widget;
|
||||
|
||||
#ifdef MOZ_X11
|
||||
NS_IMPL_COMPONENT_FACTORY(nsIClipboard) {
|
||||
nsCOMPtr<nsIClipboard> inst;
|
||||
if (gfxPlatform::IsHeadless()) {
|
||||
|
@ -51,7 +48,6 @@ NS_IMPL_COMPONENT_FACTORY(nsIClipboard) {
|
|||
|
||||
return inst.forget().downcast<nsISupports>();
|
||||
}
|
||||
#endif
|
||||
|
||||
nsresult nsWidgetGtk2ModuleCtor() { return nsAppShellInit(); }
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче