| Index: Source/core/html/HTMLCanvasElement.cpp
|
| diff --git a/Source/core/html/HTMLCanvasElement.cpp b/Source/core/html/HTMLCanvasElement.cpp
|
| index ae520f32f8e825c698f310b478cd4769e155f020..4261c16be2d9766a3c6298130bc45f207be91457 100644
|
| --- a/Source/core/html/HTMLCanvasElement.cpp
|
| +++ b/Source/core/html/HTMLCanvasElement.cpp
|
| @@ -71,6 +71,7 @@ static const int MaxSkiaDim = 32767; // Maximum width/height in CSS pixels.
|
|
|
| HTMLCanvasElement::HTMLCanvasElement(Document& document)
|
| : HTMLElement(canvasTag, document)
|
| + , DocumentVisibilityObserver(document)
|
| , m_size(DefaultWidth, DefaultHeight)
|
| , m_rendererIsCanvas(false)
|
| , m_ignoreReset(false)
|
| @@ -571,4 +572,26 @@ AffineTransform HTMLCanvasElement::baseTransform() const
|
| return m_imageBuffer->baseTransform();
|
| }
|
|
|
| +void HTMLCanvasElement::didChangeVisibilityState(PageVisibilityState visibility)
|
| +{
|
| + if (hasImageBuffer()) {
|
| + bool hidden = visibility != PageVisibilityStateVisible;
|
| + if (hidden) {
|
| + clearCopiedImage();
|
| + if (is3D()) {
|
| + m_imageBuffer.clear();
|
| + }
|
| + }
|
| + if (hasImageBuffer()) {
|
| + m_imageBuffer->setIsHidden(hidden);
|
| + }
|
| + }
|
| +}
|
| +
|
| +void HTMLCanvasElement::didMoveToNewDocument(Document& oldDocument)
|
| +{
|
| + setObservedDocument(document());
|
| + HTMLElement::didMoveToNewDocument(oldDocument);
|
| +}
|
| +
|
| }
|
|
|