| Index: content/browser/web_contents/web_contents_impl.cc
|
| diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
| index dd371919e5d473c7b8f7960d12221e94d4997be4..f5301e6942270c392922f23b7c849daf6b234e14 100644
|
| --- a/content/browser/web_contents/web_contents_impl.cc
|
| +++ b/content/browser/web_contents/web_contents_impl.cc
|
| @@ -216,9 +216,13 @@ void SendToAllFramesInternal(IPC::Message* message, RenderFrameHost* rfh) {
|
| rfh->Send(message_copy);
|
| }
|
|
|
| -void AddRenderWidgetHostToSet(std::set<RenderWidgetHostImpl*>* set,
|
| - RenderFrameHost* rfh) {
|
| - set->insert(static_cast<RenderFrameHostImpl*>(rfh)->GetRenderWidgetHost());
|
| +void AddRenderWidgetHostViewToSet(std::set<RenderWidgetHostView*>* set,
|
| + RenderFrameHost* rfh) {
|
| + RenderWidgetHostView* rwhv = static_cast<RenderFrameHostImpl*>(rfh)
|
| + ->frame_tree_node()
|
| + ->render_manager()
|
| + ->GetRenderWidgetHostView();
|
| + set->insert(rwhv);
|
| }
|
|
|
| } // namespace
|
| @@ -941,15 +945,14 @@ base::TimeTicks WebContentsImpl::GetLastActiveTime() const {
|
| void WebContentsImpl::WasShown() {
|
| controller_.SetActive(true);
|
|
|
| - std::set<RenderWidgetHostImpl*> widgets = GetRenderWidgetHostsInTree();
|
| - for (std::set<RenderWidgetHostImpl*>::iterator iter = widgets.begin();
|
| + std::set<RenderWidgetHostView*> widgets = GetRenderWidgetHostViewsInTree();
|
| + for (std::set<RenderWidgetHostView*>::iterator iter = widgets.begin();
|
| iter != widgets.end();
|
| iter++) {
|
| - RenderWidgetHostView* rwhv = (*iter)->GetView();
|
| - if (rwhv) {
|
| - rwhv->Show();
|
| + if (*iter) {
|
| + (*iter)->Show();
|
| #if defined(OS_MACOSX)
|
| - rwhv->SetActive(true);
|
| + (*iter)->SetActive(true);
|
| #endif
|
| }
|
| }
|
| @@ -979,13 +982,12 @@ void WebContentsImpl::WasHidden() {
|
| // removes the |GetRenderViewHost()|; then when we actually destroy the
|
| // window, OnWindowPosChanged() notices and calls WasHidden() (which
|
| // calls us).
|
| - std::set<RenderWidgetHostImpl*> widgets = GetRenderWidgetHostsInTree();
|
| - for (std::set<RenderWidgetHostImpl*>::iterator iter = widgets.begin();
|
| + std::set<RenderWidgetHostView*> widgets = GetRenderWidgetHostViewsInTree();
|
| + for (std::set<RenderWidgetHostView*>::iterator iter = widgets.begin();
|
| iter != widgets.end();
|
| iter++) {
|
| - RenderWidgetHostView* rwhv = (*iter)->GetView();
|
| - if (rwhv)
|
| - rwhv->Hide();
|
| + if (*iter)
|
| + (*iter)->Hide();
|
| }
|
| }
|
|
|
| @@ -1142,9 +1144,15 @@ void WebContentsImpl::RemoveObserver(WebContentsObserver* observer) {
|
| observers_.RemoveObserver(observer);
|
| }
|
|
|
| -std::set<RenderWidgetHostImpl*> WebContentsImpl::GetRenderWidgetHostsInTree() {
|
| - std::set<RenderWidgetHostImpl*> set;
|
| - ForEachFrame(base::Bind(&AddRenderWidgetHostToSet, base::Unretained(&set)));
|
| +std::set<RenderWidgetHostView*>
|
| +WebContentsImpl::GetRenderWidgetHostViewsInTree() {
|
| + std::set<RenderWidgetHostView*> set;
|
| + if (ShowingInterstitialPage()) {
|
| + set.insert(GetRenderWidgetHostView());
|
| + } else {
|
| + ForEachFrame(
|
| + base::Bind(&AddRenderWidgetHostViewToSet, base::Unretained(&set)));
|
| + }
|
| return set;
|
| }
|
|
|
|
|