| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. | 5 * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. |
| 6 * Copyright (C) 2009 Rob Buis (rwlbuis@gmail.com) | 6 * Copyright (C) 2009 Rob Buis (rwlbuis@gmail.com) |
| 7 * Copyright (C) 2011 Google Inc. All rights reserved. | 7 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 8 * | 8 * |
| 9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
| 10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 void HTMLLinkElement::parseAttribute(const QualifiedName& name, const AtomicStri
ng& value) | 165 void HTMLLinkElement::parseAttribute(const QualifiedName& name, const AtomicStri
ng& value) |
| 166 { | 166 { |
| 167 if (name == relAttr) { | 167 if (name == relAttr) { |
| 168 m_relAttribute = LinkRelAttribute(value); | 168 m_relAttribute = LinkRelAttribute(value); |
| 169 process(); | 169 process(); |
| 170 } else if (name == hrefAttr) { | 170 } else if (name == hrefAttr) { |
| 171 process(); | 171 process(); |
| 172 } else if (name == typeAttr) { | 172 } else if (name == typeAttr) { |
| 173 m_type = value; | 173 m_type = value; |
| 174 process(); | 174 process(); |
| 175 } else if (name == asAttr) { |
| 176 m_as = value; |
| 177 process(); |
| 175 } else if (name == sizesAttr) { | 178 } else if (name == sizesAttr) { |
| 176 m_sizes->setValue(value); | 179 m_sizes->setValue(value); |
| 177 parseSizesAttribute(value, m_iconSizes); | 180 parseSizesAttribute(value, m_iconSizes); |
| 178 process(); | 181 process(); |
| 179 } else if (name == mediaAttr) { | 182 } else if (name == mediaAttr) { |
| 180 m_media = value.lower(); | 183 m_media = value.lower(); |
| 181 process(); | 184 process(); |
| 182 } else if (name == disabledAttr) { | 185 } else if (name == disabledAttr) { |
| 183 if (LinkStyle* link = linkStyle()) | 186 if (LinkStyle* link = linkStyle()) |
| 184 link->setDisabledState(!value.isNull()); | 187 link->setDisabledState(!value.isNull()); |
| 185 } else { | 188 } else { |
| 186 if (name == titleAttr) { | 189 if (name == titleAttr) { |
| 187 if (LinkStyle* link = linkStyle()) | 190 if (LinkStyle* link = linkStyle()) |
| 188 link->setSheetTitle(value); | 191 link->setSheetTitle(value); |
| 189 } | 192 } |
| 190 | 193 |
| 191 HTMLElement::parseAttribute(name, value); | 194 HTMLElement::parseAttribute(name, value); |
| 192 } | 195 } |
| 193 } | 196 } |
| 194 | 197 |
| 195 bool HTMLLinkElement::shouldLoadLink() | 198 bool HTMLLinkElement::shouldLoadLink() |
| 196 { | 199 { |
| 197 return inDocument(); | 200 return inDocument(); |
| 198 } | 201 } |
| 199 | 202 |
| 200 bool HTMLLinkElement::loadLink(const String& type, const KURL& url) | 203 bool HTMLLinkElement::loadLink(const String& type, const String& as, const KURL&
url) |
| 201 { | 204 { |
| 202 return m_linkLoader.loadLink(m_relAttribute, fastGetAttribute(HTMLNames::cro
ssoriginAttr), type, url, document()); | 205 return m_linkLoader.loadLink(m_relAttribute, fastGetAttribute(HTMLNames::cro
ssoriginAttr), type, as, url, document()); |
| 203 } | 206 } |
| 204 | 207 |
| 205 LinkResource* HTMLLinkElement::linkResourceToProcess() | 208 LinkResource* HTMLLinkElement::linkResourceToProcess() |
| 206 { | 209 { |
| 207 bool visible = inDocument() && !m_isInShadowTree; | 210 bool visible = inDocument() && !m_isInShadowTree; |
| 208 if (!visible) { | 211 if (!visible) { |
| 209 ASSERT(!linkStyle() || !linkStyle()->hasSheet()); | 212 ASSERT(!linkStyle() || !linkStyle()->hasSheet()); |
| 210 return nullptr; | 213 return nullptr; |
| 211 } | 214 } |
| 212 | 215 |
| (...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 683 // Only origins that are script accessible to it may access the styleshe
et's rules. | 686 // Only origins that are script accessible to it may access the styleshe
et's rules. |
| 684 sheet->setAllowRuleAccessFromOrigin(m_owner->document().securityOrigin()
); | 687 sheet->setAllowRuleAccessFromOrigin(m_owner->document().securityOrigin()
); |
| 685 } | 688 } |
| 686 m_fetchFollowingCORS = false; | 689 m_fetchFollowingCORS = false; |
| 687 } | 690 } |
| 688 | 691 |
| 689 void LinkStyle::process() | 692 void LinkStyle::process() |
| 690 { | 693 { |
| 691 ASSERT(m_owner->shouldProcessStyle()); | 694 ASSERT(m_owner->shouldProcessStyle()); |
| 692 String type = m_owner->typeValue().lower(); | 695 String type = m_owner->typeValue().lower(); |
| 696 String as = m_owner->asValue().lower(); |
| 693 LinkRequestBuilder builder(m_owner); | 697 LinkRequestBuilder builder(m_owner); |
| 694 | 698 |
| 695 if (m_owner->relAttribute().iconType() != InvalidIcon && builder.url().isVal
id() && !builder.url().isEmpty()) { | 699 if (m_owner->relAttribute().iconType() != InvalidIcon && builder.url().isVal
id() && !builder.url().isEmpty()) { |
| 696 if (!m_owner->shouldLoadLink()) | 700 if (!m_owner->shouldLoadLink()) |
| 697 return; | 701 return; |
| 698 if (!document().securityOrigin()->canDisplay(builder.url())) | 702 if (!document().securityOrigin()->canDisplay(builder.url())) |
| 699 return; | 703 return; |
| 700 if (!document().contentSecurityPolicy()->allowImageFromSource(builder.ur
l())) | 704 if (!document().contentSecurityPolicy()->allowImageFromSource(builder.ur
l())) |
| 701 return; | 705 return; |
| 702 if (document().frame() && document().frame()->loader().client()) | 706 if (document().frame() && document().frame()->loader().client()) |
| 703 document().frame()->loader().client()->dispatchDidChangeIcons(m_owne
r->relAttribute().iconType()); | 707 document().frame()->loader().client()->dispatchDidChangeIcons(m_owne
r->relAttribute().iconType()); |
| 704 } | 708 } |
| 705 | 709 |
| 706 if (!m_owner->loadLink(type, builder.url())) | 710 if (!m_owner->loadLink(type, as, builder.url())) |
| 707 return; | 711 return; |
| 708 | 712 |
| 709 if ((m_disabledState != Disabled) && (m_owner->relAttribute().isStyleSheet()
|| m_owner->relAttribute().isTransitionExitingStylesheet()) | 713 if ((m_disabledState != Disabled) && (m_owner->relAttribute().isStyleSheet()
|| m_owner->relAttribute().isTransitionExitingStylesheet()) |
| 710 && shouldLoadResource() && builder.url().isValid()) { | 714 && shouldLoadResource() && builder.url().isValid()) { |
| 711 | 715 |
| 712 if (resource()) { | 716 if (resource()) { |
| 713 removePendingSheet(); | 717 removePendingSheet(); |
| 714 clearResource(); | 718 clearResource(); |
| 715 } | 719 } |
| 716 | 720 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 771 removePendingSheet(); | 775 removePendingSheet(); |
| 772 } | 776 } |
| 773 | 777 |
| 774 DEFINE_TRACE(LinkStyle) | 778 DEFINE_TRACE(LinkStyle) |
| 775 { | 779 { |
| 776 visitor->trace(m_sheet); | 780 visitor->trace(m_sheet); |
| 777 LinkResource::trace(visitor); | 781 LinkResource::trace(visitor); |
| 778 } | 782 } |
| 779 | 783 |
| 780 } // namespace blink | 784 } // namespace blink |
| OLD | NEW |