Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(786)

Side by Side Diff: third_party/WebKit/Source/core/frame/FrameView.cpp

Issue 2832883003: Remove unneeded Convert* methods and move many from FrameViewBase to FrameView (Closed)
Patch Set: fix ScrollableArea::ConvertFromScrollbarToContainingFrameViewBase and remove dchecks Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
3 * 1999 Lars Knoll <knoll@kde.org> 3 * 1999 Lars Knoll <knoll@kde.org>
4 * 1999 Antti Koivisto <koivisto@kde.org> 4 * 1999 Antti Koivisto <koivisto@kde.org>
5 * 2000 Dirk Mueller <mueller@kde.org> 5 * 2000 Dirk Mueller <mueller@kde.org>
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com)
8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
9 * Copyright (C) 2009 Google Inc. All rights reserved. 9 * Copyright (C) 2009 Google Inc. All rights reserved.
10 * 10 *
(...skipping 3605 matching lines...) Expand 10 before | Expand all | Expand 10 after
3616 IntPoint FrameView::ConvertToLayoutItem(const LayoutItem& layout_item, 3616 IntPoint FrameView::ConvertToLayoutItem(const LayoutItem& layout_item,
3617 const IntPoint& frame_point) const { 3617 const IntPoint& frame_point) const {
3618 IntPoint point = frame_point; 3618 IntPoint point = frame_point;
3619 3619
3620 // Convert from FrameView coords into page ("absolute") coordinates. 3620 // Convert from FrameView coords into page ("absolute") coordinates.
3621 point += IntSize(ScrollX(), ScrollY()); 3621 point += IntSize(ScrollX(), ScrollY());
3622 3622
3623 return RoundedIntPoint(layout_item.AbsoluteToLocal(point, kUseTransforms)); 3623 return RoundedIntPoint(layout_item.AbsoluteToLocal(point, kUseTransforms));
3624 } 3624 }
3625 3625
3626 IntPoint FrameView::ConvertSelfToChild(const FrameViewBase* child,
3627 const IntPoint& point) const {
3628 // TODO(joelhockey): Remove this check once Scrollbar no longer inherits from
3629 // FrameViewBase.
3630 DCHECK(!IsFrameViewScrollbar(child));
3631 IntPoint new_point = point;
3632 new_point = FrameToContents(point);
3633 new_point.MoveBy(-child->Location());
3634 return new_point;
3635 }
3636
3626 IntRect FrameView::ConvertToContainingFrameViewBase( 3637 IntRect FrameView::ConvertToContainingFrameViewBase(
3627 const IntRect& local_rect) const { 3638 const IntRect& local_rect) const {
3628 if (const FrameView* parent_view = ToFrameView(Parent())) { 3639 if (const FrameView* parent = ToFrameView(Parent())) {
3629 // Get our layoutObject in the parent view 3640 // Get our layoutObject in the parent view
3630 LayoutPartItem layout_item = frame_->OwnerLayoutItem(); 3641 LayoutPartItem layout_item = frame_->OwnerLayoutItem();
3631 if (layout_item.IsNull()) 3642 if (layout_item.IsNull())
3632 return local_rect; 3643 return local_rect;
3633 3644
3634 IntRect rect(local_rect); 3645 IntRect rect(local_rect);
3635 // Add borders and padding?? 3646 // Add borders and padding??
3636 rect.Move((layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(), 3647 rect.Move((layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(),
3637 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt()); 3648 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt());
3638 return parent_view->ConvertFromLayoutItem(layout_item, rect); 3649 return parent->ConvertFromLayoutItem(layout_item, rect);
3639 } 3650 }
3640 3651
3641 return local_rect; 3652 return local_rect;
3642 } 3653 }
3643 3654
3644 IntRect FrameView::ConvertFromContainingFrameViewBase( 3655 IntRect FrameView::ConvertFromContainingFrameViewBase(
3645 const IntRect& parent_rect) const { 3656 const IntRect& parent_rect) const {
3646 if (const FrameView* parent_view = ToFrameView(Parent())) { 3657 if (const FrameView* parent = ToFrameView(Parent())) {
3647 // Get our layoutObject in the parent view 3658 IntRect local_rect = parent_rect;
3648 LayoutPartItem layout_item = frame_->OwnerLayoutItem(); 3659 local_rect.SetLocation(
3649 if (layout_item.IsNull()) 3660 parent->ConvertSelfToChild(this, local_rect.Location()));
3650 return parent_rect; 3661 return local_rect;
3651
3652 IntRect rect = parent_view->ConvertToLayoutItem(layout_item, parent_rect);
3653 // Subtract borders and padding
3654 rect.Move((-layout_item.BorderLeft() - layout_item.PaddingLeft()).ToInt(),
3655 (-layout_item.BorderTop() - layout_item.PaddingTop()).ToInt());
3656 return rect;
3657 } 3662 }
3658 3663
3659 return parent_rect; 3664 return parent_rect;
3660 } 3665 }
3661 3666
3662 IntPoint FrameView::ConvertToContainingFrameViewBase( 3667 IntPoint FrameView::ConvertToContainingFrameViewBase(
3663 const IntPoint& local_point) const { 3668 const IntPoint& local_point) const {
3664 if (const FrameView* parent_view = ToFrameView(Parent())) { 3669 if (const FrameView* parent = ToFrameView(Parent())) {
3665 // Get our layoutObject in the parent view 3670 // Get our layoutObject in the parent view
3666 LayoutPartItem layout_item = frame_->OwnerLayoutItem(); 3671 LayoutPartItem layout_item = frame_->OwnerLayoutItem();
3667 if (layout_item.IsNull()) 3672 if (layout_item.IsNull())
3668 return local_point; 3673 return local_point;
3669 3674
3670 IntPoint point(local_point); 3675 IntPoint point(local_point);
3671 3676
3672 // Add borders and padding 3677 // Add borders and padding
3673 point.Move((layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(), 3678 point.Move((layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(),
3674 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt()); 3679 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt());
3675 return parent_view->ConvertFromLayoutItem(layout_item, point); 3680 return parent->ConvertFromLayoutItem(layout_item, point);
3676 } 3681 }
3677 3682
3678 return local_point; 3683 return local_point;
3679 } 3684 }
3680 3685
3681 IntPoint FrameView::ConvertFromContainingFrameViewBase( 3686 IntPoint FrameView::ConvertFromContainingFrameViewBase(
3682 const IntPoint& parent_point) const { 3687 const IntPoint& parent_point) const {
3683 if (const FrameView* parent_view = ToFrameView(Parent())) { 3688 if (const FrameView* parent = ToFrameView(Parent())) {
3684 // Get our layoutObject in the parent view 3689 // Get our layoutObject in the parent view
3685 LayoutPartItem layout_item = frame_->OwnerLayoutItem(); 3690 LayoutPartItem layout_item = frame_->OwnerLayoutItem();
3686 if (layout_item.IsNull()) 3691 if (layout_item.IsNull())
3687 return parent_point; 3692 return parent_point;
3688 3693
3689 IntPoint point = 3694 IntPoint point = parent->ConvertToLayoutItem(layout_item, parent_point);
3690 parent_view->ConvertToLayoutItem(layout_item, parent_point);
3691 // Subtract borders and padding 3695 // Subtract borders and padding
3692 point.Move((-layout_item.BorderLeft() - layout_item.PaddingLeft()).ToInt(), 3696 point.Move((-layout_item.BorderLeft() - layout_item.PaddingLeft()).ToInt(),
3693 (-layout_item.BorderTop() - layout_item.PaddingTop()).ToInt()); 3697 (-layout_item.BorderTop() - layout_item.PaddingTop()).ToInt());
3694 return point; 3698 return point;
3695 } 3699 }
3696 3700
3697 return parent_point; 3701 return parent_point;
3698 } 3702 }
3699 3703
3700 void FrameView::SetInitialTracksPaintInvalidationsForTesting( 3704 void FrameView::SetInitialTracksPaintInvalidationsForTesting(
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
3810 animating_scrollable_areas_ = new ScrollableAreaSet; 3814 animating_scrollable_areas_ = new ScrollableAreaSet;
3811 animating_scrollable_areas_->insert(scrollable_area); 3815 animating_scrollable_areas_->insert(scrollable_area);
3812 } 3816 }
3813 3817
3814 void FrameView::RemoveAnimatingScrollableArea(ScrollableArea* scrollable_area) { 3818 void FrameView::RemoveAnimatingScrollableArea(ScrollableArea* scrollable_area) {
3815 if (!animating_scrollable_areas_) 3819 if (!animating_scrollable_areas_)
3816 return; 3820 return;
3817 animating_scrollable_areas_->erase(scrollable_area); 3821 animating_scrollable_areas_->erase(scrollable_area);
3818 } 3822 }
3819 3823
3820 void FrameView::SetParent(FrameViewBase* parent_view) { 3824 void FrameView::SetParent(FrameViewBase* parent) {
3821 if (parent_view == Parent()) 3825 if (parent == Parent())
3822 return; 3826 return;
3823 3827
3824 FrameViewBase::SetParent(parent_view); 3828 FrameViewBase::SetParent(parent);
3825 3829
3826 UpdateParentScrollableAreaSet(); 3830 UpdateParentScrollableAreaSet();
3827 SetupRenderThrottling(); 3831 SetupRenderThrottling();
3828 3832
3829 if (ParentFrameView()) 3833 if (ParentFrameView())
3830 subtree_throttled_ = ParentFrameView()->CanThrottleRendering(); 3834 subtree_throttled_ = ParentFrameView()->CanThrottleRendering();
3831 } 3835 }
3832 3836
3833 void FrameView::RemoveChild(FrameViewBase* child) { 3837 void FrameView::RemoveChild(FrameViewBase* child) {
3834 DCHECK(child->Parent() == this); 3838 DCHECK(child->Parent() == this);
(...skipping 856 matching lines...) Expand 10 before | Expand all | Expand 10 after
4691 frame_point.X() < vertical_scrollbar_x_max && 4695 frame_point.X() < vertical_scrollbar_x_max &&
4692 frame_point.Y() > vertical_scrollbar_y_min; 4696 frame_point.Y() > vertical_scrollbar_y_min;
4693 } 4697 }
4694 4698
4695 bool FrameView::ScrollbarCornerPresent() const { 4699 bool FrameView::ScrollbarCornerPresent() const {
4696 return (HorizontalScrollbar() && 4700 return (HorizontalScrollbar() &&
4697 Width() - HorizontalScrollbar()->Width() > 0) || 4701 Width() - HorizontalScrollbar()->Width() > 0) ||
4698 (VerticalScrollbar() && Height() - VerticalScrollbar()->Height() > 0); 4702 (VerticalScrollbar() && Height() - VerticalScrollbar()->Height() > 0);
4699 } 4703 }
4700 4704
4701 IntRect FrameView::ConvertFromScrollbarToContainingFrameViewBase( 4705 IntRect FrameView::ConvertToRootFrame(const IntRect& local_rect) const {
4702 const Scrollbar& scrollbar, 4706 if (const FrameView* parent = ToFrameView(Parent())) {
4703 const IntRect& local_rect) const { 4707 IntRect parent_rect = ConvertToContainingFrameViewBase(local_rect);
4704 // Scrollbars won't be transformed within us 4708 return parent->ConvertToRootFrame(parent_rect);
4705 IntRect new_rect = local_rect; 4709 }
4706 new_rect.MoveBy(scrollbar.Location()); 4710 return local_rect;
4707 return new_rect;
4708 } 4711 }
4709 4712
4710 IntRect FrameView::ConvertFromContainingFrameViewBaseToScrollbar( 4713 IntPoint FrameView::ConvertToRootFrame(const IntPoint& local_point) const {
4711 const Scrollbar& scrollbar, 4714 if (const FrameView* parent = ToFrameView(Parent())) {
4712 const IntRect& parent_rect) const { 4715 IntPoint parent_point = ConvertToContainingFrameViewBase(local_point);
4713 IntRect new_rect = parent_rect; 4716 return parent->ConvertToRootFrame(parent_point);
4714 // Scrollbars won't be transformed within us 4717 }
4715 new_rect.MoveBy(-scrollbar.Location()); 4718 return local_point;
4716 return new_rect;
4717 }
4718
4719 // FIXME: test these on windows
4720 IntPoint FrameView::ConvertFromScrollbarToContainingFrameViewBase(
4721 const Scrollbar& scrollbar,
4722 const IntPoint& local_point) const {
4723 // Scrollbars won't be transformed within us
4724 IntPoint new_point = local_point;
4725 new_point.MoveBy(scrollbar.Location());
4726 return new_point;
4727 } 4719 }
4728 4720
4729 IntPoint FrameView::ConvertFromContainingFrameViewBaseToScrollbar( 4721 IntPoint FrameView::ConvertFromContainingFrameViewBaseToScrollbar(
4730 const Scrollbar& scrollbar, 4722 const Scrollbar& scrollbar,
4731 const IntPoint& parent_point) const { 4723 const IntPoint& parent_point) const {
4732 IntPoint new_point = parent_point; 4724 IntPoint new_point = parent_point;
4733 // Scrollbars won't be transformed within us 4725 // Scrollbars won't be transformed within us
4734 new_point.MoveBy(-scrollbar.Location()); 4726 new_point.MoveBy(-scrollbar.Location());
4735 return new_point; 4727 return new_point;
4736 } 4728 }
(...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after
5350 void FrameView::SetAnimationHost( 5342 void FrameView::SetAnimationHost(
5351 std::unique_ptr<CompositorAnimationHost> host) { 5343 std::unique_ptr<CompositorAnimationHost> host) {
5352 animation_host_ = std::move(host); 5344 animation_host_ = std::move(host);
5353 } 5345 }
5354 5346
5355 LayoutUnit FrameView::CaretWidth() const { 5347 LayoutUnit FrameView::CaretWidth() const {
5356 return LayoutUnit(GetChromeClient()->WindowToViewportScalar(1)); 5348 return LayoutUnit(GetChromeClient()->WindowToViewportScalar(1));
5357 } 5349 }
5358 5350
5359 } // namespace blink 5351 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/frame/FrameView.h ('k') | third_party/WebKit/Source/core/frame/RemoteFrameView.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698