Chromium Code Reviews| Index: third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.h |
| diff --git a/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.h b/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..f5926ec851071b62207a6b13f7cfe7c88f211997 |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.h |
| @@ -0,0 +1,46 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CSSPaintImageGeneratorImpl_h |
| +#define CSSPaintImageGeneratorImpl_h |
| + |
| +#include "bindings/core/v8/ScopedPersistent.h" |
| +#include "core/css/CSSPaintImageGenerator.h" |
| +#include "platform/geometry/IntSize.h" |
| +#include "platform/heap/Handle.h" |
| +#include <v8.h> |
| + |
| +namespace blink { |
| + |
| +class CSSPaintDefinition; |
| +class Document; |
| +class Image; |
| + |
| +class CSSPaintImageGeneratorImpl final : public CSSPaintImageGenerator { |
| +public: |
| + static CSSPaintImageGenerator* create(const String& name, Document&, Observer*); |
| + ~CSSPaintImageGeneratorImpl() override; |
| + |
| + PassRefPtr<Image> paint(const IntSize&) final; |
| + |
| + // Should be called from the PaintWorkletGlobalScope when a javascript class |
| + // is registered with the same name. |
| + void setDefinition(CSSPaintDefinition*); |
| + |
| + DECLARE_VIRTUAL_TRACE(); |
| + |
| +private: |
| + CSSPaintImageGeneratorImpl(Observer*); |
| + CSSPaintImageGeneratorImpl(CSSPaintDefinition*); |
| + |
| + Member<CSSPaintDefinition> m_definition; |
| + Observer* m_observer; |
|
haraken
2016/04/08 04:31:19
Can you make the Observer a GarbageCollectedMixin
ikilpatrick
2016/04/08 18:43:21
Made GarbageCollectedFinalized, see comment in CSS
|
| + |
| + // An instance of the paint class is owned and kept alive by this class. |
| + ScopedPersistent<v8::Object> m_instance; |
|
haraken
2016/04/08 04:31:19
Who clears out m_instance when the worklet dies? H
ikilpatrick
2016/04/08 18:43:21
Removed.
|
| +}; |
| + |
| +} // namespace blink |
| + |
| +#endif // CSSPaintImageGeneratorImpl_h |