Title: [115725] trunk/Source/WebCore
Revision
115725
Author
[email protected]
Date
2012-05-01 08:08:29 -0700 (Tue, 01 May 2012)

Log Message

https://bugs.webkit.org/show_bug.cgi?id=85231
Fixed position objects that are removed from the DOM don't kick off 
fixed position recalculation
-and corresponding-
<rdar://problem/11297916>

Reviewed by Darin Adler.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::willBeDestroyed):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (115724 => 115725)


--- trunk/Source/WebCore/ChangeLog	2012-05-01 14:57:58 UTC (rev 115724)
+++ trunk/Source/WebCore/ChangeLog	2012-05-01 15:08:29 UTC (rev 115725)
@@ -1,3 +1,16 @@
+2012-05-01  Beth Dakin  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=85231
+        Fixed position objects that are removed from the DOM don't kick off 
+        fixed position recalculation
+        -and corresponding-
+        <rdar://problem/11297916>
+
+        Reviewed by Darin Adler.
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::willBeDestroyed):
+
 2012-05-01  Dana Jansens  <[email protected]>
 
         Early-out for subtracting a non-intersecting region

Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (115724 => 115725)


--- trunk/Source/WebCore/rendering/RenderBox.cpp	2012-05-01 14:57:58 UTC (rev 115724)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2012-05-01 15:08:29 UTC (rev 115725)
@@ -253,11 +253,20 @@
     if (styleToUse && (styleToUse->logicalHeight().isPercent() || styleToUse->logicalMinHeight().isPercent() || styleToUse->logicalMaxHeight().isPercent()))
         RenderBlock::removePercentHeightDescendant(this);
 
-    // If this renderer is owning renderer for the frameview's custom scrollbars,
-    // we need to clear it from the scrollbar. See webkit bug 64737.
-    if (styleToUse && styleToUse->hasPseudoStyle(SCROLLBAR) && frame() && frame()->view())
-        frame()->view()->clearOwningRendererForCustomScrollbars(this);
+    if (styleToUse) {
+        if (RenderView* view = this->view()) {
+            if (FrameView* frameView = view->frameView()) {
+                // If this renderer is owning renderer for the FrameView's custom scrollbars,
+                // we need to clear it from the scrollbar. See webkit bug 64737.
+                if (styleToUse->hasPseudoStyle(SCROLLBAR))
+                    frameView->clearOwningRendererForCustomScrollbars(this);
 
+                if (styleToUse->position() == FixedPosition)
+                    frameView->removeFixedObject();
+            }
+        }
+    }
+
     // If the following assertion fails, logicalHeight()/logicalMinHeight()/
     // logicalMaxHeight() values are changed from a percent value to a non-percent
     // value during laying out. It causes a use-after-free bug.
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to