Chromium Code Reviews| Index: components/guest_view/browser/guest_view_base.cc |
| diff --git a/components/guest_view/browser/guest_view_base.cc b/components/guest_view/browser/guest_view_base.cc |
| index e2ffccee70d4728e19726a3b7aea8f4c93c49aaa..cb108070fc52cfb98a400357e93c51af1b57c99e 100644 |
| --- a/components/guest_view/browser/guest_view_base.cc |
| +++ b/components/guest_view/browser/guest_view_base.cc |
| @@ -20,7 +20,9 @@ |
| #include "content/public/browser/render_frame_host.h" |
| #include "content/public/browser/render_process_host.h" |
| #include "content/public/browser/render_view_host.h" |
| +#include "content/public/browser/render_widget_host.h" |
| #include "content/public/browser/render_widget_host_view.h" |
| +#include "content/public/browser/site_instance.h" |
| #include "content/public/browser/web_contents.h" |
| #include "content/public/common/page_zoom.h" |
| #include "content/public/common/url_constants.h" |
| @@ -119,6 +121,11 @@ class GuestViewBase::OwnerContentsObserver : public WebContentsObserver { |
| guest_->web_contents()->SetAudioMuted(muted); |
| } |
| + void RenderFrameDeleted(content::RenderFrameHost* rfh) { |
| + guest_->OnRenderFrameHostDeleted(rfh->GetProcess()->GetID(), |
| + rfh->GetRoutingID()); |
| + } |
| + |
| private: |
| bool is_fullscreen_; |
| bool destroyed_; |
| @@ -400,6 +407,8 @@ WebContents* GuestViewBase::CreateNewGuestWindow( |
| create_params); |
| } |
| +void GuestViewBase::OnRenderFrameHostDeleted(int process_id, int routing_id) {} |
| + |
| void GuestViewBase::DidAttach(int guest_proxy_routing_id) { |
| DCHECK(guest_proxy_routing_id_ == MSG_ROUTING_NONE || |
| guest_proxy_routing_id == guest_proxy_routing_id_); |
| @@ -416,9 +425,8 @@ void GuestViewBase::DidAttach(int guest_proxy_routing_id) { |
| DidAttachToEmbedder(); |
| // Inform the associated GuestViewContainer that the contentWindow is ready. |
| - embedder_web_contents()->Send(new GuestViewMsg_GuestAttached( |
| - element_instance_id_, |
| - guest_proxy_routing_id)); |
| + GetOwnerRenderWidgetHost()->Send(new GuestViewMsg_GuestAttached( |
| + element_instance_id_, guest_proxy_routing_id)); |
| SendQueuedEvents(); |
| } |
| @@ -726,6 +734,22 @@ void GuestViewBase::FindReply(WebContents* source, |
| } |
| } |
| +content::RenderWidgetHost* GuestViewBase::GetOwnerRenderWidgetHost() { |
| + if (GetOwnerWebContents() && |
| + GetOwnerWebContents()->GetRenderWidgetHostView()) { |
| + return GetOwnerWebContents() |
| + ->GetRenderWidgetHostView() |
| + ->GetRenderWidgetHost(); |
| + } |
| + return nullptr; |
| +} |
| + |
| +content::SiteInstance* GuestViewBase::GetOwnerSiteInstance() { |
| + if (auto* owner_contents = GetOwnerWebContents()) |
| + return owner_contents->GetSiteInstance(); |
|
Charlie Reis
2016/11/16 22:25:27
Please put comments in both of these methods about
EhsanK
2016/11/16 22:47:49
Done.
|
| + return nullptr; |
| +} |
| + |
| void GuestViewBase::OnZoomChanged( |
| const zoom::ZoomController::ZoomChangedEventData& data) { |
| if (data.web_contents == embedder_web_contents()) { |