Index: Source/core/frame/FrameView.cpp |
diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp |
index 8a39570e8b213508269616b772b35f1171af8afe..3d09c5ac02b4fc45929fe691d9392ecc48e1ba7b 100644 |
--- a/Source/core/frame/FrameView.cpp |
+++ b/Source/core/frame/FrameView.cpp |
@@ -1743,21 +1743,19 @@ HostWindow* FrameView::hostWindow() const |
return &page->chrome(); |
} |
-void FrameView::contentRectangleForPaintInvalidation(const IntRect& rect) |
+void FrameView::contentRectangleForPaintInvalidation(const IntRect& rectInContent) |
{ |
ASSERT(!m_frame->ownerRenderer()); |
if (m_isTrackingPaintInvalidations) { |
- IntRect paintInvalidationRect = rect; |
- paintInvalidationRect.move(-scrollOffset()); |
- m_trackedPaintInvalidationRects.append(paintInvalidationRect); |
+ m_trackedPaintInvalidationRects.append(contentsToFrame(rectInContent)); |
// FIXME: http://crbug.com/368518. Eventually, invalidateContentRectangleForPaint |
// is going away entirely once all layout tests are FCM. In the short |
// term, no code should be tracking non-composited FrameView paint invalidations. |
RELEASE_ASSERT_NOT_REACHED(); |
} |
- IntRect paintRect = rect; |
+ IntRect paintRect = rectInContent; |
if (clipsPaintInvalidations()) |
paintRect.intersect(visibleContentRect()); |
if (paintRect.isEmpty()) |
@@ -2757,17 +2755,17 @@ IntRect FrameView::convertFromRenderer(const LayoutObject& renderer, const IntRe |
return rect; |
} |
-IntRect FrameView::convertToRenderer(const LayoutObject& renderer, const IntRect& viewRect) const |
+IntRect FrameView::convertToRenderer(const LayoutObject& renderer, const IntRect& frameRect) const |
{ |
- IntRect rect = viewRect; |
+ IntRect rectInContent = frameToContents(frameRect); |
// Convert from FrameView coords into page ("absolute") coordinates. |
- rect.moveBy(scrollPosition()); |
+ rectInContent.moveBy(scrollPosition()); |
// FIXME: we don't have a way to map an absolute rect down to a local quad, so just |
// move the rect for now. |
- rect.setLocation(roundedIntPoint(renderer.absoluteToLocal(rect.location(), UseTransforms))); |
- return rect; |
+ rectInContent.setLocation(roundedIntPoint(renderer.absoluteToLocal(rectInContent.location(), UseTransforms))); |
+ return rectInContent; |
} |
IntPoint FrameView::convertFromRenderer(const LayoutObject& renderer, const IntPoint& rendererPoint) const |
@@ -2779,9 +2777,9 @@ IntPoint FrameView::convertFromRenderer(const LayoutObject& renderer, const IntP |
return point; |
} |
-IntPoint FrameView::convertToRenderer(const LayoutObject& renderer, const IntPoint& viewPoint) const |
+IntPoint FrameView::convertToRenderer(const LayoutObject& renderer, const IntPoint& framePoint) const |
{ |
- IntPoint point = viewPoint; |
+ IntPoint point = framePoint; |
// Convert from FrameView coords into page ("absolute") coordinates. |
point += IntSize(scrollX(), scrollY()); |
@@ -3626,62 +3624,82 @@ void FrameView::scrollContents(const IntSize& scrollDelta) |
frameRectsChanged(); |
} |
-IntPoint FrameView::rootViewToContents(const IntPoint& rootViewPoint) const |
+IntPoint FrameView::contentsToFrame(const IntPoint& pointInContentSpace) const |
+{ |
+ return pointInContentSpace - scrollOffset(); |
+} |
+ |
+IntRect FrameView::contentsToFrame(const IntRect& rectInContentSpace) const |
+{ |
+ return IntRect(contentsToFrame(rectInContentSpace.location()), rectInContentSpace.size()); |
+} |
+ |
+FloatPoint FrameView::frameToContents(const FloatPoint& pointInFrame) const |
+{ |
+ return pointInFrame + scrollOffset(); |
+} |
+ |
+IntPoint FrameView::frameToContents(const IntPoint& pointInFrame) const |
+{ |
+ return pointInFrame + scrollOffset(); |
+} |
+ |
+IntRect FrameView::frameToContents(const IntRect& rectInFrame) const |
+{ |
+ return IntRect(frameToContents(rectInFrame.location()), rectInFrame.size()); |
+} |
+ |
+IntPoint FrameView::rootFrameToContents(const IntPoint& rootFramePoint) const |
{ |
- IntPoint viewPoint = convertFromContainingWindow(rootViewPoint); |
- return viewPoint + scrollOffset(); |
+ IntPoint framePoint = convertFromContainingWindow(rootFramePoint); |
+ return frameToContents(framePoint); |
} |
-IntPoint FrameView::contentsToRootView(const IntPoint& contentsPoint) const |
+IntRect FrameView::rootFrameToContents(const IntRect& rootFrameRect) const |
{ |
- IntPoint viewPoint = contentsPoint - scrollOffset(); |
- return convertToContainingWindow(viewPoint); |
+ return IntRect(rootFrameToContents(rootFrameRect.location()), rootFrameRect.size()); |
} |
-IntRect FrameView::rootViewToContents(const IntRect& rootViewRect) const |
+IntPoint FrameView::contentsToRootFrame(const IntPoint& contentsPoint) const |
{ |
- IntRect viewRect = convertFromContainingWindow(rootViewRect); |
- viewRect.move(scrollOffset()); |
- return viewRect; |
+ IntPoint framePoint = contentsToFrame(contentsPoint); |
+ return convertToContainingWindow(framePoint); |
} |
-IntRect FrameView::contentsToRootView(const IntRect& contentsRect) const |
+IntRect FrameView::contentsToRootFrame(const IntRect& contentsRect) const |
{ |
- IntRect viewRect = contentsRect; |
- viewRect.move(-scrollOffset()); |
- return convertToContainingWindow(viewRect); |
+ IntRect rectInFrame = contentsToFrame(contentsRect); |
+ return convertToContainingWindow(rectInFrame); |
} |
IntPoint FrameView::windowToContents(const IntPoint& windowPoint) const |
{ |
- IntPoint viewPoint = convertFromContainingWindow(windowPoint); |
- return viewPoint + scrollOffset(); |
+ IntPoint framePoint = convertFromContainingWindow(windowPoint); |
+ return frameToContents(framePoint); |
} |
FloatPoint FrameView::windowToContents(const FloatPoint& windowPoint) const |
{ |
- FloatPoint viewPoint = convertFromContainingWindow(windowPoint); |
- return viewPoint + scrollOffset(); |
+ FloatPoint framePoint = convertFromContainingWindow(windowPoint); |
+ return frameToContents(framePoint); |
} |
IntPoint FrameView::contentsToWindow(const IntPoint& contentsPoint) const |
{ |
- IntPoint viewPoint = contentsPoint - scrollOffset(); |
- return convertToContainingWindow(viewPoint); |
+ IntPoint framePoint = contentsToFrame(contentsPoint); |
+ return convertToContainingWindow(framePoint); |
} |
IntRect FrameView::windowToContents(const IntRect& windowRect) const |
{ |
- IntRect viewRect = convertFromContainingWindow(windowRect); |
- viewRect.move(scrollOffset()); |
- return viewRect; |
+ IntRect rectInFrame = convertFromContainingWindow(windowRect); |
+ return frameToContents(rectInFrame); |
} |
IntRect FrameView::contentsToWindow(const IntRect& contentsRect) const |
{ |
- IntRect viewRect = contentsRect; |
- viewRect.move(-scrollOffset()); |
- return convertToContainingWindow(viewRect); |
+ IntRect rectInFrame = contentsToFrame(contentsRect); |
+ return convertToContainingWindow(rectInFrame); |
} |
IntRect FrameView::contentsToScreen(const IntRect& rect) const |
@@ -3689,7 +3707,7 @@ IntRect FrameView::contentsToScreen(const IntRect& rect) const |
HostWindow* window = hostWindow(); |
if (!window) |
return IntRect(); |
- return window->rootViewToScreen(contentsToRootView(rect)); |
+ return window->viewportToScreen(contentsToWindow(rect)); |
} |
bool FrameView::containsScrollbarsAvoidingResizer() const |
@@ -3733,15 +3751,15 @@ void FrameView::setScrollbarsSuppressed(bool suppressed, bool repaintOnUnsuppres |
Scrollbar* FrameView::scrollbarAtWindowPoint(const IntPoint& windowPoint) |
{ |
- IntPoint viewPoint = convertFromContainingWindow(windowPoint); |
- return scrollbarAtViewPoint(viewPoint); |
+ IntPoint pointInFrame = convertFromContainingWindow(windowPoint); |
+ return scrollbarAtFramePoint(pointInFrame); |
} |
-Scrollbar* FrameView::scrollbarAtViewPoint(const IntPoint& viewPoint) |
+Scrollbar* FrameView::scrollbarAtFramePoint(const IntPoint& pointInFrame) |
{ |
- if (m_horizontalScrollbar && m_horizontalScrollbar->shouldParticipateInHitTesting() && m_horizontalScrollbar->frameRect().contains(viewPoint)) |
+ if (m_horizontalScrollbar && m_horizontalScrollbar->shouldParticipateInHitTesting() && m_horizontalScrollbar->frameRect().contains(pointInFrame)) |
return m_horizontalScrollbar.get(); |
- if (m_verticalScrollbar && m_verticalScrollbar->shouldParticipateInHitTesting() && m_verticalScrollbar->frameRect().contains(viewPoint)) |
+ if (m_verticalScrollbar && m_verticalScrollbar->shouldParticipateInHitTesting() && m_verticalScrollbar->frameRect().contains(pointInFrame)) |
return m_verticalScrollbar.get(); |
return nullptr; |
} |
@@ -3921,21 +3939,21 @@ bool FrameView::isPointInScrollbarCorner(const IntPoint& windowPoint) |
if (!scrollbarCornerPresent()) |
return false; |
- IntPoint viewPoint = convertFromContainingWindow(windowPoint); |
+ IntPoint framePoint = convertFromContainingWindow(windowPoint); |
if (m_horizontalScrollbar) { |
int horizontalScrollbarYMin = m_horizontalScrollbar->frameRect().y(); |
int horizontalScrollbarYMax = m_horizontalScrollbar->frameRect().y() + m_horizontalScrollbar->frameRect().height(); |
int horizontalScrollbarXMin = m_horizontalScrollbar->frameRect().x() + m_horizontalScrollbar->frameRect().width(); |
- return viewPoint.y() > horizontalScrollbarYMin && viewPoint.y() < horizontalScrollbarYMax && viewPoint.x() > horizontalScrollbarXMin; |
+ return framePoint.y() > horizontalScrollbarYMin && framePoint.y() < horizontalScrollbarYMax && framePoint.x() > horizontalScrollbarXMin; |
} |
int verticalScrollbarXMin = m_verticalScrollbar->frameRect().x(); |
int verticalScrollbarXMax = m_verticalScrollbar->frameRect().x() + m_verticalScrollbar->frameRect().width(); |
int verticalScrollbarYMin = m_verticalScrollbar->frameRect().y() + m_verticalScrollbar->frameRect().height(); |
- return viewPoint.x() > verticalScrollbarXMin && viewPoint.x() < verticalScrollbarXMax && viewPoint.y() > verticalScrollbarYMin; |
+ return framePoint.x() > verticalScrollbarXMin && framePoint.x() < verticalScrollbarXMax && framePoint.y() > verticalScrollbarYMin; |
} |
bool FrameView::scrollbarCornerPresent() const |