Bug 1282866 - remove widget/qt and other supporting QT code, r=dougt. This patch does not remove all of the checks for MOZ_WIDGET_QT (which are dead code), but that will be a followup mentored bug.
authorBenjamin Smedberg <benjamin@smedbergs.us>
Thu, 07 Jul 2016 12:14:25 -0400
changeset 329193 cdbdbb4df09a8413b124b5f7a200d44380e5a2f8
parent 329192 df9a54d23bbcdd005266f61f85239fe9bebf386e
child 329194 b534c2d22202d33918abc186910bddb215ba92bc
push id9858
push userjlund@mozilla.com
push dateMon, 01 Aug 2016 14:37:10 +0000
treeherdermozilla-aurora@203106ef6cb6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdougt
bugs1282866
milestone50.0a1
Bug 1282866 - remove widget/qt and other supporting QT code, r=dougt. This patch does not remove all of the checks for MOZ_WIDGET_QT (which are dead code), but that will be a followup mentored bug. MozReview-Commit-ID: EGqHHhCD7vD
build/moz.configure/old.configure
dom/geolocation/moz.build
dom/geolocation/nsGeolocation.cpp
dom/plugins/ipc/NestedLoopTimer.cpp
dom/plugins/ipc/NestedLoopTimer.h
dom/plugins/ipc/PluginHelperQt.cpp
dom/plugins/ipc/moz.build
dom/plugins/test/testplugin/nptest_qt.cpp
dom/plugins/test/testplugin/testplugin.mozbuild
dom/system/qt/QTMLocationProvider.cpp
dom/system/qt/QTMLocationProvider.h
dom/system/qt/QtHapticFeedback.cpp
dom/system/qt/QtHapticFeedback.h
dom/system/qt/moz.build
gfx/cairo/cairo/src/moz.build
gfx/src/moz.build
image/decoders/icon/qt/gtkqticonsconverter.js
image/decoders/icon/qt/gtkqticonsconverter.manifest
image/decoders/icon/qt/moz.build
image/decoders/icon/qt/nsGtkQtIconsConverter.idl
image/decoders/icon/qt/nsIconChannel.cpp
image/decoders/icon/qt/nsIconChannel.h
image/decoders/moz.build
intl/locale/moz.build
intl/unicharutil/tables/moz.build
ipc/chromium/moz.build
layout/generic/moz.build
netwerk/base/moz.build
netwerk/build/moz.build
netwerk/build/nsNetModule.cpp
netwerk/system/moz.build
netwerk/system/qt/moz.build
netwerk/system/qt/nsQtNetworkLinkService.cpp
netwerk/system/qt/nsQtNetworkLinkService.h
netwerk/system/qt/nsQtNetworkManager.cpp
netwerk/system/qt/nsQtNetworkManager.h
old-configure.in
toolkit/library/moz.build
toolkit/moz.configure
widget/moz.build
widget/qt/GfxInfo.cpp
widget/qt/GfxInfo.h
widget/qt/moz.build
widget/qt/mozqwidget.cpp
widget/qt/mozqwidget.h
widget/qt/nsAppShell.cpp
widget/qt/nsAppShell.h
widget/qt/nsBidiKeyboard.cpp
widget/qt/nsBidiKeyboard.h
widget/qt/nsClipboard.cpp
widget/qt/nsClipboard.h
widget/qt/nsDeviceContextSpecQt.cpp
widget/qt/nsDeviceContextSpecQt.h
widget/qt/nsIdleServiceQt.cpp
widget/qt/nsIdleServiceQt.h
widget/qt/nsLookAndFeel.cpp
widget/qt/nsLookAndFeel.h
widget/qt/nsPrintDialogQt.cpp
widget/qt/nsPrintDialogQt.h
widget/qt/nsPrintOptionsQt.cpp
widget/qt/nsPrintOptionsQt.h
widget/qt/nsPrintSettingsQt.cpp
widget/qt/nsPrintSettingsQt.h
widget/qt/nsQtKeyUtils.cpp
widget/qt/nsQtKeyUtils.h
widget/qt/nsScreenManagerQt.cpp
widget/qt/nsScreenManagerQt.h
widget/qt/nsScreenQt.cpp
widget/qt/nsScreenQt.h
widget/qt/nsWidgetFactory.cpp
widget/qt/nsWindow.cpp
widget/qt/nsWindow.h
--- a/build/moz.configure/old.configure
+++ b/build/moz.configure/old.configure
@@ -301,17 +301,16 @@ def old_configure_options(*options):
     '--with-nspr-cflags',
     '--with-nspr-exec-prefix',
     '--with-nspr-libs',
     '--with-nspr-prefix',
     '--with-nss-exec-prefix',
     '--with-nss-prefix',
     '--with-pthreads',
     '--with-qemu-exe',
-    '--with-qtdir',
     '--with-servo',
     '--with-sixgill',
     '--with-soft-float',
     '--with-system-bz2',
     '--with-system-icu',
     '--with-system-jpeg',
     '--with-system-libevent',
     '--with-system-libvpx',
--- a/dom/geolocation/moz.build
+++ b/dom/geolocation/moz.build
@@ -21,22 +21,16 @@ UNIFIED_SOURCES += [
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 LOCAL_INCLUDES += [
     '/dom/base',
     '/dom/ipc',
 ]
 
-if CONFIG['MOZ_ENABLE_QT5GEOPOSITION']:
-    LOCAL_INCLUDES += [
-        '/dom/system/qt',
-    ]
-    CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
-
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
     LOCAL_INCLUDES += [
         '/dom/system/android',
     ]
 elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
     LOCAL_INCLUDES += [
         '/dom/system/gonk',
     ]
--- a/dom/geolocation/nsGeolocation.cpp
+++ b/dom/geolocation/nsGeolocation.cpp
@@ -30,20 +30,16 @@
 #include "mozilla/ClearOnShutdown.h"
 #include "mozilla/dom/Event.h"
 #include "mozilla/WeakPtr.h"
 #include "mozilla/dom/PermissionMessageUtils.h"
 #include "mozilla/dom/WakeLock.h"
 
 class nsIPrincipal;
 
-#ifdef MOZ_ENABLE_QT5GEOPOSITION
-#include "QTMLocationProvider.h"
-#endif
-
 #ifdef MOZ_WIDGET_ANDROID
 #include "AndroidLocationProvider.h"
 #endif
 
 #ifdef MOZ_WIDGET_GONK
 #include "GonkGPSGeolocationProvider.h"
 #endif
 
@@ -693,20 +689,16 @@ nsresult nsGeolocationService::Init()
   // geolocation service can be enabled -> now register observer
   nsCOMPtr<nsIObserverService> obs = services::GetObserverService();
   if (!obs) {
     return NS_ERROR_FAILURE;
   }
 
   obs->AddObserver(this, "xpcom-shutdown", false);
 
-#ifdef MOZ_ENABLE_QT5GEOPOSITION
-  mProvider = new QTMLocationProvider();
-#endif
-
 #ifdef MOZ_WIDGET_ANDROID
   mProvider = new AndroidLocationProvider();
 #endif
 
 #ifdef MOZ_WIDGET_GONK
   // GonkGPSGeolocationProvider can be started at boot up time for initialization reasons.
   // do_getService gets hold of the already initialized component and starts
   // processing location requests immediately.
deleted file mode 100644
--- a/dom/plugins/ipc/NestedLoopTimer.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- * vim: sw=4 ts=4 et :
- * 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/. */
-
-#include <QtCore/QTimer>
-
-#include "NestedLoopTimer.h"
-#include "mozilla/plugins/PluginModuleChild.h"
-
-namespace mozilla {
-namespace plugins {
-
-NestedLoopTimer::NestedLoopTimer(PluginModuleChild *pmc):
-     QObject(), mModule(pmc), mQTimer(nullptr)
-{
-}
-
-NestedLoopTimer::~NestedLoopTimer()
-{
-    if (mQTimer) {
-        mQTimer->stop();
-        delete mQTimer;
-        mQTimer = nullptr;
-    }
-}
-
-void NestedLoopTimer::timeOut()
-{
-    // just detected a nested loop; start a timer that will
-    // periodically rpc-call back into the browser and process some
-    // events
-    mQTimer = new QTimer(this);
-    QObject::connect(mQTimer, SIGNAL(timeout()), this,
-                     SLOT(processSomeEvents()));
-    mQTimer->setInterval(kNestedLoopDetectorIntervalMs);
-    mQTimer->start();
-}
-
-void NestedLoopTimer::processSomeEvents()
-{
-    if (mModule)
-        mModule->CallProcessSomeEvents();
-}
-
-} /* namespace plugins */
-} /* namespace mozilla */
deleted file mode 100644
--- a/dom/plugins/ipc/NestedLoopTimer.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- * vim: sw=4 ts=4 et :
- * 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 NESTEDLOOPTIMER_H
-#define NESTEDLOOPTIMER_H
-
-#include <QtCore/QObject>
-
-class QTimer;
-
-namespace mozilla {
-namespace plugins {
-
-class PluginModuleChild;
-
-class NestedLoopTimer: public QObject
-{
-    Q_OBJECT
-public:
-    NestedLoopTimer(PluginModuleChild *pmc);
-
-    virtual ~NestedLoopTimer();
-
-public Q_SLOTS:
-    virtual void timeOut();
-    virtual void processSomeEvents();
-   
-private:
-    PluginModuleChild *mModule;
-    QTimer *mQTimer;
-};
-
-} /* namespace plugins */
-} /* namespace mozilla */
-
-#undef slots
-
-#endif
deleted file mode 100644
--- a/dom/plugins/ipc/PluginHelperQt.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*- Mode: C++; tab-width: 3; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * 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/. */
-
-#include "PluginHelperQt.h"
-#include <QtCore/QCoreApplication>
-#include <QtCore/QEventLoop>
-
-static const int kMaxtimeToProcessEvents = 30;
-
-bool
-PluginHelperQt::AnswerProcessSomeEvents()
-{
-    QCoreApplication::processEvents(QEventLoop::AllEvents, kMaxtimeToProcessEvents);
-    return true;
-}
--- a/dom/plugins/ipc/moz.build
+++ b/dom/plugins/ipc/moz.build
@@ -62,23 +62,16 @@ if CONFIG['OS_ARCH'] == 'WINNT':
         'hangui',
     ]
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
     EXPORTS.mozilla.plugins += [
         'PluginInterposeOSX.h',
     ]
 
