| Index: extensions/browser/guest_view/guest_view_base.cc | 
| diff --git a/extensions/browser/guest_view/guest_view_base.cc b/extensions/browser/guest_view/guest_view_base.cc | 
| index 696e9935d2e4065b9d8f4336df0eea7440c556f0..a269ecd5773b60141f98c04f59439f2e88b6863d 100644 | 
| --- a/extensions/browser/guest_view/guest_view_base.cc | 
| +++ b/extensions/browser/guest_view/guest_view_base.cc | 
| @@ -20,6 +20,7 @@ | 
| #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h" | 
| #include "extensions/browser/guest_view/web_view/web_view_guest.h" | 
| #include "extensions/browser/process_map.h" | 
| +#include "extensions/common/extension_messages.h" | 
| #include "extensions/common/features/feature.h" | 
| #include "extensions/common/features/feature_provider.h" | 
| #include "extensions/common/guest_view/guest_view_constants.h" | 
| @@ -105,6 +106,7 @@ GuestViewBase::GuestViewBase(content::BrowserContext* browser_context, | 
| browser_context_(browser_context), | 
| guest_instance_id_(guest_instance_id), | 
| view_instance_id_(guestview::kInstanceIDNone), | 
| +      element_instance_id_(guestview::kInstanceIDNone), | 
| initialized_(false), | 
| auto_size_enabled_(false), | 
| weak_ptr_factory_(this) { | 
| @@ -311,10 +313,16 @@ void GuestViewBase::Destroy() { | 
| delete web_contents(); | 
| } | 
|  | 
| -void GuestViewBase::DidAttach() { | 
| +void GuestViewBase::DidAttach(int guest_proxy_routing_id) { | 
| // Give the derived class an opportunity to perform some actions. | 
| DidAttachToEmbedder(); | 
|  | 
| +  // Inform the associated GuestViewContainer that the contentWindow is ready. | 
| +  embedder_web_contents()->Send(new ExtensionMsg_GuestAttached( | 
| +      embedder_web_contents()->GetMainFrame()->GetRoutingID(), | 
| +      element_instance_id_, | 
| +      guest_proxy_routing_id)); | 
| + | 
| SendQueuedEvents(); | 
| } | 
|  | 
| @@ -350,7 +358,8 @@ void GuestViewBase::RegisterDestructionCallback( | 
| destruction_callback_ = callback; | 
| } | 
|  | 
| -void GuestViewBase::WillAttach(content::WebContents* embedder_web_contents) { | 
| +void GuestViewBase::WillAttach(content::WebContents* embedder_web_contents, | 
| +                               int element_instance_id) { | 
| // After attachment, this GuestViewBase's lifetime is restricted to the | 
| // lifetime of its embedder WebContents. Observing the RenderProcessHost | 
| // of the embedder is no longer necessary. | 
| @@ -358,6 +367,7 @@ void GuestViewBase::WillAttach(content::WebContents* embedder_web_contents) { | 
| embedder_web_contents_ = embedder_web_contents; | 
| embedder_web_contents_observer_.reset( | 
| new EmbedderWebContentsObserver(this)); | 
| +  element_instance_id_ = element_instance_id; | 
|  | 
| WillAttachToEmbedder(); | 
| } | 
|  |