summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firefox.spec10
-rw-r--r--mozilla-1631061.patch158
2 files changed, 8 insertions, 160 deletions
diff --git a/firefox.spec b/firefox.spec
index 7bbb235..6e13020 100644
--- a/firefox.spec
+++ b/firefox.spec
@@ -152,7 +152,7 @@ ExcludeArch: s390x
Summary: Mozilla Firefox Web browser
Name: firefox
Version: 85.0
-Release: 6%{?pre_tag}%{?dist}
+Release: 7%{?pre_tag}%{?dist}
URL: https://www.mozilla.org/firefox/
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
@@ -225,12 +225,13 @@ Patch407: mozilla-1667096.patch
Patch408: mozilla-1663844.patch
Patch415: mozilla-1670333.patch
Patch418: mozilla-1556931-s390x-hidden-syms.patch
-Patch422: mozilla-1631061.patch
Patch423: mozilla-1681107.patch
Patch424: firefox-wayland-fix-mzbz-1642949-regression.patch
Patch426: mozilla-1687931.patch
Patch427: mozilla-1678247.patch
Patch428: mozilla-1679933.patch
+Patch429: mozilla-1631061-1.patch
+Patch430: mozilla-1631061-2.patch
# PGO/LTO patches
Patch600: pgo.patch
@@ -442,6 +443,8 @@ This package contains results of tests executed during build.
%patch426 -p1 -b .1687931
%patch427 -p1 -b .1678247
%patch428 -p1 -b .1679933
+%patch429 -p1 -b .1631061
+%patch430 -p1 -b .1631061
# PGO patches
%if %{build_with_pgo}
@@ -1010,6 +1013,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#---------------------------------------------------------------------
%changelog
+* Fri Jan 29 2021 Martin Stransky <stransky@redhat.com> - 85.0-7
+- Added clipboard fix mozbz#1631061.
+
* Thu Jan 28 2021 Kalev Lember <klember@redhat.com> - 85.0-6
- Make provides/requires filtering smarter/automatic (rhbz#1582116)
- Drop dbus-glib requires that are now automatically generated again
diff --git a/mozilla-1631061.patch b/mozilla-1631061.patch
deleted file mode 100644
index acd1c5a..0000000
--- a/mozilla-1631061.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-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;
-
-
bgstack15