Updated to 66.0.3 (Build 1)
This commit is contained in:
		
							parent
							
								
									9ffa95d2a9
								
							
						
					
					
						commit
						f232c3cf8d
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -336,3 +336,5 @@ firefox-3.6.4.source.tar.bz2 | |||||||
| /firefox-langpacks-66.0.1-20190322.tar.xz | /firefox-langpacks-66.0.1-20190322.tar.xz | ||||||
| /firefox-66.0.2.source.tar.xz | /firefox-66.0.2.source.tar.xz | ||||||
| /firefox-langpacks-66.0.2-20190401.tar.xz | /firefox-langpacks-66.0.2-20190401.tar.xz | ||||||
|  | /firefox-langpacks-66.0.3-20190410.tar.xz | ||||||
|  | /firefox-66.0.3.source.tar.xz | ||||||
|  | |||||||
							
								
								
									
										11
									
								
								firefox.spec
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								firefox.spec
									
									
									
									
									
								
							| @ -98,13 +98,13 @@ ExcludeArch: s390x | |||||||
| 
 | 
 | ||||||
| Summary:        Mozilla Firefox Web browser | Summary:        Mozilla Firefox Web browser | ||||||
| Name:           firefox | Name:           firefox | ||||||
| Version:        66.0.2 | Version:        66.0.3 | ||||||
| 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}-20190401.tar.xz | Source1:        firefox-langpacks-%{version}%{?pre_version}-20190410.tar.xz | ||||||
| %endif | %endif | ||||||
| Source2:        cbindgen-vendor.tar.xz | Source2:        cbindgen-vendor.tar.xz | ||||||
| Source10:       firefox-mozconfig | Source10:       firefox-mozconfig | ||||||
| @ -166,6 +166,8 @@ Patch577:        mozilla-1535567.patch | |||||||
| Patch578:        mozilla-1431399.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 | ||||||
|  | Patch582:        mozilla-1508378.patch | ||||||
| 
 | 
 | ||||||
| # PGO/LTO patches | # PGO/LTO patches | ||||||
| Patch600:        pgo.patch | Patch600:        pgo.patch | ||||||
| @ -383,6 +385,8 @@ This package contains results of tests executed during build. | |||||||
| %patch578 -p1 -b .mozilla-1431399 | %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 | ||||||
|  | %patch582 -p1 -b .mozilla-1508378 | ||||||
| 
 | 
 | ||||||
| # PGO patches | # PGO patches | ||||||
| %patch600 -p1 -b .pgo | %patch600 -p1 -b .pgo | ||||||
| @ -936,6 +940,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : | |||||||
| #--------------------------------------------------------------------- | #--------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Thu Apr 11 2019 Martin Stransky <stransky@redhat.com> - 66.0.3-1 | ||||||
|  | - Updated to 66.0.3 (Build 1) | ||||||
|  | 
 | ||||||
| * Mon Apr 1 2019 Martin Stransky <stransky@redhat.com> - 66.0.2-1 | * Mon Apr 1 2019 Martin Stransky <stransky@redhat.com> - 66.0.2-1 | ||||||
| - Updated to 66.0.2 (Build 1) | - Updated to 66.0.2 (Build 1) | ||||||
| - Added fixes for mozbz#1526243, mozbz#1540145 | - Added fixes for mozbz#1526243, mozbz#1540145 | ||||||
|  | |||||||
							
								
								
									
										92
									
								
								mozilla-1508378.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								mozilla-1508378.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,92 @@ | |||||||
|  | changeset:   468935:3b964face103 | ||||||
|  | tag:         tip | ||||||
|  | user:        Martin Stransky <stransky@redhat.com> | ||||||
|  | date:        Wed Apr 10 15:14:32 2019 +0200 | ||||||
|  | summary:     Bug 1508378 - Fix round error when damage rect size/position is odd number and scale factor is used, r=lsalzman | ||||||
|  | 
 | ||||||
|  | diff --git a/widget/gtk/WindowSurfaceWayland.cpp b/widget/gtk/WindowSurfaceWayland.cpp
 | ||||||
|  | --- a/widget/gtk/WindowSurfaceWayland.cpp
 | ||||||
|  | +++ b/widget/gtk/WindowSurfaceWayland.cpp
 | ||||||
|  | @@ -624,16 +624,33 @@ static void WaylandBufferDelayCommitHand
 | ||||||
|  |    } else { | ||||||
|  |      // Referenced WindowSurfaceWayland is already deleted. | ||||||
|  |      // Do nothing but just release the mDelayedCommitHandle allocated at | ||||||
|  |      // WindowSurfaceWayland::CommitWaylandBuffer(). | ||||||
|  |      free(aSurface); | ||||||
|  |    } | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | +void WindowSurfaceWayland::CalcRectScale(LayoutDeviceIntRect& aRect, int aScale) {
 | ||||||
|  | +  if (aRect.x & 0x1) {
 | ||||||
|  | +    aRect.width += 1;
 | ||||||
|  | +  }
 | ||||||
|  | +  aRect.x = aRect.x / aScale;
 | ||||||
|  | +
 | ||||||
|  | +  if (aRect.y & 0x1) {
 | ||||||
|  | +    aRect.height += 1;
 | ||||||
|  | +  }
 | ||||||
|  | +  aRect.y = aRect.y / aScale;
 | ||||||
|  | +
 | ||||||
|  | +  aRect.width = (aRect.width & 0x1) ? aRect.width / aScale + 1 :
 | ||||||
|  | +                                      aRect.width / aScale;
 | ||||||
|  | +  aRect.height = (aRect.height & 0x1) ? aRect.height / aScale + 1 :
 | ||||||
|  | +                                        aRect.height / aScale;
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  |  void WindowSurfaceWayland::CommitWaylandBuffer() { | ||||||
|  |    MOZ_ASSERT(mPendingCommit, "Committing empty surface!"); | ||||||
|  |   | ||||||
|  |    if (mWaitToFullScreenUpdate) { | ||||||
|  |      return; | ||||||
|  |    } | ||||||
|  |   | ||||||
|  |    wl_surface* waylandSurface = mWindow->GetWaylandSurface(); | ||||||
|  | @@ -679,21 +696,23 @@ void WindowSurfaceWayland::CommitWayland
 | ||||||
|  |      LayoutDeviceIntRect rect = mWindow->GetBounds(); | ||||||
|  |      wl_surface_damage(waylandSurface, 0, 0, rect.width, rect.height); | ||||||
|  |      mWaylandBufferFullScreenDamage = false; | ||||||
|  |      mNeedScaleFactorUpdate = true; | ||||||
|  |    } else { | ||||||
|  |      gint scaleFactor = mWindow->GdkScaleFactor(); | ||||||
|  |      for (auto iter = mWaylandBufferDamage.RectIter(); !iter.Done(); | ||||||
|  |           iter.Next()) { | ||||||
|  | -      const mozilla::LayoutDeviceIntRect& r = iter.Get();
 | ||||||
|  | +      mozilla::LayoutDeviceIntRect r = iter.Get();
 | ||||||
|  |        // We need to remove the scale factor because the wl_surface_damage | ||||||
|  |        // also multiplies by current  scale factor. | ||||||
|  | -      wl_surface_damage(waylandSurface, r.x / scaleFactor, r.y / scaleFactor,
 | ||||||
|  | -                        r.width / scaleFactor, r.height / scaleFactor);
 | ||||||
|  | +      if (scaleFactor > 1) {
 | ||||||
|  | +        CalcRectScale(r, scaleFactor);
 | ||||||
|  | +      }
 | ||||||
|  | +      wl_surface_damage(waylandSurface, r.x, r.y, r.width, r.height);
 | ||||||
|  |      } | ||||||
|  |    } | ||||||
|  |   | ||||||
|  |    // Clear all back buffer damage as we're committing | ||||||
|  |    // all requested regions. | ||||||
|  |    mWaylandBufferDamage.SetEmpty(); | ||||||
|  |   | ||||||
|  |    mFrameCallback = wl_surface_frame(waylandSurface); | ||||||
|  | diff --git a/widget/gtk/WindowSurfaceWayland.h b/widget/gtk/WindowSurfaceWayland.h
 | ||||||
|  | --- a/widget/gtk/WindowSurfaceWayland.h
 | ||||||
|  | +++ b/widget/gtk/WindowSurfaceWayland.h
 | ||||||
|  | @@ -96,16 +96,17 @@ class WindowSurfaceWayland : public Wind
 | ||||||
|  |    WindowBackBuffer* GetWaylandBufferToDraw(int aWidth, int aHeight); | ||||||
|  |   | ||||||
|  |    already_AddRefed<gfx::DrawTarget> LockWaylandBuffer(int aWidth, int aHeight, | ||||||
|  |                                                        bool aClearBuffer); | ||||||
|  |    already_AddRefed<gfx::DrawTarget> LockImageSurface( | ||||||
|  |        const gfx::IntSize& aLockSize); | ||||||
|  |    bool CommitImageSurfaceToWaylandBuffer(const LayoutDeviceIntRegion& aRegion); | ||||||
|  |    void CommitWaylandBuffer(); | ||||||
|  | +  void CalcRectScale(LayoutDeviceIntRect& aRect, int scale);
 | ||||||
|  |   | ||||||
|  |    // TODO: Do we need to hold a reference to nsWindow object? | ||||||
|  |    nsWindow* mWindow; | ||||||
|  |    nsWaylandDisplay* mWaylandDisplay; | ||||||
|  |    WindowBackBuffer* mWaylandBuffer; | ||||||
|  |    LayoutDeviceIntRegion mWaylandBufferDamage; | ||||||
|  |    WindowBackBuffer* mBackupBuffer[BACK_BUFFER_NUM]; | ||||||
|  |    RefPtr<gfxImageSurface> mImageSurface; | ||||||
|  | 
 | ||||||
							
								
								
									
										207
									
								
								mozilla-1517205.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										207
									
								
								mozilla-1517205.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,207 @@ | |||||||
|  | diff -up firefox-66.0.3/widget/gtk/mozcontainer.cpp.mozilla-1517205 firefox-66.0.3/widget/gtk/mozcontainer.cpp
 | ||||||
|  | --- firefox-66.0.3/widget/gtk/mozcontainer.cpp.mozilla-1517205	2019-04-11 13:12:24.583232286 +0200
 | ||||||
|  | +++ firefox-66.0.3/widget/gtk/mozcontainer.cpp	2019-04-11 13:20:06.900192082 +0200
 | ||||||
|  | @@ -609,7 +609,6 @@ struct wl_surface *moz_container_get_wl_
 | ||||||
|  |   | ||||||
|  |      wl_surface_commit(container->surface); | ||||||
|  |      wl_display_flush(waylandDisplay->GetDisplay()); | ||||||
|  | -    WaylandDisplayRelease(waylandDisplay);
 | ||||||
|  |    } | ||||||
|  |   | ||||||
|  |    LOG(("moz_container_get_wl_surface() [%p] created surface %p\n", | ||||||
|  | diff -up firefox-66.0.3/widget/gtk/nsClipboardWayland.cpp.mozilla-1517205 firefox-66.0.3/widget/gtk/nsClipboardWayland.cpp
 | ||||||
|  | --- firefox-66.0.3/widget/gtk/nsClipboardWayland.cpp.mozilla-1517205	2019-04-09 22:00:47.000000000 +0200
 | ||||||
|  | +++ firefox-66.0.3/widget/gtk/nsClipboardWayland.cpp	2019-04-11 13:12:24.583232286 +0200
 | ||||||
|  | @@ -639,7 +639,6 @@ static gboolean offer_hash_remove(gpoint
 | ||||||
|  |  nsRetrievalContextWayland::~nsRetrievalContextWayland(void) { | ||||||
|  |    g_hash_table_foreach_remove(mActiveOffers, offer_hash_remove, nullptr); | ||||||
|  |    g_hash_table_destroy(mActiveOffers); | ||||||
|  | -  WaylandDisplayRelease(mDisplay);
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  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
 | ||||||
|  | --- firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp.mozilla-1517205	2019-04-09 22:01:14.000000000 +0200
 | ||||||
|  | +++ firefox-66.0.3/widget/gtk/nsWaylandDisplay.cpp	2019-04-11 13:20:26.169157682 +0200
 | ||||||
|  | @@ -19,6 +19,13 @@ namespace widget {
 | ||||||
|  |  static nsWaylandDisplay *gWaylandDisplays[MAX_DISPLAY_CONNECTIONS]; | ||||||
|  |  static StaticMutex gWaylandDisplaysMutex; | ||||||
|  |   | ||||||
|  | +static void ReleaseDisplaysAtExit() {
 | ||||||
|  | +  for (int i = 0; i < MAX_DISPLAY_CONNECTIONS; i++) {
 | ||||||
|  | +    delete gWaylandDisplays[i];
 | ||||||
|  | +    gWaylandDisplays[i] = nullptr;
 | ||||||
|  | +  }
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  |  // 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 | ||||||
|  |  // by Gtk main loop, other threads/wl_event_queue has to be handled by us. | ||||||
|  | @@ -33,7 +40,6 @@ static nsWaylandDisplay *WaylandDisplayG
 | ||||||
|  |                                                   const StaticMutexAutoLock &) { | ||||||
|  |    for (auto &display : gWaylandDisplays) { | ||||||
|  |      if (display && display->Matches(aDisplay)) { | ||||||
|  | -      NS_ADDREF(display);
 | ||||||
|  |        return display; | ||||||
|  |      } | ||||||
|  |    } | ||||||
|  | @@ -41,7 +47,7 @@ static nsWaylandDisplay *WaylandDisplayG
 | ||||||
|  |    for (auto &display : gWaylandDisplays) { | ||||||
|  |      if (display == nullptr) { | ||||||
|  |        display = new nsWaylandDisplay(aDisplay); | ||||||
|  | -      NS_ADDREF(display);
 | ||||||
|  | +      atexit(ReleaseDisplaysAtExit);
 | ||||||
|  |        return display; | ||||||
|  |      } | ||||||
|  |    } | ||||||
|  | @@ -65,26 +71,6 @@ nsWaylandDisplay *WaylandDisplayGet(GdkD
 | ||||||
|  |    return WaylandDisplayGetLocked(display, lock); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | -static bool WaylandDisplayReleaseLocked(nsWaylandDisplay *aDisplay,
 | ||||||
|  | -                                        const StaticMutexAutoLock &) {
 | ||||||
|  | -  for (auto &display : gWaylandDisplays) {
 | ||||||
|  | -    if (display == aDisplay) {
 | ||||||
|  | -      int rc = display->Release();
 | ||||||
|  | -      if (rc == 0) {
 | ||||||
|  | -        display = nullptr;
 | ||||||
|  | -      }
 | ||||||
|  | -      return true;
 | ||||||
|  | -    }
 | ||||||
|  | -  }
 | ||||||
|  | -  MOZ_ASSERT(false, "Missing nsWaylandDisplay for this thread!");
 | ||||||
|  | -  return false;
 | ||||||
|  | -}
 | ||||||
|  | -
 | ||||||
|  | -void WaylandDisplayRelease(nsWaylandDisplay *aDisplay) {
 | ||||||
|  | -  StaticMutexAutoLock lock(gWaylandDisplaysMutex);
 | ||||||
|  | -  WaylandDisplayReleaseLocked(aDisplay, lock);
 | ||||||
|  | -}
 | ||||||
|  | -
 | ||||||
|  |  static void WaylandDisplayLoopLocked(wl_display *aDisplay, | ||||||
|  |                                       const StaticMutexAutoLock &) { | ||||||
|  |    for (auto &display : gWaylandDisplays) { | ||||||
|  | @@ -128,6 +114,8 @@ static void global_registry_handler(void
 | ||||||
|  |                                      uint32_t id, const char *interface, | ||||||
|  |                                      uint32_t version) { | ||||||
|  |    auto display = reinterpret_cast<nsWaylandDisplay *>(data); | ||||||
|  | +  if (!display)
 | ||||||
|  | +    return;
 | ||||||
|  |   | ||||||
|  |    if (strcmp(interface, "wl_shm") == 0) { | ||||||
|  |      auto shm = static_cast<wl_shm *>( | ||||||
|  | @@ -178,9 +166,7 @@ bool nsWaylandDisplay::Matches(wl_displa
 | ||||||
|  |    return mThreadId == PR_GetCurrentThread() && aDisplay == mDisplay; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | -NS_IMPL_ISUPPORTS(nsWaylandDisplay, nsISupports);
 | ||||||
|  | -
 | ||||||
|  | -nsWaylandDisplay::nsWaylandDisplay(wl_display *aDisplay)
 | ||||||
|  | +nsWaylandDisplay::nsWaylandDisplay(wl_display* aDisplay)
 | ||||||
|  |      : mThreadId(PR_GetCurrentThread()), | ||||||
|  |        mDisplay(aDisplay), | ||||||
|  |        mEventQueue(nullptr), | ||||||
|  | @@ -188,9 +174,10 @@ nsWaylandDisplay::nsWaylandDisplay(wl_di
 | ||||||
|  |        mSubcompositor(nullptr), | ||||||
|  |        mSeat(nullptr), | ||||||
|  |        mShm(nullptr), | ||||||
|  | -      mPrimarySelectionDeviceManager(nullptr) {
 | ||||||
|  | -  wl_registry *registry = wl_display_get_registry(mDisplay);
 | ||||||
|  | -  wl_registry_add_listener(registry, ®istry_listener, this);
 | ||||||
|  | +      mPrimarySelectionDeviceManager(nullptr),
 | ||||||
|  | +      mRegistry(nullptr) {
 | ||||||
|  | +  mRegistry = wl_display_get_registry(mDisplay);
 | ||||||
|  | +  wl_registry_add_listener(mRegistry, ®istry_listener, this);
 | ||||||
|  |   | ||||||
|  |    if (NS_IsMainThread()) { | ||||||
|  |      // Use default event queue in main thread operated by Gtk+. | ||||||
|  | @@ -201,17 +188,19 @@ nsWaylandDisplay::nsWaylandDisplay(wl_di
 | ||||||
|  |      mEventQueue = wl_display_create_queue(mDisplay); | ||||||
|  |      MessageLoop::current()->PostTask(NewRunnableFunction( | ||||||
|  |          "WaylandDisplayLoop", &WaylandDisplayLoop, mDisplay)); | ||||||
|  | -    wl_proxy_set_queue((struct wl_proxy *)registry, mEventQueue);
 | ||||||
|  | +    wl_proxy_set_queue((struct wl_proxy *)mRegistry, mEventQueue);
 | ||||||
|  |      wl_display_roundtrip_queue(mDisplay, mEventQueue); | ||||||
|  |      wl_display_roundtrip_queue(mDisplay, mEventQueue); | ||||||
|  |    } | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  nsWaylandDisplay::~nsWaylandDisplay() { | ||||||
|  | -  MOZ_ASSERT(mThreadId == PR_GetCurrentThread());
 | ||||||
|  |    // Owned by Gtk+, we don't need to release | ||||||
|  |    mDisplay = nullptr; | ||||||
|  |   | ||||||
|  | +  wl_registry_destroy(mRegistry);
 | ||||||
|  | +  mRegistry = nullptr;
 | ||||||
|  | +
 | ||||||
|  |    if (mEventQueue) { | ||||||
|  |      wl_event_queue_destroy(mEventQueue); | ||||||
|  |      mEventQueue = nullptr; | ||||||
|  | diff -up firefox-66.0.3/widget/gtk/nsWaylandDisplay.h.mozilla-1517205 firefox-66.0.3/widget/gtk/nsWaylandDisplay.h
 | ||||||
|  | --- firefox-66.0.3/widget/gtk/nsWaylandDisplay.h.mozilla-1517205	2019-04-09 22:01:13.000000000 +0200
 | ||||||
|  | +++ firefox-66.0.3/widget/gtk/nsWaylandDisplay.h	2019-04-11 13:12:24.584232284 +0200
 | ||||||
|  | @@ -20,11 +20,10 @@ namespace widget {
 | ||||||
|  |   | ||||||
|  |  // Our general connection to Wayland display server, | ||||||
|  |  // holds our display connection and runs event loop. | ||||||
|  | -class nsWaylandDisplay : public nsISupports {
 | ||||||
|  | -  NS_DECL_THREADSAFE_ISUPPORTS
 | ||||||
|  | -
 | ||||||
|  | +class nsWaylandDisplay {
 | ||||||
|  |   public: | ||||||
|  |    explicit nsWaylandDisplay(wl_display* aDisplay); | ||||||
|  | +  virtual ~nsWaylandDisplay();
 | ||||||
|  |   | ||||||
|  |    bool DisplayLoop(); | ||||||
|  |    bool Matches(wl_display* aDisplay); | ||||||
|  | @@ -41,7 +40,6 @@ class nsWaylandDisplay : public nsISuppo
 | ||||||
|  |      return mPrimarySelectionDeviceManager; | ||||||
|  |    }; | ||||||
|  |   | ||||||
|  | - public:
 | ||||||
|  |    void SetShm(wl_shm* aShm); | ||||||
|  |    void SetSubcompositor(wl_subcompositor* aSubcompositor); | ||||||
|  |    void SetDataDeviceManager(wl_data_device_manager* aDataDeviceManager); | ||||||
|  | @@ -49,9 +47,7 @@ class nsWaylandDisplay : public nsISuppo
 | ||||||
|  |    void SetPrimarySelectionDeviceManager( | ||||||
|  |        gtk_primary_selection_device_manager* aPrimarySelectionDeviceManager); | ||||||
|  |   | ||||||
|  | - private:
 | ||||||
|  | -  virtual ~nsWaylandDisplay();
 | ||||||
|  | -
 | ||||||
|  | +private:
 | ||||||
|  |    PRThread* mThreadId; | ||||||
|  |    wl_display* mDisplay; | ||||||
|  |    wl_event_queue* mEventQueue; | ||||||
|  | @@ -60,10 +56,10 @@ class nsWaylandDisplay : public nsISuppo
 | ||||||
|  |    wl_seat* mSeat; | ||||||
|  |    wl_shm* mShm; | ||||||
|  |    gtk_primary_selection_device_manager* mPrimarySelectionDeviceManager; | ||||||
|  | +  wl_registry *mRegistry;
 | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  |  nsWaylandDisplay* WaylandDisplayGet(GdkDisplay* aGdkDisplay = nullptr); | ||||||
|  | -void WaylandDisplayRelease(nsWaylandDisplay* aDisplay);
 | ||||||
|  |   | ||||||
|  |  }  // namespace widget | ||||||
|  |  }  // namespace mozilla | ||||||
|  | diff -up firefox-66.0.3/widget/gtk/WindowSurfaceWayland.cpp.mozilla-1517205 firefox-66.0.3/widget/gtk/WindowSurfaceWayland.cpp
 | ||||||
|  | --- firefox-66.0.3/widget/gtk/WindowSurfaceWayland.cpp.mozilla-1517205	2019-04-11 13:12:24.577232301 +0200
 | ||||||
|  | +++ firefox-66.0.3/widget/gtk/WindowSurfaceWayland.cpp	2019-04-11 13:12:24.583232286 +0200
 | ||||||
|  | @@ -413,16 +413,6 @@ WindowSurfaceWayland::~WindowSurfaceWayl
 | ||||||
|  |        delete mBackupBuffer[i]; | ||||||
|  |      } | ||||||
|  |    } | ||||||
|  | -
 | ||||||
|  | -  if (!mIsMainThread) {
 | ||||||
|  | -    // We can be destroyed from main thread even though we was created/used
 | ||||||
|  | -    // in compositor thread. We have to unref/delete WaylandDisplay in
 | ||||||
|  | -    // compositor thread then and we can't use MessageLoop::current() here.
 | ||||||
|  | -    mDisplayThreadMessageLoop->PostTask(NewRunnableFunction(
 | ||||||
|  | -        "WaylandDisplayRelease", &WaylandDisplayRelease, mWaylandDisplay));
 | ||||||
|  | -  } else {
 | ||||||
|  | -    WaylandDisplayRelease(mWaylandDisplay);
 | ||||||
|  | -  }
 | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  WindowBackBuffer* WindowSurfaceWayland::GetWaylandBufferToDraw(int aWidth, | ||||||
							
								
								
									
										4
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								sources
									
									
									
									
									
								
							| @ -1,3 +1,3 @@ | |||||||
| SHA512 (cbindgen-vendor.tar.xz) = b6737ca86e6223bb9e25861dae05e18469aecbeaa74d0d24719f531b01c74b9a00d9ba4e7faf6366e98cb7f0bdbeedfc337b739fff60bb3d22faabe9751f7ded | SHA512 (cbindgen-vendor.tar.xz) = b6737ca86e6223bb9e25861dae05e18469aecbeaa74d0d24719f531b01c74b9a00d9ba4e7faf6366e98cb7f0bdbeedfc337b739fff60bb3d22faabe9751f7ded | ||||||
| SHA512 (firefox-66.0.2.source.tar.xz) = 2246f3aed4e8a1d557a2383204e926c45d63d7977032512982b3698da4d6260b67fa91507f1a103af0af77198b7ffb34d6609159729aa7bf1c7c16cf2f7efc5b | SHA512 (firefox-langpacks-66.0.3-20190410.tar.xz) = f8bec6c39172def4d12c67be7aa6069b558d5c9b430d338124cb9d2aeb012a692669588028bf04d7ca318d7cf233a99758de893a69751af9dde21fc25aa9565c | ||||||
| SHA512 (firefox-langpacks-66.0.2-20190401.tar.xz) = 7976d5b1de7f3068a0f10c9106cf2e1700af8aa07972b542afac3a78aeb3713e656b4866ff1811e6753e2abe0e172d425db9430d18427997aba572efa9ebc15f | SHA512 (firefox-66.0.3.source.tar.xz) = e857408ffa4acb8676fe3f40cbbdf6c8f0913c6392568cdea8783a94140a4fdff95d117d1a1bfe890097833230b72729f58cdb1df2b552533bb21bd1fe7d77c3 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user