Chromium Code Reviews| Index: Source/core/css/CSSFontFaceSrcValue.cpp |
| diff --git a/Source/core/css/CSSFontFaceSrcValue.cpp b/Source/core/css/CSSFontFaceSrcValue.cpp |
| index 45eb768bd72bc920dd70ba61aef74087f4a50088..bb7c51f34c5cf6b1b0a004aa63efd1ab8eed8c62 100644 |
| --- a/Source/core/css/CSSFontFaceSrcValue.cpp |
| +++ b/Source/core/css/CSSFontFaceSrcValue.cpp |
| @@ -73,13 +73,17 @@ bool CSSFontFaceSrcValue::hasFailedOrCanceledSubresources() const |
| return m_fetched && m_fetched->loadFailedOrCanceled(); |
| } |
| -static bool shouldSetCrossOriginAccessControl(const KURL& resource) |
| +static void setCrossOriginAccessControl(FetchRequest& request, SecurityOrigin* securityOrigin) |
| { |
| // Local fonts are accessible from file: URLs even when |
| // allowFileAccessFromFileURLs is false. |
| - if (resource.isLocalFile()) |
| - return false; |
| - return true; |
| + if (request.url().isLocalFile()) |
| + return; |
| + |
| + bool sameOriginRequest = securityOrigin->canRequestNoSuborigin(request.url()); |
|
sof
2015/08/20 14:56:58
I see what this is based on, but should we rephras
Kunihiko Sakamoto
2015/08/21 01:37:06
Done.
|
| + request.setCrossOriginAccessControl( |
| + securityOrigin, sameOriginRequest ? AllowStoredCredentials : DoNotAllowStoredCredentials, |
| + ClientDidNotRequestCredentials); |
| } |
| FontResource* CSSFontFaceSrcValue::fetch(Document* document) |
| @@ -88,8 +92,7 @@ FontResource* CSSFontFaceSrcValue::fetch(Document* document) |
| FetchRequest request(ResourceRequest(document->completeURL(m_resource)), FetchInitiatorTypeNames::css); |
| request.setContentSecurityCheck(m_shouldCheckContentSecurityPolicy); |
| SecurityOrigin* securityOrigin = document->securityOrigin(); |
| - if (shouldSetCrossOriginAccessControl(request.url())) |
| - request.setCrossOriginAccessControl(securityOrigin, DoNotAllowStoredCredentials); |
| + setCrossOriginAccessControl(request, securityOrigin); |
| request.mutableResourceRequest().setHTTPReferrer(SecurityPolicy::generateReferrer(m_referrer.referrerPolicy, request.url(), m_referrer.referrer)); |
| m_fetched = FontResource::fetch(request, document->fetcher()); |
| } else { |