diff options
21 files changed, 103 insertions, 34 deletions
@@ -18,6 +18,7 @@ group("root") { deps = [ "//base(//build/toolchain/nacl:x86_newlib)", "//chrome", + "//components/language_usage_metrics", "//components/navigation_metrics", "//components/onc:onc_component", "//components/startup_metric_utils", diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS index 9146adb..8c6c296 100644 --- a/chrome/browser/DEPS +++ b/chrome/browser/DEPS @@ -11,6 +11,7 @@ include_rules = [ "+components/breakpad", "+components/browser_context_keyed_service", "+components/dom_distiller", + "+components/language_usage_metrics", "+components/nacl/browser", "+components/nacl/common", "+components/navigation_interception", diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc index 32ec024..6a3877c 100644 --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc @@ -62,7 +62,6 @@ #include "chrome/browser/google/google_util.h" #include "chrome/browser/gpu/gl_string_manager.h" #include "chrome/browser/jankometer.h" -#include "chrome/browser/language_usage_metrics.h" #include "chrome/browser/media/media_capture_devices_dispatcher.h" #include "chrome/browser/metrics/field_trial_synchronizer.h" #include "chrome/browser/metrics/metrics_log.h" @@ -114,6 +113,7 @@ #include "chrome/common/profile_management_switches.h" #include "chrome/common/profiling.h" #include "chrome/installer/util/google_update_settings.h" +#include "components/language_usage_metrics/language_usage_metrics.h" #include "components/nacl/browser/nacl_browser.h" #include "components/nacl/browser/nacl_process_host.h" #include "components/startup_metric_utils/startup_metric_utils.h" @@ -1391,9 +1391,9 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { browser_process_->metrics_service()->RecordBreakpadHasDebugger( base::debug::BeingDebugged()); - LanguageUsageMetrics::RecordAcceptLanguages( + language_usage_metrics::LanguageUsageMetrics::RecordAcceptLanguages( profile_->GetPrefs()->GetString(prefs::kAcceptLanguages)); - LanguageUsageMetrics::RecordApplicationLanguage( + language_usage_metrics::LanguageUsageMetrics::RecordApplicationLanguage( browser_process_->GetApplicationLocale()); // The extension service may be available at this point. If the command line diff --git a/chrome/browser/translate/translate_language_list.cc b/chrome/browser/translate/translate_language_list.cc index 29fb947..9219368 100644 --- a/chrome/browser/translate/translate_language_list.cc +++ b/chrome/browser/translate/translate_language_list.cc @@ -14,10 +14,10 @@ #include "base/strings/stringprintf.h" #include "base/values.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/translate/translate_browser_metrics.h" #include "chrome/browser/translate/translate_manager.h" #include "chrome/browser/translate/translate_url_fetcher.h" #include "chrome/browser/translate/translate_url_util.h" +#include "components/translate/core/browser/translate_browser_metrics.h" #include "components/translate/core/browser/translate_event_details.h" #include "net/base/url_util.h" #include "ui/base/l10n/l10n_util.h" diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc index 437661f..50349af 100644 --- a/chrome/browser/translate/translate_manager.cc +++ b/chrome/browser/translate/translate_manager.cc @@ -19,7 +19,6 @@ #include "chrome/browser/tab_contents/language_state.h" #include "chrome/browser/tab_contents/tab_util.h" #include "chrome/browser/translate/translate_accept_languages.h" -#include "chrome/browser/translate/translate_browser_metrics.h" #include "chrome/browser/translate/translate_infobar_delegate.h" #include "chrome/browser/translate/translate_language_list.h" #include "chrome/browser/translate/translate_prefs.h" @@ -37,6 +36,7 @@ #include "chrome/common/render_messages.h" #include "chrome/common/url_constants.h" #include "components/translate/core/browser/page_translated_details.h" +#include "components/translate/core/browser/translate_browser_metrics.h" #include "components/translate/core/browser/translate_error_details.h" #include "components/translate/core/browser/translate_event_details.h" #include "components/translate/core/common/language_detection_details.h" diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index 1ce893e..218cf0b 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -948,8 +948,6 @@ 'browser/jankometer_mac.cc', 'browser/jumplist_win.cc', 'browser/jumplist_win.h', - 'browser/language_usage_metrics.cc', - 'browser/language_usage_metrics.h', 'browser/lifetime/application_lifetime.cc', 'browser/lifetime/application_lifetime.h', 'browser/lifetime/application_lifetime_android.cc', @@ -2494,8 +2492,6 @@ 'browser/translate/options_menu_model.h', 'browser/translate/translate_accept_languages.h', 'browser/translate/translate_accept_languages.cc', - 'browser/translate/translate_browser_metrics.cc', - 'browser/translate/translate_browser_metrics.h', 'browser/translate/translate_infobar_delegate.cc', 'browser/translate/translate_infobar_delegate.h', 'browser/translate/translate_language_list.cc', @@ -3344,7 +3340,7 @@ }], ], }, { # 'OS!="win" - 'sources/': [ + 'sources/': [ # Exclude files that should be excluded for all non-Windows platforms. ['exclude', '^browser/first_run/try_chrome_dialog_view.cc'], ['exclude', '^browser/first_run/try_chrome_dialog_view.h'], diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi index bb38235..f948753 100644 --- a/chrome/chrome_tests_unit.gypi +++ b/chrome/chrome_tests_unit.gypi @@ -995,7 +995,6 @@ 'browser/invalidation/invalidation_service_test_template.h', 'browser/invalidation/invalidator_storage_unittest.cc', 'browser/invalidation/ticl_invalidation_service_unittest.cc', - 'browser/language_usage_metrics_unittest.cc', 'browser/local_discovery/privet_confirm_api_flow_unittest.cc', 'browser/local_discovery/privet_http_unittest.cc', 'browser/local_discovery/privet_url_fetcher_unittest.cc', @@ -1409,7 +1408,6 @@ 'browser/thumbnails/render_widget_snapshot_taker_unittest.cc', 'browser/thumbnails/simple_thumbnail_crop_unittest.cc', 'browser/thumbnails/thumbnail_service_unittest.cc', - 'browser/translate/translate_browser_metrics_unittest.cc', 'browser/translate/translate_manager_unittest.cc', 'browser/translate/translate_prefs_unittest.cc', 'browser/translate/translate_script_unittest.cc', diff --git a/components/components.gyp b/components/components.gyp index 89488a1..341d120 100644 --- a/components/components.gyp +++ b/components/components.gyp @@ -15,6 +15,7 @@ 'breakpad.gypi', 'dom_distiller.gypi', 'json_schema.gypi', + 'language_usage_metrics.gypi', 'navigation_metrics.gypi', 'onc.gypi', 'policy.gypi', diff --git a/components/components_tests.gyp b/components/components_tests.gyp index 7dca5d6..d16e68b 100644 --- a/components/components_tests.gyp +++ b/components/components_tests.gyp @@ -41,6 +41,7 @@ 'json_schema/json_schema_validator_unittest.cc', 'json_schema/json_schema_validator_unittest_base.cc', 'json_schema/json_schema_validator_unittest_base.h', + 'language_usage_metrics/language_usage_metrics_unittest.cc', 'navigation_interception/intercept_navigation_resource_throttle_unittest.cc', 'precache/content/precache_manager_unittest.cc', 'precache/core/precache_database_unittest.cc', @@ -49,6 +50,7 @@ 'sessions/serialized_navigation_entry_unittest.cc', 'signin/core/webdata/token_service_table_unittest.cc', 'test/run_all_unittests.cc', + 'translate/core/browser/translate_browser_metrics_unittest.cc', 'translate/core/common/translate_metrics_unittest.cc', 'translate/core/common/translate_util_unittest.cc', 'translate/language_detection/language_detection_util_unittest.cc', @@ -102,6 +104,9 @@ # Dependencies of json_schema 'components.gyp:json_schema', + # Dependencies of language_usage_metrics + 'components.gyp:language_usage_metrics', + # Dependencies of precache/core 'components.gyp:precache_core', @@ -109,6 +114,7 @@ 'components.gyp:signin_core', # Dependencies of translate. + 'components.gyp:translate_core_browser', 'components.gyp:translate_core_common', 'components.gyp:translate_language_detection', @@ -157,6 +163,7 @@ ['include', '^auto_login_parser/'], ['include', '^autofill/'], ['include', '^dom_distiller/'], + ['include', '^language_usage_metrics/'], ['include', '^precache/core/'], ['include', '^signin/'], ['include', '^translate/'], diff --git a/components/language_usage_metrics.gypi b/components/language_usage_metrics.gypi new file mode 100644 index 0000000..e150a1bb --- /dev/null +++ b/components/language_usage_metrics.gypi @@ -0,0 +1,22 @@ +# 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. + +{ + 'targets': [ + { + 'target_name': 'language_usage_metrics', + 'type': 'static_library', + 'dependencies': [ + '../base/base.gyp:base', + ], + 'include_dirs': [ + '..', + ], + 'sources': [ + 'language_usage_metrics/language_usage_metrics.cc', + 'language_usage_metrics/language_usage_metrics.h', + ], + }, + ], +} diff --git a/components/language_usage_metrics/OWNERS b/components/language_usage_metrics/OWNERS new file mode 100644 index 0000000..a214ab1 --- /dev/null +++ b/components/language_usage_metrics/OWNERS @@ -0,0 +1,3 @@ +hajimehoshi@chromium.org +mad@chromium.org +toyoshim@chromium.org diff --git a/chrome/browser/language_usage_metrics.cc b/components/language_usage_metrics/language_usage_metrics.cc index 62ed43c..adb91c9 100644 --- a/chrome/browser/language_usage_metrics.cc +++ b/components/language_usage_metrics/language_usage_metrics.cc @@ -1,8 +1,8 @@ -// Copyright (c) 2011 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/language_usage_metrics.h" +#include "components/language_usage_metrics/language_usage_metrics.h" #include <algorithm> @@ -17,6 +17,8 @@ void RecordAcceptLanguage(int language_code) { } } // namespace +namespace language_usage_metrics { + // static void LanguageUsageMetrics::RecordAcceptLanguages( const std::string& accept_languages) { @@ -69,3 +71,5 @@ void LanguageUsageMetrics::ParseAcceptLanguages( languages->insert(language_code); } } + +} // namespace language_usage_metrics diff --git a/chrome/browser/language_usage_metrics.h b/components/language_usage_metrics/language_usage_metrics.h index 15a6868..ffde58b 100644 --- a/chrome/browser/language_usage_metrics.h +++ b/components/language_usage_metrics/language_usage_metrics.h @@ -1,9 +1,9 @@ -// Copyright (c) 2011 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_LANGUAGE_USAGE_METRICS_H_ -#define CHROME_BROWSER_LANGUAGE_USAGE_METRICS_H_ +#ifndef COMPONENTS_LANGUAGE_USAGE_METRICS_LANGUAGE_USAGE_METRICS_H_ +#define COMPONENTS_LANGUAGE_USAGE_METRICS_LANGUAGE_USAGE_METRICS_H_ #include <set> #include <string> @@ -11,6 +11,8 @@ #include "base/basictypes.h" #include "base/gtest_prod_util.h" +namespace language_usage_metrics { + // Methods to record language usage as UMA histograms. class LanguageUsageMetrics { public: @@ -46,4 +48,6 @@ class LanguageUsageMetrics { FRIEND_TEST_ALL_PREFIXES(LanguageUsageMetricsTest, ParseAcceptLanguages); }; -#endif // CHROME_BROWSER_LANGUAGE_USAGE_METRICS_H_ +} // namespace language_usage_metrics + +#endif // COMPONENTS_LANGUAGE_USAGE_METRICS_LANGUAGE_USAGE_METRICS_H_ diff --git a/chrome/browser/language_usage_metrics_unittest.cc b/components/language_usage_metrics/language_usage_metrics_unittest.cc index 9a2dbc98..74344eb 100644 --- a/chrome/browser/language_usage_metrics_unittest.cc +++ b/components/language_usage_metrics/language_usage_metrics_unittest.cc @@ -1,11 +1,13 @@ -// Copyright (c) 2011 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/language_usage_metrics.h" +#include "components/language_usage_metrics/language_usage_metrics.h" #include "testing/gtest/include/gtest/gtest.h" +namespace language_usage_metrics { + TEST(LanguageUsageMetricsTest, ParseAcceptLanguages) { std::set<int> language_set; std::set<int>::const_iterator it; @@ -101,3 +103,5 @@ TEST(LanguageUsageMetricsTest, ToLanguageCode) { // However, LanguageUsageMetrics doesn't tell what code is valid. EXPECT_EQ(30840, LanguageUsageMetrics::ToLanguageCode("xx")); } + +} // namespace language_usage_metrics diff --git a/components/translate.gypi b/components/translate.gypi index 7c63eb9..474b529 100644 --- a/components/translate.gypi +++ b/components/translate.gypi @@ -8,6 +8,7 @@ 'target_name': 'translate_core_browser', 'type': 'static_library', 'dependencies': [ + 'language_usage_metrics', 'translate_core_common', '../base/base.gyp:base', '../url/url.gyp:url_lib', @@ -17,6 +18,8 @@ ], 'sources': [ 'translate/core/browser/page_translated_details.h', + 'translate/core/browser/translate_browser_metrics.cc', + 'translate/core/browser/translate_browser_metrics.h', 'translate/core/browser/translate_error_details.h', 'translate/core/browser/translate_event_details.cc', 'translate/core/browser/translate_event_details.h', diff --git a/components/translate/DEPS b/components/translate/DEPS index 8f4bfc0..c2106de 100644 --- a/components/translate/DEPS +++ b/components/translate/DEPS @@ -1,4 +1,8 @@ include_rules = [ - # translate is used on iOS, which cannot depend on content. + "+components/language_usage_metrics", + + # Translate is a layered component; subdirectories must explicitly introduce + # the ability to use the content layer as appropriate. "-content", + "-components/translate/content", ] diff --git a/chrome/browser/translate/translate_browser_metrics.cc b/components/translate/core/browser/translate_browser_metrics.cc index a6605bd..c0d3357d 100644 --- a/chrome/browser/translate/translate_browser_metrics.cc +++ b/components/translate/core/browser/translate_browser_metrics.cc @@ -1,15 +1,15 @@ -// Copyright 2013 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/translate/translate_browser_metrics.h" +#include "components/translate/core/browser/translate_browser_metrics.h" #include <string> #include "base/basictypes.h" #include "base/metrics/histogram.h" #include "base/metrics/sparse_histogram.h" -#include "chrome/browser/language_usage_metrics.h" +#include "components/language_usage_metrics/language_usage_metrics.h" namespace { @@ -63,18 +63,21 @@ void ReportLanguageDetectionError() { } void ReportLocalesOnDisabledByPrefs(const std::string& locale) { - UMA_HISTOGRAM_SPARSE_SLOWLY(kTranslateLocalesOnDisabledByPrefs, - LanguageUsageMetrics::ToLanguageCode(locale)); + UMA_HISTOGRAM_SPARSE_SLOWLY( + kTranslateLocalesOnDisabledByPrefs, + language_usage_metrics::LanguageUsageMetrics::ToLanguageCode(locale)); } void ReportUndisplayableLanguage(const std::string& language) { - int language_code = LanguageUsageMetrics::ToLanguageCode(language); + int language_code = + language_usage_metrics::LanguageUsageMetrics::ToLanguageCode(language); UMA_HISTOGRAM_SPARSE_SLOWLY(kTranslateUndisplayableLanguage, language_code); } void ReportUnsupportedLanguageAtInitiation(const std::string& language) { - int language_code = LanguageUsageMetrics::ToLanguageCode(language); + int language_code = + language_usage_metrics::LanguageUsageMetrics::ToLanguageCode(language); UMA_HISTOGRAM_SPARSE_SLOWLY(kTranslateUnsupportedLanguageAtInitiation, language_code); } diff --git a/chrome/browser/translate/translate_browser_metrics.h b/components/translate/core/browser/translate_browser_metrics.h index 21ee89d..0d76e7b 100644 --- a/chrome/browser/translate/translate_browser_metrics.h +++ b/components/translate/core/browser/translate_browser_metrics.h @@ -1,9 +1,9 @@ -// Copyright 2013 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_TRANSLATE_TRANSLATE_BROWSER_METRICS_H_ -#define CHROME_BROWSER_TRANSLATE_TRANSLATE_BROWSER_METRICS_H_ +#ifndef COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_BROWSER_METRICS_H_ +#define COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_BROWSER_METRICS_H_ #include <string> @@ -61,4 +61,4 @@ const char* GetMetricsName(MetricsNameIndex index); } // namespace TranslateBrowserMetrics -#endif // CHROME_BROWSER_TRANSLATE_TRANSLATE_BROWSER_METRICS_H_ +#endif // COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_BROWSER_METRICS_H_ diff --git a/chrome/browser/translate/translate_browser_metrics_unittest.cc b/components/translate/core/browser/translate_browser_metrics_unittest.cc index a7e3149..404014f 100644 --- a/chrome/browser/translate/translate_browser_metrics_unittest.cc +++ b/components/translate/core/browser/translate_browser_metrics_unittest.cc @@ -1,8 +1,8 @@ -// Copyright 2013 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/translate/translate_browser_metrics.h" +#include "components/translate/core/browser/translate_browser_metrics.h" #include "base/basictypes.h" #include "base/memory/scoped_ptr.h" diff --git a/tools/gn/secondary/components/language_usage_metrics/BUILD.gn b/tools/gn/secondary/components/language_usage_metrics/BUILD.gn new file mode 100644 index 0000000..6d30575 --- /dev/null +++ b/tools/gn/secondary/components/language_usage_metrics/BUILD.gn @@ -0,0 +1,16 @@ +# 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. + +static_library("language_usage_metrics") { + external = true + + sources = [ + "language_usage_metrics.cc", + "language_usage_metrics.h", + ] + + deps = [ + "//base", + ] +} diff --git a/tools/gn/secondary/components/translate/BUILD.gn b/tools/gn/secondary/components/translate/BUILD.gn index 04ff986..9619a5d 100644 --- a/tools/gn/secondary/components/translate/BUILD.gn +++ b/tools/gn/secondary/components/translate/BUILD.gn @@ -7,6 +7,8 @@ static_library("translate_core_browser") { sources = [ "core/browser/page_translated_details.h", + "core/browser/translate_browser_metrics.cc", + "core/browser/translate_browser_metrics.h", "core/browser/translate_error_details.h", "core/browser/translate_event_details.cc", "core/browser/translate_event_details.h", |