| Index: chrome/browser/ui/webui/chrome_web_ui_factory.cc
|
| diff --git a/content/browser/webui/web_ui_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_factory.cc
|
| similarity index 89%
|
| rename from content/browser/webui/web_ui_factory.cc
|
| rename to chrome/browser/ui/webui/chrome_web_ui_factory.cc
|
| index 238b841479243c05debf6a4afac998657f6d20f2..1a32f344af5c383081a3326f706020b0f2b64440 100644
|
| --- a/content/browser/webui/web_ui_factory.cc
|
| +++ b/chrome/browser/ui/webui/chrome_web_ui_factory.cc
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "content/browser/webui/web_ui_factory.h"
|
| +#include "chrome/browser/ui/webui/chrome_web_ui_factory.h"
|
|
|
| #include "base/command_line.h"
|
| #include "chrome/browser/about_flags.h"
|
| @@ -34,6 +34,7 @@
|
| #include "chrome/common/extensions/extension_constants.h"
|
| #include "chrome/common/url_constants.h"
|
| #include "content/browser/tab_contents/tab_contents.h"
|
| +#include "content/browser/webui/web_ui.h"
|
| #include "googleurl/src/gurl.h"
|
|
|
| #if defined(OS_CHROMEOS)
|
| @@ -61,7 +62,7 @@
|
| #include "chrome/browser/ui/webui/conflicts_ui.h"
|
| #endif
|
|
|
| -const WebUITypeID WebUIFactory::kNoWebUI = NULL;
|
| +namespace {
|
|
|
| // A function for creating a new WebUI. The caller owns the return value, which
|
| // may be NULL (for example, if the URL refers to an non-existent extension).
|
| @@ -92,7 +93,7 @@ WebUI* NewWebUI<ExtensionWebUI>(TabContents* contents, const GURL& url) {
|
| // with it. Even if the factory function is valid, it may yield a NULL WebUI
|
| // when invoked for a particular tab - see NewWebUI<ExtensionWebUI>.
|
| static WebUIFactoryFunction GetWebUIFactoryFunction(Profile* profile,
|
| - const GURL& url) {
|
| + const GURL& url) {
|
| if (url.host() == chrome::kChromeUIDialogHost)
|
| return &NewWebUI<ConstrainedHtmlUI>;
|
|
|
| @@ -226,27 +227,29 @@ static WebUIFactoryFunction GetWebUIFactoryFunction(Profile* profile,
|
| return NULL;
|
| }
|
|
|
| -// static
|
| -WebUITypeID WebUIFactory::GetWebUIType(Profile* profile, const GURL& url) {
|
| +} // namespace
|
| +
|
| +WebUI::WebUITypeID ChromeWebUIFactory::GetWebUIType(Profile* profile,
|
| + const GURL& url) const {
|
| WebUIFactoryFunction function = GetWebUIFactoryFunction(profile, url);
|
| - return function ? reinterpret_cast<WebUITypeID>(function) : kNoWebUI;
|
| + return function ? reinterpret_cast<WebUI::WebUITypeID>(function) :
|
| + WebUI::kNoWebUI;
|
| }
|
|
|
| -// static
|
| -bool WebUIFactory::HasWebUIScheme(const GURL& url) {
|
| +bool ChromeWebUIFactory::UseWebUIForURL(Profile* profile,
|
| + const GURL& url) const {
|
| + return GetWebUIType(profile, url) != WebUI::kNoWebUI;
|
| +}
|
| +
|
| +bool ChromeWebUIFactory::HasWebUIScheme(const GURL& url) const {
|
| return url.SchemeIs(chrome::kChromeDevToolsScheme) ||
|
| url.SchemeIs(chrome::kChromeInternalScheme) ||
|
| url.SchemeIs(chrome::kChromeUIScheme) ||
|
| url.SchemeIs(chrome::kExtensionScheme);
|
| }
|
|
|
| -// static
|
| -bool WebUIFactory::UseWebUIForURL(Profile* profile, const GURL& url) {
|
| - return GetWebUIFactoryFunction(profile, url) != NULL;
|
| -}
|
| -
|
| -// static
|
| -bool WebUIFactory::IsURLAcceptableForWebUI(Profile* profile, const GURL& url) {
|
| +bool ChromeWebUIFactory::IsURLAcceptableForWebUI(Profile* profile,
|
| + const GURL& url) const {
|
| return UseWebUIForURL(profile, url) ||
|
| // javacsript: URLs are allowed to run in Web UI pages
|
| url.SchemeIs(chrome::kJavaScriptScheme) ||
|
| @@ -260,9 +263,8 @@ bool WebUIFactory::IsURLAcceptableForWebUI(Profile* profile, const GURL& url) {
|
| url.spec() == chrome::kAboutShorthangURL;
|
| }
|
|
|
| -// static
|
| -WebUI* WebUIFactory::CreateWebUIForURL(TabContents* tab_contents,
|
| - const GURL& url) {
|
| +WebUI* ChromeWebUIFactory::CreateWebUIForURL(TabContents* tab_contents,
|
| + const GURL& url) const {
|
| WebUIFactoryFunction function = GetWebUIFactoryFunction(
|
| tab_contents->profile(), url);
|
| if (!function)
|
| @@ -270,10 +272,9 @@ WebUI* WebUIFactory::CreateWebUIForURL(TabContents* tab_contents,
|
| return (*function)(tab_contents, url);
|
| }
|
|
|
| -// static
|
| -void WebUIFactory::GetFaviconForURL(Profile* profile,
|
| +void ChromeWebUIFactory::GetFaviconForURL(Profile* profile,
|
| FaviconService::GetFaviconRequest* request,
|
| - const GURL& page_url) {
|
| + const GURL& page_url) const {
|
| // All extensions but the bookmark manager get their favicon from the icons
|
| // part of the manifest.
|
| if (page_url.SchemeIs(chrome::kExtensionScheme) &&
|
| @@ -282,7 +283,7 @@ void WebUIFactory::GetFaviconForURL(Profile* profile,
|
| } else {
|
| history::FaviconData favicon;
|
| favicon.image_data = scoped_refptr<RefCountedMemory>(
|
| - WebUIFactory::GetFaviconResourceBytes(profile, page_url));
|
| + GetFaviconResourceBytes(profile, page_url));
|
| favicon.known_icon = favicon.image_data.get() != NULL &&
|
| favicon.image_data->size() > 0;
|
| request->ForwardResultAsync(
|
| @@ -292,8 +293,19 @@ void WebUIFactory::GetFaviconForURL(Profile* profile,
|
| }
|
|
|
| // static
|
| -RefCountedMemory* WebUIFactory::GetFaviconResourceBytes(Profile* profile,
|
| - const GURL& page_url) {
|
| +ChromeWebUIFactory* ChromeWebUIFactory::GetInstance() {
|
| + return Singleton<ChromeWebUIFactory>::get();
|
| +}
|
| +
|
| +ChromeWebUIFactory::ChromeWebUIFactory() {
|
| +}
|
| +
|
| +ChromeWebUIFactory::~ChromeWebUIFactory() {
|
| +}
|
| +
|
| +RefCountedMemory* ChromeWebUIFactory::GetFaviconResourceBytes(
|
| + Profile* profile,
|
| + const GURL& page_url) const {
|
| // The bookmark manager is a chrome extension, so we have to check for it
|
| // before we check for extension scheme.
|
| if (page_url.host() == extension_misc::kBookmarkManagerId)
|
|
|