diff options
Diffstat (limited to 'ios/chrome')
-rw-r--r-- | ios/chrome/browser/application_context.h | 7 | ||||
-rw-r--r-- | ios/chrome/browser/application_context_impl.cc | 17 | ||||
-rw-r--r-- | ios/chrome/browser/application_context_impl.h | 2 | ||||
-rw-r--r-- | ios/chrome/browser/variations/ios_chrome_variations_service_client.cc | 62 | ||||
-rw-r--r-- | ios/chrome/browser/variations/ios_chrome_variations_service_client.h | 33 | ||||
-rw-r--r-- | ios/chrome/ios_chrome.gyp | 9 | ||||
-rw-r--r-- | ios/chrome/ios_chrome_resources.gyp | 70 | ||||
-rw-r--r-- | ios/chrome/test/DEPS | 1 | ||||
-rw-r--r-- | ios/chrome/test/testing_application_context.cc | 18 | ||||
-rw-r--r-- | ios/chrome/test/testing_application_context.h | 3 |
10 files changed, 219 insertions, 3 deletions
diff --git a/ios/chrome/browser/application_context.h b/ios/chrome/browser/application_context.h index db856c6..9cf30da 100644 --- a/ios/chrome/browser/application_context.h +++ b/ios/chrome/browser/application_context.h @@ -25,6 +25,10 @@ namespace net_log { class ChromeNetLog; } +namespace network_time { +class NetworkTimeTracker; +} + namespace policy { class BrowserPolicyConnector; } @@ -68,6 +72,9 @@ class ApplicationContext { // Gets the ChromeNetLog. virtual net_log::ChromeNetLog* GetNetLog() = 0; + // Gets the NetworkTimeTracker. + virtual network_time::NetworkTimeTracker* GetNetworkTimeTracker() = 0; + protected: // Sets the global ApplicationContext instance. static void SetApplicationContext(ApplicationContext* context); diff --git a/ios/chrome/browser/application_context_impl.cc b/ios/chrome/browser/application_context_impl.cc index 8b3eec7..5946416 100644 --- a/ios/chrome/browser/application_context_impl.cc +++ b/ios/chrome/browser/application_context_impl.cc @@ -7,7 +7,9 @@ #include "base/command_line.h" #include "base/files/file_path.h" #include "base/logging.h" +#include "base/time/default_tick_clock.h" #include "components/net_log/chrome_net_log.h" +#include "components/network_time/network_time_tracker.h" #include "components/translate/core/browser/translate_download_manager.h" #include "ios/chrome/common/channel_info.h" #include "ios/public/provider/chrome/browser/chrome_browser_provider.h" @@ -54,22 +56,37 @@ void ApplicationContextImpl::SetApplicationLocale(const std::string& locale) { ios::ChromeBrowserStateManager* ApplicationContextImpl::GetChromeBrowserStateManager() { + DCHECK(thread_checker_.CalledOnValidThread()); return ios::GetChromeBrowserProvider()->GetChromeBrowserStateManager(); } metrics::MetricsService* ApplicationContextImpl::GetMetricsService() { + DCHECK(thread_checker_.CalledOnValidThread()); return ios::GetChromeBrowserProvider()->GetMetricsService(); } policy::BrowserPolicyConnector* ApplicationContextImpl::GetBrowserPolicyConnector() { + DCHECK(thread_checker_.CalledOnValidThread()); return ios::GetChromeBrowserProvider()->GetBrowserPolicyConnector(); } rappor::RapporService* ApplicationContextImpl::GetRapporService() { + DCHECK(thread_checker_.CalledOnValidThread()); return ios::GetChromeBrowserProvider()->GetRapporService(); } net_log::ChromeNetLog* ApplicationContextImpl::GetNetLog() { + DCHECK(thread_checker_.CalledOnValidThread()); return net_log_.get(); } + +network_time::NetworkTimeTracker* +ApplicationContextImpl::GetNetworkTimeTracker() { + DCHECK(thread_checker_.CalledOnValidThread()); + if (!network_time_tracker_) { + network_time_tracker_.reset(new network_time::NetworkTimeTracker( + make_scoped_ptr(new base::DefaultTickClock), GetLocalState())); + } + return network_time_tracker_.get(); +} diff --git a/ios/chrome/browser/application_context_impl.h b/ios/chrome/browser/application_context_impl.h index dd7e0a1..162954a 100644 --- a/ios/chrome/browser/application_context_impl.h +++ b/ios/chrome/browser/application_context_impl.h @@ -34,9 +34,11 @@ class ApplicationContextImpl : public ApplicationContext { policy::BrowserPolicyConnector* GetBrowserPolicyConnector() override; rappor::RapporService* GetRapporService() override; net_log::ChromeNetLog* GetNetLog() override; + network_time::NetworkTimeTracker* GetNetworkTimeTracker() override; base::ThreadChecker thread_checker_; scoped_ptr<net_log::ChromeNetLog> net_log_; + scoped_ptr<network_time::NetworkTimeTracker> network_time_tracker_; std::string application_locale_; DISALLOW_COPY_AND_ASSIGN(ApplicationContextImpl); diff --git a/ios/chrome/browser/variations/ios_chrome_variations_service_client.cc b/ios/chrome/browser/variations/ios_chrome_variations_service_client.cc new file mode 100644 index 0000000..066d53e --- /dev/null +++ b/ios/chrome/browser/variations/ios_chrome_variations_service_client.cc @@ -0,0 +1,62 @@ +// Copyright 2015 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 "ios/chrome/browser/variations/ios_chrome_variations_service_client.h" + +#include "base/bind.h" +#include "base/version.h" +#include "components/version_info/version_info.h" +#include "ios/chrome/browser/application_context.h" +#include "ios/chrome/common/channel_info.h" +#include "ios/web/public/web_thread.h" + +namespace { + +// Gets the version number to use for variations seed simulation. Must be called +// on a thread where IO is allowed. +base::Version GetVersionForSimulation() { + // TODO(asvitkine): Get the version that will be used on restart instead of + // the current version. + return base::Version(version_info::GetVersionNumber()); +} + +} // namespace + +IOSChromeVariationsServiceClient::IOSChromeVariationsServiceClient() {} + +IOSChromeVariationsServiceClient::~IOSChromeVariationsServiceClient() {} + +std::string IOSChromeVariationsServiceClient::GetApplicationLocale() { + return GetApplicationContext()->GetApplicationLocale(); +} + +base::SequencedWorkerPool* IOSChromeVariationsServiceClient::GetBlockingPool() { + return web::WebThread::GetBlockingPool(); +} + +base::Callback<base::Version()> +IOSChromeVariationsServiceClient::GetVersionForSimulationCallback() { + return base::Bind(&GetVersionForSimulation); +} + +net::URLRequestContextGetter* +IOSChromeVariationsServiceClient::GetURLRequestContext() { + return GetApplicationContext()->GetSystemURLRequestContext(); +} + +network_time::NetworkTimeTracker* +IOSChromeVariationsServiceClient::GetNetworkTimeTracker() { + return GetApplicationContext()->GetNetworkTimeTracker(); +} + +version_info::Channel IOSChromeVariationsServiceClient::GetChannel() { + return ::GetChannel(); +} + +bool IOSChromeVariationsServiceClient::OverridesRestrictParameter( + std::string* parameter) { + return false; +} + +void IOSChromeVariationsServiceClient::OnInitialStartup() {} diff --git a/ios/chrome/browser/variations/ios_chrome_variations_service_client.h b/ios/chrome/browser/variations/ios_chrome_variations_service_client.h new file mode 100644 index 0000000..6be4a28 --- /dev/null +++ b/ios/chrome/browser/variations/ios_chrome_variations_service_client.h @@ -0,0 +1,33 @@ +// Copyright 2015 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 IOS_CHROME_BROWSER_VARIATIONS_IOS_CHROME_VARIATIONS_SERVICE_CLIENT_H_ +#define IOS_CHROME_BROWSER_VARIATIONS_IOS_CHROME_VARIATIONS_SERVICE_CLIENT_H_ + +#include "base/macros.h" +#include "components/variations/service/variations_service_client.h" + +// IOSChromeVariationsServiceClient provides an implementation of +// VariationsServiceClient that depends on ios/chrome/. +class IOSChromeVariationsServiceClient + : public variations::VariationsServiceClient { + public: + IOSChromeVariationsServiceClient(); + ~IOSChromeVariationsServiceClient() override; + + private: + // variations::VariationsServiceClient implementation. + std::string GetApplicationLocale() override; + base::SequencedWorkerPool* GetBlockingPool() override; + base::Callback<base::Version()> GetVersionForSimulationCallback() override; + net::URLRequestContextGetter* GetURLRequestContext() override; + network_time::NetworkTimeTracker* GetNetworkTimeTracker() override; + version_info::Channel GetChannel() override; + bool OverridesRestrictParameter(std::string* parameter) override; + void OnInitialStartup() override; + + DISALLOW_COPY_AND_ASSIGN(IOSChromeVariationsServiceClient); +}; + +#endif // IOS_CHROME_BROWSER_VARIATIONS_IOS_CHROME_VARIATIONS_SERVICE_CLIENT_H_ diff --git a/ios/chrome/ios_chrome.gyp b/ios/chrome/ios_chrome.gyp index 476168b..ddba590 100644 --- a/ios/chrome/ios_chrome.gyp +++ b/ios/chrome/ios_chrome.gyp @@ -92,6 +92,7 @@ '../../components/components.gyp:update_client', '../../components/components.gyp:upload_list', '../../components/components.gyp:variations', + '../../components/components.gyp:variations_service', '../../components/components.gyp:version_info', '../../components/components.gyp:web_resource', '../../components/components.gyp:webdata_services', @@ -111,6 +112,8 @@ 'injected_js', 'ios_chrome_common', 'ios_chrome_resources.gyp:ios_chrome_resources', + 'ios_chrome_resources.gyp:ios_chrome_ui_string_overrider_factory', + 'ios_chrome_resources.gyp:ios_chrome_ui_string_overrider_factory_gen', ], 'link_settings': { 'libraries': [ @@ -282,10 +285,10 @@ 'browser/memory/memory_metrics.h', 'browser/metrics/field_trial_synchronizer.cc', 'browser/metrics/field_trial_synchronizer.h', - 'browser/metrics/ios_chrome_metrics_service_accessor.h', 'browser/metrics/ios_chrome_metrics_service_accessor.cc', - 'browser/metrics/ios_chrome_stability_metrics_provider.h', + 'browser/metrics/ios_chrome_metrics_service_accessor.h', 'browser/metrics/ios_chrome_stability_metrics_provider.cc', + 'browser/metrics/ios_chrome_stability_metrics_provider.h', 'browser/metrics/ios_stability_metrics_provider.h', 'browser/metrics/ios_stability_metrics_provider.mm', 'browser/metrics/previous_session_info.h', @@ -486,6 +489,8 @@ 'browser/updatable_config/updatable_dictionary.mm', 'browser/update_client/ios_chrome_update_query_params_delegate.cc', 'browser/update_client/ios_chrome_update_query_params_delegate.h', + 'browser/variations/ios_chrome_variations_service_client.cc', + 'browser/variations/ios_chrome_variations_service_client.h', 'browser/web/dom_altering_lock.h', 'browser/web/dom_altering_lock.mm', 'browser/web/web_view_type_util.h', diff --git a/ios/chrome/ios_chrome_resources.gyp b/ios/chrome/ios_chrome_resources.gyp index cadbbe3..d23d4eb 100644 --- a/ios/chrome/ios_chrome_resources.gyp +++ b/ios/chrome/ios_chrome_resources.gyp @@ -7,6 +7,28 @@ 'chromium_code': 1, 'grit_base_dir': '<(SHARED_INTERMEDIATE_DIR)', 'grit_out_dir': '<(grit_base_dir)/ios/chrome', + 'ui_string_overrider_inputs': [ + '<(SHARED_INTERMEDIATE_DIR)/components/strings/grit/components_strings.h', + '<(SHARED_INTERMEDIATE_DIR)/ios/chrome/grit/ios_strings.h', + ], + 'ui_string_overrider_output_basename': + 'ios/chrome/browser/variations/ios_ui_string_overrider_factory', + 'ui_string_overrider_script_name': + '../../components/variations/service/generate_ui_string_overrider.py', + 'conditions': [ + ['branding=="Chromium"', { + 'ui_string_overrider_inputs': [ + '<(SHARED_INTERMEDIATE_DIR)/components/strings/grit/components_chromium_strings.h', + '<(SHARED_INTERMEDIATE_DIR)/ios/chrome/grit/ios_chromium_strings.h', + ], + }], + ['branding=="Chrome"', { + 'ui_string_overrider_inputs': [ + '<(SHARED_INTERMEDIATE_DIR)/components/strings/grit/components_google_chrome_strings.h', + '<(SHARED_INTERMEDIATE_DIR)/ios/chrome/grit/ios_google_chrome_strings.h', + ], + }], + ], }, 'targets': [ { @@ -183,6 +205,52 @@ }, ], }, + { + 'target_name': 'ios_chrome_ui_string_overrider_factory_gen', + 'type': 'none', + 'hard_dependency': 1, + 'direct_dependent_settings': { + 'include_dirs': [ + '<(SHARED_INTERMEDIATE_DIR)', + ], + }, + 'dependencies': [ + '../../components/components_strings.gyp:components_strings', + 'ios_strings_gen', + ], + 'actions': [ + { + 'action_name': 'generate_ios_ui_string_overrider', + 'inputs': [ + '<(ui_string_overrider_script_name)', + '<@(ui_string_overrider_inputs)', + ], + 'outputs': [ + '<(SHARED_INTERMEDIATE_DIR)/<(ui_string_overrider_output_basename).cc', + '<(SHARED_INTERMEDIATE_DIR)/<(ui_string_overrider_output_basename).h', + ], + 'action': [ + 'python', + '<(ui_string_overrider_script_name)', + '-o', '<(SHARED_INTERMEDIATE_DIR)', + '-S', '<(ui_string_overrider_output_basename).cc', + '-H', '<(ui_string_overrider_output_basename).h', + '<@(ui_string_overrider_inputs)', + ], + }, + ], + }, + { + 'target_name': 'ios_chrome_ui_string_overrider_factory', + 'type': 'static_library', + 'dependencies': [ + '../../components/components.gyp:variations_service', + 'ios_chrome_ui_string_overrider_factory_gen', + ], + 'sources': [ + '<(SHARED_INTERMEDIATE_DIR)/<(ui_string_overrider_output_basename).cc', + '<(SHARED_INTERMEDIATE_DIR)/<(ui_string_overrider_output_basename).h', + ], + }, ], } - diff --git a/ios/chrome/test/DEPS b/ios/chrome/test/DEPS index 0614aac..335ddd6 100644 --- a/ios/chrome/test/DEPS +++ b/ios/chrome/test/DEPS @@ -1,4 +1,5 @@ include_rules = [ + "+components/network_time", "+ios/chrome/browser", "+ios/public/provider/chrome", "+ios/public/test", diff --git a/ios/chrome/test/testing_application_context.cc b/ios/chrome/test/testing_application_context.cc index 4b70b86..014a913 100644 --- a/ios/chrome/test/testing_application_context.cc +++ b/ios/chrome/test/testing_application_context.cc @@ -5,6 +5,8 @@ #include "ios/chrome/test/testing_application_context.h" #include "base/logging.h" +#include "base/time/default_tick_clock.h" +#include "components/network_time/network_time_tracker.h" #include "ios/public/provider/chrome/browser/chrome_browser_provider.h" TestingApplicationContext::TestingApplicationContext() @@ -54,22 +56,38 @@ const std::string& TestingApplicationContext::GetApplicationLocale() { ios::ChromeBrowserStateManager* TestingApplicationContext::GetChromeBrowserStateManager() { + DCHECK(thread_checker_.CalledOnValidThread()); return chrome_browser_state_manager_; } metrics::MetricsService* TestingApplicationContext::GetMetricsService() { + DCHECK(thread_checker_.CalledOnValidThread()); return nullptr; } policy::BrowserPolicyConnector* TestingApplicationContext::GetBrowserPolicyConnector() { + DCHECK(thread_checker_.CalledOnValidThread()); return nullptr; } rappor::RapporService* TestingApplicationContext::GetRapporService() { + DCHECK(thread_checker_.CalledOnValidThread()); return nullptr; } net_log::ChromeNetLog* TestingApplicationContext::GetNetLog() { + DCHECK(thread_checker_.CalledOnValidThread()); return nullptr; } + +network_time::NetworkTimeTracker* +TestingApplicationContext::GetNetworkTimeTracker() { + DCHECK(thread_checker_.CalledOnValidThread()); + if (!network_time_tracker_) { + DCHECK(local_state_); + network_time_tracker_.reset(new network_time::NetworkTimeTracker( + make_scoped_ptr(new base::DefaultTickClock), local_state_)); + } + return network_time_tracker_.get(); +} diff --git a/ios/chrome/test/testing_application_context.h b/ios/chrome/test/testing_application_context.h index 37505f6..0c073c3 100644 --- a/ios/chrome/test/testing_application_context.h +++ b/ios/chrome/test/testing_application_context.h @@ -6,6 +6,7 @@ #define IOS_CHROME_TEST_TESTING_APPLICATION_CONTEXT_H_ #include "base/macros.h" +#include "base/memory/scoped_ptr.h" #include "base/threading/thread_checker.h" #include "ios/chrome/browser/application_context.h" @@ -33,12 +34,14 @@ class TestingApplicationContext : public ApplicationContext { policy::BrowserPolicyConnector* GetBrowserPolicyConnector() override; rappor::RapporService* GetRapporService() override; net_log::ChromeNetLog* GetNetLog() override; + network_time::NetworkTimeTracker* GetNetworkTimeTracker() override; private: base::ThreadChecker thread_checker_; std::string application_locale_; PrefService* local_state_; ios::ChromeBrowserStateManager* chrome_browser_state_manager_; + scoped_ptr<network_time::NetworkTimeTracker> network_time_tracker_; DISALLOW_COPY_AND_ASSIGN(TestingApplicationContext); }; |