Update to 72.0
This commit is contained in:
parent
98339b512f
commit
2008d15ed8
2
.gitignore
vendored
2
.gitignore
vendored
@ -374,3 +374,5 @@ firefox-3.6.4.source.tar.bz2
|
|||||||
/firefox-71.0.source.tar.xz
|
/firefox-71.0.source.tar.xz
|
||||||
/firefox-langpacks-71.0-20191126.tar.xz
|
/firefox-langpacks-71.0-20191126.tar.xz
|
||||||
/firefox-langpacks-71.0-20191202.tar.xz
|
/firefox-langpacks-71.0-20191202.tar.xz
|
||||||
|
/firefox-72.0.source.tar.xz
|
||||||
|
/firefox-langpacks-72.0-20200103.tar.xz
|
||||||
|
@ -1,98 +0,0 @@
|
|||||||
diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
|
|
||||||
--- a/widget/gtk/nsWindow.h
|
|
||||||
+++ b/widget/gtk/nsWindow.h
|
|
||||||
@@ -401,6 +401,8 @@
|
|
||||||
#ifdef MOZ_WAYLAND
|
|
||||||
virtual nsresult GetScreenRect(LayoutDeviceIntRect* aRect) override;
|
|
||||||
#endif
|
|
||||||
+ bool IsRemoteContent() { return HasRemoteContent(); }
|
|
||||||
+ static void HideWaylandOpenedPopups();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual ~nsWindow();
|
|
||||||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
|
||||||
--- a/widget/gtk/nsWindow.cpp
|
|
||||||
+++ b/widget/gtk/nsWindow.cpp
|
|
||||||
@@ -1165,6 +1165,14 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+void nsWindow::HideWaylandOpenedPopups() {
|
|
||||||
+ while (gVisibleWaylandPopupWindows) {
|
|
||||||
+ nsWindow* window =
|
|
||||||
+ static_cast<nsWindow*>(gVisibleWaylandPopupWindows->data);
|
|
||||||
+ window->HideWaylandWindow();
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
// Hide popup nsWindows which are no longer in the nsXULPopupManager widget
|
|
||||||
// chain list.
|
|
||||||
void nsWindow::CleanupWaylandPopups() {
|
|
||||||
@@ -1218,7 +1226,10 @@
|
|
||||||
// popup needs to have an unique parent.
|
|
||||||
GtkWidget* nsWindow::ConfigureWaylandPopupWindows() {
|
|
||||||
MOZ_ASSERT(this->mWindowType == eWindowType_popup);
|
|
||||||
- LOG(("nsWindow::ConfigureWaylandPopupWindows [%p]\n", (void*)this));
|
|
||||||
+ LOG(
|
|
||||||
+ ("nsWindow::ConfigureWaylandPopupWindows [%p], frame %p hasRemoteContent "
|
|
||||||
+ "%d\n",
|
|
||||||
+ (void*)this, this->GetFrame(), this->HasRemoteContent()));
|
|
||||||
#if DEBUG
|
|
||||||
if (this->GetFrame() && this->GetFrame()->GetContent()->GetID()) {
|
|
||||||
nsCString nodeId;
|
|
||||||
@@ -1245,14 +1256,14 @@
|
|
||||||
// gVisibleWaylandPopupWindows which were not yet been hidden.
|
|
||||||
CleanupWaylandPopups();
|
|
||||||
// Since the popups are shown by unknown order it can happen that child
|
|
||||||
- // popup is shown before parent popup. The
|
|
||||||
+ // popup is shown before parent popup.
|
|
||||||
// We look for the current window parent in nsXULPopupManager since it
|
|
||||||
// always has correct popup hierarchy while gVisibleWaylandPopupWindows may
|
|
||||||
// not.
|
|
||||||
nsXULPopupManager* pm = nsXULPopupManager::GetInstance();
|
|
||||||
AutoTArray<nsIWidget*, 5> widgetChain;
|
|
||||||
pm->GetSubmenuWidgetChain(&widgetChain);
|
|
||||||
- for (unsigned long i = 0; i < widgetChain.Length(); i++) {
|
|
||||||
+ for (unsigned long i = 0; i < widgetChain.Length() - 1; i++) {
|
|
||||||
unsigned long parentIndex = i + 1;
|
|
||||||
if (widgetChain.Length() > parentIndex && widgetChain[i] == this) {
|
|
||||||
nsWindow* parentWindow =
|
|
||||||
@@ -1264,6 +1275,29 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
+ // Panels usually ends there
|
|
||||||
+ if (gVisibleWaylandPopupWindows && HasRemoteContent()) {
|
|
||||||
+ // If the new panel is remote content, we need to close all other popups
|
|
||||||
+ // before to keep the correct hierarchy because the remote content popup
|
|
||||||
+ // can replace the overflow-widget panel.
|
|
||||||
+ HideWaylandOpenedPopups();
|
|
||||||
+ } else if (gVisibleWaylandPopupWindows) {
|
|
||||||
+ // If there is any remote content panel currently opened, close all
|
|
||||||
+ // opened popups to keep the correct hierarchy.
|
|
||||||
+ GList* popupList = gVisibleWaylandPopupWindows;
|
|
||||||
+ while (popupList) {
|
|
||||||
+ nsWindow* waylandWnd = static_cast<nsWindow*>(popupList->data);
|
|
||||||
+ LOG((" Checking [%p] IsRemoteContent %d\n", popupList->data,
|
|
||||||
+ waylandWnd->IsRemoteContent()));
|
|
||||||
+ if (waylandWnd->IsRemoteContent()) {
|
|
||||||
+ // close all popups including remote content before showing our panel
|
|
||||||
+ // Most likely returning from addon panel to overflow-widget.
|
|
||||||
+ HideWaylandOpenedPopups();
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ popupList = popupList->next;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
// For popups in panels use the last opened popup window as parent,
|
|
||||||
// panels are not stored in nsXULPopupManager.
|
|
||||||
if (gVisibleWaylandPopupWindows) {
|
|
||||||
@@ -4380,6 +4414,7 @@
|
|
||||||
void nsWindow::HideWaylandWindow() {
|
|
||||||
#ifdef MOZ_WAYLAND
|
|
||||||
if (mWindowType == eWindowType_popup) {
|
|
||||||
+ LOG(("nsWindow::HideWaylandWindow: popup [%p]\n", this));
|
|
||||||
GList* foundWindow = g_list_find(gVisibleWaylandPopupWindows, this);
|
|
||||||
if (foundWindow) {
|
|
||||||
gVisibleWaylandPopupWindows =
|
|
||||||
|
|
@ -1,97 +0,0 @@
|
|||||||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
|
||||||
--- a/widget/gtk/nsWindow.cpp
|
|
||||||
+++ b/widget/gtk/nsWindow.cpp
|
|
||||||
@@ -1295,13 +1295,12 @@
|
|
||||||
GdkWindow* window, const GdkRectangle* flipped_rect,
|
|
||||||
const GdkRectangle* final_rect, gboolean flipped_x, gboolean flipped_y,
|
|
||||||
void* aWindow) {
|
|
||||||
- LOG(("%s [%p] flipped_x %d flipped_y %d\n", __FUNCTION__, aWindow, flipped_x,
|
|
||||||
- flipped_y));
|
|
||||||
-
|
|
||||||
- LOG(("%s [%p] flipped %d %d w:%d h:%d\n", __FUNCTION__, aWindow,
|
|
||||||
- flipped_rect->x, flipped_rect->y, flipped_rect->width,
|
|
||||||
- flipped_rect->height));
|
|
||||||
- LOG(("%s [%p] final %d %d w:%d h:%d\n", __FUNCTION__, aWindow, final_rect->x,
|
|
||||||
+ LOG(("NativeMoveResizeWaylandPopupCallback [%p] flipped_x %d flipped_y %d\n",
|
|
||||||
+ aWindow, flipped_x, flipped_y));
|
|
||||||
+
|
|
||||||
+ LOG((" flipped_rect x: %d y: %d width: %d height: %d\n", flipped_rect->x,
|
|
||||||
+ flipped_rect->y, flipped_rect->width, flipped_rect->height));
|
|
||||||
+ LOG((" final_rect x: %d y: %d width: %d height: %d\n", final_rect->x,
|
|
||||||
final_rect->y, final_rect->width, final_rect->height));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -1312,12 +1311,13 @@
|
|
||||||
static auto sGdkWindowMoveToRect = (void (*)(
|
|
||||||
GdkWindow*, const GdkRectangle*, GdkGravity, GdkGravity, GdkAnchorHints,
|
|
||||||
gint, gint))dlsym(RTLD_DEFAULT, "gdk_window_move_to_rect");
|
|
||||||
+ LOG(("nsWindow::NativeMoveResizeWaylandPopup [%p]\n", (void*)this));
|
|
||||||
|
|
||||||
// Compositor may be confused by windows with width/height = 0
|
|
||||||
// and positioning such windows leads to Bug 1555866.
|
|
||||||
if (!AreBoundsSane()) {
|
|
||||||
- LOG(("nsWindow::NativeMoveResizeWaylandPopup [%p] Bounds are not sane\n",
|
|
||||||
- (void*)this));
|
|
||||||
+ LOG((" Bounds are not sane (width: %d height: %d)\n", mBounds.width,
|
|
||||||
+ mBounds.height));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1331,15 +1331,14 @@
|
|
||||||
// - gdk_window_move_to_rect() is not available
|
|
||||||
// - the widget doesn't have a valid GdkWindow
|
|
||||||
if (!sGdkWindowMoveToRect || !gdkWindow) {
|
|
||||||
- LOG(("nsWindow::NativeMoveResizeWaylandPopup [%p] use gtk_window_move()\n",
|
|
||||||
- (void*)this));
|
|
||||||
+ LOG((" use gtk_window_move(%d, %d)\n", aPosition->x, aPosition->y));
|
|
||||||
gtk_window_move(GTK_WINDOW(mShell), aPosition->x, aPosition->y);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
GtkWidget* parentWindow = ConfigureWaylandPopupWindows();
|
|
||||||
- LOG(("nsWindow::NativeMoveResizeWaylandPopup [%p] Set popup parent %p\n",
|
|
||||||
- (void*)this, parentWindow));
|
|
||||||
+ LOG(("nsWindow::NativeMoveResizeWaylandPopup: Set popup parent %p\n",
|
|
||||||
+ parentWindow));
|
|
||||||
|
|
||||||
int x_parent, y_parent;
|
|
||||||
gdk_window_get_origin(gtk_widget_get_window(GTK_WIDGET(parentWindow)),
|
|
||||||
@@ -1351,12 +1350,6 @@
|
|
||||||
rect.height = aSize->height;
|
|
||||||
}
|
|
||||||
|
|
||||||
- LOG(("%s [%p] request position %d,%d\n", __FUNCTION__, (void*)this,
|
|
||||||
- aPosition->x, aPosition->y));
|
|
||||||
- if (aSize) {
|
|
||||||
- LOG((" request size %d,%d\n", aSize->width, aSize->height));
|
|
||||||
- }
|
|
||||||
- LOG((" request result %d %d\n", rect.x, rect.y));
|
|
||||||
#ifdef DEBUG
|
|
||||||
if (!g_signal_handler_find(
|
|
||||||
gdkWindow, G_SIGNAL_MATCH_FUNC, 0, 0, nullptr,
|
|
||||||
@@ -1389,10 +1382,8 @@
|
|
||||||
HideWaylandWindow();
|
|
||||||
}
|
|
||||||
|
|
||||||
- LOG(
|
|
||||||
- ("nsWindow::NativeMoveResizeWaylandPopup [%p]: requested rect: x%d y%d "
|
|
||||||
- "w%d h%d\n",
|
|
||||||
- this, rect.x, rect.y, rect.width, rect.height));
|
|
||||||
+ LOG((" requested rect: x: %d y: %d width: %d height: %d\n", rect.x, rect.y,
|
|
||||||
+ rect.width, rect.height));
|
|
||||||
if (aSize) {
|
|
||||||
LOG((" aSize: x%d y%d w%d h%d\n", aSize->x, aSize->y, aSize->width,
|
|
||||||
aSize->height));
|
|
||||||
@@ -7348,8 +7339,9 @@
|
|
||||||
if (monitor) {
|
|
||||||
GdkRectangle workArea;
|
|
||||||
s_gdk_monitor_get_workarea(monitor, &workArea);
|
|
||||||
- aRect->x = workArea.x;
|
|
||||||
- aRect->y = workArea.y;
|
|
||||||
+ // The monitor offset won't help us in Wayland, because we can't get the
|
|
||||||
+ // absolute position of our window.
|
|
||||||
+ aRect->x = aRect->y = 0;
|
|
||||||
aRect->width = workArea.width;
|
|
||||||
aRect->height = workArea.height;
|
|
||||||
LOG((" workarea for [%p], monitor %p: x%d y%d w%d h%d\n", this, monitor,
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
diff -up firefox-68.0/gfx/skia/skia/include/private/SkHalf.h.old firefox-68.0/gfx/skia/skia/include/private/SkHalf.h
|
diff -up firefox-72.0/gfx/skia/skia/include/private/SkHalf.h.aarch64-skia firefox-72.0/gfx/skia/skia/include/private/SkHalf.h
|
||||||
--- firefox-68.0/gfx/skia/skia/include/private/SkHalf.h.old 2019-07-11 12:33:40.471936951 +0200
|
--- firefox-72.0/gfx/skia/skia/include/private/SkHalf.h.aarch64-skia 2020-01-02 22:33:02.000000000 +0100
|
||||||
+++ firefox-68.0/gfx/skia/skia/include/private/SkHalf.h 2019-07-11 12:33:50.527913736 +0200
|
+++ firefox-72.0/gfx/skia/skia/include/private/SkHalf.h 2020-01-03 09:00:37.537296105 +0100
|
||||||
@@ -40,7 +40,7 @@ static inline Sk4h SkFloatToHalf_finite_
|
@@ -40,7 +40,7 @@ static inline Sk4h SkFloatToHalf_finite_
|
||||||
|
|
||||||
static inline Sk4f SkHalfToFloat_finite_ftz(uint64_t rgba) {
|
static inline Sk4f SkHalfToFloat_finite_ftz(uint64_t rgba) {
|
||||||
@ -19,28 +19,27 @@ diff -up firefox-68.0/gfx/skia/skia/include/private/SkHalf.h.old firefox-68.0/gf
|
|||||||
float32x4_t vec = fs.fVec;
|
float32x4_t vec = fs.fVec;
|
||||||
asm ("fcvtn %[vec].4h, %[vec].4s \n" // vcvt_f16_f32(vec)
|
asm ("fcvtn %[vec].4h, %[vec].4s \n" // vcvt_f16_f32(vec)
|
||||||
: [vec] "+w" (vec)); // +w: read-write NEON register
|
: [vec] "+w" (vec)); // +w: read-write NEON register
|
||||||
|
diff -up firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.aarch64-skia firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h
|
||||||
diff -up firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.old firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h
|
--- firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.aarch64-skia 2020-01-03 09:00:37.538296107 +0100
|
||||||
--- firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.old 2019-07-11 12:39:08.694166900 +0200
|
+++ firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h 2020-01-03 10:11:41.259219508 +0100
|
||||||
+++ firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h 2019-07-11 12:39:21.572136328 +0200
|
@@ -1087,7 +1087,7 @@ SI F from_half(U16 h) {
|
||||||
@@ -830,7 +830,7 @@ SI F from_half(U16 h) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SI U16 to_half(F f) {
|
SI U16 to_half(F f) {
|
||||||
-#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
-#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
|
||||||
+#if 0 // defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
+#if 0 //defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
|
||||||
|
&& !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
||||||
return vcvt_f16_f32(f);
|
return vcvt_f16_f32(f);
|
||||||
|
|
||||||
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
|
diff -up firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.aarch64-skia firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h
|
||||||
diff -up firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.old firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h
|
--- firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.aarch64-skia 2020-01-03 09:00:37.538296107 +0100
|
||||||
--- firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.old 2019-07-11 12:38:45.285222428 +0200
|
+++ firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h 2020-01-03 10:11:53.513250979 +0100
|
||||||
+++ firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h 2019-07-11 12:38:57.414193679 +0200
|
@@ -183,8 +183,6 @@ SI F F_from_Half(U16 half) {
|
||||||
@@ -163,7 +163,7 @@ SI F F_from_Half(U16 half) {
|
|
||||||
__attribute__((no_sanitize("unsigned-integer-overflow")))
|
|
||||||
#endif
|
|
||||||
SI U16 Half_from_F(F f) {
|
SI U16 Half_from_F(F f) {
|
||||||
-#if defined(USING_NEON_F16C)
|
#if defined(USING_NEON_FP16)
|
||||||
+#if 0 // defined(USING_NEON_F16C)
|
return bit_pun<U16>(f);
|
||||||
return (U16)vcvt_f16_f32(f);
|
-#elif defined(USING_NEON_F16C)
|
||||||
#elif defined(__AVX512F__)
|
- return (U16)vcvt_f16_f32(f);
|
||||||
|
#elif defined(USING_AVX512F)
|
||||||
return (U16)_mm512_cvtps_ph((__m512 )f, _MM_FROUND_CUR_DIRECTION );
|
return (U16)_mm512_cvtps_ph((__m512 )f, _MM_FROUND_CUR_DIRECTION );
|
||||||
|
#elif defined(USING_AVX_F16C)
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
diff -up firefox-69.0.1/widget/gtk/WindowSurfaceWayland.cpp.old firefox-69.0.1/widget/gtk/WindowSurfaceWayland.cpp
|
|
||||||
--- firefox-69.0.1/widget/gtk/WindowSurfaceWayland.cpp.old 2019-09-19 15:05:13.586437024 +0200
|
|
||||||
+++ firefox-69.0.1/widget/gtk/WindowSurfaceWayland.cpp 2019-09-19 15:09:39.649079248 +0200
|
|
||||||
@@ -836,8 +836,15 @@ already_AddRefed<gfx::DrawTarget> Window
|
|
||||||
mBufferScreenRect = lockedScreenRect;
|
|
||||||
}
|
|
||||||
|
|
||||||
- mDrawToWaylandBufferDirectly =
|
|
||||||
- (windowRedraw || mRenderingCacheMode != CACHE_ALL);
|
|
||||||
+ if (mRenderingCacheMode == CACHE_ALL) {
|
|
||||||
+ mDrawToWaylandBufferDirectly = windowRedraw;
|
|
||||||
+ } else if (mRenderingCacheMode == CACHE_MISSING) {
|
|
||||||
+ mDrawToWaylandBufferDirectly = windowRedraw ||
|
|
||||||
+ ((lockSize.width*3 > lockedScreenRect.width &&
|
|
||||||
+ lockSize.height*3 > lockedScreenRect.height));
|
|
||||||
+ } else {
|
|
||||||
+ mDrawToWaylandBufferDirectly = true;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (mDrawToWaylandBufferDirectly) {
|
|
||||||
LOGWAYLAND((" Direct drawing\n"));
|
|
24
firefox.spec
24
firefox.spec
@ -101,13 +101,13 @@ ExcludeArch: s390x
|
|||||||
|
|
||||||
Summary: Mozilla Firefox Web browser
|
Summary: Mozilla Firefox Web browser
|
||||||
Name: firefox
|
Name: firefox
|
||||||
Version: 71.0
|
Version: 72.0
|
||||||
Release: 17%{?pre_tag}%{?dist}
|
Release: 1%{?dist}
|
||||||
URL: https://www.mozilla.org/firefox/
|
URL: https://www.mozilla.org/firefox/
|
||||||
License: MPLv1.1 or GPLv2+ or LGPLv2+
|
License: MPLv1.1 or GPLv2+ or LGPLv2+
|
||||||
Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
|
Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
|
||||||
%if %{with langpacks}
|
%if %{with langpacks}
|
||||||
Source1: firefox-langpacks-%{version}%{?pre_version}-20191202.tar.xz
|
Source1: firefox-langpacks-%{version}%{?pre_version}-20200103.tar.xz
|
||||||
%endif
|
%endif
|
||||||
Source2: cbindgen-vendor.tar.xz
|
Source2: cbindgen-vendor.tar.xz
|
||||||
Source10: firefox-mozconfig
|
Source10: firefox-mozconfig
|
||||||
@ -152,7 +152,6 @@ Patch224: mozilla-1170092.patch
|
|||||||
#ARM run-time patch
|
#ARM run-time patch
|
||||||
Patch226: rhbz-1354671.patch
|
Patch226: rhbz-1354671.patch
|
||||||
Patch227: firefox-locale-debug.patch
|
Patch227: firefox-locale-debug.patch
|
||||||
Patch228: mozilla-1583466.patch
|
|
||||||
Patch239: mozilla-gnome-shell-search-provider.patch
|
Patch239: mozilla-gnome-shell-search-provider.patch
|
||||||
Patch240: mozilla-gnome-shell-search-provider-icons.patch
|
Patch240: mozilla-gnome-shell-search-provider-icons.patch
|
||||||
Patch241: kiosk-workaround.patch
|
Patch241: kiosk-workaround.patch
|
||||||
@ -165,14 +164,10 @@ Patch415: Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch
|
|||||||
Patch417: bug1375074-save-restore-x28.patch
|
Patch417: bug1375074-save-restore-x28.patch
|
||||||
Patch419: mozilla-1568569.patch
|
Patch419: mozilla-1568569.patch
|
||||||
Patch422: mozilla-1580174-webrtc-popup.patch
|
Patch422: mozilla-1580174-webrtc-popup.patch
|
||||||
Patch424: D53011-remote-content-disappear-fix.diff
|
|
||||||
Patch425: D53965-dropdown-missing-on-multimonitor.diff
|
|
||||||
Patch426: mozilla-1603112-accept-lang.patch
|
Patch426: mozilla-1603112-accept-lang.patch
|
||||||
|
|
||||||
# Wayland specific upstream patches
|
# Wayland specific upstream patches
|
||||||
Patch574: firefox-pipewire.patch
|
Patch574: firefox-pipewire.patch
|
||||||
Patch590: firefox-wayland-cache-missing.patch
|
|
||||||
Patch591: mozilla-1593408.patch
|
|
||||||
|
|
||||||
# PGO/LTO patches
|
# PGO/LTO patches
|
||||||
Patch600: pgo.patch
|
Patch600: pgo.patch
|
||||||
@ -341,7 +336,7 @@ This package contains results of tests executed during build.
|
|||||||
%if 0%{?big_endian}
|
%if 0%{?big_endian}
|
||||||
%patch26 -p1 -b .icu
|
%patch26 -p1 -b .icu
|
||||||
%endif
|
%endif
|
||||||
%patch46 -p1 -b .nss-version
|
#%patch46 -p1 -b .nss-version
|
||||||
|
|
||||||
# Fedora patches
|
# Fedora patches
|
||||||
%patch215 -p1 -b .addons
|
%patch215 -p1 -b .addons
|
||||||
@ -353,13 +348,13 @@ This package contains results of tests executed during build.
|
|||||||
%patch226 -p1 -b .1354671
|
%patch226 -p1 -b .1354671
|
||||||
%endif
|
%endif
|
||||||
%patch227 -p1 -b .locale-debug
|
%patch227 -p1 -b .locale-debug
|
||||||
%patch228 -p1 -b .mozilla-1583466
|
|
||||||
%patch239 -p1 -b .gnome-shell-search-provider
|
%patch239 -p1 -b .gnome-shell-search-provider
|
||||||
%patch240 -p1 -b .gnome-shell-search-provider-icons
|
%patch240 -p1 -b .gnome-shell-search-provider-icons
|
||||||
# Workaround for kiosk mode
|
# Workaround for kiosk mode
|
||||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1594738
|
# https://bugzilla.mozilla.org/show_bug.cgi?id=1594738
|
||||||
#%patch241 -p1 -b .kiosk-workaround
|
#%patch241 -p1 -b .kiosk-workaround
|
||||||
%patch242 -p1 -b .mozilla-1601707
|
# Cannot be applied at the moment, lot of hunk failures
|
||||||
|
#%patch242 -p1 -b .mozilla-1601707
|
||||||
|
|
||||||
%patch402 -p1 -b .1196777
|
%patch402 -p1 -b .1196777
|
||||||
%ifarch %{arm}
|
%ifarch %{arm}
|
||||||
@ -368,16 +363,12 @@ This package contains results of tests executed during build.
|
|||||||
%patch419 -p1 -b .1568569
|
%patch419 -p1 -b .1568569
|
||||||
|
|
||||||
# overflow widgets broken
|
# overflow widgets broken
|
||||||
%patch424 -p1 -b .D53011
|
|
||||||
# dropdown missing on multimonitor
|
# dropdown missing on multimonitor
|
||||||
%patch425 -p1 -b .D53965
|
|
||||||
# fix for wrong intl.accept_lang when using non en-us langpack
|
# fix for wrong intl.accept_lang when using non en-us langpack
|
||||||
%patch426 -p1 -b .1603112-accept-lang
|
%patch426 -p1 -b .1603112-accept-lang
|
||||||
|
|
||||||
# Wayland specific upstream patches
|
# Wayland specific upstream patches
|
||||||
%patch574 -p1 -b .firefox-pipewire
|
%patch574 -p1 -b .firefox-pipewire
|
||||||
%patch590 -p1 -b .cache-missing
|
|
||||||
%patch591 -p1 -b .mozilla-1593408
|
|
||||||
|
|
||||||
# PGO patches
|
# PGO patches
|
||||||
%patch600 -p1 -b .pgo
|
%patch600 -p1 -b .pgo
|
||||||
@ -941,6 +932,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jan 03 2020 Jan Horak <jhorak@redhat.com> - 72.0-1
|
||||||
|
- Update to 72.0 build3
|
||||||
|
|
||||||
* Wed Dec 18 2019 Jan Horak <jhorak@redhat.com> - 71.0-17
|
* Wed Dec 18 2019 Jan Horak <jhorak@redhat.com> - 71.0-17
|
||||||
- Fix for wrong intl.accept_lang when using non en-us langpack
|
- Fix for wrong intl.accept_lang when using non en-us langpack
|
||||||
|
|
||||||
|
@ -1,156 +0,0 @@
|
|||||||
changeset: 496943:24592798daf4
|
|
||||||
tag: tip
|
|
||||||
parent: 496931:ca257801d86f
|
|
||||||
user: Martin Stransky <stransky@redhat.com>
|
|
||||||
date: Tue Sep 24 12:54:11 2019 +0200
|
|
||||||
files: toolkit/components/enterprisepolicies/EnterprisePolicies.js toolkit/xre/nsXREDirProvider.cpp xpcom/build/nsXULAppAPI.h
|
|
||||||
description:
|
|
||||||
Bug 1583466 - [Linux] Allow to Load policies per user from system on Linux/Gtk, r=mkaply
|
|
||||||
|
|
||||||
When browser.policies.perUserPath is set, load browser policy per user
|
|
||||||
from /run/user/$UID/appname/ directory instead of the default firefox/distribution
|
|
||||||
dir.
|
|
||||||
|
|
||||||
Differential Revision: https://phabricator.services.mozilla.com/D46921
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/toolkit/components/enterprisepolicies/EnterprisePolicies.js b/toolkit/components/enterprisepolicies/EnterprisePolicies.js
|
|
||||||
--- a/toolkit/components/enterprisepolicies/EnterprisePolicies.js
|
|
||||||
+++ b/toolkit/components/enterprisepolicies/EnterprisePolicies.js
|
|
||||||
@@ -18,16 +18,19 @@ XPCOMUtils.defineLazyModuleGetters(this,
|
|
||||||
JsonSchemaValidator:
|
|
||||||
"resource://gre/modules/components-utils/JsonSchemaValidator.jsm",
|
|
||||||
});
|
|
||||||
|
|
||||||
// This is the file that will be searched for in the
|
|
||||||
// ${InstallDir}/distribution folder.
|
|
||||||
const POLICIES_FILENAME = "policies.json";
|
|
||||||
|
|
||||||
+// When true browser policy is loaded per-user from
|
|
||||||
+// /run/usr/$UID/appname
|
|
||||||
+const PREF_PER_USER_DIR = "browser.policies.perUserDir";
|
|
||||||
// For easy testing, modify the helpers/sample.json file,
|
|
||||||
// and set PREF_ALTERNATE_PATH in firefox.js as:
|
|
||||||
// /your/repo/browser/components/enterprisepolicies/helpers/sample.json
|
|
||||||
const PREF_ALTERNATE_PATH = "browser.policies.alternatePath";
|
|
||||||
// For testing, we may want to set PREF_ALTERNATE_PATH to point to a file
|
|
||||||
// relative to the test root directory. In order to enable this, the string
|
|
||||||
// below may be placed at the beginning of that preference value and it will
|
|
||||||
// be replaced with the path to the test root directory.
|
|
||||||
@@ -450,17 +453,22 @@ class JSONPoliciesProvider {
|
|
||||||
|
|
||||||
get failed() {
|
|
||||||
return this._failed;
|
|
||||||
}
|
|
||||||
|
|
||||||
_getConfigurationFile() {
|
|
||||||
let configFile = null;
|
|
||||||
try {
|
|
||||||
- configFile = Services.dirsvc.get("XREAppDist", Ci.nsIFile);
|
|
||||||
+ let perUserPath = Services.prefs.getBoolPref(PREF_PER_USER_DIR, false);
|
|
||||||
+ if (perUserPath) {
|
|
||||||
+ configFile = Services.dirsvc.get("XREAppDistUser", Ci.nsIFile);
|
|
||||||
+ } else {
|
|
||||||
+ configFile = Services.dirsvc.get("XREAppDist", Ci.nsIFile);
|
|
||||||
+ }
|
|
||||||
configFile.append(POLICIES_FILENAME);
|
|
||||||
} catch (ex) {
|
|
||||||
// Getting the correct directory will fail in xpcshell tests. This should
|
|
||||||
// be handled the same way as if the configFile simply does not exist.
|
|
||||||
}
|
|
||||||
|
|
||||||
let alternatePath = Services.prefs.getStringPref(PREF_ALTERNATE_PATH, "");
|
|
||||||
|
|
||||||
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
|
|
||||||
--- a/toolkit/xre/nsXREDirProvider.cpp
|
|
||||||
+++ b/toolkit/xre/nsXREDirProvider.cpp
|
|
||||||
@@ -40,16 +40,17 @@
|
|
||||||
#include "mozilla/dom/ScriptSettings.h"
|
|
||||||
|
|
||||||
#include "mozilla/AutoRestore.h"
|
|
||||||
#include "mozilla/Components.h"
|
|
||||||
#include "mozilla/Services.h"
|
|
||||||
#include "mozilla/Omnijar.h"
|
|
||||||
#include "mozilla/Preferences.h"
|
|
||||||
#include "mozilla/Telemetry.h"
|
|
||||||
+#include "nsPrintfCString.h"
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
#ifdef XP_WIN
|
|
||||||
# include <windows.h>
|
|
||||||
# include <shlobj.h>
|
|
||||||
# include "WinUtils.h"
|
|
||||||
#endif
|
|
||||||
@@ -98,17 +99,17 @@ static already_AddRefed<nsIFile> CreateP
|
|
||||||
nsXREDirProvider* gDirServiceProvider = nullptr;
|
|
||||||
nsIFile* gDataDirHomeLocal = nullptr;
|
|
||||||
nsIFile* gDataDirHome = nullptr;
|
|
||||||
nsCOMPtr<nsIFile> gDataDirProfileLocal = nullptr;
|
|
||||||
nsCOMPtr<nsIFile> gDataDirProfile = nullptr;
|
|
||||||
|
|
||||||
// These are required to allow nsXREDirProvider to be usable in xpcshell tests.
|
|
||||||
// where gAppData is null.
|
|
||||||
-#if defined(XP_MACOSX) || defined(XP_WIN)
|
|
||||||
+#if defined(XP_MACOSX) || defined(XP_WIN) || defined(XP_UNIX)
|
|
||||||
static const char* GetAppName() {
|
|
||||||
if (gAppData) {
|
|
||||||
return gAppData->name;
|
|
||||||
}
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -456,16 +457,24 @@ nsXREDirProvider::GetFile(const char* aP
|
|
||||||
else if (!strcmp(aProperty, XRE_USER_SYS_EXTENSION_DIR)) {
|
|
||||||
#ifdef ENABLE_SYSTEM_EXTENSION_DIRS
|
|
||||||
return GetSysUserExtensionsDirectory(aFile);
|
|
||||||
#else
|
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
#endif
|
|
||||||
} else if (!strcmp(aProperty, XRE_USER_SYS_EXTENSION_DEV_DIR)) {
|
|
||||||
return GetSysUserExtensionsDevDirectory(aFile);
|
|
||||||
+ } else if (!strcmp(aProperty, XRE_APP_DISTRIBUTION_USER_DIR)) {
|
|
||||||
+#ifdef MOZ_WIDGET_GTK
|
|
||||||
+ nsPrintfCString path("/run/user/%d/%s/", getuid(), GetAppName());
|
|
||||||
+ ToLowerCase(path);
|
|
||||||
+ return NS_NewNativeLocalFile(path, false, aFile);
|
|
||||||
+#else
|
|
||||||
+ return NS_ERROR_FAILURE;
|
|
||||||
+#endif
|
|
||||||
} else if (!strcmp(aProperty, XRE_APP_DISTRIBUTION_DIR)) {
|
|
||||||
bool persistent = false;
|
|
||||||
rv = GetFile(NS_GRE_DIR, &persistent, getter_AddRefs(file));
|
|
||||||
if (NS_SUCCEEDED(rv))
|
|
||||||
rv = file->AppendNative(NS_LITERAL_CSTRING("distribution"));
|
|
||||||
} else if (!strcmp(aProperty, XRE_APP_FEATURES_DIR)) {
|
|
||||||
rv = GetAppDir()->Clone(getter_AddRefs(file));
|
|
||||||
if (NS_SUCCEEDED(rv))
|
|
||||||
diff --git a/xpcom/build/nsXULAppAPI.h b/xpcom/build/nsXULAppAPI.h
|
|
||||||
--- a/xpcom/build/nsXULAppAPI.h
|
|
||||||
+++ b/xpcom/build/nsXULAppAPI.h
|
|
||||||
@@ -137,16 +137,23 @@
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A directory service key which specifies the location for app dir add-ons.
|
|
||||||
* Should be a synonym for XCurProcD everywhere except in tests.
|
|
||||||
*/
|
|
||||||
#define XRE_ADDON_APP_DIR "XREAddonAppDir"
|
|
||||||
|
|
||||||
/**
|
|
||||||
+ * A directory service key which specifies the distribution specific files for
|
|
||||||
+ * the application unique for each user.
|
|
||||||
+ * It's located at /run/user/$PID/<product name>/
|
|
||||||
+ */
|
|
||||||
+#define XRE_APP_DISTRIBUTION_USER_DIR "XREAppDistUser"
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
* A directory service key which provides the update directory. Callers should
|
|
||||||
* fall back to appDir.
|
|
||||||
* Windows: If vendor name exists:
|
|
||||||
* ProgramData\<vendor name>\updates\
|
|
||||||
* <hash of the path to XRE_EXECUTABLE_FILE's parent directory>
|
|
||||||
*
|
|
||||||
* If vendor name doesn't exist, but product name exists:
|
|
||||||
* ProgramData\<product name>\updates\
|
|
||||||
|
|
@ -1,76 +0,0 @@
|
|||||||
diff -up firefox-71.0/widget/gtk/mozcontainer.cpp.mozilla-1593408 firefox-71.0/widget/gtk/mozcontainer.cpp
|
|
||||||
--- firefox-71.0/widget/gtk/mozcontainer.cpp.mozilla-1593408 2019-11-26 01:02:30.000000000 +0100
|
|
||||||
+++ firefox-71.0/widget/gtk/mozcontainer.cpp 2019-11-28 11:29:58.522095531 +0100
|
|
||||||
@@ -76,6 +76,10 @@ static void moz_container_allocate_child
|
|
||||||
MozContainerChild* child);
|
|
||||||
static MozContainerChild* moz_container_get_child(MozContainer* container,
|
|
||||||
GtkWidget* child);
|
|
||||||
+#ifdef MOZ_WAYLAND
|
|
||||||
+static wl_surface* moz_container_get_gtk_container_surface(
|
|
||||||
+ MozContainer* container);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/* public methods */
|
|
||||||
|
|
||||||
@@ -158,6 +162,22 @@ void moz_container_move(MozContainer* co
|
|
||||||
container->subsurface_dx = dx;
|
|
||||||
container->subsurface_dy = dy;
|
|
||||||
container->surface_position_update = true;
|
|
||||||
+
|
|
||||||
+ // Wayland subsurface is not created yet.
|
|
||||||
+ if (!container->subsurface) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ // wl_subsurface_set_position is actually property of parent surface
|
|
||||||
+ // which is effective when parent surface is commited.
|
|
||||||
+ wl_surface* parent_surface =
|
|
||||||
+ moz_container_get_gtk_container_surface(container);
|
|
||||||
+ if (parent_surface) {
|
|
||||||
+ wl_subsurface_set_position(container->subsurface, container->subsurface_dx,
|
|
||||||
+ container->subsurface_dy);
|
|
||||||
+ wl_surface_commit(parent_surface);
|
|
||||||
+ container->surface_position_update = false;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
void moz_container_scale_update(MozContainer* container) {
|
|
||||||
@@ -620,18 +640,9 @@ struct wl_surface* moz_container_get_wl_
|
|
||||||
(void*)container->surface));
|
|
||||||
}
|
|
||||||
|
|
||||||
- // wl_subsurface_set_position is actually property of parent surface
|
|
||||||
- // which is effective when parent surface is commited.
|
|
||||||
if (container->surface_position_update) {
|
|
||||||
- wl_surface* parent_surface =
|
|
||||||
- moz_container_get_gtk_container_surface(container);
|
|
||||||
- if (parent_surface) {
|
|
||||||
- wl_subsurface_set_position(container->subsurface,
|
|
||||||
- container->subsurface_dx,
|
|
||||||
- container->subsurface_dy);
|
|
||||||
- wl_surface_commit(parent_surface);
|
|
||||||
- container->surface_position_update = true;
|
|
||||||
- }
|
|
||||||
+ moz_container_move(container, container->subsurface_dx,
|
|
||||||
+ container->subsurface_dy);
|
|
||||||
}
|
|
||||||
|
|
||||||
return container->surface;
|
|
||||||
@@ -641,12 +652,12 @@ struct wl_egl_window* moz_container_get_
|
|
||||||
LOGWAYLAND(("%s [%p] eglwindow %p\n", __FUNCTION__, (void*)container,
|
|
||||||
(void*)container->eglwindow));
|
|
||||||
|
|
||||||
- if (!container->eglwindow) {
|
|
||||||
- wl_surface* surface = moz_container_get_wl_surface(container);
|
|
||||||
- if (!surface) {
|
|
||||||
- return nullptr;
|
|
||||||
- }
|
|
||||||
+ wl_surface* surface = moz_container_get_wl_surface(container);
|
|
||||||
+ if (!surface) {
|
|
||||||
+ return nullptr;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
+ if (!container->eglwindow) {
|
|
||||||
GdkWindow* window = gtk_widget_get_window(GTK_WIDGET(container));
|
|
||||||
gint scale = moz_container_get_scale(container);
|
|
||||||
container->eglwindow =
|
|
4
sources
4
sources
@ -1,3 +1,3 @@
|
|||||||
|
SHA512 (firefox-72.0.source.tar.xz) = 77f55c4fb366c7050de32e82a98e16c566ffa8003ba48e6e5d734d08437a6badeaf63a5948224c18d89ff8c2b6ae6a64aad2a63e319a0a0cc0918c53165c0a46
|
||||||
|
SHA512 (firefox-langpacks-72.0-20200103.tar.xz) = e86c7848051154e033232d3d3766db07f328c2f71c4151898a8631c4834b04682ae051bb582e1d8aeaceebf37e90904e129045ee3d6aba3fd7619e400cf87dce
|
||||||
SHA512 (cbindgen-vendor.tar.xz) = 88afa0bc6af525cbb46bc75578b90419b28b95b396d5002fbf299a78a173681b840096ff83ef6e48553d1a5e0aa04e79383ab4d09bf431f3b864fcbacc7de46d
|
SHA512 (cbindgen-vendor.tar.xz) = 88afa0bc6af525cbb46bc75578b90419b28b95b396d5002fbf299a78a173681b840096ff83ef6e48553d1a5e0aa04e79383ab4d09bf431f3b864fcbacc7de46d
|
||||||
SHA512 (firefox-71.0.source.tar.xz) = 2f60bb7513dc2e730d8d558faad30367e12d27cb24b630aaebeb0473d0a202a3d4838b253d631722d57fb26f54145e296a710ec1714d3ba27dd71c6c1c52e920
|
|
||||||
SHA512 (firefox-langpacks-71.0-20191202.tar.xz) = 9b632263539c65bfb31c51704b8e8c87cc8e9cfb33a5f0764ad2d55206069ec272df009b13c5242633f62808a5cddc34a7a9c1ecdbd2c03fbe473adc83e12c79
|
|
||||||
|
Loading…
Reference in New Issue
Block a user