Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(816)

Unified Diff: Source/core/dom/NodeRenderingContext.cpp

Issue 15165002: Fix assert failure in RenderObjectChildList::removeChildNode (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: patch Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « LayoutTests/fullscreen/full-screen-inline-split-crash-expected.txt ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
}
« no previous file with comments | « LayoutTests/fullscreen/full-screen-inline-split-crash-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698