summaryrefslogtreecommitdiff
path: root/chromium/components/assist_ranker
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 15:28:34 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 13:54:51 +0000
commit2a19c63448c84c1805fb1a585c3651318bb86ca7 (patch)
treeeb17888e8531aa6ee5e85721bd553b832a7e5156 /chromium/components/assist_ranker
parentb014812705fc80bff0a5c120dfcef88f349816dc (diff)
downloadqtwebengine-chromium-2a19c63448c84c1805fb1a585c3651318bb86ca7.tar.gz
BASELINE: Update Chromium to 69.0.3497.70
Change-Id: I2b7b56e4e7a8b26656930def0d4575dc32b900a0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/assist_ranker')
-rw-r--r--chromium/components/assist_ranker/BUILD.gn5
-rw-r--r--chromium/components/assist_ranker/DEPS3
-rw-r--r--chromium/components/assist_ranker/assist_ranker_service_impl.cc8
-rw-r--r--chromium/components/assist_ranker/assist_ranker_service_impl.h10
-rw-r--r--chromium/components/assist_ranker/base_predictor_unittest.cc16
-rw-r--r--chromium/components/assist_ranker/binary_classifier_predictor.cc6
-rw-r--r--chromium/components/assist_ranker/binary_classifier_predictor.h7
-rw-r--r--chromium/components/assist_ranker/binary_classifier_predictor_unittest.cc9
-rw-r--r--chromium/components/assist_ranker/predictor_config_definitions.cc8
-rw-r--r--chromium/components/assist_ranker/ranker_model_loader_impl.cc17
-rw-r--r--chromium/components/assist_ranker/ranker_model_loader_impl.h22
-rw-r--r--chromium/components/assist_ranker/ranker_model_loader_impl_unittest.cc41
-rw-r--r--chromium/components/assist_ranker/ranker_url_fetcher.cc63
-rw-r--r--chromium/components/assist_ranker/ranker_url_fetcher.h28
14 files changed, 139 insertions, 104 deletions
diff --git a/chromium/components/assist_ranker/BUILD.gn b/chromium/components/assist_ranker/BUILD.gn
index 130553d6959..f41a45fc2f3 100644
--- a/chromium/components/assist_ranker/BUILD.gn
+++ b/chromium/components/assist_ranker/BUILD.gn
@@ -39,6 +39,9 @@ static_library("assist_ranker") {
"//components/keyed_service/core",
"//net",
"//services/metrics/public/cpp:metrics_cpp",
+ "//services/network:network_service",
+ "//services/network/public/cpp",
+ "//services/network/public/mojom",
"//url",
]
}
@@ -62,6 +65,8 @@ source_set("unit_tests") {
"//components/assist_ranker/proto",
"//components/ukm:test_support",
"//net:test_support",
+ "//services/network:test_support",
+ "//services/network/public/cpp",
"//testing/gtest",
]
}
diff --git a/chromium/components/assist_ranker/DEPS b/chromium/components/assist_ranker/DEPS
index 22c088fe59f..f1b4b559e6e 100644
--- a/chromium/components/assist_ranker/DEPS
+++ b/chromium/components/assist_ranker/DEPS
@@ -5,5 +5,8 @@ include_rules = [
"+components/ukm",
"+net",
"+services/metrics/public",
+ "+services/network/public/cpp",
+ "+services/network/public/mojom",
+ "+services/network/test",
"+third_party/protobuf",
]
diff --git a/chromium/components/assist_ranker/assist_ranker_service_impl.cc b/chromium/components/assist_ranker/assist_ranker_service_impl.cc
index 5b870b8f578..04ea3cea1c5 100644
--- a/chromium/components/assist_ranker/assist_ranker_service_impl.cc
+++ b/chromium/components/assist_ranker/assist_ranker_service_impl.cc
@@ -6,15 +6,15 @@
#include "base/memory/weak_ptr.h"
#include "components/assist_ranker/binary_classifier_predictor.h"
#include "components/assist_ranker/ranker_model_loader_impl.h"
-#include "net/url_request/url_request_context_getter.h"
+#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "url/gurl.h"
namespace assist_ranker {
AssistRankerServiceImpl::AssistRankerServiceImpl(
base::FilePath base_path,
- net::URLRequestContextGetter* url_request_context_getter)
- : url_request_context_getter_(url_request_context_getter),
+ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory)
+ : url_loader_factory_(std::move(url_loader_factory)),
base_path_(std::move(base_path)) {}
AssistRankerServiceImpl::~AssistRankerServiceImpl() {}
@@ -35,7 +35,7 @@ AssistRankerServiceImpl::FetchBinaryClassifierPredictor(
DVLOG(1) << "Initializing predictor: " << model_name;
std::unique_ptr<BinaryClassifierPredictor> predictor =
BinaryClassifierPredictor::Create(config, GetModelPath(model_name),
- url_request_context_getter_.get());
+ url_loader_factory_);
base::WeakPtr<BinaryClassifierPredictor> weak_ptr =
base::AsWeakPtr(predictor.get());
predictor_map_[model_name] = std::move(predictor);
diff --git a/chromium/components/assist_ranker/assist_ranker_service_impl.h b/chromium/components/assist_ranker/assist_ranker_service_impl.h
index 1b75ff4017f..e1b00c284a9 100644
--- a/chromium/components/assist_ranker/assist_ranker_service_impl.h
+++ b/chromium/components/assist_ranker/assist_ranker_service_impl.h
@@ -15,8 +15,8 @@
#include "components/assist_ranker/assist_ranker_service.h"
#include "components/assist_ranker/predictor_config.h"
-namespace net {
-class URLRequestContextGetter;
+namespace network {
+class SharedURLLoaderFactory;
}
namespace assist_ranker {
@@ -28,7 +28,7 @@ class AssistRankerServiceImpl : public AssistRankerService {
public:
AssistRankerServiceImpl(
base::FilePath base_path,
- net::URLRequestContextGetter* url_request_context_getter);
+ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory);
~AssistRankerServiceImpl() override;
// AssistRankerService...
@@ -39,8 +39,8 @@ class AssistRankerServiceImpl : public AssistRankerService {
// Returns the full path to the model cache.
base::FilePath GetModelPath(const std::string& model_filename);
- // Request Context Getter used for RankerURLFetcher.
- scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_;
+ // URL loader factory used for RankerURLFetcher.
+ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
// Base path where models are stored.
const base::FilePath base_path_;
diff --git a/chromium/components/assist_ranker/base_predictor_unittest.cc b/chromium/components/assist_ranker/base_predictor_unittest.cc
index aae82621b11..5b770768e98 100644
--- a/chromium/components/assist_ranker/base_predictor_unittest.cc
+++ b/chromium/components/assist_ranker/base_predictor_unittest.cc
@@ -100,8 +100,8 @@ std::unique_ptr<FakePredictor> FakePredictor::Create() {
class BasePredictorTest : public ::testing::Test {
protected:
BasePredictorTest() = default;
- // Disables Query for the test predictor.
- void DisableQuery();
+
+ void SetUp() override;
ukm::SourceId GetSourceId();
@@ -120,16 +120,17 @@ class BasePredictorTest : public ::testing::Test {
DISALLOW_COPY_AND_ASSIGN(BasePredictorTest);
};
+void BasePredictorTest::SetUp() {
+ ::testing::Test::SetUp();
+ scoped_feature_list_.Init();
+}
+
ukm::SourceId BasePredictorTest::GetSourceId() {
ukm::SourceId source_id = ukm::UkmRecorder::GetNewSourceID();
test_ukm_recorder_.UpdateSourceURL(source_id, GURL(kTestNavigationUrl));
return source_id;
}
-void BasePredictorTest::DisableQuery() {
- scoped_feature_list_.InitWithFeatures({}, {kTestRankerQuery});
-}
-
TEST_F(BasePredictorTest, BaseTest) {
auto predictor = FakePredictor::Create();
EXPECT_EQ(kTestModelName, predictor->GetModelName());
@@ -139,7 +140,8 @@ TEST_F(BasePredictorTest, BaseTest) {
}
TEST_F(BasePredictorTest, QueryDisabled) {
- DisableQuery();
+ base::test::ScopedFeatureList scoped_feature_list;
+ scoped_feature_list.InitAndDisableFeature(kTestRankerQuery);
auto predictor = FakePredictor::Create();
EXPECT_EQ(kTestModelName, predictor->GetModelName());
EXPECT_EQ(kTestDefaultModelUrl, predictor->GetModelUrl());
diff --git a/chromium/components/assist_ranker/binary_classifier_predictor.cc b/chromium/components/assist_ranker/binary_classifier_predictor.cc
index 1200cfec46d..651eaab8b40 100644
--- a/chromium/components/assist_ranker/binary_classifier_predictor.cc
+++ b/chromium/components/assist_ranker/binary_classifier_predictor.cc
@@ -13,7 +13,7 @@
#include "components/assist_ranker/proto/ranker_model.pb.h"
#include "components/assist_ranker/ranker_model.h"
#include "components/assist_ranker/ranker_model_loader_impl.h"
-#include "net/url_request/url_request_context_getter.h"
+#include "services/network/public/cpp/shared_url_loader_factory.h"
namespace assist_ranker {
@@ -26,7 +26,7 @@ BinaryClassifierPredictor::~BinaryClassifierPredictor(){};
std::unique_ptr<BinaryClassifierPredictor> BinaryClassifierPredictor::Create(
const PredictorConfig& config,
const base::FilePath& model_path,
- net::URLRequestContextGetter* request_context_getter) {
+ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory) {
std::unique_ptr<BinaryClassifierPredictor> predictor(
new BinaryClassifierPredictor(config));
if (!predictor->is_query_enabled()) {
@@ -40,7 +40,7 @@ std::unique_ptr<BinaryClassifierPredictor> BinaryClassifierPredictor::Create(
base::BindRepeating(&BinaryClassifierPredictor::ValidateModel),
base::BindRepeating(&BinaryClassifierPredictor::OnModelAvailable,
base::Unretained(predictor.get())),
- request_context_getter, model_path, model_url, config.uma_prefix);
+ url_loader_factory, model_path, model_url, config.uma_prefix);
predictor->LoadModel(std::move(model_loader));
return predictor;
}
diff --git a/chromium/components/assist_ranker/binary_classifier_predictor.h b/chromium/components/assist_ranker/binary_classifier_predictor.h
index e932c91388f..6aa1a9f1031 100644
--- a/chromium/components/assist_ranker/binary_classifier_predictor.h
+++ b/chromium/components/assist_ranker/binary_classifier_predictor.h
@@ -13,8 +13,8 @@ namespace base {
class FilePath;
}
-namespace net {
-class URLRequestContextGetter;
+namespace network {
+class SharedURLLoaderFactory;
}
namespace assist_ranker {
@@ -32,7 +32,8 @@ class BinaryClassifierPredictor : public BasePredictor {
static std::unique_ptr<BinaryClassifierPredictor> Create(
const PredictorConfig& config,
const base::FilePath& model_path,
- net::URLRequestContextGetter* request_context_getter) WARN_UNUSED_RESULT;
+ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory)
+ WARN_UNUSED_RESULT;
// Fills in a boolean decision given a RankerExample. Returns false if a
// prediction could not be made (e.g. the model is not loaded yet).
diff --git a/chromium/components/assist_ranker/binary_classifier_predictor_unittest.cc b/chromium/components/assist_ranker/binary_classifier_predictor_unittest.cc
index dcde981bf87..672c80fadf0 100644
--- a/chromium/components/assist_ranker/binary_classifier_predictor_unittest.cc
+++ b/chromium/components/assist_ranker/binary_classifier_predictor_unittest.cc
@@ -9,6 +9,7 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/feature_list.h"
+#include "base/test/scoped_feature_list.h"
#include "components/assist_ranker/fake_ranker_model_loader.h"
#include "components/assist_ranker/proto/ranker_model.pb.h"
#include "components/assist_ranker/ranker_model.h"
@@ -20,6 +21,8 @@ using ::assist_ranker::testing::FakeRankerModelLoader;
class BinaryClassifierPredictorTest : public ::testing::Test {
public:
+ void SetUp() override;
+
std::unique_ptr<BinaryClassifierPredictor> InitPredictor(
std::unique_ptr<RankerModel> ranker_model,
const PredictorConfig& config);
@@ -33,8 +36,14 @@ class BinaryClassifierPredictorTest : public ::testing::Test {
const std::string feature_ = "feature";
const float weight_ = 1.0;
const float threshold_ = 0.5;
+ base::test::ScopedFeatureList scoped_feature_list_;
};
+void BinaryClassifierPredictorTest::SetUp() {
+ ::testing::Test::SetUp();
+ scoped_feature_list_.Init();
+}
+
std::unique_ptr<BinaryClassifierPredictor>
BinaryClassifierPredictorTest::InitPredictor(
std::unique_ptr<RankerModel> ranker_model,
diff --git a/chromium/components/assist_ranker/predictor_config_definitions.cc b/chromium/components/assist_ranker/predictor_config_definitions.cc
index 879306d539d..e967f682f36 100644
--- a/chromium/components/assist_ranker/predictor_config_definitions.cc
+++ b/chromium/components/assist_ranker/predictor_config_definitions.cc
@@ -36,6 +36,8 @@ const base::flat_set<std::string>* GetContextualSearchFeatureWhitelist() {
static auto* kContextualSearchFeatureWhitelist =
new base::flat_set<std::string>({"DidOptIn",
"DurationAfterScrollMs",
+ "EntityImpressionsCount",
+ "EntityOpensCount",
"FontSize",
"IsEntity",
"IsEntityEligible",
@@ -45,6 +47,7 @@ const base::flat_set<std::string>* GetContextualSearchFeatureWhitelist() {
"IsSecondTapOverride",
"IsShortWord",
"IsWordEdge",
+ "OpenCount",
"OutcomeRankerDidPredict",
"OutcomeRankerPrediction",
"OutcomeWasCardsDataShown",
@@ -56,7 +59,12 @@ const base::flat_set<std::string>* GetContextualSearchFeatureWhitelist() {
"Previous28DayImpressionsCount",
"PreviousWeekCtrPercent",
"PreviousWeekImpressionsCount",
+ "QuickActionImpressionsCount",
+ "QuickActionsIgnored",
+ "QuickActionsTaken",
+ "QuickAnswerCount",
"ScreenTopDps",
+ "TapCount",
"TapDurationMs",
"WasScreenBottom"});
return kContextualSearchFeatureWhitelist;
diff --git a/chromium/components/assist_ranker/ranker_model_loader_impl.cc b/chromium/components/assist_ranker/ranker_model_loader_impl.cc
index e03529f3038..4159f7fd85f 100644
--- a/chromium/components/assist_ranker/ranker_model_loader_impl.cc
+++ b/chromium/components/assist_ranker/ranker_model_loader_impl.cc
@@ -22,6 +22,7 @@
#include "base/threading/sequenced_task_runner_handle.h"
#include "components/assist_ranker/proto/ranker_model.pb.h"
#include "components/assist_ranker/ranker_url_fetcher.h"
+#include "services/network/public/cpp/shared_url_loader_factory.h"
namespace assist_ranker {
namespace {
@@ -90,7 +91,7 @@ void SaveToFile(const GURL& model_url,
RankerModelLoaderImpl::RankerModelLoaderImpl(
ValidateModelCallback validate_model_cb,
OnModelAvailableCallback on_model_available_cb,
- net::URLRequestContextGetter* request_context_getter,
+ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
base::FilePath model_path,
GURL model_url,
std::string uma_prefix)
@@ -99,7 +100,7 @@ RankerModelLoaderImpl::RankerModelLoaderImpl(
base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})),
validate_model_cb_(std::move(validate_model_cb)),
on_model_available_cb_(std::move(on_model_available_cb)),
- request_context_getter_(request_context_getter),
+ url_loader_factory_(std::move(url_loader_factory)),
model_path_(std::move(model_path)),
model_url_(std::move(model_url)),
uma_prefix_(std::move(uma_prefix)),
@@ -147,9 +148,9 @@ void RankerModelLoaderImpl::StartLoadFromFile() {
load_start_time_ = base::TimeTicks::Now();
base::PostTaskAndReplyWithResult(
background_task_runner_.get(), FROM_HERE,
- base::Bind(&LoadFromFile, model_path_),
- base::Bind(&RankerModelLoaderImpl::OnFileLoaded,
- weak_ptr_factory_.GetWeakPtr()));
+ base::BindOnce(&LoadFromFile, model_path_),
+ base::BindOnce(&RankerModelLoaderImpl::OnFileLoaded,
+ weak_ptr_factory_.GetWeakPtr()));
}
void RankerModelLoaderImpl::OnFileLoaded(const std::string& data) {
@@ -220,9 +221,9 @@ void RankerModelLoaderImpl::StartLoadFromURL() {
load_start_time_ + base::TimeDelta::FromMinutes(kMinRetryDelayMins);
bool request_started =
url_fetcher_->Request(model_url_,
- base::Bind(&RankerModelLoaderImpl::OnURLFetched,
- weak_ptr_factory_.GetWeakPtr()),
- request_context_getter_.get());
+ base::BindOnce(&RankerModelLoaderImpl::OnURLFetched,
+ weak_ptr_factory_.GetWeakPtr()),
+ url_loader_factory_.get());
// |url_fetcher_| maintains a request retry counter. If all allowed attempts
// have already been exhausted, then the loader is finished and has abandoned
diff --git a/chromium/components/assist_ranker/ranker_model_loader_impl.h b/chromium/components/assist_ranker/ranker_model_loader_impl.h
index 4ef151c3374..1a94ac3f4ea 100644
--- a/chromium/components/assist_ranker/ranker_model_loader_impl.h
+++ b/chromium/components/assist_ranker/ranker_model_loader_impl.h
@@ -16,13 +16,16 @@
#include "base/memory/weak_ptr.h"
#include "base/sequence_checker.h"
#include "base/time/time.h"
-#include "net/url_request/url_request_context_getter.h"
#include "url/gurl.h"
namespace base {
class SequencedTaskRunner;
} // namespace base
+namespace network {
+class SharedURLLoaderFactory;
+}
+
namespace assist_ranker {
class RankerURLFetcher;
@@ -48,12 +51,13 @@ class RankerModelLoaderImpl : public RankerModelLoader {
//
// |uma_prefix| will be used as a prefix for the names of all UMA metrics
// generated by this loader.
- RankerModelLoaderImpl(ValidateModelCallback validate_model_callback,
- OnModelAvailableCallback on_model_available_callback,
- net::URLRequestContextGetter* request_context_getter,
- base::FilePath model_path,
- GURL model_url,
- std::string uma_prefix);
+ RankerModelLoaderImpl(
+ ValidateModelCallback validate_model_callback,
+ OnModelAvailableCallback on_model_available_callback,
+ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
+ base::FilePath model_path,
+ GURL model_url,
+ std::string uma_prefix);
~RankerModelLoaderImpl() override;
@@ -130,8 +134,8 @@ class RankerModelLoaderImpl : public RankerModelLoader {
// constructed.
const OnModelAvailableCallback on_model_available_cb_;
- // Request Context Getter used for RankerURLFetcher.
- scoped_refptr<net::URLRequestContextGetter> request_context_getter_;
+ // URL loader factory used for RankerURLFetcher.
+ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
// The path at which the model is (or should be) cached.
const base::FilePath model_path_;
diff --git a/chromium/components/assist_ranker/ranker_model_loader_impl_unittest.cc b/chromium/components/assist_ranker/ranker_model_loader_impl_unittest.cc
index 9799c9ceb5c..32b2760400a 100644
--- a/chromium/components/assist_ranker/ranker_model_loader_impl_unittest.cc
+++ b/chromium/components/assist_ranker/ranker_model_loader_impl_unittest.cc
@@ -20,8 +20,9 @@
#include "components/assist_ranker/proto/ranker_model.pb.h"
#include "components/assist_ranker/proto/translate_ranker_model.pb.h"
#include "components/assist_ranker/ranker_model.h"
-#include "net/url_request/test_url_fetcher_factory.h"
-#include "net/url_request/url_request_test_util.h"
+#include "services/network/public/cpp/shared_url_loader_factory.h"
+#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
+#include "services/network/test/test_url_loader_factory.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace {
@@ -76,15 +77,13 @@ class RankerModelLoaderImplTest : public ::testing::Test {
// Sets up the task scheduling/task-runner environment for each test.
base::test::ScopedTaskEnvironment scoped_task_environment_;
- // Override the default URL fetcher to return custom responses for tests.
- net::FakeURLFetcherFactory url_fetcher_factory_;
+ // Override the default URL loader to return custom responses for tests.
+ network::TestURLLoaderFactory test_loader_factory_;
+ scoped_refptr<network::SharedURLLoaderFactory> test_shared_loader_factory_;
// Temporary directory for model files.
base::ScopedTempDir scoped_temp_dir_;
- // Used for URLFetcher.
- scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_;
-
// A queue of responses to return from Validate(). If empty, validate will
// return 'OK'.
base::circular_deque<RankerModelStatus> validate_model_response_;
@@ -114,13 +113,13 @@ class RankerModelLoaderImplTest : public ::testing::Test {
DISALLOW_COPY_AND_ASSIGN(RankerModelLoaderImplTest);
};
-RankerModelLoaderImplTest::RankerModelLoaderImplTest()
- : url_fetcher_factory_(nullptr) {}
+RankerModelLoaderImplTest::RankerModelLoaderImplTest() {
+ test_shared_loader_factory_ =
+ base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>(
+ &test_loader_factory_);
+}
void RankerModelLoaderImplTest::SetUp() {
- request_context_getter_ =
- new net::TestURLRequestContextGetter(base::ThreadTaskRunnerHandle::Get());
-
ASSERT_TRUE(scoped_temp_dir_.CreateUniqueTempDir());
const auto& temp_dir_path = scoped_temp_dir_.GetPath();
@@ -172,7 +171,7 @@ bool RankerModelLoaderImplTest::DoLoaderTest(const base::FilePath& model_path,
base::Unretained(this)),
base::Bind(&RankerModelLoaderImplTest::OnModelAvailable,
base::Unretained(this)),
- request_context_getter_.get(), model_path, model_url,
+ test_shared_loader_factory_, model_path, model_url,
"RankerModelLoaderImplTest");
loader->NotifyOfRankerActivity();
scoped_task_environment_.RunUntilIdle();
@@ -182,15 +181,13 @@ bool RankerModelLoaderImplTest::DoLoaderTest(const base::FilePath& model_path,
void RankerModelLoaderImplTest::InitRemoteModels() {
InitModel(remote_model_url_, base::Time(), base::TimeDelta(), &remote_model_);
- url_fetcher_factory_.SetFakeResponse(
- remote_model_url_, remote_model_.SerializeAsString(), net::HTTP_OK,
- net::URLRequestStatus::SUCCESS);
- url_fetcher_factory_.SetFakeResponse(invalid_model_url_, kInvalidModelData,
- net::HTTP_OK,
- net::URLRequestStatus::SUCCESS);
- url_fetcher_factory_.SetFakeResponse(failed_model_url_, "",
- net::HTTP_INTERNAL_SERVER_ERROR,
- net::URLRequestStatus::FAILED);
+ test_loader_factory_.AddResponse(remote_model_url_.spec(),
+ remote_model_.SerializeAsString());
+ test_loader_factory_.AddResponse(invalid_model_url_.spec(),
+ kInvalidModelData);
+ test_loader_factory_.AddResponse(
+ failed_model_url_, network::ResourceResponseHead(), "",
+ network::URLLoaderCompletionStatus(net::HTTP_INTERNAL_SERVER_ERROR));
}
void RankerModelLoaderImplTest::InitLocalModels() {
diff --git a/chromium/components/assist_ranker/ranker_url_fetcher.cc b/chromium/components/assist_ranker/ranker_url_fetcher.cc
index 0f8989e0973..8d0f709499b 100644
--- a/chromium/components/assist_ranker/ranker_url_fetcher.cc
+++ b/chromium/components/assist_ranker/ranker_url_fetcher.cc
@@ -9,8 +9,9 @@
#include "net/base/load_flags.h"
#include "net/http/http_status_code.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
-#include "net/url_request/url_fetcher.h"
-#include "net/url_request/url_request_status.h"
+#include "services/network/public/cpp/resource_request.h"
+#include "services/network/public/cpp/simple_url_loader.h"
+#include "services/network/public/mojom/url_loader_factory.mojom.h"
namespace assist_ranker {
@@ -21,14 +22,15 @@ const int kMaxRetry = 16;
} // namespace
-RankerURLFetcher::RankerURLFetcher() : state_(IDLE), retry_count_(0) {}
+RankerURLFetcher::RankerURLFetcher()
+ : state_(IDLE), retry_count_(0), max_retry_on_5xx_(0) {}
RankerURLFetcher::~RankerURLFetcher() {}
bool RankerURLFetcher::Request(
const GURL& url,
- const RankerURLFetcher::Callback& callback,
- net::URLRequestContextGetter* request_context_getter) {
+ RankerURLFetcher::Callback callback,
+ network::mojom::URLLoaderFactory* url_loader_factory) {
// This function is not supposed to be called if the previous operation is not
// finished.
if (state_ == REQUESTING) {
@@ -42,9 +44,9 @@ bool RankerURLFetcher::Request(
state_ = REQUESTING;
url_ = url;
- callback_ = callback;
+ callback_ = std::move(callback);
- if (request_context_getter == nullptr)
+ if (url_loader_factory == nullptr)
return false;
net::NetworkTrafficAnnotationTag traffic_annotation =
@@ -73,39 +75,38 @@ bool RankerURLFetcher::Request(
policy_exception_justification:
"Not implemented, considered not necessary as no user data is sent."
})");
- // Create and initialize the URL fetcher.
- fetcher_ = net::URLFetcher::Create(url_, net::URLFetcher::GET, this,
- traffic_annotation);
- data_use_measurement::DataUseUserData::AttachToFetcher(
- fetcher_.get(),
- data_use_measurement::DataUseUserData::MACHINE_INTELLIGENCE);
- fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES |
- net::LOAD_DO_NOT_SAVE_COOKIES);
- fetcher_->SetRequestContext(request_context_getter);
-
- // Set retry parameter for HTTP status code 5xx. This doesn't work against
- // 106 (net::ERR_INTERNET_DISCONNECTED) and so on.
- fetcher_->SetMaxRetriesOn5xx(max_retry_on_5xx_);
- fetcher_->Start();
+ auto resource_request = std::make_unique<network::ResourceRequest>();
+ resource_request->url = url_;
+ resource_request->load_flags =
+ net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES;
+ // TODO(https://crbug.com/808498): Re-add data use measurement once
+ // SimpleURLLoader supports it.
+ // ID=data_use_measurement::DataUseUserData::MACHINE_INTELLIGENCE
+ simple_url_loader_ = network::SimpleURLLoader::Create(
+ std::move(resource_request), traffic_annotation);
+ if (max_retry_on_5xx_ > 0) {
+ simple_url_loader_->SetRetryOptions(max_retry_on_5xx_,
+ network::SimpleURLLoader::RETRY_ON_5XX);
+ }
+ simple_url_loader_->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
+ url_loader_factory,
+ base::BindOnce(&RankerURLFetcher::OnSimpleLoaderComplete,
+ base::Unretained(this)));
return true;
}
-void RankerURLFetcher::OnURLFetchComplete(const net::URLFetcher* source) {
- DCHECK(fetcher_.get() == source);
-
+void RankerURLFetcher::OnSimpleLoaderComplete(
+ std::unique_ptr<std::string> response_body) {
std::string data;
- if (source->GetStatus().status() == net::URLRequestStatus::SUCCESS &&
- source->GetResponseCode() == net::HTTP_OK) {
+ if (response_body) {
state_ = COMPLETED;
- source->GetResponseAsString(&data);
+ data = std::move(*response_body);
} else {
state_ = FAILED;
}
-
- // Transfer URLFetcher's ownership before invoking a callback.
- std::unique_ptr<const net::URLFetcher> delete_ptr(fetcher_.release());
- callback_.Run(state_ == COMPLETED, data);
+ simple_url_loader_.reset();
+ std::move(callback_).Run(state_ == COMPLETED, data);
}
} // namespace assist_ranker
diff --git a/chromium/components/assist_ranker/ranker_url_fetcher.h b/chromium/components/assist_ranker/ranker_url_fetcher.h
index 7c2305a9800..4f22b221174 100644
--- a/chromium/components/assist_ranker/ranker_url_fetcher.h
+++ b/chromium/components/assist_ranker/ranker_url_fetcher.h
@@ -9,17 +9,22 @@
#include "base/callback.h"
#include "base/macros.h"
-#include "net/url_request/url_fetcher_delegate.h"
-#include "net/url_request/url_request_context_getter.h"
#include "url/gurl.h"
+namespace network {
+class SimpleURLLoader;
+namespace mojom {
+class URLLoaderFactory;
+} // namespace mojom
+} // namespace network
+
namespace assist_ranker {
// Downloads Ranker models.
-class RankerURLFetcher : public net::URLFetcherDelegate {
+class RankerURLFetcher {
public:
// Callback type for Request().
- typedef base::Callback<void(bool, const std::string&)> Callback;
+ typedef base::OnceCallback<void(bool, const std::string&)> Callback;
// Represents internal state if the fetch is completed successfully.
enum State {
@@ -30,7 +35,7 @@ class RankerURLFetcher : public net::URLFetcherDelegate {
};
RankerURLFetcher();
- ~RankerURLFetcher() override;
+ ~RankerURLFetcher();
int max_retry_on_5xx() { return max_retry_on_5xx_; }
void set_max_retry_on_5xx(int count) { max_retry_on_5xx_ = count; }
@@ -40,24 +45,23 @@ class RankerURLFetcher : public net::URLFetcherDelegate {
// Returns false if the previous request is not finished, or the request
// is omitted due to retry limitation.
bool Request(const GURL& url,
- const Callback& callback,
- net::URLRequestContextGetter* request_context);
+ Callback callback,
+ network::mojom::URLLoaderFactory* url_loader_factory);
// Gets internal state.
State state() { return state_; }
- // net::URLFetcherDelegate implementation:
- void OnURLFetchComplete(const net::URLFetcher* source) override;
-
private:
+ void OnSimpleLoaderComplete(std::unique_ptr<std::string> response_body);
+
// URL to send the request.
GURL url_;
// Internal state.
enum State state_;
- // URLFetcher instance.
- std::unique_ptr<net::URLFetcher> fetcher_;
+ // SimpleURLLoader instance.
+ std::unique_ptr<network::SimpleURLLoader> simple_url_loader_;
// Callback passed at Request(). It will be invoked when an asynchronous
// fetch operation is finished.