Chromium Code Reviews| 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 4959e65cffdd86d3499cbe53c908e02024163cdf..3546e50925184fcffb263fdd67a692ab0c072fb5 100644 |
| --- a/third_party/WebKit/Source/core/frame/FrameView.cpp |
| +++ b/third_party/WebKit/Source/core/frame/FrameView.cpp |
| @@ -101,7 +101,6 @@ |
| #include "core/paint/PaintLayer.h" |
| #include "core/paint/PaintTiming.h" |
| #include "core/paint/PrePaintTreeWalk.h" |
| -#include "core/plugins/PluginView.h" |
| #include "core/style/ComputedStyle.h" |
| #include "core/svg/SVGDocumentExtensions.h" |
| #include "core/svg/SVGSVGElement.h" |
| @@ -238,6 +237,7 @@ DEFINE_TRACE(FrameView) { |
| visitor->trace(m_animatingScrollableAreas); |
| visitor->trace(m_autoSizeInfo); |
| visitor->trace(m_children); |
| + visitor->trace(m_plugins); |
| visitor->trace(m_viewportScrollableArea); |
| visitor->trace(m_visibilityObserver); |
| visitor->trace(m_scrollAnchor); |
| @@ -3320,10 +3320,8 @@ 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. |
| - const ChildrenSet* viewChildren = children(); |
| - for (const Member<FrameViewBase>& child : *viewChildren) { |
| - if ((*child).isPluginContainer()) |
| - toPluginView(child.get())->updateAllLifecyclePhases(); |
| + for (const Member<PluginView>& plugin : *plugins()) { |
| + plugin->updateAllLifecyclePhases(); |
| } |
| checkDoesNotNeedLayout(); |
| @@ -3784,6 +3782,14 @@ void FrameView::removeChild(FrameViewBase* child) { |
| m_children.erase(child); |
| } |
| +void FrameView::removePlugin(PluginView* plugin) { |
| + m_plugins.erase(plugin); |
|
haraken
2017/03/28 07:39:41
DCHECK(m_plugins.contains(plugin));
joelhockey
2017/03/28 22:56:23
Done
|
| +} |
| + |
| +void FrameView::addPlugin(PluginView* plugin) { |
| + m_plugins.insert(plugin); |
|
haraken
2017/03/28 07:39:41
DCHECK(!m_plugins.contains(plugin));
joelhockey
2017/03/28 22:56:23
Done
|
| +} |
| + |
| bool FrameView::visualViewportSuppliesScrollbars() { |
| // On desktop, we always use the layout viewport's scrollbars. |
| if (!m_frame->settings() || !m_frame->settings()->getViewportEnabled() || |
| @@ -3870,7 +3876,8 @@ IntSize FrameView::maximumScrollOffsetInt() const { |
| } |
| void FrameView::addChild(FrameViewBase* child) { |
| - ASSERT(child != this && !child->parent()); |
| + DCHECK(child != this && !child->parent()); |
| + DCHECK(!child->isPluginView()); |
| child->setParent(this); |
| m_children.insert(child); |
| } |