Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Unified Diff: third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.cpp

Issue 1667843003: Make Resource RefCountedWillBeGarbageCollectedFinalized, attempt #2 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix known issues Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.cpp
diff --git a/third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.cpp b/third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.cpp
index 2244957d6d2205d5a106d4647aade6816dcbb6f5..251590cad96c43448371c262e1471ec4902598d8 100644
--- a/third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.cpp
+++ b/third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.cpp
@@ -72,7 +72,7 @@ String CSSFontFaceSrcValue::customCSSText() const
bool CSSFontFaceSrcValue::hasFailedOrCanceledSubresources() const
{
- return m_fetched && m_fetched->loadFailedOrCanceled();
+ return m_fetched && m_fetched->resource()->loadFailedOrCanceled();
}
static void setCrossOriginAccessControl(FetchRequest& request, SecurityOrigin* securityOrigin)
@@ -93,13 +93,15 @@ FontResource* CSSFontFaceSrcValue::fetch(Document* document)
SecurityOrigin* securityOrigin = document->securityOrigin();
setCrossOriginAccessControl(request, securityOrigin);
request.mutableResourceRequest().setHTTPReferrer(SecurityPolicy::generateReferrer(m_referrer.referrerPolicy, request.url(), m_referrer.referrer));
- m_fetched = FontResource::fetch(request, document->fetcher());
+ RefPtrWillBeRawPtr<FontResource> resource = FontResource::fetch(request, document->fetcher());
Nate Chapin 2016/02/04 23:24:38 This fixes https://code.google.com/p/chromium/issu
+ if (resource)
+ m_fetched = FontResourceHelper::create(resource.release());
} else {
// FIXME: CSSFontFaceSrcValue::fetch is invoked when @font-face rule
// is processed by StyleResolver / StyleEngine.
restoreCachedResourceIfNeeded(document);
}
- return m_fetched.get();
+ return m_fetched->resource();
haraken 2016/02/04 23:56:30 With the above fix, m_fetched can be null here. Is
Nate Chapin 2016/02/06 00:34:06 Yep. Fixed.
}
void CSSFontFaceSrcValue::restoreCachedResourceIfNeeded(Document* document)
@@ -113,9 +115,9 @@ void CSSFontFaceSrcValue::restoreCachedResourceIfNeeded(Document* document)
FetchRequest request(ResourceRequest(resourceURL), FetchInitiatorTypeNames::css);
request.setContentSecurityCheck(m_shouldCheckContentSecurityPolicy);
- MixedContentChecker::shouldBlockFetch(document->frame(), m_fetched->lastResourceRequest(),
- m_fetched->lastResourceRequest().url(), MixedContentChecker::SendReport);
- document->fetcher()->requestLoadStarted(m_fetched.get(), request, ResourceFetcher::ResourceLoadingFromCache);
+ MixedContentChecker::shouldBlockFetch(document->frame(), m_fetched->resource()->lastResourceRequest(),
+ m_fetched->resource()->lastResourceRequest().url(), MixedContentChecker::SendReport);
+ document->fetcher()->requestLoadStarted(m_fetched->resource(), request, ResourceFetcher::ResourceLoadingFromCache);
}
bool CSSFontFaceSrcValue::equals(const CSSFontFaceSrcValue& other) const

Powered by Google App Engine
This is Rietveld 408576698