void StyleRuleImport::setCSSStyleSheet(const String& href, const KURL& baseURL, const String& charset, const CSSStyleSheetResource* cachedStyleSheet) { if (m_styleSheet) m_styleSheet->clearOwnerRule(); CSSParserContext context = m_parentStyleSheet ? m_parentStyleSheet->parserContext() : strictCSSParserContext(); context.setCharset(charset); Document* document = m_parentStyleSheet ? m_parentStyleSheet->singleOwnerDocument() : 0; if (!baseURL.isNull()) { context.setBaseURL(baseURL); if (document) context.setReferrer(Referrer(baseURL.strippedForUseAsReferrer(), document->referrerPolicy())); } m_styleSheet = StyleSheetContents::create(this, href, context); m_styleSheet->parseAuthorStyleSheet(cachedStyleSheet, document ? document->securityOrigin() : 0); m_loading = false; if (m_parentStyleSheet) { m_parentStyleSheet->notifyLoadedSheet(cachedStyleSheet); m_parentStyleSheet->checkLoaded(); } }
static String stripURLForUseInReport(Document* document, const KURL& url) { if (!url.isValid()) return String(); if (!url.isHierarchical() || url.protocolIs("file")) return url.protocol(); return document->securityOrigin()->canRequest(url) ? url.strippedForUseAsReferrer() : SecurityOrigin::create(url)->toString(); }