diff options
author | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-27 23:20:12 +0000 |
---|---|---|
committer | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-27 23:20:12 +0000 |
commit | f82ff961d1f71ddf739739035d04921e5badc42c (patch) | |
tree | 99e8bcb04e49decdbe495b0ae51e36ae649f8b6a | |
parent | fb16375636b4ed6e0ef8f14963989f43298b395e (diff) | |
download | chromium_src-f82ff961d1f71ddf739739035d04921e5badc42c.zip chromium_src-f82ff961d1f71ddf739739035d04921e5badc42c.tar.gz chromium_src-f82ff961d1f71ddf739739035d04921e5badc42c.tar.bz2 |
Modifies shutdown/startup in the following manner:
. Before registering the scheme 'chrome' with GURL we make sure it
isn't already registered. I need this as I'm going to invoke
BrowserMain multiple times and didn't want the list of schemes to
have n-chromes.
. Removes ResourceBundle::CleanupSharedInstance from
browser_shutdown. We do this from BrowserMain already, so there is
no need in doing it here.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/18861
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8768 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/browser_shutdown.cc | 3 | ||||
-rw-r--r-- | chrome/browser/dom_ui/chrome_url_data_manager.cc | 15 | ||||
-rw-r--r-- | chrome/browser/dom_ui/chrome_url_data_manager.h | 3 |
3 files changed, 19 insertions, 2 deletions
diff --git a/chrome/browser/browser_shutdown.cc b/chrome/browser/browser_shutdown.cc index 6b0e29b..b671218 100644 --- a/chrome/browser/browser_shutdown.cc +++ b/chrome/browser/browser_shutdown.cc @@ -11,6 +11,7 @@ #include "base/time.h" #include "base/waitable_event.h" #include "chrome/browser/browser_process.h" +#include "chrome/browser/dom_ui/chrome_url_data_manager.h" #include "chrome/browser/first_run.h" #include "chrome/browser/jankometer.h" #include "chrome/browser/metrics/metrics_service.h" @@ -146,6 +147,8 @@ void Shutdown() { std::wstring shutdown_ms_file = GetShutdownMsPath(); file_util::WriteFile(shutdown_ms_file, shutdown_ms.c_str(), len); } + + UnregisterURLRequestChromeJob(); } void ReadLastShutdownInfo() { diff --git a/chrome/browser/dom_ui/chrome_url_data_manager.cc b/chrome/browser/dom_ui/chrome_url_data_manager.cc index a180280..a315de4 100644 --- a/chrome/browser/dom_ui/chrome_url_data_manager.cc +++ b/chrome/browser/dom_ui/chrome_url_data_manager.cc @@ -88,8 +88,13 @@ class URLRequestChromeFileJob : public URLRequestFileJob { }; void RegisterURLRequestChromeJob() { - // Being a standard scheme allows us to resolve relative paths - url_util::AddStandardScheme(kChromeURLScheme); + // Being a standard scheme allows us to resolve relative paths. This method + // is invoked multiple times during testing, so only add the scheme once. + url_parse::Component url_scheme_component(0, arraysize(kChromeURLScheme) - 1); + if (!url_util::IsStandard(kChromeURLScheme, arraysize(kChromeURLScheme) - 1, + url_scheme_component)) { + url_util::AddStandardScheme(kChromeURLScheme); + } std::wstring inspector_dir; if (PathService::Get(chrome::DIR_INSPECTOR, &inspector_dir)) @@ -104,6 +109,12 @@ void RegisterURLRequestChromeJob() { #endif } +void UnregisterURLRequestChromeJob() { + std::wstring inspector_dir; + if (PathService::Get(chrome::DIR_INSPECTOR, &inspector_dir)) + chrome_url_data_manager.RemoveFileSource("inspector"); +} + // static void ChromeURLDataManager::URLToRequest(const GURL& url, std::string* source_name, diff --git a/chrome/browser/dom_ui/chrome_url_data_manager.h b/chrome/browser/dom_ui/chrome_url_data_manager.h index 224b602..7b1ab40 100644 --- a/chrome/browser/dom_ui/chrome_url_data_manager.h +++ b/chrome/browser/dom_ui/chrome_url_data_manager.h @@ -145,5 +145,8 @@ extern ChromeURLDataManager chrome_url_data_manager; // Must be done once at startup. void RegisterURLRequestChromeJob(); +// Undoes the registration done by RegisterURLRequestChromeJob. +void UnregisterURLRequestChromeJob(); + #endif // BROWSER_DOM_UI_CHROME_URL_DATA_MANAGER_H__ |