web_ui_controller_factory.cc 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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-CHROMIUM file.
  4. #include "brightray/browser/web_ui_controller_factory.h"
  5. #include "base/memory/singleton.h"
  6. #include "brightray/browser/devtools_ui.h"
  7. #include "content/public/browser/web_contents.h"
  8. #include "content/public/browser/web_ui.h"
  9. #include "content/public/common/url_constants.h"
  10. namespace brightray {
  11. namespace {
  12. const char kChromeUIDevToolsBundledHost[] = "devtools";
  13. } // namespace
  14. // static
  15. WebUIControllerFactory* WebUIControllerFactory::GetInstance() {
  16. return base::Singleton<WebUIControllerFactory>::get();
  17. }
  18. WebUIControllerFactory::WebUIControllerFactory() {}
  19. WebUIControllerFactory::~WebUIControllerFactory() {}
  20. content::WebUI::TypeID WebUIControllerFactory::GetWebUIType(
  21. content::BrowserContext* browser_context,
  22. const GURL& url) const {
  23. if (url.host() == kChromeUIDevToolsBundledHost) {
  24. return const_cast<WebUIControllerFactory*>(this);
  25. }
  26. return content::WebUI::kNoWebUI;
  27. }
  28. bool WebUIControllerFactory::UseWebUIForURL(
  29. content::BrowserContext* browser_context,
  30. const GURL& url) const {
  31. return GetWebUIType(browser_context, url) != content::WebUI::kNoWebUI;
  32. }
  33. bool WebUIControllerFactory::UseWebUIBindingsForURL(
  34. content::BrowserContext* browser_context,
  35. const GURL& url) const {
  36. return UseWebUIForURL(browser_context, url);
  37. }
  38. content::WebUIController* WebUIControllerFactory::CreateWebUIControllerForURL(
  39. content::WebUI* web_ui,
  40. const GURL& url) const {
  41. if (url.host() == kChromeUIDevToolsBundledHost) {
  42. auto* browser_context = web_ui->GetWebContents()->GetBrowserContext();
  43. return new DevToolsUI(browser_context, web_ui);
  44. }
  45. return nullptr;
  46. }
  47. } // namespace brightray