Updated to 66.0 (Build 3), Re-enable s390x arches, Fixed Wayland specific bugs mozbz#1535567, mozbz#1431399
This commit is contained in:
parent
295a18adce
commit
2253caedfa
1
.gitignore
vendored
1
.gitignore
vendored
@ -331,3 +331,4 @@ firefox-3.6.4.source.tar.bz2
|
|||||||
/firefox-langpacks-65.0.2-20190301.tar.xz
|
/firefox-langpacks-65.0.2-20190301.tar.xz
|
||||||
/firefox-66.0.source.tar.xz
|
/firefox-66.0.source.tar.xz
|
||||||
/firefox-langpacks-66.0-20190312.tar.xz
|
/firefox-langpacks-66.0-20190312.tar.xz
|
||||||
|
/firefox-langpacks-66.0-20190315.tar.xz
|
||||||
|
@ -13,6 +13,8 @@ ac_add_options --enable-chrome-format=omni
|
|||||||
ac_add_options --enable-pulseaudio
|
ac_add_options --enable-pulseaudio
|
||||||
ac_add_options --without-system-icu
|
ac_add_options --without-system-icu
|
||||||
ac_add_options --with-mozilla-api-keyfile=../mozilla-api-key
|
ac_add_options --with-mozilla-api-keyfile=../mozilla-api-key
|
||||||
|
ac_add_options --with-google-location-service-api-keyfile=../google-api-key
|
||||||
|
ac_add_options --with-google-safebrowsing-api-keyfile=../google-api-key
|
||||||
ac_add_options --enable-release
|
ac_add_options --enable-release
|
||||||
ac_add_options --update-channel=release
|
ac_add_options --update-channel=release
|
||||||
ac_add_options --disable-system-sqlite
|
ac_add_options --disable-system-sqlite
|
||||||
|
13
firefox.spec
13
firefox.spec
@ -4,7 +4,7 @@
|
|||||||
# Disabled arm due to rhbz#1658940
|
# Disabled arm due to rhbz#1658940
|
||||||
ExcludeArch: armv7hl
|
ExcludeArch: armv7hl
|
||||||
# Disabled due to https://pagure.io/fedora-infrastructure/issue/7581
|
# Disabled due to https://pagure.io/fedora-infrastructure/issue/7581
|
||||||
ExcludeArch: s390x
|
# ExcludeArch: s390x
|
||||||
|
|
||||||
%global system_nss 1
|
%global system_nss 1
|
||||||
%global system_ffi 1
|
%global system_ffi 1
|
||||||
@ -154,6 +154,8 @@ Patch417: bug1375074-save-restore-x28.patch
|
|||||||
Patch574: firefox-pipewire.patch
|
Patch574: firefox-pipewire.patch
|
||||||
Patch575: mozilla-1423598-popup.patch
|
Patch575: mozilla-1423598-popup.patch
|
||||||
Patch576: mozilla-1532643-popup.patch
|
Patch576: mozilla-1532643-popup.patch
|
||||||
|
Patch577: mozilla-1535567.patch
|
||||||
|
Patch578: mozilla-1431399.patch
|
||||||
|
|
||||||
# PGO/LTO patches
|
# PGO/LTO patches
|
||||||
Patch600: pgo.patch
|
Patch600: pgo.patch
|
||||||
@ -359,6 +361,8 @@ This package contains results of tests executed during build.
|
|||||||
%endif
|
%endif
|
||||||
%patch575 -p1 -b .mozilla-1423598-popup
|
%patch575 -p1 -b .mozilla-1423598-popup
|
||||||
%patch576 -p1 -b .mozilla-1532643-popup
|
%patch576 -p1 -b .mozilla-1532643-popup
|
||||||
|
%patch577 -p1 -b .mozilla-1535567
|
||||||
|
%patch578 -p1 -b .mozilla-1431399
|
||||||
|
|
||||||
# PGO patches
|
# PGO patches
|
||||||
%patch600 -p1 -b .pgo
|
%patch600 -p1 -b .pgo
|
||||||
@ -906,8 +910,13 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Mar 15 2019 Martin Stransky <stransky@redhat.com> - 66.0-2
|
||||||
|
- Updated to 66.0 (Build 3)
|
||||||
|
- Re-enable s390x arches
|
||||||
|
- Fixed Wayland specific bugs mozbz#1535567, mozbz#1431399
|
||||||
|
|
||||||
* Tue Mar 12 2019 Martin Stransky <stransky@redhat.com> - 66.0-1
|
* Tue Mar 12 2019 Martin Stransky <stransky@redhat.com> - 66.0-1
|
||||||
- Updated to 66 Build 1
|
- Updated to 66.0 (Build 1)
|
||||||
|
|
||||||
* Fri Mar 1 2019 Martin Stransky <stransky@redhat.com> - 65.0.2-1
|
* Fri Mar 1 2019 Martin Stransky <stransky@redhat.com> - 65.0.2-1
|
||||||
- Updated to 65.0.2
|
- Updated to 65.0.2
|
||||||
|
17
mozilla-1431399.patch
Normal file
17
mozilla-1431399.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
||||||
|
--- a/widget/gtk/nsWindow.cpp
|
||||||
|
+++ b/widget/gtk/nsWindow.cpp
|
||||||
|
@@ -3242,6 +3242,12 @@
|
||||||
|
mBounds = aRect;
|
||||||
|
ConstrainSize(&mBounds.width, &mBounds.height);
|
||||||
|
|
||||||
|
+ // eWindowType_child is not supported on Wayland. Just switch to toplevel
|
||||||
|
+ // as a workaround.
|
||||||
|
+ if (!mIsX11Display && mWindowType == eWindowType_child) {
|
||||||
|
+ mWindowType = eWindowType_toplevel;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// figure out our parent window
|
||||||
|
GtkWidget *parentMozContainer = nullptr;
|
||||||
|
GtkContainer *parentGtkContainer = nullptr;
|
||||||
|
|
266
mozilla-1535567.patch
Normal file
266
mozilla-1535567.patch
Normal file
@ -0,0 +1,266 @@
|
|||||||
|
diff -up firefox-66.0/media/libyuv/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.old firefox-66.0/media/libyuv/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium
|
||||||
|
diff -up firefox-66.0/media/webrtc/trunk/Makefile.old firefox-66.0/media/webrtc/trunk/Makefile
|
||||||
|
diff -up firefox-66.0/widget/gtk/mozcontainer.cpp.old firefox-66.0/widget/gtk/mozcontainer.cpp
|
||||||
|
--- firefox-66.0/widget/gtk/mozcontainer.cpp.old 2019-03-14 23:12:56.000000000 +0100
|
||||||
|
+++ firefox-66.0/widget/gtk/mozcontainer.cpp 2019-03-15 13:23:59.366840324 +0100
|
||||||
|
@@ -20,6 +20,20 @@
|
||||||
|
# include "maiRedundantObjectFactory.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#undef LOG
|
||||||
|
+#ifdef MOZ_LOGGING
|
||||||
|
+
|
||||||
|
+# include "mozilla/Logging.h"
|
||||||
|
+# include "nsTArray.h"
|
||||||
|
+# include "Units.h"
|
||||||
|
+
|
||||||
|
+extern mozilla::LazyLogModule gWidgetLog;
|
||||||
|
+
|
||||||
|
+# define LOG(args) MOZ_LOG(gWidgetLog, mozilla::LogLevel::Debug, args)
|
||||||
|
+#else
|
||||||
|
+# define LOG(args)
|
||||||
|
+#endif /* MOZ_LOGGING */
|
||||||
|
+
|
||||||
|
#ifdef MOZ_WAYLAND
|
||||||
|
using namespace mozilla;
|
||||||
|
using namespace mozilla::widget;
|
||||||
|
@@ -157,10 +171,14 @@ void moz_container_init(MozContainer *co
|
||||||
|
container->subsurface = nullptr;
|
||||||
|
container->eglwindow = nullptr;
|
||||||
|
container->frame_callback_handler = nullptr;
|
||||||
|
+ container->frame_callback_handler_surface_id = -1;
|
||||||
|
// We can draw to x11 window any time.
|
||||||
|
container->ready_to_draw = GDK_IS_X11_DISPLAY(gdk_display_get_default());
|
||||||
|
container->surface_needs_clear = true;
|
||||||
|
+ container->inital_draw_cb = nullptr;
|
||||||
|
#endif
|
||||||
|
+
|
||||||
|
+ LOG(("moz_container_class_init() [%p]\n", (void *)container));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(MOZ_WAYLAND)
|
||||||
|
@@ -170,36 +188,92 @@ static wl_surface *moz_container_get_gtk
|
||||||
|
dlsym(RTLD_DEFAULT, "gdk_wayland_window_get_wl_surface");
|
||||||
|
|
||||||
|
GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(container));
|
||||||
|
- return sGdkWaylandWindowGetWlSurface(window);
|
||||||
|
+ wl_surface *surface = sGdkWaylandWindowGetWlSurface(window);
|
||||||
|
+
|
||||||
|
+ LOG(("moz_container_get_gtk_container_surface() [%p] wl_surface %p ID %d\n",
|
||||||
|
+ (void *)container, (void *)surface,
|
||||||
|
+ surface ? wl_proxy_get_id((struct wl_proxy *)surface) : -1));
|
||||||
|
+
|
||||||
|
+ return surface;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void frame_callback_handler(void *data, struct wl_callback *callback,
|
||||||
|
uint32_t time) {
|
||||||
|
MozContainer *container = MOZ_CONTAINER(data);
|
||||||
|
+
|
||||||
|
+ LOG(
|
||||||
|
+ ("moz_container_frame_callback_handler() [%p] frame_callback_handler %p "
|
||||||
|
+ "ready_to_draw %d (set to true) "
|
||||||
|
+ "inital_draw callback %d\n",
|
||||||
|
+ (void *)container, (void *)container->frame_callback_handler,
|
||||||
|
+ container->ready_to_draw, container->inital_draw_cb ? 1 : 0));
|
||||||
|
+
|
||||||
|
g_clear_pointer(&container->frame_callback_handler, wl_callback_destroy);
|
||||||
|
+ container->frame_callback_handler_surface_id = -1;
|
||||||
|
+
|
||||||
|
+ if (!container->ready_to_draw && container->inital_draw_cb) {
|
||||||
|
+ container->inital_draw_cb();
|
||||||
|
+ }
|
||||||
|
container->ready_to_draw = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
+void moz_container_set_initial_draw_callback(
|
||||||
|
+ MozContainer *container, std::function<void(void)> inital_draw_cb) {
|
||||||
|
+ container->inital_draw_cb = inital_draw_cb;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static const struct wl_callback_listener frame_listener = {
|
||||||
|
frame_callback_handler};
|
||||||
|
|
||||||
|
-static gboolean moz_container_map_wayland(GtkWidget *widget,
|
||||||
|
- GdkEventAny *event) {
|
||||||
|
- MozContainer *container = MOZ_CONTAINER(widget);
|
||||||
|
-
|
||||||
|
- if (container->ready_to_draw || container->frame_callback_handler) {
|
||||||
|
- return FALSE;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
+static void moz_container_request_parent_frame_callback(
|
||||||
|
+ MozContainer *container) {
|
||||||
|
wl_surface *gtk_container_surface =
|
||||||
|
moz_container_get_gtk_container_surface(container);
|
||||||
|
+ int gtk_container_surface_id =
|
||||||
|
+ gtk_container_surface
|
||||||
|
+ ? wl_proxy_get_id((struct wl_proxy *)gtk_container_surface)
|
||||||
|
+ : -1;
|
||||||
|
+
|
||||||
|
+ LOG(
|
||||||
|
+ ("moz_container_request_parent_frame_callback() [%p] "
|
||||||
|
+ "container->frame_callback_handler %p "
|
||||||
|
+ "container->frame_callback_handler_surface_id %d\n",
|
||||||
|
+ (void *)container, container->frame_callback_handler,
|
||||||
|
+ container->frame_callback_handler_surface_id));
|
||||||
|
+
|
||||||
|
+ if (container->frame_callback_handler &&
|
||||||
|
+ container->frame_callback_handler_surface_id ==
|
||||||
|
+ gtk_container_surface_id) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // If there's pending frame callback, delete it.
|
||||||
|
+ if (container->frame_callback_handler) {
|
||||||
|
+ g_clear_pointer(&container->frame_callback_handler, wl_callback_destroy);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (gtk_container_surface) {
|
||||||
|
+ container->frame_callback_handler_surface_id = gtk_container_surface_id;
|
||||||
|
container->frame_callback_handler = wl_surface_frame(gtk_container_surface);
|
||||||
|
wl_callback_add_listener(container->frame_callback_handler, &frame_listener,
|
||||||
|
container);
|
||||||
|
+ } else {
|
||||||
|
+ container->frame_callback_handler_surface_id = -1;
|
||||||
|
}
|
||||||
|
+}
|
||||||
|
|
||||||
|
+static gboolean moz_container_map_wayland(GtkWidget *widget,
|
||||||
|
+ GdkEventAny *event) {
|
||||||
|
+ MozContainer *container = MOZ_CONTAINER(widget);
|
||||||
|
+
|
||||||
|
+ LOG(("moz_container_map_wayland() begin [%p] ready_to_draw %d\n",
|
||||||
|
+ (void *)container, container->ready_to_draw));
|
||||||
|
+
|
||||||
|
+ if (container->ready_to_draw) {
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ moz_container_request_parent_frame_callback(MOZ_CONTAINER(widget));
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -208,9 +282,12 @@ static void moz_container_unmap_wayland(
|
||||||
|
g_clear_pointer(&container->subsurface, wl_subsurface_destroy);
|
||||||
|
g_clear_pointer(&container->surface, wl_surface_destroy);
|
||||||
|
g_clear_pointer(&container->frame_callback_handler, wl_callback_destroy);
|
||||||
|
+ container->frame_callback_handler_surface_id = -1;
|
||||||
|
|
||||||
|
container->surface_needs_clear = true;
|
||||||
|
container->ready_to_draw = false;
|
||||||
|
+
|
||||||
|
+ LOG(("moz_container_unmap_wayland() [%p]\n", (void *)container));
|
||||||
|
}
|
||||||
|
|
||||||
|
static gint moz_container_get_scale(MozContainer *container) {
|
||||||
|
@@ -227,6 +304,10 @@ static gint moz_container_get_scale(MozC
|
||||||
|
|
||||||
|
void moz_container_scale_changed(MozContainer *container,
|
||||||
|
GtkAllocation *aAllocation) {
|
||||||
|
+ LOG(("moz_container_scale_changed() [%p] surface %p eglwindow %p\n",
|
||||||
|
+ (void *)container, (void *)container->surface,
|
||||||
|
+ (void *)container->eglwindow));
|
||||||
|
+
|
||||||
|
if (!container->surface) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
@@ -320,6 +401,10 @@ void moz_container_realize(GtkWidget *wi
|
||||||
|
: gtk_widget_get_visual(widget);
|
||||||
|
|
||||||
|
window = gdk_window_new(parent, &attributes, attributes_mask);
|
||||||
|
+
|
||||||
|
+ LOG(("moz_container_realize() [%p] GdkWindow %p\n", (void *)container,
|
||||||
|
+ (void *)window));
|
||||||
|
+
|
||||||
|
gdk_window_set_user_data(window, widget);
|
||||||
|
} else {
|
||||||
|
window = parent;
|
||||||
|
@@ -336,12 +421,8 @@ void moz_container_size_allocate(GtkWidg
|
||||||
|
|
||||||
|
g_return_if_fail(IS_MOZ_CONTAINER(widget));
|
||||||
|
|
||||||
|
- /* printf("moz_container_size_allocate %p %d %d %d %d\n",
|
||||||
|
- (void *)widget,
|
||||||
|
- allocation->x,
|
||||||
|
- allocation->y,
|
||||||
|
- allocation->width,
|
||||||
|
- allocation->height); */
|
||||||
|
+ LOG(("moz_container_size_allocate() [%p] %d %d %d %d\n", (void *)widget,
|
||||||
|
+ allocation->x, allocation->y, allocation->width, allocation->height));
|
||||||
|
|
||||||
|
/* short circuit if you can */
|
||||||
|
container = MOZ_CONTAINER(widget);
|
||||||
|
@@ -487,8 +568,13 @@ static void moz_container_add(GtkContain
|
||||||
|
|
||||||
|
#ifdef MOZ_WAYLAND
|
||||||
|
struct wl_surface *moz_container_get_wl_surface(MozContainer *container) {
|
||||||
|
+ LOG(("moz_container_get_wl_surface() [%p] surface %p ready_to_draw %d\n",
|
||||||
|
+ (void *)container, (void *)container->surface,
|
||||||
|
+ container->ready_to_draw));
|
||||||
|
+
|
||||||
|
if (!container->surface) {
|
||||||
|
if (!container->ready_to_draw) {
|
||||||
|
+ moz_container_request_parent_frame_callback(container);
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
GdkDisplay *display = gtk_widget_get_display(GTK_WIDGET(container));
|
||||||
|
@@ -526,10 +612,16 @@ struct wl_surface *moz_container_get_wl_
|
||||||
|
WaylandDisplayRelease(waylandDisplay);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ LOG(("moz_container_get_wl_surface() [%p] created surface %p\n",
|
||||||
|
+ (void *)container, (void *)container->surface));
|
||||||
|
+
|
||||||
|
return container->surface;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct wl_egl_window *moz_container_get_wl_egl_window(MozContainer *container) {
|
||||||
|
+ LOG(("moz_container_get_wl_egl_window() [%p] eglwindow %p\n",
|
||||||
|
+ (void *)container, (void *)container->eglwindow));
|
||||||
|
+
|
||||||
|
if (!container->eglwindow) {
|
||||||
|
wl_surface *surface = moz_container_get_wl_surface(container);
|
||||||
|
if (!surface) {
|
||||||
|
@@ -543,6 +635,10 @@ struct wl_egl_window *moz_container_get_
|
||||||
|
gdk_window_get_height(window) * scale);
|
||||||
|
wl_surface_set_buffer_scale(surface, scale);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ LOG(("moz_container_get_wl_egl_window() [%p] created eglwindow %p\n",
|
||||||
|
+ (void *)container, (void *)container->eglwindow));
|
||||||
|
+
|
||||||
|
return container->eglwindow;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff -up firefox-66.0/widget/gtk/mozcontainer.h.old firefox-66.0/widget/gtk/mozcontainer.h
|
||||||
|
--- firefox-66.0/widget/gtk/mozcontainer.h.old 2019-03-14 23:13:02.000000000 +0100
|
||||||
|
+++ firefox-66.0/widget/gtk/mozcontainer.h 2019-03-15 13:23:59.366840324 +0100
|
||||||
|
@@ -9,6 +9,7 @@
|
||||||
|
#define __MOZ_CONTAINER_H__
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
+#include <functional>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MozContainer
|
||||||
|
@@ -76,8 +77,10 @@ struct _MozContainer {
|
||||||
|
struct wl_subsurface *subsurface;
|
||||||
|
struct wl_egl_window *eglwindow;
|
||||||
|
struct wl_callback *frame_callback_handler;
|
||||||
|
+ int frame_callback_handler_surface_id;
|
||||||
|
gboolean surface_needs_clear;
|
||||||
|
gboolean ready_to_draw;
|
||||||
|
+ std::function<void(void)> inital_draw_cb;
|
||||||
|
#endif
|
||||||
|
gboolean force_default_visual;
|
||||||
|
};
|
||||||
|
@@ -100,6 +103,8 @@ gboolean moz_container_has_wl_egl_window
|
||||||
|
gboolean moz_container_surface_needs_clear(MozContainer *container);
|
||||||
|
void moz_container_scale_changed(MozContainer *container,
|
||||||
|
GtkAllocation *aAllocation);
|
||||||
|
+void moz_container_set_initial_draw_callback(
|
||||||
|
+ MozContainer *container, std::function<void(void)> inital_draw_cb);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __MOZ_CONTAINER_H__ */
|
4
sources
4
sources
@ -1,3 +1,3 @@
|
|||||||
SHA512 (cbindgen-vendor.tar.xz) = b6737ca86e6223bb9e25861dae05e18469aecbeaa74d0d24719f531b01c74b9a00d9ba4e7faf6366e98cb7f0bdbeedfc337b739fff60bb3d22faabe9751f7ded
|
SHA512 (cbindgen-vendor.tar.xz) = b6737ca86e6223bb9e25861dae05e18469aecbeaa74d0d24719f531b01c74b9a00d9ba4e7faf6366e98cb7f0bdbeedfc337b739fff60bb3d22faabe9751f7ded
|
||||||
SHA512 (firefox-66.0.source.tar.xz) = 8200c887ea9e05a7fac6e964de34b293b20af4e2e3e10bc664adc4204fd54d97b8d560665e1c7a2d93df58b424f8bdd88c927b4bf95351f56124b24f811640dd
|
SHA512 (firefox-66.0.source.tar.xz) = a9a13d9c42d4adc05e9783345eb9737c26c009cea3e79d1fc3332f4a55515152b48c3e1a01f44eac6b6f4fc4e076203934380a10d018c17fa225c1df71c6fe63
|
||||||
SHA512 (firefox-langpacks-66.0-20190312.tar.xz) = 243ae8d15c91fdc80ffa87e4586ac345ef60bb0a8e06afebeed7bc18b02c7302845961afee4c1d8684bcf9fed42f175b641f9b4053653dd000750f430a57d3ff
|
SHA512 (firefox-langpacks-66.0-20190315.tar.xz) = 5b2bc553b6adb2f95705089b093567798ab806abd5b73218a33428079edb7a89870e5a53d4b31cbe7e1f3ee7dd58ec04982601872bd45598168fb49311213941
|
||||||
|
Loading…
Reference in New Issue
Block a user