Update the contextual search API to include a parameter specifying whether the...

Update the contextual search API to include a parameter specifying whether the server shoudl return a resolved search term.

BUG=397734,397738

Review URL: https://codereview.chromium.org/424013002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287681 0039d316-1c4b-4281-b951-d872f2087c98
parent e6d2ec8c
...@@ -197,7 +197,8 @@ TemplateURLRef::SearchTermsArgs::ContextualSearchParams:: ...@@ -197,7 +197,8 @@ TemplateURLRef::SearchTermsArgs::ContextualSearchParams::
ContextualSearchParams() ContextualSearchParams()
: version(-1), : version(-1),
start(base::string16::npos), start(base::string16::npos),
end(base::string16::npos) { end(base::string16::npos),
resolve(true) {
} }
TemplateURLRef::SearchTermsArgs::ContextualSearchParams:: TemplateURLRef::SearchTermsArgs::ContextualSearchParams::
...@@ -215,7 +216,28 @@ TemplateURLRef::SearchTermsArgs::ContextualSearchParams:: ...@@ -215,7 +216,28 @@ TemplateURLRef::SearchTermsArgs::ContextualSearchParams::
selection(selection), selection(selection),
content(content), content(content),
base_page_url(base_page_url), base_page_url(base_page_url),
encoding(encoding) { encoding(encoding),
resolve(true) {
}
TemplateURLRef::SearchTermsArgs::ContextualSearchParams::
ContextualSearchParams(
const int version,
const size_t start,
const size_t end,
const std::string& selection,
const std::string& content,
const std::string& base_page_url,
const std::string& encoding,
const bool resolve)
: version(version),
start(start),
end(end),
selection(selection),
content(content),
base_page_url(base_page_url),
encoding(encoding),
resolve(resolve) {
} }
TemplateURLRef::SearchTermsArgs::ContextualSearchParams:: TemplateURLRef::SearchTermsArgs::ContextualSearchParams::
...@@ -964,12 +986,15 @@ std::string TemplateURLRef::HandleReplacements( ...@@ -964,12 +986,15 @@ std::string TemplateURLRef::HandleReplacements(
context_data.append("ctxs_content=" + params.content + "&"); context_data.append("ctxs_content=" + params.content + "&");
if (!params.base_page_url.empty()) if (!params.base_page_url.empty())
context_data.append("ctxs_url=" + params.base_page_url + "&"); context_data.append("ctxsl_url=" + params.base_page_url + "&");
if (!params.encoding.empty()) { if (!params.encoding.empty()) {
context_data.append("ctxs_encoding=" + params.encoding + "&"); context_data.append("ctxs_encoding=" + params.encoding + "&");
} }
context_data.append(
params.resolve ? "ctxsl_resolve=1" : "ctxsl_resolve=0");
HandleReplacement(std::string(), context_data, *i, &url); HandleReplacement(std::string(), context_data, *i, &url);
break; break;
} }
......
...@@ -74,6 +74,7 @@ class TemplateURLRef { ...@@ -74,6 +74,7 @@ class TemplateURLRef {
struct ContextualSearchParams { struct ContextualSearchParams {
ContextualSearchParams(); ContextualSearchParams();
// TODO(jeremycho): Delete constructor once Clank no longer depends on it.
ContextualSearchParams(const int version, ContextualSearchParams(const int version,
const size_t start, const size_t start,
const size_t end, const size_t end,
...@@ -81,6 +82,14 @@ class TemplateURLRef { ...@@ -81,6 +82,14 @@ class TemplateURLRef {
const std::string& content, const std::string& content,
const std::string& base_page_url, const std::string& base_page_url,
const std::string& encoding); const std::string& encoding);
ContextualSearchParams(const int version,
const size_t start,
const size_t end,
const std::string& selection,
const std::string& content,
const std::string& base_page_url,
const std::string& encoding,
const bool resolve);
~ContextualSearchParams(); ~ContextualSearchParams();
// The version of contextual search. // The version of contextual search.
...@@ -103,6 +112,11 @@ class TemplateURLRef { ...@@ -103,6 +112,11 @@ class TemplateURLRef {
// The encoding of content. // The encoding of content.
std::string encoding; std::string encoding;
// If true, the server will generate a search term based on the user
// selection and context. Otherwise the user selection will be used as-is
// as the search term.
bool resolve;
}; };
// The search terms (query). // The search terms (query).
......
...@@ -1507,11 +1507,11 @@ TEST_F(TemplateURLTest, ContextualSearchParameters) { ...@@ -1507,11 +1507,11 @@ TEST_F(TemplateURLTest, ContextualSearchParameters) {
TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo"));
std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args, std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args,
search_terms_data_); search_terms_data_);
EXPECT_EQ("http://bar/_/contextualsearch?", result); EXPECT_EQ("http://bar/_/contextualsearch?ctxsl_resolve=1", result);
TemplateURLRef::SearchTermsArgs::ContextualSearchParams params( TemplateURLRef::SearchTermsArgs::ContextualSearchParams params(
1, 6, 11, "allen", "woody+allen+movies", "www.wikipedia.org", 1, 6, 11, "allen", "woody+allen+movies", "www.wikipedia.org",
"utf-8"); "utf-8", true);
search_terms_args.contextual_search_params = params; search_terms_args.contextual_search_params = params;
result = url.url_ref().ReplaceSearchTerms(search_terms_args, result = url.url_ref().ReplaceSearchTerms(search_terms_args,
search_terms_data_); search_terms_data_);
...@@ -1521,8 +1521,10 @@ TEST_F(TemplateURLTest, ContextualSearchParameters) { ...@@ -1521,8 +1521,10 @@ TEST_F(TemplateURLTest, ContextualSearchParameters) {
"ctxs_end=11&" "ctxs_end=11&"
"q=allen&" "q=allen&"
"ctxs_content=woody+allen+movies&" "ctxs_content=woody+allen+movies&"
"ctxs_url=www.wikipedia.org&" "ctxsl_url=www.wikipedia.org&"
"ctxs_encoding=utf-8&", result); "ctxs_encoding=utf-8&"
"ctxsl_resolve=1",
result);
} }
TEST_F(TemplateURLTest, GenerateKeyword) { TEST_F(TemplateURLTest, GenerateKeyword) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment