From 594458abf9aa343f8a7d3d43a5e576188307844b Mon Sep 17 00:00:00 2001 From: "ckocagil@chromium.org" Date: Thu, 5 Dec 2013 12:40:24 +0000 Subject: Move non-navigation URL handlers to HandleNonNavigationAboutURL R=sky BUG=271324 Review URL: https://codereview.chromium.org/105203002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238957 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/browser_about_handler.cc | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'chrome/browser/browser_about_handler.cc') 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) -- cgit v1.1