Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Side by Side Diff: content/browser/webui/web_ui_controller_factory_registry.cc

Issue 11818036: Revert 175822 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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/web_ui_controller_factory_registry.h"
6
7 #include "base/lazy_instance.h"
8
9 namespace content {
10
11 base::LazyInstance<std::vector<WebUIControllerFactory*> > g_factories =
12 LAZY_INSTANCE_INITIALIZER;
13
14 void WebUIControllerFactory::RegisterFactory(WebUIControllerFactory* factory) {
15 g_factories.Pointer()->push_back(factory);
16 }
17
18 WebUIControllerFactoryRegistry* WebUIControllerFactoryRegistry::GetInstance() {
19 return Singleton<WebUIControllerFactoryRegistry>::get();
20 }
21
22 void WebUIControllerFactoryRegistry::UnregisterFactoryForTesting(
23 WebUIControllerFactory* factory) {
24 std::vector<WebUIControllerFactory*>* factories = g_factories.Pointer();
25 for (size_t i = 0; i < factories->size(); ++i) {
26 if ((*factories)[i] == factory) {
27 factories->erase(factories->begin() + i);
28 return;
29 }
30 }
31 NOTREACHED() << "Tried to unregister a factory but it wasn't found";
32 }
33
34 WebUIController* WebUIControllerFactoryRegistry::CreateWebUIControllerForURL(
35 WebUI* web_ui, const GURL& url) const {
36 std::vector<WebUIControllerFactory*>* factories = g_factories.Pointer();
37 for (size_t i = 0; i < factories->size(); ++i) {
38 WebUIController* controller = (*factories)[i]->CreateWebUIControllerForURL(
39 web_ui, url);
40 if (controller)
41 return controller;
42 }
43 return NULL;
44 }
45
46 WebUI::TypeID WebUIControllerFactoryRegistry::GetWebUIType(
47 BrowserContext* browser_context, const GURL& url) const {
48 std::vector<WebUIControllerFactory*>* factories = g_factories.Pointer();
49 for (size_t i = 0; i < factories->size(); ++i) {
50 WebUI::TypeID type = (*factories)[i]->GetWebUIType(browser_context, url);
51 if (type != WebUI::kNoWebUI)
52 return type;
53 }
54 return WebUI::kNoWebUI;
55 }
56
57 bool WebUIControllerFactoryRegistry::UseWebUIForURL(
58 BrowserContext* browser_context, const GURL& url) const {
59 std::vector<WebUIControllerFactory*>* factories = g_factories.Pointer();
60 for (size_t i = 0; i < factories->size(); ++i) {
61 if ((*factories)[i]->UseWebUIForURL(browser_context, url))
62 return true;
63 }
64 return false;
65 }
66
67 bool WebUIControllerFactoryRegistry::UseWebUIBindingsForURL(
68 BrowserContext* browser_context, const GURL& url) const {
69 std::vector<WebUIControllerFactory*>* factories = g_factories.Pointer();
70 for (size_t i = 0; i < factories->size(); ++i) {
71 if ((*factories)[i]->UseWebUIBindingsForURL(browser_context, url))
72 return true;
73 }
74 return false;
75 }
76
77 bool WebUIControllerFactoryRegistry::IsURLAcceptableForWebUI(
78 BrowserContext* browser_context,
79 const GURL& url,
80 bool data_urls_allowed) const {
81 std::vector<WebUIControllerFactory*>* factories = g_factories.Pointer();
82 for (size_t i = 0; i < factories->size(); ++i) {
83 if ((*factories)[i]->IsURLAcceptableForWebUI(
84 browser_context, url, data_urls_allowed)) {
85 return true;
86 }
87 }
88 return false;
89 }
90
91 WebUIControllerFactoryRegistry::WebUIControllerFactoryRegistry() {
92 }
93
94 WebUIControllerFactoryRegistry::~WebUIControllerFactoryRegistry() {
95 }
96
97 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/webui/web_ui_controller_factory_registry.h ('k') | content/browser/webui/web_ui_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698