Index: third_party/WebKit/Source/core/frame/FrameView.cpp |
diff --git a/third_party/WebKit/Source/core/frame/FrameView.cpp b/third_party/WebKit/Source/core/frame/FrameView.cpp |
index 2e7894507170d4f8e49a596d869de221b4e3a933..b4ee25e96b709105d75d0f783a15b94ae7f0e00d 100644 |
--- a/third_party/WebKit/Source/core/frame/FrameView.cpp |
+++ b/third_party/WebKit/Source/core/frame/FrameView.cpp |
@@ -243,7 +243,6 @@ DEFINE_TRACE(FrameView) { |
visitor->Trace(animating_scrollable_areas_); |
visitor->Trace(auto_size_info_); |
visitor->Trace(children_); |
- visitor->Trace(plugins_); |
visitor->Trace(scrollbars_); |
visitor->Trace(viewport_scrollable_area_); |
visitor->Trace(visibility_observer_); |
@@ -251,7 +250,6 @@ DEFINE_TRACE(FrameView) { |
visitor->Trace(anchoring_adjustment_queue_); |
visitor->Trace(scrollbar_manager_); |
visitor->Trace(print_context_); |
- FrameViewBase::Trace(visitor); |
ScrollableArea::Trace(visitor); |
} |
@@ -380,10 +378,10 @@ void FrameView::Dispose() { |
// FIXME: Do we need to do something here for OOPI? |
HTMLFrameOwnerElement* owner_element = frame_->DeprecatedLocalOwner(); |
// TODO(dcheng): It seems buggy that we can have an owner element that points |
- // to another FrameViewBase. This can happen when a plugin element loads a |
- // frame (FrameViewBase A of type FrameView) and then loads a plugin |
- // (FrameViewBase B of type WebPluginContainerImpl). In this case, the frame's |
- // view is A and the frame element's owned FrameViewBase is B. See |
+ // to another FrameOrPlugin. This can happen when a plugin element loads a |
+ // frame (FrameOrPlugin A of type FrameView) and then loads a plugin |
+ // (FrameOrPlugin B of type WebPluginContainerImpl). In this case, the frame's |
+ // view is A and the frame element's OwnedWidget is B. See |
// https://crbug.com/673170 for an example. |
if (owner_element && owner_element->OwnedWidget() == this) |
owner_element->SetWidget(nullptr); |
@@ -504,16 +502,12 @@ void FrameView::InvalidateAllCustomScrollbarsOnActiveChanged() { |
bool uses_window_inactive_selector = |
frame_->GetDocument()->GetStyleEngine().UsesWindowInactiveSelector(); |
- const ChildrenSet* view_children = Children(); |
- for (const Member<FrameViewBase>& child : *view_children) { |
- FrameViewBase* frame_view_base = child.Get(); |
- if (frame_view_base->IsFrameView()) { |
- ToFrameView(frame_view_base) |
- ->InvalidateAllCustomScrollbarsOnActiveChanged(); |
- } |
+ for (const auto& child : children_) { |
+ if (child->IsFrameView()) |
+ ToFrameView(child)->InvalidateAllCustomScrollbarsOnActiveChanged(); |
} |
- for (const Member<Scrollbar>& scrollbar : *Scrollbars()) { |
+ for (const auto& scrollbar : scrollbars_) { |
if (uses_window_inactive_selector && scrollbar->IsCustomScrollbar()) |
scrollbar->StyleChanged(); |
} |
@@ -1167,7 +1161,7 @@ void FrameView::ScheduleOrPerformPostLayoutTasks() { |
if (!post_layout_tasks_timer_.IsActive() && |
(NeedsLayout() || in_synchronous_post_layout_)) { |
// If we need layout or are already in a synchronous call to |
- // postLayoutTasks(), defer FrameViewBase updates and event dispatch until |
+ // postLayoutTasks(), defer FrameView updates and event dispatch until |
// after we return. postLayoutTasks() can make us need to update again, and |
// we can get stuck in a nasty cycle unless we call it through the timer |
// here. |
@@ -1524,7 +1518,7 @@ void FrameView::UpdateGeometries() { |
void FrameView::AddPartToUpdate(LayoutEmbeddedObject& object) { |
ASSERT(IsInPerformLayout()); |
- // Tell the DOM element that it needs a FrameViewBase update. |
+ // Tell the DOM element that it needs a FrameView update. |
Node* node = object.GetNode(); |
ASSERT(node); |
if (isHTMLObjectElement(*node) || isHTMLEmbedElement(*node)) |
@@ -2048,7 +2042,7 @@ void FrameView::UpdateLayersAndCompositingAfterScrollIfNeeded() { |
} |
// If there fixed position elements, scrolling may cause compositing layers to |
- // change. Update FrameViewBase and layer positions after scrolling, but only |
+ // change. Update FrameView and layer positions after scrolling, but only |
// if we're not inside of layout. |
if (!nested_layout_count_) { |
UpdateGeometries(); |
@@ -2476,8 +2470,8 @@ void FrameView::ScrollToFragmentAnchor() { |
} |
bool FrameView::UpdatePlugins() { |
- // This is always called from updatePluginsTimerFired. |
- // m_updatePluginsTimer should only be scheduled if we have FrameViewBases to |
+ // This is always called from UpdatePluginsTimerFired. |
+ // update_plugins_timer should only be scheduled if we have FrameViews to |
// update. Thus I believe we can stop checking isEmpty here, and just ASSERT |
// isEmpty: |
// FIXME: This assert has been temporarily removed due to |
@@ -3395,8 +3389,9 @@ void FrameView::UpdateStyleAndLayoutIfNeededRecursiveInternal() { |
// TODO(leviw): This currently runs the entire lifecycle on plugin WebViews. |
// We should have a way to only run these other Documents to the same |
// lifecycle stage as this frame. |
- for (const Member<PluginView>& plugin : *Plugins()) { |
- plugin->UpdateAllLifecyclePhases(); |
+ for (const auto& child : children_) { |
+ if (child->IsPluginView()) |
+ ToPluginView(child)->UpdateAllLifecyclePhases(); |
} |
CheckDoesNotNeedLayout(); |
@@ -3648,15 +3643,15 @@ IntPoint FrameView::ConvertToLayoutItem(const LayoutItem& layout_item, |
return RoundedIntPoint(layout_item.AbsoluteToLocal(point, kUseTransforms)); |
} |
-IntPoint FrameView::ConvertSelfToChild(const FrameViewBase* child, |
+IntPoint FrameView::ConvertSelfToChild(const IntPoint& child_location, |
const IntPoint& point) const { |
IntPoint new_point = point; |
new_point = FrameToContents(point); |
- new_point.MoveBy(-child->Location()); |
+ new_point.MoveBy(-child_location); |
return new_point; |
} |
-IntRect FrameView::ConvertToContainingFrameViewBase( |
+IntRect FrameView::ConvertToContainingFrameView( |
const IntRect& local_rect) const { |
if (parent_) { |
// Get our layoutObject in the parent view |
@@ -3674,19 +3669,19 @@ IntRect FrameView::ConvertToContainingFrameViewBase( |
return local_rect; |
} |
-IntRect FrameView::ConvertFromContainingFrameViewBase( |
+IntRect FrameView::ConvertFromContainingFrameView( |
const IntRect& parent_rect) const { |
if (parent_) { |
IntRect local_rect = parent_rect; |
local_rect.SetLocation( |
- parent_->ConvertSelfToChild(this, local_rect.Location())); |
+ parent_->ConvertSelfToChild(Location(), local_rect.Location())); |
return local_rect; |
} |
return parent_rect; |
} |
-IntPoint FrameView::ConvertToContainingFrameViewBase( |
+IntPoint FrameView::ConvertToContainingFrameView( |
const IntPoint& local_point) const { |
if (parent_) { |
// Get our layoutObject in the parent view |
@@ -3705,7 +3700,7 @@ IntPoint FrameView::ConvertToContainingFrameViewBase( |
return local_point; |
} |
-IntPoint FrameView::ConvertFromContainingFrameViewBase( |
+IntPoint FrameView::ConvertFromContainingFrameView( |
const IntPoint& parent_point) const { |
if (parent_) { |
// Get our layoutObject in the parent view |
@@ -3846,12 +3841,11 @@ void FrameView::RemoveAnimatingScrollableArea(ScrollableArea* scrollable_area) { |
FrameView* FrameView::Root() const { |
const FrameView* top = this; |
while (top->Parent()) |
- top = ToFrameView(top->Parent()); |
+ top = top->Parent(); |
return const_cast<FrameView*>(top); |
} |
-void FrameView::SetParent(FrameViewBase* parent_frame_view_base) { |
- FrameView* parent = ToFrameView(parent_frame_view_base); |
+void FrameView::SetParent(FrameView* parent) { |
if (parent == parent_) |
return; |
@@ -3869,7 +3863,13 @@ void FrameView::SetParent(FrameViewBase* parent_frame_view_base) { |
subtree_throttled_ = ParentFrameView()->CanThrottleRendering(); |
} |
-void FrameView::RemoveChild(FrameViewBase* child) { |
+void FrameView::AddChild(FrameOrPlugin* child) { |
+ DCHECK(child != this && !child->Parent()); |
+ child->SetParent(this); |
+ children_.insert(child); |
+} |
+ |
+void FrameView::RemoveChild(FrameOrPlugin* child) { |
DCHECK(child->Parent() == this); |
if (child->IsFrameView() && |
@@ -3880,20 +3880,6 @@ void FrameView::RemoveChild(FrameViewBase* child) { |
children_.erase(child); |
} |
-void FrameView::RemovePlugin(PluginView* plugin) { |
- DCHECK(plugin->Parent() == this); |
- DCHECK(plugins_.Contains(plugin)); |
- plugin->SetParent(nullptr); |
- plugins_.erase(plugin); |
-} |
- |
-void FrameView::AddPlugin(PluginView* plugin) { |
- DCHECK(!plugin->Parent()); |
- DCHECK(!plugins_.Contains(plugin)); |
- plugin->SetParent(this); |
- plugins_.insert(plugin); |
-} |
- |
void FrameView::RemoveScrollbar(Scrollbar* scrollbar) { |
DCHECK(scrollbars_.Contains(scrollbar)); |
scrollbar->SetParent(nullptr); |
@@ -3942,9 +3928,6 @@ void FrameView::FrameRectsChanged() { |
for (const auto& child : children_) |
child->FrameRectsChanged(); |
- |
- for (const auto& plugin : plugins_) |
- plugin->FrameRectsChanged(); |
} |
void FrameView::SetLayoutSizeInternal(const IntSize& size) { |
@@ -3994,12 +3977,6 @@ IntSize FrameView::MaximumScrollOffsetInt() const { |
return maximum_offset.ExpandedTo(MinimumScrollOffsetInt()); |
} |
-void FrameView::AddChild(FrameViewBase* child) { |
- DCHECK(child != this && !child->Parent()); |
- child->SetParent(this); |
- children_.insert(child); |
-} |
- |
void FrameView::SetScrollbarModes(ScrollbarMode horizontal_mode, |
ScrollbarMode vertical_mode, |
bool horizontal_lock, |
@@ -4448,7 +4425,7 @@ void FrameView::ScrollContents(const IntSize& scroll_delta) { |
SetNeedsPaintPropertyUpdate(); |
} |
- // This call will move children with native FrameViewBases (plugins) and |
+ // This call will move children with native FrameViews (plugins) and |
// invalidate them as well. |
FrameRectsChanged(); |
} |
@@ -4750,7 +4727,7 @@ bool FrameView::ScrollbarCornerPresent() const { |
IntRect FrameView::ConvertToRootFrame(const IntRect& local_rect) const { |
if (parent_) { |
- IntRect parent_rect = ConvertToContainingFrameViewBase(local_rect); |
+ IntRect parent_rect = ConvertToContainingFrameView(local_rect); |
return parent_->ConvertToRootFrame(parent_rect); |
} |
return local_rect; |
@@ -4758,13 +4735,13 @@ IntRect FrameView::ConvertToRootFrame(const IntRect& local_rect) const { |
IntPoint FrameView::ConvertToRootFrame(const IntPoint& local_point) const { |
if (parent_) { |
- IntPoint parent_point = ConvertToContainingFrameViewBase(local_point); |
+ IntPoint parent_point = ConvertToContainingFrameView(local_point); |
return parent_->ConvertToRootFrame(parent_point); |
} |
return local_point; |
} |
-IntPoint FrameView::ConvertFromContainingFrameViewBaseToScrollbar( |
+IntPoint FrameView::ConvertFromContainingFrameViewToScrollbar( |
const Scrollbar& scrollbar, |
const IntPoint& parent_point) const { |
IntPoint new_point = parent_point; |
@@ -4795,9 +4772,6 @@ void FrameView::SetParentVisible(bool visible) { |
for (const auto& child : children_) |
child->SetParentVisible(visible); |
- |
- for (const auto& plugin : plugins_) |
- plugin->SetParentVisible(visible); |
} |
void FrameView::Show() { |
@@ -4818,9 +4792,6 @@ void FrameView::Show() { |
if (IsParentVisible()) { |
for (const auto& child : children_) |
child->SetParentVisible(true); |
- |
- for (const auto& plugin : plugins_) |
- plugin->SetParentVisible(true); |
} |
} |
} |
@@ -4830,9 +4801,6 @@ void FrameView::Hide() { |
if (IsParentVisible()) { |
for (const auto& child : children_) |
child->SetParentVisible(false); |
- |
- for (const auto& plugin : plugins_) |
- plugin->SetParentVisible(false); |
} |
SetSelfVisible(false); |
if (ScrollingCoordinator* scrolling_coordinator = |
@@ -4899,11 +4867,11 @@ void FrameView::CollectAnnotatedRegions( |
void FrameView::UpdateViewportIntersectionsForSubtree( |
DocumentLifecycle::LifecycleState target_state) { |
- // TODO(dcheng): Since FrameViewBase tree updates are deferred, FrameViews |
- // might still be in the FrameViewBase hierarchy even though the associated |
+ // TODO(dcheng): Since FrameView tree updates are deferred, FrameViews |
+ // might still be in the FrameView hierarchy even though the associated |
// Document is already detached. Investigate if this check and a similar check |
// in lifecycle updates are still needed when there are no more deferred |
- // FrameViewBase updates: https://crbug.com/561683 |
+ // FrameView updates: https://crbug.com/561683 |
if (!GetFrame().GetDocument()->IsActive()) |
return; |
@@ -4979,11 +4947,10 @@ void FrameView::UpdateRenderThrottlingStatus( |
(was_throttled != is_throttled || |
force_throttling_invalidation_behavior == |
kForceThrottlingInvalidation)) { |
- for (const Member<FrameViewBase>& child : *Children()) { |
+ for (const auto& child : children_) { |
if (child->IsFrameView()) { |
- FrameView* child_view = ToFrameView(child); |
- child_view->UpdateRenderThrottlingStatus( |
- child_view->hidden_for_throttling_, is_throttled); |
+ ToFrameView(child)->UpdateRenderThrottlingStatus( |
+ ToFrameView(child)->hidden_for_throttling_, is_throttled); |
} |
} |
} |