summaryrefslogtreecommitdiffstats
path: root/chrome/browser/protector
diff options
context:
space:
mode:
authorpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-07 01:31:54 +0000
committerpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-07 01:31:54 +0000
commit573889f2660f7a961adac4b81caf632a467f2134 (patch)
tree9a3e74a378ef2d7bcea0a88cb2d7a20a4343090e /chrome/browser/protector
parent7d8b707e12ac0a18491c2810269167226cd95deb (diff)
downloadchromium_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.cc45
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(