| Index: third_party/WebKit/Source/modules/plugins/PluginOcclusionSupport.cpp
|
| diff --git a/third_party/WebKit/Source/modules/plugins/PluginOcclusionSupport.cpp b/third_party/WebKit/Source/modules/plugins/PluginOcclusionSupport.cpp
|
| index 745a0efe6df96fd6c3d3f19c5114532b932d18af..a3fcc340d8aae42b6108f5f63e17bfd866d0303f 100644
|
| --- a/third_party/WebKit/Source/modules/plugins/PluginOcclusionSupport.cpp
|
| +++ b/third_party/WebKit/Source/modules/plugins/PluginOcclusionSupport.cpp
|
| @@ -154,7 +154,7 @@ static const Element* TopLayerAncestor(const Element* element) {
|
| // page. In a nutshell, iframe elements should occlude plugins when
|
| // they occur higher in the stacking order.
|
| void GetPluginOcclusions(Element* element,
|
| - FrameViewBase* parent,
|
| + FrameView* parent,
|
| const IntRect& frame_rect,
|
| Vector<IntRect>& occlusions) {
|
| LayoutObject* plugin_node = element->GetLayoutObject();
|
| @@ -165,20 +165,12 @@ void GetPluginOcclusions(Element* element,
|
| Vector<const LayoutObject*> iframe_zstack;
|
| GetObjectStack(plugin_node, &plugin_zstack);
|
|
|
| - if (!parent->IsFrameView())
|
| - return;
|
| -
|
| - FrameView* parent_frame_view = ToFrameView(parent);
|
| -
|
| // Occlusions by iframes.
|
| - const FrameView::ChildrenSet* children = parent_frame_view->Children();
|
| - for (FrameView::ChildrenSet::const_iterator it = children->begin();
|
| - it != children->end(); ++it) {
|
| - // We only care about FrameView's because iframes show up as FrameViews.
|
| - if (!(*it)->IsFrameView())
|
| + for (const auto& child : parent->Children()) {
|
| + if (!child->IsFrameView())
|
| continue;
|
|
|
| - const FrameView* frame_view = ToFrameView(it->Get());
|
| + const FrameView* frame_view = ToFrameView(child);
|
| // Check to make sure we can get both the element and the LayoutObject
|
| // for this FrameView, if we can't just move on to the next object.
|
| // FIXME: Plugin occlusion by remote frames is probably broken.
|
| @@ -202,7 +194,7 @@ void GetPluginOcclusions(Element* element,
|
| // iframe. And a plugin inside an iframe in the top layer won't be respected
|
| // as being in the top layer.
|
| const Element* ancestor = TopLayerAncestor(element);
|
| - Document* document = parent_frame_view->GetFrame().GetDocument();
|
| + Document* document = parent->GetFrame().GetDocument();
|
| const HeapVector<Member<Element>>& elements = document->TopLayerElements();
|
| size_t start = ancestor ? elements.Find(ancestor) + 1 : 0;
|
| for (size_t i = start; i < elements.size(); ++i)
|
|
|