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)) |