diff options
author | Jan Beich <jbeich@FreeBSD.org> | 2018-02-08 00:59:50 +0000 |
---|---|---|
committer | Jan Beich <jbeich@FreeBSD.org> | 2018-02-08 00:59:50 +0000 |
commit | 451a0ca76b66769f9f81f5c358d224f7742d178b (patch) | |
tree | fe03cc61a38df79514724e2b44a157de0b446576 /www/waterfox/files/patch-bug1435286 | |
parent | 8fc915616fd0ea3f496dcb289dbb3f1e94c721a9 (diff) | |
download | ports-451a0ca76b66769f9f81f5c358d224f7742d178b.tar.gz ports-451a0ca76b66769f9f81f5c358d224f7742d178b.zip |
MFH: r461193
www/waterfox: apply some FF57/FF59 fixes
Approved by: ports-secteam blanket
Notes
Notes:
svn path=/branches/2018Q1/; revision=461194
Diffstat (limited to 'www/waterfox/files/patch-bug1435286')
-rw-r--r-- | www/waterfox/files/patch-bug1435286 | 294 |
1 files changed, 294 insertions, 0 deletions
diff --git a/www/waterfox/files/patch-bug1435286 b/www/waterfox/files/patch-bug1435286 new file mode 100644 index 000000000000..4aa4aa1f8aa3 --- /dev/null +++ b/www/waterfox/files/patch-bug1435286 @@ -0,0 +1,294 @@ +commit 63d4e507c859 +Author: Jonathan Watt <jwatt@jwatt.org> +Date: Thu Jan 18 12:45:18 2018 +0000 + + Bug 1435286 - Stop recording draw events for reference DrawTargets returned from PrintTarget. r=bobowen a=RyanVM + + MozReview-Commit-ID: 1cE71hBCGx5 + + --HG-- + extra : source : 2ec583a00c078700add6a3615f6b6af12756695c +--- + gfx/src/nsDeviceContext.cpp | 9 ++++----- + gfx/thebes/PrintTarget.cpp | 24 +----------------------- + gfx/thebes/PrintTarget.h | 13 ++----------- + gfx/thebes/PrintTargetCG.h | 2 +- + gfx/thebes/PrintTargetCG.mm | 23 +---------------------- + gfx/thebes/PrintTargetEMF.cpp | 4 ++-- + gfx/thebes/PrintTargetEMF.h | 2 +- + gfx/thebes/PrintTargetSkPDF.cpp | 23 +---------------------- + gfx/thebes/PrintTargetSkPDF.h | 2 +- + gfx/thebes/PrintTargetThebes.cpp | 23 +---------------------- + gfx/thebes/PrintTargetThebes.h | 2 +- + 11 files changed, 16 insertions(+), 111 deletions(-) + +diff --git gfx/src/nsDeviceContext.cpp gfx/src/nsDeviceContext.cpp +index 913f46d272cc..ca5db861a303 100644 +--- gfx/src/nsDeviceContext.cpp ++++ gfx/src/nsDeviceContext.cpp +@@ -382,14 +382,13 @@ nsDeviceContext::CreateRenderingContextCommon(bool aWantReferenceContext) + MOZ_ASSERT(IsPrinterContext()); + MOZ_ASSERT(mWidth > 0 && mHeight > 0); + +- // This will usually be null, depending on the pref print.print_via_parent. +- RefPtr<DrawEventRecorder> recorder; +- mDeviceContextSpec->GetDrawEventRecorder(getter_AddRefs(recorder)); +- + RefPtr<gfx::DrawTarget> dt; + if (aWantReferenceContext) { +- dt = mPrintTarget->GetReferenceDrawTarget(recorder); ++ dt = mPrintTarget->GetReferenceDrawTarget(); + } else { ++ // This will be null if e10s is disabled or print.print_via_parent=false. ++ RefPtr<DrawEventRecorder> recorder; ++ mDeviceContextSpec->GetDrawEventRecorder(getter_AddRefs(recorder)); + dt = mPrintTarget->MakeDrawTarget(gfx::IntSize(mWidth, mHeight), recorder); + } + +diff --git gfx/thebes/PrintTarget.cpp gfx/thebes/PrintTarget.cpp +index bb81158e5b77..c76a930221bf 100644 +--- gfx/thebes/PrintTarget.cpp ++++ gfx/thebes/PrintTarget.cpp +@@ -25,7 +25,6 @@ PrintTarget::PrintTarget(cairo_surface_t* aCairoSurface, const IntSize& aSize) + , mIsFinished(false) + #ifdef DEBUG + , mHasActivePage(false) +- , mRecorder(nullptr) + #endif + + { +@@ -92,7 +91,7 @@ PrintTarget::MakeDrawTarget(const IntSize& aSize, + } + + already_AddRefed<DrawTarget> +-PrintTarget::GetReferenceDrawTarget(DrawEventRecorder* aRecorder) ++PrintTarget::GetReferenceDrawTarget() + { + if (!mRefDT) { + const IntSize size(1, 1); +@@ -136,27 +135,6 @@ PrintTarget::GetReferenceDrawTarget(DrawEventRecorder* aRecorder) + mRefDT = dt.forget(); + } + +- if (aRecorder) { +- if (!mRecordingRefDT) { +- RefPtr<DrawTarget> dt = CreateWrapAndRecordDrawTarget(aRecorder, mRefDT); +- if (!dt || !dt->IsValid()) { +- return nullptr; +- } +- mRecordingRefDT = dt.forget(); +-#ifdef DEBUG +- mRecorder = aRecorder; +-#endif +- } +-#ifdef DEBUG +- else { +- MOZ_ASSERT(aRecorder == mRecorder, +- "Caching mRecordingRefDT assumes the aRecorder is an invariant"); +- } +-#endif +- +- return do_AddRef(mRecordingRefDT); +- } +- + return do_AddRef(mRefDT); + } + +diff --git gfx/thebes/PrintTarget.h gfx/thebes/PrintTarget.h +index c5720c6cdb1f..818dc31fe0c4 100644 +--- gfx/thebes/PrintTarget.h ++++ gfx/thebes/PrintTarget.h +@@ -130,10 +130,9 @@ public: + /** + * Returns a reference DrawTarget. Unlike MakeDrawTarget, this method is not + * restricted to being called between BeginPage()/EndPage() calls, and the +- * returned DrawTarget it is still valid to use after EndPage() has been +- * called. ++ * returned DrawTarget is still valid to use after EndPage() has been called. + */ +- virtual already_AddRefed<DrawTarget> GetReferenceDrawTarget(DrawEventRecorder* aRecorder); ++ virtual already_AddRefed<DrawTarget> GetReferenceDrawTarget(); + + protected: + +@@ -150,18 +149,10 @@ protected: + cairo_surface_t* mCairoSurface; + RefPtr<DrawTarget> mRefDT; // reference DT + +- // Early on during printing we expect to be called without a recorder in +- // order to gather metrics for reflow. However, in a content process, once +- // we go on to paint we then expect to be called with a recorder. Hence why +- // we have this separate recording reference DrawTarget (which wraps mRefDT). +- RefPtr<DrawTarget> mRecordingRefDT; +- + IntSize mSize; + bool mIsFinished; + #ifdef DEBUG + bool mHasActivePage; +- // owned by mRecordingRefDT, so kept alive for our entire lifetime if set: +- DrawEventRecorder* mRecorder; + #endif + }; + +diff --git gfx/thebes/PrintTargetCG.h gfx/thebes/PrintTargetCG.h +index 8e0d2c505024..7808ebbd2a58 100644 +--- gfx/thebes/PrintTargetCG.h ++++ gfx/thebes/PrintTargetCG.h +@@ -34,7 +34,7 @@ public: + virtual nsresult EndPage() final; + + virtual already_AddRefed<DrawTarget> +- GetReferenceDrawTarget(DrawEventRecorder* aRecorder) final; ++ GetReferenceDrawTarget() final; + + private: + PrintTargetCG(PMPrintSession aPrintSession, +diff --git gfx/thebes/PrintTargetCG.mm gfx/thebes/PrintTargetCG.mm +index 7a7858f71456..93432711ed3d 100644 +--- gfx/thebes/PrintTargetCG.mm ++++ gfx/thebes/PrintTargetCG.mm +@@ -65,7 +65,7 @@ PutBytesNull(void* info, const void* buffer, size_t count) + } + + already_AddRefed<DrawTarget> +-PrintTargetCG::GetReferenceDrawTarget(DrawEventRecorder* aRecorder) ++PrintTargetCG::GetReferenceDrawTarget() + { + if (!mRefDT) { + const IntSize size(1, 1); +@@ -97,27 +97,6 @@ PrintTargetCG::GetReferenceDrawTarget(DrawEventRecorder* aRecorder) + mRefDT = dt.forget(); + } + +- if (aRecorder) { +- if (!mRecordingRefDT) { +- RefPtr<DrawTarget> dt = CreateWrapAndRecordDrawTarget(aRecorder, mRefDT); +- if (!dt || !dt->IsValid()) { +- return nullptr; +- } +- mRecordingRefDT = dt.forget(); +-#ifdef DEBUG +- mRecorder = aRecorder; +-#endif +- } +-#ifdef DEBUG +- else { +- MOZ_ASSERT(aRecorder == mRecorder, +- "Caching mRecordingRefDT assumes the aRecorder is an invariant"); +- } +-#endif +- +- return do_AddRef(mRecordingRefDT); +- } +- + return do_AddRef(mRefDT); + } + +diff --git gfx/thebes/PrintTargetSkPDF.cpp gfx/thebes/PrintTargetSkPDF.cpp +index bdc6f9fec21f..e89afaea5d47 100644 +--- gfx/thebes/PrintTargetSkPDF.cpp ++++ gfx/thebes/PrintTargetSkPDF.cpp +@@ -122,7 +122,7 @@ PrintTargetSkPDF::MakeDrawTarget(const IntSize& aSize, + } + + already_AddRefed<DrawTarget> +-PrintTargetSkPDF::GetReferenceDrawTarget(DrawEventRecorder* aRecorder) ++PrintTargetSkPDF::GetReferenceDrawTarget() + { + if (!mRefDT) { + SkDocument::PDFMetadata metadata; +@@ -145,27 +145,6 @@ PrintTargetSkPDF::GetReferenceDrawTarget(DrawEventRecorder* aRecorder) + mRefDT = dt.forget(); + } + +- if (aRecorder) { +- if (!mRecordingRefDT) { +- RefPtr<DrawTarget> dt = CreateWrapAndRecordDrawTarget(aRecorder, mRefDT); +- if (!dt || !dt->IsValid()) { +- return nullptr; +- } +- mRecordingRefDT = dt.forget(); +-#ifdef DEBUG +- mRecorder = aRecorder; +-#endif +- } +-#ifdef DEBUG +- else { +- MOZ_ASSERT(aRecorder == mRecorder, +- "Caching mRecordingRefDT assumes the aRecorder is an invariant"); +- } +-#endif +- +- return do_AddRef(mRecordingRefDT); +- } +- + return do_AddRef(mRefDT); + } + +diff --git gfx/thebes/PrintTargetSkPDF.h gfx/thebes/PrintTargetSkPDF.h +index fe5f28b31202..84ef2ff21ace 100644 +--- gfx/thebes/PrintTargetSkPDF.h ++++ gfx/thebes/PrintTargetSkPDF.h +@@ -44,7 +44,7 @@ public: + DrawEventRecorder* aRecorder = nullptr) final; + + virtual already_AddRefed<DrawTarget> +- GetReferenceDrawTarget(DrawEventRecorder* aRecorder) override final; ++ GetReferenceDrawTarget() override final; + + private: + PrintTargetSkPDF(const IntSize& aSize, +diff --git gfx/thebes/PrintTargetThebes.cpp gfx/thebes/PrintTargetThebes.cpp +index 3cb6d1e5d6b7..f12a7d5b3fb9 100644 +--- gfx/thebes/PrintTargetThebes.cpp ++++ gfx/thebes/PrintTargetThebes.cpp +@@ -57,7 +57,7 @@ PrintTargetThebes::MakeDrawTarget(const IntSize& aSize, + } + + already_AddRefed<DrawTarget> +-PrintTargetThebes::GetReferenceDrawTarget(DrawEventRecorder* aRecorder) ++PrintTargetThebes::GetReferenceDrawTarget() + { + if (!mRefDT) { + RefPtr<gfx::DrawTarget> dt = +@@ -68,27 +68,6 @@ PrintTargetThebes::GetReferenceDrawTarget(DrawEventRecorder* aRecorder) + mRefDT = dt->CreateSimilarDrawTarget(IntSize(1,1), dt->GetFormat()); + } + +- if (aRecorder) { +- if (!mRecordingRefDT) { +- RefPtr<DrawTarget> dt = CreateWrapAndRecordDrawTarget(aRecorder, mRefDT); +- if (!dt || !dt->IsValid()) { +- return nullptr; +- } +- mRecordingRefDT = dt.forget(); +-#ifdef DEBUG +- mRecorder = aRecorder; +-#endif +- } +-#ifdef DEBUG +- else { +- MOZ_ASSERT(aRecorder == mRecorder, +- "Caching mRecordingRefDT assumes the aRecorder is an invariant"); +- } +-#endif +- +- return do_AddRef(mRecordingRefDT); +- } +- + return do_AddRef(mRefDT); + } + +diff --git gfx/thebes/PrintTargetThebes.h gfx/thebes/PrintTargetThebes.h +index 02f0e0ea51c3..94ffbc78fa6c 100644 +--- gfx/thebes/PrintTargetThebes.h ++++ gfx/thebes/PrintTargetThebes.h +@@ -43,7 +43,7 @@ public: + MakeDrawTarget(const IntSize& aSize, + DrawEventRecorder* aRecorder = nullptr) override; + +- virtual already_AddRefed<DrawTarget> GetReferenceDrawTarget(DrawEventRecorder* aRecorder) final; ++ virtual already_AddRefed<DrawTarget> GetReferenceDrawTarget() final; + + private: + |