| 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
|
| index dc4bc2f35b06fb31dea2a4c5a4b623bfec4c0207..41059bb1ffc3f1a9ed5a8b1ff373c359b2a1a278 100644
|
| --- a/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp
|
| +++ b/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp
|
| @@ -8,7 +8,10 @@
|
| #include "bindings/core/v8/V8Binding.h"
|
| #include "bindings/core/v8/V8BindingMacros.h"
|
| #include "bindings/core/v8/V8ObjectConstructor.h"
|
| +#include "core/css/CSSComputedStyleDeclaration.h"
|
| +#include "core/css/cssom/FilteredComputedStylePropertyMap.h"
|
| #include "core/dom/ExecutionContext.h"
|
| +#include "core/layout/LayoutObject.h"
|
| #include "modules/csspaint/Geometry.h"
|
| #include "modules/csspaint/PaintRenderingContext2D.h"
|
| #include "platform/graphics/ImageBuffer.h"
|
| @@ -35,7 +38,7 @@ CSSPaintDefinition::~CSSPaintDefinition()
|
| {
|
| }
|
|
|
| -PassRefPtr<Image> CSSPaintDefinition::paint(const IntSize& size)
|
| +PassRefPtr<Image> CSSPaintDefinition::paint(const LayoutObject& layoutObject, const IntSize& size)
|
| {
|
| ScriptState::Scope scope(m_scriptState.get());
|
|
|
| @@ -49,13 +52,19 @@ PassRefPtr<Image> CSSPaintDefinition::paint(const IntSize& size)
|
| if (isUndefinedOrNull(instance))
|
| return nullptr;
|
|
|
| + DCHECK(layoutObject.node());
|
| +
|
| PaintRenderingContext2D* renderingContext = PaintRenderingContext2D::create(
|
| ImageBuffer::create(adoptPtr(new RecordingImageBufferSurface(size))));
|
| Geometry* geometry = Geometry::create(size);
|
| + StylePropertyMap* styleMap = FilteredComputedStylePropertyMap::create(
|
| + CSSComputedStyleDeclaration::create(layoutObject.node()),
|
| + m_nativeInvalidationProperties, m_customInvalidationProperties);
|
|
|
| v8::Local<v8::Value> argv[] = {
|
| toV8(renderingContext, m_scriptState->context()->Global(), isolate),
|
| - toV8(geometry, m_scriptState->context()->Global(), isolate)
|
| + toV8(geometry, m_scriptState->context()->Global(), isolate),
|
| + toV8(styleMap, m_scriptState->context()->Global(), isolate)
|
| };
|
|
|
| v8::Local<v8::Function> paint = m_paint.newLocal(isolate);
|
| @@ -63,7 +72,7 @@ PassRefPtr<Image> CSSPaintDefinition::paint(const IntSize& size)
|
| v8::TryCatch block(isolate);
|
| block.SetVerbose(true);
|
|
|
| - V8ScriptRunner::callFunction(paint, m_scriptState->getExecutionContext(), instance, 2, argv, isolate);
|
| + V8ScriptRunner::callFunction(paint, m_scriptState->getExecutionContext(), instance, 3, argv, isolate);
|
|
|
| // The paint function may have produced an error, in which case produce an
|
| // invalid image.
|
|
|