firefox: 64.0

This commit is contained in:
Chaoting Liu 2018-12-13 07:35:42 +01:00
parent f2b5cd75bd
commit 8d28634a6c
3 changed files with 52 additions and 91 deletions

View File

@ -1,34 +0,0 @@
From: Jory A. Pratt <anarchy@gentoo.org>
CFLAGS must contain -fPIC when checking the linker
diff --git a/build/autoconf/compiler-opts.m4 b/build/autoconf/compiler-opts.m4
--- a/build/autoconf/compiler-opts.m4
+++ b/build/autoconf/compiler-opts.m4
@@ -216,23 +216,26 @@ fi
MOZ_ARG_ENABLE_BOOL(pie,
[ --enable-pie Enable Position Independent Executables],
MOZ_PIE=1,
MOZ_PIE= )
if test "$GNU_CC$CLANG_CC" -a -n "$MOZ_PIE"; then
AC_MSG_CHECKING([for PIE support])
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -fPIC"
_SAVE_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS $DSO_PIC_CFLAGS -pie"
AC_TRY_LINK(,,AC_MSG_RESULT([yes])
[MOZ_PROGRAM_LDFLAGS="$MOZ_PROGRAM_LDFLAGS -pie"],
AC_MSG_RESULT([no])
AC_MSG_ERROR([--enable-pie requires PIE support from the linker.]))
LDFLAGS=$_SAVE_LDFLAGS
+ CFLAGS=$_SAVE_CFLAGS
fi
AC_SUBST(MOZ_PROGRAM_LDFLAGS)
dnl ASan assumes no symbols are being interposed, and when that happens,
dnl it's not happy with it. Unconveniently, since Firefox is exporting
dnl libffi symbols and Gtk+3 pulls system libffi via libwayland-client,
dnl system libffi interposes libffi symbols that ASan assumes are in

View File

