| 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.h" | 5 #include "chrome/browser/webdata/web_data_service.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "base/threading/thread.h" | 10 #include "base/threading/thread.h" |
| 11 #include "chrome/browser/autofill/autofill_country.h" | 11 #include "chrome/browser/autofill/autofill_country.h" |
| 12 #include "chrome/browser/autofill/autofill_profile.h" | 12 #include "chrome/browser/autofill/autofill_profile.h" |
| 13 #include "chrome/browser/autofill/credit_card.h" | 13 #include "chrome/browser/autofill/credit_card.h" |
| 14 #include "chrome/browser/intents/default_web_intent_service.h" | |
| 15 #include "chrome/browser/profiles/profile.h" | 14 #include "chrome/browser/profiles/profile.h" |
| 16 #include "chrome/browser/search_engines/template_url.h" | 15 #include "chrome/browser/search_engines/template_url.h" |
| 17 #include "chrome/browser/ui/profile_error_dialog.h" | 16 #include "chrome/browser/ui/profile_error_dialog.h" |
| 18 #include "chrome/browser/webdata/autocomplete_syncable_service.h" | 17 #include "chrome/browser/webdata/autocomplete_syncable_service.h" |
| 19 #include "chrome/browser/webdata/autofill_change.h" | 18 #include "chrome/browser/webdata/autofill_change.h" |
| 20 #include "chrome/browser/webdata/autofill_entry.h" | 19 #include "chrome/browser/webdata/autofill_entry.h" |
| 21 #include "chrome/browser/webdata/autofill_profile_syncable_service.h" | 20 #include "chrome/browser/webdata/autofill_profile_syncable_service.h" |
| 22 #include "chrome/browser/webdata/autofill_table.h" | 21 #include "chrome/browser/webdata/autofill_table.h" |
| 23 #include "chrome/browser/webdata/keyword_table.h" | 22 #include "chrome/browser/webdata/keyword_table.h" |
| 24 #include "chrome/browser/webdata/logins_table.h" | 23 #include "chrome/browser/webdata/logins_table.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 41 | 40 |
| 42 //////////////////////////////////////////////////////////////////////////////// | 41 //////////////////////////////////////////////////////////////////////////////// |
| 43 // | 42 // |
| 44 // WebDataService implementation. | 43 // WebDataService implementation. |
| 45 // | 44 // |
| 46 //////////////////////////////////////////////////////////////////////////////// | 45 //////////////////////////////////////////////////////////////////////////////// |
| 47 | 46 |
| 48 using base::Bind; | 47 using base::Bind; |
| 49 using base::Time; | 48 using base::Time; |
| 50 using content::BrowserThread; | 49 using content::BrowserThread; |
| 51 using webkit_glue::WebIntentServiceData; | |
| 52 | 50 |
| 53 namespace { | 51 namespace { |
| 54 | 52 |
| 55 // A task used by WebDataService (for Sync mainly) to inform the | 53 // A task used by WebDataService (for Sync mainly) to inform the |
| 56 // PersonalDataManager living on the UI thread that it needs to refresh. | 54 // PersonalDataManager living on the UI thread that it needs to refresh. |
| 57 void NotifyOfMultipleAutofillChangesTask( | 55 void NotifyOfMultipleAutofillChangesTask( |
| 58 const scoped_refptr<WebDataService>& web_data_service) { | 56 const scoped_refptr<WebDataService>& web_data_service) { |
| 59 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 57 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 60 | 58 |
| 61 content::NotificationService::current()->Notify( | 59 content::NotificationService::current()->Notify( |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 Bind(&WebDataService::RemoveWebAppImpl, this, app_url)); | 204 Bind(&WebDataService::RemoveWebAppImpl, this, app_url)); |
| 207 } | 205 } |
| 208 | 206 |
| 209 WebDataService::Handle WebDataService::GetWebAppImages( | 207 WebDataService::Handle WebDataService::GetWebAppImages( |
| 210 const GURL& app_url, | 208 const GURL& app_url, |
| 211 WebDataServiceConsumer* consumer) { | 209 WebDataServiceConsumer* consumer) { |
| 212 return ScheduleDBTaskWithResult(FROM_HERE, | 210 return ScheduleDBTaskWithResult(FROM_HERE, |
| 213 Bind(&WebDataService::GetWebAppImagesImpl, this, app_url), consumer); | 211 Bind(&WebDataService::GetWebAppImagesImpl, this, app_url), consumer); |
| 214 } | 212 } |
| 215 | 213 |
| 216 #if (ENABLE_WEB_INTENTS) | |
| 217 ////////////////////////////////////////////////////////////////////////////// | |
| 218 // | |
| 219 // Web Intents. | |
| 220 // | |
| 221 ////////////////////////////////////////////////////////////////////////////// | |
| 222 | |
| 223 void WebDataService::AddWebIntentService(const WebIntentServiceData& service) { | |
| 224 ScheduleDBTask(FROM_HERE, | |
| 225 Bind(&WebDataService::AddWebIntentServiceImpl, this, service)); | |
| 226 } | |
| 227 | |
| 228 void WebDataService::RemoveWebIntentService( | |
| 229 const WebIntentServiceData& service) { | |
| 230 ScheduleDBTask(FROM_HERE, Bind(&WebDataService::RemoveWebIntentServiceImpl, | |
| 231 this, service)); | |
| 232 } | |
| 233 | |
| 234 WebDataService::Handle WebDataService::GetWebIntentServicesForAction( | |
| 235 const string16& action, | |
| 236 WebDataServiceConsumer* consumer) { | |
| 237 return ScheduleDBTaskWithResult(FROM_HERE, | |
| 238 Bind(&WebDataService::GetWebIntentServicesImpl, this, action), consumer); | |
| 239 } | |
| 240 | |
| 241 WebDataService::Handle WebDataService::GetWebIntentServicesForURL( | |
| 242 const string16& service_url, | |
| 243 WebDataServiceConsumer* consumer) { | |
| 244 return ScheduleDBTaskWithResult(FROM_HERE, | |
| 245 Bind(&WebDataService::GetWebIntentServicesForURLImpl, this, service_url), | |
| 246 consumer); | |
| 247 } | |
| 248 | |
| 249 | |
| 250 WebDataService::Handle WebDataService::GetAllWebIntentServices( | |
| 251 WebDataServiceConsumer* consumer) { | |
| 252 return ScheduleDBTaskWithResult(FROM_HERE, | |
| 253 Bind(&WebDataService::GetAllWebIntentServicesImpl, this), consumer); | |
| 254 } | |
| 255 | |
| 256 void WebDataService::AddDefaultWebIntentService( | |
| 257 const DefaultWebIntentService& service) { | |
| 258 ScheduleDBTask(FROM_HERE, | |
| 259 Bind(&WebDataService::AddDefaultWebIntentServiceImpl, this, service)); | |
| 260 } | |
| 261 | |
| 262 void WebDataService::RemoveDefaultWebIntentService( | |
| 263 const DefaultWebIntentService& service) { | |
| 264 ScheduleDBTask(FROM_HERE, | |
| 265 Bind(&WebDataService::RemoveDefaultWebIntentServiceImpl, this, service)); | |
| 266 } | |
| 267 | |
| 268 void WebDataService::RemoveWebIntentServiceDefaults( | |
| 269 const GURL& service_url) { | |
| 270 ScheduleDBTask(FROM_HERE, | |
| 271 Bind(&WebDataService::RemoveWebIntentServiceDefaultsImpl, this, | |
| 272 service_url)); | |
| 273 } | |
| 274 | |
| 275 WebDataService::Handle WebDataService::GetDefaultWebIntentServicesForAction( | |
| 276 const string16& action, | |
| 277 WebDataServiceConsumer* consumer) { | |
| 278 return ScheduleDBTaskWithResult(FROM_HERE, | |
| 279 Bind(&WebDataService::GetDefaultWebIntentServicesForActionImpl, this, | |
| 280 action), | |
| 281 consumer); | |
| 282 } | |
| 283 | |
| 284 WebDataService::Handle WebDataService::GetAllDefaultWebIntentServices( | |
| 285 WebDataServiceConsumer* consumer) { | |
| 286 return ScheduleDBTaskWithResult(FROM_HERE, | |
| 287 Bind(&WebDataService::GetAllDefaultWebIntentServicesImpl, this), | |
| 288 consumer); | |
| 289 } | |
| 290 #endif | |
| 291 | |
| 292 //////////////////////////////////////////////////////////////////////////////// | 214 //////////////////////////////////////////////////////////////////////////////// |
| 293 // | 215 // |
| 294 // Token Service | 216 // Token Service |
| 295 // | 217 // |
| 296 //////////////////////////////////////////////////////////////////////////////// | 218 //////////////////////////////////////////////////////////////////////////////// |
| 297 | 219 |
| 298 void WebDataService::SetTokenForService(const std::string& service, | 220 void WebDataService::SetTokenForService(const std::string& service, |
| 299 const std::string& token) { | 221 const std::string& token) { |
| 300 ScheduleDBTask(FROM_HERE, | 222 ScheduleDBTask(FROM_HERE, |
| 301 Bind(&WebDataService::SetTokenForServiceImpl, this, service, token)); | 223 Bind(&WebDataService::SetTokenForServiceImpl, this, service, token)); |
| (...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 657 scoped_ptr<WDTypedResult> WebDataService::GetWebAppImagesImpl( | 579 scoped_ptr<WDTypedResult> WebDataService::GetWebAppImagesImpl( |
| 658 const GURL& app_url) { | 580 const GURL& app_url) { |
| 659 WDAppImagesResult result; | 581 WDAppImagesResult result; |
| 660 result.has_all_images = | 582 result.has_all_images = |
| 661 db_->GetWebAppsTable()->GetWebAppHasAllImages(app_url); | 583 db_->GetWebAppsTable()->GetWebAppHasAllImages(app_url); |
| 662 db_->GetWebAppsTable()->GetWebAppImages(app_url, &result.images); | 584 db_->GetWebAppsTable()->GetWebAppImages(app_url, &result.images); |
| 663 return scoped_ptr<WDTypedResult>( | 585 return scoped_ptr<WDTypedResult>( |
| 664 new WDResult<WDAppImagesResult>(WEB_APP_IMAGES, result)); | 586 new WDResult<WDAppImagesResult>(WEB_APP_IMAGES, result)); |
| 665 } | 587 } |
| 666 | 588 |
| 667 #if defined(ENABLE_WEB_INTENTS) | |
| 668 //////////////////////////////////////////////////////////////////////////////// | |
| 669 // | |
| 670 // Web Intents implementation. | |
| 671 // | |
| 672 //////////////////////////////////////////////////////////////////////////////// | |
| 673 | |
| 674 void WebDataService::RemoveWebIntentServiceImpl( | |
| 675 const webkit_glue::WebIntentServiceData& service) { | |
| 676 db_->GetWebIntentsTable()->RemoveWebIntentService(service); | |
| 677 ScheduleCommit(); | |
| 678 } | |
| 679 | |
| 680 void WebDataService::AddWebIntentServiceImpl( | |
| 681 const webkit_glue::WebIntentServiceData& service) { | |
| 682 db_->GetWebIntentsTable()->SetWebIntentService(service); | |
| 683 ScheduleCommit(); | |
| 684 } | |
| 685 | |
| 686 | |
| 687 scoped_ptr<WDTypedResult> WebDataService::GetWebIntentServicesImpl( | |
| 688 const string16& action) { | |
| 689 std::vector<WebIntentServiceData> result; | |
| 690 db_->GetWebIntentsTable()->GetWebIntentServicesForAction(action, &result); | |
| 691 return scoped_ptr<WDTypedResult>( | |
| 692 new WDResult<std::vector<WebIntentServiceData> >( | |
| 693 WEB_INTENTS_RESULT, result)); | |
| 694 } | |
| 695 | |
| 696 scoped_ptr<WDTypedResult> WebDataService::GetWebIntentServicesForURLImpl( | |
| 697 const string16& service_url) { | |
| 698 std::vector<WebIntentServiceData> result; | |
| 699 db_->GetWebIntentsTable()->GetWebIntentServicesForURL(service_url, &result); | |
| 700 return scoped_ptr<WDTypedResult>( | |
| 701 new WDResult<std::vector<WebIntentServiceData> >( | |
| 702 WEB_INTENTS_RESULT, result)); | |
| 703 } | |
| 704 | |
| 705 scoped_ptr<WDTypedResult> WebDataService::GetAllWebIntentServicesImpl() { | |
| 706 std::vector<WebIntentServiceData> result; | |
| 707 db_->GetWebIntentsTable()->GetAllWebIntentServices(&result); | |
| 708 return scoped_ptr<WDTypedResult>( | |
| 709 new WDResult<std::vector<WebIntentServiceData> >( | |
| 710 WEB_INTENTS_RESULT, result)); | |
| 711 } | |
| 712 | |
| 713 void WebDataService::AddDefaultWebIntentServiceImpl( | |
| 714 const DefaultWebIntentService& service) { | |
| 715 db_->GetWebIntentsTable()->SetDefaultService(service); | |
| 716 ScheduleCommit(); | |
| 717 } | |
| 718 | |
| 719 void WebDataService::RemoveDefaultWebIntentServiceImpl( | |
| 720 const DefaultWebIntentService& service) { | |
| 721 db_->GetWebIntentsTable()->RemoveDefaultService(service); | |
| 722 ScheduleCommit(); | |
| 723 } | |
| 724 | |
| 725 void WebDataService::RemoveWebIntentServiceDefaultsImpl( | |
| 726 const GURL& service_url) { | |
| 727 db_->GetWebIntentsTable()->RemoveServiceDefaults(service_url); | |
| 728 ScheduleCommit(); | |
| 729 } | |
| 730 | |
| 731 scoped_ptr<WDTypedResult> | |
| 732 WebDataService::GetDefaultWebIntentServicesForActionImpl( | |
| 733 const string16& action) { | |
| 734 std::vector<DefaultWebIntentService> result; | |
| 735 db_->GetWebIntentsTable()->GetDefaultServices(action, &result); | |
| 736 return scoped_ptr<WDTypedResult>( | |
| 737 new WDResult<std::vector<DefaultWebIntentService> >( | |
| 738 WEB_INTENTS_DEFAULTS_RESULT, result)); | |
| 739 } | |
| 740 | |
| 741 scoped_ptr<WDTypedResult> WebDataService::GetAllDefaultWebIntentServicesImpl() { | |
| 742 std::vector<DefaultWebIntentService> result; | |
| 743 db_->GetWebIntentsTable()->GetAllDefaultServices(&result); | |
| 744 return scoped_ptr<WDTypedResult>( | |
| 745 new WDResult<std::vector<DefaultWebIntentService> >( | |
| 746 WEB_INTENTS_DEFAULTS_RESULT, result)); | |
| 747 } | |
| 748 #endif | |
| 749 | |
| 750 //////////////////////////////////////////////////////////////////////////////// | 589 //////////////////////////////////////////////////////////////////////////////// |
| 751 // | 590 // |
| 752 // Token Service implementation. | 591 // Token Service implementation. |
| 753 // | 592 // |
| 754 //////////////////////////////////////////////////////////////////////////////// | 593 //////////////////////////////////////////////////////////////////////////////// |
| 755 | 594 |
| 756 void WebDataService::RemoveAllTokensImpl() { | 595 void WebDataService::RemoveAllTokensImpl() { |
| 757 if (db_->GetTokenServiceTable()->RemoveAllTokens()) { | 596 if (db_->GetTokenServiceTable()->RemoveAllTokens()) { |
| 758 ScheduleCommit(); | 597 ScheduleCommit(); |
| 759 } | 598 } |
| (...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1107 | 946 |
| 1108 void WebDataService::DestroyAutofillCreditCardResult( | 947 void WebDataService::DestroyAutofillCreditCardResult( |
| 1109 const WDTypedResult* result) { | 948 const WDTypedResult* result) { |
| 1110 DCHECK(result->GetType() == AUTOFILL_CREDITCARDS_RESULT); | 949 DCHECK(result->GetType() == AUTOFILL_CREDITCARDS_RESULT); |
| 1111 const WDResult<std::vector<CreditCard*> >* r = | 950 const WDResult<std::vector<CreditCard*> >* r = |
| 1112 static_cast<const WDResult<std::vector<CreditCard*> >*>(result); | 951 static_cast<const WDResult<std::vector<CreditCard*> >*>(result); |
| 1113 | 952 |
| 1114 std::vector<CreditCard*> credit_cards = r->GetValue(); | 953 std::vector<CreditCard*> credit_cards = r->GetValue(); |
| 1115 STLDeleteElements(&credit_cards); | 954 STLDeleteElements(&credit_cards); |
| 1116 } | 955 } |
| OLD | NEW |