зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1172796 - Part 2: Add write-only flag for origin-clean check. r=roc
--HG-- extra : commitid : 2PNCCwc1czh
This commit is contained in:
Родитель
c684330abd
Коммит
6587a9fbd2
|
@ -24,12 +24,13 @@ namespace dom {
|
|||
OffscreenCanvasCloneData::OffscreenCanvasCloneData(layers::AsyncCanvasRenderer* aRenderer,
|
||||
uint32_t aWidth, uint32_t aHeight,
|
||||
layers::LayersBackend aCompositorBackend,
|
||||
bool aNeutered)
|
||||
bool aNeutered, bool aIsWriteOnly)
|
||||
: mRenderer(aRenderer)
|
||||
, mWidth(aWidth)
|
||||
, mHeight(aHeight)
|
||||
, mCompositorBackendType(aCompositorBackend)
|
||||
, mNeutered(aNeutered)
|
||||
, mIsWriteOnly(aIsWriteOnly)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -43,6 +44,7 @@ OffscreenCanvas::OffscreenCanvas(uint32_t aWidth,
|
|||
layers::AsyncCanvasRenderer* aRenderer)
|
||||
: mAttrDirty(false)
|
||||
, mNeutered(false)
|
||||
, mIsWriteOnly(false)
|
||||
, mWidth(aWidth)
|
||||
, mHeight(aHeight)
|
||||
, mCompositorBackendType(aCompositorBackend)
|
||||
|
@ -191,7 +193,7 @@ OffscreenCanvasCloneData*
|
|||
OffscreenCanvas::ToCloneData()
|
||||
{
|
||||
return new OffscreenCanvasCloneData(mCanvasRenderer, mWidth, mHeight,
|
||||
mCompositorBackendType, mNeutered);
|
||||
mCompositorBackendType, mNeutered, mIsWriteOnly);
|
||||
}
|
||||
|
||||
/* static */ already_AddRefed<OffscreenCanvas>
|
||||
|
|
|
@ -35,7 +35,7 @@ struct OffscreenCanvasCloneData final
|
|||
OffscreenCanvasCloneData(layers::AsyncCanvasRenderer* aRenderer,
|
||||
uint32_t aWidth, uint32_t aHeight,
|
||||
layers::LayersBackend aCompositorBackend,
|
||||
bool aNeutered);
|
||||
bool aNeutered, bool aIsWriteOnly);
|
||||
~OffscreenCanvasCloneData();
|
||||
|
||||
RefPtr<layers::AsyncCanvasRenderer> mRenderer;
|
||||
|
@ -43,6 +43,7 @@ struct OffscreenCanvasCloneData final
|
|||
uint32_t mHeight;
|
||||
layers::LayersBackend mCompositorBackendType;
|
||||
bool mNeutered;
|
||||
bool mIsWriteOnly;
|
||||
};
|
||||
|
||||
class OffscreenCanvas final : public DOMEventTargetHelper
|
||||
|
@ -147,6 +148,16 @@ public:
|
|||
return mNeutered;
|
||||
}
|
||||
|
||||
void SetWriteOnly()
|
||||
{
|
||||
mIsWriteOnly = true;
|
||||
}
|
||||
|
||||
bool IsWriteOnly() const
|
||||
{
|
||||
return mIsWriteOnly;
|
||||
}
|
||||
|
||||
layers::LayersBackend GetCompositorBackendType() const
|
||||
{
|
||||
return mCompositorBackendType;
|
||||
|
@ -164,6 +175,7 @@ private:
|
|||
|
||||
bool mAttrDirty;
|
||||
bool mNeutered;
|
||||
bool mIsWriteOnly;
|
||||
|
||||
uint32_t mWidth;
|
||||
uint32_t mHeight;
|
||||
|
|
|
@ -783,6 +783,10 @@ HTMLCanvasElement::TransferControlToOffscreen(ErrorResult& aRv)
|
|||
sz.height,
|
||||
GetCompositorBackendType(),
|
||||
renderer);
|
||||
if (mWriteOnly) {
|
||||
mOffscreenCanvas->SetWriteOnly();
|
||||
}
|
||||
|
||||
if (!mContextObserver) {
|
||||
mContextObserver = new HTMLCanvasElementObserver(this);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче