OLD | NEW |
---|---|
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 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
236 } | 236 } |
237 | 237 |
238 DEFINE_TRACE(FrameView) { | 238 DEFINE_TRACE(FrameView) { |
239 visitor->Trace(frame_); | 239 visitor->Trace(frame_); |
240 visitor->Trace(parent_); | 240 visitor->Trace(parent_); |
241 visitor->Trace(fragment_anchor_); | 241 visitor->Trace(fragment_anchor_); |
242 visitor->Trace(scrollable_areas_); | 242 visitor->Trace(scrollable_areas_); |
243 visitor->Trace(animating_scrollable_areas_); | 243 visitor->Trace(animating_scrollable_areas_); |
244 visitor->Trace(auto_size_info_); | 244 visitor->Trace(auto_size_info_); |
245 visitor->Trace(children_); | 245 visitor->Trace(children_); |
246 visitor->Trace(plugins_); | |
247 visitor->Trace(scrollbars_); | 246 visitor->Trace(scrollbars_); |
248 visitor->Trace(viewport_scrollable_area_); | 247 visitor->Trace(viewport_scrollable_area_); |
249 visitor->Trace(visibility_observer_); | 248 visitor->Trace(visibility_observer_); |
250 visitor->Trace(scroll_anchor_); | 249 visitor->Trace(scroll_anchor_); |
251 visitor->Trace(anchoring_adjustment_queue_); | 250 visitor->Trace(anchoring_adjustment_queue_); |
252 visitor->Trace(scrollbar_manager_); | 251 visitor->Trace(scrollbar_manager_); |
253 visitor->Trace(print_context_); | 252 visitor->Trace(print_context_); |
254 FrameViewBase::Trace(visitor); | |
255 ScrollableArea::Trace(visitor); | 253 ScrollableArea::Trace(visitor); |
256 } | 254 } |
257 | 255 |
258 void FrameView::Reset() { | 256 void FrameView::Reset() { |
259 // The compositor throttles the main frame using deferred commits, we can't | 257 // The compositor throttles the main frame using deferred commits, we can't |
260 // throttle it here or it seems the root compositor doesn't get setup | 258 // throttle it here or it seems the root compositor doesn't get setup |
261 // properly. | 259 // properly. |
262 if (RuntimeEnabledFeatures:: | 260 if (RuntimeEnabledFeatures:: |
263 renderingPipelineThrottlingLoadingIframesEnabled()) | 261 renderingPipelineThrottlingLoadingIframesEnabled()) |
264 lifecycle_updates_throttled_ = !GetFrame().IsMainFrame(); | 262 lifecycle_updates_throttled_ = !GetFrame().IsMainFrame(); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
373 // Destroy |m_autoSizeInfo| as early as possible, to avoid dereferencing | 371 // Destroy |m_autoSizeInfo| as early as possible, to avoid dereferencing |
374 // partially destroyed |this| via |m_autoSizeInfo->m_frameView|. | 372 // partially destroyed |this| via |m_autoSizeInfo->m_frameView|. |
375 auto_size_info_.Clear(); | 373 auto_size_info_.Clear(); |
376 | 374 |
377 post_layout_tasks_timer_.Stop(); | 375 post_layout_tasks_timer_.Stop(); |
378 did_scroll_timer_.Stop(); | 376 did_scroll_timer_.Stop(); |
379 | 377 |
380 // FIXME: Do we need to do something here for OOPI? | 378 // FIXME: Do we need to do something here for OOPI? |
381 HTMLFrameOwnerElement* owner_element = frame_->DeprecatedLocalOwner(); | 379 HTMLFrameOwnerElement* owner_element = frame_->DeprecatedLocalOwner(); |
382 // TODO(dcheng): It seems buggy that we can have an owner element that points | 380 // TODO(dcheng): It seems buggy that we can have an owner element that points |
383 // to another FrameViewBase. This can happen when a plugin element loads a | 381 // to another FrameOrPlugin. This can happen when a plugin element loads a |
384 // frame (FrameViewBase A of type FrameView) and then loads a plugin | 382 // frame (FrameOrPlugin A of type FrameView) and then loads a plugin |
385 // (FrameViewBase B of type WebPluginContainerImpl). In this case, the frame's | 383 // (FrameOrPlugin B of type WebPluginContainerImpl). In this case, the frame's |
386 // view is A and the frame element's owned FrameViewBase is B. See | 384 // view is A and the frame element's OwnedWidget is B. See |
387 // https://crbug.com/673170 for an example. | 385 // https://crbug.com/673170 for an example. |
388 if (owner_element && owner_element->OwnedWidget() == this) | 386 if (owner_element && owner_element->OwnedWidget() == this) |
389 owner_element->SetWidget(nullptr); | 387 owner_element->SetWidget(nullptr); |
390 | 388 |
391 ClearPrintContext(); | 389 ClearPrintContext(); |
392 | 390 |
393 #if DCHECK_IS_ON() | 391 #if DCHECK_IS_ON() |
394 has_been_disposed_ = true; | 392 has_been_disposed_ = true; |
395 #endif | 393 #endif |
396 } | 394 } |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
497 UpdateScrollbarGeometry(); | 495 UpdateScrollbarGeometry(); |
498 UpdateScrollCorner(); | 496 UpdateScrollCorner(); |
499 PositionScrollbarLayers(); | 497 PositionScrollbarLayers(); |
500 } | 498 } |
501 } | 499 } |
502 | 500 |
503 void FrameView::InvalidateAllCustomScrollbarsOnActiveChanged() { | 501 void FrameView::InvalidateAllCustomScrollbarsOnActiveChanged() { |
504 bool uses_window_inactive_selector = | 502 bool uses_window_inactive_selector = |
505 frame_->GetDocument()->GetStyleEngine().UsesWindowInactiveSelector(); | 503 frame_->GetDocument()->GetStyleEngine().UsesWindowInactiveSelector(); |
506 | 504 |
507 const ChildrenSet* view_children = Children(); | 505 for (const auto& child : children_) { |
508 for (const Member<FrameViewBase>& child : *view_children) { | 506 if (child->IsFrameView()) |
509 FrameViewBase* frame_view_base = child.Get(); | 507 ToFrameView(child)->InvalidateAllCustomScrollbarsOnActiveChanged(); |
510 if (frame_view_base->IsFrameView()) { | |
511 ToFrameView(frame_view_base) | |
512 ->InvalidateAllCustomScrollbarsOnActiveChanged(); | |
513 } | |
514 } | 508 } |
515 | 509 |
516 for (const Member<Scrollbar>& scrollbar : *Scrollbars()) { | 510 for (const auto& scrollbar : scrollbars_) { |
517 if (uses_window_inactive_selector && scrollbar->IsCustomScrollbar()) | 511 if (uses_window_inactive_selector && scrollbar->IsCustomScrollbar()) |
518 scrollbar->StyleChanged(); | 512 scrollbar->StyleChanged(); |
519 } | 513 } |
520 | 514 |
521 if (uses_window_inactive_selector) | 515 if (uses_window_inactive_selector) |
522 RecalculateCustomScrollbarStyle(); | 516 RecalculateCustomScrollbarStyle(); |
523 } | 517 } |
524 | 518 |
525 void FrameView::Clear() { | 519 void FrameView::Clear() { |
526 Reset(); | 520 Reset(); |
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1160 if (!in_synchronous_post_layout_) { | 1154 if (!in_synchronous_post_layout_) { |
1161 in_synchronous_post_layout_ = true; | 1155 in_synchronous_post_layout_ = true; |
1162 // Calls resumeScheduledEvents() | 1156 // Calls resumeScheduledEvents() |
1163 PerformPostLayoutTasks(); | 1157 PerformPostLayoutTasks(); |
1164 in_synchronous_post_layout_ = false; | 1158 in_synchronous_post_layout_ = false; |
1165 } | 1159 } |
1166 | 1160 |
1167 if (!post_layout_tasks_timer_.IsActive() && | 1161 if (!post_layout_tasks_timer_.IsActive() && |
1168 (NeedsLayout() || in_synchronous_post_layout_)) { | 1162 (NeedsLayout() || in_synchronous_post_layout_)) { |
1169 // If we need layout or are already in a synchronous call to | 1163 // If we need layout or are already in a synchronous call to |
1170 // postLayoutTasks(), defer FrameViewBase updates and event dispatch until | 1164 // postLayoutTasks(), defer FrameView updates and event dispatch until |
1171 // after we return. postLayoutTasks() can make us need to update again, and | 1165 // after we return. postLayoutTasks() can make us need to update again, and |
1172 // we can get stuck in a nasty cycle unless we call it through the timer | 1166 // we can get stuck in a nasty cycle unless we call it through the timer |
1173 // here. | 1167 // here. |
1174 post_layout_tasks_timer_.StartOneShot(0, BLINK_FROM_HERE); | 1168 post_layout_tasks_timer_.StartOneShot(0, BLINK_FROM_HERE); |
1175 if (NeedsLayout()) | 1169 if (NeedsLayout()) |
1176 UpdateLayout(); | 1170 UpdateLayout(); |
1177 } | 1171 } |
1178 } | 1172 } |
1179 | 1173 |
1180 void FrameView::UpdateLayout() { | 1174 void FrameView::UpdateLayout() { |
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1518 frame_view->CheckDoesNotNeedLayout(); | 1512 frame_view->CheckDoesNotNeedLayout(); |
1519 } else { | 1513 } else { |
1520 part->UpdateGeometry(); | 1514 part->UpdateGeometry(); |
1521 } | 1515 } |
1522 } | 1516 } |
1523 } | 1517 } |
1524 } | 1518 } |
1525 | 1519 |
1526 void FrameView::AddPartToUpdate(LayoutEmbeddedObject& object) { | 1520 void FrameView::AddPartToUpdate(LayoutEmbeddedObject& object) { |
1527 ASSERT(IsInPerformLayout()); | 1521 ASSERT(IsInPerformLayout()); |
1528 // Tell the DOM element that it needs a FrameViewBase update. | 1522 // Tell the DOM element that it needs a FrameView update. |
dcheng
2017/05/09 07:50:51
This reads a bit confusing. It says FrameView here
joelhockey
2017/05/10 02:35:43
comment updated
| |
1529 Node* node = object.GetNode(); | 1523 Node* node = object.GetNode(); |
1530 ASSERT(node); | 1524 ASSERT(node); |
1531 if (isHTMLObjectElement(*node) || isHTMLEmbedElement(*node)) | 1525 if (isHTMLObjectElement(*node) || isHTMLEmbedElement(*node)) |
1532 ToHTMLPlugInElement(node)->SetNeedsPluginUpdate(true); | 1526 ToHTMLPlugInElement(node)->SetNeedsPluginUpdate(true); |
1533 | 1527 |
1534 part_update_set_.insert(&object); | 1528 part_update_set_.insert(&object); |
1535 } | 1529 } |
1536 | 1530 |
1537 void FrameView::SetDisplayMode(WebDisplayMode mode) { | 1531 void FrameView::SetDisplayMode(WebDisplayMode mode) { |
1538 if (mode == display_mode_) | 1532 if (mode == display_mode_) |
(...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2048 !constraints_map.at(layer).HasAncestorStickyElement()) { | 2042 !constraints_map.at(layer).HasAncestorStickyElement()) { |
2049 // TODO(skobes): Resolve circular dependency between scroll offset and | 2043 // TODO(skobes): Resolve circular dependency between scroll offset and |
2050 // compositing state, and remove this disabler. https://crbug.com/420741 | 2044 // compositing state, and remove this disabler. https://crbug.com/420741 |
2051 DisableCompositingQueryAsserts disabler; | 2045 DisableCompositingQueryAsserts disabler; |
2052 layer->UpdateLayerPositionsAfterOverflowScroll(); | 2046 layer->UpdateLayerPositionsAfterOverflowScroll(); |
2053 layout_object->SetMayNeedPaintInvalidationSubtree(); | 2047 layout_object->SetMayNeedPaintInvalidationSubtree(); |
2054 } | 2048 } |
2055 } | 2049 } |
2056 | 2050 |
2057 // If there fixed position elements, scrolling may cause compositing layers to | 2051 // If there fixed position elements, scrolling may cause compositing layers to |
2058 // change. Update FrameViewBase and layer positions after scrolling, but only | 2052 // change. Update FrameView and layer positions after scrolling, but only |
2059 // if we're not inside of layout. | 2053 // if we're not inside of layout. |
2060 if (!nested_layout_count_) { | 2054 if (!nested_layout_count_) { |
2061 UpdateGeometries(); | 2055 UpdateGeometries(); |
2062 LayoutViewItem layout_view_item = this->GetLayoutViewItem(); | 2056 LayoutViewItem layout_view_item = this->GetLayoutViewItem(); |
2063 if (!layout_view_item.IsNull()) | 2057 if (!layout_view_item.IsNull()) |
2064 layout_view_item.Layer()->SetNeedsCompositingInputsUpdate(); | 2058 layout_view_item.Layer()->SetNeedsCompositingInputsUpdate(); |
2065 } | 2059 } |
2066 } | 2060 } |
2067 | 2061 |
2068 bool FrameView::ComputeCompositedSelection(LocalFrame& frame, | 2062 bool FrameView::ComputeCompositedSelection(LocalFrame& frame, |
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2476 } | 2470 } |
2477 | 2471 |
2478 // The fragment anchor should only be maintained while the frame is still | 2472 // The fragment anchor should only be maintained while the frame is still |
2479 // loading. If the frame is done loading, clear the anchor now. Otherwise, | 2473 // loading. If the frame is done loading, clear the anchor now. Otherwise, |
2480 // restore it since it may have been cleared during scrollRectToVisible. | 2474 // restore it since it may have been cleared during scrollRectToVisible. |
2481 fragment_anchor_ = | 2475 fragment_anchor_ = |
2482 frame_->GetDocument()->IsLoadCompleted() ? nullptr : anchor_node; | 2476 frame_->GetDocument()->IsLoadCompleted() ? nullptr : anchor_node; |
2483 } | 2477 } |
2484 | 2478 |
2485 bool FrameView::UpdatePlugins() { | 2479 bool FrameView::UpdatePlugins() { |
2486 // This is always called from updatePluginsTimerFired. | 2480 // This is always called from UpdatePluginsTimerFired. |
2487 // m_updatePluginsTimer should only be scheduled if we have FrameViewBases to | 2481 // update_plugins_timer should only be scheduled if we have FrameViews to |
2488 // update. Thus I believe we can stop checking isEmpty here, and just ASSERT | 2482 // update. Thus I believe we can stop checking isEmpty here, and just ASSERT |
2489 // isEmpty: | 2483 // isEmpty: |
2490 // FIXME: This assert has been temporarily removed due to | 2484 // FIXME: This assert has been temporarily removed due to |
2491 // https://crbug.com/430344 | 2485 // https://crbug.com/430344 |
2492 if (nested_layout_count_ > 1 || part_update_set_.IsEmpty()) | 2486 if (nested_layout_count_ > 1 || part_update_set_.IsEmpty()) |
2493 return true; | 2487 return true; |
2494 | 2488 |
2495 // Need to swap because script will run inside the below loop and invalidate | 2489 // Need to swap because script will run inside the below loop and invalidate |
2496 // the iterator. | 2490 // the iterator. |
2497 EmbeddedObjectSet objects; | 2491 EmbeddedObjectSet objects; |
(...skipping 895 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3393 if (NeedsLayout()) | 3387 if (NeedsLayout()) |
3394 UpdateLayout(); | 3388 UpdateLayout(); |
3395 | 3389 |
3396 CheckDoesNotNeedLayout(); | 3390 CheckDoesNotNeedLayout(); |
3397 | 3391 |
3398 // WebView plugins need to update regardless of whether the | 3392 // WebView plugins need to update regardless of whether the |
3399 // LayoutEmbeddedObject that owns them needed layout. | 3393 // LayoutEmbeddedObject that owns them needed layout. |
3400 // TODO(leviw): This currently runs the entire lifecycle on plugin WebViews. | 3394 // TODO(leviw): This currently runs the entire lifecycle on plugin WebViews. |
3401 // We should have a way to only run these other Documents to the same | 3395 // We should have a way to only run these other Documents to the same |
3402 // lifecycle stage as this frame. | 3396 // lifecycle stage as this frame. |
3403 for (const Member<PluginView>& plugin : *Plugins()) { | 3397 for (const auto& child : children_) { |
3404 plugin->UpdateAllLifecyclePhases(); | 3398 if (child->IsPluginView()) |
3399 ToPluginView(child)->UpdateAllLifecyclePhases(); | |
3405 } | 3400 } |
3406 CheckDoesNotNeedLayout(); | 3401 CheckDoesNotNeedLayout(); |
3407 | 3402 |
3408 // FIXME: Calling layout() shouldn't trigger script execution or have any | 3403 // FIXME: Calling layout() shouldn't trigger script execution or have any |
3409 // observable effects on the frame tree but we're not quite there yet. | 3404 // observable effects on the frame tree but we're not quite there yet. |
3410 HeapVector<Member<FrameView>> frame_views; | 3405 HeapVector<Member<FrameView>> frame_views; |
3411 for (Frame* child = frame_->Tree().FirstChild(); child; | 3406 for (Frame* child = frame_->Tree().FirstChild(); child; |
3412 child = child->Tree().NextSibling()) { | 3407 child = child->Tree().NextSibling()) { |
3413 if (!child->IsLocalFrame()) | 3408 if (!child->IsLocalFrame()) |
3414 continue; | 3409 continue; |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3646 IntPoint FrameView::ConvertToLayoutItem(const LayoutItem& layout_item, | 3641 IntPoint FrameView::ConvertToLayoutItem(const LayoutItem& layout_item, |
3647 const IntPoint& frame_point) const { | 3642 const IntPoint& frame_point) const { |
3648 IntPoint point = frame_point; | 3643 IntPoint point = frame_point; |
3649 | 3644 |
3650 // Convert from FrameView coords into page ("absolute") coordinates. | 3645 // Convert from FrameView coords into page ("absolute") coordinates. |
3651 point += IntSize(ScrollX(), ScrollY()); | 3646 point += IntSize(ScrollX(), ScrollY()); |
3652 | 3647 |
3653 return RoundedIntPoint(layout_item.AbsoluteToLocal(point, kUseTransforms)); | 3648 return RoundedIntPoint(layout_item.AbsoluteToLocal(point, kUseTransforms)); |
3654 } | 3649 } |
3655 | 3650 |
3656 IntPoint FrameView::ConvertSelfToChild(const FrameViewBase* child, | 3651 IntPoint FrameView::ConvertSelfToChild(const IntPoint& child_location, |
3657 const IntPoint& point) const { | 3652 const IntPoint& point) const { |
3658 IntPoint new_point = point; | 3653 IntPoint new_point = point; |
3659 new_point = FrameToContents(point); | 3654 new_point = FrameToContents(point); |
3660 new_point.MoveBy(-child->Location()); | 3655 new_point.MoveBy(-child_location); |
3661 return new_point; | 3656 return new_point; |
3662 } | 3657 } |
3663 | 3658 |
3664 IntRect FrameView::ConvertToContainingFrameViewBase( | 3659 IntRect FrameView::ConvertToContainingFrameView( |
3665 const IntRect& local_rect) const { | 3660 const IntRect& local_rect) const { |
3666 if (parent_) { | 3661 if (parent_) { |
3667 // Get our layoutObject in the parent view | 3662 // Get our layoutObject in the parent view |
3668 LayoutPartItem layout_item = frame_->OwnerLayoutItem(); | 3663 LayoutPartItem layout_item = frame_->OwnerLayoutItem(); |
3669 if (layout_item.IsNull()) | 3664 if (layout_item.IsNull()) |
3670 return local_rect; | 3665 return local_rect; |
3671 | 3666 |
3672 IntRect rect(local_rect); | 3667 IntRect rect(local_rect); |
3673 // Add borders and padding?? | 3668 // Add borders and padding?? |
3674 rect.Move((layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(), | 3669 rect.Move((layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(), |
3675 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt()); | 3670 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt()); |
3676 return parent_->ConvertFromLayoutItem(layout_item, rect); | 3671 return parent_->ConvertFromLayoutItem(layout_item, rect); |
3677 } | 3672 } |
3678 | 3673 |
3679 return local_rect; | 3674 return local_rect; |
3680 } | 3675 } |
3681 | 3676 |
3682 IntRect FrameView::ConvertFromContainingFrameViewBase( | 3677 IntRect FrameView::ConvertFromContainingFrameView( |
3683 const IntRect& parent_rect) const { | 3678 const IntRect& parent_rect) const { |
3684 if (parent_) { | 3679 if (parent_) { |
3685 IntRect local_rect = parent_rect; | 3680 IntRect local_rect = parent_rect; |
3686 local_rect.SetLocation( | 3681 local_rect.SetLocation( |
3687 parent_->ConvertSelfToChild(this, local_rect.Location())); | 3682 parent_->ConvertSelfToChild(Location(), local_rect.Location())); |
3688 return local_rect; | 3683 return local_rect; |
3689 } | 3684 } |
3690 | 3685 |
3691 return parent_rect; | 3686 return parent_rect; |
3692 } | 3687 } |
3693 | 3688 |
3694 IntPoint FrameView::ConvertToContainingFrameViewBase( | 3689 IntPoint FrameView::ConvertToContainingFrameView( |
3695 const IntPoint& local_point) const { | 3690 const IntPoint& local_point) const { |
3696 if (parent_) { | 3691 if (parent_) { |
3697 // Get our layoutObject in the parent view | 3692 // Get our layoutObject in the parent view |
3698 LayoutPartItem layout_item = frame_->OwnerLayoutItem(); | 3693 LayoutPartItem layout_item = frame_->OwnerLayoutItem(); |
3699 if (layout_item.IsNull()) | 3694 if (layout_item.IsNull()) |
3700 return local_point; | 3695 return local_point; |
3701 | 3696 |
3702 IntPoint point(local_point); | 3697 IntPoint point(local_point); |
3703 | 3698 |
3704 // Add borders and padding | 3699 // Add borders and padding |
3705 point.Move((layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(), | 3700 point.Move((layout_item.BorderLeft() + layout_item.PaddingLeft()).ToInt(), |
3706 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt()); | 3701 (layout_item.BorderTop() + layout_item.PaddingTop()).ToInt()); |
3707 return parent_->ConvertFromLayoutItem(layout_item, point); | 3702 return parent_->ConvertFromLayoutItem(layout_item, point); |
3708 } | 3703 } |
3709 | 3704 |
3710 return local_point; | 3705 return local_point; |
3711 } | 3706 } |
3712 | 3707 |
3713 IntPoint FrameView::ConvertFromContainingFrameViewBase( | 3708 IntPoint FrameView::ConvertFromContainingFrameView( |
3714 const IntPoint& parent_point) const { | 3709 const IntPoint& parent_point) const { |
3715 if (parent_) { | 3710 if (parent_) { |
3716 // Get our layoutObject in the parent view | 3711 // Get our layoutObject in the parent view |
3717 LayoutPartItem layout_item = frame_->OwnerLayoutItem(); | 3712 LayoutPartItem layout_item = frame_->OwnerLayoutItem(); |
3718 if (layout_item.IsNull()) | 3713 if (layout_item.IsNull()) |
3719 return parent_point; | 3714 return parent_point; |
3720 | 3715 |
3721 IntPoint point = parent_->ConvertToLayoutItem(layout_item, parent_point); | 3716 IntPoint point = parent_->ConvertToLayoutItem(layout_item, parent_point); |
3722 // Subtract borders and padding | 3717 // Subtract borders and padding |
3723 point.Move((-layout_item.BorderLeft() - layout_item.PaddingLeft()).ToInt(), | 3718 point.Move((-layout_item.BorderLeft() - layout_item.PaddingLeft()).ToInt(), |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3841 animating_scrollable_areas_ = new ScrollableAreaSet; | 3836 animating_scrollable_areas_ = new ScrollableAreaSet; |
3842 animating_scrollable_areas_->insert(scrollable_area); | 3837 animating_scrollable_areas_->insert(scrollable_area); |
3843 } | 3838 } |
3844 | 3839 |
3845 void FrameView::RemoveAnimatingScrollableArea(ScrollableArea* scrollable_area) { | 3840 void FrameView::RemoveAnimatingScrollableArea(ScrollableArea* scrollable_area) { |
3846 if (!animating_scrollable_areas_) | 3841 if (!animating_scrollable_areas_) |
3847 return; | 3842 return; |
3848 animating_scrollable_areas_->erase(scrollable_area); | 3843 animating_scrollable_areas_->erase(scrollable_area); |
3849 } | 3844 } |
3850 | 3845 |
3851 void FrameView::SetParent(FrameViewBase* parent_frame_view_base) { | 3846 FrameView* FrameView::Root() const { |
3852 FrameView* parent = ToFrameView(parent_frame_view_base); | 3847 const FrameView* top = this; |
3848 while (top->Parent()) | |
3849 top = top->Parent(); | |
3850 return const_cast<FrameView*>(top); | |
3851 } | |
3852 | |
3853 void FrameView::SetParent(FrameView* parent) { | |
3853 if (parent == parent_) | 3854 if (parent == parent_) |
3854 return; | 3855 return; |
3855 | 3856 |
3856 DCHECK(!parent || !parent_); | 3857 DCHECK(!parent || !parent_); |
3857 if (!parent || !parent->IsVisible()) | 3858 if (!parent || !parent->IsVisible()) |
3858 SetParentVisible(false); | 3859 SetParentVisible(false); |
3859 parent_ = parent; | 3860 parent_ = parent; |
3860 if (parent && parent->IsVisible()) | 3861 if (parent && parent->IsVisible()) |
3861 SetParentVisible(true); | 3862 SetParentVisible(true); |
3862 | 3863 |
3863 UpdateParentScrollableAreaSet(); | 3864 UpdateParentScrollableAreaSet(); |
3864 SetupRenderThrottling(); | 3865 SetupRenderThrottling(); |
3865 | 3866 |
3866 if (ParentFrameView()) | 3867 if (ParentFrameView()) |
3867 subtree_throttled_ = ParentFrameView()->CanThrottleRendering(); | 3868 subtree_throttled_ = ParentFrameView()->CanThrottleRendering(); |
3868 } | 3869 } |
3869 | 3870 |
3870 void FrameView::RemoveChild(FrameViewBase* child) { | 3871 void FrameView::AddChild(FrameOrPlugin* child) { |
3872 DCHECK(child != this && !child->Parent()); | |
3873 child->SetParent(this); | |
3874 children_.insert(child); | |
3875 } | |
3876 | |
3877 void FrameView::RemoveChild(FrameOrPlugin* child) { | |
3871 DCHECK(child->Parent() == this); | 3878 DCHECK(child->Parent() == this); |
3872 | 3879 |
3873 if (child->IsFrameView() && | 3880 if (child->IsFrameView() && |
3874 !RuntimeEnabledFeatures::rootLayerScrollingEnabled()) | 3881 !RuntimeEnabledFeatures::rootLayerScrollingEnabled()) |
3875 RemoveScrollableArea(ToFrameView(child)); | 3882 RemoveScrollableArea(ToFrameView(child)); |
3876 | 3883 |
3877 child->SetParent(nullptr); | 3884 child->SetParent(nullptr); |
3878 children_.erase(child); | 3885 children_.erase(child); |
3879 } | 3886 } |
3880 | 3887 |
3881 void FrameView::RemovePlugin(PluginView* plugin) { | |
3882 DCHECK(plugin->Parent() == this); | |
3883 DCHECK(plugins_.Contains(plugin)); | |
3884 plugin->SetParent(nullptr); | |
3885 plugins_.erase(plugin); | |
3886 } | |
3887 | |
3888 void FrameView::AddPlugin(PluginView* plugin) { | |
3889 DCHECK(!plugin->Parent()); | |
3890 DCHECK(!plugins_.Contains(plugin)); | |
3891 plugin->SetParent(this); | |
3892 plugins_.insert(plugin); | |
3893 } | |
3894 | |
3895 void FrameView::RemoveScrollbar(Scrollbar* scrollbar) { | 3888 void FrameView::RemoveScrollbar(Scrollbar* scrollbar) { |
3896 DCHECK(scrollbars_.Contains(scrollbar)); | 3889 DCHECK(scrollbars_.Contains(scrollbar)); |
3897 scrollbar->SetParent(nullptr); | 3890 scrollbar->SetParent(nullptr); |
3898 scrollbars_.erase(scrollbar); | 3891 scrollbars_.erase(scrollbar); |
3899 } | 3892 } |
3900 | 3893 |
3901 void FrameView::AddScrollbar(Scrollbar* scrollbar) { | 3894 void FrameView::AddScrollbar(Scrollbar* scrollbar) { |
3902 DCHECK(!scrollbars_.Contains(scrollbar)); | 3895 DCHECK(!scrollbars_.Contains(scrollbar)); |
3903 scrollbar->SetParent(this); | 3896 scrollbar->SetParent(this); |
3904 scrollbars_.insert(scrollbar); | 3897 scrollbars_.insert(scrollbar); |
(...skipping 28 matching lines...) Expand all Loading... | |
3933 page->GetChromeClient().SetCursor(cursor, frame_); | 3926 page->GetChromeClient().SetCursor(cursor, frame_); |
3934 } | 3927 } |
3935 | 3928 |
3936 void FrameView::FrameRectsChanged() { | 3929 void FrameView::FrameRectsChanged() { |
3937 TRACE_EVENT0("blink", "FrameView::frameRectsChanged"); | 3930 TRACE_EVENT0("blink", "FrameView::frameRectsChanged"); |
3938 if (LayoutSizeFixedToFrameSize()) | 3931 if (LayoutSizeFixedToFrameSize()) |
3939 SetLayoutSizeInternal(FrameRect().Size()); | 3932 SetLayoutSizeInternal(FrameRect().Size()); |
3940 | 3933 |
3941 for (const auto& child : children_) | 3934 for (const auto& child : children_) |
3942 child->FrameRectsChanged(); | 3935 child->FrameRectsChanged(); |
3943 | |
3944 for (const auto& plugin : plugins_) | |
3945 plugin->FrameRectsChanged(); | |
3946 } | 3936 } |
3947 | 3937 |
3948 void FrameView::SetLayoutSizeInternal(const IntSize& size) { | 3938 void FrameView::SetLayoutSizeInternal(const IntSize& size) { |
3949 if (layout_size_ == size) | 3939 if (layout_size_ == size) |
3950 return; | 3940 return; |
3951 | 3941 |
3952 layout_size_ = size; | 3942 layout_size_ = size; |
3953 ContentsResized(); | 3943 ContentsResized(); |
3954 } | 3944 } |
3955 | 3945 |
(...skipping 29 matching lines...) Expand all Loading... | |
3985 TopDocumentRootScrollerController& controller = | 3975 TopDocumentRootScrollerController& controller = |
3986 page->GlobalRootScrollerController(); | 3976 page->GlobalRootScrollerController(); |
3987 if (layout_viewport == controller.RootScrollerArea()) | 3977 if (layout_viewport == controller.RootScrollerArea()) |
3988 visible_size = controller.RootScrollerVisibleArea(); | 3978 visible_size = controller.RootScrollerVisibleArea(); |
3989 | 3979 |
3990 IntSize maximum_offset = | 3980 IntSize maximum_offset = |
3991 ToIntSize(-ScrollOrigin() + (content_bounds - visible_size)); | 3981 ToIntSize(-ScrollOrigin() + (content_bounds - visible_size)); |
3992 return maximum_offset.ExpandedTo(MinimumScrollOffsetInt()); | 3982 return maximum_offset.ExpandedTo(MinimumScrollOffsetInt()); |
3993 } | 3983 } |
3994 | 3984 |
3995 void FrameView::AddChild(FrameViewBase* child) { | |
3996 DCHECK(child != this && !child->Parent()); | |
3997 child->SetParent(this); | |
3998 children_.insert(child); | |
3999 } | |
4000 | |
4001 void FrameView::SetScrollbarModes(ScrollbarMode horizontal_mode, | 3985 void FrameView::SetScrollbarModes(ScrollbarMode horizontal_mode, |
4002 ScrollbarMode vertical_mode, | 3986 ScrollbarMode vertical_mode, |
4003 bool horizontal_lock, | 3987 bool horizontal_lock, |
4004 bool vertical_lock) { | 3988 bool vertical_lock) { |
4005 bool needs_update = false; | 3989 bool needs_update = false; |
4006 | 3990 |
4007 // If the page's overflow setting has disabled scrolling, do not allow | 3991 // If the page's overflow setting has disabled scrolling, do not allow |
4008 // anything to override that setting, http://crbug.com/426447 | 3992 // anything to override that setting, http://crbug.com/426447 |
4009 LayoutObject* viewport = ViewportLayoutObject(); | 3993 LayoutObject* viewport = ViewportLayoutObject(); |
4010 if (viewport && !ShouldIgnoreOverflowHidden()) { | 3994 if (viewport && !ShouldIgnoreOverflowHidden()) { |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4439 | 4423 |
4440 if (!ScrollContentsFastPath(-scroll_delta)) | 4424 if (!ScrollContentsFastPath(-scroll_delta)) |
4441 ScrollContentsSlowPath(); | 4425 ScrollContentsSlowPath(); |
4442 | 4426 |
4443 if (RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() && | 4427 if (RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() && |
4444 !RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { | 4428 !RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { |
4445 // Need to update scroll translation property. | 4429 // Need to update scroll translation property. |
4446 SetNeedsPaintPropertyUpdate(); | 4430 SetNeedsPaintPropertyUpdate(); |
4447 } | 4431 } |
4448 | 4432 |
4449 // This call will move children with native FrameViewBases (plugins) and | 4433 // This call will move children with native FrameViews (plugins) and |
4450 // invalidate them as well. | 4434 // invalidate them as well. |
4451 FrameRectsChanged(); | 4435 FrameRectsChanged(); |
4452 } | 4436 } |
4453 | 4437 |
4454 IntPoint FrameView::ContentsToFrame( | 4438 IntPoint FrameView::ContentsToFrame( |
4455 const IntPoint& point_in_content_space) const { | 4439 const IntPoint& point_in_content_space) const { |
4456 return point_in_content_space - ScrollOffsetInt(); | 4440 return point_in_content_space - ScrollOffsetInt(); |
4457 } | 4441 } |
4458 | 4442 |
4459 IntRect FrameView::ContentsToFrame(const IntRect& rect_in_content_space) const { | 4443 IntRect FrameView::ContentsToFrame(const IntRect& rect_in_content_space) const { |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4741 } | 4725 } |
4742 | 4726 |
4743 bool FrameView::ScrollbarCornerPresent() const { | 4727 bool FrameView::ScrollbarCornerPresent() const { |
4744 return (HorizontalScrollbar() && | 4728 return (HorizontalScrollbar() && |
4745 Width() - HorizontalScrollbar()->Width() > 0) || | 4729 Width() - HorizontalScrollbar()->Width() > 0) || |
4746 (VerticalScrollbar() && Height() - VerticalScrollbar()->Height() > 0); | 4730 (VerticalScrollbar() && Height() - VerticalScrollbar()->Height() > 0); |
4747 } | 4731 } |
4748 | 4732 |
4749 IntRect FrameView::ConvertToRootFrame(const IntRect& local_rect) const { | 4733 IntRect FrameView::ConvertToRootFrame(const IntRect& local_rect) const { |
4750 if (parent_) { | 4734 if (parent_) { |
4751 IntRect parent_rect = ConvertToContainingFrameViewBase(local_rect); | 4735 IntRect parent_rect = ConvertToContainingFrameView(local_rect); |
4752 return parent_->ConvertToRootFrame(parent_rect); | 4736 return parent_->ConvertToRootFrame(parent_rect); |
4753 } | 4737 } |
4754 return local_rect; | 4738 return local_rect; |
4755 } | 4739 } |
4756 | 4740 |
4757 IntPoint FrameView::ConvertToRootFrame(const IntPoint& local_point) const { | 4741 IntPoint FrameView::ConvertToRootFrame(const IntPoint& local_point) const { |
4758 if (parent_) { | 4742 if (parent_) { |
4759 IntPoint parent_point = ConvertToContainingFrameViewBase(local_point); | 4743 IntPoint parent_point = ConvertToContainingFrameView(local_point); |
4760 return parent_->ConvertToRootFrame(parent_point); | 4744 return parent_->ConvertToRootFrame(parent_point); |
4761 } | 4745 } |
4762 return local_point; | 4746 return local_point; |
4763 } | 4747 } |
4764 | 4748 |
4765 IntPoint FrameView::ConvertFromContainingFrameViewBaseToScrollbar( | 4749 IntPoint FrameView::ConvertFromContainingFrameViewToScrollbar( |
4766 const Scrollbar& scrollbar, | 4750 const Scrollbar& scrollbar, |
4767 const IntPoint& parent_point) const { | 4751 const IntPoint& parent_point) const { |
4768 IntPoint new_point = parent_point; | 4752 IntPoint new_point = parent_point; |
4769 // Scrollbars won't be transformed within us | 4753 // Scrollbars won't be transformed within us |
4770 new_point.MoveBy(-scrollbar.Location()); | 4754 new_point.MoveBy(-scrollbar.Location()); |
4771 return new_point; | 4755 return new_point; |
4772 } | 4756 } |
4773 | 4757 |
4774 static void SetNeedsCompositingUpdate(LayoutViewItem layout_view_item, | 4758 static void SetNeedsCompositingUpdate(LayoutViewItem layout_view_item, |
4775 CompositingUpdateType update_type) { | 4759 CompositingUpdateType update_type) { |
(...skipping 10 matching lines...) Expand all Loading... | |
4786 // and potentially child frame views. | 4770 // and potentially child frame views. |
4787 SetNeedsCompositingUpdate(GetLayoutViewItem(), kCompositingUpdateRebuildTree); | 4771 SetNeedsCompositingUpdate(GetLayoutViewItem(), kCompositingUpdateRebuildTree); |
4788 | 4772 |
4789 parent_visible_ = visible; | 4773 parent_visible_ = visible; |
4790 | 4774 |
4791 if (!IsSelfVisible()) | 4775 if (!IsSelfVisible()) |
4792 return; | 4776 return; |
4793 | 4777 |
4794 for (const auto& child : children_) | 4778 for (const auto& child : children_) |
4795 child->SetParentVisible(visible); | 4779 child->SetParentVisible(visible); |
4796 | |
4797 for (const auto& plugin : plugins_) | |
4798 plugin->SetParentVisible(visible); | |
4799 } | 4780 } |
4800 | 4781 |
4801 void FrameView::Show() { | 4782 void FrameView::Show() { |
4802 if (!IsSelfVisible()) { | 4783 if (!IsSelfVisible()) { |
4803 SetSelfVisible(true); | 4784 SetSelfVisible(true); |
4804 if (ScrollingCoordinator* scrolling_coordinator = | 4785 if (ScrollingCoordinator* scrolling_coordinator = |
4805 this->GetScrollingCoordinator()) | 4786 this->GetScrollingCoordinator()) |
4806 scrolling_coordinator->FrameViewVisibilityDidChange(); | 4787 scrolling_coordinator->FrameViewVisibilityDidChange(); |
4807 SetNeedsCompositingUpdate(GetLayoutViewItem(), | 4788 SetNeedsCompositingUpdate(GetLayoutViewItem(), |
4808 kCompositingUpdateRebuildTree); | 4789 kCompositingUpdateRebuildTree); |
4809 UpdateParentScrollableAreaSet(); | 4790 UpdateParentScrollableAreaSet(); |
4810 if (RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() && | 4791 if (RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() && |
4811 !RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { | 4792 !RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { |
4812 // The existance of scrolling properties depends on visibility through | 4793 // The existance of scrolling properties depends on visibility through |
4813 // isScrollable() so ensure properties are updated if visibility changes. | 4794 // isScrollable() so ensure properties are updated if visibility changes. |
4814 SetNeedsPaintPropertyUpdate(); | 4795 SetNeedsPaintPropertyUpdate(); |
4815 } | 4796 } |
4816 if (IsParentVisible()) { | 4797 if (IsParentVisible()) { |
4817 for (const auto& child : children_) | 4798 for (const auto& child : children_) |
4818 child->SetParentVisible(true); | 4799 child->SetParentVisible(true); |
4819 | |
4820 for (const auto& plugin : plugins_) | |
4821 plugin->SetParentVisible(true); | |
4822 } | 4800 } |
4823 } | 4801 } |
4824 } | 4802 } |
4825 | 4803 |
4826 void FrameView::Hide() { | 4804 void FrameView::Hide() { |
4827 if (IsSelfVisible()) { | 4805 if (IsSelfVisible()) { |
4828 if (IsParentVisible()) { | 4806 if (IsParentVisible()) { |
4829 for (const auto& child : children_) | 4807 for (const auto& child : children_) |
4830 child->SetParentVisible(false); | 4808 child->SetParentVisible(false); |
4831 | |
4832 for (const auto& plugin : plugins_) | |
4833 plugin->SetParentVisible(false); | |
4834 } | 4809 } |
4835 SetSelfVisible(false); | 4810 SetSelfVisible(false); |
4836 if (ScrollingCoordinator* scrolling_coordinator = | 4811 if (ScrollingCoordinator* scrolling_coordinator = |
4837 this->GetScrollingCoordinator()) | 4812 this->GetScrollingCoordinator()) |
4838 scrolling_coordinator->FrameViewVisibilityDidChange(); | 4813 scrolling_coordinator->FrameViewVisibilityDidChange(); |
4839 SetNeedsCompositingUpdate(GetLayoutViewItem(), | 4814 SetNeedsCompositingUpdate(GetLayoutViewItem(), |
4840 kCompositingUpdateRebuildTree); | 4815 kCompositingUpdateRebuildTree); |
4841 UpdateParentScrollableAreaSet(); | 4816 UpdateParentScrollableAreaSet(); |
4842 if (RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() && | 4817 if (RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() && |
4843 !RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { | 4818 !RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4890 return; | 4865 return; |
4891 | 4866 |
4892 layout_object.AddAnnotatedRegions(regions); | 4867 layout_object.AddAnnotatedRegions(regions); |
4893 for (LayoutObject* curr = layout_object.SlowFirstChild(); curr; | 4868 for (LayoutObject* curr = layout_object.SlowFirstChild(); curr; |
4894 curr = curr->NextSibling()) | 4869 curr = curr->NextSibling()) |
4895 CollectAnnotatedRegions(*curr, regions); | 4870 CollectAnnotatedRegions(*curr, regions); |
4896 } | 4871 } |
4897 | 4872 |
4898 void FrameView::UpdateViewportIntersectionsForSubtree( | 4873 void FrameView::UpdateViewportIntersectionsForSubtree( |
4899 DocumentLifecycle::LifecycleState target_state) { | 4874 DocumentLifecycle::LifecycleState target_state) { |
4900 // TODO(dcheng): Since FrameViewBase tree updates are deferred, FrameViews | 4875 // TODO(dcheng): Since FrameView tree updates are deferred, FrameViews |
4901 // might still be in the FrameViewBase hierarchy even though the associated | 4876 // might still be in the FrameView hierarchy even though the associated |
4902 // Document is already detached. Investigate if this check and a similar check | 4877 // Document is already detached. Investigate if this check and a similar check |
4903 // in lifecycle updates are still needed when there are no more deferred | 4878 // in lifecycle updates are still needed when there are no more deferred |
4904 // FrameViewBase updates: https://crbug.com/561683 | 4879 // FrameView updates: https://crbug.com/561683 |
4905 if (!GetFrame().GetDocument()->IsActive()) | 4880 if (!GetFrame().GetDocument()->IsActive()) |
4906 return; | 4881 return; |
4907 | 4882 |
4908 if (target_state == DocumentLifecycle::kPaintClean) { | 4883 if (target_state == DocumentLifecycle::kPaintClean) { |
4909 RecordDeferredLoadingStats(); | 4884 RecordDeferredLoadingStats(); |
4910 // Notify javascript IntersectionObservers | 4885 // Notify javascript IntersectionObservers |
4911 if (GetFrame().GetDocument()->GetIntersectionObserverController()) { | 4886 if (GetFrame().GetDocument()->GetIntersectionObserverController()) { |
4912 GetFrame() | 4887 GetFrame() |
4913 .GetDocument() | 4888 .GetDocument() |
4914 ->GetIntersectionObserverController() | 4889 ->GetIntersectionObserverController() |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4970 | 4945 |
4971 // If this FrameView became unthrottled or throttled, we must make sure all | 4946 // If this FrameView became unthrottled or throttled, we must make sure all |
4972 // its children are notified synchronously. Otherwise we 1) might attempt to | 4947 // its children are notified synchronously. Otherwise we 1) might attempt to |
4973 // paint one of the children with an out-of-date layout before | 4948 // paint one of the children with an out-of-date layout before |
4974 // |updateRenderThrottlingStatus| has made it throttled or 2) fail to | 4949 // |updateRenderThrottlingStatus| has made it throttled or 2) fail to |
4975 // unthrottle a child whose parent is unthrottled by a later notification. | 4950 // unthrottle a child whose parent is unthrottled by a later notification. |
4976 if (notify_children_behavior == kNotifyChildren && | 4951 if (notify_children_behavior == kNotifyChildren && |
4977 (was_throttled != is_throttled || | 4952 (was_throttled != is_throttled || |
4978 force_throttling_invalidation_behavior == | 4953 force_throttling_invalidation_behavior == |
4979 kForceThrottlingInvalidation)) { | 4954 kForceThrottlingInvalidation)) { |
4980 for (const Member<FrameViewBase>& child : *Children()) { | 4955 for (const auto& child : children_) { |
4981 if (child->IsFrameView()) { | 4956 if (child->IsFrameView()) { |
4982 FrameView* child_view = ToFrameView(child); | 4957 ToFrameView(child)->UpdateRenderThrottlingStatus( |
4983 child_view->UpdateRenderThrottlingStatus( | 4958 ToFrameView(child)->hidden_for_throttling_, is_throttled); |
4984 child_view->hidden_for_throttling_, is_throttled); | |
4985 } | 4959 } |
4986 } | 4960 } |
4987 } | 4961 } |
4988 | 4962 |
4989 ScrollingCoordinator* scrolling_coordinator = this->GetScrollingCoordinator(); | 4963 ScrollingCoordinator* scrolling_coordinator = this->GetScrollingCoordinator(); |
4990 if (became_unthrottled || | 4964 if (became_unthrottled || |
4991 force_throttling_invalidation_behavior == kForceThrottlingInvalidation) { | 4965 force_throttling_invalidation_behavior == kForceThrottlingInvalidation) { |
4992 // ScrollingCoordinator needs to update according to the new throttling | 4966 // ScrollingCoordinator needs to update according to the new throttling |
4993 // status. | 4967 // status. |
4994 if (scrolling_coordinator) | 4968 if (scrolling_coordinator) |
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5386 void FrameView::SetAnimationHost( | 5360 void FrameView::SetAnimationHost( |
5387 std::unique_ptr<CompositorAnimationHost> host) { | 5361 std::unique_ptr<CompositorAnimationHost> host) { |
5388 animation_host_ = std::move(host); | 5362 animation_host_ = std::move(host); |
5389 } | 5363 } |
5390 | 5364 |
5391 LayoutUnit FrameView::CaretWidth() const { | 5365 LayoutUnit FrameView::CaretWidth() const { |
5392 return LayoutUnit(GetChromeClient()->WindowToViewportScalar(1)); | 5366 return LayoutUnit(GetChromeClient()->WindowToViewportScalar(1)); |
5393 } | 5367 } |
5394 | 5368 |
5395 } // namespace blink | 5369 } // namespace blink |
OLD | NEW |