| 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 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 #include "core/editing/htmlediting.h" | 75 #include "core/editing/htmlediting.h" |
| 76 #include "core/editing/markup.h" | 76 #include "core/editing/markup.h" |
| 77 #include "core/events/EventDispatcher.h" | 77 #include "core/events/EventDispatcher.h" |
| 78 #include "core/events/FocusEvent.h" | 78 #include "core/events/FocusEvent.h" |
| 79 #include "core/frame/FrameView.h" | 79 #include "core/frame/FrameView.h" |
| 80 #include "core/frame/LocalFrame.h" | 80 #include "core/frame/LocalFrame.h" |
| 81 #include "core/frame/Settings.h" | 81 #include "core/frame/Settings.h" |
| 82 #include "core/frame/UseCounter.h" | 82 #include "core/frame/UseCounter.h" |
| 83 #include "core/frame/csp/ContentSecurityPolicy.h" | 83 #include "core/frame/csp/ContentSecurityPolicy.h" |
| 84 #include "core/html/ClassList.h" | 84 #include "core/html/ClassList.h" |
| 85 #include "core/html/HTMLCanvasElement.h" |
| 85 #include "core/html/HTMLCollection.h" | 86 #include "core/html/HTMLCollection.h" |
| 86 #include "core/html/HTMLDocument.h" | 87 #include "core/html/HTMLDocument.h" |
| 87 #include "core/html/HTMLElement.h" | 88 #include "core/html/HTMLElement.h" |
| 88 #include "core/html/HTMLFormControlsCollection.h" | 89 #include "core/html/HTMLFormControlsCollection.h" |
| 89 #include "core/html/HTMLFrameElementBase.h" | 90 #include "core/html/HTMLFrameElementBase.h" |
| 90 #include "core/html/HTMLFrameOwnerElement.h" | 91 #include "core/html/HTMLFrameOwnerElement.h" |
| 91 #include "core/html/HTMLLabelElement.h" | 92 #include "core/html/HTMLLabelElement.h" |
| 92 #include "core/html/HTMLOptionsCollection.h" | 93 #include "core/html/HTMLOptionsCollection.h" |
| 93 #include "core/html/HTMLTableRowsCollection.h" | 94 #include "core/html/HTMLTableRowsCollection.h" |
| 94 #include "core/html/HTMLTemplateElement.h" | 95 #include "core/html/HTMLTemplateElement.h" |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 short Element::tabIndex() const | 218 short Element::tabIndex() const |
| 218 { | 219 { |
| 219 return hasRareData() ? elementRareData()->tabIndex() : 0; | 220 return hasRareData() ? elementRareData()->tabIndex() : 0; |
| 220 } | 221 } |
| 221 | 222 |
| 222 bool Element::rendererIsFocusable() const | 223 bool Element::rendererIsFocusable() const |
| 223 { | 224 { |
| 224 // Elements in canvas fallback content are not rendered, but they are allowe
d to be | 225 // Elements in canvas fallback content are not rendered, but they are allowe
d to be |
| 225 // focusable as long as their canvas is displayed and visible. | 226 // focusable as long as their canvas is displayed and visible. |
| 226 if (isInCanvasSubtree()) { | 227 if (isInCanvasSubtree()) { |
| 227 const Element* e = this; | 228 const HTMLCanvasElement* canvas = Traversal<HTMLCanvasElement>::firstAnc
estorOrSelf(*this); |
| 228 while (e && !e->hasLocalName(canvasTag)) | 229 ASSERT(canvas); |
| 229 e = e->parentElement(); | 230 return canvas->renderer() && canvas->renderer()->style()->visibility() =
= VISIBLE; |
| 230 ASSERT(e); | |
| 231 return e->renderer() && e->renderer()->style()->visibility() == VISIBLE; | |
| 232 } | 231 } |
| 233 | 232 |
| 234 // FIXME: These asserts should be in Node::isFocusable, but there are some | 233 // FIXME: These asserts should be in Node::isFocusable, but there are some |
| 235 // callsites like Document::setFocusedElement that would currently fail on | 234 // callsites like Document::setFocusedElement that would currently fail on |
| 236 // them. See crbug.com/251163 | 235 // them. See crbug.com/251163 |
| 237 if (!renderer()) { | 236 if (!renderer()) { |
| 238 // We can't just use needsStyleRecalc() because if the node is in a | 237 // We can't just use needsStyleRecalc() because if the node is in a |
| 239 // display:none tree it might say it needs style recalc but the whole | 238 // display:none tree it might say it needs style recalc but the whole |
| 240 // document is actually up to date. | 239 // document is actually up to date. |
| 241 ASSERT(!document().childNeedsStyleRecalc()); | 240 ASSERT(!document().childNeedsStyleRecalc()); |
| (...skipping 3126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3368 { | 3367 { |
| 3369 #if ENABLE(OILPAN) | 3368 #if ENABLE(OILPAN) |
| 3370 if (hasRareData()) | 3369 if (hasRareData()) |
| 3371 visitor->trace(elementRareData()); | 3370 visitor->trace(elementRareData()); |
| 3372 visitor->trace(m_elementData); | 3371 visitor->trace(m_elementData); |
| 3373 #endif | 3372 #endif |
| 3374 ContainerNode::trace(visitor); | 3373 ContainerNode::trace(visitor); |
| 3375 } | 3374 } |
| 3376 | 3375 |
| 3377 } // namespace WebCore | 3376 } // namespace WebCore |
| OLD | NEW |