OLD | NEW |
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/profiles/profile_dependency_manager.h" | 9 #include "chrome/browser/profiles/profile_dependency_manager.h" |
10 #include "chrome/browser/ui/profile_error_dialog.h" | 10 #include "chrome/browser/ui/profile_error_dialog.h" |
11 #include "chrome/browser/webdata/autocomplete_syncable_service.h" | 11 #include "chrome/browser/webdata/autocomplete_syncable_service.h" |
12 #include "chrome/browser/webdata/autofill_profile_syncable_service.h" | 12 #include "chrome/browser/webdata/autofill_profile_syncable_service.h" |
| 13 #include "chrome/browser/webdata/autofill_table.h" |
13 #include "chrome/browser/webdata/autofill_web_data_service_impl.h" | 14 #include "chrome/browser/webdata/autofill_web_data_service_impl.h" |
| 15 #include "chrome/browser/webdata/keyword_table.h" |
| 16 #include "chrome/browser/webdata/logins_table.h" |
| 17 #include "chrome/browser/webdata/token_service_table.h" |
| 18 #include "chrome/browser/webdata/web_apps_table.h" |
| 19 #include "chrome/browser/webdata/web_intents_table.h" |
14 #include "chrome/browser/webdata/webdata_constants.h" | 20 #include "chrome/browser/webdata/webdata_constants.h" |
15 #include "content/public/browser/browser_thread.h" | 21 #include "content/public/browser/browser_thread.h" |
16 #include "grit/chromium_strings.h" | 22 #include "grit/chromium_strings.h" |
17 #include "grit/generated_resources.h" | 23 #include "grit/generated_resources.h" |
18 | 24 |
19 using content::BrowserThread; | 25 using content::BrowserThread; |
20 | 26 |
21 namespace { | 27 namespace { |
22 | 28 |
23 // Callback to show error dialog on profile load error. | 29 // Callback to show error dialog on profile load error. |
(...skipping 12 matching lines...) Expand all Loading... |
36 AutofillProfileSyncableService::CreateForWebDataService(web_data); | 42 AutofillProfileSyncableService::CreateForWebDataService(web_data); |
37 } | 43 } |
38 | 44 |
39 } // namespace | 45 } // namespace |
40 | 46 |
41 WebDataServiceWrapper::WebDataServiceWrapper() {} | 47 WebDataServiceWrapper::WebDataServiceWrapper() {} |
42 | 48 |
43 WebDataServiceWrapper::WebDataServiceWrapper(Profile* profile) { | 49 WebDataServiceWrapper::WebDataServiceWrapper(Profile* profile) { |
44 base::FilePath path = profile->GetPath(); | 50 base::FilePath path = profile->GetPath(); |
45 path = path.Append(kWebDataFilename); | 51 path = path.Append(kWebDataFilename); |
46 web_data_service_ = new WebDataService(base::Bind(&ProfileErrorCallback)); | 52 web_data_service_ = |
47 web_data_service_->Init(path); | 53 new WebDataService(path, base::Bind(&ProfileErrorCallback)); |
| 54 |
| 55 // All table objects that participate in managing the database must be added |
| 56 // here. |
| 57 web_data_service_->AddTable( |
| 58 scoped_ptr<WebDatabaseTable>(new AutofillTable())); |
| 59 web_data_service_->AddTable( |
| 60 scoped_ptr<WebDatabaseTable>(new KeywordTable())); |
| 61 // TODO(mdm): We only really need the LoginsTable on Windows for IE7 password |
| 62 // access, but for now, we still create it on all platforms since it deletes |
| 63 // the old logins table. We can remove this after a while, e.g. in M22 or so. |
| 64 web_data_service_->AddTable( |
| 65 scoped_ptr<WebDatabaseTable>(new LoginsTable())); |
| 66 web_data_service_->AddTable( |
| 67 scoped_ptr<WebDatabaseTable>(new TokenServiceTable())); |
| 68 web_data_service_->AddTable( |
| 69 scoped_ptr<WebDatabaseTable>(new WebAppsTable())); |
| 70 // TODO(thakis): Add a migration to delete the SQL table used by |
| 71 // WebIntentsTable, then remove this. |
| 72 web_data_service_->AddTable( |
| 73 scoped_ptr<WebDatabaseTable>(new WebIntentsTable())); |
| 74 |
| 75 web_data_service_->Init(); |
48 | 76 |
49 BrowserThread::PostTask(BrowserThread::DB, FROM_HERE, | 77 BrowserThread::PostTask(BrowserThread::DB, FROM_HERE, |
50 base::Bind(&InitSyncableServicesOnDBThread, | 78 base::Bind(&InitSyncableServicesOnDBThread, |
51 web_data_service_)); | 79 web_data_service_)); |
52 } | 80 } |
53 | 81 |
54 WebDataServiceWrapper::~WebDataServiceWrapper() { | 82 WebDataServiceWrapper::~WebDataServiceWrapper() { |
55 } | 83 } |
56 | 84 |
57 void WebDataServiceWrapper::Shutdown() { | 85 void WebDataServiceWrapper::Shutdown() { |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 } | 169 } |
142 | 170 |
143 ProfileKeyedService* | 171 ProfileKeyedService* |
144 WebDataServiceFactory::BuildServiceInstanceFor(Profile* profile) const { | 172 WebDataServiceFactory::BuildServiceInstanceFor(Profile* profile) const { |
145 return new WebDataServiceWrapper(profile); | 173 return new WebDataServiceWrapper(profile); |
146 } | 174 } |
147 | 175 |
148 bool WebDataServiceFactory::ServiceIsNULLWhileTesting() const { | 176 bool WebDataServiceFactory::ServiceIsNULLWhileTesting() const { |
149 return true; | 177 return true; |
150 } | 178 } |
OLD | NEW |