CSSParserContext.cpp [plain text]
#include "config.h"
#include "CSSParserContext.h"
#include "Document.h"
#include "Page.h"
#include "RuntimeEnabledFeatures.h"
#include "Settings.h"
#include <wtf/NeverDestroyed.h>
namespace WebCore {
const CSSParserContext& strictCSSParserContext()
{
static NeverDestroyed<CSSParserContext> strictContext(HTMLStandardMode);
return strictContext;
}
CSSParserContext::CSSParserContext(CSSParserMode mode, const URL& baseURL)
: baseURL(baseURL)
, mode(mode)
{
#if PLATFORM(IOS_FAMILY)
needsSiteSpecificQuirks = true;
#endif
}
CSSParserContext::CSSParserContext(const Document& document, const URL& sheetBaseURL, const String& charset)
: baseURL(sheetBaseURL.isNull() ? document.baseURL() : sheetBaseURL)
, charset(charset)
, mode(document.inQuirksMode() ? HTMLQuirksMode : HTMLStandardMode)
, isHTMLDocument(document.isHTMLDocument())
, hasDocumentSecurityOrigin(sheetBaseURL.isNull() || document.securityOrigin().canRequest(baseURL))
{
needsSiteSpecificQuirks = document.settings().needsSiteSpecificQuirks();
enforcesCSSMIMETypeInNoQuirksMode = document.settings().enforceCSSMIMETypeInNoQuirksMode();
useLegacyBackgroundSizeShorthandBehavior = document.settings().useLegacyBackgroundSizeShorthandBehavior();
#if ENABLE(TEXT_AUTOSIZING)
textAutosizingEnabled = document.settings().textAutosizingEnabled();
#endif
springTimingFunctionEnabled = document.settings().springTimingFunctionEnabled();
constantPropertiesEnabled = document.settings().constantPropertiesEnabled();
colorFilterEnabled = document.settings().colorFilterEnabled();
#if ENABLE(ATTACHMENT_ELEMENT)
attachmentEnabled = RuntimeEnabledFeatures::sharedFeatures().attachmentElementEnabled();
#endif
deferredCSSParserEnabled = document.settings().deferredCSSParserEnabled();
useSystemAppearance = document.page() ? document.page()->useSystemAppearance() : false;
#if PLATFORM(IOS_FAMILY)
needsSiteSpecificQuirks = true;
#endif
}
bool operator==(const CSSParserContext& a, const CSSParserContext& b)
{
return a.baseURL == b.baseURL
&& a.charset == b.charset
&& a.mode == b.mode
&& a.isHTMLDocument == b.isHTMLDocument
#if ENABLE(TEXT_AUTOSIZING)
&& a.textAutosizingEnabled == b.textAutosizingEnabled
#endif
&& a.needsSiteSpecificQuirks == b.needsSiteSpecificQuirks
&& a.enforcesCSSMIMETypeInNoQuirksMode == b.enforcesCSSMIMETypeInNoQuirksMode
&& a.useLegacyBackgroundSizeShorthandBehavior == b.useLegacyBackgroundSizeShorthandBehavior
&& a.springTimingFunctionEnabled == b.springTimingFunctionEnabled
&& a.constantPropertiesEnabled == b.constantPropertiesEnabled
&& a.colorFilterEnabled == b.colorFilterEnabled
#if ENABLE(ATTACHMENT_ELEMENT)
&& a.attachmentEnabled == b.attachmentEnabled
#endif
&& a.deferredCSSParserEnabled == b.deferredCSSParserEnabled
&& a.hasDocumentSecurityOrigin == b.hasDocumentSecurityOrigin
&& a.useSystemAppearance == b.useSystemAppearance;
}
}