• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "content/browser/webui/content_web_ui_controller_factory.h"
6 
7 #include "content/browser/accessibility/accessibility_ui.h"
8 #include "content/browser/gpu/gpu_internals_ui.h"
9 #include "content/browser/indexed_db/indexed_db_internals_ui.h"
10 #include "content/browser/media/media_internals_ui.h"
11 #include "content/browser/service_worker/service_worker_internals_ui.h"
12 #include "content/browser/tracing/tracing_ui.h"
13 #include "content/public/browser/storage_partition.h"
14 #include "content/public/browser/web_contents.h"
15 #include "content/public/browser/web_ui.h"
16 #include "content/public/common/url_constants.h"
17 
18 #if defined(ENABLE_WEBRTC)
19 #include "content/browser/media/webrtc_internals_ui.h"
20 #endif
21 
22 namespace content {
23 
GetWebUIType(BrowserContext * browser_context,const GURL & url) const24 WebUI::TypeID ContentWebUIControllerFactory::GetWebUIType(
25       BrowserContext* browser_context, const GURL& url) const {
26   if (url.host() == kChromeUIWebRTCInternalsHost ||
27 #if !defined(OS_ANDROID)
28       url.host() == kChromeUITracingHost ||
29 #endif
30       url.host() == kChromeUIGpuHost ||
31       url.host() == kChromeUIIndexedDBInternalsHost ||
32       url.host() == kChromeUIMediaInternalsHost ||
33       url.host() == kChromeUIServiceWorkerInternalsHost ||
34       url.host() == kChromeUIAccessibilityHost) {
35     return const_cast<ContentWebUIControllerFactory*>(this);
36   }
37   return WebUI::kNoWebUI;
38 }
39 
UseWebUIForURL(BrowserContext * browser_context,const GURL & url) const40 bool ContentWebUIControllerFactory::UseWebUIForURL(
41     BrowserContext* browser_context, const GURL& url) const {
42   return GetWebUIType(browser_context, url) != WebUI::kNoWebUI;
43 }
44 
UseWebUIBindingsForURL(BrowserContext * browser_context,const GURL & url) const45 bool ContentWebUIControllerFactory::UseWebUIBindingsForURL(
46     BrowserContext* browser_context, const GURL& url) const {
47   return UseWebUIForURL(browser_context, url);
48 }
49 
CreateWebUIControllerForURL(WebUI * web_ui,const GURL & url) const50 WebUIController* ContentWebUIControllerFactory::CreateWebUIControllerForURL(
51     WebUI* web_ui, const GURL& url) const {
52   if (url.host() == kChromeUIGpuHost)
53     return new GpuInternalsUI(web_ui);
54   if (url.host() == kChromeUIIndexedDBInternalsHost)
55     return new IndexedDBInternalsUI(web_ui);
56   if (url.host() == kChromeUIMediaInternalsHost)
57     return new MediaInternalsUI(web_ui);
58   if (url.host() == kChromeUIAccessibilityHost)
59     return new AccessibilityUI(web_ui);
60   if (url.host() == kChromeUIServiceWorkerInternalsHost)
61     return new ServiceWorkerInternalsUI(web_ui);
62 #if !defined(OS_ANDROID)
63   if (url.host() == kChromeUITracingHost)
64     return new TracingUI(web_ui);
65 #endif
66 
67 #if defined(ENABLE_WEBRTC)
68   if (url.host() == kChromeUIWebRTCInternalsHost)
69     return new WebRTCInternalsUI(web_ui);
70 #endif
71 
72   return NULL;
73 }
74 
75 // static
GetInstance()76 ContentWebUIControllerFactory* ContentWebUIControllerFactory::GetInstance() {
77   return Singleton<ContentWebUIControllerFactory>::get();
78 }
79 
ContentWebUIControllerFactory()80 ContentWebUIControllerFactory::ContentWebUIControllerFactory() {
81 }
82 
~ContentWebUIControllerFactory()83 ContentWebUIControllerFactory::~ContentWebUIControllerFactory() {
84 }
85 
86 }  // namespace content
87