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

Side by Side Diff: chrome/browser/search_engines/template_url_service.cc

Issue 8342049: Added Protector, hooked up DSE verification with error bubble. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moved check to Protector, work with search engines via TemplateURLService Created 9 years, 2 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) 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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698