@ -1,5 +1,5 @@
pkgname=firefox-kde
pkgver=63.0.3
pkgver=64.0
pkgrel=1
pkgdesc="Standalone web browser from mozilla.org with OpenSUSE patch, integrate better with KDE"
arch=('x86_64')
@ -34,7 +34,7 @@ replaces=('kmozillahelper')
#
# Usually, we also port non-openSUSE specific patch together.
#
_patchrev=4b99400f6d17
_patchrev=821cfbe8efcc
_kmozillahelper_commit=2ca28e0 #v5.0.2
_patchurl=http://www.rosenauer.org/hg/mozilla/raw-file/$_patchrev
source=("https://releases.mozilla.org/pub/firefox/releases/${pkgver}/source/${pkgname%%-kde}-${pkgver}.source.tar.xz"
@ -52,7 +52,6 @@ source=("https://releases.mozilla.org/pub/firefox/releases/${pkgver}/source/${pk
"$_patchurl/mozilla-openaes-decl.patch"
# Gentoo patch
1002_fix_pie_detection.patch
1003_foritify_sources_properly.patch
2000_system_harfbuzz_support.patch
2001_system_graphite2_support.patch
@ -71,21 +70,20 @@ source=("https://releases.mozilla.org/pub/firefox/releases/${pkgver}/source/${pk
#"$_patchurl/mozilla-prefer_plugin_pref.patch" removed from opensuse. reason: dropped mozilla-prefer_plugin_pref.patch as this feature is likely not worth maintaining further
#"$_patchurl/mozilla-shared-nss-db.patch" shared by default now
)
sha256sums=('48a834daa9c5773272a30933936ea8a78b217494355749ee68996639451d0931'
sha256sums=('da40f2f8f1cbf0ddb3454aa9f65bb1a2b2043ca9b1724aecd016337be77d537f'
'SKIP'
'6c2ea431c36afef67710547ae67e81975254309e9e1c82d8312f765caa950fe5'
'1190f251471305f4c96a313b32aa66ee1549125300d7ce385356f45bd8ebcb3d'
'7c3b3079e587fb5c7fd8725b4677efb270355c03c8d16513bbe619903038381e'
'd6b7a81c9e11740480cedda791974bdfa2c44fd93a22db38ad020d78d2afb73e'
'933fbd3e32b68d5096a2b516f190eba7ec718bb57a089ef8b057404369efba63'
'29acfc63f366510f471e395cc7a3815108072abda5851c48b64fdb894550408c'
'ef0f90c9134ef05b950f06a3ffbd699c2e5a5f99a4cdf9868e799534d68c204f'
'de50ebcc6b0fd59e970cf1e19dab09f7c7b2b7c75724fd2ac1fa367c1cd79c20'
'52e6ad9d35efb3a1487f511bfe69dc0a60edc682bd5aeb1e74ee615270670273'
'be7aa94f682dcb0feec3dd7c277d5d19e3c56fe3d4940203c942bbbefad6ed70'
'2b679a3cb082d73bec085b8529a56030a990106408f4d9e73915ec51f4c3259e'
'e5d8f0410ecd05119119e2d44a88fb5f1eb67a5b1035fd0a66b8cf167fb81c5d'
'e72782d0fc5a4b1ef5d9bdaaad4631b686e4b6a89f6b511327c48cb4096d1e08'
'4c75f71ba636934ded24eecb3a81f5ba6583e88db2dd9025c842aefc9c8ef216'
'722324ef522f3e2452f49924e47a2e8a3a547e18aef32d7c1252113eb839451f')
'18d37f79d6919d26c7f581f4c0025b556ced05362749be29af118da05f3cfb51')
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
@ -136,6 +134,8 @@ ac_add_options --enable-pie
ac_add_options --enable-gold
ac_add_options --enable-optimize="-O2"
ac_add_options --enable-rust-simd
ac_add_options --enable-lto
ac_add_options --enable-hardening
# Release branding
ac_add_options --enable-application=browser
@ -143,9 +143,14 @@ ac_add_options --enable-official-branding
ac_add_options --enable-update-channel=release
ac_add_options --with-distribution-id=org.chakralinux
ac_add_options --enable-default-toolkit=cairo-gtk3
export CC=clang
export CXX=clang++
export MOZILLA_OFFICIAL=1
export MOZ_TELEMETRY_REPORTING=1
export MOZ_REQUIRE_SIGNING=1
export AR=llvm-ar
export NM=llvm-nm
export RANLIB=llvm-ranlib
# Keys
ac_add_options --with-google-api-keyfile=${PWD@Q}/google-api-key
@ -190,7 +195,6 @@ END
patch -Np0 -i "$srcdir/pgo-fix-missing-kdejs.patch"
msg "Gentoo Patchset"
patch -Np1 -i $srcdir/1002_fix_pie_detection.patch
patch -Np1 -i $srcdir/1003_foritify_sources_properly.patch
patch -Np1 -i $srcdir/2000_system_harfbuzz_support.patch
patch -Np1 -i $srcdir/2001_system_graphite2_support.patch
@ -219,15 +223,9 @@ build_kmozillahelper() {
build_firefox() {
cd $srcdir/${pkgname%%-kde}-${pkgver}
# _FORTIFY_SOURCE causes configure failures
CPPFLAGS+=" -O2"
export PATH="$srcdir/path:$PATH"
export SHELL=/bin/bash
export CC=clang
export CXX=clang++
# Do PGO
xvfb-run -a -n 95 -s "-extension GLX -screen 0 1280x1024x24" \
./mach build

View File

@ -14,7 +14,7 @@
<menu id="file-menu" label="&fileMenu.label;"
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -5615,11 +5615,17 @@ function onViewToolbarsPopupShowing(aEve
@@ -5702,11 +5702,17 @@ function onViewToolbarsPopupShowing(aEve
let toolbarNodes = gNavToolbox.children;
@ -34,7 +34,7 @@
"autohide" : "collapsed";
--- a/browser/components/places/content/places.xul
+++ b/browser/components/places/content/places.xul
@@ -170,7 +170,7 @@
@@ -171,7 +171,7 @@
<toolbarbutton type="menu" class="tabbable"
onpopupshowing="document.getElementById('placeContent').focus()"
#else
@ -45,7 +45,7 @@
id="organizeButton" label="&organize.label;"
--- a/dom/xul/XULPopupElement.cpp
+++ b/dom/xul/XULPopupElement.cpp
@@ -193,6 +193,10 @@ XULPopupElement::GetState(nsString& aSta
@@ -180,6 +180,10 @@ XULPopupElement::GetState(nsString& aSta
// set this here in case there's no frame for the popup
aState.AssignLiteral("closed");
@ -56,7 +56,7 @@
nsMenuPopupFrame *menuPopupFrame = do_QueryFrame(GetPrimaryFrame());
if (menuPopupFrame) {
switch (menuPopupFrame->PopupState()) {
@@ -216,6 +220,11 @@ XULPopupElement::GetState(nsString& aSta
@@ -203,6 +207,11 @@ XULPopupElement::GetState(nsString& aSta
break;
}
}
@ -70,7 +70,7 @@
nsINode*
--- a/dom/xul/moz.build
+++ b/dom/xul/moz.build
@@ -65,6 +65,11 @@ LOCAL_INCLUDES += [
@@ -73,6 +73,11 @@ LOCAL_INCLUDES += [
'/layout/xul',
]
@ -97,7 +97,7 @@
LOCAL_INCLUDES += [
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -280,6 +280,9 @@ pref("dom.window.event.enabled", false);
@@ -273,6 +273,9 @@ pref("dom.window.event.enabled", false);
pref("browser.sessionhistory.max_total_viewers", -1);
pref("ui.use_native_colors", true);
@ -109,7 +109,7 @@
// Pop up context menu on mouseup instead of mousedown, if that's the OS default.
--- a/toolkit/content/xul.css
+++ b/toolkit/content/xul.css
@@ -287,6 +287,18 @@ toolbar[type="menubar"][autohide="true"]
@@ -295,6 +295,18 @@ toolbar[type="menubar"][autohide="true"]
}
%endif
@ -337,7 +337,7 @@
+#endif /* __nsDbusmenu_h__ */
--- /dev/null
+++ b/widget/gtk/nsMenu.cpp
@@ -0,0 +1,848 @@
@@ -0,0 +1,847 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
+ */
@ -466,7 +466,6 @@
+
+ RefPtr<ComputedStyle> style =
+ shell->StyleSet()->ResolveStyleFor(aContent->AsElement(),
+ nullptr,
+ LazyComputeBehavior::Allow);
+
+ if (!style) {
@ -487,7 +486,7 @@
+ bool dummy;
+ nsresult rv = xbl->LoadBindings(aContent->AsElement(),
+ display->mBinding->GetURI(),
+ display->mBinding->mExtraData->GetPrincipal(),
+ display->mBinding->ExtraData()->Principal(),
+ getter_AddRefs(binding), &dummy);
+ if ((NS_FAILED(rv) && rv != NS_ERROR_XBL_BLOCKED) || !binding) {
+ return;
@ -761,7 +760,7 @@
+ StructureMutated();
+}
+
+bool
+bool
+nsMenu::IsInBatchedUpdate() const
+{
+ return mBatchedUpdateState != eBatchedUpdateState_Inactive;
@ -884,7 +883,7 @@
+
+ if (aAttribute == nsGkAtoms::disabled) {
+ UpdateSensitivity();
+ } else if (aAttribute == nsGkAtoms::label ||
+ } else if (aAttribute == nsGkAtoms::label ||
+ aAttribute == nsGkAtoms::accesskey ||
+ aAttribute == nsGkAtoms::crop) {
+ UpdateLabel();
@ -1781,7 +1780,7 @@
+ return nullptr;
+ }
+
+ return std::move(menubar);
+ return menubar;
+}
+
+nsMenuObject::EType
@ -2058,7 +2057,7 @@
+ }
+
+ UniquePtr<nsMenuObject> res = ctor(this, aContent);
+ return std::move(res);
+ return res;
+}
+
+size_t
@ -2413,7 +2412,7 @@
+ { NS_VK_F23, GDK_F23 },
+ { NS_VK_F24, GDK_F24 },
+
+ // context menu key, keysym 0xff67, typically keycode 117 on 105-key (Microsoft)
+ // context menu key, keysym 0xff67, typically keycode 117 on 105-key (Microsoft)
+ // x86 keyboards, located between right 'Windows' key and right Ctrl key
+ { NS_VK_CONTEXT_MENU, GDK_Menu },
+ { NS_VK_SLEEP, GDK_Sleep },
@ -2646,7 +2645,7 @@
+ dbusmenu_menuitem_property_set_int(GetNativeData(),
+ DBUSMENU_MENUITEM_PROP_TOGGLE_STATE,
+ mIsChecked ?
+ DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED :
+ DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED :
+ DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED);
+}
+
@ -2654,7 +2653,7 @@
+nsMenuItem::UpdateTypeAndState()
+{
+ static mozilla::dom::Element::AttrValuesArray attrs[] =
+ { &nsGkAtoms::checkbox, &nsGkAtoms::radio, nullptr };
+ { nsGkAtoms::checkbox, nsGkAtoms::radio, nullptr };
+ int32_t type = ContentNode()->AsElement()->FindAttrValueIn(kNameSpaceID_None,
+ nsGkAtoms::type,
+ attrs, eCaseMatters);
@ -2819,7 +2818,7 @@
+ sibling->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::name,
+ otherName);
+
+ if (sibling != ContentNode() && otherName == name &&
+ if (sibling != ContentNode() && otherName == name &&
+ sibling->AsElement()->AttrValueIs(kNameSpaceID_None,
+ nsGkAtoms::type,
+ nsGkAtoms::radio,
@ -3299,7 +3298,7 @@
+ }
+
+ bool same;
+ if (mURI && NS_SUCCEEDED(mURI->Equals(uri, &same)) && same &&
+ if (mURI && NS_SUCCEEDED(mURI->Equals(uri, &same)) && same &&
+ (!imageRequest || imageRect == mImageRect)) {
+ return;
+ }
@ -3484,9 +3483,9 @@
+ length = label.Length();
+
+ static mozilla::dom::Element::AttrValuesArray strings[] = {
+ &nsGkAtoms::left, &nsGkAtoms::start,
+ &nsGkAtoms::center, &nsGkAtoms::right,
+ &nsGkAtoms::end, nullptr
+ nsGkAtoms::left, nsGkAtoms::start,
+ nsGkAtoms::center, nsGkAtoms::right,
+ nsGkAtoms::end, nullptr
+ };
+
+ int32_t type = mContent->AsElement()->FindAttrValueIn(kNameSpaceID_None,
@ -3844,7 +3843,7 @@
+ void UpdateIcon(mozilla::ComputedStyle *aComputedStyle);
+
+ already_AddRefed<mozilla::ComputedStyle> GetComputedStyle();
+
+
+private:
+ friend class nsMenuObjectIconLoader;
+
@ -4192,7 +4191,7 @@
+ m->mChild = aChild;
+
+ ScheduleFlush(this);
+}
+}
+
+void
+nsNativeMenuDocListener::NodeWillBeDestroyed(const nsINode *aNode)
@ -4329,7 +4328,7 @@
+ gPendingListeners->RemoveElementAt(0);
+ }
+ }
+
+
+ MOZ_ASSERT(sUpdateBlockersCount > 0, "Negative update blockers count!");
+ sUpdateBlockersCount--;
+}
@ -4558,7 +4557,7 @@
+#endif /* __nsNativeMenuDocListener_h__ */
--- /dev/null
+++ b/widget/gtk/nsNativeMenuService.cpp
@@ -0,0 +1,507 @@
@@ -0,0 +1,505 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
+ */
@ -4597,8 +4596,6 @@
+extern PangoLayout* gPangoLayout;
+extern nsNativeMenuDocListenerTArray* gPendingListeners;
+
+static const nsTArray<nsMenuBar *>::index_type NoIndex = nsTArray<nsMenuBar *>::NoIndex;
+
+#if not GLIB_CHECK_VERSION(2,26,0)
+enum GBusType {
+ G_BUS_TYPE_STARTER = -1,
@ -5155,16 +5152,16 @@
+#endif /* __nsNativeMenuService_h__ */
--- a/widget/gtk/nsWidgetFactory.cpp
+++ b/widget/gtk/nsWidgetFactory.cpp
@@ -49,6 +49,8 @@
@@ -48,6 +48,8 @@
#include "GfxInfoX11.h"
#endif
+#include "nsNativeMenuService.h"
+
#include "nsNativeThemeGTK.h"
#include "HeadlessThemeGTK.h"
@@ -116,6 +118,9 @@ NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(GfxI
#include "nsIComponentRegistrar.h"
#include "nsComponentManagerUtils.h"
#include "mozilla/gfx/2D.h"
@@ -78,6 +80,9 @@ NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(GfxI
}
#endif
@ -5174,7 +5171,7 @@
#ifdef NS_PRINTING
NS_GENERIC_FACTORY_CONSTRUCTOR(nsDeviceContextSpecGTK)
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrintSettingsServiceGTK, Init)
@@ -227,6 +232,7 @@ NS_DEFINE_NAMED_CID(NS_IMAGE_TO_PIXBUF_C
@@ -187,6 +192,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
@ -5182,7 +5179,7 @@
static const mozilla::Module::CIDEntry kWidgetCIDs[] = {
@@ -261,6 +267,7 @@ static const mozilla::Module::CIDEntry k
@@ -219,6 +225,7 @@ static const mozilla::Module::CIDEntry k
{ &kNS_IDLE_SERVICE_CID, false, nullptr, nsIdleServiceGTKConstructor },
{ &kNS_GFXINFO_CID, false, nullptr, mozilla::widget::GfxInfoConstructor },
#endif
@ -5190,7 +5187,7 @@
{ nullptr }
};
@@ -297,6 +304,7 @@ static const mozilla::Module::ContractID
@@ -252,6 +259,7 @@ static const mozilla::Module::ContractID
{ "@mozilla.org/widget/idleservice;1", &kNS_IDLE_SERVICE_CID },
{ "@mozilla.org/gfx/info;1", &kNS_GFXINFO_CID },
#endif
@ -5208,7 +5205,7 @@
#include "mozilla/Preferences.h"
#include "nsIPrefService.h"
#include "nsIGConfService.h"
@@ -5258,6 +5259,11 @@ nsWindow::HideWindowChrome(bool aShouldH
@@ -5279,6 +5280,11 @@ nsWindow::HideWindowChrome(bool aShouldH
SetWindowDecoration(aShouldHide ? eBorderStyle_none : mBorderStyle);
}
@ -5222,7 +5219,7 @@
bool aIsWheel, bool aAlwaysRollup)
--- a/widget/gtk/nsWindow.h
+++ b/widget/gtk/nsWindow.h
@@ -40,6 +40,8 @@
@@ -41,6 +41,8 @@
#include "IMContextWrapper.h"
@ -5231,7 +5228,7 @@
#undef LOG
#ifdef MOZ_LOGGING
@@ -178,6 +180,8 @@ public:
@@ -179,6 +181,8 @@ public:
nsIScreen* aTargetScreen = nullptr) override;
virtual void HideWindowChrome(bool aShouldHide) override;
@ -5240,7 +5237,7 @@
/**
* GetLastUserInputTime returns a timestamp for the most recent user input
* event. This is intended for pointer grab requests (including drags).
@@ -656,6 +660,8 @@ private:
@@ -660,6 +664,8 @@ private:
mozilla::UniquePtr<mozilla::CurrentX11TimeGetter> mCurrentTimeGetter;
static CSDSupportLevel sCSDSupportLevel;
@ -5297,10 +5294,10 @@
import sys
# Static atom definitions, used to generate nsGkAtomList.h.
@@ -2304,7 +2305,7 @@ STATIC_ATOMS = [
InheritingAnonBoxAtom("AnonBox_mozSVGOuterSVGAnonChild", ":-moz-svg-outer-svg-anon-child"),
@@ -2321,7 +2322,7 @@ STATIC_ATOMS = [
InheritingAnonBoxAtom("AnonBox_mozSVGForeignContent", ":-moz-svg-foreign-content"),
InheritingAnonBoxAtom("AnonBox_mozSVGText", ":-moz-svg-text"),
# END ATOMS
-] + HTML_PARSER_ATOMS
+] + HTML_PARSER_ATOMS + NATIVE_MENU_ATOMS