| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/search_engines/template_url_service.h" | 5 #include "chrome/browser/search_engines/template_url_service.h" |
| 6 | 6 |
| 7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/environment.h" | 9 #include "base/environment.h" |
| 10 #include "base/i18n/case_conversion.h" | 10 #include "base/i18n/case_conversion.h" |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 (elem1.first < elem2.first); | 99 (elem1.first < elem2.first); |
| 100 } | 100 } |
| 101 }; | 101 }; |
| 102 | 102 |
| 103 TemplateURLService::TemplateURLService(Profile* profile) | 103 TemplateURLService::TemplateURLService(Profile* profile) |
| 104 : profile_(profile), | 104 : profile_(profile), |
| 105 loaded_(false), | 105 loaded_(false), |
| 106 load_failed_(false), | 106 load_failed_(false), |
| 107 load_handle_(0), | 107 load_handle_(0), |
| 108 default_search_provider_(NULL), | 108 default_search_provider_(NULL), |
| 109 backup_default_search_provider_(NULL), |
| 110 is_default_search_provider_verified_(false), |
| 109 is_default_search_managed_(false), | 111 is_default_search_managed_(false), |
| 110 next_id_(1), | 112 next_id_(1), |
| 111 time_provider_(&base::Time::Now), | 113 time_provider_(&base::Time::Now), |
| 112 models_associated_(false), | 114 models_associated_(false), |
| 113 processing_syncer_changes_(false), | 115 processing_syncer_changes_(false), |
| 114 sync_processor_(NULL) { | 116 sync_processor_(NULL) { |
| 115 DCHECK(profile_); | 117 DCHECK(profile_); |
| 116 Init(NULL, 0); | 118 Init(NULL, 0); |
| 117 } | 119 } |
| 118 | 120 |
| 119 TemplateURLService::TemplateURLService(const Initializer* initializers, | 121 TemplateURLService::TemplateURLService(const Initializer* initializers, |
| 120 const int count) | 122 const int count) |
| 121 : profile_(NULL), | 123 : profile_(NULL), |
| 122 loaded_(false), | 124 loaded_(false), |
| 123 load_failed_(false), | 125 load_failed_(false), |
| 124 load_handle_(0), | 126 load_handle_(0), |
| 125 service_(NULL), | 127 service_(NULL), |
| 126 default_search_provider_(NULL), | 128 default_search_provider_(NULL), |
| 129 backup_default_search_provider_(NULL), |
| 130 is_default_search_provider_verified_(false), |
| 127 is_default_search_managed_(false), | 131 is_default_search_managed_(false), |
| 128 next_id_(1), | 132 next_id_(1), |
| 129 time_provider_(&base::Time::Now), | 133 time_provider_(&base::Time::Now), |
| 130 models_associated_(false), | 134 models_associated_(false), |
| 131 processing_syncer_changes_(false), | 135 processing_syncer_changes_(false), |
| 132 sync_processor_(NULL) { | 136 sync_processor_(NULL) { |
| 133 Init(initializers, count); | 137 Init(initializers, count); |
| 134 } | 138 } |
| 135 | 139 |
| 136 TemplateURLService::~TemplateURLService() { | 140 TemplateURLService::~TemplateURLService() { |
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 443 } | 447 } |
| 444 | 448 |
| 445 const TemplateURL* TemplateURLService::GetDefaultSearchProvider() { | 449 const TemplateURL* TemplateURLService::GetDefaultSearchProvider() { |
| 446 if (loaded_ && !load_failed_) | 450 if (loaded_ && !load_failed_) |
| 447 return default_search_provider_; | 451 return default_search_provider_; |
| 448 | 452 |
| 449 // We're not loaded, rely on the default search provider stored in prefs. | 453 // We're not loaded, rely on the default search provider stored in prefs. |
| 450 return initial_default_search_provider_.get(); | 454 return initial_default_search_provider_.get(); |
| 451 } | 455 } |
| 452 | 456 |
| 457 void TemplateURLService::SetVerifiedDefaultSearchProvider( |
| 458 const TemplateURL* url) { |
| 459 if (is_default_search_managed_) { |
| 460 NOTREACHED(); |
| 461 return; |
| 462 } |
| 463 if (default_search_provider_ == url && |
| 464 backup_default_search_provider_ == url && |
| 465 is_default_search_provider_verified_) |
| 466 return; |
| 467 SetDefaultSearchProviderNoNotify(url); |
| 468 backup_default_search_provider_ = url; |
| 469 is_default_search_provider_verified_ = true; |
| 470 NotifyObservers(); |
| 471 } |
| 472 |
| 453 void TemplateURLService::AddObserver(TemplateURLServiceObserver* observer) { | 473 void TemplateURLService::AddObserver(TemplateURLServiceObserver* observer) { |
| 454 model_observers_.AddObserver(observer); | 474 model_observers_.AddObserver(observer); |
| 455 } | 475 } |
| 456 | 476 |
| 457 void TemplateURLService::RemoveObserver(TemplateURLServiceObserver* observer) { | 477 void TemplateURLService::RemoveObserver(TemplateURLServiceObserver* observer) { |
| 458 model_observers_.RemoveObserver(observer); | 478 model_observers_.RemoveObserver(observer); |
| 459 } | 479 } |
| 460 | 480 |
| 461 void TemplateURLService::Load() { | 481 void TemplateURLService::Load() { |
| 462 if (loaded_ || load_handle_) | 482 if (loaded_ || load_handle_) |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 499 int new_resource_keyword_version = 0; | 519 int new_resource_keyword_version = 0; |
| 500 GetSearchProvidersUsingKeywordResult(*result, | 520 GetSearchProvidersUsingKeywordResult(*result, |
| 501 service_.get(), | 521 service_.get(), |
| 502 GetPrefs(), | 522 GetPrefs(), |
| 503 &template_urls, | 523 &template_urls, |
| 504 &default_search_provider, | 524 &default_search_provider, |
| 505 &new_resource_keyword_version); | 525 &new_resource_keyword_version); |
| 506 | 526 |
| 507 bool database_specified_a_default = NULL != default_search_provider; | 527 bool database_specified_a_default = NULL != default_search_provider; |
| 508 | 528 |
| 529 backup_default_search_provider_ = NULL; |
| 530 is_default_search_provider_verified_ = |
| 531 VerifyDefaultSearchProviderUsingKeywordResult( |
| 532 *result, |
| 533 template_urls, |
| 534 &backup_default_search_provider_); |
| 535 |
| 509 // Check if default search provider is now managed. | 536 // Check if default search provider is now managed. |
| 510 scoped_ptr<TemplateURL> default_from_prefs; | 537 scoped_ptr<TemplateURL> default_from_prefs; |
| 511 LoadDefaultSearchProviderFromPrefs(&default_from_prefs, | 538 LoadDefaultSearchProviderFromPrefs(&default_from_prefs, |
| 512 &is_default_search_managed_); | 539 &is_default_search_managed_); |
| 513 | 540 |
| 514 // Remove entries that were created because of policy as they may have | 541 // Remove entries that were created because of policy as they may have |
| 515 // changed since the database was saved. | 542 // changed since the database was saved. |
| 516 RemoveProvidersCreatedByPolicy(&template_urls, | 543 RemoveProvidersCreatedByPolicy(&template_urls, |
| 517 &default_search_provider, | 544 &default_search_provider, |
| 518 default_from_prefs.get()); | 545 default_from_prefs.get()); |
| (...skipping 1195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1714 } else { | 1741 } else { |
| 1715 // Change the local TURL's GUID to the server's GUID and push an update to | 1742 // Change the local TURL's GUID to the server's GUID and push an update to |
| 1716 // Sync. This ensures that the rest of local_url's fields are sync'd up to | 1743 // Sync. This ensures that the rest of local_url's fields are sync'd up to |
| 1717 // the server, and the next time local_url is synced, it is recognized by | 1744 // the server, and the next time local_url is synced, it is recognized by |
| 1718 // having the same GUID. | 1745 // having the same GUID. |
| 1719 ResetTemplateURLGUID(local_turl, sync_turl->sync_guid()); | 1746 ResetTemplateURLGUID(local_turl, sync_turl->sync_guid()); |
| 1720 SyncData sync_data = CreateSyncDataFromTemplateURL(*local_turl); | 1747 SyncData sync_data = CreateSyncDataFromTemplateURL(*local_turl); |
| 1721 change_list->push_back(SyncChange(SyncChange::ACTION_UPDATE, sync_data)); | 1748 change_list->push_back(SyncChange(SyncChange::ACTION_UPDATE, sync_data)); |
| 1722 } | 1749 } |
| 1723 } | 1750 } |
| OLD | NEW |