Commit 71011c16 authored by mathp@chromium.org's avatar mathp@chromium.org

[Variations] Bring variations_http_header_provider to variations component

Without this, the class can hardly be used within a component (unless we work around it).

Adds a workaround for link failure of components_tests due to infobar component bug (crbug.com/386171).

BUG=387751,382865,386171
TBR=jam
TEST=Variations*

Review URL: https://codereview.chromium.org/366373002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@282072 0039d316-1c4b-4281-b951-d872f2087c98
parent d109d5ea
......@@ -35,7 +35,6 @@ static_library("browser") {
"//chrome/app/resources:platform_locale_settings",
"//chrome/app/theme:theme_resources",
"//chrome/browser/history:in_memory_url_index_cache_proto",
"//chrome/browser/metrics/variations/proto:proto",
"//chrome/browser/net:cert_logger_proto",
"//chrome/browser/net:probe_message_proto",
"//chrome/browser/search/suggestions/proto",
......
......@@ -28,7 +28,6 @@
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
#include "chrome/browser/history/history_service.h"
#include "chrome/browser/history/history_service_factory.h"
#include "chrome/browser/metrics/variations/variations_http_header_provider.h"
#include "chrome/browser/omnibox/omnibox_field_trial.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search/search.h"
......@@ -43,6 +42,7 @@
#include "components/metrics/proto/omnibox_input_type.pb.h"
#include "components/search_engines/template_url_prepopulate_data.h"
#include "components/search_engines/template_url_service.h"
#include "components/variations/variations_http_header_provider.h"
#include "content/public/browser/user_metrics.h"
#include "grit/generated_resources.h"
#include "net/base/escape.h"
......@@ -678,7 +678,7 @@ net::URLFetcher* SearchProvider::CreateSuggestFetcher(
fetcher->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES);
// Add Chrome experiment state to the request headers.
net::HttpRequestHeaders headers;
chrome_variations::VariationsHttpHeaderProvider::GetInstance()->AppendHeaders(
variations::VariationsHttpHeaderProvider::GetInstance()->AppendHeaders(
fetcher->GetOriginalURL(), profile_->IsOffTheRecord(), false, &headers);
fetcher->SetExtraRequestHeaders(headers.ToString());
fetcher->Start();
......
......@@ -22,7 +22,6 @@
#include "chrome/browser/autocomplete/search_provider.h"
#include "chrome/browser/history/history_types.h"
#include "chrome/browser/history/top_sites.h"
#include "chrome/browser/metrics/variations/variations_http_header_provider.h"
#include "chrome/browser/omnibox/omnibox_field_trial.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
......@@ -32,6 +31,7 @@
#include "components/metrics/proto/omnibox_input_type.pb.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/search_engines/template_url_service.h"
#include "components/variations/variations_http_header_provider.h"
#include "content/public/browser/user_metrics.h"
#include "net/base/escape.h"
#include "net/base/load_flags.h"
......@@ -316,7 +316,7 @@ void ZeroSuggestProvider::Run(const GURL& suggest_url) {
fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES);
// Add Chrome experiment state to the request headers.
net::HttpRequestHeaders headers;
chrome_variations::VariationsHttpHeaderProvider::GetInstance()->AppendHeaders(
variations::VariationsHttpHeaderProvider::GetInstance()->AppendHeaders(
fetcher_->GetOriginalURL(), profile_->IsOffTheRecord(), false, &headers);
fetcher_->SetExtraRequestHeaders(headers.ToString());
fetcher_->Start();
......
......@@ -61,7 +61,6 @@
#include "chrome/browser/metrics/field_trial_synchronizer.h"
#include "chrome/browser/metrics/thread_watcher.h"
#include "chrome/browser/metrics/tracking_synchronizer.h"
#include "chrome/browser/metrics/variations/variations_http_header_provider.h"
#include "chrome/browser/metrics/variations/variations_service.h"
#include "chrome/browser/nacl_host/nacl_browser_delegate_impl.h"
#include "chrome/browser/net/chrome_net_log.h"
......@@ -113,6 +112,7 @@
#include "components/signin/core/common/profile_management_switches.h"
#include "components/startup_metric_utils/startup_metric_utils.h"
#include "components/translate/core/browser/translate_download_manager.h"
#include "components/variations/variations_http_header_provider.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
......@@ -589,8 +589,8 @@ void ChromeBrowserMainParts::SetupMetricsAndFieldTrials() {
if (command_line->HasSwitch(switches::kForceVariationIds)) {
// Create default variation ids which will always be included in the
// X-Client-Data request header.
chrome_variations::VariationsHttpHeaderProvider* provider =
chrome_variations::VariationsHttpHeaderProvider::GetInstance();
variations::VariationsHttpHeaderProvider* provider =
variations::VariationsHttpHeaderProvider::GetInstance();
bool result = provider->SetDefaultVariationIds(
command_line->GetSwitchValueASCII(switches::kForceVariationIds));
CHECK(result) << "Invalid --" << switches::kForceVariationIds
......
# Copyright 2014 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.
import("//third_party/protobuf/proto_library.gni")
# GYP version: chrome/chrome_browser.gypi:variations_proto
proto_library("proto") {
sources = [
"chrome_experiments.proto",
]
}
......@@ -19,7 +19,6 @@
#include "chrome/browser/download/download_resource_throttle.h"
#include "chrome/browser/extensions/api/streams_private/streams_private_api.h"
#include "chrome/browser/extensions/user_script_listener.h"
#include "chrome/browser/metrics/variations/variations_http_header_provider.h"
#include "chrome/browser/prefetch/prefetch.h"
#include "chrome/browser/prerender/prerender_manager.h"
#include "chrome/browser/prerender/prerender_manager_factory.h"
......@@ -40,6 +39,7 @@
#include "chrome/common/render_messages.h"
#include "chrome/common/url_constants.h"
#include "components/google/core/browser/google_util.h"
#include "components/variations/variations_http_header_provider.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/render_process_host.h"
......@@ -368,7 +368,7 @@ void ChromeResourceDispatcherHostDelegate::RequestBeginning(
net::HttpRequestHeaders headers;
headers.CopyFrom(request->extra_request_headers());
bool is_off_the_record = io_data->IsOffTheRecord();
chrome_variations::VariationsHttpHeaderProvider::GetInstance()->
variations::VariationsHttpHeaderProvider::GetInstance()->
AppendHeaders(request->url(),
is_off_the_record,
!is_off_the_record &&
......
......@@ -13,11 +13,11 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/time/time.h"
#include "chrome/browser/metrics/variations/variations_http_header_provider.h"
#include "chrome/browser/search/suggestions/blacklist_store.h"
#include "chrome/browser/search/suggestions/suggestions_store.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/variations/variations_associated_data.h"
#include "components/variations/variations_http_header_provider.h"
#include "content/public/browser/browser_thread.h"
#include "net/base/escape.h"
#include "net/base/load_flags.h"
......@@ -248,7 +248,7 @@ net::URLFetcher* SuggestionsService::CreateSuggestionsRequest(const GURL& url) {
request->SetRequestContext(url_request_context_);
// Add Chrome experiment state to the request headers.
net::HttpRequestHeaders headers;
chrome_variations::VariationsHttpHeaderProvider::GetInstance()->AppendHeaders(
variations::VariationsHttpHeaderProvider::GetInstance()->AppendHeaders(
request->GetOriginalURL(), false, false, &headers);
request->SetExtraRequestHeaders(headers.ToString());
return request;
......
......@@ -753,8 +753,6 @@
'browser/metrics/tracking_synchronizer.h',
'browser/metrics/tracking_synchronizer_observer.h',
'browser/metrics/variations/generated_resources_map.h',
'browser/metrics/variations/variations_http_header_provider.cc',
'browser/metrics/variations/variations_http_header_provider.h',
'browser/metrics/variations/variations_registry_syncer_win.cc',
'browser/metrics/variations/variations_registry_syncer_win.h',
'browser/metrics/variations/variations_request_scheduler.cc',
......@@ -2835,7 +2833,6 @@
'in_memory_url_index_cache_proto',
'probe_message_proto',
'suggestions_proto',
'variations_proto',
'../components/components.gyp:autocomplete',
'../components/components.gyp:autofill_core_browser',
'../components/components.gyp:bookmarks_browser',
......@@ -3405,21 +3402,6 @@
}],
],
},
{
# Protobuf compiler / generator for UMA (User Metrics Analysis).
# GN version: //chrome/browser/metrics/variations/proto:proto
'target_name': 'variations_proto',
'type': 'static_library',
'sources': [
'browser/metrics/variations/proto/chrome_experiments.proto',
],
'variables': {
'proto_in_dir': 'browser/metrics/variations/proto',
'proto_out_dir': 'chrome/browser/metrics/variations/proto',
},
'includes': [ '../build/protoc.gypi' ],
},
{
# Protobuf compiler / generator for the fraudulent certificate reporting
# protocol buffer.
......
......@@ -1109,7 +1109,6 @@
'browser/metrics/thread_watcher_unittest.cc',
'browser/metrics/thread_watcher_android_unittest.cc',
'browser/metrics/time_ticks_experiment_unittest.cc',
'browser/metrics/variations/variations_http_header_provider_unittest.cc',
'browser/metrics/variations/variations_request_scheduler_mobile_unittest.cc',
'browser/metrics/variations/variations_request_scheduler_unittest.cc',
'browser/metrics/variations/variations_seed_store_unittest.cc',
......
......@@ -201,6 +201,7 @@
'variations/metrics_util_unittest.cc',
'variations/study_filtering_unittest.cc',
'variations/variations_associated_data_unittest.cc',
'variations/variations_http_header_provider_unittest.cc',
'variations/variations_seed_processor_unittest.cc',
'variations/variations_seed_simulator_unittest.cc',
'visitedlink/test/visitedlink_unittest.cc',
......@@ -283,6 +284,9 @@
'components.gyp:history_core_browser',
'components.gyp:history_core_common',
# Dependencies of infobar
'components.gyp:infobars_test_support',
# Dependencies of invalidation
'components.gyp:invalidation',
'components.gyp:invalidation_test_support',
......
......@@ -32,5 +32,19 @@
'infobars/core/infobars_switches.h',
],
},
{
'target_name': 'infobars_test_support',
'type': 'static_library',
'include_dirs': [
'..',
],
'dependencies': [
'../base/base.gyp:base',
'../skia/skia.gyp:skia',
],
'sources': [
'infobars/test/infobar_test.cc',
],
},
],
}
// Copyright 2014 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 "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "components/infobars/core/confirm_infobar_delegate.h"
#include "components/infobars/core/infobar.h"
// Provides dummy definitions of static variables and functions that are
// declared in the component but defined in the embedder in order to allow
// components_unittests to link.
// TODO(blundell): The component shouldn't be declaring statics that it's not
// defining. crbug.com/386171
// On Android, these variables are defined in ../core/infobar_android.cc.
#if !defined(OS_ANDROID)
const int infobars::InfoBar::kSeparatorLineHeight = 1;
const int infobars::InfoBar::kDefaultArrowTargetHeight = 9;
const int infobars::InfoBar::kMaximumArrowTargetHeight = 24;
const int infobars::InfoBar::kDefaultArrowTargetHalfWidth =
kDefaultArrowTargetHeight;
const int infobars::InfoBar::kMaximumArrowTargetHalfWidth = 14;
const int infobars::InfoBar::kDefaultBarTargetHeight = 36;
#endif
scoped_ptr<infobars::InfoBar> ConfirmInfoBarDelegate::CreateInfoBar(
scoped_ptr<ConfirmInfoBarDelegate> delegate) {
NOTREACHED();
return scoped_ptr<infobars::InfoBar>();
}
......@@ -14,6 +14,7 @@
'dependencies': [
'../base/base.gyp:base',
'../third_party/mt19937ar/mt19937ar.gyp:mt19937ar',
'components.gyp:google_core_browser',
],
'sources': [
'variations/active_field_trials.cc',
......@@ -32,6 +33,7 @@
'variations/pref_names.h',
'variations/processed_study.cc',
'variations/processed_study.h',
'variations/proto/chrome_experiments.proto',
'variations/proto/permuted_entropy_cache.proto',
'variations/proto/study.proto',
'variations/proto/variations_seed.proto',
......@@ -39,6 +41,8 @@
'variations/study_filtering.h',
'variations/variations_associated_data.cc',
'variations/variations_associated_data.h',
'variations/variations_http_header_provider.cc',
'variations/variations_http_header_provider.h',
'variations/variations_seed_processor.cc',
'variations/variations_seed_processor.h',
'variations/variations_seed_simulator.cc',
......
include_rules = [
"+components/google",
"+net",
"+third_party/mt19937ar",
]
......@@ -6,6 +6,7 @@ import("//third_party/protobuf/proto_library.gni")
proto_library("proto") {
sources = [
"chrome_experiments.proto",
"permuted_entropy_cache.proto",
"study.proto",
"variations_seed.proto",
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Copyright 2014 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 "chrome/browser/metrics/variations/variations_http_header_provider.h"
#include "components/variations/variations_http_header_provider.h"
#include <vector>
......@@ -12,13 +12,19 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "chrome/browser/metrics/variations/proto/chrome_experiments.pb.h"
#include "components/google/core/browser/google_util.h"
#include "components/variations/proto/chrome_experiments.pb.h"
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
#include "net/http/http_request_headers.h"
#include "url/gurl.h"
namespace chrome_variations {
// TODO(mathp): Once the move to variations namespace is complete, remove these.
using chrome_variations::EMPTY_ID;
using chrome_variations::GOOGLE_WEB_PROPERTIES;
using chrome_variations::GOOGLE_WEB_PROPERTIES_TRIGGER;
using chrome_variations::VariationID;
namespace variations {
namespace {
......@@ -256,4 +262,4 @@ bool VariationsHttpHeaderProvider::ShouldAppendHeaders(const GURL& url) {
google_util::ALLOW_NON_STANDARD_PORTS);
}
} // namespace chrome_variations
} // namespace variations
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Copyright 2014 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 CHROME_BROWSER_METRICS_VARIATIONS_VARIATIONS_HTTP_HEADER_PROVIDER_H_
#define CHROME_BROWSER_METRICS_VARIATIONS_VARIATIONS_HTTP_HEADER_PROVIDER_H_
#ifndef COMPONENTS_VARIATIONS_VARIATIONS_HTTP_HEADER_PROVIDER_H_
#define COMPONENTS_VARIATIONS_VARIATIONS_HTTP_HEADER_PROVIDER_H_
#include <set>
#include <string>
......@@ -23,12 +23,10 @@ class HttpRequestHeaders;
}
class GURL;
class Profile;
class ProfileIOData;
template <typename T> struct DefaultSingletonTraits;
namespace chrome_variations {
namespace variations {
// A helper class for maintaining Chrome experiments and metrics state
// transmitted in custom HTTP request headers.
......@@ -110,6 +108,6 @@ class VariationsHttpHeaderProvider : base::FieldTrialList::Observer {
DISALLOW_COPY_AND_ASSIGN(VariationsHttpHeaderProvider);
};
} // namespace chrome_variations
} // namespace variations
#endif // CHROME_BROWSER_METRICS_VARIATIONS_VARIATIONS_HTTP_HEADER_PROVIDER_H_
#endif // COMPONENTS_VARIATIONS_VARIATIONS_HTTP_HEADER_PROVIDER_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