summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser_about_handler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/browser_about_handler.cc')
-rw-r--r--chrome/browser/browser_about_handler.cc22
1 files changed, 14 insertions, 8 deletions
diff --git a/chrome/browser/browser_about_handler.cc b/chrome/browser/browser_about_handler.cc
index 1197f04..28d1f18 100644
--- a/chrome/browser/browser_about_handler.cc
+++ b/chrome/browser/browser_about_handler.cc
@@ -65,14 +65,6 @@ bool WillHandleBrowserAboutURL(GURL* url,
} else if (host == chrome::kChromeUIHelpHost) {
host = chrome::kChromeUIUberHost;
path = chrome::kChromeUIHelpHost + url->path();
- } else if (host == chrome::kChromeUIRestartHost) {
- // Call AttemptRestart after chrome::Navigate() completes to avoid access of
- // gtk objects after they are destoyed by BrowserWindowGtk::Close().
- base::MessageLoop::current()->PostTask(FROM_HERE,
- base::Bind(&chrome::AttemptRestart));
- } else if (host == chrome::kChromeUIQuitHost) {
- base::MessageLoop::current()->PostTask(FROM_HERE,
- base::Bind(&chrome::AttemptExit));
}
GURL::Replacements replacements;
@@ -86,6 +78,20 @@ bool WillHandleBrowserAboutURL(GURL* url,
}
bool HandleNonNavigationAboutURL(const GURL& url) {
+ const std::string host(url.host());
+
+ if (host == chrome::kChromeUIRestartHost) {
+ // Call AttemptRestart after chrome::Navigate() completes to avoid access of
+ // gtk objects after they are destroyed by BrowserWindowGtk::Close().
+ base::MessageLoop::current()->PostTask(FROM_HERE,
+ base::Bind(&chrome::AttemptRestart));
+ return true;
+ } else if (host == chrome::kChromeUIQuitHost) {
+ base::MessageLoop::current()->PostTask(FROM_HERE,
+ base::Bind(&chrome::AttemptExit));
+ return true;
+ }
+
// chrome://ipc/ is currently buggy, so we disable it for official builds.
#if !defined(OFFICIAL_BUILD)