summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Bidar2021-04-03 02:51:09 +0300
committerBjörn Bidar2021-04-03 15:18:50 +0300
commit2e4ac72c34793b96333f961c68f598b91cba9b77 (patch)
tree8015585742485063779b52265e8ca26e6c289c79
parent8a4f4f09fbb46a71cf32b974b4bb5dddc910b72e (diff)
downloadaur-2e4ac72c34793b96333f961c68f598b91cba9b77.tar.gz
Update to 87.0-1
- New upstream release - Update unity-menubar patch from Ubuntu - Update firefox-kde patches from openSUSE - Add to fix CSD window buttons when global-menu support is active. Fixes #8
-rw-r--r--.SRCINFO24
-rw-r--r--PKGBUILD18
-rw-r--r--fix_csd_window_buttons.patch12
-rw-r--r--unity-menubar.patch213
4 files changed, 191 insertions, 76 deletions
diff --git a/.SRCINFO b/.SRCINFO
index becb4ba59121..2141827da3f1 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,8 @@
# Generated by mksrcinfo v8
-# Sat Mar 20 22:52:17 UTC 2021
+# Fri Apr 2 22:57:53 UTC 2021
pkgbase = firefox-kde-opensuse
pkgdesc = Standalone web browser from mozilla.org with OpenSUSE patch, integrate better with KDE
- pkgver = 86.0.1
+ pkgver = 87.0
pkgrel = 1
url = https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox
arch = i686
@@ -61,18 +61,18 @@ pkgbase = firefox-kde-opensuse
optdepends = networkmanager: Location detection via available WiFi networks
optdepends = speech-dispatcher: Text-to-Speech
optdepends = pulseaudio: Audio support
- provides = firefox=86.0.1
+ provides = firefox=87.0
conflicts = firefox
options = !emptydirs
- source = hg+https://hg.mozilla.org/mozilla-unified#tag=FIREFOX_86_0_1_RELEASE
+ source = hg+https://hg.mozilla.org/mozilla-unified#tag=FIREFOX_87_0_RELEASE
source = mozconfig
source = firefox.desktop
source = vendor.js
source = kde.js
- source = firefox-branded-icons-9879274865591215e2c87180f1fbaa36d73e88bd.patch::https://raw.githubusercontent.com/openSUSE/firefox-maintenance/9879274865591215e2c87180f1fbaa36d73e88bd/firefox/firefox-branded-icons.patch
- source = firefox-kde-9879274865591215e2c87180f1fbaa36d73e88bd.patch::https://raw.githubusercontent.com/openSUSE/firefox-maintenance/9879274865591215e2c87180f1fbaa36d73e88bd/firefox/firefox-kde.patch
- source = mozilla-kde-9879274865591215e2c87180f1fbaa36d73e88bd.patch::https://raw.githubusercontent.com/openSUSE/firefox-maintenance/9879274865591215e2c87180f1fbaa36d73e88bd/mozilla-kde.patch
- source = mozilla-nongnome-proxies-9879274865591215e2c87180f1fbaa36d73e88bd.patch::https://raw.githubusercontent.com/openSUSE/firefox-maintenance/9879274865591215e2c87180f1fbaa36d73e88bd/mozilla-nongnome-proxies.patch
+ source = firefox-branded-icons-3fdf082cf93d94e4289e552cbd9988601044576a.patch::https://raw.githubusercontent.com/openSUSE/firefox-maintenance/3fdf082cf93d94e4289e552cbd9988601044576a/firefox/firefox-branded-icons.patch
+ source = firefox-kde-3fdf082cf93d94e4289e552cbd9988601044576a.patch::https://raw.githubusercontent.com/openSUSE/firefox-maintenance/3fdf082cf93d94e4289e552cbd9988601044576a/firefox/firefox-kde.patch
+ source = mozilla-kde-3fdf082cf93d94e4289e552cbd9988601044576a.patch::https://raw.githubusercontent.com/openSUSE/firefox-maintenance/3fdf082cf93d94e4289e552cbd9988601044576a/mozilla-kde.patch
+ source = mozilla-nongnome-proxies-3fdf082cf93d94e4289e552cbd9988601044576a.patch::https://raw.githubusercontent.com/openSUSE/firefox-maintenance/3fdf082cf93d94e4289e552cbd9988601044576a/mozilla-nongnome-proxies.patch
source = unity-menubar.patch
source = add_missing_pgo_rule.patch
source = pgo_fix_missing_kdejs.patch
@@ -87,16 +87,17 @@ pkgbase = firefox-kde-opensuse
source = 0024-Fix-building-with-PGO-when-using-GCC.patch
source = 0027-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch
source = 0028-Make-elfhack-use-toolchain.patch
+ source = fix_csd_window_buttons.patch
md5sums = SKIP
md5sums = 1fd86cc439737c90a5854aab7f85080f
md5sums = a26a061efb4def6572d5b319d657f1d6
md5sums = 4c23d9c0a691d70919beb1dafbbecbd3
md5sums = 05bb69d25fb3572c618e3adf1ee7b670
md5sums = c0f68250d27f208efcdee710207cd3e4
- md5sums = 6976984e1cbf000a6883a18916afc45c
- md5sums = b9cd675e20aa979b0e96d1497820f999
+ md5sums = 43c65f6513fbc28aaa8238ad3bdb4e26
+ md5sums = e9ef021913dfc283621ee883a89650f5
md5sums = 0a5733b7a457a2786c2dd27626a1bf88
- md5sums = 02f72a7f3b628013e93b87d4cd093801
+ md5sums = 3296eaae541e4ea340df8d02450a5b81
md5sums = fe24f5ea463013bb7f1c12d12dce41b2
md5sums = 3c383d371d7f6ede5983a40310518715
md5sums = 6a1ed12b8dbac57722436a2987e3ea33
@@ -110,6 +111,7 @@ pkgbase = firefox-kde-opensuse
md5sums = c8e251f1fc9050cd12173b540baa96f8
md5sums = 72176c9ee7b2ac4f1bb07ff5ee5fe10b
md5sums = 07770d558b8999b5793794e1551a1309
+ md5sums = f49ac3b9f5146e33ce587e6b23eb1a86
pkgname = firefox-kde-opensuse
diff --git a/PKGBUILD b/PKGBUILD
index 56aeb220bb22..0be967c5fc4f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -13,7 +13,7 @@ _pgo=true
_pkgname=firefox
pkgname=$_pkgname-kde-opensuse
-pkgver=86.0.1
+pkgver=87.0
pkgrel=1
pkgdesc="Standalone web browser from mozilla.org with OpenSUSE patch, integrate better with KDE"
arch=('i686' 'x86_64')
@@ -54,7 +54,7 @@ optdepends=('networkmanager: Location detection via available WiFi networks'
'pulseaudio: Audio support')
provides=("firefox=${pkgver}")
conflicts=('firefox')
-_patchrev=9879274865591215e2c87180f1fbaa36d73e88bd
+_patchrev=3fdf082cf93d94e4289e552cbd9988601044576a
options=('!emptydirs')
_patchurl=https://raw.githubusercontent.com/openSUSE/firefox-maintenance/$_patchrev
_repo=https://hg.mozilla.org/mozilla-unified
@@ -99,6 +99,8 @@ source=("hg+$_repo#tag=FIREFOX_${pkgver//./_}_RELEASE"
0027-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch
0028-Make-elfhack-use-toolchain.patch
# end
+ # Fix CSD when globalmenu is active #8
+ fix_csd_window_buttons.patch
)
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
@@ -153,6 +155,9 @@ prepare() {
# Force disable elfhack to fix build errors
patch -Np1 -i "$srcdir"/build-disable-elfhack.patch
+ # Fix CSD when globalmenu is active #8
+ patch -Np1 -i "$srcdir"/fix_csd_window_buttons.patch
+
if [ $_pgo ] ; then
# Fix MOZILLA#1516803
# sandbox needs to be built with --param lto-partitions=1 when
@@ -267,10 +272,10 @@ md5sums=('SKIP'
'4c23d9c0a691d70919beb1dafbbecbd3'
'05bb69d25fb3572c618e3adf1ee7b670'
'c0f68250d27f208efcdee710207cd3e4'
- '6976984e1cbf000a6883a18916afc45c'
- 'b9cd675e20aa979b0e96d1497820f999'
+ '43c65f6513fbc28aaa8238ad3bdb4e26'
+ 'e9ef021913dfc283621ee883a89650f5'
'0a5733b7a457a2786c2dd27626a1bf88'
- '02f72a7f3b628013e93b87d4cd093801'
+ '3296eaae541e4ea340df8d02450a5b81'
'fe24f5ea463013bb7f1c12d12dce41b2'
'3c383d371d7f6ede5983a40310518715'
'6a1ed12b8dbac57722436a2987e3ea33'
@@ -283,4 +288,5 @@ md5sums=('SKIP'
'67c0bca3e38404d53e6057e744c7ecee'
'c8e251f1fc9050cd12173b540baa96f8'
'72176c9ee7b2ac4f1bb07ff5ee5fe10b'
- '07770d558b8999b5793794e1551a1309')
+ '07770d558b8999b5793794e1551a1309'
+ 'f49ac3b9f5146e33ce587e6b23eb1a86')
diff --git a/fix_csd_window_buttons.patch b/fix_csd_window_buttons.patch
new file mode 100644
index 000000000000..1fe384e083a4
--- /dev/null
+++ b/fix_csd_window_buttons.patch
@@ -0,0 +1,12 @@
+Fix window buttons in case CSD when globalmenu is active
+
+
+--- a/browser/base/content/browser.css
++++ b/browser/base/content/browser.css
+@@ -334,5 +334,5 @@ toolbar[customizing] #whats-new-menu-button {
+ %ifdef MENUBAR_CAN_AUTOHIDE
+ #toolbar-menubar[autohide=true]:not([inactive]) + #TabsToolbar > .titlebar-buttonbox-container {
+- visibility: hidden;
++ visibility: visible;
+ }
+ %endif
diff --git a/unity-menubar.patch b/unity-menubar.patch
index 7e6104b5fd1d..583385724458 100644
--- a/unity-menubar.patch
+++ b/unity-menubar.patch
@@ -14,7 +14,7 @@
<menu id="file-menu" data-l10n-id="menu-file">
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
-@@ -6274,11 +6274,18 @@ function onViewToolbarsPopupShowing(aEve
+@@ -6231,11 +6231,18 @@ function onViewToolbarsPopupShowing(aEve
MozXULElement.insertFTLIfNeeded("browser/toolbarContextMenu.ftl");
let firstMenuItem = aInsertPoint || popup.firstElementChild;
let toolbarNodes = gNavToolbox.querySelectorAll("toolbar");
@@ -98,7 +98,7 @@
"components.conf",
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
-@@ -312,6 +312,9 @@ pref("dom.mouseevent.click.hack.use_lega
+@@ -305,6 +305,9 @@ pref("dom.mouseevent.click.hack.use_lega
// Fastback caching - if this pref is negative, then we calculate the number
// of content viewers to cache based on the amount of available memory.
pref("browser.sessionhistory.max_total_viewers", -1);
@@ -110,7 +110,7 @@
--- a/toolkit/content/xul.css
+++ b/toolkit/content/xul.css
-@@ -216,6 +216,13 @@ toolbar[type="menubar"] {
+@@ -221,6 +221,13 @@ toolbar[type="menubar"] {
}
%endif
@@ -126,7 +126,24 @@
}
--- a/widget/gtk/moz.build
+++ b/widget/gtk/moz.build
-@@ -59,6 +59,15 @@ UNIFIED_SOURCES += [
+@@ -33,11 +33,16 @@ EXPORTS += [
+
+ EXPORTS.mozilla += ["WidgetUtilsGtk.h"]
+
++EXPORTS.mozilla.widget += [
++ "NativeMenuSupport.h",
++]
++
+ UNIFIED_SOURCES += [
+ "IMContextWrapper.cpp",
+ "MozContainer.cpp",
+ "MPRISServiceHandler.cpp",
+ "NativeKeyBindings.cpp",
++ "NativeMenuSupport.cpp",
+ "nsAppShell.cpp",
+ "nsBidiKeyboard.cpp",
+ "nsColorPicker.cpp",
+@@ -59,6 +64,15 @@ UNIFIED_SOURCES += [
SOURCES += [
"MediaKeysEventSourceFactory.cpp",
@@ -142,7 +159,7 @@
"nsWindow.cpp", # conflicts with X11 headers
"WaylandVsyncSource.cpp", # conflicts with X11 headers
]
-@@ -139,6 +148,7 @@ LOCAL_INCLUDES += [
+@@ -139,6 +153,7 @@ LOCAL_INCLUDES += [
"/layout/base",
"/layout/forms",
"/layout/generic",
@@ -3204,7 +3221,7 @@
+ }
+
+ const nsStyleList *list = aComputedStyle->StyleList();
-+ imageRequest = list->GetListStyleImage();
++ imageRequest = list->mListStyleImage.GetImageRequest();
+ if (imageRequest) {
+ imageRequest->GetURI(getter_AddRefs(uri));
+ auto& rect = list->mImageRegion.AsRect();
@@ -4476,7 +4493,7 @@
+#endif /* __nsNativeMenuDocListener_h__ */
--- /dev/null
+++ b/widget/gtk/nsNativeMenuService.cpp
-@@ -0,0 +1,504 @@
+@@ -0,0 +1,478 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
+ */
@@ -4514,32 +4531,6 @@
+extern PangoLayout* gPangoLayout;
+extern nsNativeMenuDocListenerTArray* gPendingListeners;
+
-+#if not GLIB_CHECK_VERSION(2,26,0)
-+enum GBusType {
-+ G_BUS_TYPE_STARTER = -1,
-+ G_BUS_TYPE_NONE = 0,
-+ G_BUS_TYPE_SYSTEM = 1,
-+ G_BUS_TYPE_SESSION = 2
-+};
-+
-+enum GDBusProxyFlags {
-+ G_DBUS_PROXY_FLAGS_NONE = 0,
-+ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES = 1 << 0,
-+ G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS = 1 << 1,
-+ G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START = 1 << 2,
-+ G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES = 1 << 3
-+};
-+
-+enum GDBusCallFlags {
-+ G_DBUS_CALL_FLAGS_NONE = 0,
-+ G_DBUS_CALL_FLAGS_NO_AUTO_START = 1 << 0
-+};
-+
-+typedef _GDBusInterfaceInfo GDBusInterfaceInfo;
-+typedef _GDBusProxy GDBusProxy;
-+typedef _GVariant GVariant;
-+#endif
-+
+#undef g_dbus_proxy_new_for_bus
+#undef g_dbus_proxy_new_for_bus_finish
+#undef g_dbus_proxy_call
@@ -4983,7 +4974,7 @@
+}
--- /dev/null
+++ b/widget/gtk/nsNativeMenuService.h
-@@ -0,0 +1,84 @@
+@@ -0,0 +1,85 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
+ */
@@ -5007,8 +4998,9 @@
+class nsMenuBar;
+
+/*
-+ * The main native menu service singleton. nsWebShellWindow calls in to this when
-+ * a new top level window is created.
++ * The main native menu service singleton.
++ * NativeMenuSupport::CreateNativeMenuBar calls in to this when a new top level
++ * window is created.
+ *
+ * Menubars are owned by their nsWindow. This service holds a weak reference to
+ * each menubar for the purpose of re-registering them with the shell if it
@@ -5070,7 +5062,7 @@
+#endif /* __nsNativeMenuService_h__ */
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
-@@ -6148,6 +6148,10 @@ void nsWindow::HideWindowChrome(bool aSh
+@@ -6386,6 +6386,10 @@ void nsWindow::HideWindowChrome(bool aSh
SetWindowDecoration(aShouldHide ? eBorderStyle_none : mBorderStyle);
}
@@ -5092,7 +5084,7 @@
#undef LOG
#ifdef MOZ_LOGGING
-@@ -177,6 +179,8 @@ class nsWindow final : public nsBaseWidg
+@@ -182,6 +184,8 @@ class nsWindow final : public nsBaseWidg
nsIScreen* aTargetScreen = nullptr) override;
virtual void HideWindowChrome(bool aShouldHide) override;
@@ -5101,8 +5093,8 @@
/**
* GetLastUserInputTime returns a timestamp for the most recent user input
* event. This is intended for pointer grab requests (including drags).
-@@ -703,6 +707,8 @@ class nsWindow final : public nsBaseWidg
- static CSDSupportLevel sCSDSupportLevel;
+@@ -719,6 +723,8 @@ class nsWindow final : public nsBaseWidg
+ static GtkWindowDecoration sGtkWindowDecoration;
static bool sTransparentMainWindow;
+
@@ -5110,21 +5102,6 @@
};
#endif /* __nsWindow_h__ */
---- a/widget/moz.build
-+++ b/widget/moz.build
-@@ -68,9 +68,9 @@ elif toolkit == "cocoa":
- "nsITouchBarInput.idl",
- "nsITouchBarUpdater.idl",
- ]
-- EXPORTS += [
-- "nsINativeMenuService.h",
-- ]
-+
-+if toolkit in ("cocoa", "gtk"):
-+ EXPORTS += ["nsINativeMenuService.h"]
-
- TEST_DIRS += ["tests", "tests/gtest"]
-
--- /dev/null
+++ b/xpcom/ds/NativeMenuAtoms.py
@@ -0,0 +1,9 @@
@@ -5147,7 +5124,7 @@
import sys
# Static atom definitions, used to generate nsGkAtomList.h.
-@@ -2562,7 +2563,7 @@ STATIC_ATOMS = [
+@@ -2508,7 +2509,7 @@ STATIC_ATOMS = [
InheritingAnonBoxAtom("AnonBox_mozSVGForeignContent", ":-moz-svg-foreign-content"),
InheritingAnonBoxAtom("AnonBox_mozSVGText", ":-moz-svg-text"),
# END ATOMS
@@ -5163,7 +5140,7 @@
'processes': ProcessSelector.MAIN_PROCESS_ONLY,
},
+ {
-+ 'cid': '{0B3FE5AA-BC72-4303-85AE-76365DF1251D}',
++ 'cid': '{0b3fe5aa-bc72-4303-85ae-76365df1251d}',
+ 'contract_ids': ['@mozilla.org/widget/nativemenuservice;1'],
+ 'singleton': True,
+ 'type': 'nsNativeMenuService',
@@ -5175,12 +5152,130 @@
if defined('MOZ_X11'):
--- a/xpfe/appshell/AppWindow.cpp
+++ b/xpfe/appshell/AppWindow.cpp
-@@ -76,7 +76,7 @@
+@@ -79,7 +79,7 @@
#include "mozilla/dom/DocumentL10n.h"
-#ifdef XP_MACOSX
+#if defined(XP_MACOSX) || defined(MOZ_WIDGET_GTK)
- # include "nsINativeMenuService.h"
+ # include "mozilla/widget/NativeMenuSupport.h"
# define USE_NATIVE_MENUS
#endif
+--- /dev/null
++++ b/widget/gtk/NativeMenuSupport.cpp
+@@ -0,0 +1,25 @@
++/* -*- 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 "mozilla/widget/NativeMenuSupport.h"
++
++#include "MainThreadUtils.h"
++#include "nsINativeMenuService.h"
++
++namespace mozilla::widget {
++
++void NativeMenuSupport::CreateNativeMenuBar(nsIWidget* aParent, dom::Element* aMenuBarElement) {
++ MOZ_RELEASE_ASSERT(NS_IsMainThread(), "Attempting to create native menu bar on wrong thread!");
++
++ nsCOMPtr<nsINativeMenuService> nms =
++ do_GetService("@mozilla.org/widget/nativemenuservice;1");
++ if (!nms) {
++ return;
++ }
++
++ nms->CreateNativeMenuBar(aParent, aMenuBarElement);
++}
++
++} // namespace mozilla::widget
+--- /dev/null
++++ b/widget/gtk/NativeMenuSupport.h
+@@ -0,0 +1,31 @@
++/* -*- 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_NativeMenuSupport_h
++#define mozilla_widget_NativeMenuSupport_h
++
++class nsIWidget;
++
++namespace mozilla {
++
++namespace dom {
++class Element;
++}
++
++namespace widget {
++
++class NativeMenuSupport final {
++public:
++ // Given a top-level window widget and a menu bar DOM node, sets up native
++ // menus. Once created, native menus are controlled via the DOM, including
++ // destruction.
++ static void CreateNativeMenuBar(nsIWidget* aParent,
++ dom::Element* aMenuBarElement);
++};
++
++} // namespace widget
++} // namespace mozilla
++
++#endif // mozilla_widget_NativeMenuSupport_h
+--- a/widget/moz.build
++++ b/widget/moz.build
+@@ -145,6 +145,11 @@ EXPORTS += [
+ "PuppetWidget.h",
+ ]
+
++if toolkit == "gtk":
++ EXPORTS += [
++ "nsINativeMenuService.h",
++ ]
++
+ EXPORTS.mozilla += [
+ "BasicEvents.h",
+ "CommandList.h",
+--- /dev/null
++++ b/widget/nsINativeMenuService.h
+@@ -0,0 +1,39 @@
++/* -*- 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 nsINativeMenuService_h_
++#define nsINativeMenuService_h_
++
++#include "nsISupports.h"
++
++class nsIWidget;
++class nsIContent;
++namespace mozilla {
++namespace dom {
++class Element;
++}
++} // namespace mozilla
++
++// {90DF88F9-F084-4EF3-829A-49496E636DED}
++#define NS_INATIVEMENUSERVICE_IID \
++ { \
++ 0x90DF88F9, 0xF084, 0x4EF3, { \
++ 0x82, 0x9A, 0x49, 0x49, 0x6E, 0x63, 0x6D, 0xED \
++ } \
++ }
++
++class nsINativeMenuService : public nsISupports {
++ public:
++ NS_DECLARE_STATIC_IID_ACCESSOR(NS_INATIVEMENUSERVICE_IID)
++ // Given a top-level window widget and a menu bar DOM node, sets up native
++ // menus. Once created, native menus are controlled via the DOM, including
++ // destruction.
++ NS_IMETHOD CreateNativeMenuBar(nsIWidget* aParent,
++ mozilla::dom::Element* aMenuBarNode) = 0;
++};
++
++NS_DEFINE_STATIC_IID_ACCESSOR(nsINativeMenuService, NS_INATIVEMENUSERVICE_IID)
++
++#endif // nsINativeMenuService_h_