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

Unified Diff: chrome/browser/webdata/web_data_service.cc

Issue 12957002: wd4-ui for try only (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: wd4-ui_with_windows_fix Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/webdata/web_data_service.h ('k') | chrome/browser/webdata/web_data_service_base.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/webdata/web_data_service.cc
diff --git a/chrome/browser/webdata/web_data_service.cc b/chrome/browser/webdata/web_data_service.cc
index edf882768248bb8724985558d5f3d5fe39f33394..9557ef869d875f7c318002d45e6168e7628fed22 100644
--- a/chrome/browser/webdata/web_data_service.cc
+++ b/chrome/browser/webdata/web_data_service.cc
@@ -4,15 +4,7 @@
#include "chrome/browser/webdata/web_data_service.h"
-#include "base/bind.h"
-#include "base/command_line.h"
-#include "base/message_loop.h"
-#include "base/stl_util.h"
-#include "base/threading/thread.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/search_engines/template_url.h"
-#include "chrome/browser/ui/profile_error_dialog.h"
#include "chrome/browser/webdata/autocomplete_syncable_service.h"
#include "chrome/browser/webdata/autofill_change.h"
#include "chrome/browser/webdata/autofill_entry.h"
@@ -24,20 +16,14 @@
#include "chrome/browser/webdata/web_apps_table.h"
#include "chrome/browser/webdata/web_database_service.h"
#include "chrome/browser/webdata/web_intents_table.h"
-#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_notification_types.h"
#include "components/autofill/browser/autofill_country.h"
#include "components/autofill/browser/autofill_profile.h"
#include "components/autofill/browser/credit_card.h"
#include "components/autofill/common/form_field_data.h"
-#ifdef DEBUG
-#include "content/public/browser/browser_thread.h"
-#endif
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_source.h"
-#include "grit/chromium_strings.h"
-#include "grit/generated_resources.h"
#include "third_party/skia/include/core/SkBitmap.h"
////////////////////////////////////////////////////////////////////////////////
@@ -77,14 +63,10 @@ WDKeywordsResult::WDKeywordsResult()
WDKeywordsResult::~WDKeywordsResult() {}
-WebDataService::WebDataService()
- : db_loaded_(false),
+WebDataService::WebDataService(const ProfileErrorCallback& callback)
+ : WebDataServiceBase(callback),
autocomplete_syncable_service_(NULL),
autofill_profile_syncable_service_(NULL) {
- // WebDataService requires DB thread if instantiated.
- // Set WebDataServiceFactory::GetInstance()->SetTestingFactory(&profile, NULL)
- // if you do not want to instantiate WebDataService in your test.
- DCHECK(BrowserThread::IsWellKnownThread(BrowserThread::DB));
}
// static
@@ -102,52 +84,17 @@ void WebDataService::NotifyOfMultipleAutofillChanges(
}
void WebDataService::ShutdownOnUIThread() {
- db_loaded_ = false;
- ShutdownDatabase();
BrowserThread::PostTask(BrowserThread::DB, FROM_HERE,
Bind(&WebDataService::ShutdownSyncableServices, this));
+ WebDataServiceBase::ShutdownOnUIThread();
}
void WebDataService::Init(const base::FilePath& path) {
- wdbs_.reset(new WebDatabaseService(path));
- wdbs_->LoadDatabase(Bind(&WebDataService::DatabaseInitOnDB, this));
-
+ WebDataServiceBase::Init(path);
BrowserThread::PostTask(BrowserThread::DB, FROM_HERE,
Bind(&WebDataService::InitializeSyncableServices, this));
}
-void WebDataService::UnloadDatabase() {
- if (!wdbs_)
- return;
- wdbs_->UnloadDatabase();
-}
-
-void WebDataService::ShutdownDatabase() {
- if (!wdbs_)
- return;
- wdbs_->ShutdownDatabase();
-}
-
-void WebDataService::CancelRequest(Handle h) {
- if (!wdbs_)
- return;
- wdbs_->CancelRequest(h);
-}
-
-content::NotificationSource WebDataService::GetNotificationSource() {
- return content::Source<WebDataService>(this);
-}
-
-bool WebDataService::IsDatabaseLoaded() {
- return db_loaded_;
-}
-
-WebDatabase* WebDataService::GetDatabase() {
- if (!wdbs_)
- return NULL;
- return wdbs_->GetDatabaseOnDB();
-}
-
//////////////////////////////////////////////////////////////////////////////
//
// Keywords.
@@ -329,8 +276,13 @@ void WebDataService::RemoveAutofillProfilesAndCreditCardsModifiedBetween(
this, delete_begin, delete_end));
}
+WebDataService::WebDataService()
+ : WebDataServiceBase(ProfileErrorCallback()),
+ autocomplete_syncable_service_(NULL),
+ autofill_profile_syncable_service_(NULL) {
+}
+
WebDataService::~WebDataService() {
- wdbs_.reset();
DCHECK(!autocomplete_syncable_service_);
DCHECK(!autofill_profile_syncable_service_);
}
@@ -341,34 +293,6 @@ WebDataService::~WebDataService() {
//
////////////////////////////////////////////////////////////////////////////////
-void WebDataService::DBInitFailed(sql::InitStatus sql_status) {
- ShowProfileErrorDialog(
- (sql_status == sql::INIT_FAILURE) ?
- IDS_COULDNT_OPEN_PROFILE_ERROR : IDS_PROFILE_TOO_NEW_ERROR);
-}
-
-void WebDataService::NotifyDatabaseLoadedOnUIThread() {
- db_loaded_ = true;
- // Notify that the database has been initialized.
- content::NotificationService::current()->Notify(
- chrome::NOTIFICATION_WEB_DATABASE_LOADED,
- content::Source<WebDataService>(this),
- content::NotificationService::NoDetails());
-}
-
-void WebDataService::DatabaseInitOnDB(sql::InitStatus status) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
- if (status == sql::INIT_OK) {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&WebDataService::NotifyDatabaseLoadedOnUIThread, this));
- } else {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&WebDataService::DBInitFailed, this, status));
- }
-}
-
void WebDataService::InitializeSyncableServices() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
DCHECK(!autocomplete_syncable_service_);
@@ -395,20 +319,20 @@ void WebDataService::ShutdownSyncableServices() {
WebDatabase::State WebDataService::AddKeywordImpl(
const TemplateURLData& data, WebDatabase* db) {
- db->GetKeywordTable()->AddKeyword(data);
+ KeywordTable::FromWebDatabase(db)->AddKeyword(data);
return WebDatabase::COMMIT_NEEDED;
}
WebDatabase::State WebDataService::RemoveKeywordImpl(
TemplateURLID id, WebDatabase* db) {
DCHECK(id);
- db->GetKeywordTable()->RemoveKeyword(id);
+ KeywordTable::FromWebDatabase(db)->RemoveKeyword(id);
return WebDatabase::COMMIT_NEEDED;
}
WebDatabase::State WebDataService::UpdateKeywordImpl(
const TemplateURLData& data, WebDatabase* db) {
- if (!db->GetKeywordTable()->UpdateKeyword(data)) {
+ if (!KeywordTable::FromWebDatabase(db)->UpdateKeyword(data)) {
NOTREACHED();
return WebDatabase::COMMIT_NOT_NEEDED;
}
@@ -417,18 +341,18 @@ WebDatabase::State WebDataService::UpdateKeywordImpl(
scoped_ptr<WDTypedResult> WebDataService::GetKeywordsImpl(WebDatabase* db) {
WDKeywordsResult result;
- db->GetKeywordTable()->GetKeywords(&result.keywords);
+ KeywordTable::FromWebDatabase(db)->GetKeywords(&result.keywords);
result.default_search_provider_id =
- db->GetKeywordTable()->GetDefaultSearchProviderID();
+ KeywordTable::FromWebDatabase(db)->GetDefaultSearchProviderID();
result.builtin_keyword_version =
- db->GetKeywordTable()->GetBuiltinKeywordVersion();
+ KeywordTable::FromWebDatabase(db)->GetBuiltinKeywordVersion();
return scoped_ptr<WDTypedResult>(
new WDResult<WDKeywordsResult>(KEYWORDS_RESULT, result));
}
WebDatabase::State WebDataService::SetDefaultSearchProviderImpl(
TemplateURLID id, WebDatabase* db) {
- if (!db->GetKeywordTable()->SetDefaultSearchProviderID(id)) {
+ if (!KeywordTable::FromWebDatabase(db)->SetDefaultSearchProviderID(id)) {
NOTREACHED();
return WebDatabase::COMMIT_NOT_NEEDED;
}
@@ -437,7 +361,7 @@ WebDatabase::State WebDataService::SetDefaultSearchProviderImpl(
WebDatabase::State WebDataService::SetBuiltinKeywordVersionImpl(
int version, WebDatabase* db) {
- if (!db->GetKeywordTable()->SetBuiltinKeywordVersion(version)) {
+ if (!KeywordTable::FromWebDatabase(db)->SetBuiltinKeywordVersion(version)) {
NOTREACHED();
return WebDatabase::COMMIT_NOT_NEEDED;
}
@@ -452,28 +376,29 @@ WebDatabase::State WebDataService::SetBuiltinKeywordVersionImpl(
WebDatabase::State WebDataService::SetWebAppImageImpl(
const GURL& app_url, const SkBitmap& image, WebDatabase* db) {
- db->GetWebAppsTable()->SetWebAppImage(app_url, image);
+ WebAppsTable::FromWebDatabase(db)->SetWebAppImage(app_url, image);
return WebDatabase::COMMIT_NEEDED;
}
WebDatabase::State WebDataService::SetWebAppHasAllImagesImpl(
const GURL& app_url, bool has_all_images, WebDatabase* db) {
- db->GetWebAppsTable()->
- SetWebAppHasAllImages(app_url, has_all_images);
+ WebAppsTable::FromWebDatabase(db)->SetWebAppHasAllImages(app_url,
+ has_all_images);
return WebDatabase::COMMIT_NEEDED;
}
WebDatabase::State WebDataService::RemoveWebAppImpl(
const GURL& app_url, WebDatabase* db) {
- db->GetWebAppsTable()->RemoveWebApp(app_url);
+ WebAppsTable::FromWebDatabase(db)->RemoveWebApp(app_url);
return WebDatabase::COMMIT_NEEDED;
}
scoped_ptr<WDTypedResult> WebDataService::GetWebAppImagesImpl(
const GURL& app_url, WebDatabase* db) {
WDAppImagesResult result;
- result.has_all_images = db->GetWebAppsTable()->GetWebAppHasAllImages(app_url);
- db->GetWebAppsTable()->GetWebAppImages(app_url, &result.images);
+ result.has_all_images =
+ WebAppsTable::FromWebDatabase(db)->GetWebAppHasAllImages(app_url);
+ WebAppsTable::FromWebDatabase(db)->GetWebAppImages(app_url, &result.images);
return scoped_ptr<WDTypedResult>(
new WDResult<WDAppImagesResult>(WEB_APP_IMAGES, result));
}
@@ -485,7 +410,7 @@ scoped_ptr<WDTypedResult> WebDataService::GetWebAppImagesImpl(
////////////////////////////////////////////////////////////////////////////////
WebDatabase::State WebDataService::RemoveAllTokensImpl(WebDatabase* db) {
- if (db->GetTokenServiceTable()->RemoveAllTokens()) {
+ if (TokenServiceTable::FromWebDatabase(db)->RemoveAllTokens()) {
return WebDatabase::COMMIT_NEEDED;
}
return WebDatabase::COMMIT_NOT_NEEDED;
@@ -493,7 +418,8 @@ WebDatabase::State WebDataService::RemoveAllTokensImpl(WebDatabase* db) {
WebDatabase::State WebDataService::SetTokenForServiceImpl(
const std::string& service, const std::string& token, WebDatabase* db) {
- if (db->GetTokenServiceTable()->SetTokenForService(service, token)) {
+ if (TokenServiceTable::FromWebDatabase(db)->SetTokenForService(service,
+ token)) {
return WebDatabase::COMMIT_NEEDED;
}
return WebDatabase::COMMIT_NOT_NEEDED;
@@ -501,7 +427,7 @@ WebDatabase::State WebDataService::SetTokenForServiceImpl(
scoped_ptr<WDTypedResult> WebDataService::GetAllTokensImpl(WebDatabase* db) {
std::map<std::string, std::string> map;
- db->GetTokenServiceTable()->GetAllTokens(&map);
+ TokenServiceTable::FromWebDatabase(db)->GetAllTokens(&map);
return scoped_ptr<WDTypedResult>(
new WDResult<std::map<std::string, std::string> >(TOKEN_RESULT, map));
}
@@ -515,7 +441,8 @@ scoped_ptr<WDTypedResult> WebDataService::GetAllTokensImpl(WebDatabase* db) {
WebDatabase::State WebDataService::AddFormElementsImpl(
const std::vector<FormFieldData>& fields, WebDatabase* db) {
AutofillChangeList changes;
- if (!db->GetAutofillTable()->AddFormFieldValues(fields, &changes)) {
+ if (!AutofillTable::FromWebDatabase(db)->AddFormFieldValues(
+ fields, &changes)) {
NOTREACHED();
return WebDatabase::COMMIT_NOT_NEEDED;
}
@@ -534,7 +461,7 @@ WebDatabase::State WebDataService::AddFormElementsImpl(
scoped_ptr<WDTypedResult> WebDataService::GetFormValuesForElementNameImpl(
const string16& name, const string16& prefix, int limit, WebDatabase* db) {
std::vector<string16> values;
- db->GetAutofillTable()->GetFormValuesForElementName(
+ AutofillTable::FromWebDatabase(db)->GetFormValuesForElementName(
name, prefix, &values, limit);
return scoped_ptr<WDTypedResult>(
new WDResult<std::vector<string16> >(AUTOFILL_VALUE_RESULT, values));
@@ -545,7 +472,7 @@ WebDatabase::State WebDataService::RemoveFormElementsAddedBetweenImpl(
WebDatabase* db) {
AutofillChangeList changes;
- if (db->GetAutofillTable()->RemoveFormElementsAddedBetween(
+ if (AutofillTable::FromWebDatabase(db)->RemoveFormElementsAddedBetween(
delete_begin, delete_end, &changes)) {
if (!changes.empty()) {
// Post the notifications including the list of affected keys.
@@ -565,7 +492,7 @@ WebDatabase::State WebDataService::RemoveExpiredFormElementsImpl(
WebDatabase* db) {
AutofillChangeList changes;
- if (db->GetAutofillTable()->RemoveExpiredFormElements(&changes)) {
+ if (AutofillTable::FromWebDatabase(db)->RemoveExpiredFormElements(&changes)) {
if (!changes.empty()) {
// Post the notifications including the list of affected keys.
// This is sent here so that work resulting from this notification
@@ -583,7 +510,7 @@ WebDatabase::State WebDataService::RemoveExpiredFormElementsImpl(
WebDatabase::State WebDataService::RemoveFormValueForElementNameImpl(
const string16& name, const string16& value, WebDatabase* db) {
- if (db->GetAutofillTable()->RemoveFormElement(name, value)) {
+ if (AutofillTable::FromWebDatabase(db)->RemoveFormElement(name, value)) {
AutofillChangeList changes;
changes.push_back(AutofillChange(AutofillChange::REMOVE,
AutofillKey(name, value)));
@@ -601,7 +528,7 @@ WebDatabase::State WebDataService::RemoveFormValueForElementNameImpl(
WebDatabase::State WebDataService::AddAutofillProfileImpl(
const AutofillProfile& profile, WebDatabase* db) {
- if (!db->GetAutofillTable()->AddAutofillProfile(profile)) {
+ if (!AutofillTable::FromWebDatabase(db)->AddAutofillProfile(profile)) {
NOTREACHED();
return WebDatabase::COMMIT_NOT_NEEDED;
}
@@ -623,13 +550,14 @@ WebDatabase::State WebDataService::UpdateAutofillProfileImpl(
// valid to try to update a missing profile. We simply drop the write and
// the caller will detect this on the next refresh.
AutofillProfile* original_profile = NULL;
- if (!db->GetAutofillTable()->GetAutofillProfile(profile.guid(),
+ if (!AutofillTable::FromWebDatabase(db)->GetAutofillProfile(profile.guid(),
&original_profile)) {
return WebDatabase::COMMIT_NOT_NEEDED;
}
scoped_ptr<AutofillProfile> scoped_profile(original_profile);
- if (!db->GetAutofillTable()->UpdateAutofillProfileMulti(profile)) {
+ if (!AutofillTable::FromWebDatabase(db)->UpdateAutofillProfileMulti(
+ profile)) {
NOTREACHED();
return WebDatabase::COMMIT_NEEDED;
}
@@ -648,13 +576,13 @@ WebDatabase::State WebDataService::UpdateAutofillProfileImpl(
WebDatabase::State WebDataService::RemoveAutofillProfileImpl(
const std::string& guid, WebDatabase* db) {
AutofillProfile* profile = NULL;
- if (!db->GetAutofillTable()->GetAutofillProfile(guid, &profile)) {
+ if (!AutofillTable::FromWebDatabase(db)->GetAutofillProfile(guid, &profile)) {
NOTREACHED();
return WebDatabase::COMMIT_NOT_NEEDED;
}
scoped_ptr<AutofillProfile> scoped_profile(profile);
- if (!db->GetAutofillTable()->RemoveAutofillProfile(guid)) {
+ if (!AutofillTable::FromWebDatabase(db)->RemoveAutofillProfile(guid)) {
NOTREACHED();
return WebDatabase::COMMIT_NOT_NEEDED;
}
@@ -672,7 +600,7 @@ WebDatabase::State WebDataService::RemoveAutofillProfileImpl(
scoped_ptr<WDTypedResult> WebDataService::GetAutofillProfilesImpl(
WebDatabase* db) {
std::vector<AutofillProfile*> profiles;
- db->GetAutofillTable()->GetAutofillProfiles(&profiles);
+ AutofillTable::FromWebDatabase(db)->GetAutofillProfiles(&profiles);
return scoped_ptr<WDTypedResult>(
new WDDestroyableResult<std::vector<AutofillProfile*> >(
AUTOFILL_PROFILES_RESULT,
@@ -683,7 +611,7 @@ scoped_ptr<WDTypedResult> WebDataService::GetAutofillProfilesImpl(
WebDatabase::State WebDataService::AddCreditCardImpl(
const CreditCard& credit_card, WebDatabase* db) {
- if (!db->GetAutofillTable()->AddCreditCard(credit_card)) {
+ if (!AutofillTable::FromWebDatabase(db)->AddCreditCard(credit_card)) {
NOTREACHED();
return WebDatabase::COMMIT_NOT_NEEDED;
}
@@ -696,13 +624,13 @@ WebDatabase::State WebDataService::UpdateCreditCardImpl(
// It is currently valid to try to update a missing profile. We simply drop
// the write and the caller will detect this on the next refresh.
CreditCard* original_credit_card = NULL;
- if (!db->GetAutofillTable()->GetCreditCard(credit_card.guid(),
+ if (!AutofillTable::FromWebDatabase(db)->GetCreditCard(credit_card.guid(),
&original_credit_card)) {
return WebDatabase::COMMIT_NOT_NEEDED;
}
scoped_ptr<CreditCard> scoped_credit_card(original_credit_card);
- if (!db->GetAutofillTable()->UpdateCreditCard(credit_card)) {
+ if (!AutofillTable::FromWebDatabase(db)->UpdateCreditCard(credit_card)) {
NOTREACHED();
return WebDatabase::COMMIT_NOT_NEEDED;
}
@@ -711,7 +639,7 @@ WebDatabase::State WebDataService::UpdateCreditCardImpl(
WebDatabase::State WebDataService::RemoveCreditCardImpl(
const std::string& guid, WebDatabase* db) {
- if (!db->GetAutofillTable()->RemoveCreditCard(guid)) {
+ if (!AutofillTable::FromWebDatabase(db)->RemoveCreditCard(guid)) {
NOTREACHED();
return WebDatabase::COMMIT_NOT_NEEDED;
}
@@ -720,7 +648,7 @@ WebDatabase::State WebDataService::RemoveCreditCardImpl(
scoped_ptr<WDTypedResult> WebDataService::GetCreditCardsImpl(WebDatabase* db) {
std::vector<CreditCard*> credit_cards;
- db->GetAutofillTable()->GetCreditCards(&credit_cards);
+ AutofillTable::FromWebDatabase(db)->GetCreditCards(&credit_cards);
return scoped_ptr<WDTypedResult>(
new WDDestroyableResult<std::vector<CreditCard*> >(
AUTOFILL_CREDITCARDS_RESULT,
@@ -735,7 +663,7 @@ WebDataService::RemoveAutofillProfilesAndCreditCardsModifiedBetweenImpl(
WebDatabase* db) {
std::vector<std::string> profile_guids;
std::vector<std::string> credit_card_guids;
- if (db->GetAutofillTable()->
+ if (AutofillTable::FromWebDatabase(db)->
RemoveAutofillProfilesAndCreditCardsModifiedBetween(
delete_begin,
delete_end,
« no previous file with comments | « chrome/browser/webdata/web_data_service.h ('k') | chrome/browser/webdata/web_data_service_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698