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

Side by Side Diff: components/omnibox/browser/suggestion_answer.cc

Issue 2091473003: Factor parsing "ln=" to SuggestionAnswer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/omnibox/browser/suggestion_answer.h" 5 #include "components/omnibox/browser/suggestion_answer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/i18n/rtl.h" 9 #include "base/i18n/rtl.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 AppendWithSpace(status_text_.get(), &result); 175 AppendWithSpace(status_text_.get(), &result);
176 return result; 176 return result;
177 } 177 }
178 178
179 // SuggestionAnswer ------------------------------------------------------------ 179 // SuggestionAnswer ------------------------------------------------------------
180 180
181 SuggestionAnswer::SuggestionAnswer() : type_(-1) {} 181 SuggestionAnswer::SuggestionAnswer() : type_(-1) {}
182 SuggestionAnswer::SuggestionAnswer(const SuggestionAnswer& answer) 182 SuggestionAnswer::SuggestionAnswer(const SuggestionAnswer& answer)
183 : first_line_(answer.first_line_), 183 : first_line_(answer.first_line_),
184 second_line_(answer.second_line_), 184 second_line_(answer.second_line_),
185 type_(answer.type_) {} 185 type_(answer.type_),
186 second_line_size_(answer.second_line_size_) {}
groby-ooo-7-16 2016/06/23 20:49:27 Since this is just a default copy ctor, let's do t
Kevin Bailey 2016/06/23 21:49:22 sgtm
Kevin Bailey 2016/06/28 15:59:32 Done.
186 187
187 SuggestionAnswer::~SuggestionAnswer() {} 188 SuggestionAnswer::~SuggestionAnswer() {}
188 189
189 // static 190 // static
190 std::unique_ptr<SuggestionAnswer> SuggestionAnswer::ParseAnswer( 191 std::unique_ptr<SuggestionAnswer> SuggestionAnswer::ParseAnswer(
191 const base::DictionaryValue* answer_json) { 192 const base::DictionaryValue* answer_json) {
192 auto result = base::WrapUnique(new SuggestionAnswer); 193 auto result = base::WrapUnique(new SuggestionAnswer);
193 194
194 const base::ListValue* lines_json; 195 const base::ListValue* lines_json;
195 if (!answer_json->GetList(kAnswerJsonLines, &lines_json) || 196 if (!answer_json->GetList(kAnswerJsonLines, &lines_json) ||
196 lines_json->GetSize() != 2) 197 lines_json->GetSize() != 2)
197 return nullptr; 198 return nullptr;
198 199
199 const base::DictionaryValue* first_line_json; 200 const base::DictionaryValue* first_line_json;
200 if (!lines_json->GetDictionary(0, &first_line_json) || 201 if (!lines_json->GetDictionary(0, &first_line_json) ||
201 !ImageLine::ParseImageLine(first_line_json, &result->first_line_)) 202 !ImageLine::ParseImageLine(first_line_json, &result->first_line_))
202 return nullptr; 203 return nullptr;
203 204
204 const base::DictionaryValue* second_line_json; 205 const base::DictionaryValue* second_line_json;
205 if (!lines_json->GetDictionary(1, &second_line_json) || 206 if (!lines_json->GetDictionary(1, &second_line_json) ||
206 !ImageLine::ParseImageLine(second_line_json, &result->second_line_)) 207 !ImageLine::ParseImageLine(second_line_json, &result->second_line_))
207 return nullptr; 208 return nullptr;
208 209
210 for (const auto& text_field : result->second_line_.text_fields()) {
211 if (text_field.has_num_lines()) {
212 result->second_line_size_ = text_field.num_lines();
213 break;
214 }
215 }
216
209 return result; 217 return result;
210 } 218 }
211 219
212 bool SuggestionAnswer::Equals(const SuggestionAnswer& answer) const { 220 bool SuggestionAnswer::Equals(const SuggestionAnswer& answer) const {
213 return type_ == answer.type_ && 221 return type_ == answer.type_ &&
214 first_line_.Equals(answer.first_line_) && 222 first_line_.Equals(answer.first_line_) &&
215 second_line_.Equals(answer.second_line_); 223 second_line_.Equals(answer.second_line_);
216 } 224 }
217 225
218 void SuggestionAnswer::AddImageURLsTo(std::vector<GURL>* urls) const { 226 void SuggestionAnswer::AddImageURLsTo(std::vector<GURL>* urls) const {
219 if (first_line_.image_url().is_valid()) 227 if (first_line_.image_url().is_valid())
220 urls->push_back(first_line_.image_url()); 228 urls->push_back(first_line_.image_url());
221 if (second_line_.image_url().is_valid()) 229 if (second_line_.image_url().is_valid())
222 urls->push_back(second_line_.image_url()); 230 urls->push_back(second_line_.image_url());
223 } 231 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698