diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/css/CSSFontFaceSrcValue.cpp | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/css/CSSFontFaceSrcValue.cpp')
-rw-r--r-- | Source/WebCore/css/CSSFontFaceSrcValue.cpp | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/Source/WebCore/css/CSSFontFaceSrcValue.cpp b/Source/WebCore/css/CSSFontFaceSrcValue.cpp index 6e653567a..8c4be4f20 100644 --- a/Source/WebCore/css/CSSFontFaceSrcValue.cpp +++ b/Source/WebCore/css/CSSFontFaceSrcValue.cpp @@ -10,10 +10,10 @@ * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR @@ -41,14 +41,19 @@ namespace WebCore { #if ENABLE(SVG_FONTS) bool CSSFontFaceSrcValue::isSVGFontFaceSrc() const { - return equalIgnoringCase(m_format, "svg"); + return equalLettersIgnoringASCIICase(m_format, "svg"); +} + +bool CSSFontFaceSrcValue::isSVGFontTarget() const +{ + return isSVGFontFaceSrc() || svgFontFaceElement(); } #endif bool CSSFontFaceSrcValue::isSupportedFormat() const { // Normally we would just check the format, but in order to avoid conflicts with the old WinIE style of font-face, - // we will also check to see if the URL ends with .eot. If so, we'll go ahead and assume that we shouldn't load it. + // we will also check to see if the URL ends with .eot. If so, we'll assume that we shouldn't load it. if (m_format.isEmpty()) { // Check for .eot. if (!m_resource.startsWith("data:", false) && m_resource.endsWith(".eot", false)) @@ -80,26 +85,24 @@ String CSSFontFaceSrcValue::customCSSText() const return result.toString(); } -void CSSFontFaceSrcValue::addSubresourceStyleURLs(ListHashSet<URL>& urls, const StyleSheetContents* styleSheet) const -{ - if (!isLocal()) - addSubresourceURL(urls, styleSheet->completeURL(m_resource)); -} - -bool CSSFontFaceSrcValue::hasFailedOrCanceledSubresources() const +bool CSSFontFaceSrcValue::traverseSubresources(const std::function<bool (const CachedResource&)>& handler) const { if (!m_cachedFont) return false; - return m_cachedFont->loadFailedOrCanceled(); + return handler(*m_cachedFont); } -CachedFont* CSSFontFaceSrcValue::cachedFont(Document* document) +CachedFont* CSSFontFaceSrcValue::cachedFont(Document* document, bool isSVG, bool isInitiatingElementInUserAgentShadowTree) { - if (!m_cachedFont) { - CachedResourceRequest request(ResourceRequest(document->completeURL(m_resource))); - request.setInitiator(cachedResourceRequestInitiators().css); - m_cachedFont = document->cachedResourceLoader()->requestFont(request); - } + if (m_cachedFont) + return m_cachedFont.get(); + + ResourceLoaderOptions options = CachedResourceLoader::defaultCachedResourceOptions(); + options.contentSecurityPolicyImposition = isInitiatingElementInUserAgentShadowTree ? ContentSecurityPolicyImposition::SkipPolicyCheck : ContentSecurityPolicyImposition::DoPolicyCheck; + + CachedResourceRequest request(ResourceRequest(document->completeURL(m_resource)), options); + request.setInitiator(cachedResourceRequestInitiators().css); + m_cachedFont = document->cachedResourceLoader().requestFont(WTFMove(request), isSVG); return m_cachedFont.get(); } |