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())); |
} |
} |