Chromium Code Reviews| Index: chrome/browser/dom_ui/options/options_ui.cc |
| diff --git a/chrome/browser/dom_ui/options/options_ui.cc b/chrome/browser/dom_ui/options/options_ui.cc |
| index 0ee7188ab10dad1fc7a045ba4ca9f83be8c20135..61ba7acc8572884c0525d2ec19234481ecf4c978 100644 |
| --- a/chrome/browser/dom_ui/options/options_ui.cc |
| +++ b/chrome/browser/dom_ui/options/options_ui.cc |
| @@ -240,6 +240,24 @@ RefCountedMemory* OptionsUI::GetFaviconResourceBytes() { |
| } |
| void OptionsUI::InitializeHandlers() { |
| + // Don't open a settings tab in an OTR profile. For most cases, we won't |
| + // get this far as browser::Navigate() will redirect the request to a |
| + // non-OTR profile, but there are some corner cases where a chrome://settings |
| + // load can slip through (such as dragging an anchor link to the tab strip). |
| + Profile* profile = GetProfile(); |
| + if (profile->IsOffTheRecord()) { |
| + // Re-open the tab in a normal window. |
| + Browser* normal_browser = Browser::GetOrCreateTabbedBrowser( |
| + profile->GetOriginalProfile()); |
| + normal_browser->AddSelectedTabWithURL(GURL(chrome::kChromeUISettingsURL), |
| + PageTransition::LINK); |
| + |
| + // Close this tab. |
| + Browser* otr_browser = Browser::GetOrCreateTabbedBrowser(profile); |
| + otr_browser->CloseTabContents(tab_contents()); |
| + return; |
|
Ben Goodger (Google)
2010/11/15 18:21:04
Why are you also handling this here when you did s
Evan Stade
2010/11/15 18:51:47
see CL description
Ben Goodger (Google)
2010/11/15 18:57:19
Can you make the drag and drop handling code use b
|
| + } |
| + |
| std::vector<DOMMessageHandler*>::iterator iter; |
| for (iter = handlers_.begin(); iter != handlers_.end(); ++iter) { |
| (static_cast<OptionsPageUIHandler*>(*iter))->Initialize(); |