Chromium Code Reviews| Index: Source/core/dom/NodeRenderingContext.cpp |
| diff --git a/Source/core/dom/NodeRenderingContext.cpp b/Source/core/dom/NodeRenderingContext.cpp |
| index 1533f0accef6fcc060669ea4d3e3c6c2d8793282..7074a51f77b9fc3fd8961ebc785ce412bfd5a1e4 100644 |
| --- a/Source/core/dom/NodeRenderingContext.cpp |
| +++ b/Source/core/dom/NodeRenderingContext.cpp |
| @@ -75,7 +75,7 @@ NodeRenderingContext::~NodeRenderingContext() |
| static bool isRendererReparented(const RenderObject* renderer) |
| { |
| - if (!renderer->node()->isElementNode()) |
| + if (!renderer || !renderer->node() || !renderer->node()->isElementNode()) |
| return false; |
| if (renderer->style() && !renderer->style()->flowThread().isEmpty()) |
| return true; |
| @@ -118,8 +118,15 @@ RenderObject* NodeRenderingContext::nextRenderer() const |
| if (m_renderingParent && !m_renderingParent->attached()) |
| return 0; |
| + Element* fullScreenElement = element ? element->document()->webkitCurrentFullScreenElement() : 0; |
| for (Node* sibling = NodeRenderingTraversal::nextSibling(m_node); sibling; sibling = NodeRenderingTraversal::nextSibling(sibling)) { |
| RenderObject* renderer = sibling->renderer(); |
| + if (renderer && renderer->node() == fullScreenElement) { |
| + // If the sibling node in DOM is the fullscreened element, the |
| + // sibling renderer should be the RenderFullScreen object it's |
| + // wrapped in. |
| + renderer = element->document()->fullScreenRenderer(); |
|
esprehn
2013/05/14 21:32:28
This doesn't seem like the right place to fix this
falken
2013/05/15 01:46:36
Yeah I thought optimistically that fixing it in No
|
| + } |
| if (renderer && !isRendererReparented(renderer)) |
| return renderer; |
| } |