summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/browser_shutdown.cc3
-rw-r--r--chrome/browser/dom_ui/chrome_url_data_manager.cc15
-rw-r--r--chrome/browser/dom_ui/chrome_url_data_manager.h3
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__