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

Side by Side Diff: chrome/browser/webdata/web_data_service_factory.cc

Issue 25870002: Abstract BrowserThread knowledge out of AutofillWebDataService. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix up test constructor Created 7 years, 2 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/webdata/web_data_service_factory.h" 5 #include "chrome/browser/webdata/web_data_service_factory.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/profiles/incognito_helpers.h" 10 #include "chrome/browser/profiles/incognito_helpers.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 } 62 }
63 63
64 } // namespace 64 } // namespace
65 65
66 WebDataServiceWrapper::WebDataServiceWrapper() {} 66 WebDataServiceWrapper::WebDataServiceWrapper() {}
67 67
68 WebDataServiceWrapper::WebDataServiceWrapper(Profile* profile) { 68 WebDataServiceWrapper::WebDataServiceWrapper(Profile* profile) {
69 base::FilePath profile_path = profile->GetPath(); 69 base::FilePath profile_path = profile->GetPath();
70 base::FilePath path = profile_path.Append(kWebDataFilename); 70 base::FilePath path = profile_path.Append(kWebDataFilename);
71 71
72 web_database_ = new WebDatabaseService(path, 72 scoped_refptr<base::MessageLoopProxy> ui_thread =
73 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), 73 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI);
74 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB)); 74 scoped_refptr<base::MessageLoopProxy> db_thread =
75 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB);
76 web_database_ = new WebDatabaseService(path, ui_thread, db_thread);
75 77
76 // All tables objects that participate in managing the database must 78 // All tables objects that participate in managing the database must
77 // be added here. 79 // be added here.
78 web_database_->AddTable( 80 web_database_->AddTable(
79 scoped_ptr<WebDatabaseTable>(new autofill::AutofillTable( 81 scoped_ptr<WebDatabaseTable>(new autofill::AutofillTable(
80 g_browser_process->GetApplicationLocale()))); 82 g_browser_process->GetApplicationLocale())));
81 web_database_->AddTable( 83 web_database_->AddTable(
82 scoped_ptr<WebDatabaseTable>(new KeywordTable())); 84 scoped_ptr<WebDatabaseTable>(new KeywordTable()));
83 // TODO(mdm): We only really need the LoginsTable on Windows for IE7 password 85 // TODO(mdm): We only really need the LoginsTable on Windows for IE7 password
84 // access, but for now, we still create it on all platforms since it deletes 86 // access, but for now, we still create it on all platforms since it deletes
85 // the old logins table. We can remove this after a while, e.g. in M22 or so. 87 // the old logins table. We can remove this after a while, e.g. in M22 or so.
86 web_database_->AddTable( 88 web_database_->AddTable(
87 scoped_ptr<WebDatabaseTable>(new LoginsTable())); 89 scoped_ptr<WebDatabaseTable>(new LoginsTable()));
88 web_database_->AddTable( 90 web_database_->AddTable(
89 scoped_ptr<WebDatabaseTable>(new TokenServiceTable())); 91 scoped_ptr<WebDatabaseTable>(new TokenServiceTable()));
90 web_database_->AddTable( 92 web_database_->AddTable(
91 scoped_ptr<WebDatabaseTable>(new WebAppsTable())); 93 scoped_ptr<WebDatabaseTable>(new WebAppsTable()));
92 // TODO(thakis): Add a migration to delete the SQL table used by 94 // TODO(thakis): Add a migration to delete the SQL table used by
93 // WebIntentsTable, then remove this. 95 // WebIntentsTable, then remove this.
94 web_database_->AddTable( 96 web_database_->AddTable(
95 scoped_ptr<WebDatabaseTable>(new WebIntentsTable())); 97 scoped_ptr<WebDatabaseTable>(new WebIntentsTable()));
96 98
97 web_database_->LoadDatabase(); 99 web_database_->LoadDatabase();
98 100
99 autofill_web_data_ = new AutofillWebDataService( 101 autofill_web_data_ = new AutofillWebDataService(
100 web_database_, base::Bind(&ProfileErrorCallback)); 102 web_database_, ui_thread, db_thread, base::Bind(&ProfileErrorCallback));
101 autofill_web_data_->Init(); 103 autofill_web_data_->Init();
102 104
103 token_web_data_ = new TokenWebData( 105 token_web_data_ = new TokenWebData(
104 web_database_, base::Bind(&ProfileErrorCallback)); 106 web_database_, base::Bind(&ProfileErrorCallback));
105 token_web_data_->Init(); 107 token_web_data_->Init();
106 108
107 web_data_ = new WebDataService( 109 web_data_ = new WebDataService(
108 web_database_, base::Bind(&ProfileErrorCallback)); 110 web_database_, base::Bind(&ProfileErrorCallback));
109 web_data_->Init(); 111 web_data_->Init();
110 112
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 } 227 }
226 228
227 BrowserContextKeyedService* WebDataServiceFactory::BuildServiceInstanceFor( 229 BrowserContextKeyedService* WebDataServiceFactory::BuildServiceInstanceFor(
228 content::BrowserContext* profile) const { 230 content::BrowserContext* profile) const {
229 return new WebDataServiceWrapper(static_cast<Profile*>(profile)); 231 return new WebDataServiceWrapper(static_cast<Profile*>(profile));
230 } 232 }
231 233
232 bool WebDataServiceFactory::ServiceIsNULLWhileTesting() const { 234 bool WebDataServiceFactory::ServiceIsNULLWhileTesting() const {
233 return true; 235 return true;
234 } 236 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698