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

Side by Side Diff: chrome/browser/ui/search/search_ipc_router.cc

Issue 2117373002: Cleanup: Change LogMostVisitedImpression|Navigation APIs to take an enum (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ntp_uma_cleanup
Patch Set: rebase Created 4 years, 5 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/search/search_ipc_router.h" 5 #include "chrome/browser/ui/search/search_ipc_router.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/search/search.h" 10 #include "chrome/browser/search/search.h"
11 #include "chrome/common/render_messages.h" 11 #include "chrome/common/render_messages.h"
12 #include "components/search/search.h" 12 #include "components/search/search.h"
13 #include "content/public/browser/navigation_details.h" 13 #include "content/public/browser/navigation_details.h"
14 #include "content/public/browser/web_contents.h" 14 #include "content/public/browser/web_contents.h"
15 15
16 namespace {
17
18 bool IsProviderValid(const base::string16& provider) {
19 // Only allow string of 8 alphanumeric characters or less as providers.
20 // The empty string is considered valid and should be treated as if no
21 // provider were specified.
22 if (provider.length() > 8)
23 return false;
24 for (base::string16::const_iterator it = provider.begin();
25 it != provider.end(); ++it) {
26 if (!base::IsAsciiAlpha(*it) && !base::IsAsciiDigit(*it))
27 return false;
28 }
29 return true;
30 }
31
32 } // namespace
33
34 SearchIPCRouter::SearchIPCRouter(content::WebContents* web_contents, 16 SearchIPCRouter::SearchIPCRouter(content::WebContents* web_contents,
35 Delegate* delegate, 17 Delegate* delegate,
36 std::unique_ptr<Policy> policy) 18 std::unique_ptr<Policy> policy)
37 : WebContentsObserver(web_contents), 19 : WebContentsObserver(web_contents),
38 delegate_(delegate), 20 delegate_(delegate),
39 policy_(std::move(policy)), 21 policy_(std::move(policy)),
40 commit_counter_(0), 22 commit_counter_(0),
41 is_active_tab_(false) { 23 is_active_tab_(false) {
42 DCHECK(web_contents); 24 DCHECK(web_contents);
43 DCHECK(delegate); 25 DCHECK(delegate);
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 return; 229 return;
248 230
249 delegate_->OnInstantSupportDetermined(true); 231 delegate_->OnInstantSupportDetermined(true);
250 if (!policy_->ShouldProcessLogEvent()) 232 if (!policy_->ShouldProcessLogEvent())
251 return; 233 return;
252 234
253 delegate_->OnLogEvent(event, time); 235 delegate_->OnLogEvent(event, time);
254 } 236 }
255 237
256 void SearchIPCRouter::OnLogMostVisitedImpression( 238 void SearchIPCRouter::OnLogMostVisitedImpression(
257 int page_seq_no, int position, const base::string16& provider) const { 239 int page_seq_no, int position, NTPLoggingTileSource tile_source) const {
258 if (page_seq_no != commit_counter_ || !IsProviderValid(provider)) 240 if (page_seq_no != commit_counter_)
259 return; 241 return;
260 242
261 delegate_->OnInstantSupportDetermined(true); 243 delegate_->OnInstantSupportDetermined(true);
262 // Logging impressions is controlled by the same policy as logging events. 244 // Logging impressions is controlled by the same policy as logging events.
263 if (!policy_->ShouldProcessLogEvent()) 245 if (!policy_->ShouldProcessLogEvent())
264 return; 246 return;
265 247
266 delegate_->OnLogMostVisitedImpression(position, provider); 248 delegate_->OnLogMostVisitedImpression(position, tile_source);
267 } 249 }
268 250
269 void SearchIPCRouter::OnLogMostVisitedNavigation( 251 void SearchIPCRouter::OnLogMostVisitedNavigation(
270 int page_seq_no, int position, const base::string16& provider) const { 252 int page_seq_no, int position, NTPLoggingTileSource tile_source) const {
271 if (page_seq_no != commit_counter_ || !IsProviderValid(provider)) 253 if (page_seq_no != commit_counter_)
272 return; 254 return;
273 255
274 delegate_->OnInstantSupportDetermined(true); 256 delegate_->OnInstantSupportDetermined(true);
275 // Logging navigations is controlled by the same policy as logging events. 257 // Logging navigations is controlled by the same policy as logging events.
276 if (!policy_->ShouldProcessLogEvent()) 258 if (!policy_->ShouldProcessLogEvent())
277 return; 259 return;
278 260
279 delegate_->OnLogMostVisitedNavigation(position, provider); 261 delegate_->OnLogMostVisitedNavigation(position, tile_source);
280 } 262 }
281 263
282 void SearchIPCRouter::OnPasteAndOpenDropDown(int page_seq_no, 264 void SearchIPCRouter::OnPasteAndOpenDropDown(int page_seq_no,
283 const base::string16& text) const { 265 const base::string16& text) const {
284 if (page_seq_no != commit_counter_) 266 if (page_seq_no != commit_counter_)
285 return; 267 return;
286 268
287 delegate_->OnInstantSupportDetermined(true); 269 delegate_->OnInstantSupportDetermined(true);
288 if (!policy_->ShouldProcessPasteIntoOmnibox(is_active_tab_)) 270 if (!policy_->ShouldProcessPasteIntoOmnibox(is_active_tab_))
289 return; 271 return;
(...skipping 27 matching lines...) Expand all
317 299
318 void SearchIPCRouter::set_delegate_for_testing(Delegate* delegate) { 300 void SearchIPCRouter::set_delegate_for_testing(Delegate* delegate) {
319 DCHECK(delegate); 301 DCHECK(delegate);
320 delegate_ = delegate; 302 delegate_ = delegate;
321 } 303 }
322 304
323 void SearchIPCRouter::set_policy_for_testing(std::unique_ptr<Policy> policy) { 305 void SearchIPCRouter::set_policy_for_testing(std::unique_ptr<Policy> policy) {
324 DCHECK(policy.get()); 306 DCHECK(policy.get());
325 policy_.reset(policy.release()); 307 policy_.reset(policy.release());
326 } 308 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/search/search_ipc_router.h ('k') | chrome/browser/ui/search/search_ipc_router_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698