return continueLoad;
}
+bool HTMLLinkElement::loadLink(const String& type, const KURL& url)
+{
+ return m_linkLoader.loadLink(m_relAttribute, fastGetAttribute(HTMLNames::crossoriginAttr), type, url, document());
+}
+
LinkResource* HTMLLinkElement::linkResourceToProcess()
{
bool visible = inDocument() && !m_isInShadowTree;
// Completing the sheet load may cause scripts to execute.
RefPtr<Node> protector(m_owner);
- CSSParserContext parserContext(m_owner->document(), baseURL, charset);
+ CSSParserContext parserContext(m_owner->document(), 0, baseURL, charset);
if (RefPtr<StyleSheetContents> restoredSheet = const_cast<CSSStyleSheetResource*>(cachedStyleSheet)->restoreParsedStyleSheet(parserContext)) {
ASSERT(restoredSheet->isCacheable());
if (!m_owner->shouldLoadLink())
return;
- Frame* frame = loadingFrame();
m_loading = true;
bool mediaQueryMatches = true;
if (!m_owner->media().isEmpty()) {
- RefPtr<RenderStyle> documentStyle = StyleResolver::styleForDocument(document());
- RefPtr<MediaQuerySet> media = MediaQuerySet::create(m_owner->media());
- MediaQueryEvaluator evaluator(frame->view()->mediaType(), frame, documentStyle.get());
- mediaQueryMatches = evaluator.eval(media.get());
+ Frame* frame = loadingFrame();
+ if (Document* document = loadingFrame()->document()) {
+ RefPtr<RenderStyle> documentStyle = StyleResolver::styleForDocument(*document);
+ RefPtr<MediaQuerySet> media = MediaQuerySet::create(m_owner->media());
+ MediaQueryEvaluator evaluator(frame->view()->mediaType(), frame, documentStyle.get());
+ mediaQueryMatches = evaluator.eval(media.get());
+ }
}
// Don't hold up render tree construction and script execution on stylesheets
// Load stylesheets that are not needed for the rendering immediately with low priority.
FetchRequest request = builder.build(blocking);
+ AtomicString crossOriginMode = m_owner->fastGetAttribute(HTMLNames::crossoriginAttr);
+ if (!crossOriginMode.isNull()) {
+ StoredCredentials allowCredentials = equalIgnoringCase(crossOriginMode, "use-credentials") ? AllowStoredCredentials : DoNotAllowStoredCredentials;
+ request.setCrossOriginAccessControl(document().securityOrigin(), allowCredentials);
+ }
setResource(document().fetcher()->fetchCSSStyleSheet(request));
if (!resource()) {