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

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: Fix Windows release builds (COMDAT folding combined static functions being used for keys. 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 "chrome/browser/search_engines/template_url.h" 7 #include "chrome/browser/search_engines/template_url.h"
8 #include "chrome/browser/webdata/autocomplete_syncable_service.h" 8 #include "chrome/browser/webdata/autocomplete_syncable_service.h"
9 #include "chrome/browser/webdata/autofill_change.h" 9 #include "chrome/browser/webdata/autofill_change.h"
10 #include "chrome/browser/webdata/autofill_entry.h" 10 #include "chrome/browser/webdata/autofill_entry.h"
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 } 305 }
306 306
307 //////////////////////////////////////////////////////////////////////////////// 307 ////////////////////////////////////////////////////////////////////////////////
308 // 308 //
309 // Keywords implementation. 309 // Keywords implementation.
310 // 310 //
311 //////////////////////////////////////////////////////////////////////////////// 311 ////////////////////////////////////////////////////////////////////////////////
312 312
313 WebDatabase::State WebDataService::AddKeywordImpl( 313 WebDatabase::State WebDataService::AddKeywordImpl(
314 const TemplateURLData& data, WebDatabase* db) { 314 const TemplateURLData& data, WebDatabase* db) {
315 db->GetKeywordTable()->AddKeyword(data); 315 KeywordTable::FromWebDatabase(db)->AddKeyword(data);
316 return WebDatabase::COMMIT_NEEDED; 316 return WebDatabase::COMMIT_NEEDED;
317 } 317 }
318 318
319 WebDatabase::State WebDataService::RemoveKeywordImpl( 319 WebDatabase::State WebDataService::RemoveKeywordImpl(
320 TemplateURLID id, WebDatabase* db) { 320 TemplateURLID id, WebDatabase* db) {
321 DCHECK(id); 321 DCHECK(id);
322 db->GetKeywordTable()->RemoveKeyword(id); 322 KeywordTable::FromWebDatabase(db)->RemoveKeyword(id);
323 return WebDatabase::COMMIT_NEEDED; 323 return WebDatabase::COMMIT_NEEDED;
324 } 324 }
325 325
326 WebDatabase::State WebDataService::UpdateKeywordImpl( 326 WebDatabase::State WebDataService::UpdateKeywordImpl(
327 const TemplateURLData& data, WebDatabase* db) { 327 const TemplateURLData& data, WebDatabase* db) {
328 if (!db->GetKeywordTable()->UpdateKeyword(data)) { 328 if (!KeywordTable::FromWebDatabase(db)->UpdateKeyword(data)) {
329 NOTREACHED(); 329 NOTREACHED();
330 return WebDatabase::COMMIT_NOT_NEEDED; 330 return WebDatabase::COMMIT_NOT_NEEDED;
331 } 331 }
332 return WebDatabase::COMMIT_NEEDED; 332 return WebDatabase::COMMIT_NEEDED;
333 } 333 }
334 334
335 scoped_ptr<WDTypedResult> WebDataService::GetKeywordsImpl(WebDatabase* db) { 335 scoped_ptr<WDTypedResult> WebDataService::GetKeywordsImpl(WebDatabase* db) {
336 WDKeywordsResult result; 336 WDKeywordsResult result;
337 db->GetKeywordTable()->GetKeywords(&result.keywords); 337 KeywordTable::FromWebDatabase(db)->GetKeywords(&result.keywords);
338 result.default_search_provider_id = 338 result.default_search_provider_id =
339 db->GetKeywordTable()->GetDefaultSearchProviderID(); 339 KeywordTable::FromWebDatabase(db)->GetDefaultSearchProviderID();
340 result.builtin_keyword_version = 340 result.builtin_keyword_version =
341 db->GetKeywordTable()->GetBuiltinKeywordVersion(); 341 KeywordTable::FromWebDatabase(db)->GetBuiltinKeywordVersion();
342 return scoped_ptr<WDTypedResult>( 342 return scoped_ptr<WDTypedResult>(
343 new WDResult<WDKeywordsResult>(KEYWORDS_RESULT, result)); 343 new WDResult<WDKeywordsResult>(KEYWORDS_RESULT, result));
344 } 344 }
345 345
346 WebDatabase::State WebDataService::SetDefaultSearchProviderImpl( 346 WebDatabase::State WebDataService::SetDefaultSearchProviderImpl(
347 TemplateURLID id, WebDatabase* db) { 347 TemplateURLID id, WebDatabase* db) {
348 if (!db->GetKeywordTable()->SetDefaultSearchProviderID(id)) { 348 if (!KeywordTable::FromWebDatabase(db)->SetDefaultSearchProviderID(id)) {
349 NOTREACHED(); 349 NOTREACHED();
350 return WebDatabase::COMMIT_NOT_NEEDED; 350 return WebDatabase::COMMIT_NOT_NEEDED;
351 } 351 }
352 return WebDatabase::COMMIT_NEEDED; 352 return WebDatabase::COMMIT_NEEDED;
353 } 353 }
354 354
355 WebDatabase::State WebDataService::SetBuiltinKeywordVersionImpl( 355 WebDatabase::State WebDataService::SetBuiltinKeywordVersionImpl(
356 int version, WebDatabase* db) { 356 int version, WebDatabase* db) {
357 if (!db->GetKeywordTable()->SetBuiltinKeywordVersion(version)) { 357 if (!KeywordTable::FromWebDatabase(db)->SetBuiltinKeywordVersion(version)) {
358 NOTREACHED(); 358 NOTREACHED();
359 return WebDatabase::COMMIT_NOT_NEEDED; 359 return WebDatabase::COMMIT_NOT_NEEDED;
360 } 360 }
361 return WebDatabase::COMMIT_NEEDED; 361 return WebDatabase::COMMIT_NEEDED;
362 } 362 }
363 363
364 //////////////////////////////////////////////////////////////////////////////// 364 ////////////////////////////////////////////////////////////////////////////////
365 // 365 //
366 // Web Apps implementation. 366 // Web Apps implementation.
367 // 367 //
368 //////////////////////////////////////////////////////////////////////////////// 368 ////////////////////////////////////////////////////////////////////////////////
369 369
370 WebDatabase::State WebDataService::SetWebAppImageImpl( 370 WebDatabase::State WebDataService::SetWebAppImageImpl(
371 const GURL& app_url, const SkBitmap& image, WebDatabase* db) { 371 const GURL& app_url, const SkBitmap& image, WebDatabase* db) {
372 db->GetWebAppsTable()->SetWebAppImage(app_url, image); 372 WebAppsTable::FromWebDatabase(db)->SetWebAppImage(app_url, image);
373 return WebDatabase::COMMIT_NEEDED; 373 return WebDatabase::COMMIT_NEEDED;
374 } 374 }
375 375
376 WebDatabase::State WebDataService::SetWebAppHasAllImagesImpl( 376 WebDatabase::State WebDataService::SetWebAppHasAllImagesImpl(
377 const GURL& app_url, bool has_all_images, WebDatabase* db) { 377 const GURL& app_url, bool has_all_images, WebDatabase* db) {
378 db->GetWebAppsTable()-> 378 WebAppsTable::FromWebDatabase(db)->SetWebAppHasAllImages(app_url,
379 SetWebAppHasAllImages(app_url, has_all_images); 379 has_all_images);
380 return WebDatabase::COMMIT_NEEDED; 380 return WebDatabase::COMMIT_NEEDED;
381 } 381 }
382 382
383 WebDatabase::State WebDataService::RemoveWebAppImpl( 383 WebDatabase::State WebDataService::RemoveWebAppImpl(
384 const GURL& app_url, WebDatabase* db) { 384 const GURL& app_url, WebDatabase* db) {
385 db->GetWebAppsTable()->RemoveWebApp(app_url); 385 WebAppsTable::FromWebDatabase(db)->RemoveWebApp(app_url);
386 return WebDatabase::COMMIT_NEEDED; 386 return WebDatabase::COMMIT_NEEDED;
387 } 387 }
388 388
389 scoped_ptr<WDTypedResult> WebDataService::GetWebAppImagesImpl( 389 scoped_ptr<WDTypedResult> WebDataService::GetWebAppImagesImpl(
390 const GURL& app_url, WebDatabase* db) { 390 const GURL& app_url, WebDatabase* db) {
391 WDAppImagesResult result; 391 WDAppImagesResult result;
392 result.has_all_images = db->GetWebAppsTable()->GetWebAppHasAllImages(app_url); 392 result.has_all_images =
393 db->GetWebAppsTable()->GetWebAppImages(app_url, &result.images); 393 WebAppsTable::FromWebDatabase(db)->GetWebAppHasAllImages(app_url);
394 WebAppsTable::FromWebDatabase(db)->GetWebAppImages(app_url, &result.images);
394 return scoped_ptr<WDTypedResult>( 395 return scoped_ptr<WDTypedResult>(
395 new WDResult<WDAppImagesResult>(WEB_APP_IMAGES, result)); 396 new WDResult<WDAppImagesResult>(WEB_APP_IMAGES, result));
396 } 397 }
397 398
398 //////////////////////////////////////////////////////////////////////////////// 399 ////////////////////////////////////////////////////////////////////////////////
399 // 400 //
400 // Token Service implementation. 401 // Token Service implementation.
401 // 402 //
402 //////////////////////////////////////////////////////////////////////////////// 403 ////////////////////////////////////////////////////////////////////////////////
403 404
404 WebDatabase::State WebDataService::RemoveAllTokensImpl(WebDatabase* db) { 405 WebDatabase::State WebDataService::RemoveAllTokensImpl(WebDatabase* db) {
405 if (db->GetTokenServiceTable()->RemoveAllTokens()) { 406 if (TokenServiceTable::FromWebDatabase(db)->RemoveAllTokens()) {
406 return WebDatabase::COMMIT_NEEDED; 407 return WebDatabase::COMMIT_NEEDED;
407 } 408 }
408 return WebDatabase::COMMIT_NOT_NEEDED; 409 return WebDatabase::COMMIT_NOT_NEEDED;
409 } 410 }
410 411
411 WebDatabase::State WebDataService::SetTokenForServiceImpl( 412 WebDatabase::State WebDataService::SetTokenForServiceImpl(
412 const std::string& service, const std::string& token, WebDatabase* db) { 413 const std::string& service, const std::string& token, WebDatabase* db) {
413 if (db->GetTokenServiceTable()->SetTokenForService(service, token)) { 414 if (TokenServiceTable::FromWebDatabase(db)->SetTokenForService(service,
415 token)) {
414 return WebDatabase::COMMIT_NEEDED; 416 return WebDatabase::COMMIT_NEEDED;
415 } 417 }
416 return WebDatabase::COMMIT_NOT_NEEDED; 418 return WebDatabase::COMMIT_NOT_NEEDED;
417 } 419 }
418 420
419 scoped_ptr<WDTypedResult> WebDataService::GetAllTokensImpl(WebDatabase* db) { 421 scoped_ptr<WDTypedResult> WebDataService::GetAllTokensImpl(WebDatabase* db) {
420 std::map<std::string, std::string> map; 422 std::map<std::string, std::string> map;
421 db->GetTokenServiceTable()->GetAllTokens(&map); 423 TokenServiceTable::FromWebDatabase(db)->GetAllTokens(&map);
422 return scoped_ptr<WDTypedResult>( 424 return scoped_ptr<WDTypedResult>(
423 new WDResult<std::map<std::string, std::string> >(TOKEN_RESULT, map)); 425 new WDResult<std::map<std::string, std::string> >(TOKEN_RESULT, map));
424 } 426 }
425 427
426 //////////////////////////////////////////////////////////////////////////////// 428 ////////////////////////////////////////////////////////////////////////////////
427 // 429 //
428 // Autofill implementation. 430 // Autofill implementation.
429 // 431 //
430 //////////////////////////////////////////////////////////////////////////////// 432 ////////////////////////////////////////////////////////////////////////////////
431 433
432 WebDatabase::State WebDataService::AddFormElementsImpl( 434 WebDatabase::State WebDataService::AddFormElementsImpl(
433 const std::vector<FormFieldData>& fields, WebDatabase* db) { 435 const std::vector<FormFieldData>& fields, WebDatabase* db) {
434 AutofillChangeList changes; 436 AutofillChangeList changes;
435 if (!db->GetAutofillTable()->AddFormFieldValues(fields, &changes)) { 437 if (!AutofillTable::FromWebDatabase(db)->AddFormFieldValues(
438 fields, &changes)) {
436 NOTREACHED(); 439 NOTREACHED();
437 return WebDatabase::COMMIT_NOT_NEEDED; 440 return WebDatabase::COMMIT_NOT_NEEDED;
438 } 441 }
439 442
440 // Post the notifications including the list of affected keys. 443 // Post the notifications including the list of affected keys.
441 // This is sent here so that work resulting from this notification will be 444 // This is sent here so that work resulting from this notification will be
442 // done on the DB thread, and not the UI thread. 445 // done on the DB thread, and not the UI thread.
443 content::NotificationService::current()->Notify( 446 content::NotificationService::current()->Notify(
444 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED, 447 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED,
445 content::Source<WebDataService>(this), 448 content::Source<WebDataService>(this),
446 content::Details<AutofillChangeList>(&changes)); 449 content::Details<AutofillChangeList>(&changes));
447 450
448 return WebDatabase::COMMIT_NEEDED; 451 return WebDatabase::COMMIT_NEEDED;
449 } 452 }
450 453
451 scoped_ptr<WDTypedResult> WebDataService::GetFormValuesForElementNameImpl( 454 scoped_ptr<WDTypedResult> WebDataService::GetFormValuesForElementNameImpl(
452 const string16& name, const string16& prefix, int limit, WebDatabase* db) { 455 const string16& name, const string16& prefix, int limit, WebDatabase* db) {
453 std::vector<string16> values; 456 std::vector<string16> values;
454 db->GetAutofillTable()->GetFormValuesForElementName( 457 AutofillTable::FromWebDatabase(db)->GetFormValuesForElementName(
455 name, prefix, &values, limit); 458 name, prefix, &values, limit);
456 return scoped_ptr<WDTypedResult>( 459 return scoped_ptr<WDTypedResult>(
457 new WDResult<std::vector<string16> >(AUTOFILL_VALUE_RESULT, values)); 460 new WDResult<std::vector<string16> >(AUTOFILL_VALUE_RESULT, values));
458 } 461 }
459 462
460 WebDatabase::State WebDataService::RemoveFormElementsAddedBetweenImpl( 463 WebDatabase::State WebDataService::RemoveFormElementsAddedBetweenImpl(
461 const base::Time& delete_begin, const base::Time& delete_end, 464 const base::Time& delete_begin, const base::Time& delete_end,
462 WebDatabase* db) { 465 WebDatabase* db) {
463 AutofillChangeList changes; 466 AutofillChangeList changes;
464 467
465 if (db->GetAutofillTable()->RemoveFormElementsAddedBetween( 468 if (AutofillTable::FromWebDatabase(db)->RemoveFormElementsAddedBetween(
466 delete_begin, delete_end, &changes)) { 469 delete_begin, delete_end, &changes)) {
467 if (!changes.empty()) { 470 if (!changes.empty()) {
468 // Post the notifications including the list of affected keys. 471 // Post the notifications including the list of affected keys.
469 // This is sent here so that work resulting from this notification 472 // This is sent here so that work resulting from this notification
470 // will be done on the DB thread, and not the UI thread. 473 // will be done on the DB thread, and not the UI thread.
471 content::NotificationService::current()->Notify( 474 content::NotificationService::current()->Notify(
472 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED, 475 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED,
473 content::Source<WebDataService>(this), 476 content::Source<WebDataService>(this),
474 content::Details<AutofillChangeList>(&changes)); 477 content::Details<AutofillChangeList>(&changes));
475 } 478 }
476 return WebDatabase::COMMIT_NEEDED; 479 return WebDatabase::COMMIT_NEEDED;
477 } 480 }
478 return WebDatabase::COMMIT_NOT_NEEDED; 481 return WebDatabase::COMMIT_NOT_NEEDED;
479 } 482 }
480 483
481 WebDatabase::State WebDataService::RemoveExpiredFormElementsImpl( 484 WebDatabase::State WebDataService::RemoveExpiredFormElementsImpl(
482 WebDatabase* db) { 485 WebDatabase* db) {
483 AutofillChangeList changes; 486 AutofillChangeList changes;
484 487
485 if (db->GetAutofillTable()->RemoveExpiredFormElements(&changes)) { 488 if (AutofillTable::FromWebDatabase(db)->RemoveExpiredFormElements(&changes)) {
486 if (!changes.empty()) { 489 if (!changes.empty()) {
487 // Post the notifications including the list of affected keys. 490 // Post the notifications including the list of affected keys.
488 // This is sent here so that work resulting from this notification 491 // This is sent here so that work resulting from this notification
489 // will be done on the DB thread, and not the UI thread. 492 // will be done on the DB thread, and not the UI thread.
490 content::NotificationService::current()->Notify( 493 content::NotificationService::current()->Notify(
491 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED, 494 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED,
492 content::Source<WebDataService>(this), 495 content::Source<WebDataService>(this),
493 content::Details<AutofillChangeList>(&changes)); 496 content::Details<AutofillChangeList>(&changes));
494 } 497 }
495 return WebDatabase::COMMIT_NEEDED; 498 return WebDatabase::COMMIT_NEEDED;
496 } 499 }
497 return WebDatabase::COMMIT_NOT_NEEDED; 500 return WebDatabase::COMMIT_NOT_NEEDED;
498 } 501 }
499 502
500 WebDatabase::State WebDataService::RemoveFormValueForElementNameImpl( 503 WebDatabase::State WebDataService::RemoveFormValueForElementNameImpl(
501 const string16& name, const string16& value, WebDatabase* db) { 504 const string16& name, const string16& value, WebDatabase* db) {
502 505
503 if (db->GetAutofillTable()->RemoveFormElement(name, value)) { 506 if (AutofillTable::FromWebDatabase(db)->RemoveFormElement(name, value)) {
504 AutofillChangeList changes; 507 AutofillChangeList changes;
505 changes.push_back(AutofillChange(AutofillChange::REMOVE, 508 changes.push_back(AutofillChange(AutofillChange::REMOVE,
506 AutofillKey(name, value))); 509 AutofillKey(name, value)));
507 510
508 // Post the notifications including the list of affected keys. 511 // Post the notifications including the list of affected keys.
509 content::NotificationService::current()->Notify( 512 content::NotificationService::current()->Notify(
510 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED, 513 chrome::NOTIFICATION_AUTOFILL_ENTRIES_CHANGED,
511 content::Source<WebDataService>(this), 514 content::Source<WebDataService>(this),
512 content::Details<AutofillChangeList>(&changes)); 515 content::Details<AutofillChangeList>(&changes));
513 516
514 return WebDatabase::COMMIT_NEEDED; 517 return WebDatabase::COMMIT_NEEDED;
515 } 518 }
516 return WebDatabase::COMMIT_NOT_NEEDED; 519 return WebDatabase::COMMIT_NOT_NEEDED;
517 } 520 }
518 521
519 WebDatabase::State WebDataService::AddAutofillProfileImpl( 522 WebDatabase::State WebDataService::AddAutofillProfileImpl(
520 const AutofillProfile& profile, WebDatabase* db) { 523 const AutofillProfile& profile, WebDatabase* db) {
521 if (!db->GetAutofillTable()->AddAutofillProfile(profile)) { 524 if (!AutofillTable::FromWebDatabase(db)->AddAutofillProfile(profile)) {
522 NOTREACHED(); 525 NOTREACHED();
523 return WebDatabase::COMMIT_NOT_NEEDED; 526 return WebDatabase::COMMIT_NOT_NEEDED;
524 } 527 }
525 528
526 // Send GUID-based notification. 529 // Send GUID-based notification.
527 AutofillProfileChange change(AutofillProfileChange::ADD, 530 AutofillProfileChange change(AutofillProfileChange::ADD,
528 profile.guid(), &profile); 531 profile.guid(), &profile);
529 content::NotificationService::current()->Notify( 532 content::NotificationService::current()->Notify(
530 chrome::NOTIFICATION_AUTOFILL_PROFILE_CHANGED, 533 chrome::NOTIFICATION_AUTOFILL_PROFILE_CHANGED,
531 content::Source<WebDataService>(this), 534 content::Source<WebDataService>(this),
532 content::Details<AutofillProfileChange>(&change)); 535 content::Details<AutofillProfileChange>(&change));
533 536
534 return WebDatabase::COMMIT_NEEDED; 537 return WebDatabase::COMMIT_NEEDED;
535 } 538 }
536 539
537 WebDatabase::State WebDataService::UpdateAutofillProfileImpl( 540 WebDatabase::State WebDataService::UpdateAutofillProfileImpl(
538 const AutofillProfile& profile, WebDatabase* db) { 541 const AutofillProfile& profile, WebDatabase* db) {
539 // Only perform the update if the profile exists. It is currently 542 // Only perform the update if the profile exists. It is currently
540 // valid to try to update a missing profile. We simply drop the write and 543 // valid to try to update a missing profile. We simply drop the write and
541 // the caller will detect this on the next refresh. 544 // the caller will detect this on the next refresh.
542 AutofillProfile* original_profile = NULL; 545 AutofillProfile* original_profile = NULL;
543 if (!db->GetAutofillTable()->GetAutofillProfile(profile.guid(), 546 if (!AutofillTable::FromWebDatabase(db)->GetAutofillProfile(profile.guid(),
544 &original_profile)) { 547 &original_profile)) {
545 return WebDatabase::COMMIT_NOT_NEEDED; 548 return WebDatabase::COMMIT_NOT_NEEDED;
546 } 549 }
547 scoped_ptr<AutofillProfile> scoped_profile(original_profile); 550 scoped_ptr<AutofillProfile> scoped_profile(original_profile);
548 551
549 if (!db->GetAutofillTable()->UpdateAutofillProfileMulti(profile)) { 552 if (!AutofillTable::FromWebDatabase(db)->UpdateAutofillProfileMulti(
553 profile)) {
550 NOTREACHED(); 554 NOTREACHED();
551 return WebDatabase::COMMIT_NEEDED; 555 return WebDatabase::COMMIT_NEEDED;
552 } 556 }
553 557
554 // Send GUID-based notification. 558 // Send GUID-based notification.
555 AutofillProfileChange change(AutofillProfileChange::UPDATE, 559 AutofillProfileChange change(AutofillProfileChange::UPDATE,
556 profile.guid(), &profile); 560 profile.guid(), &profile);
557 content::NotificationService::current()->Notify( 561 content::NotificationService::current()->Notify(
558 chrome::NOTIFICATION_AUTOFILL_PROFILE_CHANGED, 562 chrome::NOTIFICATION_AUTOFILL_PROFILE_CHANGED,
559 content::Source<WebDataService>(this), 563 content::Source<WebDataService>(this),
560 content::Details<AutofillProfileChange>(&change)); 564 content::Details<AutofillProfileChange>(&change));
561 565
562 return WebDatabase::COMMIT_NEEDED; 566 return WebDatabase::COMMIT_NEEDED;
563 } 567 }
564 568
565 WebDatabase::State WebDataService::RemoveAutofillProfileImpl( 569 WebDatabase::State WebDataService::RemoveAutofillProfileImpl(
566 const std::string& guid, WebDatabase* db) { 570 const std::string& guid, WebDatabase* db) {
567 AutofillProfile* profile = NULL; 571 AutofillProfile* profile = NULL;
568 if (!db->GetAutofillTable()->GetAutofillProfile(guid, &profile)) { 572 if (!AutofillTable::FromWebDatabase(db)->GetAutofillProfile(guid, &profile)) {
569 NOTREACHED(); 573 NOTREACHED();
570 return WebDatabase::COMMIT_NOT_NEEDED; 574 return WebDatabase::COMMIT_NOT_NEEDED;
571 } 575 }
572 scoped_ptr<AutofillProfile> scoped_profile(profile); 576 scoped_ptr<AutofillProfile> scoped_profile(profile);
573 577
574 if (!db->GetAutofillTable()->RemoveAutofillProfile(guid)) { 578 if (!AutofillTable::FromWebDatabase(db)->RemoveAutofillProfile(guid)) {
575 NOTREACHED(); 579 NOTREACHED();
576 return WebDatabase::COMMIT_NOT_NEEDED; 580 return WebDatabase::COMMIT_NOT_NEEDED;
577 } 581 }
578 582
579 // Send GUID-based notification. 583 // Send GUID-based notification.
580 AutofillProfileChange change(AutofillProfileChange::REMOVE, guid, NULL); 584 AutofillProfileChange change(AutofillProfileChange::REMOVE, guid, NULL);
581 content::NotificationService::current()->Notify( 585 content::NotificationService::current()->Notify(
582 chrome::NOTIFICATION_AUTOFILL_PROFILE_CHANGED, 586 chrome::NOTIFICATION_AUTOFILL_PROFILE_CHANGED,
583 content::Source<WebDataService>(this), 587 content::Source<WebDataService>(this),
584 content::Details<AutofillProfileChange>(&change)); 588 content::Details<AutofillProfileChange>(&change));
585 589
586 return WebDatabase::COMMIT_NEEDED; 590 return WebDatabase::COMMIT_NEEDED;
587 } 591 }
588 592
589 scoped_ptr<WDTypedResult> WebDataService::GetAutofillProfilesImpl( 593 scoped_ptr<WDTypedResult> WebDataService::GetAutofillProfilesImpl(
590 WebDatabase* db) { 594 WebDatabase* db) {
591 std::vector<AutofillProfile*> profiles; 595 std::vector<AutofillProfile*> profiles;
592 db->GetAutofillTable()->GetAutofillProfiles(&profiles); 596 AutofillTable::FromWebDatabase(db)->GetAutofillProfiles(&profiles);
593 return scoped_ptr<WDTypedResult>( 597 return scoped_ptr<WDTypedResult>(
594 new WDDestroyableResult<std::vector<AutofillProfile*> >( 598 new WDDestroyableResult<std::vector<AutofillProfile*> >(
595 AUTOFILL_PROFILES_RESULT, 599 AUTOFILL_PROFILES_RESULT,
596 profiles, 600 profiles,
597 base::Bind(&WebDataService::DestroyAutofillProfileResult, 601 base::Bind(&WebDataService::DestroyAutofillProfileResult,
598 base::Unretained(this)))); 602 base::Unretained(this))));
599 } 603 }
600 604
601 WebDatabase::State WebDataService::AddCreditCardImpl( 605 WebDatabase::State WebDataService::AddCreditCardImpl(
602 const CreditCard& credit_card, WebDatabase* db) { 606 const CreditCard& credit_card, WebDatabase* db) {
603 if (!db->GetAutofillTable()->AddCreditCard(credit_card)) { 607 if (!AutofillTable::FromWebDatabase(db)->AddCreditCard(credit_card)) {
604 NOTREACHED(); 608 NOTREACHED();
605 return WebDatabase::COMMIT_NOT_NEEDED; 609 return WebDatabase::COMMIT_NOT_NEEDED;
606 } 610 }
607 611
608 return WebDatabase::COMMIT_NEEDED; 612 return WebDatabase::COMMIT_NEEDED;
609 } 613 }
610 614
611 WebDatabase::State WebDataService::UpdateCreditCardImpl( 615 WebDatabase::State WebDataService::UpdateCreditCardImpl(
612 const CreditCard& credit_card, WebDatabase* db) { 616 const CreditCard& credit_card, WebDatabase* db) {
613 // It is currently valid to try to update a missing profile. We simply drop 617 // It is currently valid to try to update a missing profile. We simply drop
614 // the write and the caller will detect this on the next refresh. 618 // the write and the caller will detect this on the next refresh.
615 CreditCard* original_credit_card = NULL; 619 CreditCard* original_credit_card = NULL;
616 if (!db->GetAutofillTable()->GetCreditCard(credit_card.guid(), 620 if (!AutofillTable::FromWebDatabase(db)->GetCreditCard(credit_card.guid(),
617 &original_credit_card)) { 621 &original_credit_card)) {
618 return WebDatabase::COMMIT_NOT_NEEDED; 622 return WebDatabase::COMMIT_NOT_NEEDED;
619 } 623 }
620 scoped_ptr<CreditCard> scoped_credit_card(original_credit_card); 624 scoped_ptr<CreditCard> scoped_credit_card(original_credit_card);
621 625
622 if (!db->GetAutofillTable()->UpdateCreditCard(credit_card)) { 626 if (!AutofillTable::FromWebDatabase(db)->UpdateCreditCard(credit_card)) {
623 NOTREACHED(); 627 NOTREACHED();
624 return WebDatabase::COMMIT_NOT_NEEDED; 628 return WebDatabase::COMMIT_NOT_NEEDED;
625 } 629 }
626 return WebDatabase::COMMIT_NEEDED; 630 return WebDatabase::COMMIT_NEEDED;
627 } 631 }
628 632
629 WebDatabase::State WebDataService::RemoveCreditCardImpl( 633 WebDatabase::State WebDataService::RemoveCreditCardImpl(
630 const std::string& guid, WebDatabase* db) { 634 const std::string& guid, WebDatabase* db) {
631 if (!db->GetAutofillTable()->RemoveCreditCard(guid)) { 635 if (!AutofillTable::FromWebDatabase(db)->RemoveCreditCard(guid)) {
632 NOTREACHED(); 636 NOTREACHED();
633 return WebDatabase::COMMIT_NOT_NEEDED; 637 return WebDatabase::COMMIT_NOT_NEEDED;
634 } 638 }
635 return WebDatabase::COMMIT_NEEDED; 639 return WebDatabase::COMMIT_NEEDED;
636 } 640 }
637 641
638 scoped_ptr<WDTypedResult> WebDataService::GetCreditCardsImpl(WebDatabase* db) { 642 scoped_ptr<WDTypedResult> WebDataService::GetCreditCardsImpl(WebDatabase* db) {
639 std::vector<CreditCard*> credit_cards; 643 std::vector<CreditCard*> credit_cards;
640 db->GetAutofillTable()->GetCreditCards(&credit_cards); 644 AutofillTable::FromWebDatabase(db)->GetCreditCards(&credit_cards);
641 return scoped_ptr<WDTypedResult>( 645 return scoped_ptr<WDTypedResult>(
642 new WDDestroyableResult<std::vector<CreditCard*> >( 646 new WDDestroyableResult<std::vector<CreditCard*> >(
643 AUTOFILL_CREDITCARDS_RESULT, 647 AUTOFILL_CREDITCARDS_RESULT,
644 credit_cards, 648 credit_cards,
645 base::Bind(&WebDataService::DestroyAutofillCreditCardResult, 649 base::Bind(&WebDataService::DestroyAutofillCreditCardResult,
646 base::Unretained(this)))); 650 base::Unretained(this))));
647 } 651 }
648 652
649 WebDatabase::State 653 WebDatabase::State
650 WebDataService::RemoveAutofillProfilesAndCreditCardsModifiedBetweenImpl( 654 WebDataService::RemoveAutofillProfilesAndCreditCardsModifiedBetweenImpl(
651 const base::Time& delete_begin, const base::Time& delete_end, 655 const base::Time& delete_begin, const base::Time& delete_end,
652 WebDatabase* db) { 656 WebDatabase* db) {
653 std::vector<std::string> profile_guids; 657 std::vector<std::string> profile_guids;
654 std::vector<std::string> credit_card_guids; 658 std::vector<std::string> credit_card_guids;
655 if (db->GetAutofillTable()-> 659 if (AutofillTable::FromWebDatabase(db)->
656 RemoveAutofillProfilesAndCreditCardsModifiedBetween( 660 RemoveAutofillProfilesAndCreditCardsModifiedBetween(
657 delete_begin, 661 delete_begin,
658 delete_end, 662 delete_end,
659 &profile_guids, 663 &profile_guids,
660 &credit_card_guids)) { 664 &credit_card_guids)) {
661 for (std::vector<std::string>::iterator iter = profile_guids.begin(); 665 for (std::vector<std::string>::iterator iter = profile_guids.begin();
662 iter != profile_guids.end(); ++iter) { 666 iter != profile_guids.end(); ++iter) {
663 AutofillProfileChange change(AutofillProfileChange::REMOVE, *iter, 667 AutofillProfileChange change(AutofillProfileChange::REMOVE, *iter,
664 NULL); 668 NULL);
665 content::NotificationService::current()->Notify( 669 content::NotificationService::current()->Notify(
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 704
701 void WebDataService::DestroyAutofillCreditCardResult( 705 void WebDataService::DestroyAutofillCreditCardResult(
702 const WDTypedResult* result) { 706 const WDTypedResult* result) {
703 DCHECK(result->GetType() == AUTOFILL_CREDITCARDS_RESULT); 707 DCHECK(result->GetType() == AUTOFILL_CREDITCARDS_RESULT);
704 const WDResult<std::vector<CreditCard*> >* r = 708 const WDResult<std::vector<CreditCard*> >* r =
705 static_cast<const WDResult<std::vector<CreditCard*> >*>(result); 709 static_cast<const WDResult<std::vector<CreditCard*> >*>(result);
706 710
707 std::vector<CreditCard*> credit_cards = r->GetValue(); 711 std::vector<CreditCard*> credit_cards = r->GetValue();
708 STLDeleteElements(&credit_cards); 712 STLDeleteElements(&credit_cards);
709 } 713 }
OLDNEW
« no previous file with comments | « chrome/browser/webdata/web_apps_table_unittest.cc ('k') | chrome/browser/webdata/web_data_service_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698