diff options
author | maxbogue <maxbogue@chromium.org> | 2015-08-11 10:52:12 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-11 17:52:54 +0000 |
commit | b18b920ba602a4103bbe0bdfb2803a44dc5f42d0 (patch) | |
tree | a9dfe8ef87ef13ea1fedad496ff3bf41062d4732 | |
parent | 4eebb13efbe6b3304bc501da6331e64e05d716f9 (diff) | |
download | chromium_src-b18b920ba602a4103bbe0bdfb2803a44dc5f42d0.zip chromium_src-b18b920ba602a4103bbe0bdfb2803a44dc5f42d0.tar.gz chromium_src-b18b920ba602a4103bbe0bdfb2803a44dc5f42d0.tar.bz2 |
[Sync] Remove calls to MakeUserAgentForSyncApi.
BUG=512036
Review URL: https://codereview.chromium.org/1258563009
Cr-Commit-Position: refs/heads/master@{#342842}
19 files changed, 73 insertions, 48 deletions
diff --git a/chrome/browser/sync/glue/local_device_info_provider_impl.cc b/chrome/browser/sync/glue/local_device_info_provider_impl.cc index 9a59c4c..329cbaa 100644 --- a/chrome/browser/sync/glue/local_device_info_provider_impl.cc +++ b/chrome/browser/sync/glue/local_device_info_provider_impl.cc @@ -46,25 +46,25 @@ LocalDeviceInfoProviderImpl::LocalDeviceInfoProviderImpl() LocalDeviceInfoProviderImpl::~LocalDeviceInfoProviderImpl() { } -// static. -std::string LocalDeviceInfoProviderImpl::MakeUserAgentForSyncApi() { +const sync_driver::DeviceInfo* +LocalDeviceInfoProviderImpl::GetLocalDeviceInfo() const { + return local_device_info_.get(); +} + +std::string LocalDeviceInfoProviderImpl::GetSyncUserAgent() const { #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) return MakeDesktopUserAgentForSync(); #elif defined(OS_CHROMEOS) return MakeUserAgentForSync("CROS "); #elif defined(OS_ANDROID) - if (IsTabletUI()) + if (IsTabletUI()) { return MakeUserAgentForSync("ANDROID-TABLET "); - else + } else { return MakeUserAgentForSync("ANDROID-PHONE "); + } #endif } -const sync_driver::DeviceInfo* -LocalDeviceInfoProviderImpl::GetLocalDeviceInfo() const { - return local_device_info_.get(); -} - std::string LocalDeviceInfoProviderImpl::GetLocalSyncCacheGUID() const { return cache_guid_; } @@ -97,7 +97,7 @@ void LocalDeviceInfoProviderImpl::InitializeContinuation( new sync_driver::DeviceInfo(guid, session_name, chrome::GetVersionString(), - MakeUserAgentForSyncApi(), + GetSyncUserAgent(), GetLocalDeviceType(), signin_scoped_device_id)); diff --git a/chrome/browser/sync/glue/local_device_info_provider_impl.h b/chrome/browser/sync/glue/local_device_info_provider_impl.h index 7764c95..7323cf2 100644 --- a/chrome/browser/sync/glue/local_device_info_provider_impl.h +++ b/chrome/browser/sync/glue/local_device_info_provider_impl.h @@ -19,18 +19,15 @@ class LocalDeviceInfoProviderImpl // LocalDeviceInfoProvider implementation. const sync_driver::DeviceInfo* GetLocalDeviceInfo() const override; + std::string GetSyncUserAgent() const override; std::string GetLocalSyncCacheGUID() const override; void Initialize(const std::string& cache_guid, const std::string& signin_scoped_device_id) override; scoped_ptr<Subscription> RegisterOnInitializedCallback( const base::Closure& callback) override; - // Helper to construct a user agent string (ASCII) suitable for use by - // the syncapi for any HTTP communication. This string is used by the sync - // backend for classifying client types when calculating statistics. - static std::string MakeUserAgentForSyncApi(); - private: + void InitializeContinuation(const std::string& guid, const std::string& signin_scoped_device_id, const std::string& session_name); diff --git a/chrome/browser/sync/glue/local_device_info_provider_unittest.cc b/chrome/browser/sync/glue/local_device_info_provider_unittest.cc index 66afcf4..9176c30 100644 --- a/chrome/browser/sync/glue/local_device_info_provider_unittest.cc +++ b/chrome/browser/sync/glue/local_device_info_provider_unittest.cc @@ -78,9 +78,8 @@ TEST_F(LocalDeviceInfoProviderTest, GetLocalDeviceInfo) { EXPECT_EQ(syncer::GetSessionNameSynchronouslyForTesting(), local_device_info->client_name()); - EXPECT_EQ( - browser_sync::LocalDeviceInfoProviderImpl::MakeUserAgentForSyncApi(), - local_device_info->sync_user_agent()); + EXPECT_EQ(provider_->GetSyncUserAgent(), + local_device_info->sync_user_agent()); } TEST_F(LocalDeviceInfoProviderTest, GetLocalSyncCacheGUID) { diff --git a/chrome/browser/sync/glue/sync_backend_host.h b/chrome/browser/sync/glue/sync_backend_host.h index 4ec057a..9ef864c 100644 --- a/chrome/browser/sync/glue/sync_backend_host.h +++ b/chrome/browser/sync/glue/sync_backend_host.h @@ -64,6 +64,7 @@ class SyncBackendHost : public sync_driver::BackendDataTypeConfigurer { scoped_ptr<base::Thread> sync_thread, const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, const GURL& service_url, + const std::string& sync_user_agent, const syncer::SyncCredentials& credentials, bool delete_sync_data_folder, scoped_ptr<syncer::SyncManagerFactory> sync_manager_factory, diff --git a/chrome/browser/sync/glue/sync_backend_host_core.cc b/chrome/browser/sync/glue/sync_backend_host_core.cc index d08e1a5..621c54c 100644 --- a/chrome/browser/sync/glue/sync_backend_host_core.cc +++ b/chrome/browser/sync/glue/sync_backend_host_core.cc @@ -61,6 +61,7 @@ DoInitializeOptions::DoInitializeOptions( const scoped_refptr<syncer::ExtensionsActivity>& extensions_activity, const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, const GURL& service_url, + const std::string& sync_user_agent, scoped_ptr<syncer::HttpPostProviderFactory> http_bridge_factory, const syncer::SyncCredentials& credentials, const std::string& invalidator_client_id, @@ -82,6 +83,7 @@ DoInitializeOptions::DoInitializeOptions( extensions_activity(extensions_activity), event_handler(event_handler), service_url(service_url), + sync_user_agent(sync_user_agent), http_bridge_factory(http_bridge_factory.Pass()), credentials(credentials), invalidator_client_id(invalidator_client_id), @@ -423,8 +425,7 @@ void SyncBackendHostCore::DoInitialize( // Finish initializing the HttpBridgeFactory. We do this here because // building the user agent may block on some platforms. - options->http_bridge_factory->Init( - LocalDeviceInfoProviderImpl::MakeUserAgentForSyncApi()); + options->http_bridge_factory->Init(options->sync_user_agent); // Blow away the partial or corrupt sync data folder before doing any more // initialization, if necessary. diff --git a/chrome/browser/sync/glue/sync_backend_host_core.h b/chrome/browser/sync/glue/sync_backend_host_core.h index bcd0ea9..489f1af 100644 --- a/chrome/browser/sync/glue/sync_backend_host_core.h +++ b/chrome/browser/sync/glue/sync_backend_host_core.h @@ -31,6 +31,7 @@ struct DoInitializeOptions { const scoped_refptr<syncer::ExtensionsActivity>& extensions_activity, const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, const GURL& service_url, + const std::string& sync_user_agent, scoped_ptr<syncer::HttpPostProviderFactory> http_bridge_factory, const syncer::SyncCredentials& credentials, const std::string& invalidator_client_id, @@ -54,6 +55,7 @@ struct DoInitializeOptions { scoped_refptr<syncer::ExtensionsActivity> extensions_activity; syncer::WeakHandle<syncer::JsEventHandler> event_handler; GURL service_url; + std::string sync_user_agent; // Overridden by tests. scoped_ptr<syncer::HttpPostProviderFactory> http_bridge_factory; syncer::SyncCredentials credentials; diff --git a/chrome/browser/sync/glue/sync_backend_host_impl.cc b/chrome/browser/sync/glue/sync_backend_host_impl.cc index 598c0e1..d04ac0b 100644 --- a/chrome/browser/sync/glue/sync_backend_host_impl.cc +++ b/chrome/browser/sync/glue/sync_backend_host_impl.cc @@ -102,6 +102,7 @@ void SyncBackendHostImpl::Initialize( scoped_ptr<base::Thread> sync_thread, const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, const GURL& sync_service_url, + const std::string& sync_user_agent, const syncer::SyncCredentials& credentials, bool delete_sync_data_folder, scoped_ptr<syncer::SyncManagerFactory> sync_manager_factory, @@ -148,7 +149,7 @@ void SyncBackendHostImpl::Initialize( scoped_ptr<DoInitializeOptions> init_opts(new DoInitializeOptions( registrar_->sync_thread()->message_loop(), registrar_.get(), routing_info, workers, extensions_activity_monitor_.GetExtensionsActivity(), - event_handler, sync_service_url, + event_handler, sync_service_url, sync_user_agent, network_resources->GetHttpPostProviderFactory( make_scoped_refptr(profile_->GetRequestContext()), base::Bind(&UpdateNetworkTime), diff --git a/chrome/browser/sync/glue/sync_backend_host_impl.h b/chrome/browser/sync/glue/sync_backend_host_impl.h index 3f15018..21b7acb 100644 --- a/chrome/browser/sync/glue/sync_backend_host_impl.h +++ b/chrome/browser/sync/glue/sync_backend_host_impl.h @@ -83,6 +83,7 @@ class SyncBackendHostImpl scoped_ptr<base::Thread> sync_thread, const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, const GURL& service_url, + const std::string& sync_user_agent, const syncer::SyncCredentials& credentials, bool delete_sync_data_folder, scoped_ptr<syncer::SyncManagerFactory> sync_manager_factory, diff --git a/chrome/browser/sync/glue/sync_backend_host_impl_unittest.cc b/chrome/browser/sync/glue/sync_backend_host_impl_unittest.cc index 9539b9c..3723793 100644 --- a/chrome/browser/sync/glue/sync_backend_host_impl_unittest.cc +++ b/chrome/browser/sync/glue/sync_backend_host_impl_unittest.cc @@ -215,6 +215,7 @@ class SyncBackendHostTest : public testing::Test { scoped_ptr<base::Thread>(), syncer::WeakHandle<syncer::JsEventHandler>(), GURL(std::string()), + std::string(), credentials_, true, fake_manager_factory_.Pass(), diff --git a/chrome/browser/sync/glue/sync_backend_host_mock.cc b/chrome/browser/sync/glue/sync_backend_host_mock.cc index d63f7c4..a6deee1 100644 --- a/chrome/browser/sync/glue/sync_backend_host_mock.cc +++ b/chrome/browser/sync/glue/sync_backend_host_mock.cc @@ -18,6 +18,7 @@ void SyncBackendHostMock::Initialize( scoped_ptr<base::Thread> sync_thread, const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, const GURL& service_url, + const std::string& sync_user_agent, const syncer::SyncCredentials& credentials, bool delete_sync_data_folder, scoped_ptr<syncer::SyncManagerFactory> sync_manager_factory, diff --git a/chrome/browser/sync/glue/sync_backend_host_mock.h b/chrome/browser/sync/glue/sync_backend_host_mock.h index 6ec17e9..fab5d91 100644 --- a/chrome/browser/sync/glue/sync_backend_host_mock.h +++ b/chrome/browser/sync/glue/sync_backend_host_mock.h @@ -30,6 +30,7 @@ class SyncBackendHostMock : public SyncBackendHost { scoped_ptr<base::Thread> sync_thread, const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, const GURL& service_url, + const std::string& sync_user_agent, const syncer::SyncCredentials& credentials, bool delete_sync_data_folder, scoped_ptr<syncer::SyncManagerFactory> sync_manager_factory, diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc index 453252b..b144dfb 100644 --- a/chrome/browser/sync/profile_sync_service.cc +++ b/chrome/browser/sync/profile_sync_service.cc @@ -238,11 +238,6 @@ ProfileSyncService::ProfileSyncService( backup_finished_(false), clear_browsing_data_(base::Bind(&ClearBrowsingData)), browsing_data_remover_observer_(NULL), - sync_stopped_reporter_( - new browser_sync::SyncStoppedReporter( - sync_service_url_, - profile_->GetRequestContext(), - browser_sync::SyncStoppedReporter::ResultCallback())), weak_factory_(this), startup_controller_weak_factory_(this) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -271,6 +266,12 @@ ProfileSyncService::ProfileSyncService( DCHECK(factory_.get()); local_device_ = factory_->CreateLocalDeviceInfoProvider(); + sync_stopped_reporter_.reset( + new browser_sync::SyncStoppedReporter( + sync_service_url_, + local_device_->GetSyncUserAgent(), + profile_->GetRequestContext(), + browser_sync::SyncStoppedReporter::ResultCallback())), sessions_sync_manager_.reset( new SessionsSyncManager(profile, local_device_.get(), router.Pass())); device_info_sync_service_.reset( @@ -526,7 +527,9 @@ void ProfileSyncService::InitializeBackend(bool delete_stale_data) { ClearStaleErrors(); backend_->Initialize(this, sync_thread_.Pass(), GetJsEventHandler(), - sync_service_url_, credentials, delete_stale_data, + sync_service_url_, + local_device_->GetSyncUserAgent(), + credentials, delete_stale_data, scoped_ptr<syncer::SyncManagerFactory>( new syncer::SyncManagerFactory(GetManagerType())) .Pass(), diff --git a/chrome/browser/sync/profile_sync_service_unittest.cc b/chrome/browser/sync/profile_sync_service_unittest.cc index 0d58a79..4570cc8 100644 --- a/chrome/browser/sync/profile_sync_service_unittest.cc +++ b/chrome/browser/sync/profile_sync_service_unittest.cc @@ -112,6 +112,7 @@ class SyncBackendHostNoReturn : public SyncBackendHostMock { scoped_ptr<base::Thread> sync_thread, const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, const GURL& service_url, + const std::string& sync_user_agent, const syncer::SyncCredentials& credentials, bool delete_sync_data_folder, scoped_ptr<syncer::SyncManagerFactory> sync_manager_factory, @@ -134,6 +135,7 @@ class SyncBackendHostMockCollectDeleteDirParam : public SyncBackendHostMock { scoped_ptr<base::Thread> sync_thread, const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, const GURL& service_url, + const std::string& sync_user_agent, const syncer::SyncCredentials& credentials, bool delete_sync_data_folder, scoped_ptr<syncer::SyncManagerFactory> sync_manager_factory, @@ -145,8 +147,8 @@ class SyncBackendHostMockCollectDeleteDirParam : public SyncBackendHostMock { override { delete_dir_param_->push_back(delete_sync_data_folder); SyncBackendHostMock::Initialize(frontend, sync_thread.Pass(), - event_handler, service_url, credentials, - delete_sync_data_folder, + event_handler, service_url, sync_user_agent, + credentials, delete_sync_data_folder, sync_manager_factory.Pass(), unrecoverable_error_handler, report_unrecoverable_error_function, diff --git a/chrome/browser/sync/sync_stopped_reporter.cc b/chrome/browser/sync/sync_stopped_reporter.cc index b0145f5..22fcd09 100644 --- a/chrome/browser/sync/sync_stopped_reporter.cc +++ b/chrome/browser/sync/sync_stopped_reporter.cc @@ -28,20 +28,17 @@ const char kEventEndpoint[] = "event"; // perspective either. This seems like a good compromise. const int kRequestTimeoutSeconds = 10; -std::string GetUserAgent() { - return browser_sync::LocalDeviceInfoProviderImpl::MakeUserAgentForSyncApi(); -} - } // namespace namespace browser_sync { SyncStoppedReporter::SyncStoppedReporter( const GURL& sync_service_url, + const std::string& user_agent, const scoped_refptr<net::URLRequestContextGetter>& request_context, const ResultCallback& callback) : sync_event_url_(GetSyncEventURL(sync_service_url)), - user_agent_(GetUserAgent()), + user_agent_(user_agent), request_context_(request_context), callback_(callback) { DCHECK(!sync_service_url.is_empty()); diff --git a/chrome/browser/sync/sync_stopped_reporter.h b/chrome/browser/sync/sync_stopped_reporter.h index a2575ec..fd5eb2ee 100644 --- a/chrome/browser/sync/sync_stopped_reporter.h +++ b/chrome/browser/sync/sync_stopped_reporter.h @@ -29,6 +29,7 @@ class SyncStoppedReporter : public net::URLFetcherDelegate { typedef base::Callback<void(const Result&)> ResultCallback; SyncStoppedReporter(const GURL& sync_service_url, + const std::string& user_agent, const scoped_refptr<net::URLRequestContextGetter>& request_context, const ResultCallback& callback); ~SyncStoppedReporter() override; diff --git a/chrome/browser/sync/sync_stopped_reporter_unittest.cc b/chrome/browser/sync/sync_stopped_reporter_unittest.cc index eab9f14..d8bd6e4 100644 --- a/chrome/browser/sync/sync_stopped_reporter_unittest.cc +++ b/chrome/browser/sync/sync_stopped_reporter_unittest.cc @@ -22,6 +22,7 @@ const char kTestURL[] = "http://chromium.org/test"; const char kTestURLTrailingSlash[] = "http://chromium.org/test/"; const char kEventURL[] = "http://chromium.org/test/event"; +const char kTestUserAgent[] = "the_fifth_element"; const char kAuthToken[] = "multipass"; const char kCacheGuid[] = "leeloo"; const char kBirthday[] = "2263"; @@ -46,6 +47,10 @@ class SyncStoppedReporterTest : public testing::Test { return GURL(kTestURL); } + std::string user_agent() const { + return std::string(kTestUserAgent); + } + SyncStoppedReporter::ResultCallback callback() { return base::Bind(&SyncStoppedReporterTest::RequestFinishedCallback, base::Unretained(this)); @@ -59,10 +64,6 @@ class SyncStoppedReporterTest : public testing::Test { return request_context_.get(); } - static std::string GetUserAgent() { - return browser_sync::LocalDeviceInfoProviderImpl::MakeUserAgentForSyncApi(); - } - private: base::MessageLoop message_loop_; scoped_refptr<net::URLRequestContextGetter> request_context_; @@ -74,7 +75,8 @@ class SyncStoppedReporterTest : public testing::Test { // Test that the event URL gets constructed correctly. TEST_F(SyncStoppedReporterTest, EventURL) { net::TestURLFetcherFactory factory; - SyncStoppedReporter ssr(GURL(kTestURL), request_context(), callback()); + SyncStoppedReporter ssr(GURL(kTestURL), user_agent(), + request_context(), callback()); ssr.ReportSyncStopped(kAuthToken, kCacheGuid, kBirthday); net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); EXPECT_EQ(kEventURL, fetcher->GetOriginalURL().spec()); @@ -83,7 +85,7 @@ TEST_F(SyncStoppedReporterTest, EventURL) { // Test that the event URL gets constructed correctly with a trailing slash. TEST_F(SyncStoppedReporterTest, EventURLWithSlash) { net::TestURLFetcherFactory factory; - SyncStoppedReporter ssr(GURL(kTestURLTrailingSlash), + SyncStoppedReporter ssr(GURL(kTestURLTrailingSlash), user_agent(), request_context(), callback()); ssr.ReportSyncStopped(kAuthToken, kCacheGuid, kBirthday); net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); @@ -93,7 +95,8 @@ TEST_F(SyncStoppedReporterTest, EventURLWithSlash) { // Test that the URLFetcher gets configured correctly. TEST_F(SyncStoppedReporterTest, FetcherConfiguration) { net::TestURLFetcherFactory factory; - SyncStoppedReporter ssr(test_url(), request_context(), callback()); + SyncStoppedReporter ssr(test_url(), user_agent(), + request_context(), callback()); ssr.ReportSyncStopped(kAuthToken, kCacheGuid, kBirthday); net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); @@ -106,7 +109,7 @@ TEST_F(SyncStoppedReporterTest, FetcherConfiguration) { auth_header.append(kAuthToken); EXPECT_EQ(auth_header, header); headers.GetHeader(net::HttpRequestHeaders::kUserAgent, &header); - EXPECT_EQ(GetUserAgent(), header); + EXPECT_EQ(user_agent(), header); sync_pb::EventRequest event_request; event_request.ParseFromString(fetcher->upload_data()); @@ -118,7 +121,8 @@ TEST_F(SyncStoppedReporterTest, FetcherConfiguration) { TEST_F(SyncStoppedReporterTest, HappyCase) { net::TestURLFetcherFactory factory; - SyncStoppedReporter ssr(test_url(), request_context(), callback()); + SyncStoppedReporter ssr(test_url(), user_agent(), + request_context(), callback()); ssr.ReportSyncStopped(kAuthToken, kCacheGuid, kBirthday); net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); fetcher->set_response_code(net::HTTP_OK); @@ -130,7 +134,8 @@ TEST_F(SyncStoppedReporterTest, HappyCase) { TEST_F(SyncStoppedReporterTest, ServerNotFound) { net::TestURLFetcherFactory factory; - SyncStoppedReporter ssr(test_url(), request_context(), callback()); + SyncStoppedReporter ssr(test_url(), user_agent(), + request_context(), callback()); ssr.ReportSyncStopped(kAuthToken, kCacheGuid, kBirthday); net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); fetcher->set_response_code(net::HTTP_NOT_FOUND); @@ -144,7 +149,8 @@ TEST_F(SyncStoppedReporterTest, DestructionDuringRequestHandler) { net::TestURLFetcherFactory factory; factory.set_remove_fetcher_on_delete(true); { - SyncStoppedReporter ssr(test_url(), request_context(), callback()); + SyncStoppedReporter ssr(test_url(), user_agent(), + request_context(), callback()); ssr.ReportSyncStopped(kAuthToken, kCacheGuid, kBirthday); EXPECT_FALSE(factory.GetFetcherByID(0) == nullptr); } @@ -152,7 +158,8 @@ TEST_F(SyncStoppedReporterTest, DestructionDuringRequestHandler) { } TEST_F(SyncStoppedReporterTest, Timeout) { - SyncStoppedReporter ssr(test_url(), request_context(), callback()); + SyncStoppedReporter ssr(test_url(), user_agent(), + request_context(), callback()); // A task runner that can trigger the timeout immediately. scoped_refptr<base::TestSimpleTaskRunner> task_runner( @@ -173,7 +180,7 @@ TEST_F(SyncStoppedReporterTest, Timeout) { TEST_F(SyncStoppedReporterTest, NoCallback) { net::TestURLFetcherFactory factory; - SyncStoppedReporter ssr(GURL(kTestURL), request_context(), + SyncStoppedReporter ssr(GURL(kTestURL), user_agent(), request_context(), SyncStoppedReporter::ResultCallback()); ssr.ReportSyncStopped(kAuthToken, kCacheGuid, kBirthday); net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); @@ -182,7 +189,7 @@ TEST_F(SyncStoppedReporterTest, NoCallback) { } TEST_F(SyncStoppedReporterTest, NoCallbackTimeout) { - SyncStoppedReporter ssr(GURL(kTestURL), request_context(), + SyncStoppedReporter ssr(GURL(kTestURL), user_agent(), request_context(), SyncStoppedReporter::ResultCallback()); // A task runner that can trigger the timeout immediately. diff --git a/components/sync_driver/local_device_info_provider.h b/components/sync_driver/local_device_info_provider.h index 6036a7e..d61041e 100644 --- a/components/sync_driver/local_device_info_provider.h +++ b/components/sync_driver/local_device_info_provider.h @@ -27,6 +27,11 @@ class LocalDeviceInfoProvider { // is destroyed. virtual const DeviceInfo* GetLocalDeviceInfo() const = 0; + // Constructs a user agent string (ASCII) suitable for use by the syncapi + // for any HTTP communication. This string is used by the sync backend for + // classifying client types when calculating statistics. + virtual std::string GetSyncUserAgent() const = 0; + // Returns a GUID string used for creation of the machine tag for // this local session; an empty sting if LocalDeviceInfoProvider hasn't been // initialized yet. diff --git a/components/sync_driver/local_device_info_provider_mock.cc b/components/sync_driver/local_device_info_provider_mock.cc index 2acf49d..644c1b1 100644 --- a/components/sync_driver/local_device_info_provider_mock.cc +++ b/components/sync_driver/local_device_info_provider_mock.cc @@ -33,6 +33,10 @@ const DeviceInfo* LocalDeviceInfoProviderMock::GetLocalDeviceInfo() const { return is_initialized_ ? local_device_info_.get() : NULL; } +std::string LocalDeviceInfoProviderMock::GetSyncUserAgent() const { + return "useragent"; +} + std::string LocalDeviceInfoProviderMock::GetLocalSyncCacheGUID() const { return local_device_info_.get() ? local_device_info_->guid() : ""; } diff --git a/components/sync_driver/local_device_info_provider_mock.h b/components/sync_driver/local_device_info_provider_mock.h index 60c6a45..5cea163 100644 --- a/components/sync_driver/local_device_info_provider_mock.h +++ b/components/sync_driver/local_device_info_provider_mock.h @@ -26,6 +26,7 @@ class LocalDeviceInfoProviderMock ~LocalDeviceInfoProviderMock() override; const DeviceInfo* GetLocalDeviceInfo() const override; + std::string GetSyncUserAgent() const override; std::string GetLocalSyncCacheGUID() const override; void Initialize(const std::string& cache_guid, const std::string& signin_scoped_device_id) override; |