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

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: Reverted changes to translate_ranker_impl.cc and changed DVLOG(0) to DVLOG(3). 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(
rkaplow 2017/05/11 19:46:49 to verify - when void destroy() is called from the
Donn Denman 2017/05/11 23:34:39 That's correct. The java nativeDestroy method call
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::SetUkmServiceAndUrls(
27 JNIEnv* env,
28 jobject obj,
29 const base::android::JavaParamRef<jstring>& j_base_page_url,
30 const base::android::JavaParamRef<jstring>& j_model_url) {
31 GURL page_url =
32 GURL(base::android::ConvertJavaStringToUTF8(env, j_base_page_url));
33 std::string model_url =
34 base::android::ConvertJavaStringToUTF8(env, j_model_url);
35 ukm::UkmService* ukm_service = g_browser_process->ukm_service();
rkaplow 2017/05/11 19:46:49 where is g_browser_process from?
Donn Denman 2017/05/11 23:34:40 Evidently this is a Chrome global, included by bro
36 SetUkmService(ukm_service, page_url);
37 // TODO(donnd): what to do with the model URL?
rkaplow 2017/05/11 19:46:49 I'm actually not sure the difference between the m
Donn Denman 2017/05/11 23:34:40 Done by adding param descriptions to this header f
38 DVLOG(3) << "ctxs model URL is " << model_url;
39 }
40
41 void ContextualSearchRankerLoggerImpl::SetUkmService(
42 ukm::UkmService* ukm_service,
43 const GURL& page_url) {
44 ukm_service_ = ukm_service;
45 DVLOG(3) << "ctxs Setting up UKM for url: " << page_url.spec();
46 int32_t source_id_ = ukm_service_->GetNewSourceID();
rkaplow 2017/05/11 19:46:49 can remove type
Donn Denman 2017/05/11 23:34:40 Nice catch, thanks! Done.
47 ukm_service_->UpdateSourceURL(source_id_, page_url);
48 builder_ = ukm_service_->GetEntryBuilder(source_id_, "ContextualSearch");
49 }
50
51 void ContextualSearchRankerLoggerImpl::LogLong(
52 JNIEnv* env,
53 jobject obj,
54 const base::android::JavaParamRef<jstring>& j_feature,
55 jlong j_long) {
56 std::string feature = base::android::ConvertJavaStringToUTF8(env, j_feature);
57 DVLOG(3) << "ctxs logging feature " << feature << " value " << j_long;
58 builder_->AddMetric(feature.c_str(), j_long);
59 }
60
61 void ContextualSearchRankerLoggerImpl::LogString(
62 JNIEnv* env,
63 jobject obj,
64 const base::android::JavaParamRef<jstring>& j_feature,
65 const base::android::JavaParamRef<jstring>& j_string) {
66 std::string feature = base::android::ConvertJavaStringToUTF8(env, j_feature);
67 std::string string = base::android::ConvertJavaStringToUTF8(env, j_string);
68 DVLOG(3) << "ctxs logging feature " << feature << " value " << string;
69 builder_->AddMetric(feature.c_str(), base::HashMetricName(string));
70 }
71
72 void ContextualSearchRankerLoggerImpl::WriteLogAndReset(JNIEnv* env,
73 jobject obj) {
74 ukm_service_->Flush();
rkaplow 2017/05/11 19:46:49 I wouldn't use Flush - i think we actually want to
Donn Denman 2017/05/11 23:34:39 OK, I'm not sure I understand the nuances of this,
75 // Set up another builder for the next record (in case it's needed).
76 builder_ = ukm_service_->GetEntryBuilder(source_id_, "ContextualSearch");
rkaplow 2017/05/11 19:46:49 this is fine to use when the interaction with CS i
Donn Denman 2017/05/11 23:34:40 That's right, this method should be called each ti
77 DVLOG(3) << "ctxs Flushing and creating a new builder";
78 }
79
80 // Java wrapper boilerplate
81
82 void ContextualSearchRankerLoggerImpl::Destroy(
83 JNIEnv* env,
84 const base::android::JavaParamRef<jobject>& obj) {
85 delete this;
86 }
87
88 bool RegisterContextualSearchRankerLoggerImpl(JNIEnv* env) {
89 return RegisterNativesImpl(env);
90 }
91
92 jlong Init(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj) {
93 ContextualSearchRankerLoggerImpl* ranker_logger_impl =
94 new ContextualSearchRankerLoggerImpl(env, obj);
95 return reinterpret_cast<intptr_t>(ranker_logger_impl);
96 }
OLDNEW
« no previous file with comments | « chrome/browser/android/contextualsearch/contextual_search_ranker_logger_impl.h ('k') | components/ukm/ukm_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698