-if CONFIG['MOZ_ENABLE_QT']:
-    SOURCES += [
-        '!moc_NestedLoopTimer.cpp',
-        'NestedLoopTimer.cpp',
-        'PluginHelperQt.cpp',
-    ]
-
 UNIFIED_SOURCES += [
     'BrowserStreamChild.cpp',
     'BrowserStreamParent.cpp',
     'ChildAsyncCall.cpp',
     'ChildTimer.cpp',
     'PluginAsyncSurrogate.cpp',
     'PluginBackgroundDestroyer.cpp',
     'PluginInstanceParent.cpp',
deleted file mode 100644
--- a/dom/plugins/test/testplugin/nptest_qt.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * 
- * Copyright (c) 2008, Mozilla Corporation
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 
- * * Redistributions of source code must retain the above copyright notice, this
- *   list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- * * Neither the name of the Mozilla Corporation nor the names of its
- *   contributors may be used to endorse or promote products derived from this
- *   software without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
- * Contributor(s):
- *   Josh Aas <josh@mozilla.com>
- * 
- * ***** END LICENSE BLOCK ***** */
-#include "nptest_platform.h"
-#include "npapi.h"
-
-using namespace std;
-
-bool
-pluginSupportsWindowMode()
-{
-  return false;
-}
-
-bool
-pluginSupportsWindowlessMode()
-{
-  return true;
-}
-
-NPError
-pluginInstanceInit(InstanceData* instanceData)
-{
-  printf("NPERR_INCOMPATIBLE_VERSION_ERROR\n");
-  return NPERR_INCOMPATIBLE_VERSION_ERROR;
-}
-
-void
-pluginInstanceShutdown(InstanceData* instanceData)
-{
-  NPN_MemFree(instanceData->platformData);
-  instanceData->platformData = 0;
-}
-
-void
-pluginDoSetWindow(InstanceData* instanceData, NPWindow* newWindow)
-{
-  instanceData->window = *newWindow;
-}
-
-void
-pluginWidgetInit(InstanceData* instanceData, void* oldWindow)
-{
-  // XXX nothing here yet since we don't support windowed plugins
-}
-
-int16_t
-pluginHandleEvent(InstanceData* instanceData, void* event)
-{
-  return 0;
-}
-
-int32_t pluginGetEdge(InstanceData* instanceData, RectEdge edge)
-{
-  // XXX nothing here yet since we don't support windowed plugins
-  return NPTEST_INT32_ERROR;
-}
-
-int32_t pluginGetClipRegionRectCount(InstanceData* instanceData)
-{
-  // XXX nothing here yet since we don't support windowed plugins
-  return NPTEST_INT32_ERROR;
-}
-
-int32_t pluginGetClipRegionRectEdge(InstanceData* instanceData, 
-    int32_t rectIndex, RectEdge edge)
-{
-  // XXX nothing here yet since we don't support windowed plugins
-  return NPTEST_INT32_ERROR;
-}
-
-void pluginDoInternalConsistencyCheck(InstanceData* instanceData, string& error)
-{
-}
--- a/dom/plugins/test/testplugin/testplugin.mozbuild
+++ b/dom/plugins/test/testplugin/testplugin.mozbuild
@@ -21,20 +21,16 @@ if toolkit == 'cocoa':
 elif toolkit in ('gtk2', 'gtk3'):
     UNIFIED_SOURCES += [
         'nptest_gtk2.cpp',
     ]
 elif toolkit == 'android':
     UNIFIED_SOURCES += [
         'nptest_droid.cpp',
     ]
-elif toolkit == 'qt':
-    UNIFIED_SOURCES += [
-        'nptest_qt.cpp',
-    ]
 elif toolkit == 'windows':
     UNIFIED_SOURCES += [
         'nptest_windows.cpp',
     ]
     OS_LIBS += [
         'msimg32',
         'imm32'
     ]
@@ -56,23 +52,16 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3'):
     CXXFLAGS += CONFIG['MOZ_GTK2_CFLAGS']
     CFLAGS += CONFIG['MOZ_GTK2_CFLAGS']
     OS_LIBS += CONFIG['MOZ_GTK2_LIBS']
     OS_LIBS += CONFIG['XLDFLAGS']
     OS_LIBS += CONFIG['XLIBS']
     OS_LIBS += CONFIG['XEXT_LIBS']
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
-    CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
-    CFLAGS += CONFIG['MOZ_QT_CFLAGS']
-    OS_LIBS += CONFIG['MOZ_QT_LIBS']
-    OS_LIBS += CONFIG['XLDFLAGS']
-    OS_LIBS += CONFIG['XLIBS']
-
 if CONFIG['_MSC_VER']:
     # This is intended as a temporary hack to support building with VS2015.
     # conversion from 'X' to 'Y' requires a narrowing conversion
     CXXFLAGS += ['-wd4838']
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
     FINAL_TARGET = 'dist/plugins/%s.plugin/Contents/MacOS' % cocoa_name
     OBJDIR_FILES.dist.plugins['%s.plugin' % cocoa_name].Contents += ['%s/Info.plist' % relative_path]
deleted file mode 100644
--- a/dom/system/qt/QTMLocationProvider.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -*- Mode: c++; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
- * 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/. */
-
-#include "QTMLocationProvider.h"
-#include "nsGeoPosition.h"
-
-using namespace mozilla;
-
-NS_IMPL_ISUPPORTS(QTMLocationProvider, nsIGeolocationProvider)
-
-QTMLocationProvider::QTMLocationProvider()
-{
-    if (QMetaType::type("QGeoPositionInfo") == QMetaType::UnknownType) {
-        qRegisterMetaType<QGeoPositionInfo>("QGeoPositionInfo");
-    }
-    mLocation = QGeoPositionInfoSource::createDefaultSource(this);
-    if (mLocation)
-        connect(mLocation, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(positionUpdated(QGeoPositionInfo)));
-}
-
-QTMLocationProvider::~QTMLocationProvider()
-{
-    delete mLocation;
-}
-
-void
-QTMLocationProvider::positionUpdated(const QGeoPositionInfo &geoPosition)
-{
-    if (!geoPosition.isValid()) {
-        NS_WARNING("Invalida geoposition received");
-        return;
-    }
-
-    QGeoCoordinate coord = geoPosition.coordinate();
-    double latitude = coord.latitude();
-    double longitude = coord.longitude();
-    double altitude = coord.altitude();
-    double accuracy = geoPosition.attribute(QGeoPositionInfo::HorizontalAccuracy);
-    double altitudeAccuracy = geoPosition.attribute(QGeoPositionInfo::VerticalAccuracy);
-    double heading = geoPosition.attribute(QGeoPositionInfo::Direction);
-
-    bool providesSpeed = geoPosition.hasAttribute(QGeoPositionInfo::GroundSpeed);
-    double speed = geoPosition.attribute(QGeoPositionInfo::GroundSpeed);
-
-    RefPtr<nsGeoPosition> p =
-        new nsGeoPosition(latitude, longitude,
-                          altitude, accuracy,
-                          altitudeAccuracy, heading,
-                          speed, geoPosition.timestamp().toTime_t());
-    if (mCallback) {
-        mCallback->Update(p);
-    }
-}
-
-NS_IMETHODIMP
-QTMLocationProvider::Startup()
-{
-    if (!mLocation)
-        return NS_ERROR_NOT_IMPLEMENTED;
-
-    // Not all versions of qt5positioning set default prefered method
-    // thus this workaround initializing QGeoPositionSource explicitly
-    SetHighAccuracy(false);
-    mLocation->startUpdates();
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-QTMLocationProvider::Watch(nsIGeolocationUpdate* aCallback)
-{
-    mCallback = aCallback;
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-QTMLocationProvider::Shutdown()
-{
-    if (!mLocation)
-        return NS_ERROR_NOT_IMPLEMENTED;
-
-    mLocation->stopUpdates();
-    mCallback = nullptr;
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-QTMLocationProvider::SetHighAccuracy(bool aHigh)
-{
-    if (!mLocation)
-        return NS_ERROR_NOT_IMPLEMENTED;
-
-    mLocation->setPreferredPositioningMethods(aHigh ?
-                                              QGeoPositionInfoSource::SatellitePositioningMethods :
-                                              QGeoPositionInfoSource::AllPositioningMethods);
-    return NS_OK;
-}
deleted file mode 100644
--- a/dom/system/qt/QTMLocationProvider.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* 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 QTMLocationProvider_h
-#define QTMLocationProvider_h
-
-#include <QGeoPositionInfoSource>
-#include "nsGeolocation.h"
-#include "nsIGeolocationProvider.h"
-#include "nsCOMPtr.h"
-
-class QTMLocationProvider : public QObject,
-                            public nsIGeolocationProvider
-{
-    Q_OBJECT
-
-public:
-    NS_DECL_ISUPPORTS
-    NS_DECL_NSIGEOLOCATIONPROVIDER
-
-    QTMLocationProvider();
-
-public Q_SLOTS:
-    // QGeoPositionInfoSource
-    void positionUpdated(const QGeoPositionInfo&);
-
-private:
-    ~QTMLocationProvider();
-
-    QGeoPositionInfoSource* mLocation;
-    nsCOMPtr<nsIGeolocationUpdate> mCallback;
-};
-
-#endif /* QTMLocationProvider_h */
deleted file mode 100644
--- a/dom/system/qt/QtHapticFeedback.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- Mode: c++; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
- * 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/. */
-
-#include <QFeedbackEffect>
-#include "QtHapticFeedback.h"
-
-NS_IMPL_ISUPPORTS(QtHapticFeedback, nsIHapticFeedback)
-
-NS_IMETHODIMP
-QtHapticFeedback::PerformSimpleAction(int32_t aType)
-{
-    if (aType == ShortPress)
-        QFeedbackEffect::playThemeEffect(QFeedbackEffect::PressWeak);
-    if (aType == LongPress)
-        QFeedbackEffect::playThemeEffect(QFeedbackEffect::PressStrong);
-
-    return NS_OK;
-}
deleted file mode 100644
--- a/dom/system/qt/QtHapticFeedback.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* -*- Mode: c++; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
- * 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/. */
-
-#include "nsIHapticFeedback.h"
-
-class QtHapticFeedback : public nsIHapticFeedback
-{
-public:
-  NS_DECL_ISUPPORTS
-  NS_DECL_NSIHAPTICFEEDBACK
-protected:
-  virtual ~QtHapticFeedback() {}
-};
deleted file mode 100644
--- a/dom/system/qt/moz.build
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# 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/.
-
-if CONFIG['MOZ_ENABLE_QT5GEOPOSITION']:
-    SOURCES += [
-        '!moc_QTMLocationProvider.cpp',
-        'QTMLocationProvider.cpp',
-    ]
-
-    CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
-
-    LOCAL_INCLUDES += [
-        '/dom/geolocation',
-    ]
-
-if CONFIG['MOZ_ENABLE_QT5FEEDBACK']:
-    SOURCES += [
-        'QtHapticFeedback.cpp',
-    ]
-
-include('/ipc/chromium/chromium-config.mozbuild')
-
-FINAL_LIBRARY = 'xul'
--- a/gfx/cairo/cairo/src/moz.build
+++ b/gfx/cairo/cairo/src/moz.build
@@ -76,23 +76,16 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'be
     ]
 elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
     EXPORTS.cairo += [
         'cairo-ps.h',
     ]
     SOURCES += [
         'cairo-ps-surface.c',
     ]
-elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
-    EXPORTS.cairo += [
-        'cairo-qt.h',
-    ]
-    SOURCES += [
-        'cairo-qt-surface.cpp',
-    ]
 
 if CONFIG['MOZ_X11']:
     EXPORTS.cairo += [
         'cairo-xlib-xrender.h',
         'cairo-xlib.h',
     ]
     SOURCES += [
         'cairo-xlib-display.c',
@@ -244,18 +237,14 @@ if CONFIG['CLANG_CL']:
         '-Wno-unused-variable',
     ]
 
 # See bug 386897.
 if CONFIG['GNU_CC'] and CONFIG['OS_TARGET'] == 'Android' and CONFIG['MOZ_OPTIMIZE']:
     CFLAGS += ['-O2']
     CXXFLAGS += ['-O2']
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
-    CFLAGS += CONFIG['MOZ_QT_CFLAGS']
-    CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
-
 if CONFIG['MOZ_X11']:
     CFLAGS += CONFIG['XCFLAGS']
 
 if CONFIG['MOZ_ENABLE_CAIRO_FT']:
     CFLAGS += CONFIG['CAIRO_FT_CFLAGS']
     CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
--- a/gfx/src/moz.build
+++ b/gfx/src/moz.build
@@ -86,11 +86,8 @@ LOCAL_INCLUDES += [
 
 FINAL_LIBRARY = 'xul'
 
 CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
 CXXFLAGS += CONFIG['TK_CFLAGS']
 
 if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
     CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS']
-
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
-    CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
deleted file mode 100644
--- a/image/decoders/icon/qt/gtkqticonsconverter.js
+++ /dev/null
@@ -1,141 +0,0 @@
-/* vim:set ts=2 sw=2 sts=2 cin et: */
-/* 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/. */
-
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-
-
-function GtkQtIconsConverter()
-{ };
-GtkQtIconsConverter.prototype =
-{
-  classID:          Components.ID("{c0783c34-a831-40c6-8c03-98c9f74cca45}"),
-  QueryInterface: XPCOMUtils.generateQI(
-                                [Components.interfaces.nsIGtkQtIconsConverter]),
-  convert: function(icon) { return this._gtk_qt_icons_table[icon]; },
-  _gtk_qt_icons_table:
-  {
-    'about':
-    0,
-    'add':
-    0,
-    'apply':
-    44, // QStyle::SP_DialogApplyButton
-    'cancel':
-    39, // QStyle::SP_DialogCancelButton
-    'clear':
-    45, // QStyle::SP_DialogResetButton
-    'color-picker':
-    0,
-    'copy':
-    0,
-    'close':
-    43, // QStyle::SP_DialogCloseButton
-    'cut':
-    0,
-    'delete':
-    0,
-    'dialog-error':
-    0,
-    'dialog-info':
-    0,
-    'dialog-question':
-    12, // QStyle::SP_MessageBoxQuestion
-    'dialog-warning':
-    10, // QStyle::SP_MessageBoxWarning
-    'directory':
-    37, // QStyle::SP_DirIcon
-    'file':
-    24, // QStyle::SP_FileIcon
-    'find':
-    0,
-    'go-back-ltr':
-    53, // QStyle::SP_ArrowBack
-    'go-back-rtl':
-    53, // QStyle::SP_ArrowBack
-    'go-back':
-    53, // QStyle::SP_ArrowBack
-    'go-forward-ltr':
-    54, // QStyle::SP_ArrowForward
-    'go-forward-rtl':
-    54, // QStyle::SP_ArrowForward
-    'go-forward':
-    54, // QStyle::SP_ArrowForward
-    'go-up':
-    49, // QStyle::SP_ArrowUp
-    'goto-first':
-    0,
-    'goto-last':
-    0,
-    'help':
-    7, // QStyle::SP_TitleBarContextHelpButton
-    'home':
-    55, // QStyle::SP_DirHomeIcon
-    'info':
-    9, // QStyle::SP_MessageBoxInformation
-    'jump-to':
-    0,
-    'media-pause':
-    0,
-    'media-play':
-    0,
-    'network':
-    20, // QStyle::SP_DriveNetIcon
-    'no':
-    48, // QStyle::SP_DialogNoButton
-    'ok':
-    38, // QStyle::SP_DialogOkButton
-    'open':
-    21, // QStyle::SP_DirOpenIcon
-    'orientation-landscape':
-    0,
-    'orientation-portrait':
-    0,
-    'paste':
-    0,
-    'preferences':
-    34, // QStyle::SP_FileDialogContentsView
-    'print-preview':
-    0,
-    'print':
-    0,
-    'properties':
-    0,
-    'quit':
-    0,
-    'redo':
-    0,
-    'refresh':
-    58, // QStyle::SP_BrowserReload
-    'remove':
-    0,
-    'revert-to-saved':
-    0,
-    'save-as':
-    42, // QStyle::SP_DialogSaveButton
-    'save':
-    42, // QStyle::SP_DialogSaveButton
-    'select-all':
-    0,
-    'select-font':
-    0,
-    'stop':
-    59, // QStyle::SP_BrowserStop
-    'undelete':
-    0,
-    'undo':
-    0,
-    'yes':
-    47, // QStyle::SP_DialogYesButton
-    'zoom-100':
-    0,
-    'zoom-in':
-    0,
-    'zoom-out':
-    0
-  },
-}
-var components = [GtkQtIconsConverter];
-this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
-
deleted file mode 100644
--- a/image/decoders/icon/qt/gtkqticonsconverter.manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-component {c0783c34-a831-40c6-8c03-98c9f74cca45} gtkqticonsconverter.js
-contract @mozilla.org/gtkqticonsconverter;1 {c0783c34-a831-40c6-8c03-98c9f74cca45}
deleted file mode 100644
--- a/image/decoders/icon/qt/moz.build
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# 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/.
-
-XPIDL_SOURCES += [
-    'nsGtkQtIconsConverter.idl',
-]
-
-XPIDL_MODULE = 'gtkqticonsconverter'
-
-SOURCES += [
-    'nsIconChannel.cpp',
-]
-
-EXTRA_COMPONENTS += [
-    'gtkqticonsconverter.manifest',
-]
-
-EXTRA_PP_COMPONENTS += [
-    'gtkqticonsconverter.js',
-]
-
-FINAL_LIBRARY = 'xul'
-
-CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
deleted file mode 100644
--- a/image/decoders/icon/qt/nsGtkQtIconsConverter.idl
+++ /dev/null
@@ -1,12 +0,0 @@
-/* vim:set ts=2 sw=2 sts=2 cin et: */
-/* 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/. */
-
-#include "nsISupports.idl"
-
-[scriptable, uuid(c0783c34-a831-40c6-8c03-98c9f74cca45)]
-interface nsIGtkQtIconsConverter : nsISupports
-{
-  long convert(in string icon);
-};
deleted file mode 100644
--- a/image/decoders/icon/qt/nsIconChannel.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-/* vim:set ts=2 sw=2 sts=2 cin et: */
-/* 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/. */
-
-#include <QIcon>
-
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "mozilla/EndianUtils.h"
-
-#include "nsMimeTypes.h"
-#include "nsIMIMEService.h"
-
-#include "nsIStringBundle.h"
-
-#include "nsNetUtil.h"
-#include "nsNullPrincipal.h"
-#include "nsIURL.h"
-
-#include "nsIconChannel.h"
-#include "nsGtkQtIconsConverter.h"
-
-NS_IMPL_ISUPPORTS(nsIconChannel,
-                  nsIRequest,
-                  nsIChannel)
-
-static nsresult
-moz_qicon_to_channel(QImage* image, nsIURI* aURI,
-                     nsIChannel** aChannel)
-{
-  NS_ENSURE_ARG_POINTER(image);
-
-  int width = image->width();
-  int height = image->height();
-
-  NS_ENSURE_TRUE(height < 256 && width < 256 && height > 0 && width > 0,
-                 NS_ERROR_UNEXPECTED);
-
-  const int n_channels = 4;
-  long int buf_size = 2 + n_channels * height * width;
-  uint8_t* const buf = (uint8_t*)moz_xmalloc(buf_size);
-  NS_ENSURE_TRUE(buf, NS_ERROR_OUT_OF_MEMORY);
-  uint8_t* out = buf;
-
-  *(out++) = width;
-  *(out++) = height;
-
-  const uchar* const pixels = image->bits();
-  int rowextra = image->bytesPerLine() - width * n_channels;
-
-  // encode the RGB data and the A data
-  const uchar* in = pixels;
-  for (int y = 0; y < height; ++y, in += rowextra) {
-    for (int x = 0; x < width; ++x) {
-      uint8_t r = *(in++);
-      uint8_t g = *(in++);
-      uint8_t b = *(in++);
-      uint8_t a = *(in++);
-#define DO_PREMULTIPLY(c_) uint8_t(uint16_t(c_) * uint16_t(a) / uint16_t(255))
-#if MOZ_LITTLE_ENDIAN
-      *(out++) = DO_PREMULTIPLY(b);
-      *(out++) = DO_PREMULTIPLY(g);
-      *(out++) = DO_PREMULTIPLY(r);
-      *(out++) = a;
-#else
-      *(out++) = a;
-      *(out++) = DO_PREMULTIPLY(r);
-      *(out++) = DO_PREMULTIPLY(g);
-      *(out++) = DO_PREMULTIPLY(b);
-#endif
-#undef DO_PREMULTIPLY
-    }
-  }
-
-  NS_ASSERTION(out == buf + buf_size, "size miscalculation");
-
-  nsresult rv;
-  nsCOMPtr<nsIStringInputStream> stream =
-    do_CreateInstance("@mozilla.org/io/string-input-stream;1", &rv);
-  NS_ENSURE_SUCCESS(rv, rv);
-
-  rv = stream->AdoptData((char*)buf, buf_size);
-  NS_ENSURE_SUCCESS(rv, rv);
-
-  // nsIconProtocolHandler::NewChannel2 will provide the correct loadInfo for
-  // this iconChannel. Use the most restrictive security settings for the
-  // temporary loadInfo to make sure the channel can not be openend.
-  nsCOMPtr<nsIPrincipal> nullPrincipal = nsNullPrincipal::Create();
-  return NS_NewInputStreamChannel(aChannel,
-                                  aURI,
-                                  stream,
-                                  nullPrincipal,
-                                  nsILoadInfo::SEC_REQUIRE_SAME_ORIGIN_DATA_IS_BLOCKED,
-                                  nsIContentPolicy::TYPE_INTERNAL_IMAGE,
-                                  NS_LITERAL_CSTRING(IMAGE_ICON_MS));
-}
-
-nsresult
-nsIconChannel::Init(nsIURI* aURI)
-{
-
-  nsCOMPtr<nsIMozIconURI> iconURI = do_QueryInterface(aURI);
-  NS_ASSERTION(iconURI, "URI is not an nsIMozIconURI");
-
-  nsAutoCString stockIcon;
-  iconURI->GetStockIcon(stockIcon);
-
-  nsAutoCString iconSizeString;
-  iconURI->GetIconSize(iconSizeString);
-
-  uint32_t desiredImageSize;
-  iconURI->GetImageSize(&desiredImageSize);
-
-  nsAutoCString iconStateString;
-  iconURI->GetIconState(iconStateString);
-  bool disabled = iconStateString.EqualsLiteral("disabled");
-
-  // This is a workaround for
-  // https://bugzilla.mozilla.org/show_bug.cgi?id=662299
-  // Try to find corresponding freedesktop icon and fallback to empty QIcon
-  // if failed.
-  QIcon icon = QIcon::fromTheme(QString(stockIcon.get()).replace("gtk-",
-                                                                 "edit-"));
-  QPixmap pixmap = icon.pixmap(desiredImageSize, desiredImageSize,
-                               disabled ? QIcon::Disabled : QIcon::Normal);
-
-  QImage image = pixmap.toImage();
-
-  return moz_qicon_to_channel(&image, iconURI,
-                              getter_AddRefs(mRealChannel));
-}
deleted file mode 100644
--- a/image/decoders/icon/qt/nsIconChannel.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* vim:set ts=2 sw=2 sts=2 cin et: */
-/* 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 mozilla_image_encoders_icon_qt_nsIconChannel_h
-#define mozilla_image_encoders_icon_qt_nsIconChannel_h
-
-#include "mozilla/Attributes.h"
-
-#include "nsIChannel.h"
-#include "nsIStreamListener.h"
-#include "nsIURI.h"
-#include "nsIIconURI.h"
-#include "nsCOMPtr.h"
-
-/// This class is the gnome implementation of nsIconChannel. It basically asks
-/// qt for an icon, and creates a new channel for
-/// that file to which all calls will be proxied.
-class nsIconChannel final : public nsIChannel {
-  public:
-    NS_DECL_ISUPPORTS
-    NS_FORWARD_NSIREQUEST(mRealChannel->)
-    NS_FORWARD_NSICHANNEL(mRealChannel->)
-
-    nsIconChannel() { };
-
-    /// Called by nsIconProtocolHandler after it creates this channel.
-    /// Must be called before calling any other function on this object.
-    /// If this method fails, no other function must be called on this object.
-    nsresult Init(nsIURI* aURI);
-  private:
-    ~nsIconChannel() { };
-
-    /// The channel to the temp icon file (e.g. to /tmp/2qy9wjqw.html).
-    /// Will always be non-null after a successful Init.
-    nsCOMPtr<nsIChannel> mRealChannel;
-};
-
-#endif // mozilla_image_encoders_icon_qt_nsIconChannel_h
--- a/image/decoders/moz.build
+++ b/image/decoders/moz.build
@@ -5,18 +5,16 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 toolkit = CONFIG['MOZ_WIDGET_TOOLKIT']
 
 # The Icon Channel stuff really shouldn't live in decoders/icon, but we'll
 # fix that another time.
 if 'gtk' in toolkit:
     DIRS += ['icon/gtk', 'icon']
-elif toolkit == 'qt':
-    DIRS += ['icon/qt', 'icon']
 
 if CONFIG['OS_ARCH'] == 'WINNT':
     DIRS += ['icon/win', 'icon']
 
 if toolkit == 'cocoa':
     DIRS += ['icon/mac', 'icon']
 elif toolkit == 'android':
     DIRS += ['icon/android', 'icon']
--- a/intl/locale/moz.build
+++ b/intl/locale/moz.build
@@ -61,11 +61,8 @@ RESOURCE_FILES += [
 ]
 
 GENERATED_FILES += [
     'langGroups.properties.h',
 ]
 langgroups = GENERATED_FILES['langGroups.properties.h']
 langgroups.script = 'props2arrays.py'
 langgroups.inputs = ['langGroups.properties']
-
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
-    CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
--- a/intl/unicharutil/tables/moz.build
+++ b/intl/unicharutil/tables/moz.build
@@ -5,12 +5,8 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 RESOURCE_FILES.entityTables = [
     'html40Latin1.properties',
     'html40Special.properties',
     'html40Symbols.properties',
     'mathml20.properties',
 ]
-
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
-    CFLAGS += CONFIG['MOZ_QT_CFLAGS']
-    CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
--- a/ipc/chromium/moz.build
+++ b/ipc/chromium/moz.build
@@ -134,21 +134,16 @@ if os_linux:
         if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
             DEFINES['HAVE_ANDROID_OS'] = True
 
 if os_bsd or os_linux:
     if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
         SOURCES += [
             'src/base/message_pump_glib.cc',
         ]
-    if CONFIG['MOZ_ENABLE_QT']:
-        SOURCES += [
-            '!moc_message_pump_qt.cc',
-            'src/base/message_pump_qt.cc',
-        ]
 
 ost = CONFIG['OS_TEST']
 if '86' not in ost and 'arm' not in ost and 'aarch64' != ost and 'mips' not in ost:
     SOURCES += [
         'src/base/atomicops_internals_mutex.cc',
     ]
 
 CXXFLAGS += CONFIG['TK_CFLAGS']
--- a/layout/generic/moz.build
+++ b/layout/generic/moz.build
@@ -208,13 +208,10 @@ RESOURCE_FILES.html = [
 MOCHITEST_MANIFESTS += ['test/mochitest.ini']
 MOCHITEST_CHROME_MANIFESTS += ['test/chrome.ini']
 
 CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
 
 if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
     CXXFLAGS += CONFIG['TK_CFLAGS']
 
-if CONFIG['MOZ_ENABLE_QT']:
-    CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
-
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wno-error=shadow']
--- a/netwerk/base/moz.build
+++ b/netwerk/base/moz.build
@@ -298,20 +298,16 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'an
         'nsNetworkInfoService.cpp',
     ]
 elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
     SOURCES += [
         'NetworkInfoServiceLinux.cpp',
         'nsNetworkInfoService.cpp',
     ]
 
-if CONFIG['MOZ_ENABLE_QTNETWORK']:
-    SOURCES += [
-    ]
-
 EXTRA_COMPONENTS += [
     'PACGenerator.js',
     'PACGenerator.manifest'
 ]
 
 EXTRA_JS_MODULES += [
     'NetUtil.jsm',
 ]
@@ -327,18 +323,10 @@ LOCAL_INCLUDES += [
 ]
 
 if 'rtsp' in CONFIG['NECKO_PROTOCOLS']:
     LOCAL_INCLUDES += [
         '/netwerk/protocol/rtsp/controller',
         '/netwerk/protocol/rtsp/rtsp',
     ]
 
-if CONFIG['MOZ_ENABLE_QTNETWORK']:
-    LOCAL_INCLUDES += [
-        '/netwerk/system/qt',
-    ]
-
-if CONFIG['MOZ_ENABLE_QTNETWORK']:
-    CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
-
 if CONFIG['GNU_CXX']:
     CXXFLAGS += ['-Wno-error=shadow']
--- a/netwerk/build/moz.build
+++ b/netwerk/build/moz.build
@@ -38,21 +38,16 @@ if CONFIG['OS_ARCH'] == 'WINNT':
         '/netwerk/system/win32',
     ]
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
     LOCAL_INCLUDES += [
         '/netwerk/system/mac',
     ]
 
-if CONFIG['MOZ_ENABLE_QTNETWORK']:
-    LOCAL_INCLUDES += [
-        '/netwerk/system/qt',
-    ]
-
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
     LOCAL_INCLUDES += [
         '/netwerk/system/android',
     ]
 
 elif CONFIG['OS_ARCH'] == 'Linux':
     LOCAL_INCLUDES += [
         '/netwerk/system/linux',
--- a/netwerk/build/nsNetModule.cpp
+++ b/netwerk/build/nsNetModule.cpp
@@ -410,19 +410,16 @@ NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsID
 
 ///////////////////////////////////////////////////////////////////////////////
 #if defined(XP_WIN)
 #include "nsNotifyAddrListener.h"
 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsNotifyAddrListener, Init)
 #elif defined(MOZ_WIDGET_COCOA)
 #include "nsNetworkLinkService.h"
 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsNetworkLinkService, Init)
-#elif defined(MOZ_ENABLE_QTNETWORK)
-#include "nsQtNetworkLinkService.h"
-NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsQtNetworkLinkService, Init)
 #elif defined(MOZ_WIDGET_ANDROID)
 #include "nsAndroidNetworkLinkService.h"
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAndroidNetworkLinkService)
 #elif defined(XP_LINUX)
 #include "nsNotifyAddrListener_Linux.h"
 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsNotifyAddrListener, Init)
 #endif
 
@@ -851,18 +848,16 @@ NS_DEFINE_NAMED_CID(NS_WEBSOCKETSSLPROTO
 #endif
 #ifdef NECKO_PROTOCOL_rtsp
 NS_DEFINE_NAMED_CID(NS_RTSPPROTOCOLHANDLER_CID);
 #endif
 #if defined(XP_WIN)
 NS_DEFINE_NAMED_CID(NS_NETWORK_LINK_SERVICE_CID);
 #elif defined(MOZ_WIDGET_COCOA)
 NS_DEFINE_NAMED_CID(NS_NETWORK_LINK_SERVICE_CID);
-#elif defined(MOZ_ENABLE_QTNETWORK)
-NS_DEFINE_NAMED_CID(NS_NETWORK_LINK_SERVICE_CID);
 #elif defined(MOZ_WIDGET_ANDROID)
 NS_DEFINE_NAMED_CID(NS_NETWORK_LINK_SERVICE_CID);
 #elif defined(XP_LINUX)
 NS_DEFINE_NAMED_CID(NS_NETWORK_LINK_SERVICE_CID);
 #endif
 NS_DEFINE_NAMED_CID(NS_SERIALIZATION_HELPER_CID);
 NS_DEFINE_NAMED_CID(NS_REDIRECTCHANNELREGISTRAR_CID);
 NS_DEFINE_NAMED_CID(NS_CACHE_STORAGE_SERVICE_CID);
@@ -1006,18 +1001,16 @@ static const mozilla::Module::CIDEntry k
 #endif
 #ifdef NECKO_PROTOCOL_rtsp
     { &kNS_RTSPPROTOCOLHANDLER_CID, false, nullptr, mozilla::net::RtspHandlerConstructor },
 #endif
 #if defined(XP_WIN)
     { &kNS_NETWORK_LINK_SERVICE_CID, false, nullptr, nsNotifyAddrListenerConstructor },
 #elif defined(MOZ_WIDGET_COCOA)
     { &kNS_NETWORK_LINK_SERVICE_CID, false, nullptr, nsNetworkLinkServiceConstructor },
-#elif defined(MOZ_ENABLE_QTNETWORK)
-    { &kNS_NETWORK_LINK_SERVICE_CID, false, nullptr, nsQtNetworkLinkServiceConstructor },
 #elif defined(MOZ_WIDGET_ANDROID)
     { &kNS_NETWORK_LINK_SERVICE_CID, false, nullptr, nsAndroidNetworkLinkServiceConstructor },
 #elif defined(XP_LINUX)
     { &kNS_NETWORK_LINK_SERVICE_CID, false, nullptr, nsNotifyAddrListenerConstructor },
 #endif
     { &kNS_SERIALIZATION_HELPER_CID, false, nullptr, nsSerializationHelperConstructor },
     { &kNS_REDIRECTCHANNELREGISTRAR_CID, false, nullptr, RedirectChannelRegistrarConstructor },
     { &kNS_CACHE_STORAGE_SERVICE_CID, false, nullptr, CacheStorageServiceConstructor },
@@ -1166,18 +1159,16 @@ static const mozilla::Module::ContractID
 #endif
 #ifdef NECKO_PROTOCOL_rtsp
     { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "rtsp", &kNS_RTSPPROTOCOLHANDLER_CID },
 #endif
 #if defined(XP_WIN)
     { NS_NETWORK_LINK_SERVICE_CONTRACTID, &kNS_NETWORK_LINK_SERVICE_CID },
 #elif defined(MOZ_WIDGET_COCOA)
     { NS_NETWORK_LINK_SERVICE_CONTRACTID, &kNS_NETWORK_LINK_SERVICE_CID },
-#elif defined(MOZ_ENABLE_QTNETWORK)
-    { NS_NETWORK_LINK_SERVICE_CONTRACTID, &kNS_NETWORK_LINK_SERVICE_CID },
 #elif defined(MOZ_WIDGET_ANDROID)
     { NS_NETWORK_LINK_SERVICE_CONTRACTID, &kNS_NETWORK_LINK_SERVICE_CID },
 #elif defined(XP_LINUX)
     { NS_NETWORK_LINK_SERVICE_CONTRACTID, &kNS_NETWORK_LINK_SERVICE_CID },
 #endif
     { NS_SERIALIZATION_HELPER_CONTRACTID, &kNS_SERIALIZATION_HELPER_CID },
     { NS_REDIRECTCHANNELREGISTRAR_CONTRACTID, &kNS_REDIRECTCHANNELREGISTRAR_CID },
     { NS_CACHE_STORAGE_SERVICE_CONTRACTID, &kNS_CACHE_STORAGE_SERVICE_CID },
--- a/netwerk/system/moz.build
+++ b/netwerk/system/moz.build
@@ -5,16 +5,13 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 if CONFIG['OS_ARCH'] == 'WINNT':
     DIRS += ['win32']
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
     DIRS += ['mac']
 
-if CONFIG['MOZ_ENABLE_QTNETWORK']:
-    DIRS += ['qt']
-
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
     DIRS += ['android']
 
 elif CONFIG['OS_ARCH'] == 'Linux':
     DIRS += ['linux']
deleted file mode 100644
--- a/netwerk/system/qt/moz.build
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# 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/.
-
-SOURCES += [
-    '!moc_nsQtNetworkManager.cpp',
-    'nsQtNetworkLinkService.cpp',
-    'nsQtNetworkManager.cpp',
-]
-
-FINAL_LIBRARY = 'xul'
-LOCAL_INCLUDES += [
-    '/netwerk/base',
-]
-
-CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
deleted file mode 100644
--- a/netwerk/system/qt/nsQtNetworkLinkService.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/* 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/. */
-
-#include "nsQtNetworkManager.h"
-#include "nsQtNetworkLinkService.h"
-#include "nsCOMPtr.h"
-#include "nsIObserverService.h"
-#include "nsServiceManagerUtils.h"
-#include "nsString.h"
-#include "mozilla/Services.h"
-#include "nsCRT.h"
-
-NS_IMPL_ISUPPORTS(nsQtNetworkLinkService,
-                  nsINetworkLinkService,
-                  nsIObserver)
-
-nsQtNetworkLinkService::nsQtNetworkLinkService()
-{
-}
-
-nsQtNetworkLinkService::~nsQtNetworkLinkService()
-{
-}
-
-NS_IMETHODIMP
-nsQtNetworkLinkService::GetIsLinkUp(bool* aIsUp)
-{
-  *aIsUp = nsQtNetworkManager::get()->isOnline();
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsQtNetworkLinkService::GetLinkStatusKnown(bool* aIsKnown)
-{
-  *aIsKnown = nsQtNetworkManager::get()->isOnline();
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsQtNetworkLinkService::GetLinkType(uint32_t *aLinkType)
-{
-  NS_ENSURE_ARG_POINTER(aLinkType);
-
-  // XXX This function has not yet been implemented for this platform
-  *aLinkType = nsINetworkLinkService::LINK_TYPE_UNKNOWN;
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsQtNetworkLinkService::Observe(nsISupports* aSubject,
-                                const char* aTopic,
-                                const char16_t* aData)
-{
-  if (!strcmp(aTopic, "xpcom-shutdown")) {
-    Shutdown();
-    nsQtNetworkManager::get()->destroy();
-  }
-
-  if (!strcmp(aTopic, "browser-lastwindow-close-granted")) {
-    Shutdown();
-  }
-
-  return NS_OK;
-}
-
-nsresult
-nsQtNetworkLinkService::Init(void)
-{
-  nsCOMPtr<nsIObserverService> observerService =
-    mozilla::services::GetObserverService();
-  if (!observerService) {
-    return NS_ERROR_FAILURE;
-  }
-
-  nsQtNetworkManager::create();
-  nsresult rv;
-
-  rv = observerService->AddObserver(this, "xpcom-shutdown", false);
-  if (NS_FAILED(rv)) {
-    return NS_ERROR_FAILURE;
-  }
-
-  rv = observerService->AddObserver(this, "browser-lastwindow-close-granted", false);
-  if (NS_FAILED(rv)) {
-    return NS_ERROR_FAILURE;
-  }
-
-
-  return NS_OK;
-}
-
-nsresult
-nsQtNetworkLinkService::Shutdown()
-{
-  nsQtNetworkManager::get()->closeSession();
-  return NS_OK;
-}
deleted file mode 100644
--- a/netwerk/system/qt/nsQtNetworkLinkService.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* 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 NSQTNETWORKLINKSERVICE_H_
-#define NSQTNETWORKLINKSERVICE_H_
-
-#include "nsINetworkLinkService.h"
-#include "nsIObserver.h"
-
-class nsQtNetworkLinkService: public nsINetworkLinkService,
-                              public nsIObserver
-{
-
-public:
-  NS_DECL_ISUPPORTS
-  NS_DECL_NSINETWORKLINKSERVICE
-  NS_DECL_NSIOBSERVER
-
-  nsQtNetworkLinkService();
-
-  nsresult Init();
-  nsresult Shutdown();
-
-private:
-  virtual ~nsQtNetworkLinkService();
-};
-
-#endif /* NSQTNETWORKLINKSERVICE_H_ */
deleted file mode 100644
--- a/netwerk/system/qt/nsQtNetworkManager.cpp
+++ /dev/null
@@ -1,162 +0,0 @@
-/* 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/. */
-
-#include "nsQtNetworkManager.h"
-
-#include "nsCOMPtr.h"
-#include "nsThreadUtils.h"
-#include "nsINetworkLinkService.h"
-#include "nsIOService.h"
-#include "nsIObserverService.h"
-#include "nsIOService.h"
-
-#include <QHostInfo>
-#include <QHostAddress>
-#include <QTime>
-
-nsQtNetworkManager* nsQtNetworkManager::gQtNetworkManager = nullptr;
-
-void nsQtNetworkManager::create()
-{
-    if (!gQtNetworkManager) {
-        gQtNetworkManager = new nsQtNetworkManager();
-        connect(gQtNetworkManager, SIGNAL(openConnectionSignal()),
-                gQtNetworkManager, SLOT(openSession()),
-                Qt::BlockingQueuedConnection);
-        connect(&gQtNetworkManager->networkConfigurationManager,
-                SIGNAL(onlineStateChanged(bool)), gQtNetworkManager,
-                SLOT(onlineStateChanged(bool)));
-    }
-}
-
-void nsQtNetworkManager::destroy()
-{
-    delete gQtNetworkManager;
-    gQtNetworkManager = nullptr;
-}
-
-nsQtNetworkManager::nsQtNetworkManager(QObject* parent)
-  : QObject(parent), networkSession(0)
-{
-    mOnline = networkConfigurationManager.isOnline();
-    NS_ASSERTION(NS_IsMainThread(), "nsQtNetworkManager can only initiated in Main Thread");
-}
-
-nsQtNetworkManager::~nsQtNetworkManager()
-{
-    closeSession();
-    networkSession->deleteLater();
-}
-
-bool
-nsQtNetworkManager::isOnline()
-{
-    static bool sForceOnlineUSB = getenv("MOZ_MEEGO_NET_ONLINE") != 0;
-    return sForceOnlineUSB || mOnline;
-}
-
-void
-nsQtNetworkManager::onlineStateChanged(bool online)
-{
-    mOnline = online;
-}
-
-/*
-  This function is called from different threads, we need to make sure that
-  the attempt to create a network connection is done in the mainthread
-
-  In case this function is called by another thread than the mainthread
-  we emit a signal which is connected through "BlockingQueue"-Connection Type.
-
-  This cause that the current thread is blocked and waiting for the result.
-
-  Of course, in case this gets called from the mainthread we must not emit the signal,
-  but call the slot directly.
-*/
-
-bool
-nsQtNetworkManager::openConnection(const QString& host)
-{
-    // we are already online -> return true.
-    if (isOnline()) {
-        return true;
-    }
-
-    if (NS_IsMainThread()) {
-        openSession();
-    } else {
-        // jump to mainthread and do the work there
-        Q_EMIT openConnectionSignal();
-    }
-
-    // if its claiming its online -> send one resolve request ahead.
-    // this is important because on mobile the first request can take up to 10 seconds
-    // sending here one will help to avoid trouble and timeouts later
-    if (isOnline()) {
-        QHostInfo::fromName(host);
-    }
-
-    return isOnline();
-}
-
-void
-nsQtNetworkManager::openSession()
-{
-    if (mBlockTimer.isActive()) {
-        // if openSession is called within 200 ms again, we forget this attempt since
-        // its mostlike an automatic connection attempt which was not successful or canceled 200ms ago.
-        // we reset the timer and start it again.
-
-        // As example: Go in firefox mobile into AwesomeView, see that the icons are not always cached and
-        // get loaded on the fly. Not having the 200 ms rule here would mean that instantly
-        // after the user dismissed the one connection dialog once another
-        // would get opened. The user will never be able to close / leave the view until each such attempt is gone through.
-
-        // Basically 200 ms are working fine, its huge enough for automatic attempts to get covered and small enough to
-        // still be able to react on direct user request.
-
-        mBlockTimer.stop();
-        mBlockTimer.setSingleShot(true);
-        mBlockTimer.start(200);
-        return;
-    }
-
-    if (isOnline()) {
-        return;
-    }
-
-    // this only means we did not shutdown before...
-    // renew Session every time
-    // fix/workaround for prestart bug
-    if (networkSession) {
-        networkSession->close();
-        networkSession->deleteLater();
-    }
-
-    // renew always to react on changed Configurations
-    networkConfigurationManager.updateConfigurations();
-    // go always with default configuration
-    networkConfiguration = networkConfigurationManager.defaultConfiguration();
-    networkSession = new QNetworkSession(networkConfiguration);
-
-    networkSession->open();
-    QTime current;
-    current.start();
-    networkSession->waitForOpened(-1);
-
-    if (current.elapsed() < 1000) {
-        NS_WARNING("Connection Creation was to fast, something is not right.");
-    }
-
-    mBlockTimer.setSingleShot(true);
-    mBlockTimer.start(200);
-}
-
-void
-nsQtNetworkManager::closeSession()
-{
-    if (networkSession) {
-        networkSession->close();
-    }
-}
deleted file mode 100644
--- a/netwerk/system/qt/nsQtNetworkManager.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* 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 NSQTNETWORKMANAGER_H_
-#define NSQTNETWORKMANAGER_H_
-
-#include <QNetworkConfigurationManager>
-#include <QObject>
-#include <QTimer>
-#include <QNetworkConfiguration>
-#include <QNetworkSession>
-#include "nscore.h"
-
-class nsQtNetworkManager;
-
-
-
-class nsQtNetworkManager : public QObject
-{
-  Q_OBJECT
-  public:
-    static void create();
-    static void destroy();
-    virtual ~nsQtNetworkManager();
-
-    static nsQtNetworkManager* get() { return gQtNetworkManager; }
-
-    static bool IsConnected();
-    static bool GetLinkStatusKnown();
-    static void enableInstance();
-    bool openConnection(const QString&);
-    bool isOnline();
-  Q_SIGNALS:
-    void openConnectionSignal();
-
-  public Q_SLOTS:
-    void closeSession();
-    void onlineStateChanged(bool);
-
-  private Q_SLOTS:
-    void openSession();
-
-  private:
-    explicit nsQtNetworkManager(QObject* parent = 0);
-
-    static nsQtNetworkManager* gQtNetworkManager;
-    QNetworkSession* networkSession;
-    QNetworkConfiguration networkConfiguration;
-    QNetworkConfigurationManager networkConfigurationManager;
-    QTimer mBlockTimer;
-    bool mOnline;
-};
-
-#endif /* NSQTNETWORKMANAGER_H_ */
-
--- a/old-configure.in
+++ b/old-configure.in
@@ -2860,22 +2860,16 @@ dnl ====================================
 MOZ_ARG_HEADER(Toolkit Options)
 
 dnl ========================================================
 dnl = Enable the toolkit as needed                         =
 dnl ========================================================
 
 case "$MOZ_WIDGET_TOOLKIT" in
 
-qt)
-    MOZ_ENABLE_QT=1
-
-    AC_DEFINE(QT_NO_KEYWORDS)
-    ;;
-
 cocoa)
     LDFLAGS="$LDFLAGS -framework Cocoa -lobjc"
     # Use -Wl as a trick to avoid -framework and framework names from
     # being separated by AC_SUBST_LIST.
     TK_LIBS='-Wl,-framework,CoreLocation -Wl,-framework,QuartzCore -Wl,-framework,Carbon -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit -Wl,-framework,AddressBook -Wl,-framework,OpenGL -Wl,-framework,Security -Wl,-framework,ServiceManagement'
     TK_CFLAGS=""
     CFLAGS="$CFLAGS $TK_CFLAGS"
     CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
@@ -2980,184 +2974,19 @@ if test -n "$MOZ_IOS" -a -n "$NS_PRINTIN
    AC_MSG_ERROR([Printing is not supported on iOS.])
 fi
 
 if test "$NS_PRINTING"; then
     AC_DEFINE(NS_PRINTING)
     AC_DEFINE(NS_PRINT_PREVIEW)
 fi
 
-dnl ========================================================
-dnl = QT support
-dnl ========================================================
-if test "$MOZ_ENABLE_QT"
-then
-    MOZ_ARG_WITH_STRING(qtdir,
-    [  --with-qtdir=\$dir       Specify Qt directory ],
-    [ QTDIR=$withval])
-
-    if test -z "$QTDIR"; then
-        AC_CHECK_PROGS(HOST_QMAKE, $HOST_QMAKE qmake, "")
-    else
-        HOST_QMAKE="$QTDIR/bin/qmake"
-    fi
-    QT_VERSION=`$HOST_QMAKE -v | grep 'Using Qt version' | egrep -o '[[0-9]]+\.[[0-9]]+\.[[0-9]]+'`
-
-    if test -z "$QTDIR"; then
-        case $QT_VERSION in
-        5.*)
-            AC_MSG_RESULT("Using qt5: $QT_VERSION")
-            PKG_CHECK_MODULES(MOZ_QT, Qt5Gui Qt5Network Qt5Core Qt5Quick, ,
-            [
-              AC_MSG_ERROR([$MOZ_QT_PKG_ERRORS Need qtbase development packages, (On Ubuntu, you might try installing the packages qtbase5-dev libqt5opengl5-dev.)])
-            ])
-            QT5INCDIR=`pkg-config --variable=includedir Qt5Gui`
-            MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QT5INCDIR/QtGui/$QT_VERSION/QtGui"
-            if test "$NS_PRINTING"; then
-                PKG_CHECK_MODULES(MOZ_QT_WIDGETS, Qt5PrintSupport, ,
-                [
-                  AC_MSG_ERROR([$MOZ_QT_PKG_ERRORS Need qt5 printsupport development package])
-                ])
-                MOZ_QT_LIBS="$MOZ_QT_LIBS $MOZ_QT_WIDGETS_LIBS"
-                MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $MOZ_QT_WIDGETS_CFLAGS"
-            fi
-            ;;
-        *)
-            AC_MSG_ERROR([* * * Unsupported Qt Version: $QT_VERSION])
-            ;;
-        esac
-
-        AC_CHECK_PROGS(HOST_MOC, $MOC moc, "")
-        AC_CHECK_PROGS(HOST_RCC, $RCC rcc, "")
-    else
-        MOZ_QT_CFLAGS="-DQT_SHARED"
-        MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include"
-        MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtGui"
-        MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtCore"
-        MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtNetwork"
-        MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtXml"
-        MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtDeclarative"
-        case $QT_VERSION in
-        5.*)
-            AC_MSG_RESULT("Using qt5: $QT_VERSION")
-            MOZ_QT_LIBS="$MOZ_QT_LIBS -L$QTDIR/lib/ -lQt5Gui -lQt5Network -lQt5Core -lQt5Xml"
-            MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtGui/$QT_VERSION/QtGui"
-            if test "$NS_PRINTING"; then
-                MOZ_QT_LIBS="$MOZ_QT_LIBS -lQt5Widgets -lQt5PrintSupport"
-                MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtPrintSupport"
-            fi
-            ;;
-        *)
-            AC_MSG_ERROR([* * * Unsupported Qt Version: $QT_VERSION])
-            ;;
-        esac
-
-        HOST_MOC="$QTDIR/bin/moc"
-        HOST_RCC="$QTDIR/bin/rcc"
-    fi
-    if test -z "$HOST_MOC"; then
-        AC_MSG_ERROR([No acceptable moc preprocessor found. Qt SDK is not installed or --with-qt is incorrect])
-    fi
-    if test -z "$HOST_RCC"; then
-        AC_MSG_ERROR([No acceptable rcc preprocessor found. Qt SDK is not installed or --with-qt is incorrect])
-    fi
-
-    MOC=$HOST_MOC
-    RCC=$HOST_RCC
-
-    MOZ_ENABLE_QMSYSTEM2=
-    PKG_CHECK_MODULES(_QMSYSTEM2, qmsystem2,
-                      MOZ_ENABLE_QMSYSTEM2=1,
-                      MOZ_ENABLE_QMSYSTEM2=)
-
-    if test "$MOZ_ENABLE_QMSYSTEM2"; then
-      MOZ_ENABLE_QMSYSTEM2=1
-      MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $_QMSYSTEM2_CFLAGS"
-      MOZ_QT_LIBS="$MOZ_QT_LIBS $_QMSYSTEM2_LIBS"
-      AC_DEFINE(MOZ_ENABLE_QMSYSTEM2)
-    fi
-
-    MOZ_ENABLE_QTNETWORK=
-    PKG_CHECK_MODULES(_QTNETWORK, QtNetwork >= 4.7,
-                      MOZ_ENABLE_QTNETWORK=1,
-                      MOZ_ENABLE_QTNETWORK=)
-
-    if test "$MOZ_ENABLE_QTNETWORK"; then
-      MOZ_ENABLE_QTNETWORK=1
-      AC_DEFINE(MOZ_ENABLE_QTNETWORK)
-    fi
-
-    MOZ_ENABLE_QTMOBILITY=
-    PKG_CHECK_MODULES(_QTMOBILITY, QtSensors QtFeedback QtLocation,
-                      MOZ_ENABLE_QTMOBILITY=1,
-                      MOZ_ENABLE_QTMOBILITY=)
-    if test "$MOZ_ENABLE_QTMOBILITY"; then
-       MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $_QTMOBILITY_CFLAGS"
-       MOZ_QT_LIBS="$MOZ_QT_LIBS $_QTMOBILITY_LIBS"
-    else
-       AC_CHECK_LIB(QtSensors, main, [
-          MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtMobility"
-          MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtSensors"
-          MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtFeedback"
-          MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtLocation"
-          MOZ_QT_LIBS="$MOZ_QT_LIBS -lQtSensors -lQtFeedback -lQtLocation"
-       ])
-    fi
-
-    MOZ_ENABLE_QT5FEEDBACK=
-    PKG_CHECK_MODULES(_QT5FEEDBACK, Qt0Feedback,
-                      MOZ_ENABLE_QT5FEEDBACK=1,
-                      MOZ_ENABLE_QT5FEEDBACK=)
-    if test "$MOZ_ENABLE_QT5FEEDBACK"; then
-       MOZ_ENABLE_QT5FEEDBACK=1
-       MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $_QT5FEEDBACK_CFLAGS"
-       MOZ_QT_LIBS="$MOZ_QT_LIBS $_QT5FEEDBACK_LIBS"
-       AC_DEFINE(MOZ_ENABLE_QT5FEEDBACK)
-       AC_SUBST(MOZ_ENABLE_QT5FEEDBACK)
-    fi
-
-    MOZ_ENABLE_QT5GEOPOSITION=
-    PKG_CHECK_MODULES(_QT5GEOPOSITION, Qt5Positioning,
-                      MOZ_ENABLE_QT5GEOPOSITION=1,
-                      MOZ_ENABLE_QT5GEOPOSITION=)
-    if test "$MOZ_ENABLE_QT5GEOPOSITION"; then
-       MOZ_ENABLE_QT5GEOPOSITION=1
-       MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $_QT5GEOPOSITION_CFLAGS"
-       MOZ_QT_LIBS="$MOZ_QT_LIBS $_QT5GEOPOSITION_LIBS"
-       AC_DEFINE(MOZ_ENABLE_QT5GEOPOSITION)
-       AC_SUBST(MOZ_ENABLE_QT5GEOPOSITION)
-    fi
-
-    if test "$MOZ_ENABLE_CONTENTACTION"; then
-      MOZ_ENABLE_CONTENTACTION=1
-      AC_DEFINE(MOZ_ENABLE_CONTENTACTION)
-    fi
-
-    MOZ_ENABLE_CONTENTACTION=
-    PKG_CHECK_MODULES(LIBCONTENTACTION, contentaction-0.1, _LIB_FOUND=1, _LIB_FOUND=)
-    if test "$MOZ_ENABLE_CONTENTACTION"; then
-       MOZ_ENABLE_CONTENTACTION=1
-       MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $_CONTENTACTION_CFLAGS"
-       MOZ_QT_LIBS="$MOZ_QT_LIBS $_CONTENTACTION_LIBS"
-       AC_DEFINE(MOZ_ENABLE_CONTENTACTION)
-       AC_SUBST(MOZ_ENABLE_CONTENTACTION)
-    fi
-    TK_CFLAGS=$MOZ_QT_CFLAGS
-    TK_LIBS=$MOZ_QT_LIBS
-fi
-
 AC_SUBST_LIST(TK_CFLAGS)
 AC_SUBST_LIST(TK_LIBS)
 
-AC_SUBST(MOZ_ENABLE_QT)
-AC_SUBST(MOZ_ENABLE_QTNETWORK)
-AC_SUBST(MOZ_ENABLE_QMSYSTEM2)
-AC_SUBST_LIST(MOZ_QT_CFLAGS)
-AC_SUBST_LIST(MOZ_QT_LIBS)
-
 AC_SUBST(MOC)
 AC_SUBST(RCC)
 
 dnl ========================================================
 dnl =
 dnl = Components & Features
 dnl =
 dnl ========================================================
@@ -3224,17 +3053,17 @@ dnl ====================================
 MOZ_ANDROID_GOOGLE_PLAY_SERVICES
 MOZ_ANDROID_GOOGLE_CLOUD_MESSAGING
 MOZ_ANDROID_INSTALL_TRACKING
 
 
 dnl ========================================================
 dnl = Pango
 dnl ========================================================
-if test "$MOZ_ENABLE_GTK" -o "$MOZ_ENABLE_QT"
+if test "$MOZ_ENABLE_GTK"
 then
     PKG_CHECK_MODULES(_PANGOCHK, pango >= $PANGO_VERSION)
 
     PKG_CHECK_MODULES(MOZ_PANGO, pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION pangocairo >= $PANGO_VERSION)
 fi
 
 dnl ========================================================
 dnl = GIO and GConf support module
@@ -3309,17 +3138,17 @@ then
 
     AC_SUBST(MOZ_ENABLE_GCONF)
 fi
 
 dnl ========================================================
 dnl = libproxy support
 dnl ========================================================
 
-if test "$MOZ_ENABLE_GTK" -o "$MOZ_ENABLE_QT"
+if test "$MOZ_ENABLE_GTK"
 then
     MOZ_ENABLE_LIBPROXY=
 
     MOZ_ARG_ENABLE_BOOL(libproxy,
     [  --enable-libproxy         Enable libproxy support ],
     MOZ_ENABLE_LIBPROXY=1,
     MOZ_ENABLE_LIBPROXY=)
 
@@ -3362,17 +3191,17 @@ then
 fi
 
 AC_SUBST(MOZ_ENABLE_GNOMEUI)
 
 dnl ========================================================
 dnl = dbus support
 dnl ========================================================
 
-if test "$MOZ_ENABLE_GTK" -o "$MOZ_ENABLE_QT"
+if test "$MOZ_ENABLE_GTK"
 then
     MOZ_ENABLE_DBUS=1
 
     MOZ_ARG_DISABLE_BOOL(dbus,
     [  --disable-dbus          Disable dbus support ],
         MOZ_ENABLE_DBUS=,
         MOZ_ENABLE_DBUS=1)
 
@@ -3384,17 +3213,17 @@ then
     fi
 fi
 AC_SUBST(MOZ_ENABLE_DBUS)
 
 dnl ========================================================
 dnl = speech-dispatcher support
 dnl ========================================================
 
-if test "$MOZ_ENABLE_GTK" -o "$MOZ_ENABLE_QT"
+if test "$MOZ_ENABLE_GTK"
 then
     MOZ_SYNTH_SPEECHD=1
 
     MOZ_ARG_DISABLE_BOOL(synth-speechd,
     [  --disable-synth-speechd Disable speech-dispatcher support ],
         MOZ_SYNTH_SPEECHD=,
         MOZ_SYNTH_SPEECHD=1)
 fi
--- a/toolkit/library/moz.build
+++ b/toolkit/library/moz.build
@@ -122,17 +122,17 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3
         'mozgtk_stub',
     ]
 
 if CONFIG['MOZ_JPROF']:
     USE_LIBS += [
         'jprof',
     ]
 
-if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT'] or CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt' or \
+if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT'] or \
         CONFIG['MOZ_TREE_FREETYPE']:
     USE_LIBS += [
         'freetype',
     ]
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
     CXXFLAGS += CONFIG['TK_CFLAGS']
 
@@ -297,23 +297,16 @@ if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']
     OS_LIBS += CONFIG['XLIBS']
     OS_LIBS += CONFIG['XEXT_LIBS']
     OS_LIBS += CONFIG['MOZ_PANGO_LIBS']
     OS_LIBS += CONFIG['XT_LIBS']
     OS_LIBS += [
         'gthread-2.0',
     ]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
-    OS_LIBS += CONFIG['XLDFLAGS']
-    OS_LIBS += CONFIG['XLIBS']
-    OS_LIBS += CONFIG['XT_LIBS']
-    OS_LIBS += CONFIG['MOZ_QT_LIBS']
-    OS_LIBS += CONFIG['MOZ_PANGO_LIBS']
-
 if CONFIG['MOZ_ENABLE_STARTUP_NOTIFICATION']:
     OS_LIBS += CONFIG['MOZ_STARTUP_NOTIFICATION_LIBS']
 
 if CONFIG['MOZ_ENABLE_LIBPROXY']:
     OS_LIBS += CONFIG['MOZ_LIBPROXY_LIBS']
 
 if CONFIG['OS_ARCH'] == 'SunOS':
     OS_LIBS += [
@@ -359,19 +352,16 @@ if CONFIG['OS_ARCH'] == 'WINNT':
         'locationapi',
         'sapi',
     ]
     if CONFIG['ACCESSIBILITY']:
         OS_LIBS += [
             'oleacc',
         ]
 
