Index: third_party/WebKit/Source/core/svg/graphics/SVGImage.h |
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImage.h b/third_party/WebKit/Source/core/svg/graphics/SVGImage.h |
index 46a897a883a93a9a50b6ad0184e174685204dcfe..2b467e368d59b8180471ff43cc08152b19f79d3c 100644 |
--- a/third_party/WebKit/Source/core/svg/graphics/SVGImage.h |
+++ b/third_party/WebKit/Source/core/svg/graphics/SVGImage.h |
@@ -33,6 +33,7 @@ |
#include "platform/heap/Handle.h" |
#include "platform/weborigin/KURL.h" |
#include "platform/wtf/Allocator.h" |
+#include "platform/wtf/WeakPtr.h" |
#include "third_party/skia/include/core/SkRefCnt.h" |
namespace blink { |
@@ -183,6 +184,14 @@ class CORE_EXPORT SVGImage final : public Image { |
void ScheduleTimelineRewind(); |
void FlushPendingTimelineRewind(); |
+ void LoadCompleted(); |
+ |
+ WTF::WeakPtr<SVGImage> AsWeakPtr() { |
+ return weak_ptr_factory_.CreateWeakPtr(); |
+ } |
+ |
+ class SVGImageLocalFrameClient; |
+ |
Persistent<SVGImageChromeClient> chrome_client_; |
Persistent<Page> page_; |
std::unique_ptr<PaintController> paint_controller_; |
@@ -194,6 +203,17 @@ class CORE_EXPORT SVGImage final : public Image { |
// the "concrete object size". For more, see: SVGImageForContainer.h |
IntSize intrinsic_size_; |
bool has_pending_timeline_rewind_; |
+ |
+ enum LoadState { |
+ kDataChangedNotStarted, |
+ kInDataChanged, |
+ kWaitingForAsyncLoadCompletion, |
+ kLoadCompleted, |
+ }; |
+ |
+ LoadState load_state_ = kDataChangedNotStarted; |
+ |
+ WTF::WeakPtrFactory<SVGImage> weak_ptr_factory_; |
}; |
DEFINE_IMAGE_TYPE_CASTS(SVGImage); |