Index: third_party/WebKit/Source/core/fetch/Resource.cpp |
diff --git a/third_party/WebKit/Source/core/fetch/Resource.cpp b/third_party/WebKit/Source/core/fetch/Resource.cpp |
index 2898d9ecb29f0bd6a06055933ab2e551b9335be5..b06b5676cc551dccac449f3ffb90eaa52a20d807 100644 |
--- a/third_party/WebKit/Source/core/fetch/Resource.cpp |
+++ b/third_party/WebKit/Source/core/fetch/Resource.cpp |
@@ -44,6 +44,7 @@ |
#include "wtf/MathExtras.h" |
#include "wtf/StdLibExtras.h" |
#include "wtf/Vector.h" |
+#include "wtf/WeakPtr.h" |
#include "wtf/text/CString.h" |
using namespace WTF; |
@@ -147,6 +148,9 @@ Resource::Resource(const ResourceRequest& request, Type type) |
: m_resourceRequest(request) |
, m_responseTimestamp(currentTime()) |
, m_cancelTimer(this, &Resource::cancelTimerFired) |
+#if !ENABLE(OILPAN) |
+ , m_weakPtrFactory(this) |
+#endif |
, m_loadFinishTime(0) |
, m_identifier(0) |
, m_encodedSize(0) |
@@ -516,6 +520,15 @@ void Resource::clearCachedMetadata(CachedMetadataHandler::CacheType cacheType) |
Platform::current()->cacheMetadata(m_response.url(), m_response.responseTime(), 0, 0); |
} |
+WeakPtrWillBeRawPtr<Resource> Resource::asWeakPtr() |
+{ |
+#if ENABLE(OILPAN) |
+ return this; |
+#else |
+ return m_weakPtrFactory.createWeakPtr(); |
+#endif |
+} |
+ |
bool Resource::canDelete() const |
{ |
return !hasClients() && !m_loader && !m_preloadCount && hasRightHandleCountApartFromCache(0) |