-if CONFIG['MOZ_ENABLE_QT']:
-    OS_LIBS += CONFIG['XEXT_LIBS']
-
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
     OS_LIBS += [
         'usp10',
         'oleaut32',
     ]
 
 # This needs to be last
 USE_LIBS += ['StaticXULComponentsEnd']
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -93,17 +93,17 @@ set_config('L10NBASEDIR', l10n_base)
 # ==============================================================
 # Normally, we'd want to use the `default` field on the option, but that
 # requires --target to be resolved at --help time, which requires to run
 # config.guess, which we want to avoid. Even better, we could actually set
 # `choices` depending on the target, but that doesn't pan out for the same
 # reason.
 option('--enable-default-toolkit', nargs=1,
        choices=('cairo-windows', 'cairo-gtk2', 'cairo-gtk2-x11', 'cairo-gtk3',
-                'cairo-qt', 'cairo-cocoa', 'cairo-uikit', 'cairo-android',
+                'cairo-cocoa', 'cairo-uikit', 'cairo-android',
                 'cairo-gonk'),
        help='Select default toolkit')
 
 @depends('--enable-default-toolkit', target)
 def toolkit(value, target):
     # Define possible choices for each platform. The default is the first one
     # listed when there are several.
     os = target.os
@@ -116,18 +116,17 @@ def toolkit(value, target):
     elif target.os == 'Android':
         if value.origin == 'implied':
             # Trust values coming from imply_option() (used in
             # b2g/moz.configure).
             platform_choices = tuple(value)
         else:
             platform_choices = ('cairo-android',)
     else:
-        platform_choices = ('cairo-gtk3', 'cairo-gtk2', 'cairo-gtk2-x11',
-                            'cairo-qt')
+        platform_choices = ('cairo-gtk3', 'cairo-gtk2', 'cairo-gtk2-x11')
 
     if value:
         if value[0] not in platform_choices:
             die('`%s` is not a valid value for --enable-default-toolkit on %s\n'
                 'Valid values: %s', value[0], os, ', '.join(platform_choices))
         return value[0]
 
     return platform_choices[0]
@@ -160,20 +159,20 @@ def toolkit_define(toolkit):
 
 set_define(toolkit_define, True)
 
 
 option('--without-x', env='WITHOUT_X', help='Disable X11 support')
 
 @depends('--without-x', toolkit)
 def x11(value, toolkit):
-    if not value and toolkit != 'qt':
-        die('--without-x is only valid with --enable-default-toolkit=qt')
+    if not value:
+        die('--without-x is not supported')
 
-    x11_toolkits = ('gtk2', 'gtk3', 'qt')
+    x11_toolkits = ('gtk2', 'gtk3')
     if value and value.origin != 'default' and toolkit not in x11_toolkits:
         die('--with-x is only valid with --enable-default-toolkit={%s}',
             ','.join(x11_toolkits))
 
     return True if value and toolkit in x11_toolkits else None
 
 set_config('MOZ_ENABLE_XREMOTE', x11)
 set_define('MOZ_ENABLE_XREMOTE', x11)
@@ -214,17 +213,17 @@ def gl_provider_define(provider):
 
 set_define(gl_provider_define, True)
 
 
 # PDF printing
 # ==============================================================
 @depends(toolkit)
 def pdf_printing(toolkit):
-    if toolkit in ('windows', 'gtk2', 'gtk3', 'qt', 'android', 'gonk'):
+    if toolkit in ('windows', 'gtk2', 'gtk3', 'android', 'gonk'):
         return True
 
 @depends(pdf_printing)
 def pdf_surface_feature(pdf_printing):
     if pdf_printing:
         return '#define CAIRO_HAS_PDF_SURFACE 1'
     else:
         # CONFIGURE_SUBST_FILES need explicit empty values.
