Index: third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp |
diff --git a/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp b/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..53b227aff9afb4057ff4babf6f190fb619186954 |
--- /dev/null |
+++ b/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp |
@@ -0,0 +1,38 @@ |
+// 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. |
+ |
+#include "modules/csspaint/CSSPaintDefinition.h" |
+ |
+#include "bindings/core/v8/ScriptState.h" |
+ |
+namespace blink { |
+ |
+namespace { |
+ |
+static void clearHandle(const v8::WeakCallbackInfo<ScopedPersistent<v8::Function>>& data) |
+{ |
+ data.GetParameter()->clear(); |
+} |
+ |
+} // namespace |
+ |
+PassRefPtrWillBeRawPtr<CSSPaintDefinition> CSSPaintDefinition::create(ScriptState* scriptState, v8::Local<v8::Function> constructor, v8::Local<v8::Function> paint) |
+{ |
+ return adoptRefWillBeNoop(new CSSPaintDefinition(scriptState, constructor, paint)); |
+} |
+ |
+CSSPaintDefinition::CSSPaintDefinition(ScriptState* scriptState, v8::Local<v8::Function> constructor, v8::Local<v8::Function> paint) |
+ : m_scriptState(scriptState) |
+ , m_constructor(scriptState->isolate(), constructor) |
+ , m_paint(scriptState->isolate(), paint) |
+{ |
+ m_constructor.setWeak(&m_constructor, clearHandle); |
+ m_paint.setWeak(&m_paint, clearHandle); |
+} |
+ |
+CSSPaintDefinition::~CSSPaintDefinition() |
+{ |
+} |
+ |
+} // namespace blink |