| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "chrome/browser/browser_about_handler.h" | 5 #include "chrome/browser/browser_about_handler.h" | 
| 6 | 6 | 
| 7 #include <string> | 7 #include <string> | 
| 8 | 8 | 
| 9 #include "base/bind.h" | 9 #include "base/bind.h" | 
| 10 #include "base/location.h" | 10 #include "base/location.h" | 
| 11 #include "base/logging.h" | 11 #include "base/logging.h" | 
| 12 #include "base/single_thread_task_runner.h" | 12 #include "base/single_thread_task_runner.h" | 
| 13 #include "base/strings/string_util.h" | 13 #include "base/strings/string_util.h" | 
| 14 #include "base/thread_task_runner_handle.h" | 14 #include "base/thread_task_runner_handle.h" | 
| 15 #include "chrome/browser/lifetime/application_lifetime.h" | 15 #include "chrome/browser/lifetime/application_lifetime.h" | 
| 16 #include "chrome/browser/ui/browser_dialogs.h" | 16 #include "chrome/browser/ui/browser_dialogs.h" | 
| 17 #include "chrome/common/chrome_switches.h" | 17 #include "chrome/common/chrome_switches.h" | 
| 18 #include "chrome/common/url_constants.h" | 18 #include "chrome/common/url_constants.h" | 
| 19 #include "components/url_fixer/url_fixer.h" | 19 #include "components/url_formatter/url_fixer.h" | 
| 20 | 20 | 
| 21 bool FixupBrowserAboutURL(GURL* url, | 21 bool FixupBrowserAboutURL(GURL* url, | 
| 22                           content::BrowserContext* browser_context) { | 22                           content::BrowserContext* browser_context) { | 
| 23   // Ensure that any cleanup done by FixupURL happens before the rewriting | 23   // Ensure that any cleanup done by FixupURL happens before the rewriting | 
| 24   // phase that determines the virtual URL, by including it in an initial | 24   // phase that determines the virtual URL, by including it in an initial | 
| 25   // URLHandler.  This prevents minor changes from producing a virtual URL, | 25   // URLHandler.  This prevents minor changes from producing a virtual URL, | 
| 26   // which could lead to a URL spoof. | 26   // which could lead to a URL spoof. | 
| 27   *url = url_fixer::FixupURL(url->possibly_invalid_spec(), std::string()); | 27   *url = url_formatter::FixupURL(url->possibly_invalid_spec(), std::string()); | 
| 28   return true; | 28   return true; | 
| 29 } | 29 } | 
| 30 | 30 | 
| 31 bool WillHandleBrowserAboutURL(GURL* url, | 31 bool WillHandleBrowserAboutURL(GURL* url, | 
| 32                                content::BrowserContext* browser_context) { | 32                                content::BrowserContext* browser_context) { | 
| 33   // TODO(msw): Eliminate "about:*" constants and literals from code and tests, | 33   // TODO(msw): Eliminate "about:*" constants and literals from code and tests, | 
| 34   //            then hopefully we can remove this forced fixup. | 34   //            then hopefully we can remove this forced fixup. | 
| 35   FixupBrowserAboutURL(url, browser_context); | 35   FixupBrowserAboutURL(url, browser_context); | 
| 36 | 36 | 
| 37   // Check that about: URLs are fixed up to chrome: by url_fixer::FixupURL. | 37   // Check that about: URLs are fixed up to chrome: by url_formatter::FixupURL. | 
| 38   DCHECK((*url == GURL(url::kAboutBlankURL)) || | 38   DCHECK((*url == GURL(url::kAboutBlankURL)) || | 
| 39          !url->SchemeIs(url::kAboutScheme)); | 39          !url->SchemeIs(url::kAboutScheme)); | 
| 40 | 40 | 
| 41   // Only handle chrome://foo/, url_fixer::FixupURL translates about:foo. | 41   // Only handle chrome://foo/, url_formatter::FixupURL translates about:foo. | 
| 42   if (!url->SchemeIs(content::kChromeUIScheme)) | 42   if (!url->SchemeIs(content::kChromeUIScheme)) | 
| 43     return false; | 43     return false; | 
| 44 | 44 | 
| 45   std::string host(url->host()); | 45   std::string host(url->host()); | 
| 46   std::string path; | 46   std::string path; | 
| 47   // Replace about with chrome-urls. | 47   // Replace about with chrome-urls. | 
| 48   if (host == chrome::kChromeUIAboutHost) | 48   if (host == chrome::kChromeUIAboutHost) | 
| 49     host = chrome::kChromeUIChromeURLsHost; | 49     host = chrome::kChromeUIChromeURLsHost; | 
| 50   // Replace cache with view-http-cache. | 50   // Replace cache with view-http-cache. | 
| 51   if (host == chrome::kChromeUICacheHost) { | 51   if (host == chrome::kChromeUICacheHost) { | 
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 112         FROM_HERE, base::Bind(&chrome::AttemptRestart)); | 112         FROM_HERE, base::Bind(&chrome::AttemptRestart)); | 
| 113     return true; | 113     return true; | 
| 114   } else if (base::LowerCaseEqualsASCII(spec, chrome::kChromeUIQuitURL)) { | 114   } else if (base::LowerCaseEqualsASCII(spec, chrome::kChromeUIQuitURL)) { | 
| 115     base::ThreadTaskRunnerHandle::Get()->PostTask( | 115     base::ThreadTaskRunnerHandle::Get()->PostTask( | 
| 116         FROM_HERE, base::Bind(&chrome::AttemptExit)); | 116         FROM_HERE, base::Bind(&chrome::AttemptExit)); | 
| 117     return true; | 117     return true; | 
| 118   } | 118   } | 
| 119 | 119 | 
| 120   return false; | 120   return false; | 
| 121 } | 121 } | 
| OLD | NEW | 
|---|