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 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 static Type* New() { | 255 static Type* New() { |
256 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) | 256 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) |
257 return DefaultSingletonTraits<TestType>::New(); | 257 return DefaultSingletonTraits<TestType>::New(); |
258 else | 258 else |
259 return DefaultSingletonTraits<Type>::New(); | 259 return DefaultSingletonTraits<Type>::New(); |
260 } | 260 } |
261 }; | 261 }; |
262 | 262 |
263 } // namespace | 263 } // namespace |
264 | 264 |
265 WebUI::TypeID ChromeWebUIFactory::GetWebUIType(Profile* profile, | 265 WebUI::TypeID ChromeWebUIFactory::GetWebUIType( |
266 const GURL& url) const { | 266 content::BrowserContext* browser_context, const GURL& url) const { |
| 267 Profile* profile = Profile::FromBrowserContext(browser_context); |
267 WebUIFactoryFunction function = GetWebUIFactoryFunction(profile, url); | 268 WebUIFactoryFunction function = GetWebUIFactoryFunction(profile, url); |
268 return function ? reinterpret_cast<WebUI::TypeID>(function) : WebUI::kNoWebUI; | 269 return function ? reinterpret_cast<WebUI::TypeID>(function) : WebUI::kNoWebUI; |
269 } | 270 } |
270 | 271 |
271 bool ChromeWebUIFactory::UseWebUIForURL(Profile* profile, | 272 bool ChromeWebUIFactory::UseWebUIForURL( |
272 const GURL& url) const { | 273 content::BrowserContext* browser_context, const GURL& url) const { |
273 return GetWebUIType(profile, url) != WebUI::kNoWebUI; | 274 return GetWebUIType(browser_context, url) != WebUI::kNoWebUI; |
274 } | 275 } |
275 | 276 |
276 bool ChromeWebUIFactory::HasWebUIScheme(const GURL& url) const { | 277 bool ChromeWebUIFactory::HasWebUIScheme(const GURL& url) const { |
277 return url.SchemeIs(chrome::kChromeDevToolsScheme) || | 278 return url.SchemeIs(chrome::kChromeDevToolsScheme) || |
278 url.SchemeIs(chrome::kChromeInternalScheme) || | 279 url.SchemeIs(chrome::kChromeInternalScheme) || |
279 url.SchemeIs(chrome::kChromeUIScheme) || | 280 url.SchemeIs(chrome::kChromeUIScheme) || |
280 url.SchemeIs(chrome::kExtensionScheme); | 281 url.SchemeIs(chrome::kExtensionScheme); |
281 } | 282 } |
282 | 283 |
283 bool ChromeWebUIFactory::IsURLAcceptableForWebUI( | 284 bool ChromeWebUIFactory::IsURLAcceptableForWebUI( |
284 Profile* profile, | 285 content::BrowserContext* browser_context, |
285 const GURL& url) const { | 286 const GURL& url) const { |
286 return UseWebUIForURL(profile, url) || | 287 return UseWebUIForURL(browser_context, url) || |
287 // javacsript: URLs are allowed to run in Web UI pages | 288 // javacsript: URLs are allowed to run in Web UI pages |
288 url.SchemeIs(chrome::kJavaScriptScheme) || | 289 url.SchemeIs(chrome::kJavaScriptScheme) || |
289 // It's possible to load about:blank in a Web UI renderer. | 290 // It's possible to load about:blank in a Web UI renderer. |
290 // See http://crbug.com/42547 | 291 // See http://crbug.com/42547 |
291 url.spec() == chrome::kAboutBlankURL || | 292 url.spec() == chrome::kAboutBlankURL || |
292 // Chrome URLs crash, kill, hang, and shorthang are allowed. | 293 // Chrome URLs crash, kill, hang, and shorthang are allowed. |
293 url == GURL(chrome::kChromeUICrashURL) || | 294 url == GURL(chrome::kChromeUICrashURL) || |
294 url == GURL(chrome::kChromeUIKillURL) || | 295 url == GURL(chrome::kChromeUIKillURL) || |
295 url == GURL(chrome::kChromeUIHangURL) || | 296 url == GURL(chrome::kChromeUIHangURL) || |
296 url == GURL(chrome::kChromeUIShorthangURL); | 297 url == GURL(chrome::kChromeUIShorthangURL); |
297 } | 298 } |
298 | 299 |
299 WebUI* ChromeWebUIFactory::CreateWebUIForURL( | 300 WebUI* ChromeWebUIFactory::CreateWebUIForURL( |
300 TabContents* tab_contents, | 301 TabContents* tab_contents, |
301 const GURL& url) const { | 302 const GURL& url) const { |
302 WebUIFactoryFunction function = GetWebUIFactoryFunction( | 303 Profile* profile = |
303 tab_contents->profile(), url); | 304 Profile::FromBrowserContext(tab_contents->browser_context()); |
| 305 WebUIFactoryFunction function = GetWebUIFactoryFunction(profile, url); |
304 if (!function) | 306 if (!function) |
305 return NULL; | 307 return NULL; |
306 return (*function)(tab_contents, url); | 308 return (*function)(tab_contents, url); |
307 } | 309 } |
308 | 310 |
309 void ChromeWebUIFactory::GetFaviconForURL( | 311 void ChromeWebUIFactory::GetFaviconForURL( |
310 Profile* profile, | 312 Profile* profile, |
311 FaviconService::GetFaviconRequest* request, | 313 FaviconService::GetFaviconRequest* request, |
312 const GURL& page_url) const { | 314 const GURL& page_url) const { |
313 // All extensions but the bookmark manager get their favicon from the icons | 315 // All extensions but the bookmark manager get their favicon from the icons |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
386 return FlashUI::GetFaviconResourceBytes(); | 388 return FlashUI::GetFaviconResourceBytes(); |
387 | 389 |
388 if (page_url.host() == chrome::kChromeUISettingsHost) | 390 if (page_url.host() == chrome::kChromeUISettingsHost) |
389 return OptionsUI::GetFaviconResourceBytes(); | 391 return OptionsUI::GetFaviconResourceBytes(); |
390 | 392 |
391 if (page_url.host() == chrome::kChromeUIPluginsHost) | 393 if (page_url.host() == chrome::kChromeUIPluginsHost) |
392 return PluginsUI::GetFaviconResourceBytes(); | 394 return PluginsUI::GetFaviconResourceBytes(); |
393 | 395 |
394 return NULL; | 396 return NULL; |
395 } | 397 } |
OLD | NEW |