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

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

Issue 12543034: Move creation of the various WebDatabaseTable types out of WebDatabase. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Self review. 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 unified diff | Download patch | Annotate | Revision Log
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.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/command_line.h" 8 #include "base/command_line.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 } 372 }
373 373
374 //////////////////////////////////////////////////////////////////////////////// 374 ////////////////////////////////////////////////////////////////////////////////
375 // 375 //
376 // Keywords implementation. 376 // Keywords implementation.
377 // 377 //
378 //////////////////////////////////////////////////////////////////////////////// 378 ////////////////////////////////////////////////////////////////////////////////
379 379
380 WebDatabase::State WebDataService::AddKeywordImpl( 380 WebDatabase::State WebDataService::AddKeywordImpl(
381 const TemplateURLData& data, WebDatabase* db) { 381 const TemplateURLData& data, WebDatabase* db) {
382 db->GetKeywordTable()->AddKeyword(data); 382 KeywordTable::FromWebDatabase(db)->AddKeyword(data);
383 return WebDatabase::COMMIT_NEEDED; 383 return WebDatabase::COMMIT_NEEDED;
384 } 384 }
385 385
386 WebDatabase::State WebDataService::RemoveKeywordImpl( 386 WebDatabase::State WebDataService::RemoveKeywordImpl(
387 TemplateURLID id, WebDatabase* db) { 387 TemplateURLID id, WebDatabase* db) {
388 DCHECK(id); 388 DCHECK(id);
389 db->GetKeywordTable()->RemoveKeyword(id); 389 KeywordTable::FromWebDatabase(db)->RemoveKeyword(id);
390 return WebDatabase::COMMIT_NEEDED; 390 return WebDatabase::COMMIT_NEEDED;
391 } 391 }
392 392
393 WebDatabase::State WebDataService::UpdateKeywordImpl( 393 WebDatabase::State WebDataService::UpdateKeywordImpl(
394 const TemplateURLData& data, WebDatabase* db) { 394 const TemplateURLData& data, WebDatabase* db) {
395 if (!db->GetKeywordTable()->UpdateKeyword(data)) { 395 if (!KeywordTable::FromWebDatabase(db)->UpdateKeyword(data)) {
396 NOTREACHED(); 396 NOTREACHED();
397 return WebDatabase::COMMIT_NOT_NEEDED; 397 return WebDatabase::COMMIT_NOT_NEEDED;
398 } 398 }
399 return WebDatabase::COMMIT_NEEDED; 399 return WebDatabase::COMMIT_NEEDED;
400 } 400 }
401 401
402 scoped_ptr<WDTypedResult> WebDataService::GetKeywordsImpl(WebDatabase* db) { 402 scoped_ptr<WDTypedResult> WebDataService::GetKeywordsImpl(WebDatabase* db) {
403 WDKeywordsResult result; 403 WDKeywordsResult result;
404 db->GetKeywordTable()->GetKeywords(&result.keywords); 404 KeywordTable::FromWebDatabase(db)->GetKeywords(&result.keywords);
405 result.default_search_provider_id = 405 result.default_search_provider_id =
406 db->GetKeywordTable()->GetDefaultSearchProviderID(); 406 KeywordTable::FromWebDatabase(db)->GetDefaultSearchProviderID();
407 result.builtin_keyword_version = 407 result.builtin_keyword_version =
408 db->GetKeywordTable()->GetBuiltinKeywordVersion(); 408 KeywordTable::FromWebDatabase(db)->GetBuiltinKeywordVersion();
409 return scoped_ptr<WDTypedResult>( 409 return scoped_ptr<WDTypedResult>(
410 new WDResult<WDKeywordsResult>(KEYWORDS_RESULT, result)); 410 new WDResult<WDKeywordsResult>(KEYWORDS_RESULT, result));
411 } 411 }
412 412
413 WebDatabase::State WebDataService::SetDefaultSearchProviderImpl( 413 WebDatabase::State WebDataService::SetDefaultSearchProviderImpl(
414 TemplateURLID id, WebDatabase* db) { 414 TemplateURLID id, WebDatabase* db) {
415 if (!db->GetKeywordTable()->SetDefaultSearchProviderID(id)) { 415 if (!KeywordTable::FromWebDatabase(db)->SetDefaultSearchProviderID(id)) {
416 NOTREACHED(); 416 NOTREACHED();
417 return WebDatabase::COMMIT_NOT_NEEDED; 417 return WebDatabase::COMMIT_NOT_NEEDED;
418 } 418 }
419 return WebDatabase::COMMIT_NEEDED; 419 return WebDatabase::COMMIT_NEEDED;
420 } 420 }
421 421
422 WebDatabase::State WebDataService::SetBuiltinKeywordVersionImpl( 422 WebDatabase::State WebDataService::SetBuiltinKeywordVersionImpl(
423 int version, WebDatabase* db) { 423 int version, WebDatabase* db) {
424 if (!db->GetKeywordTable()->SetBuiltinKeywordVersion(version)) { 424 if (!KeywordTable::FromWebDatabase(db)->SetBuiltinKeywordVersion(version)) {
425 NOTREACHED(); 425 NOTREACHED();
426 return WebDatabase::COMMIT_NOT_NEEDED; 426 return WebDatabase::COMMIT_NOT_NEEDED;
427 } 427 }
428 return WebDatabase::COMMIT_NEEDED; 428 return WebDatabase::COMMIT_NEEDED;
429 } 429 }
430 430
431 //////////////////////////////////////////////////////////////////////////////// 431 ////////////////////////////////////////////////////////////////////////////////
432 // 432 //
433 // Web Apps implementation. 433 // Web Apps implementation.
434 // 434 //
435 //////////////////////////////////////////////////////////////////////////////// 435 ////////////////////////////////////////////////////////////////////////////////
436 436
437 WebDatabase::State WebDataService::SetWebAppImageImpl( 437 WebDatabase::State WebDataService::SetWebAppImageImpl(
438 const GURL& app_url, const SkBitmap& image, WebDatabase* db) { 438 const GURL& app_url, const SkBitmap& image, WebDatabase* db) {
439 db->GetWebAppsTable()->SetWebAppImage(app_url, image); 439 WebAppsTable::FromWebDatabase(db)->SetWebAppImage(app_url, image);
440 return WebDatabase::COMMIT_NEEDED; 440 return WebDatabase::COMMIT_NEEDED;
441 } 441 }
442 442
443 WebDatabase::State WebDataService::SetWebAppHasAllImagesImpl( 443 WebDatabase::State WebDataService::SetWebAppHasAllImagesImpl(
444 const GURL& app_url, bool has_all_images, WebDatabase* db) { 444 const GURL& app_url, bool has_all_images, WebDatabase* db) {
445 db->GetWebAppsTable()-> 445 WebAppsTable::FromWebDatabase(db)->SetWebAppHasAllImages(app_url,
446 SetWebAppHasAllImages(app_url, has_all_images); 446 has_all_images);
447 return WebDatabase::COMMIT_NEEDED; 447 return WebDatabase::COMMIT_NEEDED;
448 } 448 }
449 449
450 WebDatabase::State WebDataService::RemoveWebAppImpl( 450 WebDatabase::State WebDataService::RemoveWebAppImpl(
451 const GURL& app_url, WebDatabase* db) { 451 const GURL& app_url, WebDatabase* db) {
452 db->GetWebAppsTable()->RemoveWebApp(app_url); 452 WebAppsTable::FromWebDatabase(db)->RemoveWebApp(app_url);
453 return WebDatabase::COMMIT_NEEDED; 453 return WebDatabase::COMMIT_NEEDED;
454 } 454 }
455 455
456 scoped_ptr<WDTypedResult> WebDataService::GetWebAppImagesImpl( 456 scoped_ptr<WDTypedResult> WebDataService::GetWebAppImagesImpl(
457 const GURL& app_url, WebDatabase* db) { 457 const GURL& app_url, WebDatabase* db) {
458 WDAppImagesResult result; 458 WDAppImagesResult result;
459 result.has_all_images = db->GetWebAppsTable()->GetWebAppHasAllImages(app_url); 459 result.has_all_images =
460 db->GetWebAppsTable()->GetWebAppImages(app_url, &result.images); 460 WebAppsTable::FromWebDatabase(db)->GetWebAppHasAllImages(app_url);
461 WebAppsTable::FromWebDatabase(db)->GetWebAppImages(app_url, &result.images);
461 return scoped_ptr<WDTypedResult>( 462 return scoped_ptr<WDTypedResult>(
462 new WDResult<WDAppImagesResult>(WEB_APP_IMAGES, result)); 463 new WDResult<WDAppImagesResult>(WEB_APP_IMAGES, result));
463 } 464 }
464 465
465 //////////////////////////////////////////////////////////////////////////////// 466 ////////////////////////////////////////////////////////////////////////////////
466 // 467 //
467 // Token Service implementation. 468 // Token Service implementation.
468 // 469 //
469 //////////////////////////////////////////////////////////////////////////////// 470 ////////////////////////////////////////////////////////////////////////////////
470 471
471 WebDatabase::State WebDataService::RemoveAllTokensImpl(WebDatabase* db) { 472 WebDatabase::State WebDataService::RemoveAllTokensImpl(WebDatabase* db) {
472 if (db->GetTokenServiceTable()->RemoveAllTokens()) { 473 if (TokenServiceTable::FromWebDatabase(db)->RemoveAllTokens()) {
473 return WebDatabase::COMMIT_NEEDED; 474 return WebDatabase::COMMIT_NEEDED;
474 } 475 }
475 return WebDatabase::COMMIT_NOT_NEEDED; 476 return WebDatabase::COMMIT_NOT_NEEDED;
476 } 477 }
477 478
478 WebDatabase::State WebDataService::SetTokenForServiceImpl( 479 WebDatabase::State WebDataService::SetTokenForServiceImpl(
479 const std::string& service, const std::string& token, WebDatabase* db) { 480 const std::string& service, const std::string& token, WebDatabase* db) {
480 if (db->GetTokenServiceTable()->SetTokenForService(service, token)) { 481 if (TokenServiceTable::FromWebDatabase(db)->SetTokenForService(service,
482 token)) {
481 return WebDatabase::COMMIT_NEEDED; 483 return WebDatabase::COMMIT_NEEDED;
482 } 484 }
483 return WebDatabase::COMMIT_NOT_NEEDED; 485 return WebDatabase::COMMIT_NOT_NEEDED;
484 } 486 }
485 487
486 scoped_ptr<WDTypedResult> WebDataService::GetAllTokensImpl(WebDatabase* db) { 488 scoped_ptr<WDTypedResult> WebDataService::GetAllTokensImpl(WebDatabase* db) {
487 std::map<std::string, std::string> map; 489 std::map<std::string, std::string> map;
488 db->GetTokenServiceTable()->GetAllTokens(&map); 490 TokenServiceTable::FromWebDatabase(db)->GetAllTokens(&map);
489 return scoped_ptr<WDTypedResult>( 491 return scoped_ptr<WDTypedResult>(
490 new WDResult<std::map<std::string, std::string> >(TOKEN_RESULT, map)); 492 new WDResult<std::map<std::string, std::string> >(TOKEN_RESULT, map));
491 } 493 }
492 494
493 //////////////////////////////////////////////////////////////////////////////// 495 ////////////////////////////////////////////////////////////////////////////////
494 // 496 //
495 // Autofill implementation. 497 // Autofill implementation.
496 // 498 //
497 //////////////////////////////////////////////////////////////////////////////// 499 ////////////////////////////////////////////////////////////////////////////////
498 500
499 WebDatabase::State WebDataService::AddFormElementsImpl( 501 WebDatabase::State WebDataService::AddFormElementsImpl(
500 const std::vector<FormFieldData>& fields, WebDatabase* db) { 502 const std::vector<FormFieldData>& fields, WebDatabase* db) {
501 AutofillChangeList changes; 503 AutofillChangeList changes;
502 if (!db->GetAutofillTable()->AddFormFieldValues(fields, &changes)) { 504 if (!AutofillTable::FromWebDatabase(db)->AddFormFieldValues(
505 fields, &changes)) {
503 NOTREACHED(); 506 NOTREACHED();
504 return WebDatabase::COMMIT_NOT_NEEDED; 507 return WebDatabase::COMMIT_NOT_NEEDED;
505 } 508 }
506 509
507 // Post the notifications including the list of affected keys. 510 // Post the notifications including the list of affected keys.
508 // This is sent here so that work resulting from this notification will be 511 // This is sent here so that work resulting from this notification will be
509 // done on the DB thread, and not the UI thread. 512 // done on the DB thread, and not the UI thread.
510 content::NotificationService::current()->Notify( 513 content::NotificationService::current()->Notify(
511 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED, 514 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED,
512 content::Source<WebDataService>(this), 515 content::Source<WebDataService>(this),
513 content::Details<AutofillChangeList>(&changes)); 516 content::Details<AutofillChangeList>(&changes));
514 517
515 return WebDatabase::COMMIT_NEEDED; 518 return WebDatabase::COMMIT_NEEDED;
516 } 519 }
517 520
518 scoped_ptr<WDTypedResult> WebDataService::GetFormValuesForElementNameImpl( 521 scoped_ptr<WDTypedResult> WebDataService::GetFormValuesForElementNameImpl(
519 const string16& name, const string16& prefix, int limit, WebDatabase* db) { 522 const string16& name, const string16& prefix, int limit, WebDatabase* db) {
520 std::vector<string16> values; 523 std::vector<string16> values;
521 db->GetAutofillTable()->GetFormValuesForElementName( 524 AutofillTable::FromWebDatabase(db)->GetFormValuesForElementName(
522 name, prefix, &values, limit); 525 name, prefix, &values, limit);
523 return scoped_ptr<WDTypedResult>( 526 return scoped_ptr<WDTypedResult>(
524 new WDResult<std::vector<string16> >(AUTOFILL_VALUE_RESULT, values)); 527 new WDResult<std::vector<string16> >(AUTOFILL_VALUE_RESULT, values));
525 } 528 }
526 529
527 WebDatabase::State WebDataService::RemoveFormElementsAddedBetweenImpl( 530 WebDatabase::State WebDataService::RemoveFormElementsAddedBetweenImpl(
528 const base::Time& delete_begin, const base::Time& delete_end, 531 const base::Time& delete_begin, const base::Time& delete_end,
529 WebDatabase* db) { 532 WebDatabase* db) {
530 AutofillChangeList changes; 533 AutofillChangeList changes;
531 534
532 if (db->GetAutofillTable()->RemoveFormElementsAddedBetween( 535 if (AutofillTable::FromWebDatabase(db)->RemoveFormElementsAddedBetween(
533 delete_begin, delete_end, &changes)) { 536 delete_begin, delete_end, &changes)) {
534 if (!changes.empty()) { 537 if (!changes.empty()) {
535 // Post the notifications including the list of affected keys. 538 // Post the notifications including the list of affected keys.
536 // This is sent here so that work resulting from this notification 539 // This is sent here so that work resulting from this notification
537 // will be done on the DB thread, and not the UI thread. 540 // will be done on the DB thread, and not the UI thread.
538 content::NotificationService::current()->Notify( 541 content::NotificationService::current()->Notify(
539 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED, 542 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED,
540 content::Source<WebDataService>(this), 543 content::Source<WebDataService>(this),
541 content::Details<AutofillChangeList>(&changes)); 544 content::Details<AutofillChangeList>(&changes));
542 } 545 }
543 return WebDatabase::COMMIT_NEEDED; 546 return WebDatabase::COMMIT_NEEDED;
544 } 547 }
545 return WebDatabase::COMMIT_NOT_NEEDED; 548 return WebDatabase::COMMIT_NOT_NEEDED;
546 } 549 }
547 550
548 WebDatabase::State WebDataService::RemoveExpiredFormElementsImpl( 551 WebDatabase::State WebDataService::RemoveExpiredFormElementsImpl(
549 WebDatabase* db) { 552 WebDatabase* db) {
550 AutofillChangeList changes; 553 AutofillChangeList changes;
551 554
552 if (db->GetAutofillTable()->RemoveExpiredFormElements(&changes)) { 555 if (AutofillTable::FromWebDatabase(db)->RemoveExpiredFormElements(&changes)) {
553 if (!changes.empty()) { 556 if (!changes.empty()) {
554 // Post the notifications including the list of affected keys. 557 // Post the notifications including the list of affected keys.
555 // This is sent here so that work resulting from this notification 558 // This is sent here so that work resulting from this notification
556 // will be done on the DB thread, and not the UI thread. 559 // will be done on the DB thread, and not the UI thread.
557 content::NotificationService::current()->Notify( 560 content::NotificationService::current()->Notify(
558 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED, 561 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED,
559 content::Source<WebDataService>(this), 562 content::Source<WebDataService>(this),
560 content::Details<AutofillChangeList>(&changes)); 563 content::Details<AutofillChangeList>(&changes));
561 } 564 }
562 return WebDatabase::COMMIT_NEEDED; 565 return WebDatabase::COMMIT_NEEDED;
563 } 566 }
564 return WebDatabase::COMMIT_NOT_NEEDED; 567 return WebDatabase::COMMIT_NOT_NEEDED;
565 } 568 }
566 569
567 WebDatabase::State WebDataService::RemoveFormValueForElementNameImpl( 570 WebDatabase::State WebDataService::RemoveFormValueForElementNameImpl(
568 const string16& name, const string16& value, WebDatabase* db) { 571 const string16& name, const string16& value, WebDatabase* db) {
569 572
570 if (db->GetAutofillTable()->RemoveFormElement(name, value)) { 573 if (AutofillTable::FromWebDatabase(db)->RemoveFormElement(name, value)) {
571 AutofillChangeList changes; 574 AutofillChangeList changes;
572 changes.push_back(AutofillChange(AutofillChange::REMOVE, 575 changes.push_back(AutofillChange(AutofillChange::REMOVE,
573 AutofillKey(name, value))); 576 AutofillKey(name, value)));
574 577
575 // Post the notifications including the list of affected keys. 578 // Post the notifications including the list of affected keys.
576 content::NotificationService::current()->Notify( 579 content::NotificationService::current()->Notify(
577 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED, 580 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED,
578 content::Source<WebDataService>(this), 581 content::Source<WebDataService>(this),
579 content::Details<AutofillChangeList>(&changes)); 582 content::Details<AutofillChangeList>(&changes));
580 583
581 return WebDatabase::COMMIT_NEEDED; 584 return WebDatabase::COMMIT_NEEDED;
582 } 585 }
583 return WebDatabase::COMMIT_NOT_NEEDED; 586 return WebDatabase::COMMIT_NOT_NEEDED;
584 } 587 }
585 588
586 WebDatabase::State WebDataService::AddAutofillProfileImpl( 589 WebDatabase::State WebDataService::AddAutofillProfileImpl(
587 const AutofillProfile& profile, WebDatabase* db) { 590 const AutofillProfile& profile, WebDatabase* db) {
588 if (!db->GetAutofillTable()->AddAutofillProfile(profile)) { 591 if (!AutofillTable::FromWebDatabase(db)->AddAutofillProfile(profile)) {
589 NOTREACHED(); 592 NOTREACHED();
590 return WebDatabase::COMMIT_NOT_NEEDED; 593 return WebDatabase::COMMIT_NOT_NEEDED;
591 } 594 }
592 595
593 // Send GUID-based notification. 596 // Send GUID-based notification.
594 AutofillProfileChange change(AutofillProfileChange::ADD, 597 AutofillProfileChange change(AutofillProfileChange::ADD,
595 profile.guid(), &profile); 598 profile.guid(), &profile);
596 content::NotificationService::current()->Notify( 599 content::NotificationService::current()->Notify(
597 chrome::NOTIFICATION_AUTOFILL_PROFILE_CHANGED, 600 chrome::NOTIFICATION_AUTOFILL_PROFILE_CHANGED,
598 content::Source<WebDataService>(this), 601 content::Source<WebDataService>(this),
599 content::Details<AutofillProfileChange>(&change)); 602 content::Details<AutofillProfileChange>(&change));
600 603
601 return WebDatabase::COMMIT_NEEDED; 604 return WebDatabase::COMMIT_NEEDED;
602 } 605 }
603 606
604 WebDatabase::State WebDataService::UpdateAutofillProfileImpl( 607 WebDatabase::State WebDataService::UpdateAutofillProfileImpl(
605 const AutofillProfile& profile, WebDatabase* db) { 608 const AutofillProfile& profile, WebDatabase* db) {
606 // Only perform the update if the profile exists. It is currently 609 // Only perform the update if the profile exists. It is currently
607 // valid to try to update a missing profile. We simply drop the write and 610 // valid to try to update a missing profile. We simply drop the write and
608 // the caller will detect this on the next refresh. 611 // the caller will detect this on the next refresh.
609 AutofillProfile* original_profile = NULL; 612 AutofillProfile* original_profile = NULL;
610 if (!db->GetAutofillTable()->GetAutofillProfile(profile.guid(), 613 if (!AutofillTable::FromWebDatabase(db)->GetAutofillProfile(profile.guid(),
611 &original_profile)) { 614 &original_profile)) {
612 return WebDatabase::COMMIT_NOT_NEEDED; 615 return WebDatabase::COMMIT_NOT_NEEDED;
613 } 616 }
614 scoped_ptr<AutofillProfile> scoped_profile(original_profile); 617 scoped_ptr<AutofillProfile> scoped_profile(original_profile);
615 618
616 if (!db->GetAutofillTable()->UpdateAutofillProfileMulti(profile)) { 619 if (!AutofillTable::FromWebDatabase(db)->UpdateAutofillProfileMulti(
620 profile)) {
617 NOTREACHED(); 621 NOTREACHED();
618 return WebDatabase::COMMIT_NEEDED; 622 return WebDatabase::COMMIT_NEEDED;
619 } 623 }
620 624
621 // Send GUID-based notification. 625 // Send GUID-based notification.
622 AutofillProfileChange change(AutofillProfileChange::UPDATE, 626 AutofillProfileChange change(AutofillProfileChange::UPDATE,
623 profile.guid(), &profile); 627 profile.guid(), &profile);
624 content::NotificationService::current()->Notify( 628 content::NotificationService::current()->Notify(
625 chrome::NOTIFICATION_AUTOFILL_PROFILE_CHANGED, 629 chrome::NOTIFICATION_AUTOFILL_PROFILE_CHANGED,
626 content::Source<WebDataService>(this), 630 content::Source<WebDataService>(this),
627 content::Details<AutofillProfileChange>(&change)); 631 content::Details<AutofillProfileChange>(&change));
628 632
629 return WebDatabase::COMMIT_NEEDED; 633 return WebDatabase::COMMIT_NEEDED;
630 } 634 }
631 635
632 WebDatabase::State WebDataService::RemoveAutofillProfileImpl( 636 WebDatabase::State WebDataService::RemoveAutofillProfileImpl(
633 const std::string& guid, WebDatabase* db) { 637 const std::string& guid, WebDatabase* db) {
634 AutofillProfile* profile = NULL; 638 AutofillProfile* profile = NULL;
635 if (!db->GetAutofillTable()->GetAutofillProfile(guid, &profile)) { 639 if (!AutofillTable::FromWebDatabase(db)->GetAutofillProfile(guid, &profile)) {
636 NOTREACHED(); 640 NOTREACHED();
637 return WebDatabase::COMMIT_NOT_NEEDED; 641 return WebDatabase::COMMIT_NOT_NEEDED;
638 } 642 }
639 scoped_ptr<AutofillProfile> scoped_profile(profile); 643 scoped_ptr<AutofillProfile> scoped_profile(profile);
640 644
641 if (!db->GetAutofillTable()->RemoveAutofillProfile(guid)) { 645 if (!AutofillTable::FromWebDatabase(db)->RemoveAutofillProfile(guid)) {
642 NOTREACHED(); 646 NOTREACHED();
643 return WebDatabase::COMMIT_NOT_NEEDED; 647 return WebDatabase::COMMIT_NOT_NEEDED;
644 } 648 }
645 649
646 // Send GUID-based notification. 650 // Send GUID-based notification.
647 AutofillProfileChange change(AutofillProfileChange::REMOVE, guid, NULL); 651 AutofillProfileChange change(AutofillProfileChange::REMOVE, guid, NULL);
648 content::NotificationService::current()->Notify( 652 content::NotificationService::current()->Notify(
649 chrome::NOTIFICATION_AUTOFILL_PROFILE_CHANGED, 653 chrome::NOTIFICATION_AUTOFILL_PROFILE_CHANGED,
650 content::Source<WebDataService>(this), 654 content::Source<WebDataService>(this),
651 content::Details<AutofillProfileChange>(&change)); 655 content::Details<AutofillProfileChange>(&change));
652 656
653 return WebDatabase::COMMIT_NEEDED; 657 return WebDatabase::COMMIT_NEEDED;
654 } 658 }
655 659
656 scoped_ptr<WDTypedResult> WebDataService::GetAutofillProfilesImpl( 660 scoped_ptr<WDTypedResult> WebDataService::GetAutofillProfilesImpl(
657 WebDatabase* db) { 661 WebDatabase* db) {
658 std::vector<AutofillProfile*> profiles; 662 std::vector<AutofillProfile*> profiles;
659 db->GetAutofillTable()->GetAutofillProfiles(&profiles); 663 AutofillTable::FromWebDatabase(db)->GetAutofillProfiles(&profiles);
660 return scoped_ptr<WDTypedResult>( 664 return scoped_ptr<WDTypedResult>(
661 new WDDestroyableResult<std::vector<AutofillProfile*> >( 665 new WDDestroyableResult<std::vector<AutofillProfile*> >(
662 AUTOFILL_PROFILES_RESULT, 666 AUTOFILL_PROFILES_RESULT,
663 profiles, 667 profiles,
664 base::Bind(&WebDataService::DestroyAutofillProfileResult, 668 base::Bind(&WebDataService::DestroyAutofillProfileResult,
665 base::Unretained(this)))); 669 base::Unretained(this))));
666 } 670 }
667 671
668 WebDatabase::State WebDataService::AddCreditCardImpl( 672 WebDatabase::State WebDataService::AddCreditCardImpl(
669 const CreditCard& credit_card, WebDatabase* db) { 673 const CreditCard& credit_card, WebDatabase* db) {
670 if (!db->GetAutofillTable()->AddCreditCard(credit_card)) { 674 if (!AutofillTable::FromWebDatabase(db)->AddCreditCard(credit_card)) {
671 NOTREACHED(); 675 NOTREACHED();
672 return WebDatabase::COMMIT_NOT_NEEDED; 676 return WebDatabase::COMMIT_NOT_NEEDED;
673 } 677 }
674 678
675 // Send GUID-based notification. 679 // Send GUID-based notification.
676 AutofillCreditCardChange change(AutofillCreditCardChange::ADD, 680 AutofillCreditCardChange change(AutofillCreditCardChange::ADD,
677 credit_card.guid(), &credit_card); 681 credit_card.guid(), &credit_card);
678 content::NotificationService::current()->Notify( 682 content::NotificationService::current()->Notify(
679 chrome::NOTIFICATION_AUTOFILL_CREDIT_CARD_CHANGED, 683 chrome::NOTIFICATION_AUTOFILL_CREDIT_CARD_CHANGED,
680 content::Source<WebDataService>(this), 684 content::Source<WebDataService>(this),
681 content::Details<AutofillCreditCardChange>(&change)); 685 content::Details<AutofillCreditCardChange>(&change));
682 686
683 return WebDatabase::COMMIT_NEEDED; 687 return WebDatabase::COMMIT_NEEDED;
684 } 688 }
685 689
686 WebDatabase::State WebDataService::UpdateCreditCardImpl( 690 WebDatabase::State WebDataService::UpdateCreditCardImpl(
687 const CreditCard& credit_card, WebDatabase* db) { 691 const CreditCard& credit_card, WebDatabase* db) {
688 // It is currently valid to try to update a missing profile. We simply drop 692 // It is currently valid to try to update a missing profile. We simply drop
689 // the write and the caller will detect this on the next refresh. 693 // the write and the caller will detect this on the next refresh.
690 CreditCard* original_credit_card = NULL; 694 CreditCard* original_credit_card = NULL;
691 if (!db->GetAutofillTable()->GetCreditCard(credit_card.guid(), 695 if (!AutofillTable::FromWebDatabase(db)->GetCreditCard(credit_card.guid(),
692 &original_credit_card)) { 696 &original_credit_card)) {
693 return WebDatabase::COMMIT_NOT_NEEDED; 697 return WebDatabase::COMMIT_NOT_NEEDED;
694 } 698 }
695 scoped_ptr<CreditCard> scoped_credit_card(original_credit_card); 699 scoped_ptr<CreditCard> scoped_credit_card(original_credit_card);
696 700
697 if (!db->GetAutofillTable()->UpdateCreditCard(credit_card)) { 701 if (!AutofillTable::FromWebDatabase(db)->UpdateCreditCard(credit_card)) {
698 NOTREACHED(); 702 NOTREACHED();
699 return WebDatabase::COMMIT_NOT_NEEDED; 703 return WebDatabase::COMMIT_NOT_NEEDED;
700 } 704 }
701 705
702 // Send GUID-based notification. 706 // Send GUID-based notification.
703 AutofillCreditCardChange change(AutofillCreditCardChange::UPDATE, 707 AutofillCreditCardChange change(AutofillCreditCardChange::UPDATE,
704 credit_card.guid(), &credit_card); 708 credit_card.guid(), &credit_card);
705 content::NotificationService::current()->Notify( 709 content::NotificationService::current()->Notify(
706 chrome::NOTIFICATION_AUTOFILL_CREDIT_CARD_CHANGED, 710 chrome::NOTIFICATION_AUTOFILL_CREDIT_CARD_CHANGED,
707 content::Source<WebDataService>(this), 711 content::Source<WebDataService>(this),
708 content::Details<AutofillCreditCardChange>(&change)); 712 content::Details<AutofillCreditCardChange>(&change));
709 713
710 return WebDatabase::COMMIT_NEEDED; 714 return WebDatabase::COMMIT_NEEDED;
711 } 715 }
712 716
713 WebDatabase::State WebDataService::RemoveCreditCardImpl( 717 WebDatabase::State WebDataService::RemoveCreditCardImpl(
714 const std::string& guid, WebDatabase* db) { 718 const std::string& guid, WebDatabase* db) {
715 if (!db->GetAutofillTable()->RemoveCreditCard(guid)) { 719 if (!AutofillTable::FromWebDatabase(db)->RemoveCreditCard(guid)) {
716 NOTREACHED(); 720 NOTREACHED();
717 return WebDatabase::COMMIT_NOT_NEEDED; 721 return WebDatabase::COMMIT_NOT_NEEDED;
718 } 722 }
719 723
720 // Send GUID-based notification. 724 // Send GUID-based notification.
721 AutofillCreditCardChange change(AutofillCreditCardChange::REMOVE, guid, 725 AutofillCreditCardChange change(AutofillCreditCardChange::REMOVE, guid,
722 NULL); 726 NULL);
723 content::NotificationService::current()->Notify( 727 content::NotificationService::current()->Notify(
724 chrome::NOTIFICATION_AUTOFILL_CREDIT_CARD_CHANGED, 728 chrome::NOTIFICATION_AUTOFILL_CREDIT_CARD_CHANGED,
725 content::Source<WebDataService>(this), 729 content::Source<WebDataService>(this),
726 content::Details<AutofillCreditCardChange>(&change)); 730 content::Details<AutofillCreditCardChange>(&change));
727 731
728 return WebDatabase::COMMIT_NEEDED; 732 return WebDatabase::COMMIT_NEEDED;
729 } 733 }
730 734
731 scoped_ptr<WDTypedResult> WebDataService::GetCreditCardsImpl(WebDatabase* db) { 735 scoped_ptr<WDTypedResult> WebDataService::GetCreditCardsImpl(WebDatabase* db) {
732 std::vector<CreditCard*> credit_cards; 736 std::vector<CreditCard*> credit_cards;
733 db->GetAutofillTable()->GetCreditCards(&credit_cards); 737 AutofillTable::FromWebDatabase(db)->GetCreditCards(&credit_cards);
734 return scoped_ptr<WDTypedResult>( 738 return scoped_ptr<WDTypedResult>(
735 new WDDestroyableResult<std::vector<CreditCard*> >( 739 new WDDestroyableResult<std::vector<CreditCard*> >(
736 AUTOFILL_CREDITCARDS_RESULT, 740 AUTOFILL_CREDITCARDS_RESULT,
737 credit_cards, 741 credit_cards,
738 base::Bind(&WebDataService::DestroyAutofillCreditCardResult, 742 base::Bind(&WebDataService::DestroyAutofillCreditCardResult,
739 base::Unretained(this)))); 743 base::Unretained(this))));
740 } 744 }
741 745
742 WebDatabase::State 746 WebDatabase::State
743 WebDataService::RemoveAutofillProfilesAndCreditCardsModifiedBetweenImpl( 747 WebDataService::RemoveAutofillProfilesAndCreditCardsModifiedBetweenImpl(
744 const base::Time& delete_begin, const base::Time& delete_end, 748 const base::Time& delete_begin, const base::Time& delete_end,
745 WebDatabase* db) { 749 WebDatabase* db) {
746 std::vector<std::string> profile_guids; 750 std::vector<std::string> profile_guids;
747 std::vector<std::string> credit_card_guids; 751 std::vector<std::string> credit_card_guids;
748 if (db->GetAutofillTable()-> 752 if (AutofillTable::FromWebDatabase(db)->
749 RemoveAutofillProfilesAndCreditCardsModifiedBetween( 753 RemoveAutofillProfilesAndCreditCardsModifiedBetween(
750 delete_begin, 754 delete_begin,
751 delete_end, 755 delete_end,
752 &profile_guids, 756 &profile_guids,
753 &credit_card_guids)) { 757 &credit_card_guids)) {
754 for (std::vector<std::string>::iterator iter = profile_guids.begin(); 758 for (std::vector<std::string>::iterator iter = profile_guids.begin();
755 iter != profile_guids.end(); ++iter) { 759 iter != profile_guids.end(); ++iter) {
756 AutofillProfileChange change(AutofillProfileChange::REMOVE, *iter, 760 AutofillProfileChange change(AutofillProfileChange::REMOVE, *iter,
757 NULL); 761 NULL);
758 content::NotificationService::current()->Notify( 762 content::NotificationService::current()->Notify(
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
804 void WebDataService::DestroyAutofillCreditCardResult( 808 void WebDataService::DestroyAutofillCreditCardResult(
805 const WDTypedResult* result) { 809 const WDTypedResult* result) {
806 DCHECK(result->GetType() == AUTOFILL_CREDITCARDS_RESULT); 810 DCHECK(result->GetType() == AUTOFILL_CREDITCARDS_RESULT);
807 const WDResult<std::vector<CreditCard*> >* r = 811 const WDResult<std::vector<CreditCard*> >* r =
808 static_cast<const WDResult<std::vector<CreditCard*> >*>(result); 812 static_cast<const WDResult<std::vector<CreditCard*> >*>(result);
809 813
810 std::vector<CreditCard*> credit_cards = r->GetValue(); 814 std::vector<CreditCard*> credit_cards = r->GetValue();
811 STLDeleteElements(&credit_cards); 815 STLDeleteElements(&credit_cards);
812 } 816 }
813 817
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698