@@ -251,17 +250,17 @@ set_define('MOZ_INSTRUMENT_EVENT_LOOP', 
 
 # Fontconfig Freetype
 # ==============================================================
 option(env='USE_FC_FREETYPE',
        help='Force-enable the use of fontconfig freetype')
 
 @depends('USE_FC_FREETYPE', toolkit)
 def fc_freetype(value, toolkit):
-    if value or (toolkit in ('gtk2', 'gtk3', 'qt') and
+    if value or (toolkit in ('gtk2', 'gtk3') and
                  value.origin == 'default'):
         return True
 
 add_old_configure_assignment('USE_FC_FREETYPE', fc_freetype)
 
 
 # Apple platform decoder support
 # ==============================================================
--- a/widget/moz.build
+++ b/widget/moz.build
@@ -1,19 +1,19 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # 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/.
 
 toolkit = CONFIG['MOZ_WIDGET_TOOLKIT']
 
-if toolkit in ('cocoa', 'qt', 'android', 'gonk', 'uikit'):
+if toolkit in ('cocoa', 'android', 'gonk', 'uikit'):
     DIRS += [toolkit]
-if toolkit in ('qt', 'android', 'gonk', 'gtk2', 'gtk3'):
+if toolkit in ('android', 'gonk', 'gtk2', 'gtk3'):
     EXPORTS += ['nsIPrintDialogService.h']
 
 if toolkit == 'windows':
     DIRS += ['windows']
 
     XPIDL_SOURCES += [
         'nsIJumpListBuilder.idl',
         'nsIJumpListItem.idl',
@@ -206,23 +206,23 @@ if CONFIG['MOZ_X11']:
         'nsShmImage.cpp'
     ]
 
 if toolkit in ('cocoa', 'windows'):
     UNIFIED_SOURCES += [
         'nsBaseClipboard.cpp',
     ]
 
-if toolkit in {'qt', 'gtk2', 'gtk3', 'cocoa', 'windows',
+if toolkit in {'gtk2', 'gtk3', 'cocoa', 'windows',
                'android', 'gonk', 'uikit'}:
     UNIFIED_SOURCES += [
         'nsBaseFilePicker.cpp',
     ]
 
-if toolkit in ('qt', 'gtk2', 'gtk3', 'windows', 'cocoa'):
+if toolkit in ('gtk2', 'gtk3', 'windows', 'cocoa'):
     UNIFIED_SOURCES += [
         'nsNativeTheme.cpp',
     ]
 if toolkit == 'gtk3':
     XPIDL_SOURCES += [
         'nsIApplicationChooser.idl',
     ]
 
deleted file mode 100644
--- a/widget/qt/GfxInfo.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* 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/. */
-
-#include "GfxInfo.h"
-
-using namespace mozilla::widget;
-
-/* GetD2DEnabled and GetDwriteEnabled shouldn't be called until after gfxPlatform initialization
- * has occurred because they depend on it for information. (See bug 591561) */
-nsresult
-GfxInfo::GetD2DEnabled(bool *aEnabled)
-{
-  return NS_ERROR_FAILURE;
-}
-
-nsresult
-GfxInfo::GetDWriteEnabled(bool *aEnabled)
-{
-  return NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetDWriteVersion(nsAString & aDwriteVersion)
-{
-  return NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetCleartypeParameters(nsAString & aCleartypeParams)
-{
-  return NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterDescription(nsAString & aAdapterDescription)
-{
-  aAdapterDescription.Truncate();
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterDescription2(nsAString & aAdapterDescription)
-{
-  return NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterRAM(nsAString & aAdapterRAM)
-{
-  aAdapterRAM.Truncate();
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterRAM2(nsAString & aAdapterRAM)
-{
-  return NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterDriver(nsAString & aAdapterDriver)
-{
-  aAdapterDriver.Truncate();
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterDriver2(nsAString & aAdapterDriver)
-{
-  return NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterDriverVersion(nsAString & aAdapterDriverVersion)
-{
-  aAdapterDriverVersion.Truncate();
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterDriverVersion2(nsAString & aAdapterDriverVersion)
-{
-  return NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterDriverDate(nsAString & aAdapterDriverDate)
-{
-  aAdapterDriverDate.Truncate();
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterDriverDate2(nsAString & aAdapterDriverDate)
-{
-  return NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterVendorID(nsAString & aAdapterVendorID)
-{
-  aAdapterVendorID.Truncate();
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterVendorID2(nsAString & aAdapterVendorID)
-{
-  return NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterDeviceID(nsAString & aAdapterDeviceID)
-{
-  aAdapterDeviceID.Truncate();
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterDeviceID2(nsAString & aAdapterDeviceID)
-{
-  return NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterSubsysID(nsAString & aAdapterSubsysID)
-{
-  return NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetAdapterSubsysID2(nsAString & aAdapterSubsysID)
-{
-  return NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-GfxInfo::GetIsGPU2Active(bool* aIsGPU2Active)
-{
-  return NS_ERROR_FAILURE;
-}
-
-const nsTArray<GfxDriverInfo>&
-GfxInfo::GetGfxDriverInfo()
-{
-  return *mDriverInfo;
-}
-
-uint32_t GfxInfo::OperatingSystemVersion()
-{
-  return 0;
-}
-
-nsresult
-GfxInfo::GetFeatureStatusImpl(int32_t /*aFeature*/, 
-                              int32_t *aStatus, 
-                              nsAString & /*aSuggestedDriverVersion*/,
-                              const nsTArray<GfxDriverInfo>& /*aDriverInfo*/, 
-                              OperatingSystem* /*aOS*/ /* = nullptr */)
-{
-  NS_ENSURE_ARG_POINTER(aStatus);
-  *aStatus = nsIGfxInfo::FEATURE_STATUS_OK;
-
-  return NS_OK;
-}
-
-#ifdef DEBUG
-
-// Implement nsIGfxInfoDebug
-
-NS_IMETHODIMP GfxInfo::SpoofVendorID(const nsAString &)
-{
-  return NS_OK;
-}
-
-NS_IMETHODIMP GfxInfo::SpoofDeviceID(const nsAString &)
-{
-  return NS_OK;
-}
-
-NS_IMETHODIMP GfxInfo::SpoofDriverVersion(const nsAString &)
-{
-  return NS_OK;
-}
-
-NS_IMETHODIMP GfxInfo::SpoofOSVersion(uint32_t)
-{
-  return NS_OK;
-}
-
-#endif
deleted file mode 100644
--- a/widget/qt/GfxInfo.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* vim: se cin sw=2 ts=2 et : */
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * 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 __mozilla_widget_GfxInfo_h__
-#define __mozilla_widget_GfxInfo_h__
-
-#include "GfxInfoBase.h"
-#include "GfxDriverInfo.h"
-
-#include "nsString.h"
-
-namespace mozilla {
-namespace widget {
-
-class GfxInfo : public GfxInfoBase
-{
-public:
-  // We only declare the subset of nsIGfxInfo that we actually implement. The
-  // rest is brought forward from GfxInfoBase.
-  NS_IMETHOD GetD2DEnabled(bool *aD2DEnabled);
-  NS_IMETHOD GetDWriteEnabled(bool *aDWriteEnabled);
-  NS_IMETHOD GetDWriteVersion(nsAString & aDwriteVersion);
-  NS_IMETHOD GetCleartypeParameters(nsAString & aCleartypeParams);
-  NS_IMETHOD GetAdapterDescription(nsAString & aAdapterDescription);
-  NS_IMETHOD GetAdapterDriver(nsAString & aAdapterDriver);
-  NS_IMETHOD GetAdapterVendorID(nsAString & aAdapterVendorID);
-  NS_IMETHOD GetAdapterDeviceID(nsAString & aAdapterDeviceID);
-  NS_IMETHOD GetAdapterSubsysID(nsAString & aAdapterSubsysID);
-  NS_IMETHOD GetAdapterRAM(nsAString & aAdapterRAM);
-  NS_IMETHOD GetAdapterDriverVersion(nsAString & aAdapterDriverVersion);
-  NS_IMETHOD GetAdapterDriverDate(nsAString & aAdapterDriverDate);
-  NS_IMETHOD GetAdapterDescription2(nsAString & aAdapterDescription);
-  NS_IMETHOD GetAdapterDriver2(nsAString & aAdapterDriver);
-  NS_IMETHOD GetAdapterVendorID2(nsAString & aAdapterVendorID);
-  NS_IMETHOD GetAdapterDeviceID2(nsAString & aAdapterDeviceID);
-  NS_IMETHOD GetAdapterSubsysID2(nsAString & aAdapterSubsysID);
-  NS_IMETHOD GetAdapterRAM2(nsAString & aAdapterRAM);
-  NS_IMETHOD GetAdapterDriverVersion2(nsAString & aAdapterDriverVersion);
-  NS_IMETHOD GetAdapterDriverDate2(nsAString & aAdapterDriverDate);
-  NS_IMETHOD GetIsGPU2Active(bool *aIsGPU2Active);
-  using GfxInfoBase::GetFeatureStatus;
-  using GfxInfoBase::GetFeatureSuggestedDriverVersion;
-  using GfxInfoBase::GetWebGLParameter;
-
-  virtual uint32_t OperatingSystemVersion() override;
-
-#ifdef DEBUG
-  NS_DECL_NSIGFXINFODEBUG
-#endif
-
-protected:
-
-  virtual nsresult GetFeatureStatusImpl(int32_t aFeature,
-                                        int32_t *aStatus,
-                                        nsAString & aSuggestedDriverVersion,
-                                        const nsTArray<GfxDriverInfo>& aDriverInfo,
-                                        OperatingSystem* aOS = nullptr);
-  virtual const nsTArray<GfxDriverInfo>& GetGfxDriverInfo();
-};
-
-} // namespace widget
-} // namespace mozilla
-
-#endif /* __mozilla_widget_GfxInfo_h__ */
deleted file mode 100644
--- a/widget/qt/moz.build
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# 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/.
-
-SOURCES += [
-    '!moc_mozqwidget.cpp',
-    '!moc_nsAppShell.cpp',
-    'mozqwidget.cpp',
-    'nsAppShell.cpp',
-    'nsBidiKeyboard.cpp',
-    'nsClipboard.cpp',
-    'nsIdleServiceQt.cpp',
-    'nsLookAndFeel.cpp',
-    'nsQtKeyUtils.cpp',
-    'nsScreenManagerQt.cpp',
-    'nsScreenQt.cpp',
-    'nsWidgetFactory.cpp',
-    'nsWindow.cpp',
-]
-
-
-if CONFIG['NS_PRINTING']:
-    SOURCES += [
-        'nsDeviceContextSpecQt.cpp',
-        'nsPrintDialogQt.cpp',
-        'nsPrintOptionsQt.cpp',
-        'nsPrintSettingsQt.cpp',
-    ]
-
-include('/ipc/chromium/chromium-config.mozbuild')
-
-FINAL_LIBRARY = 'xul'
-
-LOCAL_INCLUDES += [
-    '/widget',
-]
-
-if CONFIG['MOZ_X11']:
-    LOCAL_INCLUDES += [
-        '../x11',
-    ]
-else:
-    SOURCES += [
-        'GfxInfo.cpp',
-    ]
-
-
-#DEFINES['DEBUG_WIDGETS'] = True
-
-if CONFIG['OS_ARCH'] == 'Linux':
-    DEFINES['_BSD_SOURCE'] = True
-
-if CONFIG['OS_ARCH'] == 'SunOS' and not CONFIG['GNU_CC']:
-    # When using Sun's WorkShop compiler, including
-    # /wherever/workshop-5.0/SC5.0/include/CC/std/time.h
-    # causes most of these compiles to fail with:
-    # line 29: Error: Multiple declaration for std::tm.
-    # So, this gets around the problem.
-    DEFINES['_TIME_H'] = 1
-
-CXXFLAGS += CONFIG['MOZ_QT_CFLAGS']
-CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
-CFLAGS += CONFIG['MOZ_QT_CFLAGS']
-CFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
deleted file mode 100644
--- a/widget/qt/mozqwidget.cpp
+++ /dev/null
@@ -1,231 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* vim: set ts=4 et sw=4 tw=80: */
-/* 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/. */
-
-#include <QtCore/QCoreApplication>
-#include <QtGui/QResizeEvent>
-
-#include "mozqwidget.h"
-#include "nsWindow.h"
-
-using namespace mozilla::widget;
-
-MozQWidget::MozQWidget(nsWindow* aReceiver, QWindow* aParent)
-  : QWindow(aParent)
-  , mReceiver(aReceiver)
-  , mUpdatePending(false)
-{
-    mWindowType = mReceiver->WindowType();
-}
-
-MozQWidget::~MozQWidget()
-{
-}
-
-void MozQWidget::render(QPainter* painter)
-{
-    Q_UNUSED(painter);
-}
-
-void MozQWidget::renderLater()
-{
-    if (!isExposed() || eWindowType_child != mWindowType || !isVisible()) {
-        return;
-    }
-
-    if (!mUpdatePending) {
-        mUpdatePending = true;
-        QCoreApplication::postEvent(this, new QEvent(QEvent::UpdateRequest));
-    }
-}
-
-void MozQWidget::renderNow()
-{
-    if (!isExposed() || eWindowType_child != mWindowType || !isVisible()) {
-        return;
-    }
-
-    mReceiver->OnPaint();
-}
-
-bool MozQWidget::event(QEvent* event)
-{
-    switch (event->type()) {
-    case QEvent::UpdateRequest:
-        mUpdatePending = false;
-        renderNow();
-        return true;
-    default:
-        return QWindow::event(event);
-    }
-}
-
-void MozQWidget::exposeEvent(QExposeEvent* event)
-{
-    Q_UNUSED(event);
-    if (!isExposed() || eWindowType_child != mWindowType || !isVisible()) {
-        return;
-    }
-    LOG(("MozQWidget::%s [%p] flags:%x\n", __FUNCTION__, (void *)this, flags()));
-    renderNow();
-
-}
-
-void MozQWidget::resizeEvent(QResizeEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    mReceiver->resizeEvent(event);
-    QWindow::resizeEvent(event);
-}
-
-void MozQWidget::focusInEvent(QFocusEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    mReceiver->focusInEvent(event);
-    QWindow::focusInEvent(event);
-}
-
-void MozQWidget::focusOutEvent(QFocusEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    mReceiver->focusOutEvent(event);
-    QWindow::focusOutEvent(event);
-}
-
-void MozQWidget::hideEvent(QHideEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    mReceiver->hideEvent(event);
-    QWindow::hideEvent(event);
-}
-
-void MozQWidget::keyPressEvent(QKeyEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    mReceiver->keyPressEvent(event);
-    QWindow::keyPressEvent(event);
-}
-
-void MozQWidget::keyReleaseEvent(QKeyEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    mReceiver->keyReleaseEvent(event);
-    QWindow::keyReleaseEvent(event);
-}
-
-void MozQWidget::mouseDoubleClickEvent(QMouseEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    mReceiver->mouseDoubleClickEvent(event);
-    QWindow::mouseDoubleClickEvent(event);
-}
-
-void MozQWidget::mouseMoveEvent(QMouseEvent* event)
-{
-    mReceiver->mouseMoveEvent(event);
-    QWindow::mouseMoveEvent(event);
-}
-
-void MozQWidget::mousePressEvent(QMouseEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    mReceiver->mousePressEvent(event);
-    QWindow::mousePressEvent(event);
-}
-
-void MozQWidget::mouseReleaseEvent(QMouseEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    mReceiver->mouseReleaseEvent(event);
-    QWindow::mouseReleaseEvent(event);
-}
-
-void MozQWidget::moveEvent(QMoveEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    mReceiver->moveEvent(event);
-    QWindow::moveEvent(event);
-}
-
-void MozQWidget::showEvent(QShowEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    mReceiver->showEvent(event);
-    QWindow::showEvent(event);
-}
-
-void MozQWidget::wheelEvent(QWheelEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    mReceiver->wheelEvent(event);
-    QWindow::wheelEvent(event);
-}
-
-void MozQWidget::tabletEvent(QTabletEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    QWindow::tabletEvent(event);
-}
-
-void MozQWidget::touchEvent(QTouchEvent* event)
-{
-    LOG(("MozQWidget::%s [%p]\n", __FUNCTION__, (void *)this));
-    QWindow::touchEvent(event);
-}
-
-void MozQWidget::SetCursor(nsCursor aCursor)
-{
-    Qt::CursorShape cursor = Qt::ArrowCursor;
-    switch(aCursor) {
-    case eCursor_standard:
-        cursor = Qt::ArrowCursor;
-        break;
-    case eCursor_wait:
-        cursor = Qt::WaitCursor;
-        break;
-    case eCursor_select:
-        cursor = Qt::IBeamCursor;
-        break;
-    case eCursor_hyperlink:
-        cursor = Qt::PointingHandCursor;
-        break;
-    case eCursor_ew_resize:
-        cursor = Qt::SplitHCursor;
-        break;
-    case eCursor_ns_resize:
-        cursor = Qt::SplitVCursor;
-        break;
-    case eCursor_nw_resize:
-    case eCursor_se_resize:
-        cursor = Qt::SizeBDiagCursor;
-        break;
-    case eCursor_ne_resize:
-    case eCursor_sw_resize:
-        cursor = Qt::SizeFDiagCursor;
-        break;
-    case eCursor_crosshair:
-    case eCursor_move:
-        cursor = Qt::SizeAllCursor;
-        break;
-    case eCursor_help:
-        cursor = Qt::WhatsThisCursor;
-        break;
-    case eCursor_copy:
-    case eCursor_alias:
-        break;
-    case eCursor_context_menu:
-    case eCursor_cell:
-    case eCursor_grab:
-    case eCursor_grabbing:
-    case eCursor_spinning:
-    case eCursor_zoom_in:
-    case eCursor_zoom_out:
-
-    default:
-        break;
-    }
-
-    setCursor(cursor);
-}
deleted file mode 100644
--- a/widget/qt/mozqwidget.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* vim: set ts=4 et sw=4 tw=80: */
-/* 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 MOZQWIDGET_H
-#define MOZQWIDGET_H
-
-#include "nsIWidget.h"
-
-#include <QtGui/QWindow>
-
-QT_BEGIN_NAMESPACE
-class QPainter;
-class QExposeEvent;
-class QResizeEvent;
-QT_END_NAMESPACE
-
-namespace mozilla {
-namespace widget {
-
-class nsWindow;
-
-class MozQWidget : public QWindow
-{
-    Q_OBJECT
-public:
-    explicit MozQWidget(nsWindow* aReceiver, QWindow* aParent = 0);
-    ~MozQWidget();
-
-    virtual void render(QPainter* painter);
-
-    virtual nsWindow* getReceiver() { return mReceiver; };
-    virtual void dropReceiver() { mReceiver = nullptr; };
-    virtual void SetCursor(nsCursor aCursor);
-
-public Q_SLOTS:
-    void renderLater();
-    void renderNow();
-
-protected:
-    virtual bool event(QEvent* event);
-    virtual void exposeEvent(QExposeEvent* event);
-    virtual void focusInEvent(QFocusEvent* event);
-    virtual void focusOutEvent(QFocusEvent* event);
-    virtual void hideEvent(QHideEvent* event);
-    virtual void keyPressEvent(QKeyEvent* event);
-    virtual void keyReleaseEvent(QKeyEvent* event);
-    virtual void mouseDoubleClickEvent(QMouseEvent* event);
-    virtual void mouseMoveEvent(QMouseEvent* event);
-    virtual void mousePressEvent(QMouseEvent* event);
-    virtual void mouseReleaseEvent(QMouseEvent* event);
-    virtual void moveEvent(QMoveEvent* event);
-    virtual void resizeEvent(QResizeEvent* event);
-    virtual void showEvent(QShowEvent* event);
-    virtual void tabletEvent(QTabletEvent* event);
-    virtual void touchEvent(QTouchEvent* event);
-    virtual void wheelEvent(QWheelEvent* event);
-
-private:
-    nsWindow* mReceiver;
-    bool mUpdatePending;
-    nsWindowType mWindowType;
-};
-
-} // namespace widget
-} // namespace mozilla
-
-#endif // MOZQWIDGET_H
-
deleted file mode 100644
--- a/widget/qt/nsAppShell.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* vim:expandtab:shiftwidth=4:tabstop=4:
- */
-/* 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/. */
-
-#include "nsAppShell.h"
-#include <QGuiApplication>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-
-#include <qabstracteventdispatcher.h>
-#include <qthread.h>
-
-#include "prenv.h"
-#include "nsQAppInstance.h"
-
-#ifdef MOZ_LOGGING
-#include "mozilla/Logging.h"
-#endif
-
-PRLogModuleInfo *gWidgetLog = nullptr;
-PRLogModuleInfo *gWidgetFocusLog = nullptr;
-PRLogModuleInfo *gWidgetIMLog = nullptr;
-PRLogModuleInfo *gWidgetDrawLog = nullptr;
-
-static int sPokeEvent;
-
-nsAppShell::~nsAppShell()
-{
-    nsQAppInstance::Release();
-}
-
-nsresult
-nsAppShell::Init()
-{
-    if (!gWidgetLog)
-        gWidgetLog = PR_NewLogModule("Widget");
-    if (!gWidgetFocusLog)
-        gWidgetFocusLog = PR_NewLogModule("WidgetFocus");
-    if (!gWidgetIMLog)
-        gWidgetIMLog = PR_NewLogModule("WidgetIM");
-    if (!gWidgetDrawLog)
-        gWidgetDrawLog = PR_NewLogModule("WidgetDraw");
-
-    sPokeEvent = QEvent::registerEventType();
-
-    nsQAppInstance::AddRef();
-
-    return nsBaseAppShell::Init();
-}
-
-void
-nsAppShell::ScheduleNativeEventCallback()
-{
-    QCoreApplication::postEvent(this,
-                                new QEvent((QEvent::Type) sPokeEvent));
-}
-
-
-bool
-nsAppShell::ProcessNextNativeEvent(bool mayWait)
-{
-    QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents;
-
-    if (mayWait)
-        flags |= QEventLoop::WaitForMoreEvents;
-
-    QAbstractEventDispatcher *dispatcher =  QAbstractEventDispatcher::instance(QThread::currentThread());
-    if (!dispatcher)
-        return false;
-
-    return dispatcher->processEvents(flags) ? true : false;
-}
-
-bool
-nsAppShell::event (QEvent *e)
-{
-    if (e->type() == sPokeEvent) {
-        NativeEventCallback();
-        return true;
-    }
-
-    return false;
-}
deleted file mode 100644
--- a/widget/qt/nsAppShell.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- Mode: c++; tab-width: 2; indent-tabs-mode: nil; -*- */
-/* 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 nsAppShell_h__
-#define nsAppShell_h__
-
-#include <qsocketnotifier.h>
-#include "nsBaseAppShell.h"
-#include "nsCOMPtr.h"
-
-/**
- * Native QT Application shell wrapper
- */
-
-class nsAppShell : public QObject,
-                   public nsBaseAppShell
-{
-  Q_OBJECT
-
-public:
-  nsAppShell() { };
-
-  nsresult Init();
-
-  virtual bool event (QEvent *e);
-
-protected:
-  virtual void ScheduleNativeEventCallback();
-  virtual bool ProcessNextNativeEvent(bool mayWait);
-  virtual ~nsAppShell();
-};
-
-
-#endif // nsAppShell_h__
-
deleted file mode 100644
--- a/widget/qt/nsBidiKeyboard.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* vim:expandtab:shiftwidth=4:tabstop=4:
- */
-/* 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/. */
-
-#include <Qt>
-#include <QGuiApplication>
-
-#include "nsBidiKeyboard.h"
-
-NS_IMPL_ISUPPORTS(nsBidiKeyboard, nsIBidiKeyboard)
-
-nsBidiKeyboard::nsBidiKeyboard() : nsIBidiKeyboard()
-{
-  Reset();
-}
-
-nsBidiKeyboard::~nsBidiKeyboard()
-{
-}
-
-NS_IMETHODIMP nsBidiKeyboard::Reset()
-{
-  return NS_OK;
-}
-
-NS_IMETHODIMP nsBidiKeyboard::IsLangRTL(bool *aIsRTL)
-{
-    *aIsRTL = false;
-
-    QInputMethod* input = qApp->inputMethod();
-    Qt::LayoutDirection layoutDir = input ? input->inputDirection() : Qt::LeftToRight;
-
-    if (layoutDir == Qt::RightToLeft) {
-        *aIsRTL = true;
-    }
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP nsBidiKeyboard::GetHaveBidiKeyboards(bool* aResult)
-{
-  // not implemented yet
-  return NS_ERROR_NOT_IMPLEMENTED;
-}
deleted file mode 100644
--- a/widget/qt/nsBidiKeyboard.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* vim:expandtab:shiftwidth=4:tabstop=4:
- */
-/* 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 __nsBidiKeyboard
-#define __nsBidiKeyboard
-#include "nsIBidiKeyboard.h"
-
-class nsBidiKeyboard : public nsIBidiKeyboard
-{
-public:
-    NS_DECL_ISUPPORTS
-    NS_DECL_NSIBIDIKEYBOARD
-
-    nsBidiKeyboard();
-
-protected:
-    virtual ~nsBidiKeyboard();
-};
-
-
-#endif // __nsBidiKeyboard
deleted file mode 100644
--- a/widget/qt/nsClipboard.cpp
+++ /dev/null
@@ -1,568 +0,0 @@
-/* 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/. */
-
-#include <QGuiApplication>
-#include <QMimeData>
-#include <QString>
-#include <QStringList>
-#include <QByteArray>
-#include <QImage>
-#include <QImageWriter>
-#include <QBuffer>
-
-#include "gfxPlatform.h"
-#include "mozilla/ArrayUtils.h"
-#include "mozilla/gfx/2D.h"
-
-#include "nsClipboard.h"
-#include "nsISupportsPrimitives.h"
-#include "nsXPIDLString.h"
-#include "nsPrimitiveHelpers.h"
-#include "nsIInputStream.h"
-#include "nsReadableUtils.h"
-#include "nsStringStream.h"
-#include "nsComponentManagerUtils.h"
-
-#include "imgIContainer.h"
-
-using namespace mozilla;
-using namespace mozilla::gfx;
-
-NS_IMPL_ISUPPORTS(nsClipboard, nsIClipboard)
-
-//-------------------------------------------------------------------------
-//
-// nsClipboard constructor
-//
-//-------------------------------------------------------------------------
-nsClipboard::nsClipboard() : nsIClipboard(),
-                             mSelectionOwner(nullptr),
-                             mGlobalOwner(nullptr),
-                             mSelectionTransferable(nullptr),
-                             mGlobalTransferable(nullptr)
-{
-    // No implementation needed
-}
-
-//-------------------------------------------------------------------------
-//
-// nsClipboard destructor
-//
-//-------------------------------------------------------------------------
-nsClipboard::~nsClipboard()
-{
-}
-
-static inline QImage::Format
-_moz2dformat_to_qformat(SurfaceFormat aFormat)
-{
-    switch (aFormat) {
-    case SurfaceFormat::B8G8R8A8:
-        return QImage::Format_ARGB32_Premultiplied;
-    case SurfaceFormat::B8G8R8X8:
-        return QImage::Format_ARGB32;
-    case SurfaceFormat::R5G6B5_UINT16:
-        return QImage::Format_RGB16;
-    default:
-        return QImage::Format_Invalid;
-    }
-}
-
-// nsClipboard::SetNativeClipboardData ie. Copy
-
-NS_IMETHODIMP
-nsClipboard::SetNativeClipboardData( nsITransferable *aTransferable,
-                                     QClipboard::Mode clipboardMode )
-{
-    if (nullptr == aTransferable)
-    {
-        NS_WARNING("nsClipboard::SetNativeClipboardData(): no transferable!");
-        return NS_ERROR_FAILURE;
-    }
-
-    // get flavor list that includes all flavors that can be written (including
-    // ones obtained through conversion)
-    nsCOMPtr<nsISupportsArray> flavorList;
-    nsresult rv = aTransferable->FlavorsTransferableCanExport( getter_AddRefs(flavorList) );
-
-    if (NS_FAILED(rv))
-    {
-        NS_WARNING("nsClipboard::SetNativeClipboardData(): no FlavorsTransferable !");
-        return NS_ERROR_FAILURE;
-    }
-
-    QClipboard *cb = QGuiApplication::clipboard();
-    QMimeData *mimeData = new QMimeData;
-
-    uint32_t flavorCount = 0;
-    flavorList->Count(&flavorCount);
-    bool imageAdded = false;
-
-    for (uint32_t i = 0; i < flavorCount; ++i)
-    {
-        nsCOMPtr<nsISupports> genericFlavor;
-        flavorList->GetElementAt(i,getter_AddRefs(genericFlavor));
-        nsCOMPtr<nsISupportsCString> currentFlavor(do_QueryInterface(genericFlavor));
-        
-        if (currentFlavor)
-        {
-            // flavorStr is the mime type
-            nsXPIDLCString flavorStr;
-            currentFlavor->ToString(getter_Copies(flavorStr));
-
-            // Clip is the data which will be sent to the clipboard
-            nsCOMPtr<nsISupports> clip;
-            // len is the length of the data
-            uint32_t len;
-
-            // Unicode text?
-            if (!strcmp(flavorStr.get(), kUnicodeMime))
-            {
-                rv = aTransferable->GetTransferData(flavorStr,getter_AddRefs(clip),&len);
-                nsCOMPtr<nsISupportsString> wideString;
-                wideString = do_QueryInterface(clip);
-                if (!wideString || NS_FAILED(rv))
-                    continue;
-
-                nsAutoString utf16string;
-                wideString->GetData(utf16string);
-                QString str = QString::fromUtf16((const ushort*)utf16string.get());
-
-                // Add text to the mimeData
-                mimeData->setText(str);
-            }
-
-            // html?
-            else if (!strcmp(flavorStr.get(), kHTMLMime))
-            {
-                rv = aTransferable->GetTransferData(flavorStr,getter_AddRefs(clip),&len);
-                nsCOMPtr<nsISupportsString> wideString;
-                wideString = do_QueryInterface(clip);
-                if (!wideString || NS_FAILED(rv))
-                    continue;
-
-                nsAutoString utf16string;
-                wideString->GetData(utf16string);
-                QString str = QString::fromUtf16((const ushort*)utf16string.get());
-
-                // Add html to the mimeData
-                mimeData->setHtml(str);
-            }
-
-            // image?
-            else if (!imageAdded // image is added only once to the clipboard
-                     && (!strcmp(flavorStr.get(), kNativeImageMime)
-                     ||  !strcmp(flavorStr.get(), kPNGImageMime)
-                     ||  !strcmp(flavorStr.get(), kJPEGImageMime)
-                     ||  !strcmp(flavorStr.get(), kJPGImageMime)
-                     ||  !strcmp(flavorStr.get(), kGIFImageMime))
-                    )
-            {
-                // Look through our transfer data for the image
-                static const char* const imageMimeTypes[] = {
-                    kNativeImageMime, kPNGImageMime, kJPEGImageMime, kJPGImageMime, kGIFImageMime };
-                nsCOMPtr<nsISupportsInterfacePointer> ptrPrimitive;
-                for (uint32_t i = 0; !ptrPrimitive && i < ArrayLength(imageMimeTypes); i++)
-                {
-                    aTransferable->GetTransferData(imageMimeTypes[i], getter_AddRefs(clip), &len);
-                    ptrPrimitive = do_QueryInterface(clip);
-                }
-
-                if (!ptrPrimitive)
-                    continue;
-
-                nsCOMPtr<nsISupports> primitiveData;
-                ptrPrimitive->GetData(getter_AddRefs(primitiveData));
-                nsCOMPtr<imgIContainer> image(do_QueryInterface(primitiveData));
-                if (!image)  // Not getting an image for an image mime type!?
-                   continue;
-
-                RefPtr<SourceSurface> surface =
-                  image->GetFrame(imgIContainer::FRAME_CURRENT,
-                                  imgIContainer::FLAG_SYNC_DECODE);
-                if (!surface)
-                  continue;
-
-                RefPtr<DataSourceSurface> dataSurface =
-                  surface->GetDataSurface();
-                if (!dataSurface)
-                  continue;
-
-                DataSourceSurface::MappedSurface map;
-                if (!dataSurface->Map(DataSourceSurface::MapType::READ, &map))
-                  continue;
-
-                QImage qImage(map.mData,
-                              dataSurface->GetSize().width,
-                              dataSurface->GetSize().height,
-                              map.mStride,
-                              _moz2dformat_to_qformat(dataSurface->GetFormat()));
-
-                dataSurface->Unmap();
-
-                // Add image to the mimeData
-                mimeData->setImageData(qImage);
-                imageAdded = true;
-            }
-
-            // Other flavors, adding data to clipboard "as is"
-            else
-            {
-                rv = aTransferable->GetTransferData(flavorStr.get(), getter_AddRefs(clip), &len);
-                // nothing found?
-                if (!clip || NS_FAILED(rv))
-                    continue;
-
-                void *primitive_data = nullptr;
-                nsPrimitiveHelpers::CreateDataFromPrimitive(flavorStr.get(), clip,
-                                                            &primitive_data, len);
-
-                if (primitive_data)
-                {
-                    QByteArray data ((const char *)primitive_data, len);
-                    // Add data to the mimeData
-                    mimeData->setData(flavorStr.get(), data);
-                    free(primitive_data);
-                }
-            }
-        }
-    }
-
-    // If we have some mime data, add it to the clipboard
-    if(!mimeData->formats().isEmpty())
-        cb->setMimeData(mimeData, clipboardMode);
-    else
-        delete mimeData;
-
-    return NS_OK;
-}
-
-// nsClipboard::GetNativeClipboardData ie. Paste
-//
-NS_IMETHODIMP
-nsClipboard::GetNativeClipboardData(nsITransferable *aTransferable,
-                                    QClipboard::Mode clipboardMode)
-{
-    if (nullptr == aTransferable)
-    {
-        NS_WARNING("GetNativeClipboardData: Transferable is null!");
-        return NS_ERROR_FAILURE;
-    }
-
-    // get flavor list that includes all acceptable flavors (including
-    // ones obtained through conversion)
-    nsCOMPtr<nsISupportsArray> flavorList;
-    nsresult errCode = aTransferable->FlavorsTransferableCanImport(
-        getter_AddRefs(flavorList));
-
-    if (NS_FAILED(errCode))
-    {
-        NS_WARNING("nsClipboard::GetNativeClipboardData(): no FlavorsTransferable!");
-        return NS_ERROR_FAILURE;
-    }
-
-    QClipboard *cb = QGuiApplication::clipboard();
-    const QMimeData *mimeData = cb->mimeData(clipboardMode);
-
-    // Walk through flavors and see which flavor matches the one being pasted
-    uint32_t flavorCount;
-    flavorList->Count(&flavorCount);
-    nsAutoCString foundFlavor;
-
-    for (uint32_t i = 0; i < flavorCount; ++i)
-    {
-        nsCOMPtr<nsISupports> genericFlavor;
-        flavorList->GetElementAt(i,getter_AddRefs(genericFlavor));
-        nsCOMPtr<nsISupportsCString> currentFlavor(do_QueryInterface( genericFlavor) );
-
-        if (currentFlavor)
-        {
-            nsXPIDLCString flavorStr;
-            currentFlavor->ToString(getter_Copies(flavorStr));
-
-            // Ok, so which flavor the data being pasted could be?
-            // Text?
-            if (!strcmp(flavorStr.get(), kUnicodeMime) && mimeData->hasText())
-            {
-                // Clipboard has text and flavor accepts text, so lets
-                // handle the data as text
-                foundFlavor = nsAutoCString(flavorStr);
-
-                // Get the text data from clipboard
-                QString text = mimeData->text();
-                const QChar *unicode = text.unicode();
-                // Is there a more correct way to get the size in UTF16?
-                uint32_t len = (uint32_t) 2*text.size();
-
-                // And then to genericDataWrapper
-                nsCOMPtr<nsISupports> genericDataWrapper;
-                nsPrimitiveHelpers::CreatePrimitiveForData(
-                        foundFlavor.get(),
-                        (void*)unicode,
-                        len,
-                        getter_AddRefs(genericDataWrapper));
-                // Data is good, set it to the transferable
-                aTransferable->SetTransferData(foundFlavor.get(),
-                                               genericDataWrapper,len);
-                // And thats all
-                break;
-            }
-
-            // html?
-            if (!strcmp(flavorStr.get(), kHTMLMime) && mimeData->hasHtml())
-            {
-                // Clipboard has text/html and flavor accepts text/html, so lets
-                // handle the data as text/html
-                foundFlavor = nsAutoCString(flavorStr);
-
-                // Get the text data from clipboard
-                QString html = mimeData->html();
-                const QChar *unicode = html.unicode();
-                // Is there a more correct way to get the size in UTF16?
-                uint32_t len = (uint32_t) 2*html.size();
-
-                // And then to genericDataWrapper
-                nsCOMPtr<nsISupports> genericDataWrapper;
-                nsPrimitiveHelpers::CreatePrimitiveForData(
-                        foundFlavor.get(),
-                        (void*)unicode,
-                        len,
-                        getter_AddRefs(genericDataWrapper));
-                // Data is good, set it to the transferable
-                aTransferable->SetTransferData(foundFlavor.get(),
-                                               genericDataWrapper,len);
-                // And thats all
-                break;
-            }
-
-            // Image?
-            if ((  !strcmp(flavorStr.get(), kJPEGImageMime)
-                || !strcmp(flavorStr.get(), kJPGImageMime)
-                || !strcmp(flavorStr.get(), kPNGImageMime)
-                || !strcmp(flavorStr.get(), kGIFImageMime))
-                && mimeData->hasImage())
-            {
-                // Try to retrieve an image from clipboard
-                QImage image = cb->image();
-                if(image.isNull())
-                    continue;
-
-                // Lets set the image format
-                QByteArray imageFormat;
-                if (!strcmp(flavorStr.get(), kJPEGImageMime) || !strcmp(flavorStr.get(), kJPGImageMime))
-                    imageFormat = "jpeg";
-                else if (!strcmp(flavorStr.get(), kPNGImageMime))
-                    imageFormat = "png";
-                else if (!strcmp(flavorStr.get(), kGIFImageMime))
-                    imageFormat = "gif";
-                else
-                    continue;
-
-                // Write image from clippboard to a QByteArrayBuffer
-                QByteArray imageData;
-                QBuffer imageBuffer(&imageData);
-                QImageWriter imageWriter(&imageBuffer, imageFormat);
-                if(!imageWriter.write(image))
-                    continue;
-
-                // Add the data to inputstream
-                nsCOMPtr<nsIInputStream> byteStream;
-                NS_NewByteInputStream(getter_AddRefs(byteStream), imageData.constData(),
-                                      imageData.size(), NS_ASSIGNMENT_COPY);
-                // Data is good, set it to the transferable
-                aTransferable->SetTransferData(flavorStr, byteStream, sizeof(nsIInputStream*));
-
-                imageBuffer.close();
-
-                // And thats all
-                break;
-            }
-
-            // Other mimetype?
-            // Trying to forward the data "as is"
-            if(mimeData->hasFormat(flavorStr.get()))
-            {
-                // get the data from the clipboard
-                QByteArray clipboardData = mimeData->data(flavorStr.get());
-                // And add it to genericDataWrapper
-                nsCOMPtr<nsISupports> genericDataWrapper;
-                nsPrimitiveHelpers::CreatePrimitiveForData(
-                        foundFlavor.get(),
-                        (void*) clipboardData.data(),
-                        clipboardData.size(),
-                        getter_AddRefs(genericDataWrapper));
-
-                // Data is good, set it to the transferable
-                aTransferable->SetTransferData(foundFlavor.get(),
-                                               genericDataWrapper,clipboardData.size());
-                // And thats all
-                break;
-            }
-        }
-    }
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsClipboard::HasDataMatchingFlavors(const char** aFlavorList, uint32_t aLength,
-                                    int32_t aWhichClipboard, bool *_retval)
-{
-    *_retval = false;
-    if (aWhichClipboard != kGlobalClipboard)
-        return NS_OK;
-
-    // Which kind of data in the clipboard
-    QClipboard *cb = QGuiApplication::clipboard();
-    const QMimeData *mimeData = cb->mimeData();
-    const char *flavor=nullptr;
-    QStringList formats = mimeData->formats();
-    for (uint32_t i = 0; i < aLength; ++i)
-    {
-        flavor = aFlavorList[i];
-        if (flavor)
-        {
-            QString qflavor(flavor);
-
-            if (strcmp(flavor,kTextMime) == 0)
-            {
-                NS_WARNING("DO NOT USE THE text/plain DATA FLAVOR ANY MORE. USE text/unicode INSTEAD");
-            }
-
-            // QClipboard says it has text/plain, mozilla wants to
-            // know if the data is text/unicode -> interpret text/plain to text/unicode
-            if (formats.contains(qflavor) ||
-                strcmp(flavor, kUnicodeMime) == 0)
-            {
-                // A match has been found, return'
-                *_retval = true;
-                break;
-            }
-        }
-    }
-    return NS_OK;
-}
-
-/**
- * Sets the transferable object
- */
-NS_IMETHODIMP
-nsClipboard::SetData(nsITransferable *aTransferable,
-                     nsIClipboardOwner *aOwner,
-                     int32_t aWhichClipboard)
-{
-    // See if we can short cut
-    if (
-        (aWhichClipboard == kGlobalClipboard
-           && aTransferable == mGlobalTransferable.get()
-           && aOwner == mGlobalOwner.get()
-        )
-       ||
-        (aWhichClipboard == kSelectionClipboard
-         && aTransferable == mSelectionTransferable.get()
-         && aOwner == mSelectionOwner.get()
-        )
-       )
-    {
-        return NS_OK;
-    }
-
-    EmptyClipboard(aWhichClipboard);
-
-    QClipboard::Mode mode;
-
-    if (kGlobalClipboard == aWhichClipboard)
-    {
-        mGlobalOwner = aOwner;
-        mGlobalTransferable = aTransferable;
-
-        mode = QClipboard::Clipboard;
-    }
-    else
-    {
-        mSelectionOwner = aOwner;
-        mSelectionTransferable = aTransferable;
-
-        mode = QClipboard::Selection;
-    }
-    return SetNativeClipboardData( aTransferable, mode );
-}
-
-/**
- * Gets the transferable object
- */
-NS_IMETHODIMP
-nsClipboard::GetData(nsITransferable *aTransferable, int32_t aWhichClipboard)
-{
-    if (nullptr != aTransferable)
-    {
-        QClipboard::Mode mode;
-        if (kGlobalClipboard == aWhichClipboard)
-        {
-            mode = QClipboard::Clipboard;
-        }
-        else
-        {
-            mode = QClipboard::Selection;
-        }
-        return GetNativeClipboardData(aTransferable, mode);
-    }
-    else
-    {
-        NS_WARNING("nsClipboard::GetData(), aTransferable is NULL.");
-    }
-    return NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-nsClipboard::EmptyClipboard(int32_t aWhichClipboard)
-{
-    if (aWhichClipboard == kSelectionClipboard)
-    {
-        if (mSelectionOwner)
-        {
-            mSelectionOwner->LosingOwnership(mSelectionTransferable);
-            mSelectionOwner = nullptr;
-        }
-        mSelectionTransferable = nullptr;
-    }
-    else
-    {
-        if (mGlobalOwner)
-        {
-            mGlobalOwner->LosingOwnership(mGlobalTransferable);
-            mGlobalOwner = nullptr;
-        }
-        mGlobalTransferable = nullptr;
-    }
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsClipboard::SupportsSelectionClipboard(bool *_retval)
-{
-    NS_ENSURE_ARG_POINTER(_retval);
-
-    QClipboard *cb = QGuiApplication::clipboard();
-    if (cb->supportsSelection())
-    {
-        *_retval = true; // we support the selection clipboard 
-    }
-    else
-    {
-        *_retval = false;
-    }
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsClipboard::SupportsFindClipboard(bool* _retval)
-{
-  NS_ENSURE_ARG_POINTER(_retval);
-
-  *_retval = false;
-  return NS_OK;
-}
deleted file mode 100644
--- a/widget/qt/nsClipboard.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* 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 nsClipboard_h__
-#define nsClipboard_h__
-
-#include "nsIClipboard.h"
-#include "nsITransferable.h"
-#include "nsIClipboardOwner.h"
-#include "nsCOMPtr.h"
-
-#include <qclipboard.h>
-
-/* Native Qt Clipboard wrapper */
-class nsClipboard : public nsIClipboard
-{
-public:
-    nsClipboard();
-
-    //nsISupports
-    NS_DECL_ISUPPORTS
-
-    // nsIClipboard
-    NS_DECL_NSICLIPBOARD
-
-protected:
-    virtual ~nsClipboard();
-
-    NS_IMETHOD SetNativeClipboardData(nsITransferable *aTransferable,
-                                      QClipboard::Mode cbMode);
-    NS_IMETHOD GetNativeClipboardData(nsITransferable *aTransferable,
-                                      QClipboard::Mode cbMode);
-
-    nsCOMPtr<nsIClipboardOwner> mSelectionOwner;
-    nsCOMPtr<nsIClipboardOwner> mGlobalOwner;
-    nsCOMPtr<nsITransferable>   mSelectionTransferable;
-    nsCOMPtr<nsITransferable>   mGlobalTransferable;
-};
-
-#endif // nsClipboard_h__
deleted file mode 100644
--- a/widget/qt/nsDeviceContextSpecQt.cpp
+++ /dev/null
@@ -1,249 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* 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/. */
-
-
-#include <QTemporaryFile>
-#include <QPrinterInfo>
-
-#define SET_PRINTER_FEATURES_VIA_PREFS 1
-#define PRINTERFEATURES_PREF "print.tmp.printerfeatures"
-
-#include "mozilla/gfx/PrintTargetPDF.h"
-#include "mozilla/Logging.h"
-
-#include "plstr.h"
-
-#include "nsDeviceContextSpecQt.h"
-
-#include "prenv.h" /* for PR_GetEnv */
-
-#include "nsReadableUtils.h"
-#include "nsStringEnumerator.h"
-#include "nsIServiceManager.h"
-#include "nsPrintSettingsQt.h"
-#include "nsIFileStreams.h"
-#include "nsIFile.h"
-#include "nsTArray.h"
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-using namespace mozilla;
-using namespace mozilla::gfx;
-
-static PRLogModuleInfo* DeviceContextSpecQtLM =
-    PR_NewLogModule("DeviceContextSpecQt");
-/* Macro to make lines shorter */
-#define DO_PR_DEBUG_LOG(x) MOZ_LOG(DeviceContextSpecQtLM, mozilla::LogLevel::Debug, x)
-
-nsDeviceContextSpecQt::nsDeviceContextSpecQt()
-{
-    DO_PR_DEBUG_LOG(("nsDeviceContextSpecQt::nsDeviceContextSpecQt()\n"));
-}
-
-nsDeviceContextSpecQt::~nsDeviceContextSpecQt()
-{
-    DO_PR_DEBUG_LOG(("nsDeviceContextSpecQt::~nsDeviceContextSpecQt()\n"));
-}
-
-NS_IMPL_ISUPPORTS(nsDeviceContextSpecQt,
-        nsIDeviceContextSpec)
-
-already_AddRefed<PrintTarget> nsDeviceContextSpecQt::MakePrintTarget()
-{
-    double width, height;
-    mPrintSettings->GetEffectivePageSize(&width, &height);
-
-    // If we're in landscape mode, we'll be rotating the output --
-    // need to swap width & height.
-    int32_t orientation;
-    mPrintSettings->GetOrientation(&orientation);
-    if (nsIPrintSettings::kLandscapeOrientation == orientation) {
-        double tmp = width;
-        width = height;
-        height = tmp;
-    }
-
-    // convert twips to points
-    width  /= TWIPS_PER_POINT_FLOAT;
-    height /= TWIPS_PER_POINT_FLOAT;
-
-    DO_PR_DEBUG_LOG(("\"%s\", %f, %f\n", mPath, width, height));
-
-    QTemporaryFile file;
-    if(!file.open()) {
-        return nullptr;
-    }
-    file.setAutoRemove(false);
-
-    nsresult rv = NS_NewNativeLocalFile(
-            nsDependentCString(file.fileName().toUtf8().constData()),
-            false,
-            getter_AddRefs(mSpoolFile));
-    if (NS_FAILED(rv)) {
-        file.remove();
-        return nullptr;
-    }
-
-    mSpoolName = file.fileName().toUtf8().constData();
-
-    mSpoolFile->SetPermissions(0600);
-
-    nsCOMPtr<nsIFileOutputStream> stream =
-        do_CreateInstance("@mozilla.org/network/file-output-stream;1");
-
-    rv = stream->Init(mSpoolFile, -1, -1, 0);
-    if (NS_FAILED(rv))
-        return nullptr;
-
-    int16_t format;
-    mPrintSettings->GetOutputFormat(&format);
-
-    if (format == nsIPrintSettings::kOutputFormatNative) {
-        if (mIsPPreview) {
-            // There is nothing to detect on Print Preview, use PS.
-            // TODO: implement for Qt?
-            //format = nsIPrintSettings::kOutputFormatPS;
-            return nullptr;
-        }
-        format = nsIPrintSettings::kOutputFormatPDF;
-    }
-
-    if (format == nsIPrintSettings::kOutputFormatPDF) {
-        return PrintTargetPDF::CreateOrNull(stream, IntSize(width, height));
-    }
-
-    return nullptr;
-}
-
-NS_IMETHODIMP nsDeviceContextSpecQt::Init(nsIWidget* aWidget,
-        nsIPrintSettings* aPS,
-        bool aIsPrintPreview)
-{
-    DO_PR_DEBUG_LOG(("nsDeviceContextSpecQt::Init(aPS=%p)\n", aPS));
-
-    mPrintSettings = aPS;
-    mIsPPreview = aIsPrintPreview;
-
-    // This is only set by embedders
-    bool toFile;
-    aPS->GetPrintToFile(&toFile);
-
-    mToPrinter = !toFile && !aIsPrintPreview;
-
-    nsCOMPtr<nsPrintSettingsQt> printSettingsQt(do_QueryInterface(aPS));
-    if (!printSettingsQt)
-        return NS_ERROR_NO_INTERFACE;
-    return NS_OK;
-}
-
-NS_IMETHODIMP nsDeviceContextSpecQt::BeginDocument(
-        const nsAString& aTitle,
-        const nsAString& aPrintToFileName,
-        int32_t aStartPage,
-        int32_t aEndPage)
-{
-    if (mToPrinter) {
-        return NS_ERROR_NOT_IMPLEMENTED;
-    }
-    return NS_OK;
-}
-
-NS_IMETHODIMP nsDeviceContextSpecQt::EndDocument()
-{
-    if (mToPrinter) {
-        return NS_ERROR_NOT_IMPLEMENTED;
-    }
-    // Handle print-to-file ourselves for the benefit of embedders
-    nsXPIDLString targetPath;
-    nsCOMPtr<nsIFile> destFile;
-    mPrintSettings->GetToFileName(getter_Copies(targetPath));
-
-    nsresult rv = NS_NewNativeLocalFile(NS_ConvertUTF16toUTF8(targetPath),
-            false, getter_AddRefs(destFile));
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    nsAutoString destLeafName;
-    rv = destFile->GetLeafName(destLeafName);
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    nsCOMPtr<nsIFile> destDir;
-    rv = destFile->GetParent(getter_AddRefs(destDir));
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    rv = mSpoolFile->MoveTo(destDir, destLeafName);
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    // This is the standard way to get the UNIX umask. Ugh.
-    mode_t mask = umask(0);
-    umask(mask);
-    // If you're not familiar with umasks, they contain the bits of what NOT
-    // to set in the permissions
-    // (thats because files and directories have different numbers of bits
-    // for their permissions)
-    destFile->SetPermissions(0666 & ~(mask));
-
-    return NS_OK;
-}
-
-//  Printer Enumerator
-nsPrinterEnumeratorQt::nsPrinterEnumeratorQt()
-{
-}
-
-nsPrinterEnumeratorQt::~nsPrinterEnumeratorQt()
-{
-}
-
-NS_IMPL_ISUPPORTS(nsPrinterEnumeratorQt, nsIPrinterEnumerator)
-
-NS_IMETHODIMP nsPrinterEnumeratorQt::GetPrinterNameList(
-        nsIStringEnumerator** aPrinterNameList)
-{
-    NS_ENSURE_ARG_POINTER(aPrinterNameList);
-    *aPrinterNameList = nullptr;
-
-    QList<QPrinterInfo> qprinters = QPrinterInfo::availablePrinters();
-    if (qprinters.size() == 0)
-        return NS_ERROR_NOT_AVAILABLE;
-
-    nsTArray<nsString>* printers =
-        new nsTArray<nsString>(qprinters.size()); 
-
-    for (int32_t i = 0; i < qprinters.size(); ++i) {
-        printers->AppendElement(
-                nsDependentString(
-                    (const char16_t*)qprinters[i].printerName().constData()));
-    }
-
-    return NS_NewAdoptingStringEnumerator(aPrinterNameList, printers);
-}
-
-NS_IMETHODIMP nsPrinterEnumeratorQt::GetDefaultPrinterName(
-        char16_t** aDefaultPrinterName)
-{
-    DO_PR_DEBUG_LOG(("nsPrinterEnumeratorQt::GetDefaultPrinterName()\n"));
-    NS_ENSURE_ARG_POINTER(aDefaultPrinterName);
-
-    QString defprinter = QPrinterInfo::defaultPrinter().printerName();
-    *aDefaultPrinterName = ToNewUnicode(nsDependentString(
-        (const char16_t*)defprinter.constData()));
-
-    DO_PR_DEBUG_LOG(("GetDefaultPrinterName(): default printer='%s'.\n",
-        NS_ConvertUTF16toUTF8(*aDefaultPrinterName).get()));
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP nsPrinterEnumeratorQt::InitPrintSettingsFromPrinter(
-        const char16_t* aPrinterName,
-        nsIPrintSettings* aPrintSettings)
-{
-    DO_PR_DEBUG_LOG(("nsPrinterEnumeratorQt::InitPrintSettingsFromPrinter()"));
-    // XXX Leave NS_OK for now
-    // Probably should use NS_ERROR_NOT_IMPLEMENTED
-    return NS_OK;
-}
deleted file mode 100644
--- a/widget/qt/nsDeviceContextSpecQt.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* 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 nsDeviceContextSpecQt_h___
-#define nsDeviceContextSpecQt_h___
-
-#include "nsIDeviceContextSpec.h"
-#include "nsIPrintSettings.h"
-#include "nsIPrintOptions.h"
-#include "nsCOMPtr.h"
-#include "nsString.h"
-
-#include "nsCRT.h" /* should be <limits.h>? */
-
-class nsDeviceContextSpecQt : public nsIDeviceContextSpec
-{
-public:
-    nsDeviceContextSpecQt();
-
-    NS_DECL_ISUPPORTS
-
-    virtual already_AddRefed<PrintTarget> MakePrintTarget() final;
-
-    NS_IMETHOD Init(nsIWidget* aWidget,
-                    nsIPrintSettings* aPS,
-                    bool aIsPrintPreview);
-    NS_IMETHOD BeginDocument(const nsAString& aTitle,
-                             const nsAString& aPrintToFileName,
-                             int32_t aStartPage,
-                             int32_t aEndPage);
-    NS_IMETHOD EndDocument();
-    NS_IMETHOD BeginPage() { return NS_OK; }
-    NS_IMETHOD EndPage() { return NS_OK; }
-
-protected:
-    virtual ~nsDeviceContextSpecQt();
-
-    nsCOMPtr<nsIPrintSettings> mPrintSettings;
-    bool mToPrinter : 1;      /* If true, print to printer */
-    bool mIsPPreview : 1;     /* If true, is print preview */
-    char   mPath[PATH_MAX];     /* If toPrinter = false, dest file */
-    char   mPrinter[256];       /* Printer name */
-    nsCString         mSpoolName;
-    nsCOMPtr<nsIFile> mSpoolFile;
-};
-
-class nsPrinterEnumeratorQt : public nsIPrinterEnumerator
-{
-public:
-    nsPrinterEnumeratorQt();
-    NS_DECL_ISUPPORTS
-    NS_DECL_NSIPRINTERENUMERATOR
-
-protected:
-    virtual ~nsPrinterEnumeratorQt();
-
-};
-
-#endif /* !nsDeviceContextSpecQt_h___ */
deleted file mode 100644
--- a/widget/qt/nsIdleServiceQt.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* vim:expandtab:shiftwidth=4:tabstop=4:
- */
-/* 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/. */
-
-#ifdef MOZ_X11
-#include "mozilla/X11Util.h"
-#endif
-#include "nsIdleServiceQt.h"
-#include "nsIServiceManager.h"
-#include "nsDebug.h"
-#include "prlink.h"
-
-#if defined(MOZ_X11)
-typedef bool (*_XScreenSaverQueryExtension_fn)(Display* dpy, int* event_base,
-                                                 int* error_base);
-
-typedef XScreenSaverInfo* (*_XScreenSaverAllocInfo_fn)(void);
-
-typedef void (*_XScreenSaverQueryInfo_fn)(Display* dpy, Drawable drw,
-                                          XScreenSaverInfo *info);
-
-static _XScreenSaverQueryExtension_fn _XSSQueryExtension = nullptr;
-static _XScreenSaverAllocInfo_fn _XSSAllocInfo = nullptr;
-static _XScreenSaverQueryInfo_fn _XSSQueryInfo = nullptr;
-#endif
-
-static bool sInitialized = false;
-
-NS_IMPL_ISUPPORTS_INHERITED0(nsIdleServiceQt, nsIdleService)
-
-nsIdleServiceQt::nsIdleServiceQt()
-#if defined(MOZ_X11)
-    : mXssInfo(nullptr)
-#endif
-{
-}
-
-static void Initialize()
-{
-    sInitialized = true;
-
-#if defined(MOZ_X11)
-    // This will leak - See comments in ~nsIdleServiceQt().
-    PRLibrary* xsslib = PR_LoadLibrary("libXss.so.1");
-    if (!xsslib) {
-        return;
-    }
-
-    _XSSQueryExtension = (_XScreenSaverQueryExtension_fn)
-        PR_FindFunctionSymbol(xsslib, "XScreenSaverQueryExtension");
-    _XSSAllocInfo = (_XScreenSaverAllocInfo_fn)
-        PR_FindFunctionSymbol(xsslib, "XScreenSaverAllocInfo");
-    _XSSQueryInfo = (_XScreenSaverQueryInfo_fn)
-        PR_FindFunctionSymbol(xsslib, "XScreenSaverQueryInfo");
-#endif
-}
-
-nsIdleServiceQt::~nsIdleServiceQt()
-{
-#if defined(MOZ_X11)
-    if (mXssInfo)
-        XFree(mXssInfo);
-
-// It is not safe to unload libXScrnSaver until each display is closed because
-// the library registers callbacks through XESetCloseDisplay (Bug 397607).
-// (Also the library and its functions are scoped for the file not the object.)
-#if 0
-    if (xsslib) {
-        PR_UnloadLibrary(xsslib);
-        xsslib = nullptr;
-    }
-#endif
-#endif
-}
-
-bool
-nsIdleServiceQt::PollIdleTime(uint32_t *aIdleTime)
-{
-#if defined(MOZ_X11)
-    // Ask xscreensaver about idle time:
-    *aIdleTime = 0;
-
-    // We might not have a display (cf. in xpcshell)
-    Display *dplay = mozilla::DefaultXDisplay();
-    if (!dplay) {
-        return false;
-    }
-
-    if (!sInitialized) {
-        Initialize();
-    }
-    if (!_XSSQueryExtension || !_XSSAllocInfo || !_XSSQueryInfo) {
-        return false;
-    }
-
-    int event_base, error_base;
-    if (_XSSQueryExtension(dplay, &event_base, &error_base)) {
-        if (!mXssInfo)
-            mXssInfo = _XSSAllocInfo();
-        if (!mXssInfo)
-            return false;
-
-        _XSSQueryInfo(dplay, RootWindowOfScreen(DefaultScreenOfDisplay(mozilla::DefaultXDisplay())), mXssInfo);
-        *aIdleTime = mXssInfo->idle;
-        return true;
-    }
-#endif
-
-    return false;
-}
-
-bool
-nsIdleServiceQt::UsePollMode()
-{
-#if defined(MOZ_X11)
-    return false;
-#endif
-    return true;
-}
-
deleted file mode 100644
--- a/widget/qt/nsIdleServiceQt.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* vim:expandtab:shiftwidth=4:tabstop=4:
- */
-/* 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 nsIdleServiceQt_h__
-#define nsIdleServiceQt_h__
-
-#include "nsIdleService.h"
-
-#if defined(MOZ_X11)
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-typedef struct {
-    Window window;              // Screen saver window
-    int state;                  // ScreenSaver(Off,On,Disabled)
-    int kind;                   // ScreenSaver(Blanked,Internal,External)
-    unsigned long til_or_since; // milliseconds since/til screensaver kicks in
-    unsigned long idle;         // milliseconds idle
-    unsigned long event_mask;   // event stuff
-} XScreenSaverInfo;
-#endif
-
-class nsIdleServiceQt : public nsIdleService
-{
-public:
-    NS_DECL_ISUPPORTS_INHERITED
-
-    bool PollIdleTime(uint32_t* aIdleTime);
-
-    static already_AddRefed<nsIdleServiceQt> GetInstance()
-    {
-        RefPtr<nsIdleServiceQt> idleService =
-            nsIdleService::GetInstance().downcast<nsIdleServiceQt>();
-        if (!idleService) {
-            idleService = new nsIdleServiceQt();
-        }
-        
-        return idleService.forget();
-    }
-
-private:
-#if defined(MOZ_X11)
-    XScreenSaverInfo* mXssInfo;
-#endif
-
-protected:
-    nsIdleServiceQt();
-    virtual ~nsIdleServiceQt();
-    bool UsePollMode();
-};
-
-#endif // nsIdleServiceQt_h__
deleted file mode 100644
--- a/widget/qt/nsLookAndFeel.cpp
+++ /dev/null
@@ -1,457 +0,0 @@
-/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* Copyright 2012 Mozilla Foundation and Mozilla contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <QGuiApplication>
-#include <QFont>
-#include <QScreen>
-#include <QPalette>
-
-#include "nsLookAndFeel.h"
-#include "nsStyleConsts.h"
-#include "gfxFont.h"
-#include "gfxFontConstants.h"
-#include "mozilla/gfx/2D.h"
-
-static const char16_t UNICODE_BULLET = 0x2022;
-
-#define QCOLOR_TO_NS_RGB(c)                     \
-  ((nscolor)NS_RGB(c.red(),c.green(),c.blue()))
-
-nsLookAndFeel::nsLookAndFeel()
-    : nsXPLookAndFeel()
-{
-}
-
-nsLookAndFeel::~nsLookAndFeel()
-{
-}
-
-nsresult
-nsLookAndFeel::NativeGetColor(ColorID aID, nscolor &aColor)
-{
-    nsresult rv = NS_OK;
-
-#define BG_PRELIGHT_COLOR     NS_RGB(0xee,0xee,0xee)
-#define FG_PRELIGHT_COLOR     NS_RGB(0x77,0x77,0x77)
-#define RED_COLOR             NS_RGB(0xff,0x00,0x00)
-
-    QPalette palette = QGuiApplication::palette();
-
-    switch (aID) {
-        // These colors don't seem to be used for anything anymore in Mozilla
-        // (except here at least TextSelectBackground and TextSelectForeground)
-        // The CSS2 colors below are used.
-    case eColorID_WindowBackground:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Window));
-        break;
-    case eColorID_WindowForeground:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::WindowText));
-        break;
-    case eColorID_WidgetBackground:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Window));
-        break;
-    case eColorID_WidgetForeground:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::WindowText));
-        break;
-    case eColorID_WidgetSelectBackground:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Window));
-        break;
-    case eColorID_WidgetSelectForeground:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::WindowText));
-        break;
-    case eColorID_Widget3DHighlight:
-        aColor = NS_RGB(0xa0,0xa0,0xa0);
-        break;
-    case eColorID_Widget3DShadow:
-        aColor = NS_RGB(0x40,0x40,0x40);
-        break;
-    case eColorID_TextBackground:
-        // not used?
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Window));
-        break;
-    case eColorID_TextForeground:
-        // not used?
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::WindowText));
-        break;
-    case eColorID_TextSelectBackground:
-    case eColorID_IMESelectedRawTextBackground:
-    case eColorID_IMESelectedConvertedTextBackground:
-        // still used
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Highlight));
-        break;
-    case eColorID_TextSelectForeground:
-    case eColorID_IMESelectedRawTextForeground:
-    case eColorID_IMESelectedConvertedTextForeground:
-        // still used
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::HighlightedText));
-        break;
-    case eColorID_IMERawInputBackground:
-    case eColorID_IMEConvertedTextBackground:
-        aColor = NS_TRANSPARENT;
-        break;
-    case eColorID_IMERawInputForeground:
-    case eColorID_IMEConvertedTextForeground:
-        aColor = NS_SAME_AS_FOREGROUND_COLOR;
-        break;
-    case eColorID_IMERawInputUnderline:
-    case eColorID_IMEConvertedTextUnderline:
-        aColor = NS_SAME_AS_FOREGROUND_COLOR;
-        break;
-    case eColorID_IMESelectedRawTextUnderline:
-    case eColorID_IMESelectedConvertedTextUnderline:
-        aColor = NS_TRANSPARENT;
-        break;
-    case eColorID_SpellCheckerUnderline:
-        aColor = RED_COLOR;
-        break;
-
-        // css2  http://www.w3.org/TR/REC-CSS2/ui.html#system-colors
-    case eColorID_activeborder:
-        // active window border
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Window));
-        break;
-    case eColorID_activecaption:
-        // active window caption background
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Window));
-        break;
-    case eColorID_appworkspace:
-        // MDI background color
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Window));
-        break;
-    case eColorID_background:
-        // desktop background
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Window));
-        break;
-    case eColorID_captiontext:
-        // text in active window caption, size box, and scrollbar arrow box (!)
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Text));
-        break;
-    case eColorID_graytext:
-        // disabled text in windows, menus, etc.
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Disabled, QPalette::Text));
-        break;
-    case eColorID_highlight:
-        // background of selected item
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Highlight));
-        break;
-    case eColorID_highlighttext:
-        // text of selected item
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::HighlightedText));
-        break;
-    case eColorID_inactiveborder:
-        // inactive window border
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Disabled, QPalette::Window));
-        break;
-    case eColorID_inactivecaption:
-        // inactive window caption
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Disabled, QPalette::Window));
-        break;
-    case eColorID_inactivecaptiontext:
-        // text in inactive window caption
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Disabled, QPalette::Text));
-        break;
-    case eColorID_infobackground:
-        // tooltip background color
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::ToolTipBase));
-        break;
-    case eColorID_infotext:
-        // tooltip text color
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::ToolTipText));
-        break;
-    case eColorID_menu:
-        // menu background
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Window));
-        break;
-    case eColorID_menutext:
-        // menu text
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Text));
-        break;
-    case eColorID_scrollbar:
-        // scrollbar gray area
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Mid));
-        break;
-
-    case eColorID_threedface:
-    case eColorID_buttonface:
-        // 3-D face color
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Button));
-        break;
-
-    case eColorID_buttontext:
-        // text on push buttons
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::ButtonText));
-        break;
-
-    case eColorID_buttonhighlight:
-        // 3-D highlighted edge color
-    case eColorID_threedhighlight:
-        // 3-D highlighted outer edge color
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Dark));
-        break;
-
-    case eColorID_threedlightshadow:
-        // 3-D highlighted inner edge color
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Light));
-        break;
-
-    case eColorID_buttonshadow:
-        // 3-D shadow edge color
-    case eColorID_threedshadow:
-        // 3-D shadow inner edge color
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Dark));
-        break;
-
-    case eColorID_threeddarkshadow:
-        // 3-D shadow outer edge color
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Shadow));
-        break;
-
-    case eColorID_window:
-    case eColorID_windowframe:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Window));
-        break;
-
-    case eColorID_windowtext:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Text));
-        break;
-
-    case eColorID__moz_eventreerow:
-    case eColorID__moz_field:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Base));
-        break;
-    case eColorID__moz_fieldtext:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Text));
-        break;
-    case eColorID__moz_dialog:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Window));
-        break;
-    case eColorID__moz_dialogtext:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::WindowText));
-        break;
-    case eColorID__moz_dragtargetzone:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Window));
-        break;
-    case eColorID__moz_buttondefault:
-        // default button border color
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Button));
-        break;
-    case eColorID__moz_buttonhoverface:
-        aColor = BG_PRELIGHT_COLOR;
-        break;
-    case eColorID__moz_buttonhovertext:
-        aColor = FG_PRELIGHT_COLOR;
-        break;
-    case eColorID__moz_cellhighlight:
-    case eColorID__moz_html_cellhighlight:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Highlight));
-        break;
-    case eColorID__moz_cellhighlighttext:
-    case eColorID__moz_html_cellhighlighttext:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::HighlightedText));
-        break;
-    case eColorID__moz_menuhover:
-        aColor = BG_PRELIGHT_COLOR;
-        break;
-    case eColorID__moz_menuhovertext:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Text));
-        break;
-    case eColorID__moz_oddtreerow:
-        aColor = NS_TRANSPARENT;
-        break;
-    case eColorID__moz_nativehyperlinktext:
-        aColor = NS_SAME_AS_FOREGROUND_COLOR;
-        break;
-    case eColorID__moz_comboboxtext:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Text));
-        break;
-    case eColorID__moz_combobox:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Base));
-        break;
-    case eColorID__moz_menubartext:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Text));
-        break;
-    case eColorID__moz_menubarhovertext:
-        aColor = QCOLOR_TO_NS_RGB(palette.color(QPalette::Normal, QPalette::Text));
-        break;
-    default:
-        /* default color is BLACK */
-        aColor = 0;
-        rv = NS_ERROR_FAILURE;
-        break;
-    }
-
-    return rv;
-}
-
-nsresult
-nsLookAndFeel::GetIntImpl(IntID aID, int32_t &aResult)
-{
-    nsresult rv = nsXPLookAndFeel::GetIntImpl(aID, aResult);
-    if (NS_SUCCEEDED(rv))
-        return rv;
-
-    rv = NS_OK;
-
-    switch (aID) {
-        case eIntID_CaretBlinkTime:
-            aResult = 500;
-            break;
-
-        case eIntID_CaretWidth:
-            aResult = 1;
-            break;
-
-        case eIntID_ShowCaretDuringSelection:
-            aResult = 0;
-            break;
-
-        case eIntID_SelectTextfieldsOnKeyFocus:
-            // Select textfield content when focused by kbd
-            // used by EventStateManager::sTextfieldSelectModel
-            aResult = 1;
-            break;
-
-        case eIntID_SubmenuDelay:
-            aResult = 200;
-            break;
-
-        case eIntID_TooltipDelay:
-            aResult = 500;
-            break;
-
-        case eIntID_MenusCanOverlapOSBar:
-            // we want XUL popups to be able to overlap the task bar.
-            aResult = 1;
-            break;
-
-        case eIntID_ScrollArrowStyle:
-            aResult = eScrollArrowStyle_Single;
-            break;
-
-        case eIntID_ScrollSliderStyle:
-            aResult = eScrollThumbStyle_Proportional;
-            break;
-
-        case eIntID_TouchEnabled:
-            aResult = 1;
-            break;
-
-        case eIntID_WindowsDefaultTheme:
-        case eIntID_WindowsThemeIdentifier:
-        case eIntID_OperatingSystemVersionIdentifier:
-            aResult = 0;
-            rv = NS_ERROR_NOT_IMPLEMENTED;
-            break;
-
-        case eIntID_IMERawInputUnderlineStyle:
-        case eIntID_IMEConvertedTextUnderlineStyle:
-            aResult = NS_STYLE_TEXT_DECORATION_STYLE_SOLID;
-            break;
-
-        case eIntID_IMESelectedRawTextUnderlineStyle:
-        case eIntID_IMESelectedConvertedTextUnderline:
-            aResult = NS_STYLE_TEXT_DECORATION_STYLE_NONE;
-            break;
-
-        case eIntID_SpellCheckerUnderlineStyle:
-            aResult = NS_STYLE_TEXT_DECORATION_STYLE_WAVY;
-            break;
-
-        case eIntID_ScrollbarButtonAutoRepeatBehavior:
-            aResult = 0;
-            break;
-        
-        case eIntID_ContextMenuOffsetVertical:
-        case eIntID_ContextMenuOffsetHorizontal:
-            aResult = 2;
-            break;
-
-        default:
-            aResult = 0;
-            rv = NS_ERROR_FAILURE;
-    }
-
-    return rv;
-}
-
-nsresult
-nsLookAndFeel::GetFloatImpl(FloatID aID, float &aResult)
-{
-  nsresult res = nsXPLookAndFeel::GetFloatImpl(aID, aResult);
-  if (NS_SUCCEEDED(res))
-    return res;
-  res = NS_OK;
-
-  switch (aID) {
-    case eFloatID_IMEUnderlineRelativeSize:
-        aResult = 1.0f;
-        break;
-    case eFloatID_SpellCheckerUnderlineRelativeSize:
-        aResult = 1.0f;
-        break;
-    default:
-        aResult = -1.0;
-        res = NS_ERROR_FAILURE;
-    }
-  return res;
-}
-
-/*virtual*/
-bool
-nsLookAndFeel::GetFontImpl(FontID aID, nsString& aFontName,
-                           gfxFontStyle& aFontStyle,
-                           float aDevPixPerCSSPixel)
-{
-  QFont qFont = QGuiApplication::font();
-
-  NS_NAMED_LITERAL_STRING(quote, "\"");
-  nsString family((char16_t*)qFont.family().data());
-  aFontName = quote + family + quote;
-
-  aFontStyle.systemFont = true;
-  aFontStyle.style = qFont.style();
-  aFontStyle.weight = qFont.weight();
-  aFontStyle.stretch = qFont.stretch();
-  // use pixel size directly if it is set, otherwise compute from point size
-  if (qFont.pixelSize() != -1) {
-    aFontStyle.size = qFont.pixelSize();
-  } else {
-    aFontStyle.size = qFont.pointSizeF() * qApp->primaryScreen()->logicalDotsPerInch() / 72.0f;
-  }
-
-  return true;
-}
-
-/*virtual*/
-bool
-nsLookAndFeel::GetEchoPasswordImpl() {
-    return true;
-}
-
-/*virtual*/
-uint32_t
-nsLookAndFeel::GetPasswordMaskDelayImpl()
-{
-    // Same value on Android framework
-    return 1500;
-}
-
-/* virtual */
-char16_t
-nsLookAndFeel::GetPasswordCharacterImpl()
-{
-    return UNICODE_BULLET;
-}
deleted file mode 100644
--- a/widget/qt/nsLookAndFeel.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* Copyright 2012 Mozilla Foundation and Mozilla contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __nsLookAndFeel
-#define __nsLookAndFeel
-
-#include "nsXPLookAndFeel.h"
-
-class nsLookAndFeel : public nsXPLookAndFeel
-{
-public:
-    nsLookAndFeel();
-    virtual ~nsLookAndFeel();
-
-    virtual bool GetFontImpl(FontID aID, nsString& aName, gfxFontStyle& aStyle,
-                             float aDevPixPerCSSPixel);
-    virtual nsresult GetIntImpl(IntID aID, int32_t &aResult);
-    virtual nsresult GetFloatImpl(FloatID aID, float &aResult);
-    virtual bool GetEchoPasswordImpl();
-    virtual uint32_t GetPasswordMaskDelayImpl();
-    virtual char16_t GetPasswordCharacterImpl();
-
-protected:
-    virtual nsresult NativeGetColor(ColorID aID, nscolor &aColor);
-};
-
-#endif
deleted file mode 100644
--- a/widget/qt/nsPrintDialogQt.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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/. */
-
-#include "nsPrintSettingsQt.h"
-#include "nsPrintDialogQt.h"
-
-// For Qt, we only support printing to PDF, and that doesn't need a
-// print dialog at this point.  So, this class's methods are left
-// un-implemented for now.
-
-NS_IMPL_ISUPPORTS(nsPrintDialogServiceQt, nsIPrintDialogService)
-
-nsPrintDialogServiceQt::nsPrintDialogServiceQt()
-{
-}
-
-nsPrintDialogServiceQt::~nsPrintDialogServiceQt()
-{
-}
-
-NS_IMETHODIMP
-nsPrintDialogServiceQt::Init()
-{
-    return NS_ERROR_NOT_IMPLEMENTED;
-}
-
-NS_IMETHODIMP
-nsPrintDialogServiceQt::Show(nsIDOMWindow* aParent,
-                             nsIPrintSettings* aSettings,
-                             nsIWebBrowserPrint* aWebBrowserPrint)
-{
-    return NS_ERROR_NOT_IMPLEMENTED;
-}
-
-NS_IMETHODIMP
-nsPrintDialogServiceQt::ShowPageSetup(nsIDOMWindow* aParent,
-                                      nsIPrintSettings* aNSSettings)
-{
-    return NS_ERROR_NOT_IMPLEMENTED;
-}
deleted file mode 100644
--- a/widget/qt/nsPrintDialogQt.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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 nsPrintDialogQt_h__
-#define nsPrintDialogQt_h__
-
-#include "nsIPrintDialogService.h"
-
-class nsIPrintSettings;
-
-class nsPrintDialogServiceQt : public nsIPrintDialogService
-{
-public:
-    nsPrintDialogServiceQt();
-
-    NS_DECL_ISUPPORTS
-
-    NS_IMETHODIMP Init();
-    NS_IMETHODIMP Show(nsIDOMWindow* aParent, 
-                       nsIPrintSettings* aSettings,
-                       nsIWebBrowserPrint* aWebBrowserPrint);
-    NS_IMETHODIMP ShowPageSetup(nsIDOMWindow* aParent,
-                                nsIPrintSettings* aSettings);
-
-protected:
-    virtual ~nsPrintDialogServiceQt();
-};
-
-#endif
deleted file mode 100644
--- a/widget/qt/nsPrintOptionsQt.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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/. */
-#include "nsPrintSettingsQt.h"
-#include "nsPrintOptionsQt.h"
-
-nsPrintOptionsQt::nsPrintOptionsQt()
-{
-}
-
-nsPrintOptionsQt::~nsPrintOptionsQt()
-{
-}
-
-nsresult nsPrintOptionsQt::_CreatePrintSettings(nsIPrintSettings** _retval)
-{
-    nsPrintSettingsQt* printSettings = 
-        new nsPrintSettingsQt(); // does not initially ref count
-    NS_ADDREF(*_retval = printSettings); // ref count
-    return NS_OK;
-}
deleted file mode 100644
--- a/widget/qt/nsPrintOptionsQt.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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 nsPrintOptionsQt_h__
-#define nsPrintOptionsQt_h__
-
-#include "nsPrintOptionsImpl.h"
-
-class nsPrintOptionsQt : public nsPrintOptions
-{
-public:
-    nsPrintOptionsQt();
-    virtual ~nsPrintOptionsQt();
-    virtual nsresult _CreatePrintSettings(nsIPrintSettings** _retval);
-};
-
-#endif /* nsPrintOptionsQt_h__ */
deleted file mode 100644
--- a/widget/qt/nsPrintSettingsQt.cpp
+++ /dev/null
@@ -1,427 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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/. */
-
-#include <QPrinter>
-#include <QDebug>
-#include "nsPrintSettingsQt.h"
-#include "nsIFile.h"
-#include "nsCRTGlue.h"
-
-NS_IMPL_ISUPPORTS_INHERITED(nsPrintSettingsQt,
-                            nsPrintSettings,
-                            nsPrintSettingsQt)
-
-nsPrintSettingsQt::nsPrintSettingsQt():
-    mQPrinter(new QPrinter())
-{
-}
-
-nsPrintSettingsQt::~nsPrintSettingsQt()
-{
-    //smart pointer should take care of cleanup
-}
-
-nsPrintSettingsQt::nsPrintSettingsQt(const nsPrintSettingsQt& aPS):
-    mQPrinter(aPS.mQPrinter)
-{
-}
-
-nsPrintSettingsQt& 
-nsPrintSettingsQt::operator=(const nsPrintSettingsQt& rhs)
-{
-    if (this == &rhs) {
-        return *this;
-    }
-
-    nsPrintSettings::operator=(rhs);
-    mQPrinter = rhs.mQPrinter;
-    return *this;
-}
-
-nsresult 
-nsPrintSettingsQt::_Clone(nsIPrintSettings** _retval)
-{
-    NS_ENSURE_ARG_POINTER(_retval);
-
-    nsPrintSettingsQt* newSettings = new nsPrintSettingsQt(*this);
-    *_retval = newSettings;
-    NS_ADDREF(*_retval);
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::_Assign(nsIPrintSettings* aPS)
-{
-    nsPrintSettingsQt* printSettingsQt = static_cast<nsPrintSettingsQt*>(aPS);
-    if (!printSettingsQt)
-        return NS_ERROR_UNEXPECTED;
-    *this = *printSettingsQt;
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetPrintRange(int16_t* aPrintRange)
-{
-    NS_ENSURE_ARG_POINTER(aPrintRange);
-
-    QPrinter::PrintRange range = mQPrinter->printRange();
-    if (range == QPrinter::PageRange) {
-        *aPrintRange = kRangeSpecifiedPageRange;
-    } else if (range == QPrinter::Selection) {
-        *aPrintRange = kRangeSelection;
-    } else {
-        *aPrintRange = kRangeAllPages;
-    }
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP 
-nsPrintSettingsQt::SetPrintRange(int16_t aPrintRange)
-{
-    if (aPrintRange == kRangeSelection) {
-        mQPrinter->setPrintRange(QPrinter::Selection);
-    } else if (aPrintRange == kRangeSpecifiedPageRange) {
-        mQPrinter->setPrintRange(QPrinter::PageRange);
-    } else {
-        mQPrinter->setPrintRange(QPrinter::AllPages);
-    }
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetStartPageRange(int32_t* aStartPageRange)
-{
-    NS_ENSURE_ARG_POINTER(aStartPageRange);
-    int32_t start = mQPrinter->fromPage();
-    *aStartPageRange = start;
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetStartPageRange(int32_t aStartPageRange)
-{
-    int32_t endRange = mQPrinter->toPage();
-    mQPrinter->setFromTo(aStartPageRange, endRange);
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetEndPageRange(int32_t* aEndPageRange)
-{
-    NS_ENSURE_ARG_POINTER(aEndPageRange);
-    int32_t end = mQPrinter->toPage();
-    *aEndPageRange = end;
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetEndPageRange(int32_t aEndPageRange)
-{
-    int32_t startRange = mQPrinter->fromPage();
-    mQPrinter->setFromTo(startRange, aEndPageRange);
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetPrintReversed(bool* aPrintReversed)
-{
-    NS_ENSURE_ARG_POINTER(aPrintReversed);
-    if (mQPrinter->pageOrder() == QPrinter::LastPageFirst) {
-        *aPrintReversed = true;
-    } else {
-        *aPrintReversed = false;
-    }
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetPrintReversed(bool aPrintReversed)
-{
-    if (aPrintReversed) {
-        mQPrinter->setPageOrder(QPrinter::LastPageFirst);
-    } else {
-        mQPrinter->setPageOrder(QPrinter::FirstPageFirst);
-    }
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetPrintInColor(bool* aPrintInColor)
-{
-    NS_ENSURE_ARG_POINTER(aPrintInColor);
-    if (mQPrinter->colorMode() == QPrinter::Color) {
-        *aPrintInColor = true;
-    } else {
-        *aPrintInColor = false;
-    }
-    return NS_OK;
-}
-NS_IMETHODIMP
-nsPrintSettingsQt::SetPrintInColor(bool aPrintInColor)
-{
-    if (aPrintInColor) {
-        mQPrinter->setColorMode(QPrinter::Color);
-    } else {
-        mQPrinter->setColorMode(QPrinter::GrayScale);
-    }
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetOrientation(int32_t* aOrientation)
-{
-    NS_ENSURE_ARG_POINTER(aOrientation);
-    QPrinter::Orientation orientation = mQPrinter->orientation();
-    if (orientation == QPrinter::Landscape) {
-        *aOrientation = kLandscapeOrientation;
-    } else {
-        *aOrientation = kPortraitOrientation;
-    }
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetOrientation(int32_t aOrientation)
-{
-    if (aOrientation == kLandscapeOrientation) {
-        mQPrinter->setOrientation(QPrinter::Landscape);
-    } else {
-        mQPrinter->setOrientation(QPrinter::Portrait);
-    }
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetToFileName(char16_t** aToFileName)
-{
-    NS_ENSURE_ARG_POINTER(aToFileName);
-    QString filename;
-    filename = mQPrinter->outputFileName();
-    *aToFileName = ToNewUnicode(
-            nsDependentString((char16_t*)filename.data()));
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetToFileName(const char16_t* aToFileName)
-{
-    nsCOMPtr<nsIFile> file;
-    nsresult rv = NS_NewLocalFile(nsDependentString(aToFileName), true,
-                                getter_AddRefs(file));
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    QString filename((const QChar*)aToFileName, NS_strlen(aToFileName));
-    mQPrinter->setOutputFileName(filename);
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetPrinterName(char16_t** aPrinter)
-{
-    NS_ENSURE_ARG_POINTER(aPrinter);
-    *aPrinter = ToNewUnicode(nsDependentString(
-                (const char16_t*)mQPrinter->printerName().constData()));
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetPrinterName(const char16_t* aPrinter)
-{
-    QString printername((const QChar*)aPrinter, NS_strlen(aPrinter));
-    mQPrinter->setPrinterName(printername);
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetNumCopies(int32_t* aNumCopies)
-{
-    NS_ENSURE_ARG_POINTER(aNumCopies);
-    *aNumCopies = mQPrinter->numCopies();
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetNumCopies(int32_t aNumCopies)
-{
-    mQPrinter->setNumCopies(aNumCopies);
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetScaling(double* aScaling)
-{
-    NS_ENSURE_ARG_POINTER(aScaling);
-    qDebug()<<Q_FUNC_INFO;
-    qDebug()<<"Scaling not implemented in Qt port";
-    *aScaling = 1.0; //FIXME
-    return NS_ERROR_NOT_IMPLEMENTED;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetScaling(double aScaling)
-{
-    qDebug()<<Q_FUNC_INFO;
-    qDebug()<<"Scaling not implemented in Qt port"; //FIXME
-    return NS_ERROR_NOT_IMPLEMENTED;
-}
-
-static const char* const indexToPaperName[] =
-{ "A4", "B5", "Letter", "Legal", "Executive",
-  "A0", "A1", "A2", "A3", "A5", "A6", "A7", "A8", "A9",
-  "B0", "B1", "B10", "B2", "B3", "B4", "B6", "B7", "B8", "B9",
-  "C5E", "Comm10E", "DLE", "Folio", "Ledger", "Tabloid"
-};
-
-static const QPrinter::PageSize indexToQtPaperEnum[] =
-{
-    QPrinter::A4, QPrinter::B5, QPrinter::Letter, QPrinter::Legal,
-    QPrinter::Executive, QPrinter::A0, QPrinter::A1, QPrinter::A2, QPrinter::A3,
-    QPrinter::A5, QPrinter::A6, QPrinter::A7, QPrinter::A8, QPrinter::A9,
-    QPrinter::B0, QPrinter::B1, QPrinter::B10, QPrinter::B2, QPrinter::B3,
-    QPrinter::B4, QPrinter::B6, QPrinter::B7, QPrinter::B8, QPrinter::B9,
-    QPrinter::C5E, QPrinter::Comm10E, QPrinter::DLE, QPrinter::Folio,
-    QPrinter::Ledger, QPrinter::Tabloid
-};
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetPaperName(char16_t** aPaperName)
-{
-    QPrinter::PaperSize size = mQPrinter->paperSize();
-    QString name(indexToPaperName[size]);
-    *aPaperName = ToNewUnicode(nsDependentString((const char16_t*)name.constData()));
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetPaperName(const char16_t* aPaperName)
-{
-    QString ref((QChar*)aPaperName, NS_strlen(aPaperName));
-    for (uint32_t i = 0; i < sizeof(indexToPaperName)/sizeof(char*); i++)
-    {
-        if (ref == QString(indexToPaperName[i])) {
-            mQPrinter->setPageSize(indexToQtPaperEnum[i]);
-            return NS_OK;
-        }
-    }
-    return NS_ERROR_FAILURE;
-}
-
-QPrinter::Unit GetQtUnit(int16_t aGeckoUnit)
-{
-    if (aGeckoUnit == nsIPrintSettings::kPaperSizeMillimeters) {
-        return QPrinter::Millimeter;
-    } else {
-        return QPrinter::Inch;
-    }
-}
-
-#define SETUNWRITEABLEMARGIN\
-    mQPrinter->setPageMargins(\
-            NS_TWIPS_TO_INCHES(mUnwriteableMargin.left),\
-            NS_TWIPS_TO_INCHES(mUnwriteableMargin.top),\
-            NS_TWIPS_TO_INCHES(mUnwriteableMargin.right),\
-            NS_TWIPS_TO_INCHES(mUnwriteableMargin.bottom),\
-            QPrinter::Inch);
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetUnwriteableMarginInTwips(nsIntMargin& aUnwriteableMargin)
-{
-    nsPrintSettings::SetUnwriteableMarginInTwips(aUnwriteableMargin);
-    SETUNWRITEABLEMARGIN
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetUnwriteableMarginTop(double aUnwriteableMarginTop)
-{
-    nsPrintSettings::SetUnwriteableMarginTop(aUnwriteableMarginTop);
-    SETUNWRITEABLEMARGIN
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetUnwriteableMarginLeft(double aUnwriteableMarginLeft)
-{
-    nsPrintSettings::SetUnwriteableMarginLeft(aUnwriteableMarginLeft);
-    SETUNWRITEABLEMARGIN
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetUnwriteableMarginBottom(double aUnwriteableMarginBottom)
-{
-    nsPrintSettings::SetUnwriteableMarginBottom(aUnwriteableMarginBottom);
-    SETUNWRITEABLEMARGIN
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetUnwriteableMarginRight(double aUnwriteableMarginRight)
-{
-    nsPrintSettings::SetUnwriteableMarginRight(aUnwriteableMarginRight);
-    SETUNWRITEABLEMARGIN
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetPaperWidth(double* aPaperWidth)
-{
-    NS_ENSURE_ARG_POINTER(aPaperWidth);
-    QSizeF papersize = mQPrinter->paperSize(GetQtUnit(mPaperSizeUnit));
-    *aPaperWidth = papersize.width();
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetPaperWidth(double aPaperWidth)
-{
-    QSizeF papersize = mQPrinter->paperSize(GetQtUnit(mPaperSizeUnit));
-    papersize.setWidth(aPaperWidth);
-    mQPrinter->setPaperSize(papersize, GetQtUnit(mPaperSizeUnit));
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetPaperHeight(double* aPaperHeight)
-{
-    NS_ENSURE_ARG_POINTER(aPaperHeight);
-    QSizeF papersize = mQPrinter->paperSize(GetQtUnit(mPaperSizeUnit));
-    *aPaperHeight = papersize.height();
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetPaperHeight(double aPaperHeight)
-{
-    QSizeF papersize = mQPrinter->paperSize(GetQtUnit(mPaperSizeUnit));
-    papersize.setHeight(aPaperHeight);
-    mQPrinter->setPaperSize(papersize, GetQtUnit(mPaperSizeUnit));
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::SetPaperSizeUnit(int16_t aPaperSizeUnit)
-{
-    mPaperSizeUnit = aPaperSizeUnit;
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsPrintSettingsQt::GetEffectivePageSize(double* aWidth, double* aHeight)
-{
-    QSizeF papersize = mQPrinter->paperSize(QPrinter::Inch);
-    if (mQPrinter->orientation() == QPrinter::Landscape) {
-        *aWidth  = NS_INCHES_TO_INT_TWIPS(papersize.height());
-        *aHeight = NS_INCHES_TO_INT_TWIPS(papersize.width());
-    } else {
-        *aWidth  = NS_INCHES_TO_INT_TWIPS(papersize.width());
-        *aHeight = NS_INCHES_TO_INT_TWIPS(papersize.height());
-    }
-    return NS_OK;
-}
-
deleted file mode 100644
--- a/widget/qt/nsPrintSettingsQt.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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 nsPrintSettingsQt_h_
-#define nsPrintSettingsQt_h_
-
-#include <QSharedPointer>
-#include "nsPrintSettingsImpl.h"
-#define NS_PRINTSETTINGSQT_IID \
-{0x5bc4c746, 0x8970, 0x43a3, {0xbf, 0xb1, 0x5d, 0xe1, 0x74, 0xaf, 0x7c, 0xea}}
-
-class QPrinter;
-class nsPrintSettingsQt : public nsPrintSettings
-{
-public:
-    NS_DECL_ISUPPORTS_INHERITED
-    NS_DECLARE_STATIC_IID_ACCESSOR(NS_PRINTSETTINGSQT_IID)
-
-    nsPrintSettingsQt();
-
-    NS_IMETHOD GetPrintRange(int16_t* aPrintRange);
-    NS_IMETHOD SetPrintRange(int16_t aPrintRange);
-
-    NS_IMETHOD GetStartPageRange(int32_t* aStartPageRange);
-    NS_IMETHOD SetStartPageRange(int32_t aStartPageRange);
-    NS_IMETHOD GetEndPageRange(int32_t* aEndPageRange);
-    NS_IMETHOD SetEndPageRange(int32_t aEndPageRange);
-
-    NS_IMETHOD GetPrintReversed(bool* aPrintReversed);
-    NS_IMETHOD SetPrintReversed(bool aPrintReversed);
-
-    NS_IMETHOD GetPrintInColor(bool* aPrintInColor);
-    NS_IMETHOD SetPrintInColor(bool aPrintInColor);
-
-    NS_IMETHOD GetOrientation(int32_t* aOrientation);
-    NS_IMETHOD SetOrientation(int32_t aOrientation);
-
-    NS_IMETHOD GetToFileName(char16_t** aToFileName);
-    NS_IMETHOD SetToFileName(const char16_t* aToFileName);
-
-    NS_IMETHOD GetPrinterName(char16_t** aPrinter);
-    NS_IMETHOD SetPrinterName(const char16_t* aPrinter);
-
-    NS_IMETHOD GetNumCopies(int32_t* aNumCopies);
-    NS_IMETHOD SetNumCopies(int32_t aNumCopies);
-
-    NS_IMETHOD GetScaling(double* aScaling);
-    NS_IMETHOD SetScaling(double aScaling);
-
-    NS_IMETHOD GetPaperName(char16_t** aPaperName);
-    NS_IMETHOD SetPaperName(const char16_t* aPaperName);
-
-    NS_IMETHOD SetUnwriteableMarginInTwips(nsIntMargin& aUnwriteableMargin);
-    NS_IMETHOD SetUnwriteableMarginTop(double aUnwriteableMarginTop);
-    NS_IMETHOD SetUnwriteableMarginLeft(double aUnwriteableMarginLeft);
-    NS_IMETHOD SetUnwriteableMarginBottom(double aUnwriteableMarginBottom);
-    NS_IMETHOD SetUnwriteableMarginRight(double aUnwriteableMarginRight);
-
-    NS_IMETHOD GetPaperWidth(double* aPaperWidth);
-    NS_IMETHOD SetPaperWidth(double aPaperWidth);
-
-    NS_IMETHOD GetPaperHeight(double* aPaperHeight);
-    NS_IMETHOD SetPaperHeight(double aPaperHeight);
-
-    NS_IMETHOD SetPaperSizeUnit(int16_t aPaperSizeUnit);
-
-    NS_IMETHOD GetEffectivePageSize(double* aWidth, double* aHeight);
-
-protected:
-    virtual ~nsPrintSettingsQt();
-
-    nsPrintSettingsQt(const nsPrintSettingsQt& src);
-    nsPrintSettingsQt& operator=(const nsPrintSettingsQt& rhs);
-
-    virtual nsresult _Clone(nsIPrintSettings** _retval);
-    virtual nsresult _Assign(nsIPrintSettings* aPS);
-
-    QSharedPointer<QPrinter> mQPrinter;
-};
-
-NS_DEFINE_STATIC_IID_ACCESSOR(nsPrintSettingsQt, NS_PRINTSETTINGSQT_IID)
-#endif // nsPrintSettingsQt_h_
deleted file mode 100644
--- a/widget/qt/nsQtKeyUtils.cpp
+++ /dev/null
@@ -1,480 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
- * 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/. */
-
-#include <qnamespace.h>
-#include "mozilla/ArrayUtils.h"
-#include "mozilla/TextEvents.h"
-
-#include "nsWindow.h"
-#include "nsQtKeyUtils.h"
-
-using namespace mozilla;
-using namespace mozilla::widget;
-
-struct nsKeyConverter
-{
-    int vkCode; // Platform independent key code
-    int keysym; // Qt key code
-};
-
-static struct nsKeyConverter nsKeycodes[] =
-{
-//  { NS_VK_CANCEL,        Qt::Key_Cancel },
-    { NS_VK_BACK,          Qt::Key_Backspace },
-    { NS_VK_TAB,           Qt::Key_Tab },
-    { NS_VK_TAB,           Qt::Key_Backtab },
-//  { NS_VK_CLEAR,         Qt::Key_Clear },
-    { NS_VK_RETURN,        Qt::Key_Return },
-    { NS_VK_RETURN,        Qt::Key_Enter },
-    { NS_VK_SHIFT,         Qt::Key_Shift },
-    { NS_VK_CONTROL,       Qt::Key_Control },
-    { NS_VK_ALT,           Qt::Key_Alt },
-    { NS_VK_PAUSE,         Qt::Key_Pause },
-    { NS_VK_CAPS_LOCK,     Qt::Key_CapsLock },
-    { NS_VK_ESCAPE,        Qt::Key_Escape },
-    { NS_VK_SPACE,         Qt::Key_Space },
-    { NS_VK_PAGE_UP,       Qt::Key_PageUp },
-    { NS_VK_PAGE_DOWN,     Qt::Key_PageDown },
-    { NS_VK_END,           Qt::Key_End },
-    { NS_VK_HOME,          Qt::Key_Home },
-    { NS_VK_LEFT,          Qt::Key_Left },
-    { NS_VK_UP,            Qt::Key_Up },
-    { NS_VK_RIGHT,         Qt::Key_Right },
-    { NS_VK_DOWN,          Qt::Key_Down },
-    { NS_VK_PRINTSCREEN,   Qt::Key_Print },
-    { NS_VK_INSERT,        Qt::Key_Insert },
-    { NS_VK_DELETE,        Qt::Key_Delete },
-    { NS_VK_HELP,          Qt::Key_Help },
-
-    { NS_VK_0,             Qt::Key_0 },
-    { NS_VK_1,             Qt::Key_1 },
-    { NS_VK_2,             Qt::Key_2 },
-    { NS_VK_3,             Qt::Key_3 },
-    { NS_VK_4,             Qt::Key_4 },
-    { NS_VK_5,             Qt::Key_5 },
-    { NS_VK_6,             Qt::Key_6 },
-    { NS_VK_7,             Qt::Key_7 },
-    { NS_VK_8,             Qt::Key_8 },
-    { NS_VK_9,             Qt::Key_9 },
-
-    { NS_VK_SEMICOLON,     Qt::Key_Semicolon },
-    { NS_VK_EQUALS,        Qt::Key_Equal },
-
-    { NS_VK_A,             Qt::Key_A },
-    { NS_VK_B,             Qt::Key_B },
-    { NS_VK_C,             Qt::Key_C },
-    { NS_VK_D,             Qt::Key_D },
-    { NS_VK_E,             Qt::Key_E },
-    { NS_VK_F,             Qt::Key_F },
-    { NS_VK_G,             Qt::Key_G },
-    { NS_VK_H,             Qt::Key_H },
-    { NS_VK_I,             Qt::Key_I },
-    { NS_VK_J,             Qt::Key_J },
-    { NS_VK_K,             Qt::Key_K },
-    { NS_VK_L,             Qt::Key_L },
-    { NS_VK_M,             Qt::Key_M },
-    { NS_VK_N,             Qt::Key_N },
-    { NS_VK_O,             Qt::Key_O },
-    { NS_VK_P,             Qt::Key_P },
-    { NS_VK_Q,             Qt::Key_Q },
-    { NS_VK_R,             Qt::Key_R },
-    { NS_VK_S,             Qt::Key_S },
-    { NS_VK_T,             Qt::Key_T },
-    { NS_VK_U,             Qt::Key_U },
-    { NS_VK_V,             Qt::Key_V },
-    { NS_VK_W,             Qt::Key_W },
-    { NS_VK_X,             Qt::Key_X },
-    { NS_VK_Y,             Qt::Key_Y },
-    { NS_VK_Z,             Qt::Key_Z },
-
-    { NS_VK_NUMPAD0,       Qt::Key_0 },
-    { NS_VK_NUMPAD1,       Qt::Key_1 },
-    { NS_VK_NUMPAD2,       Qt::Key_2 },
-    { NS_VK_NUMPAD3,       Qt::Key_3 },
-    { NS_VK_NUMPAD4,       Qt::Key_4 },
-    { NS_VK_NUMPAD5,       Qt::Key_5 },
-    { NS_VK_NUMPAD6,       Qt::Key_6 },
-    { NS_VK_NUMPAD7,       Qt::Key_7 },
-    { NS_VK_NUMPAD8,       Qt::Key_8 },
-    { NS_VK_NUMPAD9,       Qt::Key_9 },
-    { NS_VK_MULTIPLY,      Qt::Key_Asterisk },
-    { NS_VK_ADD,           Qt::Key_Plus },
-//  { NS_VK_SEPARATOR,     Qt::Key_Separator },
-    { NS_VK_SUBTRACT,      Qt::Key_Minus },
-    { NS_VK_DECIMAL,       Qt::Key_Period },
-    { NS_VK_DIVIDE,        Qt::Key_Slash },
-    { NS_VK_F1,            Qt::Key_F1 },
-    { NS_VK_F2,            Qt::Key_F2 },
-    { NS_VK_F3,            Qt::Key_F3 },
-    { NS_VK_F4,            Qt::Key_F4 },
-    { NS_VK_F5,            Qt::Key_F5 },
-    { NS_VK_F6,            Qt::Key_F6 },
-    { NS_VK_F7,            Qt::Key_F7 },
-    { NS_VK_F8,            Qt::Key_F8 },
-    { NS_VK_F9,            Qt::Key_F9 },
-    { NS_VK_F10,           Qt::Key_F10 },
-    { NS_VK_F11,           Qt::Key_F11 },
-    { NS_VK_F12,           Qt::Key_F12 },
-    { NS_VK_F13,           Qt::Key_F13 },
-    { NS_VK_F14,           Qt::Key_F14 },
-    { NS_VK_F15,           Qt::Key_F15 },
-    { NS_VK_F16,           Qt::Key_F16 },
-    { NS_VK_F17,           Qt::Key_F17 },
-    { NS_VK_F18,           Qt::Key_F18 },
-    { NS_VK_F19,           Qt::Key_F19 },
-    { NS_VK_F20,           Qt::Key_F20 },
-    { NS_VK_F21,           Qt::Key_F21 },
-    { NS_VK_F22,           Qt::Key_F22 },
-    { NS_VK_F23,           Qt::Key_F23 },
-    { NS_VK_F24,           Qt::Key_F24 },
-
-    { NS_VK_NUM_LOCK,      Qt::Key_NumLock },
-    { NS_VK_SCROLL_LOCK,   Qt::Key_ScrollLock },
-
-    { NS_VK_COMMA,         Qt::Key_Comma },
-    { NS_VK_PERIOD,        Qt::Key_Period },
-    { NS_VK_SLASH,         Qt::Key_Slash },
-    { NS_VK_BACK_QUOTE,    Qt::Key_QuoteLeft },
-    { NS_VK_OPEN_BRACKET,  Qt::Key_ParenLeft },
-    { NS_VK_CLOSE_BRACKET, Qt::Key_ParenRight },
-    { NS_VK_QUOTE,         Qt::Key_QuoteDbl },
-
-    { NS_VK_META,          Qt::Key_Meta }
-};
-
-int
-QtKeyCodeToDOMKeyCode(int aKeysym)
-{
-    unsigned int i;
-
-    // First, try to handle alphanumeric input, not listed in nsKeycodes:
-    // most likely, more letters will be getting typed in than things in
-    // the key list, so we will look through these first.
-
-    // since X has different key symbols for upper and lowercase letters and
-    // mozilla does not, convert gdk's to mozilla's
-    if (aKeysym >= Qt::Key_A && aKeysym <= Qt::Key_Z)
-        return aKeysym - Qt::Key_A + NS_VK_A;
-
-    // numbers
-    if (aKeysym >= Qt::Key_0 && aKeysym <= Qt::Key_9)
-        return aKeysym - Qt::Key_0 + NS_VK_0;
-
-    // keypad numbers
-//    if (aKeysym >= Qt::Key_KP_0 && aKeysym <= Qt::Key_KP_9)
-//        return aKeysym - Qt::Key_KP_0 + NS_VK_NUMPAD0;
-
-    // misc other things
-    for (i = 0; i < ArrayLength(nsKeycodes); i++) {
-        if (nsKeycodes[i].keysym == aKeysym)
-            return(nsKeycodes[i].vkCode);
-    }
-
-    // function keys
-    if (aKeysym >= Qt::Key_F1 && aKeysym <= Qt::Key_F24)
-        return aKeysym - Qt::Key_F1 + NS_VK_F1;
-
-    return((int)0);
-}
-
-int
-DOMKeyCodeToQtKeyCode(int aKeysym)
-{
-    unsigned int i;
-
-    // First, try to handle alphanumeric input, not listed in nsKeycodes:
-    // most likely, more letters will be getting typed in than things in
-    // the key list, so we will look through these first.
-
-    if (aKeysym >= NS_VK_A && aKeysym <= NS_VK_Z)
-      // gdk and DOM both use the ASCII codes for these keys.
-      return aKeysym;
-
-    // numbers
-    if (aKeysym >= NS_VK_0 && aKeysym <= NS_VK_9)
-      // gdk and DOM both use the ASCII codes for these keys.
-      return aKeysym - Qt::Key_0 + NS_VK_0;
-
-    // keypad numbers
-    if (aKeysym >= NS_VK_NUMPAD0 && aKeysym <= NS_VK_NUMPAD9) {
-      NS_ERROR("keypad numbers conversion not implemented");
-      //return aKeysym - NS_VK_NUMPAD0 + Qt::Key_KP_0;
-      return 0;
-    }
-
-    // misc other things
-    for (i = 0; i < ArrayLength(nsKeycodes); ++i) {
-      if (nsKeycodes[i].vkCode == aKeysym) {
-        return nsKeycodes[i].keysym;
-      }
-    }
-
-    // function keys
-    if (aKeysym >= NS_VK_F1 && aKeysym <= NS_VK_F9)
-      return aKeysym - NS_VK_F1 + Qt::Key_F1;
-
-    return 0;
-}
-
-KeyNameIndex
-QtKeyCodeToDOMKeyNameIndex(int aKeysym)
-{
-    switch (aKeysym) {
-
-#define NS_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX(aNativeKey, aKeyNameIndex) \
-        case aNativeKey: return aKeyNameIndex;
-
-#include "NativeKeyToDOMKeyName.h"
-
-#undef NS_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX
-
-        case Qt::Key_Exclam:
-        case Qt::Key_QuoteDbl:
-        case Qt::Key_NumberSign:
-        case Qt::Key_Dollar:
-        case Qt::Key_Percent:
-        case Qt::Key_Ampersand:
-        case Qt::Key_Apostrophe:
-        case Qt::Key_ParenLeft:
-        case Qt::Key_ParenRight:
-        case Qt::Key_Asterisk:
-        case Qt::Key_Plus:
-        case Qt::Key_Comma:
-        case Qt::Key_Minus:
-        case Qt::Key_Period:
-        case Qt::Key_Slash:
-        case Qt::Key_0:
-        case Qt::Key_1:
-        case Qt::Key_2:
-        case Qt::Key_3:
-        case Qt::Key_4:
-        case Qt::Key_5:
-        case Qt::Key_6:
-        case Qt::Key_7:
-        case Qt::Key_8:
-        case Qt::Key_9:
-        case Qt::Key_Colon:
-        case Qt::Key_Semicolon:
-        case Qt::Key_Less:
-        case Qt::Key_Equal:
-        case Qt::Key_Greater:
-        case Qt::Key_Question:
-        case Qt::Key_At:
-        case Qt::Key_A:
-        case Qt::Key_B:
-        case Qt::Key_C:
-        case Qt::Key_D:
-        case Qt::Key_E:
-        case Qt::Key_F:
-        case Qt::Key_G:
-        case Qt::Key_H:
-        case Qt::Key_I:
-        case Qt::Key_J:
-        case Qt::Key_K:
-        case Qt::Key_L:
-        case Qt::Key_M:
-        case Qt::Key_N:
-        case Qt::Key_O:
-        case Qt::Key_P:
-        case Qt::Key_Q:
-        case Qt::Key_R:
-        case Qt::Key_S:
-        case Qt::Key_T:
-        case Qt::Key_U:
-        case Qt::Key_V:
-        case Qt::Key_W:
-        case Qt::Key_X:
-        case Qt::Key_Y:
-        case Qt::Key_Z:
-        case Qt::Key_BracketLeft:
-        case Qt::Key_Backslash:
-        case Qt::Key_BracketRight:
-        case Qt::Key_AsciiCircum:
-        case Qt::Key_Underscore:
-        case Qt::Key_QuoteLeft:
-        case Qt::Key_BraceLeft:
-        case Qt::Key_Bar:
-        case Qt::Key_BraceRight:
-        case Qt::Key_AsciiTilde:
-        case Qt::Key_exclamdown:
-        case Qt::Key_cent:
-        case Qt::Key_sterling:
-        case Qt::Key_currency:
-        case Qt::Key_yen:
-        case Qt::Key_brokenbar:
-        case Qt::Key_section:
-        case Qt::Key_diaeresis:
-        case Qt::Key_copyright:
-        case Qt::Key_ordfeminine:
-        case Qt::Key_guillemotleft:
-        case Qt::Key_notsign:
-        case Qt::Key_hyphen:
-        case Qt::Key_registered:
-        case Qt::Key_macron:
-        case Qt::Key_degree:
-        case Qt::Key_plusminus:
-        case Qt::Key_twosuperior:
-        case Qt::Key_threesuperior:
-        case Qt::Key_acute:
-        case Qt::Key_mu:
-        case Qt::Key_paragraph:
-        case Qt::Key_periodcentered:
-        case Qt::Key_cedilla:
-        case Qt::Key_onesuperior:
-        case Qt::Key_masculine:
-        case Qt::Key_guillemotright:
-        case Qt::Key_onequarter:
-        case Qt::Key_onehalf:
-        case Qt::Key_threequarters:
-        case Qt::Key_questiondown:
-        case Qt::Key_Agrave:
-        case Qt::Key_Aacute:
-        case Qt::Key_Acircumflex:
-        case Qt::Key_Atilde:
-        case Qt::Key_Adiaeresis:
-        case Qt::Key_Aring:
-        case Qt::Key_AE:
-        case Qt::Key_Ccedilla:
-        case Qt::Key_Egrave:
-        case Qt::Key_Eacute:
-        case Qt::Key_Ecircumflex:
-        case Qt::Key_Ediaeresis:
-        case Qt::Key_Igrave:
-        case Qt::Key_Iacute:
-        case Qt::Key_Icircumflex:
-        case Qt::Key_Idiaeresis:
-        case Qt::Key_ETH:
-        case Qt::Key_Ntilde:
-        case Qt::Key_Ograve:
-        case Qt::Key_Oacute:
-        case Qt::Key_Ocircumflex:
-        case Qt::Key_Otilde:
-        case Qt::Key_Odiaeresis:
-        case Qt::Key_multiply:
-        case Qt::Key_Ooblique:
-        case Qt::Key_Ugrave:
-        case Qt::Key_Uacute:
-        case Qt::Key_Ucircumflex:
-        case Qt::Key_Udiaeresis:
-        case Qt::Key_Yacute:
-        case Qt::Key_THORN:
-        case Qt::Key_ssharp:
-        case Qt::Key_division:
-        case Qt::Key_ydiaeresis:
-            return KEY_NAME_INDEX_PrintableKey;
-
-        case Qt::Key_Backtab:
-        case Qt::Key_Direction_L:
-        case Qt::Key_Direction_R:
-        case Qt::Key_Touroku:
-        case Qt::Key_Massyo:
-        case Qt::Key_Hangul:
-        case Qt::Key_Hangul_Start:
-        case Qt::Key_Hangul_End:
-        case Qt::Key_Hangul_Hanja:
-        case Qt::Key_Hangul_Jamo:
-        case Qt::Key_Hangul_Romaja:
-        case Qt::Key_Hangul_Jeonja:
-        case Qt::Key_Hangul_Banja:
-        case Qt::Key_Hangul_PreHanja:
-        case Qt::Key_Hangul_PostHanja:
-        case Qt::Key_Hangul_Special:
-        case Qt::Key_TrebleUp:
-        case Qt::Key_TrebleDown:
-        case Qt::Key_OpenUrl:
-        case Qt::Key_KeyboardLightOnOff:
-        case Qt::Key_KeyboardBrightnessUp:
-        case Qt::Key_KeyboardBrightnessDown:
-        case Qt::Key_Memo:
-        case Qt::Key_LightBulb:
-        case Qt::Key_Shop:
-        case Qt::Key_History:
-        case Qt::Key_AddFavorite:
-        case Qt::Key_HotLinks:
-        case Qt::Key_Finance:
-        case Qt::Key_Community:
-        case Qt::Key_BackForward:
-        case Qt::Key_ApplicationLeft:
-        case Qt::Key_ApplicationRight:
-        case Qt::Key_Book:
-        case Qt::Key_ToDoList:
-        case Qt::Key_ClearGrab:
-        case Qt::Key_Display:
-        case Qt::Key_DOS:
-        case Qt::Key_Documents:
-        case Qt::Key_Game:
-        case Qt::Key_Go:
-        case Qt::Key_iTouch:
-        case Qt::Key_Market:
-        case Qt::Key_Meeting:
-        case Qt::Key_MenuKB:
-        case Qt::Key_MenuPB:
-        case Qt::Key_MySites:
-        case Qt::Key_News:
-        case Qt::Key_OfficeHome:
-        case Qt::Key_Option:
-        case Qt::Key_Phone:
-        case Qt::Key_RotateWindows:
-        case Qt::Key_RotationPB:
-        case Qt::Key_RotationKB:
-        case Qt::Key_SplitScreen:
-        case Qt::Key_Support:
-        case Qt::Key_TaskPane:
-        case Qt::Key_Terminal:
-        case Qt::Key_Tools:
-        case Qt::Key_Travel:
-        case Qt::Key_Xfer:
-        case Qt::Key_Away:
-        case Qt::Key_Messenger:
-        case Qt::Key_Pictures:
-        case Qt::Key_Battery:
-        case Qt::Key_Bluetooth:
-        case Qt::Key_WLAN:
-        case Qt::Key_UWB:
-        case Qt::Key_AudioRepeat:
-        case Qt::Key_AudioCycleTrack:
-        case Qt::Key_Time:
-        case Qt::Key_View:
-        case Qt::Key_TopMenu:
-        case Qt::Key_ContrastAdjust:
-        case Qt::Key_TouchpadToggle:
-        case Qt::Key_TouchpadOn:
-        case Qt::Key_TouchpadOff:
-        case Qt::Key_unknown:
-        case Qt::Key_Call:
-        case Qt::Key_Context1:
-        case Qt::Key_Context2:
-        case Qt::Key_Context3:
-        case Qt::Key_Context4:
-        case Qt::Key_Flip:
-        case Qt::Key_Hangup:
-        case Qt::Key_No:
-        case Qt::Key_Select:
-        case Qt::Key_Yes:
-        case Qt::Key_ToggleCallHangup:
-        case Qt::Key_VoiceDial:
-        case Qt::Key_LastNumberRedial:
-        default:
-            return KEY_NAME_INDEX_Unidentified;
-    }
-}
-
-CodeNameIndex
-ScanCodeToDOMCodeNameIndex(int32_t aScanCode)
-{
-    switch (aScanCode) {
-
-#define NS_NATIVE_KEY_TO_DOM_CODE_NAME_INDEX(aNativeKey, aCodeNameIndex) \
-        case aNativeKey: return aCodeNameIndex;
-
-#include "NativeKeyToDOMCodeName.h"
-
-#undef NS_NATIVE_KEY_TO_DOM_CODE_NAME_INDEX
-
-        default:
-            return CODE_NAME_INDEX_UNKNOWN;
-    }
-}
deleted file mode 100644
--- a/widget/qt/nsQtKeyUtils.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* vim:expandtab:shiftwidth=4:tabstop=4:
- */
-/* 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 __nsQtKeyUtils_h__
-#define __nsQtKeyUtils_h__
-
-#include "mozilla/EventForwards.h"
-
-int      QtKeyCodeToDOMKeyCode     (int aKeysym);
-int      DOMKeyCodeToQtKeyCode     (int aKeysym);
-
-mozilla::KeyNameIndex QtKeyCodeToDOMKeyNameIndex(int aKeysym);
-mozilla::CodeNameIndex ScanCodeToDOMCodeNameIndex(int32_t aScanCode);
-
-#endif /* __nsQtKeyUtils_h__ */
deleted file mode 100644
--- a/widget/qt/nsScreenManagerQt.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-/* 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/. */
-
-#include <QGuiApplication>
-#include <QScreen>
-
-#include "nsScreenManagerQt.h"
-#include "nsScreenQt.h"
-
-nsScreenManagerQt::nsScreenManagerQt()
-{
-    mInitialized = false;
-    desktop = 0;
-    screens = 0;
-}
-
-nsScreenManagerQt::~nsScreenManagerQt()
-{
-    delete [] screens;
-}
-
-// addref, release, QI
-NS_IMPL_ISUPPORTS(nsScreenManagerQt, nsIScreenManager)
-
-void nsScreenManagerQt::init()
-{
-    if (mInitialized)
-        return;
-
-    nScreens = QGuiApplication::screens().size();
-    screens = new nsCOMPtr<nsIScreen>[nScreens];
-
-    for (int i = 0; i < nScreens; ++i)
-        screens[i] = new nsScreenQt(i);
-    mInitialized = true;
-}
-
-//
-// ScreenForRect
-//
-// Returns the screen that contains the rectangle. If the rect overlaps
-// multiple screens, it picks the screen with the greatest area of intersection.
-//
-// The coordinates are in pixels (not twips) and in screen coordinates.
-//
-NS_IMETHODIMP
-nsScreenManagerQt::ScreenForRect(int32_t inLeft, int32_t inTop,
-                                 int32_t inWidth, int32_t inHeight,
-                                 nsIScreen **outScreen)
-{
-    if (!mInitialized)
-        init();
-
-    QRect r(inLeft, inTop, inWidth, inHeight);
-    int best = 0;
-    int area = 0;
-    for (int i = 0; i < nScreens; ++i) {
-        const QRect& rect = QGuiApplication::screens()[i]->geometry();
-        QRect intersection = r&rect;
-        int a = intersection.width()*intersection.height();
-        if (a > area) {
-            best = i;
-            area = a;
-        }
-    }
-
-    NS_IF_ADDREF(*outScreen = screens[best]);
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsScreenManagerQt::ScreenForId(uint32_t aId, nsIScreen** aOutScreen)
-{
-    if (!mInitialized) {
-        init();
-    }
-
-    if (aId < nScreens) {
-        NS_IF_ADDREF(*aOutScreen = screens[aId]);
-        return NS_OK;
-    }
-
-    return NS_ERROR_FAILURE;
-}
-
-//
-// GetPrimaryScreen
-//
-// The screen with the menubar/taskbar. This shouldn't be needed very
-// often.
-//
-NS_IMETHODIMP
-nsScreenManagerQt::GetPrimaryScreen(nsIScreen **aPrimaryScreen)
-{
-    if (!desktop)
-        init();
-
-    NS_IF_ADDREF(*aPrimaryScreen = screens[0]);
-    return NS_OK;
-}
-
-//
-// GetNumberOfScreens
-//
-// Returns how many physical screens are available.
-//
-NS_IMETHODIMP
-nsScreenManagerQt::GetNumberOfScreens(uint32_t *aNumberOfScreens)
-{
-    if (!desktop)
-        init();
-
-    *aNumberOfScreens = nScreens;
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsScreenManagerQt::GetSystemDefaultScale(float *aDefaultScale)
-{
-    *aDefaultScale = 1.0f;
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsScreenManagerQt::ScreenForNativeWidget(void *aWidget, nsIScreen **outScreen)
-{
-    // I don't know how to go from GtkWindow to nsIScreen, especially
-    // given xinerama and stuff, so let's just do this
-    QRect rect(0, 0, 1, 1);
-    return ScreenForRect(rect.x(), rect.y(), rect.width(), rect.height(), outScreen);
-}
deleted file mode 100644
--- a/widget/qt/nsScreenManagerQt.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* 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 nsScreenManagerQt_h___
-#define nsScreenManagerQt_h___
-
-#include "nsIScreenManager.h"
-#include "nsIScreen.h"
-#include "nsCOMPtr.h"
-
-//------------------------------------------------------------------------
-class QDesktopWidget;
-
-class nsScreenManagerQt : public nsIScreenManager
-{
-public:
-  nsScreenManagerQt ( );
-
-  NS_DECL_ISUPPORTS
-  NS_DECL_NSISCREENMANAGER
-
-private:
-  virtual ~nsScreenManagerQt();
-  void init ();
-
-  nsCOMPtr<nsIScreen> *screens;
-  QDesktopWidget *desktop;
-  int nScreens;
-  bool mInitialized;
-};
-
-#endif  // nsScreenManagerQt_h___
deleted file mode 100644
--- a/widget/qt/nsScreenQt.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/* 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/. */
-
-#include <QColor>
-#include <QRect>
-#include <QGuiApplication>
-#include <QTransform>
-#include <QScreen>
-
-#include "nsScreenQt.h"
-#include "nsXULAppAPI.h"
-
-nsScreenQt::nsScreenQt(int aScreen)
-    : mScreen(aScreen)
-{
-    // nothing else to do. I guess we could cache a bunch of information
-    // here, but we want to ask the device at runtime in case anything
-    // has changed.
-}
-
-nsScreenQt::~nsScreenQt()
-{
-}
-
-NS_IMETHODIMP
-nsScreenQt::GetId(uint32_t* aId)
-{
-    *aId = mScreen;
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsScreenQt::GetRect(int32_t *outLeft,int32_t *outTop,
-                    int32_t *outWidth,int32_t *outHeight)
-{
-    QRect r = QGuiApplication::screens()[mScreen]->geometry();
-
-    *outTop = r.x();
-    *outLeft = r.y();
-    *outWidth = r.width();
-    *outHeight = r.height();
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsScreenQt::GetAvailRect(int32_t *outLeft,int32_t *outTop,
-                         int32_t *outWidth,int32_t *outHeight)
-{
-    QRect r = QGuiApplication::screens()[mScreen]->geometry();
-
-    *outTop = r.x();
-    *outLeft = r.y();
-    *outWidth = r.width();
-    *outHeight = r.height();
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsScreenQt::GetPixelDepth(int32_t *aPixelDepth)
-{
-    // #############
-    *aPixelDepth = QGuiApplication::primaryScreen()->depth();
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsScreenQt::GetColorDepth(int32_t *aColorDepth)
-{
-    // ###############
-    return GetPixelDepth(aColorDepth);
-}
deleted file mode 100644
--- a/widget/qt/nsScreenQt.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* 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 nsScreenQt_h___
-#define nsScreenQt_h___
-
-#include "nsBaseScreen.h"
-
-//------------------------------------------------------------------------
-
-class nsScreenQt : public nsBaseScreen
-{
-public:
-  nsScreenQt (int aScreen);
-  virtual ~nsScreenQt();
-
-  NS_IMETHOD GetId(uint32_t* aId);
-  NS_IMETHOD GetRect(int32_t* aLeft, int32_t* aTop, int32_t* aWidth, int32_t* aHeight);
-  NS_IMETHOD GetAvailRect(int32_t* aLeft, int32_t* aTop, int32_t* aWidth, int32_t* aHeight);
-  NS_IMETHOD GetPixelDepth(int32_t* aPixelDepth);
-  NS_IMETHOD GetColorDepth(int32_t* aColorDepth);
-
-private:
-  int mScreen;
-};
-
-#endif  // nsScreenQt_h___
deleted file mode 100644
--- a/widget/qt/nsWidgetFactory.cpp
+++ /dev/null
@@ -1,162 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* Copyright 2012 Mozilla Foundation and Mozilla contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "base/basictypes.h"
-
-#include "mozilla/ModuleUtils.h"
-#include "mozilla/WidgetUtils.h"
-
-#include "nsCOMPtr.h"
-#include "nsWidgetsCID.h"
-#include "nsAppShell.h"
-
-#include "nsWindow.h"
-#include "nsLookAndFeel.h"
-#include "nsAppShellSingleton.h"
-#include "nsScreenManagerQt.h"
-#include "nsIdleServiceQt.h"
-#include "nsTransferable.h"
-#include "nsBidiKeyboard.h"
-
-#include "nsHTMLFormatConverter.h"
-#include "nsXULAppAPI.h"
-
-#ifdef NS_PRINTING
-#include "nsDeviceContextSpecQt.h"
-#include "nsPrintSession.h"
-#include "nsPrintOptionsQt.h"
-#include "nsPrintDialogQt.h"
-#endif
-
-#include "nsClipboard.h"
-#include "nsClipboardHelper.h"
-
-#if defined(MOZ_X11)
-#include "GfxInfoX11.h"
-#else
-#include "GfxInfo.h"
-#endif
-
-using namespace mozilla::widget;
-
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsWindow)
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsBidiKeyboard)
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsScreenManagerQt)
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsHTMLFormatConverter)
-NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIdleServiceQt, nsIdleServiceQt::GetInstance)
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsTransferable)
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsClipboard)
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsClipboardHelper)
-#ifdef NS_PRINTING
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsDeviceContextSpecQt)
-NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrintOptionsQt, Init)
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsPrinterEnumeratorQt)
-NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrintSession, Init)
-NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrintDialogServiceQt, Init)
-#endif
-
-namespace mozilla {
-namespace widget {
-// This constructor should really be shared with all platforms.
-NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(GfxInfo, Init)
-}
-}
-
-
-NS_DEFINE_NAMED_CID(NS_APPSHELL_CID);
-NS_DEFINE_NAMED_CID(NS_BIDIKEYBOARD_CID);
-NS_DEFINE_NAMED_CID(NS_WINDOW_CID);
-NS_DEFINE_NAMED_CID(NS_CHILD_CID);
-NS_DEFINE_NAMED_CID(NS_SCREENMANAGER_CID);
-NS_DEFINE_NAMED_CID(NS_HTMLFORMATCONVERTER_CID);
-NS_DEFINE_NAMED_CID(NS_IDLE_SERVICE_CID);
-NS_DEFINE_NAMED_CID(NS_TRANSFERABLE_CID);
-NS_DEFINE_NAMED_CID(NS_CLIPBOARD_CID);
-NS_DEFINE_NAMED_CID(NS_CLIPBOARDHELPER_CID);
-NS_DEFINE_NAMED_CID(NS_GFXINFO_CID);
-#ifdef NS_PRINTING
-NS_DEFINE_NAMED_CID(NS_PRINTSETTINGSSERVICE_CID);
-NS_DEFINE_NAMED_CID(NS_PRINTER_ENUMERATOR_CID);
-NS_DEFINE_NAMED_CID(NS_PRINTSESSION_CID);
-NS_DEFINE_NAMED_CID(NS_DEVICE_CONTEXT_SPEC_CID);
-NS_DEFINE_NAMED_CID(NS_PRINTDIALOGSERVICE_CID);
-#endif
-
-static const mozilla::Module::CIDEntry kWidgetCIDs[] = {
-    { &kNS_APPSHELL_CID, false, nullptr, nsAppShellConstructor },
-    { &kNS_BIDIKEYBOARD_CID, false, nullptr, nsBidiKeyboardConstructor },
-    { &kNS_CHILD_CID, false, nullptr, nsWindowConstructor },
-    { &kNS_CLIPBOARD_CID, false, nullptr, nsClipboardConstructor },
-    { &kNS_CLIPBOARDHELPER_CID, false, nullptr, nsClipboardHelperConstructor },
-    { &kNS_HTMLFORMATCONVERTER_CID, false, nullptr, nsHTMLFormatConverterConstructor },
-    { &kNS_IDLE_SERVICE_CID, false, nullptr, nsIdleServiceQtConstructor },
-    { &kNS_SCREENMANAGER_CID, false, nullptr, nsScreenManagerQtConstructor },
-    { &kNS_TRANSFERABLE_CID, false, nullptr, nsTransferableConstructor },
-    { &kNS_WINDOW_CID, false, nullptr, nsWindowConstructor },
-    { &kNS_GFXINFO_CID, false, nullptr, mozilla::widget::GfxInfoConstructor },
-#ifdef NS_PRINTING
-    { &kNS_DEVICE_CONTEXT_SPEC_CID, false, nullptr, nsDeviceContextSpecQtConstructor },
-    { &kNS_PRINTDIALOGSERVICE_CID, false, nullptr, nsPrintDialogServiceQtConstructor },
-    { &kNS_PRINTER_ENUMERATOR_CID, false, nullptr, nsPrinterEnumeratorQtConstructor },
-    { &kNS_PRINTSESSION_CID, false, nullptr, nsPrintSessionConstructor },
-    { &kNS_PRINTSETTINGSSERVICE_CID, false, nullptr, nsPrintOptionsQtConstructor },
-#endif
-    { nullptr }
-};
-
-static const mozilla::Module::ContractIDEntry kWidgetContracts[] = {
-    { "@mozilla.org/gfx/screenmanager;1", &kNS_SCREENMANAGER_CID },
-    { "@mozilla.org/widget/appshell/qt;1", &kNS_APPSHELL_CID },
-    { "@mozilla.org/widget/bidikeyboard;1", &kNS_BIDIKEYBOARD_CID },
-    { "@mozilla.org/widget/clipboard;1", &kNS_CLIPBOARD_CID },
-    { "@mozilla.org/widget/clipboardhelper;1", &kNS_CLIPBOARDHELPER_CID },
-    { "@mozilla.org/widget/htmlformatconverter;1", &kNS_HTMLFORMATCONVERTER_CID },
-    { "@mozilla.org/widget/idleservice;1", &kNS_IDLE_SERVICE_CID },
-    { "@mozilla.org/widgets/child_window/qt;1", &kNS_CHILD_CID },
-    { "@mozilla.org/widgets/window/qt;1", &kNS_WINDOW_CID },
-    { "@mozilla.org/widget/transferable;1", &kNS_TRANSFERABLE_CID },
-    { "@mozilla.org/gfx/info;1", &kNS_GFXINFO_CID },
-#ifdef NS_PRINTING
-    { "@mozilla.org/gfx/devicecontextspec;1", &kNS_DEVICE_CONTEXT_SPEC_CID },
-    { "@mozilla.org/gfx/printerenumerator;1", &kNS_PRINTER_ENUMERATOR_CID },
-    { "@mozilla.org/gfx/printsession;1", &kNS_PRINTSESSION_CID },
-    { "@mozilla.org/gfx/printsettings-service;1", &kNS_PRINTSETTINGSSERVICE_CID },
-    { NS_PRINTDIALOGSERVICE_CONTRACTID, &kNS_PRINTDIALOGSERVICE_CID },
-#endif
-    { nullptr }
-};
-
-static void
-nsWidgetQtModuleDtor()
-{
-    // Shutdown all XP level widget classes.
-    WidgetUtils::Shutdown();
-
-    nsLookAndFeel::Shutdown();
-    nsAppShellShutdown();
-}
-
-static const mozilla::Module kWidgetModule = {
-    mozilla::Module::kVersion,
-    kWidgetCIDs,
-    kWidgetContracts,
-    nullptr,
-    nullptr,
-    nsAppShellInit,
-    nsWidgetQtModuleDtor
-};
-
-NSMODULE_DEFN(nsWidgetQtModule) = &kWidgetModule;
deleted file mode 100644
--- a/widget/qt/nsWindow.cpp
+++ /dev/null
@@ -1,2001 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* vim:expandtab:shiftwidth=4:tabstop=4:
- */
-/* 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/. */
-
-#include "mozilla/ArrayUtils.h"
-#include "mozilla/MiscEvents.h"
-#include "mozilla/MouseEvents.h"
-#include "mozilla/TextEvents.h"
-#include "mozilla/TouchEvents.h"
-
-#include <QGuiApplication>
-#include <QtGui/QCursor>
-#include <QIcon>
-#include <QMouseEvent>
-#include <QWheelEvent>
-#include <QResizeEvent>
-#include <QPaintEngine>
-#include <QMimeData>
-#include <QScreen>
-
-#include <QtCore/QDebug>
-#include <QtCore/QEvent>
-#include <QtCore/QVariant>
-#include <algorithm>
-
-#ifdef MOZ_X11
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include "gfxXlibSurface.h"
-#endif //MOZ_X11
-
-#include "nsXULAppAPI.h"
-
-#include "prlink.h"
-
-#include "nsWindow.h"
-#include "mozqwidget.h"
-
-#include "nsIdleService.h"
-#include "nsIRollupListener.h"
-#include "nsWidgetsCID.h"
-#include "nsQtKeyUtils.h"
-#include "mozilla/Services.h"
-#include "mozilla/Preferences.h"
-#include "mozilla/Likely.h"
-#include "mozilla/layers/LayersTypes.h"
-#include "nsIWidgetListener.h"
-#include "ClientLayerManager.h"
-#include "BasicLayers.h"
-
-#include "nsIStringBundle.h"
-#include "nsGfxCIID.h"
-
-#include "imgIContainer.h"
-#include "nsGfxCIID.h"
-#include "nsIInterfaceRequestorUtils.h"
-
-#include "gfxQtPlatform.h"
-
-#include "nsIDOMWheelEvent.h"
-
-#include "GLContext.h"
-
-#ifdef MOZ_X11
-#include "keysym2ucs.h"
-#endif
-
-#include "Layers.h"
-#include "GLContextProvider.h"
-
-using namespace mozilla;
-using namespace mozilla::gl;
-using namespace mozilla::widget;
-using namespace mozilla::gfx;
-using namespace mozilla::layers;
-using mozilla::gl::GLContext;
-
-#define kWindowPositionSlop 20
-
-// Qt
-static const int WHEEL_DELTA = 120;
-static bool gGlobalsInitialized = false;
-static bool sAltGrModifier = false;
-
-static void find_first_visible_parent(QWindow* aItem, QWindow*& aVisibleItem);
-static bool is_mouse_in_window (MozQWidget* aWindow, double aMouseX, double aMouseY);
-
-NS_IMPL_ISUPPORTS_INHERITED0(nsWindow, nsBaseWidget)
-
-nsWindow::nsWindow()
-{
-    LOG(("%s [%p]\n", __PRETTY_FUNCTION__, (void *)this));
-
-    mIsTopLevel       = false;
-    mIsDestroyed      = false;
-    mIsShown          = false;
-    mEnabled          = true;
-    mWidget              = nullptr;
-    mVisible           = false;
-    mActivatePending     = false;
-    mWindowType          = eWindowType_child;
-    mSizeState           = nsSizeMode_Normal;
-    mLastSizeMode        = nsSizeMode_Normal;
-    mQCursor             = Qt::ArrowCursor;
-    mNeedsResize         = false;
-    mNeedsMove           = false;
-    mListenForResizes    = false;
-    mNeedsShow           = false;
-    mTimerStarted        = false;
-    mMoveEvent.needDispatch = false;
-
-    if (!gGlobalsInitialized) {
-        gfxPlatform::GetPlatform();
-        gGlobalsInitialized = true;
-    }
-
-    memset(mKeyDownFlags, 0, sizeof(mKeyDownFlags));
-
-    mIsTransparent = false;
-
-    mCursor = eCursor_standard;
-}
-
-nsWindow::~nsWindow()
-{
-    LOG(("%s [%p]\n", __PRETTY_FUNCTION__, (void *)this));
-
-    Destroy();
-}
-
-nsresult
-nsWindow::Create(nsIWidget* aParent,
-                 nsNativeWidget aNativeParent,
-                 const LayoutDeviceIntRect& aRect,
-                 nsWidgetInitData* aInitData)
-{
-    // only set the base parent if we're not going to be a dialog or a
-    // toplevel
-    nsIWidget *baseParent = aParent;
-
-    // initialize all the common bits of this class
-    BaseCreate(baseParent, aInitData);
-
-    mVisible = true;
-
-    // and do our common creation
-    mParent = (nsWindow *)aParent;
-
-    // save our bounds
-    mBounds = aRect;
-
-    // find native parent
-    MozQWidget *parent = nullptr;
-
-    if (aParent != nullptr) {
-        parent = static_cast<MozQWidget*>(aParent->GetNativeData(NS_NATIVE_WIDGET));
-    } else if (aNativeParent != nullptr) {
-        parent = static_cast<MozQWidget*>(aNativeParent);
-        if (parent && mParent == nullptr) {
-            mParent = parent->getReceiver();
-        }
-    }
-
-    LOG(("Create: nsWindow [%p] mWidget:[%p] parent:[%p], natPar:[%p] mParent:%p\n", (void *)this, (void*)mWidget, parent, aNativeParent, mParent));
-
-    // ok, create our QGraphicsWidget
-    mWidget = createQWidget(parent, aInitData);
-
-    if (!mWidget) {
-        return NS_ERROR_OUT_OF_MEMORY;
-    }
-
-
-    // resize so that everything is set to the right dimensions
-    Resize(mBounds.x, mBounds.y, mBounds.width, mBounds.height, false);
-
-    // check if we should listen for resizes
-    mListenForResizes = (aNativeParent ||
-                         (aInitData && aInitData->mListenForResizes));
-
-    return NS_OK;
-}
-
-MozQWidget*
-nsWindow::createQWidget(MozQWidget* parent,
-                        nsWidgetInitData* aInitData)
-{
-    const char *windowName = nullptr;
-    Qt::WindowFlags flags = Qt::Widget;
-
-    // ok, create our windows
-    switch (mWindowType) {
-    case eWindowType_dialog:
-        windowName = "topLevelDialog";
-        flags = Qt::Dialog;
-        break;
-    case eWindowType_popup:
-        windowName = "topLevelPopup";
-        flags = Qt::Popup;
-        break;
-    case eWindowType_toplevel:
-        windowName = "topLevelWindow";
-        flags = Qt::Window;
-        break;
-    case eWindowType_invisible:
-        windowName = "topLevelInvisible";
-        break;
-    case eWindowType_child:
-    case eWindowType_plugin:
-    default: // sheet
-        windowName = "paintArea";
-        break;
-    }
-
-    MozQWidget* widget = new MozQWidget(this, parent);
-    if (!widget) {
-        return nullptr;
-    }
-
-    widget->setObjectName(QString(windowName));
-    if (mWindowType == eWindowType_invisible) {
-#if (QT_VERSION >= QT_VERSION_CHECK(5, 1, 0))
-        widget->setVisibility(QWindow::Hidden);
-#else
-        widget->hide();
-#endif
-    }
-    if (mWindowType == eWindowType_dialog) {
-        widget->setModality(Qt::WindowModal);
-    }
-
-    widget->create();
-
-    // create a QGraphicsView if this is a new toplevel window
-    LOG(("nsWindow::%s [%p] Created Window: %s, widget:%p, par:%p\n", __FUNCTION__, (void *)this, windowName, widget, parent));
-
-    return widget;
-}
-
-NS_IMETHODIMP
-nsWindow::Destroy(void)
-{
-    if (mIsDestroyed || !mWidget) {
-        return NS_OK;
-    }
-
-    LOG(("nsWindow::Destroy [%p]\n", (void *)this));
-    mIsDestroyed = true;
-
-    /** Need to clean our LayerManager up while still alive */
-    if (mLayerManager) {
-        mLayerManager->Destroy();
-    }
-    mLayerManager = nullptr;
-
-    // It is safe to call DestroyeCompositor several times (here and 
-    // in the parent class) since it will take effect only once.
-    // The reason we call it here is because on gtk platforms we need 
-    // to destroy the compositor before we destroy the gdk window (which
-    // destroys the the gl context attached to it).
-    DestroyCompositor();
-
-    ClearCachedResources();
-
-    nsIRollupListener* rollupListener = nsBaseWidget::GetActiveRollupListener();
-    if (rollupListener) {
-        nsCOMPtr<nsIWidget> rollupWidget = rollupListener->GetRollupWidget();
-        if (static_cast<nsIWidget *>(this) == rollupWidget) {
-            rollupListener->Rollup(0, false, nullptr, nullptr);
-        }
-    }
-
-    Show(false);
-
-    // walk the list of children and call destroy on them.  Have to be
-    // careful, though -- calling destroy on a kid may actually remove
-    // it from our child list, losing its sibling links.
-    for (nsIWidget* kid = mFirstChild; kid; ) {
-        nsIWidget* next = kid->GetNextSibling();
-        kid->Destroy();
-        kid = next;
-    }
-
-    // Destroy thebes surface now. Badness can happen if we destroy
-    // the surface after its X Window.
-    if (mWidget) {
-        mWidget->dropReceiver();
-
-        // Call deleteLater instead of delete; Qt still needs the object
-        // to be valid even after sending it a Close event.  We could
-        // also set WA_DeleteOnClose, but this gives us more control.
-        mWidget->deleteLater();
-    }
-    mWidget = nullptr;
-
-    OnDestroy();
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsWindow::Show(bool aState)
-{
-    LOG(("nsWindow::Show [%p] state %d\n", (void *)this, aState));
-    if (aState == mIsShown) {
-        return NS_OK;
-    }
-
-    // Clear our cached resources when the window is hidden.
-    if (mIsShown && !aState) {
-        ClearCachedResources();
-    }
-
-    mIsShown = aState;
-
-    if ((aState && !AreBoundsSane()) || !mWidget) {
-        LOG(("\tbounds are insane or window hasn't been created yet\n"));
-        mNeedsShow = true;
-        return NS_OK;
-    }
-
-    if (aState) {
-        if (mNeedsMove) {
-            NativeResize(mBounds.x, mBounds.y, mBounds.width, mBounds.height,
-                         false);
-        } else if (mNeedsResize) {
-            NativeResize(mBounds.width, mBounds.height, false);
-        }
-    }
-    else {
-        // If someone is hiding this widget, clear any needing show flag.
-        mNeedsShow = false;
-    }
-
-    NativeShow(aState);
-
-    return NS_OK;
-}
-
-bool
-nsWindow::IsVisible() const
-{
-    return mIsShown;
-}
-
-NS_IMETHODIMP
-nsWindow::ConstrainPosition(bool aAllowSlop, int32_t *aX, int32_t *aY)
-{
-    if (!mWidget) {
-        return NS_ERROR_FAILURE;
-    }
-
-    int32_t screenWidth  = qApp->primaryScreen()->size().width();
-    int32_t screenHeight = qApp->primaryScreen()->size().height();
-
-    if (aAllowSlop) {
-        if (*aX < (kWindowPositionSlop - mBounds.width))
-            *aX = kWindowPositionSlop - mBounds.width;
-        if (*aX > (screenWidth - kWindowPositionSlop))
-            *aX = screenWidth - kWindowPositionSlop;
-        if (*aY < (kWindowPositionSlop - mBounds.height))
-            *aY = kWindowPositionSlop - mBounds.height;
-        if (*aY > (screenHeight - kWindowPositionSlop))
-            *aY = screenHeight - kWindowPositionSlop;
-    } else {
-        if (*aX < 0)
-            *aX = 0;
-        if (*aX > (screenWidth - mBounds.width))
-            *aX = screenWidth - mBounds.width;
-        if (*aY < 0)
-            *aY = 0;
-        if (*aY > (screenHeight - mBounds.height))
-            *aY = screenHeight - mBounds.height;
-    }
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsWindow::Move(double aX, double aY)
-{
-    LOG(("nsWindow::Move [%p] %f %f\n", (void *)this,
-         aX, aY));
-
-    int32_t x = NSToIntRound(aX);
-    int32_t y = NSToIntRound(aY);
-
-    if (mIsTopLevel) {
-        SetSizeMode(nsSizeMode_Normal);
-    }
-
-    if (x == mBounds.x && y == mBounds.y) {
-        return NS_OK;
-    }
-
-    mNeedsMove = false;
-
-    // update the bounds
-    QPoint pos(x, y);
-    if (mIsTopLevel) {
-        mWidget->setPosition(x, y);
-    }
-    else if (mWidget) {
-        // the position of the widget is set relative to the parent
-        // so we map the coordinates accordingly
-        pos = mWidget->mapToGlobal(pos);
-        mWidget->setPosition(pos);
-    }
-
-    mBounds.x = pos.x();
-    mBounds.y = pos.y();
-
-    NotifyRollupGeometryChange();
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsWindow::Resize(double aWidth, double aHeight, bool aRepaint)
-{
-    mBounds.width = NSToIntRound(aWidth);
-    mBounds.height = NSToIntRound(aHeight);
-
-    if (!mWidget)
-        return NS_OK;
-
-    if (mIsShown) {
-        if (AreBoundsSane()) {
-            if (mIsTopLevel || mNeedsShow)
-                NativeResize(mBounds.x, mBounds.y,
-                             mBounds.width, mBounds.height, aRepaint);
-            else
-                NativeResize(mBounds.width, mBounds.height, aRepaint);
-
-            // Does it need to be shown because it was previously insane?
-            if (mNeedsShow) {
-                NativeShow(true);
-            }
-        }
-        else {
-            // If someone has set this so that the needs show flag is false
-            // and it needs to be hidden, update the flag and hide the
-            // window.  This flag will be cleared the next time someone
-            // hides the window or shows it.  It also prevents us from
-            // calling NativeShow(false) excessively on the window which
-            // causes unneeded X traffic.
-            if (!mNeedsShow) {
-                mNeedsShow = true;
-                NativeShow(false);
-            }
-        }
-    }
-    else if (AreBoundsSane() && mListenForResizes) {
-        // For widgets that we listen for resizes for (widgets created
-        // with native parents) we apparently _always_ have to resize.  I
-        // dunno why, but apparently we're lame like that.
-        NativeResize(mBounds.width, mBounds.height, aRepaint);
-    }
-    else {
-        mNeedsResize = true;
-    }
-
-    // synthesize a resize event if this isn't a toplevel
-    if (mIsTopLevel || mListenForResizes) {
-        nsEventStatus status;
-        DispatchResizeEvent(mBounds, status);
-    }
-
-    NotifyRollupGeometryChange();
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsWindow::Resize(double aX, double aY, double aWidth, double aHeight,
-                 bool aRepaint)
-{
-    mBounds.x = NSToIntRound(aX);
-    mBounds.y = NSToIntRound(aY);
-    mBounds.width = NSToIntRound(aWidth);
-    mBounds.height = NSToIntRound(aHeight);
-
-    mPlaced = true;
-
-    if (!mWidget) {
-        return NS_OK;
-    }
-
-    // Has this widget been set to visible?
-    if (mIsShown) {
-        // Are the bounds sane?
-        if (AreBoundsSane()) {
-            // Yep?  Resize the window
-            NativeResize(mBounds.x, mBounds.y, mBounds.width, mBounds.height,
-                         aRepaint);
-            // Does it need to be shown because it was previously insane?
-            if (mNeedsShow)
-                NativeShow(true);
-        }
-        else {
-            // If someone has set this so that the needs show flag is false
-            // and it needs to be hidden, update the flag and hide the
-            // window.  This flag will be cleared the next time someone
-            // hides the window or shows it.  It also prevents us from
-            // calling NativeShow(false) excessively on the window which
-            // causes unneeded X traffic.
-            if (!mNeedsShow) {
-                mNeedsShow = true;
-                NativeShow(false);
-            }
-        }
-    }
-    // If the widget hasn't been shown, mark the widget as needing to be
-    // resized before it is shown
-    else if (AreBoundsSane() && mListenForResizes) {
-        // For widgets that we listen for resizes for (widgets created
-        // with native parents) we apparently _always_ have to resize.  I
-        // dunno why, but apparently we're lame like that.
-        NativeResize(mBounds.x, mBounds.y, mBounds.width, mBounds.height,
-                     aRepaint);
-    }
-    else {
-        mNeedsResize = true;
-        mNeedsMove = true;
-    }
-
-    if (mIsTopLevel || mListenForResizes) {
-        // synthesize a resize event
-        nsEventStatus status;
-        DispatchResizeEvent(mBounds, status);
-    }
-
-    if (aRepaint) {
-        mWidget->renderLater();
-    }
-
-    NotifyRollupGeometryChange();
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsWindow::Enable(bool aState)
-{
-    mEnabled = aState;
-
-    return NS_OK;
-}
-
-bool
-nsWindow::IsEnabled() const
-{
-    return mEnabled;
-}
-
-NS_IMETHODIMP
-nsWindow::SetFocus(bool aRaise)
-{
-    // Make sure that our owning widget has focus.  If it doesn't try to
-    // grab it.  Note that we don't set our focus flag in this case.
-    LOGFOCUS(("  SetFocus [%p]\n", (void *)this));
-
-    if (!mWidget) {
-        return NS_ERROR_FAILURE;
-    }
-
-    if (mWidget->focusObject()) {
-        return NS_OK;
-    }
-
-    // Because QGraphicsItem cannot get the focus if they are
-    // invisible, we look up the chain, for the lowest visible
-    // parent and focus that one
-    QWindow* realFocusItem = nullptr;
-    find_first_visible_parent(mWidget, realFocusItem);
-
-    if (!realFocusItem || realFocusItem->focusObject()) {
-        return NS_OK;
-    }
-
-    if (aRaise && mWidget) {
-        // the raising has to happen on the view widget
-        mWidget->raise();
-    }
-
-    // XXXndeakin why is this here? It should dispatch only when the OS
-    // notifies us.
-    DispatchActivateEvent();
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsWindow::ConfigureChildren(const nsTArray<nsIWidget::Configuration>& aConfigurations)
-{
-    for (uint32_t i = 0; i < aConfigurations.Length(); ++i) {
-        const Configuration& configuration = aConfigurations[i];
-
-        nsWindow* w = static_cast<nsWindow*>(configuration.mChild.get());
-        NS_ASSERTION(w->GetParent() == this,
-                     "Configured widget is not a child");
-
-        if (w->mBounds.Size() != configuration.mBounds.Size()) {
-            w->Resize(configuration.mBounds.x, configuration.mBounds.y,
-                      configuration.mBounds.width, configuration.mBounds.height,
-                      true);
-        } else if (w->mBounds.TopLeft() != configuration.mBounds.TopLeft()) {
-            w->Move(configuration.mBounds.x, configuration.mBounds.y);
-        }
-    }
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsWindow::Invalidate(const LayoutDeviceIntRect& aRect)
-{
-    LOGDRAW(("Invalidate (rect) [%p,%p]: %d %d %d %d\n", (void *)this,
-             (void*)mWidget, aRect.x, aRect.y, aRect.width, aRect.height));
-
-    if (!mWidget) {
-        return NS_OK;
-    }
-
-    mWidget->renderLater();
-
-    return NS_OK;
-}
-
-LayoutDeviceIntPoint
-nsWindow::WidgetToScreenOffset()
-{
-    NS_ENSURE_TRUE(mWidget, LayoutDeviceIntPoint(0,0));
-
-    QPoint origin(0, 0);
-    origin = mWidget->mapToGlobal(origin);
-
-    return LayoutDeviceIntPoint(origin.x(), origin.y());
-}
-
-void*
-nsWindow::GetNativeData(uint32_t aDataType)
-{
-    switch (aDataType) {
-    case NS_NATIVE_WINDOW:
-    case NS_NATIVE_WIDGET: {
-        return mWidget;
-    }
-    case NS_NATIVE_SHAREABLE_WINDOW: {
-        return mWidget ? (void*)mWidget->winId() : nullptr;
-    }
-    case NS_NATIVE_DISPLAY: {
-#ifdef MOZ_X11
-        return gfxQtPlatform::GetXDisplay(mWidget);
-#endif
-        break;
-    }
-    case NS_NATIVE_PLUGIN_PORT:
-    case NS_NATIVE_GRAPHIC:
-    case NS_NATIVE_SHELLWIDGET: {
-        break;
-    }
-    case NS_RAW_NATIVE_IME_CONTEXT: {
-        void* pseudoIMEContext = GetPseudoIMEContext();
-        if (pseudoIMEContext) {
-            return pseudoIMEContext;
-        }
-        // Our qt widget looks like using only one context per process.
-        // However, it's better to set the context's pointer.
-        return qApp->inputMethod();
-    }
-    default:
-        NS_WARNING("nsWindow::GetNativeData called with bad value");
-        return nullptr;
-    }
-    LOG(("nsWindow::%s [%p] aDataType:%i\n", __FUNCTION__, (void *)this, aDataType));
-    return nullptr;
-}
-
-NS_IMETHODIMP
-nsWindow::DispatchEvent(WidgetGUIEvent* aEvent, nsEventStatus& aStatus)
-{
-#ifdef DEBUG
-    debug_DumpEvent(stdout, aEvent->mWidget, aEvent,
-                    "something", 0);
-#endif
-
-    aStatus = nsEventStatus_eIgnore;
-
-    // send it to the standard callback
-    if (mWidgetListener) {
-        aStatus = mWidgetListener->HandleEvent(aEvent, mUseAttachedEvents);
-    }
-
-    return NS_OK;
-}
-
-NS_IMETHODIMP_(void)
-nsWindow::SetInputContext(const InputContext& aContext,
-                          const InputContextAction& aAction)
-{
-    NS_ENSURE_TRUE_VOID(mWidget);
-
-    // SetSoftwareKeyboardState uses mInputContext,
-    // so, before calling that, record aContext in mInputContext.
-    mInputContext = aContext;
-
-    switch (mInputContext.mIMEState.mEnabled) {
-        case IMEState::ENABLED:
-        case IMEState::PASSWORD:
-        case IMEState::PLUGIN:
-            SetSoftwareKeyboardState(true, aAction);
-            break;
-        default:
-            SetSoftwareKeyboardState(false, aAction);
-            break;
-    }
-}
-
-NS_IMETHODIMP_(InputContext)
-nsWindow::GetInputContext()
-{
-    mInputContext.mIMEState.mOpen = IMEState::OPEN_STATE_NOT_SUPPORTED;
-    return mInputContext;
-}
-
-NS_IMETHODIMP
-nsWindow::ReparentNativeWidget(nsIWidget *aNewParent)
-{
-    NS_PRECONDITION(aNewParent, "");
-
-    MozQWidget* newParent = static_cast<MozQWidget*>(aNewParent->GetNativeData(NS_NATIVE_WINDOW));
-    NS_ASSERTION(newParent, "Parent widget has a null native window handle");
-    if (mWidget) {
-        mWidget->setParent(newParent);
-    }
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsWindow::MakeFullScreen(bool aFullScreen, nsIScreen*)
-{
-    NS_ENSURE_TRUE(mWidget, NS_ERROR_FAILURE);
-
-    if (aFullScreen) {
-        if (mSizeMode != nsSizeMode_Fullscreen) {
-            mLastSizeMode = mSizeMode;
-        }
-
-        mSizeMode = nsSizeMode_Fullscreen;
-        mWidget->showFullScreen();
-    }
-    else {
-        mSizeMode = mLastSizeMode;
-
-        switch (mSizeMode) {
-        case nsSizeMode_Maximized:
-            mWidget->showMaximized();
-            break;
-        case nsSizeMode_Minimized:
-            mWidget->showMinimized();
-            break;
-        case nsSizeMode_Normal:
-            mWidget->showNormal();
-            break;
-        default:
-            mWidget->showNormal();
-            break;
-        }
-    }
-
-    NS_ASSERTION(mLastSizeMode != nsSizeMode_Fullscreen,
-                 "mLastSizeMode should never be fullscreen");
-    return nsBaseWidget::MakeFullScreen(aFullScreen);
-}
-
-LayerManager*
-nsWindow::GetLayerManager(PLayerTransactionChild* aShadowManager,
-                          LayersBackend aBackendHint,
-                          LayerManagerPersistence aPersistence)
-{
-    if (!mLayerManager && eTransparencyTransparent == GetTransparencyMode()) {
-        mLayerManager = CreateBasicLayerManager();
-    }
-
-    return nsBaseWidget::GetLayerManager(aShadowManager, aBackendHint,
-                                         aPersistence);
-}
-
-void
-nsWindow::UserActivity()
-{
-    if (!mIdleService) {
-        mIdleService = do_GetService("@mozilla.org/widget/idleservice;1");
-    }
-
-    if (mIdleService) {
-        mIdleService->ResetIdleTimeOut(0);
-    }
-}
-
-uint32_t
-nsWindow::GetGLFrameBufferFormat()
-{
-    if (mLayerManager &&
-        mLayerManager->GetBackendType() == mozilla::layers::LayersBackend::LAYERS_OPENGL) {
-        return LOCAL_GL_RGB;
-    }
-    return LOCAL_GL_NONE;
-}
-
-already_AddRefed<DrawTarget>
-nsWindow::StartRemoteDrawing()
-{
-    if (!mWidget) {
-        return nullptr;
-    }
-
-#ifdef MOZ_X11
-    Display* dpy = gfxQtPlatform::GetXDisplay(mWidget);
-    Screen* screen = DefaultScreenOfDisplay(dpy);
-    Visual* defaultVisual = DefaultVisualOfScreen(screen);
-    gfxASurface* surf = new gfxXlibSurface(dpy, mWidget->winId(), defaultVisual,
-                                           IntSize(mWidget->width(),
-                                                   mWidget->height()));
-
-    IntSize size(surf->GetSize().width, surf->GetSize().height);
-    if (size.width <= 0 || size.height <= 0) {
-        return nullptr;
-    }
-
-    return gfxPlatform::GetPlatform()->CreateDrawTargetForSurface(surf, size);
-#else
-    return nullptr;
-#endif
-}
-
-NS_IMETHODIMP
-nsWindow::SetCursor(nsCursor aCursor)
-{
-    if (mCursor == aCursor && !mUpdateCursor) {
-        return NS_OK;
-    }
-    mUpdateCursor = false;
-    mCursor = aCursor;
-    if (mWidget) {
-        mWidget->SetCursor(mCursor);
-    }
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsWindow::SetTitle(const nsAString& aTitle)
-{
-    QString qStr(QString::fromUtf16((const ushort*)aTitle.BeginReading(), aTitle.Length()));
-
-    mWidget->setTitle(qStr);
-
-    return NS_OK;
-}
-
-// EVENTS
-
-nsIWidgetListener*
-nsWindow::GetPaintListener()
-{
-    return mAttachedWidgetListener ? mAttachedWidgetListener : mWidgetListener;
-}
-
-void
-nsWindow::OnPaint()
-{
-    LOGDRAW(("nsWindow::%s [%p]\n", __FUNCTION__, (void *)this));
-    nsIWidgetListener* listener = GetPaintListener();
-    if (!listener) {
-        return;
-    }
-
-    listener->WillPaintWindow(this);
-
-    nsIWidgetListener* listener = GetPaintListener();
-    if (!listener) {
-        return;
-    }
-
-    switch (GetLayerManager()->GetBackendType()) {
-        case mozilla::layers::LayersBackend::LAYERS_CLIENT: {
-            LayoutDeviceIntRegion region(
-              LayoutDeviceIntRect(0, 0, mWidget->width(), mWidget->height()));
-            listener->PaintWindow(this, region);
-            break;
-        }
-        default:
-            NS_ERROR("Invalid layer manager");
-    }
-
-    nsIWidgetListener* listener = GetPaintListener();
-    if (!listener) {
-        return;
-    }
-
-    listener->DidPaintWindow();
-}
-
-nsEventStatus
-nsWindow::moveEvent(QMoveEvent* aEvent)
-{
-    LOG(("configure event [%p] %d %d\n", (void *)this,
-        aEvent->pos().x(),  aEvent->pos().y()));
-
-    // can we shortcut?
-    if (!mWidget || !mWidgetListener)
-        return nsEventStatus_eIgnore;
-
-    if ((mBounds.x == aEvent->pos().x() &&
-         mBounds.y == aEvent->pos().y()))
-    {
-        return nsEventStatus_eIgnore;
-    }
-
-    NotifyWindowMoved(aEvent->pos().x(), aEvent->pos().y());
-    return nsEventStatus_eConsumeNoDefault;
-}
-
-nsEventStatus
-nsWindow::resizeEvent(QResizeEvent* aEvent)
-{
-    LayoutDeviceIntRect rect;
-
-    // Generate XPFE resize event
-    GetBounds(rect);
-
-    rect.width = aEvent->size().width();
-    rect.height = aEvent->size().height();
-
-    mBounds.width = rect.width;
-    mBounds.height = rect.height;
-
-    nsEventStatus status;
-    DispatchResizeEvent(rect, status);
-    return status;
-}
-
-nsEventStatus
-nsWindow::mouseMoveEvent(QMouseEvent* aEvent)
-{
-    UserActivity();
-
-    mMoveEvent.pos = aEvent->pos();
-    mMoveEvent.modifiers = aEvent->modifiers();
-    mMoveEvent.needDispatch = true;
-    DispatchMotionToMainThread();
-
-    return nsEventStatus_eIgnore;
-}
-
-static void
-InitMouseEvent(WidgetMouseEvent& aMouseEvent, QMouseEvent* aEvent,
-               int aClickCount)
-{
-    aMouseEvent.mRefPoint.x = nscoord(aEvent->pos().x());
-    aMouseEvent.mRefPoint.y = nscoord(aEvent->pos().y());
-
-    aMouseEvent.InitBasicModifiers(aEvent->modifiers() & Qt::ControlModifier,
-                                   aEvent->modifiers() & Qt::AltModifier,
-                                   aEvent->modifiers() & Qt::ShiftModifier,
-                                   aEvent->modifiers() & Qt::MetaModifier);
-    aMouseEvent.mClickCount = aClickCount;
-
-    switch (aEvent->button()) {
-    case Qt::LeftButton:
-        aMouseEvent.button = WidgetMouseEvent::eLeftButton;
-        break;
-    case Qt::RightButton:
-        aMouseEvent.button = WidgetMouseEvent::eRightButton;
-        break;
-    case Qt::MiddleButton:
-        aMouseEvent.button = WidgetMouseEvent::eMiddleButton;
-        break;
-    default:
-        break;
-    }
-}
-
-static bool
-IsAcceptedButton(Qt::MouseButton button)
-{
-    switch (button) {
-    case Qt::LeftButton:
-    case Qt::RightButton:
-    case Qt::MiddleButton:
-        return true;
-    default:
-        return false;
-    }
-}
-
-nsEventStatus
-nsWindow::mousePressEvent(QMouseEvent* aEvent)
-{
-    // The user has done something.
-    UserActivity();
-
-    QPoint pos = aEvent->pos();
-
-    // we check against the widgets geometry, so use parent coordinates
-    // for the check
-    if (mWidget)
-        pos = mWidget->mapToGlobal(pos);
-
-    if (CheckForRollup(pos.x(), pos.y(), false))
-        return nsEventStatus_eIgnore;
-
-    if (!IsAcceptedButton(aEvent->button())) {
-        if (aEvent->button() == Qt::BackButton)
-            return DispatchCommandEvent(nsGkAtoms::Back);
-        if (aEvent->button() == Qt::ForwardButton)
-            return DispatchCommandEvent(nsGkAtoms::Forward);
-        return nsEventStatus_eIgnore;
-    }
-
-    WidgetMouseEvent event(true, eMouseDown, this, WidgetMouseEvent::eReal);
-    InitMouseEvent(event, aEvent, 1);
-    nsEventStatus status = DispatchEvent(&event);
-
-    // Right click on linux should also pop up a context menu.
-    if (event.button == WidgetMouseEvent::eRightButton &&
-        MOZ_LIKELY(!mIsDestroyed)) {
-        WidgetMouseEvent contextMenuEvent(true, eContextMenu, this,
-                                          WidgetMouseEvent::eReal);
-        InitMouseEvent(contextMenuEvent, aEvent, 1);
-        DispatchEvent(&contextMenuEvent, status);
-    }
-
-    return status;
-}
-
-nsEventStatus
-nsWindow::mouseReleaseEvent(QMouseEvent* aEvent)
-{
-    // The user has done something.
-    UserActivity();
-
-    if (!IsAcceptedButton(aEvent->button()))
-        return nsEventStatus_eIgnore;
-
-    WidgetMouseEvent event(true, eMouseUp, this, WidgetMouseEvent::eReal);
-    InitMouseEvent(event, aEvent, 1);
-    return DispatchEvent(&event);
-}
-
-nsEventStatus
-nsWindow::mouseDoubleClickEvent(QMouseEvent* aEvent)
-{
-    // The user has done something.
-    UserActivity();
-
-    if (!IsAcceptedButton(aEvent->button()))
-        return nsEventStatus_eIgnore;
-
-    WidgetMouseEvent event(true, eMouseDoubleClick, this,
-                           WidgetMouseEvent::eReal);
-    InitMouseEvent(event, aEvent, 2);
-    return DispatchEvent(&event);
-}
-
-nsEventStatus
-nsWindow::focusInEvent(QFocusEvent* aEvent)
-{
-    LOGFOCUS(("OnFocusInEvent [%p]\n", (void *)this));
-
-    if (!mWidget) {
-        return nsEventStatus_eIgnore;
-    }
-
-    DispatchActivateEventOnTopLevelWindow();
-
-    LOGFOCUS(("Events sent from focus in event [%p]\n", (void *)this));
-    return nsEventStatus_eIgnore;
-}
-
-nsEventStatus
-nsWindow::focusOutEvent(QFocusEvent* aEvent)
-{
-    LOGFOCUS(("OnFocusOutEvent [%p]\n", (void *)this));
-
-    if (!mWidget) {
-        return nsEventStatus_eIgnore;
-    }
-
-    DispatchDeactivateEventOnTopLevelWindow();
-
-    LOGFOCUS(("Done with container focus out [%p]\n", (void *)this));
-    return nsEventStatus_eIgnore;
-}
-
-static bool
-IsContextMenuKeyEvent(const QKeyEvent* aQEvent)
-{
-    if (aQEvent->modifiers() & (Qt::ControlModifier |
-                                Qt::AltModifier |
-                                Qt::MetaModifier)) {
-        return false;
-    }
-
-    bool isShift = aQEvent->modifiers() & Qt::ShiftModifier;
-    uint32_t keyCode = QtKeyCodeToDOMKeyCode(aQEvent->key());
-    return (keyCode == NS_VK_F10 && isShift) ||
-           (keyCode == NS_VK_CONTEXT_MENU && !isShift);
-}
-
-static void
-InitKeyEvent(WidgetKeyboardEvent& aEvent, QKeyEvent* aQEvent)
-{
-    aEvent.InitBasicModifiers(aQEvent->modifiers() & Qt::ControlModifier,
-                              aQEvent->modifiers() & Qt::AltModifier,
-                              aQEvent->modifiers() & Qt::ShiftModifier,
-                              aQEvent->modifiers() & Qt::MetaModifier);
-
-    aEvent.mIsRepeat =
-        (aEvent.mMessage == eKeyDown || aEvent.mMessage == eKeyPress) &&
-        aQEvent->isAutoRepeat();
-    aEvent.mTime = 0;
-
-    if (sAltGrModifier) {
-        aEvent.mModifiers |= (MODIFIER_CONTROL | MODIFIER_ALT);
-    }
-
-    if (aQEvent->text().length() && aQEvent->text()[0].isPrint()) {
-        aEvent.mCharCode = static_cast<uint32_t>(aQEvent->text()[0].unicode());
-        aEvent.mKeyCode = 0;
-        aEvent.mKeyNameIndex = KEY_NAME_INDEX_PrintableKey;
-    } else {
-        aEvent.mCharCode = 0;
-        aEvent.mKeyCode = QtKeyCodeToDOMKeyCode(aQEvent->key());
-        aEvent.mKeyNameIndex = QtKeyCodeToDOMKeyNameIndex(aQEvent->key());
-    }
-
-    aEvent.mCodeNameIndex = ScanCodeToDOMCodeNameIndex(aQEvent->nativeScanCode());
-
-    // The transformations above and in qt for the keyval are not invertible
-    // so link to the QKeyEvent (which will vanish soon after return from the
-    // event callback) to give plugins access to hardware_keycode and state.
-    // (An XEvent would be nice but the QKeyEvent is good enough.)
-    aEvent.mPluginEvent.Copy(*aQEvent);
-}
-
-nsEventStatus
-nsWindow::keyPressEvent(QKeyEvent* aEvent)
-{
-    LOGFOCUS(("OnKeyPressEvent [%p]\n", (void *)this));
-
-    // The user has done something.
-    UserActivity();
-
-    if (aEvent->key() == Qt::Key_AltGr) {
-        sAltGrModifier = true;
-    }
-
-    // Before we dispatch a key, check if it's the context menu key.
-    // If so, send a context menu key event instead.
-    if (IsContextMenuKeyEvent(aEvent)) {
-        WidgetMouseEvent contextMenuEvent(true, eContextMenu, this,
-                                          WidgetMouseEvent::eReal,
-                                          WidgetMouseEvent::eContextMenuKey);
-        return DispatchEvent(&contextMenuEvent);
-    }
-
-    //:TODO: fix shortcuts hebrew for non X11,
-    //see Bug 562195##51
-
-    uint32_t domKeyCode = QtKeyCodeToDOMKeyCode(aEvent->key());
-
-    if (!aEvent->isAutoRepeat() && !IsKeyDown(domKeyCode)) {
-        SetKeyDownFlag(domKeyCode);
-
-        WidgetKeyboardEvent downEvent(true, eKeyDown, this);
-        InitKeyEvent(downEvent, aEvent);
-
-        nsEventStatus status = DispatchEvent(&downEvent);
-
-        // DispatchEvent can Destroy us (bug 378273)
-        if (MOZ_UNLIKELY(mIsDestroyed)) {
-            qWarning() << "Returning[" << __LINE__ << "]: " << "Window destroyed";
-            return status;
-        }
-
-        // If prevent default on keydown, don't dispatch keypress event
-        if (status == nsEventStatus_eConsumeNoDefault) {
-            return nsEventStatus_eConsumeNoDefault;
-        }
-    }
-
-    // Don't pass modifiers as eKeyPress events.
-    // Instead of selectively excluding some keys from eKeyPress events,
-    // we instead selectively include (as per MSDN spec
-    // ( http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress%28VS.71%29.aspx );
-    // no official spec covers KeyPress events).
-    if (aEvent->key() == Qt::Key_Shift   ||
-        aEvent->key() == Qt::Key_Control ||
-        aEvent->key() == Qt::Key_Meta    ||
-        aEvent->key() == Qt::Key_Alt     ||
-        aEvent->key() == Qt::Key_AltGr) {
-        return nsEventStatus_eIgnore;
-    }
-
-    // Look for specialized app-command keys
-    switch (aEvent->key()) {
-        case Qt::Key_Back:
-            return DispatchCommandEvent(nsGkAtoms::Back);
-        case Qt::Key_Forward:
-            return DispatchCommandEvent(nsGkAtoms::Forward);
-        case Qt::Key_Refresh:
-            return DispatchCommandEvent(nsGkAtoms::Reload);
-        case Qt::Key_Stop:
-            return DispatchCommandEvent(nsGkAtoms::Stop);
-        case Qt::Key_Search:
-            return DispatchCommandEvent(nsGkAtoms::Search);
-        case Qt::Key_Favorites:
-            return DispatchCommandEvent(nsGkAtoms::Bookmarks);
-        case Qt::Key_HomePage:
-            return DispatchCommandEvent(nsGkAtoms::Home);
-        case Qt::Key_Copy:
-        case Qt::Key_F16: // F16, F20, F18, F14 are old keysyms for Copy Cut Paste Undo
-            return DispatchContentCommandEvent(eContentCommandCopy);
-        case Qt::Key_Cut:
-        case Qt::Key_F20:
-            return DispatchContentCommandEvent(eContentCommandCut);
-        case Qt::Key_Paste:
-        case Qt::Key_F18:
-        case Qt::Key_F9:
-            return DispatchContentCommandEvent(eContentCommandPaste);
-        case Qt::Key_F14:
-            return DispatchContentCommandEvent(eContentCommandUndo);
-    }
-
-    // Qt::Key_Redo and Qt::Key_Undo are not available yet.
-    if (aEvent->nativeVirtualKey() == 0xff66) {
-        return DispatchContentCommandEvent(eContentCommandRedo);
-    }
-    if (aEvent->nativeVirtualKey() == 0xff65) {
-        return DispatchContentCommandEvent(eContentCommandUndo);
-    }
-
-    WidgetKeyboardEvent event(true, eKeyPress, this);
-    InitKeyEvent(event, aEvent);
-    // Seend the key press event
-    return DispatchEvent(&event);
-}
-
-nsEventStatus
-nsWindow::keyReleaseEvent(QKeyEvent* aEvent)
-{
-    LOGFOCUS(("OnKeyReleaseEvent [%p]\n", (void *)this));
-
-    // The user has done something.
-    UserActivity();
-
-    if (IsContextMenuKeyEvent(aEvent)) {
-        // er, what do we do here? DoDefault or NoDefault?
-        return nsEventStatus_eConsumeDoDefault;
-    }
-
-    // send the key event as a key up event
-    WidgetKeyboardEvent event(true, eKeyUp, this);
-    InitKeyEvent(event, aEvent);
-
-    if (aEvent->key() == Qt::Key_AltGr) {
-        sAltGrModifier = false;
-    }
-
-    // unset the key down flag
-    ClearKeyDownFlag(event.keyCode);
-
-    return DispatchEvent(&event);
-}
-
-nsEventStatus
-nsWindow::wheelEvent(QWheelEvent* aEvent)
-{
-    // check to see if we should rollup
-    WidgetWheelEvent wheelEvent(true, eWheel, this);
-    wheelEvent.mDeltaMode = nsIDOMWheelEvent::DOM_DELTA_LINE;
-
-    // negative values for aEvent->delta indicate downward scrolling;
-    // this is opposite Gecko usage.
-    // TODO: Store the unused delta values due to fraction round and add it
-    //       to next event.  The stored values should be reset by other
-    //       direction scroll event.
-    int32_t delta = (int)(aEvent->delta() / WHEEL_DELTA) * -3;
-
-    switch (aEvent->orientation()) {
-    case Qt::Vertical:
-        wheelEvent.mDeltaY = wheelEvent.mLineOrPageDeltaY = delta;
-        break;
-    case Qt::Horizontal:
-        wheelEvent.mDeltaX = wheelEvent.mLineOrPageDeltaX = delta;
-        break;
-    default:
-        Q_ASSERT(0);
-        break;
-    }
-
-    wheelEvent.mRefPoint.x = nscoord(aEvent->pos().x());
-    wheelEvent.mRefPoint.y = nscoord(aEvent->pos().y());
-
-    wheelEvent.InitBasicModifiers(aEvent->modifiers() & Qt::ControlModifier,
-                                  aEvent->modifiers() & Qt::AltModifier,
-                                  aEvent->modifiers() & Qt::ShiftModifier,
-                                  aEvent->modifiers() & Qt::MetaModifier);
-    wheelEvent.mTime = 0;
-
-    return DispatchEvent(&wheelEvent);
-}
-
-nsEventStatus
-nsWindow::showEvent(QShowEvent *)
-{
-    LOG(("%s [%p]\n", __PRETTY_FUNCTION__,(void *)this));
-    mVisible = true;
-    return nsEventStatus_eConsumeDoDefault;
-}
-
-nsEventStatus
-nsWindow::hideEvent(QHideEvent *)
-{
-    LOG(("%s [%p]\n", __PRETTY_FUNCTION__,(void *)this));
-    mVisible = false;
-    return nsEventStatus_eConsumeDoDefault;
-}
-
-nsEventStatus nsWindow::touchEvent(QTouchEvent* aEvent)
-{
-    return nsEventStatus_eIgnore;
-}
-
-nsEventStatus
-nsWindow::tabletEvent(QTabletEvent* aEvent)
-{
-    LOGFOCUS(("nsWindow::%s [%p]\n", __FUNCTION__, (void *)this));
-    return nsEventStatus_eIgnore;
-}
-
-//  Helpers
-
-nsEventStatus
-nsWindow::DispatchEvent(WidgetGUIEvent* aEvent)
-{
-    nsEventStatus status;
-    DispatchEvent(aEvent, status);
-    return status;
-}
-
-void
-nsWindow::DispatchActivateEvent(void)
-{
-    if (mWidgetListener) {
-        mWidgetListener->WindowActivated();
-    }
-}
-
-void
-nsWindow::DispatchDeactivateEvent(void)
-{
-    if (mWidgetListener) {
-        mWidgetListener->WindowDeactivated();
-    }
-}
-
-void
-nsWindow::DispatchActivateEventOnTopLevelWindow(void)
-{
-    nsWindow* topLevelWindow = static_cast<nsWindow*>(GetTopLevelWidget());
-    if (topLevelWindow != nullptr) {
-        topLevelWindow->DispatchActivateEvent();
-    }
-}
-
-void
-nsWindow::DispatchDeactivateEventOnTopLevelWindow(void)
-{
-    nsWindow* topLevelWindow = static_cast<nsWindow*>(GetTopLevelWidget());
-    if (topLevelWindow != nullptr) {
-        topLevelWindow->DispatchDeactivateEvent();
-    }
-}
-
-void
-nsWindow::DispatchResizeEvent(LayoutDeviceIntRect& aRect,
-                              nsEventStatus& aStatus)
-{
-    aStatus = nsEventStatus_eIgnore;
-    if (mWidgetListener &&
-        mWidgetListener->WindowResized(this, aRect.width, aRect.height)) {
-        aStatus = nsEventStatus_eConsumeNoDefault;
-    }
-}
-
-///////////////////////////////////// OLD GECKO ECENTS need to Sort ///////////////////
-
-void
-nsWindow::ClearCachedResources()
-{
-    if (mLayerManager &&
-        mLayerManager->GetBackendType() == mozilla::layers::LayersBackend::LAYERS_BASIC) {
-        mLayerManager->ClearCachedResources();
-    }
-    for (nsIWidget* kid = mFirstChild; kid; ) {
-        nsIWidget* next = kid->GetNextSibling();
-        static_cast<nsWindow*>(kid)->ClearCachedResources();
-        kid = next;
-    }
-}
-
-NS_IMETHODIMP
-nsWindow::SetParent(nsIWidget *aNewParent)
-{
-    NS_ENSURE_ARG_POINTER(aNewParent);
-
-    nsCOMPtr<nsIWidget> kungFuDeathGrip(this);
-    nsIWidget* parent = GetParent();
-    if (parent) {
-        parent->RemoveChild(this);
-    }
-    ReparentNativeWidget(aNewParent);
-    aNewParent->AddChild(this);
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsWindow::SetModal(bool aModal)
-{
-    LOG(("nsWindow::SetModal [%p] %d, widget[%p]\n", (void *)this, aModal, mWidget));
-    if (mWidget) {
-        mWidget->setModality(aModal ? Qt::WindowModal : Qt::NonModal);
-    }
-
-    return NS_OK;
-}
-
-
-NS_IMETHODIMP
-nsWindow::PlaceBehind(nsTopLevelWidgetZPlacement  aPlacement,
-                      nsIWidget                  *aWidget,
-                      bool                        aActivate)
-{
-    return NS_ERROR_NOT_IMPLEMENTED;
-}
-
-NS_IMETHODIMP
-nsWindow::SetSizeMode(nsSizeMode aMode)
-{
-    nsresult rv;
-
-    LOG(("nsWindow::SetSizeMode [%p] %d\n", (void *)this, aMode));
-    if (aMode != nsSizeMode_Minimized) {
-        mWidget->requestActivate();
-    }
-
-    // Save the requested state.
-    rv = nsBaseWidget::SetSizeMode(aMode);
-
-    // return if there's no shell or our current state is the same as
-    // the mode we were just set to.
-    if (!mWidget || mSizeState == mSizeMode) {
-        return rv;
-    }
-
-    switch (aMode) {
-    case nsSizeMode_Maximized:
-        mWidget->showMaximized();
-        break;
-    case nsSizeMode_Minimized:
-        mWidget->showMinimized();
-        break;
-    case nsSizeMode_Fullscreen:
-        mWidget->showFullScreen();
-        break;
-
-    default:
-        // nsSizeMode_Normal, really.
-        mWidget->show();
-        break;
-    }
-
-    mSizeState = mSizeMode;
-
-    return rv;
-}
-
-// Helper function to recursively find the first parent item that
-// is still visible (QGraphicsItem can be hidden even if they are
-// set to visible if one of their ancestors is invisible)
-/* static */
-void find_first_visible_parent(QWindow* aItem, QWindow*& aVisibleItem)
-{
-    NS_ENSURE_TRUE_VOID(aItem);
-
-    aVisibleItem = nullptr;
-    QWindow* parItem = nullptr;
-    while (!aVisibleItem) {
-        if (aItem->isVisible()) {
-            aVisibleItem = aItem;
-        }
-        else {
-            parItem = aItem->parent();
-            if (parItem) {
-                aItem = parItem;
-            }
-            else {
-                aItem->setVisible(true);
-                aVisibleItem = aItem;
-            }
-        }
-    }
-}
-
-NS_IMETHODIMP
-nsWindow::GetScreenBounds(LayoutDeviceIntRect& aRect)
-{
-    aRect = LayoutDeviceIntRect(LayoutDeviceIntPoint(0, 0), mBounds.Size());
-    if (mIsTopLevel) {
-        QPoint pos = mWidget->position();
-        aRect.MoveTo(pos.x(), pos.y());
-    } else {
-        aRect.MoveTo(WidgetToScreenOffset());
-    }
-    LOG(("GetScreenBounds %d %d | %d %d | %d %d\n",
-         aRect.x, aRect.y,
-         mBounds.width, mBounds.height,
-         aRect.width, aRect.height));
-    return NS_OK;
-}
-
-NS_IMETHODIMP
-nsWindow::SetIcon(const nsAString& aIconSpec)
-{
-    if (!mWidget)
-        return NS_OK;
-
-    nsCOMPtr<nsIFile> iconFile;
-    nsAutoCString path;
-    nsTArray<nsCString> iconList;
-
-    // Look for icons with the following suffixes appended to the base name.
-    // The last two entries (for the old XPM format) will be ignored unless
-    // no icons are found using the other suffixes. XPM icons are depricated.
-
-    const char extensions[6][7] = { ".png", "16.png", "32.png", "48.png",
-                                    ".xpm", "16.xpm" };
-
-    for (uint32_t i = 0; i < ArrayLength(extensions); i++) {
-        // Don't bother looking for XPM versions if we found a PNG.
-        if (i == ArrayLength(extensions) - 2 && iconList.Length())
-            break;
-
-        nsAutoString extension;
-        extension.AppendASCII(extensions[i]);
-
-        ResolveIconName(aIconSpec, extension, getter_AddRefs(iconFile));
-        if (iconFile) {
-            iconFile->GetNativePath(path);
-            iconList.AppendElement(path);
-        }
-    }
-
-    // leave the default icon intact if no matching icons were found
-    if (iconList.Length() == 0)
-        return NS_OK;
-
-    return SetWindowIconList(iconList);
-}
-
-NS_IMETHODIMP
-nsWindow::CaptureMouse(bool aCapture)
-{
-    LOG(("CaptureMouse %p\n", (void *)this));
-
-    if (!mWidget)
-        return NS_OK;
-
-    mWidget->setMouseGrabEnabled(aCapture);
-
-    return NS_OK;
-}
-
-bool
-nsWindow::CheckForRollup(double aMouseX, double aMouseY,
-                         bool aIsWheel)
-{
-    nsIRollupListener* rollupListener = GetActiveRollupListener();
-    nsCOMPtr<nsIWidget> rollupWidget;
-    if (rollupListener) {
-        rollupWidget = rollupListener->GetRollupWidget();
-    }
-    if (!rollupWidget) {
-        nsBaseWidget::gRollupListener = nullptr;
-        return false;
-    }
-
-    bool retVal = false;
-    MozQWidget *currentPopup =
-        (MozQWidget *)rollupWidget->GetNativeData(NS_NATIVE_WINDOW);
-    if (!is_mouse_in_window(currentPopup, aMouseX, aMouseY)) {
-        bool rollup = true;
-        if (aIsWheel) {
-            rollup = rollupListener->ShouldRollupOnMouseWheelEvent();
-            retVal = true;
-        }
-        // if we're dealing with menus, we probably have submenus and
-        // we don't want to rollup if the clickis in a parent menu of
-        // the current submenu
-        uint32_t popupsToRollup = UINT32_MAX;
-        if (rollupListener) {
-            AutoTArray<nsIWidget*, 5> widgetChain;
-            uint32_t sameTypeCount = rollupListener->GetSubmenuWidgetChain(&widgetChain);
-            for (uint32_t i=0; i<widgetChain.Length(); ++i) {
-                nsIWidget* widget =  widgetChain[i];
-                MozQWidget* currWindow =
-                    (MozQWidget*) widget->GetNativeData(NS_NATIVE_WINDOW);
-                if (is_mouse_in_window(currWindow, aMouseX, aMouseY)) {
-                  if (i < sameTypeCount) {
-                    rollup = false;
-                  }
-                  else {
-                    popupsToRollup = sameTypeCount;
-                  }
-                  break;
-                }
-            } // foreach parent menu widget
-        } // if rollup listener knows about menus
-
-        // if we've determined that we should still rollup, do it.
-        if (rollup) {
-            nsIntPoint pos(aMouseX, aMouseY);
-            retVal = rollupListener->Rollup(popupsToRollup, true, &pos, nullptr);
-        }
-    }
-
-    return retVal;
-}
-
-/* static */
-bool
-is_mouse_in_window (MozQWidget* aWindow, double aMouseX, double aMouseY)
-{
-    return aWindow->geometry().contains(aMouseX, aMouseY);
-}
-
-NS_IMETHODIMP
-nsWindow::GetAttention(int32_t aCycleCount)
-{
-    LOG(("nsWindow::GetAttention [%p]\n", (void *)this));
-    return NS_ERROR_NOT_IMPLEMENTED;
-}
-
-
-
-nsEventStatus
-nsWindow::OnCloseEvent(QCloseEvent *aEvent)
-{
-    if (!mWidgetListener)
-        return nsEventStatus_eIgnore;
-    mWidgetListener->RequestWindowClose(this);
-    return nsEventStatus_eConsumeNoDefault;
-}
-
-
-inline bool
-is_latin_shortcut_key(quint32 aKeyval)
-{
-    return ((Qt::Key_0 <= aKeyval && aKeyval <= Qt::Key_9) ||
-            (Qt::Key_A <= aKeyval && aKeyval <= Qt::Key_Z));
-}
-
-nsEventStatus
-nsWindow::DispatchCommandEvent(nsIAtom* aCommand)
-{
-    WidgetCommandEvent event(true, nsGkAtoms::onAppCommand, aCommand, this);
-
-    nsEventStatus status;
-    DispatchEvent(&event, status);
-
-    return status;
-}
-
-nsEventStatus
-nsWindow::DispatchContentCommandEvent(EventMessage aMsg)
-{
-    WidgetContentCommandEvent event(true, aMsg, this);
-
-    nsEventStatus status;
-    DispatchEvent(&event, status);
-
-    return status;
-}
-
-
-static void
-GetBrandName(nsXPIDLString& brandName)
-{
-    nsCOMPtr<nsIStringBundleService> bundleService =
-        mozilla::services::GetStringBundleService();
-
-    nsCOMPtr<nsIStringBundle> bundle;
-    if (bundleService) {
-        bundleService->CreateBundle(
-            "chrome://branding/locale/brand.properties",
-            getter_AddRefs(bundle));
-    }
-
-    if (bundle) {
-        bundle->GetStringFromName(
-            MOZ_UTF16("brandShortName"),
-            getter_Copies(brandName));
-    }
-
-    if (brandName.IsEmpty()) {
-        brandName.AssignLiteral(MOZ_UTF16("Mozilla"));
-    }
-}
-
-NS_IMETHODIMP
-nsWindow::SetWindowClass(const nsAString &xulWinType)
-{
-    if (!mWidget) {
-        return NS_ERROR_FAILURE;
-    }
-
-    nsXPIDLString brandName;
-    GetBrandName(brandName);
-
-#ifdef MOZ_X11
-    XClassHint *class_hint = XAllocClassHint();
-    if (!class_hint) {
-        return NS_ERROR_OUT_OF_MEMORY;
-    }
-    const char *role = nullptr;
-    class_hint->res_name = ToNewCString(xulWinType);
-    if (!class_hint->res_name) {
-        XFree(class_hint);
-        return NS_ERROR_OUT_OF_MEMORY;
-    }
-    class_hint->res_class = ToNewCString(brandName);
-    if (!class_hint->res_class) {
-        free(class_hint->res_name);
-        XFree(class_hint);
-        return NS_ERROR_OUT_OF_MEMORY;
-    }
-
-    // Parse res_name into a name and role. Characters other than
-    // [A-Za-z0-9_-] are converted to '_'. Anything after the first
-    // colon is assigned to role; if there's no colon, assign the
-    // whole thing to both role and res_name.
-    for (char *c = class_hint->res_name; *c; c++) {
-        if (':' == *c) {
-            *c = 0;
-            role = c + 1;
-        }
-        else if (!isascii(*c) || (!isalnum(*c) && ('_' != *c) && ('-' != *c)))
-            *c = '_';
-    }
-    class_hint->res_name[0] = toupper(class_hint->res_name[0]);
-    if (!role) role = class_hint->res_name;
-
-    QWindow *widget = mWidget;
-    // If widget not show, handle might be null
-    if (widget && widget->winId()) {
-        XSetClassHint(gfxQtPlatform::GetXDisplay(widget),
-                      widget->winId(),
-                      class_hint);
-    }
-
-    free(class_hint->res_class);
-    free(class_hint->res_name);
-    XFree(class_hint);
-#endif
-
-    return NS_OK;
-}
-
-void
-nsWindow::NativeResize(int32_t aWidth, int32_t aHeight, bool    aRepaint)
-{
-    LOG(("nsWindow::NativeResize [%p] %d %d\n", (void *)this,
-         aWidth, aHeight));
-
-    mNeedsResize = false;
-
-    mWidget->resize(aWidth, aHeight);
-
-    if (aRepaint) {
-        mWidget->renderLater();
-    }
-}
-
-void
-nsWindow::NativeResize(int32_t aX, int32_t aY,
-                       int32_t aWidth, int32_t aHeight,
-                       bool    aRepaint)
-{
-    LOG(("nsWindow::NativeResize [%p] %d %d %d %d\n", (void *)this,
-         aX, aY, aWidth, aHeight));
-
-    mNeedsResize = false;
-    mNeedsMove = false;
-
-    mWidget->setGeometry(aX, aY, aWidth, aHeight);
-
-    if (aRepaint) {
-        mWidget->renderLater();
-    }
-}
-
-void
-nsWindow::NativeShow(bool aAction)
-{
-    if (aAction) {
-        // On e10s, we never want the child process or plugin process
-        // to go fullscreen because if we do the window because visible
-        // do to disabled Qt-Xembed
-        mWidget->show();
-        // unset our flag now that our window has been shown
-        mNeedsShow = false;
-    }
-    else {
-        mWidget->hide();
-    }
-}
-
-NS_IMETHODIMP
-nsWindow::SetHasTransparentBackground(bool aTransparent)
-{
-    return NS_ERROR_NOT_IMPLEMENTED;
-}
-
-NS_IMETHODIMP
-nsWindow::GetHasTransparentBackground(bool& aTransparent)
-{
-    aTransparent = mIsTransparent;
-    return NS_OK;
-}
-
-void *
-nsWindow::SetupPluginPort(void)
-{
-    NS_WARNING("Not implemented");
-    return nullptr;
-}
-
-nsresult
-nsWindow::SetWindowIconList(const nsTArray<nsCString> &aIconList)
-{
-    QIcon icon;
-
-    for (uint32_t i = 0; i < aIconList.Length(); ++i) {
-        const char *path = aIconList[i].get();
-        LOG(("window [%p] Loading icon from %s\n", (void *)this, path));
-        icon.addFile(path);
-    }
-
-    mWidget->setIcon(icon);
-
-    return NS_OK;
-}
-
-void
-nsWindow::SetDefaultIcon(void)
-{
-    SetIcon(NS_LITERAL_STRING("default"));
-}
-
-void nsWindow::QWidgetDestroyed()
-{
-    mWidget = nullptr;
-}
-
-
-NS_IMETHODIMP
-nsWindow::HideWindowChrome(bool aShouldHide)
-{
-    if (!mWidget) {
-        // Nothing to hide
-        return NS_ERROR_FAILURE;
-    }
-
-    // Sawfish, metacity, and presumably other window managers get
-    // confused if we change the window decorations while the window
-    // is visible.
-    bool wasVisible = false;
-    if (mWidget->isVisible()) {
-        NativeShow(false);
-        wasVisible = true;
-    }
-
-    if (wasVisible) {
-        NativeShow(true);
-    }
-
-    return NS_OK;
-}
-
-//////////////////////////////////////////////////////////////////////
-
-NS_IMETHODIMP_(bool)
-nsWindow::HasGLContext()
-{
-    return false;
-}
-
-
-nsIWidget*
-nsWindow::GetParent(void)
-{
-    return mParent;
-}
-
-float
-nsWindow::GetDPI()
-{
-    return qApp->primaryScreen()->logicalDotsPerInch();
-}
-
-void
-nsWindow::OnDestroy(void)
-{
-    if (mOnDestroyCalled) {
-        return;
-    }
-
-    mOnDestroyCalled = true;
-
-    // release references to children and device context
-    nsBaseWidget::OnDestroy();
-
-    // let go of our parent
-    mParent = nullptr;
-
-    nsCOMPtr<nsIWidget> kungFuDeathGrip = this;
-    NotifyWindowDestroyed();
-}
-
-bool
-nsWindow::AreBoundsSane(void)
-{
-    if (mBounds.width > 0 && mBounds.height > 0) {
-        return true;
-    }
-
-    return false;
-}
-
-void
-nsWindow::SetSoftwareKeyboardState(bool aOpen,
-                                   const InputContextAction& aAction)
-{
-    if (aOpen) {
-        NS_ENSURE_TRUE_VOID(mInputContext.mIMEState.mEnabled !=
-                            IMEState::DISABLED);
-
-        // Ensure that opening the virtual keyboard is allowed for this specific
-        // InputContext depending on the content.ime.strict.policy pref
-        if (mInputContext.mIMEState.mEnabled != IMEState::PLUGIN &&
-            Preferences::GetBool("content.ime.strict_policy", false) &&
-            !aAction.ContentGotFocusByTrustedCause() &&
-            !aAction.UserMightRequestOpenVKB()) {
-            return;
-        }
-    }
-
-    if (aOpen) {
-        qApp->inputMethod()->show();
-    } else {
-        qApp->inputMethod()->hide();
-    }
-
-    return;
-}
-
-
-void
-nsWindow::ProcessMotionEvent()
-{
-    if (mMoveEvent.needDispatch) {
-        WidgetMouseEvent event(true, eMouseMove, this, WidgetMouseEvent::eReal);
-
-        event.mRefPoint.x = nscoord(mMoveEvent.pos.x());
-        event.mRefPoint.y = nscoord(mMoveEvent.pos.y());
-
-        event.InitBasicModifiers(mMoveEvent.modifiers & Qt::ControlModifier,
-                                 mMoveEvent.modifiers & Qt::AltModifier,
-                                 mMoveEvent.modifiers & Qt::ShiftModifier,
-                                 mMoveEvent.modifiers & Qt::MetaModifier);
-        event.mClickCount = 0;
-
-        DispatchEvent(&event);
-        mMoveEvent.needDispatch = false;
-    }
-
-    mTimerStarted = false;
-}
-
deleted file mode 100644
--- a/widget/qt/nsWindow.h
+++ /dev/null
@@ -1,331 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* vim:expandtab:shiftwidth=4:tabstop=4:
- */
-/* 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 __nsWindow_h__
-#define __nsWindow_h__
-
-#include <QPointF>
-
-#include "nsBaseWidget.h"
-#include "mozilla/EventForwards.h"
-
-#include "nsGkAtoms.h"
-#include "nsIIdleServiceInternal.h"
-#include "nsIRunnable.h"
-#include "nsThreadUtils.h"
-
-#ifdef MOZ_LOGGING
-
-#include "mozilla/Logging.h"
-#include "nsTArray.h"
-
-extern PRLogModuleInfo *gWidgetLog;
-extern PRLogModuleInfo *gWidgetFocusLog;
-extern PRLogModuleInfo *gWidgetIMLog;
-extern PRLogModuleInfo *gWidgetDrawLog;
-
-#define LOG(args) MOZ_LOG(gWidgetLog, mozilla::LogLevel::Debug, args)
-#define LOGFOCUS(args) MOZ_LOG(gWidgetFocusLog, mozilla::LogLevel::Debug, args)
-#define LOGIM(args) MOZ_LOG(gWidgetIMLog, mozilla::LogLevel::Debug, args)
-#define LOGDRAW(args) MOZ_LOG(gWidgetDrawLog, mozilla::LogLevel::Debug, args)
-
-#else
-
-#ifdef DEBUG_WIDGETS
-
-#define PR_LOG2(_args)         \
-    PR_BEGIN_MACRO             \
-      qDebug _args;            \
-    PR_END_MACRO
-
-#define LOG(args) PR_LOG2(args)
-#define LOGFOCUS(args) PR_LOG2(args)
-#define LOGIM(args) PR_LOG2(args)
-#define LOGDRAW(args) PR_LOG2(args)
-
-#else
-
-#define LOG(args)
-#define LOGFOCUS(args)
-#define LOGIM(args)
-#define LOGDRAW(args)
-
-#endif
-
-#endif /* MOZ_LOGGING */
-
-class QCloseEvent;
-class QFocusEvent;
-class QHideEvent;
-class QKeyEvent;
-class QMouseEvent;
-class QMoveEvent;
-class QResizeEvent;
-class QShowEvent;
-class QTabletEvent;
-class QTouchEvent;
-class QWheelEvent;
-
-namespace mozilla {
-namespace widget {
-class MozQWidget;
-class nsWindow : public nsBaseWidget
-{
-public:
-    nsWindow();
-
-    NS_DECL_ISUPPORTS_INHERITED
-
-    //
-    // nsIWidget
-    //
-    NS_IMETHOD Create(nsIWidget* aParent,
-                      nsNativeWidget aNativeParent,
-                      const LayoutDeviceIntRect& aRect,
-                      nsWidgetInitData* aInitData);
-    NS_IMETHOD Destroy(void);
-
-    NS_IMETHOD Show(bool aState);
-    virtual bool IsVisible() const;
-    NS_IMETHOD ConstrainPosition(bool aAllowSlop,
-                                 int32_t *aX,
-                                 int32_t *aY);
-    NS_IMETHOD Move(double aX,
-                    double aY);
-    NS_IMETHOD Resize(double aWidth,
-                      double aHeight,
-                      bool   aRepaint);
-    NS_IMETHOD Resize(double aX,
-                      double aY,
-                      double aWidth,
-                      double aHeight,
-                      bool   aRepaint);
-    NS_IMETHOD Enable(bool aState);
-    // Some of the nsIWidget methods
-    virtual bool IsEnabled() const;
-    NS_IMETHOD SetFocus(bool aRaise = false);
-    NS_IMETHOD ConfigureChildren(const nsTArray<nsIWidget::Configuration>&);
-    NS_IMETHOD         Invalidate(const LayoutDeviceIntRect& aRect);
-    virtual void*      GetNativeData(uint32_t aDataType);
-    NS_IMETHOD         SetTitle(const nsAString& aTitle);
-    NS_IMETHOD         SetCursor(nsCursor aCursor);
-    NS_IMETHOD         SetCursor(imgIContainer* aCursor,
-                                 uint32_t aHotspotX, uint32_t aHotspotY)
-    {
-        return NS_OK;
-    }
-    virtual LayoutDeviceIntPoint WidgetToScreenOffset();
-    NS_IMETHOD DispatchEvent(mozilla::WidgetGUIEvent* aEvent,
-                             nsEventStatus& aStatus);
-    NS_IMETHOD CaptureRollupEvents(nsIRollupListener *aListener,
-                                   bool aDoCapture)
-    {
-        return NS_ERROR_NOT_IMPLEMENTED;
-    }
-    NS_IMETHOD ReparentNativeWidget(nsIWidget* aNewParent);
-
-    NS_IMETHOD MakeFullScreen(bool aFullScreen, nsIScreen* aTargetScreen = nullptr);
-    virtual mozilla::layers::LayerManager*
-        GetLayerManager(PLayerTransactionChild* aShadowManager = nullptr,
-                        LayersBackend aBackendHint = mozilla::layers::LayersBackend::LAYERS_NONE,
-                        LayerManagerPersistence aPersistence = LAYER_MANAGER_CURRENT);
-
-    NS_IMETHOD_(void) SetInputContext(const InputContext& aContext,
-                                      const InputContextAction& aAction);
-    NS_IMETHOD_(InputContext) GetInputContext();
-
-    virtual uint32_t GetGLFrameBufferFormat() override;
-
-    already_AddRefed<mozilla::gfx::DrawTarget> StartRemoteDrawing() override;
-
-    // Widget notifications
-    virtual void OnPaint();
-    virtual nsEventStatus focusInEvent(QFocusEvent* aEvent);
-    virtual nsEventStatus focusOutEvent(QFocusEvent* aEvent);
-    virtual nsEventStatus hideEvent(QHideEvent* aEvent);
-    virtual nsEventStatus showEvent(QShowEvent* aEvent);
-    virtual nsEventStatus keyPressEvent(QKeyEvent* aEvent);
-    virtual nsEventStatus keyReleaseEvent(QKeyEvent* aEvent);
-    virtual nsEventStatus mouseDoubleClickEvent(QMouseEvent* aEvent);
-    virtual nsEventStatus mouseMoveEvent(QMouseEvent* aEvent);
-    virtual nsEventStatus mousePressEvent(QMouseEvent* aEvent);
-    virtual nsEventStatus mouseReleaseEvent(QMouseEvent* aEvent);
-    virtual nsEventStatus moveEvent(QMoveEvent* aEvent);
-    virtual nsEventStatus resizeEvent(QResizeEvent* aEvent);
-    virtual nsEventStatus touchEvent(QTouchEvent* aEvent);
-    virtual nsEventStatus wheelEvent(QWheelEvent* aEvent);
-    virtual nsEventStatus tabletEvent(QTabletEvent* event);
-
-protected:
-    virtual ~nsWindow();
-
-    nsWindow* mParent;
-    bool  mVisible;
-    InputContext mInputContext;
-    nsCOMPtr<nsIIdleServiceInternal> mIdleService;
-    MozQWidget* mWidget;
-
-private:
-    // event handling code
-    nsEventStatus DispatchEvent(mozilla::WidgetGUIEvent* aEvent);
-    void DispatchActivateEvent(void);
-    void DispatchDeactivateEvent(void);
-    void DispatchActivateEventOnTopLevelWindow(void);
-    void DispatchDeactivateEventOnTopLevelWindow(void);
-    void DispatchResizeEvent(LayoutDeviceIntRect &aRect,
-                             nsEventStatus &aStatus);
-
-    // Remember the last sizemode so that we can restore it when
-    // leaving fullscreen
-    nsSizeMode mLastSizeMode;
-    // is this widget enabled?
-    bool mEnabled;
-
-    // Call this function when the users activity is the direct cause of an
-    // event (like a keypress or mouse click).
-    void UserActivity();
-    MozQWidget* createQWidget(MozQWidget* parent,
-                              nsWidgetInitData* aInitData);
-
-public:
-    // Old QtWidget only
-    NS_IMETHOD         SetParent(nsIWidget* aNewParent);
-    virtual nsIWidget *GetParent(void);
-    virtual float      GetDPI();
-    NS_IMETHOD         SetModal(bool aModal);
-    NS_IMETHOD         PlaceBehind(nsTopLevelWidgetZPlacement  aPlacement,
-                                   nsIWidget                  *aWidget,
-                                   bool                        aActivate);
-    NS_IMETHOD         SetSizeMode(nsSizeMode aMode);
-    NS_IMETHOD         GetScreenBounds(LayoutDeviceIntRect& aRect) override;
-    NS_IMETHOD         SetHasTransparentBackground(bool aTransparent);
-    NS_IMETHOD         GetHasTransparentBackground(bool& aTransparent);
-    NS_IMETHOD         HideWindowChrome(bool aShouldHide);
-    NS_IMETHOD         SetIcon(const nsAString& aIconSpec);
-    NS_IMETHOD         CaptureMouse(bool aCapture);
-    NS_IMETHOD         SetWindowClass(const nsAString& xulWinType);
-    NS_IMETHOD         GetAttention(int32_t aCycleCount);
-    NS_IMETHOD_(bool)  HasGLContext();
-
-    //
-    // utility methods
-    //
-    void               QWidgetDestroyed();
-    // called when we are destroyed
-    void OnDestroy(void);
-    // called to check and see if a widget's dimensions are sane
-    bool AreBoundsSane(void);
-private:
-    // Is this a toplevel window?
-    bool                mIsTopLevel;
-    // Has this widget been destroyed yet?
-    bool                mIsDestroyed;
-    // This flag tracks if we're hidden or shown.
-    bool                mIsShown;
-    // Has anyone set an x/y location for this widget yet? Toplevels
-    // shouldn't be automatically set to 0,0 for first show.
-    bool                mPlaced;
-    /**
-     * Event handlers (proxied from the actual qwidget).
-     * They follow normal Qt widget semantics.
-     */
-    void Initialize(MozQWidget *widget);
-    virtual nsEventStatus OnCloseEvent(QCloseEvent *);
-    void               NativeResize(int32_t aWidth,
-                                    int32_t aHeight,
-                                    bool    aRepaint);
-    void               NativeResize(int32_t aX,
-                                    int32_t aY,
-                                    int32_t aWidth,
-                                    int32_t aHeight,
-                                    bool    aRepaint);
-    void               NativeShow  (bool    aAction);
-
-private:
-    typedef struct {
-        QPointF pos;
-        Qt::KeyboardModifiers modifiers;
-        bool needDispatch;
-    } MozCachedMoveEvent;
-
-    nsIWidgetListener* GetPaintListener();
-    bool               CheckForRollup(double aMouseX, double aMouseY, bool aIsWheel);
-    void*              SetupPluginPort(void);
-    nsresult           SetWindowIconList(const nsTArray<nsCString> &aIconList);
-    void               SetDefaultIcon(void);
-
-    nsEventStatus      DispatchCommandEvent(nsIAtom* aCommand);
-    nsEventStatus      DispatchContentCommandEvent(mozilla::EventMessage aMsg);
-    void               SetSoftwareKeyboardState(bool aOpen, const InputContextAction& aAction);
-    void               ClearCachedResources();
-
-    uint32_t           mActivatePending : 1;
-    int32_t            mSizeState;
-
-    bool         mIsTransparent;
-
-    // all of our DND stuff
-    // this is the last window that had a drag event happen on it.
-    void   InitDragEvent(mozilla::WidgetMouseEvent& aEvent);
-
-    // this is everything we need to be able to fire motion events
-    // repeatedly
-    uint32_t mKeyDownFlags[8];
-
-    /* Helper methods for DOM Key Down event suppression. */
-    uint32_t* GetFlagWord32(uint32_t aKeyCode, uint32_t* aMask) {
-        /* Mozilla DOM Virtual Key Code is from 0 to 224. */
-        NS_ASSERTION((aKeyCode <= 0xFF), "Invalid DOM Key Code");
-        aKeyCode &= 0xFF;
-
-        /* 32 = 2^5 = 0x20 */
-        *aMask = uint32_t(1) << (aKeyCode & 0x1F);
-        return &mKeyDownFlags[(aKeyCode >> 5)];
-    }
-
-    bool IsKeyDown(uint32_t aKeyCode) {
-        uint32_t mask;
-        uint32_t* flag = GetFlagWord32(aKeyCode, &mask);
-        return ((*flag) & mask) != 0;
-    }
-
-    void SetKeyDownFlag(uint32_t aKeyCode) {
-        uint32_t mask;
-        uint32_t* flag = GetFlagWord32(aKeyCode, &mask);
-        *flag |= mask;
-    }
-
-    void ClearKeyDownFlag(uint32_t aKeyCode) {
-        uint32_t mask;
-        uint32_t* flag = GetFlagWord32(aKeyCode, &mask);
-        *flag &= ~mask;
-    }
-    int32_t mQCursor;
-
-
-    void ProcessMotionEvent();
-
-    void DispatchMotionToMainThread() {
-        if (!mTimerStarted) {
-            nsCOMPtr<nsIRunnable> event =
-                mozilla::NewRunnableMethod(this, &nsWindow::ProcessMotionEvent);
-            NS_DispatchToMainThread(event);
-            mTimerStarted = true;
-        }
-    }
-
-    bool mNeedsResize;
-    bool mNeedsMove;
-    bool mListenForResizes;
-    bool mNeedsShow;
-    MozCachedMoveEvent mMoveEvent;
-    bool mTimerStarted;
-};
-
-}}
-
-#endif /* __nsWindow_h__ */