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

Side by Side Diff: chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc

Issue 2607063002: Remove mojo::Array. (Closed)
Patch Set: rebase Created 3 years, 11 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/ui/webui/omnibox/omnibox_page_handler.h" 5 #include "chrome/browser/ui/webui/omnibox/omnibox_page_handler.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 15 matching lines...) Expand all
26 #include "components/bookmarks/browser/bookmark_model.h" 26 #include "components/bookmarks/browser/bookmark_model.h"
27 #include "components/history/core/browser/history_service.h" 27 #include "components/history/core/browser/history_service.h"
28 #include "components/history/core/browser/url_database.h" 28 #include "components/history/core/browser/url_database.h"
29 #include "components/metrics/proto/omnibox_event.pb.h" 29 #include "components/metrics/proto/omnibox_event.pb.h"
30 #include "components/omnibox/browser/autocomplete_classifier.h" 30 #include "components/omnibox/browser/autocomplete_classifier.h"
31 #include "components/omnibox/browser/autocomplete_controller.h" 31 #include "components/omnibox/browser/autocomplete_controller.h"
32 #include "components/omnibox/browser/autocomplete_match.h" 32 #include "components/omnibox/browser/autocomplete_match.h"
33 #include "components/omnibox/browser/autocomplete_provider.h" 33 #include "components/omnibox/browser/autocomplete_provider.h"
34 #include "components/search_engines/template_url.h" 34 #include "components/search_engines/template_url.h"
35 #include "content/public/browser/web_ui.h" 35 #include "content/public/browser/web_ui.h"
36 #include "mojo/common/common_type_converters.h"
37 36
38 using bookmarks::BookmarkModel; 37 using bookmarks::BookmarkModel;
39 38
40 namespace mojo { 39 namespace mojo {
41 40
42 template <> 41 template <>
43 struct TypeConverter<mojo::Array<mojom::AutocompleteAdditionalInfoPtr>, 42 struct TypeConverter<std::vector<mojom::AutocompleteAdditionalInfoPtr>,
44 AutocompleteMatch::AdditionalInfo> { 43 AutocompleteMatch::AdditionalInfo> {
45 static mojo::Array<mojom::AutocompleteAdditionalInfoPtr> Convert( 44 static std::vector<mojom::AutocompleteAdditionalInfoPtr> Convert(
46 const AutocompleteMatch::AdditionalInfo& input) { 45 const AutocompleteMatch::AdditionalInfo& input) {
47 mojo::Array<mojom::AutocompleteAdditionalInfoPtr> array(input.size()); 46 std::vector<mojom::AutocompleteAdditionalInfoPtr> array(input.size());
48 size_t index = 0; 47 size_t index = 0;
49 for (AutocompleteMatch::AdditionalInfo::const_iterator i = input.begin(); 48 for (AutocompleteMatch::AdditionalInfo::const_iterator i = input.begin();
50 i != input.end(); ++i, index++) { 49 i != input.end(); ++i, index++) {
51 mojom::AutocompleteAdditionalInfoPtr item( 50 mojom::AutocompleteAdditionalInfoPtr item(
52 mojom::AutocompleteAdditionalInfo::New()); 51 mojom::AutocompleteAdditionalInfo::New());
53 item->key = i->first; 52 item->key = i->first;
54 item->value = i->second; 53 item->value = i->second;
55 array[index] = std::move(item); 54 array[index] = std::move(item);
56 } 55 }
57 return array; 56 return array;
(...skipping 27 matching lines...) Expand all
85 result->type = AutocompleteMatchType::ToString(input.type); 84 result->type = AutocompleteMatchType::ToString(input.type);
86 if (input.associated_keyword.get() != NULL) { 85 if (input.associated_keyword.get() != NULL) {
87 result->associated_keyword = 86 result->associated_keyword =
88 base::UTF16ToUTF8(input.associated_keyword->keyword); 87 base::UTF16ToUTF8(input.associated_keyword->keyword);
89 } 88 }
90 result->keyword = base::UTF16ToUTF8(input.keyword); 89 result->keyword = base::UTF16ToUTF8(input.keyword);
91 result->duplicates = static_cast<int32_t>(input.duplicate_matches.size()); 90 result->duplicates = static_cast<int32_t>(input.duplicate_matches.size());
92 result->from_previous = input.from_previous; 91 result->from_previous = input.from_previous;
93 92
94 result->additional_info = 93 result->additional_info =
95 mojo::Array<mojom::AutocompleteAdditionalInfoPtr>::From( 94 mojo::ConvertTo<std::vector<mojom::AutocompleteAdditionalInfoPtr>>(
96 input.additional_info) 95 input.additional_info);
97 .PassStorage();
98 return result; 96 return result;
99 } 97 }
100 }; 98 };
101 99
102 template <> 100 template <>
103 struct TypeConverter<mojom::AutocompleteResultsForProviderPtr, 101 struct TypeConverter<mojom::AutocompleteResultsForProviderPtr,
104 scoped_refptr<AutocompleteProvider>> { 102 scoped_refptr<AutocompleteProvider>> {
105 static mojom::AutocompleteResultsForProviderPtr Convert( 103 static mojom::AutocompleteResultsForProviderPtr Convert(
106 const scoped_refptr<AutocompleteProvider>& input) { 104 const scoped_refptr<AutocompleteProvider>& input) {
107 mojom::AutocompleteResultsForProviderPtr result( 105 mojom::AutocompleteResultsForProviderPtr result(
108 mojom::AutocompleteResultsForProvider::New()); 106 mojom::AutocompleteResultsForProvider::New());
109 result->provider_name = input->GetName(); 107 result->provider_name = input->GetName();
110 result->results = 108 result->results = mojo::ConvertTo<std::vector<mojom::AutocompleteMatchPtr>>(
111 mojo::Array<mojom::AutocompleteMatchPtr>::From(input->matches()) 109 input->matches());
112 .PassStorage();
113 return result; 110 return result;
114 } 111 }
115 }; 112 };
116 113
117 } // namespace mojo 114 } // namespace mojo
118 115
119 OmniboxPageHandler::OmniboxPageHandler( 116 OmniboxPageHandler::OmniboxPageHandler(
120 Profile* profile, 117 Profile* profile,
121 mojo::InterfaceRequest<mojom::OmniboxPageHandler> request) 118 mojo::InterfaceRequest<mojom::OmniboxPageHandler> request)
122 : profile_(profile), binding_(this, std::move(request)) { 119 : profile_(profile), binding_(this, std::move(request)) {
(...skipping 14 matching lines...) Expand all
137 if (!LookupIsTypedHost(host, &is_typed_host)) 134 if (!LookupIsTypedHost(host, &is_typed_host))
138 is_typed_host = false; 135 is_typed_host = false;
139 result->is_typed_host = is_typed_host; 136 result->is_typed_host = is_typed_host;
140 137
141 { 138 {
142 // Copy to an ACMatches to make conversion easier. Since this isn't 139 // Copy to an ACMatches to make conversion easier. Since this isn't
143 // performance critical we don't worry about the cost here. 140 // performance critical we don't worry about the cost here.
144 ACMatches matches(controller_->result().begin(), 141 ACMatches matches(controller_->result().begin(),
145 controller_->result().end()); 142 controller_->result().end());
146 result->combined_results = 143 result->combined_results =
147 mojo::Array<mojom::AutocompleteMatchPtr>::From(matches).PassStorage(); 144 mojo::ConvertTo<std::vector<mojom::AutocompleteMatchPtr>>(matches);
148 } 145 }
149 result->results_by_provider = 146 result->results_by_provider =
150 mojo::Array<mojom::AutocompleteResultsForProviderPtr>::From( 147 mojo::ConvertTo<std::vector<mojom::AutocompleteResultsForProviderPtr>>(
151 controller_->providers()) 148 controller_->providers());
152 .PassStorage();
153 149
154 // Fill AutocompleteMatch::starred. 150 // Fill AutocompleteMatch::starred.
155 BookmarkModel* bookmark_model = 151 BookmarkModel* bookmark_model =
156 BookmarkModelFactory::GetForBrowserContext(profile_); 152 BookmarkModelFactory::GetForBrowserContext(profile_);
157 if (bookmark_model) { 153 if (bookmark_model) {
158 for (size_t i = 0; i < result->combined_results.size(); ++i) { 154 for (size_t i = 0; i < result->combined_results.size(); ++i) {
159 result->combined_results[i]->starred = bookmark_model->IsBookmarked( 155 result->combined_results[i]->starred = bookmark_model->IsBookmarked(
160 GURL(result->combined_results[i]->destination_url)); 156 GURL(result->combined_results[i]->destination_url));
161 } 157 }
162 for (size_t i = 0; i < result->results_by_provider.size(); ++i) { 158 for (size_t i = 0; i < result->results_by_provider.size(); ++i) {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 prevent_inline_autocomplete, prefer_keyword, true, true, false, 205 prevent_inline_autocomplete, prefer_keyword, true, true, false,
210 ChromeAutocompleteSchemeClassifier(profile_)); 206 ChromeAutocompleteSchemeClassifier(profile_));
211 controller_->Start(input_); 207 controller_->Start(input_);
212 } 208 }
213 209
214 void OmniboxPageHandler::ResetController() { 210 void OmniboxPageHandler::ResetController() {
215 controller_.reset(new AutocompleteController( 211 controller_.reset(new AutocompleteController(
216 base::MakeUnique<ChromeAutocompleteProviderClient>(profile_), this, 212 base::MakeUnique<ChromeAutocompleteProviderClient>(profile_), this,
217 AutocompleteClassifier::kDefaultOmniboxProviders)); 213 AutocompleteClassifier::kDefaultOmniboxProviders));
218 } 214 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698