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

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

Issue 2285633004: [TTS] Record CTR by week and 28-day intervals. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ctr
Patch Set: Changed histogram logging to the percent-specific call. Created 4 years, 3 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 2016 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/ctr_recorder.h"
6
7 #include <set>
8
9 #include "base/android/jni_string.h"
10 #include "base/android/scoped_java_ref.h"
11 #include "chrome/browser/android/contextualsearch/contextual_search_context.h"
12 #include "jni/CTRRecorder_jni.h"
13
14 using base::android::AttachCurrentThread;
15 using base::android::ConvertUTF8ToJavaString;
16 using base::android::JavaParamRef;
17 using base::android::ScopedJavaLocalRef;
18
19 CTRRecorder::CTRRecorder(JNIEnv* env, jobject obj) {
20 java_object_.Reset(env, obj);
21
22 aggregator_.reset(new contextual_search::CTRAggregator(*this));
23 DCHECK(aggregator_);
24 }
25
26 CTRRecorder::~CTRRecorder() {
27 JNIEnv* env = AttachCurrentThread();
28 Java_CTRRecorder_clearNativePointer(env, java_object_.obj());
29 }
30
31 // Java conduit
32
33 void CTRRecorder::RecordImpression(JNIEnv* env,
34 const JavaParamRef<jobject>& obj,
35 jboolean did_click) {
36 aggregator_->RecordImpression(did_click);
37 }
38
39 jboolean CTRRecorder::HasPreviousWeekData(JNIEnv* env,
40 const JavaParamRef<jobject>& obj) {
41 return aggregator_->HasPreviousWeekData();
42 }
43
44 jfloat CTRRecorder::GetPreviousWeekCTR(JNIEnv* env,
45 const JavaParamRef<jobject>& obj) {
46 return aggregator_->GetPreviousWeekCTR();
47 }
48
49 jboolean CTRRecorder::HasPrevious28DayData(JNIEnv* env,
50 const JavaParamRef<jobject>& obj) {
51 return aggregator_->HasPrevious28DayData();
52 }
53
54 jfloat CTRRecorder::GetPrevious28DayCTR(JNIEnv* env,
55 const JavaParamRef<jobject>& obj) {
56 return aggregator_->GetPrevious28DayCTR();
57 }
58
59 // DeviceIntStorage
60
61 int CTRRecorder::ReadInt(std::string storage_key) {
62 JNIEnv* env = AttachCurrentThread();
63 ScopedJavaLocalRef<jstring> j_storage_key =
64 ConvertUTF8ToJavaString(env, storage_key.c_str());
65 return Java_CTRRecorder_readInt(env, java_object_, j_storage_key);
66 }
67
68 void CTRRecorder::WriteInt(std::string storage_key, int value) {
69 JNIEnv* env = AttachCurrentThread();
70 ScopedJavaLocalRef<jstring> j_storage_key =
71 ConvertUTF8ToJavaString(env, storage_key.c_str());
72 Java_CTRRecorder_writeInt(env, java_object_, j_storage_key, value);
73 }
74
75 // Java conduit boilerplate
76
77 void CTRRecorder::Destroy(JNIEnv* env, const JavaParamRef<jobject>& obj) {
78 delete this;
79 }
80
81 bool RegisterCTRRecorder(JNIEnv* env) {
82 return RegisterNativesImpl(env);
83 }
84
85 jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) {
86 CTRRecorder* recorder = new CTRRecorder(env, obj);
87 return reinterpret_cast<intptr_t>(recorder);
88 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698