15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (C) 1999 Antti Koivisto (koivisto@kde.org) 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2003, 2008, 2010 Apple Inc. All rights reserved. 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2011 Google Inc. All rights reserved. 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * This library is free software; you can redistribute it and/or 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modify it under the terms of the GNU Library General Public 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * License as published by the Free Software Foundation; either 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * version 2 of the License, or (at your option) any later version. 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * This library is distributed in the hope that it will be useful, 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Library General Public License for more details. 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * You should have received a copy of the GNU Library General Public License 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * along with this library; see the file COPYING.LIB. If not, write to 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Boston, MA 02110-1301, USA. 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifndef HTMLLinkElement_h 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define HTMLLinkElement_h 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/css/CSSStyleSheet.h" 288abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)#include "core/dom/DOMSettableTokenList.h" 2953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/dom/IconURL.h" 3009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "core/fetch/ResourceOwner.h" 3109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "core/fetch/StyleSheetResource.h" 32e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles)#include "core/fetch/StyleSheetResourceClient.h" 3353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/html/HTMLElement.h" 3453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/html/LinkRelAttribute.h" 355267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#include "core/html/LinkResource.h" 3653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/loader/LinkLoader.h" 3753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/loader/LinkLoaderClient.h" 385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 39c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 415267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)class DocumentFragment; 425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class HTMLLinkElement; 435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class KURL; 445267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)class LinkImport; 455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)template<typename T> class EventSender; 475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)typedef EventSender<HTMLLinkElement> LinkEventSender; 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 495267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)// 505267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)// LinkStyle handles dynaically change-able link resources, which is 515267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)// typically @rel="stylesheet". 525267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)// 535267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)// It could be @rel="shortcut icon" or soething else though. Each of 545267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)// types might better be handled by a separate class, but dynamically 555267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)// changing @rel makes it harder to move such a design so we are 565267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)// sticking current way so far. 575267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)// 5809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)class LinkStyle FINAL : public LinkResource, ResourceOwner<StyleSheetResource> { 59323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED; 6093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)public: 61323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) static PassOwnPtrWillBeRawPtr<LinkStyle> create(HTMLLinkElement* owner); 625267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 6393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) explicit LinkStyle(HTMLLinkElement* owner); 645267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) virtual ~LinkStyle(); 655267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 665267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) virtual Type type() const OVERRIDE { return Style; } 675267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) virtual void process() OVERRIDE; 685267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) virtual void ownerRemoved() OVERRIDE; 693c9e4aeaee9f9b0a9a814da07bcb33319c7ea363Ben Murdoch virtual bool hasLoaded() const OVERRIDE { return m_loadedSheet; } 70323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) virtual void trace(Visitor*) OVERRIDE; 7193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 7293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) void startLoadingDynamicSheet(); 7393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) void notifyLoadedSheetAndAllCriticalSubresources(bool errorOccurred); 7493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) bool sheetLoaded(); 7593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 7693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) void setDisabledState(bool); 7793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) void setSheetTitle(const String&); 7893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 7993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) bool styleSheetIsLoading() const; 8093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) bool hasSheet() const { return m_sheet; } 8193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) bool isDisabled() const { return m_disabledState == Disabled; } 8293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) bool isEnabledViaScript() const { return m_disabledState == EnabledViaScript; } 8393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) bool isUnset() const { return m_disabledState == Unset; } 8493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 8593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) CSSStyleSheet* sheet() const { return m_sheet.get(); } 8693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 8793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)private: 8809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) // From StyleSheetResourceClient 8909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setCSSStyleSheet(const String& href, const KURL& baseURL, const String& charset, const CSSStyleSheetResource*) OVERRIDE; 9093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 9193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) enum DisabledState { 9293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) Unset, 9393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) EnabledViaScript, 9493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) Disabled 9593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) }; 9693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 9793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) enum PendingSheetType { 9893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) None, 9993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) NonBlocking, 10093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) Blocking 10193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) }; 10293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 10393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) void clearSheet(); 10493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) void addPendingSheet(PendingSheetType); 105d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) void removePendingSheet(); 1068abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles) Document& document(); 10793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 108323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) RefPtrWillBeMember<CSSStyleSheet> m_sheet; 10993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) DisabledState m_disabledState; 11093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) PendingSheetType m_pendingSheetType; 11193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) bool m_loading; 11293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) bool m_firedLoad; 11393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) bool m_loadedSheet; 11493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)}; 11593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 11693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 11793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)class HTMLLinkElement FINAL : public HTMLElement, public LinkLoaderClient { 1187242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci DEFINE_WRAPPERTYPEINFO(); 1195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)public: 120323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) static PassRefPtrWillBeRawPtr<HTMLLinkElement> create(Document&, bool createdByParser); 1215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual ~HTMLLinkElement(); 1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) KURL href() const; 124a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) const AtomicString& rel() const; 12593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) String media() const { return m_media; } 12693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) String typeValue() const { return m_type; } 12793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) const LinkRelAttribute& relAttribute() const { return m_relAttribute; } 1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 129a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) const AtomicString& type() const; 1305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) IconType iconType() const; 1325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 13343e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) // the icon sizes as parsed from the HTML attribute 13443e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) const Vector<IntSize>& iconSizes() const; 1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 136d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) bool async() const; 137d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 1385267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) CSSStyleSheet* sheet() const { return linkStyle() ? linkStyle()->sheet() : 0; } 139521d96ec04ace82590870fb04353ec4f82bb150fTorne (Richard Coles) Document* import() const; 1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool styleSheetIsLoading() const; 1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 14309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) bool isImport() const { return linkImport(); } 1445267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) bool isDisabled() const { return linkStyle() && linkStyle()->isDisabled(); } 1455267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) bool isEnabledViaScript() const { return linkStyle() && linkStyle()->isEnabledViaScript(); } 146d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) void enableIfExitTransitionStyle(); 147d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DOMSettableTokenList* sizes() const; 1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void dispatchPendingEvent(LinkEventSender*); 1513c9e4aeaee9f9b0a9a814da07bcb33319c7ea363Ben Murdoch void scheduleEvent(); 15209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) void dispatchEventImmediately(); 1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static void dispatchPendingLoadEvents(); 1545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 15593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) // From LinkLoaderClient 15693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) virtual bool shouldLoadLink() OVERRIDE; 15793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 15893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) // For LinkStyle 15909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) bool loadLink(const String& type, const KURL&); 1605267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) bool isAlternate() const { return linkStyle()->isUnset() && m_relAttribute.isAlternate(); } 1615267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) bool shouldProcessStyle() { return linkResourceToProcess() && linkStyle(); } 16209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) bool isCreatedByParser() const { return m_createdByParser; } 16393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 16443e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) // Parse the icon size attribute into |iconSizes|, make this method public 16543e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) // visible for testing purpose. 16643e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) static void parseSizesAttribute(const AtomicString& value, Vector<IntSize>& iconSizes); 16743e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) 168323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) virtual void trace(Visitor*) OVERRIDE; 169323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 1705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)private: 171197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch virtual void attributeWillChange(const QualifiedName&, const AtomicString& oldValue, const AtomicString& newValue) OVERRIDE; 172926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE; 1735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1745267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) LinkStyle* linkStyle() const; 1755267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) LinkImport* linkImport() const; 1765267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) LinkResource* linkResourceToProcess(); 17793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 1785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void process(); 1795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static void processCallback(Node*); 1805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 18193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) // From Node and subclassses 1825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE; 1835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual void removedFrom(ContainerNode*) OVERRIDE; 18493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) virtual bool isURLAttribute(const Attribute&) const OVERRIDE; 18543e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) virtual bool hasLegalLinkAttribute(const QualifiedName&) const OVERRIDE; 18643e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) virtual const QualifiedName& subResourceAttributeName() const OVERRIDE; 18793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) virtual bool sheetLoaded() OVERRIDE; 18893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) virtual void notifyLoadedSheetAndAllCriticalSubresources(bool errorOccurred) OVERRIDE; 18993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) virtual void startLoadingDynamicSheet() OVERRIDE; 19009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void finishParsingChildren() OVERRIDE; 1915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 19293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) // From LinkLoaderClient 193926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) virtual void linkLoaded() OVERRIDE; 194926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) virtual void linkLoadingErrored() OVERRIDE; 195926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) virtual void didStartLinkPrerender() OVERRIDE; 196926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) virtual void didStopLinkPrerender() OVERRIDE; 197926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) virtual void didSendLoadForLinkPrerender() OVERRIDE; 198926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) virtual void didSendDOMContentLoadedForLinkPrerender() OVERRIDE; 1995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)private: 20151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) HTMLLinkElement(Document&, bool createdByParser); 2025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 203323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) OwnPtrWillBeMember<LinkResource> m_link; 2045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) LinkLoader m_linkLoader; 2055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) String m_type; 2075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) String m_media; 208323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) RefPtrWillBeMember<DOMSettableTokenList> m_sizes; 20943e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) Vector<IntSize> m_iconSizes; 2105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) LinkRelAttribute m_relAttribute; 21193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 2125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_createdByParser; 2135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_isInShadowTree; 2145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 2155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2167242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci} // namespace blink 2175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2187242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#endif // HTMLLinkElement_h 219