| Index: extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc | 
| diff --git a/extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc b/extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc | 
| index ff18e04b603620b913a01d0bf9871804bf3ebbea..a57f4541024f0a96c1b9a03a90d339d3e598013a 100644 | 
| --- a/extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc | 
| +++ b/extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc | 
| @@ -14,6 +14,8 @@ | 
| #include "extensions/common/guest_view/guest_view_constants.h" | 
| #include "extensions/renderer/guest_view/extensions_guest_view_container.h" | 
| #include "extensions/renderer/script_context.h" | 
| +#include "third_party/WebKit/public/web/WebFrame.h" | 
| +#include "third_party/WebKit/public/web/WebView.h" | 
| #include "v8/include/v8.h" | 
|  | 
| using content::V8ValueConverter; | 
| @@ -29,6 +31,9 @@ GuestViewInternalCustomBindings::GuestViewInternalCustomBindings( | 
| RouteFunction("DetachGuest", | 
| base::Bind(&GuestViewInternalCustomBindings::DetachGuest, | 
| base::Unretained(this))); | 
| +  RouteFunction("GetContentWindow", | 
| +                base::Bind(&GuestViewInternalCustomBindings::GetContentWindow, | 
| +                           base::Unretained(this))); | 
| RouteFunction( | 
| "RegisterDestructionCallback", | 
| base::Bind(&GuestViewInternalCustomBindings::RegisterDestructionCallback, | 
| @@ -122,6 +127,31 @@ void GuestViewInternalCustomBindings::DetachGuest( | 
| args.GetReturnValue().Set(v8::Boolean::New(context()->isolate(), true)); | 
| } | 
|  | 
| +void GuestViewInternalCustomBindings::GetContentWindow( | 
| +    const v8::FunctionCallbackInfo<v8::Value>& args) { | 
| +  // Default to returning null. | 
| +  args.GetReturnValue().SetNull(); | 
| + | 
| +  if (args.Length() != 1) | 
| +    return; | 
| + | 
| +  // The routing ID for the RenderView. | 
| +  if (!args[0]->IsInt32()) | 
| +    return; | 
| + | 
| +  int view_id = args[0]->Int32Value(); | 
| +  if (view_id == MSG_ROUTING_NONE) | 
| +    return; | 
| + | 
| +  content::RenderView* view = content::RenderView::FromRoutingID(view_id); | 
| +  if (!view) | 
| +    return; | 
| + | 
| +  blink::WebFrame* frame = view->GetWebView()->mainFrame(); | 
| +  v8::Local<v8::Value> window = frame->mainWorldScriptContext()->Global(); | 
| +  args.GetReturnValue().Set(window); | 
| +} | 
| + | 
| void GuestViewInternalCustomBindings::RegisterDestructionCallback( | 
| const v8::FunctionCallbackInfo<v8::Value>& args) { | 
| // There are two parameters. | 
|  |