From aba970f2a872b445515cd261cc8eca288676a49e Mon Sep 17 00:00:00 2001 From: Morris Tseng Date: Fri, 16 Oct 2015 10:01:53 +0800 Subject: [PATCH] Bug 1214571 - Only create mContextObserver once. r=baku --HG-- extra : commitid : JlT1u9F257B extra : rebase_source : 7898e6c864c6851e05f47425462d5048483c9633 --- dom/html/HTMLCanvasElement.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dom/html/HTMLCanvasElement.cpp b/dom/html/HTMLCanvasElement.cpp index 1d2c8dae1821..fcaa822906f1 100644 --- a/dom/html/HTMLCanvasElement.cpp +++ b/dom/html/HTMLCanvasElement.cpp @@ -400,7 +400,9 @@ HTMLCanvasElement::CreateContext(CanvasContextType aContextType) // Add Observer for webgl canvas. if (aContextType == CanvasContextType::WebGL1 || aContextType == CanvasContextType::WebGL2) { - mContextObserver = new HTMLCanvasElementObserver(this); + if (!mContextObserver) { + mContextObserver = new HTMLCanvasElementObserver(this); + } } ret->SetCanvasElement(this); @@ -779,7 +781,9 @@ HTMLCanvasElement::TransferControlToOffscreen(ErrorResult& aRv) sz.height, GetCompositorBackendType(), renderer); - mContextObserver = new HTMLCanvasElementObserver(this); + if (!mContextObserver) { + mContextObserver = new HTMLCanvasElementObserver(this); + } } else { aRv.Throw(NS_ERROR_DOM_INVALID_STATE_ERR); }