Title: [150011] trunk/Source/WebCore
- Revision
- 150011
- Author
- [email protected]
- Date
- 2013-05-13 07:55:38 -0700 (Mon, 13 May 2013)
Log Message
REGRESSION(r149287): FoldingText only shows me half of my text.
<http://webkit.org/b/115956>
<rdar://problem/13831099>
Reviewed by Antti Koivisto.
Check if the FrameView geometry changed post-layout, and send a resize event if needed.
This brings us closer to the original resize event behavior, with the exception that
setFrameRect() still fires an event right away if possible. This means we are still
guarded from FOUC's but frames that layout via [WebHTMLView layoutToMinimumPageWidth]
also get resize events like they used to.
No new tests, because I don't know how to test this.
* page/FrameView.h:
* page/FrameView.cpp:
(WebCore::FrameView::setFrameRect):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::sendResizeEventIfNeeded):
Factor out the resize event logic from setFrameRect() so we can call it from both
there and performPostLayoutTasks(). sendResizeEventIfNeeded() only sends an event
if view geometry or zoom factor has changed since last time it was called.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (150010 => 150011)
--- trunk/Source/WebCore/ChangeLog 2013-05-13 14:26:27 UTC (rev 150010)
+++ trunk/Source/WebCore/ChangeLog 2013-05-13 14:55:38 UTC (rev 150011)
@@ -1,3 +1,29 @@
+2013-05-13 Andreas Kling <[email protected]>
+
+ REGRESSION(r149287): FoldingText only shows me half of my text.
+ <http://webkit.org/b/115956>
+ <rdar://problem/13831099>
+
+ Reviewed by Antti Koivisto.
+
+ Check if the FrameView geometry changed post-layout, and send a resize event if needed.
+ This brings us closer to the original resize event behavior, with the exception that
+ setFrameRect() still fires an event right away if possible. This means we are still
+ guarded from FOUC's but frames that layout via [WebHTMLView layoutToMinimumPageWidth]
+ also get resize events like they used to.
+
+ No new tests, because I don't know how to test this.
+
+ * page/FrameView.h:
+ * page/FrameView.cpp:
+ (WebCore::FrameView::setFrameRect):
+ (WebCore::FrameView::performPostLayoutTasks):
+ (WebCore::FrameView::sendResizeEventIfNeeded):
+
+ Factor out the resize event logic from setFrameRect() so we can call it from both
+ there and performPostLayoutTasks(). sendResizeEventIfNeeded() only sends an event
+ if view geometry or zoom factor has changed since last time it was called.
+
2013-05-13 Antti Koivisto <[email protected]>
Remove unneeded counters from ScopeContentDistribution.
Modified: trunk/Source/WebCore/page/FrameView.cpp (150010 => 150011)
--- trunk/Source/WebCore/page/FrameView.cpp 2013-05-13 14:26:27 UTC (rev 150010)
+++ trunk/Source/WebCore/page/FrameView.cpp 2013-05-13 14:55:38 UTC (rev 150011)
@@ -485,20 +485,7 @@
InspectorInstrumentation::mediaQueryResultChanged(document);
}
- if (renderView && !renderView->printing()) {
- IntSize currentSize;
- if (useFixedLayout() && !fixedLayoutSize().isEmpty() && delegatesScrolling())
- currentSize = fixedLayoutSize();
- else
- currentSize = visibleContentRect(IncludeScrollbars).size();
- float currentZoomFactor = renderView->style()->zoom();
- bool resized = !m_firstLayout && (currentSize != m_lastViewportSize || currentZoomFactor != m_lastZoomFactor);
- m_lastViewportSize = currentSize;
- m_lastZoomFactor = currentZoomFactor;
- if (resized)
- dispatchResizeEvent();
- }
-
+ sendResizeEventIfNeeded();
}
#if ENABLE(REQUEST_ANIMATION_FRAME)
@@ -2782,13 +2769,34 @@
scrollToAnchor();
m_actionScheduler->resume();
+
+ sendResizeEventIfNeeded();
}
-void FrameView::dispatchResizeEvent()
+void FrameView::sendResizeEventIfNeeded()
{
ASSERT(m_frame);
+ RenderView* renderView = this->renderView();
+ if (!renderView || renderView->printing())
+ return;
+
Page* page = m_frame->page();
+ IntSize currentSize;
+ if (useFixedLayout() && !fixedLayoutSize().isEmpty() && delegatesScrolling())
+ currentSize = fixedLayoutSize();
+ else
+ currentSize = visibleContentRect(IncludeScrollbars).size();
+
+ float currentZoomFactor = renderView->style()->zoom();
+ bool shouldSendResizeEvent = !m_firstLayout && (currentSize != m_lastViewportSize || currentZoomFactor != m_lastZoomFactor);
+
+ m_lastViewportSize = currentSize;
+ m_lastZoomFactor = currentZoomFactor;
+
+ if (!shouldSendResizeEvent)
+ return;
+
bool isMainFrame = page && page->mainFrame() == m_frame;
bool canSendResizeEventSynchronously = isMainFrame && !isInLayout();
Modified: trunk/Source/WebCore/page/FrameView.h (150010 => 150011)
--- trunk/Source/WebCore/page/FrameView.h 2013-05-13 14:26:27 UTC (rev 150010)
+++ trunk/Source/WebCore/page/FrameView.h 2013-05-13 14:55:38 UTC (rev 150011)
@@ -495,7 +495,7 @@
virtual void didAddScrollbar(Scrollbar*, ScrollbarOrientation) OVERRIDE;
virtual void willRemoveScrollbar(Scrollbar*, ScrollbarOrientation) OVERRIDE;
- void dispatchResizeEvent();
+ void sendResizeEventIfNeeded();
void updateScrollableAreaSet();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes