opnsense-ports/mail/thunderbird/files/patch-bug1411481
Franco Fichtner 5cb21f5220 */*: sync with upstream
Taken from: HardenedBSD
2018-07-19 08:08:05 +02:00

85 lines
3.3 KiB
Text

commit 57a55d1c2d33
Author: sotaro <sotaro.ikeda.g@gmail.com>
Date: Wed Mar 21 08:59:38 2018 +0900
Bug 1411481- Enable SkiaGL canvas usage on Mac r=jrmuizel
---
dom/canvas/CanvasRenderingContext2D.cpp | 3 ++-
gfx/thebes/gfxPlatform.cpp | 3 ++-
gfx/thebes/gfxPlatform.h | 2 +-
gfx/thebes/gfxWindowsPlatform.cpp | 7 +++++++
gfx/thebes/gfxWindowsPlatform.h | 2 ++
5 files changed, 14 insertions(+), 3 deletions(-)
diff --git dom/canvas/CanvasRenderingContext2D.cpp dom/canvas/CanvasRenderingContext2D.cpp
index ef3f868bdbf7..8666564b4d0c 100644
--- dom/canvas/CanvasRenderingContext2D.cpp
+++ dom/canvas/CanvasRenderingContext2D.cpp
@@ -1438,7 +1438,8 @@ CanvasRenderingContext2D::AllowOpenGLCanvas() const
// HTMLCanvasElement::GetCompositorBackendType would return LAYERS_NONE
// as well, so it wouldn't help much.
- return (mCompositorBackend == LayersBackend::LAYERS_OPENGL) &&
+ return (mCompositorBackend == LayersBackend::LAYERS_OPENGL ||
+ mCompositorBackend == LayersBackend::LAYERS_WR) &&
gfxPlatform::GetPlatform()->AllowOpenGLCanvas();
}
diff --git gfx/thebes/gfxPlatform.cpp gfx/thebes/gfxPlatform.cpp
index b9beea68d8c5..82635f9ab3ce 100644
--- gfx/thebes/gfxPlatform.cpp
+++ gfx/thebes/gfxPlatform.cpp
@@ -1386,7 +1386,8 @@ bool gfxPlatform::AllowOpenGLCanvas()
// so we let content process always assume correct compositor backend.
// The callers have to do the right thing.
bool correctBackend = !XRE_IsParentProcess() ||
- ((mCompositorBackend == LayersBackend::LAYERS_OPENGL) &&
+ ((mCompositorBackend == LayersBackend::LAYERS_OPENGL ||
+ mCompositorBackend == LayersBackend::LAYERS_WR) &&
(GetContentBackendFor(mCompositorBackend) == BackendType::SKIA));
if (gfxPrefs::CanvasAzureAccelerated() && correctBackend) {
diff --git gfx/thebes/gfxPlatform.h gfx/thebes/gfxPlatform.h
index c988eb1168a8..3bbf2b763f26 100644
--- gfx/thebes/gfxPlatform.h
+++ gfx/thebes/gfxPlatform.h
@@ -286,7 +286,7 @@ public:
/// asking for it, we will examine the commands in the first few seconds
/// of the canvas usage, and potentially change to accelerated or
/// non-accelerated canvas.
- bool AllowOpenGLCanvas();
+ virtual bool AllowOpenGLCanvas();
virtual void InitializeSkiaCacheLimits();
static bool AsyncPanZoomEnabled();
diff --git gfx/thebes/gfxWindowsPlatform.cpp gfx/thebes/gfxWindowsPlatform.cpp
index 9ba6f40c6cc0..4d65791d075f 100644
--- gfx/thebes/gfxWindowsPlatform.cpp
+++ gfx/thebes/gfxWindowsPlatform.cpp
@@ -509,6 +509,13 @@ gfxWindowsPlatform::UpdateRenderMode()
}
}
+bool
+gfxWindowsPlatform::AllowOpenGLCanvas()
+{
+ // OpenGL canvas is not supported on windows
+ return false;
+}
+
mozilla::gfx::BackendType
gfxWindowsPlatform::GetContentBackendFor(mozilla::layers::LayersBackend aLayers)
{
diff --git gfx/thebes/gfxWindowsPlatform.h gfx/thebes/gfxWindowsPlatform.h
index 47048de8f5f5..47ec0e9e5547 100644
--- gfx/thebes/gfxWindowsPlatform.h
+++ gfx/thebes/gfxWindowsPlatform.h
@@ -174,6 +174,8 @@ public:
void SchedulePaintIfDeviceReset() override;
void CheckForContentOnlyDeviceReset();
+ bool AllowOpenGLCanvas() override;
+
mozilla::gfx::BackendType GetContentBackendFor(mozilla::layers::LayersBackend aLayers) override;
mozilla::gfx::BackendType GetPreferredCanvasBackend() override;