Commit 772faacf authored by Dan Harrington's avatar Dan Harrington Committed by Commit Bot

Set more params on Feed request

Bug: 1044139
Change-Id: Ie5aeea0f8e21d840fb0d83b93417be18e2edcf24
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2135015Reviewed-by: default avatarIan Wells <iwells@chromium.org>
Commit-Queue: Dan H <harringtond@chromium.org>
Cr-Commit-Position: refs/heads/master@{#756791}
parent 05c82626
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "chrome/browser/profiles/profile_key.h" #include "chrome/browser/profiles/profile_key.h"
#include "chrome/browser/signin/identity_manager_factory.h" #include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/common/channel_info.h" #include "chrome/common/channel_info.h"
#include "chrome/common/chrome_version.h"
#include "components/feed/core/proto/v2/store.pb.h" #include "components/feed/core/proto/v2/store.pb.h"
#include "components/feed/core/v2/public/feed_service.h" #include "components/feed/core/v2/public/feed_service.h"
#include "components/feed/core/v2/refresh_task_scheduler.h" #include "components/feed/core/v2/refresh_task_scheduler.h"
...@@ -84,6 +85,10 @@ KeyedService* FeedServiceFactory::BuildServiceInstanceFor( ...@@ -84,6 +85,10 @@ KeyedService* FeedServiceFactory::BuildServiceInstanceFor(
base::FilePath feed_dir(profile->GetPath().Append(kFeedv2Folder)); base::FilePath feed_dir(profile->GetPath().Append(kFeedv2Folder));
feed::ChromeInfo chrome_info;
chrome_info.version = base::Version({CHROME_VERSION});
chrome_info.channel = chrome::GetChannel();
return new FeedService( return new FeedService(
std::make_unique<FeedServiceDelegateImpl>(), std::make_unique<FeedServiceDelegateImpl>(),
std::unique_ptr<RefreshTaskScheduler>(), // TODO(harringtond): implement std::unique_ptr<RefreshTaskScheduler>(), // TODO(harringtond): implement
...@@ -94,7 +99,7 @@ KeyedService* FeedServiceFactory::BuildServiceInstanceFor( ...@@ -94,7 +99,7 @@ KeyedService* FeedServiceFactory::BuildServiceInstanceFor(
feed_dir.AppendASCII("streamdb"), background_task_runner), feed_dir.AppendASCII("streamdb"), background_task_runner),
identity_manager, identity_manager,
storage_partition->GetURLLoaderFactoryForBrowserProcess(), storage_partition->GetURLLoaderFactoryForBrowserProcess(),
background_task_runner, api_key); background_task_runner, api_key, chrome_info);
} }
content::BrowserContext* FeedServiceFactory::GetBrowserContextToUse( content::BrowserContext* FeedServiceFactory::GetBrowserContextToUse(
......
...@@ -29,6 +29,7 @@ source_set("feed_core_v2") { ...@@ -29,6 +29,7 @@ source_set("feed_core_v2") {
"public/feed_service.cc", "public/feed_service.cc",
"public/feed_service.h", "public/feed_service.h",
"public/feed_stream_api.h", "public/feed_stream_api.h",
"public/types.h",
"refresh_task_scheduler.h", "refresh_task_scheduler.h",
"request_throttler.cc", "request_throttler.cc",
"request_throttler.h", "request_throttler.h",
...@@ -48,6 +49,7 @@ source_set("feed_core_v2") { ...@@ -48,6 +49,7 @@ source_set("feed_core_v2") {
"tasks/load_stream_task.h", "tasks/load_stream_task.h",
"tasks/wait_for_store_initialize_task.cc", "tasks/wait_for_store_initialize_task.cc",
"tasks/wait_for_store_initialize_task.h", "tasks/wait_for_store_initialize_task.h",
"types.h",
] ]
deps = [ deps = [
"//components/feed/core:feed_core", "//components/feed/core:feed_core",
...@@ -57,6 +59,7 @@ source_set("feed_core_v2") { ...@@ -57,6 +59,7 @@ source_set("feed_core_v2") {
"//components/signin/public/identity_manager", "//components/signin/public/identity_manager",
"//components/variations", "//components/variations",
"//components/variations/net", "//components/variations/net",
"//components/version_info:channel",
"//components/web_resource:web_resource", "//components/web_resource:web_resource",
"//net", "//net",
"//services/network/public/cpp", "//services/network/public/cpp",
...@@ -77,6 +80,7 @@ source_set("core_unit_tests") { ...@@ -77,6 +80,7 @@ source_set("core_unit_tests") {
"feed_network_impl_unittest.cc", "feed_network_impl_unittest.cc",
"feed_store_unittest.cc", "feed_store_unittest.cc",
"feed_stream_unittest.cc", "feed_stream_unittest.cc",
"proto_util_unittest.cc",
"request_throttler_unittest.cc", "request_throttler_unittest.cc",
"stream_model_unittest.cc", "stream_model_unittest.cc",
"stream_model_update_request_unittest.cc", "stream_model_update_request_unittest.cc",
...@@ -99,6 +103,7 @@ source_set("core_unit_tests") { ...@@ -99,6 +103,7 @@ source_set("core_unit_tests") {
"//components/prefs:test_support", "//components/prefs:test_support",
"//components/signin/public/identity_manager", "//components/signin/public/identity_manager",
"//components/signin/public/identity_manager:test_support", "//components/signin/public/identity_manager:test_support",
"//components/version_info:channel",
"//net:test_support", "//net:test_support",
"//services/network:test_support", "//services/network:test_support",
"//services/network/public/cpp", "//services/network/public/cpp",
......
...@@ -186,16 +186,15 @@ FeedStream::WireResponseTranslator::TranslateWireResponse( ...@@ -186,16 +186,15 @@ FeedStream::WireResponseTranslator::TranslateWireResponse(
current_time); current_time);
} }
FeedStream::FeedStream( FeedStream::FeedStream(RefreshTaskScheduler* refresh_task_scheduler,
RefreshTaskScheduler* refresh_task_scheduler, EventObserver* stream_event_observer,
EventObserver* stream_event_observer, Delegate* delegate,
Delegate* delegate, PrefService* profile_prefs,
PrefService* profile_prefs, FeedNetwork* feed_network,
FeedNetwork* feed_network, FeedStore* feed_store,
FeedStore* feed_store, const base::Clock* clock,
const base::Clock* clock, const base::TickClock* tick_clock,
const base::TickClock* tick_clock, const ChromeInfo& chrome_info)
scoped_refptr<base::SequencedTaskRunner> background_task_runner)
: refresh_task_scheduler_(refresh_task_scheduler), : refresh_task_scheduler_(refresh_task_scheduler),
stream_event_observer_(stream_event_observer), stream_event_observer_(stream_event_observer),
delegate_(delegate), delegate_(delegate),
...@@ -204,7 +203,7 @@ FeedStream::FeedStream( ...@@ -204,7 +203,7 @@ FeedStream::FeedStream(
store_(feed_store), store_(feed_store),
clock_(clock), clock_(clock),
tick_clock_(tick_clock), tick_clock_(tick_clock),
background_task_runner_(background_task_runner), chrome_info_(chrome_info),
task_queue_(this), task_queue_(this),
user_classifier_(std::make_unique<UserClassifier>(profile_prefs, clock)), user_classifier_(std::make_unique<UserClassifier>(profile_prefs, clock)),
request_throttler_(profile_prefs, clock) { request_throttler_(profile_prefs, clock) {
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/observer_list.h" #include "base/observer_list.h"
#include "base/sequenced_task_runner.h" #include "base/sequenced_task_runner.h"
#include "base/task_runner_util.h" #include "base/task_runner_util.h"
#include "base/version.h"
#include "components/feed/core/common/enums.h" #include "components/feed/core/common/enums.h"
#include "components/feed/core/common/user_classifier.h" #include "components/feed/core/common/user_classifier.h"
#include "components/feed/core/proto/v2/wire/response.pb.h" #include "components/feed/core/proto/v2/wire/response.pb.h"
...@@ -82,7 +83,7 @@ class FeedStream : public FeedStreamApi, ...@@ -82,7 +83,7 @@ class FeedStream : public FeedStreamApi,
FeedStore* feed_store, FeedStore* feed_store,
const base::Clock* clock, const base::Clock* clock,
const base::TickClock* tick_clock, const base::TickClock* tick_clock,
scoped_refptr<base::SequencedTaskRunner> background_task_runner); const ChromeInfo& chrome_info);
~FeedStream() override; ~FeedStream() override;
FeedStream(const FeedStream&) = delete; FeedStream(const FeedStream&) = delete;
...@@ -158,6 +159,7 @@ class FeedStream : public FeedStreamApi, ...@@ -158,6 +159,7 @@ class FeedStream : public FeedStreamApi,
StreamModel* GetModel() { return model_.get(); } StreamModel* GetModel() { return model_.get(); }
const base::Clock* GetClock() { return clock_; } const base::Clock* GetClock() { return clock_; }
const ChromeInfo& GetChromeInfo() const { return chrome_info_; }
WireResponseTranslator* GetWireResponseTranslator() const { WireResponseTranslator* GetWireResponseTranslator() const {
return wire_response_translator_; return wire_response_translator_;
...@@ -196,7 +198,7 @@ class FeedStream : public FeedStreamApi, ...@@ -196,7 +198,7 @@ class FeedStream : public FeedStreamApi,
const base::TickClock* tick_clock_; const base::TickClock* tick_clock_;
WireResponseTranslator* wire_response_translator_; WireResponseTranslator* wire_response_translator_;
scoped_refptr<base::SequencedTaskRunner> background_task_runner_; ChromeInfo chrome_info_;
offline_pages::TaskQueue task_queue_; offline_pages::TaskQueue task_queue_;
// Whether the model is being loaded. Used to prevent multiple simultaneous // Whether the model is being loaded. Used to prevent multiple simultaneous
......
...@@ -251,11 +251,13 @@ class FeedStreamTest : public testing::Test, public FeedStream::Delegate { ...@@ -251,11 +251,13 @@ class FeedStreamTest : public testing::Test, public FeedStream::Delegate {
feed::prefs::RegisterFeedSharedProfilePrefs(profile_prefs_.registry()); feed::prefs::RegisterFeedSharedProfilePrefs(profile_prefs_.registry());
feed::RegisterProfilePrefs(profile_prefs_.registry()); feed::RegisterProfilePrefs(profile_prefs_.registry());
CHECK_EQ(kTestTimeEpoch, task_environment_.GetMockClock()->Now()); CHECK_EQ(kTestTimeEpoch, task_environment_.GetMockClock()->Now());
ChromeInfo chrome_info;
chrome_info.channel = version_info::Channel::STABLE;
chrome_info.version = base::Version({99, 1, 9911, 2});
stream_ = std::make_unique<FeedStream>( stream_ = std::make_unique<FeedStream>(
&refresh_scheduler_, &event_observer_, this, &profile_prefs_, &network_, &refresh_scheduler_, &event_observer_, this, &profile_prefs_, &network_,
store_.get(), task_environment_.GetMockClock(), store_.get(), task_environment_.GetMockClock(),
task_environment_.GetMockTickClock(), task_environment_.GetMockTickClock(), chrome_info);
task_environment_.GetMainThreadTaskRunner());
// Set the user classifier. // Set the user classifier.
auto user_classifier = std::make_unique<TestUserClassifier>( auto user_classifier = std::make_unique<TestUserClassifier>(
......
...@@ -5,12 +5,105 @@ ...@@ -5,12 +5,105 @@
#include "components/feed/core/v2/proto_util.h" #include "components/feed/core/v2/proto_util.h"
#include <tuple> #include <tuple>
#include <vector>
#include "base/strings/strcat.h" #include "base/strings/strcat.h"
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/system/sys_info.h"
#include "build/build_config.h"
#include "components/feed/core/proto/v2/store.pb.h" #include "components/feed/core/proto/v2/store.pb.h"
#include "components/feed/core/v2/feed_stream.h"
#if defined(OS_ANDROID)
#include "base/android/build_info.h"
#endif
namespace feed { namespace feed {
namespace {
feedwire::Version::Architecture GetBuildArchitecture() {
#if defined(ARCH_CPU_X86_64)
return feedwire::Version::X86_64;
#elif defined(ARCH_CPU_X86)
return feedwire::Version::X86;
#elif defined(ARCH_CPU_MIPS64)
return feedwire::Version::MIPS64;
#elif defined(ARCH_CPU_MIPS)
return feedwire::Version::MIPS;
#elif defined(ARCH_CPU_ARM64)
return feedwire::Version::ARM64;
#elif defined(ARCH_CPU_ARMEL)
return feedwire::Version::ARM;
#else
return feedwire::Version::UNKNOWN_ARCHITECTURE;
#endif
}
feedwire::Version::Architecture GetSystemArchitecture() {
// By default, use |GetBuildArchitecture()|.
// In the case of x86 and ARM, the OS might be x86_64 or ARM_64.
feedwire::Version::Architecture build_arch = GetBuildArchitecture();
if (build_arch == feedwire::Version::X86 &&
base::SysInfo::OperatingSystemArchitecture() == "x86_64") {
return feedwire::Version::X86_64;
}
if (feedwire::Version::ARM &&
base::SysInfo::OperatingSystemArchitecture() == "arm64") {
return feedwire::Version::ARM64;
}
return build_arch;
}
feedwire::Version::BuildType GetBuildType(version_info::Channel channel) {
switch (channel) {
case version_info::Channel::CANARY:
return feedwire::Version::ALPHA;
case version_info::Channel::DEV:
return feedwire::Version::DEV;
case version_info::Channel::BETA:
return feedwire::Version::BETA;
case version_info::Channel::STABLE:
return feedwire::Version::RELEASE;
default:
return feedwire::Version::UNKNOWN_BUILD_TYPE;
}
}
feedwire::Version GetPlatformVersionMessage() {
feedwire::Version result;
result.set_architecture(GetSystemArchitecture());
result.set_build_type(feedwire::Version::RELEASE);
int32_t major, minor, revision;
base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &revision);
result.set_major(major);
result.set_minor(minor);
result.set_revision(revision);
#if defined(OS_ANDROID)
result.set_api_version(base::android::BuildInfo::GetInstance()->sdk_int());
#endif
return result;
}
feedwire::Version GetAppVersionMessage(const ChromeInfo& chrome_info) {
feedwire::Version result;
result.set_architecture(GetBuildArchitecture());
result.set_build_type(GetBuildType(chrome_info.channel));
// Chrome's version is in the format: MAJOR,MINOR,BUILD,PATCH.
const std::vector<uint32_t>& numbers = chrome_info.version.components();
if (numbers.size() > 3) {
result.set_major(static_cast<int32_t>(numbers[0]));
result.set_minor(static_cast<int32_t>(numbers[1]));
result.set_build(static_cast<int32_t>(numbers[2]));
result.set_revision(static_cast<int32_t>(numbers[3]));
}
#if defined(OS_ANDROID)
result.set_api_version(base::android::BuildInfo::GetInstance()->sdk_int());
#endif
return result;
}
} // namespace
std::string ContentIdString(const feedwire::ContentId& content_id) { std::string ContentIdString(const feedwire::ContentId& content_id) {
return base::StrCat({content_id.content_domain(), ",", return base::StrCat({content_id.content_domain(), ",",
...@@ -34,6 +127,24 @@ bool CompareContentId(const feedwire::ContentId& a, ...@@ -34,6 +127,24 @@ bool CompareContentId(const feedwire::ContentId& a,
std::tie(b.content_domain(), b_id, b_type); std::tie(b.content_domain(), b_id, b_type);
} }
feedwire::ClientInfo CreateClientInfo(const ChromeInfo& chrome_info) {
feedwire::ClientInfo client_info;
// TODO(harringtond): Fill out locale.
// TODO(harringtond): Fill out DisplayInfo.
// TODO(harringtond): Fill out client_instance_id.
// TODO(harringtond): Fill out advertising_id.
// TODO(harringtond): Fill out device_country.
#if defined(OS_ANDROID)
client_info.set_platform_type(feedwire::ClientInfo::ANDROID_ID);
#elif defined(OS_IOS)
client_info.set_platform_type(feedwire::ClientInfo::IOS);
#endif
client_info.set_app_type(feedwire::ClientInfo::CHROME);
*client_info.mutable_platform_version() = GetPlatformVersionMessage();
*client_info.mutable_app_version() = GetAppVersionMessage(chrome_info);
return client_info;
}
} // namespace feed } // namespace feed
namespace feedstore { namespace feedstore {
......
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
#include <string> #include <string>
#include "base/time/time.h" #include "base/time/time.h"
#include "components/feed/core/proto/v2/wire/client_info.pb.h"
#include "components/feed/core/proto/v2/wire/content_id.pb.h" #include "components/feed/core/proto/v2/wire/content_id.pb.h"
#include "components/feed/core/v2/types.h"
namespace feedstore { namespace feedstore {
class StreamData; class StreamData;
...@@ -18,6 +19,8 @@ class StreamData; ...@@ -18,6 +19,8 @@ class StreamData;
// Helper functions/classes for dealing with feed proto messages. // Helper functions/classes for dealing with feed proto messages.
namespace feed { namespace feed {
using ContentId = feedwire::ContentId;
struct ChromeInfo;
std::string ContentIdString(const feedwire::ContentId&); std::string ContentIdString(const feedwire::ContentId&);
bool Equal(const feedwire::ContentId& a, const feedwire::ContentId& b); bool Equal(const feedwire::ContentId& a, const feedwire::ContentId& b);
...@@ -32,6 +35,8 @@ class ContentIdCompareFunctor { ...@@ -32,6 +35,8 @@ class ContentIdCompareFunctor {
} }
}; };
feedwire::ClientInfo CreateClientInfo(const ChromeInfo& chrome_info);
} // namespace feed } // namespace feed
namespace feedstore { namespace feedstore {
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/feed/core/v2/proto_util.h"
#include "components/feed/core/proto/v2/wire/client_info.pb.h"
#include "components/feed/core/v2/types.h"
#include "components/version_info/channel.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace feed {
namespace {
TEST(ProtoUtilTest, CreateClientInfo) {
ChromeInfo chrome_info;
chrome_info.version = base::Version({1, 2, 3, 4});
chrome_info.channel = version_info::Channel::STABLE;
feedwire::ClientInfo result = CreateClientInfo(chrome_info);
EXPECT_EQ(feedwire::ClientInfo::CHROME, result.app_type());
EXPECT_EQ(feedwire::Version::RELEASE, result.app_version().build_type());
EXPECT_EQ(1, result.app_version().major());
EXPECT_EQ(2, result.app_version().minor());
EXPECT_EQ(3, result.app_version().build());
EXPECT_EQ(4, result.app_version().revision());
}
} // namespace
} // namespace feed
...@@ -82,7 +82,8 @@ FeedService::FeedService( ...@@ -82,7 +82,8 @@ FeedService::FeedService(
signin::IdentityManager* identity_manager, signin::IdentityManager* identity_manager,
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
scoped_refptr<base::SequencedTaskRunner> background_task_runner, scoped_refptr<base::SequencedTaskRunner> background_task_runner,
const std::string& api_key) const std::string& api_key,
const ChromeInfo& chrome_info)
: delegate_(std::move(delegate)), : delegate_(std::move(delegate)),
refresh_task_scheduler_(std::move(refresh_task_scheduler)) { refresh_task_scheduler_(std::move(refresh_task_scheduler)) {
stream_delegate_ = std::make_unique<StreamDelegateImpl>(local_state); stream_delegate_ = std::make_unique<StreamDelegateImpl>(local_state);
...@@ -97,7 +98,7 @@ FeedService::FeedService( ...@@ -97,7 +98,7 @@ FeedService::FeedService(
nullptr, // TODO(harringtond): Implement EventObserver. nullptr, // TODO(harringtond): Implement EventObserver.
stream_delegate_.get(), profile_prefs, feed_network_.get(), store_.get(), stream_delegate_.get(), profile_prefs, feed_network_.get(), store_.get(),
base::DefaultClock::GetInstance(), base::DefaultTickClock::GetInstance(), base::DefaultClock::GetInstance(), base::DefaultTickClock::GetInstance(),
background_task_runner); chrome_info);
stream_delegate_->Initialize(static_cast<FeedStream*>(stream_.get())); stream_delegate_->Initialize(static_cast<FeedStream*>(stream_.get()));
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/memory/scoped_refptr.h" #include "base/memory/scoped_refptr.h"
#include "components/feed/core/v2/public/feed_stream_api.h" #include "components/feed/core/v2/public/feed_stream_api.h"
#include "components/feed/core/v2/public/types.h"
#include "components/keyed_service/core/keyed_service.h" #include "components/keyed_service/core/keyed_service.h"
#include "components/leveldb_proto/public/proto_database.h" #include "components/leveldb_proto/public/proto_database.h"
#include "components/web_resource/eula_accepted_notifier.h" #include "components/web_resource/eula_accepted_notifier.h"
...@@ -57,7 +58,8 @@ class FeedService : public KeyedService { ...@@ -57,7 +58,8 @@ class FeedService : public KeyedService {
signin::IdentityManager* identity_manager, signin::IdentityManager* identity_manager,
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
scoped_refptr<base::SequencedTaskRunner> background_task_runner, scoped_refptr<base::SequencedTaskRunner> background_task_runner,
const std::string& api_key); const std::string& api_key,
const ChromeInfo& chrome_info);
~FeedService() override; ~FeedService() override;
FeedService(const FeedService&) = delete; FeedService(const FeedService&) = delete;
FeedService& operator=(const FeedService&) = delete; FeedService& operator=(const FeedService&) = delete;
......
...@@ -8,8 +8,7 @@ ...@@ -8,8 +8,7 @@
#include <vector> #include <vector>
#include "base/observer_list_types.h" #include "base/observer_list_types.h"
#include "base/util/type_safety/id_type.h" #include "components/feed/core/v2/public/types.h"
#include "components/feed/core/proto/v2/wire/content_id.pb.h"
namespace feedui { namespace feedui {
class StreamUpdate; class StreamUpdate;
...@@ -19,12 +18,6 @@ class DataOperation; ...@@ -19,12 +18,6 @@ class DataOperation;
} }
namespace feed { namespace feed {
using ContentId = feedwire::ContentId;
// Uniquely identifies a revision of a |feedstore::Content|. If Content changes,
// it is assigned a new revision number.
using ContentRevision = util::IdTypeU32<class ContentRevisionClass>;
// A unique ID for an ephemeral change.
using EphemeralChangeId = util::IdTypeU32<class EphemeralChangeIdClass>;
// This is the public access point for interacting with the Feed stream // This is the public access point for interacting with the Feed stream
// contents. // contents.
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_FEED_CORE_V2_PUBLIC_TYPES_H_
#define COMPONENTS_FEED_CORE_V2_PUBLIC_TYPES_H_
#include "base/util/type_safety/id_type.h"
#include "base/version.h"
#include "components/version_info/channel.h"
namespace feed {
// Information about the Chrome build.
struct ChromeInfo {
version_info::Channel channel{};
base::Version version;
};
// A unique ID for an ephemeral change.
using EphemeralChangeId = util::IdTypeU32<class EphemeralChangeIdClass>;
} // namespace feed
#endif // COMPONENTS_FEED_CORE_V2_PUBLIC_TYPES_H_
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
#include <memory> #include <memory>
#include <vector> #include <vector>
#include "components/feed/core/proto/v2/store.pb.h" #include "components/feed/core/proto/v2/store.pb.h"
#include "components/feed/core/v2/public/feed_stream_api.h"
#include "components/feed/core/v2/stream_model/feature_tree.h" #include "components/feed/core/v2/stream_model/feature_tree.h"
#include "components/feed/core/v2/types.h"
namespace feed { namespace feed {
namespace stream_model { namespace stream_model {
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include "base/util/type_safety/id_type.h" #include "base/util/type_safety/id_type.h"
#include "components/feed/core/proto/v2/store.pb.h" #include "components/feed/core/proto/v2/store.pb.h"
#include "components/feed/core/v2/proto_util.h" #include "components/feed/core/v2/proto_util.h"
#include "components/feed/core/v2/public/feed_stream_api.h" #include "components/feed/core/v2/types.h"
namespace feed { namespace feed {
namespace stream_model { namespace stream_model {
......
...@@ -11,9 +11,9 @@ ...@@ -11,9 +11,9 @@
#include "components/feed/core/proto/v2/store.pb.h" #include "components/feed/core/proto/v2/store.pb.h"
#include "components/feed/core/v2/feed_store.h" #include "components/feed/core/v2/feed_store.h"
#include "components/feed/core/v2/proto_util.h" #include "components/feed/core/v2/proto_util.h"
#include "components/feed/core/v2/public/feed_stream_api.h"
#include "components/feed/core/v2/scheduling.h" #include "components/feed/core/v2/scheduling.h"
#include "components/feed/core/v2/stream_model_update_request.h" #include "components/feed/core/v2/stream_model_update_request.h"
#include "components/feed/core/v2/types.h"
namespace feed { namespace feed {
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "components/feed/core/proto/v2/wire/request.pb.h" #include "components/feed/core/proto/v2/wire/request.pb.h"
#include "components/feed/core/v2/feed_network.h" #include "components/feed/core/v2/feed_network.h"
#include "components/feed/core/v2/feed_stream.h" #include "components/feed/core/v2/feed_stream.h"
#include "components/feed/core/v2/proto_util.h"
#include "components/feed/core/v2/stream_model.h" #include "components/feed/core/v2/stream_model.h"
#include "components/feed/core/v2/stream_model_update_request.h" #include "components/feed/core/v2/stream_model_update_request.h"
...@@ -68,10 +69,9 @@ void LoadStreamTask::LoadFromStoreComplete( ...@@ -68,10 +69,9 @@ void LoadStreamTask::LoadFromStoreComplete(
// TODO(harringtond): Add throttling. // TODO(harringtond): Add throttling.
// TODO(harringtond): Request parameters here are all placeholder values. // TODO(harringtond): Request parameters here are all placeholder values.
feedwire::Request request; feedwire::Request request;
feedwire::ClientInfo& client_info = *request.mutable_feed_request()->mutable_client_info() =
*request.mutable_feed_request()->mutable_client_info(); CreateClientInfo(stream_->GetChromeInfo());
client_info.set_platform_type(feedwire::ClientInfo::ANDROID_ID);
client_info.set_app_type(feedwire::ClientInfo::CHROME);
request.mutable_feed_request()->mutable_feed_query()->set_reason( request.mutable_feed_request()->mutable_feed_query()->set_reason(
feedwire::FeedQuery::MANUAL_REFRESH); feedwire::FeedQuery::MANUAL_REFRESH);
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "components/feed/core/v2/feed_network.h" #include "components/feed/core/v2/feed_network.h"
#include "components/feed/core/v2/tasks/load_stream_from_store_task.h" #include "components/feed/core/v2/tasks/load_stream_from_store_task.h"
#include "components/offline_pages/task/task.h" #include "components/offline_pages/task/task.h"
#include "components/version_info/channel.h"
namespace feed { namespace feed {
class FeedStream; class FeedStream;
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
#include "base/time/time.h" #include "base/time/time.h"
#include "components/feed/core/proto/v2/store.pb.h" #include "components/feed/core/proto/v2/store.pb.h"
#include "components/feed/core/v2/public/feed_stream_api.h" #include "components/feed/core/v2/proto_util.h"
#include "components/feed/core/v2/types.h"
// Functions that help build a feedstore::StreamStructure for testing. // Functions that help build a feedstore::StreamStructure for testing.
namespace feed { namespace feed {
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_FEED_CORE_V2_TYPES_H_
#define COMPONENTS_FEED_CORE_V2_TYPES_H_
#include "base/util/type_safety/id_type.h"
#include "components/feed/core/v2/public/types.h"
namespace feed {
// Make sure public types are included here too.
// See components/feed/core/v2/public/types.h.
using ::feed::ChromeInfo;
using ::feed::EphemeralChangeId;
// Uniquely identifies a revision of a |feedstore::Content|. If Content changes,
// it is assigned a new revision number.
using ContentRevision = util::IdTypeU32<class ContentRevisionClass>;
} // namespace feed
#endif // COMPONENTS_FEED_CORE_V2_PUBLIC_TYPES_H_
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