Added fix for mozbz#1631061, temporary build with build with nss 3.59.0
This commit is contained in:
parent
23f70d829e
commit
bec5fd3443
@ -1,12 +1,12 @@
|
|||||||
diff -up firefox-78.0/toolkit/moz.configure.nss-version firefox-78.0/toolkit/moz.configure
|
diff -up firefox-84.0.1/build/moz.configure/nss.configure.nss-version firefox-84.0.1/build/moz.configure/nss.configure
|
||||||
--- firefox-78.0/toolkit/moz.configure.nss-version 2020-06-30 08:47:09.657501414 +0200
|
--- firefox-84.0.1/build/moz.configure/nss.configure.nss-version 2020-12-21 20:07:33.000000000 +0100
|
||||||
+++ firefox-78.0/toolkit/moz.configure 2020-06-30 08:47:12.652510169 +0200
|
+++ firefox-84.0.1/build/moz.configure/nss.configure 2020-12-22 10:23:02.156625919 +0100
|
||||||
@@ -2089,7 +2089,7 @@ option('--with-system-nss', help='Use sy
|
@@ -9,7 +9,7 @@ option("--with-system-nss", help="Use sy
|
||||||
|
imply_option("--with-system-nspr", True, when="--with-system-nss")
|
||||||
|
|
||||||
imply_option('--with-system-nspr', True, when='--with-system-nss')
|
nss_pkg = pkg_check_modules(
|
||||||
|
- "NSS", "nss >= 3.59.1", when="--with-system-nss", config=False
|
||||||
-nss_pkg = pkg_check_modules('NSS', 'nss >= 3.53.1', when='--with-system-nss', config=False)
|
+ "NSS", "nss >= 3.59", when="--with-system-nss", config=False
|
||||||
+nss_pkg = pkg_check_modules('NSS', 'nss >= 3.53.0', when='--with-system-nss', config=False)
|
)
|
||||||
|
|
||||||
set_config('MOZ_SYSTEM_NSS', True, when='--with-system-nss')
|
|
||||||
|
|
||||||
|
set_config("MOZ_SYSTEM_NSS", True, when="--with-system-nss")
|
||||||
|
@ -207,6 +207,7 @@ Patch415: mozilla-1670333.patch
|
|||||||
Patch418: mozilla-1556931-s390x-hidden-syms.patch
|
Patch418: mozilla-1556931-s390x-hidden-syms.patch
|
||||||
Patch420: mozilla-1678680.patch
|
Patch420: mozilla-1678680.patch
|
||||||
Patch421: mozilla-1680505.patch
|
Patch421: mozilla-1680505.patch
|
||||||
|
Patch422: mozilla-1631061.patch
|
||||||
|
|
||||||
# Upstream patches from mozbz#1672944
|
# Upstream patches from mozbz#1672944
|
||||||
Patch450: pw1.patch
|
Patch450: pw1.patch
|
||||||
@ -394,7 +395,7 @@ This package contains results of tests executed during build.
|
|||||||
%endif
|
%endif
|
||||||
%patch3 -p1 -b .arm
|
%patch3 -p1 -b .arm
|
||||||
%patch44 -p1 -b .build-arm-libopus
|
%patch44 -p1 -b .build-arm-libopus
|
||||||
#%patch46 -p1 -b .nss-version
|
%patch46 -p1 -b .nss-version
|
||||||
%patch47 -p1 -b .fedora-shebang
|
%patch47 -p1 -b .fedora-shebang
|
||||||
%patch48 -p1 -b .build-arm-wasm
|
%patch48 -p1 -b .build-arm-wasm
|
||||||
%patch49 -p1 -b .build-arm-libaom
|
%patch49 -p1 -b .build-arm-libaom
|
||||||
@ -428,6 +429,7 @@ This package contains results of tests executed during build.
|
|||||||
%patch455 -p1 -b .pw6
|
%patch455 -p1 -b .pw6
|
||||||
%patch420 -p1 -b .1678680
|
%patch420 -p1 -b .1678680
|
||||||
%patch421 -p1 -b .1680505
|
%patch421 -p1 -b .1680505
|
||||||
|
%patch422 -p1 -b .1631061
|
||||||
|
|
||||||
%patch500 -p1 -b .ffvpx
|
%patch500 -p1 -b .ffvpx
|
||||||
|
|
||||||
|
158
mozilla-1631061.patch
Normal file
158
mozilla-1631061.patch
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
changeset: 563258:ed4b271af277
|
||||||
|
tag: tip
|
||||||
|
parent: 563255:2c9db4cd3d89
|
||||||
|
user: stransky <stransky@redhat.com>
|
||||||
|
date: Tue Dec 22 11:03:28 2020 +0100
|
||||||
|
files: widget/gtk/nsClipboardWayland.cpp widget/gtk/nsClipboardWayland.h
|
||||||
|
description:
|
||||||
|
Bug 1631061 [Wayland] Remove fast track clipboard and always ask compositor for clipboard data, r?rmader
|
||||||
|
|
||||||
|
Differential Revision: https://phabricator.services.mozilla.com/D100317
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/widget/gtk/nsClipboardWayland.cpp b/widget/gtk/nsClipboardWayland.cpp
|
||||||
|
--- a/widget/gtk/nsClipboardWayland.cpp
|
||||||
|
+++ b/widget/gtk/nsClipboardWayland.cpp
|
||||||
|
@@ -749,7 +749,6 @@ nsRetrievalContextWayland::nsRetrievalCo
|
||||||
|
mClipboardOffer(nullptr),
|
||||||
|
mPrimaryOffer(nullptr),
|
||||||
|
mDragContext(nullptr),
|
||||||
|
- mClipboardRequestNumber(0),
|
||||||
|
mClipboardData(nullptr),
|
||||||
|
mClipboardDataLength(0) {
|
||||||
|
wl_data_device* dataDevice = wl_data_device_manager_get_data_device(
|
||||||
|
@@ -807,42 +806,6 @@ GdkAtom* nsRetrievalContextWayland::GetT
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
-struct FastTrackClipboard {
|
||||||
|
- FastTrackClipboard(int aClipboardRequestNumber,
|
||||||
|
- nsRetrievalContextWayland* aRetrievalContex)
|
||||||
|
- : mClipboardRequestNumber(aClipboardRequestNumber),
|
||||||
|
- mRetrievalContex(aRetrievalContex) {}
|
||||||
|
-
|
||||||
|
- int mClipboardRequestNumber;
|
||||||
|
- nsRetrievalContextWayland* mRetrievalContex;
|
||||||
|
-};
|
||||||
|
-
|
||||||
|
-static void wayland_clipboard_contents_received(
|
||||||
|
- GtkClipboard* clipboard, GtkSelectionData* selection_data, gpointer data) {
|
||||||
|
- LOGCLIP(("wayland_clipboard_contents_received() callback\n"));
|
||||||
|
- FastTrackClipboard* fastTrack = static_cast<FastTrackClipboard*>(data);
|
||||||
|
- fastTrack->mRetrievalContex->TransferFastTrackClipboard(
|
||||||
|
- fastTrack->mClipboardRequestNumber, selection_data);
|
||||||
|
- delete fastTrack;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-void nsRetrievalContextWayland::TransferFastTrackClipboard(
|
||||||
|
- int aClipboardRequestNumber, GtkSelectionData* aSelectionData) {
|
||||||
|
- if (mClipboardRequestNumber == aClipboardRequestNumber) {
|
||||||
|
- int dataLength = gtk_selection_data_get_length(aSelectionData);
|
||||||
|
- if (dataLength > 0) {
|
||||||
|
- mClipboardDataLength = dataLength;
|
||||||
|
- mClipboardData = reinterpret_cast<char*>(
|
||||||
|
- g_malloc(sizeof(char) * (mClipboardDataLength + 1)));
|
||||||
|
- memcpy(mClipboardData, gtk_selection_data_get_data(aSelectionData),
|
||||||
|
- sizeof(char) * mClipboardDataLength);
|
||||||
|
- mClipboardData[mClipboardDataLength] = '\0';
|
||||||
|
- }
|
||||||
|
- } else {
|
||||||
|
- NS_WARNING("Received obsoleted clipboard data!");
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
const char* nsRetrievalContextWayland::GetClipboardData(
|
||||||
|
const char* aMimeType, int32_t aWhichClipboard, uint32_t* aContentLength) {
|
||||||
|
NS_ASSERTION(mClipboardData == nullptr && mClipboardDataLength == 0,
|
||||||
|
@@ -851,33 +814,20 @@ const char* nsRetrievalContextWayland::G
|
||||||
|
LOGCLIP(("nsRetrievalContextWayland::GetClipboardData [%p] mime %s\n", this,
|
||||||
|
aMimeType));
|
||||||
|
|
||||||
|
- /* If actual clipboard data is owned by us we don't need to go
|
||||||
|
- * through Wayland but we ask Gtk+ to directly call data
|
||||||
|
- * getter callback nsClipboard::SelectionGetEvent().
|
||||||
|
- * see gtk_selection_convert() at gtk+/gtkselection.c.
|
||||||
|
- */
|
||||||
|
- GdkAtom selection = GetSelectionAtom(aWhichClipboard);
|
||||||
|
- if (gdk_selection_owner_get(selection)) {
|
||||||
|
- LOGCLIP((" Internal clipboard content\n"));
|
||||||
|
- mClipboardRequestNumber++;
|
||||||
|
- gtk_clipboard_request_contents(
|
||||||
|
- gtk_clipboard_get(selection), gdk_atom_intern(aMimeType, FALSE),
|
||||||
|
- wayland_clipboard_contents_received,
|
||||||
|
- new FastTrackClipboard(mClipboardRequestNumber, this));
|
||||||
|
+ const auto& dataOffer =
|
||||||
|
+ (GetSelectionAtom(aWhichClipboard) == GDK_SELECTION_PRIMARY)
|
||||||
|
+ ? mPrimaryOffer
|
||||||
|
+ : mClipboardOffer;
|
||||||
|
+ if (!dataOffer) {
|
||||||
|
+ // Something went wrong. We're requested to provide clipboard data
|
||||||
|
+ // but we haven't got any from wayland.
|
||||||
|
+ NS_WARNING("Requested data without valid DataOffer!");
|
||||||
|
+ if (mClipboardData) {
|
||||||
|
+ ReleaseClipboardData(mClipboardData);
|
||||||
|
+ }
|
||||||
|
} else {
|
||||||
|
- LOGCLIP((" Remote clipboard content\n"));
|
||||||
|
- const auto& dataOffer =
|
||||||
|
- (selection == GDK_SELECTION_PRIMARY) ? mPrimaryOffer : mClipboardOffer;
|
||||||
|
- if (!dataOffer) {
|
||||||
|
- // Something went wrong. We're requested to provide clipboard data
|
||||||
|
- // but we haven't got any from wayland.
|
||||||
|
- NS_WARNING("Requested data without valid DataOffer!");
|
||||||
|
- mClipboardData = nullptr;
|
||||||
|
- mClipboardDataLength = 0;
|
||||||
|
- } else {
|
||||||
|
- mClipboardData = dataOffer->GetData(mDisplay->GetDisplay(), aMimeType,
|
||||||
|
- &mClipboardDataLength);
|
||||||
|
- }
|
||||||
|
+ mClipboardData = dataOffer->GetData(mDisplay->GetDisplay(), aMimeType,
|
||||||
|
+ &mClipboardDataLength);
|
||||||
|
}
|
||||||
|
|
||||||
|
*aContentLength = mClipboardDataLength;
|
||||||
|
@@ -908,8 +858,10 @@ void nsRetrievalContextWayland::ReleaseC
|
||||||
|
|
||||||
|
NS_ASSERTION(aClipboardData == mClipboardData,
|
||||||
|
"Releasing unknown clipboard data!");
|
||||||
|
- g_free((void*)aClipboardData);
|
||||||
|
|
||||||
|
- mClipboardData = nullptr;
|
||||||
|
- mClipboardDataLength = 0;
|
||||||
|
+ if (mClipboardData) {
|
||||||
|
+ g_free((void*)aClipboardData);
|
||||||
|
+ mClipboardData = nullptr;
|
||||||
|
+ mClipboardDataLength = 0;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
diff --git a/widget/gtk/nsClipboardWayland.h b/widget/gtk/nsClipboardWayland.h
|
||||||
|
--- a/widget/gtk/nsClipboardWayland.h
|
||||||
|
+++ b/widget/gtk/nsClipboardWayland.h
|
||||||
|
@@ -16,8 +16,6 @@
|
||||||
|
#include "nsClipboard.h"
|
||||||
|
#include "nsWaylandDisplay.h"
|
||||||
|
|
||||||
|
-struct FastTrackClipboard;
|
||||||
|
-
|
||||||
|
class DataOffer {
|
||||||
|
public:
|
||||||
|
void AddMIMEType(const char* aMimeType);
|
||||||
|
@@ -134,9 +132,6 @@ class nsRetrievalContextWayland : public
|
||||||
|
|
||||||
|
void ClearDragAndDropDataOffer();
|
||||||
|
|
||||||
|
- void TransferFastTrackClipboard(int aClipboardRequestNumber,
|
||||||
|
- GtkSelectionData* aSelectionData);
|
||||||
|
-
|
||||||
|
virtual ~nsRetrievalContextWayland() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
@@ -149,7 +144,6 @@ class nsRetrievalContextWayland : public
|
||||||
|
mozilla::UniquePtr<DataOffer> mPrimaryOffer;
|
||||||
|
RefPtr<nsWaylandDragContext> mDragContext;
|
||||||
|
|
||||||
|
- int mClipboardRequestNumber;
|
||||||
|
char* mClipboardData;
|
||||||
|
uint32_t mClipboardDataLength;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user