mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 02:14:43 +00:00
458224e190
Because we cannot control the ordering of shutdown notification from WorkerRef, we need to choose one centralized point to begin shutdown of the main thread or the owning DOM worker. Since there are other objects owned by CanvasManagerChild, we also switch to a ThreadSafeWorkerRef. Differential Revision: https://phabricator.services.mozilla.com/D195120
56 lines
1.7 KiB
C++
56 lines
1.7 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef MOZILLA_DOM_OFFSCREENCANVASRENDERINGCONTEXT2D_H_
|
|
#define MOZILLA_DOM_OFFSCREENCANVASRENDERINGCONTEXT2D_H_
|
|
|
|
#include "mozilla/RefPtr.h"
|
|
#include "mozilla/dom/CanvasRenderingContext2D.h"
|
|
|
|
struct JSContext;
|
|
class nsIGlobalObject;
|
|
|
|
namespace mozilla::dom {
|
|
class OffscreenCanvas;
|
|
|
|
class OffscreenCanvasRenderingContext2D final
|
|
: public CanvasRenderingContext2D {
|
|
public:
|
|
// nsISupports interface + CC
|
|
NS_DECL_ISUPPORTS_INHERITED
|
|
NS_DECL_CYCLE_COLLECTION_SKIPPABLE_SCRIPT_HOLDER_CLASS_INHERITED(
|
|
OffscreenCanvasRenderingContext2D, CanvasRenderingContext2D)
|
|
|
|
explicit OffscreenCanvasRenderingContext2D(
|
|
layers::LayersBackend aCompositorBackend);
|
|
|
|
nsIGlobalObject* GetParentObject() const;
|
|
|
|
JSObject* WrapObject(JSContext* aCx,
|
|
JS::Handle<JSObject*> aGivenProto) override;
|
|
|
|
OffscreenCanvas* Canvas() { return mOffscreenCanvas; }
|
|
const OffscreenCanvas* Canvas() const { return mOffscreenCanvas; }
|
|
|
|
void Commit(ErrorResult& aRv);
|
|
|
|
NS_IMETHOD InitializeWithDrawTarget(
|
|
nsIDocShell* aShell, NotNull<gfx::DrawTarget*> aTarget) override;
|
|
|
|
private:
|
|
void AddZoneWaitingForGC() override;
|
|
void AddAssociatedMemory() override;
|
|
void RemoveAssociatedMemory() override;
|
|
|
|
~OffscreenCanvasRenderingContext2D() override;
|
|
};
|
|
|
|
size_t BindingJSObjectMallocBytes(OffscreenCanvasRenderingContext2D* aContext);
|
|
|
|
} // namespace mozilla::dom
|
|
|
|
#endif // MOZILLA_DOM_OFFSCREENCANVASRENDERINGCONTEXT2D_H_
|