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

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

Issue 2843693003: Move methods from FrameViewBase to FrameView. (Closed)
Patch Set: more scrollbar revert 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 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 160
161 using namespace HTMLNames; 161 using namespace HTMLNames;
162 162
163 // The maximum number of updatePlugins iterations that should be done before 163 // The maximum number of updatePlugins iterations that should be done before
164 // returning. 164 // returning.
165 static const unsigned kMaxUpdatePluginsIterations = 2; 165 static const unsigned kMaxUpdatePluginsIterations = 2;
166 static const double kResourcePriorityUpdateDelayAfterScroll = 0.250; 166 static const double kResourcePriorityUpdateDelayAfterScroll = 0.250;
167 167
168 static bool g_initial_track_all_paint_invalidations = false; 168 static bool g_initial_track_all_paint_invalidations = false;
169 169
170 FrameView::FrameView(LocalFrame& frame) 170 FrameView::FrameView(LocalFrame& frame, IntRect frame_rect)
171 : frame_(frame), 171 : frame_(frame),
172 frame_rect_(frame_rect),
173 parent_(nullptr),
172 display_mode_(kWebDisplayModeBrowser), 174 display_mode_(kWebDisplayModeBrowser),
173 can_have_scrollbars_(true), 175 can_have_scrollbars_(true),
174 has_pending_layout_(false), 176 has_pending_layout_(false),
175 in_synchronous_post_layout_(false), 177 in_synchronous_post_layout_(false),
176 post_layout_tasks_timer_( 178 post_layout_tasks_timer_(
177 TaskRunnerHelper::Get(TaskType::kUnspecedTimer, &frame), 179 TaskRunnerHelper::Get(TaskType::kUnspecedTimer, &frame),
178 this, 180 this,
179 &FrameView::PostLayoutTimerFired), 181 &FrameView::PostLayoutTimerFired),
180 update_plugins_timer_( 182 update_plugins_timer_(
181 TaskRunnerHelper::Get(TaskType::kUnspecedTimer, &frame), 183 TaskRunnerHelper::Get(TaskType::kUnspecedTimer, &frame),
(...skipping 26 matching lines...) Expand all
208 scroll_anchor_(this), 210 scroll_anchor_(this),
209 scrollbar_manager_(*this), 211 scrollbar_manager_(*this),
210 needs_scrollbars_update_(false), 212 needs_scrollbars_update_(false),
211 suppress_adjust_view_size_(false), 213 suppress_adjust_view_size_(false),
212 allows_layout_invalidation_after_layout_clean_(true), 214 allows_layout_invalidation_after_layout_clean_(true),
213 main_thread_scrolling_reasons_(0) { 215 main_thread_scrolling_reasons_(0) {
214 Init(); 216 Init();
215 } 217 }
216 218
217 FrameView* FrameView::Create(LocalFrame& frame) { 219 FrameView* FrameView::Create(LocalFrame& frame) {
218 FrameView* view = new FrameView(frame); 220 FrameView* view = new FrameView(frame, IntRect());
219 view->Show(); 221 view->Show();
220 return view; 222 return view;
221 } 223 }
222 224
223 FrameView* FrameView::Create(LocalFrame& frame, const IntSize& initial_size) { 225 FrameView* FrameView::Create(LocalFrame& frame, const IntSize& initial_size) {
224 FrameView* view = new FrameView(frame); 226 FrameView* view = new FrameView(frame, IntRect(IntPoint(), initial_size));
225 view->FrameViewBase::SetFrameRect(IntRect(view->Location(), initial_size));
226 view->SetLayoutSizeInternal(initial_size); 227 view->SetLayoutSizeInternal(initial_size);
227 228
228 view->Show(); 229 view->Show();
229 return view; 230 return view;
230 } 231 }
231 232
232 FrameView::~FrameView() { 233 FrameView::~FrameView() {
233 ASSERT(has_been_disposed_); 234 ASSERT(has_been_disposed_);
234 } 235 }
235 236
236 DEFINE_TRACE(FrameView) { 237 DEFINE_TRACE(FrameView) {
237 visitor->Trace(frame_); 238 visitor->Trace(frame_);
239 visitor->Trace(parent_);
238 visitor->Trace(fragment_anchor_); 240 visitor->Trace(fragment_anchor_);
239 visitor->Trace(scrollable_areas_); 241 visitor->Trace(scrollable_areas_);
240 visitor->Trace(animating_scrollable_areas_); 242 visitor->Trace(animating_scrollable_areas_);
241 visitor->Trace(auto_size_info_); 243 visitor->Trace(auto_size_info_);
242 visitor->Trace(children_); 244 visitor->Trace(children_);
243 visitor->Trace(plugins_); 245 visitor->Trace(plugins_);
244 visitor->Trace(scrollbars_); 246 visitor->Trace(scrollbars_);
245 visitor->Trace(viewport_scrollable_area_); 247 visitor->Trace(viewport_scrollable_area_);
246 visitor->Trace(visibility_observer_); 248 visitor->Trace(visibility_observer_);
247 visitor->Trace(scroll_anchor_); 249 visitor->Trace(scroll_anchor_);
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 IntRect paint_invalidation_rect = rect; 538 IntRect paint_invalidation_rect = rect;
537 paint_invalidation_rect.Move( 539 paint_invalidation_rect.Move(
538 (layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(), 540 (layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(),
539 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt()); 541 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt());
540 // FIXME: We should not allow paint invalidation out of paint invalidation 542 // FIXME: We should not allow paint invalidation out of paint invalidation
541 // state. crbug.com/457415 543 // state. crbug.com/457415
542 DisablePaintInvalidationStateAsserts paint_invalidation_assert_disabler; 544 DisablePaintInvalidationStateAsserts paint_invalidation_assert_disabler;
543 layout_item.InvalidatePaintRectangle(LayoutRect(paint_invalidation_rect)); 545 layout_item.InvalidatePaintRectangle(LayoutRect(paint_invalidation_rect));
544 } 546 }
545 547
546 void FrameView::SetFrameRect(const IntRect& new_rect) { 548 void FrameView::SetFrameRect(const IntRect& frame_rect) {
547 IntRect old_rect = FrameRect(); 549 if (frame_rect == frame_rect_)
548 if (new_rect == old_rect)
549 return; 550 return;
550 551
551 FrameViewBase::SetFrameRect(new_rect); 552 const bool width_changed = frame_rect_.Width() != frame_rect.Width();
553 const bool height_changed = frame_rect_.Height() != frame_rect.Height();
554 frame_rect_ = frame_rect;
552 555
553 const bool frame_size_changed = old_rect.Size() != new_rect.Size(); 556 needs_scrollbars_update_ = width_changed || height_changed;
554
555 needs_scrollbars_update_ = frame_size_changed;
556 // TODO(wjmaclean): find out why scrollbars fail to resize for complex 557 // TODO(wjmaclean): find out why scrollbars fail to resize for complex
557 // subframes after changing the zoom level. For now always calling 558 // subframes after changing the zoom level. For now always calling
558 // updateScrollbarsIfNeeded() here fixes the issue, but it would be good to 559 // updateScrollbarsIfNeeded() here fixes the issue, but it would be good to
559 // discover the deeper cause of this. http://crbug.com/607987. 560 // discover the deeper cause of this. http://crbug.com/607987.
560 UpdateScrollbarsIfNeeded(); 561 UpdateScrollbarsIfNeeded();
561 562
562 FrameRectsChanged(); 563 FrameRectsChanged();
563 564
564 UpdateParentScrollableAreaSet(); 565 UpdateParentScrollableAreaSet();
565 566
566 if (RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() && 567 if (RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() &&
567 !RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { 568 !RuntimeEnabledFeatures::rootLayerScrollingEnabled()) {
568 // The overflow clip property depends on the frame size and the pre 569 // The overflow clip property depends on the frame size and the pre
569 // translation property depends on the frame location. 570 // translation property depends on the frame location.
570 SetNeedsPaintPropertyUpdate(); 571 SetNeedsPaintPropertyUpdate();
571 } 572 }
572 573
573 if (auto layout_view_item = this->GetLayoutViewItem()) 574 if (auto layout_view_item = this->GetLayoutViewItem())
574 layout_view_item.SetMayNeedPaintInvalidation(); 575 layout_view_item.SetMayNeedPaintInvalidation();
575 576
576 if (frame_size_changed) { 577 if (width_changed || height_changed) {
577 ViewportSizeChanged(new_rect.Width() != old_rect.Width(), 578 ViewportSizeChanged(width_changed, height_changed);
578 new_rect.Height() != old_rect.Height());
579 579
580 if (frame_->IsMainFrame()) 580 if (frame_->IsMainFrame())
581 frame_->GetPage()->GetVisualViewport().MainFrameDidChangeSize(); 581 frame_->GetPage()->GetVisualViewport().MainFrameDidChangeSize();
582 582
583 GetFrame().Loader().RestoreScrollPositionAndViewState(); 583 GetFrame().Loader().RestoreScrollPositionAndViewState();
584 } 584 }
585 } 585 }
586 586
587 Page* FrameView::GetPage() const { 587 Page* FrameView::GetPage() const {
588 return GetFrame().GetPage(); 588 return GetFrame().GetPage();
(...skipping 3040 matching lines...) Expand 10 before | Expand all | Expand 10 after
3629 IntPoint FrameView::ConvertSelfToChild(const FrameViewBase* child, 3629 IntPoint FrameView::ConvertSelfToChild(const FrameViewBase* child,
3630 const IntPoint& point) const { 3630 const IntPoint& point) const {
3631 IntPoint new_point = point; 3631 IntPoint new_point = point;
3632 new_point = FrameToContents(point); 3632 new_point = FrameToContents(point);
3633 new_point.MoveBy(-child->Location()); 3633 new_point.MoveBy(-child->Location());
3634 return new_point; 3634 return new_point;
3635 } 3635 }
3636 3636
3637 IntRect FrameView::ConvertToContainingFrameViewBase( 3637 IntRect FrameView::ConvertToContainingFrameViewBase(
3638 const IntRect& local_rect) const { 3638 const IntRect& local_rect) const {
3639 if (const FrameView* parent = ToFrameView(Parent())) { 3639 if (parent_) {
3640 // Get our layoutObject in the parent view 3640 // Get our layoutObject in the parent view
3641 LayoutPartItem layout_item = frame_->OwnerLayoutItem(); 3641 LayoutPartItem layout_item = frame_->OwnerLayoutItem();
3642 if (layout_item.IsNull()) 3642 if (layout_item.IsNull())
3643 return local_rect; 3643 return local_rect;
3644 3644
3645 IntRect rect(local_rect); 3645 IntRect rect(local_rect);
3646 // Add borders and padding?? 3646 // Add borders and padding??
3647 rect.Move((layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(), 3647 rect.Move((layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(),
3648 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt()); 3648 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt());
3649 return parent->ConvertFromLayoutItem(layout_item, rect); 3649 return parent_->ConvertFromLayoutItem(layout_item, rect);
3650 } 3650 }
3651 3651
3652 return local_rect; 3652 return local_rect;
3653 } 3653 }
3654 3654
3655 IntRect FrameView::ConvertFromContainingFrameViewBase( 3655 IntRect FrameView::ConvertFromContainingFrameViewBase(
3656 const IntRect& parent_rect) const { 3656 const IntRect& parent_rect) const {
3657 if (const FrameView* parent = ToFrameView(Parent())) { 3657 if (parent_) {
3658 IntRect local_rect = parent_rect; 3658 IntRect local_rect = parent_rect;
3659 local_rect.SetLocation( 3659 local_rect.SetLocation(
3660 parent->ConvertSelfToChild(this, local_rect.Location())); 3660 parent_->ConvertSelfToChild(this, local_rect.Location()));
3661 return local_rect; 3661 return local_rect;
3662 } 3662 }
3663 3663
3664 return parent_rect; 3664 return parent_rect;
3665 } 3665 }
3666 3666
3667 IntPoint FrameView::ConvertToContainingFrameViewBase( 3667 IntPoint FrameView::ConvertToContainingFrameViewBase(
3668 const IntPoint& local_point) const { 3668 const IntPoint& local_point) const {
3669 if (const FrameView* parent = ToFrameView(Parent())) { 3669 if (parent_) {
3670 // Get our layoutObject in the parent view 3670 // Get our layoutObject in the parent view
3671 LayoutPartItem layout_item = frame_->OwnerLayoutItem(); 3671 LayoutPartItem layout_item = frame_->OwnerLayoutItem();
3672 if (layout_item.IsNull()) 3672 if (layout_item.IsNull())
3673 return local_point; 3673 return local_point;
3674 3674
3675 IntPoint point(local_point); 3675 IntPoint point(local_point);
3676 3676
3677 // Add borders and padding 3677 // Add borders and padding
3678 point.Move((layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(), 3678 point.Move((layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(),
3679 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt()); 3679 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt());
3680 return parent->ConvertFromLayoutItem(layout_item, point); 3680 return parent_->ConvertFromLayoutItem(layout_item, point);
3681 } 3681 }
3682 3682
3683 return local_point; 3683 return local_point;
3684 } 3684 }
3685 3685
3686 IntPoint FrameView::ConvertFromContainingFrameViewBase( 3686 IntPoint FrameView::ConvertFromContainingFrameViewBase(
3687 const IntPoint& parent_point) const { 3687 const IntPoint& parent_point) const {
3688 if (const FrameView* parent = ToFrameView(Parent())) { 3688 if (parent_) {
3689 // Get our layoutObject in the parent view 3689 // Get our layoutObject in the parent view
3690 LayoutPartItem layout_item = frame_->OwnerLayoutItem(); 3690 LayoutPartItem layout_item = frame_->OwnerLayoutItem();
3691 if (layout_item.IsNull()) 3691 if (layout_item.IsNull())
3692 return parent_point; 3692 return parent_point;
3693 3693
3694 IntPoint point = parent->ConvertToLayoutItem(layout_item, parent_point); 3694 IntPoint point = parent_->ConvertToLayoutItem(layout_item, parent_point);
3695 // Subtract borders and padding 3695 // Subtract borders and padding
3696 point.Move((-layout_item.BorderLeft() - layout_item.PaddingLeft()).ToInt(), 3696 point.Move((-layout_item.BorderLeft() - layout_item.PaddingLeft()).ToInt(),
3697 (-layout_item.BorderTop() - layout_item.PaddingTop()).ToInt()); 3697 (-layout_item.BorderTop() - layout_item.PaddingTop()).ToInt());
3698 return point; 3698 return point;
3699 } 3699 }
3700 3700
3701 return parent_point; 3701 return parent_point;
3702 } 3702 }
3703 3703
3704 void FrameView::SetInitialTracksPaintInvalidationsForTesting( 3704 void FrameView::SetInitialTracksPaintInvalidationsForTesting(
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
3814 animating_scrollable_areas_ = new ScrollableAreaSet; 3814 animating_scrollable_areas_ = new ScrollableAreaSet;
3815 animating_scrollable_areas_->insert(scrollable_area); 3815 animating_scrollable_areas_->insert(scrollable_area);
3816 } 3816 }
3817 3817
3818 void FrameView::RemoveAnimatingScrollableArea(ScrollableArea* scrollable_area) { 3818 void FrameView::RemoveAnimatingScrollableArea(ScrollableArea* scrollable_area) {
3819 if (!animating_scrollable_areas_) 3819 if (!animating_scrollable_areas_)
3820 return; 3820 return;
3821 animating_scrollable_areas_->erase(scrollable_area); 3821 animating_scrollable_areas_->erase(scrollable_area);
3822 } 3822 }
3823 3823
3824 void FrameView::SetParent(FrameViewBase* parent) { 3824 FrameView* FrameView::Root() const {
3825 if (parent == Parent()) 3825 const FrameView* top = this;
3826 while (top->Parent())
3827 top = ToFrameView(top->Parent());
3828 return const_cast<FrameView*>(top);
3829 }
3830
3831 void FrameView::SetParent(FrameViewBase* parent_frame_view_base) {
3832 FrameView* parent = ToFrameView(parent_frame_view_base);
3833 if (parent == parent_)
3826 return; 3834 return;
3827 3835
3828 FrameViewBase::SetParent(parent); 3836 DCHECK(!parent || !parent_);
3837 if (!parent || !parent->IsVisible())
3838 SetParentVisible(false);
3839 parent_ = parent;
3840 if (parent && parent->IsVisible())
3841 SetParentVisible(true);
3829 3842
3830 UpdateParentScrollableAreaSet(); 3843 UpdateParentScrollableAreaSet();
3831 SetupRenderThrottling(); 3844 SetupRenderThrottling();
3832 3845
3833 if (ParentFrameView()) 3846 if (ParentFrameView())
3834 subtree_throttled_ = ParentFrameView()->CanThrottleRendering(); 3847 subtree_throttled_ = ParentFrameView()->CanThrottleRendering();
3835 } 3848 }
3836 3849
3837 void FrameView::RemoveChild(FrameViewBase* child) { 3850 void FrameView::RemoveChild(FrameViewBase* child) {
3838 DCHECK(child->Parent() == this); 3851 DCHECK(child->Parent() == this);
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
3954 if (layout_viewport == controller.RootScrollerArea()) 3967 if (layout_viewport == controller.RootScrollerArea())
3955 visible_size = controller.RootScrollerVisibleArea(); 3968 visible_size = controller.RootScrollerVisibleArea();
3956 3969
3957 IntSize maximum_offset = 3970 IntSize maximum_offset =
3958 ToIntSize(-ScrollOrigin() + (content_bounds - visible_size)); 3971 ToIntSize(-ScrollOrigin() + (content_bounds - visible_size));
3959 return maximum_offset.ExpandedTo(MinimumScrollOffsetInt()); 3972 return maximum_offset.ExpandedTo(MinimumScrollOffsetInt());
3960 } 3973 }
3961 3974
3962 void FrameView::AddChild(FrameViewBase* child) { 3975 void FrameView::AddChild(FrameViewBase* child) {
3963 DCHECK(child != this && !child->Parent()); 3976 DCHECK(child != this && !child->Parent());
3964 DCHECK(!child->IsPluginView());
3965 child->SetParent(this); 3977 child->SetParent(this);
3966 children_.insert(child); 3978 children_.insert(child);
3967 } 3979 }
3968 3980
3969 void FrameView::SetScrollbarModes(ScrollbarMode horizontal_mode, 3981 void FrameView::SetScrollbarModes(ScrollbarMode horizontal_mode,
3970 ScrollbarMode vertical_mode, 3982 ScrollbarMode vertical_mode,
3971 bool horizontal_lock, 3983 bool horizontal_lock,
3972 bool vertical_lock) { 3984 bool vertical_lock) {
3973 bool needs_update = false; 3985 bool needs_update = false;
3974 3986
(...skipping 733 matching lines...) Expand 10 before | Expand all | Expand 10 after
4708 frame_point.Y() > vertical_scrollbar_y_min; 4720 frame_point.Y() > vertical_scrollbar_y_min;
4709 } 4721 }
4710 4722
4711 bool FrameView::ScrollbarCornerPresent() const { 4723 bool FrameView::ScrollbarCornerPresent() const {
4712 return (HorizontalScrollbar() && 4724 return (HorizontalScrollbar() &&
4713 Width() - HorizontalScrollbar()->Width() > 0) || 4725 Width() - HorizontalScrollbar()->Width() > 0) ||
4714 (VerticalScrollbar() && Height() - VerticalScrollbar()->Height() > 0); 4726 (VerticalScrollbar() && Height() - VerticalScrollbar()->Height() > 0);
4715 } 4727 }
4716 4728
4717 IntRect FrameView::ConvertToRootFrame(const IntRect& local_rect) const { 4729 IntRect FrameView::ConvertToRootFrame(const IntRect& local_rect) const {
4718 if (const FrameView* parent = ToFrameView(Parent())) { 4730 if (parent_) {
4719 IntRect parent_rect = ConvertToContainingFrameViewBase(local_rect); 4731 IntRect parent_rect = ConvertToContainingFrameViewBase(local_rect);
4720 return parent->ConvertToRootFrame(parent_rect); 4732 return parent_->ConvertToRootFrame(parent_rect);
4721 } 4733 }
4722 return local_rect; 4734 return local_rect;
4723 } 4735 }
4724 4736
4725 IntPoint FrameView::ConvertToRootFrame(const IntPoint& local_point) const { 4737 IntPoint FrameView::ConvertToRootFrame(const IntPoint& local_point) const {
4726 if (const FrameView* parent = ToFrameView(Parent())) { 4738 if (parent_) {
4727 IntPoint parent_point = ConvertToContainingFrameViewBase(local_point); 4739 IntPoint parent_point = ConvertToContainingFrameViewBase(local_point);
4728 return parent->ConvertToRootFrame(parent_point); 4740 return parent_->ConvertToRootFrame(parent_point);
4729 } 4741 }
4730 return local_point; 4742 return local_point;
4731 } 4743 }
4732 4744
4733 IntPoint FrameView::ConvertFromContainingFrameViewBaseToScrollbar( 4745 IntPoint FrameView::ConvertFromContainingFrameViewBaseToScrollbar(
4734 const Scrollbar& scrollbar, 4746 const Scrollbar& scrollbar,
4735 const IntPoint& parent_point) const { 4747 const IntPoint& parent_point) const {
4736 IntPoint new_point = parent_point; 4748 IntPoint new_point = parent_point;
4737 // Scrollbars won't be transformed within us 4749 // Scrollbars won't be transformed within us
4738 new_point.MoveBy(-scrollbar.Location()); 4750 new_point.MoveBy(-scrollbar.Location());
4739 return new_point; 4751 return new_point;
4740 } 4752 }
4741 4753
4742 static void SetNeedsCompositingUpdate(LayoutViewItem layout_view_item, 4754 static void SetNeedsCompositingUpdate(LayoutViewItem layout_view_item,
4743 CompositingUpdateType update_type) { 4755 CompositingUpdateType update_type) {
4744 if (PaintLayerCompositor* compositor = 4756 if (PaintLayerCompositor* compositor =
4745 !layout_view_item.IsNull() ? layout_view_item.Compositor() : nullptr) 4757 !layout_view_item.IsNull() ? layout_view_item.Compositor() : nullptr)
4746 compositor->SetNeedsCompositingUpdate(update_type); 4758 compositor->SetNeedsCompositingUpdate(update_type);
4747 } 4759 }
4748 4760
4749 void FrameView::SetParentVisible(bool visible) { 4761 void FrameView::SetParentVisible(bool visible) {
4750 if (IsParentVisible() == visible) 4762 if (IsParentVisible() == visible)
4751 return; 4763 return;
4752 4764
4753 // As parent visibility changes, we may need to recomposite this frame view 4765 // As parent visibility changes, we may need to recomposite this frame view
4754 // and potentially child frame views. 4766 // and potentially child frame views.
4755 SetNeedsCompositingUpdate(GetLayoutViewItem(), kCompositingUpdateRebuildTree); 4767 SetNeedsCompositingUpdate(GetLayoutViewItem(), kCompositingUpdateRebuildTree);
4756 4768
4757 FrameViewBase::SetParentVisible(visible); 4769 parent_visible_ = visible;
4758 4770
4759 if (!IsSelfVisible()) 4771 if (!IsSelfVisible())
4760 return; 4772 return;
4761 4773
4762 for (const auto& child : children_) 4774 for (const auto& child : children_)
4763 child->SetParentVisible(visible); 4775 child->SetParentVisible(visible);
4764 4776
4765 for (const auto& plugin : plugins_) 4777 for (const auto& plugin : plugins_)
4766 plugin->SetParentVisible(visible); 4778 plugin->SetParentVisible(visible);
4767 } 4779 }
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
5354 void FrameView::SetAnimationHost( 5366 void FrameView::SetAnimationHost(
5355 std::unique_ptr<CompositorAnimationHost> host) { 5367 std::unique_ptr<CompositorAnimationHost> host) {
5356 animation_host_ = std::move(host); 5368 animation_host_ = std::move(host);
5357 } 5369 }
5358 5370
5359 LayoutUnit FrameView::CaretWidth() const { 5371 LayoutUnit FrameView::CaretWidth() const {
5360 return LayoutUnit(GetChromeClient()->WindowToViewportScalar(1)); 5372 return LayoutUnit(GetChromeClient()->WindowToViewportScalar(1));
5361 } 5373 }
5362 5374
5363 } // namespace blink 5375 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698