| Index: Source/platform/graphics/filters/FilterOperation.h
|
| diff --git a/Source/platform/graphics/filters/FilterOperation.h b/Source/platform/graphics/filters/FilterOperation.h
|
| index 93bb10b6e46e4f45b7069165e0f45183eb7f85bc..b6270f3fe9d52240cbc60752a998725bc3c4d62d 100644
|
| --- a/Source/platform/graphics/filters/FilterOperation.h
|
| +++ b/Source/platform/graphics/filters/FilterOperation.h
|
| @@ -31,6 +31,7 @@
|
| #include "platform/graphics/Color.h"
|
| #include "platform/graphics/filters/Filter.h"
|
| #include "platform/graphics/filters/ReferenceFilter.h"
|
| +#include "platform/heap/Handle.h"
|
| #include "wtf/OwnPtr.h"
|
| #include "wtf/PassOwnPtr.h"
|
| #include "wtf/RefCounted.h"
|
| @@ -40,7 +41,7 @@ namespace blink {
|
|
|
| // CSS Filters
|
|
|
| -class PLATFORM_EXPORT FilterOperation : public RefCounted<FilterOperation> {
|
| +class PLATFORM_EXPORT FilterOperation : public RefCountedWillBeGarbageCollectedFinalized<FilterOperation> {
|
| public:
|
| enum OperationType {
|
| REFERENCE, // url(#somefilter)
|
| @@ -81,8 +82,9 @@ public:
|
| }
|
|
|
| virtual ~FilterOperation() { }
|
| + virtual void trace(Visitor*) { }
|
|
|
| - static PassRefPtr<FilterOperation> blend(const FilterOperation* from, const FilterOperation* to, double progress);
|
| + static PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, const FilterOperation* to, double progress);
|
| virtual bool operator==(const FilterOperation&) const = 0;
|
| bool operator!=(const FilterOperation& o) const { return !(*this == o); }
|
|
|
| @@ -103,7 +105,7 @@ protected:
|
| OperationType m_type;
|
|
|
| private:
|
| - virtual PassRefPtr<FilterOperation> blend(const FilterOperation* from, double progress) const = 0;
|
| + virtual PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const = 0;
|
| };
|
|
|
| #define DEFINE_FILTER_OPERATION_TYPE_CASTS(thisType, operationType) \
|
| @@ -111,9 +113,9 @@ private:
|
|
|
| class PLATFORM_EXPORT ReferenceFilterOperation : public FilterOperation {
|
| public:
|
| - static PassRefPtr<ReferenceFilterOperation> create(const String& url, const AtomicString& fragment)
|
| + static PassRefPtrWillBeRawPtr<ReferenceFilterOperation> create(const String& url, const AtomicString& fragment)
|
| {
|
| - return adoptRef(new ReferenceFilterOperation(url, fragment));
|
| + return adoptRefWillBeNoop(new ReferenceFilterOperation(url, fragment));
|
| }
|
|
|
| virtual bool affectsOpacity() const override { return true; }
|
| @@ -123,10 +125,12 @@ public:
|
| const AtomicString& fragment() const { return m_fragment; }
|
|
|
| ReferenceFilter* filter() const { return m_filter.get(); }
|
| - void setFilter(PassRefPtr<ReferenceFilter> filter) { m_filter = filter; }
|
| + void setFilter(PassRefPtrWillBeRawPtr<ReferenceFilter> filter) { m_filter = filter; }
|
| +
|
| + virtual void trace(Visitor*) override;
|
|
|
| private:
|
| - virtual PassRefPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override
|
| + virtual PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override
|
| {
|
| ASSERT_NOT_REACHED();
|
| return nullptr;
|
| @@ -149,7 +153,7 @@ private:
|
|
|
| String m_url;
|
| AtomicString m_fragment;
|
| - RefPtr<ReferenceFilter> m_filter;
|
| + RefPtrWillBeMember<ReferenceFilter> m_filter;
|
| };
|
|
|
| DEFINE_FILTER_OPERATION_TYPE_CASTS(ReferenceFilterOperation, REFERENCE);
|
| @@ -158,16 +162,16 @@ DEFINE_FILTER_OPERATION_TYPE_CASTS(ReferenceFilterOperation, REFERENCE);
|
| // For HUE_ROTATE, the angle of rotation is stored in m_amount.
|
| class PLATFORM_EXPORT BasicColorMatrixFilterOperation : public FilterOperation {
|
| public:
|
| - static PassRefPtr<BasicColorMatrixFilterOperation> create(double amount, OperationType type)
|
| + static PassRefPtrWillBeRawPtr<BasicColorMatrixFilterOperation> create(double amount, OperationType type)
|
| {
|
| - return adoptRef(new BasicColorMatrixFilterOperation(amount, type));
|
| + return adoptRefWillBeNoop(new BasicColorMatrixFilterOperation(amount, type));
|
| }
|
|
|
| double amount() const { return m_amount; }
|
|
|
|
|
| private:
|
| - virtual PassRefPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
|
| + virtual PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
|
| virtual bool operator==(const FilterOperation& o) const override
|
| {
|
| if (!isSameType(o))
|
| @@ -196,9 +200,9 @@ DEFINE_TYPE_CASTS(BasicColorMatrixFilterOperation, FilterOperation, op, isBasicC
|
| // INVERT, BRIGHTNESS, CONTRAST and OPACITY are variations on a basic component transfer effect.
|
| class PLATFORM_EXPORT BasicComponentTransferFilterOperation : public FilterOperation {
|
| public:
|
| - static PassRefPtr<BasicComponentTransferFilterOperation> create(double amount, OperationType type)
|
| + static PassRefPtrWillBeRawPtr<BasicComponentTransferFilterOperation> create(double amount, OperationType type)
|
| {
|
| - return adoptRef(new BasicComponentTransferFilterOperation(amount, type));
|
| + return adoptRefWillBeNoop(new BasicComponentTransferFilterOperation(amount, type));
|
| }
|
|
|
| double amount() const { return m_amount; }
|
| @@ -207,7 +211,7 @@ public:
|
|
|
|
|
| private:
|
| - virtual PassRefPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
|
| + virtual PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
|
| virtual bool operator==(const FilterOperation& o) const override
|
| {
|
| if (!isSameType(o))
|
| @@ -235,9 +239,9 @@ DEFINE_TYPE_CASTS(BasicComponentTransferFilterOperation, FilterOperation, op, is
|
|
|
| class PLATFORM_EXPORT BlurFilterOperation : public FilterOperation {
|
| public:
|
| - static PassRefPtr<BlurFilterOperation> create(const Length& stdDeviation)
|
| + static PassRefPtrWillBeRawPtr<BlurFilterOperation> create(const Length& stdDeviation)
|
| {
|
| - return adoptRef(new BlurFilterOperation(stdDeviation));
|
| + return adoptRefWillBeNoop(new BlurFilterOperation(stdDeviation));
|
| }
|
|
|
| const Length& stdDeviation() const { return m_stdDeviation; }
|
| @@ -247,7 +251,7 @@ public:
|
|
|
|
|
| private:
|
| - virtual PassRefPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
|
| + virtual PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
|
| virtual bool operator==(const FilterOperation& o) const override
|
| {
|
| if (!isSameType(o))
|
| @@ -269,9 +273,9 @@ DEFINE_FILTER_OPERATION_TYPE_CASTS(BlurFilterOperation, BLUR);
|
|
|
| class PLATFORM_EXPORT DropShadowFilterOperation : public FilterOperation {
|
| public:
|
| - static PassRefPtr<DropShadowFilterOperation> create(const IntPoint& location, int stdDeviation, Color color)
|
| + static PassRefPtrWillBeRawPtr<DropShadowFilterOperation> create(const IntPoint& location, int stdDeviation, Color color)
|
| {
|
| - return adoptRef(new DropShadowFilterOperation(location, stdDeviation, color));
|
| + return adoptRefWillBeNoop(new DropShadowFilterOperation(location, stdDeviation, color));
|
| }
|
|
|
| int x() const { return m_location.x(); }
|
| @@ -285,7 +289,7 @@ public:
|
|
|
|
|
| private:
|
| - virtual PassRefPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
|
| + virtual PassRefPtrWillBeRawPtr<FilterOperation> blend(const FilterOperation* from, double progress) const override;
|
| virtual bool operator==(const FilterOperation& o) const override
|
| {
|
| if (!isSameType(o))
|
|
|