Commit 5dda6817 authored by Steven Holte's avatar Steven Holte Committed by Commit Bot

Migrate Contextual Search UKM to shared SourceId.

Bug: 754889
Change-Id: Iabbd43da20b9e1bf8f318b78b141b75f62dd62fd
Reviewed-on: https://chromium-review.googlesource.com/804827
Commit-Queue: Steven Holte <holte@chromium.org>
Reviewed-by: default avatarDonn Denman <donnd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521987}
parent 7fd2e131
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "components/assist_ranker/binary_classifier_predictor.h" #include "components/assist_ranker/binary_classifier_predictor.h"
#include "components/assist_ranker/proto/ranker_example.pb.h" #include "components/assist_ranker/proto/ranker_example.pb.h"
#include "components/keyed_service/core/keyed_service.h" #include "components/keyed_service/core/keyed_service.h"
#include "components/ukm/content/source_url_recorder.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "jni/ContextualSearchRankerLoggerImpl_jni.h" #include "jni/ContextualSearchRankerLoggerImpl_jni.h"
#include "services/metrics/public/cpp/ukm_entry_builder.h" #include "services/metrics/public/cpp/ukm_entry_builder.h"
...@@ -52,8 +53,7 @@ std::string HexHashFeatureName(const std::string& feature_name) { ...@@ -52,8 +53,7 @@ std::string HexHashFeatureName(const std::string& feature_name) {
ContextualSearchRankerLoggerImpl::ContextualSearchRankerLoggerImpl(JNIEnv* env, ContextualSearchRankerLoggerImpl::ContextualSearchRankerLoggerImpl(JNIEnv* env,
jobject obj) jobject obj)
: ukm_recorder_(nullptr), : source_id_(ukm::kInvalidSourceId),
source_id_(0),
builder_(nullptr), builder_(nullptr),
predictor_(nullptr), predictor_(nullptr),
browser_context_(nullptr), browser_context_(nullptr),
...@@ -76,9 +76,8 @@ void ContextualSearchRankerLoggerImpl::SetupLoggingAndRanker( ...@@ -76,9 +76,8 @@ void ContextualSearchRankerLoggerImpl::SetupLoggingAndRanker(
if (!web_contents) if (!web_contents)
return; return;
GURL page_url = web_contents->GetURL(); source_id_ = ukm::GetSourceIdForWebContentsDocument(web_contents);
ukm::UkmRecorder* ukm_recorder = ukm::UkmRecorder::Get(); ResetUkmEntry();
SetUkmRecorder(ukm_recorder, page_url);
if (IsRankerQueryEnabled()) { if (IsRankerQueryEnabled()) {
SetupRankerPredictor(web_contents); SetupRankerPredictor(web_contents);
...@@ -90,18 +89,10 @@ void ContextualSearchRankerLoggerImpl::SetupLoggingAndRanker( ...@@ -90,18 +89,10 @@ void ContextualSearchRankerLoggerImpl::SetupLoggingAndRanker(
} }
} }
void ContextualSearchRankerLoggerImpl::SetUkmRecorder( void ContextualSearchRankerLoggerImpl::ResetUkmEntry() {
ukm::UkmRecorder* ukm_recorder, // Releasing the old entry triggers logging.
const GURL& page_url) { builder_ =
if (!ukm_recorder) { ukm::UkmRecorder::Get()->GetEntryBuilder(source_id_, "ContextualSearch");
builder_.reset();
return;
}
ukm_recorder_ = ukm_recorder;
source_id_ = ukm_recorder_->GetNewSourceID();
ukm_recorder_->UpdateSourceURL(source_id_, page_url);
builder_ = ukm_recorder_->GetEntryBuilder(source_id_, "ContextualSearch");
} }
void ContextualSearchRankerLoggerImpl::SetupRankerPredictor( void ContextualSearchRankerLoggerImpl::SetupRankerPredictor(
...@@ -186,11 +177,8 @@ AssistRankerPrediction ContextualSearchRankerLoggerImpl::RunInference( ...@@ -186,11 +177,8 @@ AssistRankerPrediction ContextualSearchRankerLoggerImpl::RunInference(
void ContextualSearchRankerLoggerImpl::WriteLogAndReset(JNIEnv* env, void ContextualSearchRankerLoggerImpl::WriteLogAndReset(JNIEnv* env,
jobject obj) { jobject obj) {
has_predicted_decision_ = false; has_predicted_decision_ = false;
if (!ukm_recorder_)
return;
// Set up another builder for the next record (in case it's needed). // Set up another builder for the next record (in case it's needed).
builder_ = ukm_recorder_->GetEntryBuilder(source_id_, "ContextualSearch"); ResetUkmEntry();
ranker_example_.reset(); ranker_example_.reset();
} }
......
...@@ -7,8 +7,6 @@ ...@@ -7,8 +7,6 @@
#include "base/android/jni_android.h" #include "base/android/jni_android.h"
class GURL;
namespace content { namespace content {
class BrowserContext; class BrowserContext;
class WebContents; class WebContents;
...@@ -21,7 +19,6 @@ class RankerExample; ...@@ -21,7 +19,6 @@ class RankerExample;
namespace ukm { namespace ukm {
class UkmEntryBuilder; class UkmEntryBuilder;
class UkmRecorder;
} // namespace ukm } // namespace ukm
// A Java counterpart will be generated for this enum. // A Java counterpart will be generated for this enum.
...@@ -69,9 +66,9 @@ class ContextualSearchRankerLoggerImpl { ...@@ -69,9 +66,9 @@ class ContextualSearchRankerLoggerImpl {
void WriteLogAndReset(JNIEnv* env, jobject obj); void WriteLogAndReset(JNIEnv* env, jobject obj);
private: private:
// Set the UKM recorder and base-page URL. // Log the current UKM entry (if any) and start a new one.
// TODO(donnd): write a test, using this to inject a test-ukm-recorder. // TODO(donnd): write a test using TestAutoSetUkmRecorder.
void SetUkmRecorder(ukm::UkmRecorder* ukm_recorder, const GURL& page_url); void ResetUkmEntry();
// Sets up the Ranker Predictor for the given |web_contents|. // Sets up the Ranker Predictor for the given |web_contents|.
void SetupRankerPredictor(content::WebContents* web_contents); void SetupRankerPredictor(content::WebContents* web_contents);
...@@ -79,10 +76,6 @@ class ContextualSearchRankerLoggerImpl { ...@@ -79,10 +76,6 @@ class ContextualSearchRankerLoggerImpl {
// Whether querying Ranker for model loading and prediction is enabled. // Whether querying Ranker for model loading and prediction is enabled.
bool IsRankerQueryEnabled(); bool IsRankerQueryEnabled();
// Used to log URL-keyed metrics. This pointer will outlive |this|, and may
// be nullptr.
ukm::UkmRecorder* ukm_recorder_;
// The UKM source ID being used for this session. // The UKM source ID being used for this session.
int32_t source_id_; int32_t source_id_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment