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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchRankerLoggerImpl.java

Issue 2857333002: [TTS] Write initial Tap-features to Ranker. (Closed)
Patch Set: Added logging of the CS-model URL and updated console-logging output. 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
1 // Copyright 2016 The Chromium Authors. All rights reserved. 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 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 package org.chromium.chrome.browser.contextualsearch; 5 package org.chromium.chrome.browser.contextualsearch;
6 6
7 import org.chromium.base.Log; 7 import org.chromium.base.Log;
8 8
9 import java.net.URL;
10
9 /** 11 /**
10 * Implements the UMA logging for Ranker that's used for Contextual Search Tap S uppression. 12 * Implements the UMA logging for Ranker that's used for Contextual Search Tap S uppression.
11 */ 13 */
12 public class ContextualSearchRankerLoggerImpl implements ContextualSearchRankerL ogger { 14 public class ContextualSearchRankerLoggerImpl implements ContextualSearchRankerL ogger {
13 private static final String TAG = "ContextualSearch"; 15 private static final String TAG = "ContextualSearch";
14 16
15 @Override 17 // The current version of the Ranker model that we use for Contextual Search .
16 public void log(Feature feature, Object value) { 18 private static final int CONTEXTUAL_SEARCH_RANKER_MODEL_VERSION = 0;
17 // TODO(donnd): log to an actual persistent proto ASAP! 19
18 Log.v(TAG, "log %s with value %s", feature.toString(), value); 20 // Pointer to the native instance of this class.
21 private long mNativePointer;
22
23 // The URL of the base page to log with Ranker.
24 private URL mBasePageUrl;
25
26 public ContextualSearchRankerLoggerImpl() {
27 if (isEnabled()) {
28 mNativePointer = nativeInit();
29 if (mBasePageUrl != null) {
Theresa 2017/05/12 01:02:25 Won't mBasePageUrl will always be null in the cons
Donn Denman 2017/05/12 23:08:55 You're right, we can remove this section. Done.
30 nativeSetUkmServiceAndUrls(
31 mNativePointer, mBasePageUrl.toString(), getContextualSe archRankerUrl());
32 }
33 }
34 }
35
36 /**
37 * This method should be called to clean up storage when an instance of this class is
38 * no longer in use. The nativeDestroy will call the destructor on the nati ve instance.
39 */
40 void destroy() {
41 if (isEnabled()) {
42 assert mNativePointer != 0;
43 writeLogAndReset();
44 nativeDestroy(mNativePointer);
45 mNativePointer = 0;
46 }
19 } 47 }
20 48
21 @Override 49 @Override
50 public void setBasePageUrl(URL basePageUrl) {
51 if (isEnabled()) {
52 mBasePageUrl = basePageUrl;
53 if (mBasePageUrl != null) {
Donn Denman 2017/05/12 23:08:55 I noticed that this is null for URIs that are not
54 nativeSetUkmServiceAndUrls(
55 mNativePointer, mBasePageUrl.toString(), getContextualSe archRankerUrl());
56 }
57 }
58 }
59
60 @Override
61 public void log(Feature feature, Object value) {
62 if (!isEnabled()) {
63 Log.v(TAG, "Ranker data %s: %s", feature, value);
64 return;
65 }
66
67 if (value instanceof String) {
68 nativeLogString(mNativePointer, feature.toString(), value.toString() );
Roger McFarlane (Chromium) 2017/05/12 15:43:26 Do we have go ahead to do string logging like this
Donn Denman 2017/05/12 23:08:55 Good point! Removed all string logging from this
69 } else if (value instanceof Boolean) {
70 nativeLogLong(mNativePointer, feature.toString(), ((boolean) value ? 1 : 0));
71 } else if (value instanceof Integer) {
72 Integer i = (int) value;
73 nativeLogLong(mNativePointer, feature.toString(), Long.valueOf(i));
74 } else if (value instanceof Long) {
75 nativeLogLong(mNativePointer, feature.toString(), (long) value);
76 } else if (value instanceof Character) {
77 nativeLogLong(
78 mNativePointer, feature.toString(), Character.getNumericValu e((char) value));
79 } else {
80 Log.w(TAG,
81 "Could not log feature to Ranker: " + feature.toString() + " of class "
82 + value.getClass());
83 }
84 }
85
86 @Override
22 public void logOutcome(Object value) { 87 public void logOutcome(Object value) {
23 log(Feature.OUTCOME_WAS_PANEL_OPENED, value); 88 log(Feature.OUTCOME_WAS_PANEL_OPENED, value);
24 } 89 }
25 90
26 @Override 91 @Override
27 public void writeLogAndReset() { 92 public void writeLogAndReset() {
28 Log.v(TAG, "Reset!\n"); 93 if (isEnabled()) nativeWriteLogAndReset(mNativePointer);
29 } 94 }
95
96 // Whether actually writing data is enabled. If not, we may do nothing or p rint.
97 private boolean isEnabled() {
98 return ContextualSearchFieldTrial.isRankerLoggingEnabled();
99 }
100
101 // Gets the URL to use for the current Ranker model.
102 private String getContextualSearchRankerUrl() {
103 return "org.chromium.chrome.browser.contextualsearch.v"
104 + CONTEXTUAL_SEARCH_RANKER_MODEL_VERSION;
105 }
106
107 // ========================================================================= ===================
108 // Native methods.
109 // ========================================================================= ===================
110 private native long nativeInit();
111 private native void nativeDestroy(long nativeContextualSearchRankerLoggerImp l);
112 private native void nativeLogLong(
113 long nativeContextualSearchRankerLoggerImpl, String featureString, l ong value);
114 private native void nativeLogString(
115 long nativeContextualSearchRankerLoggerImpl, String featureString, S tring value);
116 private native void nativeSetUkmServiceAndUrls(
117 long nativeContextualSearchRankerLoggerImpl, String basePageUrl, Str ing modelUrl);
118 private native void nativeWriteLogAndReset(long nativeContextualSearchRanker LoggerImpl);
30 } 119 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698