summarylogtreecommitdiffstats
path: root/unity-menubar.patch
diff options
context:
space:
mode:
authorBjörn Bidar2017-10-05 19:58:55 +0200
committerBjörn Bidar2017-10-05 19:58:55 +0200
commit5671eeee441507eb020fd130bbfb2f20d4abdc60 (patch)
tree23470d08733cb9e12bcf79b9ba26ac4fda35e3f9 /unity-menubar.patch
parent378abb09d557e1418bd54e9f44640d8247966f0e (diff)
downloadaur-5671eeee441507eb020fd130bbfb2f20d4abdc60.tar.gz
upkg
Diffstat (limited to 'unity-menubar.patch')
-rw-r--r--unity-menubar.patch423
1 files changed, 193 insertions, 230 deletions
diff --git a/unity-menubar.patch b/unity-menubar.patch
index 19a2725d7ff4..e4e7019745a5 100644
--- a/unity-menubar.patch
+++ b/unity-menubar.patch
@@ -1,15 +1,6 @@
-# HG changeset patch
-# User Chris Coulson <chrisccoulson@ubuntu.com>
-# Date 1493156926 -3600
-# Tue Apr 25 22:48:46 2017 +0100
-# Node ID 1118c162780db83e59e47be621c5360099df1d46
-# Parent 3f0c8da53c5cb015933b10b52ded3f30432b378a
-Add Unity menubar support
-
-Index: firefox-trunk-55.0~a1~hg20170510r357490/browser/base/content/browser-menubar.inc
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/browser/base/content/browser-menubar.inc
-+++ firefox-trunk-55.0~a1~hg20170510r357490/browser/base/content/browser-menubar.inc
+diff --git a/browser/base/content/browser-menubar.inc b/browser/base/content/browser-menubar.inc
+--- a/browser/base/content/browser-menubar.inc
++++ b/browser/base/content/browser-menubar.inc
@@ -5,7 +5,11 @@
<menubar id="main-menubar"
@@ -22,11 +13,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/browser/base/content/browser-menu
this.setAttribute('openedwithkey',
event.target.parentNode.openedWithKey);"
style="border:0px;padding:0px;margin:0px;-moz-appearance:none">
-Index: firefox-trunk-55.0~a1~hg20170510r357490/browser/base/content/browser.js
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/browser/base/content/browser.js
-+++ firefox-trunk-55.0~a1~hg20170510r357490/browser/base/content/browser.js
-@@ -5335,6 +5335,8 @@
+diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
+--- a/browser/base/content/browser.js
++++ b/browser/base/content/browser.js
+@@ -5401,6 +5401,8 @@ function getTogglableToolbars() {
let toolbarNodes = Array.slice(gNavToolbox.childNodes);
toolbarNodes = toolbarNodes.concat(gNavToolbox.externalToolbars);
toolbarNodes = toolbarNodes.filter(node => node.getAttribute("toolbarname"));
@@ -35,10 +25,9 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/browser/base/content/browser.js
return toolbarNodes;
}
-Index: firefox-trunk-55.0~a1~hg20170510r357490/browser/components/places/content/places.xul
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/browser/components/places/content/places.xul
-+++ firefox-trunk-55.0~a1~hg20170510r357490/browser/components/places/content/places.xul
+diff --git a/browser/components/places/content/places.xul b/browser/components/places/content/places.xul
+--- a/browser/components/places/content/places.xul
++++ b/browser/components/places/content/places.xul
@@ -155,7 +155,7 @@
<toolbarbutton type="menu" class="tabbable"
onpopupshowing="document.getElementById('placeContent').focus()"
@@ -48,11 +37,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/browser/components/places/content
<menu accesskey="&organize.accesskey;" class="menu-iconic"
#endif
id="organizeButton" label="&organize.label;"
-Index: firefox-trunk-55.0~a1~hg20170510r357490/layout/build/moz.build
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/layout/build/moz.build
-+++ firefox-trunk-55.0~a1~hg20170510r357490/layout/build/moz.build
-@@ -74,6 +74,10 @@
+diff --git a/layout/build/moz.build b/layout/build/moz.build
+--- a/layout/build/moz.build
++++ b/layout/build/moz.build
+@@ -74,6 +74,10 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'an
'/dom/system',
'/dom/system/android',
]
@@ -63,11 +51,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/layout/build/moz.build
if CONFIG['MOZ_WEBSPEECH']:
LOCAL_INCLUDES += [
-Index: firefox-trunk-55.0~a1~hg20170510r357490/layout/build/nsLayoutStatics.cpp
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/layout/build/nsLayoutStatics.cpp
-+++ firefox-trunk-55.0~a1~hg20170510r357490/layout/build/nsLayoutStatics.cpp
-@@ -129,6 +129,10 @@
+diff --git a/layout/build/nsLayoutStatics.cpp b/layout/build/nsLayoutStatics.cpp
+--- a/layout/build/nsLayoutStatics.cpp
++++ b/layout/build/nsLayoutStatics.cpp
+@@ -126,6 +126,10 @@
#include "mozilla/dom/ipc/IPCBlobInputStreamStorage.h"
#include "mozilla/dom/U2FTokenManager.h"
@@ -78,7 +65,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/layout/build/nsLayoutStatics.cpp
using namespace mozilla;
using namespace mozilla::net;
using namespace mozilla::dom;
-@@ -161,6 +165,9 @@
+@@ -158,6 +162,9 @@ nsLayoutStatics::Initialize()
nsTextServicesDocument::RegisterAtoms();
nsHTMLTags::RegisterAtoms();
nsRDFAtoms::RegisterAtoms();
@@ -88,11 +75,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/layout/build/nsLayoutStatics.cpp
NS_SealStaticAtomTable();
-Index: firefox-trunk-55.0~a1~hg20170510r357490/modules/libpref/init/all.js
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/modules/libpref/init/all.js
-+++ firefox-trunk-55.0~a1~hg20170510r357490/modules/libpref/init/all.js
-@@ -214,6 +214,9 @@
+diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
+--- a/modules/libpref/init/all.js
++++ b/modules/libpref/init/all.js
+@@ -242,6 +242,9 @@ pref("dom.script_loader.bytecode_cache.s
pref("browser.sessionhistory.max_total_viewers", -1);
pref("ui.use_native_colors", true);
@@ -102,10 +88,9 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/modules/libpref/init/all.js
pref("ui.click_hold_context_menus", false);
// Duration of timeout of incremental search in menus (ms). 0 means infinite.
pref("ui.menu.incremental_search.timeout", 1000);
-Index: firefox-trunk-55.0~a1~hg20170510r357490/toolkit/content/widgets/popup.xml
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/toolkit/content/widgets/popup.xml
-+++ firefox-trunk-55.0~a1~hg20170510r357490/toolkit/content/widgets/popup.xml
+diff --git a/toolkit/content/widgets/popup.xml b/toolkit/content/widgets/popup.xml
+--- a/toolkit/content/widgets/popup.xml
++++ b/toolkit/content/widgets/popup.xml
@@ -27,8 +27,14 @@
</getter>
</property>
@@ -123,11 +108,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/toolkit/content/widgets/popup.xml
<property name="triggerNode" readonly="true"
onget="return this.popupBoxObject.triggerNode"/>
-Index: firefox-trunk-55.0~a1~hg20170510r357490/toolkit/content/xul.css
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/toolkit/content/xul.css
-+++ firefox-trunk-55.0~a1~hg20170510r357490/toolkit/content/xul.css
-@@ -324,6 +324,18 @@
+diff --git a/toolkit/content/xul.css b/toolkit/content/xul.css
+--- a/toolkit/content/xul.css
++++ b/toolkit/content/xul.css
+@@ -319,6 +319,18 @@ toolbar[type="menubar"][autohide="true"]
}
%endif
@@ -146,11 +130,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/toolkit/content/xul.css
toolbarseparator {
-moz-binding: url("chrome://global/content/bindings/toolbar.xml#toolbardecoration");
}
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/moz.build
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/widget/gtk/moz.build
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/moz.build
-@@ -27,10 +27,18 @@
+diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
+--- a/widget/gtk/moz.build
++++ b/widget/gtk/moz.build
+@@ -33,10 +33,18 @@ UNIFIED_SOURCES += [
'nsAppShell.cpp',
'nsBidiKeyboard.cpp',
'nsColorPicker.cpp',
@@ -169,7 +152,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/moz.build
'nsNativeThemeGTK.cpp',
'nsSound.cpp',
'nsToolkit.cpp',
-@@ -42,6 +50,8 @@
+@@ -48,6 +56,8 @@ UNIFIED_SOURCES += [
]
SOURCES += [
@@ -178,7 +161,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/moz.build
'nsWindow.cpp', # conflicts with X11 headers
]
-@@ -106,6 +116,7 @@
+@@ -112,6 +122,7 @@ FINAL_LIBRARY = 'xul'
LOCAL_INCLUDES += [
'/layout/generic',
@@ -186,10 +169,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/moz.build
'/layout/xul',
'/other-licenses/atk-1.0',
'/widget',
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsDbusmenu.cpp
-===================================================================
+diff --git a/widget/gtk/nsDbusmenu.cpp b/widget/gtk/nsDbusmenu.cpp
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsDbusmenu.cpp
++++ b/widget/gtk/nsDbusmenu.cpp
@@ -0,0 +1,63 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -254,10 +237,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsDbusmenu.cpp
+
+ return NS_OK;
+}
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsDbusmenu.h
-===================================================================
+diff --git a/widget/gtk/nsDbusmenu.h b/widget/gtk/nsDbusmenu.h
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsDbusmenu.h
++++ b/widget/gtk/nsDbusmenu.h
@@ -0,0 +1,101 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -360,11 +343,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsDbusmenu.h
+#define dbusmenu_menuitem_property_set_shortcut nsDbusmenuFunctions::s_dbusmenu_menuitem_property_set_shortcut
+
+#endif /* __nsDbusmenu_h__ */
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp
-===================================================================
+diff --git a/widget/gtk/nsMenu.cpp b/widget/gtk/nsMenu.cpp
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp
-@@ -0,0 +1,842 @@
++++ b/widget/gtk/nsMenu.cpp
+@@ -0,0 +1,858 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
+ */
@@ -376,9 +359,14 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp
+
+#include "mozilla/dom/Element.h"
+#include "mozilla/Assertions.h"
++#include "mozilla/EventDispatcher.h"
++#include "mozilla/GeckoStyleContext.h"
+#include "mozilla/GuardObjects.h"
+#include "mozilla/MouseEvents.h"
+#include "mozilla/Move.h"
++#include "mozilla/ServoStyleContext.h"
++#include "mozilla/ServoStyleSet.h"
++#include "mozilla/ServoTypes.h"
+#include "mozilla/StyleSetHandleInlines.h"
+#include "nsAutoPtr.h"
+#include "nsBindingManager.h"
@@ -395,6 +383,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp
+#include "nsITimer.h"
+#include "nsString.h"
+#include "nsStyleContext.h"
++#include "nsStyleContextInlines.h"
+#include "nsStyleSet.h"
+#include "nsStyleStruct.h"
+#include "nsThreadUtils.h"
@@ -417,6 +406,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp
+ nsIContent *aContainer,
+ nsIContent *aChild,
+ nsIContent *aPrevSibling) :
++ Runnable("nsMenuContentInsertedEvent"),
+ mWeakMenu(aMenu),
+ mContainer(aContainer),
+ mChild(aChild),
@@ -448,6 +438,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp
+ nsMenuContentRemovedEvent(nsMenu *aMenu,
+ nsIContent *aContainer,
+ nsIContent *aChild) :
++ Runnable("nsMenuContentRemovedEvent"),
+ mWeakMenu(aMenu),
+ mContainer(aContainer),
+ mChild(aChild) { }
@@ -478,7 +469,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp
+ }
+
+ WidgetMouseEvent event(true, aMsg, nullptr, WidgetMouseEvent::eReal);
-+ aTarget->DispatchDOMEvent(&event, nullptr, nullptr, nullptr);
++ EventDispatcher::Dispatch(aTarget, nullptr, &event);
+}
+
+static void
@@ -490,9 +481,16 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp
+ return;
+ }
+
-+ RefPtr<nsStyleContext> sc =
-+ shell->StyleSet()->AsGecko()->ResolveStyleFor(aContent->AsElement(),
-+ nullptr);
++ RefPtr<nsStyleContext> sc;
++ if (shell->StyleSet()->IsGecko()) {
++ sc = shell->StyleSet()->AsGecko()->ResolveStyleFor(aContent->AsElement(),
++ nullptr);
++ } else {
++ sc = shell->StyleSet()->AsServo()->ResolveStyleFor(aContent->AsElement(),
++ nullptr,
++ LazyComputeBehavior::Allow);
++ }
++
+ if (!sc) {
+ return;
+ }
@@ -1167,10 +1165,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp
+ return;
+ }
+
-+ if (NS_FAILED(mOpenDelayTimer->InitWithFuncCallback(DoOpenCallback,
-+ this,
-+ 100,
-+ nsITimer::TYPE_ONE_SHOT))) {
++ if (NS_FAILED(mOpenDelayTimer->InitWithNamedFuncCallback(DoOpenCallback,
++ this,
++ 100,
++ nsITimer::TYPE_ONE_SHOT,
++ "nsMenu::DoOpenCallback"))) {
+ mOpenDelayTimer = nullptr;
+ }
+}
@@ -1207,10 +1206,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.cpp
+ ContentNode()->UnsetAttr(kNameSpaceID_None, nsGkAtoms::open, true);
+}
+
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.h
-===================================================================
+diff --git a/widget/gtk/nsMenu.h b/widget/gtk/nsMenu.h
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.h
++++ b/widget/gtk/nsMenu.h
@@ -0,0 +1,124 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -1336,11 +1335,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenu.h
+};
+
+#endif /* __nsMenu_h__ */
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.cpp
-===================================================================
+diff --git a/widget/gtk/nsMenuBar.cpp b/widget/gtk/nsMenuBar.cpp
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.cpp
-@@ -0,0 +1,572 @@
++++ b/widget/gtk/nsMenuBar.cpp
+@@ -0,0 +1,576 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
+ */
@@ -1398,6 +1397,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.cpp
+ nsMenuBarContentInsertedEvent(nsMenuBar *aMenuBar,
+ nsIContent *aChild,
+ nsIContent *aPrevSibling) :
++ Runnable("nsMenuBarContentInsertedEvent"),
+ mWeakMenuBar(aMenuBar),
+ mChild(aChild),
+ mPrevSibling(aPrevSibling) { }
@@ -1425,6 +1425,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.cpp
+public:
+ nsMenuBarContentRemovedEvent(nsMenuBar *aMenuBar,
+ nsIContent *aChild) :
++ Runnable("nsMenuBarContentRemovedEvent"),
+ mWeakMenuBar(aMenuBar),
+ mChild(aChild) { }
+
@@ -1853,12 +1854,14 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.cpp
+ return static_cast<uint32_t>(GDK_WINDOW_XID(gtk_widget_get_window(mTopLevel)));
+}
+
-+nsAdoptingCString
++nsCString
+nsMenuBar::ObjectPath() const
+{
+ gchar *tmp;
+ g_object_get(mServer, DBUSMENU_SERVER_PROP_DBUS_OBJECT, &tmp, NULL);
-+ nsAdoptingCString result(tmp);
++
++ nsCString result;
++ result.Adopt(tmp);
+
+ return result;
+}
@@ -1913,10 +1916,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.cpp
+ DocListener()->Stop();
+ DisconnectDocumentEventListeners();
+}
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.h
-===================================================================
+diff --git a/widget/gtk/nsMenuBar.h b/widget/gtk/nsMenuBar.h
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.h
++++ b/widget/gtk/nsMenuBar.h
@@ -0,0 +1,107 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -1969,7 +1972,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.h
+ uint32_t WindowId() const;
+
+ // Get the object path for this menubar
-+ nsAdoptingCString ObjectPath() const;
++ nsCString ObjectPath() const;
+
+ // Get the top-level GtkWindow handle
+ GtkWidget* TopLevelWindow() { return mTopLevel; }
@@ -2025,10 +2028,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuBar.h
+};
+
+#endif /* __nsMenuBar_h__ */
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuContainer.cpp
-===================================================================
+diff --git a/widget/gtk/nsMenuContainer.cpp b/widget/gtk/nsMenuContainer.cpp
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuContainer.cpp
++++ b/widget/gtk/nsMenuContainer.cpp
@@ -0,0 +1,172 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -2202,10 +2205,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuContainer.cpp
+
+ return aContent;
+}
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuContainer.h
-===================================================================
+diff --git a/widget/gtk/nsMenuContainer.h b/widget/gtk/nsMenuContainer.h
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuContainer.h
++++ b/widget/gtk/nsMenuContainer.h
@@ -0,0 +1,70 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -2277,11 +2280,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuContainer.h
+};
+
+#endif /* __nsMenuContainer_h__ */
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.cpp
-===================================================================
+diff --git a/widget/gtk/nsMenuItem.cpp b/widget/gtk/nsMenuItem.cpp
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.cpp
-@@ -0,0 +1,736 @@
++++ b/widget/gtk/nsMenuItem.cpp
+@@ -0,0 +1,737 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
+ */
@@ -2591,6 +2594,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.cpp
+ }
+
+ nsMenuItemUncheckSiblingsRunnable(nsMenuItem *aMenuItem) :
++ Runnable("nsMenuItemUncheckSiblingsRunnable"),
+ mMenuItem(aMenuItem) { };
+
+private:
@@ -2645,7 +2649,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.cpp
+ if (command) {
+ command->InitCommandEvent(NS_LITERAL_STRING("command"),
+ true, true, doc->GetInnerWindow(), 0,
-+ false, false, false, false, nullptr);
++ false, false, false, false, nullptr, 0);
+
+ event->SetTrusted(true);
+ bool dummy;
@@ -3018,10 +3022,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.cpp
+{
+ return eType_MenuItem;
+}
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.h
-===================================================================
+diff --git a/widget/gtk/nsMenuItem.h b/widget/gtk/nsMenuItem.h
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.h
++++ b/widget/gtk/nsMenuItem.h
@@ -0,0 +1,81 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -3104,11 +3108,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuItem.h
+};
+
+#endif /* __nsMenuItem_h__ */
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.cpp
-===================================================================
+diff --git a/widget/gtk/nsMenuObject.cpp b/widget/gtk/nsMenuObject.cpp
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.cpp
-@@ -0,0 +1,665 @@
++++ b/widget/gtk/nsMenuObject.cpp
+@@ -0,0 +1,666 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
+ */
@@ -3340,7 +3344,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.cpp
+
+ if (imageRequest) {
+ mImageRect = imageRect;
-+ imageRequest->Clone(this, getter_AddRefs(mImageRequest));
++ imageRequest->Clone(this, nullptr, getter_AddRefs(mImageRequest));
+ } else {
+ mImageRect.SetEmpty();
+ nsCOMPtr<nsILoadGroup> loadGroup = doc->GetDocumentLoadGroup();
@@ -3393,10 +3397,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.cpp
+{
+ static char16_t sBuf[4] = { 0, 0, 0, 0 };
+ if (!sBuf[0]) {
-+ nsAdoptingString ellipsis = Preferences::GetLocalizedString("intl.ellipsis");
++ nsString ellipsis;
++ Preferences::GetLocalizedString("intl.ellipsis", ellipsis);
+ if (!ellipsis.IsEmpty()) {
+ uint32_t l = ellipsis.Length();
-+ const nsAdoptingString::char_type *c = ellipsis.BeginReading();
++ const nsString::char_type *c = ellipsis.BeginReading();
+ uint32_t i = 0;
+ while (i < 3 && i < l) {
+ sBuf[i++] = *(c++);
@@ -3774,10 +3779,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.cpp
+ weak = weak->mPrev;
+ }
+}
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.h
-===================================================================
+diff --git a/widget/gtk/nsMenuObject.h b/widget/gtk/nsMenuObject.h
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.h
++++ b/widget/gtk/nsMenuObject.h
@@ -0,0 +1,170 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -3949,10 +3954,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuObject.h
+};
+
+#endif /* __nsMenuObject_h__ */
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuSeparator.cpp
-===================================================================
+diff --git a/widget/gtk/nsMenuSeparator.cpp b/widget/gtk/nsMenuSeparator.cpp
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuSeparator.cpp
++++ b/widget/gtk/nsMenuSeparator.cpp
@@ -0,0 +1,85 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -4039,10 +4044,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuSeparator.cpp
+{
+ return eType_MenuItem;
+}
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuSeparator.h
-===================================================================
+diff --git a/widget/gtk/nsMenuSeparator.h b/widget/gtk/nsMenuSeparator.h
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuSeparator.h
++++ b/widget/gtk/nsMenuSeparator.h
@@ -0,0 +1,37 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -4081,10 +4086,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsMenuSeparator.h
+};
+
+#endif /* __nsMenuSeparator_h__ */
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtomList.h
-===================================================================
+diff --git a/widget/gtk/nsNativeMenuAtomList.h b/widget/gtk/nsNativeMenuAtomList.h
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtomList.h
++++ b/widget/gtk/nsNativeMenuAtomList.h
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -4098,10 +4103,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtomList.h
+WIDGET_ATOM2(_moz_nativemenupopupstate, "_moz-nativemenupopupstate")
+WIDGET_ATOM(openedwithkey)
+WIDGET_ATOM(shellshowingmenubar)
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtoms.cpp
-===================================================================
+diff --git a/widget/gtk/nsNativeMenuAtoms.cpp b/widget/gtk/nsNativeMenuAtoms.cpp
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtoms.cpp
++++ b/widget/gtk/nsNativeMenuAtoms.cpp
@@ -0,0 +1,39 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -4142,10 +4147,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtoms.cpp
+{
+ NS_RegisterStaticAtoms(gAtoms);
+}
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtoms.h
-===================================================================
+diff --git a/widget/gtk/nsNativeMenuAtoms.h b/widget/gtk/nsNativeMenuAtoms.h
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtoms.h
++++ b/widget/gtk/nsNativeMenuAtoms.h
@@ -0,0 +1,27 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -4174,10 +4179,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuAtoms.h
+};
+
+#endif /* __nsNativeMenuAtoms_h__ */
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuDocListener.cpp
-===================================================================
+diff --git a/widget/gtk/nsNativeMenuDocListener.cpp b/widget/gtk/nsNativeMenuDocListener.cpp
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuDocListener.cpp
++++ b/widget/gtk/nsNativeMenuDocListener.cpp
@@ -0,0 +1,350 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -4529,10 +4534,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuDocListene
+ CancelFlush(this);
+ mPendingMutations.Clear();
+}
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuDocListener.h
-===================================================================
+diff --git a/widget/gtk/nsNativeMenuDocListener.h b/widget/gtk/nsNativeMenuDocListener.h
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuDocListener.h
++++ b/widget/gtk/nsNativeMenuDocListener.h
@@ -0,0 +1,152 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
@@ -4686,11 +4691,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuDocListene
+};
+
+#endif /* __nsNativeMenuDocListener_h__ */
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cpp
-===================================================================
+diff --git a/widget/gtk/nsNativeMenuService.cpp b/widget/gtk/nsNativeMenuService.cpp
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cpp
-@@ -0,0 +1,541 @@
++++ b/widget/gtk/nsNativeMenuService.cpp
+@@ -0,0 +1,508 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
+ */
@@ -4701,18 +4706,15 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp
+#include "mozilla/Assertions.h"
+#include "mozilla/Move.h"
+#include "mozilla/Preferences.h"
-+#include "mozilla/Services.h"
+#include "mozilla/UniquePtr.h"
+#include "nsAutoPtr.h"
+#include "nsCOMPtr.h"
+#include "nsCRT.h"
+#include "nsGtkUtils.h"
+#include "nsIContent.h"
-+#include "nsIObserverService.h"
+#include "nsIWidget.h"
+#include "nsServiceManagerUtils.h"
+#include "nsWindow.h"
-+#include "nsXPCOM.h"
+#include "prlink.h"
+
+#include "nsDbusmenu.h"
@@ -4729,7 +4731,6 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp
+using namespace mozilla;
+
+nsNativeMenuService* nsNativeMenuService::sService = nullptr;
-+bool nsNativeMenuService::sShutdown = false;
+
+extern PangoLayout* gPangoLayout;
+extern nsNativeMenuDocListenerTArray* gPendingListeners;
@@ -4822,7 +4823,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp
+ return NS_OK;
+}
+
-+NS_IMPL_ISUPPORTS(nsNativeMenuService, nsINativeMenuService, nsIObserver)
++NS_IMPL_ISUPPORTS(nsNativeMenuService, nsINativeMenuService)
+
+nsNativeMenuService::nsNativeMenuService() :
+ mCreateProxyCancellable(nullptr), mDbusProxy(nullptr), mOnline(false)
@@ -4862,6 +4863,9 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp
+ g_object_unref(gPangoLayout);
+ gPangoLayout = nullptr;
+ }
++
++ MOZ_ASSERT(sService == this);
++ sService = nullptr;
+}
+
+nsresult
@@ -4906,23 +4910,17 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp
+ SetOnline(true);
+ }
+
-+ nsCOMPtr<nsIObserverService> os = services::GetObserverService();
-+ if (os) {
-+ os->AddObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID, false);
-+ }
-+
+ return NS_OK;
+}
+
+/* static */ void
+nsNativeMenuService::EnsureInitialized()
+{
-+ if (!sService) {
-+ nsCOMPtr<nsINativeMenuService> service =
-+ do_GetService("@mozilla.org/widget/nativemenuservice;1");
++ if (sService) {
++ return;
+ }
-+ MOZ_ASSERT(sService != nullptr || sShutdown == true,
-+ "Failed to create native menu service");
++ nsCOMPtr<nsINativeMenuService> service =
++ do_GetService("@mozilla.org/widget/nativemenuservice;1");
+}
+
+void
@@ -4964,7 +4962,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp
+ }
+
+ uint32_t xid = aMenuBar->WindowId();
-+ nsAdoptingCString path = aMenuBar->ObjectPath();
++ nsCString path = aMenuBar->ObjectPath();
+ if (xid == 0 || path.IsEmpty()) {
+ NS_WARNING("Menubar has invalid XID or object path");
+ return;
@@ -5009,14 +5007,15 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp
+
+ // We need this check because we can't assume that GDBus cancellation
+ // is reliable (see https://launchpad.net/bugs/953562)
-+ if (sShutdown) {
++ nsNativeMenuService *self = nsNativeMenuService::GetSingleton();
++ if (!self) {
+ if (proxy) {
+ g_object_unref(proxy);
+ }
+ return;
+ }
+
-+ nsNativeMenuService::GetSingleton()->OnProxyCreated(proxy);
++ self->OnProxyCreated(proxy);
+}
+
+/* static */ void
@@ -5044,12 +5043,12 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp
+ g_error_free(error);
+ }
+
-+ if (sShutdown) {
++ nsNativeMenuService *self = nsNativeMenuService::GetSingleton();
++ if (!self) {
+ return;
+ }
+
-+ nsNativeMenuService::GetSingleton()->OnNativeMenuBarRegistered(menuBar,
-+ success);
++ self->OnNativeMenuBarRegistered(menuBar, success);
+}
+
+/* static */ gboolean
@@ -5128,23 +5127,6 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp
+}
+
+NS_IMETHODIMP
-+nsNativeMenuService::Observe(nsISupports *aSubject,
-+ const char *aTopic,
-+ const char16_t *aData)
-+{
-+ if (!nsCRT::strcmp(NS_XPCOM_SHUTDOWN_OBSERVER_ID, aTopic)) {
-+ sShutdown = true;
-+ nsCOMPtr<nsIObserverService> os = services::GetObserverService();
-+ if (os) {
-+ os->RemoveObserver(sService, NS_XPCOM_SHUTDOWN_OBSERVER_ID);
-+ }
-+ NS_IF_RELEASE(sService);
-+ }
-+
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
+nsNativeMenuService::CreateNativeMenuBar(nsIWidget *aParent,
+ nsIContent *aMenuBarNode)
+{
@@ -5181,7 +5163,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp
+}
+
+/* static */ already_AddRefed<nsNativeMenuService>
-+nsNativeMenuService::GetInstance()
++nsNativeMenuService::GetInstanceForServiceManager()
+{
+ RefPtr<nsNativeMenuService> service(sService);
+
@@ -5189,23 +5171,13 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp
+ return service.forget();
+ }
+
-+ MOZ_ASSERT(sShutdown == false,
-+ "Attempted to access menubar service too late");
-+
-+ if (sShutdown) {
-+ return nullptr;
-+ }
-+
-+ sService = new nsNativeMenuService();
-+ NS_ADDREF(sService);
++ service = new nsNativeMenuService();
+
-+ if (NS_FAILED(sService->Init())) {
-+ NS_RELEASE(sService);
-+ sService = nullptr;
++ if (NS_FAILED(service->Init())) {
+ return nullptr;
+ }
+
-+ service = sService;
++ sService = service.get();
+ return service.forget();
+}
+
@@ -5232,11 +5204,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.cp
+ g_object_unref(cancellable);
+ }
+}
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.h
-===================================================================
+diff --git a/widget/gtk/nsNativeMenuService.h b/widget/gtk/nsNativeMenuService.h
+new file mode 100644
--- /dev/null
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.h
-@@ -0,0 +1,87 @@
++++ b/widget/gtk/nsNativeMenuService.h
+@@ -0,0 +1,84 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
+ */
@@ -5251,7 +5223,6 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.h
+#include "nsCOMPtr.h"
+#include "nsDataHashtable.h"
+#include "nsINativeMenuService.h"
-+#include "nsIObserver.h"
+#include "nsTArray.h"
+
+#include <gdk/gdk.h>
@@ -5269,17 +5240,15 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.h
+ * needs to. The menubar is responsible for notifying the service when the last
+ * reference to it is dropped.
+ */
-+class nsNativeMenuService final : public nsINativeMenuService,
-+ public nsIObserver
++class nsNativeMenuService final : public nsINativeMenuService
+{
+public:
+ NS_DECL_ISUPPORTS
-+ NS_DECL_NSIOBSERVER
+
+ NS_IMETHOD CreateNativeMenuBar(nsIWidget* aParent, nsIContent* aMenuBarNode) override;
+
+ // Returns the singleton addref'd for the service manager
-+ static already_AddRefed<nsNativeMenuService> GetInstance();
++ static already_AddRefed<nsNativeMenuService> GetInstanceForServiceManager();
+
+ // Returns the singleton without increasing the reference count
+ static nsNativeMenuService* GetSingleton();
@@ -5324,11 +5293,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeMenuService.h
+};
+
+#endif /* __nsNativeMenuService_h__ */
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeThemeGTK.cpp
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/widget/gtk/nsNativeThemeGTK.cpp
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeThemeGTK.cpp
-@@ -52,6 +52,7 @@
+diff --git a/widget/gtk/nsNativeThemeGTK.cpp b/widget/gtk/nsNativeThemeGTK.cpp
+--- a/widget/gtk/nsNativeThemeGTK.cpp
++++ b/widget/gtk/nsNativeThemeGTK.cpp
+@@ -51,6 +51,7 @@
using namespace mozilla;
using namespace mozilla::gfx;
@@ -5336,10 +5304,9 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsNativeThemeGTK.cpp
NS_IMPL_ISUPPORTS_INHERITED(nsNativeThemeGTK, nsNativeTheme, nsITheme,
nsIObserver)
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWidgetFactory.cpp
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/widget/gtk/nsWidgetFactory.cpp
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWidgetFactory.cpp
+diff --git a/widget/gtk/nsWidgetFactory.cpp b/widget/gtk/nsWidgetFactory.cpp
+--- a/widget/gtk/nsWidgetFactory.cpp
++++ b/widget/gtk/nsWidgetFactory.cpp
@@ -48,6 +48,8 @@
#include "GfxInfoX11.h"
#endif
@@ -5349,17 +5316,17 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWidgetFactory.cpp
#include "nsNativeThemeGTK.h"
#include "nsIComponentRegistrar.h"
-@@ -124,6 +126,9 @@
+@@ -123,6 +125,9 @@ NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(GfxI
}
#endif
+NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsNativeMenuService,
-+ nsNativeMenuService::GetInstance)
++ nsNativeMenuService::GetInstanceForServiceManager)
+
#ifdef NS_PRINTING
NS_GENERIC_FACTORY_CONSTRUCTOR(nsDeviceContextSpecGTK)
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrintOptionsGTK, Init)
-@@ -226,6 +231,7 @@
+@@ -225,6 +230,7 @@ NS_DEFINE_NAMED_CID(NS_IMAGE_TO_PIXBUF_C
NS_DEFINE_NAMED_CID(NS_IDLE_SERVICE_CID);
NS_DEFINE_NAMED_CID(NS_GFXINFO_CID);
#endif
@@ -5367,7 +5334,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWidgetFactory.cpp
static const mozilla::Module::CIDEntry kWidgetCIDs[] = {
-@@ -261,6 +267,7 @@
+@@ -260,6 +266,7 @@ static const mozilla::Module::CIDEntry k
{ &kNS_IDLE_SERVICE_CID, false, nullptr, nsIdleServiceGTKConstructor },
{ &kNS_GFXINFO_CID, false, nullptr, mozilla::widget::GfxInfoConstructor },
#endif
@@ -5375,7 +5342,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWidgetFactory.cpp
{ nullptr }
};
-@@ -298,6 +305,7 @@
+@@ -297,6 +304,7 @@ static const mozilla::Module::ContractID
{ "@mozilla.org/widget/idleservice;1", &kNS_IDLE_SERVICE_CID },
{ "@mozilla.org/gfx/info;1", &kNS_GFXINFO_CID },
#endif
@@ -5383,11 +5350,10 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWidgetFactory.cpp
{ nullptr }
};
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.cpp
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/widget/gtk/nsWindow.cpp
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.cpp
-@@ -67,6 +67,7 @@
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -72,6 +72,7 @@
#include "mozilla/Assertions.h"
#include "mozilla/Likely.h"
@@ -5395,7 +5361,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.cpp
#include "mozilla/Preferences.h"
#include "nsIPrefService.h"
#include "nsIGConfService.h"
-@@ -5007,6 +5008,11 @@
+@@ -5092,6 +5093,11 @@ nsWindow::HideWindowChrome(bool aShouldH
#endif /* MOZ_X11 */
}
@@ -5407,10 +5373,9 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.cpp
bool
nsWindow::CheckForRollup(gdouble aMouseX, gdouble aMouseY,
bool aIsWheel, bool aAlwaysRollup)
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.h
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/widget/gtk/nsWindow.h
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.h
+diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
+--- a/widget/gtk/nsWindow.h
++++ b/widget/gtk/nsWindow.h
@@ -35,6 +35,8 @@
#include "IMContextWrapper.h"
@@ -5420,7 +5385,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.h
#undef LOG
#ifdef MOZ_LOGGING
-@@ -161,6 +163,8 @@
+@@ -157,6 +159,8 @@ public:
nsIScreen* aTargetScreen = nullptr) override;
virtual void HideWindowChrome(bool aShouldHide) override;
@@ -5429,7 +5394,7 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.h
/**
* GetLastUserInputTime returns a timestamp for the most recent user input
* event. This is intended for pointer grab requests (including drags).
-@@ -562,6 +566,8 @@
+@@ -561,6 +565,8 @@ private:
RefPtr<mozilla::widget::IMContextWrapper> mIMContext;
mozilla::UniquePtr<mozilla::CurrentX11TimeGetter> mCurrentTimeGetter;
@@ -5437,12 +5402,11 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/gtk/nsWindow.h
+ mozilla::UniquePtr<nsMenuBar> mMenuBar;
};
- class nsChildWindow : public nsWindow {
-Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/moz.build
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/widget/moz.build
-+++ firefox-trunk-55.0~a1~hg20170510r357490/widget/moz.build
-@@ -60,9 +60,9 @@
+ #endif /* __nsWindow_h__ */
+diff --git a/widget/moz.build b/widget/moz.build
+--- a/widget/moz.build
++++ b/widget/moz.build
+@@ -63,9 +63,9 @@ elif toolkit == 'cocoa':
'nsISystemStatusBar.idl',
'nsITaskbarProgress.idl',
]
@@ -5455,10 +5419,9 @@ Index: firefox-trunk-55.0~a1~hg20170510r357490/widget/moz.build
TEST_DIRS += ['tests']
-Index: firefox-trunk-55.0~a1~hg20170510r357490/xpfe/appshell/nsWebShellWindow.cpp
-===================================================================
---- firefox-trunk-55.0~a1~hg20170510r357490.orig/xpfe/appshell/nsWebShellWindow.cpp
-+++ firefox-trunk-55.0~a1~hg20170510r357490/xpfe/appshell/nsWebShellWindow.cpp
+diff --git a/xpfe/appshell/nsWebShellWindow.cpp b/xpfe/appshell/nsWebShellWindow.cpp
+--- a/xpfe/appshell/nsWebShellWindow.cpp
++++ b/xpfe/appshell/nsWebShellWindow.cpp
@@ -74,7 +74,7 @@
#include "gfxPlatform.h"