| 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 Peter Kelly (pmk@post.com) | 4 * (C) 2001 Peter Kelly (pmk@post.com) |
| 5 * (C) 2001 Dirk Mueller (mueller@kde.org) | 5 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 6 * (C) 2007 David Smith (catfish.man@gmail.com) | 6 * (C) 2007 David Smith (catfish.man@gmail.com) |
| 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc.
All rights reserved. | 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc.
All rights reserved. |
| 8 * (C) 2007 Eric Seidel (eric@webkit.org) | 8 * (C) 2007 Eric Seidel (eric@webkit.org) |
| 9 * | 9 * |
| 10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
| (...skipping 3196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3207 | 3207 |
| 3208 if (!newId.isEmpty()) | 3208 if (!newId.isEmpty()) |
| 3209 toHTMLDocument(document()).addExtraNamedItem(newId); | 3209 toHTMLDocument(document()).addExtraNamedItem(newId); |
| 3210 } | 3210 } |
| 3211 | 3211 |
| 3212 PassRefPtr<HTMLCollection> Element::ensureCachedHTMLCollection(CollectionType ty
pe) | 3212 PassRefPtr<HTMLCollection> Element::ensureCachedHTMLCollection(CollectionType ty
pe) |
| 3213 { | 3213 { |
| 3214 if (HTMLCollection* collection = cachedHTMLCollection(type)) | 3214 if (HTMLCollection* collection = cachedHTMLCollection(type)) |
| 3215 return collection; | 3215 return collection; |
| 3216 | 3216 |
| 3217 RefPtr<HTMLCollection> collection; | |
| 3218 if (type == TableRows) { | 3217 if (type == TableRows) { |
| 3219 ASSERT(hasTagName(tableTag)); | 3218 ASSERT(hasTagName(tableTag)); |
| 3220 return ensureRareData().ensureNodeLists().addCacheWithAtomicName<HTMLTab
leRowsCollection>(this, type); | 3219 return ensureRareData().ensureNodeLists().addCache<HTMLTableRowsCollecti
on>(this, type); |
| 3221 } else if (type == SelectOptions) { | 3220 } else if (type == SelectOptions) { |
| 3222 ASSERT(hasTagName(selectTag)); | 3221 ASSERT(hasTagName(selectTag)); |
| 3223 return ensureRareData().ensureNodeLists().addCacheWithAtomicName<HTMLOpt
ionsCollection>(this, type); | 3222 return ensureRareData().ensureNodeLists().addCache<HTMLOptionsCollection
>(this, type); |
| 3224 } else if (type == FormControls) { | 3223 } else if (type == FormControls) { |
| 3225 ASSERT(hasTagName(formTag) || hasTagName(fieldsetTag)); | 3224 ASSERT(hasTagName(formTag) || hasTagName(fieldsetTag)); |
| 3226 return ensureRareData().ensureNodeLists().addCacheWithAtomicName<HTMLFor
mControlsCollection>(this, type); | 3225 return ensureRareData().ensureNodeLists().addCache<HTMLFormControlsColle
ction>(this, type); |
| 3227 } | 3226 } |
| 3228 return ensureRareData().ensureNodeLists().addCacheWithAtomicName<HTMLCollect
ion>(this, type); | 3227 return ensureRareData().ensureNodeLists().addCache<HTMLCollection>(this, typ
e); |
| 3229 } | 3228 } |
| 3230 | 3229 |
| 3231 static void scheduleLayerUpdateCallback(Node* node) | 3230 static void scheduleLayerUpdateCallback(Node* node) |
| 3232 { | 3231 { |
| 3233 // Notify the renderer even is the styles are identical since it may need to | 3232 // Notify the renderer even is the styles are identical since it may need to |
| 3234 // create or destroy a RenderLayer. | 3233 // create or destroy a RenderLayer. |
| 3235 node->setNeedsStyleRecalc(LocalStyleChange, StyleChangeFromRenderer); | 3234 node->setNeedsStyleRecalc(LocalStyleChange, StyleChangeFromRenderer); |
| 3236 } | 3235 } |
| 3237 | 3236 |
| 3238 void Element::scheduleLayerUpdate() | 3237 void Element::scheduleLayerUpdate() |
| 3239 { | 3238 { |
| 3240 if (document().inStyleRecalc()) | 3239 if (document().inStyleRecalc()) |
| 3241 PostAttachCallbacks::queueCallback(scheduleLayerUpdateCallback, this); | 3240 PostAttachCallbacks::queueCallback(scheduleLayerUpdateCallback, this); |
| 3242 else | 3241 else |
| 3243 scheduleLayerUpdateCallback(this); | 3242 scheduleLayerUpdateCallback(this); |
| 3244 } | 3243 } |
| 3245 | 3244 |
| 3246 HTMLCollection* Element::cachedHTMLCollection(CollectionType type) | 3245 HTMLCollection* Element::cachedHTMLCollection(CollectionType type) |
| 3247 { | 3246 { |
| 3248 return hasRareData() && rareData()->nodeLists() ? rareData()->nodeLists()->c
acheWithAtomicName<HTMLCollection>(type) : 0; | 3247 return hasRareData() && rareData()->nodeLists() ? rareData()->nodeLists()->c
ached<HTMLCollection>(type) : 0; |
| 3249 } | 3248 } |
| 3250 | 3249 |
| 3251 IntSize Element::savedLayerScrollOffset() const | 3250 IntSize Element::savedLayerScrollOffset() const |
| 3252 { | 3251 { |
| 3253 return hasRareData() ? elementRareData()->savedLayerScrollOffset() : IntSize
(); | 3252 return hasRareData() ? elementRareData()->savedLayerScrollOffset() : IntSize
(); |
| 3254 } | 3253 } |
| 3255 | 3254 |
| 3256 void Element::setSavedLayerScrollOffset(const IntSize& size) | 3255 void Element::setSavedLayerScrollOffset(const IntSize& size) |
| 3257 { | 3256 { |
| 3258 if (size.isZero() && !hasRareData()) | 3257 if (size.isZero() && !hasRareData()) |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3626 // Before doing so, we need to resolve issues in HTMLSelectElement::recalcLi
stItems | 3625 // Before doing so, we need to resolve issues in HTMLSelectElement::recalcLi
stItems |
| 3627 // and RenderMenuList::setText. See also https://bugs.webkit.org/show_bug.cg
i?id=88405 | 3626 // and RenderMenuList::setText. See also https://bugs.webkit.org/show_bug.cg
i?id=88405 |
| 3628 if (hasTagName(optionTag) || hasTagName(optgroupTag)) | 3627 if (hasTagName(optionTag) || hasTagName(optgroupTag)) |
| 3629 return false; | 3628 return false; |
| 3630 if (FullscreenElementStack::isActiveFullScreenElement(this)) | 3629 if (FullscreenElementStack::isActiveFullScreenElement(this)) |
| 3631 return false; | 3630 return false; |
| 3632 return true; | 3631 return true; |
| 3633 } | 3632 } |
| 3634 | 3633 |
| 3635 } // namespace WebCore | 3634 } // namespace WebCore |
| OLD | NEW |