diff options
-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__ |