Title: [181617] trunk/Source/WebCore
- Revision
- 181617
- Author
- [email protected]
- Date
- 2015-03-16 22:30:46 -0700 (Mon, 16 Mar 2015)
Log Message
Update the debug overlays after layout
https://bugs.webkit.org/show_bug.cgi?id=142768
Reviewed by Zalan Bujtas.
The debug overlays need to be updated after layout, in case elements with wheel event handlers
moved around.
DebugPageOverlays::didLayout() is cheap if there are no overlays.
Call DebugPageOverlays::didLayout() for all frames, not just the main frame, since subframes can contribute
to the main frame's event handler region.
* page/DebugPageOverlays.cpp:
(WebCore::DebugPageOverlays::regionChanged):
* page/DebugPageOverlays.h:
(WebCore::DebugPageOverlays::didLayout):
(WebCore::DebugPageOverlays::didChangeEventHandlers):
* page/FrameView.cpp:
(WebCore::FrameView::layout):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (181616 => 181617)
--- trunk/Source/WebCore/ChangeLog 2015-03-17 05:15:41 UTC (rev 181616)
+++ trunk/Source/WebCore/ChangeLog 2015-03-17 05:30:46 UTC (rev 181617)
@@ -1,3 +1,26 @@
+2015-03-16 Simon Fraser <[email protected]>
+
+ Update the debug overlays after layout
+ https://bugs.webkit.org/show_bug.cgi?id=142768
+
+ Reviewed by Zalan Bujtas.
+
+ The debug overlays need to be updated after layout, in case elements with wheel event handlers
+ moved around.
+
+ DebugPageOverlays::didLayout() is cheap if there are no overlays.
+
+ Call DebugPageOverlays::didLayout() for all frames, not just the main frame, since subframes can contribute
+ to the main frame's event handler region.
+
+ * page/DebugPageOverlays.cpp:
+ (WebCore::DebugPageOverlays::regionChanged):
+ * page/DebugPageOverlays.h:
+ (WebCore::DebugPageOverlays::didLayout):
+ (WebCore::DebugPageOverlays::didChangeEventHandlers):
+ * page/FrameView.cpp:
+ (WebCore::FrameView::layout):
+
2015-03-16 Jon Lee <[email protected]>
Unreviewed fix for crash after r181608.
Modified: trunk/Source/WebCore/page/DebugPageOverlays.cpp (181616 => 181617)
--- trunk/Source/WebCore/page/DebugPageOverlays.cpp 2015-03-17 05:15:41 UTC (rev 181616)
+++ trunk/Source/WebCore/page/DebugPageOverlays.cpp 2015-03-17 05:30:46 UTC (rev 181617)
@@ -262,9 +262,9 @@
}
}
-void DebugPageOverlays::regionChanged(MainFrame& frame, RegionType regionType)
+void DebugPageOverlays::regionChanged(Frame& frame, RegionType regionType)
{
- if (RegionOverlay* visualizer = regionOverlayForFrame(frame, regionType))
+ if (RegionOverlay* visualizer = regionOverlayForFrame(frame.mainFrame(), regionType))
visualizer->recomputeRegion();
}
Modified: trunk/Source/WebCore/page/DebugPageOverlays.h (181616 => 181617)
--- trunk/Source/WebCore/page/DebugPageOverlays.h 2015-03-17 05:15:41 UTC (rev 181616)
+++ trunk/Source/WebCore/page/DebugPageOverlays.h 2015-03-17 05:30:46 UTC (rev 181617)
@@ -26,6 +26,7 @@
#ifndef DebugPageOverlays_h
#define DebugPageOverlays_h
+#include "Frame.h"
#include "Settings.h"
#include <wtf/HashMap.h>
#include <wtf/Vector.h>
@@ -45,7 +46,9 @@
};
static const unsigned NumberOfRegionTypes = NonFastScrollableRegion + 1;
- static void didLayout(MainFrame&);
+ static void didLayout(Frame&);
+ static void didChangeEventHandlers(Frame&);
+
WEBCORE_EXPORT static void settingsChanged(MainFrame&);
private:
@@ -54,7 +57,7 @@
void showRegionOverlay(MainFrame&, RegionType);
void hideRegionOverlay(MainFrame&, RegionType);
- void regionChanged(MainFrame&, RegionType);
+ void regionChanged(Frame&, RegionType);
bool hasOverlaysForFrame(MainFrame& frame) const
{
@@ -81,14 +84,22 @@
return sharedDebugOverlays->hasOverlaysForFrame(frame);
}
-inline void DebugPageOverlays::didLayout(MainFrame& frame)
+inline void DebugPageOverlays::didLayout(Frame& frame)
{
- FAST_RETURN_IF_NO_OVERLAYS(frame);
+ FAST_RETURN_IF_NO_OVERLAYS(frame.mainFrame());
sharedDebugOverlays->regionChanged(frame, RegionType::WheelEventHandlers);
sharedDebugOverlays->regionChanged(frame, RegionType::NonFastScrollableRegion);
}
+inline void DebugPageOverlays::didChangeEventHandlers(Frame& frame)
+{
+ FAST_RETURN_IF_NO_OVERLAYS(frame.mainFrame());
+
+ sharedDebugOverlays->regionChanged(frame, RegionType::WheelEventHandlers);
+ sharedDebugOverlays->regionChanged(frame, RegionType::NonFastScrollableRegion);
}
+}
+
#endif
Modified: trunk/Source/WebCore/page/FrameView.cpp (181616 => 181617)
--- trunk/Source/WebCore/page/FrameView.cpp 2015-03-17 05:15:41 UTC (rev 181616)
+++ trunk/Source/WebCore/page/FrameView.cpp 2015-03-17 05:30:46 UTC (rev 181617)
@@ -1404,8 +1404,7 @@
}
InspectorInstrumentation::didLayout(cookie, root);
- if (frame().isMainFrame())
- DebugPageOverlays::didLayout(frame().mainFrame());
+ DebugPageOverlays::didLayout(frame());
--m_nestedLayoutCount;
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes