Updated to 67.0

This commit is contained in:
Martin Stransky 2019-05-15 16:14:03 +02:00
parent 72535be696
commit bbb92a8572
13 changed files with 143 additions and 407 deletions

2
.gitignore vendored
View File

@ -342,3 +342,5 @@ firefox-3.6.4.source.tar.bz2
/firefox-66.0.4.source.tar.xz /firefox-66.0.4.source.tar.xz
/firefox-66.0.5.source.tar.xz /firefox-66.0.5.source.tar.xz
/firefox-langpacks-66.0.5-20190508.tar.xz /firefox-langpacks-66.0.5-20190508.tar.xz
/firefox-67.0.source.tar.xz
/firefox-langpacks-67.0-20190515.tar.xz

View File

@ -98,13 +98,13 @@ ExcludeArch: s390x
Summary: Mozilla Firefox Web browser Summary: Mozilla Firefox Web browser
Name: firefox Name: firefox
Version: 66.0.5 Version: 67.0
Release: 1%{?pre_tag}%{?dist} Release: 1%{?pre_tag}%{?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}-20190508.tar.xz Source1: firefox-langpacks-%{version}%{?pre_version}-20190515.tar.xz
%endif %endif
Source2: cbindgen-vendor.tar.xz Source2: cbindgen-vendor.tar.xz
Source10: firefox-mozconfig Source10: firefox-mozconfig
@ -134,10 +134,7 @@ Patch37: build-jit-atomic-always-lucky.patch
Patch38: build-cacheFlush-missing.patch Patch38: build-cacheFlush-missing.patch
Patch40: build-aarch64-skia.patch Patch40: build-aarch64-skia.patch
Patch41: build-disable-elfhack.patch Patch41: build-disable-elfhack.patch
Patch42: mozilla-1515641-av1-build-1.patch
Patch43: mozilla-1515641-av1-build-2.patch
Patch44: build-arm-libopus.patch Patch44: build-arm-libopus.patch
Patch45: mozilla-1533969.patch
# Fedora specific patches # Fedora specific patches
Patch215: firefox-enable-addons.patch Patch215: firefox-enable-addons.patch
@ -162,7 +159,6 @@ 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 Patch577: mozilla-1535567.patch
Patch578: mozilla-1431399.patch
Patch579: mozilla-1468911.patch Patch579: mozilla-1468911.patch
Patch580: mozilla-1539471.patch Patch580: mozilla-1539471.patch
Patch581: mozilla-1517205.patch Patch581: mozilla-1517205.patch
@ -345,10 +341,7 @@ This package contains results of tests executed during build.
%patch41 -p1 -b .disable-elfhack %patch41 -p1 -b .disable-elfhack
%endif %endif
%patch3 -p1 -b .arm %patch3 -p1 -b .arm
%patch42 -p1 -b .mozilla-1515641
%patch43 -p1 -b .mozilla-1515641
%patch44 -p1 -b .build-arm-libopus %patch44 -p1 -b .build-arm-libopus
%patch45 -p1 -b .mozilla-1533969
# Fedora patches # Fedora patches
%patch215 -p1 -b .addons %patch215 -p1 -b .addons
@ -380,7 +373,6 @@ This package contains results of tests executed during build.
%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 %patch577 -p1 -b .mozilla-1535567
%patch578 -p1 -b .mozilla-1431399
%patch579 -p1 -b .mozilla-1468911 %patch579 -p1 -b .mozilla-1468911
%patch580 -p1 -b .mozilla-1539471 %patch580 -p1 -b .mozilla-1539471
%patch581 -p1 -b .mozilla-1517205 %patch581 -p1 -b .mozilla-1517205
@ -938,6 +930,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#--------------------------------------------------------------------- #---------------------------------------------------------------------
%changelog %changelog
* Wed May 15 2019 Martin Stransky <stransky@redhat.com> - 67.0-1
- Updated to 67.0
* Wed May 8 2019 Martin Stransky <stransky@redhat.com> - 66.0.5-1 * Wed May 8 2019 Martin Stransky <stransky@redhat.com> - 66.0.5-1
- Updated to 66.0.5 - Updated to 66.0.5

View File

@ -1,7 +1,7 @@
diff -up firefox-66.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-66.0/extensions/pref/autoconfig/src/nsReadConfig.cpp diff -up firefox-67.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-67.0/extensions/pref/autoconfig/src/nsReadConfig.cpp
--- firefox-66.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2019-03-12 01:22:16.000000000 +0100 --- firefox-67.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2019-05-14 01:08:09.000000000 +0200
+++ firefox-66.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2019-03-12 11:58:36.025238819 +0100 +++ firefox-67.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2019-05-15 15:10:23.860653275 +0200
@@ -244,8 +244,20 @@ nsresult nsReadConfig::openAndEvaluateJS @@ -246,8 +246,20 @@ nsresult nsReadConfig::openAndEvaluateJS
if (NS_FAILED(rv)) return rv; if (NS_FAILED(rv)) return rv;
rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile); rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
@ -23,22 +23,23 @@ diff -up firefox-66.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 fi
} else { } else {
nsAutoCString location("resource://gre/defaults/autoconfig/"); nsAutoCString location("resource://gre/defaults/autoconfig/");
location += aFileName; location += aFileName;
diff -up firefox-66.0/modules/libpref/Preferences.cpp.1170092 firefox-66.0/modules/libpref/Preferences.cpp diff -up firefox-67.0/modules/libpref/Preferences.cpp.1170092 firefox-67.0/modules/libpref/Preferences.cpp
--- firefox-66.0/modules/libpref/Preferences.cpp.1170092 2019-03-12 01:22:21.000000000 +0100 --- firefox-67.0/modules/libpref/Preferences.cpp.1170092 2019-05-15 15:10:23.860653275 +0200
+++ firefox-66.0/modules/libpref/Preferences.cpp 2019-03-12 11:58:36.026238817 +0100 +++ firefox-67.0/modules/libpref/Preferences.cpp 2019-05-15 15:11:58.160110320 +0200
@@ -4407,6 +4407,8 @@ float MOZ_MAYBE_UNUSED GetPref<float>(co @@ -4417,6 +4417,9 @@ float MOZ_MAYBE_UNUSED GetPref<float>(co
// //
// Thus, in the omni.jar case, we always load app-specific default // Thus, in the omni.jar case, we always load app-specific default
// preferences from omni.jar, whether or not `$app == $gre`. // preferences from omni.jar, whether or not `$app == $gre`.
+ //
+ // At very end load configuration from system config location: + // At very end load configuration from system config location:
+ // - /etc/firefox/pref/*.js + // - /etc/firefox/pref/*.js
nsresult rv; nsresult rv = NS_ERROR_FAILURE;
nsZipFind* findPtr; nsZipFind* findPtr;
diff -up firefox-66.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-66.0/toolkit/xre/nsXREDirProvider.cpp diff -up firefox-67.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-67.0/toolkit/xre/nsXREDirProvider.cpp
--- firefox-66.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2019-03-12 01:22:26.000000000 +0100 --- firefox-67.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2019-05-14 01:08:35.000000000 +0200
+++ firefox-66.0/toolkit/xre/nsXREDirProvider.cpp 2019-03-12 12:05:32.008280260 +0100 +++ firefox-67.0/toolkit/xre/nsXREDirProvider.cpp 2019-05-15 15:10:23.861653269 +0200
@@ -57,6 +57,7 @@ @@ -60,6 +60,7 @@
#endif #endif
#ifdef XP_UNIX #ifdef XP_UNIX
# include <ctype.h> # include <ctype.h>
@ -46,7 +47,7 @@ diff -up firefox-66.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-66.0/tool
#endif #endif
#ifdef XP_IOS #ifdef XP_IOS
# include "UIKitDirProvider.h" # include "UIKitDirProvider.h"
@@ -521,6 +522,21 @@ nsXREDirProvider::GetFile(const char* aP @@ -524,6 +525,21 @@ nsXREDirProvider::GetFile(const char* aP
} }
} }
} }
@ -68,7 +69,7 @@ diff -up firefox-66.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-66.0/tool
if (NS_FAILED(rv) || !file) return NS_ERROR_FAILURE; if (NS_FAILED(rv) || !file) return NS_ERROR_FAILURE;
if (ensureFilePermissions) { if (ensureFilePermissions) {
@@ -877,6 +893,16 @@ nsresult nsXREDirProvider::GetFilesInter @@ -880,6 +896,16 @@ nsresult nsXREDirProvider::GetFilesInter
LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories); LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories);
LoadDirsIntoArray(mAppBundleDirectories, kAppendPrefDir, directories); LoadDirsIntoArray(mAppBundleDirectories, kAppendPrefDir, directories);
@ -85,9 +86,9 @@ diff -up firefox-66.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-66.0/tool
rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile)); rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile));
} else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) { } else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) {
// NS_APP_CHROME_DIR_LIST is only used to get default (native) icons // NS_APP_CHROME_DIR_LIST is only used to get default (native) icons
diff -up firefox-66.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-66.0/xpcom/io/nsAppDirectoryServiceDefs.h diff -up firefox-67.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-67.0/xpcom/io/nsAppDirectoryServiceDefs.h
--- firefox-66.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2019-03-12 01:22:26.000000000 +0100 --- firefox-67.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2019-05-14 01:08:28.000000000 +0200
+++ firefox-66.0/xpcom/io/nsAppDirectoryServiceDefs.h 2019-03-12 11:58:36.027238815 +0100 +++ firefox-67.0/xpcom/io/nsAppDirectoryServiceDefs.h 2019-05-15 15:10:24.044652216 +0200
@@ -62,6 +62,7 @@ @@ -62,6 +62,7 @@
#define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL" #define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL"
#define NS_APP_PREFS_OVERRIDE_DIR \ #define NS_APP_PREFS_OVERRIDE_DIR \

View File

@ -1,21 +1,7 @@
diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h diff -up firefox-67.0/widget/gtk/nsWindow.cpp.mozilla-1423598-popup firefox-67.0/widget/gtk/nsWindow.cpp
--- a/widget/gtk/nsWindow.h --- firefox-67.0/widget/gtk/nsWindow.cpp.mozilla-1423598-popup 2019-05-15 15:21:25.590222702 +0200
+++ b/widget/gtk/nsWindow.h +++ firefox-67.0/widget/gtk/nsWindow.cpp 2019-05-15 15:24:26.925439991 +0200
@@ -457,6 +457,10 @@ @@ -1115,13 +1115,89 @@ void nsWindow::Move(double aX, double aY
nsWindow* GetTransientForWindowIfPopup();
bool IsHandlingTouchSequence(GdkEventSequence* aSequence);
+ void NativeMoveResizeWaylandPopup(GdkPoint* aPosition, GdkRectangle* aSize);
+
+ GtkTextDirection GetTextDirection();
+
#ifdef MOZ_X11
typedef enum {GTK_WIDGET_COMPOSIDED_DEFAULT = 0,
GTK_WIDGET_COMPOSIDED_DISABLED = 1,
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -1109,13 +1109,89 @@
NotifyRollupGeometryChange(); NotifyRollupGeometryChange();
} }
@ -110,7 +96,7 @@ diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
} }
} }
@@ -3397,11 +3473,6 @@ @@ -3412,11 +3488,6 @@ nsresult nsWindow::Create(nsIWidget *aPa
GDK_WINDOW_TYPE_HINT_DIALOG); GDK_WINDOW_TYPE_HINT_DIALOG);
gtk_window_set_transient_for(GTK_WINDOW(mShell), topLevelParent); gtk_window_set_transient_for(GTK_WINDOW(mShell), topLevelParent);
} else if (mWindowType == eWindowType_popup) { } else if (mWindowType == eWindowType_popup) {
@ -122,7 +108,7 @@ diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
gtk_window_set_wmclass(GTK_WINDOW(mShell), "Popup", gtk_window_set_wmclass(GTK_WINDOW(mShell), "Popup",
gdk_get_program_class()); gdk_get_program_class());
@@ -3456,6 +3527,14 @@ @@ -3475,6 +3546,14 @@ nsresult nsWindow::Create(nsIWidget *aPa
if (topLevelParent) { if (topLevelParent) {
gtk_window_set_transient_for(GTK_WINDOW(mShell), topLevelParent); gtk_window_set_transient_for(GTK_WINDOW(mShell), topLevelParent);
} }
@ -137,7 +123,7 @@ diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
} else { // must be eWindowType_toplevel } else { // must be eWindowType_toplevel
SetDefaultIcon(); SetDefaultIcon();
gtk_window_set_wmclass(GTK_WINDOW(mShell), "Toplevel", gtk_window_set_wmclass(GTK_WINDOW(mShell), "Toplevel",
@@ -3895,23 +3974,27 @@ @@ -3918,23 +3997,27 @@ void nsWindow::NativeMoveResize() {
LOG(("nsWindow::NativeMoveResize [%p] %d %d %d %d\n", (void *)this, topLeft.x, LOG(("nsWindow::NativeMoveResize [%p] %d %d %d %d\n", (void *)this, topLeft.x,
topLeft.y, size.width, size.height)); topLeft.y, size.width, size.height));
@ -182,8 +168,8 @@ diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
} }
#ifdef MOZ_X11 #ifdef MOZ_X11
@@ -6791,3 +6874,18 @@ @@ -6818,3 +6901,18 @@ void nsWindow::ForceTitlebarRedraw(void)
nsChangeHint_RepaintFrame); RestyleHint{0}, nsChangeHint_RepaintFrame);
} }
} }
+ +
@ -201,4 +187,17 @@ diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+ bool isFrameRTL = !(wm.IsVertical() ? wm.IsVerticalLR() : wm.IsBidiLTR()); + bool isFrameRTL = !(wm.IsVertical() ? wm.IsVerticalLR() : wm.IsBidiLTR());
+ return isFrameRTL ? GTK_TEXT_DIR_RTL : GTK_TEXT_DIR_LTR; + return isFrameRTL ? GTK_TEXT_DIR_RTL : GTK_TEXT_DIR_LTR;
+} +}
diff -up firefox-67.0/widget/gtk/nsWindow.h.mozilla-1423598-popup firefox-67.0/widget/gtk/nsWindow.h
--- firefox-67.0/widget/gtk/nsWindow.h.mozilla-1423598-popup 2019-05-14 01:08:37.000000000 +0200
+++ firefox-67.0/widget/gtk/nsWindow.h 2019-05-15 15:21:25.890221541 +0200
@@ -460,6 +460,10 @@ class nsWindow final : public nsBaseWidg
nsWindow* GetTransientForWindowIfPopup();
bool IsHandlingTouchSequence(GdkEventSequence* aSequence);
+ void NativeMoveResizeWaylandPopup(GdkPoint* aPosition, GdkRectangle* aSize);
+
+ GtkTextDirection GetTextDirection();
+
#ifdef MOZ_X11
typedef enum {GTK_WIDGET_COMPOSIDED_DEFAULT = 0,
GTK_WIDGET_COMPOSIDED_DISABLED = 1,

View File

@ -1,17 +0,0 @@
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;

View File

@ -1,43 +0,0 @@
# HG changeset patch
# User Mike Hommey <mh+mozilla@glandium.org>
# Date 1549401545 0
# Node ID 9820df609ddf5ecda41c78d2535eca1aa33e8234
# Parent bdd5fb080b54e421753d6ab7587c91d8522c6690
Bug 1515641 - Turn --enable-av1 around. r=nalexander
AV1 is actually enabled everywhere by default (except 32-bits Windows
when building with MSVC), so let's make the option --disable-av1 rather
than --enable-av1. Also, since AV1 is backed by both libaom and
libdav1d, remove mentions to libaom.
Differential Revision: https://phabricator.services.mozilla.com/D18294
diff --git a/toolkit/moz.configure b/toolkit/moz.configure
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -415,20 +415,20 @@ def ffmpeg(value, target):
enabled = target.os not in ('Android', 'WINNT')
if enabled:
return True
set_config('MOZ_FFMPEG', ffmpeg)
set_define('MOZ_FFMPEG', ffmpeg)
imply_option('--enable-fmp4', ffmpeg, '--enable-ffmpeg')
-# Libaom AV1 Video Codec Support
+# AV1 Video Codec Support
# ==============================================================
-option('--enable-av1',
- help='Enable libaom for av1 video support')
+option('--disable-av1',
+ help='Disable av1 video support')
@depends('--enable-av1', target, c_compiler)
def av1(value, target, c_compiler):
enabled = bool(value)
if value.origin == 'default':
if target.os == 'WINNT' and target.cpu == 'x86' and \
c_compiler and c_compiler.type == 'msvc':
enabled = False

View File

@ -1,32 +0,0 @@
diff -up firefox-66.0/media/libdav1d/moz.build.mozilla-1515641 firefox-66.0/media/libdav1d/moz.build
--- firefox-66.0/media/libdav1d/moz.build.mozilla-1515641 2019-03-12 14:51:09.102398904 +0100
+++ firefox-66.0/media/libdav1d/moz.build 2019-03-12 14:52:12.601193367 +0100
@@ -25,7 +25,7 @@ SOURCES += [
]
# Enable ASM build only on Linux for now.
-if CONFIG['OS_TARGET'] == 'Linux' and (CONFIG['CPU_ARCH'] in ('x86', 'x86_64')):
+if CONFIG['MOZ_DAV1D_ASM']:
# Default stack aligment is 16 bytes
DIRS += ['asm']
diff -up firefox-66.0/toolkit/moz.configure.mozilla-1515641 firefox-66.0/toolkit/moz.configure
--- firefox-66.0/toolkit/moz.configure.mozilla-1515641 2019-03-12 14:51:09.101398907 +0100
+++ firefox-66.0/toolkit/moz.configure 2019-03-12 14:51:09.103398901 +0100
@@ -437,6 +437,16 @@ def av1(value, target, c_compiler):
if enabled:
return True
+@depends(target, nasm_version, when=av1 & compile_environment)
+def dav1d_asm(target, nasm_version):
+ if target.os == 'GNU' and target.kernel == 'Linux' and target.cpu in ('x86', 'x86_64'):
+ if nasm_version < '2.13':
+ die('nasm 2.13 or greater is required for AV1 support. '
+ 'Either install nasm or add --disable-av1 to your configure options.')
+ return True
+
+
+set_config('MOZ_DAV1D_ASM', dav1d_asm)
set_config('MOZ_AV1', av1)
set_define('MOZ_AV1', av1)

View File

@ -1,17 +1,19 @@
diff -up firefox-66.0.3/widget/gtk/mozcontainer.cpp.mozilla-1517205 firefox-66.0.3/widget/gtk/mozcontainer.cpp diff -up firefox-67.0/widget/gtk/mozcontainer.cpp.mozilla-1517205 firefox-67.0/widget/gtk/mozcontainer.cpp
--- firefox-66.0.3/widget/gtk/mozcontainer.cpp.mozilla-1517205 2019-04-11 13:12:24.583232286 +0200 --- firefox-67.0/widget/gtk/mozcontainer.cpp.mozilla-1517205 2019-05-15 16:00:23.366366060 +0200
+++ firefox-66.0.3/widget/gtk/mozcontainer.cpp 2019-04-11 13:20:06.900192082 +0200 +++ firefox-67.0/widget/gtk/mozcontainer.cpp 2019-05-15 16:02:01.596967825 +0200
@@ -609,7 +609,6 @@ struct wl_surface *moz_container_get_wl_ @@ -567,8 +567,7 @@ struct wl_surface *moz_container_get_wl_
moz_container_get_scale(container));
wl_surface_commit(container->surface); wl_surface_commit(container->surface);
wl_display_flush(waylandDisplay->GetDisplay()); - wl_display_flush(waylandDisplay->GetDisplay());
- WaylandDisplayRelease(waylandDisplay); - WaylandDisplayRelease(waylandDisplay);
+ wl_display_flush(waylandDisplay->GetDisplay());
} }
LOG(("moz_container_get_wl_surface() [%p] created surface %p\n", return container->surface;
diff -up firefox-66.0.3/widget/gtk/nsClipboardWayland.cpp.mozilla-1517205 firefox-66.0.3/widget/gtk/nsClipboardWayland.cpp diff -up firefox-67.0/widget/gtk/nsClipboardWayland.cpp.mozilla-1517205 firefox-67.0/widget/gtk/nsClipboardWayland.cpp
--- firefox-66.0.3/widget/gtk/nsClipboardWayland.cpp.mozilla-1517205 2019-04-09 22:00:47.000000000 +0200 --- firefox-67.0/widget/gtk/nsClipboardWayland.cpp.mozilla-1517205 2019-05-14 01:08:37.000000000 +0200
+++ firefox-66.0.3/widget/gtk/nsClipboardWayland.cpp 2019-04-11 13:12:24.583232286 +0200 +++ firefox-67.0/widget/gtk/nsClipboardWayland.cpp 2019-05-15 16:00:23.367366056 +0200
@@ -639,7 +639,6 @@ static gboolean offer_hash_remove(gpoint @@ -639,7 +639,6 @@ static gboolean offer_hash_remove(gpoint
nsRetrievalContextWayland::~nsRetrievalContextWayland(void) { nsRetrievalContextWayland::~nsRetrievalContextWayland(void) {
g_hash_table_foreach_remove(mActiveOffers, offer_hash_remove, nullptr); g_hash_table_foreach_remove(mActiveOffers, offer_hash_remove, nullptr);
@ -20,10 +22,10 @@ diff -up firefox-66.0.3/widget/gtk/nsClipboardWayland.cpp.mozilla-1517205 firefo
} }
GdkAtom *nsRetrievalContextWayland::GetTargets(int32_t aWhichClipboard, GdkAtom *nsRetrievalContextWayland::GetTargets(int32_t aWhichClipboard,
diff -up firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp.mozilla-1517205 firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp diff -up firefox-67.0/widget/gtk/nsWaylandDisplay.cpp.mozilla-1517205 firefox-67.0/widget/gtk/nsWaylandDisplay.cpp
--- firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp.mozilla-1517205 2019-04-09 22:01:14.000000000 +0200 --- firefox-67.0/widget/gtk/nsWaylandDisplay.cpp.mozilla-1517205 2019-05-14 01:08:37.000000000 +0200
+++ firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp 2019-04-11 13:20:26.169157682 +0200 +++ firefox-67.0/widget/gtk/nsWaylandDisplay.cpp 2019-05-15 16:00:23.368366052 +0200
@@ -19,6 +19,13 @@ namespace widget { @@ -21,6 +21,13 @@ namespace widget {
static nsWaylandDisplay *gWaylandDisplays[MAX_DISPLAY_CONNECTIONS]; static nsWaylandDisplay *gWaylandDisplays[MAX_DISPLAY_CONNECTIONS];
static StaticMutex gWaylandDisplaysMutex; static StaticMutex gWaylandDisplaysMutex;
@ -37,7 +39,7 @@ diff -up firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp.mozilla-1517205 firefox-
// Each thread which is using wayland connection (wl_display) has to operate // Each thread which is using wayland connection (wl_display) has to operate
// its own wl_event_queue. Main Firefox thread wl_event_queue is handled // its own wl_event_queue. Main Firefox thread wl_event_queue is handled
// by Gtk main loop, other threads/wl_event_queue has to be handled by us. // by Gtk main loop, other threads/wl_event_queue has to be handled by us.
@@ -33,7 +40,6 @@ static nsWaylandDisplay *WaylandDisplayG @@ -35,7 +42,6 @@ static nsWaylandDisplay *WaylandDisplayG
const StaticMutexAutoLock &) { const StaticMutexAutoLock &) {
for (auto &display : gWaylandDisplays) { for (auto &display : gWaylandDisplays) {
if (display && display->Matches(aDisplay)) { if (display && display->Matches(aDisplay)) {
@ -45,7 +47,7 @@ diff -up firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp.mozilla-1517205 firefox-
return display; return display;
} }
} }
@@ -41,7 +47,7 @@ static nsWaylandDisplay *WaylandDisplayG @@ -43,7 +49,7 @@ static nsWaylandDisplay *WaylandDisplayG
for (auto &display : gWaylandDisplays) { for (auto &display : gWaylandDisplays) {
if (display == nullptr) { if (display == nullptr) {
display = new nsWaylandDisplay(aDisplay); display = new nsWaylandDisplay(aDisplay);
@ -54,7 +56,7 @@ diff -up firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp.mozilla-1517205 firefox-
return display; return display;
} }
} }
@@ -65,26 +71,6 @@ nsWaylandDisplay *WaylandDisplayGet(GdkD @@ -67,26 +73,6 @@ nsWaylandDisplay *WaylandDisplayGet(GdkD
return WaylandDisplayGetLocked(display, lock); return WaylandDisplayGetLocked(display, lock);
} }
@ -81,7 +83,7 @@ diff -up firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp.mozilla-1517205 firefox-
static void WaylandDisplayLoopLocked(wl_display *aDisplay, static void WaylandDisplayLoopLocked(wl_display *aDisplay,
const StaticMutexAutoLock &) { const StaticMutexAutoLock &) {
for (auto &display : gWaylandDisplays) { for (auto &display : gWaylandDisplays) {
@@ -128,6 +114,8 @@ static void global_registry_handler(void @@ -130,6 +116,8 @@ static void global_registry_handler(void
uint32_t id, const char *interface, uint32_t id, const char *interface,
uint32_t version) { uint32_t version) {
auto display = reinterpret_cast<nsWaylandDisplay *>(data); auto display = reinterpret_cast<nsWaylandDisplay *>(data);
@ -90,7 +92,7 @@ diff -up firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp.mozilla-1517205 firefox-
if (strcmp(interface, "wl_shm") == 0) { if (strcmp(interface, "wl_shm") == 0) {
auto shm = static_cast<wl_shm *>( auto shm = static_cast<wl_shm *>(
@@ -178,9 +166,7 @@ bool nsWaylandDisplay::Matches(wl_displa @@ -180,9 +168,7 @@ bool nsWaylandDisplay::Matches(wl_displa
return mThreadId == PR_GetCurrentThread() && aDisplay == mDisplay; return mThreadId == PR_GetCurrentThread() && aDisplay == mDisplay;
} }
@ -101,7 +103,7 @@ diff -up firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp.mozilla-1517205 firefox-
: mThreadId(PR_GetCurrentThread()), : mThreadId(PR_GetCurrentThread()),
mDisplay(aDisplay), mDisplay(aDisplay),
mEventQueue(nullptr), mEventQueue(nullptr),
@@ -188,9 +174,10 @@ nsWaylandDisplay::nsWaylandDisplay(wl_di @@ -190,9 +176,10 @@ nsWaylandDisplay::nsWaylandDisplay(wl_di
mSubcompositor(nullptr), mSubcompositor(nullptr),
mSeat(nullptr), mSeat(nullptr),
mShm(nullptr), mShm(nullptr),
@ -115,7 +117,7 @@ diff -up firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp.mozilla-1517205 firefox-
if (NS_IsMainThread()) { if (NS_IsMainThread()) {
// Use default event queue in main thread operated by Gtk+. // Use default event queue in main thread operated by Gtk+.
@@ -201,17 +188,19 @@ nsWaylandDisplay::nsWaylandDisplay(wl_di @@ -203,17 +190,19 @@ nsWaylandDisplay::nsWaylandDisplay(wl_di
mEventQueue = wl_display_create_queue(mDisplay); mEventQueue = wl_display_create_queue(mDisplay);
MessageLoop::current()->PostTask(NewRunnableFunction( MessageLoop::current()->PostTask(NewRunnableFunction(
"WaylandDisplayLoop", &WaylandDisplayLoop, mDisplay)); "WaylandDisplayLoop", &WaylandDisplayLoop, mDisplay));
@ -137,9 +139,9 @@ diff -up firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp.mozilla-1517205 firefox-
if (mEventQueue) { if (mEventQueue) {
wl_event_queue_destroy(mEventQueue); wl_event_queue_destroy(mEventQueue);
mEventQueue = nullptr; mEventQueue = nullptr;
diff -up firefox-66.0.3/widget/gtk/nsWaylandDisplay.h.mozilla-1517205 firefox-66.0.3/widget/gtk/nsWaylandDisplay.h diff -up firefox-67.0/widget/gtk/nsWaylandDisplay.h.mozilla-1517205 firefox-67.0/widget/gtk/nsWaylandDisplay.h
--- firefox-66.0.3/widget/gtk/nsWaylandDisplay.h.mozilla-1517205 2019-04-09 22:01:13.000000000 +0200 --- firefox-67.0/widget/gtk/nsWaylandDisplay.h.mozilla-1517205 2019-05-14 01:08:27.000000000 +0200
+++ firefox-66.0.3/widget/gtk/nsWaylandDisplay.h 2019-04-11 13:12:24.584232284 +0200 +++ firefox-67.0/widget/gtk/nsWaylandDisplay.h 2019-05-15 16:00:23.368366052 +0200
@@ -20,11 +20,10 @@ namespace widget { @@ -20,11 +20,10 @@ namespace widget {
// Our general connection to Wayland display server, // Our general connection to Wayland display server,
@ -185,9 +187,9 @@ diff -up firefox-66.0.3/widget/gtk/nsWaylandDisplay.h.mozilla-1517205 firefox-66
} // namespace widget } // namespace widget
} // namespace mozilla } // namespace mozilla
diff -up firefox-66.0.3/widget/gtk/WindowSurfaceWayland.cpp.mozilla-1517205 firefox-66.0.3/widget/gtk/WindowSurfaceWayland.cpp diff -up firefox-67.0/widget/gtk/WindowSurfaceWayland.cpp.mozilla-1517205 firefox-67.0/widget/gtk/WindowSurfaceWayland.cpp
--- firefox-66.0.3/widget/gtk/WindowSurfaceWayland.cpp.mozilla-1517205 2019-04-11 13:12:24.577232301 +0200 --- firefox-67.0/widget/gtk/WindowSurfaceWayland.cpp.mozilla-1517205 2019-05-15 16:00:23.335366185 +0200
+++ firefox-66.0.3/widget/gtk/WindowSurfaceWayland.cpp 2019-04-11 13:12:24.583232286 +0200 +++ firefox-67.0/widget/gtk/WindowSurfaceWayland.cpp 2019-05-15 16:00:23.368366052 +0200
@@ -413,16 +413,6 @@ WindowSurfaceWayland::~WindowSurfaceWayl @@ -413,16 +413,6 @@ WindowSurfaceWayland::~WindowSurfaceWayl
delete mBackupBuffer[i]; delete mBackupBuffer[i];
} }

View File

@ -1,6 +1,6 @@
diff -up firefox-66.0/layout/xul/moz.build.mozilla-1532643-popup firefox-66.0/layout/xul/moz.build diff -up firefox-67.0/layout/xul/moz.build.mozilla-1532643-popup firefox-67.0/layout/xul/moz.build
--- firefox-66.0/layout/xul/moz.build.mozilla-1532643-popup 2019-03-12 01:22:20.000000000 +0100 --- firefox-67.0/layout/xul/moz.build.mozilla-1532643-popup 2019-05-14 01:08:24.000000000 +0200
+++ firefox-66.0/layout/xul/moz.build 2019-03-12 12:21:43.036982252 +0100 +++ firefox-67.0/layout/xul/moz.build 2019-05-15 15:31:39.714299754 +0200
@@ -88,3 +88,6 @@ LOCAL_INCLUDES += [ @@ -88,3 +88,6 @@ LOCAL_INCLUDES += [
if CONFIG['CC_TYPE'] in ('clang', 'gcc'): if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
@ -8,9 +8,9 @@ diff -up firefox-66.0/layout/xul/moz.build.mozilla-1532643-popup firefox-66.0/la
+ +
+CFLAGS += CONFIG['TK_CFLAGS'] +CFLAGS += CONFIG['TK_CFLAGS']
+CXXFLAGS += CONFIG['TK_CFLAGS'] +CXXFLAGS += CONFIG['TK_CFLAGS']
diff -up firefox-66.0/layout/xul/nsMenuPopupFrame.cpp.mozilla-1532643-popup firefox-66.0/layout/xul/nsMenuPopupFrame.cpp diff -up firefox-67.0/layout/xul/nsMenuPopupFrame.cpp.mozilla-1532643-popup firefox-67.0/layout/xul/nsMenuPopupFrame.cpp
--- firefox-66.0/layout/xul/nsMenuPopupFrame.cpp.mozilla-1532643-popup 2019-03-12 01:22:20.000000000 +0100 --- firefox-67.0/layout/xul/nsMenuPopupFrame.cpp.mozilla-1532643-popup 2019-05-14 01:08:24.000000000 +0200
+++ firefox-66.0/layout/xul/nsMenuPopupFrame.cpp 2019-03-12 12:23:11.860770255 +0100 +++ firefox-67.0/layout/xul/nsMenuPopupFrame.cpp 2019-05-15 15:37:01.121215863 +0200
@@ -55,6 +55,10 @@ @@ -55,6 +55,10 @@
#include "mozilla/dom/KeyboardEvent.h" #include "mozilla/dom/KeyboardEvent.h"
#include "mozilla/dom/KeyboardEventBinding.h" #include "mozilla/dom/KeyboardEventBinding.h"
@ -21,8 +21,8 @@ diff -up firefox-66.0/layout/xul/nsMenuPopupFrame.cpp.mozilla-1532643-popup fire
+#endif /* MOZ_WAYLAND */ +#endif /* MOZ_WAYLAND */
using namespace mozilla; using namespace mozilla;
using mozilla::dom::Event; using mozilla::dom::Document;
@@ -298,11 +302,29 @@ nsresult nsMenuPopupFrame::CreateWidgetF @@ -301,11 +305,29 @@ nsresult nsMenuPopupFrame::CreateWidgetF
!(mode == eTransparencyTransparent || tag == nsGkAtoms::menulist); !(mode == eTransparencyTransparent || tag == nsGkAtoms::menulist);
widgetData.mPopupLevel = PopupLevel(widgetData.mNoAutoHide); widgetData.mPopupLevel = PopupLevel(widgetData.mNoAutoHide);
@ -53,10 +53,10 @@ diff -up firefox-66.0/layout/xul/nsMenuPopupFrame.cpp.mozilla-1532643-popup fire
nsCOMPtr<nsIDocShellTreeItem> dsti = PresContext()->GetDocShell(); nsCOMPtr<nsIDocShellTreeItem> dsti = PresContext()->GetDocShell();
if (!dsti) return NS_ERROR_FAILURE; if (!dsti) return NS_ERROR_FAILURE;
diff -up firefox-66.0/widget/gtk/nsWindow.cpp.mozilla-1532643-popup firefox-66.0/widget/gtk/nsWindow.cpp diff -up firefox-67.0/widget/gtk/nsWindow.cpp.mozilla-1532643-popup firefox-67.0/widget/gtk/nsWindow.cpp
--- firefox-66.0/widget/gtk/nsWindow.cpp.mozilla-1532643-popup 2019-03-12 12:21:43.034982257 +0100 --- firefox-67.0/widget/gtk/nsWindow.cpp.mozilla-1532643-popup 2019-05-15 15:31:39.712299764 +0200
+++ firefox-66.0/widget/gtk/nsWindow.cpp 2019-03-12 12:21:43.037982249 +0100 +++ firefox-67.0/widget/gtk/nsWindow.cpp 2019-05-15 15:31:39.716299744 +0200
@@ -3485,11 +3485,7 @@ nsresult nsWindow::Create(nsIWidget *aPa @@ -3527,11 +3527,7 @@ nsresult nsWindow::Create(nsIWidget *aPa
} else { } else {
switch (aInitData->mPopupHint) { switch (aInitData->mPopupHint) {
case ePopupTypeMenu: case ePopupTypeMenu:

View File

@ -1,29 +0,0 @@
diff -up firefox-66.0/js/src/util/NativeStack.cpp.mozilla-1533969 firefox-66.0/js/src/util/NativeStack.cpp
--- firefox-66.0/js/src/util/NativeStack.cpp.mozilla-1533969 2019-03-14 23:12:13.000000000 +0100
+++ firefox-66.0/js/src/util/NativeStack.cpp 2019-03-22 15:17:08.338328211 +0100
@@ -25,7 +25,7 @@
# include <sys/syscall.h>
# include <sys/types.h>
# include <unistd.h>
-static pid_t gettid() { return syscall(__NR_gettid); }
+# define gettid() static_cast<pid_t>(syscall(__NR_gettid))
# endif
#else
# error "Unsupported platform"
diff -up firefox-66.0/tools/profiler/core/platform.h.mozilla-1533969 firefox-66.0/tools/profiler/core/platform.h
--- firefox-66.0/tools/profiler/core/platform.h.mozilla-1533969 2019-03-22 15:17:08.338328211 +0100
+++ firefox-66.0/tools/profiler/core/platform.h 2019-03-22 15:19:00.046748130 +0100
@@ -47,11 +47,11 @@
#if defined(__GLIBC__)
# include <unistd.h>
# include <sys/syscall.h>
-static inline pid_t gettid() { return (pid_t)syscall(SYS_gettid); }
+# define gettid() static_cast<pid_t>(syscall(SYS_gettid))
#elif defined(GP_OS_darwin)
# include <unistd.h>
# include <sys/syscall.h>
-static inline pid_t gettid() { return (pid_t)syscall(SYS_thread_selfid); }
+# define gettid() static_cast<pid_t>(syscall(SYS_thread_selfid))
#elif defined(GP_OS_android)
# include <unistd.h>
#elif defined(GP_OS_windows)

View File

@ -1,30 +1,7 @@
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-67.0/widget/gtk/mozcontainer.cpp.mozilla-1535567 firefox-67.0/widget/gtk/mozcontainer.cpp
diff -up firefox-66.0/media/webrtc/trunk/Makefile.old firefox-66.0/media/webrtc/trunk/Makefile --- firefox-67.0/widget/gtk/mozcontainer.cpp.mozilla-1535567 2019-05-14 01:08:37.000000000 +0200
diff -up firefox-66.0/widget/gtk/mozcontainer.cpp.old firefox-66.0/widget/gtk/mozcontainer.cpp +++ firefox-67.0/widget/gtk/mozcontainer.cpp 2019-05-15 15:56:19.645336209 +0200
--- firefox-66.0/widget/gtk/mozcontainer.cpp.old 2019-03-14 23:12:56.000000000 +0100 @@ -157,6 +157,7 @@ void moz_container_init(MozContainer *co
+++ 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->subsurface = nullptr;
container->eglwindow = nullptr; container->eglwindow = nullptr;
container->frame_callback_handler = nullptr; container->frame_callback_handler = nullptr;
@ -32,52 +9,34 @@ diff -up firefox-66.0/widget/gtk/mozcontainer.cpp.old firefox-66.0/widget/gtk/mo
// We can draw to x11 window any time. // We can draw to x11 window any time.
container->ready_to_draw = GDK_IS_X11_DISPLAY(gdk_display_get_default()); container->ready_to_draw = GDK_IS_X11_DISPLAY(gdk_display_get_default());
container->surface_needs_clear = true; container->surface_needs_clear = true;
+ container->inital_draw_cb = nullptr; @@ -165,6 +166,11 @@ void moz_container_init(MozContainer *co
#endif
+
+ LOG(("moz_container_class_init() [%p]\n", (void *)container));
} }
#if defined(MOZ_WAYLAND) #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( +void moz_container_set_initial_draw_callback(
+ MozContainer *container, std::function<void(void)> inital_draw_cb) { + MozContainer *container, std::function<void(void)> inital_draw_cb) {
+ container->inital_draw_cb = inital_draw_cb; + container->inital_draw_cb = inital_draw_cb;
+} +}
+ +
static wl_surface *moz_container_get_gtk_container_surface(
MozContainer *container) {
static auto sGdkWaylandWindowGetWlSurface = (wl_surface * (*)(GdkWindow *))
@@ -178,37 +184,61 @@ static void frame_callback_handler(void
uint32_t time) {
MozContainer *container = MOZ_CONTAINER(data);
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 = { static const struct wl_callback_listener frame_listener = {
frame_callback_handler}; frame_callback_handler};
@ -99,10 +58,9 @@ diff -up firefox-66.0/widget/gtk/mozcontainer.cpp.old firefox-66.0/widget/gtk/mo
+ : -1; + : -1;
+ +
+ LOG( + LOG(
+ ("moz_container_request_parent_frame_callback() [%p] " + ("%s [%p] frame_callback_handler %p "
+ "container->frame_callback_handler %p " + "frame_callback_handler_surface_id %d\n",
+ "container->frame_callback_handler_surface_id %d\n", + __FUNCTION__, (void *)container, container->frame_callback_handler,
+ (void *)container, container->frame_callback_handler,
+ container->frame_callback_handler_surface_id)); + container->frame_callback_handler_surface_id));
+ +
+ if (container->frame_callback_handler && + if (container->frame_callback_handler &&
@ -123,25 +81,22 @@ diff -up firefox-66.0/widget/gtk/mozcontainer.cpp.old firefox-66.0/widget/gtk/mo
container); container);
+ } else { + } else {
+ container->frame_callback_handler_surface_id = -1; + container->frame_callback_handler_surface_id = -1;
} + }
+} +}
+
+static gboolean moz_container_map_wayland(GtkWidget *widget, +static gboolean moz_container_map_wayland(GtkWidget *widget,
+ GdkEventAny *event) { + GdkEventAny *event) {
+ MozContainer *container = MOZ_CONTAINER(widget); + 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) { + if (container->ready_to_draw) {
+ return FALSE; + return FALSE;
+ } }
+
+ moz_container_request_parent_frame_callback(MOZ_CONTAINER(widget)); + moz_container_request_parent_frame_callback(MOZ_CONTAINER(widget));
return FALSE; return FALSE;
} }
@@ -208,9 +282,12 @@ static void moz_container_unmap_wayland( @@ -217,6 +247,7 @@ static void moz_container_unmap_wayland(
g_clear_pointer(&container->subsurface, wl_subsurface_destroy); g_clear_pointer(&container->subsurface, wl_subsurface_destroy);
g_clear_pointer(&container->surface, wl_surface_destroy); g_clear_pointer(&container->surface, wl_surface_destroy);
g_clear_pointer(&container->frame_callback_handler, wl_callback_destroy); g_clear_pointer(&container->frame_callback_handler, wl_callback_destroy);
@ -149,23 +104,7 @@ diff -up firefox-66.0/widget/gtk/mozcontainer.cpp.old firefox-66.0/widget/gtk/mo
container->surface_needs_clear = true; container->surface_needs_clear = true;
container->ready_to_draw = false; container->ready_to_draw = false;
+ @@ -329,6 +360,10 @@ void moz_container_realize(GtkWidget *wi
+ 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); : gtk_widget_get_visual(widget);
window = gdk_window_new(parent, &attributes, attributes_mask); window = gdk_window_new(parent, &attributes, attributes_mask);
@ -176,91 +115,22 @@ diff -up firefox-66.0/widget/gtk/mozcontainer.cpp.old firefox-66.0/widget/gtk/mo
gdk_window_set_user_data(window, widget); gdk_window_set_user_data(window, widget);
} else { } else {
window = parent; window = parent;
@@ -336,12 +421,8 @@ void moz_container_size_allocate(GtkWidg @@ -498,6 +533,7 @@ static void moz_container_add(GtkContain
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) { 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->surface) {
if (!container->ready_to_draw) { if (!container->ready_to_draw) {
+ moz_container_request_parent_frame_callback(container); + moz_container_request_parent_frame_callback(container);
return nullptr; return nullptr;
} }
GdkDisplay *display = gtk_widget_get_display(GTK_WIDGET(container)); GdkDisplay *display = gtk_widget_get_display(GTK_WIDGET(container));
@@ -526,10 +612,16 @@ struct wl_surface *moz_container_get_wl_ diff -up firefox-67.0/widget/gtk/mozcontainer.h.mozilla-1535567 firefox-67.0/widget/gtk/mozcontainer.h
WaylandDisplayRelease(waylandDisplay); --- firefox-67.0/widget/gtk/mozcontainer.h.mozilla-1535567 2019-05-14 01:08:37.000000000 +0200
} +++ firefox-67.0/widget/gtk/mozcontainer.h 2019-05-15 15:50:59.440570372 +0200
@@ -77,6 +77,7 @@ struct _MozContainer {
+ 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_subsurface *subsurface;
struct wl_egl_window *eglwindow; struct wl_egl_window *eglwindow;
struct wl_callback *frame_callback_handler; struct wl_callback *frame_callback_handler;
+ int frame_callback_handler_surface_id; + int frame_callback_handler_surface_id;
gboolean surface_needs_clear; gboolean surface_needs_clear;
gboolean ready_to_draw; gboolean ready_to_draw;
+ std::function<void(void)> inital_draw_cb; 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__ */

View File

@ -1,15 +1,7 @@
diff -up firefox-66.0.1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.mozilla-1540145 firefox-66.0.1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp diff -up firefox-67.0/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.mozilla-1540145 firefox-67.0/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
--- firefox-66.0.1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.mozilla-1540145 2019-03-22 06:06:07.000000000 +0100 --- firefox-67.0/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.mozilla-1540145 2019-05-14 01:08:35.000000000 +0200
+++ firefox-66.0.1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp 2019-04-01 09:33:18.621166482 +0200 +++ firefox-67.0/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp 2019-05-15 15:20:13.365502186 +0200
@@ -6,7 +6,6 @@ @@ -34,16 +34,10 @@ class nsUnixSystemProxySettings final :
#include "nsISystemProxySettings.h"
#include "mozilla/ModuleUtils.h"
#include "nsIServiceManager.h"
-#include "nsIGConfService.h"
#include "nsIURI.h"
#include "nsReadableUtils.h"
#include "nsArrayUtils.h"
@@ -32,16 +31,10 @@ class nsUnixSystemProxySettings final :
private: private:
~nsUnixSystemProxySettings() = default; ~nsUnixSystemProxySettings() = default;
@ -27,28 +19,24 @@ diff -up firefox-66.0.1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.m
nsresult GetProxyFromGSettings(const nsACString& aScheme, nsresult GetProxyFromGSettings(const nsACString& aScheme,
const nsACString& aHost, int32_t aPort, const nsACString& aHost, int32_t aPort,
nsACString& aResult); nsACString& aResult);
@@ -66,20 +59,10 @@ nsresult nsUnixSystemProxySettings::Init @@ -68,16 +62,6 @@ void nsUnixSystemProxySettings::Init() {
NS_LITERAL_CSTRING("org.gnome.system.proxy"), NS_LITERAL_CSTRING("org.gnome.system.proxy"),
getter_AddRefs(mProxySettings)); getter_AddRefs(mProxySettings));
} }
- if (!mProxySettings) { - if (!mProxySettings) {
- mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID); - mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
- } - }
-}
return NS_OK; -
}
-bool nsUnixSystemProxySettings::IsProxyMode(const char* aMode) { -bool nsUnixSystemProxySettings::IsProxyMode(const char* aMode) {
- nsAutoCString mode; - nsAutoCString mode;
- return NS_SUCCEEDED(mGConf->GetString( - return NS_SUCCEEDED(mGConf->GetString(
- NS_LITERAL_CSTRING("/system/proxy/mode"), mode)) && - NS_LITERAL_CSTRING("/system/proxy/mode"), mode)) &&
- mode.EqualsASCII(aMode); - mode.EqualsASCII(aMode);
-} }
-
nsresult nsUnixSystemProxySettings::GetPACURI(nsACString& aResult) { nsresult nsUnixSystemProxySettings::GetPACURI(nsACString& aResult) {
if (mProxySettings) { @@ -92,14 +76,8 @@ nsresult nsUnixSystemProxySettings::GetP
nsCString proxyMode;
@@ -92,14 +75,8 @@ nsresult nsUnixSystemProxySettings::GetP
} }
/* The org.gnome.system.proxy schema has been found, but auto mode is not /* The org.gnome.system.proxy schema has been found, but auto mode is not
* set. Don't try the GConf and return empty string. */ * set. Don't try the GConf and return empty string. */
@ -63,7 +51,7 @@ diff -up firefox-66.0.1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.m
// Return an empty string when auto mode is not set. // Return an empty string when auto mode is not set.
aResult.Truncate(); aResult.Truncate();
return NS_OK; return NS_OK;
@@ -217,30 +194,6 @@ static nsresult GetProxyFromEnvironment( @@ -217,30 +195,6 @@ static nsresult GetProxyFromEnvironment(
return NS_OK; return NS_OK;
} }
@ -94,7 +82,7 @@ diff -up firefox-66.0.1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.m
nsresult nsUnixSystemProxySettings::SetProxyResultFromGSettings( nsresult nsUnixSystemProxySettings::SetProxyResultFromGSettings(
const char* aKeyBase, const char* aType, nsACString& aResult) { const char* aKeyBase, const char* aType, nsACString& aResult) {
nsDependentCString key(aKeyBase); nsDependentCString key(aKeyBase);
@@ -366,63 +319,6 @@ static bool HostIgnoredByProxy(const nsA @@ -366,63 +320,6 @@ static bool HostIgnoredByProxy(const nsA
return memcmp(&ignoreAddr, &hostAddr, sizeof(PRIPv6Addr)) == 0; return memcmp(&ignoreAddr, &hostAddr, sizeof(PRIPv6Addr)) == 0;
} }
@ -158,7 +146,7 @@ diff -up firefox-66.0.1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.m
nsresult nsUnixSystemProxySettings::GetProxyFromGSettings( nsresult nsUnixSystemProxySettings::GetProxyFromGSettings(
const nsACString& aScheme, const nsACString& aHost, int32_t aPort, const nsACString& aScheme, const nsACString& aHost, int32_t aPort,
nsACString& aResult) { nsACString& aResult) {
@@ -494,7 +390,6 @@ nsresult nsUnixSystemProxySettings::GetP @@ -494,7 +391,6 @@ nsresult nsUnixSystemProxySettings::GetP
nsresult rv = GetProxyFromGSettings(aScheme, aHost, aPort, aResult); nsresult rv = GetProxyFromGSettings(aScheme, aHost, aPort, aResult);
if (NS_SUCCEEDED(rv)) return rv; if (NS_SUCCEEDED(rv)) return rv;
} }

View File

@ -1,3 +1,3 @@
SHA512 (cbindgen-vendor.tar.xz) = b6737ca86e6223bb9e25861dae05e18469aecbeaa74d0d24719f531b01c74b9a00d9ba4e7faf6366e98cb7f0bdbeedfc337b739fff60bb3d22faabe9751f7ded SHA512 (cbindgen-vendor.tar.xz) = b6737ca86e6223bb9e25861dae05e18469aecbeaa74d0d24719f531b01c74b9a00d9ba4e7faf6366e98cb7f0bdbeedfc337b739fff60bb3d22faabe9751f7ded
SHA512 (firefox-66.0.5.source.tar.xz) = 6e62e7bb95a7341471521c372506d9df276249d0c0863d059b0bd27537cddb1060c51f0ee103f79239226d34c6277f3855e1511a083bc4cc442718fc7c5db650 SHA512 (firefox-67.0.source.tar.xz) = f782f83f45177e84ae788deb7ab250083fee5fe2a081cdcb72fdde9e2344078767285380a790778cfcda8bbd1c0f6c8c26c8da22587a6aad45ea58a292ef40e9
SHA512 (firefox-langpacks-66.0.5-20190508.tar.xz) = 6f0ef1761366f88d2d669ae234e1fa854b7bae335abb3c578b60a6f9cba1831f453eab35e6116faab68161c1b34b6e63224add0a4d0aa8e4b40a39dfb571677d SHA512 (firefox-langpacks-67.0-20190515.tar.xz) = d107e680755a8f5c46e4e255f29a3758c721ffff46ff1a1c30ceae1634242574fca987c11e0af4ea74b91131a734262327889945502f8012297ceeaf460095d9