| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/webui/chrome_web_ui_factory.h" | 5 #include "chrome/browser/ui/webui/chrome_web_ui_factory.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "chrome/browser/about_flags.h" | 8 #include "chrome/browser/about_flags.h" |
| 9 #include "chrome/browser/extensions/extension_service.h" | 9 #include "chrome/browser/extensions/extension_service.h" |
| 10 #include "chrome/browser/extensions/extension_web_ui.h" | 10 #include "chrome/browser/extensions/extension_web_ui.h" |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 if (url.host() == chrome::kChromeUIDialogHost) | 97 if (url.host() == chrome::kChromeUIDialogHost) |
| 98 return &NewWebUI<ConstrainedHtmlUI>; | 98 return &NewWebUI<ConstrainedHtmlUI>; |
| 99 | 99 |
| 100 ExtensionService* service = profile ? profile->GetExtensionService() : NULL; | 100 ExtensionService* service = profile ? profile->GetExtensionService() : NULL; |
| 101 if (service && service->ExtensionBindingsAllowed(url)) | 101 if (service && service->ExtensionBindingsAllowed(url)) |
| 102 return &NewWebUI<ExtensionWebUI>; | 102 return &NewWebUI<ExtensionWebUI>; |
| 103 | 103 |
| 104 // All platform builds of Chrome will need to have a cloud printing | 104 // All platform builds of Chrome will need to have a cloud printing |
| 105 // dialog as backup. It's just that on Chrome OS, it's the only | 105 // dialog as backup. It's just that on Chrome OS, it's the only |
| 106 // print dialog. | 106 // print dialog. |
| 107 if (url.host() == chrome::kCloudPrintResourcesHost) | 107 if (url.host() == chrome::kChromeUICloudPrintResourcesHost) |
| 108 return &NewWebUI<ExternalHtmlDialogUI>; | 108 return &NewWebUI<ExternalHtmlDialogUI>; |
| 109 | 109 |
| 110 // This will get called a lot to check all URLs, so do a quick check of other | 110 // This will get called a lot to check all URLs, so do a quick check of other |
| 111 // schemes to filter out most URLs. | 111 // schemes to filter out most URLs. |
| 112 if (!url.SchemeIs(chrome::kChromeDevToolsScheme) && | 112 if (!url.SchemeIs(chrome::kChromeDevToolsScheme) && |
| 113 !url.SchemeIs(chrome::kChromeInternalScheme) && | 113 !url.SchemeIs(chrome::kChromeInternalScheme) && |
| 114 !url.SchemeIs(chrome::kChromeUIScheme)) | 114 !url.SchemeIs(chrome::kChromeUIScheme)) |
| 115 return NULL; | 115 return NULL; |
| 116 | 116 |
| 117 if (url.host() == chrome::kChromeUISyncResourcesHost || | 117 if (url.host() == chrome::kChromeUISyncResourcesHost || |
| 118 url.host() == chrome::kCloudPrintSetupHost) | 118 url.host() == chrome::kChromeUICloudPrintSetupHost) |
| 119 return &NewWebUI<HtmlDialogUI>; | 119 return &NewWebUI<HtmlDialogUI>; |
| 120 | 120 |
| 121 // Special case the new tab page. In older versions of Chrome, the new tab | 121 // Special case the new tab page. In older versions of Chrome, the new tab |
| 122 // page was hosted at chrome-internal:<blah>. This might be in people's saved | 122 // page was hosted at chrome-internal:<blah>. This might be in people's saved |
| 123 // sessions or bookmarks, so we say any URL with that scheme triggers the new | 123 // sessions or bookmarks, so we say any URL with that scheme triggers the new |
| 124 // tab page. | 124 // tab page. |
| 125 if (url.host() == chrome::kChromeUINewTabHost || | 125 if (url.host() == chrome::kChromeUINewTabHost || |
| 126 url.SchemeIs(chrome::kChromeInternalScheme)) | 126 url.SchemeIs(chrome::kChromeInternalScheme)) |
| 127 return &NewWebUI<NewTabUI>; | 127 return &NewWebUI<NewTabUI>; |
| 128 | 128 |
| 129 // Give about:about a generic Web UI so it can navigate to pages with Web UIs. | 129 // Give about:about a generic Web UI so it can navigate to pages with Web UIs. |
| 130 if (url.spec() == chrome::kChromeUIAboutAboutURL) | 130 if (url.host() == chrome::kChromeUIAboutHost) |
| 131 return &NewWebUI<WebUI>; | 131 return &NewWebUI<WebUI>; |
| 132 | 132 |
| 133 // We must compare hosts only since some of the Web UIs append extra stuff | 133 // We must compare hosts only since some of the Web UIs append extra stuff |
| 134 // after the host name. | 134 // after the host name. |
| 135 if (url.host() == chrome::kChromeUIBookmarksHost) | 135 if (url.host() == chrome::kChromeUIBookmarksHost) |
| 136 return &NewWebUI<BookmarksUI>; | 136 return &NewWebUI<BookmarksUI>; |
| 137 if (url.host() == chrome::kChromeUIBugReportHost) | 137 if (url.host() == chrome::kChromeUIBugReportHost) |
| 138 return &NewWebUI<BugReportUI>; | 138 return &NewWebUI<BugReportUI>; |
| 139 if (url.host() == chrome::kChromeUICrashesHost) | 139 if (url.host() == chrome::kChromeUICrashesHost) |
| 140 return &NewWebUI<CrashesUI>; | 140 return &NewWebUI<CrashesUI>; |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 ChromeWebUIFactory, TestChromeWebUIFactory> >::get(); | 305 ChromeWebUIFactory, TestChromeWebUIFactory> >::get(); |
| 306 } | 306 } |
| 307 | 307 |
| 308 ChromeWebUIFactory::ChromeWebUIFactory() { | 308 ChromeWebUIFactory::ChromeWebUIFactory() { |
| 309 } | 309 } |
| 310 | 310 |
| 311 ChromeWebUIFactory::~ChromeWebUIFactory() { | 311 ChromeWebUIFactory::~ChromeWebUIFactory() { |
| 312 } | 312 } |
| 313 | 313 |
| 314 RefCountedMemory* ChromeWebUIFactory::GetFaviconResourceBytes( | 314 RefCountedMemory* ChromeWebUIFactory::GetFaviconResourceBytes( |
| 315 const GURL& page_url) const { | 315 const GURL& page_url) const { |
| 316 // The bookmark manager is a chrome extension, so we have to check for it | 316 // The bookmark manager is a chrome extension, so we have to check for it |
| 317 // before we check for extension scheme. | 317 // before we check for extension scheme. |
| 318 if (page_url.host() == extension_misc::kBookmarkManagerId) | 318 if (page_url.host() == extension_misc::kBookmarkManagerId) |
| 319 return BookmarksUI::GetFaviconResourceBytes(); | 319 return BookmarksUI::GetFaviconResourceBytes(); |
| 320 | 320 |
| 321 // The extension scheme is handled in GetFaviconForURL. | 321 // The extension scheme is handled in GetFaviconForURL. |
| 322 if (page_url.SchemeIs(chrome::kExtensionScheme)) { | 322 if (page_url.SchemeIs(chrome::kExtensionScheme)) { |
| 323 NOTREACHED(); | 323 NOTREACHED(); |
| 324 return NULL; | 324 return NULL; |
| 325 } | 325 } |
| (...skipping 25 matching lines...) Expand all Loading... |
| 351 return FlagsUI::GetFaviconResourceBytes(); | 351 return FlagsUI::GetFaviconResourceBytes(); |
| 352 | 352 |
| 353 if (page_url.host() == chrome::kChromeUISettingsHost) | 353 if (page_url.host() == chrome::kChromeUISettingsHost) |
| 354 return OptionsUI::GetFaviconResourceBytes(); | 354 return OptionsUI::GetFaviconResourceBytes(); |
| 355 | 355 |
| 356 if (page_url.host() == chrome::kChromeUIPluginsHost) | 356 if (page_url.host() == chrome::kChromeUIPluginsHost) |
| 357 return PluginsUI::GetFaviconResourceBytes(); | 357 return PluginsUI::GetFaviconResourceBytes(); |
| 358 | 358 |
| 359 return NULL; | 359 return NULL; |
| 360 } | 360 } |
| OLD | NEW |