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

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

Issue 12084029: Simplify how TestChromeWebUIControllerFactory is registered now that multiple WebUIControllerFactor… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix MostVisitedWebUITest tests Created 7 years, 10 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
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 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 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 "content/browser/webui/web_ui_controller_factory_registry.h" 5 #include "content/browser/webui/web_ui_controller_factory_registry.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 8
9 namespace content { 9 namespace content {
10 10
11 base::LazyInstance<std::vector<WebUIControllerFactory*> > g_factories = 11 base::LazyInstance<std::vector<WebUIControllerFactory*> > g_factories =
12 LAZY_INSTANCE_INITIALIZER; 12 LAZY_INSTANCE_INITIALIZER;
13 13
14 void WebUIControllerFactory::RegisterFactory(WebUIControllerFactory* factory) { 14 void WebUIControllerFactory::RegisterFactory(WebUIControllerFactory* factory) {
15 g_factories.Pointer()->push_back(factory); 15 g_factories.Pointer()->push_back(factory);
16 } 16 }
17 17
18 WebUIControllerFactoryRegistry* WebUIControllerFactoryRegistry::GetInstance() { 18 void WebUIControllerFactory::UnregisterFactoryForTesting(
19 return Singleton<WebUIControllerFactoryRegistry>::get();
20 }
21
22 void WebUIControllerFactoryRegistry::UnregisterFactoryForTesting(
23 WebUIControllerFactory* factory) { 19 WebUIControllerFactory* factory) {
24 std::vector<WebUIControllerFactory*>* factories = g_factories.Pointer(); 20 std::vector<WebUIControllerFactory*>* factories = g_factories.Pointer();
25 for (size_t i = 0; i < factories->size(); ++i) { 21 for (size_t i = 0; i < factories->size(); ++i) {
26 if ((*factories)[i] == factory) { 22 if ((*factories)[i] == factory) {
27 factories->erase(factories->begin() + i); 23 factories->erase(factories->begin() + i);
28 return; 24 return;
29 } 25 }
30 } 26 }
31 NOTREACHED() << "Tried to unregister a factory but it wasn't found"; 27 NOTREACHED() << "Tried to unregister a factory but it wasn't found";
32 } 28 }
33 29
30 WebUIControllerFactoryRegistry* WebUIControllerFactoryRegistry::GetInstance() {
31 return Singleton<WebUIControllerFactoryRegistry>::get();
32 }
33
34 WebUIController* WebUIControllerFactoryRegistry::CreateWebUIControllerForURL( 34 WebUIController* WebUIControllerFactoryRegistry::CreateWebUIControllerForURL(
35 WebUI* web_ui, const GURL& url) const { 35 WebUI* web_ui, const GURL& url) const {
36 std::vector<WebUIControllerFactory*>* factories = g_factories.Pointer(); 36 std::vector<WebUIControllerFactory*>* factories = g_factories.Pointer();
37 for (size_t i = 0; i < factories->size(); ++i) { 37 for (size_t i = 0; i < factories->size(); ++i) {
38 WebUIController* controller = (*factories)[i]->CreateWebUIControllerForURL( 38 WebUIController* controller = (*factories)[i]->CreateWebUIControllerForURL(
39 web_ui, url); 39 web_ui, url);
40 if (controller) 40 if (controller)
41 return controller; 41 return controller;
42 } 42 }
43 return NULL; 43 return NULL;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 return false; 88 return false;
89 } 89 }
90 90
91 WebUIControllerFactoryRegistry::WebUIControllerFactoryRegistry() { 91 WebUIControllerFactoryRegistry::WebUIControllerFactoryRegistry() {
92 } 92 }
93 93
94 WebUIControllerFactoryRegistry::~WebUIControllerFactoryRegistry() { 94 WebUIControllerFactoryRegistry::~WebUIControllerFactoryRegistry() {
95 } 95 }
96 96
97 } // namespace content 97 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698