Index: content/browser/browser_url_handler_impl.cc |
diff --git a/content/browser/browser_url_handler_impl.cc b/content/browser/browser_url_handler_impl.cc |
index 7ea7ff787b9950512615abcde874d22daa6ebe6c..438feb3ac4ec7df6b51cebf8b76970cdcefce9e6 100644 |
--- a/content/browser/browser_url_handler_impl.cc |
+++ b/content/browser/browser_url_handler_impl.cc |
@@ -88,7 +88,8 @@ BrowserURLHandlerImpl* BrowserURLHandlerImpl::GetInstance() { |
return Singleton<BrowserURLHandlerImpl>::get(); |
} |
-BrowserURLHandlerImpl::BrowserURLHandlerImpl() { |
+BrowserURLHandlerImpl::BrowserURLHandlerImpl() : |
+ fixup_handler_(null_handler()) { |
AddHandlerPair(&DebugURLHandler, BrowserURLHandlerImpl::null_handler()); |
GetContentClient()->browser()->BrowserURLHandlerCreated(this); |
@@ -100,6 +101,11 @@ BrowserURLHandlerImpl::BrowserURLHandlerImpl() { |
BrowserURLHandlerImpl::~BrowserURLHandlerImpl() { |
} |
+void BrowserURLHandlerImpl::SetFixupHandler(URLHandler handler) { |
+ DCHECK_EQ(null_handler(), fixup_handler_); |
+ fixup_handler_ = handler; |
+} |
+ |
void BrowserURLHandlerImpl::AddHandlerPair(URLHandler handler, |
URLHandler reverse_handler) { |
url_handlers_.push_back(HandlerPair(handler, reverse_handler)); |
@@ -118,6 +124,13 @@ void BrowserURLHandlerImpl::RewriteURLIfNecessary( |
} |
} |
+void BrowserURLHandlerImpl::FixupURLBeforeRewrite( |
+ GURL* url, |
+ BrowserContext* browser_context) { |
+ if (fixup_handler_) |
+ fixup_handler_(url, browser_context); |
+} |
+ |
bool BrowserURLHandlerImpl::ReverseURLRewrite( |
GURL* url, const GURL& original, BrowserContext* browser_context) { |
for (size_t i = 0; i < url_handlers_.size(); ++i) { |