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

Side by Side Diff: chrome/browser/android/contextualsearch/contextual_search_ranker_logger_impl.cc

Issue 2857333002: [TTS] Write initial Tap-features to Ranker. (Closed)
Patch Set: Updated based on reviews by Roger and Theresa. Some API and doc changes. Handle null base page UR… Created 3 years, 7 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
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <chrome/browser/android/contextualsearch/contextual_search_ranker_logge r_impl.h>
6
7 #include "base/android/jni_string.h"
8 #include "base/android/scoped_java_ref.h"
9 #include "base/metrics/metrics_hashes.h"
10 #include "chrome/browser/browser_process.h"
11 #include "components/keyed_service/core/keyed_service.h"
12 #include "components/ukm/ukm_entry_builder.h"
13 #include "components/ukm/ukm_service.h"
14 #include "jni/ContextualSearchRankerLoggerImpl_jni.h"
15
16 ContextualSearchRankerLoggerImpl::ContextualSearchRankerLoggerImpl(
17 JNIEnv* env,
18 jobject obj) {
19 java_object_.Reset(env, obj);
20 }
21
22 ContextualSearchRankerLoggerImpl::~ContextualSearchRankerLoggerImpl() {
23 java_object_ = nullptr;
24 }
25
26 void ContextualSearchRankerLoggerImpl::SetupLoggingAndRanker(
27 JNIEnv* env,
28 jobject obj,
29 const base::android::JavaParamRef<jstring>& j_base_page_url,
30 const base::android::JavaParamRef<jstring>& j_ranker_model_selector) {
31 GURL page_url =
32 GURL(base::android::ConvertJavaStringToUTF8(env, j_base_page_url));
33 std::string ranker_model_selector =
34 base::android::ConvertJavaStringToUTF8(env, j_ranker_model_selector);
35 ukm::UkmService* ukm_service = g_browser_process->ukm_service();
36 SetUkmService(ukm_service, page_url);
37 // TODO(donnd): Is this a reasonable way to handle the Ranker model selector?
38 builder_->AddMetric("ContextualSearchRankerModelSelector",
39 base::HashMetricName(ranker_model_selector));
40 }
41
42 void ContextualSearchRankerLoggerImpl::SetUkmService(
43 ukm::UkmService* ukm_service,
44 const GURL& page_url) {
45 ukm_service_ = ukm_service;
46 DVLOG(0) << "ctxs Setting up UKM for url: " << page_url.spec();
47 source_id_ = ukm_service_->GetNewSourceID();
48 ukm_service_->UpdateSourceURL(source_id_, page_url);
49 builder_ = ukm_service_->GetEntryBuilder(source_id_, "ContextualSearch");
50 }
51
52 void ContextualSearchRankerLoggerImpl::LogLong(
53 JNIEnv* env,
54 jobject obj,
55 const base::android::JavaParamRef<jstring>& j_feature,
56 jlong j_long) {
57 std::string feature = base::android::ConvertJavaStringToUTF8(env, j_feature);
58 DVLOG(0) << "Logging feature " << feature << " value " << j_long;
59 builder_->AddMetric(feature.c_str(), j_long);
60 }
61
62 void ContextualSearchRankerLoggerImpl::WriteLogAndReset(JNIEnv* env,
63 jobject obj) {
64 // Set up another builder for the next record (in case it's needed).
65 builder_ = ukm_service_->GetEntryBuilder(source_id_, "ContextualSearch");
66 DVLOG(0) << "Creating a new record builder";
67 }
68
69 // Java wrapper boilerplate
70
71 void ContextualSearchRankerLoggerImpl::Destroy(
72 JNIEnv* env,
73 const base::android::JavaParamRef<jobject>& obj) {
74 delete this;
75 }
76
77 bool RegisterContextualSearchRankerLoggerImpl(JNIEnv* env) {
78 return RegisterNativesImpl(env);
79 }
80
81 jlong Init(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj) {
82 ContextualSearchRankerLoggerImpl* ranker_logger_impl =
83 new ContextualSearchRankerLoggerImpl(env, obj);
84 return reinterpret_cast<intptr_t>(ranker_logger_impl);
85 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698