| Index: third_party/WebKit/Source/core/html/HTMLLinkElement.cpp
|
| diff --git a/third_party/WebKit/Source/core/html/HTMLLinkElement.cpp b/third_party/WebKit/Source/core/html/HTMLLinkElement.cpp
|
| index 06a8129631ec454bb9090660d522cbdf78bc5917..726c1d945bddfb5e124a7c25e38536e3fcd46455 100644
|
| --- a/third_party/WebKit/Source/core/html/HTMLLinkElement.cpp
|
| +++ b/third_party/WebKit/Source/core/html/HTMLLinkElement.cpp
|
| @@ -50,7 +50,6 @@ using namespace HTMLNames;
|
| inline HTMLLinkElement::HTMLLinkElement(Document& document,
|
| bool createdByParser)
|
| : HTMLElement(linkTag, document),
|
| - m_linkLoader(LinkLoader::create(this)),
|
| m_sizes(DOMTokenList::create(this)),
|
| m_relList(this, RelList::create(this)),
|
| m_createdByParser(createdByParser) {}
|
| @@ -110,11 +109,26 @@ bool HTMLLinkElement::shouldLoadLink() {
|
| return isInDocumentTree() || (isConnected() && m_relAttribute.isStyleSheet());
|
| }
|
|
|
| +FetchRequest HTMLLinkElement::createFetchRequest() const {
|
| + AtomicString charset = getAttribute(charsetAttr);
|
| + if (charset.isEmpty() && document().frame())
|
| + charset = document().characterSet();
|
| +
|
| + FetchRequest request(ResourceRequest(document().completeURL(
|
| + getNonEmptyURLAttribute(hrefAttr))),
|
| + localName(), charset);
|
| + request.setContentSecurityPolicyNonce(fastGetAttribute(HTMLNames::nonceAttr));
|
| + return request;
|
| +}
|
| +
|
| bool HTMLLinkElement::loadLink(const String& type,
|
| const String& as,
|
| const String& media,
|
| ReferrerPolicy referrerPolicy,
|
| const KURL& url) {
|
| + if (!m_linkLoader)
|
| + m_linkLoader = LinkLoader::create(this);
|
| +
|
| return m_linkLoader->loadLink(
|
| m_relAttribute,
|
| crossOriginAttributeValue(fastGetAttribute(HTMLNames::crossoriginAttr)),
|
| @@ -210,7 +224,8 @@ void HTMLLinkElement::removedFrom(ContainerNode* insertionPoint) {
|
| if (!insertionPoint->isConnected())
|
| return;
|
|
|
| - m_linkLoader->released();
|
| + if (m_linkLoader)
|
| + m_linkLoader->released();
|
|
|
| if (!wasConnected) {
|
| DCHECK(!linkStyle() || !linkStyle()->hasSheet());
|
|
|