Title: [161877] trunk/Source/WebCore
- Revision
- 161877
- Author
- [email protected]
- Date
- 2014-01-13 06:33:53 -0800 (Mon, 13 Jan 2014)
Log Message
CTTE: Autoscroll renderer is always a RenderBox.
<https://webkit.org/b/126884>
Reviewed by Antti Koivisto.
* page/EventHandler.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::autoscrollRenderer):
Make autoscrollRenderer() return a RenderBox*.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::willBeDestroyed):
Only check if the autoscroll renderer is being torn down
in RenderBox::willBeDestroyed() since it's not relevant for
other renderer types.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (161876 => 161877)
--- trunk/Source/WebCore/ChangeLog 2014-01-13 12:52:28 UTC (rev 161876)
+++ trunk/Source/WebCore/ChangeLog 2014-01-13 14:33:53 UTC (rev 161877)
@@ -1,3 +1,25 @@
+2014-01-13 Andreas Kling <[email protected]>
+
+ CTTE: Autoscroll renderer is always a RenderBox.
+ <https://webkit.org/b/126884>
+
+ Reviewed by Antti Koivisto.
+
+ * page/EventHandler.h:
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::autoscrollRenderer):
+
+ Make autoscrollRenderer() return a RenderBox*.
+
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::willBeDestroyed):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::willBeDestroyed):
+
+ Only check if the autoscroll renderer is being torn down
+ in RenderBox::willBeDestroyed() since it's not relevant for
+ other renderer types.
+
2014-01-13 László Langó <[email protected]>
Text should be constructable.
Modified: trunk/Source/WebCore/page/EventHandler.cpp (161876 => 161877)
--- trunk/Source/WebCore/page/EventHandler.cpp 2014-01-13 12:52:28 UTC (rev 161876)
+++ trunk/Source/WebCore/page/EventHandler.cpp 2014-01-13 14:33:53 UTC (rev 161877)
@@ -1023,7 +1023,7 @@
#endif // ENABLE(PAN_SCROLLING)
-RenderElement* EventHandler::autoscrollRenderer() const
+RenderBox* EventHandler::autoscrollRenderer() const
{
return m_autoscrollController->autoscrollRenderer();
}
Modified: trunk/Source/WebCore/page/EventHandler.h (161876 => 161877)
--- trunk/Source/WebCore/page/EventHandler.h 2014-01-13 12:52:28 UTC (rev 161876)
+++ trunk/Source/WebCore/page/EventHandler.h 2014-01-13 14:33:53 UTC (rev 161877)
@@ -86,9 +86,9 @@
class PlatformKeyboardEvent;
class PlatformTouchEvent;
class PlatformWheelEvent;
+class RenderBox;
class RenderElement;
class RenderLayer;
-class RenderObject;
class RenderWidget;
class SVGElementInstance;
class Scrollbar;
@@ -138,7 +138,7 @@
#endif
void stopAutoscrollTimer(bool rendererIsBeingDestroyed = false);
- RenderElement* autoscrollRenderer() const;
+ RenderBox* autoscrollRenderer() const;
void updateAutoscrollRenderer();
bool autoscrollInProgress() const;
bool mouseDownWasInSubframe() const { return m_mouseDownWasInSubframe; }
Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (161876 => 161877)
--- trunk/Source/WebCore/rendering/RenderBox.cpp 2014-01-13 12:52:28 UTC (rev 161876)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp 2014-01-13 14:33:53 UTC (rev 161877)
@@ -28,6 +28,7 @@
#include "Chrome.h"
#include "ChromeClient.h"
#include "Document.h"
+#include "EventHandler.h"
#include "FloatQuad.h"
#include "Frame.h"
#include "FrameView.h"
@@ -218,6 +219,9 @@
void RenderBox::willBeDestroyed()
{
+ if (frame().eventHandler().autoscrollRenderer() == this)
+ frame().eventHandler().stopAutoscrollTimer(true);
+
clearOverrideSize();
clearContainingBlockOverrideSize();
Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (161876 => 161877)
--- trunk/Source/WebCore/rendering/RenderObject.cpp 2014-01-13 12:52:28 UTC (rev 161876)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp 2014-01-13 14:33:53 UTC (rev 161877)
@@ -1830,14 +1830,6 @@
void RenderObject::willBeDestroyed()
{
- // If this renderer is being autoscrolled, stop the autoscroll timer
-
- // FIXME: RenderObject::destroy should not get called with a renderer whose document
- // has a null frame, so we assert this. However, we don't want release builds to crash which is why we
- // check that the frame is not null.
- if (frame().eventHandler().autoscrollRenderer() == this)
- frame().eventHandler().stopAutoscrollTimer(true);
-
// For accessibility management, notify the parent of the imminent change to its child set.
// We do it now, before remove(), while the parent pointer is still available.
if (AXObjectCache* cache = document().existingAXObjectCache())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes