| Index: chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
|
| ===================================================================
|
| --- chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc (revision 133434)
|
| +++ chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc (working copy)
|
| @@ -425,15 +425,21 @@
|
| Profile* profile,
|
| FaviconService::GetFaviconRequest* request,
|
| const GURL& page_url) const {
|
| + // Before determining whether page_url is an extension url, we must handle
|
| + // overrides. This changes urls in |kChromeUIScheme| to extension urls, and
|
| + // allows to use ExtensionWebUI::GetFaviconForURL.
|
| + GURL url(page_url);
|
| + ExtensionWebUI::HandleChromeURLOverride(&url, profile);
|
| +
|
| // All extensions but the bookmark manager get their favicon from the icons
|
| // part of the manifest.
|
| - if (page_url.SchemeIs(chrome::kExtensionScheme) &&
|
| - page_url.host() != extension_misc::kBookmarkManagerId) {
|
| - ExtensionWebUI::GetFaviconForURL(profile, request, page_url);
|
| + if (url.SchemeIs(chrome::kExtensionScheme) &&
|
| + url.host() != extension_misc::kBookmarkManagerId) {
|
| + ExtensionWebUI::GetFaviconForURL(profile, request, url);
|
| } else {
|
| history::FaviconData favicon;
|
| favicon.image_data = scoped_refptr<RefCountedMemory>(
|
| - GetFaviconResourceBytes(page_url));
|
| + GetFaviconResourceBytes(url));
|
| favicon.known_icon = favicon.image_data.get() != NULL &&
|
| favicon.image_data->size() > 0;
|
| favicon.icon_type = history::FAVICON;
|
|
|