| Index: chrome/browser/extensions/extension_host.cc
 | 
| diff --git a/chrome/browser/extensions/extension_host.cc b/chrome/browser/extensions/extension_host.cc
 | 
| index f1368ab49263a7153aa2613361c090b8d73f06a3..71f32810f6865a73b72e0a892ab027c60f309cff 100644
 | 
| --- a/chrome/browser/extensions/extension_host.cc
 | 
| +++ b/chrome/browser/extensions/extension_host.cc
 | 
| @@ -19,6 +19,7 @@
 | 
|  #include "chrome/browser/extensions/extension_service.h"
 | 
|  #include "chrome/browser/extensions/extension_system.h"
 | 
|  #include "chrome/browser/extensions/extension_tab_util.h"
 | 
| +#include "chrome/browser/extensions/extension_window_controller.h"
 | 
|  #include "chrome/browser/profiles/profile.h"
 | 
|  #include "chrome/browser/ui/app_modal_dialogs/message_box_handler.h"
 | 
|  #include "chrome/browser/ui/browser.h"
 | 
| @@ -231,12 +232,9 @@ void ExtensionHost::CreateRenderViewNow() {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| -const Browser* ExtensionHost::GetBrowser() const {
 | 
| -  return view() ? view()->browser() : NULL;
 | 
| -}
 | 
| -
 | 
| -Browser* ExtensionHost::GetBrowser() {
 | 
| -  return view() ? view()->browser() : NULL;
 | 
| +ExtensionWindowController* ExtensionHost::GetExtensionWindowController() const {
 | 
| +  return view() && view()->browser() ?
 | 
| +      view()->browser()->extension_window_controller() : NULL;
 | 
|  }
 | 
|  
 | 
|  const GURL& ExtensionHost::GetURL() const {
 | 
| @@ -440,7 +438,7 @@ WebContents* ExtensionHost::OpenURLFromTab(WebContents* source,
 | 
|      case OFF_THE_RECORD: {
 | 
|        // Only allow these from hosts that are bound to a browser (e.g. popups).
 | 
|        // Otherwise they are not driven by a user gesture.
 | 
| -      Browser* browser = GetBrowser();
 | 
| +      Browser* browser = view() ? view()->browser() : NULL;
 | 
|        return browser ? browser->OpenURL(params) : NULL;
 | 
|      }
 | 
|      default:
 | 
| @@ -515,14 +513,12 @@ void ExtensionHost::RenderViewCreated(RenderViewHost* render_view_host) {
 | 
|    if (view_.get())
 | 
|      view_->RenderViewCreated();
 | 
|  
 | 
| -  // If the host is bound to a browser, then extract its window id.
 | 
| -  // Extensions hosted in ExternalTabContainer objects may not have
 | 
| -  // an associated browser.
 | 
| -  const Browser* browser = GetBrowser();
 | 
| -  if (browser) {
 | 
| +  // If the host is bound to a window, then extract its id. Extensions hosted
 | 
| +  // in ExternalTabContainer objects may not have an associated window.
 | 
| +  ExtensionWindowController* window = GetExtensionWindowController();
 | 
| +  if (window) {
 | 
|      render_view_host->Send(new ExtensionMsg_UpdateBrowserWindowId(
 | 
| -        render_view_host->GetRoutingID(),
 | 
| -        ExtensionTabUtil::GetWindowId(browser)));
 | 
| +        render_view_host->GetRoutingID(), window->GetWindowId()));
 | 
|    }
 | 
|  }
 | 
|  
 | 
| 
 |