Index: chrome/browser/ui/webui/chrome_web_ui_factory.cc |
=================================================================== |
--- chrome/browser/ui/webui/chrome_web_ui_factory.cc (revision 117871) |
+++ chrome/browser/ui/webui/chrome_web_ui_factory.cc (working copy) |
@@ -85,53 +85,55 @@ |
#endif |
using content::WebContents; |
+using content::WebUIController; |
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). |
-typedef WebUI* (*WebUIFactoryFunction)(WebContents* web_contents, |
- const GURL& url); |
+typedef WebUIController* (*WebUIFactoryFunction)(WebUI* web_ui, |
+ const GURL& url); |
// Template for defining WebUIFactoryFunction. |
template<class T> |
-WebUI* NewWebUI(WebContents* contents, const GURL& url) { |
- return new T(contents); |
+WebUIController* NewWebUI(WebUI* web_ui, const GURL& url) { |
+ return new T(web_ui); |
} |
// Special case for extensions. |
template<> |
-WebUI* NewWebUI<ExtensionWebUI>(WebContents* contents, const GURL& url) { |
- return new ExtensionWebUI(contents, url); |
+WebUIController* NewWebUI<ExtensionWebUI>(WebUI* web_ui, const GURL& url) { |
+ return new ExtensionWebUI(web_ui, url); |
} |
// Special case for older about: handlers. |
template<> |
-WebUI* NewWebUI<AboutUI>(WebContents* contents, const GURL& url) { |
- return new AboutUI(contents, url.host()); |
+WebUIController* NewWebUI<AboutUI>(WebUI* web_ui, const GURL& url) { |
+ return new AboutUI(web_ui, url.host()); |
} |
// Only create ExtensionWebUI for URLs that are allowed extension bindings, |
// hosted by actual tabs. If tab_contents has no wrapper, it likely refers |
// to another container type, like an extension background page. If there is |
-// no tab_contents (it's not accessible when calling GetWebUIType and related |
+// no WebUI (it's not accessible when calling GetWebUIType and related |
// functions) then we conservatively assume that we need a WebUI. |
-bool NeedsExtensionWebUI(WebContents* web_contents, |
+bool NeedsExtensionWebUI(WebUI* web_ui, |
Profile* profile, |
const GURL& url) { |
ExtensionService* service = profile ? profile->GetExtensionService() : NULL; |
return service && service->ExtensionBindingsAllowed(url) && |
- (!web_contents || |
- TabContentsWrapper::GetCurrentWrapperForContents(web_contents)); |
+ (!web_ui || |
+ TabContentsWrapper::GetCurrentWrapperForContents( |
+ web_ui->GetWebContents())); |
} |
// Returns a function that can be used to create the right type of WebUI for a |
// tab, based on its URL. Returns NULL if the URL doesn't have WebUI associated |
// with it. |
-WebUIFactoryFunction GetWebUIFactoryFunction(WebContents* web_contents, |
+WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, |
Profile* profile, |
const GURL& url) { |
- if (NeedsExtensionWebUI(web_contents, profile, url)) |
+ if (NeedsExtensionWebUI(web_ui, profile, url)) |
return &NewWebUI<ExtensionWebUI>; |
// This will get called a lot to check all URLs, so do a quick check of other |
@@ -395,16 +397,17 @@ |
url == GURL(chrome::kChromeUIShorthangURL); |
} |
-WebUI* ChromeWebUIFactory::CreateWebUIForURL( |
- content::WebContents* web_contents, |
+WebUIController* ChromeWebUIFactory::CreateWebUIForURL( |
+ WebUI* web_ui, |
const GURL& url) const { |
- Profile* profile = |
- Profile::FromBrowserContext(web_contents->GetBrowserContext()); |
- WebUIFactoryFunction function = GetWebUIFactoryFunction(web_contents, |
+ Profile* profile = Profile::FromBrowserContext( |
+ web_ui->GetWebContents()->GetBrowserContext()); |
+ WebUIFactoryFunction function = GetWebUIFactoryFunction(web_ui, |
profile, url); |
if (!function) |
return NULL; |
- return (*function)(web_contents, url); |
+ |
+ return (*function)(web_ui, url); |
} |
void ChromeWebUIFactory::GetFaviconForURL( |