diff options
Diffstat (limited to 'chrome/browser/extensions/extension_dom_ui.cc')
-rw-r--r-- | chrome/browser/extensions/extension_dom_ui.cc | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/chrome/browser/extensions/extension_dom_ui.cc b/chrome/browser/extensions/extension_dom_ui.cc index de2d13b..b39b15b 100644 --- a/chrome/browser/extensions/extension_dom_ui.cc +++ b/chrome/browser/extensions/extension_dom_ui.cc @@ -76,11 +76,19 @@ void ExtensionDOMUI::ProcessDOMUIMessage(const std::string& message, has_callback); } -Browser* ExtensionDOMUI::GetBrowser() const { +Browser* ExtensionDOMUI::GetBrowser(bool include_incognito) const { + Browser* browser = NULL; TabContentsDelegate* tab_contents_delegate = tab_contents()->delegate(); - if (tab_contents_delegate) - return tab_contents_delegate->GetBrowser(); - return NULL; + if (tab_contents_delegate) { + browser = tab_contents_delegate->GetBrowser(); + if (browser && browser->profile()->IsOffTheRecord() && !include_incognito) { + // Fall back to the toplevel regular browser if we don't want to include + // incognito browsers. + browser = BrowserList::GetLastActiveWithProfile( + browser->profile()->GetOriginalProfile()); + } + } + return browser; } Profile* ExtensionDOMUI::GetProfile() { |