diff options
author | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-07 01:31:54 +0000 |
---|---|---|
committer | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-07 01:31:54 +0000 |
commit | 573889f2660f7a961adac4b81caf632a467f2134 (patch) | |
tree | 9a3e74a378ef2d7bcea0a88cb2d7a20a4343090e /chrome/browser/protector | |
parent | 7d8b707e12ac0a18491c2810269167226cd95deb (diff) | |
download | chromium_src-573889f2660f7a961adac4b81caf632a467f2134.zip chromium_src-573889f2660f7a961adac4b81caf632a467f2134.tar.gz chromium_src-573889f2660f7a961adac4b81caf632a467f2134.tar.bz2 |
Reland r131019: Move most TemplateURL data members to a new struct, TemplateURLData. This allows us to eliminate the TemplateURL NULL constructor, most public non-const TemplateURL functions, and most TemplateURL friend declarations.
This is also a necessary precursor to changing TemplateURLService's APIs to convert most "const TemplateURL*" cases to "TemplateURL*", which I'll explain once I actually make the change.
There is some awkwardness here around keywords, as keyword autogeneration requires a TemplateURL but the state bits are kept on TemplateURLData. This will go away in the future when I remove keyword autogeneration from TemplateURL entirely.
This differs from r131019 in that it fixes a memory error in chrome/browser/search_engines/util.cc:MergeEnginesFromPrepopulateData() where when we updated the vector to contain a new TemplateURL*, we didn't also update |default_search_engine| to point at the new URL if necessary.
BUG=none
TEST=none
TBR=sky,mnissler,atwilson
Review URL: https://chromiumcodereview.appspot.com/10021008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131224 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/protector')
-rw-r--r-- | chrome/browser/protector/default_search_provider_change_browsertest.cc | 45 |
1 files changed, 20 insertions, 25 deletions
diff --git a/chrome/browser/protector/default_search_provider_change_browsertest.cc b/chrome/browser/protector/default_search_provider_change_browsertest.cc index 5a50ce5..4dae17c 100644 --- a/chrome/browser/protector/default_search_provider_change_browsertest.cc +++ b/chrome/browser/protector/default_search_provider_change_browsertest.cc @@ -40,6 +40,20 @@ const std::string http_example_com = "http://example.com/%s"; const string16 example_net = ASCIIToUTF16("Example.net"); const std::string http_example_net = "http://example.net/%s"; +// Convenience function. +TemplateURL* MakeTemplateURL(const string16& short_name, + const string16& keyword, + const std::string& url) { + TemplateURLData data; + data.short_name = short_name; + if (keyword.empty()) + data.SetAutogenerateKeyword(true); + else + data.SetKeyword(keyword); + data.SetURL(url); + return new TemplateURL(data); +} + }; class DefaultSearchProviderChangeTest : public InProcessBrowserTest { @@ -61,19 +75,6 @@ class DefaultSearchProviderChangeTest : public InProcessBrowserTest { EXPECT_CALL(*mock_protector_service_, Shutdown()); } - TemplateURL* MakeTemplateURL(const string16& short_name, - const string16& keyword, - const std::string& search_url) { - TemplateURL* url = new TemplateURL; - url->set_short_name(short_name); - if (keyword.empty()) - url->set_autogenerate_keyword(true); - else - url->set_keyword(keyword); - url->SetURL(search_url); - return url; - } - const TemplateURL* FindTemplateURL(const std::string& search_url) { TemplateURLService::TemplateURLVector urls = turl_service_->GetTemplateURLs(); @@ -85,12 +86,6 @@ class DefaultSearchProviderChangeTest : public InProcessBrowserTest { return NULL; } - // Adds a copy of |turl| that will be owned by TemplateURLService. - void AddCopy(TemplateURL* turl) { - TemplateURL* turl_copy = new TemplateURL(*turl); - turl_service_->Add(turl_copy); - } - void AddAndSetDefault(TemplateURL* turl) { turl_service_->Add(turl); turl_service_->SetDefaultSearchProvider(turl); @@ -158,7 +153,7 @@ IN_PROC_BROWSER_TEST_F(DefaultSearchProviderChangeTest, BackupValid) { int current_histogram_id = protector::GetSearchProviderHistogramID(current_url); - AddCopy(backup_url); + turl_service_->Add(new TemplateURL(backup_url->data())); AddAndSetDefault(current_url); scoped_ptr<BaseSettingChange> change( @@ -211,7 +206,7 @@ IN_PROC_BROWSER_TEST_F(DefaultSearchProviderChangeTest, BackupValidLongNames) { { // Backup name too long. - AddCopy(backup_url_long); + turl_service_->Add(new TemplateURL(backup_url_long->data())); AddAndSetDefault(current_url); scoped_ptr<BaseSettingChange> change( @@ -228,7 +223,7 @@ IN_PROC_BROWSER_TEST_F(DefaultSearchProviderChangeTest, BackupValidLongNames) { { // Current name too long. - AddCopy(backup_url); + turl_service_->Add(new TemplateURL(backup_url->data())); AddAndSetDefault(current_url_long); scoped_ptr<BaseSettingChange> change( @@ -360,7 +355,7 @@ IN_PROC_BROWSER_TEST_F(DefaultSearchProviderChangeTest, MakeTemplateURL(example_info, ASCIIToUTF16("a"), http_example_info); int backup_histogram_id = protector::GetSearchProviderHistogramID(backup_url); - AddCopy(backup_url); + turl_service_->Add(new TemplateURL(backup_url->data())); turl_service_->SetDefaultSearchProvider(NULL); scoped_ptr<BaseSettingChange> change( @@ -486,7 +481,7 @@ IN_PROC_BROWSER_TEST_F(DefaultSearchProviderChangeTest, TemplateURL* new_url = MakeTemplateURL(example_net, ASCIIToUTF16("c"), http_example_net); - AddCopy(backup_url); + turl_service_->Add(new TemplateURL(backup_url->data())); AddAndSetDefault(current_url); scoped_ptr<BaseSettingChange> change( @@ -512,7 +507,7 @@ IN_PROC_BROWSER_TEST_F(DefaultSearchProviderChangeTest, TemplateURL* current_url = MakeTemplateURL(example_com, ASCIIToUTF16("b"), http_example_com); - AddCopy(backup_url); + turl_service_->Add(new TemplateURL(backup_url->data())); AddAndSetDefault(current_url); scoped_ptr<BaseSettingChange> change( |