diff options
67 files changed, 238 insertions, 26 deletions
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index e181102..59ea9d9 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn @@ -113,6 +113,7 @@ source_set("browser") { "//components/content_settings/core/common", "//components/crx_file", "//components/data_reduction_proxy/core/browser", + "//components/data_use_measurement/core", "//components/device_event_log", "//components/domain_reliability", "//components/enhanced_bookmarks", diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS index 19370fb..73ee578 100644 --- a/chrome/browser/DEPS +++ b/chrome/browser/DEPS @@ -33,6 +33,7 @@ include_rules = [ "+components/crash", "+components/crx_file", "+components/data_reduction_proxy", + "+components/data_use_measurement/core", "+components/device_event_log", "+components/dom_distiller", "+components/domain_reliability", diff --git a/chrome/browser/profiles/profile_downloader.cc b/chrome/browser/profiles/profile_downloader.cc index f6364fd..04f052c 100644 --- a/chrome/browser/profiles/profile_downloader.cc +++ b/chrome/browser/profiles/profile_downloader.cc @@ -23,6 +23,7 @@ #include "chrome/browser/signin/chrome_signin_client_factory.h" #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" #include "chrome/browser/signin/signin_manager_factory.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "components/signin/core/browser/account_fetcher_service.h" #include "components/signin/core/browser/profile_oauth2_token_service.h" #include "components/signin/core/browser/signin_client.h" @@ -285,6 +286,9 @@ void ProfileDownloader::FetchImageData() { VLOG(1) << "Fetching profile image from " << image_url_with_size; profile_image_fetcher_ = net::URLFetcher::Create( GURL(image_url_with_size), net::URLFetcher::GET, this); + data_use_measurement::DataUseUserData::AttachToFetcher( + profile_image_fetcher_.get(), + data_use_measurement::DataUseUserData::PROFILE_DOWNLOADER); profile_image_fetcher_->SetRequestContext( delegate_->GetBrowserProfile()->GetRequestContext()); profile_image_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | diff --git a/chrome/browser/spellchecker/feedback_sender.cc b/chrome/browser/spellchecker/feedback_sender.cc index 35aab8b..d9d1ffe 100644 --- a/chrome/browser/spellchecker/feedback_sender.cc +++ b/chrome/browser/spellchecker/feedback_sender.cc @@ -48,6 +48,7 @@ #include "chrome/common/spellcheck_common.h" #include "chrome/common/spellcheck_marker.h" #include "chrome/common/spellcheck_messages.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "content/public/browser/render_process_host.h" #include "google_apis/google_api_keys.h" #include "net/base/load_flags.h" @@ -410,6 +411,8 @@ void FeedbackSender::SendFeedback(const std::vector<Misspelling>& feedback_data, net::URLFetcher* sender = net::URLFetcher::Create(kUrlFetcherId, feedback_service_url_, net::URLFetcher::POST, this).release(); + data_use_measurement::DataUseUserData::AttachToFetcher( + sender, data_use_measurement::DataUseUserData::SPELL_CHECKER); sender->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES); sender->SetUploadData("application/json", feedback); diff --git a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc index aad12e1..8ce3037 100644 --- a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc +++ b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc @@ -12,6 +12,7 @@ #include "chrome/browser/spellchecker/spellcheck_service.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/spellcheck_common.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_process_host.h" #include "net/base/load_flags.h" @@ -244,6 +245,8 @@ void SpellcheckHunspellDictionary::DownloadDictionary(GURL url) { OnHunspellDictionaryDownloadBegin(language_)); fetcher_ = net::URLFetcher::Create(url, net::URLFetcher::GET, this); + data_use_measurement::DataUseUserData::AttachToFetcher( + fetcher_.get(), data_use_measurement::DataUseUserData::SPELL_CHECKER); fetcher_->SetRequestContext(request_context_getter_); fetcher_->SetLoadFlags( net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES); diff --git a/chrome/browser/spellchecker/spelling_service_client.cc b/chrome/browser/spellchecker/spelling_service_client.cc index bd3014d..888af4a 100644 --- a/chrome/browser/spellchecker/spelling_service_client.cc +++ b/chrome/browser/spellchecker/spelling_service_client.cc @@ -18,6 +18,7 @@ #include "chrome/common/pref_names.h" #include "chrome/common/spellcheck_common.h" #include "chrome/common/spellcheck_result.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "components/user_prefs/user_prefs.h" #include "content/public/browser/browser_context.h" #include "google_apis/google_api_keys.h" @@ -105,6 +106,8 @@ bool SpellingServiceClient::RequestTextCheck( GURL url = GURL(kSpellingServiceURL); net::URLFetcher* fetcher = CreateURLFetcher(url).release(); + data_use_measurement::DataUseUserData::AttachToFetcher( + fetcher, data_use_measurement::DataUseUserData::SPELL_CHECKER); fetcher->SetRequestContext(context->GetRequestContext()); fetcher->SetUploadData("application/json", request); fetcher->SetLoadFlags( diff --git a/chrome/browser/sync/glue/sync_backend_host_core.cc b/chrome/browser/sync/glue/sync_backend_host_core.cc index 4634c81..4f5cd45 100644 --- a/chrome/browser/sync/glue/sync_backend_host_core.cc +++ b/chrome/browser/sync/glue/sync_backend_host_core.cc @@ -4,12 +4,14 @@ #include "chrome/browser/sync/glue/sync_backend_host_core.h" +#include "base/bind.h" #include "base/files/file_util.h" #include "base/location.h" #include "base/metrics/histogram.h" #include "base/single_thread_task_runner.h" #include "chrome/browser/sync/glue/local_device_info_provider_impl.h" #include "chrome/browser/sync/glue/sync_backend_registrar.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "components/invalidation/public/invalidation_util.h" #include "components/invalidation/public/object_id_invalidation_map.h" #include "components/sync_driver/invalidation_adapter.h" @@ -38,6 +40,10 @@ namespace syncer { class InternalComponentsFactory; } // namespace syncer +namespace net { +class URLFetcher; +} + namespace { // Enums for UMAs. @@ -49,6 +55,11 @@ enum SyncBackendInitState { SYNC_BACKEND_INIT_STATE_COUNT }; +void BindFetcherToDataTracker(net::URLFetcher* fetcher) { + data_use_measurement::DataUseUserData::AttachToFetcher( + fetcher, data_use_measurement::DataUseUserData::SYNC); +} + } // namespace namespace browser_sync { @@ -425,7 +436,8 @@ 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(options->sync_user_agent); + options->http_bridge_factory->Init(options->sync_user_agent, + base::Bind(&BindFetcherToDataTracker)); // Blow away the partial or corrupt sync data folder before doing any more // initialization, if necessary. diff --git a/chrome/browser/sync/test/test_http_bridge_factory.cc b/chrome/browser/sync/test/test_http_bridge_factory.cc index 23b2c0e..f9ee282 100644 --- a/chrome/browser/sync/test/test_http_bridge_factory.cc +++ b/chrome/browser/sync/test/test_http_bridge_factory.cc @@ -31,7 +31,9 @@ TestHttpBridgeFactory::TestHttpBridgeFactory() {} TestHttpBridgeFactory::~TestHttpBridgeFactory() {} -void TestHttpBridgeFactory::Init(const std::string& user_agent) {} +void TestHttpBridgeFactory::Init( + const std::string& user_agent, + const syncer::BindToTrackerCallback& bind_to_tracker_callback) {} syncer::HttpPostProviderInterface* TestHttpBridgeFactory::Create() { return new TestHttpBridge(); diff --git a/chrome/browser/sync/test/test_http_bridge_factory.h b/chrome/browser/sync/test/test_http_bridge_factory.h index 07829c9..4ee1855 100644 --- a/chrome/browser/sync/test/test_http_bridge_factory.h +++ b/chrome/browser/sync/test/test_http_bridge_factory.h @@ -40,7 +40,9 @@ class TestHttpBridgeFactory : public syncer::HttpPostProviderFactory { ~TestHttpBridgeFactory() override; // syncer::HttpPostProviderFactory: - void Init(const std::string& user_agent) override; + void Init( + const std::string& user_agent, + const syncer::BindToTrackerCallback& bind_to_tracker_callback) override; syncer::HttpPostProviderInterface* Create() override; void Destroy(syncer::HttpPostProviderInterface* http) override; }; diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index 4dcb6a5..d13ff31 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -3128,6 +3128,7 @@ '../components/components.gyp:content_settings_core_common', '../components/components.gyp:crx_file', '../components/components.gyp:data_reduction_proxy_core_browser', + '../components/components.gyp:data_use_measurement_core', '../components/components.gyp:domain_reliability', '../components/components.gyp:enhanced_bookmarks', '../components/components.gyp:favicon_base', diff --git a/components/autofill.gypi b/components/autofill.gypi index 0ef8678..c13ad09 100644 --- a/components/autofill.gypi +++ b/components/autofill.gypi @@ -87,6 +87,7 @@ 'autofill_core_common', 'components_resources.gyp:components_resources', 'components_strings.gyp:components_strings', + 'data_use_measurement_core', 'infobars_core', 'keyed_service_core', 'os_crypt', diff --git a/components/autofill/core/browser/BUILD.gn b/components/autofill/core/browser/BUILD.gn index d815e8c..ce5b85d 100644 --- a/components/autofill/core/browser/BUILD.gn +++ b/components/autofill/core/browser/BUILD.gn @@ -142,6 +142,7 @@ source_set("browser") { "//base:i18n", "//base:prefs", "//components/autofill/core/common", + "//components/data_use_measurement/core", "//components/infobars/core", "//components/keyed_service/core", "//components/os_crypt", diff --git a/components/autofill/core/browser/DEPS b/components/autofill/core/browser/DEPS index d9c7bb8..1aaa249 100644 --- a/components/autofill/core/browser/DEPS +++ b/components/autofill/core/browser/DEPS @@ -1,4 +1,5 @@ include_rules = [ + "+components/data_use_measurement/core", "+components/infobars/core", "+components/keyed_service/core", "+components/signin/core/browser", diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/components/autofill/core/browser/autofill_download_manager.cc index bf7473b..b6486cd 100644 --- a/components/autofill/core/browser/autofill_download_manager.cc +++ b/components/autofill/core/browser/autofill_download_manager.cc @@ -14,6 +14,7 @@ #include "components/autofill/core/browser/autofill_xml_parser.h" #include "components/autofill/core/browser/form_structure.h" #include "components/autofill/core/common/autofill_pref_names.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "components/variations/net/variations_http_header_provider.h" #include "net/base/load_flags.h" #include "net/http/http_request_headers.h" @@ -183,6 +184,8 @@ bool AutofillDownloadManager::StartRequest( net::URLFetcher* fetcher = net::URLFetcher::Create(fetcher_id_for_unittest_++, request_url, net::URLFetcher::POST, this).release(); + data_use_measurement::DataUseUserData::AttachToFetcher( + fetcher, data_use_measurement::DataUseUserData::AUTOFILL); url_fetchers_[fetcher] = request_data; fetcher->SetAutomaticallyRetryOn5xx(false); fetcher->SetRequestContext(request_context); diff --git a/components/autofill/core/browser/wallet/real_pan_wallet_client.cc b/components/autofill/core/browser/wallet/real_pan_wallet_client.cc index 94134d7..d9055b5 100644 --- a/components/autofill/core/browser/wallet/real_pan_wallet_client.cc +++ b/components/autofill/core/browser/wallet/real_pan_wallet_client.cc @@ -16,6 +16,7 @@ #include "base/values.h" #include "components/autofill/core/browser/credit_card.h" #include "components/autofill/core/common/autofill_switches.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "google_apis/gaia/identity_provider.h" #include "net/base/escape.h" #include "net/base/load_flags.h" @@ -218,6 +219,8 @@ void RealPanWalletClient::OnGetTokenFailure( void RealPanWalletClient::CreateRequest() { request_ = net::URLFetcher::Create(0, GetUnmaskCardRequestUrl(), net::URLFetcher::POST, this); + data_use_measurement::DataUseUserData::AttachToFetcher( + request_.get(), data_use_measurement::DataUseUserData::AUTOFILL); request_->SetRequestContext(context_getter_.get()); request_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES | net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DISABLE_CACHE); diff --git a/components/data_use_measurement/core/data_use_user_data.cc b/components/data_use_measurement/core/data_use_user_data.cc index d5870b5..ff750a9 100644 --- a/components/data_use_measurement/core/data_use_user_data.cc +++ b/components/data_use_measurement/core/data_use_user_data.cc @@ -30,6 +30,32 @@ std::string DataUseUserData::GetServiceNameAsString(ServiceName service_name) { return "Suggestions"; case NOT_TAGGED: return "NotTagged"; + case TRANSLATE: + return "Translate"; + case SYNC: + return "Sync"; + case OMNIBOX: + return "Omnibox"; + case INVALIDATION: + return "Invalidation"; + case RAPPOR: + return "Rappor"; + case VARIATIONS: + return "Variations"; + case UMA: + return "UMA"; + case DOMAIN_RELIABILITY: + return "DomainReliability"; + case PROFILE_DOWNLOADER: + return "ProfileDownloader"; + case GOOGLE_URL_TRACKER: + return "GoogleURLTracker"; + case AUTOFILL: + return "Autofill"; + case POLICY: + return "Policy"; + case SPELL_CHECKER: + return "SpellChecker"; } return "INVALID"; } diff --git a/components/data_use_measurement/core/data_use_user_data.h b/components/data_use_measurement/core/data_use_user_data.h index 55bdd1f..96b5479 100644 --- a/components/data_use_measurement/core/data_use_user_data.h +++ b/components/data_use_measurement/core/data_use_user_data.h @@ -26,6 +26,19 @@ class DataUseUserData : public base::SupportsUserData::Data { enum ServiceName { NOT_TAGGED, SUGGESTIONS, + TRANSLATE, + SYNC, + OMNIBOX, + INVALIDATION, + RAPPOR, + VARIATIONS, + UMA, + DOMAIN_RELIABILITY, + PROFILE_DOWNLOADER, + GOOGLE_URL_TRACKER, + AUTOFILL, + POLICY, + SPELL_CHECKER, }; explicit DataUseUserData(ServiceName service_name); diff --git a/components/domain_reliability.gypi b/components/domain_reliability.gypi index 9b1d7d5..4412b61 100644 --- a/components/domain_reliability.gypi +++ b/components/domain_reliability.gypi @@ -14,6 +14,7 @@ 'dependencies': [ '../base/base.gyp:base', '../base/base.gyp:base_prefs', + '../components/components.gyp:data_use_measurement_core', '../components/components.gyp:keyed_service_core', '../content/content.gyp:content_browser', '../net/net.gyp:net', diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliability/BUILD.gn index fe1c23c..add26b4 100644 --- a/components/domain_reliability/BUILD.gn +++ b/components/domain_reliability/BUILD.gn @@ -67,6 +67,7 @@ component("domain_reliability") { deps = [ ":bake_in_configs", "//base", + "//components/data_use_measurement/core", "//components/keyed_service/core", "//content/public/browser", "//net", diff --git a/components/domain_reliability/DEPS b/components/domain_reliability/DEPS index bf04311..11de3168 100644 --- a/components/domain_reliability/DEPS +++ b/components/domain_reliability/DEPS @@ -4,6 +4,7 @@ include_rules = [ "+net", + "+components/data_use_measurement/core", "+components/keyed_service/core", ] diff --git a/components/domain_reliability/uploader.cc b/components/domain_reliability/uploader.cc index c5e2099..90952af 100644 --- a/components/domain_reliability/uploader.cc +++ b/components/domain_reliability/uploader.cc @@ -9,6 +9,7 @@ #include "base/metrics/sparse_histogram.h" #include "base/stl_util.h" #include "base/supports_user_data.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "components/domain_reliability/util.h" #include "net/base/load_flags.h" #include "net/base/net_errors.h" @@ -77,6 +78,8 @@ class DomainReliabilityUploaderImpl net::URLFetcher* fetcher = net::URLFetcher::Create(0, upload_url, net::URLFetcher::POST, this) .release(); + data_use_measurement::DataUseUserData::AttachToFetcher( + fetcher, data_use_measurement::DataUseUserData::DOMAIN_RELIABILITY); fetcher->SetRequestContext(url_request_context_getter_.get()); fetcher->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES); diff --git a/components/google.gypi b/components/google.gypi index 18b06a9..1b5c2f6 100644 --- a/components/google.gypi +++ b/components/google.gypi @@ -13,6 +13,7 @@ '../net/net.gyp:net', '../url/url.gyp:url_lib', 'components_strings.gyp:components_strings', + 'data_use_measurement_core', 'keyed_service_core', 'pref_registry', 'url_formatter/url_formatter.gyp:url_formatter', diff --git a/components/google/core/browser/BUILD.gn b/components/google/core/browser/BUILD.gn index fbff1240..6e4c581 100644 --- a/components/google/core/browser/BUILD.gn +++ b/components/google/core/browser/BUILD.gn @@ -21,6 +21,7 @@ static_library("browser") { deps = [ "//base", "//base:prefs", + "//components/data_use_measurement/core", "//components/keyed_service/core", "//components/pref_registry", "//components/strings", diff --git a/components/google/core/browser/DEPS b/components/google/core/browser/DEPS index 7a27ff5..afcec3d 100644 --- a/components/google/core/browser/DEPS +++ b/components/google/core/browser/DEPS @@ -1,4 +1,5 @@ include_rules = [ + "+components/data_use_measurement/core", "+components/keyed_service/core", "+components/pref_registry", ] diff --git a/components/google/core/browser/google_url_tracker.cc b/components/google/core/browser/google_url_tracker.cc index 2ead364..fa0d140 100644 --- a/components/google/core/browser/google_url_tracker.cc +++ b/components/google/core/browser/google_url_tracker.cc @@ -11,6 +11,7 @@ #include "base/single_thread_task_runner.h" #include "base/strings/string_util.h" #include "base/thread_task_runner_handle.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "components/google/core/browser/google_pref_names.h" #include "components/google/core/browser/google_switches.h" #include "components/google/core/browser/google_util.h" @@ -163,6 +164,9 @@ void GoogleURLTracker::StartFetchIfDesirable() { already_fetched_ = true; fetcher_ = net::URLFetcher::Create(fetcher_id_, GURL(kSearchDomainCheckURL), net::URLFetcher::GET, this); + data_use_measurement::DataUseUserData::AttachToFetcher( + fetcher_.get(), + data_use_measurement::DataUseUserData::GOOGLE_URL_TRACKER); ++fetcher_id_; // We don't want this fetch to set new entries in the cache or cookies, lest // we alarm the user. diff --git a/components/invalidation.gypi b/components/invalidation.gypi index affc2b3..d9f0a69 100644 --- a/components/invalidation.gypi +++ b/components/invalidation.gypi @@ -54,6 +54,7 @@ '../google_apis/google_apis.gyp:google_apis', '../jingle/jingle.gyp:notifier', '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_proto_cpp', + 'data_use_measurement_core', 'gcm_driver', 'keyed_service_core', 'pref_registry', diff --git a/components/invalidation/impl/BUILD.gn b/components/invalidation/impl/BUILD.gn index 20034c1..bf1b917 100644 --- a/components/invalidation/impl/BUILD.gn +++ b/components/invalidation/impl/BUILD.gn @@ -68,6 +68,7 @@ source_set("impl") { "//base", "//base:i18n", "//base:prefs", + "//components/data_use_measurement/core", "//components/gcm_driver", "//components/keyed_service/core", "//components/pref_registry", diff --git a/components/invalidation/impl/DEPS b/components/invalidation/impl/DEPS index 285832f..5fb7f26 100644 --- a/components/invalidation/impl/DEPS +++ b/components/invalidation/impl/DEPS @@ -1,6 +1,7 @@ include_rules = [ "+components/invalidation/public", + "+components/data_use_measurement/core", "+components/gcm_driver", "+components/keyed_service", "+components/pref_registry", diff --git a/components/invalidation/impl/gcm_network_channel.cc b/components/invalidation/impl/gcm_network_channel.cc index ebe9e59..7e664464 100644 --- a/components/invalidation/impl/gcm_network_channel.cc +++ b/components/invalidation/impl/gcm_network_channel.cc @@ -19,6 +19,7 @@ #include "google/cacheinvalidation/channel_common.pb.h" #include "google/cacheinvalidation/types.pb.h" #endif +#include "components/data_use_measurement/core/data_use_user_data.h" #include "components/invalidation/impl/gcm_network_channel.h" #include "components/invalidation/impl/gcm_network_channel_delegate.h" #include "google_apis/gaia/google_service_auth_error.h" @@ -211,6 +212,8 @@ void GCMNetworkChannel::OnGetTokenComplete( DVLOG(2) << "Got access token, sending message"; fetcher_ = net::URLFetcher::Create(BuildUrl(registration_id_), net::URLFetcher::POST, this); + data_use_measurement::DataUseUserData::AttachToFetcher( + fetcher_.get(), data_use_measurement::DataUseUserData::INVALIDATION); fetcher_->SetRequestContext(request_context_getter_.get()); const std::string auth_header("Authorization: Bearer " + access_token_); fetcher_->AddExtraRequestHeader(auth_header); diff --git a/components/metrics.gypi b/components/metrics.gypi index 6954198..34163cd 100644 --- a/components/metrics.gypi +++ b/components/metrics.gypi @@ -99,6 +99,7 @@ '../net/net.gyp:net', '../url/url.gyp:url_lib', 'component_metrics_proto', + 'data_use_measurement_core', 'metrics', ], 'sources': [ diff --git a/components/metrics/BUILD.gn b/components/metrics/BUILD.gn index bfae327..5552136e 100644 --- a/components/metrics/BUILD.gn +++ b/components/metrics/BUILD.gn @@ -115,6 +115,7 @@ static_library("net") { ] deps = [ "//base", + "//components/data_use_measurement/core", "//net", "//url", ] diff --git a/components/metrics/net/DEPS b/components/metrics/net/DEPS index 54226d4..c7c67e4 100644 --- a/components/metrics/net/DEPS +++ b/components/metrics/net/DEPS @@ -1,5 +1,6 @@ include_rules = [ "+chromeos/network", + "+components/data_use_measurement/core", "+net", "+third_party/cros_system_api", ] diff --git a/components/metrics/net/net_metrics_log_uploader.cc b/components/metrics/net/net_metrics_log_uploader.cc index 3ccdf5c..0ded667 100644 --- a/components/metrics/net/net_metrics_log_uploader.cc +++ b/components/metrics/net/net_metrics_log_uploader.cc @@ -5,6 +5,7 @@ #include "components/metrics/net/net_metrics_log_uploader.h" #include "base/metrics/histogram_macros.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "net/base/load_flags.h" #include "net/base/network_change_notifier.h" #include "net/url_request/url_fetcher.h" @@ -41,6 +42,8 @@ void NetMetricsLogUploader::UploadLog(const std::string& compressed_log_data, const std::string& log_hash) { current_fetch_ = net::URLFetcher::Create(GURL(server_url_), net::URLFetcher::POST, this); + data_use_measurement::DataUseUserData::AttachToFetcher( + current_fetch_.get(), data_use_measurement::DataUseUserData::UMA); current_fetch_->SetRequestContext(request_context_getter_); current_fetch_->SetUploadData(mime_type_, compressed_log_data); diff --git a/components/omnibox.gypi b/components/omnibox.gypi index f363668..1c5d027 100644 --- a/components/omnibox.gypi +++ b/components/omnibox.gypi @@ -24,6 +24,7 @@ 'component_metrics_proto', 'components_resources.gyp:components_resources', 'components_strings.gyp:components_strings', + 'data_use_measurement_core', 'history_core_browser', 'keyed_service_core', 'omnibox_common', diff --git a/components/omnibox/browser/BUILD.gn b/components/omnibox/browser/BUILD.gn index 0dd73b8..59ea020 100644 --- a/components/omnibox/browser/BUILD.gn +++ b/components/omnibox/browser/BUILD.gn @@ -108,6 +108,7 @@ source_set("browser") { "//base:prefs", "//components/bookmarks/browser", "//components/crash_keys", # TODO(mpearson): remove once 464926 is fixed. + "//components/data_use_measurement/core", "//components/keyed_service/core", "//components/metrics", "//components/omnibox/common", diff --git a/components/omnibox/browser/DEPS b/components/omnibox/browser/DEPS index 31e1f1c..573394e2 100644 --- a/components/omnibox/browser/DEPS +++ b/components/omnibox/browser/DEPS @@ -1,6 +1,7 @@ include_rules = [ "+components/bookmarks/browser", "+components/crash_keys", # TODO(mpearson): remove once 464926 is fixed. + "+components/data_use_measurement/core", "+components/history/core/browser", "+components/keyed_service/core", "+components/metrics", diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc index 028c322..f4ec1d1 100644 --- a/components/omnibox/browser/base_search_provider.cc +++ b/components/omnibox/browser/base_search_provider.cc @@ -7,6 +7,7 @@ #include "base/i18n/case_conversion.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "components/metrics/proto/omnibox_event.pb.h" #include "components/metrics/proto/omnibox_input_type.pb.h" #include "components/omnibox/browser/autocomplete_provider_client.h" @@ -59,6 +60,8 @@ SuggestionDeletionHandler::SuggestionDeletionHandler( deletion_fetcher_ = net::URLFetcher::Create(BaseSearchProvider::kDeletionURLFetcherID, url, net::URLFetcher::GET, this); + data_use_measurement::DataUseUserData::AttachToFetcher( + deletion_fetcher_.get(), data_use_measurement::DataUseUserData::OMNIBOX); deletion_fetcher_->SetRequestContext(request_context); deletion_fetcher_->Start(); } diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc index 7f4aab1..926c3df 100644 --- a/components/omnibox/browser/search_provider.cc +++ b/components/omnibox/browser/search_provider.cc @@ -18,6 +18,7 @@ #include "base/rand_util.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "components/history/core/browser/in_memory_database.h" #include "components/history/core/browser/keyword_search_term.h" #include "components/metrics/proto/omnibox_input_type.pb.h" @@ -863,6 +864,8 @@ scoped_ptr<net::URLFetcher> SearchProvider::CreateSuggestFetcher( scoped_ptr<net::URLFetcher> fetcher = net::URLFetcher::Create(id, suggest_url, net::URLFetcher::GET, this); + data_use_measurement::DataUseUserData::AttachToFetcher( + fetcher.get(), data_use_measurement::DataUseUserData::OMNIBOX); fetcher->SetRequestContext(client()->GetRequestContext()); fetcher->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES); // Add Chrome experiment state to the request headers. diff --git a/components/omnibox/browser/zero_suggest_provider.cc b/components/omnibox/browser/zero_suggest_provider.cc index b93b0ab..9b9dcfc 100644 --- a/components/omnibox/browser/zero_suggest_provider.cc +++ b/components/omnibox/browser/zero_suggest_provider.cc @@ -14,6 +14,7 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "base/time/time.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "components/history/core/browser/history_types.h" #include "components/history/core/browser/top_sites.h" #include "components/metrics/proto/omnibox_input_type.pb.h" @@ -319,6 +320,8 @@ void ZeroSuggestProvider::Run(const GURL& suggest_url) { const int kFetcherID = 1; fetcher_ = net::URLFetcher::Create(kFetcherID, suggest_url, net::URLFetcher::GET, this); + data_use_measurement::DataUseUserData::AttachToFetcher( + fetcher_.get(), data_use_measurement::DataUseUserData::OMNIBOX); fetcher_->SetRequestContext(client()->GetRequestContext()); fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES); // Add Chrome experiment state to the request headers. diff --git a/components/policy/core/common/BUILD.gn b/components/policy/core/common/BUILD.gn index 8e64691..30838e9 100644 --- a/components/policy/core/common/BUILD.gn +++ b/components/policy/core/common/BUILD.gn @@ -134,6 +134,7 @@ source_set("common") { deps = [ "//base:prefs", "//base/third_party/dynamic_annotations", + "//components/data_use_measurement/core", "//components/json_schema", "//components/policy", "//google_apis", diff --git a/components/policy/core/common/DEPS b/components/policy/core/common/DEPS index 1fc5291..7af9e16 100644 --- a/components/policy/core/common/DEPS +++ b/components/policy/core/common/DEPS @@ -1,3 +1,4 @@ include_rules = [ "-components/policy/core/browser", + "+components/data_use_measurement/core", ] diff --git a/components/policy/core/common/cloud/device_management_service.cc b/components/policy/core/common/cloud/device_management_service.cc index 5a22d9d..05a058b 100644 --- a/components/policy/core/common/cloud/device_management_service.cc +++ b/components/policy/core/common/cloud/device_management_service.cc @@ -11,6 +11,7 @@ #include "base/location.h" #include "base/single_thread_task_runner.h" #include "base/thread_task_runner_handle.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "net/base/escape.h" #include "net/base/load_flags.h" #include "net/base/net_errors.h" @@ -463,6 +464,8 @@ void DeviceManagementService::StartJob(DeviceManagementRequestJobImpl* job) { net::URLFetcher* fetcher = net::URLFetcher::Create(kURLFetcherID, job->GetURL(server_url), net::URLFetcher::POST, this).release(); + data_use_measurement::DataUseUserData::AttachToFetcher( + fetcher, data_use_measurement::DataUseUserData::POLICY); job->ConfigureRequest(fetcher); pending_jobs_[fetcher] = job; fetcher->Start(); diff --git a/components/policy/core/common/cloud/external_policy_data_fetcher.cc b/components/policy/core/common/cloud/external_policy_data_fetcher.cc index 7dd4988..c1621de 100644 --- a/components/policy/core/common/cloud/external_policy_data_fetcher.cc +++ b/components/policy/core/common/cloud/external_policy_data_fetcher.cc @@ -10,6 +10,7 @@ #include "base/logging.h" #include "base/sequenced_task_runner.h" #include "base/stl_util.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "net/base/load_flags.h" #include "net/base/net_errors.h" #include "net/url_request/url_fetcher.h" @@ -173,6 +174,8 @@ void ExternalPolicyDataFetcherBackend::StartJob( net::URLFetcher* fetcher = net::URLFetcher::Create(++last_fetch_id_, job->url, net::URLFetcher::GET, this).release(); + data_use_measurement::DataUseUserData::AttachToFetcher( + fetcher, data_use_measurement::DataUseUserData::POLICY); fetcher->SetRequestContext(request_context_.get()); fetcher->SetLoadFlags(net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE | net::LOAD_DO_NOT_SAVE_COOKIES | diff --git a/components/policy/core/common/cloud/user_info_fetcher.cc b/components/policy/core/common/cloud/user_info_fetcher.cc index 6c479d0..0212bb9 100644 --- a/components/policy/core/common/cloud/user_info_fetcher.cc +++ b/components/policy/core/common/cloud/user_info_fetcher.cc @@ -8,6 +8,7 @@ #include "base/logging.h" #include "base/strings/stringprintf.h" #include "base/values.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "google_apis/gaia/gaia_urls.h" #include "google_apis/gaia/google_service_auth_error.h" #include "net/base/load_flags.h" @@ -44,6 +45,8 @@ void UserInfoFetcher::Start(const std::string& access_token) { url_fetcher_ = net::URLFetcher::Create(0, GaiaUrls::GetInstance()->oauth_user_info_url(), net::URLFetcher::GET, this); + data_use_measurement::DataUseUserData::AttachToFetcher( + url_fetcher_.get(), data_use_measurement::DataUseUserData::POLICY); url_fetcher_->SetRequestContext(context_); url_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES); diff --git a/components/policy/policy_common.gypi b/components/policy/policy_common.gypi index d2468ba..55573e6 100644 --- a/components/policy/policy_common.gypi +++ b/components/policy/policy_common.gypi @@ -23,6 +23,7 @@ '../third_party/re2/re2.gyp:re2', '../url/url.gyp:url_lib', 'cloud_policy_proto', + 'data_use_measurement_core', 'json_schema', 'policy', ], diff --git a/components/rappor.gypi b/components/rappor.gypi index 88c77f0..8dd2dcf 100644 --- a/components/rappor.gypi +++ b/components/rappor.gypi @@ -16,6 +16,7 @@ '../crypto/crypto.gyp:crypto', '../net/net.gyp:net', '../third_party/smhasher/smhasher.gyp:cityhash', + 'data_use_measurement_core', 'metrics', 'variations', ], diff --git a/components/rappor/BUILD.gn b/components/rappor/BUILD.gn index 5c6e321..2a98041 100644 --- a/components/rappor/BUILD.gn +++ b/components/rappor/BUILD.gn @@ -34,6 +34,7 @@ source_set("rappor") { deps = [ "//base", + "//components/data_use_measurement/core", "//components/metrics", "//components/rappor/proto", "//components/variations", diff --git a/components/rappor/DEPS b/components/rappor/DEPS index 14115d9..68455c7 100644 --- a/components/rappor/DEPS +++ b/components/rappor/DEPS @@ -1,4 +1,5 @@ include_rules = [ + "+components/data_use_measurement/core", "+components/metrics", "+components/variations", "+crypto", diff --git a/components/rappor/log_uploader.cc b/components/rappor/log_uploader.cc index 9211184..97ad3e4 100644 --- a/components/rappor/log_uploader.cc +++ b/components/rappor/log_uploader.cc @@ -6,6 +6,7 @@ #include "base/metrics/histogram_macros.h" #include "base/metrics/sparse_histogram.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "net/base/load_flags.h" #include "net/base/net_errors.h" #include "net/url_request/url_fetcher.h" @@ -110,6 +111,8 @@ void LogUploader::StartScheduledUpload() { has_callback_pending_ = true; current_fetch_ = net::URLFetcher::Create(server_url_, net::URLFetcher::POST, this); + data_use_measurement::DataUseUserData::AttachToFetcher( + current_fetch_.get(), data_use_measurement::DataUseUserData::RAPPOR); current_fetch_->SetRequestContext(request_context_.get()); current_fetch_->SetUploadData(mime_type_, queued_logs_.front()); diff --git a/components/translate.gypi b/components/translate.gypi index 50fda09..f550365 100644 --- a/components/translate.gypi +++ b/components/translate.gypi @@ -17,6 +17,7 @@ '../url/url.gyp:url_lib', 'components_resources.gyp:components_resources', 'components_strings.gyp:components_strings', + 'data_use_measurement_core', 'infobars_core', 'language_usage_metrics', 'pref_registry', diff --git a/components/translate/DEPS b/components/translate/DEPS index 2497825..6e35d77 100644 --- a/components/translate/DEPS +++ b/components/translate/DEPS @@ -1,4 +1,5 @@ include_rules = [ + "+components/data_use_measurement/core", "+components/infobars", "+components/language_usage_metrics", "+components/pref_registry", diff --git a/components/translate/core/browser/BUILD.gn b/components/translate/core/browser/BUILD.gn index 862d2d0..0d6ec0e 100644 --- a/components/translate/core/browser/BUILD.gn +++ b/components/translate/core/browser/BUILD.gn @@ -41,6 +41,7 @@ source_set("browser") { deps = [ "//base", + "//components/data_use_measurement/core", "//components/language_usage_metrics", "//components/resources:components_resources", "//components/strings", diff --git a/components/translate/core/browser/translate_url_fetcher.cc b/components/translate/core/browser/translate_url_fetcher.cc index 6a59517..39c2b2c 100644 --- a/components/translate/core/browser/translate_url_fetcher.cc +++ b/components/translate/core/browser/translate_url_fetcher.cc @@ -4,6 +4,7 @@ #include "components/translate/core/browser/translate_url_fetcher.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "components/translate/core/browser/translate_download_manager.h" #include "net/base/load_flags.h" #include "net/http/http_status_code.h" @@ -46,6 +47,8 @@ bool TranslateURLFetcher::Request( callback_ = callback; fetcher_ = net::URLFetcher::Create(id_, url_, net::URLFetcher::GET, this); + data_use_measurement::DataUseUserData::AttachToFetcher( + fetcher_.get(), data_use_measurement::DataUseUserData::TRANSLATE); fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES); fetcher_->SetRequestContext( diff --git a/components/variations.gypi b/components/variations.gypi index 349d451..562bcbb 100644 --- a/components/variations.gypi +++ b/components/variations.gypi @@ -99,6 +99,7 @@ '../base/base.gyp:base_prefs', '../net/net.gyp:net', '../ui/base/ui_base.gyp:ui_base', + 'data_use_measurement_core', 'metrics', 'network_time', 'pref_registry', diff --git a/components/variations/service/BUILD.gn b/components/variations/service/BUILD.gn index e260df0..9880c95 100644 --- a/components/variations/service/BUILD.gn +++ b/components/variations/service/BUILD.gn @@ -12,6 +12,7 @@ source_set("service") { deps = [ "//base", "//base:prefs", + "//components/data_use_measurement/core", "//components/metrics", "//components/network_time", "//components/pref_registry", diff --git a/components/variations/service/DEPS b/components/variations/service/DEPS index 7b40227..54dcc1e 100644 --- a/components/variations/service/DEPS +++ b/components/variations/service/DEPS @@ -1,4 +1,5 @@ include_rules = [ + "+components/data_use_measurement/core", "+components/metrics", "+components/network_time", "+components/pref_registry", diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc index 97d0769..bdc3e2a 100644 --- a/components/variations/service/variations_service.cc +++ b/components/variations/service/variations_service.cc @@ -15,6 +15,7 @@ #include "base/timer/elapsed_timer.h" #include "base/values.h" #include "base/version.h" +#include "components/data_use_measurement/core/data_use_user_data.h" #include "components/metrics/metrics_state_manager.h" #include "components/network_time/network_time_tracker.h" #include "components/pref_registry/pref_registry_syncable.h" @@ -451,6 +452,9 @@ void VariationsService::DoActualFetch() { pending_seed_request_ = net::URLFetcher::Create(0, variations_server_url_, net::URLFetcher::GET, this); + data_use_measurement::DataUseUserData::AttachToFetcher( + pending_seed_request_.get(), + data_use_measurement::DataUseUserData::VARIATIONS); pending_seed_request_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES); pending_seed_request_->SetRequestContext(client_->GetURLRequestContext()); diff --git a/sync/internal_api/http_bridge.cc b/sync/internal_api/http_bridge.cc index 04e339c..6da0dd3 100644 --- a/sync/internal_api/http_bridge.cc +++ b/sync/internal_api/http_bridge.cc @@ -161,8 +161,11 @@ HttpBridgeFactory::~HttpBridgeFactory() { cancelation_signal_->UnregisterHandler(this); } -void HttpBridgeFactory::Init(const std::string& user_agent) { +void HttpBridgeFactory::Init( + const std::string& user_agent, + const BindToTrackerCallback& bind_to_tracker_callback) { user_agent_ = user_agent; + bind_to_tracker_callback_ = bind_to_tracker_callback; } HttpPostProviderInterface* HttpBridgeFactory::Create() { @@ -174,8 +177,9 @@ HttpPostProviderInterface* HttpBridgeFactory::Create() { // we've been asked to shut down. CHECK(request_context_getter_.get()); - scoped_refptr<HttpBridge> http = new HttpBridge( - user_agent_, request_context_getter_, network_time_update_callback_); + scoped_refptr<HttpBridge> http = + new HttpBridge(user_agent_, request_context_getter_, + network_time_update_callback_, bind_to_tracker_callback_); http->AddRef(); return http.get(); } @@ -204,14 +208,15 @@ HttpBridge::URLFetchState::~URLFetchState() {} HttpBridge::HttpBridge( const std::string& user_agent, const scoped_refptr<net::URLRequestContextGetter>& context_getter, - const NetworkTimeUpdateCallback& network_time_update_callback) + const NetworkTimeUpdateCallback& network_time_update_callback, + const BindToTrackerCallback& bind_to_tracker_callback) : created_on_loop_(base::MessageLoop::current()), user_agent_(user_agent), http_post_completed_(false, false), request_context_getter_(context_getter), network_task_runner_(request_context_getter_->GetNetworkTaskRunner()), - network_time_update_callback_(network_time_update_callback) { -} + network_time_update_callback_(network_time_update_callback), + bind_to_tracker_callback_(bind_to_tracker_callback) {} HttpBridge::~HttpBridge() { } @@ -313,6 +318,8 @@ void HttpBridge::MakeAsynchronousPost() { fetch_state_.url_poster = net::URLFetcher::Create(url_for_request_, net::URLFetcher::POST, this) .release(); + if (!bind_to_tracker_callback_.is_null()) + bind_to_tracker_callback_.Run(fetch_state_.url_poster); fetch_state_.url_poster->SetRequestContext(request_context_getter_.get()); fetch_state_.url_poster->SetExtraRequestHeaders(extra_headers_); diff --git a/sync/internal_api/http_bridge_unittest.cc b/sync/internal_api/http_bridge_unittest.cc index 4ea4e70..7c6fe822 100644 --- a/sync/internal_api/http_bridge_unittest.cc +++ b/sync/internal_api/http_bridge_unittest.cc @@ -14,6 +14,7 @@ #include "net/url_request/url_request_test_util.h" #include "sync/internal_api/public/base/cancelation_signal.h" #include "sync/internal_api/public/http_bridge.h" +#include "sync/internal_api/public/http_post_provider_factory.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/zlib/zlib.h" @@ -144,9 +145,8 @@ class MAYBE_SyncHttpBridgeTest : public testing::Test { fake_default_request_context_getter_->AddRef(); } HttpBridge* bridge = - new HttpBridge(kUserAgent, - fake_default_request_context_getter_, - NetworkTimeUpdateCallback()); + new HttpBridge(kUserAgent, fake_default_request_context_getter_, + NetworkTimeUpdateCallback(), BindToTrackerCallback()); return bridge; } @@ -207,11 +207,15 @@ class ShuntedHttpBridge : public HttpBridge { // If |never_finishes| is true, the simulated request never actually // returns. ShuntedHttpBridge(net::URLRequestContextGetter* baseline_context_getter, - MAYBE_SyncHttpBridgeTest* test, bool never_finishes) + MAYBE_SyncHttpBridgeTest* test, + bool never_finishes) : HttpBridge(kUserAgent, baseline_context_getter, - NetworkTimeUpdateCallback()), - test_(test), never_finishes_(never_finishes) { } + NetworkTimeUpdateCallback(), + BindToTrackerCallback()), + test_(test), + never_finishes_(never_finishes) {} + protected: void MakeAsynchronousPost() override { ASSERT_TRUE(base::MessageLoop::current() == test_->GetIOThreadLoop()); @@ -579,7 +583,7 @@ void HttpBridgeRunOnSyncThread( new syncer::HttpBridgeFactory(baseline_context_getter, NetworkTimeUpdateCallback(), factory_cancelation_signal)); - bridge_factory->Init("test"); + bridge_factory->Init("test", BindToTrackerCallback()); *bridge_factory_out = bridge_factory.get(); HttpPostProviderInterface* bridge = bridge_factory->Create(); @@ -673,7 +677,7 @@ TEST_F(MAYBE_SyncHttpBridgeTest, EarlyAbortFactory) { // Sync thread: Finally run the posted task, only to find that our // HttpBridgeFactory has been neutered. Should not crash. - factory->Init("TestUserAgent"); + factory->Init("TestUserAgent", BindToTrackerCallback()); // At this point, attempting to use the factory would trigger a crash. Both // this test and the real world code should make sure this never happens. diff --git a/sync/internal_api/public/http_bridge.h b/sync/internal_api/public/http_bridge.h index 36704e2..73e68a52 100644 --- a/sync/internal_api/public/http_bridge.h +++ b/sync/internal_api/public/http_bridge.h @@ -54,7 +54,8 @@ class SYNC_EXPORT_PRIVATE HttpBridge public: HttpBridge(const std::string& user_agent, const scoped_refptr<net::URLRequestContextGetter>& context, - const NetworkTimeUpdateCallback& network_time_update_callback); + const NetworkTimeUpdateCallback& network_time_update_callback, + const BindToTrackerCallback& bind_to_tracker_callback); // HttpPostProvider implementation. void SetExtraRequestHeaders(const char* headers) override; @@ -180,6 +181,10 @@ class SYNC_EXPORT_PRIVATE HttpBridge // Callback for updating network time. NetworkTimeUpdateCallback network_time_update_callback_; + // A callback to tag Sync request to be able to record data use of this + // service by data_use_measurement component. + BindToTrackerCallback bind_to_tracker_callback_; + DISALLOW_COPY_AND_ASSIGN(HttpBridge); }; @@ -194,7 +199,8 @@ class SYNC_EXPORT HttpBridgeFactory : public HttpPostProviderFactory, ~HttpBridgeFactory() override; // HttpPostProviderFactory: - void Init(const std::string& user_agent) override; + void Init(const std::string& user_agent, + const BindToTrackerCallback& bind_to_tracker_callback) override; HttpPostProviderInterface* Create() override; void Destroy(HttpPostProviderInterface* http) override; @@ -216,6 +222,10 @@ class SYNC_EXPORT HttpBridgeFactory : public HttpPostProviderFactory, CancelationSignal* const cancelation_signal_; + // A callback to tag Sync request to be able to record data use of this + // service by data_use_measurement component. + BindToTrackerCallback bind_to_tracker_callback_; + DISALLOW_COPY_AND_ASSIGN(HttpBridgeFactory); }; diff --git a/sync/internal_api/public/http_post_provider_factory.h b/sync/internal_api/public/http_post_provider_factory.h index 9346651..ef6af9b 100644 --- a/sync/internal_api/public/http_post_provider_factory.h +++ b/sync/internal_api/public/http_post_provider_factory.h @@ -7,10 +7,17 @@ #include <string> +#include "base/callback.h" #include "sync/base/sync_export.h" +namespace net { +class URLFetcher; +} + namespace syncer { +typedef base::Callback<void(net::URLFetcher*)> BindToTrackerCallback; + class HttpPostProviderInterface; // A factory to create HttpPostProviders to hide details about the @@ -21,7 +28,8 @@ class SYNC_EXPORT HttpPostProviderFactory { public: virtual ~HttpPostProviderFactory() {} - virtual void Init(const std::string& user_agent) = 0; + virtual void Init(const std::string& user_agent, + const BindToTrackerCallback& bind_to_tracker_callback) = 0; // Obtain a new HttpPostProviderInterface instance, owned by caller. virtual HttpPostProviderInterface* Create() = 0; diff --git a/sync/internal_api/sync_manager_impl_unittest.cc b/sync/internal_api/sync_manager_impl_unittest.cc index 04b97b5..27791ff 100644 --- a/sync/internal_api/sync_manager_impl_unittest.cc +++ b/sync/internal_api/sync_manager_impl_unittest.cc @@ -801,7 +801,8 @@ class TestHttpPostProviderInterface : public HttpPostProviderInterface { class TestHttpPostProviderFactory : public HttpPostProviderFactory { public: ~TestHttpPostProviderFactory() override {} - void Init(const std::string& user_agent) override {} + void Init(const std::string& user_agent, + const BindToTrackerCallback& bind_to_tracker_callback) override {} HttpPostProviderInterface* Create() override { return new TestHttpPostProviderInterface(); } diff --git a/sync/internal_api/syncapi_server_connection_manager_unittest.cc b/sync/internal_api/syncapi_server_connection_manager_unittest.cc index 10dc311..e438ac1 100644 --- a/sync/internal_api/syncapi_server_connection_manager_unittest.cc +++ b/sync/internal_api/syncapi_server_connection_manager_unittest.cc @@ -51,7 +51,9 @@ class BlockingHttpPost : public HttpPostProviderInterface { class BlockingHttpPostFactory : public HttpPostProviderFactory { public: ~BlockingHttpPostFactory() override {} - void Init(const std::string& user_agent) override {} + void Init(const std::string& user_agent, + const BindToTrackerCallback& bind_to_tracker_callback) override {} + HttpPostProviderInterface* Create() override { return new BlockingHttpPost(); } diff --git a/sync/test/fake_server/fake_server_http_post_provider.cc b/sync/test/fake_server/fake_server_http_post_provider.cc index 75c5d46e..7a844b9 100644 --- a/sync/test/fake_server/fake_server_http_post_provider.cc +++ b/sync/test/fake_server/fake_server_http_post_provider.cc @@ -26,7 +26,9 @@ FakeServerHttpPostProviderFactory::FakeServerHttpPostProviderFactory( FakeServerHttpPostProviderFactory::~FakeServerHttpPostProviderFactory() { } -void FakeServerHttpPostProviderFactory::Init(const std::string& user_agent) { } +void FakeServerHttpPostProviderFactory::Init( + const std::string& user_agent, + const syncer::BindToTrackerCallback& bind_to_tracker_callback) {} HttpPostProviderInterface* FakeServerHttpPostProviderFactory::Create() { FakeServerHttpPostProvider* http = diff --git a/sync/test/fake_server/fake_server_http_post_provider.h b/sync/test/fake_server/fake_server_http_post_provider.h index 593be1d..3ee4d42 100644 --- a/sync/test/fake_server/fake_server_http_post_provider.h +++ b/sync/test/fake_server/fake_server_http_post_provider.h @@ -7,6 +7,7 @@ #include <string> +#include "base/callback.h" #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" #include "base/sequenced_task_runner.h" @@ -70,7 +71,9 @@ class FakeServerHttpPostProviderFactory ~FakeServerHttpPostProviderFactory() override; // HttpPostProviderFactory: - void Init(const std::string& user_agent) override; + void Init( + const std::string& user_agent, + const syncer::BindToTrackerCallback& bind_to_tracker_callback) override; syncer::HttpPostProviderInterface* Create() override; void Destroy(syncer::HttpPostProviderInterface* http) override; diff --git a/sync/tools/sync_client.cc b/sync/tools/sync_client.cc index 2ec1f19..5999e11 100644 --- a/sync/tools/sync_client.cc +++ b/sync/tools/sync_client.cc @@ -34,6 +34,7 @@ #include "sync/internal_api/public/base_node.h" #include "sync/internal_api/public/engine/passive_model_worker.h" #include "sync/internal_api/public/http_bridge.h" +#include "sync/internal_api/public/http_post_provider_factory.h" #include "sync/internal_api/public/internal_components_factory_impl.h" #include "sync/internal_api/public/read_node.h" #include "sync/internal_api/public/sync_manager.h" @@ -405,7 +406,7 @@ int SyncClientMain(int argc, char* argv[]) { new HttpBridgeFactory(context_getter.get(), base::Bind(&StubNetworkTimeUpdateCallback), &factory_cancelation_signal)); - post_factory->Init(kUserAgent); + post_factory->Init(kUserAgent, BindToTrackerCallback()); // Used only when committing bookmarks, so it's okay to leave this // as NULL. ExtensionsActivity* extensions_activity = NULL; diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 9a64920..8a7ca4d 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml @@ -55687,7 +55687,20 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. <enum name="DataUseServices" type="int"> <int value="0" label="Not Tagged"/> - <int value="1" label="Suggestions Service"/> + <int value="1" label="Suggestions"/> + <int value="2" label="Translate"/> + <int value="3" label="Sync"/> + <int value="4" label="Omnibox"/> + <int value="5" label="Invalidation"/> + <int value="6" label="Rappor"/> + <int value="7" label="Variations"/> + <int value="8" label="UMA"/> + <int value="9" label="Domain Reliability"/> + <int value="10" label="Profile Downloader"/> + <int value="11" label="Google URL Tracker"/> + <int value="12" label="Autofill"/> + <int value="13" label="Policy"/> + <int value="14" label="Spell Checker"/> </enum> <enum name="DecodedImageType" type="int"> @@ -75348,6 +75361,19 @@ To add a new entry, add it with any value and run test to compute valid value. <histogram_suffixes name="DataUse.Service.Types" separator="."> <suffix name="NotTagged"/> <suffix name="Suggestions"/> + <suffix name="Translate"/> + <suffix name="Sync"/> + <suffix name="Omnibox"/> + <suffix name="Invalidation"/> + <suffix name="Rappor"/> + <suffix name="Variations"/> + <suffix name="UMA"/> + <suffix name="DomainReliability"/> + <suffix name="ProfileDownloader"/> + <suffix name="GoogleURLTracker"/> + <suffix name="Autofill"/> + <suffix name="Policy"/> + <suffix name="SpellChecker"/> <affected-histogram name="DataUse.MessageSize"/> </histogram_suffixes> |